基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统
0 引言
目前高速数据采集技术越来越得到人们的重视,传统的USB 2.0采集平台理论带宽只有480 Mbps,实际传输能力只有30 Mb/s左右,而USB 3.0采集平台理论带宽达到了5Gbps,能有效解决USB2.0采集系统的缺陷。目前一些采集系统采用单片机为主控芯片,则不能充分发挥USB3.0的带宽,性能不佳。本文研究和设计了一套基于USB3.0总线的数据采集系统,此系统采用高速CPLD芯片MAX7000A作为主控芯片,CYUSB3014作为USB3.0主机接口芯片,能实现超高速实时数据采集与传输。
1 系统硬件设计
系统的总体框架如图1所示。被采集的信号通过相应的传感器转换为相应的模拟电压,A/D芯片将其转换为数字信号,再送到CPLD主控芯片MAX7000A,经处理后发送到USB 3.0主机接口芯片CYUSB3014,该芯片工作在SLAVE FIFO模式,最后数据以5Gbps的速度送入到计算机。
美国的赛普拉斯(CYPRESS)公司开发的EZUSB FX系列芯片以其强大的功能,简易的开发过程而深受开发者喜爱。EZ—USB FX3(CYUSB3014)芯片是其最新的USB接口芯片,不仅完全符合USB3.0标准,而且还可以与DSP、FPGA、CPLD和单片机等处理器方便地相连,从而简化了系统的设计。EZ-USB FX3芯片内部逻辑结构如图2所示。
CYUSB3014的内核为一个200MHz工作频率的32位ARM926EJ处理器,其通过固件程序和内部DMA通道管理USB和GPIF II、I2S、SPI、UART接口之间的数据传输。CYUSB3014内部有一个能实现5Gbps传输速度的GPIF II接口,该接口可以方便地与MAX 7000A连接。GPIF II接口不仅工作频率可达100MHz,而且其数据总线可以根据需要选择8位、16位和32位中的任何一种。当然,只有选用了32位的数据总线,才能充分挖掘其带宽。
美国硅谷的Altera公司一直是创新定制逻辑解决方案的领先者,其开发了业界最先进的FPGA、CPLD和ASIC技术,其开发的MAX系列CPLD芯片深受开发者喜爱。只有采用高速的CPLD主控芯片才能充分发挥USB3.0的5Gbps超宽带宽,为此Altera公司最新高速的MAX7000A系列CPLD为理想之选,我们采用了型号为MAX7128AETC100—4的主控芯片,该芯片的详细资料见文献。该芯片主要负责与GPIF II接口相连,实现GPIF II接口工作在SLAVEFIFO模式下向计算机写入数据的逻辑时序控制。EZ—USB FX3的GPIF II接口有HOST主机和SLAV EFIFO两种工作模式,本系统选用SLAVE FIFO工作模式,其与CPLD连接的原理图如图3所示。
系统工作原理如下:1)A[1:0]为地址选择位,MAX7000A根据其值选择对应的Socket;2)D[31:0]为32位的传输数据总线,MAX7000A将需要写入的数据放置在此总线上;3)SLCS为片选芯片,工作时需为低电平来选中EZ-USB FX3芯片;4)PKTEND为包结束信号,当数据包写满时,该信号有效时,MAX7000A将其打包传送至EZ—USB FX3芯片;5)FLAGA和FLAGB为EZ—USB FX3返回给MAX 7000A的状态标志信号,MAX7000A据此决定是否对EZ—USB FX3进行数据读写;6)SLWR为写使能信号,SLRD为读使能信号,SLOE为输出使能信号。
系统硬件设计中还包含了电源电路、USB接口电路和时钟复位电路等电路的设计,由于篇幅的关系,在此不作介绍。
2 系统软件设计
系统软件的开发包含了MAX 7000A CPLD和EZ—USB FX3的固件程序开发、EZ—USB FX3的Windows驱动程序开发和上位机应用程序的开发。我们利用CYPRESS公司提供的开发包,大大缩短了开发周期,提高了开发效率。
固件程序是微控制器系统的核心,是帮助设备实现相应的功能。MAX 7000A CPLD固件程序主要完成对A/D芯片的控制和对EZ—USB FX3芯片的通信,其将A/D芯片采集的数据传送给EZ—USB FX3。MAX 7000A CPLD的固件开发比较简单,只需对相应的引脚和时序进行定义。为此我们采用了Verilog HDL语言编写,开发环境为Quartos II 8.0。EZ—USBFX3固件程序的主要功能是让其将MAX 7000A CPLD芯片传来的数据传输到上位机,实现超高速数据传输。EZ—USB FX3的控制器是基于ARM926EJS的,固件程序采用ECLIPSE集成开发环境,开发人员需在CYPRESS公司官网上下载其SDK安装包。EZ—USB FX3的固件程序流程图如下:
S1FifoAppThread线程代表着EZ—USB FX3芯片的GPIF II接口工作在SLAVE FIFO模式。我们需在S1FifoAppThread线程中定义一个DMA传输通道,此DMA通道在外部MAX 7000A芯片的控制下,将数据送至指定的输入端点,以供上位机应用程序获取。
在驱动程序开发方面,CYPRESS公司的SDK为EZ-USB FX3提供了通用设备驱动程序CYUSB3.SYS,其不仅完全符合WDF(Windows Driver F
USB3.0 CPLD CYUSB3014 数据采集 相关文章:
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- 用CPLD实现FIR数字滤波器的设计(08-07)
- 基于DSP+CPLD的交流电机调速在水处理控制中的应用(11-27)
- 一种基于DSP的张力、深度、速度测量系统(04-15)
- 用双端口RAM实现与PCI总线接口的数据通讯(05-06)
- 基于DSP和CPLD的宽带信号源的设计(07-26)