基于NXP K32L2B MCU的额温枪参考方案(硬件篇)

demi的头像
demi 发布于:周四, 04/02/2020 - 09:53 ,关键词:

作者:何此昂@NXP

1、背景

一切温度高于绝对零度(-273.15℃)的物体都在不停向周围空间辐射红外能量。非接触式温度传感器主要是利用被测物体热辐射而发出红外线,从而方便地测量物体,例如如下图所示物体的表面温度测量。


1.1. 红外测温

红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质,利用红外线的物理性质来进行测量。物体的红外辐射特性如辐射能量的大小及其波长的分布与它的表面温度有十分密切的关系。因此,通过对物体自身辐射的红外能量的测量,便能准确地测定它的表面温度,这就是红外辐射测温的客观依据。

红外测温有如下特点:

A、响应时间快,测量速度快,理论上0.1秒就可以测出被测物体的温度。

B、非接触、使用安全及使用寿命长等优点。
由于和被测量介质不发生直接接触,所以不用考虑被接触介质的一些自身物理特性。例如:粘附、腐蚀、磨损等都不会对传感器造成损害, 同时由于不需要接触被测物体而快速测得温度,能可靠测量热的、危险的以及不方便接触的物体,同时不会污染或损坏被测物体。
而接触式的会面临这些问题。在产品质量控制和工业监测、设备在线故障诊断、安全保护以及节约能源等方面有重要作用。

C、受空间局限性影响小。
对一些距离较远不易接触到的被测量目标可以远距离测量温度。对于一些不方便接触测量的目标可以实现测量,例如旋转机械、运动中目标等等。

红外位于可见光和无线电波之间,红外辐射是一种电磁波,红外波长常用微米表示,波长范围为0.7um~1000um,实际上0.7um~14um米波带用于红外测温。

1.2. 红外测温技术

实现非接触红外测温的技术包括长波红外焦平面探测器、热释电红外探测器以及基于赛贝克效应的热电堆红外探测器。其中长波红外焦平面探测器因其较高的成本, 一般不适用于家庭测温应用。热释电红外探测器尽管成本低廉,但是因其需要机械斩波器,而使系统的可靠性降低也限制了其应用。而热电堆红外探测器因为其极高的性价比非常适合智能家居、智能楼宇测温场景。

最常用的是热电堆红外温度传感器,这种传感器直接感应热辐射,用于测量小的温差或平均温度,可以为非接触温度测量提供解决方案。非接触红外测温由光学系统、光电探测器、信号放大器及MCU信号处理、显示输出等部分组成,如下图所示。光学系统汇聚其视场内的目标红外辐射能量,视场大小由测温仪的光学零件及其位置确定。


1.3. 额温枪

► 额温枪工作原理:任何物体在高于绝对零度(-273℃) 以上时都会向外发出红外线,所以红外最开始是用在外太空测温的,额温枪通过传感器接收红外线,得出感应温度数据。

► 额温枪使用方法:额头部位相对体表温度来说是最接近正常体温的放射源。把额温枪放于距额头1-3cm处测温,精度为+/-0.3,此类精度不能做医用,但可做疫情时期非接触测温排查用,人体测温主要是做体温初步筛查,通过初步对人体表面温度进行筛查,快速找出温度异常的个体,发现温度异常目标之后,再进行专业医学体温测量,温度过高者经医院及时确诊而进行防治。

人体是个非常复杂的生物综合系统,体温是人体生命活动是否正常的重要参数,通常通过测量额头、耳蜗、肛门、口腔和腋窝等地方的温度来检测健康状况,不同部位测量出来的体温会有所不同,具体差异参考下表:


1.4. 额温枪应用

额温枪不只可以测量人体体温,涵盖很多日常场景:

人体体温测量:准确测量人体体温,替代传统的水银体温计。通过随时观察自己体温是否存在异常,避免感染流感,防范冠状病毒等。

皮肤温度测量:测量人体皮肤的表面温度,比如可用于断肢再植入手术时需要测量皮肤的表面温度。

物体温度测量:测量物体表面温度,比如可用于茶杯外表的温度的测量。

液体温度测量:测量液体的温度,如婴儿洗澡水的温度,宝宝洗澡的时候测一下水温,不再担心凉了或者烫着;还可以测量牛奶瓶的水温,方便冲调Baby的奶粉。

可以测量室温。

2、器件选型

