基于USB 2.0的高速数据采集卡在虚拟仪器中的应用
虚拟仪器,就是在通用计算机平台上,用户根据自己的需求定义和设计仪器的测试功能,与传统仪器相比,虚拟仪器在智能化程度、处理能力、性能价格比、可操作性等方面均具有明显的技术优势。
本文将着重介绍一种新型优良的下位机—基于USB2.0的高速数据采集卡在虚拟仪器中的应用。
本文重点分析的下位机即智能A/D,是虚拟仪器硬件设备中的关键环节。下位机通过特定接口接受来自上位机的指令并向上位机提供自身所处的状态:在收到采集指令后,对传感器发送的模拟电信号进行A/D采样以转化为数字信号,然后将数字信号通过USB接口传给上位机。
本系统的下位机支持2个通道的传感器信号进行A/D转换,其最高采样效率为120MHz,采样转换精度为8位,系统采用了一个内含先进先出(FIFO)内存的USB2.0控制芯片,该内存用于存放A/D转换后的数据,使用FIFO可以有效地缓冲采集数据,减少频繁的指令传送,使上位机有更多的时间进行其他处理,并且不容易丢失数据。该下位机可以编程控制采集频率和采样增益,具有较大的灵活性。
基于USB2.0的高速
数据采集卡
硬件系统
虚拟仪器硬件的核心部分是USB设备接口模块,其功能是由硬件和软件共同来完成的。USB接口示意图如图2所示。下面介绍一下主要功能模块器件的选择和功用。
ADC的选择
本设计中选用了AD9059。该器件是8位单片双通道ADC,具有高速、高性能、低功耗及易使用等特性,60MSPS的编码速率和120MHz的最大功率模拟带宽使其在多路数据采样系统中表现出优秀的动态性能。大部分情况下,AD9059仅需要一个单极性的5V电源和一个编码时钟即能正常工作。编码时钟提供与TTL/CMOS兼容的逻辑数据输出,并控制两个A/D转换通道同时对数据进行采样。如长时间不需要采集数据,可启动休眠模式使总功耗小于12mW。ADC的时钟及控制信号等由CPLD提供。
CPLD的选择
在高速数据采集卡中,时序复杂而且精细,可能会因为一个门的时延,而导致整个硬件电路的失败。所以在本设计中采用了CPLD来实现电路的数字控制功能。
CPLD主要任务是负责在EZ-USB FX2(即CY7C68013)处于Slave FIFO模式时实现读/写控制信号、时钟、输出使能、端点的选择以及对放大器和ADC的控制等功能。?
基于CPLD容易开发升级的优点,在本设计中,所有的数字电路部分,全部是在CPLD内实现的,本设计采用了Lattice公司的ISP1032芯片,所用的EDA软件是Lattice公司的ispEXPERT系统,编程语言为ABEL语言。
经过在实践中检验,在高速数据采集卡中,用ISP1032来实现数字逻辑电路功能,可以使高速数据采集卡工作稳定,各方面性能良好。
信号调理模块
在高速数据采集系统中, 现场输入信号是高频的模拟信号,信号变化的范围都比较大,如果采用单一的增益放大,那么放大以后的信号幅值有可能超过A/D转换的量程,所以必须根据信号的变化相应地调整放大器的增益。在自动化程度较高的系统中,希望能够在程序中用软件控制放大器的增益,经过考虑本文选择具有增益可编程功能的芯片—AD8321。该芯片具有频带宽、噪声低、增益可编程且易于与单片机进行串行通信等优点,十分适合在数据采集系统做前置放大。程控放大模块的的控制字可在labview设定,再经过USB接口由EZ-USB FX2传给AD8321。
USB控制器
数据采集接口卡是硬件部分的核心,选择合适的能适用于USB协议的芯片是关键。EZ-USB FX2(即CY7C68013)是世界上首批USB2.0集成微控制器。其内部集成了USB2.0的收发器、串行接口引擎(SIE)、增强的8051微控制器和一个可编程的串行接口。
在外设未通过USB接口接到PC机之前,外设上的固件存储在PC上;一旦外设连接到PC机上,PC先确认外设身份(即读设备描述符),然后将该外设的固件下载到芯片的RAM中,这样在开发过程中当固件需要修改时,可以在PC机上修改好后,下载到芯片中。
固件开发
设备固件是设备运行的核心,它控制整个硬件系统的运行,并负责处理PC机发来的各种USB请求,以完成它们之间的数据传输。其主要功能包括控制放大模块,实现通道选择;控制A/D模块的数据采集;通过FX2实时上传采集数据给PC;控制FX2芯片接收并处理USB设备驱动程序的请求(如设置USB接口状态等多种USB协议标准请求)等。
由于固件的开发流程比较复杂,故本设计中采用C语言进行开发,这样比较容易实现模块化和分层结构化的程序设计。
EZ-USB FX2固件库为用户提供了底层Keil C函数库。EZ-USB FX2软件开发包提供了该库的目标文件,同时还提供了该函数库的源代码,用户可以利用Keil C来重新编写该函数库。
EZ-USB FX2固件是使用EZ-USB FX2程序框架或直接使用EZ-US
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)