0 引言
近年来,随着高清电视、互动多媒体、手机电视和视频点播新业务的不断涌现,用户对带宽的需求不断增大。EPON 因其传输距离远、传输容量大的优势得到了广大运营商的青睐。同时,国家三网融合的政策也对EPON 技术的应用提供了强大的助力。EPON 系统是一个非对称系统, 在OLT 端可以有多达32 个数据链路层,1 个调和子层(reconciliation sublayer, 简称RS);在ONU 端只有1 个数据链路层,1 个RS 层。RS层处在物理层能和MAC 层之间, 在下行方向上对从OLT 端发送来的数据起着选择作用, 对属于该ONU的数据向下行方向传递, 对不属于该ONU 的数据要把它丢弃,对数据起着过滤作用。在上行方向上,主要是对发送到对端的帧加入前导码, 以便于对端的定位。在ONU 端根据RS 层功能,将其分为接收和发送两部分, 我们就这两部分功能提出了相应的方案设计。
1 RS 层接收部分方案的设计
1.1 RS 层接收模块主要功能
①对EPON 的帧头(即前导码)进行检测;②定位SLD 域;③使用SLD 域的位置来定位CRC 域和检验接收到的数值与使用接收数据计算出来的CRC 是否相匹配;④使用SLD 域的位置来定位LLID 域和解析它来测定目的地MAC;⑤假如由于不正确的CRC 或者未知的LLID 不丢弃报文,那么使用正常的前导码来取代SLD 和LLID,用SFD 来取代CRC 域,传送这个报文给相应的MAC;否则则丢弃整个报文,用正常的帧间隔来取代它(在这里我们选择将报文丢弃)。
1.2 RS 层接收模块设计功能介绍
其方案如图1 所示。
图1 RS 层接收模块设计方案
①帧头检测及SLD 定位。在EPON 系统中,EPON帧的前导码的前5 个字节是固定的,所以可以利用前5 个字节来对帧头进行判断, 如果接收数据的前5 个字节与EPON 帧的前5 个字节完全一致,那么就认为帧头是正确的。那样,我们就可以断定SLD 字节所在的位置了。如果帧头正确,输出信号Detect_dv 就会为1,否则Detect_dv 的输出就会是0。帧头检测及SLD 定位模块的输出信号就是进入该模块的Rxd[7:0]信号。
②计数器。计数器模块的作用主要是为1 进2 出模块提供一个选择信号输出的端口以及为FiFo 管理1 模块提供写使能信号。它受信号RX_dv 的控制,当Rx_dv 为0 时,计数器清零;当Rx_dv 为1 时,计数器就会正常地计数,但是,在计数到8 之前,其输出信号为0,当计数到8 时,其输出信号才为1。
③1:2 选择。这是一个信号选择输出的模块,它受计数器输出信号的控制,当输出信号为0 时,进入1:2模块的信号,从端口1 输出,进入RAM1 中;当计数器的输出信号为1 时, 进入1:2 模块的信号, 从端口2输出,进入RAM2 中。也就是说,当EPON 帧经过帧头检测及SLD 定位以后,前导码进入RAM1 中,其他字节进入RAM2 中。
④RAM1 与FiFo 管理1。当计数器的输出信号为0 时,经过非门以后为1,给FiFo 管理1 发送了写使能信号,FiFo 管理1 模块提供写地址, 使从1:2 模块端口1 中输出来的信号按照FiFo 管理1 模块提供的地址写入RAM1 中;由于前导码共8 个字节,所以FiFo管理1 模块仅给提供8 个地址;同时它还受Detect_dv作为读使能信号的控制, 当帧头检测正确时,Detect_dv 为1,就会触发FiFo 管理1 给RAM1 提供读地址, 它所提供的地址就是需要CRC-8 检验的字节,所以其读地址就是从SLD 域到LLID 的地址, 这样要检验的字节就会进入CRC-8 模块进行循环冗余校验。
⑤RAM2 与FiFo 管理2。当计数器的输出为1 时,FiFo 管理2 为进入RAM2 的数据提供了地址,从帧头检测及SLD 定位模块来的数据经1:2 选择模块根据FiFo 管理2 模块提供的地址进入了RAM2。然后根据从LLID 匹配模块得来的控制信号对进入RAM2 的信号进行相应的处理, 当所接收到数据所带的LLID 与OLT 给本地ONU 分配的LLID 不匹配时,FiFo 管理2模块就会根据接收到的是否清除信号,撤销给要进入RAM2 数据的地址,那样,数据就会无法进入RAM2,也就是丢弃了与LLID 不相匹配的数据。当数所接收到的数据LLID 与所分配的LLID 相符时,LLID 匹配模块就会给FiFo 管理2 模块一个写使能信号,FiFo 管理2 模块就会提供所要读取信号的地址。此模块与RAM1与FiFo 管理1 不同的是,RAM2 在读取数据的同时也在写入数据。
⑥CRC-8 校验。此模块主要提供的是对前导码第3 至第7 个字节的循环冗余校验, 主要目的是提高传输系统的通信性能。IEEE802.3ah给出了CRC8 校验的串行算法实现,如图2 所示。
图2 CRC8 校验原理
从图中看出,串行检验算法若要用逻辑语言实现,则需要一个高速的移位寄存器实现GMII总线中的8B数据流检验。因此串行校验算法浪费的资源较大。
为了能够更好地实现CRC-8 检验,我们可以用并行的CRC-8 检验, 该算法的Verilog 实现如下面的程序。d 为GMII总线过来的8b 码,next_cec 为根据前一个8b 码计算出来的校验码。crc_reg 为中间计算结果,初始时crc_reg 等于0。
Assign next_crc[2]=d[5]^d[6]^d[7]^crc_reg[6]^d[1]^crc_reg[0] ^crc_reg[1] ^crc_reg[2];
Assign next_crc[3]=d[4]^crc_reg[3]^d[5]^d[6] ^crc_reg[7]^d[0]^crc_reg[1] ^crc_reg[2];
Assign next_crc [4]= d [4]^crc_reg [3]^d [5]^ crc_reg[4]^crc_reg[2]^ crc_reg[3] ;
Assign next_crc[5]= d[4]^crc_reg[3]^ crc_reg[4] ^crc_reg[5]^d[2] ^d[3] ;
Assign next_crc[6]=crc_reg[4] ^crc_reg[5]^ crc_reg[6]^d[1]^d[2] ^d[3];
Assign next_crc[7]=crc_reg[5] ^crc_reg[6]^ crc_reg[7]^d[0]^d[1] ^d[2];
⑦CRC8 比较。当对前导码的第3、4、5、6、7 字节进行CRC-8 检验之后,得到校验码,用接收数据的校验码与所经过crc-8 模块得到的校验码进行比较,如果两者相同, 表明在数据的传输过程中没有出现错误,证明接收的码组是正确的。这时,其输出信号crc-8_dv 通告所得结果, 使LLID 匹配校验模块对接收数据的LLID 进行校验。
⑧LLID 匹配校验。对接收到的数据LLID 与OLT分配给ONU 的LLID 进行比较,如果两者一致,表明接收到的数据就是属于该ONU 的数据,则启动RAM2的读使能信号,使信号向MAC 层发送;如果两者不一致,则把所得到的接收信号丢弃,在这里我们启动清除信号,停止给进入RAM2 的数据分配地址,数据就会被丢弃。
1.3 工作流程
数据进入帧头检测及SLD 定位模块以后,该模块对进入的数据进行检测,如果接收到的EPON 帧不满足EPON 的帧格式要求,则接收到的数据无效,并且Detect_dv 会给CRC-8 模块一个信号, 通知对方数据为无效信号不用对其进行循环冗余校验;在数据进入帧头检测及SLD 定位模块的同时,RX_dv 作为计数器模块的控制信号控制计数器,1 进2 出模块输出的端口由计数器的输出来控制,前8 个字节也就是前导码进入图中上半部分的RAM1, 以后的字节进入RAM2模块, 在FiFo 管理1 模块的控制之下,RAM1 模块将第3 到7 个字节送到CRC-8 模块,对其进行循环冗余校验,并将数据输出到CRC-8 比较模块与从RAM 经延时模块的RAM 中的第8 个字节进行比较, 检测接收数据计算出来的数据是否与所带的CRC 域的数据是否相匹配, 如果匹配crc-8_dv 将向LLID 匹配校验模块发送使能信号, 让前导码中的LLID 字节与OLT分配的字节相比较, 如果匹配则向控制图中下方RAM2 的FiFo 管理模块发送LLID 有效的信号, 使RAM2 开始读数据;如果不匹配,则向FiFo 管理2 模块发送清除信号, 使RAM2 的写数据无法得到地址,使数据自动清除。
2 RS 层发送部分方案的设计
RS 层发送部分的主要功能主要是给从MAC 层来的数据帧和控制帧添加EPON 帧的前导码。由图2 可知,前导码由8 个字节组成,第3 个字节是定界字符,第6、7 个字节是OLT 分配给ONU 的逻辑链路标志,最后一个字节是第3 字节到第7 字节之间字节的CRC-8 校验码。所以,在RS 层的发送部分中要对第3到第7 字节做CRC-8 校验。其设计方案如图3 所示。
图3 RS 层发送模块的设计方案
在这个RAM 中,我们设计其为8×8 的容量,共有8 个地址,每个地址8bit。在LLID 写使能信号的指示下,LLID 被写入被RAM 管理模块分配的相应的地址中。同时,RAM 中还存在着前导码中除LLID 域和CRC 域的其他字节,在LLID 被写入RAM 后,管理模块把要检验的字节读入到CRC-8 模块中进行CRC-8校验,得到校验码。在CRC-8 校验结束之后,会给管理模块一个指示信号,使其把经CRC-8 校验后的校验码读入RAM 中,等到帧数据到来后,RAM 的读写功能同时开始进行,把EPON 帧传递到物理层。
3 结束语
EPON 是解决宽带接入的有效方案之一, 我们对EPON 系统ONU 端的RS 层进行了研究, 并在千兆以太网的基础之进行了方案设计。理论分析表明此方案可以有效地解决RS 层对接收数据选择过滤以及对发送数据添加EPON 帧头等问题。不足之处在于对接收模块和发送模块的方案设计只是出于理论研究,同时,对EPON 系统的其它层的研究较少,如:物理编码子层、物理媒质相关子层等。下一步的研究工作就是根据以上提出的不足,对物理编码子层以及物理媒质相关子层进行深一步的研究,让EPON 网络能够得到更好的应用。