1.一种XGPON系统中ONU端的XGEM组帧装置,其特征在于:包括8个相同的、相互独立的、并行的TCONT XGEM组帧单元和8个TCONT XGEM组帧单元共用的TCONT FIFO缓存,TCONT FIFO缓存包括一个数据帧缓存和一个数据帧描述缓存,8个TCONT XGEM组帧单元共用读写信号,数据帧缓存用于缓存XGPON系统输入的数据帧,以32字节为一个块进行存储,每个TCONT XGEM组帧单元分别占用该数据帧缓存和数据帧描述缓存的一个地址段,通过划分不同的缓存地址域来固定分配每个TCONT XGEM组帧单元的可用缓存块;数据帧描述缓存内包括帧头描述缓存和帧尾描述缓存,帧头描述缓存用于缓存数据帧的帧头描述信息,帧头描述信息包括端口地址号PORT-ID索引、数据包的长度、CRC重算指示和帧头写地址;帧尾描述缓存用于缓存数据帧的帧尾描述信息,帧尾描述信息包括帧结束地址、帧尾错误指示和最后一个数据块的无效字节个数,帧尾错误指示包括帧长错误、乱序错误、由缓存已满造成的不完整帧错误;
每个独立的TCONT XGEM组帧单元均包括顺次相连的TCONT FIFO写控制电路、TCONT FIFO缓存块和XGEM组帧电路,TCONT FIFO缓存块包括数据帧缓存块、帧头描述缓存块和帧尾描述缓存块,其中:
TCONT FIFO写控制电路,用于:接收XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述,将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块;
TCONT FIFO缓存块,用于:根据先进先出的原则,将写入的数据帧和数据帧描述分别存储到TCONT编号对应地址的数据帧缓存块和数据帧描述缓存块中;
XGEM组帧电路,用于:对OLT下发的送入TCONT FIFO缓存块读侧的带宽分配信息进行检测,一旦检测到OLT下发带宽分配,就从数据帧缓存块和数据帧描述缓存块中读取相应的数据帧和数据帧描述,按照XGPON协议要求的格式,组成XGEM帧,发送给OLT,同时输出数据包释放信号,用于向OLT上报动态带宽报告。
2.如权利要求1所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述TCONT FIFO写控制电路完成以下功能:帧头帧尾纠错;产生数据帧缓存满告警、乱序错误告警以及帧长错误告警;生成帧头描述信息,并写入帧头描述缓存块;将数据帧写入数据帧缓存块;在写侧的帧尾到来时,将帧结束地址、错误告警和无效字节个数写入帧尾描述缓存块中。
3.如权利要求2所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述TCONT FIFO写控制电路的实现过程如下:上行数据及该数据对应的TCONT ID、该数据的帧头指示、帧尾指示、帧长和CRC重算指示进入XGEM组帧装置,TCONT FIFO写控制电路在帧头到来时根据XGPON系统输入的相关信息将PORT-ID索引、数据包的长度、CRC重算指示等写入到帧头描述缓存块中,同时在将数据写入数据帧缓存的过程中判断是否产生数据帧缓存满告警、乱序错误告警以及帧长错误告警,当帧尾到来时,将帧结束地址、错误告警和无效字节个数写入到帧尾描述缓存块中,缓存中写入的数据及描述信息等待XGEM组帧电路读取;
当一个数据帧帧头到来时,如果缓存已满,则该帧将被丢弃;当数据帧帧头已经写入缓存,帧尾还未写入时,如果缓存已满,则将错误指示写入帧尾描述缓存块中,以便XGEM组帧电路计算该数据帧写入缓存的实际长度。
4.如权利要求1所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述XGEM组帧电路完成以下功能:从帧头描述缓存块、帧尾描述缓存块读出数据帧的帧头帧尾信息;
依据分配结构信息和数据帧长信息,进行XGEM组帧,生成XGEM帧的帧头信息:PORT-ID、帧净荷长度指示PLI、密钥索引Key Index,并对帧头进行HEC校验计算,生成13bit的HEC校验码,组成XGEM帧头;依据PLI长度信息,从帧数据帧缓存中读出帧数据,填充到XGEM帧的净荷域中;进行CRC重算,如果CRC重算使能,对以太网数据帧进行CRC重算,替换以太网帧的CRC字节。
5.如权利要求4所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述XGEM组帧电路的实现过程包括以下步骤:
先判断组帧类型,分配XGEM帧占用的带宽,当带宽分配指示信号为1时,剩余带宽=OLT本次带宽分配值,判断剩余带宽是否≤4字节,如果是,则产生超短空闲帧指示,分配超短空闲帧4字节长度,剩余带宽=0;否则,判断剩余带宽是否<16字节,如果4字节<剩余带宽<16字节,则产生空闲帧指示,分配空闲帧的净荷长度=带宽分配-8字节,剩余带宽=0;如果剩余带宽≥16字节,则继续判断剩余帧长是否=0,如果是,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断是否存在数据帧缓存读空指示,如果是,则产生空数据指示,数据帧尾指示,数据帧净荷长度为8,剩余带宽=当前剩余带宽-16字节;否则,继续判断当前数据帧是否已完全写入数据帧缓存;
如果当前数据帧已完全写入数据帧缓存,判断剩余帧长是否>剩余带宽-8字节,如果是,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节;
如果当前数据帧只有部分写入数据帧缓存,则判断已写入数据帧缓存的数据帧长是否<剩余带宽-8字节,如果已写入数据帧缓存的数据帧长≥剩余带宽-8字节,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;如果已写入数据帧缓存的数据帧长<剩余带宽-8字节,则判断写入数据帧缓存的数据帧长是否<预先设定的发送门限,如果是,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断剩余帧长是否>剩余带宽-8字节,如果是,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节。
6.如权利要求5所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述XGEM组帧电路的实现过程还包括以下步骤:组帧类型判断完毕后发送XGEM帧,首先发送XGEM帧头,XGEM帧头由帧净荷长度指示PLI、密钥索引Key Index、PORT-ID、分片帧帧尾指示LF和HEC校验字节共8个字节组成,根据帧类型指示和帧净荷长度指示,对帧头信息进行HEC校验计算,生成13bit的HEC校验码,组成XGEM帧头;如果帧类型指示为超短空闲帧,则无帧头,发送四个字节全零数据;如果帧类型指示为空闲帧,则置Key Index=0,PORT-ID=16’hffff,LF=1;如果帧类型指示为数据帧,则根据PORT-ID索引查表得出加密使能,PORT-ID分别写入帧头信息中去;然后根据帧类型指示发送数据帧:如果帧类型指示为空闲帧,则根据空闲帧填充字节配置发送;如果帧类型指示为数据帧,则读取数据帧缓存中的数据帧并发送,发送数据时读取数据帧描述缓存块中的CRC重算使能,判断CRC重算使能为
1还是为0,如果CRC重算使能为1,则对数据帧进行CRC重算;如果CRC重算使能为0,则进行透传。
7.如权利要求1至6中任一项所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述XGEM组帧装置是一个跨时钟域的装置,TCONT FIFO缓存块的写侧及写侧输入信号属于系统时钟域,TCONT FIFO缓存块的读侧及读侧输入信号属于PON口发送时钟域。
8.如权利要求1至6中任一项所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述上行方向的数据帧和数据帧描述共用一套数据总线,分别进入XGEM组帧装置的8个TCONT XGEM组帧单元中,每个时刻进入的每个数据块只属于一个TCONT XGEM组帧单元;
OLT通过一套总线给每个分配地址分配带宽信息,每个时刻分配的带宽信息也只属于一个TCONT XGEM组帧单元,各个TCONT XGEM组帧单元重组的数据流按照时间先后串行,输出符合XGPON协议要求的XGEM帧。
9.如权利要求1至6中任一项所述的XGPON系统中ONU端的XGEM组帧装置,其特征在于:所述在每个TCONT XGEM组帧单元的带宽分配未到之前,如果出现多个TCONT XGEM组帧单元同时读取缓存数据的现象,TCONT FIFO缓存块优先处理当前有带宽分配的TCONT XGEM组帧单元的读请求。
10.基于权利要求1至9中任一项所述XGEM组帧装置的XGPON系统中ONU端的XGEM组帧方法,其特征在于,包括以下步骤:
A、XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述进入XGEM组帧装置后,XGEM组帧装置将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块;当出现帧错误指示时,写入缓存的数据帧实际长度根据当前数据帧的帧尾在数据帧缓存中的地址与上一数据帧的帧尾在数据帧缓存中的地址来计算;
B、当检测到OLT分配给XGEM组帧装置中的某个TCONT XGEM组帧单元的上行带宽时,判断数据帧缓存块和数据帧描述缓存块是否为空,根据数据帧缓存块和数据帧描述缓存块的相关信息,计算出待发送数据帧的剩余长度:如果帧头描述信息未采集,剩余长度=数据帧的长度;如果帧头描述信息已采集而帧尾描述信息未采集,剩余长度=数据帧的长度-已发送的长度;当OLT没下发带宽分配且帧头描述缓存块不为空时,读取首个帧头描述,以便提前计算剩余帧长,等待带宽分配;当XGEM组帧装置分配到了带宽时,在上一XGEM帧未发送完时提前读取新的帧头描述;给当前有带宽分配的TCONT XGEM组帧单元打上读优先级最高的标记,当检测到其他TCONT XGEM组帧单元的优先级最高的标记时,当前TCONT XGEM组帧单元等到下一拍再读取数据帧描述缓存块;
C、根据下发带宽的字节长度、数据帧的剩余长度和预先设定的发送门限进行组帧,组帧时要求数据帧的长度≥16字节,4字节<OLT下发带宽<16字节时,发送空闲帧;如果剩余带宽≤4字节,则产生超短空闲帧指示;如果剩余帧长+8字节<带宽分配,则该数据帧在本次分配中发送完毕;反之,则该数据帧被分片,分片长度=带宽分配;
D、如果判定数据帧缓存块为空,则根据XGPON协议要求发送空闲帧;如果数据帧还没完全写入缓存且写入缓存的数据没有达到发送门限,则根据XGPON协议要求发送空闲帧;
数据帧缓存块中的数据长度<发送门限时,等待缓存写入数据;
E、如果判定数据帧缓存块不为空且写入缓存的数据已达到发送门限,则读取缓存数据,并按照XGEM帧格式组帧、发送;如果数据帧已完全写入缓存,则正常组帧发送;如果数据帧部分写入缓存,缓存中的数据内容已被发送完毕,而没有新的数据内容写入,出现了读空现象,则根据读空现象出现的位置来计算数据帧长度,如果读空现象出现在数据帧分片的第一片,根据XGPON协议4字节补齐,填充数据内容为0;如果读空现象出现在数据帧分片的第二片,则根据XGPON协议发送最小长度的数据帧,即PLI为8字节的数据帧,填充数据内容为0。
XGPON系统中ONU端的XGEM组帧装置及组帧方法\n技术领域\n[0001] 本发明涉及XGPON(XG-Passive Optical Network,万兆吉比特无源光网络)的接入领域,特别是涉及一种XGPON系统中ONU(Optical Network Unit,光网络单元)端的XGEM(XGPON Encapsulation_Method,XGPON封装模式)组帧装置及组帧方法。\n背景技术\n[0002] 宽带光接入技术提高和改变着信息传送和分享的速度、效率、内容和模式,从现在的GPON(Gigabit-Capable Passive Optical Network,吉比特无源光网络)到下一代接入网是一个平滑渐进的上升过程,XGPON以其独特的经济高效方式满足了10Gbps(Gigabit per second,单位,表示每秒1024兆位)传输、向后兼容和接入扩展等需求。\n[0003] 在XGPON系统的光网络单元ONU中,上行数据发送速率是根据OLT(Optical Line Termination,光线路终端)下发带宽来决定的。运营商目前比较注重最大效率的利用带宽,由于入口数据与出口数据速率存在偏差,带宽利用率在90%以上的情况下,容易出现错包、丢包的现象,甚至出现在错误状态不能恢复正常的现象,稳定性较差,因此XGPON难以大规模投入商用。如何在保证数据业务稳定的情况下最充分的利用带宽,是XGPON系统的光网络单元领域目前亟待解决的技术难题。\n发明内容\n[0004] 本发明的目的是为了克服上述背景技术的不足,提供一种XGPON系统中ONU端的XGEM组帧装置及组帧方法,能够减少由缓存空满造成的丢包、错包等现象,实现在保证数据业务稳定的情况下最充分的利用带宽。\n[0005] 本发明提供的XGPON系统中ONU端的XGEM组帧装置,包括8个相同的、相互独立的、并行的TCONT XGEM组帧单元和8个TCONT XGEM组帧单元共用的TCONT FIFO缓存,TCONT FIFO缓存包括一个数据帧缓存和一个数据帧描述缓存,8个TCONT XGEM组帧单元共用读写信号,数据帧缓存用于缓存XGPON系统输入的数据帧,以32字节为一个块进行存储,每个TCONT XGEM组帧单元分别占用该数据帧缓存和数据帧描述缓存的一个地址段,通过划分不同的缓存地址域来固定分配每个TCONT XGEM组帧单元的可用缓存块;数据帧描述缓存内包括帧头描述缓存和帧尾描述缓存,帧头描述缓存用于缓存数据帧的帧头描述信息,帧头描述信息包括端口地址号PORT-ID索引、数据包的长度、CRC重算指示和帧头写地址;帧尾描述缓存用于缓存数据帧的帧尾描述信息,帧尾描述信息包括帧结束地址、帧尾错误指示和最后一个数据块的无效字节个数,帧尾错误指示包括帧长错误、乱序错误、由缓存已满造成的不完整帧错误;\n[0006] 每个独立的TCONT XGEM组帧单元均包括顺次相连的TCONT FIFO写控制电路、TCONT FIFO缓存块和XGEM组帧电路,TCONT FIFO缓存块包括数据帧缓存块、帧头描述缓存块和帧尾描述缓存块,其中:\n[0007] TCONT FIFO写控制电路,用于:接收XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述,将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块;\n[0008] TCONT FIFO缓存块,用于:根据先进先出的原则,将写入的数据帧和数据帧描述分别存储到TCONT编号对应地址的数据帧缓存块和数据帧描述缓存块中;\n[0009] XGEM组帧电路,用于:对OLT下发的送入TCONT FIFO缓存块读侧的带宽分配信息进行检测,一旦检测到OLT下发带宽分配,就从数据帧缓存块和数据帧描述缓存块中读取相应的数据帧和数据帧描述,按照XGPON协议要求的格式,组成XGEM帧,发送给OLT,同时输出数据包释放信号,用于向OLT上报动态带宽报告。\n[0010] 在上述技术方案的基础上,所述TCONT FIFO写控制电路完成以下功能:帧头帧尾纠错;产生数据帧缓存满告警、乱序错误告警以及帧长错误告警;生成帧头描述信息,并写入帧头描述缓存块;将数据帧写入数据帧缓存块;在写侧的帧尾到来时,将帧结束地址、错误告警和无效字节个数写入帧尾描述缓存块中。\n[0011] 在上述技术方案的基础上,所述TCONT FIFO写控制电路的实现过程如下:上行数据及该数据对应的TCONT ID、该数据的帧头指示、帧尾指示、帧长和CRC重算指示进入XGEM组帧装置,TCONT FIFO写控制电路在帧头到来时根据XGPON系统输入的相关信息将PORT-ID索引、数据包的长度、CRC重算指示等写入到帧头描述缓存块中,同时在将数据写入数据帧缓存的过程中判断是否产生数据帧缓存满告警、乱序错误告警以及帧长错误告警,当帧尾到来时,将帧结束地址、错误告警和无效字节个数写入到帧尾描述缓存块中,缓存中写入的数据及描述信息等待XGEM组帧电路读取;当一个数据帧帧头到来时,如果缓存已满,则该帧将被丢弃;当数据帧帧头已经写入缓存,帧尾还未写入时,如果缓存已满,则将错误指示写入帧尾描述缓存块中,以便XGEM组帧电路计算该数据帧写入缓存的实际长度。\n[0012] 在上述技术方案的基础上,所述XGEM组帧电路完成以下功能:从帧头描述缓存块、帧尾描述缓存块读出数据帧的帧头帧尾信息;依据分配结构信息和数据帧长信息,进行XGEM组帧,生成XGEM帧的帧头信息:PORT-ID、帧净荷长度指示PLI、密钥索引Key Index,并对帧头进行HEC校验计算,生成13bit的HEC校验码,组成XGEM帧头;依据PLI长度信息,从帧数据帧缓存中读出帧数据,填充到XGEM帧的净荷域中;进行CRC重算,如果CRC重算使能,对以太网数据帧进行CRC重算,替换以太网帧的CRC字节。\n[0013] 在上述技术方案的基础上,所述XGEM组帧电路的实现过程包括以下步骤:\n[0014] 先判断组帧类型,分配XGEM帧占用的带宽,当带宽分配指示信号为1时,剩余带宽=OLT本次带宽分配值,判断剩余带宽是否≤4字节,如果是,则产生超短空闲帧指示,分配超短空闲帧4字节长度,剩余带宽=0;否则,判断剩余带宽是否<16字节,如果4字节<剩余带宽<16字节,则产生空闲帧指示,分配空闲帧的净荷长度=带宽分配-8字节,剩余带宽=0;如果剩余带宽≥16字节,则继续判断剩余帧长是否=0,如果是,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断是否存在数据帧缓存读空指示,如果是,则产生空数据指示,数据帧尾指示,数据帧净荷长度为8,剩余带宽=当前剩余带宽-16字节;否则,继续判断当前数据帧是否已完全写入数据帧缓存;\n[0015] 如果当前数据帧已完全写入数据帧缓存,判断剩余帧长是否>剩余带宽-8字节,如果是,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节;\n[0016] 如果当前数据帧只有部分写入数据帧缓存,则判断已写入数据帧缓存的数据帧长是否<剩余带宽-8字节,如果已写入数据帧缓存的数据帧长≥剩余带宽-8字节,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;如果已写入数据帧缓存的数据帧长<剩余带宽-8字节,则判断写入数据帧缓存的数据帧长是否<预先设定的发送门限,如果是,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断剩余帧长是否>剩余带宽-8字节,如果是,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节。\n[0017] 在上述技术方案的基础上,所述XGEM组帧电路的实现过程还包括以下步骤:组帧类型判断完毕后发送XGEM帧,首先发送XGEM帧头,XGEM帧头由帧净荷长度指示PLI、密钥索引Key Index、PORT-ID、分片帧帧尾指示LF和HEC校验字节共8个字节组成,根据帧类型指示和帧净荷长度指示,对帧头信息进行HEC校验计算,生成13bit的HEC校验码,组成XGEM帧头;如果帧类型指示为超短空闲帧,则无帧头,发送四个字节全零数据;如果帧类型指示为空闲帧,则置Key Index=0,PORT-ID=16’hffff,LF=1;如果帧类型指示为数据帧,则根据PORT-ID索引查表得出加密使能,PORT-ID分别写入帧头信息中去;然后根据帧类型指示发送数据帧:如果帧类型指示为空闲帧,则根据空闲帧填充字节配置发送;如果帧类型指示为数据帧,则读取数据帧缓存中的数据帧并发送,发送数据时读取数据帧描述缓存块中的CRC重算使能,判断CRC重算使能为1还是为0,如果CRC重算使能为1,则对数据帧进行CRC重算;如果CRC重算使能为0,则进行透传。\n[0018] 在上述技术方案的基础上,所述XGEM组帧装置是一个跨时钟域的装置,TCONT FIFO缓存块的写侧及写侧输入信号属于系统时钟域,TCONT FIFO缓存块的读侧及读侧输入信号属于PON口发送时钟域。\n[0019] 在上述技术方案的基础上,所述上行方向的数据帧和数据帧描述共用一套数据总线,分别进入XGEM组帧装置的8个TCONT XGEM组帧单元中,每个时刻进入的每个数据块只属于一个TCONT XGEM组帧单元;OLT通过一套总线给每个分配地址分配带宽信息,每个时刻分配的带宽信息也只属于一个TCONT XGEM组帧单元,各个TCONT XGEM组帧单元重组的数据流按照时间先后串行,输出符合XGPON协议要求的XGEM帧。\n[0020] 在上述技术方案的基础上,所述在每个TCONT XGEM组帧单元的带宽分配未到之前,如果出现多个TCONT XGEM组帧单元同时读取缓存数据的现象,TCONT FIFO缓存块优先处理当前有带宽分配的TCONT XGEM组帧单元的读请求。\n[0021] 本发明还提供一种基于上述XGEM组帧装置的XGPON系统中ONU端的XGEM组帧方法,包括以下步骤:\n[0022] A、XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述进入XGEM组帧装置后,XGEM组帧装置将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块;当出现帧错误指示时,写入缓存的数据帧实际长度根据当前数据帧的帧尾在数据帧缓存中的地址与上一数据帧的帧尾在数据帧缓存中的地址来计算;\n[0023] B、当检测到OLT分配给XGEM组帧装置中的某个TCONT XGEM组帧单元的上行带宽时,判断数据帧缓存块和数据帧描述缓存块是否为空,根据数据帧缓存块和数据帧描述缓存块的相关信息,计算出待发送数据帧的剩余长度:如果帧头描述信息未采集,剩余长度=数据帧的长度;如果帧头描述信息已采集而帧尾描述信息未采集,剩余长度=数据帧的长度-已发送的长度;当OLT没下发带宽分配且帧头描述缓存块不为空时,读取首个帧头描述,以便提前计算剩余帧长,等待带宽分配;当XGEM组帧装置分配到了带宽时,在上一XGEM帧未发送完时提前读取新的帧头描述;给当前有带宽分配的TCONT XGEM组帧单元打上读优先级最高的标记,当检测到其他TCONT XGEM组帧单元的优先级最高的标记时,当前TCONT XGEM组帧单元等到下一拍再读取数据帧描述缓存块;\n[0024] C、根据下发带宽的字节长度、数据帧的剩余长度和预先设定的发送门限进行组帧,组帧时要求数据帧的长度≥16字节,4字节<OLT下发带宽<16字节时,发送空闲帧;\n如果剩余带宽≤4字节,则产生超短空闲帧指示;如果剩余帧长+8字节<带宽分配,则该数据帧在本次分配中发送完毕;反之,则该数据帧被分片,分片长度=带宽分配;\n[0025] D、如果判定数据帧缓存块为空,则根据XGPON协议要求发送空闲帧;如果数据帧还没完全写入缓存且写入缓存的数据没有达到发送门限,则根据XGPON协议要求发送空闲帧;数据帧缓存块中的数据长度<发送门限时,等待缓存写入数据;\n[0026] E、如果判定数据帧缓存块不为空且写入缓存的数据已达到发送门限,则读取缓存数据,并按照XGEM帧格式组帧、发送;如果数据帧已完全写入缓存,则正常组帧发送;如果数据帧部分写入缓存,缓存中的数据内容已被发送完毕,而没有新的数据内容写入,出现了读空现象,则根据读空现象出现的位置来计算数据帧长度,如果读空现象出现在数据帧分片的第一片,根据XGPON协议4字节补齐,填充数据内容为0;如果读空现象出现在数据帧分片的第二片,则根据XGPON协议发送最小长度的数据帧,即PLI为8字节的数据帧,填充数据内容为0。\n[0027] 与现有技术相比,本发明的优点如下:\n[0028] 本发明能够减少由缓存空满造成的丢包、错包等现象,实现在保证数据业务稳定的情况下最充分的利用带宽。\n附图说明\n[0029] 图1是本发明实施例中XGEM组帧装置的整体结构框图。\n[0030] 图2是本发明实施例中TCONT XGEM组帧单元的信号流向示意图。\n[0031] 图3是本发明实施例中TCONT XGEM组帧单元的结构框图。\n具体实施方式\n[0032] 下面结合附图及具体实施例对本发明作进一步的详细描述。\n[0033] 参见图1所示,本发明实施例提供一种XGPON系统中ONU端的XGEM组帧装置,包括8个相同的、相互独立的、并行的TCONT(Transmission Container,传输容器)XGEM组帧单元和8个TCONT XGEM组帧单元共用的TCONT FIFO缓存,TCONT FIFO缓存包括一个数据帧缓存和一个数据帧描述缓存,TCONT是XGPON协议中规定的一种传输容器,TCONT FIFO缓存是用来实现TCONT的实际电路,8个TCONT XGEM组帧单元的结构、实现功能均相同,均独立完成数据的适配与重组。数据帧缓存用于缓存XGPON系统输入的数据帧,以32字节为一个块进行存储,每个TCONT XGEM组帧单元分别占用该数据帧缓存和数据帧描述缓存的一个地址段,通过划分不同的缓存地址域来固定分配每个TCONT XGEM组帧单元的可用缓存块,8个TCONT XGEM组帧单元共用读写信号。数据帧描述缓存内包括帧头描述缓存和帧尾描述缓存,帧头描述缓存用于缓存数据帧的帧头描述信息,帧头描述信息包括PORT-ID(端口地址号)索引、数据包的长度、CRC(Cyclic Redundancy Check,循环冗余校验)重算指示和帧头写地址,帧尾描述缓存用于缓存数据帧的帧尾描述信息,帧尾描述信息包括帧结束地址、帧尾错误指示和最后一个数据块的无效字节个数,帧尾错误指示包括帧长错误、乱序错误、由缓存已满造成的不完整帧错误。\n[0034] 参见图1和图2所示,每个独立的TCONT XGEM组帧单元均包括顺次相连的TCONT FIFO(First Input First Output,先入先出队列)写控制电路、TCONT FIFO缓存块和XGEM组帧电路,参见图3所示,TCONT FIFO缓存块包括数据帧缓存块、帧头描述缓存块和帧尾描述缓存块。\n[0035] TCONT FIFO写控制电路,用于:接收XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述,将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块,图1中的箭头指示方向表示上行数据的流向。\n[0036] TCONT FIFO缓存块,用于:根据先进先出的原则,将写入的数据帧和数据帧描述分别存储到TCONT编号对应地址的数据帧缓存块和数据帧描述缓存块中。\n[0037] XGEM组帧电路(TCONT FIFO缓存块读侧的电路),用于:对OLT下发的送入TCONT FIFO缓存块读侧的带宽分配信息进行检测,一旦检测到OLT下发带宽分配,XGEM组帧电路就从数据帧缓存块和数据帧描述缓存块中读取相应的数据帧和数据帧描述,按照XGPON协议要求的格式,组成XGEM帧,发送给OLT,同时输出数据包释放信号,用于向OLT上报DBRu(Dynamic Bandwidth Report upstream,动态带宽报告)。\n[0038] 需要注意的是,XGEM组帧装置是一个跨时钟域的装置,参见图2所示,TCONT FIFO缓存块的写侧及写侧输入信号属于系统时钟域,TCONT FIFO缓存块的读侧及读侧输入信号属于PON口发送时钟域。\n[0039] 上行方向的数据帧和数据帧描述共用一套数据总线,分别进入XGEM组帧装置的8个TCONT XGEM组帧单元中,每个时刻进入的每个数据块只属于一个TCONT XGEM组帧单元,因此不存在写冲突。OLT通过一套总线给每个ALLOC_ID(分配地址)分配带宽信息,每个时刻分配的带宽信息也只属于一个TCONT XGEM组帧单元,各个TCONT XGEM组帧单元重组的数据流按照时间先后串行,输出符合XGPON协议要求的XGEM帧,因此不存在冲突。\n[0040] 为了提高效率,在每个TCONT XGEM组帧单元的带宽分配未到之前,需要提前读取一帧数据做好准备,因此在读侧引入了避免读冲突的机制:如果出现多个TCONT XGEM组帧单元同时读取缓存数据的现象,TCONT FIFO缓存块优先处理当前有带宽分配的TCONT XGEM组帧单元的读请求。\n[0041] 下面以单个TCONT XGEM组帧单元为例进行详细说明。\n[0042] 参见图3所示,TCONT FIFO写控制电路主要完成以下功能:\n[0043] (1)帧头帧尾纠错。\n[0044] (2)产生数据帧缓存满告警、乱序错误告警以及帧长错误告警。\n[0045] (3)生成帧头描述信息,并写入帧头描述缓存块。\n[0046] (4)将数据帧写入数据帧缓存块。\n[0047] (5)在写侧的帧尾到来时,将帧结束地址、错误告警和无效字节个数写入帧尾描述缓存块中。\n[0048] 具体的实现过程如下:\n[0049] 上行数据及该数据对应的TCONT ID、该数据的帧头指示、帧尾指示、帧长和CRC重算指示进入XGEM组帧装置,TCONT FIFO写控制电路在帧头到来时根据XGPON系统输入的相关信息将PORT-ID索引、数据包的长度、CRC重算指示等写入到帧头描述缓存块中,同时在将数据写入数据帧缓存的过程中判断是否产生数据帧缓存满告警、乱序错误告警以及帧长错误告警,当帧尾到来时,将帧结束地址、错误告警和无效字节个数写入到帧尾描述缓存块中,缓存中写入的数据及描述信息等待XGEM组帧电路读取。\n[0050] 需要特别指出的是,当一个数据帧帧头到来时,如果缓存已满,则该帧将被丢弃;\n当数据帧帧头已经写入缓存,帧尾还未写入时,如果缓存已满,则将错误指示写入帧尾描述缓存块中,以便XGEM组帧电路计算该数据帧写入缓存的实际长度。\n[0051] 本发明实施例的关键是XGEM组帧电路(TCONT FIFO的读控制电路),XGEM组帧电路主要完成以下功能:\n[0052] (1)从帧头描述缓存块、帧尾描述缓存块读出数据帧的帧头帧尾信息。\n[0053] (2)依据ALLOC分配结构信息和数据帧长信息,进行XGEM组帧,生成XGEM帧的帧头信息:PORT-ID、PLI(Payload Length Indicator,帧净荷长度指示)、Key Index(密钥索引),并对帧头进行HEC(Hybrid Error Correction,混合纠错)校验计算,生成13bit的HEC校验码,组成XGEM帧头。\n[0054] (3)依据PLI长度信息,从帧数据帧缓存中读出帧数据,填充到XGEM帧的PAYLOAD(净荷)域中。\n[0055] (4)进行CRC重算,如果CRC重算使能,需要对以太网数据帧进行CRC重算,替换以太网帧的CRC字节。\n[0056] 具体的实现过程如下:\n[0057] 先判断组帧类型,分配XGEM帧占用的带宽,当带宽分配指示信号为1时,剩余带宽=OLT本次带宽分配值,判断剩余带宽是否≤4字节,如果是,则产生超短空闲帧(short idle)指示,分配超短空闲帧4字节长度,剩余带宽=0;否则,判断剩余带宽是否<16字节,如果4字节<剩余带宽<16字节,则产生空闲帧(idle)指示,由于XGEM帧头长8字节,分配空闲帧的净荷长度=带宽分配-8字节,剩余带宽=0;如果剩余带宽≥16字节,则继续判断剩余帧长是否=0,如果是,说明当前数据帧缓存中没有数据可以发送,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断是否存在数据帧缓存读空指示,如果是,说明该数据帧已发送部分数据,未发送的数据还没写入缓存,出现了读空现象,则产生空数据指示,数据帧尾指示,数据帧净荷长度为8,剩余带宽=当前剩余带宽-16字节;否则,说明当前数据帧缓存中有数据可以发送,继续判断当前数据帧是否已完全写入数据帧缓存。\n[0058] 如果当前数据帧已完全写入数据帧缓存,判断剩余帧长是否>剩余带宽-8字节,如果是,说明剩余带宽不够发送完整的数据帧,该数据帧被分片,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,说明当前数据帧可以完全发送,则产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节。\n[0059] 如果当前数据帧只有部分写入数据帧缓存,则判断已写入数据帧缓存的数据帧长是否<剩余带宽-8字节,如果已写入数据帧缓存的数据帧长≥剩余带宽-8字节,说明剩余带宽不够发送完整的数据帧,该数据帧被分片,产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;如果已写入数据帧缓存的数据帧长<剩余带宽-8字节,则判断写入数据帧缓存的数据帧长是否<预先设定的发送门限,如果是,则产生空闲帧指示,空闲帧净荷长度=0,剩余带宽=当前剩余带宽-8字节;否则,继续判断剩余帧长是否>剩余带宽-8字节,如果是,说明剩余带宽不够发送完整的数据帧,该数据帧被分片,则产生数据帧指示和数据帧分片指示,数据帧净荷长度为剩余带宽-8字节,剩余带宽=0;否则,说明当前数据帧可以完全发送,产生数据帧指示和数据帧尾指示,数据帧净荷长度为剩余帧长,剩余带宽=当前剩余带宽-剩余帧长-8字节。\n[0060] 组帧类型判断完毕后发送XGEM帧,首先发送XGEM帧头,XGEM帧头由PLI、Key Index(密钥索引)、PORT-ID、LF(Last fragment,分片帧帧尾指示)和HEC校验字节共8个字节组成,根据帧类型指示和帧净荷长度指示,对帧头信息进行HEC校验计算,生成13bit的HEC校验码,组成XGEM帧头。如果帧类型指示为超短空闲帧,则无帧头,发送四个字节全零数据;如果帧类型指示为空闲帧,则置Key Index=0,PORT-ID=16’hffff,LF=1;如果帧类型指示为数据帧,则根据PORT-ID索引查表得出加密使能,PORT-ID分别写入帧头信息中去。然后根据帧类型指示发送数据帧:如果帧类型指示为空闲帧,则根据空闲帧填充字节(默认为0)配置发送;如果帧类型指示为数据帧,则读取数据帧缓存中的数据帧并发送,发送数据时读取数据帧描述缓存块中的CRC重算使能,判断CRC重算使能为1还是为0,如果CRC重算使能为1,则对数据帧进行CRC重算;如果CRC重算使能为0,则进行透传。\n[0061] 基于上述XGEM组帧装置,本发明实施例还提供一种XGPON系统中ONU端的XGEM组帧方法,包括以下步骤:\n[0062] A、XGPON系统送入的TCONT编号、上行方向的数据帧和数据帧描述进入XGEM组帧装置后,XGEM组帧装置将数据帧写入该TCONT编号对应地址的数据帧缓存块,同时将数据帧描述写入该TCONT编号对应地址的数据帧描述缓存块;当出现帧错误指示时,帧头描述缓存块中的数据包长度已失效,不能指示写入缓存的数据帧实际长度,写入缓存的数据帧实际长度应该根据当前数据帧的帧尾在数据帧缓存中的地址与上一数据帧的帧尾在数据帧缓存中的地址来计算。\n[0063] B、当检测到OLT分配给XGEM组帧装置中的某个TCONT XGEM组帧单元的上行带宽时,判断数据帧缓存块和数据帧描述缓存块是否为空,根据数据帧缓存块和数据帧描述缓存块的相关信息,计算出待发送数据帧的剩余长度:如果帧头描述信息未采集,表示完整的数据帧还没有发送出去,剩余长度=数据帧的长度;如果帧头描述信息已采集而帧尾描述信息未采集,表示数据帧已经被分片,在上次带宽分配中发送了一部分,剩余长度=数据帧的长度-已发送的长度;当OLT没下发带宽分配且帧头描述缓存块不为空时,读取首个帧头描述,以便提前计算剩余帧长,等待带宽分配;当XGEM组帧装置分配到了带宽时,在上一XGEM帧未发送完时提前读取新的帧头描述。为避免读冲突,给当前有带宽分配的TCONT XGEM组帧单元打上读优先级最高的标记,当检测到其他TCONT XGEM组帧单元的优先级最高的标记时,当前TCONT XGEM组帧单元就等到下一拍再读取数据帧描述缓存块。\n[0064] C、根据下发带宽的字节长度、数据帧的剩余长度和预先设定的发送门限进行组帧,组帧时要求数据帧的长度≥16字节(含8字节长的XGEM帧头),4字节<OLT下发带宽<16字节时只能发送空闲帧,为了最大限度的利用带宽,在发送空闲帧时,发送最小长度的空闲帧,即只有XGEM帧头,PLI=0的空闲帧;如果剩余带宽≤4字节,则产生超短空闲帧指示;如果剩余帧长+8字节<带宽分配,则该数据帧在本次分配中发送完毕;反之,则该数据帧被分片,分片长度=带宽分配。\n[0065] D、如果判定数据帧缓存块为空,则根据XGPON协议要求发送空闲帧;如果数据帧还没完全写入缓存且写入缓存的数据没有达到发送门限,则根据XGPON协议要求发送空闲帧。\n[0066] 注意:数据帧缓存块中的数据长度>发送门限时,才允许组帧发送,数据帧缓存块中的数据长度<发送门限时,等待缓存写入数据。通过调节发送门限的值,可以避免或减少在入口速率<出口速率的情况下出现的读空现象。\n[0067] E、如果判定数据帧缓存块不为空且写入缓存的数据已达到发送门限,则读取缓存数据,并按照XGEM帧格式组帧、发送;如果数据帧已完全写入缓存,则正常组帧发送;如果数据帧部分写入缓存,缓存中的数据内容已被发送完毕,而没有新的数据内容写入,出现了读空现象,为了保证带宽不被浪费,数据帧长度不再等于数据帧实际长度,而是根据读空现象出现的位置来计算。如果读空现象出现在数据帧分片的第一片,根据XGPON协议4字节补齐,填充数据内容为0;如果读空现象出现在数据帧分片的第二片,则根据XGPON协议发送最小长度的数据帧,即PLI为8字节的数据帧,填充数据内容为0。\n[0068] 以上所述的XGPON系统中ONU端的XGEM组帧方法已经在我公司自主研发的XGPON ONU的FPGA验证板上得到验证,能够实现。\n[0069] 本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型属在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。\n[0070] 说明书中未详细描述的内容为本领域技术人员公知的现有技术。
法律信息
- 2017-08-29
专利权的转移
登记生效日: 2017.08.09
专利权人由武汉飞思灵微电子技术有限公司变更为烽火通信科技股份有限公司
地址由430074 湖北省武汉市东湖开发区关东工业园烽火路光通信大楼产业大楼二楼变更为430000 湖北省武汉市东湖高新技术开发区高新四路6号
专利权人变更为武汉飞思灵微电子技术有限公司
- 2017-06-27
专利权的转移
登记生效日: 2017.06.07
专利权人由烽火通信科技股份有限公司变更为武汉飞思灵微电子技术有限公司
地址由430074 湖北省武汉市东湖开发区关东科技园东信路5号变更为430074 湖北省武汉市东湖开发区关东工业园烽火路光通信大楼产业大楼二楼
- 2015-09-16
- 2013-07-17
实质审查的生效
IPC(主分类): H04L 12/951
专利申请号: 201310080961.3
申请日: 2013.03.14
- 2013-06-12
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2009-04-15
|
2008-11-08
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |