¿Podría alguien darme una explicación concisa de cómo una tarjeta SD envía y recibe datos de una computadora? ¿Hace esto un poco a la vez? ¿Cómo combina la computadora/tarjeta SD estos bits individuales en bytes útiles? Puedo ver todos los pines y lo que hacen, pero ¿alguien podría explicar cómo se combina todo para crear las funciones de lectura y escritura a las que se utilizan?
Creo que hay explicaciones de esto en la web.
Puede obtener una buena comprensión leyendo el código y observando el cableado de un proyecto real, por ejemplo, la biblioteca de tarjetas de memoria SD de Arduino , que puede leer un sistema de archivos FAT. Utiliza una interfaz de hardware muy simple.
Las hojas de datos para la memoria SD explicarán cómo se lee y escribe, o puede leer un tutorial, por ejemplo, el tutorial SD de Adafruit
La tarjeta SD se puede leer y escribir usando SPI, que usa solo tres cables más alimentación, y una señal de habilitación o 'selección de chip' (CS) para que varias tarjetas SD puedan compartir un bus común de tres cables. SPI tiene una señal de datos en cada dirección (DI, DO) y un reloj (SCLK) para sincronizar e identificar datos válidos. La tarjeta SD está impulsada por comandos, se envía a través de la interfaz SPI, así que mire el conjunto de comandos para una tarjeta SD. Los comandos estarán orientados a bytes ya que, de forma predeterminada, SPI está orientado a bytes.
La E/S en serie para la mayoría de los dispositivos host, desde el microcontrolador hasta el microprocesador, generalmente se maneja mediante una interfaz periférica orientada a bytes, pero todo podría hacerse en el software mediante datos serializados de 'bit banging' sobre E/S individuales de propósito general (GPIO) patas. Usaría tres para SPI, uno para cada uno de SCLK, DI y DI, y uno para cada selección de chip (CS) de tarjetas de memoria SD.
Para un mayor rendimiento, las tarjetas de memoria SD pueden transferir múltiples bits en un solo ciclo, por lo que al usar 4 señales de datos, se puede leer o escribir 4 veces más rápido. Cuando la comunicación comienza por primera vez, comienza con las tres señales SPI, luego un sistema host (por ejemplo, una computadora, una cámara) puede negociar rápidamente para activar la interfaz con más señales.
Para obtener un manual sobre las especificaciones de la tarjeta microSD, busque "Transcend" en la web y descargue este archivo PDF: TS256M~2GUSD. Es un archivo de 756 KB, por lo que cubre todos los detalles finos de la propia memoria SD.
Sigue la especificación de la tarjeta SD v1.1 y la especificación del sistema de archivos de la asociación SD. Siga las instrucciones de Arduino para su interfaz y controladores. Utilice el manual de Transcend para conocer los detalles del propio chip SD.
Si compra un tipo y una capacidad específicos de chip microSD, asegúrese de descargar el archivo PDF técnico para el chip SD . Puede tener una capacidad de almacenamiento mucho mayor y, por lo tanto, tener la asignación correcta de los tamaños de página/bloque de memoria.
Asegúrese de que el zócalo de la tarjeta SD esté integrado a la medida en una PCB, ya que la velocidad del reloj puede llegar a los 50 MHz.
Dmitri Grigoriev