>
首页 » 业界动态 » 基于CPLD和USB的高速数据采集系统的设计

基于CPLD和USB的高速数据采集系统的设计

作者:刘来福  时间:2006-10-24 00:27  来源:
摘 要:介绍了CPLD和USB在基于数据采集系统的虚拟仪器的应用。通过软、硬件技术的结合,实现了对多路模拟信号的采集和多种波形的输出,充分发挥了虚拟仪器的优势。该系统利用CPLD芯片及高速、高精度的ADS8364芯片和多通道的DAC7624/25芯片,开发了高速数据采集和波形发生器系统,并使用USB接口在主机中实现数据存储与显示。

关键词:虚拟仪器;CPLD;USB接口;信号采集

引言

虚拟仪器是在以通用计算机为核心的硬件平台上,由用户自己定义,具有虚拟面板,由测试软件实现测试功能的一种计算机系统。如今,大多数参数的测量都是通过电子测量仪器实现的,以电信号的形式表现出来,因此为微机进行数据采样提供了广阔的应用范围。文中介绍的一个数据采集系统,可广泛地应用于多种信号的测量。

随着现代科学技术的发展和计算机技术的普及,运用高速数据处理的场合越来越多,例如,高速数字信号处理、高速图象信息转换和语音实时处理系统等。由于这些应用场合要求运算速度快,实时性强,对CPU的要求越来越高,因此采用EMP128(CPLD)芯片作为核心处理器来完成数据的高速采集、缓冲和传输控制,使数据采集系统具有良好的灵活性和极强的实时性。高速串行口(USB)作为一种新兴的计算机外设总线标准,具有热插拔、速度快(包括低、中、高速)和外设容量大的特性,使其成为PC机的外围设备扩展中应用日益广泛的接口标准。文中设计并实现了基于CPLD芯片和USB2.0协议的USB芯片的一套高速、高精度数据采集分析系统。该系统的CPLD芯片负责系统的控制,采样结果通过USB送到计算机显示分析。计算机应用程序宜于实现丰富的图形界面,具有良好的人机接口。

图1 A/D与CPLD的接口电路

系统的主要组成部分

基于CPLD和USB的数据采集系统结构如图1所示。

A/D转换模块
该模块采用的高速、低功耗、六通道同步采样的16位模数转换器ADS8364,适用于噪声比较大的环境。每个输入端的ADCs保持信号用来保证几个通道能同时进行采样和转换,可以对单极性或双极性输入电压进行A/D转换。文中采用双极性输入方式,输入电压可以在±2.5,±5,±10V范围内。当ADS8364采用5MHz的外部时钟来控制转换时,它的采样率是250kHz,采样和转换可以在20个时钟周期内完成。地址/模式信号(A0,A1,A2)决定ADS8364的数据读取方式,可以选择单通道、周期或FIFO 模式。CPLD对A/D转换进行控制,并将转换结果送入SRAM进行缓存。A/D与CPLD的接口电路如图1所示。

波形发生模块
波形发生器是将存储在主机中的波形数据通过USB接口送入RAM进行缓存,再通过CPLD对D/A进行控制,产生所要求的波形。系统采用DAC7624/25芯片,其建立时间为10μs,功耗为20mW,分辨率为12Bit。4路模拟输出的D/A转换器,可以采用单电源或双电源的接法。输出电压为-2.5~+2.5V。

USB芯片
通用串行总线USB(Universal Serial Bus)是一种通用串行总线系统。FX2是第一个支持USB2.0同时向下兼容USB1.1规范的单片机。它既负责USB事务处理也兼具微处理器的控制功能,可用作USB外部设备的主控芯片。该芯片把USB2.0收发器、串行接口引擎SIE(Serial Interface Engine)、增强的8051内核、I2C总线接口以及通用可编程接口GPIF(General programmable Interface)集成于一体。

CPLD逻辑控制模块
CPLD逻辑单元强大,互联关系简单,传播延时小于3.5ns,适合于逻辑复杂、输入变量多的逻辑系统。用于控制整个系统,增大了系统的灵活性和实时性。系统中的CPLD采用了MAX7000系列的EPM7128 ,共有128个宏单元,2500个门,10ns延时。CPLD负责A/D和D/A模块的控制及数据的存储与读取。USB芯片与外部电路及主机的通信,是系统的控制核心。

系统的总体结构

虚拟仪器的硬件部分主要分为数据采集和波形发生器两大部分。图2是多通道高速数据采集系统的结构框图。

图2  系统结构框图

数据采集系统由CPLD芯片EPM128、USB接口芯片CY7C68013、模数转换芯片ADS8364和DAC7624/25、628512的SRAM 及其外围电路组成。原始信号通过处理,变成A/D可以采样的信号后送入采集系统,CPLD通过A/D转换器对输入电压信号进行单通道或多通道的采样,将16位的采样结果存储在两片横行并联的SRAM 628512中,存储的地址由CPLD构成的地址发生器产生,当SRAM存满,USB系统将数据从中读出,并通过数据线(D+,D-)送至主机。本系统可适用于多通道的高速采样,可以灵活地改变采样的通道,来实现单通道或多通道的采样;采样频率可以进行预置,来适应不同频率的输入信号。

信号种类包含正弦波、方波、锯齿波、三角波。输出幅值为-2.5~+2.5V。当要输出选定的波形时,先利用USB口将数据从主机中送到SRAM进行缓存,CPLD对D/A进行读写控制,输出电压可以通过电压放大器进行放大,达到要求的幅值。输出波形是通过改变每个周期输出点的个数来改变波形的频率的。通过改变D/A的输出通道实现对不同设备进行输入。

