基于STM32单片机的红外测温仪的设计与实现
扫描二维码
随时随地手机看文章
红外测温仪是一种将红外技术与微电子技术相结合的新型温度测量仪器。与传统接触式测温仪器相比,具有测温精度高、非接触、不影响被测对象温度场、响应速度快及稳定性好等一系列优点,在电力、石油、化工、医疗等领域得到广泛应用[1]。
热释电红外测温仪是利用热释电效应工作的一种新型红外测温仪。与其他传统测温仪相比,具有不需制冷、能在室温下工作和光谱响应宽等优点,且其灵敏度高、响应速度快、抗干扰能力强[2]。本文利用热释电探测器,结合32 bit ARM核处理器低功耗、高性能和低成本的优点,设计了一个以ARM微控制器STM32为核心的红外测温仪。
1 红外测温的原理
一切温度高于绝对零度的物体都在不停地向周围空间发出红外辐射能量,其辐射能量的大小及其波长的分布与其表面温度有密切关系,由维恩位移定律可知,温度为Tc,的物体,对应于波长为λ1和λ2的单色辐射功率之比Z 由下式表示:
2 总体构成
由于本系统需要测量的是高温物体的表面温度,故采用比色测温方案,即利用同一被测物体在两个波长下的单色辐射亮度之比随温度变化这一特性作为其测温原理。红外测温仪的结构组成如图1所示,主要由光学系统、红外探测器、信号处理和显示输出等部分组成。光学系统完成光线的收集和视场大小的确定,红外探测器用来将聚焦在探测器上的红外能量转换成电信号,经放大、滤波等进行信号调理,然后送至微控制器进行模数转换及信号处理,最后再经温度补偿和标定后转换为被测目标的温度并用LCD显示出来。
2.1 微控制器STM32
STM32系列基于为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。并带有512 KB的高速Flash存储器,其内部集成了3个12 bit的ADC,1个2通道12 bit DAC,有多达11个定时器,其中有两个16 bit带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器。利用此控制器可快速进行数字滤波、温度补偿等数据处理任务[3]。
2.2 光学系统
这部分采用的是反射式光学系统中典型的牛顿系统,这种系统相对于透射式和透射--反射组合式光能损失小、不存在色差、结构简单、易于加工。
2.3 探测器及斩波器设计
本系统采用的是热释电传感器,目前热释电传感器的核心元件——热释电材料主要有锆钛酸铅PZT、钛酸锶钡(BST)和钽钪酸铅(PST)等,在这里选择是用BST薄膜,热释电薄膜相对于热释电体材,具有小型轻量、分辨率高、反应快、能与微电子技术兼容等优点,因接受到的辐射很微弱且直流放大器存在零点漂移,故在辐射信号到达传感器器前必须对辐射能进行调制,使其变为交变信号。本系统使用的扇形调制盘由STM32的脉宽调制器输出口PA8产生的占空比为50%的方波信号驱动步进电机。
2.4 信号的调理
信号的放大电路分为前置放大电路和后级放大电路。尤其是前置放大器的噪声系数对整个检测系统的噪声具有决定性作用。本设计采用的放大器是美国MAXIM公司生产的OP07, OP07是一种超低失调的运算放大器(一般为10 μV左右),其共模输入阻抗可达200 MΩ,输出阻抗仅为60 Ω,可满足系统设计需要。由于STM32的A/D转换器输入信号范围为0~3.3 V,需选择合适的放大倍数,使最高测温时对应的输出电压在3.3 V内。
当信号经放大器放大后,其宽带噪声较大,因此,在前置放大器和后级放大器之间加了带通滤波器来抑制宽带噪声,提高信噪比。但带通滤波器的带宽应做的宽一些,否则当温度发生变化时,信号的频谱很容易偏离滤波器的通频带而导致测量误差[4]。根据本系统需要,系统采用二阶巴特沃斯型带通滤波器,其中心频率设计为100 Hz,带宽约在20 Hz。
2.5 检波电路
本文设计中采用电子开关型检波器,与模拟乘法器型检波器相比具有电路简单、精度更高、运行速度快、没有非线性等优点,具体的电路如图2所示。
由图2可见.输入信号V4是传感器经主放大器放大的输出信号,V5是STM32的PWM端口发出的,经过移相后用于斩波调制的脉冲信号;V6为V5的反相电压,通过加一反相器来实现的。图中R27=R28=R29=R31=R32=0.5 R33,当V5为高电平时,Q2导通,OP07的同相端接地;当V5为低电平时,Q2截止,OP07反相端接地,输出电压。
经上述电路后信号中还混有噪声,主要通过低通滤波器来消除这些噪声。
2.6 温度补偿单元
由于受到环境温度的影响,需要对系统进行温度补偿,本系统采用的是集成温度传感器AD592,是美国AD公司的一款高性能集成温度传感器,具有精度高、非线性的误差小、输入的范围宽等优点。系统中的可调电阻R2用来校准输出电压V2,当环境温度为0时输出电压V2为0;R5用来校准温度系数。经校准后,输出电压V2即为温度系数与环境温度的积,接到STM32的ADC端口PC0。
2.7 模拟/数字转换单元
STM32内置了3个12 bit的模拟/数字转换器(ADC),每个ADC共有多达21个外部通道,可以实现单次或扫描转换,在扫描模式下,自动进行在选定的一组模拟输入上的转换[5]。其A/D转换器测量范围为0~5 V,因为本系统的工作频率为150 Hz,每周期采样10次,所以ADC的转换速率设为1.5 kHz,系统中采用PC1端口对电压进行采样。
2.8 输入输出单元
STM32拥有多达80个多功能双向I/O口,因此设计键盘时可采用5个独立式按键,分别为开机、摄氏与华氏温度转换、辐射率修正和背光显示键,LCD显示器采用字符型液晶NT7502显示,微处理器通过8 bit串行接口向NT7502发送数据/命令,用GPIO实现LCD的读写控制时序以及数据信号,完成对LCD的操作控制,同时可用来显示环境温度的值。液晶显示器接口电路如图3所示。
3 系统的软件设计
系统的软件设计采用模块化的设计, 包括步进电机设计的控制程序、对目标温度的检测、按键的识别、LCD的驱动、对数据的采样以及对数据的处理算法等程序。整个测温过程的流程如图4 所示。
4 红外测温仪的标定
红外测温仪必须经标定才能正确显示出被测目标的温度,传统的查表方式和拟合曲线法等标定方式不仅要测量多个温度点,而且精度低、误差大。本系统在标定的过程中,采用了三层BP神经网络算法对测温数据进行标定,其具有自学习、自适应信息并行处理能力。在标定过程中,采用黑体炉模拟被测目标,采集不同温度下信号电压的大小。经过反复多次测量,在10℃~50℃的工作环境温度中,测温范围为800℃~1 500℃。并在中频真空感应熔炼炉上与铂铑热电偶进行对比实验,该系统精度可达±1‰,分辨率为0.5 ℃,响应时间小于50 ms,基本满足系统的最初设计要求。
本文研制的是一种基于比色测温原理的红外测温仪,与其他测温仪相比,能够抵消由于辐射率对测温精度的影响,使得测量结果更加接近待测物体表面真实温度,由于采用了32 bit的STM32作为处理芯片,与其他使用8 bit或16 bit处理器相比,使数据处理能力大大增强,测温性能得到很大提高,同时也减小了测温仪的体积,并具有结构简单、操作方便、可靠性好、价格低等优点。