微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DS18B20在空调检测系统温度采集模块中的应用

DS18B20在空调检测系统温度采集模块中的应用

时间:11-30 来源:互联网 点击:
在空调生产过程中,为确保空调产品的质量,空调制造商在产品出厂前都必须对空调进行加热带、制热、制冷等环节的测试,通过标准机的电压、功率、输入管温、输出管温、回气温度、排气温度等参数判断空调是否合格,其中温度参数检测是整个空调检测系统的重要部分。

在传统的空调检测系统中,温度采集模块多以热电阻、热电偶为温度传感器,温度模拟信号必须经过专门的调理电路转换为数字信号后才能被单片机处理,使用一段时间后,系统检测到的温度值往往不够准确,同时由于温度采集点分布范围广,增加了布线难度,也给系统维护带来不便。

本文采用DS18B20数字温度传感器、AT89S52单片机,设计出适合空调检测现场的温度采集模块,实现现场16个采集点温度数据的同步采集和传输。

1 系统构成

空调检测系统温度采集模块的结构框图如图1所示。温度采集模块包括电源子模块、16路温度采集子模块、看门狗子模块、报警子模块、RS485接口子模块。微控制器采用Atmel公司的AT89S52,温度采集采用Dallas公司的数字温度传感器DS18B20。上位机采用研祥工控机,监控软件采用Visual Basic 6.0编程。

温度采集模块电路板固定在每个工作站的控制柜里,并将现场采集到的各点温度值实时传送给上位机,因此,温度采集模块并没有集成LCM子模块和键盘电路。

2 硬件连接

2.1 DS18B20数字温度传感器

DS18B20数字温度传感器温度测量范围为-55 ℃~+125 ℃,在-10 ℃~+85 ℃范围内,精度为±0.5 ℃,可实现9 bit~12 bit温度读取。DS18B20具有一线总线的特点,可以轻松组建温度采集网络,并且体积小、分辨率高、抗干扰能力强,实用性和可靠性比同类产品更高[1],因此,在轴承测温[2]、冻土区公路路基温度测量[3]等场合有着广泛的应用。

DS18B20温度寄存器中的温度值以9 bit数据格式表示,而输出温度则是以16 bit符号扩展的二进制补码形式提供,其中低8 bit用补码表示,第9 bit~16 bit为扩展符号位。空调检测系统所需检测的温度值均在0 ℃以上,这样,只需读取缓存9个字节的前两个字节即可。

2.2 DS18B20硬件连接

DS18B20器件都有一个唯一的64 bit ROM地址,通过协议就能识别这些序列号,这样多个DS18B20可以挂接在同一条单总线上,构成多点温度采集网络。由于DS18B20具有“单总线”的技术特点,因此可以采用两种不同的方式连接单片机。

(1)单端口并联连接:所有DS18B20均连接在同一条总线上,然后再连接到单片机的某个I/O端口。这种连接方式具有硬件开销小的优点,理论上一根总线可以挂接256个DS18B20,但若连接的数字传感器数量较多,单片机需要花较多的时间才能获得每个传感器的序列号,会降低系统的实时性,同时使得软件编程变得复杂。

(2)多端口并行连接:每个DS18B20独占单片机某个I/O端口。这种并行连接方式使得单片机能够对所有的数字传感器进行并行操作,同一时间能实现多个输入输出,实现对温度数据的快速读取,从而提高系统的实时性,同时也使得软件编程变得简单,缩短了项目的开发周期。这种连接方式的缺点是硬件开销比较大。

根据空调检测系统的实际需要,系统使用16片DS18B20构成小型温度数据采集网络,结合单端口并联连接和多端口并行连接的连接特点,每个I/O端口连接两片DS18B20,共使用8个I/O端口,单片机与16片DS18B20连接框图如图2所示。DS18B20芯片的DQ端和单片机的I/O端口相连,并接上一个4.3 kΩ的上拉电阻,芯片的GND端接地线, VDD端接5 V电源线。AT89S52是一种低功耗、高性能CMOS 8 bit微控制器,具有8 KB Flash,256 B RAM,32 bit I/O口线,3个16 bit定时器/计数器,其资源性能可以满足空调检测系统温度采集的需要。

单片机需要通过接口电路实现与DS18B20的连接,接口电路图如图3所示。J1是接线端子台, DS18B20通过三芯电缆连接到J1;二极管IN4148实现电压钳位;RWDS1和单片机AT89S52的一个I/O端口相连;16片DS18B20通过J1~J8与温度采集模块连接。

3 程序设计

3.1 DS18B20温度采集

DS18B20温度采集基本流程:单片机发出复位脉冲,当信号线上的DS18B20发出存在脉冲后,即完成DS18B20的初始化工作;单片机检测到存在脉冲,便发起ROM操作命令;发送内存操作指令,启动DS18B20温度转换;延时2 μs等待温度转换完成;发出匹配ROM命令后紧接着发送片内ROM序列号;读取序列号对应的DS18B20暂存器,从而读出温度值;读完一个DS18B20温度值后,接着转向下一个DS18B20的操作。这样的操作循环进行,从而完成对所有DS18B20温度值的读取。温度采集基本流程图[1]如图4所示。

DS

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

网站地图

Top