一种前向纠错解码装置及控制方法

文档序号:7961983阅读:194来源:国知局
专利名称:一种前向纠错解码装置及控制方法
技术领域
本发明涉及信号传输技术,特别涉及一种前向纠错解码装置及控制方法。
背景技术
为了保证信号在信道的传输中尽量避免噪声源对传输信号内容的干扰,通讯传输系统通常都采用了差错控制机制,信源和信宿分别是通讯系统中信号的发送端和接收端,通讯系统的目的就是让信号无差错地从信源传输到信宿。如图1所示,信源产生信号S后需要经过信源编码,而信宿在接收信号前需要对信号进行信源解码,这两个是完全逆向的过程。信源的编码/解码主要完成对信号的加密或者其他的格式转换,它是在信号传输前对数据内容进行的预处理,这部分不涉及差错控制的内容。信道编码、调制器、信道、解调器和信道解码这五个部分才是信号传输中差错控制的关键部分,下面着重介绍。
从图1中可以看到,信号在信道中传输时,不可避免地会受到噪声源的干扰,差错控制的关键是如何使信号在受到噪声干扰后仍然可以恢复出来,通讯系统是通过在信号发送前对其进行信道编码来实现的。简要来说,信道编码是依据传输数据内容计算生成校验码,并将校验码按照一定规律插入传输数据内容中。当经过编码的数据通过调制器、信道和解调器被传送到信号接收端时,信道解码再依据传输数据中的校验码来判断数据内容是否已被噪声源污染,并对错误进行定位和纠正。这样,数据就可以实现低误码率的传输。
在通讯系统中的差错控制分类繁多,其中现在主要应用的有四种FEC(Forward Error Correction,前向纠错)、ARQ(Automatic Error RequestEquipment,自动误差校正)、HEC(Header Error Control,混合纠错方式)、和狭义信息反馈方式IRQ。
在ARQ传输方式下,信号接收端收到信号发送端发来的数据后,通过对校验码计算,可以判断出接收到的数据是否正确,并向ARQ信号发送端反馈判断结果的应答信号。若判断出数据是错误的,则信号发送端重新发送该数据,直到接收端能正确接收数据为止。这种方式比较适合点到点的通讯传输,可以保证传输数据的正确性,但它的连贯性和实时性不高。特别是在噪声背景比较强的环境下,大部分时间被用在数据重传上了;在FEC传输方式下,信号的接收端无需反馈应答信号,接收端可以依据校验码定位传输数据中错误的位置,并对错误做出纠正。这种传输模式没有重传机制,因此,可以保证数据传输的实时性,能进行一个用户到多个用户的同播通信;HEC方式综合了FEC和ARQ的特点,在接收到数据后,接收端首先对接收到的数据进行差错和纠错。若能纠错,则接收数据;若不能纠错,则反馈纠错失败信号,信号发送方重新发送上次的数据。
IRQ方式中信号接收端收到数据后,将数据回送给信号发送端,由发送端比较数据是否正确,并判断是否重新发送。这种方式传输效率最低,应用场合有限。
由于FEC纠错方式能保证数据传输的实时性,因此,在不苛求数据必须全部正确传输并要求实时传输的千兆无源光网络中,采用FEC的差错控制方式。
PON(Passive Optics Network,无源光网络)是指由OLT(Optics LineTerminate,光线路终端)、ONU(Optics Network Unit,光网络单元)以及ODN(Optics Distribution Network,光分配网络)组成的无源电子设备系统。无源是指在OLT和ONU之间的光分配网络没有任何有源电子设备。无源光网络技术是一种点对多点的光纤传输和接入技术,下行采用广播方式、上行采用时分多址方式,可以灵活地组成树型、星型、总线型等拓朴结构,在光分支点不需要节点设备,只需要安装一个简单的光分支器即可,因此具有节省光缆资源、带宽资源共享、节省机房投资、设备安全性高、建网速度快、综合建网成本低等优点。正是由于这些原因,使得PON技术得到了飞速发展。
目前从承载的内容来分类,PON技术主要包括APON(ATM Based PONATM,ATM无源光网络,其中ATM为Asynchronous Transfer Mode,异步传输模式)、EPON(Ethernet Based PON,以太网无源光网络)以及GPON(Gigabit-capable PON,千兆无源光网络)等,如图2所示,为PON网络的典型组网结构示意图,PON网络包括位于局端的OLT和一系列位于用户驻地的ONU,OLT和ONU之间由光纤、无源分光器或耦合器构成的ODN连接,ONU连接TDM(Time Division Multiplex,时分复用)用户(TDM Clients)或数据用户(Data Clients),OLT连接因特网(IPNetworks)、TDM网络(TDM Networks)或视频网络(VIDEO Networks)。
PON系统中约定从OLT到ONU的方向为下行方向,从ONU到OLT的方向为上行方向。在上行方向上,在下行方向上,OLT以帧为单位向ODN中所有的ONU发送数据,且保持8KHz的帧传输周期,不间断的向ODN下发数据,GPON下行帧包括帧头和净荷部分,如图3所示,以第n帧和第n+1帧为例说明。
现有OLT发送下行帧时一般采用FEC的RS(255,239)编码,ONU接收到下行帧后需要进行下行帧的解码和纠错。下行帧中FEC校验码的位置如图4所示,基于RS(255,239)码的FEC校验码是每239字节后面插入16字节的校验码,每255个字节形成一个码字,对于最后一数据段,如果数据不足239个字节,在现有数据字节之前或之后增加0以补齐239个字节,然后插入校验码。例如图4所示,需要在最后一个码字中补入135字节的0。当ONU收到下行帧后,需要将下行帧数据切成以255字节为单位的码字,分别进行解码。解码纠错后,去除其中16字节的校验码,将有效数据组拼在一起就形成ONU需要的帧数据。
仍参阅图4所示,需要注意的是,在每个下行帧的尾数部分,即最后一个码字,若尾数不足255字节时,ONU解码前需要在数据后面插入合适数量的0,使得最后一个码字的大小也等于255字节后完成FEC解码,并利用对应的16字节校验码进行校验。FEC解码完毕后,插入的0需要被再次去除,恢复得到原始的数据。
目前许多厂商都提供了成熟的基于RS(255,239)码的FEC解码模块(FEC_CORE),而这些FEC_CORE都是8位宽,并以255字节码字为单位来进行解码。因此,ONU接收下行帧后,必须将帧数据整理成RS(255,239)的码字,并将255字节长的码字送入FEC_CORE。由于GPON下行数据的传送是不间断的,每帧数据结束后紧跟着下一帧的数据。但是解码时,在每个下行帧的尾数部分都有可能插入额外的0数据,额外插入的0需要占用相应的处理带宽,因此,如何保证下行帧数据能够实时地、不间断地通过FEC_CORE解码是FEC方式能够在GPON网络中应用的关键。

