第2节 多点MAC控制操作
推荐给好友
打印
加入收藏
更新于2008-08-01 15:05:51

B.2.1 概述

如图B. 2,多点MAC控制功能块包括如下功能:

a) 多点发送控制(Multi-point Transmission Control):该模块负责同步多点MAC 控制实例。它维护多点MAC 控制状态并控制多个实例化MAC 的复用功能。
b) 多点MAC 控制实例n(Multi-point MAC Control Instance n):该模块负责对每个MAC 以及与多点MAC 控制相关联的MAC 控制客户端进行实例化,它负责维护本实例中与操作各种MAC 控制协议有关的所有变量和状态。
c) 控制解析器(Control Parser):该模块负责对MAC 控制帧进行解析,并同IEEE 802.3 31章规定的实体、操作码定义块、MAC 客户端进行接口。
d) 控制复用器(Control Multiplexer):该模板负责选择转发帧的源。
e) MAC 控制:该模块负责表B. 1定义的MAC 控制行为,可支持传统业务和将来的新业务。
f) 发现、报告和选通处理(Discovery Processing,Report Processing,GATE Processing):这些模块负责处理MAC 上下文中的MPCP。

B.2.2 多点MAC控制原理

B.2.2.1 基本描述

如图B. 2所示,多点MAC控制子层可实例化多个多点MAC控制实体从而将上层的多个MAC控制客户端同下层的多个MAC进行接口。OLT在与每个ONU通信时均使用一个单播MAC实体。各个MAC实体在OLT和ONU间使用点到点仿真服务。ONU侧仅使用一个MAC实体来同OLT的一个MAC实体进行通信,在这种情况下,多点MAC控制只包含控制解析器/复用器功能的唯一实体。

MPCP支持多个MAC和客户端接口。任一时刻只有一个MAC接口和客户端接口允许发送。MAC服务接口和客户端服务接口间具有严格的映射关系。特定地,MACj 的接收帧(ReceiveFrame)接口设置为有效则将使能客户端j的指示接口。相应地,客户端i的请求服务接口设置为有效则将使能MACi的发送帧(TransmitFrame)接口。应注意:多点MAC子层不需要在同一个接口同时接收和发送帧,这样多点MAC控制就象将多个MAC控制绑定在同一个公共部
分上。

调度算法与实现相关,对多个发送请求同时产生的情况没有定义具体的调度算法。接收操作如下:多点MAC控制实体向下层的MAC实体连续调用接收帧功能。由于这些MAC从同一个PHY接收帧,因而只有一个帧从MAC实体传递到多点MAC控制。响应接收帧的MAC实体称为使能MAC,其服务接口称为使能MAC接口。MAC把所有有效帧传递给多点MAC控制子层。在响应接收帧功能调用时,无效帧将不被传递给多点MAC控制子层。多点MAC控制实体与多点发送控制(Multi-point Transmission Control)共同完成对发送服务接口的使能操作。MAC控制产生的帧的优先级高于MAC客户端产生的帧,实际上,由MA_CONTROL原语的优先级高于MA_DATA原语,因此,为了执行所请求的MAC控制功能,MA_DATA.request原语可能会被延迟,丢弃或修改。为了发送MAC控制帧,多点MAC控制实体将使能MAC控制功能模块的转发功能,但不使能MAC客户端接口。接收帧时该MAC的接收帧接口将被使能。由于只有一个PHY接口,任意时刻只有一个MAC接收接口被使能。

被使能接口的信息存储在控制器状态变量中,并由复用控制块访问。多点MAC控制子层使用下层的MAC子层的服务来交换数据和控制帧。

每个实体的接收操作包括:
a) 从下层的MAC 接收帧;
b) 根据长度/类型域对帧进行解析;
c) 根据操作码对MAC 控制帧解复用并转发给相应的处理功能块;
d) 通过设置MA_DATA.indication 原语将数据帧转发给MAC 客户端。每个实体的发送操作包括:
a) MAC 客户端通过设置MA_DATA.request 指示一个帧的发送;或者
b) 根据先前的MA_CONTROL.request 的结果或一个MPCP 产生帧事件的结果,协议处理模块将尝试发送一个帧;
c) 当多点发送控制块允许其发送时,该帧被转发。

B.2.2.2 测距及定时过程

OLT和ONU都有每16ns增1的32比特计数器。这些计数器提供一个本地时间戳。当OLT或ONU任一设备发送MPCPDU时,它将把计数器的值映射入时间戳域。从MAC控制发送给MAC的MPCPDU的第一个八位字节的发送时间被作为设定时间戳的参考时间。

当ONU接收到MPCPDU时,将根据所接收的MPCPDU的时间戳域的值来设置其计数器。

