基于MSP430单片机高精度温度测量的补偿方法

[复制链接]
579|23
手机看帖
扫描二维码
随时随地手机跟帖
aqawasaz|  楼主 | 2019-2-25 16:50 | 显示全部楼层 |阅读模式
本帖最后由 aqawasaz 于 2019-2-25 16:51 编辑

    摘要:用MSP430P315单片机的A/D转换器,实现阻性温度传感器的电阻检测;用查表和线性插值结合的方法,简化标度变换的算法结构。对电池电压的降低进行补偿的同时分析补偿电阻的精度对温度检测的影响。
     
    关键词:单片机 线性插值 补偿 温度检测
     
    引言
     
    长期以来,人们在测量温度时,大部分使用常规的测量方法测量。检测精度要求较高时,调理电路复杂、A/D的位数高,使设计的系统成本居高不,很难普及。随着电子技术的发展,出现了很多功能完备的低功耗、低电压大规模集成电路,为设计便携式高精度测温系统提供了硬件基础。本文介绍的高精度便携式测温仪,使用了非常适合作低功耗便携式测试设备美国TI公司的MSP430P325控制器,用Pt500铂电阻完成温度检测,检测的温度通过液晶显示器显示。本测试仪的测温精度达到0.03℃。
     
    硬件电路设计
     
    MSP430P325单片机内部集成了可切换的精密恒流源。精密恒流源的电流大小由外部精密电阻确定,同时内部又集成了6个14位的A/D转换器和液晶控制器。这样的内部结构,适合驱动性传感器。因此,可减少信号调理环节和显示环节的扩展,大大地简化了系统结构,效降低了系统功耗。
     
    1.温度传感器数学模型
     
    温度敏感元件采用铂电阻Pt500,在~630.75℃温度范围内铂电阻阻值与温度关系为
     
   
     
    b=-5.847×10-7/(℃) 2
     
    根据上式进行温度计算,需要求解二阶方程的解,计算程序复杂,精度也难以保证。为此本文使用表格法和线形插值法进行温度标度变换。方法如下:首先,以温度增加1℃对应的绝对电阻值建立120个表格,A/D转换结果与表格内的电阻值进行比较,直到Rn≤RM<Rn+1时停止比较,求出温度整数部分,根据R-Rn和Rn+1-Rn的比值求解温度的小数部分,就可求出温度值。这种方法计算简单方便,也能满足设备精度要求。
     
    2.MSP430P325单片机的A/D转换原理
     
    MSP430系列单片机具有低功耗、高抗干扰、高集成度等优点。其中MSP430P325单片机具6有个通道14位A/D转换器,如图1所示。6个通道中A0~A3可编程为恒流源工作、适合于外妆电阻性、无源传感元件的应用场合。SVCC端是A/D转换的参考电压端,它可连接于片内的AVCC,也可由外部稳压源提供。A/D转换采用逐次逼近原理,由内部一个电阻网络生个开关电容网络配合D/A及比较器等电路来实现,由时钟ADCLK控制转换的进程。转换过程经过两卡,首先通过电阻阵列分压值与输入信号的比较来确定输入信号电压的范围,这个电压范围是将参考电压分成4等分,由低到高分别称范围A、B、C、D;然后由开关电容阵列逐位改变电容量,来搜索与输入信号最接近的电压值,由于电容量是以二进制幂排列的,完成搜索后开关的接通状态即为输入信号的A/D转换值。实际上的由电阻网络确定转换值的高2位,由开关电容网络确定了转换值的低12位。
     
    1193_2_0801063218.jpg
     
    当启动转换时在ACTL中设定了信号电压范围,实际已确定了转换数据的高2位,经过电阻网络的高2位判别就不必进行了,因此转换速度较快,它的转换速度为96个ADCLK周期。而如果启动转换时在ACTL中设定为自动搜索输入电压范围,ADAT中的将出现全部14位转换数据,这时转换时间增加到132个ADCLK周期。输入端输入信号是经过电阻型传感元件实现的,A/D输入端中的A0~A3,可以编程为恒流源输出端对传感元件供电。要实现这一功能,除了要对ACTL定义外,还要在引脚SVCC和REXT之间连接一个外接电阻,以构成恒流源,恒流由A/D输入端输出。这时检测的信号是传感元件上的电压值。关系 为VIN=0.25×Vsvcc×RSEN/REXT。其中,Vsvcc是参考电压,RSEN是传感元件电阻,REXT是构成恒流源的外接电阻,VIN即为在传感元件上检测到的电压值。A/D转换的精度较高时,数据低位受干扰的可能性也增大了。因此,MSP430P325单片机的模拟数字的供电是分开的,包括AVCC、AGND、DVCC、DGND等引脚。为保证A/D转换精度,在电路中不应将它们的简单地连接在一起。分成两组电源供电比较理想,但是在实际电路中往往难以做到。可采用在AVCC与DVCC之间加LC滤波去耦电路来隔离。在AGND与DGND间串入反向并联的二极管可使两点在电压低于0.7V时处于断开状态。空闲的输入端用作数字通道时,要防止对相邻模拟通道的干扰。这种干扰是经通道间的电容引入的。避免的方法是A/D转换期间避免数字通道出现信号跳变。由于A/D转换过程利用了开关电容网络,当信号源的内阻过大时会因RC常数过大而影响转换精度。A/D输入端的等待输入阻抗大约相当于2kΩ电阻与42pF电容的串联电路。ADCLK为1MHz时,信号源内阻低于27KΩ才能保证转换精度。
     
    3.外加电阻与测试精度的关系
     
    使用铂电阻进行测温时,外加电阻与恒流源电流之间的关系式为
     
    ISET=0.25×VSVCC/RSET (2)
     
    式中:ISET为恒流源电流,VSVCC为电源电压,RSET为外加电阻。
     
    铂电阻到地的电压VIN为
     
    VIN=Rt(t) ×ISET (3)
     
    从式(2)中可以看出,影响铂电阻两端电压检测精度的因素有两种:一个是电源电压的波动,另一个是外加电阻的精度和温度稳定性。从仪表使用情况来看,仪表的供电电池的电压随时间推移逐渐减小,如果没有相应的补偿方法,铂电阻的温度检测精度是无法保证的,因此本文提出如下补偿方法。
     
    MSP430P325有4个恒流源输出A/D转换通道(可以切换的),在另一个通道接一个与外加电阻RSET相同阻值的电阻,每次A/D转换时进行电阻电压降低补偿。补偿方法如下:
     
    恒流源给铂电阻供电时铂电阻两端电压为
     
    VIN=0.25×VSVCC×Rt(t)/RSET (4)
     
    V=0.25×VSVCC×R/RSET (5)
     
    A/D转换以后铂电阻两端电压的数字量为Nx,固定电阻的两端电压的数字量N,因为A/D的转换精度和位数是一致的,因此得出如下结果:
     
    Nx/N=Rt(t)/R (6)
     
    从式(6)可以看出,铂电阻两端电压的A/D转换结果与电源电压没有关系,这种方法也可以补偿芯片的基准电压离散性。要保证检测精度,外加的固定电阻R的精度是关键因素。如果温度检测范围为0~100℃,外加的固定电阻R的精度大小应如何选择?下面进行定量分析。
     
    Nx/(N±ΔN)=Rt(t)/(R±ΔR) (7)
     
    式(6)和式(7)相除得出如下结果:
     
    (N±ΔN)/N=(R±ΔR)/R (8)
     
    如果外加电阻RSET和R的阻值均为500Ω时,要求电阻精度影响数字量的大小为1LSB(温度检测精度0.03℃),那么电阻R的精度为0.02%。
     
    结束语
     
    从MSP430P325的A/D转换原理入手,详细论述了电源电压的波动对检测精度的影响,同时分析了补偿原理及补偿电阻的精度选择方法,为其它精密温度测量场合提供了极好的应用实例。本文提出的补偿方法在一家电子公司已成功的应用,补偿效果令人满意。


