您好,欢迎访问三七文档
ZIGBEE帧结构在ZigBee技术中,每一个协议层都增加了各自的帧头和帧尾在PAN网络结构中定义了4种帧结构:信标帧——主协调器用来发送信标的帧;数据帧——用于所有数据传输的帧;确认帧/应答帧——用于确认成功接收的帧;MAC命令帧——用于处理所有MAC层对等实体间的控制传输。1.信标帧信标帧由主协调器的MAC层生成,并向网络中的所有从设备发送,以保证各从设备与主协调器同步,使网络运行的成本最低,即采用信标网络通信,可减少从设备的功耗,保证正常的通信。帧结构如下图所示:MHR是MAC层帧头;MSDU是MAC层服务数据单元,表示MAC层载荷;MFR是MAC层帧尾。其中,MSDU包括超帧格式、未处理事务地址格式、地址列表能及信标载荷;MHR包括MAC帧的控制字段、信标序列码(BSN)以及寻址信息;MFR中包含16位帧校验序列(FCS)。这三部分MHR、MSDU、MFR共同构成了MAC层协议数据单元(MPDU)。MAC层协议数据单元(MPDU)被发送到物理层(PHY)时,它便成为了物理层服务数据单元(PSDU)。如果在PSDU前面加上物理层帧头(PHR)和同步帧头(SHR)便可构成物理层协议数据单元(PPDU)。其中,SHR包括前同步帧序列和帧起始定界符(SFD);PHR包含有PSDU长度的信息。使用前同步码序列的目的是使从设备与主协调器达到符号同步。SHR、PHR、PSDU共同构成了物理层的信标包(PPDU)。通过上述过程,最终在PHY层就形成了网络信标帧。2.数据帧数据帧由应用层发起,在ZigBee设备之间进行数据传输时,传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头MHR和帧尾MFR,形成完整的MAC数据帧MPDU。MAC的数据帧作为物理层载荷(PSDU)发送到物理层。在PSDU前面,加上同步帧头(SHR)和物理层帧头(PHR)。同信标帧一样,前同步码序列和数据SFD能够使接收设备与发送设备达到符号同步。SHR、PHR、PSDU共同构成了物理层的数据包(PPDU)。帧结构如下图所示:3.确认帧/应答帧在通信接收设备中,为保证通信的可靠性,通常要求接收设备在接收到正确的帧信息后,向发送设备返回一个确认信息。以向发送设备表示已经正确地接收到相应的信息。接收设备将接收到的信息经PHY层和MAC层后,由MAC层经纠错解码后,恢复发送端的数据,如没有检查出数据的错误,则由MAC层生成一个确认帧,发送回发送端。帧结构如下:MAC层的确认帧由一个MHR和一个MFR构成,MHR和MFR共同构成了MAC层的确认帧(MPDU)。MPDU作为物理层确认帧载荷(PSDU)发送到物理层,在PSDU前面加上SHR和PHR。SHR、PHR、PSDU共同构成了物理层的确认包(PPDU)。4.MAC命令帧MAC命令帧由MAC子层发起。在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,控制命令由应用层产生,在MAC层根据命令的类型,生成的MAC层命令帧。帧结构如下图所示:包含命令类型字段和命令数据的MSDU叫作命令载荷。同其他帧一样,在MSDU前面,加上帧头MHR,在其结尾后面,加上帧尾MFR。MHR、MSDU、MFR共同构成了MAC层命令帧(MPDU)。MPDU作为物理层载荷发送到物理层,在PSDU前加上SHR和PHR。SHR、PHR、PSDU共同构成了物理层命令包(PPDU)。注:1、同步头SHR:包括帧引导序列,接下来是帧开始界定符(SFD)。在IEEE802.15.4规范中,帧引导序列定义为四个字节的0x00。SFD是一个字节,设置为0Xa.2、帧控制域格式:3、FCS的表达式是:G(s)=x16+x12+x5+1网络建立过程:入网前路由器路由器在入网之前,一直发送信标请求帧,它的作用是,让在它附近的所有具备介绍人资格的节点,都回复信标帧,这些返回的信标帧被这个想要加入的无线模块拿到,通过这些信标帧,选出最佳介绍人节点,请求加入。终端它在入网前的行为和下载了路由器代码模块在入网前行为是一样的。协调器发送了一帧信标请求帧,发送这一帧也会得到周围具备介绍人资格的节点回复信标帧,但是协调器拿到这些信标帧,用来判断周围的环境情况,为创建网络做准备。当协调器创建成功以后,就会发送一个数据帧,这个帧里面可以看到协调器的地址0x0000,PANID,可以把这个帧叫做网络连接状态帧。从入网到稳定工作路由器1、协调器发出的网络连接状态帧,表明协调器稳定工作,与路由器入网无关2路由器模块发出的信标请求帧,用于发现周围的网络,请求加入3、协调器模块发出的信标请求帧,路由器模块在拿到这个帧之后,可以得到协调器模块相对于它自己的信号强度,判断是不是最佳介绍人。4-56-7重复2-3的过程补充:在Zigbee网络里,如果一个模块发出的射频帧,非常明确的指定接收目标节点的地址,那么目标节点在接收到这个帧以后,硬件会自动回复一个ACK,表明已经收到了。TI在CC2530出厂的时候在flash上固话一个8个字节编号唯一的值,这个值是这颗芯片的物理地址,又叫MAC地址,或叫IEEE地址,3种说法说的都是一回事。8是路由器模块发给协调模块,这个帧的作用是,在前面路由器模块收到了协调器模块的信标帧,通过信标帧判断协调器是当前路由器模块的最佳介绍人,路由器模块发送这一帧是告诉协调器,你是我当前的最佳介绍人,请你从当我入网的介绍人,介绍我入网,并且在这个帧携带了自己MAC,这个MAC地址是介绍人模块(协调器模块)给被介绍人模块(路由器模块)分配网络的地址的依据。9是协调器模块硬件回复给路由器模块的ACK,表明我已经收到了你发过来的帧10是路由器模块发给协调器模块的帧,请求协调器,把你根据我前面发给你的MAC地址给我分配的网络地址现在发给我。是一个数据请求帧。11协调器回复给路由器的ACK表明收到了路由器发过来的帧12协调器把为路由器分配好的网络地址发给路由器。而这个帧需要非常明确的发给路由器模块,但是路由器模块还不知道自己的网络地址是多少,所有在指定目标地址的时候用MAC地址13在路由器模块根据自己的MAC地址收到了协调器发过来分配给自己的网络地址,硬件自己回复ACK,表明已经收到了,14入网宣告,告诉当前网络里所有的节点,我入网了,我的网络地址是0xE9EB。15是协调器模块在收到了路由器模块发的入网宣告帧以后,转发的帧。1617是协调器模块和路由器模块在工作稳定时,发出的网络连接状态帧。协调器和路由器在入网后,稳定工作时的行为是,每隔一段时间发一次网络连接状态帧,默认是15S终端入网过程,终端的入网过程和路由器入网的过程,所有的行为都是一样的终端.psd16终端节点发送给它的父节点协调器的数据请求帧,为了告诉它的父节点,我还在线。17协调器在收到终端发来的帧,硬件自动回复的ACK(1)如果协调器的ZDAPP_CONFIG_PANID设置为OxFFFF,则协调器将产生一个随机的PANID。(2)如果协调器的ZDAPP_CONFIG_PANID设置为非OxFFFF,则协调器根据自身的IEEE地址或ZDAPP_CONFIG_PANID值随机产生PANID。(3)如果协调器的PANID设为小于等于Ox3FFF的有效值,协调器就会以这个特定的PANID值建立网络。对于路由器和终端,如果ZDAPP_CONFIG_PANID设置为OxFFFF,那么他们将会在自己默认的信道上随机选择一个网络加入,网络协调器的PANID即为自己的PANID。如果ZDAPP_CONFIG_PANID设置为一个有效值,则搜索对应的PANID的协调器请求加入其中。
本文标题:ZIGBEE帧结构
链接地址:https://www.777doc.com/doc-1657818 .html