基于ZigBee 的无线温度监控系统的设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
定义路由方式: #define NWK_MODE NWK_MODE_STAR //星状路由
网络拓扑三参数:网络深度、父节点最大子节点数及最大路由子节点数。
#define MAX_NODE_DEPTH 1
//网络深度为1
byte CskipRtrs[MAX_NODE_DEPTH+1]={3,0}; //允许ZC最多含3个ZR子节点
图2 ZigBee节点
4. 系统软件设计
程序采用 C 语言编写,AVR STUDIO 是 ATMEL 公司免费提供的一个专门用于开发 AVR 系列单片机的集成工作环境,支持 AVR 全系列单片机的开发,具有项目管理器、汇编程序 编译器、软件模拟仿真等功能,但是需要第三方提供的 C 语言编译器 WINAVR 软件包含支 持 AVR 单片机开发的 C 编译器 AVR-GCC[3],可以与 AVR STUDIO 联合,对 AVR 系列的 单片机进行 C 语言的开发[4]。本文设计是用一个节点充当协调器接收数据并传给 PC 机,两 个节点充当终端节点采集数据,三个节点间组成一个星型网络。协议栈源代码采用的是 TI 公司开发提供的 ZStack。
-1-
http://www.paper.edu.cn
3.2 数字式温度传感器 DS18B20
DS18B20 数字式温度传感器与传统的热敏电阻温度传感器不同,它能够直接读出被测 温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别将温 度值转化为9位和12位的数字量。因而使用 DS18B20 可使系统结构更简单,更加稳定,可 靠性更高。芯片的耗电量很小,可以采用寄生电源供电。该芯片在检测点已把被测信号数字 化了,因此在单总线上传送的是数字信号,这使得系统的抗干扰性好,可靠性高,传输距离 远。系统设计中选择了该传感器,使得系统温度传感器模块的硬件部分极其简单,只有一个 芯片加一个上拉电阻,非常有效的降低了硬件电路的复杂程度,提高了系统的稳定性和可靠 性,同时也有效的降低了发送端的系统功耗,延长了电池寿命。图1为温度采集部分,把 DS18B20采集的温度数据传给ATmega128,再通过CC2420进行无线的数据收发。
定义采集数据的终端节点:
if ( myAppState == APP_INIT )
{
logicalType = ZG_DEVICETYPE_ENDDEVICE;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
参考文献
[1] 李国华,沈树群.自组织无线传感器网络的研究[J ].数据通信,2004,(4):1–4。 [2] http://www.atmel.com/atmel/products/atmega128.pdf [3] 吴双力,崔剑,王伯岭.AVR-GCC 与 AVR 单片机 C 语言开发[M].北京:北京航空航天大学出版社,
-2-
http://www.paper.edu.cn
式。空闲模式时CPU 停止工作,而SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模 式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则 一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则 处于睡眠状态; ADC 噪声抑制模式时CPU 和所有的I/O 模块停止运行,而异步定时器和 ADC 继续工作,以减少ADC 转换时的开关噪声; Standby 模式时振荡器工作而其他部分 睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式则允许振荡 器和异步定时器继续工作。器件是以Atmel 的高密度非易失性内存技术生产的。片内 ISP Flash 可以通过SPI 接口、通用编程器,或引导程序多次编程。引导程序可以使用任何接口 来下载应用程序到应用Flash存储器。在更新应用Flash存储器时引导Flash区的程序继续运行, 实现RWW操作。通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个芯片内, ATmega128 为许多嵌入式控制应用提供了灵活而低成本的方案。完全可以满足设计要求。 图2为基于ATmega128与CC2420的ZigBee节点,发送数据的终端节点通过引出的管脚与温度 采集部分相连,接收数据的协调器节点通过R232接口与PC机相连接,从而实现对接收数据 的处理。
件部分的设计,实现了温度数据的采集和无线传输。
关键词:温度监控,ZigBee,CC2420
中图分类号:TP335
文献标识码:A
1. 引言
ZigBee传感器网络是由大量的微型低功耗的传感器节点组成的无线网络系统。当前传感 器技术正朝着智能化、网络化的方向发展,无线传感器网络正是适应这种需求而出现的。它 具有信息采集、数据处理和无线传输等多种功能[1]。每个传感器节点具有数据采集,简单的 数据处理,短距离无线通信和自动组网的能力。本文以ATmega128L和射频芯片CC2420为核 心, 给出了基于ZigBee技术的多点无线温度监控系统设计方案。
完整的 Zigbee 协议栈由物理层、介质访问控制层、网络层、安全层和高层应用规范组 成[5]。ZigBee 协议栈的网络层,安全层和应用程序接口等由 ZigBee 联盟制定。其中安全层
-3-
http://www.paper.edu.cn
(Security)主要实现密钥管理,存取等功能。应用程序接口负责向用户提供简单的应用软 件接口(API),包括应用子层支持(Application Sub-layger Support,APS),ZigBee 设备 对象(ZigBee Device Object,ZDO)等,实现应用层对设备的管理。其中协调器和终端节点 在介质访问控制层定义实现,星型网络的实现在网络层定义。用户可针对不同的需要在应用 层自行定义开发,也可参考引用已定义的一些簇(cluster)。
2004. [4] 沈文,EAGLE LEE,詹卫前.AVR 单片机 C 语言开发入门指导[M].北京:清华大学出版社,2003. [5] IEEE Std 802.15.4—2003.PDF.
Design of wireless temperature monitoring system based on Zigbee
}
-4-
http://www.paper.edu.cn
4.2 无线温度收发部分程序
定义接收数据的协调器节点:
if ( myAppState == APP_INIT ) { zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType ); if ( logicalType != ZG_DEVICETYPE_ENDDEVICE ) { logicalType = ZG_DEVICETYPE_COORDINATOR; zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType); }
ATmega128 具有如下特点:128K 字节的系统内可编程Flash( 具有在写的过程中还可 以读的能力,即RWW)、4K 字节的EEPROM、4K 字节的SRAM、53 个通用I/O 口线、32 个通用工作寄存器、实时时钟RTC、4 个灵活的具有比较模式和PWM 功能的定时器/ 计数 器(T/C)、两个USART、面向字节的两线接口TWI、8 通道10 位ADC( 具有可选的可编程增 益)、具有片内振荡器的可编程看门狗定时器、SPI 串行端口、与IEEE 1149.1 规范兼容的 JTAG 测试接口( 此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模
void convert(void) {
TxReset(); RxWait(); delay(1); WrByte(0xcc); WrByte(0x44);
// 产生复位脉冲,初始化 DS18B20 // 等待 DS18B20 给出应答脉冲 // 延时 // skip rom 命令 // convert T 命令
Byte CskipChldrn[MAX_NODE_DEPTH+1]={100,0}; //允许ZC最多含100个子节点
4.3 温度采集结果
wk.baidu.com
采集的温度数据可通过串口调试助手在计算机上进行显示。图 4 为协调器选择空闲信道 建立网络,终端节点加入网络后,把采集的数据传给协调器,并在 PC 机上显示的过程。
2. ZigBee 技术
ZigBee 是一种新兴的短距离、低速率无线网络技术,它是一种介于无线标记技术和蓝 牙之间的技术提案。ZigBee 协议比蓝牙、高速率个人区域网(PAN)或 802.11x 无线局域网更 简单实用。ZigBee 技术的主要特点包括以下几个部分: (1) 数据传输速率低只有 10kbps~250kbps,专注于低传输应用。 (2) 功耗低在低耗电待机模式下,两节普通 5 号干电池可使用 6 个月以上。 (3) 成本低因为 ZigBee 数据传输速率低,协议简单,所以大大降低了成本。 (4) 网络容量大每个 ZigBee 网络最多可支持 255 个设备,也就是说每个 ZigBee 设备可以与
图1 温度采集部分
3.3 ATmega128L
ATmega128[2]是基于 AVR 增强型 RISC 结构的低功耗 8 位 CMOS 微控制器。由于其先 进的指令集以及单时钟周期指令执行时间,ATmega88 的数据吞吐率高达 1 MIPS/MHz,从 而可以缓减系统在功耗和处理速度之间的矛盾,使其得到了广泛的应用。
图4 采集数据显示 -5-
http://www.paper.edu.cn
5. 结论
本文以射频芯片 CC2420 和 ATmega128 为核心设计实现了温度监控系统的软硬件部分, 在温度传感器 DS18B20 的配合下,完成了对环境温度的无线检测。本文设计的温度监控系 统,其功耗低,传输无线化。可以用在诸如温室、仓库等需要温度监控的场合。在避免大量 人工布线的同时,还可以减少火灾的隐患。
图3 Zigbee协议栈
4.1 温度采集部分程序
主程序:
void main(void) {
do {
delay(1); convert(); delay(1000); RdTemp();
// 延时 1ms // 启动温度转换,需要 750ms // 延时 1s // 读取温度
}
while(1); } 其中与 DS18B20 相关的温度采集程序:/* 启动温度转换 */
http://www.paper.edu.cn
基于 ZigBee 的无线温度监控系统的设计
王锐
河海大学计算机及信息工程学院(常州),江苏常州(213022)
E-mail:wrkkwr@sina.com
摘 要:根据一些环境温度实时监控的需要,以ATmega128L和射频芯片CC2420为核心设计
出功耗低、体积小,适于各种工作环境温度实时检测的监控系统。通过对系统硬件部分和软
另外 254 台设备相连接; (5) 工作使用的频段分别为 2.4GHz、868MHz(欧洲)及 915MHz(美国)均为免执照频段。 (6) ZigBee 主要应用在短距离范围之内并且数据传输速率不高的各种电子设备之间。
3. 系统硬件设计
3.1 射频芯片 CC2420
CC2420 是 Chipcon 公司推出的符合 2.4GHz IEEE 802.15.4 标准的射频收发器。它基于 Chipcon 公司的 SmartRF 03 技术,只需极少外部元器件,性能稳定且功耗极低。可确保短距 离通信的有效性和可靠性。利用芯片开发的无线通信设备支持数据传输率高达 250kbps,可 以实现多点对多点的快速组网。它的外围电路包括晶振时钟电路、射频输入/输出匹配电路 和微控制器接口电路三个部分。芯片本振信号既可由外部有源晶体提供,也可由内部电路提 供。由内部电路提供时需外加晶体振荡器和两个负载电容,电容的大小取决于晶体的频率及 输入容抗等参数。