戴 明,孟召议
(1.无锡商业职业技术学院,江苏 无锡214153;2.江苏省无线传感系统应用工程技术研究开发中心,江苏 无锡214153)
温度对于人类生活环境有极大的意义,在工业行业中,几乎80%的工业生产都要考虑温度因素的影响.目前随着“互联网 +”的快速发展,基于工业网络的智能温控系统的应用越来越多.本系统利用ZigBee无线网络,实现工业现场温度的无线传输,解决了布线的麻烦.上位机采用Lab VIEW软件设计,实现了温度数据的远程显示和查询,便于现场管理.
本系统由3部分组成:温度数据采集电路;ZigBee无线传输电路;显示电路.在设计采集温度数据电路时,将DS18B 20的数据端连接到单片机STC89C52RC的P 1.3引脚,单片机将接收到的数字温度进行处理,然后把实时温度数据显示在本地LCD 1602液晶显示器上.另外,单片机STC89C52RC同时将温度数据通过串口传输送到芯片MAX232上实现电平转换,利用RS 232串口发送给已经配置好的ZigBee终端节点,再通过ZigBee网络将数据以无线方式传输给ZigBee中心节点,中心节点与上位机连接,最终上位机采用Lab VIEW软件自带的VISA驱动器采集和处理串行数据,并实现温度的显示、保存和调用.本系统结构图如图1所示.
图1 系统结构图
2.1.1 DS18B 20温度传感器简介
DS18B 20是一种数字温度传感器,它可以直接读出被测量物体的温度,进而通过简单编程读取出对应的数字量.DS18B 20的性能特点如下[1]:
1)独特的单线接口方式:DS18B 20与单片机连接时,只需要将其数据端连接到单片机的输入端即可.
2)在使用中不需要任何外围元件.
3)可用数据线供电,电压范围:+3.0V—+5.5V.
4)测温范围:-55—+125℃,固有测温分辨率为0.5℃.
DS18B 20与单片机的引脚连接,如图2所示:
图2 DS18B20与单片机的引脚连接
2.1.2 DS18B20的二进制温度数据
DS18B20温度传感器可读出温度数值,其对应的二进制数据位有11位,再加上5位符号位,共组成了16位的数据形式,其温度值格式表,如表1所示.DS18B20测温范围为:-55—+125℃.当温度在0—+125℃之间时,温度值格式表中的高5位均等于0,用温度值除以0.0625得到一个十进制数值,将该十进制进行二进制转换即得到温度对应的11位数据,加上5位符号位即得到了16位的温度数据;当温度在-55—0℃之间时,温度值格式表中的高5位均等于1,用温度值除以0.0625得到一个十进制数值,将该十进制进行二进制转换,再将该二进制减1取反,即得到温度对应的11位数据,加上5位符号位即得到了16位的温度数据.部分温度与二进制数字输出的转换关系,如表2所示.
表1 DS18B20温度值格式表
1)+125℃的数字输出转换过程:
2)-55℃的数字输出转换过程:
表2 温度与二进制数字输出的转换关系
2.2.1 单片机STC89C52RC简介
本系统中使用的STC89C52RC是一款小型单片机,如图3所示.其最主要的特点是高速,超低功耗,有很强的抗干扰能力.它的指令集和输出引脚都与MCS-51兼容[2],共有40个引脚,8k字节的Flash,512字节的RAM,32位I/O接口.本系统通过单片机的P 1.3引脚采集温度数据,采集的温度数据及相关信息通过液晶LCD1602进行显示,由单片机的引脚P 2.4-2.6及P 0.0-P 0.7连接至LCD 1602,串口数据通过引脚P 3.1进行发送.
图3 单片机STC89C52RC测温原理图
2.2.2 串口通信
1)串行通信协议
串行通信协议是指通信的双方为了保证通信成功而制定的一系列约定,其主要内容包含数据格式定义和数据位定义等.51系列单片机串行数据的发送与接收采用异步通信方式,其数据是一帧一帧进行传送的,每一帧的数据格式如图4所示.
图4 串行异步通信的数据格式
从图4可以看出,完整的一帧数据由4部分组成,包括起始位、数据位、校验位、停止位[3].
2)串行口工作模式及波特率设置
波特率是串行通信中的一个重要指标,它反映了对传输通道的要求,本系统波特率设置为9600 b/s.
波特率的取值方法如下:
将串行口控制寄存器SCON中的SM0SM1设为01,此时串行通信以方式1进行工作,串行通信的波特率求解公式如下:
“定时器/计数器1的溢出率”是指单位时间(秒)内定时器/计数器1回0溢出的次数,求解公式如下:
单片机串口常用波特率的参数设置,如表3所示.当波特率为9600 b/s时,串行口工作方式采用方式1,晶振只能选取11.0592MHz,其中TMOD=0X20,初值TH1=0XFD=253.
表3 串行口常用波特率
根据要求,单片机串口初始化程序如下:
ZigBee是IEEE 802.15.4标准协议之一,是一种低功耗的局域网协议.ZigBee也是一种短距离、低功耗的无线通信技术,其网络节点容量达65 535个,具有非常强大的组网优势.ZigBee网络有3种网络拓扑结构,分别为星型、树状型和网状型,如图5所示.其按照网络节点功能划分,可分为有协调器节点(中心节点)、路由器节点和终端节点[4].本系统采用星型网络结构,网络内通过3个终端节点采集本地温度数据,利用广播方式将温度数据发送给中心节点.
图5 ZIGBEE的3种网络拓扑模式
Lab VIEW软件是由NI公司研发推出的一种程序开发环境[5].它和C语言及BASIC语言的开发环境十分的相似,但Lab VIEW软件是用图形语言来编写程序,生成的程序以框图的形式表现出来,这一点与其他计算机语言有明显的区别.Lab VIEW的函数库内包括数据采集、GPIB、串口控制等一系列的函数[6],如图6所示.本系统的Lab VIEW界面实现了温度的实时显示,同时还利用数据库将历史温度数据进行保存,可以按时间和节点进行查询,如图7所示.
图6 Lab VIEW显示界面
图7 数据库操作面板
本系统可以实现3路终端节点的温度数据采集及显示.图8是单节点温度数据的测量图,图8左边为单节点测温的实物,图8右边为串口调试助手显示其实时温度;图9是多节点温度的无线测量图,图9右边为各终端节点及中心节点实物,图9左边为串口调试助手显示多节温度值.系统测试结果,如表4所示.
表4 系统测试结果
图8 单节点温度数据的测量
图9 多节点温度的无线测量
本文介绍了基于ZigBee的无线测温采集传输系统设计过程.ZigBee技术组网方便、网络容量大,由Zig-Bee中心节点接收到的各终端节点温度可以通过Lab VIEW软件进行显示和存储,系统实时性较好,显示界面易读,数据可保存,调取方便,有较好的应用价值.