Zigbee学习交流
无线通信领域,对于我一个电力电子专业的来说,可以说是一个绝对的外行,更不要说什么ZigBee和IEEE802.15.4了。可是,研究生阶段的学习和课题经验,让我有勇气面对任何陌生的领域和挑战。我相信,不论是什么,只要肯用功努力的学习一段时间,当然你不会快速成为这方面的所谓“专家”,但是至少可以通过利用不同的外部资源很好地完成任务。
通过上网搜罗相关的技术文章和看一些前辈的学习经验,我觉得对于ZigBee的学习应该按照如下的步骤进行。
选择微控制器。目前,很多公司都提供zigbee解决方案,尤其是很多微控制器制造商,更是都推出了自己的支持IEEE802.15.4的芯片。面对如此五花八门的市场,我觉得自己还是应当保持清醒。我们不能只听芯片制造商的一面之辞。说白的,所有的商家都是在推销自己的商品,都是在追求自己的利益最大化。对于控制器的选择上,我觉得还是应该选择自己熟悉的控制器。比如,自己比较熟悉51系列单片机,就不要一味为了所谓的低功耗去选择AVR系列了。对于初次涉足这个领域,我们的核心目的是熟悉zigbee协议和无线通信的原理机制,至于如何做到低功耗,我想这不是这个阶段应该考虑的。当然,如果我们的无线通讯系统已经搭建好,并且可以可靠工作了,那作为锦上添花,我们可以再去考虑低功耗,甚至可以考虑更换控制器。对于我来讲,我想初步定为选择CC2430作为控制器和无线收发器。因为自己还是相对来讲更为熟悉51系列,而CC2430的内核控制器是8051。
选择开发工具。在开发工具的选择上,我想应该是比较费脑筋的。因为目前来讲,绝大多数的开发商,他们并不提供源代码,协议栈都是以封装库德形式给出的,这对于我们深入了解协议显然是非常不利的。经过多方比较,初步选定为深圳无线谷公司提供的C51RF-3-CC2430无线开发平台,主要原因有:(1)入门价格低,但性能据说比较可靠,功能相对齐全,而且从说明来看具有国外同类产品的几乎全部功能;(2)C51源代码公开;(3)已有一定的用户群,而且多数是高校教育机构。
ZigBee协议栈源代码。ZigBee技术的核心是几万行ZigBee/802.15.4 C51源代码,这些源代码和ZigBee无线单片机芯片配合,完成数据包装收发,校验,各种网络拓扑,路由计算等复杂的功能。真是因为这个协议栈是ZigBee技术的核心。所以各个国外厂家都几乎一律不提供协议栈源代码,而是提供协议栈目标码库文件。虽然目标码库文件和原代码都能实现ZIGBEE协议栈功能,但从开发/使用方便性上而言,两者间有下列明显差异:(1)源代码对使用者是全透明的,使用者可以任意修改,添加自己需要的功能,目标码不能改动任何地方;(2)ZigBee目标码库内部一般代有内部控制/限制信息,如某国外著名厂家提供的免费协议栈是三个月限制版,到时间该目标码协议栈将自动停止运行,用户需要交纳专利费后才能继续使用。而源代码协议栈对用户完全透明,不会有这样问题;(3)源代码协议栈有C语言写成,可以在不同微控制器上移植,而目标代码库只能支持特定的微控制器:(4)源代码协议栈可以方便帮助使用者理解ZigBee协议内部结构,实现方法。这点选择深圳无线谷的设备已经能够满足了。
动手实战。
现在的目的只有一个就是尽快熟悉无线通信原理和相关协议栈的具体实现,搭建起无线通信平台,至于传感器网络都是在这之后的第二步工作要做的了。
现在比较火的解决方案是TI的。比较典型的IC就是CC2430。集成了CC2410 RF射频芯片加增强型51内核。有51单片机的底子就行了。其实,按照我自己的经验,学2430其实是学Z-STACK,最后真正用的其实也是Z-STACK。不知道LZ有没有过嵌入式操作系统的开发经验。如果有就轻松很多。现在市面上的很多学习板,说是什么配有各种CC2430实验材料,其实个人认为实际意义不大。因为那些实验本质上是把2430简单地当做一个带RF模块的增强型51MCU来用了,ZIGBEE的协议啊、网络特性啊什么的完全没涉及。IN SUM,个人认为学Z-STACK才是学ZIGBEE、CC2430的精髓。好好研究API文档。装一个Z-STACK,然后根目录下有个DOCUMENT文件夹,里面各种PDF,好好研究一下。不过说句实话,我个人觉得,zigbee推出了也时间不短了,一直是雷声大雨点小。从自己开发的经验来看,这个技术吹乎的挺厉害,实际比较鸡肋。说是低成本解决方案,实际上也现在5、6刀的成本也不算低了。2430的片上资源又有限的很,Z-STACK、IAR还有这样那样的版本问题。不能说很难,但让人不爽。总之现在并不很看好它。
Zigbee原理:蜜蜂在发现花丛后会通过一种特殊的肢体语言来告知同伴新发现的食物源位置等信息,这种肢体语言就是Zigbee行舞蹈,是蜜蜂之间一种简单传达信息的方式。借此意义Zigbee作为新一代无线通讯技术的命名。在此之前Zigbee也被称为“HomeRF Lite”、“RF- EasyLink”或“fireFly”无线电技术,目前统称为Zigbee。简单的说zigbee 技术是无线电技术当中的一种。(简单的说zigbee技术的起源是肯据蜜蜂在花丛中的活动来发明的,原理是通过一种无线电技术来实现的。)Zigbee的技术特点:ZigBee是一种无线连接,可工作在2.4GHz(全球通用)、868MHz(欧洲流行)和915 MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以通过增大功率继续增加。作为一种无线通信技术,ZigBee具有如下特点: (1) 低功耗: 由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。 (2) 成本低: ZigBee模块的初始成本在6美元左右,估计很快就能降到1.5—2.5美元, 并且ZigBee协议是免专利费的。低成本对于ZigBee也是一个关键的因素。 (3) 时延短: 通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,休眠激活的时延是15ms, 活动设备信道接入的时延为15ms。因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。 (4) 网络容量大: 一个星型结构的Zigbee网络最多可以容纳254个从设备和一个主设备, 一个区域内可以同时存在最多100个ZigBee网络, 而且网络组成灵活。 (5) 可靠: 采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。(6) 安全: ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查功能,支持鉴权和认证, 采用了AES-128的加密算法,各个应用可以灵活确定其安全属性。Zigbee的应用协议:IEEE802.15.4Zigbee的自组织网络:举一个简单的例子就可以说明这个问题,当一队伞兵空降后,每人持有一个ZigBee网络模块终端,降落到地面后,只要他们彼此间在网络模块的通信范围内,通过彼此自动寻找,很快就可以形成一个互联互通的ZigBee网络。而且,由于人员的移动,彼此间的联络还会发生变化。因而,模块还可以通过重新寻找通信对象,确定彼此间的联络,对原有网络进行刷新。这就是自组织网。 zigbee 芯片zigbee 芯片相当于电脑的CPU,电脑的CPU需要集成到主板上才能使用,所以zigbee芯片需要结合板卡才能使用。(如下图)zigbee 自组网通信方式 常见的问题与答案:1、为什么要使用zigbee自组织网来通信?网状网通信实际上就是多通道通信,在实际工业现场,由于各种原因,往往并不能保证每一个无线通道都能够始终畅通,就像城市的街道一样,可能因为车祸,道路维修等,使得某条道路的交通出现暂时中断,此时由于我们有多个通道,车辆(相当于我们的控制数据)仍然可以通过其他道路到达目的地。而这一点对工业现场控制而言则非常重要。2为什么要采用zigbee动态路由的方式?所谓动态路由是指网络中数据传输的路径并不是预先设定的,而是传输数据前,通过对网络当时可利用的所有路径进行搜索,分析它们的位置关系以及远近,然后选择其中的一条路径进行数