低端家用的红外测温不同于高端的红外热成像仪,只需要低端低功耗的MCU就可以实现,目前市面上常见MCU主要的痛点在于:

  • 器件ADC的精度不高或者一批产品的ADC一致性不好,出现同一批设备在相同温度下,有的设备精度高有的设备精度低;
  • 运行功耗偏高;
  • Flash容量不够大;
  • 标定算法简单;在不同环境温度下针对同一测温对象的重复测量的精度差;
  • 专用的SOC内置的LCD引脚只能做Segment或者COM的功能,功能单一,如果不用LCD显示引脚的话,该功能无法复用成其他GPIO引脚,GPIO平台可扩展性不好。

如果使用NXP集成丰富的模拟外设和数字接口,针对成本敏感,低功耗电池供电应用场景应用的K32 L2B系列,可以很好的解决上述这些问题,其具有如下特性:

  • 集成多通道16-bit ADC,可用于采集红外温度传感器的信号,以及采集电池电压,目前K32L2B的16位单端模式精度可以达到13.9位,差分模式可以达到14.5位,使用芯片内置的ADC就可以满足要求,实现0.1度温度测量精度要求。
  • 12-bitDAC为外置运放提供偏置电压;可以节省一颗外部的3V转1.2V电平转换芯片或者外围分离器件搭建的降压转换电路(由于运放的偏置电路消耗电流只需要uA级,目前片内的一路DAC可以满足此要求)。另外Vref 该引脚可以内部输出1.2V参考电压,带载能力也可达1mA。
  • sLCD:低功耗段码显示支持24x8或者28x4段,sLCD引脚既可以做Segment,也可以做COM口的功能,即使未配置为sLCD的引脚也可以做其他IO功能控制口。
  • 3路I2C(其中的2路I2C中一路接红外数字传感器或者接近传感器,另外一路接高精度数字温度传感器,可外接NXP PCT2075温度传感器芯片,还有预留的1路I2C用FlexIO实现标准的I2C或者UART或者SPI通信) 。
  • 2路PWM用于驱动LED指示LED或者蜂鸣器报警信号,以及实现语音播放功能。
  • USB FS 2.0从设备接口,不要额外的晶体。
  • 支持最大256K Flash,48 MHz Arm® Cortex®-M0+内核。K32L2B11VLH0A 64K Flash,32K RAM的配置即可满足额温枪的需要。
  • 低功耗特征:运行模式达 54 uA/MHz,在深度睡眠模式下RAM和RTC处于保持状态的功耗为1.96uA;满足采用采用电池供电的手持式红外测温枪,对系统功耗苛刻的要求。
  • 具有小于10us的快速唤醒模式,能及时唤醒主控进入运行模式。
  • 64 LQFP封装, 至少提供5个GPIOs满足用户人机界面设置按键需求。如果是做额温测试模块外接高端i.MX系列带大屏幕彩色显示屏的应用,可以选择32脚封装的,例如K32L2B11VFM0A。
  • 额温枪对Flash容量大小的需求,主要是NTC(RT电阻温度换算表)和红外测温(VT电压温度换算表)标定参数的存储,语音播报数据的存储,64K Flash是可以满足要求的。
  • K32 L2B系列具有广泛的产品路线图,支持引脚功能完全兼容,扩展的Flash,可以添加诸如蓝牙以及二维码扫码等新型扩展功能需求。
  • 内置ROM bootloader方便用户程序在线升级和温度参数标定,内置高精度的内部时钟,此功能用于工厂固件生产配置,使用NXP提供的Kinetis Flash Tool下载工具软件GUI,可以直接方便的通过USB刷新固件和校准配置参数,无需额外的仿真下载调试工具。

MCUXpresso ConfigTool:易用的软件配置工具以及完整的外设驱动SDK包方便用户快速原型开发。

3、硬件设计

MCU 硬件框图如下。


其中,运放(AMP)的偏置电压设置采用K32L2B内置的DAC设置或者Vref输出。

红外温度传感器(Infrared sensor) 可以选择带数字接口I2C输出的,或者是纯模拟输出的,后面小节会对传感器选型详细介绍。

在没有按键触发的情况下,系统整体是断电的,如果有按键触发则启动温度探测以及sLCD显示,长时间如果没有按键被按下,则进入掉电状态。当按下测温按键, 额温枪便会利用红外传感器进行温度采集, 通过ADC能将模拟信号转换成数字, 微控制器MCU通过运算(插值,查表,或者线性拟合等方式)将其转化为温度。

