欢迎来到亿配芯城! | 免费注册
你的位置:Chinamobile(中移物联网)2G/3G/4G/5G模块全系列-亿配芯城 > 芯片资讯 > 基于MLX90615与STM32的多点红外温度测量系统设计
基于MLX90615与STM32的多点红外温度测量系统设计
发布日期:2024-11-10 07:01     点击次数:128

  0简介。

  目前,达拉斯公司的数字温度传感器DS18B20被广泛应用于多点温度测量系统中。其优点是系统中只有一条总线可以完成数据交换和控制。然而,DS18B20的响应速度慢,精度低。当DS18B20连接到总线的数量超过8个时,需要为每个DS18B20提供独立的电源,这使得系统维护非常困难。红外测温技术作为一种方便、准确的非接触测温技术,发展迅速。红外测温可以实现对其视场内难以接触或危险区域的连续、实时温度监测,有效降低测温作业的风险因素,具有体积小、精度高、网络化、实时性好等优点。本文以数字红外温度传感器mlx90615为温度检测器件,以STM32微处理器为核心,设计并实现了多点红外温度测量系统。

  该系统具有以下优点:温度测量精度高;测量不影响温度场分布;非接触式温度测量,降低了危险因素;响应时间短,易于实现动态测量。

  一。红外辐射测温的基本原理。

  红外辐射是一种不可见光,俗称红外线,是介于可见光中红光和微波之间的一种可见光。由于带电粒子的运动,所有温度高于绝对零度的物体都向周围空间发射红外辐射能量,能量波长主要集中在0.6~15μM波段。辐射能量密度与温度的关系符合Stephen-Boltzmann辐射定律。

  2-1.jpg

  根据方程(1),只要已知物体的温度和发射率,就可以计算辐射功率。相反,如果测量物体的辐射功率,就可以确定物体的温度。红外传感器的输出信号是目标温度与传感器温度Ta相互作用的结果。

  2-2.jpg

  式中:温度单位为开尔文;a为仪表常数,与传感器的设计结构有关。

  2硬件设计。

  非接触式多点红外测温系统的硬件主要由红外传感器组、微处理器、其它外围电路和PC机组成。红外传感器将其视场范围内的红外辐射转化成数字信号,通过SMBus总线将数据传至STM32微处理器,微处理器与上位机进行串口通信,将温度数据显示在上位机.

  2.1红外传感器部分。传感器部分采用数字红外传感器MLX90615ESGDAA,该芯片是MELXIS公司生产的一种高精度数字测温芯片,具有PWM和SMBus两种输出模式。正常工作环境温度范围为-40~85℃,试品温度范围为-40~115℃。如果需要较小的温度测量范围,可以通过SMBus总线修改E2PROM中相应的控制字来改变范围,从而提高精度。根据公式,发射率可以设置为0到1.0之间的任何值。

  发射率=DEC2HEX[四舍五入(16384×ε)),将0到1.0之间的任何浮点数ε转换为十六进制数,然后写入相应的控制字。

  Mlx90615主要由红外热电堆传感器、低噪声放大器、16位a/D转换器和数字信号处理器组成,其结构如图1所示。红外热电堆传感器将采集到的红外辐射转换成电信号,经低噪声放大器放大后送入a/D转换器。由模数转换器输出的数字信号由fir/IIR低通滤波器调节并发送到数字信号处理器。数字信号处理器对数字信号进行处理后,输出测量结果并存储在mlx90615内部RAM中,主控CPU通过SMBus或PWM读取测量结果。

  2-3.jpg

  几个红外传感器作为从设备通过SMBus总线连接到微处理器。典型的SMBus配置如图2[3]所示。SDA和SCL引脚需要弱拉300KΩ。注意,MLX90615红外传感器支持7位地址,因此同一总线上的传感器的最大数量是127。

  2-4.jpg

  2.2微处理器。

  微处理器采用基于armCortex-M3的32位微控制器stm32f103c8t6。该微处理器具有速度快、可靠性高、温度范围宽、资源丰富、功耗低等优点,广泛应用于医疗、手持设备、电机控制等场合。STM32F103C8T6具有64KB的片内FLASH存储器、32个通用I/O引脚、2个10路12位A/D转换器、3个通用定时器等外设资源和USART,I2C,SPI,CAN等通信接口,能够满足多点红外测温系统的设计要求.

  3软件设计。

  3.1mlx90615的传输协议。

  SMBus数据传输协议提供了主设备和从设备之间进行数据通信的可能性。根据协议,在某一时刻总线上只能有一个主设备有效。主设备可以通过“读取数据”和“写入数据”与从设备“通信”,其数据传输格式如图3和图4所示。其中s是起始位,slaveaddress是从地址, 芯片采购平台WR是写入标志,command是命令字节,RD是读取标志,PEC是错误包,P是停止位。

  2-5.jpg

  在SCL变为低水平300ns后,SDA上的数据可以改变,并且在SCL的上升沿捕获数据。16位数据传输两次,每次一个字节。每个字节在前面以高位(MSB)格式传输,在后面以低位(LSB)格式传输。两个字节之间的第9个时钟是应答时钟。数据传输顺序如图5所示。

 2-6.jpg

  3.2温度采集模块。

  mlx90615红外温度传感器出厂默认地址为0x5b,因此,应先通过软件修改红外传感器的地址,避免总线上出现“一应俱全”的情况。Mlx90615支持7位地址,可用地址值为1-127,所有传感器将响应0×00地址,因此应避免使用。更改地址时,总线只需连接一个传感器,传感器地址控制字必须先清除,即先写“0×00”地址,再写指定的地址值。流程如图6所示。

  初始化主要完成常规IO、串行端口、中断和SMBus总线的设置。

  2-7.jpg

  设置每个MLX90615红外传感器的唯一地址后,它通过SDA和SCL的两根导线连接到SMBus总线,并与微处理器通信。

  微处理器作为总线上的主器件向总线上的第一个MLX90615发送命令并等待应答,待收到应答后,读取该点温度值并通过串口传至上位机进行显示,之后向第二个MLX90615发送命令并等待应答,得到应答后读取该点温度并传至上位机显示,以此类推,对总线上的所有MLX90615进行温度数据采集。在mlx90615中读取的温度值通过以下公式转换为摄氏温度:。

  2-8.jpg

  数据读取流程图如图7所示。

  2-9.jpg

  3.3上位机接口。

  上位机温度监测接口由MFC类库在c++下编写。上位机通过串行口与微处理器相连,接收并显示微处理器发送的温度数据。通过点击界面上的按钮,可以对监控点进行控制和选择,如图8所示。

  2-10.jpg

  4.四个。实验结果。

  实验采用三个mlx90615传感器分别对热水、冰和室内温度进行监测。监测1分钟后,得到方差、平均值和参考温度,如表1所示。

  2-11.jpg

  结果表明,mlx90615具有较高的温度测量精度和稳定的测量结果,响应速度为7-9ms,缺点是温度测量与被测物体的距离应保持在2cm以内,距离超过70cm时测得的温度为环境温度。

  5结论。

  本文设计并实现了一种基于mlx90615红外传感器的非接触式多点温度测量系统。系统测量精度可达0.02℃,响应速度快,抗干扰能力强。传感器与微处理器接口简单,简化了硬件设计,为多点温度测量提供了一种新方法。实验结果表明,该方法具有测量精度高、响应速度快的优点,非接触式测量能有效降低风险系数,为多点温度测量提供了一种新的方法