基于CPLD的高速数据采集系统的设计与实现论文_李小斌,张罗

(西安电子工程研究所 陕西西安 710100)

摘要:高速数据采集系统在信息科学的各个领域中应用越来越广泛,而基于单片机、ARM的数据采集技术已经很成熟,在对速度要求越来越苛刻的当代社会,这些技术已经显得有些力不从心,我们必须开发新的更高速的数据采集系统才能跟上信息产业发展的脚步,而随着可编程逻辑器件这些年来的迅猛发展,它以其极高的集成度,稳定的性能以及高速、易用的特点,在信息科学的各个领域都得到了广泛的应用,本文提出了一种基于CPLD的高速数据采集系统的设计方法。

关键词:基于CPLD;高速数据;采集系统;设计与实现

1、前言

数据采集技术是数字系统的重要部分,它与传感器技术、信号处理技术、计算机技术一起构成了现代检测技术的基础。目前数据采集系统已经被广泛的应用。在很多实际应用中,传统的采集系统已经不能满足采集要求,需要采样速度很高的甚至是超高采集系统。本文提出了一种基于CPLD的高速数据采集系统的设计方法。通过CPLD控制数据连续采集、缓冲,然后通过MCU(C8051F430)读取缓存在SRAM中数据,并且通过USB2.0将缓冲区数据转移到硬盘管理卡,由硬盘管理卡将数据存入海量硬盘。再利用PC机的强大数据处理功能,MicrosoftVisualC++6.0的MFC类库,设计出一套集数据采集、处理和分析的高速数据采集的可视化系统。

2、系统结构设计

本文设计的高速数据采集系统主要由数据采集、数据显示处理和数据传输接口三部分组成。数据采集系统要解决的问题主要是数据的采集和传输问题。为了增强设计的灵活性和可扩展性,系统采用CPLD来实现对AD转换器、数据缓存器SRAM、时钟、数据传输的控制逻辑。系统功能框图如图1。

图1

如上图所示,数据采集方案采用的是:带USB2.0控制器的高速单片机+USB传输的方式,目前有一款非常好的自带USB2.0控制器,并且具有51内核的高效率单片机C8051F340,这款单片机的执行速度可达到25MHz,且不用分频,故选用它可高速传输数据到PC机的同时,还可以对RAM进行读取控制。

2.1连续采集的实现策略

开机后,CPLD发出时钟脉冲给ADC,控制AD转换。每转换一次,立刻将16位(两路)数据写入512Kx16(两片512Kx8扩展而成)存储器中。这样一直循环采集,直到存储器满。然后CPLD置低INT0通知单片机读取数据,得到通知后,单片机通过数据读取同步脉冲与CPLD配合,读取SRAM的512Kx16的采集数据,并通过USB将数据传输到PC机,单片机在工作过程中,将工作状态信号置为有效,当读取完数据后,再将工作状态信号置为无效。CPLD检测到工作状态信号置为无效后,又开始下一次的采集,如此循环。

2.2TLC5540的电路设计

由于我们采集的是两路同步信号,为了达到完全同步和高速,我们采用两路并行工作的方式,即选择的是两个型号完全相同的ADC,同时进行采集,然后并行的将这两路8位数据读入CPLD,同时将这两路8位数据写入512Kx16Bit的SRAM中。我们选用芯片TLC5540,此ADC的最高采样率可以达到40MSPS,分辨率为8位,内带采样保持器。ADC的引脚控制简单,两路ADC的控制时钟ADCLK接到一起,输出允许OE也是接到一起,控制操作完全同步。

2.3存储电路的设计

对RAM的控制也是一样的,两个SRAM的19根地址线接到一起,数据线分开组成512Kx16位宽存储器,CPLD同时同步访问这两个RAM,RAM的读写控制线WR,OE是接到一起的,CS0和CS1虽然没连在一起,但一直保持有效状态。它们的读写时序完全一样,所以CPLD对RAM的访问也更方便,而且速度快。从RAM读出数据到单片机时则需要用一个总线隔离器74LS244,因为单片机只有8位数据线,所以只能依次从RAM读取数据。

