压力测控系统是嵌入式应用中常见的应用模块之一,被广泛地应用于现代工业的各种测控系统中。本文介绍基于Freescale公司生产的压力传感器MPxM2010、微控制器68HC908QT4等低成本器件设计的压力测控系统,并在硬件成本几乎不增加的情况下,通过搭配简单的模拟电路和软件上的编程,增加系统测量精度。文中对精度改进前后的系统做了数值计算上的比较,从具体数值上说明系统精度有明显的提高。文中介绍的方法还可应用于A/D转换的其他应用环境,对降低系统成本大有裨益。
关键词:68HC908QT4 MPxM2010硅压阻传感器 A/D转换精度提高
引 言
Freescale公司生产的MPXM2010器件是一种硅压阻式压力传感器。MPXM20lO精度很高,输出电压与输人的压力具有良好的线性关系。这种传感器是一块单片集成电路,集成有压力应变仪及膜阻网络,并带有激光式微调模块进行温度补偿和偏移佼正微控制器68HC908QT4则是一款低端的8位微控制器,有4路8位的A/D转换通道和16位的PWM模块,可以用于A/D和D/A转换。
将两种芯片结合到一起可组成一套实用的低成本压力测控系统。美中不足的是它的精度低了一些,如果将A/D位数提高则会使成本大大增加。通过硬件搭配和软件上的编程可以弥补这一缺点,即不增加硬件开销而且可以提高产品性能。
1 压力传感器模块设计
Freescale公司生产的MPXM2010器件是一种硅压阻式压力传感器,其内部原理如图l所示。MPXM2010精度很高,输出电压与输入的压力具有良好的线性关系。这种传感器是一块单片集成电路,集成有压力应变仪及膜阻网络,并带有激光式微调模块进行温度补偿和偏移校正。
MPXM2010特点如下:
◇压力测量范围为O~10 kPa,精度可达士O.01 kPa;
◇在O~85℃之间具有温度补偿功能;
◇输出信号与压力的线性关系良好;
◇传感器接触面可选择是否带引出管口;
◇有Tape&Reel的易用封装形式,具体样图如图2所示。
MPXM2010的输出信号比较弱,需要另加1片MOC2A60,将小信号放大,直流变为交流。这样就可以直接控制电机切断或是接通电源。在调试模块时,将各部分分离开来便于调试。运放采用MC33179,再配接一些电阻,就可以把压力传感器的信号输出,并且可以通过调节阻值来调节输出信号的大小。图3和图4是压力传感器模块设计的原理图和PCB板图。
[page]
2 压力测控系统设计及其精度改进
2.1 直联式压力测控系统
通常情况下,使用68HC908QT4的A/D模块即可完成设计,只要把压力传感器模块的输出端接至68HC908QT4的A/D模块输入端即可。图5给出了压力测控系统的框图。
微控制器68HC908QT4特点如下:
◇4 KB Flash存储器、128 B的RAM存储器;
◇4路8位A/D转换器、16位PWM模块;
◇价格便宜,批量1000片以上每片的价格可降至1美元以下。
MPXM2010测量范围为0~10 kPa,将其输出电压信号限制在0~5 V,则其精度为:
S=5 V/10 kPa=500 mV/kPa
68HC908QT4的A/D为8位,电压限制5 V,则其精度为:
R=5 V/(20—1)bit≈19.61 mV/bit
整个系统的压力精度为:
R/S=19.61/500 kPa/bit=0.039 22 kPa/bit
如果要提高精度,将A/D升为10位,则精度为:
R/S=O.03 922X(28—1)/(210—1)kPa/bit=0.009 776 kPa/bit
A/D升为12位后,精度为:
R/S=0.039 22×(28—1)/(212—1)kPa/bit=0.002 442 kPa/bit
这样做确实可以提升精度,但要增加硬件的开销。利用68HC908QT4的PWM模块作为D/A转换器,可以巧妙地提高A/D变换的精度。
2.2 改进后的压力测控系统
误差产生的原因就是在A/D处,将小数点后的部分舍去,比如176.51 bit会当作176 bit来处理。解决问题也应该从这里人手,把误差缩小。
误差的引出可以用D/A来解决,把A/D读进来的数据再用D/A处理一次送出来,和原来的数据做一次减法就可以得到。误差没法直接再送回A/D,但可以将其放大后再送回,再使用68HC908QT4中的另一路A/D将放大后的误差进行A/D变换,MCU得到结果后缩小相同的倍数,与原A/D变换结果相加,便是更精确的结果。图6中,整个系统可分为压力传感器模块、模拟部分、单片机部分和输出电路部分,精度提高的关键在模拟部分的设计.如图7所示。假设放大器G的放大倍数为10。A/D的性能本身并没有提升,精度仍为R=19.61 mV/bit,这个值也就是极限值。放大10倍后,原来的最大误差19.6l mV/bit被扩大为196.1 mV/bit,A/D处理的是放大后的数据,其能力就被放大了10倍。数据处理时又会将其除以lO恢复,从整体上来看就好像精度R除以10了一样,变为1.961 mV/bit。 [page]
例如:初始A/D变换的误差为10 mV,经过放大后变为100 mV,此时再经过A/D变换,第二次遗留的误差为100 mV一19.61 mV/bit×5 bit=1.95 mV,再除以10后变为0.195 mV。误差大大地减小了,其极限值就是原精度的十分之一。
G的放大倍数可以自己调整,但要符合所选微处理器的性能以及电路本身的精度,选的过高没有实际意义。
图7所示的电路中,Vm、D、Vc与图6所示相同。其中D的计算值为:
D=(Vm—Vc)×(R14/R13)[l+(R17/R16)]
G的放大倍数为(R14/R13)[1+(R17/R16)]。
结语
在产品设计研发过程中,成本是很重要的因素。巧妙地利用微控制器内的模块,辅助以相应的简单模拟电路,可以大大提高芯片的利用效率,并能提升系统性能。多利用手头的东西进行改进再创造,往往能得到事半功倍的效果。
上一篇:嵌入式脉象采集仪电路设计
下一篇:单相电能计量芯片MCP3906及其应用