Zigbee协议中帧格式详细说明
1网络层帧分为两部分:帧头和帧载荷,帧的格式如下
网络层帧的通用格式
其中帧控制的具体格式如下
网络层帧头中帧控制域格式:
帧类型由开始两位表示
00表示数据帧:01表示网络层命令帧;10,11保留
路由搜索域中:1表示支持路由搜索;0表示不支持路由搜索
安全子域中:1表示使用安全操作;0表示不支持安全操作
网络帧帧头中广播半径域只有在目的地址为广播地址即0xFFFF时才存在。其值限定了广播的范围。每接受一次该帧时,其值减1.当为0时不再发送广播包
广播系列号的存在条件与广播半径域相同,要求目的地址为广播地址即0xFFFF。每传送一次广播包时,该系列号加一。
网络层数据帧格式如图
其总体格式与通用格式相同,各部分子域值根据规定来进行适当的组合。
网络层命令层格式如下图:
基本形式与数据帧类似,主要注意网络层载荷中的格式:
网络层载荷部分的第一个字节为网络标识符,根据不同的取值,将命令帧分为一下几种类型
0x01表示命令帧为路由请求命令帧
0x02表示命令帧为路由请求应答帧
0x03表示命令帧为路由错误命令帧
不同类型的命令帧,其主要差别主要在网络层载荷部分,下面着重介绍不同的命令帧的具体结构
1.1路由请求命令帧格式如下
为传送请求命令帧,应当在网络层帧报头的源地址设置为源设备的地址,目的地址设置为广播地址
在网络层载荷,命令选择子域为一个字节,其中0-6保留,比特7表示路由维护。如为1代表要进行路由维护中,否则不进行路由维护。
目的地址为路由请求命令帧的目的地址
路由成本为1字节,用来累积路由请求命令帧在网络中传送的代价信息。
命令选择域同路由请求命令帧
载荷中源地址为路由请求命令帧发起端的 16bit 网络地址
响应地址为搜索路由的设备的 16bit 网络地址。
路由成本收集链路成本用来作为通过网络时的链路成本。
1.3路由错误命令帧
路由错误命令帧的格式如下:
为了传送错误帧,网络层帧头中目的地址域应与出现传送错误数据帧的发起
端地址相同。源地址应设置为发送路由错误命令的设备地址。
错误代码值的意义如下:0x00 表示无效路由;0x01 表示树状链路失败;0x0
表示非树状链路失败;0x03 表示低电池电压;0x04 表示无路由能力;0x05-0xF
保留。
载荷中目的地址为出现传输失败的数据帧的目的地址。
2.MAC层帧结构
介质访问控制层(MAC)帧被称为 MAC 协议数据单元(MPDU),其长度
不超过 127 个字节。它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命
令帧。
3.Aps层帧格式
MSDU = 超帧域 + 未处理数据地址域 + 地址列表域 + 信标净荷域
MHR = 帧控制域 + 信标序列号 + 寻址信息域
MFR = 16bit的帧校验序列FCS
MPDU = MHR + MSDU + MFR
MAC协议数据单元 = MAC帧头 + MAC服务数据单元 + MAC帧尾
PPDU = PHR + PSDU + PFR
物理层协议数据单元 = 物理层帧头 + 物理层数据单元 + 物理层帧尾
空气中最终传播的数据包 = PPDU + 同步帧头SHR