您的位置:首页 > 其它

IEEE 802.15.4协议完整中文版(7)

2016-06-17 10:07 459 查看
出处:http://blog.csdn.net/tidyjiang/article/details/51570293


7.5 MAC概念概述

  本子条款详细地描述了 MAC 子层的功能。7.5.1 描述了如下两种信道访问机制:基于竞争访问和免竞争访问。对于基于竞争的访问,设备通过 CSMA/CA 退避算法访问信道;对于免竞争的访问,PAN
协调器通过 GTS 控制信道的访问过程。

  7.5.2 描述了 PAN 网络的启动、维护机制。设备通过扫描信道可以获取当前信道的忙闲状态、定位 POS 内的所有信标或者定位已经同步过的信标。在启动一个信道前,设备通过信道扫描结果来选择一个合适的逻辑信道,以及选择一个该区域内未被其它网络使用的 PAN 标识符。我们有一个规程可以检测并避免在一个 POS 内存在两个 PAN 标识符相同的网络。经过信道扫描、选择合适的 PAN 标识符后,FFD 设备可以以 PAN 协调器的身份开始运行。

 

  7.5.3 描述了设备加入、离开 PAN 网络的机制。当设备想加入一个 PAN 网络,且协调器允许设备加入时,将进行关联操作。协调器或者被关联的设备都可以进行解关联操作。

  7.5.4 描述了设备与协调器同步的机制。先解释在信标模式的 PAN 网络中协调器如何产生信标帧,以及设备如何进行同步;接着解释在非信标模式下如何同步。无论是信标模式还是非信标模式,同步过的设备都可能丢失同步,因此我们还解释了进行再次建立同步的过程。

  设计本标准的目的是让 PAN 网络中的设备(而不是协调器)控制数据传输。在这个前提下,协调器将按照一个规程处理多个传输。这是 7.5.5 中描述的内容。

  7.5.6 描述了帧传输、接收、确认以及重传机制。

  7.5.7 描述了分配、取消分配 GTS 的机制,以及处理取消分配的过程中产生 GTS 碎片的机制。

  7.5.8 描述了 MAC 子层处理接收帧、发哦是发送帧的机制。

  通过本子条款,定义了物理层成功接收帧、MAC 子层通过 FCS 成功地校验帧的过程(7.2.1.9 中也有描述)。


7.5.1 访问信道

  本子条款描述了访问物理无线信道的机制。


7.5.1.1 超帧结构

  在 PAN 网络中,协调器可以选择是否使用超帧结构绑定设备对信道的访问时间。发送一个信标帧就能实现超帧绑定。被绑定的超帧分为两个时间段:活跃期和非活跃期。在非活跃期内,协调器可以进入省电模式(即睡眠模式)。

  变量 macBeaconOrder(BO) 和 macSuperframeOrder(SO) 用于描述一个超帧结构。macBeaconOrder 决定了协调器传输信标帧的时间长度BI,macSuperframeOrder 决定了活跃期(包括信标在内)的时间长度SD,其关系如下:

BI = aBaseSuperframeDuration * 2^{BO}

SD = aBaseSuperframeDuration * 2^{SO}

其中:0 ≤ SO ≤ BO ≤ 14

当 BO = 15,协调器不传输信标帧(除非被要求传输信标帧,比如接收到一个信标请求命令),macSuperframeOrder 的值将被忽略。

  




7.5.1.1.1. 竞争接入阶段CAP(Contention access period)


  在一个超帧内,信标帧之后紧接着就是竞争接入阶段 CAP,且 CAP 必须在免竞争阶段 CFP 之前完成。如果 CFP 的长度是0,那么 CAP 就必须在超帧的有效期结束之前完成。在一般情况下,CAP 应当大于 aMinCAPLength,但是有时为了维护 GTS,需要增加信标帧的长度,因此临时需要额外的空间,导致 CAP 小于 aMinCAPLength。为了自适应 CFP 的尺寸,也需要动态地缩减或增加空间。

  

  所有的帧,除确认帧和紧跟随确认帧之后的数据帧之外,在 CAP 阶段都需要使用 CSMA/CA 机制访问信道。如果设备想在一个 CAP 阶段内传输,它必须保证其传输过程在该超帧的 CFP 之前完成,否则需要等到下一个超帧的 CAP 阶段才能开始传输。

  

  MAC 命令帧总是在 CAP 阶段被传输。