USB与上位机接口,负责与上位机进行通讯。上位机通过USB接口将A/D采样频率及通道选择的预置数据传送到CPLD,利用CPLD实现对A/D采样频率和通道的改变。系统采集的数据再通过USB接口送入上位机进行显示和分析。

使用CPLD和4046来实现A/D采样频率的改变,适用于不同频率的信号。通过预置分频器的数值,从而方便地改变采样频率,适合于从几十Hz到250kHz范围的信号。采样频率可以灵活改变,也避免了高频信号对整个系统的干扰。

系统软件设计

该系统的软件主要包括CPLD的系统控制程序、USB固件和应用程序。

系统流程
系统的流程图如图3 所示。系统上电复位后,完成初始化,设置A/D采样频率及采样通道,启动A/D开始采样。将其采样结果送入SRAM 进行存储。当其存满时,USB将数据读出,通过数据线送入主机。要选择输出波形时,先启动D/A,通过USB口将产生波形的数据读入到SRAM 进行缓存,再送到D/A的数据端进行D/A转换,输出要求的波形。

图3  系统流程图

设备固件(firmware)设计
固件负责辅助硬件来让设备双向交换数据,以完成USB通信。其主要功能是:接受并处理USB驱动程序的请求及应用程序的控制指令。FX2有2种接口方式,该系统采用SlaveFIFOs。这种方式的外部控制器可像普通FIFO一样对FX2的多层缓冲FIFO进行读写。FX2的Slave FIFOs工作方式可设为同步或异步,工作时钟可选为内部产生或外部输入;其他控制信号也可灵活地设置为高有效或低有效。

在接收过程,信号线上的数据流均以包的形式进行传输(如令牌包、数据包、握手包等),利用SIE 可对这些包的PID进行解码,并可对接收的数据进行CRC检查,然后把数据送到处理器中,最后返回一个握手包。如果发现数据有错,它会自动停止响应而不发出握手包,同时“告诉”主机稍后再重新发送该数据。在发送过程,当向主机发送数据时,SIE 可接收来自内部RAM 的数据和其他信号,然后将它按照USB要求的格式重新包装后送到D+,D-线上。

在开发中使用了控制传输和块传输。控制传输主要用来完成主机对设备的各种控制操作,也就是用来实现位于主机上的USB总线驱动程序(USBD.SYS)以及编写的功能驱动程序对设备的各种控制操作。块传输主要用来完成主机和设备间的大批量数据传输以及对传输数据进行错误检测(若发生错误,它支持“重传”功能)。

USB设备应用程序设计
应用程序是数据采集系统的核心,其主要功能为:设置A/D采样频率和采集通道、启动或关闭USB设备、检测USB设备、设置USB数据传输管道、对USB接口进行数据读写、显示并分析数据。

WindowsAPI 包含有3 个与设备交换的函数:ReadFile,WriteFil,DeviceIoControl。ReadFile ,WriteFile是一般用途的函数,用来读取与写入数据到驱动程序内。读取与写入的数据,是存储在函数所指定的缓冲区内。调用ReadFile函数所得到的数据不一定是从设备读出来的,可能是一个要求所存储在缓冲区内的数据。DeviceIoControl是一个双向传输的数据,是另一个缓冲区数据的函数,它包含一个码来识别一个特定的要求。

在应用程序开发中,可用VC++编制应用程序。可以把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile,WriteFile进行块传输。

系统调试界面及调试结果
文中开发的系统软件界面由A/D模式选择、D/A通道选择和命令窗口3 部分组成。其中,A/D模式选择有不同的A/D通道,共有8 种模式;D/A共有4种模式,可以选择不同的输出脉冲波形;采样频率可以选择,单通道模式选择范围从20Hz到250kHz。

图4 系统调试结果

图4为利用本系统D/A输出得到的正弦脉冲波形图。图中,波形1为从信号发生器输入数据采集系统的50Hz正弦波波形,波形2 为从系统D/A口输出的50Hz正弦波波形,可以看出,系统的采样精度及D/A输出精度都非常高。

结论

本虚拟仪器数据采集系统可以完成多路双极性输入模拟量的采集,输出多种信号波形,实现以CPLD为核心,USB为接口的高速多通道数据采集系统,可适合于高速、实时性信号的数据采集和处理。由于具备计算机的强大资源,虚拟仪器有利于产品的开发和研制。文中介绍的数据采集系统,只需配置测量所需的传感器,设计相应的信号调理电路,就可以对各种模拟量进行采集。所采集到的数据可以在计算机上实现存储,计算,控制,从而具有广泛的使用价值。并且所采用的USB接口符合微机接口高速、串行的发展方向。

相关推荐

浅析目前虚拟仪器监测系统的特点及优点

虚拟仪器  监测  2013-12-19

智能仪器仪表发展新趋势:虚拟仪器兴起

仪器仪表  虚拟仪器  2013-08-01

多元化整合:PCB抄板搭上尧顺科技顺风车

PCB  CPLD  2013-03-12

艾睿电子(Arrow)与FTDI签署全球经销协议

艾睿电子  USB接口  2012-05-23

Altium与Altera发布全新在线元件资源和软件支持

Altium  FPGA  CPLD  2012-02-15

nextboard助力中科大虚拟仪器实验室建设

在线研讨会
焦点