基于LM3S101处理器的温度测量模块设计
热敏电阻阻值获取原理,给出该测温模块核心部分电路原理图,如图2所示。
由图2可看出,按上述的电容充放电热敏阻值检测原理进行硬件设计,核心部分电路较为简洁,避免了传统方式中A/D器件的应用,达到了简化硬件电路设计,降低硬件成本的目的。同时,这种设计又不过多占用处理器的I/O端口,对处理器资源的占用也较少。由于这种方式在阻值获取时需处理器具有较高的计数精度,而在阻值到温度值转换时需处理器具有较强的运算能力,因此选用LM3S101进行核心处理,其20MHz的时钟频率及ARMCortex-M内核集成的硬件乘法单元对此有很好的保证。电路图中,其他部分简要说明:SP6201是集复位功能于一体的低压差线性稳压(LDO)器,将5V电源转换为处理器LM3S101所需的3.3V,同时产生处理器工作所需的复位信号。电阻RF、RT、RS和电容C6构成RC充放电电路,用以实现热敏电阻阻值的检测,与处理器通过PA2、PA3、PA43个GPIO接口相连。LM3S101的10和ll引脚使用其UART功能,连接至电平转换电路,以实现模块通过串口的通信及温度数据发送功能。
2数据处理及软件设计
2.1热敏电阻测温曲线的线性化处理
热敏电阻的测温曲线反映了热敏电阻阻值与被测温度值之间的关系,由Steinhart-Hart方程确定:
式中,RT是热敏电阻在T1温度下的电阻值;R是热敏电阻在常温T2(T2=25℃)下的标称电阻值;B值是热敏电阻的材料常数;T1和T2为开尔文温度。
由Steinhart-Hart公式可知热敏电阻的阻值温度特性曲线是一条非线性的指数曲线,直接使用该方程运算量大并且编程麻烦,需要进行线性化处理。由于该方程非线性程度较大,同时阻值到温度值的转换也是影响测温精度的主要原因之一,为使线性化处理不至于带来较大的误差,线性化过程进行了以下特殊处理:
1)如果用一条直线代替该指数测温曲线,则不管采用什么样的线性化处理方法,误差都比较大。为解决这一问题,在整个测温范围之内对该曲线进行了分段的线性化处理,使误差能够控制在合理的范围内;
2)分段线性化时,对测温曲线的分段采用非等间隔分段,在曲线非线性程度较小的区域内采用5℃分段间隔,在曲线非线性较为严重的区域内,采用较小的1℃分段间隔,以减小处理误差;
3)在每一段测温曲线的线性化处理中,采用最小二乘法确定直线方程,以减小直线拟合的均方误差。
实测结果证明,采用上述的线性化处理方法,可以有效提高处理精度,大大减小线性化处理的误差,保证测温的精度要求,同时运算速度也能得到保证。
2.2测温数据的滤波处理
测温模块工作过程中不可避免会受到噪声干扰。为减少测温过程中噪声干扰信号,特别是突发噪声的影响,提高测温模块的工作稳定性,需要结合滤波算法对测温数据进行滤波处理。这里采用简单的加窗平滑低通滤波的方法,即连续测量N个值,取平均后作为测量的有效值,即:
在具体的应用中,N越大对数据的平滑越好,但N过大会降低测温的速度和灵敏度。经实际试验,选择N=5~10之间较为合适,可在计算速度和平滑滤波效果之间取得较好平衡,实际应用中,可根据具体的测温要求进行合理设置。
2.3测温模块的软件设计
以上述的数据处理思路为基础,结合串口通信编程及必要的初始化处理工作,即可进行测温模块的软件设计。完成一次温度测量及测温结果传输的主流程如图3所示。
整个模块的软件设计编程基于Cmssworksl.7开发环境进行,将整个程序的核心部分划分为4个函数进行设计,即:1)主函数,完成系统参数配置、端口初始化及滤波处理等功能;2)测温函数,完成热敏电阻的阻值获取,并将其转换为实际的温度值;3)测温结果传输函数,完成测温结果通过串口的发送传输功能;4)串口接收函数,通过串口接收控制指令,完成测温间隔时间、串口通信速率、平滑滤波加窗宽度、及测温结果显示格式等工作参数的设置。
3测温效果分析
所设计的测温模块结合精密恒温槽进行了实际测温效果的实验测试。利用精密恒温槽在-10~+80℃的测温范围内,设置3个温度检测点,把热敏电阻放在精密恒温槽内,利用该模块进行温度的测量。各个温度点的温度测量值通过串口调试工具进行观测,实验测试数据如表l所示。
表l所示的测量数据表明,所设计的测温模块测温稳定,在整个测量温度范围内测温精度基本上能够达到O.2℃,优于传统热敏电阻测温采用单片机结合A/D器件的方式,同时也证明了测温曲线分段线性化处理的有效性。
4结论
本文提出了一种简单实用、性价比高、测温效果好的热敏电阻温度测量模块的设计,所设计的测温模块由于对热敏电阻阻值的获取引入RC充放
- 基于ARM的综合测试仪设计(05-26)
- 基于AT89C51和DS18B20的最简温度测量系统(01-03)
- 基于AVR USB接口的温度测量系统下位机设计(03-01)
- 基于LabVIEW的温湿度测量系统(03-22)
- 基于单片机的多点温度测量仪的设计(07-26)
- 基于虚拟仪器的温度测量系统(08-14)