原贴链接:https://www.cnblogs.com/juju/archive/2012/04/26/2471340.html

相关帖子

kkzz| | 2019-3-1 22:11 | 显示全部楼层
这个是补偿的温度吗?              

使用特权

评论回复
hudi008| | 2019-3-1 22:11 | 显示全部楼层
用单片机软件实现传感器温度误差补偿

使用特权

评论回复
lzmm| | 2019-3-1 22:12 | 显示全部楼层
一般使用数字处理                 

使用特权

评论回复
minzisc| | 2019-3-1 22:12 | 显示全部楼层
要解决传感器温度误差补偿问题         

使用特权

评论回复
selongli| | 2019-3-1 22:12 | 显示全部楼层
利用软件来解决传感器温度误差

使用特权

评论回复
fentianyou| | 2019-3-1 22:13 | 显示全部楼层
温度变化给传感器实际测量带来误差?

使用特权

评论回复
xiaoyaodz| | 2019-3-1 22:13 | 显示全部楼层
找出它们间的关系,建立对应的数学模型。就行。

使用特权

评论回复
xiaoyaodz| | 2019-3-1 22:13 | 显示全部楼层
找出它们间的关系,建立对应的数学模型。就行。

使用特权

评论回复
xiaoyaodz| | 2019-3-1 22:13 | 显示全部楼层
找出它们间的关系,建立对应的数学模型。就行。

使用特权

评论回复
xiaoyaodz| | 2019-3-1 22:13 | 显示全部楼层
找出它们间的关系,建立对应的数学模型。就行。

使用特权

评论回复
febgxu| | 2019-3-1 22:14 | 显示全部楼层
实现温度误差补偿的方法有哪些呢?     

使用特权

评论回复
sdlls| | 2019-3-1 22:14 | 显示全部楼层
一般采用分段线性插值法

使用特权

评论回复
pixhw| | 2019-3-1 22:14 | 显示全部楼层
一种简便、有效的方法。

使用特权

评论回复
lzmm| | 2019-3-1 22:15 | 显示全部楼层
直接线性输出就好了。

使用特权

评论回复
hudi008| | 2019-3-1 22:15 | 显示全部楼层
温度补偿是必须的,              

使用特权

评论回复
kkzz| | 2019-3-1 22:15 | 显示全部楼层
主要是线性对应关系的计算。      

使用特权

评论回复
pixhw| | 2019-3-1 22:15 | 显示全部楼层
特别是如硅阻、应变片、电容式等传感器受温度影响大

使用特权

评论回复
sdlls| | 2019-3-1 22:15 | 显示全部楼层
用拟合法求出各温度上的传感器静态输出输出特性的拟合多项式

使用特权

评论回复
febgxu| | 2019-3-1 22:15 | 显示全部楼层
有对应的补偿关系吗?         

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

41

帖子

0

粉丝