2024年1月7日发(作者:)

IEEE.802.15.4网络协议栈-MAC子层

在IEEE 802系列标准中,OSI参考模型的数据链路层进一步划分为MAC和LLC两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC在MAC子层的基础上,在设备间提供面向连接和非连接的服务。

MAC子层提供两种服务:MAC层数据服务和MAC层管理服务(MAC sublayer management entity, MLME)。前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。

MAC子层主要功能包括下面六个方面:

(1)协调器产生并发送信标帧,普通设备根据协调器的信标帧与协议器同步;

(2)支持PAN网络的关联(association)和取消关联(disassociation)操作;

(3)支持无线信道通信安全;

(4)使用CSMA-CA机制访问信道;

(5)支持时槽保障(guaranteed time slot, GTS)机制;

(6)支持不同设备的MAC层间可靠传输。

关联操作是指一个设备在加入一个特定网络时,向协调器注册以及身份认证的过程。LR-WPAN网络中的设备有可能从一个网络切换到另一个网络,这时就需要进行关联和取消关联操作。

时槽保障机制和时分复用(time division multiple access, TDMA)机制相似,但它可以动态地为有收发请求的设备分配时槽。使用时槽保障机制需要设备间的时间同步,IEEE 802.15.4中的时间同步通过下面介绍的“超帧”机制实现。

1.超帧

在IEEE 802.15.4中,可以选用以超帧为周期组织LR-WPAN网络内设备间的通信。每个超帧都以网络协调器发出信标帧(beacon)为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中普通设备接收到超帧开始时的信标帧后,就可以根据其中

的内容安排自己的任务,例如进入休眠状态直到这个超帧结束。

超帧将通信时间划分为活跃和不活跃两个部分。在不活跃期间,PAN网络中的设备不会相互通信,从而可以进入休眠状态以节省能量。超帧有活跃期间划分为三个阶段:信标帧发送时段、竞争访问时段(contention access period, CAP)和非竞争访问时段(contention-free period, CEP)。超帧的活跃部分被划分为16个等长的时槽,每个时槽的长度、竞争访问时段包含的时槽数等参数,都由协调器设定,并通过超帧开始时发出的信标帧广播到整个网络。

在超帧的竞争访问时段,IEEE 802.15.4网络设备使用带时槽的CSMA-CA访问机制,并且任何通信都必须在竞争访问时段结束前完成。在非竞争时段,协调器根据上一个超帧PAN网络中设备申请GTS的情况,将非竞争时段划分成若干个GTS。每个GTS由若干个时槽组成,时槽数目在设备申请GTS时指定。如果申请成功,申请设备就拥有了它指定的时槽数目。每个GTS中的时槽都指定分配给了时槽申请设备,因而不需要竞争信道。IEEE 802.15.4标准要求任何通信都必须在自己分配的GTS内完成。

超帧中规定非竞争时段必须跟在竞争时段后面。竞争时段的功能包括网络设备可以自由收发数据,域内设备向协调者申请GTS时段,新设备加入当前PAN网络等。非竞争阶段由协调者指定的设备发送或者接收数据包。如果某个设备在非竞争时段一直处在接收状态,那么拥有GTS使用权的设备就可以在GTS阶段直接向该设备发送信息。

2.数据传输模型

LR-WPAN网络中存在着三种数据传输方式:设备发送数据给协调器、协调器发送数据给设备、对等设备之间的数据传输。星型拓扑网络中只存在前两种数据传输方式,因为数据只在协调器和设备之间交换;而在点对点拓扑网络中,三种数据传输方式都存在。

LR-WPAN网络中,有两种通信模式可供选择:信标使能通信和信标不使能通信。

在信标使能的网络中,PAN网络协调器定时广播标帧。信标帧表示超帧的开始。设备之间通信使用基于时槽的CSMA-CA信道访问机制,PAN网络中的设备都通过协调器发送的信标帧进

行同步。在时槽CSMA-CA机制下,每当设备需要发送数据帧或命令帧时,它首先定位下一个时槽的边界,然后等待随机数目个时槽。等待完毕后,设备开始检测信道状态:如果信道忙,设备需要重新等待随机数目个时槽,再检查信道状态,重复这个过程直到有空闲信道出现。在这种机制下,确认帧的发送不需要使用CSMA-CA机制,而是紧跟着接收帧发送回源设备。

