Transferencia De Datos Por Puerto Usb Nexxys 2
Enviado por sergioandrespa • 25 de Febrero de 2014 • 4.789 Palabras (20 Páginas) • 296 Visitas
RESUMEN / ABSTRACT
En el trabajo se presenta la implementación de la comunicación por puerto USB entre una computadora con sistema operativo
Windows y una tarjeta FPGA Nexys2. Dicha tarjeta posee un microcontrolador Cypress CY7C68013A que maneja un puerto
USB2 de alta velocidad que ha sido programado para emular un puerto paralelo EPP.
Se expone el diseño y evaluación de una interfaz gráfica de usuario con programación LabWindows que maneja la biblioteca
DPCUTIL y que posibilita la transferencia y visualización de datos desde la Nexys2. La aplicación permite la transferencia en
tiempo real de un procesador digital de 12bits, de dos canales implementado con frecuencia de muestreo de 1MHz en la FPGA. En
el trabajo se evalúa los resultados alcanzados en cuanto a la velocidad de transferencia de datos efectiva.
Palabras claves: Comunicaciones, FPGA, Puerto USB, transferencia de datos.
This paper deals with the implementation of USB communication between a PC with Windows OS and a Nexys2 FPGA Board
.This board has a Cypress Microcontroller that handles a high speed USB port and it is configured to emulate a EPP port. This
work presents the design and evaluation of GUI that is supported on LabWindows CVI 9, and use the driver DPCUTIL.dll to
control the data transfers for Nexys2. An FPGA application has been designed that responds to the request of PC via USB and
provides data transfer with an ADC converter of 2 channels, 12 bits, with a 1 MHz sampling frequency. The LabWindows
Application provides a graphical monitoring of data transfer and post processing of data, taking advantage of the library
functions that are available in LW. Also data transfer speed is evaluated.
Key words: communications, data transfers, FPGA, USB Port.
INTRODUCCIÓN
La interfaz USB se ha convertido en un estándar para la
comunicación de una PC con diversos periféricos como
cámaras, impresoras, amplificadores de audio y memorias
externas así como con sistemas digitales basados en
microcontroladores, procesadores digitales (DSP) y FPGA.
Tal es el caso de la tarjeta FPGA Nexys2 1 que posee un
puerto USB que permite la alimentación de la tarjeta, la
programación de la misma para implementar una aplicación
determinada y la transferencia de datos entre una aplicación y
la PC. El fabricante suministra una aplicación para el sistema
operativo Windows denominada Adept2 -que es usada
fundamentalmente para programar el circuito FPGA, aunque
también posibilita el diagnóstico de la misma y la transferencia
de datos. Sin embargo no brinda el código de dicha aplicación
por lo que no puede ser aplicada o expandida para procesar
transferencias especificas que sean necesarias tales como un
sistema de adquisición de datos o simple procesador digital
que estén implementados en la FPGA.
En este trabajo se presenta y analiza el diseño de una
aplicación de interfaz gráfica en LabWindows/CVI v9 que
permite el control, visualización y post procesamiento de la
transferencia de datos con un circuito sintetizado en la FPGA.
La aplicación en la FPGA es un controlador de conversión
análogo- digital ADC que permite la digitalización de hasta
dos señales analógicas a una frecuencia de muestreo máxima
de 1 MHz y resolución de 12 bits. Las muestras generadas por
los conversores son enviadas por el puerto USB hacia la PC.
Aunque se trata de una aplicación específica como se analiza
en detalle la metodología empleada puede ser fácilmente
aplicada o modificada para nuevas aplicaciones.
MATERIALES Y MÉTODOS.
FUNDAMENTOS DE LA
COMUNICACIÓN USB.
Para analizar la comunicación USB entre una PC y un
dispositivo USB se deben de considerar los siguientes
elementos de hardware y software.
57
El bus USB es del tipo “maestro/esclavo”, donde el maestro es
la PC (también llamado ¨host ¨) que es el que puede iniciar la
comunicación y el tráfico de datos con el esclavo ó dispositivo
USB. Así las interrupciones no son posibles.
El dispositivo USB que se conecta a la PC debe tener un
circuito controlador USB que responde a los requerimientos
de la PC para su identificación y para recibir y enviar señales.
Todo dispositivo USB es un dispositivo ¨inteligente¨ pues
mediante el circuito controlador USB es capaz de responder a
los eventos que se presenten en el bus USB. En nuestro caso la
Nexys 2 posee un circuito integrado Controlador USBCYPRESS
68001A y un circuito FPGA Xilinx Spartan3E
xcs3e1200 entre otros. El circuito controlador es el que recibe
las señales de la PC por el conector USB y se conecta con
determinados pines de la FPGA, el mismo ha sido programado
para emular un puerto paralelo de virtual de alta velocidad
EPP3. Por lo tanto cualquier aplicación que se desarrolle en la
FPGA que pretenda transferir datos mediante el puerto USB,
lo hace como si el puerto USB fuera en realidad un puerto
EPP. Para implementar la comunicación USB en la Nexys2,
primeramente en la FPGA hay que implementar un bloque
controlador EPP que interprete y genere las señales EPP que
recibe o envía el controlador CYPRESS, para la FPGA es
como si estuviera conectada a un puerto EPP.
Por otra parte en la propia PC se halla disponible un
controlador USB pero configurado para iniciar la
comunicación como “maestro”. Cuando un dispositivo USB se
conecta con la PC si es un dispositivo estándar en el sistema
operativo se encuentra un programa driver que identifica el
dispositivo automáticamente y le asigna un identificador, y
permite que dentro del sistema operativo se ejecute la
operación del dispositivo. Si es un dispositivo USB no
estándar se necesita de un programa driver específico que
provea las funciones necesarias previstas para el dispositivo.
Este driver por lo general es suministrado por el fabricante del
dispositivo USB. El driver para la Nexys2 es una biblioteca
denominada “dpcutil.lib” que permite transferencias de datos4
que ha sido escrita y compilada con Microsoft C++. Esta
biblioteca de funciones genera y procesa los datos transferidos
e interpretados en este caso según el protocolo EPP. Para
poder controlar la comunicación USB con LabWindows/CVI,
...