当OLT接收到MPCPDU时,将根据所接收到的时间戳来计算或校验OLT和ONU之间的往返时间。往返时间RTT等于定时器的值和接收到的时间戳之间的差。通过MA_CONTROL.indication原语将计算的RTT通知客户端。客户端的测距可利用该RTT来完成,如图B. 3所示。

当OLT和ONU的时钟差超过预定门限时,将产生时间戳漂移错误(timestamp drift error)。这个时间戳漂移错误的触发条件可由OLT或ONU独立地检测到。当OLT检测到某一ONU的新旧RTT值之绝对差超过OLT保护门限(guardThresholdOLT)时,OLT将检测到时间戳漂移错误的触发条件,如图B. 9。当所接收的MPCPDU的时间戳和localTime计数器值之绝对差超过ONU保护门限(guardThresholdONU)时,ONU将检测到时间戳漂移错误的触发条件,如图B. 10。

B.2.3 多点发送控制,控制解析器以及控制复用器

B.2.3.1 概述

多点发送控制的目的是任意时刻只允许多个MAC客户端中的一个向所关联的MAC以及RS子层发送数据,这通过任意时刻只使能一个transmitEnable信号实现,如图B. 4所示。

多点MAC 控制实体n 功能块使用transmitEnable[n] , transmitPending[n] , 以及transmitInProgress[n]状态变量(如图B. 2所示)与多点发送控制进行通信。

控制解析器负责对接收通道上的MAC帧进行与操作码无关的解析。通过识别MAC控制帧,允许将其解复用到多个实体进行事件处理。同时,提供了与IEEE 802.3 31章规定的实体,MPCP相关联的功能块,以及MAC客户端的接口,如图B. 5所示。

控制复用器负责转发从MAC控制中与操作码相关的功能块及MAC客户端到MAC的帧。在发送方向进行复用处理。对于一个MAC客户端发来的MA_DATA.request原语,以及从MAC控制客户端发来的MA_CONTROL.request原语,将产生一个TransmitFrame用于发送。在OLT侧,多个MAC实体共享同一个多点MAC控制,因此为避免发送冲突,发送模块的使能要根据多点发送控制中的一个外部控制信号来进行。在ONU侧,GATE处理功能块提供上行发送管理接口,如图B. 6和图B. 7所示。

B.2.3.2 常量

defaultOverhead
该常量为帧发送开销的大小,测量单位为时间量子(time-quantum)。
类型:整型
值:6
guardThresholdOLT
该常量为OLT所接收的时间戳的最大允许漂移,测量单位为time_quantum(16比特时间)。
类型:整型
值:8
guardThresholdONU
该常量为ONU所接收的时间戳的最大允许漂移,测量单位为time_quantum(16比特时间)。
类型:整型
值:12
MAC_Control_type
该常量为类型/长度域值。
类型:整型
值:0x8808
tailGuard
该常量值指示ONU在发送上行数据的末尾所预留的空间,不包括最后的MAC服务数据单元(m_sdu),单位为八位字节。为MAC开销预留的空间包括:前导,SFD,DA,SA,长度/类型域,FCS以及帧结束定界符(EPD)。
类型:整型
值:29
time_quantum
所有与localTime变量的增量同步的机制都使用时间量子(time_quantum)为单位。表示计数器和时间间隔的所有变量都用时间量子(time_quantum)单位定义。一个time_quantum等于16ns。
类型:整型
值:16
tqSize
该常量表示用八位字节发送次数表示的时间量子(time_quantum)。
类型:整型
值:2

B.2.3.3 计数器

localTime
该变量值为控制MPCP操作所需的本地定时器值。该变量根据62.5MHz的定时器进行增1,同时以时间量子(time_quantum)计数。在OLT侧,计数器将跟踪发送时钟,同时在ONU侧,计数器将跟踪接收时钟。每当从OLT接收到时间戳,控制解析器通过重载入接收到的时间戳得到localTime。在运行时不应要求通过层管理改变该变量,本标准对这种处理不做规定。
类型:32比特无符号数

B.2.3.4 变量

