Diseño e Implementación de un Lector de Tarjeta de Memoria SD en FPGA



Documentos relacionados
En el presente capítulo se describe la programación del instrumento virtual y cómo

UNIVERSIDAD DE SALAMANCA

Anexo B. Comunicaciones entre mc y PC

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

DESCRIPCION DEL SITEMA MASTER.

Capítulo 5. Análisis del software del simulador del sistema de seguridad

Elementos requeridos para crearlos (ejemplo: el compilador)

SPI. Teoría y Aplicaciones. INGENIERIA EN MICROCONTROLADORES Protocolo SPI( Serial Peripherical Interface) Protocolo

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

PS.Vending Almacén Pocket PC

Móvil Seguro. Guía de Usuario Terminales Android

Qué es un sistema de almacenamiento RAID?

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

TEMA: PROTOCOLOS TCP/IP

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Ingeniería de Software. Pruebas

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

Introducción a la Firma Electrónica en MIDAS

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Reglas de Uso del PACE

USB (Universal Serial Bus)

Efectos de los dispositivos de Capa 2 sobre el flujo de datos Segmentación de la LAN Ethernet

Lector de tarjetas SD en microcontrolador NXP. Ing. Luis Antonini*; Ing. Jorge Osio*; Ing. Jose Rapallini

5. Diseño e Implementación del sistema (software)

VideoSoftPHONE Active Contact

Práctica 5. Curso

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

Curso sobre Microcontroladores Familia HC9S08 de Freescale

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Los puntos opcionales deben su naturaleza a la configuración actual de Windows en la computadora host en cuestión.

GedicoPDA: software de preventa

Uso de la Firma Electrónica. en la. Universidad de Granada

Control de accesos autónomo por huella dactilar

UNIDADES DE ALMACENAMIENTO DE DATOS

HARDWARE DE UN ORDENADOR. Elementos básicos

34.- Cómo Hacer Evaluación del Desempeño

Multimedia Streaming. Memoria del proyecto Streaming Multimedia (audio) Departamento de desarrollo de software. Lexon S.A.

RAID. Redundant Array of Independent Disks. Rafael Jurado Moreno Fuente: Wikipedia

PUERTOS DE COMUNICACIÓN EXTERNOS TIPO VELOCIDAD DESCRIPCION GRAFICO

Uso de la Firma Electrónica. en la. Universidad de Granada

CAPITULO I FORMULACION DEL PROBLEMA

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

4 Pruebas y análisis del software

Capitulo 3. Desarrollo del Software

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

PUERTOS DE ENTRADA Y SALIDA

Seven ERP Guía De Referencia - Imágenes

Ventajas y desventajas. Entre las cámaras analogas y las cámaras digitales

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Instalación de epass 3000 Token USB

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

Dispositivos de Red Hub Switch

TRANSPRO EL TRANSPORTE URBANO DEL MONTEVIDEO DEL MAÑANA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Manual Instalación epass 2000 FT12 Token USB

BANCO NACIONAL DE PANAMÁ, BANCO DE DESARROLLO AGROPECUARIO Y BANCO HIPOTECARIO NACIONAL

Palabras Clave: Vídeo en FPGA, Procesamiento en Tiempo Real RESUMEN

MANUAL COPIAS DE SEGURIDAD

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

Manual del Usuario. Sistema de Help Desk

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

REGISTROS DE DESPLAZAMIENTO

Instrumentación con Microcontroladores. Ing. Rodrigo Alejandro Gutiérrez Arenas 22/03/12 al 29/03/12

SIIGO Pyme. Templates. Cartilla I

TELEOPERACIÓN DE UN ROBOT MOVIL CON MANEJO DIFERENCIAL A BAJO COSTO

GUÍA BÁSICA DE USO DEL SISTEMA RED

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

KW x hora. on/off

CAPÍTULO I GENERALIDADES

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

MACROS. Automatizar tareas a través del uso de las macros.

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

MANUAL DE USUARIO DEL MÓDULO TPV

Fundamentos de Ethernet. Ing. Camilo Zapata Universidad de Antioquia

Manual de Usuario. Terra Factura Electrónica

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Actividad 4: Comunicación entre PLC s vía Ethernet

Notas para la instalación de un lector de tarjetas inteligentes.

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

MANUAL DE USUARIO PARA PROVEEDORES. IT Buzón

