¿Cómo se comunica una tarjeta SD con una computadora? [cerrado]

¿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?Los pines etiquetados de una tarjeta SD y una tarjeta Micro SD

Quizás leer las especificaciones ayude.

Respuestas (2)

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.

No exactamente así para 4 bits: hay dos modos, SD y SPI. El modo SD utiliza CMD, DATA (bidir) y CLK. SPI usa CS SCLK DI y DO. La selección de modo se realiza en el encendido/reinicio. Desde el modo SD, puede cambiar a modos más rápidos con mayor frecuencia (incluidos los modos UHS) y/o un bus más amplio de 4 bits.
@TEMLIB - muchas gracias. ¿Estás seguro de que esa es la única manera? Estoy dispuesto a creerte porque solo he usado SPI. Sin embargo, mi lectura (hace varios años) de la documentación de la interfaz periférica SD, probablemente ST, fue que el contacto inicial fue 'tres señales' y luego una 'actualización' a 'ancho completo'. Si está razonablemente seguro, lo corregiré.
La especificación oficial (sin la parte de DRM) está disponible. Por ejemplo: users.ece.utexas.edu/~valvano/EE345M/SD_Physical_Layer_Spec.pdf . SPI página 104, mire los diagramas de estado. El modo SPI es un legado de las tarjetas MMC. También una vez hice un artículo en mi sitio web...
@TEMLIB - Muchas gracias por su ayuda. Se está haciendo tarde aquí, así que miraré mañana.

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.

Re: "Siga las instrucciones de Arduino para su interfaz y controladores". ¿Tiene usted una fuente para eso?
@PeterMortensen. Eso sería un punto discutible. Si compra un producto Arduino, ese material se empaquetará con él. o en el peor de los casos, proporcionan un enlace a un pdf para descargar. Cada fabricante de un chip o una placa de bricolaje proporciona estos detalles, en un formato u otro, o estarían fuera del negocio muy rápidamente. El OP no especificó qué modelo de Arduino compró, y no necesitaba hacerlo.