基于PIC18F65K90的低功耗数字压力表设计
基于保证数字压力表工作状态稳定性的同时要提高精度的目的,另外基于进一步降低功耗的目的,在设计压 力表时,除了有常规的工作模式,还采用了 PIC18F65K90单片机的休眠模式增加一种低功耗模式方法,这是大部分数 字压力表不具备的。主要是从硬件电路检测和软件语言调试两个方面进行,洋细介绍了各个选取到的硬件器件的优 点,并且通过对软件算法的描述介绍了数字压力表各个功能的实现。通过与标准压力表对比获取数据的实验,测试最 终的精度以及功耗,最终结果能够达到设计目标。
在很多民用、工业或科研领域,如汽车胎压检测、高度测 量、天气预报、家电等场合都有可能要进行压力检测,所以对 压力传感器的研究与应用也就越来越受重视。随着压力 测量的应用越来越广泛,对压力测量仪器的要求也越来越 高数字压力表是工业、交通运输、航空及其它许多领域和 部门广泛应用的一种检测仪表。为了给生产和科研提供质 量保证,要确保压力表精度、可靠性等性能。
由此可见,数字压力表运用范围越来越广泛了。此次基 于PIC18F65K90的低功耗数字压力表设计除了保证工作的 稳定性和精确性外,最大特点在于添加了一种低功耗模式,大大增强了使用寿命,解决电池供电时间短的问题。
1总体设计
设计旨在设计一款高精度低功耗的数字压力表,要在两 节1.5 V的干电池供电时长时间工作,因此高精度和低功耗 是设计的重点和难点,必须从总体设计时就加以考虑。设计 的压力表量程是0〜1.000 MPA,精度是0.2%,所以对于压力 校验设备、压力容器配套、自动化产线检验等更加适用,在测 量范围之内,且准确度更加合适。设计总体框图如图1所示。
外围电路主要包括由MCU模块、压力传感器模块、液晶显示 模块、电源数据采集和按键电路等。
压力传感器模块采用的是NKP191型压力传感器,与目 前市场上大多数数字压力表所使用的陶瓷压阻式传感器和 陶瓷电容压力传感器不同,它是扩散硅压阻式传感器。扩散 硅压阻式传感器要比陶瓷压阻式传感器内阻小,且稳定性和 精度更佳,与陶瓷电容压力传感器相比,其价格要相对表较 便宜,安装更加简便。总体来说NKP191型压力传感器各方 面比较平衡,而且由于设计的量程大于5 000 kPA,所以 NKP19是最佳选择。
设计的压力表另外一个优点是在液晶显示模块,LCD液 晶是由单片机直接驱动的,这样可以去除LCD驱动芯片简化 外围电路,最重要的是PIC18F65K90可以在睡眠模式下驱动 液晶,这样能够大大降低数字压力表的功耗,以达到最初的 设计目的。
设计包括硬件设计和软件设计,下面依次进行介绍。
2.硬件组成
2.1 MCU模块
PIC 18F65K90是一款在保持极具竞争力的价格的同时,将PIC18单片机固有的优点(即出色的计算性能和丰富的功 能)与通用片上LCD驱动器相结合的单片机。其工作电压范 围在1.8 V到5.5 V之间,所以采用两节1.5 V的干电池供电 工作,且待机时间长。1024字节的数据EEPROM足够保存所 需数据,且具有16路通道的12位A/D转换器。
2.2压力传感器模块
压力传感器模块是用来把压力信号转换为电信号的,此次 的NKP191型压力传感器采用压阻式原理,量程是0~3 500kPA, 精度为0.26%,它是输出一个与压力成线性正比变化的电压信 号,而温度补偿和零点满量程校正保证了传感器的精度和稳定 性。此次的NKP191型压力传感器结构坚固,稳定性好,可测量 与不锈钢材料兼容的各种介质,广泛应用于现场仪表、液位测 量、制冷压缩设备等场合。
2.3放大电路模块
放大电路模块主要是把传感器的小信号进行放大,然后 输送给单片机处理。放大电路选用的芯片是MCP6022,它是 —个运放芯片,低噪声,稳定性比较好,而且电源电压符合设 计要求。
PIC18F65K90的A/D转换器能将一个模拟输入信号转 换成相应的12位有符号数字信号。如图2是放大电路的电 路图,U2是MCP6022放大器,J2是压力传感器,放大器和压 力传感器是有PIC18F65K90单片机的RC7脚供电的,同时 RC7脚还是压力数据采集时A/D模块的外部参考电压。传感 器的2脚正极输出和4脚负极输出经过放大器放大后,由放 大器MCP6022的1脚传送给单片机的RA1脚,RA1脚被设 置为模拟通道,用来采集模拟压力电信号。考虑到功耗问题, 单片机的RC7脚供电和A/D转换器的开启都是有时间限 制的。
2.4液晶显示模块
液晶模块主要是要显示当前的压力值、单位、电量等主 要信息的,比起数码管,液晶的是彩色显示、显示信息量、无 闪烁大且对人体无危害,它的驱动电压低、功耗微小、可靠性 更高、生产过程自动化、成本低廉,同时还可以制成各种规格 和类型的液晶显示器。
PIC18F65K90的LCD驱动模块最多具有4个公共端和 32个段的面板,SP 132个像素。虽然单片机可以直接为LCD 液晶背光供电,但是考虑到芯片在送电的时候烧坏,可能是供电电流过大造成芯片损坏,最终调整一级三极管放大电路
来驱动液晶背光。
3.软件设计
在正常工作状态,程序是按照如图3所示流程执行的。
设计出的压力表最主要的功能就是显示当前测量的压 力值,而这一功能的软件主要是在数据采集和处理、LCD显 示中实现的。每隔100 ms,相应的定时器中断标志位便会使 得程序进入数据采集部分,首先把放大后的传感器信号采集 到单片机内部,然后把处理后的数据信息再显示到LCD上 面。下面一段代码主要是对新采集到的数据处理过程:
if ((temp1 -10) < (tennum [10])&& (tennum [10] <(temp1 +
10))) //判断新采集到数据变化是否在10以内
{
if(tennum[10]>temp1)
{
tennum[10]=temp1+1;//偏大的数据被原数据自加后取代 }
else
{
if(tennum[10]==temp1)
{
tennum[10]=temp1 ;
}
else
{
tennum[10]=temp1-1;//偏小的数据被原数据自减后取代 }
}
}
£or(x=0;x<10;x++)//对数据进行先进先出式的处理 tennum[x]=tennum[x+1 ];
£or(x=0;x<10;x++)//对最近采集到的10个数据进行求和 temp2=temp2+tennum[x];
Temp3=temp2/10;//取平均
在数据处理工程中,利用新采集到的数据与原数据进行 判断后自加、自减或者不变,这是为了使得数据变化更加稳 定,提高精度。而对长度为10的数组先进先出式处理则是使 数据变化更加连续。
为了达到低功耗的标准,就必须要实现休眠模式与正常 模式切换的功能,所以压力表在长期没有操作的状态下会进 入如图4所示的一种低功耗模式。单片机进入到休眠模式后 会在规定时间内被唤醒,而在休眠模式下其功耗会大大降 低,单片机被唤醒后会进工作状态,工作完后会再次进入休 眠模式。这样不仅不会影响单片机工作,还能延长电池的使 用寿命。
4.结果与分析
最后对设计的压力表设计的精确性、稳定性等进行实 际测试,测试使用标准气压表与设计的压力表进行了对比测 试,测试结果如下表1所示,P1是标准压力表,P2基于PIC18F65K90设计的压力表。
由表中数据可以看出,设计的压力表线性是很稳定的与标准压力表所测数据存在允许范围内的细微误差,且比 实际要小,分析产生误差的主要原因为传感器长时间通电 后的热漂移造成的。只要单片机的AD响应足够,采样的数 据每次基本不会有误差,而最终压力表的测量精度可以达 到0.2%。除此之外,AD采用的电源参考源和传感器运放电 源排版的距离会造成小范围的电压波动,使得测试数据的 微小误差。
在功耗方面测量,以两节1.5 V干电池作为电源,正常工 作模式下,背光开启时电流为3.5 mA;在关闭背光情况下电 流2.5 mA;而在休眠模式下的低功耗工作模式下,电流是 0.006 mA。经过实验计算,在2节5号干电池供电的情况下, 可正常连续工作时间2 500 h以上。
5.结束语
此次数字压力表的设计紧扣高精度和低功耗,并分别从 硬件和软件方面阐述了实现要求的方法,最后给出了实验数 据显示结果符合设计初的要求,具有广泛的使用范围和较高 的实用价值。
上一篇:提高指针式压力表检定效率方法研究
下一篇:水介质压力表测试装置的研制