分享

高速数据采集系统软件设计

 共同成长888 2015-03-08

高速数据采集系统软件设计

高速数据采集系统软件设计

5.1程序设计说明


LPC2105芯片作为系统主控制中心及数据处理中心,整个系统的运转受到它的控制,例如响应用户的按键操作,发出通道控制,A/D采样时钟控制,FIFO写时钟的选择,菜单及系统状态显示,FIFO数据的处理,信号或参数的自动测试等。

数据采集系统的软件程序结构如图5.1所示分为以下几个模块:系统初始化模块、键语分析模块、系统核心控制模块、通道控制模块、触发控制模块、A/D采样控制模块、FIFO读写控制模块、读取频率字模块、参数测试模块、状态显示模块、波形显示模块、存储控制模块、其他功能模块。系统的初始化模块包括开机自检、硬件参数初始化、系统状态初始化(如通道的波形显示状态初始化)等等。键语分析模块对面板上的用户输入进行分析处理,通过核心控制模块调用相应的功能处理模块,通过对通道控制模块、触发控制模块、A/D采样控制模块、FIFO读写控制模块、读取频率字模块、参数测试模块、状态显示模块、波形显示模块、存储控制模块、其他功能模块的函数调用来实现对来自键语分析的处理功能。状态显示模块显示程序运行时的各种状态:当前数据采集的扫描速率、通道的垂直灵敏度等等;波形显示模块显示采集的波形。

整个系统的程序又可分成底层驱动和上层软件。底层驱动指对本系统其他外设或器件直接控制或访问的程序部分,包括LPC2105和单片机的初始化(既对片内各核心寄存器的操作赋值、对片上外设的初始化赋值、对片内各外设中断及外部中断的控制操作)。上层软件主要指:菜单的设计及显示、数据的处理、波形的恢复及平滑等。

5.2 处理算法及实现

5.2.1 波形参数的测量

设u( t )为任意周期性函数,则有如下结论:

1、有效值U1

    (6)

式中T为周期性函数的周期,U1为方均根值。

2、平均值U2的表达式

       (7)

式中U2也称为u( t )的直流分量或恒定分量。

3、平均绝对值简称均绝值 (绝对值的平均值 )

      (8)

它是u( t )的绝对值在一个周期内的平均值,可用全波整流式仪表来测量,对正弦值指示值乘以0.9即是其平均绝对值的近似值。

4、波顶因数Km

Km=Umax/U1       (9)

它是u( t )的最大值Umax和有效值U1之比。

5、波形因数K

K=U1/U3            (10)

K是有效值U1与平均绝对值U3之比。[9]

5.2.2 内插算法对波形的重建

设定的LCD波形显示区为250′200个数据点组成。因此需要根据采样数据恢复出最多250个点波形幅度数据。

由于被测信号频率的变化及采样速率的不同,采样得到的数据不一定总是能满足显示要求,因此需要根据采样的数据来丢值或者内插。由内插算法来计算最终所要得到的显示数据。

内插算法公式为:


      (11)

内插算法实现流程如图5.2所示

(1)当LCD显示的最大显示时间是原波形周期的整数倍时,从RAM中得到的采样数据进行处理,但是此时并不知道原采样信号对原始信号采集一个周期的信号的采样点是多少,即:

单周期采样个数n=原信号周期T/采样信号周期Ts

n=T/Ts若小于250,则利用采集的数据进行内插运算,但此时显示屏上的时间分割必须考虑到整个的显示情况,而并不是t=Tx/250这种算法了。首先用内插算法先求得一个信号周期的数据,但是这个周期所占用的时间段为整个显示屏时间的一部分,用内插所得到的数据个数同样也为250的一部分,即N1=250/(Tx/T)。而余下的点只需不断的复制前一个周期的数据就可以了,直到总共处理的数据达到250个数据为止。

(2)当LCD显示的最大时间小于原波形周期,即(Tx<T)

在此情况下液晶屏的总共显示时间小于原信号的一个周期,这样在显示屏显示的波形就不能够为一个完整的信号周期。所以就不用考虑数据一个周期重新复制的问题了。在此种情况下,就利用所得到的采样数据直接进行内插计算,通过内插公式把得到的数据直接带到公式中,液晶屏上的时间间隔为t=250/Tx。然后再往数据中插入数据,每个数据的时间间隔为t,直到最后得到的数据是250个即可。

(3)当LCD显示的最大时间大于原波形周期,即(Tx>T)

在此情况下,在进行数据处理的时候必须考虑到多种情况。首先,液晶屏的最大显示时间Tx包含了多个原信号的周期T,在这种情况下进行数据处理时,可以利用到上面所研究的第一种情况的算法。但是按照这种算法并不能解决所有的数据处理,因为显示屏所显示的最大时间Tx不是原始波形周期T的整数倍。当按照第一种情况进行数据处理后,在显示屏上还会剩下一个时间段Ta=Tx-NT。在这种情况下必须把剩下的一小段时间段Ta(Ta<T)考虑进去。[9]

5.3 底层驱动程序

数据采集系统的所有与硬件有关的操作都以标准函数形式提供,上层应用程序与硬件不发生任何联系,而是通过标准函数访问。数据采集系统的底层驱动函数包括:

l        LPC2105的初始化模块

l        单片机P89C51RD2的初始化模块

l        LPC2105的中断服务程序

l        单片机P89C51RD2的中断服务程序

l        LCD屏某处显示16×16点阵汉字函数

l        LCD屏某处显示8×16点阵字符函数

l        LCD屏任意位置点显示函数

l        LCD屏画实线、画虚线函数

l        LCD屏显示栅格函数

l        LCD屏显示方波函数

l        波形显示程序

l        对LCD显示缓存区的访问

l        清除LCD显示缓冲区的某区域

l        将LCD显示缓冲区全部清除

l        将LPC2105寻址数据区中内容搬移

l        将LPC2105中程序FLASH的一个给定地址和数据的单元进行编程

l        将LPC2105中数据FLASH的一个给定地址和数据的单元进行编程

l        将LPC2105中数据FLASH的一给定地址的页(256字)擦除

l        将汉字点阵写入LPC2105片内数据FLASH

l        键盘的键值判断程序

l        对高速A/D的采样时钟频率选择端口的访问

l        访问测频数据端口

l        LCD屏上指定位置显示测频的结果

l        分析A/B通道的采样数据确定最佳增益值

l        访问通道控制端口

l        访问触发控制端口

l        对FIFO的写时钟频率控制端口的访问

l        读FIFO端口数据


结论:

   本文主要讨论了基于CPLD/FPGA的高速数据采集系统的硬件和软件的设计思路和设计方案。本设计表明采用以ARM嵌入式处理器作为主CPU,进行高速的数据处理,用单片机作为辅CPU,进行速度较慢的数据处理,利用一片规模较小的CPLD和一片规模较大的FPGA组合构成系统数字逻辑平台的ARM+单片机+CPLD/FPGA的设计方案是可行的。采用本方案设计的数据采集系统其高速数据处理的任务可以由下位机独立完成,并且系统带有大屏幕的液晶显示器,因而脱离PC机在断电的情况下也可以正常使用。

但由于时间和条件的限制,本高速数据采集系统的部分性能指标暂时无法测试验证,上位机软件的设计也有待进一步开发。并且本人对ARM、USB接口等较为先进的技术也是第一次接触,设计当中不足之处在所难免,敬请各位评审老师批评指正。  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多