基于FPGA和USB2.0的数据采集系统

2014-04-29 00:44马玲
电子世界 2014年17期
关键词:存储模块外设固件

【摘要】本课题设计了一套基于FPGA和USB2.0的便携高速数据采集系统,以FPGA最小片上系统为控制核心,对A/D转换芯片TLC5510和USB2.0接口芯片CY7C68013的控制,来实现对信号的高速采集和传输。

【关键词】数据采集;FPGA;USB2.0;A/D转换

一、引言

近年来,对于数据采集系统的要求与日俱增,现代数据采集系统已经从传统的试验测量中的数据采集与处理跨入到工业与过程控制。它已成为现代工业自动化的不可缺少的一个组成部分。

本课题是对EDA技术的应用,即利用EDA工具实现基于FPGA的数据采集。本文按照EDA开发流程,采用Verilog语言对FPGA进行编程来实现数据采集和传输的功能。用Verilog语言编写代码,进行时序仿真,各模块都在逻辑综合工具QuartusⅡ下进行综合,并编程下载到FPGA芯片Cyclone IV系列EP4CE30F23C6芯片,经A/D转换器将模拟数据转换成数字数据,再通过USB2.0接口电路送入PC机输出。

二、系统总体设计

该系统主要由FPGA控制模块、A/D转换、USB接口部分组成,如图1所示。

A/D转换器将所要采集的模拟信号转换成数字信号,由FPGA接收、缓冲、存储,经USB2.0端口传回至主机工作站。高速A/D转换器采用转换速率为20MHz的TLC5510。

FPGA利用内部的SRAM提供数据输入/输出的双缓冲功能。采用双缓冲的原因同USB中的大端点所配置的双缓冲类似,均是防止数据的溢出和保证数据传输的连续性。本文选用Altera公司的Cyclone系列芯片EP4CE30F23C6。

CY7C68013是Cypress公司推出的EZ-USB FX2系列智能USB接口芯片。其作用是把A/D转换器采集的数据以高速的数据序列形式发送到主机。其中,USB2.0端口提供一个能和计算机连接的数据传输接口。

系统工作过程为:A/D转换器在FPGA的ADC接口控制电路控制下,把模拟信号转换成数字信号,并将指定通道的采样数据存入FPGA内部FIFO缓存。同时,FPGA的USB接口控制逻辑查询CY7C68013是否空闲,如果空闲,那么由FPGA的USB接口控制逻辑将指定通道的采样结果,从FPGA内部FIFO缓存送入CY7C68013的内部FIFO。当内部的FIFO容量达到一定程度后,CY7C68013自动将数据打包传送到PC机。由于固件程序把CY7C68013设置为特定的自动模式,因此CY7C68013把数据送往PC机期间的所有操作无需CY7C68013中CPU的干预,从而保证足够的数据传输速率。采样过程中FPGA的USB接口控制逻辑依次取走批量数据,在USB接口打包传送时A/D转换持续进行,FPGA内部FIFO也被持续写入转换结果。

图1 系统总体框图

三、硬件设计

本系统的硬件主要分为两个部分:A/D转换芯片TLC5510和FPGA构成的数据采集模块,另一部分由FPGA和USB控制芯片CY7C68013构成的数据传输模块。

(1)数据采集模块

经过处理后的信号进入模数转换电路,选用的高速A/D芯片是TI公司的TLC5510。它是一种采用CMOS工艺制造的8位高阻抗并行A/D芯片,能提供的最小采样率为20MSPS。由于TLC5510采用了半闪速结构及CMOS工艺,因而大大减少了器件中比较器的数量,而且在高速转换的同时能够保持较低的功耗。TLC5510与FPGA的接口电路如图2所示。

FPGA提供TLC5510 20MHz的工作时钟和使能输出信号OE,低电平有效。模拟信号经过TLC5510转换成数字信号后,将采样数据传给FPGA的FIFO保存。

图2 FPGA与TLC5510的接口电路图

(2)数据传输模块

在数据传输模块中,采用的是Cypress公司的EZ-USB FX2芯片CY7C68013。这是一款性能较高的USB2.0微控制器。在单芯片上集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。

为了保证较高的传输速度,使用不经过CPU的SLAVE FIFO(从FIFO)控制工作模式。在该方式下FX2的CPU不直接参与USB数据处理,而是简单地把FX2作为USB和外部数据处理逻辑之间的通道,数据流并不经过CPU,而是通过FX2的FIFO直接传输。FIFO由外部控制器控制,外部控制器可像普通FIFO一样对FX2的多层缓冲FIFO进行读写;与此同时,FIFO提供外部控制器所需的时序信号、握手和输出使能等信号。