发明内容
本发明提供一种前向纠错解码装置及控制方法,以解决现有前向纠错差错控制方式在实际应用时,解码部分受带宽限制而无法实现实时解码的问题。
为解决上述技术问题,本发明提供如下技术方案一种前向纠错解码装置,包括帧数据切分模块、帧数据重组模块以及并行设置的至少两路FEC解码电路;其中,所述帧数据切分模块连接每一路FEC解码电路的输入端,用于接收基于FEC编码的帧数据,并根据固定字节长度顺序切分每一个帧数据,将切分出的各数据分段根据设定解码顺序分别送入各路FEC解码电路,其中,每一个数据分段中包括一段有效数据和相应的FEC校验码;所述FEC解码电路包括顺次连接的输入缓存模块、FEC解码模块和输出缓存模块,用于对各数据分段进行并行解码,并将解码后的各数据分段输出给帧数据重组模块;所述帧数据重组模块连接每一路解码电路的输出端,用于去除各数据分段中的校验码,并根据切分顺序重组有效数据后再输出。
所述解码装置还包括第一延迟模块,连接在所述帧数据切分模块和帧数据重组模块之间,用于将所述帧数据切分模块发出的帧头指示信息延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据的第一个数据分段所需要的时间。
所述解码装置还包括第二延迟模块;其中连接在所述帧数据切分模块和帧数据重组模块之间,用于将由所述帧数据切分模块在所述帧尾数据分段中插入0的个数延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据帧尾数据分段所需要的时间;或者连接在其中一路解码电路的输入缓存模块和帧数据重组模块之间,用于将该路解码电路在所述帧尾数据分段中插入0的个数延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据帧尾数据分段所需要的时间。
其中,与所述第二延迟模块连接的输入缓存模块所在的一路解码电路为所述帧尾数据分段的专用解码电路。
所述FEC解码模块为8位宽输入/输出;和/或,所述输入缓存模块和输出缓存模块全部为先入先出FIFO存储器。
本发明还提供上述解码装置的第一种控制方法,设置该前向纠错FEC解码装置中的一路FEC解码电路为解码帧尾数据分段的专用解码电路,其它路FEC解码电路为解码非帧尾数据分段的非专用解码电路,所述控制方法包括如下步骤A1、帧数据切分模块接收基于FEC编码的帧数据并根据固定字节长度顺序切分该帧数据,每一个切分出的帧数据分段中包括一段有效帧数据及其对应的FEC校验码,根据切分顺序,帧数据切分模块同步将其中非帧尾数据分段轮流写入非专用解码电路进行解码,将最后的帧尾数据分段写入专用解码电路进行解码;A2、帧数据重组模块按照非帧尾数据分段的解码顺序,依次从非专用解码电路中读取所有解码后的非帧尾数据分段后,再从专用解码电路中读取解码后的帧尾数据分段,根据读取顺序,帧数据重组模块同步去除每一个数据分段的FEC校验码并将有效帧数据分段重组为帧数据后输出。
所述步骤A1中,帧数据切分模块根据帧数据的帧头标识区分相邻两帧数据。
所述步骤A1中,帧数据切分模块每次接收到新的一帧数据时发送帧头指示信息;并将帧头指示信息通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码该帧数据第一个的数据分段所需要的时间;所述步骤A2中,帧数据重组模块接收到帧头指示信息后从对应的解码电路中读取该帧数据解码后的第一个数据分段。
所述步骤A2中,帧数据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,每次接收到所述帧头指示信息时根据所述总字节长度初始化本地字节计数器的计数值;并在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
所述步骤A2中,帧数据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,利用本地字节计数器的计数值区分相邻两帧数据以及帧尾数据分段,具体包括每重组完一个帧数据后根据所述总字节长度初始化本地字节计数器的计数值;每一次在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
当所述帧尾数据分段的字节长度小于所述固定字节长度时,在解码该帧尾数据前,对帧尾数据分段进行插0处理,并在解码后去除插入的全部0,其中,插入0的位置在最后一段有效数据之前或该最后一段有效数据与最后一个FEC校验码之间。具体操作包括以下三种方式所述步骤A1中还包括帧数据切分模块将写入专用解码电路的帧尾数据分段进行插0处理,同时将插入的0的个数通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;以及所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
所述步骤A1中,帧数据切分模块将帧尾数据分段写入专用解码电路的同时,将应该插入的0的个数写入专用解码电路中,由专用解码电路对帧尾数据分段进行插0处理,并且专用解码电路将插入的0的个数通过一个延迟模块再延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
所述步骤A1中还包括帧数据切分模块对帧尾数据分段进行插0处理后再输入专用解码电路中;所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,根据所述帧数据的传输速率确定应该插入的0的个数,并去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
上述方法种,所述帧数据为基于RS(255,239)的FEC编码的帧数据,所述固定字节长度为整数倍的255个字节,其中每一段255个字节中包含的有效数据为239个字节,校验码为16个字节;并且当传输速率为2.5G时,帧尾数据分段中应该插入135个0;当传输速率为1.25G时,帧尾数据分段中应该插入195个0。
本发明提供的第二种前向纠错解码装置的控制方法包括如下步骤B1、帧数据切分模块接收基于FEC编码的帧数据并根据固定字节长度顺序切分该帧数据,每一个切分出的帧数据分段中包括一段有效帧数据及其对应的FEC校验码,根据切分顺序,帧数据切分模块同步将每一个帧数据分段轮流写入各路解码电路进行解码;B2、帧数据重组模块按照对应的解码顺序,依次从各路解码电路中读取各帧数据分段,同步去除每一个数据分段的FEC校验码并将有效帧数据分段重组为帧数据后输出。
该第二种工作模式中,更进一步的处理过程和第一种工作模式类似。
本发明的有益效果如下本发明采用多路FEC_CORE复用的方式,提供了一种并行设置多路FEC_CORE解码电路的FEC解码装置相应的控制方法,利用多路并行解码的方式,消除了利用FEC差错控制方式时,对FEC编码方式传输的帧数据的帧尾数据中额外插入0时的带宽限制问题;本发明技术方案完全满足对GPON网络中不间断传输的下行FEC帧数据的实时性解码要求。