BEGIN
该变量用于初始化功能块状态机。在初始化以及每次复位后,该值被设置为真(true)。
类型:布尔型
data_rx
该变量表示为一个以0为基的比特序列,它对应于接收到的MPCPDU的净荷。该变量用于解析接收到的MPCPDU帧。
类型:比特序列
data_tx
该变量表示为一个以0为基的比特序列,它对应于正被发送的MPCPDU的净荷。该变量用于访问发送MPCPDU帧中的净荷,例如用于设置时间戳值。
类型:比特序列
fecEnabled
该变量表示FEC功能是否被使能。如果FEC功能被使能,那么该变量为真(true),否则为假(false)。
类型:布尔型
newRTT
该变量用于暂时保存新测量到的ONU往返时间RTT。该新RTT值的单位为时间量子time_quantum)。
类型:16比特无符号数
nextTxTime
该变量表示下一个帧的全部发送时间,同时也用于检查下一个帧是否在ONU余下的发送窗口中。NextTxTime包括帧发送时间和tailGuard,如果FEC被使能则还包括FEC奇偶校验数据开销。该变量测量单位为时量子(time_quantum)。
类型:16比特无符号数
opcode_rx
该变量保存上一个接收到的MPCPDU操作码。
类型:16比特无符号数
opcode_tx
该变量保存正在发送的MPCPDU操作码。
类型:16比特无符号数
packet_initiate_delay
该变量用于设置packet_initiate_timer 的超时时间间隔。该变量的单位为量子时间(time_quantum)。
RTT
该变量为所测量的到ONU的往返时间。RTT值的单位为量子时间(time_quantum)。
类型:16比特无符号数
stopTime
该变量保存对应于最近一个授权(grant)末尾的localTime计数器值。该变量的值由GATE处理功能设置。
类型:32比特无符号数
timestamp
该变量保存上一个接收到的MPCPDU帧的时间戳值。
类型:32比特无符号数
timestampDrift
当出现不可纠正的时间戳漂移时,该变量用于表示是否要产生一个错误。
类型:布尔型
transmitAllowed
该变量用于在ONU侧控制PDU发送。当发送通道被使能时,该变量被设置为true,当发送路径被关断时,该变量被设置为false。根据GATE处理功能块的状态来改变该变量的值。
类型:布尔型
transmitEnable[j]
这些变量用于控制OLT侧的多点MAC控制实例中的发送通道。将其设置为on,表示允许所选择的实例发送帧。将其设置为off,将禁止所选择的实例发送帧。任意时刻,只有一个
transmitEnable可以被设置为on。
类型:布尔型
tranmitInProgress[j]
该变量表示多点MAC控制实例j正在发送一个帧。
类型:布尔型
transmitPending[j]
该变量表示多点MAC控制实例j准备发送一个帧。
类型:布尔型

B.2.3.5 函数

abs(n)
该函数返回参数n的绝对值。
Opcode-specific function(opcode)
该函数从操作码相关的功能块中导出,并由相应的操作码所对应的MAC控制消息的到达而触发。
FEC_Overhead(length)
当对长度为length的帧进行编码时,该函数计算FEC编码器所加入的额外开销大小。参数length表示整个帧的大小,包括前导,SFD,DA,SA,长度/类型域以及FCS。FEC编码器对每239个八位字节的数据块要增加16个奇偶校验字节。此外,为了在高误比特率下实现可靠的帧边界检测,还需要26个码组来容纳IPG以及更长的帧起始和帧结束序列。本函数返回以时间量子(time_quantum)为单位的FEC开销大小。下列公式用来计算开销:

ReceiveFrame(DA,SA,Length/Type,data)
该MAC子层函数根据特定的参数来接收帧。
select
该函数选择下一个允许发送操作的多点MAC控制实例。它返回transmitPending阵列的索引,该索引所指的值不能是false。如果阵列中同时有多个活动项,则选择原则取决于具体的实现。
SelectFrame( )
该函数使能具有等待帧的接口。如果多个接口同时有帧在等待,那么只有一个接口被使能。如果一些接口中等待帧的类型/长度域为MAC_Control类型,那么这些接口中的一个将被使能。对于其它情况, 选择原则不做规定。
sizeof(sdu)
该函数返回以八位字节为单位的sdu大小。
transmissionPending( )
只要有一个多点MAC控制实例有帧等待发送,那么该函数返回真。该函数可表示为
transmissionPending( )= transmitPending[0]+
transmitPending[1]+
...+
transmitPending[n-1]
其中n为多点MAC控制实例的总数。
TransmitFrame(DA,SA,Length/Type,data)
该MAC子层函数根据指定参数来发送帧。

B.2.3.6 定时器

packet_initiate_timer
该定时器用来延缓MAC控制帧的发送,以避免MAC延迟发生变化。同时,MAC在上一个
帧后强制加入IPG。如果FEC被使能,该定时器将增加足够的帧间隔来容纳FEC编码器所增加的
额外的奇偶校验数据。

B.2.3.7 消息

MA_DATA.indication(DA,SA,m_sdu,receiveStatus)

B.2.3.8 状态图

OLT的多点发送控制功能应实现图B. 8所示的状态图。OLT的控制解析器功能应实现图B. 9所示的状态图。ONU的控制解析器功能应实现图B. 10的状态图。OLT的控制复用器功能应实现图B. 11所示的状态图。ONU的控制复用器功能应实现图B. 12所示的状态图。





 

<<上一节 下一节>>




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.