IEEE 802.15.4的信道接入机制<一>基础、信标和非信标帧网络

一. 信道接入基础
1.概述
如果只是一个设备向另一个设备发送数据时,此时设备可以独占所有信道资源。
但是当多个设备使用单一信道进行通信时,就会发生冲突。
信道接入的主要目的就是解决多个设备访问单一信道时信道竞争。
信道接入是MAC层的核心功能。
2. 信道接入的分类:
   2.1 固定信道接入技术:
        每个设备的通信都占用确定的信道资源,即使信道资源是动态分配的,在某个时刻设备占据的资源是固定的。
        包括FDMA、TDMA、SDMA、CDMA。
  • 频分多址接入FDMA:
       让不同设备使用不同频率进行通信,这样由于设备对自身工作频率之外的信号进行滤波,
       可以把其他不相关的信号去掉,同时通信不会发生冲突。
  • 时分多址接入TDMA技术:
     让不同设备在不同时间进行通信,如每100ms分成10个时隙,分别给10个设备进行通信,
     从宏观上看,仿佛各个设备是同时进行通信。
  • 其他固定信道接入方式请参见相关资料。

   2.2 随机信道接入技术:
        设备通信并不占据固定的资源,为了安排不同设备之间对资源的使用,通常通过“竞争”的过程来完成。
        所有的随机信道接入技术都需解决信道冲突的问题。
        随机接入中需要解决的几个问题:
        a).节点设备什么时间能访问介质?
        b).如果介质处于忙的状态,节点应该怎么做?
        c). 各个节点设备如何确定数据传输是否已经成功?
        d). 如果一旦发生了冲突,应该怎么解决?

       随机信道接入分为:
  • pure ALOHA和S-ALOHA
    在ALOHA中,在帧发送过程中,利用应答来判断是否发生了通信冲突。如果应答失败,就认为产生了冲突,则随机延时一段时间再次发送。
  • CSMA(1坚持、p坚持、非坚持)
    在1坚持-CSMA中,发送数据前,发送设备会检查信道是否空闲,如果空闲,则发送帧。否则,如果忙,则坚持监听,直到空闲为止。
    在非坚持-CSMA中,发送数据前,发送设备会检查信道是否空闲,如果空闲,则发送帧。否则随机等待一段时间,然后再次检查信道是否空闲。如此重复。
    在p坚持-CSMA中,监听到信道忙时仍然坚持听下去,直到空闲为止。当听到信道空闲时,以概率p发送数据。(p=1时,即为1坚持)
  • CSMA-CD
    CSMA-CD中的CSMA使用上面的1坚持-CSMA。直到信道空闲,发送数据的同时,站点继续监听网络通信中有没有其他站点在同时传输数据。
    如果有,则会检测到冲突。冲突后,所有站点都会停止传输,然后各自等待一个随机产生的退避时间(backoff)后重发。
  • CSMA-CA
    CSMA-CA在802.11中被完整使用。它主要是为了解决“隐藏终端”和“暴露终端“问题。
    发送站点会在发送数据前发送一个短的控制帧RTS(Request To Send),目的站点收到RTS请求后会返回一个相应控制帧CTS(Clear To Send),发送站点收到CTS响应后就可以发送其数据。
  • RTS和CTS又叫握手信号。
    CSMA-CA的避让策略是在发送前进行的,当节点发送RTS时,先在初始退避窗口内随机退避一段时间,退避计数器为0时则侦听信道。
    如果信道空闲,则发送数据。否则将退避窗口加大继续随机退避,每次失败后的退避窗口将按照2的指数级增加,经过多次的尝试,直到数据发送出去。
     注意:IEEE 802.15.4没有普遍支持“请求到应答/空闲到发送”(RTS/CTS)握手机制。
   
二. 信标网络和非信标网络:
1.信标网络
周期性地发送信标帧的网络,称为信标网络。
信标网络中采用超帧结构,时隙(TS)以及时隙保障机制(GTS),来管理数据的传输。
而超帧结构和时隙保障机制是通过信标帧来定义和管理的。
超帧结构可以看做基于时间片的内存结构体,此时间片的基本单位(周期)称为时隙(Time Slot),
时隙的持续周期及其构成划分都是由信标帧来定义解释。
超帧结构分活跃期和非活跃期,活跃期又分为CAP和CFP。所有的传输都是在活跃期完成的。
非活跃期可用来设备休眠,在以电池为电源的设备中节省能耗。
在活跃期中,CAP是竞争的信道接入,而CFP是非竞争的信道接入。
因为信道竞争,所以在超帧结构的CAP期使用基于时隙的CSMA-CA机制来进行信道接入。
而CFP是非竞争的时分复用,所以在超帧结构的CFP期使用TDMA机制来进行信道接入。
GTS时隙保证机制是实现时分复用的基本管理单元,它包含在信标帧中,用来管理CFP中时分时隙的划分和设备占用分配。