在信标不使能的通信网络中,PAN网络协调器不发送信标帧,各个设备使用非分时槽的CSMA-CA机制访问信道。该机制的通信过程如下:每当设备需要发送数据或者发送MAC命令时,它首先等候一段随机长的时间,然后开始检测信道状态:如果信道空闲,该设备立即开始发送数据;如果信道忙,设备需要重复上面的等待一段随机时间和检测信道状态的过程,直到能够发送数据。在设备接收到数据帧或命令帧而需要回应确认帧的时候,确认帧应紧跟着接收帧发送,而不使用CSMA-CA机制竞争信道。

3.MAC层帧结构

MAC层帧结构的设计目标是用最低复杂度实现在多噪声无线信道环境下的可靠数据传输。每个MAC子层的帧都由帧头、负载和帧尾三部分组成。帧头由帧控制信息、帧序列号和地址信息组成。MAC子层负载具有可变长度,具体内容由帧类型决定。帧尾是帧头和负载数据的16位CRC校验序列。

在MAC子层中设备地址有两种格式:16位(两个字节)的短地址和64位(8个字节)的扩展地址。16位短地址是设备与PAN网络协调器关联时,由协调器分配的网内局部地址;64位扩展地址是全球惟一地址,在设备进入网络之前就分配好了。16位短地址只能保证在PAN网络内部是惟一的,所以在使用16位短地址通信时需要结合16位的PAN网络标识符才有意义。两种地址类型的地址信息的长度是不同的,从而导致MAC帧头的长度也是可变的。一个数据帧使用哪种地址类型由帧控制字段的内容指示。在帧结构中没有表示帧长度的字段,这是因为在物理层的帧里面有表示MAC帧长度的字段,MAC负载长度可以通过物理层帧长和MAC帧头的长度计算出来。

IEEE 802.15.4网络共定义了四种类型的帧:信标帧,数据帧,确认帧和MAC命令帧。

1)信标帧

信标帧的负载数据单元由四部分组成:超帧描述字段、GTS分配字段、待转发数据目标地址字段和信标帧负载数据。

(1)信标帧中超帧描述字段规定了这个超帧的持续时间,活跃部分持续时间以及竞争访问时段持续时间等信息。

(2)GTS分配字段交无竞争时段划分为若干个GTS,并把每个GTS具体分配给了某个设备。

(3)转发数据目标地址列出了与协调者保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段里,则意味着协调器存有属于它的数据,所以它就会向协调器发出请求传送数据的MAC命令帧。

(4)信标帧负载数据为上层协议提供数据传输接口。例如在使用安全机制的时候,这个负载域将根据被通信设备设定的安全通信协议填入相应的信息。通常情况下,这个字段可以忽略。

在信标不使能网络里,协调器在其他设备的请求下也会发送信标帧。此时信标帧的功能是辅助协调器向设备传输数据,整个帧只有待转发数据目标地址字段有意义。

2)数据帧

数据帧用来传输上层发到MAC子层的数据,它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元。它的首尾被分别附加了MHR头信息和MFR尾信息后,就构成了MAC帧。

MAC帧传送至物理层后,就成为了物理帧的负载PSDU。PSDU在物理层被“包装”,其首部增加了同步信息SHR和帧长度字段PHR字段。同步信息SHR包括用于同步的前导码和SFD字段,它们都是固定值。帧长度字段的PHR标识了MAC帧的长度,为一个字节长而且只有其中的低7位有效位,所以MAC帧的长度不会超过127个字节。

3)确认帧

如果设备收到目的地址为其自身的数据帧或MAC命令帧,并且帧的控制信息字段的确认请求

位被置1,设备需要回应一个确认帧。确认帧的序列号应该与被确认帧的序列号相同,并且负载长度应该为零。确认帧紧接着被确认帧发送,不需要使用CSMA-CA机制竞争信道。

4)命令帧

MAC命令帧用于组建PAN网络,传输同步数据等。目前定义好的命令帧有力种类型,主要完成三方面的功能:把设备关联到PAN网络,与协调器交换数据,分配GTS。命令帧在格式上和其他类型的帧没有太多的区别,只是帧控制字段的帧类型位有所不同。帧头的帧控制字段的帧类型为011B(B表示二进制数据)表示这是一个命令帧。命令帧的具体功能由帧的负载数据表示。负载数据是一个变长结构,所有命令帧负载的第一个字节是命令类型字节,后面的数据针对不同的命令类型有不同的含义。

IEEE.802.15.4网络协议栈及物理层

IEEE 802.15.4网络协议栈基于开放系统互连模型(OSI),如图5-4所示,每一层都;实现一部分通信功能,并向高层提供服务。