7.5.1.1.2 免竞争阶段CFP(Contention-free period)


  免竞争阶段 CFP 应该紧紧跟在竞争接入阶段 CAP 后面,且必须在超帧的有效期内完成。如果 PAN 协调器分配了 GTS,则这些 GTS 应该处于 CFP 内,且占据连续的时序。CFP 根据所绑定的 GTS 总长度进行增长或缩减。

  

  CFP 内的传输访问信道时不需要使用 CSMA/AC 机制。设备在 CFP 内传输数据时,必须保证在一个帧间间隔内完成,且必须在 GTS 结束之前完成。


7.5.1.2 超帧收发时序

在信标模式的 PAN 网络中,普通的协调器(非 PAN 协调器)会维护两个超帧时序:接收到的从其它协调器发送的超帧的时序;自己发出的超帧时序。两者的相对时序由原语 MLME-START.request 中的参数 StartTime 指定。图 67 描述了普通协调器发出和收到的超帧之间的关系。

在一个 PAN 网络中,所有超帧的信标顺序和超帧顺序应该保持一致。设备在与 PAN 进行交互时,必须处于超帧的有效期。




7.5.1.3 帧间间隔IFS(Interframe spacing)

MAC 子层接收到物理层的数据时,需要一定的时间才能处理完。因此,如果设备想要连续发送两帧,这两帧之间必须至少有一个帧间间隔。如果第一次传输的帧需要被确认,那么在确认帧与第二帧之间也必须至少有一个帧间间隔。帧间间隔的长度依赖于被传输帧的长度。如果帧的长度小于macMinSIFSPeriod,在帧之后必须有一个 SIFS;如果帧的长度大于 macMinLIFSPeriod,在帧之后必须有一个 LIFS。这些概念如图 68 所示。

竞争接入阶段的 CSMA/CA 算法需要考虑这些。




7.5.1.4 CSMA/CA算法

  在竞争接入阶段内,设备想要传输数据帧或者 MAC 命令帧(确认帧后面可以被快速传输的帧除外,参考 7.5.6.3 的时序需求),需要使用 CSMA/CA 算法访问信道。确认帧、免竞争阶段的数据帧、信标模式 PAN 网络中的信标帧都不需要使用 CSMA/CA 算法。

  如果在一个 PAN 网络中,MAC 子层想要在竞争接入阶段访问信道,有两种 CSMA/CA 算法:时隙版 CSMA/CA 和非时隙版 CSMA/CA。如果使用周期性的信标帧,采用时序版 CSMA/CA 算法;相反,如果没有使用周期性的信标帧,或者即使使用了周期性的信标但不能被定位,采用非时隙版的 CSMA/CA 算法。这两种算法都使用一个叫做退避时间的时间单位实现。一个退避时间等于 aUnitBackoffPeriod。

  在时隙版 CSMA/CA 中,退避时间的边界应该与 PAN 协调器的超帧时隙边界对齐,即退避时间的开始时间与信标帧的开始时间对齐。在时隙版 CSMA/CA 中,MAC 子层必须确保物理层在退避时间的起始边界开始传输数据。在非时隙版 CSMA/CA 中,设备的退避时间与该 PAN 网络中的其它设备的退避时间不相关。

  设备在进行传输时会维护三个变量:NB(Number of Backoff),CW(Content Window)和BE(BAckoff Exponent)。NB表示的是当前退避的次数,首次调用 CSMA/CA 机制发送报文时,该值会初始化为 0,随着信道接入的失败,该值会递增 1 后重试接入信道发送报文。在超过系统预定义的门限 macMaxCSMABackoffs 时, CSMA/CA 机制宣告报文发送失败并丢弃此报文。CW 定义的是竞争窗口大小,表示 CSMA/CA 机制要求接入信道发送报文前需要信道连续空闲的检测次数。CW
