新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA软核的高速数据采集系统设计

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

作者:时间:2011-08-18来源:网络收藏

 (1)在没有来自PC机的控制命令情况下,如果FIFO_RD_EN=1,则FD[15:0]的数据传输方向为从到USB接口芯片(图6表示为FD_OUT[15:0]),即数据从FIFO输出至USB接口芯片;如果此时FIFO_RD_EN=0,则FD[15:0]呈高阻态。
 (2)当有来自PC机的控制命令时,FD[15:0]的数据传输方向为从USB接口芯片到(图6表示为FD_IN[15:0]),即PC机的控制命令写入到USB接口芯片,再传输到内部命令分析器中。此时,命令分析器会根据命令控制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在数据采集系统中的应用,解决了硬件电路设计繁琐复杂的问题,而且便于开发者对产品进行修改优化,可以大幅度地缩短产品的开发时间。本系统通过了硬软件的联合调试,系统工作正常,稳定性良好。
参考文献
[1] Xilinx Corporation. Spartan-3AN FPGA family data sheet. 2009.
[2] Cypress Semiconductor Corporation. EZ-USB FX2 CY7C68013 technical reference manual version2.2. 2003.
[3] 钱峰.EZ-USB FX2单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2006.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