Introducción a las Redes

CAPÍTULO 3 Servidor de Modelo de Usuario

HARDWARE DE SISTEMA AUTOMÁTICO DE RASTREO DE VEHÍCULOS MEDIANTE TECNOLOGÍAS GPRS Y GPS

SIIGO PYME PLUS. Proceso de Recuperación. Cartilla I

CONCEPTOS INFORMÁTICOS BÁSICOS

2. Gestionar dispositivos de almacenamiento, describir los procedimientos efectuados y aplicar técnicas para asegurar la integridad de la información.

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

MANUAL DE USUARIO. Introducción

MANUAL TRAMITACIÓN PROCEDIMIENTO

Qué es una página web?, qué conoces al respecto?, sabes crear una página

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

Reporte: Alternativas de Hosting

CAPITULO I El Problema

Transcripción:

Diseño e Implementación de un Lector de Tarjeta de Memoria SD en FPGA Raúl Ruiz Meza, César Luis Pérez Bautista Instituto Politécnico Nacional, Unidad Profesional Adolfo López Mateos s/n. México, D.F., México, rarumerrm@hotmail.com, cesarluispb@yahoo.com.mx Resumen Los nuevos sistemas de procesamiento de imágenes, video o audio basados en FPGA requieren la utilización de grandes cantidades de información. Los dispositivos FPGA tienen cierta cantidad de memoria integrada que suele ser insuficiente; para solucionar este requerimiento es necesario utilizar algún dispositivo de memoria externo. Aquí se propone el diseño y la implementación de un sistema para la lectura de tarjetas de memoria SD (SD Card), utilizando la tarjeta de desarrollo Spartan 3E de Xilinx. Analizando el comportamiento de la tarjeta SD se decide utilizar el protocolo de comunicación 1-bit SD Bus y una velocidad de transmisión de datos predefinida de 25 MHz. En este documento se describe los módulos necesarios para la inicialización y la comunicación con la tarjeta SD. Todos los módulos fueron escritos directamente en el lenguaje VHDL. Palabras Clave: FPGA, SD card, spartan 3E. I. Introducción El uso de dispositivos FPGA ha aumentado en la mayoría de aplicaciones que necesitan procesamiento paralelo, altas velocidades de desarrollo y bajo consumo de energía. Estos dispositivos están siendo utilizados actualmente en muchos sistemas de procesamiento de imágenes, video o audio [1, 2, 3]. En estos sistemas generalmente se usan gran cantidad de datos, éstos mismos necesitan ser almacenados y/o leídos para su procesamiento. Muchos sistemas utilizan la tarjeta SD como el medio predilecto para almacenar datos, debido a sus ventajas como: portabilidad, gran capacidad de almacenamiento, alta velocidad en la transferencia y recuperación de la información además de múltiples protocolos de comunicación [4, 5]. La necesitad de desarrollo de sistemas más completos que manejen un medio de almacenamiento de datos, es la principal razón para implementar y desarrollar un sistema lector de tarjetas SD. Este sistema será utilizado en aplicaciones futuras como un visor de imágenes y visualización de archivos de texto. Se desarrolla el lector de tarjeta SD en el dispositivo FPGA XC3S500E de la empresa Xilinx, este chip esta integrado en la tarjeta Spartan 3E. Esta tarjeta se usa frecuentemente en investigaciones y proyectos académicos, razón por la cual se decide realizar este sistema en dicha tarjeta. Xilinx no proporciona soporte en cuanto a un módulo para controlar la tarjeta SD, por tanto este sistema es desarrollado desde cero hasta obtener un sistema que realizará la comunicación satisfactoria con la tarjeta SD. Como es descrito en [6] la tarjeta SD tiene múltiples protocolos de comunicaciones y velocidades de transferencia de datos. Aquí se utiliza el protocolo 1-bit SD Bus y una tasa de transferencia de datos a 25 MHz. El primer paso en el desarrollo de este sistema es entender el comportamiento de la tarjeta SD y con ello desarrollar el código y módulos que manejen la lógica necesaria para la comunicación con la tarjeta. 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 583

