基于FPGA软核的高速数据采集系统设计

发布者:数字思维最新更新时间:2011-08-04 来源: 微型机与应用关键字:USB  软核  数据采集系统 手机看文章 扫描二维码
随时随地手机看文章
   

摘  要: 为解决不同性能指标数据采集系统开发时间较长的问题,提出了一种将FPGA软核技术应用于高速数据采集系统设计的方法。系统以Xilinx公司的FPGA为例设计软核,使用VHDL语言对软核进行模块化设计。介绍了数据采集系统的硬件电路、USB固件程序、USB驱动程序以及LabVIEW上位机的设计。该数据采集系统结构可移植性强,有利于缩短同类型系统设计研发周期。
关键词: FPGA;USB;软核;数据采集系统

 数据采集在现代工业生产及科学研究中的重要地位日益突出,同时对实时采集、实时传输、实时处理的高速数据采集的要求也不断提高。此外,对于不同的场合,数据采集系统的数据采样参数要求也不同。工业生产与科研领域中对数据采集研发提出了以下的要求:(1)接口简单灵活且有较高的数据传输率;(2)采集器体积小、抗干扰能力强、能够对数据做出快速的存储,并及时进行分析和处理;(3)设计周期短,能快速适应市场需求。
USB2.0以其即插即用、支持热插拔的灵活性,以及高达480 Mb/s的传输速率,成为了高速数据传输接口的首选。而FPGA以其工作频率和集成度高、稳定性良好、抗干扰能力强等优点,逐步成为各领域数据采集数字电路的首选。FPGA集成软核有设计周期短、设计投入少等优越性,且不涉及具体的物理实现,可以方便移植到各种FPGA硬件平台,极大提高了它的灵活性和适应性。
1 系统方案与结构
 数据采集系统性能指标修改主要集中在A/D转换模块与FPGA控制模块上,在USB2.0接口的硬件、固件、驱动程序的设计以及PC机应用软件的设计基本没有变化。而A/D转换模块的修改可以通过A/D转换芯片的选择及更改输入信号调理电路设计来实现。但更换不同的A/D转换芯片可能给A/D转换的启停控制、数字信号的缓存等方面带来较多的改动。而FPGA软核的模块化设计可以极大地减少这方面的改动。
 本文以TI公司的低功率高性能A/D转换芯片ADS800为例介绍系统的设计。图1为本数据采集系统的结构框图。模拟信号经过THS4504全差分放大器进行信号差分放大后,输入到ADS800进行A/D转换。为减少不同系统中FPGA软核改动的工作量,FPGA内部按功能设计了三个软核作为系统的控制单元。CY7C68013作为USB控制芯片设置为从属FIFO模式(Slave FIFO Mode),负责数字信号在采集系统与PC机间的传输;用户通过LabVIEW设计的PC机应用软件,在驱动程序的驱动下与数据采集系统进行命令以及数据的传输,以便对数据采集系统采集到的数据进行实时处理。

 

 

2 系统硬件设计
2.1 模数转换电路

 数据采集系统采样参数调整的本质在于模数转换电路的改变,设计者只需要更换不同的A/D转换芯片、重新设计其硬件电路即可达到目标。本系统中模数转换电路由信号调理电路与高速A/D转换器组成。信号调理电路负责对待测模拟信号进行差分放大,高速A/D转换器负责模拟信号到数字信号的转换。
 为了能精确检测微弱信号,数据采集系统的ADC前加入了全差分放大器THS4504,采用ADS800作为A/D转换芯片。ADS800含12 bit流水线型A/D转换内核,支持差分输入,最高转换速率高达40 MHz[1],极好地满足了本系统采样频率的要求。