3.1 红外温度传感器(Infrared sensor)

自然界的所有物体都能向外辐射红外热,不同温度的物体,其释放的红外能量的波长是不一样的,因此红外波长与温度的高低是相关的。人体辐射的红外光波长3~50um,其中8~14um占46%,峰值波长在9.5um。热释电红外传感器(PIR),它能将波长为8~12um之间的红外信号变化转变为电信号,并能对自然界中的白光信号具有抑制作用。因此在温度检测区域内,当无人体时,热释电红外感应器感应到的只是环境温度,当人体进人检测区,热释电红外感应器感应到的是人体温度与环境温度的差异信号。因此,红外探测器的原理就是感应人体与环境温度的差异。但是热释电精度不高,一般只是作为有无人体的检测。

目前额温枪红外温度传感器方案主要是热电堆传感器的方案,有两种一个是集成17或者18位ADC的带I2C接口的传感器, 价格大于一美元,主要优势是不用标定,设备生产商使用方便简单。

另外一种就是直接模拟输出的方案,因为MCU本身具有高精度的ADC,使用模拟传感器方案的成本优势明显,小于一美元。性能上面主要是考虑热敏电阻阻值@25℃,温漂大小,FOV视野角度,感应区面积,分辨率,测温范围等参数。

通过采集红外传感器收集到的物体发射的红外线信号,转化为微弱的uv-mv级的非线性输出电压信号,再经过运放近百或千倍的电压放大,并经过调节和线性化处理,最终输出的是线性mV或mA信号进入到MCU,通过高精度ADC转换,转换结果经过数字信号算法处理运算得到实际的温度,通过LCD或者语音播报出来。

实际电路设计中,由于结构的原因,有可能传感器板子是单独的板子,运放要靠近传感器摆放,使得传感器与MCU连接线受干扰影响小。

MCU内部的16位ADC具有内部1.2V参考电压Vref,可以提供更精确的电压基准,不受电池电压变化而影响测量结果。

热电堆每0.1度才大约5μV左右,ADC ( 16位分辨率)的精度一般能做到13位以上的就算不错了,也就是ADC在这种情况下的最小真有效的分辨电压是400μV。因此运放最小也要放大100倍,目前是240放大倍率,达到1000μv,也就是1mv。


硬件平均使能,32位采样平均,使能连续转换模式配置。

ADC0->SC3 = ADC_SC3_AVGE_MASK | ADC_SC3_AVGS(3) | ADC_SC3_ADCO_MASK;

实际测试了一下板子,用外部电源供电,采集同样的目标温度,换算为实际的电压范围跳动在1.235-1.251v,差不多有12mv的波动。而使能硬件平均后,采集电压跳动范围是1.218-1.220v,减小到2mv,而传感器输出信号每度变化是50*240 =12mv波动,可见ADC采集精度大优于传感器输出信号精度。

3.2 环境温度传感器(Temperature sensor)

环境温度传感器采用NXP PCT2075I2C接口数字温度传感器,其测温范围可达-25℃~100℃,其测量精度可以达到0.125度,作用是获取测量时的环境温度,以此从红外温度传感器的测量值中剔除环境温度,得出被测人体温度,对红外温度传感器做补偿。

此外检测环境温度,对精度要求不高,通常用NTC(负温度系数的热敏电阻,在室内温度环境中测温精度可达±0.2℃以内),其阻值随温度的升高而降低,用MCU的ADC能够准确分辨其阻值变化大小,通过RT电阻温度换算表,从而可计算出对应的温度值。

3.3 接近传感器(Proximity sensor)

环境光检测和数字接近传感器采用EM30719或者LTR-553ALS-01或者STK3311,用来判断被测物体与红外测温传感器间的距离,只有在最佳物距比的情况下才启动测量,保证测量数据的准确性。通过I2C接口连接到MCU端。

接近传感器越靠近物体,值越大,没有东西隔挡理想值是0。

额温计的传感器视场角通常很大。校准时接收黑体辐射源辐射不仅来自于黑体空腔底部,也有很大比例来自于接近空腔口的侧壁。常见的圆柱-圆锥空腔接近腔口侧壁的有效发射率会显著下降。因此,额温计的测量结果通常对测量距离敏感。