总的来说,在信标网络中,采样两种信道接入机制,即基于时隙的CSMA-CA和(基于时隙的)TDMA。
两种信道接入机制都是为了避免传输冲突,提高传输的可靠性。
在信标网络中,CSMA-CA不用于发送信标帧、确认帧或CFP中的数据帧。
因为在信标网络中,信标帧总是在第一个时隙发送,所以,信标帧无需CSMA-CA。
The CSMA-CA algorithm shall not be used for the transmission of beacon frames in a beacon-enabled PAN, 
acknowledgment frames, or data frames transmitted in the CFP.(IEEE 802.15.4-2006 7.5.1.4)

2.非信标网络
不包含信标的网络称为非信标网络。非信标网络并非没有信标帧,而是这种信标帧是按需无周期性发送的。
非信标网络可以看做是信标网络的特例(即信标间隔不定期)。
在后面我们还会看到,当信标帧中超帧规格子域BO=15时,信标周期变成无限长,超帧的结构此时就没有作用了,
此时的信标网络就成为了非信标网络。
非信标网络中没有超帧结构,因此没有时隙(TS)和时隙保证(GTS),没有CAP和CFP,所以也没有TDMA机制。
在非信标网络当中,所有信息发送的信道接入采取CSMA-CA的方式,包括对信标请求响应发送的信标,
也是以CSMA-CA的方式发送。

