一、从一张广告照片谈起
ZigBee是一种新兴的无线网络技术标准,主要用于近距离无线网络连接。它的字面意思为“嗡嗡(zig)的蜜蜂(bee)”,来源于蜜蜂用于传递信息的舞蹈, 蜜蜂通过“嗡嗡”地抖动翅膀飞翔出“八字舞”来与同伴传递花粉的方位信息,这样的方式构成了蜜蜂群体中的通信网络。该技术的主要特色有低速、低功耗、 低成本、支援大量网络节点、支援多种网络拓扑、低复杂度、快速、可靠、安全。它工作于2.4GHz( 全球)、868MHz( 欧洲) 及915MHz( 美国)的ISM 频段, 其基础是IEEE802.15.4,这是IEEE 无线个人区域网工作组的一项标准,被称作IEEE802.15.4(ZigBee) 技术标准。
2001年8月ZigBee联盟成立,主要负责制定相关的无线网络协定。2002年下半年,英国Invensys公司、日本三菱电气公司、美国摩托罗拉公司以及荷兰飞利浦半 导体公司四大巨头共同宣布,它们将加盟ZigBee 联盟,共同研发下一代无线通信标准,这一事件成为该项技术发展过程中的里程碑。目前已经包括2004、2006 及2007/Pro版本。
由于ZIGBEE技术的高速发展,引起了广大电子爱好者和单片机爱好者的极大关注,都希望自己也能动手熟悉这个新技术,但是,当大家实际要准备动手的时候, 确感到好像是老虎啃天,无处下手,因为ZIGBEE技术相对于一个简单无线网络而言,太过于复杂和庞大,从基础的无线知识,包括高频天线,高频调制技术, 到无线和数字通讯原理,到个人区域无线网络的国际标准IEEE802.15.4 , MAC 原理, 再到ZIGBEE无线网络技术规范,无线网络拓扑,无线网络路由,无线网 络安全 …… 如果将这些知识和理论变成书本,可能有厚厚几尺高,初次入门者要很快实现这样多的知识跨越,进行DIY,几乎是不可能完成的任务。
从哪里开始我们的DIYZIGBEE 历程?我想到了在美国TI公司网页上看到的一张广告照片,见图一所示:
图一 TI 网页上 ZIGBEE 网络处理器广告照片
这张照片上,是一个充满自信的小女孩,好像是上小学3年级那种好学生, 背景上的黑白上写了一行粉笔字:CC2480+MCU=ZIGBEE ,我们知道, CC2480是TI公司推出的ZIGBEE网络处理器,将复杂的ZIGBEE网络协议栈,处理成了简单的用户接口命令,用户只要使用任何简单的单片机(微控制器), 就可以容易的实现对ZIGBEE网络的控制;TI推出这个芯片的目的,就是希望ZIGBEE容易被使用,所以这个广告照片,TI特别选择一个小学生,来说明其容易性。
这张照片,让我们豁然开朗,因为我们在前面已经介绍了DIYRF-2510和熟悉了CC2510 无线微控制器 (8051内核无线单片机),所以,我们只要加上一个ZigBee 网络处理器,就可以绕开无线协议栈复杂的内部结构,直接进入ZIGBEE无线网络的实际使用。也就是说,我们先将ZIGBEE网络处理器当成一个“黑盒”,使用 我们已经熟悉的CC2510单片机(注意只使用单片机的功能),采用软件来控制ZIGBEE无线网络处理器。来学习和体验ZIGBEE无线传感器网络中那些最重要的技 术特性,包括节点的类型,网络拓扑,网络数据通讯,传感器信号采集和无线传输,低功耗网络等等,这样,就可以用很短的时间来完成这漫长的学习之旅。
二、快速实现升级,准备好我们的ZIGBEE无线传感器网络系统
在2009年第9期《无线电》杂志,我们使用的是无线龙通讯公司生产的DIYRF-2510系统,我们需用购买升级包装:DIYRF-2480-C或者DIYRF-2480-L ; 不同的升级包装包括不同的网络处理器模块 ,分别采用TI CC2480或者无线龙通讯LC2480 网络处理器,但是软件兼容,模块插座也兼容,当然,采用不同 网络处理器的升级套件价格也有很大差别, 和TI CC2480不同,成都无线龙通讯公司设计的LC2480网络处理器采用了标准 TI CC2430芯片,内置了无线龙开发 的兼容软件,图二是 无线龙 LC2480网络处理器模块原理示意图。
图2 无线龙 LC2480网络处理器模块原理示意图
我们将DIYRF-2510无线网关上的模块,拔出放到安全的地方,然后插入DIYRF-2480升级套装中的一个无线网络处理器模块,就方便的完成了无线网关的ZigBee 升级,然后,我们再在DIYRF-2510套件的无线节点底板上,分别插上剩下的两个无线龙通讯公司生产的2480无线网络处理器模块,就全部快速完成了DIYRF-2510 向DIY2480的硬件升级,也就是完成了DIY ZIGBEE无线传感器网络的硬件准备工作,DIYRF升级套件售价非常低廉,用户只需要300元人民币(全套系统DIYRF2510+ ZigBee2480升级套装,仅仅需要700元人民币),就可以在DIYRF-2510基础上,升级为完整的ZigBee无线网络DIY平台。通过www.C51RF.com , 可以非常容易在无 线龙通讯公司网上商城完成现货购买。
升级后的DIY-2480 ZIGBEE DIY系统如图3所示
图3 升级后的DIY-2480 ZIGBEE DIY系统
由于我们原来的DIYRF-2510无线节点底板的CC2510无线单片机中,内置的是简单网络表演软件代码(HEX).在我们实现对ZIGBEE网络处理器控制的时候, 我们需用使用新的代码,所以,对两个节点板,我们必需从新下载代码。
将节点板分别连接到网关板,如图5连接,使用CC2510仿真器下载软件到节点板CC2510中去:
图4 连接到PC,下载ZigBee网络处理器控制表演软件到两个节点板
完成两个模块下载ZigBee控制表演软件后,我们可以装上电池,将USB电缆连接到通讯口(不是仿真器),开始我们在在ZigBee无线网络世界的翱翔…..
三、开始你第一个ZIGBEE实验
首先,将网关(注意检查是否插上了2480网络处理器模块)连接到电脑的USB接口,另外两个无线节点板插上2480网络处理器模块,(注意检查是否下载了 正确的ZigBee2480表演代码),ZigBee网络系统结构如图6所示。
图6 DIYRF-2480基本 ZIGBEE网络结构
在开始我们的实验前,我们必需先了解一下ZigBee网络技术的一些基础知识。
每个ZigBee 个人区域网(Personal Area Network ,PAN),可以由数千个或者更多无线节点组成。每个ZigBee网络中的节点,都是由一个单片机加上无线收发 器组成,我们将单片机和ZigBee无线收发器集成为一个单芯片的片上系统,也称为ZigBee无线单片机,CC2430、CC2480、LC2480等都是这样的无线单片机,在无 线单片机内部的存储器里面,安装了ZigBee无线网络软件协议栈后,无线单片机就可以实现ZigBee无线网络节点的功能。如图7所示:
图7 ZIGBEE协议栈
在ZigBee网络中,有三种主要的网络拓扑,分别是星状、树状和网状,如图8所示。
图8 ZigBee拓扑
按照功能不同,将无线网络节点分为三种不同类型,包括协调者节点(Coordinator)、路由器节点(Router)和终端节点(End Device) ,在图9中,按不同颜色来示意这些不同类型的节点。
图9网络 ZigBee拓扑
在简单了解基础概念后,我们可以开始ZigBee网络实验了,首先按照DIYRF-2480使用说明书要求,一步一步安装DIYRF计算机监控软件,然后启动软件,你可以看到图10的欢迎画面。
图 10 DIY ZigBee 无线网络软件欢迎画面
将DIYRF-2480 网关节点使用USB电缆连接到PC,如图11所示。点击PC欢迎画面上的“点击进入”,DIYRF PC 监控软件会出现,如图12界面,完成网络参数配置即 可开始实验演示。
图11 连接你的网关到PC(USB)
图12 ZIGBEE 网络配置
根据ZigBee技术规范,每个个人区域网必须有一个唯一的协调者节点,该节点承担网络时序管理、网络协调、存储网络地图、允许其他设备加入网络、 网络组织、路由信息等,是一个全功能节点(FFD),任何时候都必需打开无线收发部分,在ZigBee 网络中有非常重要的作用。
当你给DIYRF-2480 网关(协调者节点)加上电源的时候,模块上的ZigBee无线单片机已经完成了一个ZigBee网络格式化的启动过程,这个过程包括:建立一个 独立的ZigBee个人区域网,这个网络一个唯一的个人区域网号码(PANID),选择了一个可以使用的,在2.4GHz范围内的通信频道,等待其他网络设备加入这个 网络。
然后,我们采用DIYRF-2480上的按键的第一位,分别设定“0”或者“1”来确定LC2480模块工作在路由或者终端节点,我们将无线节点板1设定为路由器节点, 将无线节点板2设定为终端节点,安装你的无线节点的电池,然后打开电池开关到ON,设定DIP开关在全部关闭——0XX,或者1XX ,
你可以看见图13所示的画面。
图13 ZIGBEE节点加入网络
经过几秒钟等待,你可以从DIYRF-2480 PC网络监控软件看到这里出现了两个不同类型的节点。如图14所示,红色是网关节点,黄色是路由节点。如果你选购 了更多的LC2480节点和无线底板和模块,例如再加两个无线传感器节点,你可以看到如图14所示的图像,有5个节点在这个ZigBee网络中间,蓝色为终端节点。 你可以简单关闭电源开关,节点会从屏幕上消失,然后打开电池开关,节点会重新加入网络。
图14 更多的网络节点和路由器
当你改变底板的开关从X0X,到X1X, 会指定节点从路由传输数据,你可以在PC软件屏幕上看到这个变化。从节点上,你可以看到相关传感器数据传输, 包括温度、光敏、RSSI(信号强度)等,体验ZigBee无线传感器网络的神奇和强大。
四、自己动手DIY通过软件控制ZIGBEE网络
看了这些激动人心的应用,可能你会心情激动,希望自己也来动动手,看看自己能不能通过改写软件,实现对低功耗无线网络的控制,DIYRF-2480 为你提供了这样的无限可能。
对于已经熟悉8051系列单片机和C51语言的爱好者,可以直接上手下面的实验(对于还不熟悉单片机的爱好者,仍然可以使用系统,从头开始学习8051单片机 和C语言,但是你需要入门教材和实验,好在这些东西都可以很快在网络上找到)。
对于已经有单片机和C语言的,并且熟悉IAR调试编译工具的爱好者,让我们开始一个ZigBee无线网络软件DIY之旅。DIY目标,使用两个ZigBee 2480模块无线节点, 不需要PC机,用加速度传感器做一个ZIGBEE防盗报警实验。
步骤是:1、安装IAR C51编译软件(需要自己到IAR网站下载评估版本)。
2、按如下示意图十三连接仿真器到PC USB 口, 注意这次是不同USB接口。
2、按如下示意图十三连接仿真器到PC USB 口, 注意这次是不同USB接口。
图15 连接仿真器到PC USB 口
3、根据需要将仿真器分别连接无线节点板,进行下载和调试,首先进行第一号节点,作为终端节点使用。
4、打开工程软件,DIYRFZIGBEE.PRJ 如图16。
4、打开工程软件,DIYRFZIGBEE.PRJ 如图16。
图16 IAR平台 DIYRF工程文件和和源代码
5、你可以在C语言源代码中,修改和定义你使用无线节点上加速度门限,然后继续编译,如果提示正确,说明你成功完成编译。
6、点击下载(注意当你点击这个键,预先固化表演代码,会完全丢失,如果你需要恢复,可以使用光盘中下载工具,下载HEX代码,恢复表演代码)。
7、退出下载。
8、按启动(RESET)开始运行。 9、仿真电缆连接 2号节点,定义协调者节点 ,然后重复3-8步。
10.1号 节点内置MMC7660加速度传感器,你可以打开1号节点的电池开关,把节点固定在被监视的设备上,如笔记本电脑或其他贵重设备,当这个设备移动超过 门限时,2号节点(ZigBee协调器)的LED会指示报警。如果你在LED控制线外加驱动蜂鸣器,可以听到响声,知道设备被移动,有丢失危险。
11.这样,就通过CC2510软件代码的修改,实现了对CC2480和ZigBee网络的直接控制。
6、点击下载(注意当你点击这个键,预先固化表演代码,会完全丢失,如果你需要恢复,可以使用光盘中下载工具,下载HEX代码,恢复表演代码)。
7、退出下载。
8、按启动(RESET)开始运行。 9、仿真电缆连接 2号节点,定义协调者节点 ,然后重复3-8步。
10.1号 节点内置MMC7660加速度传感器,你可以打开1号节点的电池开关,把节点固定在被监视的设备上,如笔记本电脑或其他贵重设备,当这个设备移动超过 门限时,2号节点(ZigBee协调器)的LED会指示报警。如果你在LED控制线外加驱动蜂鸣器,可以听到响声,知道设备被移动,有丢失危险。
11.这样,就通过CC2510软件代码的修改,实现了对CC2480和ZigBee网络的直接控制。
从这里出发,你可以采用软件DIY实现ZigBee的各种 高级功能,如使用DIYRF-2480的基本硬件进行扩展,设计一ZigBee健康照顾系统,如图17所示。
图17 ZIGBEE 健康照顾系统
又如,可以继续增加购买无线节点板,自己建设更复杂的多节点ZigBee无线传感器网络,实现一个工业仪表的无线传感器网络,如图18所示。
图18 ZIGBEE 工业仪表系统