II. Funcionamiento de la tarjeta SD a. Protocolos de comunicación La tarjeta SD permite dos diferentes protocolos de comunicación, uno de ellos es el protocolo SPI, que es utilizado por la mayoría de los microcontroladores existentes en el mercado, para acceder e introducir información en la tarjeta SD. El segundo protocolo es nombrado SD Bus ; éste tiene dos modalidades de funcionamiento: 1- bit o 4-bits, es decir, el protocolo de comunicación usará una sola línea de datos o las cuatro disponibles en la tarjeta SD. La transferencia de datos en este protocolo se basa en una cadena de datos que contiene al principio un bit de inicio y al final un bit de paro. El protocolo SD Bus, se basa en la comunicación comando-respuesta, mediante estos comandos y sus correspondientes respuestas, se establece el intercambio de información entre el controlador (host) de la tarjeta y la tarjeta. Como lo fue dicho antes una o cuatro líneas son dedicadas especialmente para la transferencia de datos. En la figura 1 se ejemplifica la comunicación con la tarjeta SD en una operación de lectura de datos. Fig. 1. Lectura de un bloque de datos con el protocolo SD bus [6]. La figura 1 también muestra que la transferencia de datos se realiza en bloques cuya longitud puede ser definida, mediante un comando por el controlador. Sin embargo, la longitud de los bloques de información esta predefinida a 512 bytes. Los comandos tienen una longitud de 48 bits [5, 6], estos bits están ordenados en 6 grupos de diferente longitud y propósito, de acuerdo a la siguiente descripción: Bit de Inicio, Bit de transmisión ( 1 controlador a tarjeta, 0 tarjeta a controlador), identificador de comando, argumento, código de redundancia cíclica (CRC), para corrección de errores y por último el bit de paro. Ver tabla 1. Descripción Posición de bit Cantidad de bits Valor Bit de inicio 47 1 0 Bit de transmisión Identificador de comando 46 1 1 45:40 6 X Argumento 39:8 32 X CRC 7:1 7 X Bit de paro 0 1 1 Tabla 1.Formato de comando. Cada comando enviado recibe una determinada respuesta. De acuerdo a [6] existen 4 tipos diferentes de respuesta y estas varían tanto en su longitud como en su contenido. En general su longitud puede variar entre 48 bits o 136 bits. b. Descripción de funcionamiento. Como se menciona en [4] la tarjeta SD necesita dos diferentes frecuencias de reloj, una de 400 KHz para el proceso de identificación e inicialización de la tarjeta y otra frecuencia de 25 MHz para el proceso de transferencia de datos. El proceso de identificación inicia cuando la tarjeta se inserta en el conector y se energiza. El controlador debe proporcionar la frecuencia de 400 KHz a la tarjeta al pin correspondiente. Antes de enviar cualquier comando el controlador debe esperar un periodo de 74 ciclos de reloj [6]. Después de esta espera, el controlador debe enviar la serie de comandos que confirmarán que la tarjeta está conectada en el conector, y que 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 584

tanto la tarjeta como el controlador tienen capacidades similares para sostener la comunicación y la transferencia de datos. El proceso de inicialización conlleva la serie de comandos: CMD0, ACMD41, CMD2 y CMD 3. Cada uno de estos comandos tiene una función determinada que en conjunción dejarán lista la conexión con la tarjeta para la transferencia de información. El comando 0 (CMD0) tiene la función de reiniciar cualquier tarjeta que se encuentre conectada al bus de comunicaciones. Después de este comando la tarjeta conectada está lista para recibir nuevos comandos. El comando ACMD41 es un comando especial y antes de enviarlo es necesario enviar el comando 55 (CMD55) [6]. El ACMD41 solicita a la tarjeta el registro de condiciones de operación (OCR) para ser comparado con las capacidades del controlador y tener certeza de que la comunicación será exitosa. Después de saber que se podrá comunicar con la tarjeta, se envía un CMD2 que solicita a la tarjeta el número de identificación de esta (CID). Por último se envía CMD3 para solicitar su dirección relativa o RCA por sus siglas en inglés, esta cadena es útil cuando se tiene un bus multitarjeta, ya que mediante el CMD7 y la RCA es posible seleccionar con que tarjeta se desea comunicar. El proceso de inicialización termina cuando se recibe la respuesta al comando 3. Esta respuesta contiene la dirección relativa (RCA) de la tarjeta SD. La figura 2 muestra el diagrama de flujo de este proceso. Después de terminar el modo de identificación, la tarjeta pasa al modo de transferencia de datos y la frecuencia de reloj debe cambiar a 25MHz. Inmediatamente después de entrar al modo de transferencia de datos, el controlador debe enviar un CMD9 para preguntar a la tarjeta su registro de datos específico o CSD por sus siglas en inglés. Después de este comando le sigue un CMD4 para configurar el registro DSR. Aunque la longitud del bloque de datos está predefinida en 512 bytes, es necesario estar seguros de éstos; por lo tanto, antes de enviar un comando de lectura de datos es necesario enviar el comando CMD16 para establecer la longitud del bloque a 512 bytes. Para hacer lo antes mencionado enviar el comando CMD7 antes del CMD16 para establecer una comunicación directa con la tarjeta cuya RCA sea la contenida en el argumento del CMD7. Después de estas acciones los siguientes comandos que sean enviados serán los relacionados con las operaciones de lectura, escritura o borrado de datos. La figura 3 muestra los comandos utilizados en el modo de transferencia de datos y las transiciones internas de estado de la tarjeta SD. Fig. 2. Proceso de identificación e inicialización de a tarjeta SD [6]. 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 585

