首页 » 技术文章 » 一种新型高速数据采集系统的设计与实现

一种新型高速数据采集系统的设计与实现

作者:  时间:2011-04-13 21:43  来源:EDN

  A: 调用用户函数TD_Poll( )

  B: 是否决定标准设备请求是未定(或等待决定)的。如果已决定,它将会分析所收到的命令请求,并且加以响应。

  C: 是否决定USB核心已经报告了USB中止(Suspend)事件。如果已决定,它会调用用户函数TD_Suspend()

  若取得成功的返回,则测试回复(Resume)事件。反之,如果未检测到,将会把微处理器放人中止模式中。当回复事件被检测到时,将调用用户函数TD_Resume( ),并且连续地跳回至步骤C

  D: 若从TD_Suspend()函数中未收到成功的返回,再连续地跳至步骤C

  实际上Cypress公司提供的这个固件框架已经能够使USB芯片正常的工作,但是,它并不能满足本系统的需要。需要添加自己的控制代码来控制USB芯片,使之能够完成需要的工作。

  框架程序中为提供了两个函数TD_Init( )TD_Poll( ),根据上面的分析发现,这两个函数分别完成了系统的初始化工作和系统的用户期望工作。在此采集系统中,只需要修改这两个函数,添加自己的功能函数,即可完成系统需要的功能。

  在TD_Init( )中,需要添加自己的代码来完成系统的初始化,因为系统采用了2端点和6端点的批量读写功能,所以,将2端点配置单缓冲区512字节,两倍缓冲区,作为In端点,将6端点配置为单缓冲区512字节,两倍缓冲区,作为Out端点,配置系统为异步Slave FIFO 模式。

  在TD_Poll( )中,通过检测2端点和6端点缓冲区数据的状态,来及时的读取这两个缓冲区中的数据,然后调用自己定义的函数DecodeInst( ), ImplementInst( )来完成对于控制指令的译码和执行工作。

  驱动程序

  基于EZ-USB FX2的二次枚举的特性,需要编制两个驱动程序:一个驱动程序loader.sys,它将在主机上编写好的固件程序在主机系统启动时下载至FX2RAM中;另一个驱动程序USBBULK.sys为实际安装的驱动程序。另外,为实现在系统启动时,自动安装两次驱动程序,还需编写自己的ezloader.inf文件实现。loader.sys需要自己编写生成,USBBULK.sys可使用CYPRESS公司的通用驱动程序。

  用户程序

  用户程序是系统与用户的接口,它通过通用驱动程序完成对外设的控制和通信。在编写用户程序时,首先要建立与外设的连接,然后才能实施数据的传输。启动采样后,为了保证不丢失数据,用户程序应建立一个新的工作线程专门获取外设传来的数据。程序中主要用到两个API函数:CreateFile()DeviceIoControl()CreateFile()取得设备句后,DeviceIoControl()根据该句柄完成数据传输。

  系统通过DeviceIoControl()完成的工作如下:

  数据批量读,数据批量写。

  结语

  为了验证本系统采集数据的准确性,利用信号源产生的正弦波信号对系统进行验证。测试结果如图3所示。

3 测试结果

  通过实际测量,该系统测量数据与实际情况完全符合,单通道采样速率最高可达到10Mbps

  整个采集系统由USB2.0数据传输、FPGA、逻辑电路、和计算机等组成,通过对该系统的硬件电路设计和软件编程分析,以及实际测量结果的比较,证明了该系统的可行性。由于采用高速USB2.0接口,本系统具有即插即用、高速采集等特点,具有很好的扩展性。该采集系统已经在达接收机的测试系统中得到应用。

相关推荐

Teledyne LeCroy升级了超高速USB3.0协议分析仪平台

Teledyne  分析仪  USB  2013-09-17

连接器的大量生产充分满足着各行业所需

连接器  USB  2013-08-01

精密化精细化是连接器的发展趋势分析

连接器  USB  2013-06-28

USB小电器办公室受宠 插电不宜过久注意安全

USB  电器  2012-09-04

赛普拉斯宣布SuperSpeed USB 3.0控制器通过USB-IF认证

赛普拉斯  USB  2012-01-12

瑞萨USB 3.0-SATA3桥接单片系统通过USB-IF认证

瑞萨电子  USB  SoC  2011-12-26
在线研讨会
焦点