新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统

基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统

作者:时间:2016-09-12来源:网络收藏

0 引言

本文引用地址:http://www.eepw.com.cn/article/201609/304017.htm

目前高速技术越来越得到人们的重视,传统的USB 2.0采集平台理论带宽只有480 Mbps,实际传输能力只有30 Mb/s左右,而USB 3.0采集平台理论带宽达到了5Gbps,能有效解决USB2.0采集系统的缺陷。目前一些采集系统采用单片机为主控芯片,则不能充分发挥USB3.0的带宽,性能不佳。本文研究和设计了一套基于USB3.0总线的系统,此系统采用高速芯片MAX7000A作为主控芯片,作为USB3.0主机接口芯片,能实现超高速实时与传输。

1 系统硬件设计

系统的总体框架如图1所示。被采集的信号通过相应的传感器转换为相应的模拟电压,A/D芯片将其转换为数字信号,再送到主控芯片MAX7000A,经处理后发送到USB 3.0主机接口芯片,该芯片工作在SLAVE FIFO模式,最后数据以5Gbps的速度送入到计算机。

基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统的设计

美国的赛普拉斯(CYPRESS)公司开发的EZUSB FX系列芯片以其强大的功能,简易的开发过程而深受开发者喜爱。EZ—USB FX3()芯片是其最新的USB接口芯片,不仅完全符合USB3.0标准,而且还可以与DSP、FPGA、和单片机等处理器方便地相连,从而简化了系统的设计。EZ-USB FX3芯片内部逻辑结构如图2所示。

基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统的设计

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所示。

基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统的设计

系统工作原理如下: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的固件程序流程图如下:

基于MAX 7 0 0 0A与CYUSB3014的USB3.0数据采集系统的设计

S1FifoAppThread线程代表着EZ—USB FX3芯片的GPIF II接口工作在SLAVE FIFO模式。我们需在S1FifoAppThread线程中定义一个DMA传输通道,此DMA通道在外部MAX 7000A芯片的控制下,将数据送至指定的输入端点,以供上位机应用程序获取。

在驱动程序开发方面,CYPRESS公司的SDK为EZ-USB FX3提供了通用设备驱动程序CYUSB3.SYS,其不仅完全符合WDF(Windows Driver Foundation)规范,还具有兼容USB2.0和USB3.0设备、支持即插即用和支持高带宽数据传输等优点。我们只需根据固件程序中定义的USB设备的VID和PID对通用驱动程序相匹配的CYUSB3.INF文件进行相应的简单修改即可。

在上位机的应用程序的开发方面,CYPRESS公司同样为用户提供了一个个操作简单、功能强大的C++编程接口:CyAPI.Lib库函数。我们选用了Microsoft Visual Studio2008作为开发工具,通过CyAPI.Lib函数与CYUSB3.SYS设备驱动程序传递数据,进行实时采集。

3 总结

本文详细介绍了采用EZ—USB FX3为接口USB3.0芯片,MAX 7000A为主控芯片,设计与开发了一套USB 3.0数据采集传输系统。CYPRESS公司为EZ-USB FX3提供了完整的SDK开发包,缩短了开发周期。当采样数据为32位,采样时钟为40MHz时,系统理论传输带宽可达1.28Gps。实际测试中我们采用了16位的A/D高速芯片,MAX 7000A芯片工作时钟为40MHz,实验测得系统传输速率约600Mbps,超过了USB2.0的480Mbps理论带宽,这表明USB3.0总线能将采集的信号实时传输至计算机,充分发挥了USB3.0超高速传输带宽的优势。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