2.2 FPGA芯片外围电路
 本系统FPGA采用Xilinx公司的XC3S200AN-4-FT256-C芯片。该芯片拥有20 万门逻辑单元,内含16 个18 KB的块存储器(Block RAM)与30 KB分布存储器(Distributed RAM),最高工作频率达到326 MHz[2],可满足本系统的时序需求。
 FPEA芯片外围电路:
 (1)FPGA与A/D接口模块
    ADS800的控制信号由FPGA生成,ADS800的转换时钟设定为30 MHz,由FPGA的时钟分频获得。FPGA与ADS800的连接示意图如图2所示。本设计中,FPGA通过ADC_OE来控制ADS800转换数据输出的启停;ADS800的30 MHz工作时钟由FPGA的60 MHz工作时钟经过二分频得到;ADS800的数据由并口输出,FPGA内部FIFO控制单元将接收到的12 bit数据转换成16 bit数据存入FPGA内的FIFO中。

 当更换不同的A/D转换芯片时,A/D转换芯片与FPGA的连接有所不同。但对于并行输出、流水线型的A/D转换芯片,只需模仿上述连接方式,对输出位数、控制时序以及FPGA时钟分频大小等做合适的修改即可。
 (2)FPGA与USB接口模块
 本设计中使用Cypress公司生产的EZ-USB FX2LP系列的CY7C68013芯片作为USB2.0协议的微控制器芯片。由于该芯片支持480 Mb/s高速传输,为本设计数据传输提供了速率保证。FPGA与CY7C68013的连接图如图3所示。

 
 FLAGA、FLAGB脚可通过PINFLGSAB、PINFLAGSCD寄存器来选择其工作在索引模式还是固定模式。本设计中被设置为固定模式。其中FLAGA表示EP2的空状态(FIFO_EMPTY),FLAGB表示EP6的满状态(FIFO_FULL)。
2.3 USB接口外围芯片电路
 本设计使用容量为16 KB的EEPROM芯片AT24C016A存储,并设置CY7C68013的VID与PID。在CY7C68013上电并脱离复位状态后,内部逻辑会检查I2C端口上是否连接有串行EEPROM。如果有,则判断连接上的EEPROM第一个字节是0xC0还是0xC2。本设计中设置EEPROM第一个字节为0xC0,设置VID=0x1234、PID=0x2211、DID=0x0001。在这种情况下,由CY7C68013内核提供USB描述符,使用EEPROM存储的VID/PID/DID值替换CY7C68013内部的值,并设置RENUM=0。这样,在设备重新列举后,芯片内的程序代码会以全新的自定义设备来加以呈现。
3 FPGA软核设计
 FPGA内部控制单元的功能分别由三个软核负责完成,分别为:ADC接口控制单元、FIFO控制单元以及USB接口控制单元。三个软核连接示意图如图4所示。

3.1 ADC接口控制单元
 ADC接口控制单元控制数据采集的启停和传输。数据采集开始时,ADC接口控制单元将时钟信号分频为30 MHz供ADS800作转换时钟ADC_CLK使用。此时控制单元内寄存器CLK_CNT对ADC_CLK转换时钟进行周期计数,当经过7个时钟周期后(ADS800转换延时为6.5个时钟周期,为了使转换数据稳定,本设计再延时半个时钟周期输出)即CLK_CNT=8时,CLK_CNT清零,FIFO写时钟(FIFO_WR_CLK)输出,同时端口FIFO_WR_EN置高电平,经ADC转换完成的数据在补齐16 bit后,随时钟FIFO_WR_CLK上升沿存入FIFO中。ADC接口控制单元状态机工作过程如下:
 (1)当FPGA上电或者复位后,状态机进入空闲状态(IDEL)。
 (2)在空闲状态下,当FIFO不满(FIFO_FULL=0)且ADC_START=1时,状态机进入转换状态(CONVERT),此时,ADC_CLK输出ADC数据转换时钟。
 (3)在转换状态下,当FIFO_WR_EN=1,即数据转换延时结束时,状态机进入写状态(WRITE),此时CLK_CNT清零,ADC_OE和FIFO_WR_EN都置为高电平,FIFO_WR_CLK输出FIFO写时钟。
 (4)在任何状态下,如果FIFO已经写满(FIFO_FULL=1)或者ADC_START=0时,自动跳转到空闲状态。
ADC接口控制单元状态机示意图如图5所示。

[page]3.2 FIFO控制单元
 本设计首先使用FPGA内部Block RAM生成FIFO。由于A/D接口控制单元输出数据宽度为16 bit,因此,FIFO宽度也设置为16 bit,深度设置为4 KB。FIFO可以使用Xilinx ISE套件中的Core Generator生成器,由Core Generator生成的FIFO软核配合控制部分构成FIFO控制单元。FIFO控制单元内部结构示意图如图6所示。
