Zigbee学习日记(七)局域网组建原理
goJhou 发布于2017-12-30 浏览:2487 回复:1
3
收藏

在Zigbee无线局域网中,节点按照功能可划分为协调器(Coordinator)、路由器(Rooter)、终端(End-Device) 三类

他们的硬件可以一模一样,之所以在网络中表现不同功能,是因为代码不一样

协调器上电的第一件事就是创建网络

路由器和终端上电的第一件事就是去寻找网络并请求加入

通常,协调器在几何图形中用三角形,路由器使用矩形,终端使用圆形表示。

 

任何一个Zigbee模块要加入到某个网络,一定要一个处于该网络的节点作为介绍人,并且这个介绍人不能是终端。在加入网络后,介绍人和被介绍人互为父子关系,介绍人是被介绍人的父节点

协调器要确定PANID,并且协调器的ID永远为0x0000

 

当协调器创建成功,会有2种情况

1. 终端先行加入到网络中

因为终端不能作为介绍人,所以路由器加入网络后也会成为协调器的子节点。

 

2. 路由器线行加入到网络中

终端可能会是路由器的子节点,也可能是协调器的子节点,因为他们都具备介绍人权限。

具体取决于,路由器与协调器,谁的信号更强

 

网络组建以后,节点间可互相通信,数据通信有4种方式 单播、广播、组播、绑定

 

一旦协调器发出了如下的数据帧,就表明网络创建成功

http://www.zhoushile.xin:4000/img/2017-12-17%20%E5%8D%8F%E8%B0%83%E5%99%A8%E6%95%B0%E6%8D%AE%E5%8C%85.png

http://www.zhoushile.xin:4000/img/2017-12-17%20%E5%8D%8F%E8%B0%83%E5%99%A8%E6%95%B0%E6%8D%AE%E5%8C%852.png

(上方是一帧报文,太长了截不下)

可以发现 Source Address是0x0000,证明它是个协调器

网络的PAN在Dest.PAN中,是0xFFF0

数据中存储有NWK Link Status。也可以称这帧为网络连接状态帧

 

 

入网前,路由器和终端在空气中一直会不停的发送如下数据包

http://www.zhoushile.xin:4000/img/2017-12-17%20%E8%B7%AF%E7%94%B1%E5%99%A8%E8%8A%82%E7%82%B9%E5%AF%BB%E7%BD%91%E5%8C%85.png

可以看到,TYPE=CMD,这是一个命令帧。红色内Beacon request,是个信标请求的命令帧

它的作用是让它附近的所有具备介绍人资格的节点都回复信标帧

当协调器或在网路由器收到该请求后,会返回一个信标帧,这些返回的信标帧会被想加入网络的模块拿到,通过信标帧,选出最佳介绍人(信号最强的),请求加入网络

 

以下为路由器入网的过程

(第1帧)路由器上电后会发命令帧,内容为信标请求
(第2帧)之后协调器或其他具备介绍人资格的会返回BCN帧(信标帧)

(第3、4、5、6帧)之后重复第1、2帧2次,类似3次握手,确认3次都稳定

(第7帧)之后路由器会发给介绍人模块一个命令帧,该帧作用是在所有我收到的信标帧中,你信号最好,请你做我的介绍人,介绍我入网。并且此帧携带自己(被介绍人)的MAC地址,这个MAC地址用于介绍人给自己分配网络时使用的地址。
(第8帧)之后协调器会回复一个ACK帧,表示收到了你的请求命令帧。

(第9帧)之后路由器认为介绍人已经为他办完了入网手续,路由器会向介绍人发送一个命令帧,以获取自己的网络地址。
(第10帧)介绍人自动回复一个ACK帧表示收到了命令

(第11帧)介绍人将分配给被介绍人(路由器)的网络地址回复给被介绍人(路由器),是一个命令帧。(此时路由器还没有网络地址,所以目标是Mac地址 Dest. Address)
(第12帧)路由器收到协调器发来的命令帧,自动回复一个ACK帧。

(第13帧)路由器会发送一个入网宣告帧,同样是基于命令帧的。这帧作用是告诉同网的人,我已经入网了,我的地址是xxxx。其他同网节点就知道了有新的节点加入网络。(可以看到Dest Address 是0xFF,跟IP通信组播类似)
到目前为止,路由器理论上已经完成了入网过程。(有了自己的网络地址、PANID、介绍人)
(第14帧)协调器收到了入网宣告帧,转发了一次入网宣告。
(第15帧)路由器稳定后,会发出网络连接状态帧。(介绍人入网后稳定工作时每隔一个周期就会发送一次,默认周期15s)

 

补充:
在Zigbee网络中,如果非常明确指定接受目标节点地址,那目标节点在接收到这帧之后,硬件会回复ACK包,表明确实收到。
在CC2530的FLASH中,有一个8个字节的地址,是出厂芯片唯一地址。类似MAC地址,称为物理地址、IEEE地址。

 

终端的入网过程与路由器一模一样。都是作为被介绍人寻找介绍人入网的过程
当终端成功入网之后
(第1帧)终端会给父节点发送数据请求帧
(第2帧)父节点回复ACK
之后每隔一个周期就会发送第1帧,为了告诉父节点,我还在线,没掉线。

收藏
点赞
3
个赞
共1条回复 最后由荒墨丶迷失回复于2018-01-10
#2荒墨丶迷失回复于2018-01-10

原来局域网组建是这个原理 ~

1
TOP
切换版块