在本设计中,采用Slave FIFO从机方式实现FPGA对FX2的控制。CY7C68013与FPGA的连接示意图如图3所示。修改FX2芯片提供的基本固件程序,设置端点EP2为输出端点,大小为1KB,FlagA为EP2缓存的空标志,低电平有效;端点EP6为输入端点,大小为1KB,FlagC为EP6缓存的满标志,低电平有效。

模块的基本工作过程为:当A/D采样数据存储满FPGA中的FIFO后,FPGA根据SLAVE FIFO的控制时序产生相应的控制信号,将在FIFO中的数据传输给FX2的内部端点FIFO,而当内部端点存储满后,FX2自动将数据传输到PC。外部控制器FPGA对FX2的控制进程如下:

①分配FIFOAddr[1:0]=10,FIFO指针指向输入端点,检查FIFO的满标志是否为1,假如Full=1,表示FIFO不满,转到②,否则保持在①;

图3 CY7C68013与FPGA连接示意图

②把外部数据indata放在FD上,同时将SLWR拉高,以使FIFO指针自动加1,然后转到③;

③假如有更多的数据要传输,转到②,否则转到①。

四、软件设计

数据采集系统的软件设计包括三个部分:FX2的固件程序,USB的驱动程序,FPGA控制模块。

(1)EZ-USB FX2的固件设计

固件程序是指运行在设备CPU中的程序。只有在该程序运行时,外设才能称为具有给定功能的外围设备。Cypress公司为FX2固件开发提供了一个固件库和固件框架,都是在Keil C51集成开发环境下开发的。固件库提供了一些常量、数据结构、宏、函数来简化用户对芯片的使用。固件框架实现了初始化芯片、处理USB标准设备请求以及挂起状态下的电源管理等功能。该框架不添加任何代码,编译后生成的.HEX文件载入芯片就能和主机进行基本的USB通信。用户主要的工作就是选择适合的传输方式,添加需要使用的端点,在框架预留的地方添加初始化代码和完成特定功能的代码。这样大大简化了用户对程序的编写,在不十分了解USB2.0协议的情况下,也能通过代码的编写,实现USB的传输功能。

(2)USB的驱动程序

该系统需要通用驱动程序和下载固件的驱动程序。通用驱动程序完成与外设和用户程序的通信及控制;而下载固件的驱动程序则只负责在外设连接USB总线后把特定的固件程序下载到FX2的RAM中,使FX2的CPU重启,模拟断开与USB总线连接,完成对外设的重新设置。FX2根据新的设置安装通用驱动程序,重新枚举外设为一个新的USB外设。

在Windows操作平台下,当有新的设备接入时,操作系统就会依据设备回送的有关信息自动的调用相应的设备驱动程序。

(3)FPGA控制模块。

在本系统中,FPGA构成了数据采集系统和数据传输系统的桥梁,完成对TLC5510的控制和数据的存储,同时也完成对EZ-USB FX2单片机的控制。因此在FPGA中需要构成3个模块:FIFO数据存储模块、控制模块、时钟分频模块。

FIFO数据存储模块主要完成对A/D转换数据的存储。每个FIFO存储模块的存储容量定位2048B,可通过Mega Wizard工具来调用。

控制模块要完成对TLC5510、FIFO存储模块和EZ-USB FX2的控制,这是整个系统的关键。根据系统实现的功能和各个模块的控制时序,控制模块将产生相应的控制信号,实现系统的采集和存储的功能。

系统提供的FPGA外部时钟频率为50MHz,通过分频模块产生TLC5510的最大采样工作频率20MHz。

五、结论

基于FPGA和USB2.0的数据采集系统满足现代高速设备对传输速度的要求,解决了传输速度慢的瓶颈。通过FPGA的模块设计、EZ-USB FX2的固件设计和上层应用程序设计,实现了整个系统的数据采集与传输。

参考文献

[1]刘克刚,陈曦,王卫兵,等.复杂电子系统设计与实践[M].北京:电子工业出版社,2010.

[2]潘松.EDA技术实用教程[M].北京:科学出版社,2006.3.

[3]齐洪喜.基于FPD&ASIC的专用USB接口设计与实现[D].山东大学,2006.

作者简介:马玲(1981—),女,湖北武汉人,华中科技大学武昌分校讲师,主要从事通信专业的教学与研究工作。

猜你喜欢
存储模块外设固件
Burden of Cirrhosis and Other Chronic Liver Diseases Caused by Specific Etiologies in China, 1990−2016:Findings from the Global Burden of Disease Study 2016
MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
数据采集系统在环保工程中的应用研究
基于固件的远程身份认证
提取ROM固件中的APP
一种通过USB接口的可靠固件升级技术
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
多路手机固件升级工具设计
弹载数据存储模块抗高过载防护技术研究
外设天地行情