0引言
传统的气压测量方法很多,例如水银气压计和机械振筒式空盒气压计,但它们的结构复杂、体积庞大、测量精度低,不便于自动遥测。目前,气压传感器正朝着小型化、集成化、智能化、标准化的方向发展,在性能上追求高稳定性、高灵敏度、高分辨率、低功耗、宽温度范围等。随着电子技术的快速发展,相继出现了压阻式、电容式以及基于MEMS技术制作的压力传感器等。压阻式或电容式传感器结构简单、精度高、灵敏度高,尤其是采用MEMS技术制作的压力传感器,采用的集成电路工艺和微加工技术,将传感元件和信号处理电路集成于一体,大大提高了测量性能,并简化了测量系统设计,同时大大减小了体积,使得测量仪器系统整体小型化。MS5534B就是基于MEMS的压力传感器的典型代表。本文提出了一种基于压力传感器MS5534B实现高度传感器的设计方案,其系统体积小、质量轻、精度高、数据稳定、响应快、功耗低。
1 系统硬件设计
系统由数字压力传感器MS5534B、单片机MSP430F449、电源模块、液晶显示器LCD、RS232接口及其他外围电路组成,如图1所示。
MSP430F449用软件模拟三线SPI口,实现MSP430F449与MS5534B通信,根据MS5534B的通信协议发送相应的指令,获得气压、温度以及校准系数值。串行时钟信号SCLK由MSP430F449产生,SCLK提供串行数据传输所需时钟。主时钟MCLK由外部晶振产生,MCLK给MS5534B内部逻辑电路提供时钟。MSP430F449利用I/O口读得MS5534B的数据,通过软件进行温度补偿和压力-高度转换运算得到实际高度值。首先MSP430F449对MS5534接口复位后,通过串口读出MS5534B模块存储器中的WORD1~WORD4,再用逻辑运算操作和移位操作提取补偿参数C1~C6,然后,通过SPI口读取16位压力数据D1和温度数据D2,用D1、D2和C1~C6通过补偿算法计算出补偿后的压力,再由压力-高度转换算法得到实际高度值。温度和实际高度值通过LCD显示。LCD驱动模拟电压由R3、R5、R6组成的权电阻网络提供。RS232接口通过异步串口与MSP430F449相连,实现上位机与MSP430F449的通信。
1.1 数字压力传感器
MS5534B是基于MEMS技术的数字压力传感器,内部集成了压力传感器、电阻式温度传感器、数据选择器、15位A/D转换器、数字滤波器及数据存储器,其结构如图2所示。压力、温度传感器分别检测压力、温度信号,压力测量和温度测量之间的切换是通过多路选择开关在很短的时间内完成的。A/D转换器分别将压力、温度的差分模拟信号转换成数字信号,通过数字滤波器抑制干扰,然后将16位的压力和温度数字信号存贮在数字IC模块中。同时,64位的数据存储器PROM中存贮了6个补偿参数,分别是参考温度下的零漂、灵敏度、零漂的温度系数、灵敏度的温度系数、参考温度、温度的变化系数。MS5534B供电电压为2.2~3.6 V,压力测量范围为(30~110)kPa,工作时钟为(30~35)kHz,是一种低功耗、低供电电压的传感器,可自动断开电源,三线接口则可满足与单片机通信,方便实现软件矫正,达到极高的精度。
1.2单片机
MSP430F449是具有功耗低、存储容量大、集成度高、在线支持性强等特点的单片机,其工作电压低(1.8~3.6 V)、电流小,有5种低功耗模式;丰富的中断源并可任意嵌套,用中断请求将系统从备用状态唤醒仅需6μs;片内看门狗及上电复位电路,三个时钟源(XTAL1、XTAL2或内部DCO)可供灵活选用;片内16位的硬件乘法器,实时处理大量复杂的温度补偿和压力-高度转换运算;双向并行I/O口P1和P2(有中断功能)及P3~P6口,多数口有复用功能;片内集成4×40段LCD液晶驱动器,实时显示温度和高度;通用通信模块UARST0,通过软件可选用为同步或异步方式。
2 软件设计
软件采用模块化设计方法,主要包括系统初始化、I/O口模拟SPI口通信、温度补偿、滤波、气压-高度转换、液晶显示、RS232通信等子程序,主程序以循环方式工作,完成初始化及子程序的调用;I/O口模拟SPI口通信是单片机根据传感器的通信协议,发送相应的指令,读取传感器中相应的压力、温度及校正参数值,并将4个字的校正参数值WORD1~WORD4转换为6个补偿参数C1~C6;温度补偿是单片机根据补偿原理对读出来的压力进行温度补偿计算,修正温度变化引起的零漂和灵敏度变化,从而修正温度变化引起的压力值的变化;通过软件滤波减小电路的噪声干扰,提高测量精度,得到在实际温度下的压力值,然后程序通过高度与压力、温度的关系计算出高度。程序流程图如图3所示。
2.1 温度补偿
大气压力p与温度T成线性关系,温度传感器输出电压与测量温度也成线性关系。设x为在参考温度附近温度的微小变化量,在(p2,T1)、(p2,T2)、(p1,T2)、(p1,T1X)、(p1,T2X)下,压力传感器的输出电压值分别为Up2T1、Up2T2、Up1T2、Up1T1X、Up1T2X,温度传感器在T1X、T1、T2X、T2下输出电压值分别为己UT1X、UT1、UT2X、UT2,则压力传感器在(p1,T1)下输出的电压值为
在实际温度下,温度传感器相对于在参考温度下输出电压的变化量dUT为
式中:UpT是压力传感器在压力为p、温度为T下输出的电压值。ST1、O1、CS、CT、UT1、温度系数存储在数据存储器PROM中。
2.2压力值滤波
为了实现高精度,采用低通滤波避免噪声的干扰,将普通硬件RC低通滤波器的微分方程用差分方程来表示,便可以用软件算法来模拟硬件滤波的功能。经推导,低通滤波算法为
式中:Yn为本次滤波输出值;Xn为当前读出的数据;Yn-1为上次滤波输出值;a是介于0~1的滤波系数,为了兼顾系统的稳定性和响应速度,a取0.25。
2.3压力-高度的转换
由于空气具有可压缩性,海拔高度与大气压力成非线性关系。在0~11 km的海拔高度范围内忽略重力加速度的变化,高度H与压力p、温度T0的关系为
式中:p0=101.324 kPa,是标准海平面的大气压,对应的气压高度为0;R为空气气体常数,R=287.052 78 m2/(K·s2);g0=9.806 65 m/s2,为标准海平面的重力加速度;β=0.006 5 K/m,为温度垂直变化率;T0=273.16 K,为标准海平面的温度。
由式(12)可得气压高度微分式为
利用式(12)计算一个基准气压平面对应的基准高度Hb,再利用式(13)计算相对基准气压平面的相对高度dH,从而得到当前气压高度为
若能提高气压变化量dp的测量灵敏度,则相对高度的测量分辨率和精度就都能得到提高。在标准海平面附近,a=-78.91 m/kPa。系统初始化时计算1次基准气压平面高度,对应的系数a用于计算相对高度。在海拔2 km以下,若气压变化小于1 kPa,系数a的近似误差小于1%;若高度变化小于100 m,对应的近似原理误差小于1 m;若气压变化过1 kPa,可设定当前气压平面为新的基准气压平面并重新计算系数a,将气压变化量dp归0,并将当前高度H作为基准气压平面的高度H,以避免高度值输出不连续。
3 结果与分析
气压高度计样机如图4所示。以一楼为基准平面,用气压高度计测量高楼每层到基准平面的高度,每层测量5次,得到的测量高度Hm与实际高度Hr的实验曲线见图5,平均标准偏差为0.2 m,线性度为0.999 9。这说明该气压高度测量系统比常规高度计精度提高了1个数量级。由此看来,基于MEMS技术的数字压力传感器MS5534B具有很高的集成度,减小了硬件电路本身的误差;另一方面,采用了相关的温度补偿算法、滤波算法以及压力-高度转换算法,避免了温度变化和气压扰动的影响,有效减小了整个系统的噪声,显著提高了高度计的测量精度。
4 结 语
本文介绍了一种基于MS5534B的气压高度计,利用数字传感器和单片机相结合,用软件进行数据处理,具有较高的精度和较强的抗干扰能力,且体积小、重量轻、功耗低,真正实现了微型化。它是MEMS技术在航空领域的又一应用,将具有广泛的应用前景。