基于ARM的高精度气压测量系统设计
2014-03-12周开月宋春华韦兴平
周开月,宋春华,韦兴平
(西华大学 机械工程与自动化学院,成都 610000)
20世纪末以来,随着电子、信息和半导体技术的发展,气压测量装备进入了快速发展时期。其要求和难点都是准确度高,且变量非常小。世界气象组织在1990年第十次大会上给出了气象观测对气象仪器测量误差要求的目标,其中对地面气象观测的误差规定为±0.1 hPa。在2011年,国内军用级地面气压仪的准确度普遍在±0.5~±1.2 hPa,远不能满足精度要求[1]。
在研制的基于ARM的气压测量系统中,集成了采集、计算、面向对象操作、显示和主从机数据接收发送的功能,相对于传统气压测量装置的笨重、调试不便和需外置通讯装置等缺点,不仅体积小、可利用触摸屏随时修正参数,还将所有功能集成在一块电路板上,具有集成度高、精度高、环境适应力强和使用方便的特点,适合工程应用。
1 系统构成
该气压测量系统主要由ADUC7026处理器、温度/频率传感器、信号调理电路、触摸屏显示器和485通讯电路等部分构成,其系统结构框图如图1所示。
图1 系统框图Fig.1 Block diagram of system
CPU采用了ARM7系列的ADUC7026芯片,片内集成了12位、多通道高性能ADC的数据采集系统;其中包含2个32位的定时/计数器(不使用FD专用集成电路时的误差为2 Hz左右),可以较为恰当地搭配传感器的相关性能。片内集成的非易失性Flash/EE存储器可以随时保存实际调试中的参数设定。芯片的工作温度范围为-40℃~+125℃[2]。
通过片内基准电压的设定和支持长乘法的特性,可以满足系统对于高精度的要求。芯片使用开发环境,降低了开发成本,使该芯片广泛应用于精密仪器中。
显示器采用了分辨率为240×320的彩色触摸屏,不仅提供了数据的可视化,还为测量过程中的参数调整提供了便利。显示器使用ILI9325控制驱动,根据实际需要选择8路并行数据接口与芯片的P3口直接相连,通过XPT2046芯片来读取屏幕上的AD变化且读取出坐标(x,y),从而在GUI上实现参数设定。
传感器则采用了某振动筒式压力传感器,当被测介质(大气或标准空气)进入振动筒压力传感器后,在振动筒内产生谐波,其频率信号经过放大器放大后输入到FDC转换电路。振动筒的谐振动频率fp是压力P和环境温度T的函数,即:
1.1 A/D转换模块
ADUC7026的内置ADC为一款基于两个电容DAC的12位逐次逼近型转换器。根据输入信号的配置不同,ADC可以在三种不同的模式下工作:①全差分模式,用于小信号和平衡信号;②单端模式,用于任意单端信号;③伪差分模式,用于任何单端信号输入,可以较好的抑制共模信号。本系统使用伪差分模式。在这种模式下,ADC模拟输入范围为0 V~Vref。同时,片内提供了一个高精度、低漂移、工厂校准的2.5 V基准电压源[2]。
首先传感器将采集到的模拟电压值和频率信号分为两路分别传给电压信号调理电路和频率处理专用芯片。其中的电压信号经过分压、滤波、二次滤波和单路精密放大,在稳定电源的条件下可形成一个平稳、无毛刺的模拟信号,此时将信号送入CPU进行片内AD转换,即可得到:
其中:A为经过处理的模拟电压值;H为分压系数;M为放大系数(此处为1),Aˆ为最后得到的实际电压值。
考虑到实际中温度的变化不太可能出现急剧的变化(如表1所示,为不同温度环境下传感器的电压输出测试结果,此表说明电压变化范围大概在4.8~7.6 V之间),为了增大采集和转换精度,可以适当降低其实时性,对转换过的电压值进行取本次10%和上一次90%的软件滤波操作。这样做的目的是:有效减少电路设计和电压源的不稳定性对AD转换精度造成的影响。
表1 不同温度下测得的电压值Tab.1 Voltage values at different temperatures
接下来再对电压值进行一阶系数修正:为达到实际使用要求,将环境温度范围设定在-20℃~60℃,利用稳压电源可以将精确测得的实际电压值y输出给采集电路,待电压稳定后在显示器上读取电压的计算值x,利用式(3)即可计算出两者之间的线性关系。
实验数据如表2所示。
表2 电压的线性修正Tab.2 Linear correction of voltage
线性度如图2所示,其线性关系基本呈一条直线,由此可见一阶系数修正已经可以满足一般温度变化的精度要求。以上运算在中断程序中进行,大约耗时8 ms。
图2 电压的线性度Fig.2 Linearity of voltage
1.2 F/D转换模块
对于频率量的测量一般分为测频法和测周法。为了提高测量精度,本设计采用专用集成电路的软硬件测周法。原理如式(4),采用增量的形式表示:
其中:Ni+1和Ni分别为第i+1、i次采集周期的高频计数值;ni+1和ni分别为第i+1、i次采集周期的低频计数值;t0为标准高频脉冲周期值[3-4]。
测频芯片两次同时对高、低频数进行采样,并求出其增量,然后求出低频的周期值。本系统将N和n对应的计数器设计成循环计数器,分别对标准的高频时钟脉冲和被测频率的脉冲数进行连续循环计数,保证同时采到高低频数,且第i次和第i+1次都是在低频脉冲的完整周期内采样。此过程在软件中断中完成,耗时大约10 ms。
F/D转换电路把传感器的频率信号数字化,实现对压力传感器周期的测量,然后CPU读取F/D、A/D模块转换出的数据,并按所采样的F/D转换数据,计算出压力传感器的谐振周期,根据A/D转换模块的采样值计算出温度电压和修正压力值,然后根据周期、温度和修正压力值可计算出压力数据和气压高度。压力和气压高度数据经数据处理后,通过ADUC7026的并行输出口传送到显示器上,并通过485发送。
实际中,频率的变动对计算出的气压结果有很大影响,2 Hz的波动就可引起气压上百Pa的起伏。同时,软件对气压量每次的采集和计算大约耗时20 ms,即采集速率为50次/s,采集思路为
1.3 MODBUS通讯模块
MODBUS可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯。本设计采用RTU模式,相对于ASCII模式,速度更快,准确度更高。RTU帧的从机发送格式如表3所示,其中N表示需要发送的数据个数。
表3 RTU帧的格式Tab.3 Frame format of RTU
这里需要指出的是,为保证发送数据的准确性,实际中在向COMTX寄存器装数时应该在以上字节总和的基础上再加1,即发送15个字节,实际收到的有效字节为14个。
鉴于此测试系统的实际用途,将此系统设置为从机模式:即接收到主机的指令后才发送数据。在实验中,将主机端数据的自动发送速度设置为200 ms一次,在接收到1288个字节(即56次数据)时,发送756个字节(即54次数据),丢包率仅为3.5%左右,满足工程要求。
2 软件设计
2.1 软件结构
为了达到对接收数据的快速响应,在正常工作模式下采用查询方式处理通讯模块。同时,在没有查询到正确数据时,在中断方式内进行电压值和频率值的采集和计算,设定中断间隔为20 ms一次(计算电压和频率的时间大约有18 ms)。考虑到显示器不需要实时对计算出的数据进行更新,可以通过软件计数方式来对气压和高度进行不同时间间隔的更新。软件框图如图3所示。
图3 程序框图Fig.3 Block diagram of program
2.2 气压和高度计算
根据式(1),则可得到:
再根据式(2)得出电压后,根据式(6)即可得到高度H[5]:
式中:H为几何高度;T0为海平面高度;T为温度梯度;P为H处的大气压强;P0为海平面大气压强;R为宇宙气体常数;m为空气分子重量;g为重力加速度。
另外,在风电场气压监测系统中,其数据可以作为一维向量加入到基于支持向量机的风电场风速预测的运算中,为风电场的运行提供决策支持。
经过对数据标定分析后,采用分段线性计算对气压进行运算,得到其测量范围为(50~130)kPa,精度为±0.03%FS,分辨率为0.01 hPa。无论是数据准确性和系统的响应快速性,都已经完全达到甚至超出国家气象局对气压测量的要求[6]。
3 结语
该测量系统已经成功研制出第一代产品并应用于地面压力测试中,通过地面实验,最终计算出的高度数据与实际压力得出的高度之间的相对误差仅为0.008%。同时,芯片的工业级标准也可以使其在恶劣环境下执行高精度气象数据采集的任务。
[1] 姜明波.气压测量仪器的现状及发展[C]//2011年底气象水文海洋仪器学术交流会,2011.
[2] 孙来军.ADUC7026原理与应用[M].北京:电子工业出版社,2009.
[3] 杨雷,李广明,康丽,等.基于多周期测量方法的气压传感器信号采集[J].仪器仪表学报,2007,28(4):687-691.
[4] 史利剑,王永生.一种简易无人机载大气数据计算机的设计[J].计算机技术与应用,2005,25(6):70-72.
[5] 禤家裕,裴海龙.一种小型无人机高度定位方法的研究与实现[J].自动化与仪表,2010,25(12):1-6.
[6] 国家气象局.地面有线综合遥测气象仪观测规范[M].北京:气象出版社,2001.■