图1为通信系统中的差错控制原理说明示意图;图2为典型PON结构示意图;图3为GPON下行帧结构示意图;图4为GPON下行帧插入FEC校验码的结构示意图;图5、图6为本发明实施例一所述解码装置结构示意图;图7、图8为本发明实施例二所述解码装置结构示意图;图9、图10为本发明实施例三所述解码装置结构示意图。
具体实施例方式
现有RS(255,239)的FEC_CORE都是8位宽输入、8位宽输出,根据GPON下行帧数据的位宽和对帧尾数据进行预处理所需要的额外带宽,本发明采用多路FEC_CORE复用的方式,解码部分的总输入输出位宽应该与传输的帧数据位宽相匹配,下面以具体实施例并结合附图详细说明。
实施例一16位宽下行帧数据实现实时FEC解码时,本发明提供的解码装置结构如图5所示,包括第一路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_0、FEC解码模块FEC_CORE_0和输出缓存模块FEC_BUF_0;第二路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_1、FEC解码模块FEC_CORE_1和输出缓存模块FEC_BUF_1;第三路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_2、FEC解码模块FEC_CORE_2和输出缓存模块FEC_BUF_2;帧数据切分模块FEC_IN,连接在每一个输入缓存模块CW_BUF的输入端;帧数据重组模块FEC_OUT,连接在每一个输出缓存模块FEC_BUF的输出端;第一延迟模块FP_DELAY,连接在FEC_IN和FEC_OUT之间;第二延迟模块NUM_RESIDUE_DELAY,连接在CW_BUF_2和FEC_OUT之间。
其中,每一个缓存模块的具体实现电路很多,只要可以控制其可以根据数据的输入顺序进行输出即可,其中,控制方式最简单的缓存模块是先入先出FIFO(First in First out)存储器。
下面详细说明图5所示解码装置解码一个帧数据的工作过程需要解码的16位宽实时数据从图5中FEC_IN模块右侧输入,依据目前RS(255,239)标准定义,基于RS(255,239)的FEC_CORE模块都是8位宽输入,8位宽输出。可以看到,位宽不同会造成数据流带宽的瓶颈;同时由于下行帧FEC解码尾部会通过插入0来凑齐最后一个255字节长的码字,插入的0同样会造成多余的带宽。
参阅图4所示,每一个帧数据的开始部分携带有帧头标识,FEC_IN可以根据帧头标识区别相邻两帧数据。
为保证FEC解码装置能实时处理输入的数据,本发明采用多路FEC解码复用的方法,图5所示装置复用了三路FEC_CORE,分别是FEC_CORE_0、FEC_CORE_1和FEC_CORE_2,这三路FEC解码都是8位宽输入/输出,三路FEC解码模块配合工作,可以满足下行帧数据的带宽要求。图5所示的FEC解码装置可以有以下两种工作模式一、其中一路FEC解码模块专用于解码帧尾码字,不用于解码非帧尾码字,见FEC_CORE_2参阅图5所示,中间三个FEC_CORE模块完成FEC解码,两侧的FEC_IN和FEC_OUT分别完成解码前的帧数据切分和解码后的帧数据重组的逻辑模块。由于帧数据的传输速度远大于单个FEC_CORE模块的处理速度,因此,本发明采用FIFO的松耦合方式来缓冲速率不匹配带来的影响。
参阅图5所示,每一个FEC_CORE两端连接的CW_BUF缓存模块和FEC_BUF模缓存块都是FIFO存储器,这些FIFO存储器可以吸收解码模块和切分/重组模块之间带宽差,实现帧数据在两种传输速率之间平滑过渡。
参阅图5所示,下行帧数据从FEC_IN右侧输入,FEC_IN通过帧头标识信号,识别出每个下行帧数据的起点,并初始化本地字节计数器开始计数(可以将字节计数器初始化为0进行加法计数,也可以初始化为当前数据传输速率对应的一帧数据的总字节长度值进行减法计数),依次将下行帧数据切成以255字节长为单位的数据段,这些长度为255字节的数据段称为码字。FEC_IN生成这些码字后,再将它们轮流依次写入CW_BUF_0和CW_BUF_1两个FIFO模块中。例如,第一个码字写入CW_BUF_0,第二个码字写入CW_BUF_1,第三个码字再写入CW_BUF_0,以此类推。
写入CW_BUF_0和CW_BUF_1中的码字在FIFO中完成16位到8位宽的转换后,被直接送入FEC_CORE_0和FEC_CORE_1两个解码模块处理。码字从CW_BUF_0/CW_BUF_1模块完成位宽转换到FEC_CORE_0/FEC_CORE_1解码都是不间断的,因此,CW_BUF_0/CW_BUF_1这两个FIFO模块不会被塞满,FEC_IN可以不间断的向CW_BUF_0和CW_BUF_1写入码字,保证下行数据的不间断传输。
如上文所述,下行帧数据通过FEC_IN将帧数据切成一个个码字通过CW_BUF_0和CW_BUF_1两路FIFO分别送入FEC_CORE_0和FEC_CORE_1解码。但是,当切到下行帧数据的尾数部分时,最后的字节不足以组成一个255字节长的码字,因此,FEC_IN需要根据帧尾字节数确定应该插入0的个数,并将插0的个数写入CW_BUF_2,CW_BUF_2完成位宽转换,并在写入FEC_CORE_2解码模块时,在该字节的设定位置(数据字节之前或数据字节和16位校验字节之间)插入0,FEC_CORE_2对帧尾码字进行解码。
这里需要说明的是,当特定速率下,帧尾数据正好是255字节时,不需要进行插0处理。如果需要进行插0处理,FEC_IN可以根据字节计数器的计数值判断是否已经切分出本次解码的帧数据的倒数第二个码字,如果是,则下一个数据分段则为帧尾数据分段。
这里还需要说明的是,根据FIFO的处理能力具体设定切分出的帧数据分段长度,如果FIFO一次可以写入两个或三个码字,则相应可以将切分数据分段的长度设定为510字节或765字节。当需要进行插0处理时,插入0的位置在最后一段有效数据之前或者在最后一段有效数据和最后一个校验码之间。
至此为止,下行帧数据的各数据分段都依次送入FEC_CORE_0、FEC_CORE_1和FEC_CORE_2完成解码了,下面详细论述数据通过三路FEC解码后,再拼成一个完整的下行帧数据的过程。
仍参阅如图5所示,FEC_CORE_0、FEC_CORE_1和FEC_CORE_2解码后的数据分段被分别写入FEC_BUF_0、FEC_BUF_1和FEC_BUF_2。其中FEC_BUF_0、FEC_BUF_1和FEC_BUF_2用于将数据从8位宽转换成16位宽,它的作用与CW_BUF_0、CW_BUF_1、CW_BUF_2正好是逆向的。FEC_BUF_0、FEC_BUF_1和FEC_BUF_2向FEC_OUT输出位宽转换后的数据,由FEC_OUT完成帧数据的重组。
FEC_IN向CW_BUF_0、CW_BUF_1和CW_BUF_2分别写入下行帧数据的码字,同时,将每个下行帧的帧头指示信号fp送入FP_DELAY模块,其中fp是下行帧的帧头指示,fp有效表示下行帧数据的帧起点,在FEC_IN和FEC_OUT之间起到同步控制的作用,虽然FEC_OUT本地字节计数器可以通过每一个帧数据的字节总数划分相邻两个帧数据,但是本地计数一旦出错,将造成不可恢复的错误,因此fp指示的同步控制作用可以避免这种情况的发生。
FP_DELAY的功能就是完成下行帧头指示信号fp的延时,它的延时时钟周期数恰好等于帧数据经过CW_BUF_0和FEC_CORE_0/CW_BUF_1和FEC_CORE_1/CW_BUF_2和FEC_CORE_2解码总共需要的时间。这样,FP_DELAY在延时合适的时钟周期数后,向FEC_OUT输出的下行帧头信号fp恰好可以与解码后的帧数据同步。
FEC_OUT同样根据帧数据的传输速率确定每一帧数据包含的总字节长度,每一次在计数值显示已经接收完总字节长度减去一个固定长度字节时,可以确定应该读取的下一个数据分段为帧尾数据分段。当FEC_OUT收到FP_DELAY模块输出的经过延时后的下行帧头信号fp,即表示下行帧的第一个数据已经完成FEC解码。因此,FEC_OUT收到FP_DELAY输出的下行帧头信号fp后,同步初始化FEC_OUT的本地字节计数器,计数下行帧总字节数,同时从FEC_BUF_0和FEC_BUF_1中轮流读取码字数据,即从FEC_BUF_0中读取第一个码字,然后从FEC_BUF_1中读取第二个码字,再从FEC_BUF_0中读取第三个码字,依此类推。当读出的字节总数等于当前速率对应的帧数据字节数时,FEC_OUT去除这些码字尾部的校验位后,将码字内容依次连接起来,然后去除插入的额外0后就重建出解码后的下行帧数据。
与fp延时模块FP_DELAY相同,FEC_IN可以将插0的个数写入CW_BUF_2,CW_BUF_2输出到NUM_RESIDUE_DELAY模块,NUM_RESIDUE_DELAY是一个延时模块,经过与FP_DELAY相同的延时,NUM_RESIDUE_DELAY将帧尾插0的个数输出给FEC_OUT模块。FEC_OUT以此为依据,将从FEC_BUF_2中读取的帧尾码字中去除相应数目的0,最后得到帧尾的残余字节,作为下行帧的帧尾数据。
如上所述,FEC_OUT将这三路码字读出的数据拼在一起就还原成解码后的下行帧有效数据,从输出端口输出。
NUM_RESIDUE_DELAY模块的作用在于提供了传递每一个帧尾数据中插入的0的个数,但是现有GPON网络主要采用2.5G和1.25G两种速率,2.5G速率下,每一个基于RS(255,239)的FEC编码的下行帧数据包括38880个字节,需要切成153个码字进行解码,每一个帧尾码字需要插入135个0;1.25G速率下,每一个基于RS(255,239)的FEC编码的下行帧数据包括19440个字节,需要切成77个码字进行解码,每一个帧尾码字需要插入195个0。以其他固定长度切分码字,例如两个255字节、即510字节切分码字时,每一个码字中插入0的个数相同。如果当前速率已知,则FEC_OUT可以通过当前速率判断尾帧数据插入0的个数,不需要利用该传递机制从FEC_IN获知每一个帧尾数据中插入0的个数,这种应用场景下可以省略NUM_RESIDUE_DELAY模块。FEC_OUT根据帧数据的传输速率确定每一帧数据包含的总字节长度,利用本地字节计数器的计数值区分相邻两帧数据,具体包括每重组完一个帧数据后清零计数值;每一次在计数值达到一帧数据总字节长度减去一个帧数据分段的固定长度时从专用解码电路中读取帧尾数据分段。
如果在多个速率之间切换,或者速率切换的频率较高,每一个帧尾数据出入0的个数变化较为频繁,则可以在每一次发生速率切换时,执行一次传递机制,FEC_IN将插0的个数写入CW_BUF_2,CW_BUF_2输出到NUM_RESIDUE_DELAY模块,NUM_RESIDUE_DELAY延迟输出给FEC_OUT,更进一步,可以在解码每一个尾帧数据时都执行一次该传递机制,以保证正确重组每一个帧数据。
这里需要说明的是,每一种通信网络中,相应都具备当前速率通知机制,在通信开始或发生速率切换时,将当前速率通知到相应的处理模块。
二、轮流解码模式该工作模式中,FEC_IN将帧数据切成一个个码字通过CW_BUF_0、CW_BUF_1和CW_BUF_2三路FIFO轮流送入FEC_CORE_0、FEC_CORE_1和FEC_CORE_2解码,当切到下行帧数据的尾数部分时,最后的字节不足以组成一个255字节长的码字,由FEC_IN将这个帧尾码字写入CW_BUF_2中,并同时向CW_BUF_2写入插入0的个数,FEC_CORE_2解码帧尾码字。
如前所述,在不需要传递帧尾插入0的个数时,可以约定三路解码电路中的任意一路解码每一个帧数据的第一个码字。但是如果在需要传递机制保证时,结合实际电路结构选择解码第一个码字的解码电路,使得将帧尾码字写入一对应解码电路的同时,将应该插入的0的个数也写入该对应解码电路中,例如图5所示的电路结构中,现有2.5G和1.25G速率下,当约定第二路解码电路、即FEC_CORE_1解码第一个码字时,恰好可以使帧尾码字输入到CW_BUF_2中,并通过该CW_BUF_2连接的第二延迟模块NUM_RESIDUE_DELAY完成插入0的个数的传递。
下行帧的帧头指示fp信号的延迟机制和FEC_OUT端重组帧数据的过程与第一种工作模式完全相同。
另一种解码装置的结构如图6所示,第二延迟模块NUM_RESIDUE_DELAY直接连接在FEC_IN和FEC_OUT之间,帧尾数据分段中插入0的操作在FEC_IN中完成,这时,当下行帧数据到达尾数部分时,最后的剩余字节不足以组成一个255字节长的码字时,FEC_IN需要在最后的帧数据中插入0,将0和帧尾的残余字节共同组成一个码字,并将这个帧尾码字写入CW_BUF_2中。然后将插入0的个数通过NUM_RESIDUE_DELAY延迟发送给FEC_OUT。除插入0的操作在FEC_IN中完成外,其他工作过程和图5所示电路完全相同。
实施例二8位宽下行帧数据实现实时FEC解码时,本发明提供的解码装置结构如图7所示,包括
第一路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_0、FEC解码模块FEC_CORE_0和输出缓存模块FEC_BUF_0;第二路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_1、FEC解码模块FEC_CORE_1和输出缓存模块FEC_BUF_1;帧数据切分模块FEC_IN,连接在每一个输入缓存模块CW_BUF的输入端;帧数据重组模块FEC_OUT,连接在每一个输出缓存模块FEC_BUF的输出端;第一延迟模块FP_DELAY,连接在FEC_IN和FEC_OUT之间;第二延迟模块NUM_RESIDUE_DELAY,连接在CW_BUF_1和FEC_OUT之间。
同理,该解码装置的工作模式和实施例一中所述的工作模式相同,工作过程也完全类似,不同之处在于第一种工作模式下,非帧尾码字的解码工作由FEC_CORE_0独立承担;第二种工作模式下,由两个FEC_CORE轮流解码。
同理,在不需要传递帧尾码字中插入0的个数时,NUM_RESIDUE_DELAY可以省略。如果需要传递帧尾码字中插入0的个数,现有2.5G和1.25G速率时,约定由FEC_CORE_1解码每一帧数据的第一个码字,从而可以使帧尾码字输入到CW_BUF_1中,并通过该CW_BUF_1连接的第二延迟模块NUM_RESIDUE_DELAY完成插入0的个数的传递。
如图8,第二延迟模块NUM_RESIDUE_DELAY也可以连接在FEC_IN和FEC_OUT之间,由FEC_IN具体完成在帧尾数据中插入0的操作。
实施例三32位宽下行帧数据实现实时FEC解码时,本发明提供的解码装置结构如图9所示,共需要五路解码电路协调工作,该解码装置具体包括第一路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_0、FEC解码模块FEC_CORE_0和输出缓存模块FEC_BUF_0;第二路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_1、FEC解码模块FEC_CORE_1和输出缓存模块FEC_BUF_1;第三路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_2、FEC解码模块FEC_CORE_2和输出缓存模块FEC_BUF_2;第四路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_3、FEC解码模块FEC_CORE_3和输出缓存模块FEC_BUF_3;第五路FEC解码电路,其中包括依次连接的输入缓存模块CW_BUF_4、FEC解码模块FEC_CORE_4和输出缓存模块FEC_BUF_4;帧数据切分模块FEC_IN,连接在每一个输入缓存模块CW_BUF的输入端;帧数据重组模块FEC_OUT,连接在每一个输出缓存模块FEC_BUF的输出端;第一延迟模块FP_DELAY,连接在FEC_IN和FEC_OUT之间;第二延迟模块NUM_RESIDUE_DELAY,连接在CW_BUF_4和FEC_OUT之间。
该解码装置的工作模式和实施例一中所述的工作模式相同,工作过程也完全类似,不同之处在于第一种工作模式下,非帧尾码字的解码工作由FEC_CORE_0-FEC_CORE_3共四路解码电路承担;第二种工作模式下,由五路解码电路轮流解码。
同理,在不需要传递帧尾码字中插入0的个数时,NUM_RESIDUE_DELAY可以省略。如果需要传递帧尾码字中插入0的个数,现有2.5G和1.25G速率时,约定由FEC_CORE_3解码每一帧数据的第一个码字,从而可以使帧尾码字输入到CW_BUF_4中,并通过该CW_BUF_3连接的第二延迟模块NUM_RESIDUE_DELAY完成插入0的个数的传递。
如图10所示,第二延迟模块NUM_RESIDUE_DELAY也可以连接在FEC_IN和FEC_OUT之间,由FEC_IN具体完成在帧尾数据中插入0的操作。
综上所述,推广到一般情况,假设需要解码的实时数据位宽为N,FEC_CORE的输入/输出位宽为M,N和M一般都为8的整数倍,则需要复用N÷M+1路解码电路。现有FEC_CORE为8位宽输入/输出,因此一般复用N÷8+1路解码电路即可实现本发明目的。
上述实施例以解码GPON网络的下行帧数据为例进行说明,本发明提供的技术方案同样其他通信机制的网络中,对基于FEC编码方式的上行或下行帧进行解码处理,同样不局限处理基于RS(255,239)编码格式的帧数据。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种前向纠错解码装置,其特征在于,包括帧数据切分模块、帧数据重组模块以及并行设置的至少两路FEC解码电路;其中,所述帧数据切分模块连接每一路FEC解码电路的输入端,用于接收基于FEC编码的帧数据,并根据固定字节长度顺序切分每一个帧数据,将切分出的各数据分段根据设定解码顺序分别送入各路FEC解码电路,其中,每一个数据分段中包括一段有效数据和相应的FEC校验码;所述FEC解码电路包括顺次连接的输入缓存模块、FEC解码模块和输出缓存模块,用于对各数据分段进行并行解码,并将解码后的各数据分段输出给帧数据重组模块;所述帧数据重组模块连接每一路解码电路的输出端,用于去除各数据分段中的校验码,并根据切分顺序重组有效数据后再输出。
2.如权利要求1所述的解码装置,其特征在于,该解码装置还包括第一延迟模块,连接在所述帧数据切分模块和帧数据重组模块之间,用于将所述帧数据切分模块发出的帧头指示信息延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据的第一个数据分段所需要的时间。
3.如权利要求1或2所述的解码装置,其特征在于,该解码装置还包括第二延迟模块;连接在所述帧数据切分模块和帧数据重组模块之间,用于将由所述帧数据切分模块在所述帧尾数据分段中插入0的个数延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据帧尾数据分段所需要的时间。
4.如权利要求1或2所述的解码装置,其特征在于,该解码装置还包括第二延迟模块;连接在其中一路解码电路的输入缓存模块和帧数据重组模块之间,用于将该路解码电路在所述帧尾数据分段中插入0的个数延迟发送给所述帧数据重组模块,延迟时间为解码每一个帧数据帧尾数据分段所需要的时间。
5.如权利要求4所述的解码装置,其特征在于,与所述第二延迟模块连接的输入缓存模块所在的一路解码电路为所述帧尾数据分段的专用解码电路。
6.如权利要求1、2或3所述的解码装置,其特征在于,所述FEC解码模块为8位宽输入/输出;和/或,所述输入缓存模块和输出缓存模块全部为先入先出FIFO存储器。
7.如权利要求1所述的控制方法,其特征在于,所述帧数据为基于RS(255,239)的FEC编码的帧数据,所述固定字节长度为整数倍的255个字节,其中每一段255个字节中包含的有效数据为239个字节,校验码为16个字节。
8.一种如权利要求1所述前向纠错解码装置的控制方法,设置该前向纠错FEC解码装置中的一路FEC解码电路为解码帧尾数据分段的专用解码电路,其它路FEC解码电路为解码非帧尾数据分段的非专用解码电路,所述控制方法包括如下步骤A1、帧数据切分模块接收基于FEC编码的帧数据并根据固定字节长度顺序切分该帧数据,每一个切分出的帧数据分段中包括一段有效帧数据及其对应的FEC校验码,根据切分顺序,帧数据切分模块同步将其中非帧尾数据分段轮流写入非专用解码电路进行解码,将最后的帧尾数据分段写入专用解码电路进行解码;A2、帧数据重组模块按照非帧尾数据分段的解码顺序,依次从非专用解码电路中读取所有解码后的非帧尾数据分段后,再从专用解码电路中读取解码后的帧尾数据分段,根据读取顺序,帧数据重组模块同步去除每一个数据分段的FEC校验码并将有效帧数据分段重组为帧数据后输出。
9.如权利要求8所述的方法,其特征在于,所述方法还包括所述步骤A1中,帧数据切分模块根据帧数据的帧头标识区分相邻两帧数据。
10.如权利要求9所述的方法,其特征在于,所述步骤A1中,帧数据切分模块每次接收到新的一帧数据时发送帧头指示信息;并将帧头指示信息通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码该帧数据第一个的数据分段所需要的时间;所述步骤A2中,帧数据重组模块接收到帧头指示信息后从对应的解码电路中读取该帧数据解码后的第一个数据分段。
11.如权利要求10所述的方法,其特征在于,所述步骤A2中,帧数据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,每次接收到所述帧头指示信息时根据所述总字节长度初始化本地字节计数器的计数值;并在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
12.如权利要求9所述的方法,其特征在于,所述步骤A2中,帧数据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,利用本地字节计数器的计数值区分相邻两帧数据以及帧尾数据分段,具体包括每重组完一个帧数据后根据所述总字节长度初始化本地字节计数器的计数值;每一次在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
13.如权利要求11或12所述的控制方法,其特征在于,当所述帧尾数据分段的字节长度小于所述固定字节长度时,在解码该帧尾数据前,对帧尾数据分段进行插0处理,并在解码后去除插入的全部0,其中,插入0的位置在最后一段有效数据之前或该最后一段有效数据与最后一个FEC校验码之间。
14.如权利要求12所述的控制方法,其特征在于,所述步骤A1中还包括帧数据切分模块将写入专用解码电路的帧尾数据分段进行插0处理,同时将插入的0的个数通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;以及所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
15.如权利要求13所述的控制方法,其特征在于,所述步骤A1中,帧数据切分模块将帧尾数据分段写入专用解码电路的同时,将应该插入的0的个数写入专用解码电路中,由专用解码电路对帧尾数据分段进行插0处理,并且专用解码电路将插入的0的个数通过一个延迟模块再延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
16.如权利要求13所述的控制方法,其特征在于,所述步骤A1中还包括帧数据切分模块对帧尾数据分段进行插0处理后再输入专用解码电路中;所述步骤A2中还包括帧数据重组模块从专用解码电路中读取解码后的帧尾数据分段,根据所述帧数据的传输速率确定应该插入的0的个数,并去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
17.如权利要求12-16任意之一所述的控制方法,其特征在于,所述帧数据为基于RS(255,239)的FEC编码的帧数据,所述固定字节长度为整数倍的255个字节,其中每一段255个字节中包含的有效数据为239个字节,校验码为16个字节;并且当传输速率为2.5G时,帧尾数据分段中应该插入135个0;当传输速率为1.25G时,帧尾数据分段中应该插入195个0。
18.一种如权利要求1所述前向纠错解码装置的控制方法,所述控制方法包括如下步骤B1、帧数据切分模块接收基于FEC编码的帧数据并根据固定字节长度顺序切分该帧数据,每一个切分出的帧数据分段中包括一段有效帧数据及其对应的FEC校验码,根据切分顺序,帧数据切分模块同步将每一个帧数据分段轮流写入各路解码电路进行解码;B2、帧数据重组模块按照对应的解码顺序,依次从各路解码电路中读取各帧数据分段,同步去除每一个数据分段的FEC校验码并将有效帧数据分段重组为帧数据后输出。
19.如权利要求18所述的方法,其特征在于,所述方法还包括所述步骤B1中,帧数据切分模块根据帧数据的帧头标识区分相邻两帧数据。
20.如权利要求19所述的方法,其特征在于,所述步骤B1中,帧数据切分模块每次接收到新的一帧数据时发送帧头指示信息;并将帧头指示信息通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码该帧数据第一个数据分段所需要的时间;所述步骤B2中,帧数据重组模块接收到帧头指示信息后从对应的解码电路中读取该帧数据解码后的第一个数据分段。
21.如权利要求20所述的方法,其特征在于,所述步骤B2中,帧据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,每次接收到所述帧头指示信息时根据所述总字节长度初始化本地字节计数器的计数值;每一次在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
22.如权利要求19所述的方法,其特征在于,所述步骤B2中,帧数据重组模块根据所述帧数据的传输速率确定每一帧数据包含的总字节长度,利用本地字节计数器的计数值区分相邻两帧数据以及帧尾数据分段,具体包括每重组完一个帧数据后根据所述总字节长度初始化本地字节计数器的计数值;每一次在计数值显示已经接收完所述总字节长度减去一个固定长度个字节时,确定应该读取的下一个数据分段为帧尾数据分段。
23.如权利要求21或22所述的控制方法,其特征在于,当帧尾数据分段的字节长度小于所述固定字节长度时,在解码该帧尾数据前,对帧尾数据分段进行插0处理,并在解码后去除插入的全部0,其中,插入0的位置在最后一段有效数据之前或该最后一段有效数据与最后一个FEC校验码之间。
24.如权利要求23所述的控制方法,其特征在于,所述步骤B1中还包括帧数据切分模块将写入对应解码电路的帧尾数据分段进行插0处理,同时将插入的0的个数通过一个延迟模块延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;以及所述步骤B2中还包括帧数据重组模块从对应解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
25.如权利要求23所述的控制方法,其特征在于,所述步骤B1中,帧数据切分模块将帧尾数据分段写入对应解码电路的同时,将应该插入的0的个数写入对应解码电路中,由对应解码电路对帧尾数据分段进行插0处理,并且对应解码电路将插入的0的个数通过一个延迟模块再延迟发送给帧数据重组模块,延迟时间为解码帧尾数据分段所需要的时间;所述步骤B2中还包括帧数据重组模块从对应解码电路中读取解码后的帧尾数据分段,并依据所述插入0的个数,去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
26.如权利要求23所述的控制方法,其特征在于,所述步骤B1中还包括帧数据切分模块对帧尾数据分段进行插0处理后再输入对应解码电路中;所述步骤B2中还包括帧数据重组模块从对应解码电路中读取解码后的帧尾数据分段,根据所述帧数据的传输速率确定应该插入的0的个数,并去除该帧尾数据分段中插入的全部0后再重组所述帧数据。
27.如权利要求23-25任意之一所述的控制方法,其特征在于,所述帧数据为基于RS(255,239)的FEC编码的帧数据,所述固定字节长度为整数倍的255个字节,其中每一段255个字节中包含的有效数据为239个字节,校验码为16个字节;并且当传输速率为2.5G时,帧尾数据分段中应该插入135个0;当传输速率为1.25G时,帧尾数据分段中应该插入195个0。
全文摘要
本发明涉及信号传输技术,特别涉及一种前向纠错解码装置及控制方法,以解决现有前向纠错差错控制方式在实际中应用时,解码部分受带宽限制的问题。本发明提供的前向纠错解码装置包括前向纠错FEC解码电路和帧数据切分模块和帧数据重组模块,FEC解码电路并行设置为至少两路;其中,帧数据切分模块接收基于FEC编码方式传输的帧数据并根据固定字节长度顺序切分每一个帧数据,切分出的各数据分段分别送入各路FEC解码电路并行解码,然后由帧数据重组模块重组所述帧数据。本发明技术方案消除了FEC差错控制方式时的带宽限制问题,可以应用在GPON网络中,实时地对不间断发送的下行帧数据进行解码。
文档编号H04L1/00GK1968036SQ20061008515
公开日2007年5月23日 申请日期2006年5月31日 优先权日2006年5月31日
发明者潘文, 王万万, 熊焰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1