Fig. 3. Modo de transferencia de datos [6]. c. Estructura de Datos La tarjeta SD es un tipo de memoria flash, internamente ésta tiene una estructura de datos de tipo FAT [2]. En la estructura de datos FAT el área total de almacenamiento de datos está dividida en varias secciones que se muestran en la figura 4. Es importante tener en cuenta la ubicación de cada una de estas secciones en la tarjeta SD para recuperar satisfactoriamente los datos deseados. III. Diseño e implementación El sistema diseñado está compuesto básicamente por 4 módulos y un DCM (Digital Clock Manager) este último proveerá las frecuencias requeridas por la tarjeta SD. Los módulos: Generador de Comandos, Receptor de Respuesta, Receptor de Datos y Control de estados, realizan las comunicaciones y transacciones de datos entre el chip FPGA y la tarjeta SD. En principio el DCM provee la frecuencia de 400KHz hasta que el proceso de identificación e inicialización termina; este módulo también provee la frecuencia de 25 MHz para el modo de transferencia de datos. Estas frecuencias son generadas por el DCM a partir de la frecuencia de entrada de 50 MHz. El módulo generador de comandos se encarga de generar la serie de 48 bits que serán transmitidos [5]. Esta cadena de bits tiene el formato mencionado en secciones anteriores. Este módulo contiene un registro que auxilia al módulo 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 586

receptor de respuesta informando de la respuesta que es esperada para el comando generado. El módulo receptor de respuestas, está encargado de almacenar la serie de bits que la tarjeta envíe, además de almacenar la respuesta este módulo debe asegurar que la respuesta sea recibida sin errores de comunicación, esta tarea la realiza haciendo una evaluación con el CRC y la información recibida. Ya que la información esté libre de errores, el módulo redirige la información a los registros correspondientes en el controlador. En conjunto, el sistema integra los 4 módulos desarrollados y el DCM en un sistema capaz de leer datos de la tarjeta SD, estos mismos pueden ser desplegados o utilizados de acuerdo a las necesidades del sistema que integre este lector de tarjeta SD, ver figura 5. Fig. 5. Diagrama de bloques del sistema. Fig. 4. Estructura del área de datos en el sistema de archivos FAT [6]. El siguiente módulo, receptor de datos, se encarga de almacenar la información de archivos almacenada en la tarjeta SD. Esta información, como se dijo antes, está en bloques de 512 bytes, éstos son almacenados en una memoria temporal en el dispositivo FPGA y analizados para comprobar que los datos fueron recopilados sin errores, mediante una evaluación de errores con CRC. El último de los módulos diseñados, Control de estado, es una máquina de estados que se encarga de controlar las transiciones necesarias en la comunicación entre el controlador y la tarjeta. Cierto estado realiza el proceso de inicialización y otro por ejemplo realiza la tarea de enviar un comando. IV. Resultados Para demostrar el funcionamiento de este sistema se modificó por software el primer sector del área de usuario, de una tarjeta SD de 2GB, introduciendo a lo largo de este sector la cadena 0x00FF55AA. El funcionamiento de este sistema se demuestra con la obtención satisfactoria de esta cadena de datos. Fig. 6. Implementacions del Modulo SD Card Reader en la tarjeta SPARTAN 3E. 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 587