光学器件的主要特征是视场(FOV),即在指定距离处目标尺寸是多少?如在常见的透镜系统中,15英寸工作距离处目标直径为1英寸。根据平方反比定律,通过将距离加倍(30英寸),目标区域理论上也加倍(直径为2英寸)。如果目标占满整个视场(FOV),工作距离就不应影响精度。

以典型的额温计的测量距离为1-3cm为例。在1cm处,示值最高,示值对测量距离的敏感程度也最低,瞄准的测量重复性最好。因此在实际应用时,在1-3cm的测试距离测量结果最佳。

3.4 人机接口电路部分

液晶显示电路,能够将测量的人体温度以段码方式显示出来,并显示温度单位(℃/℉)、电量提示符号以及工作模式、过温提示报警等。本方案采用段码式sLCD显示屏,搭配如下3色LED导光板,成本低显示效果好。


绿色背光表示,低于37.3度,体温正常;黄色的预警值范围是37.4-37.9度,提醒关注体温变化;红色背光表示38度以上,建议到医院检查。

本方案设计了5个独立按键电路,最基本的是3个按键,可分别做为体温键、物温键和记忆键,另外还可以设计温度单位切换按键,声音提示按键,也可以设计为长短按键的形式,只使用3个按键的方式。

K32L2B MCU内部的sLCD驱动由于内置电荷泵,不会随电池电压变化而对段码LCD屏显示有所影响。

K32L2B MCU VLL3需要接上拉电阻,否则在做 sLCD显示时,对于没有配置为显示的段会有鬼影。

目前额温枪的设计是参考K32L2B的官方原理图SCH-46355来实现的,官方版图提供了完整的外设功能驱动设计参考。

3.5 电源供电部分

电源电路可以用2节、3节或4节电池供电,为系统提供3V、4.5V或6V的输入电源。

如果采用2节电池供电可以省略LDO,系统电路的电源都直接由电池提供。采用3节或4节电池供电的情况下,需要增加额外的LDO电路为其它电路供电。

当检测按键按下的时侯进入工作状态,使能电源引脚,如果30s内检测不到按键按下,则关闭电源使能。

目前的电路是用内部DAC输出电压1.2V给到运放提供偏置电压,负载电流1mA,省去外围的1.2V电路。

另外Vref out (VREFH)也可以输出1.2V(当Vrefv1模块使能的时候),应用上也是一个亮点,既可以为内部的ADC或者CMP比较器提供内部的参考电压,亦可以用它输出电压给模拟外设提供参考电压,Vref out 引脚输出负载也可以达到1mA,参考如下VREF表格。

Vref out (VREFH)也可以输出1.2v(当Vrefv1模块使能的时候),负载电流 1mA。应用上也是一个亮点,可以用它输出偏置电压给到运放。目前是用内部DAC输出电压1.2v给到运放提供偏置电压,负载电流1mA,省去外部的1.2v电压参考芯片。也可以用Vref out 提供偏置电压,这样可以用 DAC 输出语音播报做其他功能设置,Vref out 引脚输出负载也可以达到1mA,参考如下VREF表格。

目前64脚的IO资源已经用足,所以做额温枪,使用集成段码显示的单芯片,64脚封装应该是主流。当然也有48或者32脚的产品,一般都是需要外置sLCD显示驱动芯片。


3.6 K32L2B MCU部分

K32L2B MCU电路做为系统的检测和主控核心单元,其主要功能是通过片内的16位高精度ADC电路,检测经过信号调理电路放大滤波后的热释电信号,并参考当前的环境温度值做相应的校准和补偿。经过校准的测量值通过K32L2B MCU的sLCD接口送到显示驱动电路,以直观的数据显示出来。

热释电传感器测量人体和物体表面温度的范围是不同的,所做的校准和补偿方案也有所不同,MCU的控制电路使用模式按键来选择不同的测量模式,以达到最佳的测量精度。

为了直观的展示测量结果,MCU的控制电路可以驱动3种不同颜色的LED背光灯,灯光红黄绿表示不同的温度区间。同时还可以通过驱动蜂鸣器的“嘀嘀”声来表示测量状态和结果。

K32L2B MCU内置64KB Flash存储器,一方面可以保存系统功能代码,另一方面可以用于存储测量数据。

本文下半部分将介绍相关软件及校准等方面的内容。

来源:恩智浦MCU加油站,转载此文目的在于传递更多信息,版权归原作者所有。

围观 186