Board logo

标题: 类R—F转换频率测量温度方法详解 [打印本页]

作者: yuchengze    时间: 2017-3-24 22:23     标题: 类R—F转换频率测量温度方法详解

测量温度一般采用开关电源模块热敏电阻做传感器,测量的方法有R—V转换电压测量法和R—F转换频率测量法。这两种方法的MTD2002电路复杂且成本高,电路中很多元器件直接影响测量精度。本文论述一种类R—F转换频率的测量法,用NE555定时器和热敏电阻等器件构成振荡器,由开关电源模块MSP430单片机的捕获功能来捕获多谐振荡器输出信号的高低电平并计数,热敏电阻Rt与捕获高低电平时的计数值的差值成正比关系。该方法电路简单、成本低,系统流程框图如图1所示。
1 负温热敏电阻
PT一25E2热敏电阻温度阻值变化曲线如图2所示。PSB型负温热敏电阻由Co、Mn、Ni等过渡金属元素的MTD2002氧化物组成,经高温烧成半陶瓷,利用开关电源模块半导体毫微米的精密加工工艺,采用玻璃管封装,耐温性好,可靠性高,反应速度快且灵敏度高。它采用轴向型结构,便于安装,能承受更高温度,且玻璃封装耐高低温(一50~350℃)。
2 MSP430单片机计数法测温原理
以NE555定时器为核心组成典型的多谐振荡器,把被测热敏电阻Rt作为MTD2002定时元件之一接入电路中,开关电源模块NE555定时器输出引脚接MSP430单片机的P1.2脚(Timer_A:捕获、CCIlA输入引脚)。系统电路如图3所示。
由NE555工作原理可知,开关电源模块多谐振荡器输出信号(周期性矩形波)的高电平时间(1个周期内)为:
若控制开关电源模块MSP430单片机的定时器A计数时钟的频率设置为f,则捕获到高电平时间内的计数值为NH,捕获到MTD2002低电平时间内的计数值为NL,所以有:
因为f、C1、R1均为定值,所以Rt与N成正比,且增大f还可以提高测量精度。查表可得温度值。
由上述测量原理可知,误差主要来源为:R1、R2精度,单片机的定时器和电容器的精度以及稳定度。这里选用高精度(士O.001%)、温度系数小于土O.3×10-6/℃的精密金属箔电阻器。因此当选用高精度、高稳定度的电容器,且单片机的工作频率足够高,就可以得到较好的测温精度。
3 MSP430单片机捕获原理
捕获计数法的原理如图4所示。通过开关电源模块MSP430单片机TACTL寄存器给定时器A设置一个固定的MTD2002时钟频率f和计数模式(本系统设为连续模式)。又知Timer A工作在连续计数模式时,TAR(16位)计数范围是0一FFFFH值。定时器A连续模式计数启动后,TAR的值开始从O—FFFFH一O—FFFFH……不断重复计数,直至软件控制其停止计数为止;同时设置TACCTL寄存器的CMx、CAP、CCIE位,在多谐振荡器输出方波的上升沿和下降沿都触发捕捉并中断。这样当每次沿到来,进入中断并捕获上升沿和下降沿时刻的值(如TACCRla、TACCRlb、TAC—CRlc、TACCRld……),然后用此次捕获的值减去上次捕获的值即可得高或低电平时间内的计数值NH、NL。例如:NH=TACCRlb一TACCRla、NL=TACCRlc一TACCRlb,代入式4、式5便可得出R的值,查表即得温度值。
MSP430F1X定时器初始化所涉及的寄存器配置如下:
  TASSELx:4种时钟源供选择。
IDx:4种预分频选择。
MCx:TAR计数模式选择,MCx=11,上升沿和下降沿都捕获。
TAIE:Timer_A中断使能,为“1”中断使能。
CMx:捕获触发信号选择。
SCS:捕获同步或异步选择,“O”同步、“1”异步。
CAP:捕获模式选择,“O”比较、“1”捕获。
CCIE:捕获/比较中断选择,为“1”中断使能。
4 软件设计
基于开关电源模块MSP430单片机捕获中断测温程序流程如图5、图6所示,包括MTD2002主程序流程、捕获中断和溢出中断流程。
Timer_A初始化代码如下
捕获中断和溢出中断函数代码如下:
代入常量f、C1、R2的值,即可得热敏电阻阻值,通过查表可得MTD2002温度值。查表温度间隔一般为1℃,如果忽略开关电源模块热敏电阻1℃以内的非线性误差,可以将两摄氏度之间取线性计算,这样可以得到O.01℃的分辨率。
结 语
由测量原理知:开关电源模块被测电阻的阻值越大,MTD2002测量误差越小。笔者已应用该方法设计出一款温度计,测量范围为一10~80℃,分辨率达到O.01℃,误差在O.3℃以内。该开关电源模块设计充分利用了MSP430单片机的捕获功能和低功耗功能,使得MTD2002电路功耗低、电路简洁、价格低廉、精度高。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0