IEEE 802.15.4标准只定义了PHY层和数据链路层的MAC子层。PHY层由射频收发器以及底层的控制模块构成。MAC子层为高层访问物理信道提供点到点通信的服务接口。

MAC子层以上的几个层次,包括特定服务的聚合子层(service specific convergence sublayer, SSCS),链路控制子层(logical link control , LLC)等,只是IEEE 802.15.4标准可能的上层协议,并不在IEEE 802.15.4标准的定义范围之内。SSCS为IEEE 802.15.4的MAC层接入IEEE 802.2标准中定义的LLC子层提供聚合服务。LLC子层可以使用SSCS的服务接口访问IEEE 802.15.4网络,为应用层提供链路层服务。

5.3.1 物理层

物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。物理层数据服务从无线物理信道上收发数据,物理层管理服务维护一个由物理层相关数据组成的数据库。

物理层数据服务包括以下五方面的功能:

(1)激活和休眠射频收发器;

(2)信道能量检测(energy detect);

(3)检测接收数据包的链路质量指示(link quality indication , LQI);

(4)空闲信道评估(clear channel assessment, CCA);

(5)收发数据。

信道能量检测为网络层提供信道选择依据。它主要测量目标信道中接收信号的功率强度,由于这个检测本身不进行解码操作,所以检测结果是有效信号功率和噪声信号功率之和。

链路质量指示为网络层或应用层提供接收数据帧时无线信号的强度和质量信息,与信道能量检测不同的是,它要对信号进行解码,生成的是一个信噪比指标。这个信噪比指标和物理层数据单元一道提交给上层处理。

空闲信道评估判断信道是否空闲。IEEE 802.15.4定义了三种空闲信道评估模式:第一种简单判断信道的信号能量,当信号能量低于某一门限值就认为信道空闲;第二种是通过判断无线信号的特征,这个特征主要包括两方面,即扩频信号特征和载波频率;第三种模式是前两种模式的综合,同时检测信号强度和信号特征,给出信道空闲判断。

1.物理层的载波调制

PHY层定义了三个载波频段用于收发数据。在这三个频段上发送数据使用的速率、信号处理过程以及调制方式等方面存在一些差异。三个频段总共提供了27个信道(channel):868MHz频段1个信道,915MHz频段10个信道,2450MHz频段16个信道。具体分配如表

在868MHz和915MHz这两个频段上,信号处理过程相同,只是数据速率不同。处理过程,首先将物理层协议数据单元(PHY protocol data unit,PPDU)的二制数据差分编码,然后再将差分编码后的每一个位转换为长度为15的片序列(chip sequence),最后BPSK调制到信道上。

差分编码是将数据的每一个原始比特与前一个差分编码生成的比特进行异或运算:En=Rn⊕E

n-1 ,其中En是差分编码的结果,Rn为要编码的原始比特,En-1是上一次差分编码的结果。对于每个发送的数据包,R1是第一个原始比特,计算E1时假定E0=0。差分解码过程与编码过程类似: Rn=En⊕En-1,对于每个接收到的数据包, E1是第一个需要解码的比特,计算R1时假定E0=0。

差分编码以后,接下来就是直接序列扩频。每一个比特被转换为长度为15的片序列。扩频过程按下表进行,扩频后的序列使用BPSK调制方式调制到载波上。

868/915MHz比特到片序列转换表

输入比特 片序列值(C1 C2„„C14)

01 111111

2.4GHz频段的处理过程,首行将PPDU的二进制数据中每4位转换为一个符号(symbol),然后将每个符号转换成长度为32的片序列。

在把符号转换片序列时,用符号在16个近似正交的伪随便噪声序列的映射表,这是一个直接序列扩频的过程。扩频后,信号通过O-QPSK调制方式调制到载波上。

2.物理层的帧结构

物理帧第一个字段是四个字节的前导码,收发器在接收前导码期间,会根据前导码序列的特征完成片同步和符号同步。帧起始分隔符(start-of-frame delimiter, SFD)字段长度为一个字节,其值固定为0xA7,标识一个物理帧的开始。收发器接收完前导码后只能做到数据的位同步,通过搜索SFD字段的值0xA7才能同步到字节上。帧长度(frame length)由一个字节的低7位表示,其值就是物理帧负载的长度,因此物理帧负载的长度不会超过127个字节。物理帧的负载长度可变,称之为物理服务数据单元(PHY service data unit, PSDU),一般用来承载MAC帧。