Describa brevemente el principio de funcionamiento de la tarjeta SD.
Función
La tarjeta SD es una tarjeta de memoria y su función es el almacenamiento.
Clasificación
Las tarjetas SD se clasifican según su capacidad y se pueden dividir en 3 categorías: tarjetas SD, tarjetas SDHC y tarjetas SDXC, de la siguiente manera:
Capacidad |
Nombrar |
Abreviatura |
0 ~ 2G |
Tarjeta de memoria SD de capacidad estándar |
SDSC o SD |
2G ~ 32G |
Tarjeta de memoria SD de alta capacidad |
SDHC |
32G ~ 2T |
Tarjeta de memoria SD de capacidad extendida |
SDXC |
Estructura de hardware
El esquema de la tarjeta SD y el diagrama de interfaz se muestran a continuación:
La interfaz que hace funcionar la tarjeta SD es el puerto SPI o SDIO, y la distribución de pines es la siguiente:
Diagrama de conexión de hardware del host y la tarjeta SD:
Principio de funcionamiento
Para que la tarjeta SD funcione, implica principalmente dos pasos.
El primer paso es el proceso de identificación de la tarjeta SD.
El segundo paso es leer y escribir la tarjeta SD, es decir, el proceso de transmisión de datos entre el controlador host y la tarjeta SD.
Para que la tarjeta SD funcione correctamente, una es suministrar un voltaje estable a la tarjeta SD y la otra es trabajar la tarjeta SD de la manera especificada por el usuario. La realización de estas dos tareas se realiza mediante el controlador host que envía comandos de control a la tarjeta SD.
El host (controlador SDIO) necesita usar muchos comandos para controlar la tarjeta SD, incluido el comando de capa de aplicación ACMD y el comando común CMD. El host (controlador SDIO) envía el comando a la tarjeta SD y la tarjeta SD responderá. Llamada respuesta, los comandos de respuesta se dividen en 6 categorías, a saber, R1, R1b, R2, R3, R6, R7.
Después de que el host (controlador SDIO) envíe un comando a la tarjeta SD, la tarjeta SD responderá. La respuesta contiene los datos requeridos por el host (controlador SDIO), que incluye información SD, capacidad y datos de almacenamiento.
Como se mencionó anteriormente, la tarjeta SD funciona principalmente para la identificación y la transmisión de datos. Su proceso de identificación es un poco complicado. Al escribir el código, puede consultar el diagrama de flujo de inicialización proporcionado por el protocolo. La transmisión de datos incluye lectura y escritura, lectura y escritura de un solo byte y de varios bytes. Las siguientes dos secciones describen el diagrama de flujo de inicialización de identificación y el diagrama de tiempo de lectura y escritura de datos.
Diagrama de flujo
Diagrama de flujo de inicialización de la tarjeta SD:
Diagrama de tiempos de lectura y escritura de datos.
La comunicación de la tarjeta SDIO y SDIO generalmente se transmite en forma de bloques de datos.Las operaciones de lectura de bloques de datos SDIO (múltiples) se muestran en la siguiente figura:
Operación de escritura en bloque de datos SDIO (múltiple), como se muestra a continuación:
Formato de comando
Todos los comandos y respuestas de SDIO se transmiten en el pin SDIO_CMD. La longitud del comando se fija en 48 bits. El formato del comando SDIO se muestra en la siguiente tabla:
Entre ellos: además del índice de comando y los parámetros que necesitamos establecer, los demás son controlados automáticamente por el hardware SDIO. El índice de comando (como CMD0, CMD1, etc.) lo establece el registro SDIO_CMD, y los parámetros de comando los establece el registro SDIO_ARG.
El formato de la respuesta corta STM32 SDIO (48 bits) se muestra en la tabla a continuación:
El formato de la respuesta larga SDIO de STM32 (136 bits) se muestra en la siguiente tabla:
Registrarse
Los registros del controlador SDIO establecen principalmente los índices y parámetros del controlador SDIO y los comandos.
La tarjeta SD tiene 5 registros CID, RCA, CSD, SCR.OCR. La información de la tarjeta SD se obtiene del registro de la tarjeta SD.
Resumen
El trabajo normal de la tarjeta SD es enviar un comando y recibir una respuesta de acuerdo con el diagrama de flujo de inicialización de la tarjeta SD hasta el final del proceso. La transmisión de datos también se basa en el diagrama de tiempo de lectura y escritura, y los datos a enviar se colocan en el comando y se envían.
Cuando el controlador SDIO maneja la tarjeta SD, la frecuencia es de 400 K. Al transmitir datos, la frecuencia SDIOCK es de 6 M. Cuando se inicializa la tarjeta SD, la frecuencia no puede exceder los 400 K.