2.4USB数据传输程序设计

由于USB传输需要专门的USB控制器。为了简化电路,我们选用了C8051F340这款单片机,C8051F340就是顺应这种需求而推出的一种新型USB控制芯片。硬件接口电路非常简单,不需要额外添加电子元器件。选用C8051F340的另一个好处是系统软件设计可以使用Cygnal/SiliconLaboratories公司的US-BXpress软件开发包。USBXpress软件开发包为USB开发提供了很好的开发环境,很大的简化了开发时间。它为USB上位机和USB固件都提供了很好的协议。使用时直接调用其库函数即可,而不需要太多的去了解和熟悉USB协议本身。只需掌握客户端和设备端的应用程序接口(ApplicationProgramInterface,API)。

在USBXpress软件开发包中,为单片机提供了库文件USBX_F34X.LIB、编程头文件USB_API.h。为上位机提供了动态链接库文件(dll)SiUSBXp.dll、驱动程序SiUSBXp.sys.INF驱动安装文件SiUSBXp.inf、上位机编程头文件SiUSBXp.h、上位机库文件SiUSBXp.LIB。所以这就使得编程方便简化了很多。当检测到有USB中断后,先检测中断类型,根据中断类型,单片机将进入这中断状态中的一种。然后完成相应的工作。完成之后等待下一次USB中断,这样不断的循环。就实现了固件通过USB接受到上位机的命令,然后执行相应的读SRAM数据任务,然后再通过USB把读来的数据发送到上位机。

3、上位机软件设计及仿真

该系统的数据处理和显示功能,由上位机通过MicrosoftVisualC++6.0的MFC类库来实现。上位机软件在MicrosoftVisualC++6.0环境下开发,安装了USB驱动程序以后,主机的API函数调用动态链接库文件SiUSBXp.dll,启动了应用程序与设备驱动程序之间的通信。这样上位机和下位机就可以进行数据通信了。当上位机和下位机的通信建立好以后,需要在上位机上有一个可视化的操作界面来对整个数据采集卡的采集传输进行操作控制。

当USB线连接好后,首先点击更新设备就可以找到USB设备,然后新建一个文本文件用于存放接收到的数据,选择采集速率。点击开始按钮就可以开始采集了,然后再点击接收数据按钮,这时就可以在新建的文本文件中看到采集到的数据了。下面我们用这块采集卡去采集一个4MHz的有源晶振。将采集速率选到最大速率30M。这样在有源晶振的每个周期内采集卡将采集到7.5个点左右。新建一个文本文档用于存放采集到的数据。

数据是SRAM存储器内的2进制数据,数据要么就是0,要么就是最大值1。所以采集到的波形是方波,且每个周期可以采集7个点或则8个点。刚好和理论波形分析一样。所以采集卡采集的速率和采集的数据无误。

4、结论

经测试表明,本文设计的数据采集系统,具备了较强的数据采集能力,采集速率高达30MHZ,能满足工程上高速实时数据采集的要求。由于该方案基于Altera公司的EPM7128STC-15系列CPLD的实现方法,使部分硬件功能软件化,使硬件电路大为简化,提高了系统的可靠性,降低了成本,且功能易于扩展,具有一定的教学和科研价值。本文作者创新点:该系统基于CPLD的实现方法,并且采用带USB2.0控制器的单片机,使部分硬件功能软件化,使硬件电路大为简化,提高了系统的可靠性。

参考文献:

[1]马宇锋,罗建,郭少琨.基于光电耦合器隔离的工业现场无线数据采集与控制系统设计[J].国外电子测量技术,2010(3):48-51.

[2]应卓瑜,梁坚,邵亮等.基于CPLD的辨向细分电路设计[J].传感技术学报,2005(18):143-145.

[3]张宇,冯丹.针对Xilinx可编程片上系统的硬件加速方案的研究[J].小型微型计算机系统,2010(6):1147-1151.

论文作者:李小斌,张罗

论文发表刊物:《电力设备》2018年第31期

论文发表时间:2019/5/5

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于CPLD的高速数据采集系统的设计与实现论文_李小斌,张罗
下载Doc文档

猜你喜欢