初始化为 2,当信道忙闲检测为忙时,CW 将被重新初始化为2,当信道忙闲检测为闲时,该值自减 1, 直至为 0 时,开始报文发送。CW 只用于时隙版 CSMA/CA 算法。BE 定义的是退避指数,表征着节点竞争信道时随机退避范围的上限值。在非时隙系统、或者 BLE 字段被置为 0 的时隙系统中,该值被初始化为 2 和 macMinBE 中的最小值。如果 macMinBE 被设为 0,CSMA/CA 算法在进行第一次迭代时就不使用冲突避免。

  尽管在 CSMA/CA 算法进行信道忙闲检测时, 设备的接收器是打开的, 但是设备会丢弃这段时间内接收的所有帧。

  图 69 描述了 CSMA/CA 算法的流程。当使用时隙 CSMA/CA 时,MAC 子层先初始化NB,CW和BE,然后确定下一个退避时间的边界[步骤1]。当使用非时隙 CSMA/CA 时,MAC 子层先初始化 NB 和 BE,然后直接进入步骤2。

  在步骤2中,MAC 子层将在[0, 2^{BE}-1]范围内产生一个随机数,并退避该随机数个退避时隙,然后请求物理层进行信道忙闲检测[步骤3]。在时隙版 CSMA/CA 系统中,等到退避时隙的边界开始时进行信道忙闲检测。在非时隙 CSMA/CA 系统中,立即进行信道忙闲检测。

  在时隙 CSMA/CA 系统中,如果字段 BLE 被置为0, 那么 MAC 子层必须确保先进行随机退避,再继续进行 CSMA/CA 操作,且还要确保在 CAP 之内能够将报文传输完才进行传输。注意,这里的报文包括物理层的填充位。如果退避时间大于 CAP 剩下的时隙时间, MAC 子层将在 CAP结束时暂停退避递减操作,且在下一个超帧的开始时恢复退避次数递减操作。如果退避时间小于 CAP 剩下的时隙时间,MAC 子层将进行退避延时,并评估是否可以继续处理。如果 CSMA/CA 算法剩下的步骤(信道忙闲分析、帧传送、确认)能够在
CAP 结束之前完成,那么就会在一个帧间间隔后的第一个 macBattLifeExtPeriods 完整退避时间后开始传送帧。如果 MAC 子层能够继续操作,将请求物理层检测当前超帧的信道忙闲状态。如果 MAC 子层不能继续操作,它将等待下一个超帧的 CAP,然后在进行信道忙闲评估之前再次执行退避延迟[步骤2]。

  如果检测到信道忙[步骤4],则 NB 和 BE 都自增 1(确保 BE 不会超过 macMaxBE).在时隙 CSMA/CA 系统, MAC 子层还将 CW 重置为 2。如果 NB 小于等于 macMaxCSMABackoffs, CSMA/CA 算法将返回到步骤2.如果 NB 大于 macMaxCSMABackoffs, CSMA/CA 算法将终止,并返回信道访问失败的状态。

  在时隙 CSMA/CA 系统中,如果检测到信道空闲[步骤5],MAC 子层先检查竞争窗口,再决定是否开始传输。 MAC 子层先将 CW 自减 1,然后在判断其值是否为 0。如果不为0,CSMA/CA 算法将回到步骤3。如果为 0, MAC 子层将在下一个退避周期的边界开始传输帧。 在非时隙 CSMA/CA 系统中,如果检测到信道空闲, MAC 子层会立即传输帧。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: