6.2.1 网络层规范
ZigBee协议中定义了三种设备:ZigBee协调器、ZigBee路由器和ZigBee终端设备。每个网络都必须包含一台ZigBee协调器,它负责建立并启动一个网络,包括选择合适的射频信道、唯一的网络标识符等一系列操作。ZigBee路由器作为远程设备之间的中继器来进行通信,能够拓展网络的范围,负责搜寻网络路径,并在任意两个设备之间建立端到端的传输。ZigBee终端设备作为网络中的终端节点,负责数据的采集。
从功能上讲,网络层必须为IEEE 802.15.4的MAC层提供支持,并为应用层提供合适的服务接口。为了实现与应用层的连接,网络层从逻辑上被分为两个具有不同功能的服务实体:数据实体和管理实体。数据实体(NIDE)接口主要负责向上层提供所需的常规数据服务;管理实体接口主要负责向上层提供访问接口参数、配置和管理数据的机制,包括配置新的设备、建立新的网络、加入和离开网络、地址分配、邻居发现、路由发现、接收控制等功能。
1. 网络建立
ZigBee网络的建立是由一个未加入网络的协调器节点发起的,通过NLME-NETWORD-FORMATION.request原语来建立ZigBee网络,协调器利用MAC层提供的扫描功能,设定合适的信道和网络地址后,发送信标帧,以吸引其他节点加入网络。
2. 设备的加入
处于激活状态的设备可以直接加入网络,也可以通过关联操作加入网络。ZigBee网络层提供了NLME-JOIN.request原语来完成这个操作。网络层参考LQI值和网络深度两个指标来进行设备父设备的选择,LQI即链路质量,网络深度表示该设备最少经过多少跳到达协调器,设备优先选择LQI值高、网络深度小的设备作为其父设备。
确定好父设备后,设备向其父设备发送加入请求,经过父设备节点的同意后加入该网络,若父设备节点不接受该设备,则该设备重新选择一个父设备节点进行连接,直到最终加入网络。
3. 设备段地址分配
设备加入网络之后,网络就会为其分配网络地址,网络地址的分配主要依据三个参数:最多子设备数、最大网络深度和NWKMaxRouters(RM),可根据下面的计算公式计算地址偏移量Cskip(d),其中d为网络深度,地址偏移量决定了设备可以分配给其具有路由能力的子设备地址块的大小。
4. 设备的离开
设备的离开有两种不同的情况:第一种是子设备向父设备请求离开网络;第二种是父设备要求子设备离开网络。当一个设备接收到高层的离开网络的请求时,它先请求其所有的子设备离开网络,所有子设备移出完毕后,通过取消关联操作向其父设备申请离开网络。
5. 邻居列表的维护
邻居列表中包含传输范围内所有节点的信息,邻居列表的维护主要体现在以下几个方面:
• 当节点接入网络时,从收到的信标帧中获取周围节点的信息,并添加到邻居列表中;
• Router和Coordinator将其子节点添加到邻居列表中;
• 当检测到节点离开其一跳范围时,并不是将节点的信息从邻居列表中移除,而是把Relationship项设置为0x03,表示和该节点没有关系。