转自:http://blog.sina.com.cn/s/blog_7ca994b80100t0lu.html
Zigbee协议中帧格式详细说明
1网络层帧分为两部分:帧头和帧载荷,帧的格式如下

网络层帧的通用格式
其中帧控制的具体格式如下

网络层帧头中帧控制域格式:
帧类型由开始两位表示
00表示数据帧:01表示网络层命令帧;10,11保留
路由搜索域中:1表示支持路由搜索;0表示不支持路由搜索
安全子域中:1表示使用安全操作;0表示不支持安全操作
网络帧帧头中广播半径域只有在目的地址为广播地址即0xFFFF时才存在。其值限定了广播的范围。每接受一次该帧时,其值减1.当为0时不再发送广播包
广播系列号的存在条件与广播半径域相同,要求目的地址为广播地址即0xFFFF。每传送一次广播包时,该系列号加一。
网络层数据帧格式如图

其总体格式与通用格式相同,各部分子域值根据规定来进行适当的组合。
网络层命令层格式如下图:

基本形式与数据帧类似,主要注意网络层载荷中的格式:
网络层载荷部分的第一个字节为网络标识符,根据不同的取值,将命令帧分为一下几种类型
0x01表示命令帧为路由请求命令帧
0x02表示命令帧为路由请求应答帧
0x03表示命令帧为路由错误命令帧
不同类型的命令帧,其主要差别主要在网络层载荷部分,下面着重介绍不同的命令帧的具体结构
1.1路由请求命令帧格式如下

为传送请求命令帧,应当在网络层帧报头的源地址设置为源设备的地址,目的地址设置为广播地址
在网络层载荷,命令选择子域为一个字节,其中0-6保留,比特7表示路由维护。如为1代表要进行路由维护中,否则不进行路由维护。
目的地址为路由请求命令帧的目的地址
路由成本为1字节,用来累积路由请求命令帧在网络中传送的代价信息。
1.2 路由应答命令帧
为传送应答帧,在网络层帧头中的目的地址域应该设置为回到响应路由请求发起端路由的第一跳的网络地址。源地址应该设置为传送此帧设备的网络层16位网络地址。
命令选择域同路由请求命令帧
载荷中源地址为路由请求命令帧发起端的 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
下一步,利用协议分析仪分析,在组网,通信过程中,数据包的情况。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
zigbee各层帧结构的构成
转自:http://hi.baidu.com/okmcu/item/ef28f7d6a183208f6cce3f0f
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
各层帧结构的构成
在ZigBee协议栈中,任何通信数据都是利用帧的格式来组织的。协议栈的每一层都有特定的帧结构。

AF层: KVP命令帧
MSG命令帧 (具体参见下面分析)
APS层: 数据帧
应答帧
APS命令帧
NWK层: 数据帧
NWK命令帧
MAC层: 信标帧
数据帧
应答帧
MAC命令帧
PHY层: MPDU作为PSDU,再加上SHR,PHR成为PPDU,这个PPDU就可以在空中传播了。
对于APS,NWK,MAC层的各种帧参见《zigbee技术基础及案例分析》;
记录下个人对AF层的KVP和MSG的理解:
AF定义了两种帧类型:
键值对 (Key Value Pair,KVP)
报文 (Message,MSG)
KVP服务促使一个应用来处理属性,它由应用剖面定义,属性有一个指定者(KEY)和一个相应的值,它可使用命令进行请示或设置。用于传输规范所定义的特殊数据。它定义了属性(Attribute)、属性值(Value)以及用于KVP操作的命令:Set、Get、Event。其中Set用于设置一个属性值,Get用于获取一个属性的值,Event用于通知一个属性已经发生改变。KVP消息主要用于传输一些较为简单的变量格式。
由于ZigBee的很多应用领域中的消息较为复杂并不适用于KVP格式,因此ZigBee协议规范定义了MSG服务类型。MSG服务促使一个应用剖面用自由形式的帧格式工作,它由自己的应用剖面定义,对数据格式不作要求,适合任何格式的数据传输。因此可以用于传送数据量大的消息。


说明:本文作者所记录,错误处还请高手指点,本人随时更新,转载请注明出处。
具体内部各结构以及传输流程尚不清楚,以后再作详细分析。
参考资料:《zigbee技术基础及案例分析》;闫前辈的《zigbee协议栈分析》;
本文转载自小峰网易博客
====================================================================================================================================
一种基于ZigBee的双速率超帧调度方法
专利类型:发明
专利号:201010601035
专利申请日:2010/12/23
公开(公告)号:
公开(公告)日:2011/05/25
分类号:H04W 48/10;H04W 52/02
申请(专利权)人:浙江大学
发明(设计)人:王智;陈善涛;周良毅;卓书果;李元实
申请人:浙江大学
国别省市:86[]
==================================================================================================================================