基于BMP085的精密数字气压计设计
扫描二维码
随时随地手机看文章
数字气压计是利用压敏元件将待测气压直接变换为容易检测、传输的电流或电压信号,然后再经过后续电路处理并进行实时显示的常规设备。目前,数字气压计大量应用于气象、军事、航海和航空、工矿企业,野外作业以及消费类电子产品等方面,需求极为广泛。
常见的水银气压计和酒精气压计体积大,精度低,携带不便且易损坏,因此,数字气压计逐渐成为研究热点。普通的数字气压计大都选单片机为主控芯片,将普通压力传感器采集的气压信息输入A/D转换器(模/数转换器),再经单片机控制将气压值转换成数字信号,并在显示屏上进行数据显示。此方案设计过程繁琐,电路复杂,成本高,功耗大。此外,很多应用领域在测量气压值的同时也会关注环境温度,因此,具有同时检测气压和温度指标的气压计具有广泛需求。鉴于此,本文设计了一种能同时测量气压和温度指标的数字气压计,并采用数字气压传感器BMP085制作电路,获得了满意的测试结果。
1 系统硬件设计
整个硬件系统由气压和温度采集模块,单片机主控制模块和液晶显示模块构成。系统结构框图如图1所示。
气压和温度信息采集分别由BMP085芯片和DS18B20芯片完成,而主控芯片采用单片机STC12C5A60S2,经过处理后的结果由液晶显示模块NOKIA5110进行显示。
主控制模块负责信息采集与传送,数据运算处理,设备驱动更新等工作。本数字气压计选用STC12C5A60S2作为主控制芯片,该芯片是具有A/D转换功能的新一代8051单片机,其片内的具有大容量程序存储器且是FLASH工艺的,用户可以用电的方式瞬间擦除、改写。STC系列单片机支持串口程序烧写。这种单片机对开发设备的要求很低,开发时间也大大缩短。且STC12C5A60S2的指令代码完全兼容传统8051,但速度快8~12倍。此外,还具有宽电压供电,低功耗,超强抗干扰等特点。最主要的是此芯片售价与传统51相当,且供货充足,性价比很高。
气压采集模块采用德国BOSCH公司的基于MEMS的BMP085数字气压传感器。该芯片主要由电阻式压力传感器、AD转换器以及控制单元构成,而控制单元则主要涵盖E2PROM与I2C接口。该芯片采用I2C协议进行通讯,系统通过I2C接口直接接在处理器上,微控制器发送开始信号后进行压力测量,数据信息经过转换时间器直接通过I2C接口读出,但BMP085传送的是未经补偿的数值,需用到E2PROM中的标准数据进行补偿。此外,该芯片采用1.8V~3.6 V供电电压,适用的气压范围从300 hPa到1100 hPa(分别对应海拔9 000 m和-500 m),内含一个温度测量功能,采用IIC协议通信。BMP085具备低功耗、低电压的电学特性,使其非常适用于户外装备。此外,该芯片是基于压阻效应技术的,具有稳定的电磁兼容性、高精度、线性性以及稳定性等优点。
温度采集模块DS18B20芯片具有采集精确,抗干扰能力强的特点,与单片机采用独特的单线接口通信模式,因为只使用了一条总线进行通讯,占用极少的I/O口资源,使得其可以轻松地组建成传感器网络。同时,该芯片从通信线上获取能量,消除了对外部电源的依赖。总的来说,DS18B20应用在数字气压计中,能准确获取当前环境温度信息,既实现了便捷通信又节约了单片机硬件资源。此外,本设计还充分利用了它的一个由高低电平触发的不因电源消失而改变的报警功能,这个报警功能可通过编程实现,为验证此功能,本设计特地设定了一个34℃的上限报警温度。
为节约成本,本数字气压计显示模块选用稳定而廉价的液晶显示屏NOKIA5110。84x48的点阵LCD,能显示4行汉字,用串行接口与主处理器进行通信,使得包括电源和接地在
内的信号线减为9条。此外,NOKIA5110采用低压供电,降低了系统功耗。
另外,电源接入模块,本系统采用5 V直流供电,电源接入经电容滤波,通过AS1117—3.3 V后产生3.3 V电压供液晶使用。由于系统功耗较低,故没有选开关电源作为系统DC-DC转换方案,而选择外围电路简单,更低噪声的线性稳压芯片AS1117-3.3 V。
2 系统软件设计
2.1 主程序部分
主程序设计部分主要负责系统初始化、任务的切换以及实现不同模块间的参数传递。包括的主要程序有:液晶初始化程序LCD5510_Init(),液晶清屏程序LCD_clr_scr(),系统时钟初始化程序init_T0(),中断任务程序IntT0() interrupt 1,环境温度读取程序Read Temperature (),环境气压读取程序BMP085ReadPressure(),显示缓存更新程序Up_DESP(Desk1,AirPress,Temperature),液晶显示程序LCD_prints(0,0,Desk1)。主要参数有:气压变量AirPress,温度Temperature。其工作主要框图如2所示。
2.2 功能模块程序
单片机系统时钟配置可通过配置定时器,产生固定时间的任务执行信号,通过这个信号对任务执行进行有效的安排,更加有效与有序的实现系统功能。定时器0采用方式2工作,且TL0和TH0均设置为-250,即250个时钟脉冲进入一次中断程序,对任务进行一次动作。
显示更新的实现可通过建立显示更新缓存,使显示更加模块化与高效。在RAM中建立Desk1[30]区间,并定时将需要显示的信息经过十进制转化后写到该区域,并定时用该区域的信息去更新液晶,最终实现显示的流程。
气压采集与温度采集的驱动程序都主要实现通信的建立,数据的交换,单位的换算等功能。
3 测试结果及分析
在25~34.5℃温度范围环境下,利用塑料袋挤压改变气压测试范围为101~110 Kpa。采用与标准温度计、标准气压计比对的方法,对本数字气压计进行测试。结果如下表1所示。
根据设计制作,本设计可测试温度范围为0~150℃。气压可测试范围为30~110 Kpa。据测试结果可知,在温度和气压测试范围内,温度测试精度为1%,气压测试精度满足0.1%的指标。
测试效果图如图3所示,图中液晶显示第一行P显示当前气压信息,图中读数为4.032 5 B,表示环境大气压为4.032 5倍标准大气压,即约为400 kPa。第二行T显示当前温度信息,图中读数为25.8C,表示环境温度为25.8℃。第三行status on表示系统处于工作状态,另外,为验证此功能,程序设置在环境温度达到34.0℃时,气压测量关闭,温度下降至低于34.0℃时,气压采集重新开启,所以图中环境温度为25.8℃,气压采集开启。
4 结束语
测试结果表明,基于BMP085的数字气压计测量稳定性好,精确度高,同时具备气压和温度测试功能,且实现了温度测试范围的告警功能。本设计简化了现有普通数字气压结
构,具有低功耗,小型化,低成本,测试精准等特点,满足广泛的应用场合要求,实用性强,应用前景广阔。