一、ZigBee简介
1、ZigBee名字的由来
蜜蜂在发现花粉位置时,通过跳优美的之字舞(Zigzag),来通知同伴花粉所在的方位信息,它的同伴看到这样的舞蹈之后,也会跟着跳起来,将花粉的方位信息继续传递。ZigBee是“Zigzag”和“Bee”的合成词,表示zigbee网络具有小巧简洁的无线传感功能。
2、什么是ZigBee?
ZigBee是基于IEEE802.15.4标准的低功耗个域网协议制定的一种短距离、低功耗、低速率的无线通信技术二、ZigBee技术的起源与发展
三、ZigBee网络介绍
ZigBee网络中主要包含三种类型的设备:协调器、路由器和终端。
1、协调器
>组建网络:确定网络ID(PAN ID)并选择一个合适的信道
>允许路由和终端节点加入这个网络
>对网络中的数据进行路由
>必须常电供电,不能进入睡眠模式
>可以为睡眠的终端节点保留数据,至其唤醒后获取
2、路由器
>在进行数据收发之前,必须首先加入一个zigbee网络
>本身加入网络后,允许路由和终端节点加入
>加入网络后,可以对网络中的数据进行路由
>必须常电供电,不能进入睡眠模式
>可以为睡眠的终端节点保留数据,至其唤醒后获取。
3、终端节点
>在进行数据收发之前,必须首先加入一个zigbee网络
>不能允许其他设备加入
>必须通过其父节点收发数据,不能对网络中的数据进行路由
>可由电池供电,进入睡眠模式
注:协调器在选择频道和PAN ID组建网络后,其功能将相当于一个路由器。协调器或者路由器均允许其他设备加入网络,并为其路由数据。
终端节点通过协调器或者某个路由器加入网络后,便成为其“子节点”;对应的路由器或者协调器即成为“父节点”。由于终端节点可以进入睡眠模式,其父节点便有义务为其保留其他节点发来的数据,直至其醒来,并将此数据取走。
四、ZigBee网络拓扑结构
三种zigbee网络:星型网、树型网和网状网
星型网络的缺点是节点之间的数据路由只有唯一的一个路径。Co-ordinator(协调者)有可能成为整个网络的瓶颈。实现星形网络拓扑不需要使用 zigbee 的网络层协议,因为本身IEEE 802.15.4的协议层就已经实现了星形拓扑形式,但是这需要开发者在应用层作更多的工作,包括自己处理信息的转发。
树形拓扑包括一个Co-ordinator(协调者)以及一系列的 Router(路由器) 和 End Device(终端)节点。Co-ordinator 连接一系列的 Router 和 End Device, 他的子节点的 Router也可以连接一系列的 Router 和End Device. 这样可以重复多个层级。树形拓扑中的通讯规则:每一个节点都只能和他的父节点和子节点之间通讯。
通常在支持网状网络的实现上,网络层会提供相应的路由探索功能,这一特性使得网络层可以找到信息传输的最优化的路径。 以上所提到的特性都是由网络层来实现,应用层不需要进行任何的参与。
MESH 网状网络拓扑结构的网络具有强大的功能,网络可以通过“多级跳”的方式来通信;该拓扑结构还可以组成极为复杂的网络;该网络还具备自组织和自愈功能;
五、ZigBee组网流程
协调器:现在有一个队长,他要组建一个团队(网络)。首先,他要确定两件事,一是,我的官方语言;二是,我的团队叫什么名字;对于第一件事,他的团队2.410GHz这种语言,你的团队使用2.405GHz这种语言,总之两个团队互不干扰。这就是所谓的“信道”。不同的信道之间频率是有区别的,也就是说,信道在物理上就区分开了不同的网络;第二件事,团队的名字是可以指定的,然后这个名字就作为这个团队的特有的ID,叫做PAN-ID,意思是个域网ID。同一个信道里边可以有多个个域网,就像多个团队都可以在同一个山谷干活一样。这个PAN-ID是队长指定的,例如设置为0x1234,那么这个队就被成为1234队。也可以设置为0xFFFF,意思是没有名字,别的队可能用队长的名字来称呼这个团队,例如“铁柱队”,“二妞队”,当然,ZigBee没有叫做铁柱或者二妞的,所以如果把PAN-ID设置为0xFFFF的话,那么会根据协调器自己的MAC地址来分配一个与之后四位近似的PAN-ID。
路由器:协调器建立好了网络,要招兵买马,大干一场了。首先他会给自己找一些帮手作为小干部,这些小干部就叫做路由器。所谓的路由就是转发数据包,也就是说,在zigbee网络中,路由器听到了别人喊了一句话后,可以跟着喊话,这样就可以把这句话传到更远一点的地方。就像古装片里,皇帝在金銮殿喊了一声,宣XXX觐见,然后听到这些话的宦官们就一个个按次序跟着喊,把话传到很远的地方。有了数据路由的机制,路由器就可以扩展网络的分布范围。他们还可以介绍别的节点加入网络,所以跟队长离得比较远的小伙伴,可以通过路由器的介绍加入网络,也可以通过路由器的传话来跟队长进行交谈。路由器是zigbee网络的一大特点,虽然每一个节点喊话的距离都不远,但是通过路由机制可以把数据发送的很远,就像烽火台点狼烟一样。
终端:最后轮到只负责打仗小兵(终端设备)出场了,终端设备常常与被监控的对象连接在一起,进行数据的采集。例如,他与一个光敏传感器连在了一起,隔一会他就看看传感器发来的数值,然后把数值告诉收集节点(通常是协调器或路由器)。另外,路由器有的时候也会做数据采集的工作,但是终端设备不会进行数据的路由。终端节点所在的地方可能有不止一个zigbee网络,他怎么选择加入哪一个网络呢?首先要找到和自己信道一致网络。其次看PANID,如果自己已经设置了PANID,那么就加入跟自己PANID一样的网络。如果节点的PANID是0xFFFF的话,就挑一个信号最好的网络加入。
六、单播,组播与广播
1、单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人只对另外一个人说话,,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的。
2、组播也叫多播(多点传送),就是建立一个组,把组员的代号(网络短地址)都记下来,然后只给这个组的人说话,进行小组的讨论。
3、广播就是设备给所有的节点喊话,所有主机都可以接收到这条信息。
七、CSMA-CA
如果跟别人交谈的时候,打断别人是不礼貌的,所以,我们应当在别人不说话的时候,再发表自己的言论。同样,井然有序的zigbee网络也存在先听话再说话的秩序,叫做CSMA-CA,载波侦听多路访问-冲突避免机制,意思是一个节点要发送消息,先要进行空闲信道评估,看这个信道没有被别人占用的话,才会说话。zigbee网络有几百上千个节点时,会不会说话的人太多,自己都插不上嘴?答案是,会的。空气中zigbee数据太多的话,是可能发生zigbee数据阻塞的。这也就是为什么zigbee的通讯速度不快的一个主要原因了吧。并且,只要是同一个信道中,不论PANID是否一致,都存在CSMA-CA,所以节点实在多的话,可以尝试不同的信道。八、Zigbee协议结构
应用层目录,用户创建应用工程的地方
Zigbee设备对象层(ZDO):定义了一个设备在网络中的角色(协调器、路由器或者终端节点),发起或者应答绑定和发现请求,并在网络设备间建立一个安全关系。它同时也提供定义了Zigbee设备规范里的一套丰富的管理指令。Zigbee设备对象总是为端点0。
应用支持子层(APS):负责提供了一个数据服务给应用和Zigbee设备规范。它也提供一个管理服务以维护绑定链接和它字节绑定表的存储。
网络层对MAC层和应用层提供接口并管理网络结构和路由。
物理层,主要负责数据的调制与解调,发送和接收。物理层