zigbee相关文章链接:
第一章:zigbee学习笔记之简介(上)
第二章:zigbee学习笔记之简介(下)
第三章:zigbee学习笔记之物理层和mac层帧格式分析
第四章:zigbee学习笔记之网络层帧格式分析(上)
第五章:zigbee学习笔记之网络层帧格式分析(下)
【ember zigbee】zigbee协议栈相关文档学习笔记系列
在实际工作之中,大多情况是在MAC层以上进行修改操作的。
NWK层的通用帧格式如下图
由2个字节组成,包含所定义的帧类型、地址和序列域以及其他控制标记。帧控制域格式如图。
帧类型由2bit组成,00代表数据、01代表网络层命令,其余为保留。
由4bit组成,设置值反应了所使用的ZigBee网络层协议版本号特定设备上所使用的协议版本应像固定网络层协议版本号一样。
多播标志域为1bit,如果是单播或者广播帧,值为0,如果为多播帧值为1。
该标志位位1时,该帧具有网络层安全操作能力。
该标志位为1时,源路由子帧才在网络层报头中存在。为0时不存在。它分成3个子域。
该标志位为1是,网络帧报头包含整个目的IEEE地址。
该标志位为1是,网络帧报头包含整个源IEEE地址。
在网络层帧中必须有目的地址域,其长度是2字节。如果帧控制域的多播标志子域值是0,那么目的地址域值是16位的目的设备网络地址或者为广播地址。如果多播标志子域值是1,目的地址域是16位目的多播组的Group ID。值得注意的是设备的网络地址与IEEE802.15.4-2003协议中的MAC层16位短地址相同。
在网络层帧中必须有源地址域,其长度是2字节,其值是源设备的网络地址。值得注意的是设备的网络地址与在IEEE802.15.4-2003协议中的MAC层16位短地址相同。
在网络层帧中必须有半径域,其长度是1字节,并且限定了传输半径范围。每个设备接收一次该帧,则该值减1。
简单来说,设备将数据发送到网关,途径路由转发的话,该值就会被减1。
在每个帧中都包含序列号域,其长度是1字节。每发送一个新的帧序列号值加1。帧的源地址和序列号子域是一对,在限定了序列号1字节的长度内是唯一的标识符。
如果存在目的IEEE地址域,则包含与包含在网络层地址头中的目的地址域的16位网络地址相对应的64位IEEE地址。如果该16位网络地址是广播或者多播地址那么目的IEEE地址不存在。
如果存在源IEEE地址域,则包含与包含在网络层地址头中的源地址域的16位网络地址相对应的64位IEEE地址。
多播控制域是1字节长度且只有多播标志子域值是1时存在
多播模式子域表明无论是使用成员或非成员模式传输该帧。成员模式在目的组成员设备中使用传送多播帧。非成员模式是从不是多播组成员设备到是多播组成员设备换算多播帧。
当不是目的组成员设备转播时,非成员半径域表明成员模式多播范围。接收设备是目的组成员将设置该子域值是最大非成员半径(MaxNonmemberRadius)域的值。如果NonmemberRadius field的值是0,接收设备不是目的组成员时将丢弃该帧,且如果NonmemberRadius域的值是在0x01到0x06范围内,那么将耗尽此域。如果NonmemberRadius域值是0x07表明无限的范围且不能被耗尽。
该帧的非成员半径域的最大值。
当帧控制域(Frame Control)的源路由子域标志位为1时,才存在。
应答计数器子域表明包含在源路由子帧转发列表里的应答的数值。
应答索引子域表明传输的数据包的应答列表子域的下一转发的索引。这个域被数据包的发送设备初始化为0,且每转发一次就加1。
应答列表子域包括一个应答地址的列表,最接近目标地址的应答先被列出。最接近发起者的应答最后被列出。