具有高可靠性的高速连续数据采集的设计与实施方法
扫描二维码
随时随地手机看文章
;;; 摘要:从硬件和软件设计两个方面介绍保证PCI总线的高速连续采集系统的数据完整性、可靠性的实用关键技术及具体实施方法、应用案例,列出了大量实用的设计技术及应用程序。该设计先进、可靠,在实践中得到了应用。 ;;; 关键词:高速数据采集 可靠性和完整性 关键技术 设计 在许多测量与控制领域,如电力谐波测试、声光信号处理、现代雷达系统等元均要求在线进行小波数字信号分析与处理,其中最为关键的是如何利用香农(Shannon)采样理论将外部信号毫无失真地采集并转化为计算机所用的数字信号。目前较为流行的方法是提高A/D的转换速率和计算机的处理速度。同时,提高数据的传输速率也是较为关键的。本文以高速数转换芯片AD1674为基础,采用PCI总线协议,从硬件和软件设计入手探讨提高整个数据采集系统的最大采样频率和高可靠性的方法,其中有些方法得到了实践证实。 一般而言,触发A/D转换有软件触发、实时器同步触发及外部触发三种方式。而数据的传输方式有软件查询、中断方式、DMA方式及FIFO方式。四种数据传输的速率比较如下(以A/D转换基频10MHz为例): 软件查询 10~20kS/s(每秒10k次,与所用计算机的主频有关) 中断方式 10~30kS/s DMA方式 200kS/s FIFO方式(w/repeat input string) 330kS/s 在一般控制系统中,采用软件触发A/D、软件查询和中断数据传输方式就能满足测控要求。但要求高速连续数据采集的情况下,显然不能满足系统要求。在笔者设计的智能化高速连续数据采集系统中,采用了定时器同步触发A/D与FIFO(带重复字符输入方式)数据传输方式相结合的方法大大提高了系统的采样频率和数据的可靠性,改善了在Windows环境下数据传输的性能。 1 高速连续数据采集系统设计的几项关键技术 1.1 定时触发脉冲源的设计 由于系统要求高可靠性、高采样频率以及连续采样,利用Intel 8254定时计数功能来触发A/D转换,严格控制时序以及数据采样间隔,合理利用Intel 8254的三个定时计数器。定时计数器0作备用,用作A/D的外部触发源,定时器1和2配合使用。其中定时器1的输入和定时时钟基频(40MHz)相联,其输出作为定时器2的输入,定时器2的输出作为A/D转换的定时脉冲触发源。 定时器1和2均采用方式2工作。定时计数器1和2的计数值CounterT1和CounterT2,必须满足如下关系式: CounterT1×CounterT2=时钟基频/SampleSpeed(系统的采样频率)。 其初始化程序如下(编程平台为Visual C++6.0): ucValue = 0xb4; //定时器2,方式2,ucValue为定时器2的初始化值 _outp(BaseAdr+33,ucValue); //BaseAdr为板卡的基地址 _outp(BaseAdr+32,CounterT2 & 0xff); _outp(BaseAdr+32,(CounterT2 >> 8)& 0xff); ucVaue=(ucValue & ~0xc0)| 0x40; //定时器1,方式2 _outp(BaseAdr+33,ucValue); _outp(BaseAdr+31,CounterT1 & 0xff); _outp(BaseAdr+31,(CounterT1 >> 8) & 0xff); 1.2 双端口RAM技术 系统要求不间断连续要样