Fig. 7. Window of software ChipScope Pro. El sistema enviará continuamente el comando de lectura de un solo sector (CMD17) direccionado hacia el primer sector del área de usuario de la tarjeta. La dirección de este sector esta contenida en el argumento del CMD17 y ésta se debe calcular de acuerdo a lo establecido en [6] y al sistema de archivos FAT16. Xilinx proporciona la herramienta ChipScope Pro que es un analizador lógico que permite observar señales internas, salidas o entradas del sistema, mientras este se encuentra en funcionamiento. Gracias a esta herramienta se seleccionan tres datos importantes del funcionamiento del sistema. La primera de ellas es un registro interno del sistema diseñado, que indica el último comando enviado. La segunda señal es el registro que almacena la RCA, este dato es importante ya que una vez que la tarjeta está identificada e inicializada se tendrá en el registro un valor diferente de 0. La última señal se trata de la línea de datos, en esta línea se encuentra repetidamente, de manera serial, la cadena 0x00FF55AA correctamente. La figura 7 es un fragmento de la ventana del software ChipScope Pro que muestra las señales seleccionadas y el valor actual del sistema en funcionamiento. Como puede verse, los resultados obtenidos son los esperados, el registro muestra que último comando enviado es CMD17 el cual es el comando de lectura de un bloque de datos, se observa también la cadena binaria serial antes dicha, por último se observa el registro de la RCA. Debido a lo anterior se puede asegurar el funcionamiento del sistema lector de tarjeta SD. V. Conclusiones líneas futuras La combinación de una tarjeta de bajo costo, con uso generalmente académico, y la implementación del lector de tarjeta SD en la misma, genera una variedad considerable en las capacidades futuras de desarrollo de aplicaciones, que requieran un dispositivo de almacenamiento. Se ha demostrado el éxito en la recuperación de los datos. A partir de esto es posible la implementación de un sistema más complejo, lo cual es la intención principal en este trabajo. El sistema será combinado, en un futuro, junto con una memoria RAM y una pantalla LCD, en un sistema que permita desplegar imágenes que estarán almacenadas en la tarjeta SD. Por otra parte, el sistema se seguirá desarrollando para que las subsecuentes versiones del mismo permitan una lectura múltiple de bloques de 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 588

datos. Además de esto, también es la intención que el sistema soporte la escritura de datos dentro de la tarjeta. VI. Referencias [1] Kun Gao; JunboCai; Long Zhang; Rennong Sheng;, "A SoPC-based mini VGA video capture and storage system," Biomedical Engineering and Informatics (BMEI), 2010 3rd International Conference on, vol.7, no., pp.2770-2774, 16-18 Oct. 2010. [2] Chen Zhangjin; Jin Chen; Wang Hao; "Development of OLED demonstration system based on SD card," Electronic Packaging Technology & High Density Packaging, 2008. ICEPT-HDP 2008. International Conferenceen, vol., no., pp.1-4, 28-31 July 2008. [3] Hong-wei, Liang; Jian-ai, Li; Ling-ling, Kan;, "Implementation of SD Card Music Player Using Altera DE2-70," Multimedia and Signal Processing (CMSP), 2011 [4] International Conference on, vol.2, no., pp.150-153, 14-15 May 2011. [5] Elkeelany, O.; Todakar, V.S.; "Data Archival to SD Card Via Hardware Description Language," Embedded Systems Letters, IEEE, vol.3, no.4, pp.105-108, Dec. 2011. [6] Zhenlin Lu; Jingjiao Li; Yao Zhang;, "The Reading/Writing SD Card System Based on FPGA," Pervasive Computing Signal Processing and Applications (PCSPA), 2010 First International Conference on, vol., no., pp.419-422, 17-19 Sept. 2010. [7] SD Group, SD Specifications, Part 1: Physical Layer Simplified Specification, Version 3.01, May 18, 2010. VII. Autores Ing. César Luis Pérez Bautista egresado de la ESIME Zac. del Instituto Politécnico Nacional. Dr. Raúl Ruiz Meza, doctor en Tecnologías y Sistemas de Comunicaciones de la Universidad Politécnica de Madrid. 3 a 5 de octubre 2012. Colima, Col. México ISBN 978-607-477-902-8 589