由于本设计中数据采集系统处于异步从属FIFO模式,且USB接口芯片读数据的速度与ADC数据写入FIFO的速度不同。为解决因读写速度不同而可能带来的数据读写错误问题,FIFO软核上的FULL与EMPTY两信号线可以分别指示FIFO满与空的状态。当FIFO处于满状态时,FIFO_FULL信号置高电平,由ADC控制单元通知ADC停止采集数据;当FIFO处于空状态时,FIFO_EMPTY信号置为高电平,由USB接口控制单元通知USB接口芯片停止读FIFO。FIFO的读时钟信号(FIFO_RD_CLK)与读使能信号(FIFO_RD_EN)由USB接口控制单元提供,写时钟(FIFO_WR_CLK)与写使能信号(FIFO_WR_EN)由ADC接口控制单元提供。FIFO控制单元的工作有以下两种特殊情况:

 (1)在没有来自PC机的控制命令情况下,如果FIFO_RD_EN=1,则FD[15:0]的数据传输方向为从FPGA到USB接口芯片(图6表示为FD_OUT[15:0]),即数据从FIFO输出至USB接口芯片;如果此时FIFO_RD_EN=0,则FD[15:0]呈高阻态。
 (2)当有来自PC机的控制命令时,FD[15:0]的数据传输方向为从USB接口芯片到FPGA(图6表示为FD_IN[15:0]),即PC机的控制命令写入到USB接口芯片,再传输到FPGA内部命令分析器中。此时,命令分析器会根据命令控制ADC_START信号,进而控制ADC数据采集的启停。
 无论在上述哪种情况下,如果FIFO_CLEAR=0、 FIFO_WR_EN=1且FIFO_FULL=0时,FIFO_WR_CLK都有相应的时钟信号输入,此时ADC转换完成的数据随写时钟通过ADC_DATA[11:0]写入FIFO中。
3.3 USB接口控制单元
 USB接口控制单元主要完成两种功能:(1)通过USB接口芯片实现把数据传输到PC机。此时FIFO中的数据先写入EP6,当EP6写满时,USB接口芯片自动将数据打包传输到PC机。(2)协助FIFO控制单元接收来自PC机的命令数据。此时命令数据从PC机通过USB接口传输到EP2,然后读取EP2的数据到FIFO控制单元的命令分析器中。USB接口控制单元状态机工作如下:
 (1)当FPGA上电或者复位后,状态机进入空闲状态(IDEL)。
 (2)在空闲状态下,当EP2不空(EP2_EMPTY=0)时,进入读命令状态(READ_COMMAND),此时令EP_ADDR[1:0]=00,FD[15:0]的传输方向由EP2指向FPGA,控制单元从EP2中读出PC机传来的控制命令。
 (3)随后进入存储命令状态(SOTRE_COMMAND),控制单元把传来的控制命令存储到FIFO控制单元内部的指令分析器中。同时控制单元置FIFO_CLEAR=1,即把FIFO控制单元内的FIFO数据清空,以准备存储新的ADC转换数据。任务完成后回到空闲状态。
 (4)优先处理PC机通过EP2传来的命令,因此优先查看EP2的空状态。在空闲状态下,当EP2为空(EP2_EMPTY=1)且FIFO控制单元内FIFO不为空(FIFO_EMPTY=0)且EP6不满(EP6_FULL=0)时,进入写数据状态(WRITE_DATA)。在写数据状态下,EP_ADDR[1:0]=10,控制单元选中CY7C68013的EP6,FD[15:0]方向由FPGA指向EP6,同时FIFO_RD_CLK产生一个周期时钟,FIFO_RD_EN置为高电平,一个数据从FIFO控制单元内FIFO中读出。
 (5)随后进入传输数据状态(TRANS_DATA)。在该状态下,令SLWR=0,数据从FIFO控制单元内FIFO写入CY7C68013的EP6中。任务完成后进入空闲状态。
 USB接口控制单元状态机示意图如图7所示。

4 USB接口芯片程序设计
4.1 USB固件程序

 固件程序是一种嵌入在硬件设备中的软件,通过执行固件程序,硬件设备可以完成各种特定的功能。在本设计中,CY7C68013芯片的固件程序是整个系统传输的控制核心,主要完成以下五种功能:(1)CY7C68013芯片的初始化;(2)辅助硬件完成设备的重新枚举;(3)中断处理;(4)数据接收与发送;(5)对外围电路进行控制。
Cypress公司为提高用户的开发效率,提供了EZ-USB FX2LP开发套件,其中包含了一个完整的固件程序架构[3]。该架构主要包含了EZ-USB FX2LP芯片的设备初始化、处理标准USB设备请求与电源管理等服务功能。用户在开发时,只需使用Keil uVision3在固件架构下提供相应的USB描述符以及编写外部设备功能程序代码。固件架构流程图如图8所示。

 主函数是固件架构流程的具体实现。主函数首先对内部状态变量进行初始化,随即调用TD_Init()进行用户设备初始化,TD_Init()函数运行完成后,使能中断,随后进入主循环。