三. CSMA-CA机制中的三个变量:NB,CW和NB
1. NB,CW和NB
在信道竞争的访问中,设备在每次发送数据之前,都要使用CAMA-CA算法进行通道空闲评估(CCA)。
CSMA-CA的算法核心是,在每次信道空闲评估时,都需要一段随机时间的退避延时,然后才进行信道空闲评估。
如果此时通道为空闲,则执行发送。而如果此次通道空闲评估为忙,那么,会再次重复前面的延时步骤。
直到重复若该次该项操作。
这里有两个参数值:延时的持续时间和进行如上评估重复的次数。
每个设备应为传输维持三个变量:NB,CW和BE。其中BE是延时长短的变量参数,时间长度为random((2 BE  - 1) 个基本单位时间。
而NB则是评估重复次数的变量。
另外还有一个变量CW,它只用于基于时隙的信标网络CSMA-CA算法中。CW的含义是,在退避延时后,
要执行连续多少次信道评估为空闲,才会最终确认信道确实为空闲。另外要注意此时的CCA要在时隙的边界进行。
NB和CW的单位都为次,BE相联系的backoff的单位则为aUnitBackoffPeriod。IEEE 802.15.4-2006中规定,
aUnitBackoffPeriod为20个symbol时间长度。
IEEE 802.15.4-2006对NB,CW和NB这三个变量的定义如下:
  • NB是本次传输时,CSMA-CA算法所需退避周期的次数。该值在每一次新的传输前初始化为0.
  • CW是竞争窗口长度。在传输开始之前需要清除通道活动(即通道空闲)的退避周期数。它在每次传输前
        被初始化为2,每次通道被评估为忙时,重置为2次。CW仅仅使用在时隙CSMA-CA中。
  • BE为退避指数,在空闲信道评估(CCA)之前,设备应等待的退避周期数。在非时隙的系统中,以及BLE域为0的
    时隙系统中,此值应被初始化为macMinBE。而在BLE域为1的时隙系统中,此值应被初始化为2和macMinBE两者之间的最小者,
    即min(2, macMinBE)。
    而最终的退避周期是介于0 -- (2BE - 1)之间的一个随机数。
    注意如果macMinBE设置为0,在这个算法的第一次迭代期间,冲突避免将会被禁用。

2. MAC子层相关常量说明:
  • aUnitBackoffPeriod是MAC sublayer constants,其值为20,见IEEE 802.15.4 P159
        所以在2.4G网络中,aUnitBackoffPeriod = 20 x 16us。其中的16us为每符号时间(1s / 62.5ks)。
  • BE、NB相关的变量见下表:IEEE 802.15.4-2006 P164 Table 86—MAC PIB attributes 
Attribute
Range
Default
macMinBE
0–macMaxBE
3
macMaxBE
3–8
5
macMaxCSMABackoffs
0-5
5

四. 非信标帧网络中的CSMA-CA算法
如上所述,非信标网络中没有时隙的概念,和信标网络中CSMA-CA的算法最大的不同是:
无需时隙边界对齐和执行CW中的CCA检测。一经检测到通道为空闲,就立即进行数据发送。
我们将在接下来的基于时隙信标网络的CSMA-CA算法中看到这种差别。
在非信标帧网络中的CSMA-CA算法步骤如下图:

上图中,BE = min(BE + 1, macMaxBE)的功能是:
BE的值会每次递增1,但确保其值不超过最大值macMaxBE。

帧数据发送流程用C语言描述如下:
#define macMinBE  3    //默认值
#define macMaxBE  5    //默认值
void   RandomBackoffDelay ( uint8 BE )
{
    uint8 x ;
    x   =   rand ()   %   ( 2   ^   BE );     //rand()%n的范围是0~n-1;
     Delay ( x );
}
bool   TX_With_Unslotted_CSMA_CA ( void )
{
    NB   =   0 ;
    BE   =   macMinBE ;

      for   (;;)
      {
        RandomBackoffDelay ( BE );
        CCA ();
          if   ( chnnl_idle )
          {
              return   SendFrame (...);
          }
          else
          {
            NB ++;
            BE   =   min ( BE   +   1 ,   macMaxBE );  //注意,BE的值在此被改变;
              if   ( NB   >   macMaxCSMABackoffs )
              {
                   return   FAILURE ;
              }
          }
      }
}

五.信标帧格式

1.Superframe Specification field,超帧域
  • bit0-3 Beacon Order:信标阶,见第六节中的描述
  • bit4-7 Superframe Order:超帧阶,见第六节中的描述
  • bit8-11 Final CAP Slot:最后CAP时隙,见第六节中的描述
  • bit12 Battery Life Extension (BLE):电池寿命延长。该子域的使用见下面章节"信标网络中的CSMA-CA算法"
  • bit13 Reserved:保留
  • bit14 PAN Coordinator:协调器标志位,如果信标帧由PAN协调器发送,则置为1。否则为0.
    注意在IEEE 802.15.4规范中,协调器分为PAN协调器和协调器。即相当于zigbee中的协调器和路由器。
  • bit15 Association Permit:关联允许位。如果允许关联,则为1,否则为0。参见“设备关联”的相关内容。

2.GTS fields:保证时隙域
参见下面的GTS小节内容。

3.Pending address fields:未决地址域
  • Pending Address Specification field(上图中为给出其所构成的各个子域图表) :未决地址规范域
    • Number of Short Addresses Pending:未决短地址数
    • Reserved:保留
    • Number of Extended Addresses Pending:未决长地址数
    • Reserved :保留
  • Address List field :地址列表

六.信标网络中的超帧(Superframe)
1.概述
只有信标网络中才有超帧,超帧是实现时隙机制的基础。
我们可以将超帧比作一个较高层的时钟,它将时间分片,一个分片包含一个或多个基本单位时间,分片单位被称为时隙(TS-Time Slot)。
在信标网络中,设备将处理收发数据事务的时间划出一个周期,该周期定义为超帧。在此周期内,设备可进行数据收发处理和节能休眠。
超帧并非严格意义上的内存(空间)结构,它其实是一个周期性的时间结构。
超帧由协调器来定义,并使用信标帧来定义解释其内部结构,信标帧中包含的超帧定义解释域称为超帧规范(Superframe Specification)。
在信标网络中,协调器将周期的发送信标帧进行广播,各终端(包括其他协调器)接收该信标帧,通过其中的超帧规范来构建(或同步)本地的超帧影子副本。由于协调器是在超帧的第一个时隙(时隙0)来发送信标帧,接收器可以此进行超帧开始边界(也即时间同步)的同步。

2.超帧结构
超帧结构如下图:

超帧分为活跃期和可选的非活跃期两大部分,整个超帧的大小(持续时间,即BI)由超帧规范中的BO(Beacon Order,信标阶)来定义。
  • 在活跃期,协调器进行数据发送、或者打开接收机接收数据、或者准备接收数据;
  • 而在非活跃期,协调器可以关闭收发机以节省能量。

2.1 信标帧中的超帧规格域(Superframe Specification):
超帧规范为信标帧的子域(详见下面信标帧结构图)。
超帧结构的大小边界由超帧规格域进行定义:
  • bit0-3为信标阶BO(Beacon Order),确定了信标间隔BI。
  • bit4-7为超帧阶SO(Superframe Order),确定了超帧的持续时间SD。
  • bit8-11为最后CAP时隙,指示了竞争接入时期的结束位置。

下面重点对超帧中的活跃期进行描述。

2.2 活跃期和时隙0
活跃期包括CAP和CFP。
CAP:竞争接入时期(Contention Access Period),CAP紧接着信标帧(见上面的超帧结构图)。
CFP:非竞争接入时期(Contention Free Period)
CAP和CFP的边界使用超帧规范(Superframe Specification)子域中的Final CAP Slot来定义。
在CAP内,使用CSMA-CA机制进行信道接入。
在CFP内,则使用TDMA机制进行信道接入,此时使用GTS来保证TDMA的实现。

活跃期分为16个大小相等的时隙,每个时隙的大小(持续时间)由超帧规范中的SO来定义。
在时隙0的开头(亦即超帧的开头),协调器发送自己的信标帧。
  • 信标中包含了网络的各种信息,用于新设备加入网络。
  • 又由于它是周期性发送的,可用于进行设备之间的同步。

信标帧与时隙0之间的关系:
802.15.4规定,信标帧从时隙0的起始位置开始发送。但并不等于说“信标帧只能在时隙0发送,或时隙0只能发送信标帧”。
不同参数设置下,超帧的活跃期的长度是不同的,因此时隙的长度也会产生变化:
  • 时隙较短时,信标帧占用的时间可能会超过时隙0;
  • 时隙较长时,时隙0在传输完信标帧之后,还可以用剩余的时间发送其它数据。

2.3 活跃期构成要素的持续时间和它们之间的关系
2.3.1 超帧和超帧规范中几个概念:
  • 信标间隔(Beacon Interval,BI)
  • 超帧持续时间(Superframe Duration,SD)
  • 超帧活跃期(Active Period)
  • 超帧非活跃期(Inactive Period)
  • 竞争接入时期(Contention Access Period,CAP)
  • 非竞争接入时期(Contention Free Period,CFP)
  • 时隙(Time Slot,TS)
  • 保证时隙(Guaranteed Time Slot,GTS)
  • 信标阶(beacon order,BO)
  • 超帧阶(superframe order,SO)

2.3.2 概念之间的关系:
  • 信标间隔          = 超帧活跃期 + 超帧非活跃期
  • 超帧持续时间    = 超帧活跃期
  • 超帧活跃期       = 竞争接入时期 + 非竞争接入时期(CAP +CFP)
  • 超帧活跃期       = 16×TS
  • 非竞争接入时期 = ΣGTSi
  • GTS                 = n×TS(n=1,…,15?)

2.3.3 超帧持续时间SD和信标间距BI的长度:
  • BI = aBaseSuperframeDuration x 2^BO符号
  • SD =aBaseSuperframeDuration x 2^SO符号
  • 0≤SO≤BO≤14,如此可限制超帧持续时间小于等于信标间距。

aBaseSlotDuration在802.15.4-2006规范中为60 symbols。
aBaseSuperframeDuration = aBaseSlotDuration × aNumSuperframeSlots,即aBaseSlotDuration × 16 = 960 symbols。
那么SD = 960 symbols × 2^BO。
TS = SD / 16 = (960 symbols × 2^BO)  / 16,此处的16为活跃期包含的时隙数。
也就是说,当BO = 0时,时隙(TS)的持续时间为aBaseSlotDuration。

在2.4G频率的信道中,每symbol时间为 1s / 62.5ks,即每符号时间为16us。
下图是在2.4G网络中不同SO、BO取值对应的超帧活跃期和信标周期值:

如SO为0,那么SD= 960 symbols × 2^BO = 960 symbols
每符号位时间为16us,则aBaseSuperframeDuration = 960 x 16us = 15.36ms。

  • 8
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值