基于ADT7420的多点温度采集系统设计

2015-03-27 12:11中国地质调查局水文地质环境地质调查中心国土资源部地质环境监测技术重点实验室张晓飞吕中虎韩永温孟宪玮
电子世界 2015年19期
关键词:微控制器温度传感器总线

中国地质调查局水文地质环境地质调查中心 国土资源部地质环境监测技术重点实验室 张晓飞 吕中虎韩永温 孟宪玮 张 青

温度是一个非常重要的物理量,温度控制关联着生产安全、产品质量、产品产量等一系列问题,因此对温度的检测与控制是工业生产和自动控制中最重要的环节之一[1]。在工业生产过程中,很多时候都需要对温度进行严格的监控,通常的铂电阻测温系统如果要获得高准确度和多传感器连接,则电路相对复杂,容易受到干扰[2]。目前有一种新型的数字化测温芯片ADT7420,它具有很高的分辨率和准确度,结构简单,在一定范围内具有替代铂热电阻的优势[3]。

本次设计采用STM32微控制器为采集处理核心,采用ADT7420为温度检测单元,采用I2C多路复用器PCA9544A为中间节点单元,设计了一种能最多挂载32个温度传感器ADT7420的多点温度采集系统。

图1 多点温度采集系统总体结构图

1 多点温度采集系统总体设计

如图1所示,多点温度采集系统由温度检测单元、中间节点单元和STM32微控制器单元三部分组成。温度检测单元采用高精度数字温度传感器ADT7420感知其环境温度的变化[4];中间节点单元采用以I 2C多路复用器PCA9544A为核心[5],采集系统最多可同时挂接8个中间节点;STM32微控制器单元是数据采集处理的核心[6],其通过I2C总线发送地址码来依次选定中间节点,再发送命令码依次选通与中间节点相连的4个温度传感器,从而完成对所有温度检测单元的读写操作。

2 多点温度采集系统硬件设计

2.1 温度采集单元设计

设计中采用高精度数字温度传感器ADT7420检测环境温度的变化。ADT7420是一种具有自校准、16位分辨率、高线性度的数字温度传感器。该芯片内置一个带隙温度基准源、一个温度传感器和一个16位ADC,用来监控温度并进行数字转换,分辨率为0.0078℃,其在(-20~+105)℃的温度范围内,可达到±0.25℃准确度,在一定范围内具有替代铂热电阻的优势[4]。ADT7420具有I2C总线,可以很方便的与中间节点PCA9544A连接。如图2所示,ADT7420与PCA9544A采用I 2C总线连接,为了设计上的方便,将ADT7420的地址线A0和A1均接地。

2.2 中间节点单元设计

设计中采用I 2C多路复用器PCA9544A作为中间节点。PCA9544A是NXP公司生产的I2C总线多路复用器,通过该器件可以将一路I2C总线扩展为4路I2C总线,将1路上行SDA/SCL通道扩展为4路下行通道。通过对该器件内部可编程寄存器进行配置,在同一时间可以任意选择一对SCx/SDx线[5]。该器件通过3个可编程地址引脚A0、A1、A2,允许多达8个设备挂接在总线上。如图2所示,PCA9544A与ADT7420采用I2C总线连接,采用这种方式最多可同时挂接32个ADT7420。

图2 温度检测单元和中间节点单元电路图

2.3 STM32微控制器单元设计

微控制器是多点温度采集系统的数据采集处理的核心部分,该系统中间节点的选取、温度检测单元的选通和温度的读取等均通过微控制器的I2C接口来完成。设计中采用的微控制器是ST公司生产的微控制器芯片STM32F103,如图3所示,使用其GPIO口与LCD1602和输入按键相接,用于显示测量结果及系统参数的设定,使用其USART口与U盘存储模块相连接,自带的看门狗电路能保证系统的稳定运行,外接的I2C存储芯片24C02用于存储输入的系统参数等重要信息,保证在掉电过程中这些参数不至于丢失[6,7]。U盘存储模块选用南京沁恒公司生产的U盘文件读写模块,其支持FAT12、FAT16及FAT32文件系统,外围电路简单、操作方便。

图3 STM32微控制器联结框图

3 多点温度采集系统软件设计

3.1 系统软件总体设计

多点温度采集系统的软件设计以STM32F103微控制器为基础,采用模块化思想,通过主程序调用的形式来实现整个系统的初始化,系统参数的输入,多点温度的采集处理等。系统软件采用C语言编写,总体流程如图4所示[6]。

图4 多点温度采集系统软件流程图

软件主体由启动界面、封面界面、系统参数设定界面和数据采集界面组成。按照顺序,程序先显示启动界面,接着显示进入封面界面,在封面界面中,如果有按键按下,则进入参数设定界面,如3秒内没有按键操作则直接按照默认的参数进入数据采集界面。在参数界面中,通过按键进行系统时间、中间节点个数、采集时间间隔的设定,在采集界面中,依据设定的参数调用温度数据采集模块完成对各温度检测单元ADT7420的温度采集。

3.2 多点温度采集模块程序设计

多点温度采集模块的程序设计主要针对中间节点PCA9544A和温度检测单元ADT7420进行操作。温度采集模块的程序流程图如图5所示,在设定中间节点个数的基础上,进行I2C总线的初始化,先选取地址最小的中间节点PCA9544A,接着依次选取下行总行I2C0—I2C2,再依照ADT7420的操作命令依次完成ADT7420的工作模式设定、温度的读取等操作,在完成选定的这个中间节点上4个温度检测单元的操作后,依次选取下一地址的中间节点,依次对连接在中间节点上的温度检测单元进行模式设定和温度读取的操作,从而完成所有节点上所有温度检测单元的操作[4,5]。

4 结语

本设计采用高精度数字温度传感器ADT7420和I2C多路复用器PCA9544A设计了一种多点温度采集系统,结构清晰,外接元件少,实用性强,能够很好地巡回采集多点温度值,在实际应用中工作性能稳定,测量温度准确,精度较高。

[1]张姗姗.基于单片机的温度采集控制系统设计[J].信息通信,2012,06(2):69-70.

[2]吴禄慎,李彧雯.基于单片机的多点温度采集系统设计[J].飞机设计,2010,08(5):76-80.

[3]吕中平.基于ADT7420的新型数字温度记录仪[J].计量与测试技术,2012,07(2):6,8.

[4]Analog Devices,Inc.ADT7420 Data Sheet[EB/OL].Rev0,2012-12.

[5]广州致远电子有限公司.PCA9544A-I2C总线多路复用器产品数据手册(中)[EB/OL].V0.00,2009-08-18.

[6]张晓飞,郝文杰,张青等.基于STM 32的裂缝位移监测系统[J].微计算机应用,2011,05(8):52-59.

[7]孙启富,孙运强,姚爱琴.基于STM 32的通用智能仪表设计与应用[J].仪表技术与传感器,2010,10(3):34-36.

猜你喜欢
微控制器温度传感器总线
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
一种基于CAN总线的误码测试方法
XTR105电流变送器在温度传感器中的应用
物联网技术在微控制器实验教学中的应用
用于高品质电动汽车的分布式并行计算
CAN总线并发通信时下位机应用软件设计