4.2 USB驱动程序设计
 USB驱动程序位于固件程序与应用程序之间,是USB设备与PC机的通信接口。Cypress公司为用户设计了一款通用驱动程序包(ezusb.sys),可以完成应用程序与USB接口的通信与控制任务。本设计即使用该通用驱动程序。
5 应用程序设计
 应用程序通过USB驱动程序与USB接口进行通信。本设计使用LabVIEW设计应用程序。LabVIEW为用户提供了简单、直观、易学的图形编程法,相比于传统的编程语言,LabVIEW能大量地节省开发时间。用户通过LabVIEW应用程序可以进行对数据采集系统的控制,而且采集到的数据在控制界面中实时显示。
 本文介绍了一款较为通用、基于USB2.0接口的高速数据采集系统设计方法,通过FPGA软核在数据采集系统中的应用,解决了硬件电路设计繁琐复杂的问题,而且便于开发者对产品进行修改优化,可以大幅度地缩短产品的开发时间。本系统通过了硬软件的联合调试,系统工作正常,稳定性良好。

关键字:USB  软核  数据采集系统 引用地址:基于FPGA软核的高速数据采集系统设计

上一篇:LG电子为其高清电视产品线选用了Tensilica的HiFi音频DSP和编解码软件库
下一篇:基于FPGA的数字磁通门传感器系统设计和实现

推荐阅读最新更新时间:2024-05-02 21:31

USB总线接口芯片CH371及其应用
1 引言 CH371是一种USB总线通用接口芯片。该芯片具有8位数据总线以及读、写、片选控制线和中断输出,可以方便地挂接到单片机、DSP、MCU等控制器的系统总线上;在计算机系统中,通过CH371的配套软件可提供简洁易用的操作接口,从而使其与本地端的单片机通讯就如同读写硬盘中的文件一样简单。由于CH371屏蔽了USB通讯中的所有协议,因而可在计算机应用层与本地端控制器之间提供端对端的连接。在不需要了解任何USB协议或者固件程序甚于驱动程序的情况下,就可轻松地将并口、串口产品升级到USB接口。     CH371的主要特点如下: ●屏蔽了USB协议,可在计算机应用层与本地端之间实现端对端的连接。 ●具有单向数据流和请求加应
[嵌入式]
基于FPGA的USB2.0虚拟逻辑分析仪的设计与实现
引言 传统的逻辑分析仪体积庞大、价格昂贵、通道数目有限,并且在数据采集、传输、存储、显示等方面存在诸多限制,在很大程度上影响了其在实际中的应用。选用高性能的FPGA芯片进行数据处理,充分利用PC的强大处理功能,配合LabView图形化语言开发的虚拟逻辑分析仪,其数据处理和传输速率大大提高,适用性极大增强,其显示、操作界面和低廉的成本较之传统的逻辑分析仪具有极大的优势和发展前景。 工作原理 本设计选用Altera公司的Cyclone系列FPGA器件EP1C3进行数据采集和处理,外接SRAM,用于数据的存储。系统通过高性能的PIC单片机PIC18F6620完成与PC的通信,接收PC发出的触发、配置信息并控制系统将
[测试测量]
基于FPGA的<font color='red'>USB</font>2.0虚拟逻辑分析仪的设计与实现
谷物品质快速检测仪关键部件的设计
一、概述 谷物品质快速检测仪是应用近红外光谱分析技术来检测谷物的内部品质,如粗蛋白,水分等。随着光学、计算机处理技术、化学计量学理论和方法的不断发展,以及新型近红外仪器的不断出现和软件版本的不断翻新,近红外光谱技术的稳定性、实用性和准确性不断提高;其分析快速,简便,非破坏性以及可同时测定多成分的优点不断为人们所认识;不仅可用来测定样品的水分、粗蛋白、脂肪、淀粉等常量成分,还被用来测定氨基酸、脂肪酸,以及对生产加工过程进行在线质量控制;分析对象也从粉样样品扩展到分析完整籽粒样品 。 本文研究的目的就是快速、准确地测得谷物品质的相关参数,所以仪器的性能就体现在快速、准确的测试并分析测试结果的能力。图1为近红外光谱仪的装置示意图,近
[测试测量]
谷物品质快速检测仪关键部件的设计
小尺寸大功能高速度,PNY发布迷你USB 3.1优盘
随身移动存储方面,U盘的地位似乎还无可撼动。 日前,PNY(必恩威)更新了Elite-X Fit家族产品,将最大容量从256GB翻番到512GB,也就是可存储超过9万张2000万像素照片。 这款产品采用超迷你设计(长宽2x1.5厘米),也就是大拇指甲盖大小,USB 3.1 Gen1 Type-A接口,最大传输速度200MB/s,号称是USB 2.0的30倍。 价格方面,99.99美元(约合709元),已经开卖。 简单查了下,国内在售的USB 3.0 Elite-X Fit 512GB为779元。
[物联网]
小尺寸大功能高速度,PNY发布迷你<font color='red'>USB</font> 3.1优盘
赛普拉斯扩充其高集成度USB和MCU产品线
  USB市场的领导者 赛普拉斯 半导体公司近日发布其新型 enCoRe ™ V全速USB外设微控制器( MCU )和 enCoRe V LV(低电压)无线 MCU 。这一全新高集成度系列产品可提供最多32KB闪存,3个16比特计时器和最多36个通用I/O(GPIO),以适应人机接口设备( HID )中日益增强的多媒体功能需要。 赛普拉斯 同时还推出CY3660 enCoRe V / LV开发套件,可缩短激光鼠标、游戏控制器和键盘、无线收发器、遥控器、手机附件和现场销售工具的开发时间。   系统内可重编程的 enCoRe V 和 enCoRe V LV MCU 具有设计灵活性,同时拥有10比特ADC、可模拟E
