基于USB通信的FPGA高速数据采集系统
EZ-USB FX2LP拥有非常独特的结构,其串行接口引擎(SIE)负责完成串行数据的解码、差错控制、位填充等与USB有关的功能。串行接口引擎(SIE)能够实现大部分的功能,从而减轻了嵌入式增强型8051的负担,简化了USB固件程序的开发。 固件程序是指运行在设备CPU中的程序,只有在该程序运行时,外设才能称之为具有给定功能的外部设备。系统把固件代码固化到1片E2PROM中,外设加电后由FX2通过I2C总线下载到片内RAM中自动执行。固件架构是由Keil C51编译器与其整合开发工具所编写和构建。其主要文件包括:fw.c负责设备连接、重枚举、设备初始化;periph.c负责响应各种中断事件,是主要的用户函数应用代码;gpif.c含有GP IF波形描述符表,可以实现波形的传输;dscr.a51文件定义USB设备握手时需要的各种描述符;fx2.h定义各种二级中断向量和描述符的数据结构;fx2 regs.h定义USB单片机中所有的寄存器。
2 系统软硬件实现
2.1 A/D转换
系统通过PINFET光电转换为单端模拟信号,而A/D转换器AD7356是差分输入方式,所以需要对输入方式进行转换。AD7356说明书中给出了详细的转换电路,按说明连接即可。由于AD7356供电电源为2.5 V,所以和FPGA之间的连接需要调整AD7356的信号电平,使得输出电平与FPGA的3.3 V电平兼容。在电路设计时,可以通过将AD7356的Vdriver引脚连接到3.3 V,这样使得输出信号电平为3.3 V。
系统采用的AD7356采样频率由输入时钟信号决定,而采样通过使能引脚CS控制。在设定好采样频率后,A/D转换程序主要依靠对CS信号控制,并对输入得两路信号串并转换即可。
2.2 数据缓存
数据缓存主要是利用FPGA内自带的块RAM对多路信号进行排序、存储,然后按USB数据包大小打包传输,因此对于硬件(FPGA)不再多做介绍。
数据缓存的软件实现主要依靠FPGA内的双口RAM IP核。双口RAM由于有2个单独的数据输入和输出口,所以可以调节输入输出端口的速度,使得数据读取与输入速度可以方便的控制。另外,由于本系统有多路光信号,所以FPGA内还需要对各个双口RAM的读取进行控制,对各路信号读取顺序进行,其软件结构图如图3所示。每路A/D都有两个RAM轮流存储采集数据,一方面避免RAM出现数据溢出,保证数据不丢失;另一方面可以通过将RAM大小设定与USB数据包大小一致,使USB传输的控制简单。
2.3 USB通信
在系统中,USB控制器被配置为SlaVe FIFO模式,CY7C68013A Slave模式接口引脚的连接如图4所示,这样FPGA可以将USB控制器当成FI-FO来控制,而不用考虑USB标准的各种规则。而USB控制器则将USB标准的各种规则通过许多特殊寄存器来设置,将USB控制简化。
因此,此部分的软件实现包括2个部分。从图4可以看出,FPGA对各RAM轮流读取数据,由于RAM大小与USB数据包大小设定一致,直接把数据送入CY7C68013A即可。而FPGA把CY7C68013A当成FIFO来控制,所以该部分程序比较简单。而CY7C68013A内程序设计主要是通过固件程序对传输速度、传输方式、传输模式等进行设置。
USB支持4种传输类型:控制传输、中断传输、等时传输、批量传输。批量传输可以是双向的,也可以是单向的。它特别适合大数据量的传输,而且它对传输的准确性要求较高。因此,通过固件程序设定本系统采用Slave FIFO模式,批量(BULK)传输方式进行数据传输。
3 实验结果
为了方便实验,使用耦合器将一路光信号分为16路相同的信号,这样所有采集到的信号波形基本相同。实验时,AD7356设定为1 MHz采样速率,USB数据包大小为512 Kb,CY7C68013A采用异步SlaveFIFO模式发送数据,上位机采用Cypress公司自带的EZ-USB Interface软件采集实验数据。采集到的信号如图5所示,系统在16.7 Mb/s的传输速率下工作正常。
本文采用目前使用最为广泛的EZ-USB FX2LP芯片,给出了基于USB数据采集系统的设计。该系统充分表现了USB接口传输数据量大,传输速度快的特点,非常的适合大批量数据实时的传输场合,尤其适合数据采集系统和主机的通信,能够实时的处理采集到的数据。这克服了以往数据采集速度慢,采集数量少,接口复杂等特点,实现了数据采集的高速率、多通道。系统进行实测实验表明,在CY7C68013A设定为16.7 Mb/s的传输速率下,系统工作正常。
数据采集 系统 高速 FPGA USB 通信 基于 相关文章:
- 基于GPS的数据采集系统的研究(01-15)
- 无线射频识别技术在规模化奶牛场的应用(05-14)
- 瑞风智能一卡通社区解决方案(05-15)
- 短波发射机自动功率控制异常波形采集系统设计(08-29)
- 简易数字存储示波器的设计(07-24)
- 基于RFID技术的核心物品实时监控管理系统(05-31)