基于 ZigBee 的多点温度采集系统设计与实现
1 引言
随着生产技术的提高, 环境温度指标越来越多的影响到生产效率、能源消耗
和生活水平。不管是工业、农业、军事及气象领域, 还是日常生活环境, 都需要
对温度进行监测。因而,设计可靠且实用的温度采集系统显得非常重要。
在传统的温度采集系统中, 节点一般采用有线连接方式, 布线繁琐, 扩展
性和可移植性较差。尤其对于广阔空间环境中的温度采集,如果采用有线方式其
成本和功耗都比较高。而 ZigBee 作为一种新兴的短距离、低功耗、低成本的无
线通信技术, 能广泛应用于工业控制、消费电子、家庭自动化、医疗监控各种领
域。
本文设计了一种基于 ZigBee 无线技术的多点温度采集系统, 实现了主从
节点间数据的无线传输, 同时上位 PC 机采用串口与主节点通信,并建立温度数
据库,实现了数据的统一管理。该系统具有扩展性好、稳定可靠、维护方便等特
点。
2 系统整体概述
本文设计的温度采集系统结构如图 1 所示。系统采用 ZigBee 星型网络拓扑
结构,建立了一个主节点,四个从节点的无线传感网络,实现数据的无线传输。各
个从节点连接数字温度传感器 DS18B20 定时采集环境温度,并通过无线传感网
络将数据依次向主节点发送,主节点收到数据后通过串口传给上位 PC 机,上位
机将采集的数据存入数据库, 对数据进行分析处理, 并在监控界面显示温度实
时变化曲线。
图 1 温度采集系统结构图
3 系统硬件设计
3.1 主节点硬件设计
选择 CC2430 作为主节点的处理器,该芯片是全球首款支持 ZigBee 协议的
片上系统(SOC)解决方案,集成了一个 8051MCU 内核以及符合 IEEE802.15.4 规
范的 2.4GHz 的无线收发器。芯片内部有 8kb 的 RAM,可选 32/64/128kB 的 Flash
存储单元,包含模拟数字转换器、定时器、看门狗定时器、AES128 协处理器等,
同时提供了 2 个 UART 接口以及 21 个可编程 I/O 引脚。该芯片具有高度集成性
和丰富的硬件资源,使得外围电路的设计变得十分简单。
主节点是整个网络的协调器,作为全功能设备(FullFunction Device,FFD),
负责网络组建和维护、温度采集数据无线接收、与上位 PC 机串口通信。因此采
用 CC2430-F128(128kB Flash)芯片,并在 CC2430 典型应用电路的基础上扩展串
行通信接口,选用 MAX3232 芯片实现 TTL 与 RS232 电平转换。ZigBee 主节点的
硬件电路如图 2 所示。
图 2 ZigBee 主节点电路
3.2 从节点硬件设计
从节点主要负责温度采集和数据无线传输, 可作为简化功能设备(Reduced
Function Device,RFD),以降低功耗和成本。芯片采用 CC2430-F32(32kB Flash),
其硬件电路和主节点大致相同, 只是去掉了串口通信电路,同时在从节点芯片的
I / O 口上接入多个温度传感器 DS18B20 以实现多点温度数据的采集。
DS18B20 是“单总线”数字温度传感器,其测量温度范围为-55℃~+125℃,
支持 3~5. 5V 电压供电, 主要由四部分组成:64 位光刻 ROM、温度传感器、非
易失性温度报警触发器和配置寄存器。ROM 中的 64 位序列号出厂前已光刻固化,
每个传感器的序列号都是唯一的,因此可以在一根总线上挂接多个 DS18B20,能
极大减少 I/O 口的占用。本系统中用 DS18B20 进行多点温度采集时,传感器与从
节点的 CC2430 的连接形式如图 3 所示。
图 3 温度传感器节点连接图
由于 ZigBee 设备功耗很低,并且能设置成定时睡眠模式以进一步省电,而
DS18B20 本身功率也非常小,所以本系统中的主、从各节点均采用 2 节 1.5V 电
池供电即可满足实际需要。
4 系统软件设计
4.1 温度传感器数据采集
DS18B20 可设定 9~12 位的分辨率,本系统采用 12 位分辨率,转换精度为 0.
0625℃,转换温度信号所需最长时间为 750ms。温度数据由 2 字节组成,以符号扩
展的二进制补码形式存储,最低 4 位是小数部分,中间 7 位是整数部分, 1 位符
号位。
DS18B20 内部 RAM 由 9 个字节的高速缓存器和 E2PROM 组成,前 2 个字节即
为温度数据。通过复位指令、ROM 和 RAM 功能命令,即可完成对指定 DS18B20 温
度数据的采集和读取, 所有读写操作都是通过与 CC2430 的 I/O 口连接的 DQ 引
脚完成。
在一线制总线上串接多个 DS18B20 器件时,需要先发送跳过 ROM 指令,将所
有传感器都进行一次温度转换,之后通过匹配 ROM 依次读取每个传感器的温度
数据,实现对单 I/O 口上的多个 DS18B20 器件的操作。整个温度采集的流程如图
4 所示。
图 4 DS18B20 温度采集流程图
4.2 ZigBee 无线组网及数据通信
ZigBee 通信协议采用分层结构,节点通过在不同层上的特定服务来完成所
要执行的各种任务。本系统采用 TI 提供的 ZigBee2006 协议栈 Z-Stack,在 IEEE
802.15.4 标准物理层(PHY)和媒体访问控制层(MAC)基础上增加了网络层、应用
层和安全服务规范,是一种较好的无线传感网络组建方案。
ZigBee 设备类型按网络功能分为三种:协调器、路由器、终端。由于本系统
采用星型网络拓扑结构,所以只存在协调器和终端两种设备。
本系统中主节点被初始化为网络协调器。协调器包含所有的网络消息, 存储
容量最大、计算能力最强。
它的功能是发送网络信标、建立网络、管理网络节点、存储网络节点信息、
收发信息。
从节点被初始化为无信标网络中的终端设备。上电复位后,即开始搜索指定
信道上的网络协调器,并发出连接请求。建立连接成功后, 从节点将得到一个 16
位的网络短地址,并采用非时隙 CSMA-CA 机制,通过竞争取得信道使用权,向主
节点发送数据。各从节点每 30 秒读取一次 I/O 接口上多片温度传感器数值, 同
时开启睡眠定时器,当数据发送成功后该节点立即进入睡眠状态,最大程度地降
低功耗, 延长从节点的电池使用时间。
数据包的格式由从节点串接的 DS18B20 的数量决定,每个 DS18B20 传输的
数据长度定义为 3 字节,第 1 字节为标识符,包括从节点编号,CC2430 的 I/O 口
编号以及此温度传感器的编号, 后 2 个字节为温度采集数据。
主节点收到数据包后, 对数据进行分析处理, 把从节点上的每个温度传感
器的数据采集值进行转换,得到实际的温度值,然后发送给上位 PC 机。主从各节
点的组网及通信流程如图 5 所示。
图 5 主从节点组网通信流程图
4.3 PC 机串口通信及监控
图 6 上位机软件运行界面
上位机采用 VB 编程语言编写串口通信及数据库程序,在工程中添加 MSComm
控件实现串口传输和接收数据[4]。使用 ADO 对象连接 Access 数据库,将当前数
据存入数据库中,将控件 Pictur eBox 作为容器,实现曲线图的动态显示,此过程
涉及到曲线、坐标轴、格线和坐标刻度的消隐和重绘。消隐的实现主要用背景色
重绘曲线和网格线, 并覆盖坐标刻度数字, 重绘实时曲线和坐标轴网格线通过
Li n e 方法来实现, 坐标轴刻度、标签、图标等的标注使用 Print 方法实现[5]。
当程序开始运行后, 打开串口, 就可将接收到的实时数据加入到各节点的
历史温度数据库,同时可以从运行界面看到历史温度变化曲线。图表中曲线的最
右端为当前温度, 点击节点按钮, 然后选中指定的温度数据框,即可查看对应传
感器节点的温度历史数据和变化情况, 软件运行时的界面如图 6 所示。
5 结束语
本文设计了一种基于 ZigBee 技术的无线温度采集系统,采用 CC2430 芯片
设计主从节点,硬件结构精简、体积小、能耗低, 所组成的无线传感网络具有自
组织,自适应的特点。通过实验调试,该温度采集系统达到了设计要求,效果良好。
鉴于无线传感网络技术具有功耗低、数据传输可靠、网络容量大、兼容性好、实
现成本低等诸多优点, 可广泛应用于生产生活的各个领域, 尤其适用于数字家
庭、智能大厦温度控制、小区安防监测等, 具有较好的通用性和应用前景。