[单片机]
避免USB 3.0设备干扰
如果在使用2.4GHz的无线鼠标、键盘时,电脑上又连接了一个USB 3.0设备,例如USB 3.0的移动硬盘,那么无线鼠标和键盘在输入字符或者移动光标时,可能会经常出现响应延迟等问题,这是为什么呢?   此类故障主要是由于无线鼠标、键盘受到了USB 3.0扩频时钟技术产生的2.4GHz波段射频“噪音”干扰,目前仍然没有彻底的解决办法,但我们可以尽可能地减少不良的影响。首先,可以让USB 2.0无线设备尽量地靠近接收器,并且在使用USB 3.0设备时,尽可能地远离USB 2.0无线设备的接收器,必要时可以考虑通过USB延长线将USB 2.0无线设备的接收器放置在其他的地方,尽可能地远离USB 3.0接口。USB 3.0接口有时被
[嵌入式]
大联大友尚集团推出基于Diodes产品的无线电动工具USB PD接收方案
2022年10月18日,致力于亚太地区市场的领先半导体元器件分销商---大联大控股宣布,其旗下友尚推出 基于达尔科技(Diodes)AP33772芯片的无线电动工具USB PD接收方案。 图示1-大联大友尚基于Diodes产品的无线电动工具USB PD接收方案的展示板图 随着电动工具市场逐渐扩大,电动工具无绳化、轻便化的发展趋势明显,越来越多的电动工具将锂电池代替有绳充电作为其动力源。在这种形势下,电动工具需要配备一款通用的充电接口来满足随时随地的充电需求。对此,大联大友尚基于Diodes AP33772芯片推出了无线电动工具USB PD接收方案,该方案可兼容市场上98%的快速充电器,给客户提供真正便捷的快充体验。
[电源管理]
大联大友尚集团推出基于Diodes产品的无线电动工具<font color='red'>USB</font> PD接收方案
51单片机控制SL811HS的USB主机底层驱动
引言 基于USB接口的设备使用方便,性价比高,因此在人们的工作和生活中得到了广泛的应用,如U盘,移动硬盘,光驱,USB摄像头,USB鼠标键盘等,同时,51系列单片机以其成熟的技术和高性价比吸引了大量国内用户,被广泛应用于测控和自动化领域,因此,如果在51单片机系统中增加USB主机接口,实现对USB从机设备的控制,则该单片机系统可以充分利用现有的各种USB从机设备,大大扩展单片机系统功能。 本设计实现了在51单片机系统中增加USB主机功能,采用普通51单片机外接专用USB接口芯片的方案,这种方案虽然会使系统传输速度受到限制,而且在稳定性有所欠缺,但此方案设计灵活性高,且易于移植,为低成本产品的开发提供了广阔前景,设计中采用51单
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved