微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于MLX90615和STM32的多点红外温度测量系统设计

基于MLX90615和STM32的多点红外温度测量系统设计

时间:01-09 来源:3721RD 点击:

SMBus数据传输协议为主设备与从设备之间的数据通讯提供了可能,该协议规定,在某一时刻总线上只能有一个主设备有效。主设备可通过"读数据"和"写数据"与从设备进行"交流",其数据传输格式如图3、图4所示。其中,S为起始位,Slave Address为从器件地址,Wr为写标志,Command为命令字节,Rd为读标志,PEC为出错数据包,P为停止位。



SDA上的数据在SCL变为低电平300 ns后即可改变,数据在SCL的上升沿被捕获。16位数据分2次传输,每次传一个字节。每个字节都是按照高位(MSB)在前,低位(LSB)在后的格式传输,两个字节中间的第9个时钟是应答时钟。数据传输时序如图5所示。



3.2温度采集模块

MLX90615红外温度传感器的出厂默认地址为0x5b,因此应首先通过软件对红外传感器的地址进行修改,避免总线上出现"一呼百应"的情况。MLX90615支持7位地址,可使用地址值为1~127,所有传感器都会响应0x00地址,应避免使用。更改地址时应保证只有一只传感器挂接在总线上,且必须先对传感器地址控制字清空,即先写入"0x00"电址,再写入指定地址值,其流程如图6所示。

初始化主要完成通用IO、串口、中断及SMBus总线的设置。

为每个MLX90615红外传感器设置其惟一地址后,将其通过SDA及SCL两线挂接到SMBus总线,与微处理器进行通信。

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

To=RAM(07h)0.02-273.15 (3)

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



3.3上位机界面

上位机温度监测界面采用C++下的MFC类库编写,实现上位机通过串口与微处理器连接,接收由微处理器发送的温度数据并显示。可通过单击界面上的按钮来控制、选择监测点,如图8所示。



4实验结果

实验采用3只MLX90615传感器分别监测热水、冰及室内温度,开始监测1 min后得到其方差、平均值及参考温度如表1所示。



结果表明,MLX90615测温精度更高,且测量结果稳定,响应速度可达7~9 ms.缺点是测温时与被测对象距离需保持在2 cm以内,距离超过70 cm时所测温度为环境温度。

5结语

本文设计实现了基于MLX90615红外传感器的非接触式多点温度测量系统,该系统测量精度可达0.02℃,且响应速度快,抗干扰能力强。传感器与微处理器的接口简单,简化了硬件设计工作,为多点温度测量提供一种新方法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top