Para conectar una unidad flash USB a un diseño FPGA integrado con una velocidad de datos de 13 MB / s, necesitaría lo siguiente:
-
El modo de interfaz USB debe ser HS, 480 Mbps. Por lo tanto, la unidad flash debe ser un dispositivo de almacenamiento masivo USB 2.0.
-
Para obtener el modo HS, el sistema FPGA debe tener un IC de transceptor USB , también conocido como "PHY". EL EJEMPLO ESTÁ AQUÍ . El FPGA debe proporcionar al menos el protocolo ULPI para controlar este PHY IC (13 pines de E / S). No hay otra manera de obtener la velocidad USB de 480 Mpbs.
-
Su FPGA debe ser un host USB para poder leer / escribir un dispositivo de almacenamiento masivo USB. Esto significa que el FPGA debe poder emitir una señalización USB_RESET con la correspondiente secuencia de chirridos, proporcionar un flujo periódico de paquetes de marcos y mantener el motor de interfaz serial USB, para poder enumerar la unidad flash y configurarlo.
-
Para mantener la funcionalidad del host USB, el sistema FPGA debe tener un bloque de IP dedicado (controlador de interfaz de host mejorado, EHCI) para realizar todas las funciones anteriores. EL EJEMPLO ESTÁ AQUÍ .
-
El FPGA debe poder proporcionar un protocolo de nivel de aplicación para el dispositivo de almacenamiento masivo; debe usar un subconjunto de comandos similares a SCSI para obtener las capacidades de flash y las estructuras de formato. En otras palabras, el host debe tener un controlador para la clase de dispositivo de almacenamiento masivo USB. El FPGA debería poder obtener el registro de arranque maestro (MBR) y poder acceder a las estructuras de archivos flash, y escribir datos en de acuerdo con la tabla de asignación de archivos , si desea que los datos sean accesibles para PC normal.
-
Para orquestar la funcionalidad anterior, generalmente se requiere un software de tamaño considerable. Se necesita al menos una CPU compatible con Linux para ejecutar el controlador y el protocolo de almacenamiento masivo. Esta CPU se puede integrar en FPGA (consulte, por ejemplo, procesador de microlabios para plataformas Xilinx) .
Aparte de eso, un poco de comprensión del marco USB sería muy útil. También puede pensar en adquirir un analizador de protocolo USB 2.0 para llegar a cualquier punto del proceso.
Una forma mucho más fácil es implementar un controlador SD / MMC y usar una tarjeta SD para transferir datos entre un FPGA incorporado y una PC.