首页 > 解决方案 > ZigBee专题 > ZigBee 基础入门 >

ZigBee学习方法及模块对比

2014-08-28 16:25
分享到:
ZigBee作为一种个人网络的短程无线通信协议,已经日益为大家所熟知,它最大的特点就是低功耗、可组网,特别是带有路由的可组网功能,理论上可以使ZigBee覆盖的通讯面积无限扩展。相对蓝牙,红外的点对点通信,和WLAN的星状通信,ZigBee的协议就要复杂得多了。那么我们究竟是该选择ZigBee芯片去自己开发协议呢,还是直接选择已经带有了ZigBee协议的模块直接应用呢?

    玩转芯片的代价:开发时间周期长;人力和技术储备雄厚。

    市场上的ZigBee射频收发“芯片”实际上只是一个符合物理层标准的芯片,它只负责调制解调无线通讯信号,所以必须结合单片机才能完成对数据的接收发送和协议的实现。而单芯片也只是把射频部分和单片机部分集成在了一起,不需要额外的一个单片机,它的好处是节约成本,简化设计电路,但这种单芯片也并没有包含ZigBee协议在里面。

    这两种情况都需要用户根据单片机的结构和寄存器的设置并参照物理层部分的IEEE802.15.4协议和网络层部分的ZigBee协议自己去开发所有的软件部分。这个工程量对于做实际应用的用户来讲是很大的,开发周期以及测试周期都是非常之长的,更由于是无线通讯产品,它的产品质量也不是很容易得到保障的。

    即便许多ZigBee公司都提供自家芯片的ZigBee协议栈,但这只是提供一种协议的功能,而并不代表它具有真正的可应用性和可操作性,因为它并没有提供一个对用户的数据接口的详细描述,用户怎么才能不顾及芯片内部的程序而很简单轻松的就把自己的数据通过芯片发送出去,甚至组成路由获取传送更远方产品的数据,这都不是只包括了ZigBee协议栈的芯片就能简单实现的,ZigBee协议栈只是说它有了协议的所有组成部分,而究竟怎么把每部分结合并有条不紊的运转起来,并怎么实现和用户自己数据的协议通讯?一个只包含了ZigBee协议栈的芯片是不可能实现得了的。

    直白点讲,这些需要用户根据完整的协议代码和自己上层的通讯协议,再去一点一点每个部分的去修改协议栈中的内容,才能完成简单的数据无线收发,而要完成一条路由,甚至整个网络的通信,那调试测试的时间则会需要更长的。那么对于做实际应用的用户来讲将会大大耽误开发周期,并且这种具有复杂协议的无线产品会具有更多的不定因素,更易受到外界环境条件的影响,在实际开发中遇到的问题将会五花八门,难于应付。

    玩转模块的代价:省去ZigBee开发周期,能在推广项目上抢到先机。

    优秀可靠的ZigBee应用“模块”具有在硬件上设计紧凑,体积小,贴片式焊盘设计,可以内置Chip或外置SMA天线,通讯距离从100米到2500米不等,还包含了ADC,DAC,比较器,多个IO,I2C等接口和用户的产品相对接。软件上包含了完整的ZigBee协议栈,并有自己的PC上的配置工具,采用串口和用户产品进行通讯,并可以对模块进行发射功率,信道等网络拓扑参数的配置,使用起来简单快捷。

    透传模块的好处在于用户不需要考虑模块中程序如何运行的,用户只需要将自己的数据通过串口发送到模块里,然后模块会自动把数据用无线发送出去,并按照预先配置好的网络结构,和网络中的目的地址节点进行收发通讯了,接收模块会进行数据校验,如数据无误即通过串口送出。不过大多数用户应用ZigBee技术,都会有自己的数据处理方式,以致每个节点设备都会拥有自己的CPU以便对数据进行处理,所以仍可以把模块当成一种已经集成射频、协议和程序的“芯片”。国外各个ZigBee芯片厂商及模块厂商产品比对:

 
    此对比表格都仅对于贴片式便于嵌入的模块并仅依据各厂商的产品手册提供的性能参数进行对比,但是有部分厂商是模棱两可的参数说明,如此表格有错误的地方,欢迎使用过的或者了解其模块的朋友可以对表格进行修改完善。

    国内做ZigBee模块的厂商并不多,本人也只是挑选了部分个人熟知的厂商进行了一个小对比,部分厂商的产品本人也并未入手进行过测试,所以室内室外的通信距离本人并不是很清楚。有些厂商会加外部功放,有些并没有加,以至于通信距离上来说都是不同的,并且无线通信产品特别是ZigBee,环境对其的通信距离影响很大,各厂商的实测环境也各不相同(有些是置高,有些是功放较大),产品手册上的通信距离最好只是作为一个衡量标准,仅供参考之用。

    假如对这方面有兴趣的朋友,或者正想使用ZigBee进行现场应用的朋友,询问相关模块的时候最好将自己的需求进行一个较为清晰的定位,如距离、数据量、组网、应用场景等。因为ZigBee为近距离、低功耗、小数据量的技术,所以具体应用要求比较高,如在不考虑功耗的情况下,对于距离要求较高的应用,可以使用号称点对点能够传10Km~20Km远的XBEE模块;如温湿度等数据采集,需要功耗较低,数据量不大,距离近的可以使用一些公司的低功耗模块(距离远就牺牲了功耗),如晶控电子等公司的模块。值得一提的是,由于ZigBee采用随机接入MAC层,且不支持时分复用的信道接入方式,部分ZigBee模块一般会对数据进行校验,返回ACK等操作(一般射频芯片等硬件层会自带,部分公司模块会在程序上也进行相应操作),网络节点数越多,整个网络所有节点采集的数据到服务器的时间就越长,因此不能很好的支持一些实时性要求较高的业务。