通用成帧协议中检错纠错的装置及其控制方法

文档序号:7917657阅读:122来源:国知局

专利名称::通用成帧协议中检错纠错的装置及其控制方法
技术领域
:本发明涉及一种通用成帧协议中检错纠错的装置及其控制方法。
背景技术
:随着网络的迅猛发展,以IP业务为代表的数据报业务也取得了突飞猛进的发展,并在现在的网络业务中占据了主要市场。为了保证数据报在网络传播中的可靠性,我们采取了一些编码技术。其中,循环冗余校验CRC(CyclicRedundancyCheck,CRC)是最常用的一种编码技术。IP业务在进入同步数字体系SDH(SynchronousDigitalHierarchy,SDH)主干网传输之前,需要进行封装以解决主干网恒定速率与IP业务的突发性之间的矛盾。通用成帧协议GFP(GenericFramingProcedure,GFP)就是其中的一种封装技术。GFP帧是由核心报头和净荷组成。核心报头是由四个八比特组组成,其中前两个八比特组是净荷长度(PayloadLengthIndicator,PLI),后两位是净荷长度的CRC-16差错校验码(cHEC)。在GFP接收端,对GFP帧进行帧定位的时候,需要对核心报头进行检错和单比特纠错。实际中,对IP数据报进行GFP封装/解封装时,整个系统的处理速度要求很快,传统的串行处理是很难达到要求的。有一种快速CRC算法,可以得到CRC校验码,从而为后面的检错纠错准备数据。这种算法属于GFP帧捕获电路的一部分。假设GFP核心报头中PLI的值为015"14013...^...卬。,其中,a,(02"15)为二进制数0或1,其二进制多项式为D(x)="l5x15+ai4Jc'4+L+"^+"。。核心报头差错校验部分(cHEC)的生成多项式为G(jc)=x16+;c12+;c5+1。当初始化值为0时,可以得到计算CRC校验码的余式为i(x)="[x16D(x)/G(x)]。该式中,re[]为求余运算。进一步展开,可以得到下式—x'6(《)/G^c)]+re[(《)/,+L十re[;c1V力/G(;c)〗+L十,e[x1V卿当^=0时,/"e[jc16(a,x')/G(;c)]:=0;当^=1时,re[x"(a,x')/G(;c)]的值随着i的不同而不同;由于i的取值有16种可能,因而,"[,(",x')/G(;c)]也有16种取值。这样可以通过查表,再经过模2加(异或)运算,就可以计算出PLI值的CRC校验码。在GFP接收端进行差错检验时,要对16位的PLI值进行CRC校验(采用上述快速CRC算法),我们假设所获得的CRC校验码为C『。同时,在接收到的GFP核心报头中,还有一个核心报头校验码,随数据一起传过来,属于GFP帧的一部分,即核心报头差错控制部分(cHEC),我们假设为C^。比较C^和C^,如果二者相等,说明核心报头在传输中没有出错;如果不同,则表明核心报头在传输中出现了错误。当二者不匹配时,可能是核心报头中多位比特出现错误也有可能是其中的某一位出现错误。当某一位出现错误的时,这种错误又分为两种情况一种是PLI值的某一位出现错误,另一种是核心报头校验码的某一位出现错误。如果PLI值的某一位出现了错误,还需要将这一位检测并纠正过来。如果是核心报头校验码的某一位出现了错误,只需要检测出来就可以了,并不需要纠正。假设设C^-C,④Ck,其中C加为检错校验码。根据上述所的,当C化和C^二者相等时,检错校验码C^的值应该为零;当C^和C^二者不相等时,检错校验码C^的值不为零。通过对快速CRC算法的分析可以得出,PLI值中的每一位都与检错校验码C^中的某几位有关系。比如,PLI值的最低位(bit0)与检错校验码Cw中的bitO,bit5和bitl2有关,如果PLI值的最低位(b加)出现了跳变,那么检错校验码C^中的bitO,bit5和bitl2都会出现反转。这样,就可以总结出PLI值中各位出现错误后,检错校验码C^中的哪几位会反转。则Q^与PLI值各位的关系如表1所示。表l:C^,与PLI各位变化的关系(16进制表示)<table>tableseeoriginaldocumentpage5</column></row><table>如果是核心报头校验码中的某一位出现了错误,那么C^的值(只可能是2",0S"S15)与核心报头校验码中错误的位相对应。例如,如果Q^的十六进制数为0001,即第1位(bit0)为1,则代表C^的第1位(bitO)出现了错误;如果C^的十六进制数为0400,即第11位(bit10)为l,那么C^的第11位(bit10)出现了错误。如果在核心报头出现了单比特错误,贝IJCC,K0C^的值是各不相同的。例如,如果是PLI值的第8位(bit7)出现了错误,那么C^,的值是0x9188,如果要对PLI值进行纠错的话,只需要将PLI值与0x0080进行异或,就可以得到正确的PLI值检错纠错电路的设计过程中纠错码的提取,采用査找表法。硬件实现选用ROM,把Cw当作寻址地址,ROM中存放的是纠错码。例如,当单比特错误出现在PLI值的bit7时,通过C^,值0x9188可以寻找到相应错误和纠错码,即0x0080。只要将PLI值与该纠错码进行异或运算,就可得到正确的PLI值,完成了单比特纠错。对于cHEC字段的错误,是可以忽略的。所以如果是cHEC字段的单比特错误或者多比特的错误,纠错码为0x0000。综上所述,寻址地址C^,是16位二进制码,则要求ROM的大小应为65536x16,可见,硬件资源消耗太大。为了解决这一问题,有人提出了前八位进行寻址,则需要一个256x16的ROM。由此可见、对硬件资源的消耗依然很大。如果能够找到一种新的、更节省资源的方法,将会对通用成帧协议中检错纠错机制带来有益效果。
发明内容本发明的目的就是为了解决目前的GFP帧中核心报头与净荷报头信息差错控制的问题,基于CRC-16的差错控制技术是GFP帧中核心报头与净荷报头信息差错控制的核心,针对基于CRC-16的单比特检错与纠错进行设计,提出了一种快速、高效、简捷的CRC-16纠错检错装置及其控制方法,该装置的系统设计思路简洁、硬件要求简单、适合于高速EoS系统。为实现上述目的,本发明采用了如下技术方案通用成帧协议中检错纠错的装置,其特征在于该装置包括检错模块和纠错模块;其中检错模块和纠错模块通过数据线连接;检错模块接收CRC校验码和核心报头校验码,输出纠错码和无差错指示信号,其中纠错码发送给纠错模块;纠错模块接收纠错码和净荷长度值PLI,输出纠错后正确的净荷长度值PLI以及单比特差错信号。所述检错模块包括异或运算器A、输入寄存器、无差错检查模块、四个ROM、流水线寄存器、与运算器、输出寄存器;其中,异或运算器A与输入寄存器连接;无差错检査模块和四个ROM同时与输入寄存器和流水线寄存器进行连接;与运算器连接流水线寄存器和输出寄存器;输出寄存器和流水线寄存器连接。所述纠错模块包括延时模块、异或运算器B以及单比特检错模块;其中,异或运算器B与输出寄存器和延时模块连接;输出寄存器和单比特检错模块连接。所述异或运算器A接收CRC校验码和核心报头校验码,异或运算器A的输出端与输入寄存器连接,输出检错校验码。所述输入寄存器的输出端与无差错检查模块以及四个ROM连接;无差错检査模块以及四个ROM的输出端与流水线寄存器连接。所述流水线寄存器的纠错码输出端连接到与运算器;流水线寄存器的无差错指示信号输出端连接到输出寄存器;与运算器的纠错码输出端与输出寄存器连接。所述输出寄存器的纠错码输出端与异或运算器B和单比特检错模块连接;输出寄存器输出无差错指示信号;单比特检错模块输出单比特差错信号。所述异或运算器B与延时模块的输出端连接。所述输入寄存器、流水线寄存器、输出寄存器组成三阶流水线。所述的通用成帧协议中检错纠错的装置的控制方法,该控制方法包括以下步骤Stepl:在GFP接收端将核心报头中净荷长度值PLI和核心报头校验码C^分别发送给延时模块和异或运算器A,并将由净荷长度值PLI计算所得出的CRC校验码C『发送给异或运算器A;Step2:异或运算器A将核心报头校验码C^和CRC校验码C^进行异或运算,得到检错校验码Ce,rt,并将检错校验码Cerc,发送给输入寄存器;Step3:输入寄存器将检错校验码C^分成四个独立的寻址地址,分别发送给四个ROM;同时输入寄存器将检错校验码C^发送给无差错检査模块;Step4:无差错检査模块检测有无比特错误,产生无差错指示信号,并将无差错指示信号传送给流水线寄存器;同时四个ROM根据寻址地址,采用査找表法产生四个纠错码,并将纠错码传送给流水线寄存器;Step5:流水线寄存器将四个纠错码发送给与运算器,与运算器将四个纠错码进行与运算后得到纠错码,并将纠错码发送给输出寄存器;同时流水线寄存器将无差错指示信号发送给输出寄存器;Step6:输出寄存器将纠错码分别发送给异或运算器B和单比特检错模块;Step7:异或运算器B将纠错码与经过延时模块处理过的净荷长度值PLI进行异或运算,输出正确的净荷长度值PLI;同时,单比特检错模块对纠错码进行判断,输出单比特错误信号;Step8:该检错纠错的装置将无差错指示信号和单比特错误信号传送给控制帧定位装置状态的控制器。本发明设计的通用成帧协议中检错纠错的装置,包括输入寄存器、流水线寄存器、输出寄存器、与运算器、四个ROM、两个异或运算器、单比特检错模块、无差错检查模块以及延时模块;其中,异或运算器A与输入寄存器连接;无差错检查模块和四个ROM都与输入寄存器和流水线寄存器进行连接;与运算器连接流水线寄存器和输出寄存器;输出寄存器和流水线寄存器连接;异或运算器B与输出寄存器和延时模块连接;输出寄存器和单比特检错模块连接。输入寄存器、流水线寄存器、输出寄存器组成三阶流水线;无差错检査模块和单比特检错模块产生无差错指示信号和单比特错误信号。本发明在表1的数据的基础上,对纠错码的提取,采用査找表法。硬件实现选用ROM,把C^,当作寻址地址,ROM中存放的是纠错码。寻址地址C^,是16位二进制码,该装置选用了四个16xl6的ROM。这样,每个的寻址地址为4位,也就是将C^分成四个独立的寻址地址。ROM—1的寻址地址是C^[3:0],即Cerct的第1到4位;ROM—2的寻址地址是C^,[7:4],即C^,的第4到8位;ROM—3的寻址地址是C^,[11:8],即C;re,的第9到12位;ROM一4的寻址地址是C^[15:12],即C^的第13到16位。最后,把从ROM中得到的纠错码相与,这样就得到了最终的纠错码。以下是各ROM内的纠错码列表-表2:四个16xl6ROM的寻址信息(16进制表示)<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>上表中纠错码的确定与表1的原理一样,不过由于寻址地址的限制,使得纠错码较为复杂。通常,可以通过将四个ROM的纠错码进行相与,则可以求出最终的纠错码。这样,将对ROM的需求量从65536xl6减小到16x16,大大节省了资源。本发明的有益效果是1、本发明对传统的以逻辑电路为主的GFP检错纠错模块在架构上进行了创新,采用了只读存储器来实现设计,并且对纠错码提取采用了分布式并行计算的方式。2、本发明适应了GFP高速数据率的应用场合,可以工作在较高的频率上,通过在XilinxVertexIIProXC2VP40系列的FPGA实现,可以得到该模块可以工作在274MHz的频率上,可以满足工作需求。3、本发明整个设计摆脱了传统的复杂逻辑电路设计,使得电路结构简单,占用面积较少,在XilinxVertexIIProXC2VP40系列的FPGA实现结果表明,本装置只占用了该FPGAl9392个Slice中的61个,从而达到节省芯片成本的作用。4、本发明由于采用了4个16xl6只读存储器的分布式存储方式,这种方式比只采用一个大的等存储量(16x64)的只读存储器在功耗上要降低70%,而且由分布式带来的逻辑电路十分简单,仅是与门逻辑,并采用了流水线结构,截断了长的数据路径,降低了时钟周期内的充放电电容,从而使得其工作电压可以降低。所以,本发明的功耗也是非常低。这些特点都可以降低整个GFP芯片或者EOS芯片的成本,提高产品在市场上的竞争力。说明书附图图1为本发明的硬件结构示意图。其中,1、异或运算器A;2、输入寄存器;3、无差错检査模块;4、ROM;5、流水线寄存器;6、与运算器;7、输出寄存器;8、延时模块;9、异或运算器B;10、单比特纠错模块。具体实施例方式下面结合附图与实施例对本发明作进一步说明。在图1中,通用成帧协议中检错纠错的装置,该装置包括输入寄存器2、流水线寄存器5、输出寄存器7、与运算器6、四个ROM4、异或运算器A1、异或运算器B9、单比特检错模块10、无差错检査模块3以及延时模块8;其中,异或运算器A1与输入寄存器2连接;无差错检査模块3和四个ROM4都与输入寄存器2和流水线寄存器5进行连接;与运算器6连接流水线寄存器5和输出寄存器7;输出寄存器7和流水线寄存器5连接;异或运算器B9与输出寄存器7和延时模块8连接;输出寄存器7和单比特检错模块10连接。所述异或运算器Al接收CRC校验码和核心报头校验码,异或运算器Al的输出端与输入寄存器2连接,输出检错校验码。所述输入寄存器2的输出端与无差错检査模块3以及四个ROM4连接;无差错检査模块3以及四个ROM4的输出端与流水线寄存器5连接。所述流水线寄存器5的纠错码输出端连接到与运算器6;流水线寄存器5的无差错指示信号输出端连接到输出寄存器7;与运算器6的纠错码输出端与输出寄存器7连接。所述输出寄存器7的纠错码输出端与异或运算器B9和单比特检错模块连接;输出寄存器输出无差错指示信号;单比特检错模块输出单比特差错信号。所述异或运算器B9与延时模块8的输出端连接。所述输入寄存器2、流水线寄存器5、输出寄存器7组成三阶流水线。该控制方法包括以下步骤Stepl:在GFP接收端将核心报头中净荷长度值PLI和核心报头校验码CL分别发送给延时模块8和异或运算器Al,并将由净荷长度值PLI计算所得出的CRC校验码(乙发送给异或运算器Al;Step2:异或运算器A1将核心报头校验码C^和CRC校验码C^进行异或运算,得到检错校验码c;re,,并将检错校验码Cerc,发送给输入寄存器2;Step3:输入寄存器2将检错校验码C^分成四个独立的寻址地址,分别发送给四个ROM4;同时输入寄存器2将检错校验码C^发送给无差错检查模块3;Step4:无差错检查模块3检测有无比特错误,产生无差错指示信号,并将无差错指示信号传送给流水线寄存器5;同时四个ROM4根据寻址地址,采用查找表法产生四个纠错码,并将纠错码传送给流水线寄存器5;Step5:流水线寄存器5将四个纠错码发送给与运算器6,与运算器6将四个纠错码进行与运算后得到纠错码,并将纠错码发送给输出寄存器7;同时流水线寄存器5将无差错指示信号发送给输出寄存器7;Step6:输出寄存器7将纠错码分别发送给异或运算器B9和单比特检错模块10;Step7:异或运算器B9将纠错码与经过延时模块8处理过的净荷长度值PLI进行异或运算,输出正确的净荷长度值PLI;同时,单比特检错模块10对纠错码进行判断,输出单比特错误信号。Step8:该检错纠错的装置将无差错指示信号和单比特错误信号传送给控制帧定位装置状态的控制器。本发明设计过程中对纠错码的提取,采用査找表法。硬件实现选用ROM,把C^当作寻址地址,ROM中存放的是纠错码。寻址地址C^,是16位二进制码,该装置选用了四个16x16的ROM。这样,每个的寻址地址为4位,也就是将C『,分成四个独立的寻址地址。ROM—1的寻址地址是C^,[3:0],即C^,的第1到4位;ROM—2的寻址地址是C^,[7:4],即C^,的第4到8位;ROM—3的寻址地址是C^[11:8],即C6TC,的第9到12位;ROM_4的寻址地址是C^[15:12],即C^,的第13到16位。最后,把从ROM中得到的纠错码相与,这样就得到了最终的纠错码。例如,如果PLI值的第8位(bit7)出现了单比特错误,那么C^,的值是0x9188,那么它在ROM—1的寻址地址是1000,ROM_l反馈回来的纠错码是0x8088,表示可能出现PLI单比特错误的位数;同理,可得到RON^2中的寻址地址是1000,纠错码是0x0084。ROM_3中的寻址地址是0001,纠错码是0x0088。ROM_4中的寻址地址是1001,纠错码是0x0080。这样,与运算器6将这四个纠错码相与,即得到最后的纠错码0x0080,其含义是核心报头PLI值的bit7出现了单比特错误,纠错码是0x0080。这个纠错码发送给异或运算器B,将经过延时模块处理过的PLI值与纠错码0x0080做异或运算,就能得到最终的正确的PLI值。同时,由于C^,的值是0x9188,而且C^,的值会被发送给无差错检査模块。无差错检査模块对C^,进行判断后,发现核心报头中存在错误,就发送无差错指示信号"0"。随后无差错指示信号经过传输后,会被发送给控制帧定位装置状态的控制器。同时纠错码0x0080会被发送给单比特检错模块。单比特检错模块对纠错码进行判断后,会给控制帧定位装置状态的控制器发送单比特检错信号"1"。状态控制器会根据这两个信号进行装置状态的切换。如果C^和C^二者相等时,检错校验码C^的值应该为0x0000,并会被发送给无差错检查模块无差错检查模块对C^进行判断后,发现核心报头没有错误,或者C^,有且仅有一位为1,即核心报头校验码有错误,就发送无差错指示信号"1"。随后无差错指示信号经过传输后,会被发送给控制帧定位装置状态的控制器。同时,C^的值应该为0x0000会被发送给四个ROM并得到四个纠错码。与运算器6将这四个纠错码相与,即得到最后的纠错码0x0000,其含义是核心报头PLI值没有出现单比特错误。这个纠错码0x0000会被发送给异或运算器B,将经过延时模块处理过的PLI值与纠错码0x0000做异或运算,能得到与原PLI值相同的新的PLI值,作为最后正确的PLI值。同时,纠错码0x0000会被发送给单比特检错模块。单比特检错模块对纠错码进行判断后,会给控制帧定位装置状态的控制器发送单比特检错信号"0"。状态控制器会根据这两个信号进行装置状态的切换。权利要求1.通用成帧协议中检错纠错的装置,其特征在于该装置包括检错模块和纠错模块;其中检错模块和纠错模块通过数据线连接;检错模块接收CRC校验码和核心报头校验码,输出纠错码和无差错指示信号,其中纠错码发送给纠错模块;纠错模块接收纠错码和净荷长度值PLI,输出纠错后正确的净荷长度值PLI以及单比特差错信号。2.根据权利要求1所述的通用成帧协议中检错纠错的装置,其特征在于所述检错模块包括异或运算器A(1)、输入寄存器(2)、无差错检查模块(3)、四个ROM(4)、流水线寄存器(5)、与运算器(6)、输出寄存器(7);其中,异或运算器A(1)与输入寄存器(2)连接;无差错检查模块(3)和四个ROM(4)同时与输入寄存器(2)和流水线寄存器(5)进行连接;与运算器(6)连接流水线寄存器(5)和输出寄存器(7);输出寄存器(7)和流水线寄存器(5)连接。3.根据权利要求1所述的通用成帧协议中检错纠错的装置,其特征在于所述纠错模块包括延时模块(8)、异或运算器B(9)以及单比特检错模块(10);其中,异或运算器B(9)与输出寄存器(7)和延时模块(8)连接;输出寄存器(7)和单比特检错模块(10)连接。4.根据权利要求2所述的通用成帧协议中检错纠错的装置,其特征在于所述异或运算器A(1)接收CRC校验码和核心报头校验码,异或运算器A(1)的输出端与输入寄存器(2)连接,输出检错校验码。5.根据权利要求2或4所述的通用成帧协议中检错纠错的装置,其特征在于所述输入寄存器(2)的输出端与无差错检查模块(3)以及四个ROM(4)连接;无差错检查模块(3)以及四个ROM(4)的输出端与流水线寄存器(5)连接。6.根据权利要求2所述的通用成帧协议中检错纠错的装置,其特征在于所述流水线寄存器(5)的纠错码输出端连接到与运算器(6);流水线寄存器(5)的无差错指示信号输出端连接到输出寄存器(7);与运算器(6)的纠错码输出端与输出寄存器(7)连接。7.根据权利要求2所述的通用成帧协议中检错纠错的装置,其特征在于所述输出寄存器(7)的纠错码输出端与异或运算器B(9)和单比特检错模块(10)连接;输出寄存器(7)输出无差错指示信号;单比特检错模块(10)输出单比特差错信号。8.根据权利要求3所述的通用成帧协议中检错纠错的装置,其特征在于所述异或运算器B(9)与延时模块(8)的输出端连接。9.根据权利要求2所述的通用成帧协议中检错纠错的装置,其特征在于所述输入寄存器(2)、流水线寄存器(5)、输出寄存器(7)组成三阶流水线。10.—种权利要求1所述的通用成帧协议中检错纠错的装置的控制方法,其特征在于该控制方法包括以下步骤Stepl:在GFP接收端将核心报头中净荷长度值PLI和核心报头校验码C^分别发送给延时模块(8)和异或运算器A(1),并将由净荷长度值PLI计算所得出的CRC校验码C^发送给异或运算器A(1);Step2:异或运算器A(1)将核心报头校验码C^和CRC校验码C^进行异或运算,得到检错校验码C^,并将检错校验码C^发送给输入寄存器(2);Step3:输入寄存器(2)将检错校验码C^,分成四个独立的寻址地址,分别发送给四个ROM(4);同时输入寄存器(2)将检错校验码C^,发送给无差错检査模块(3);Step4:无差错检査模块(3)检测有无比特错误,产生无差错指示信号,并将无差错指示信号传送给流水线寄存器(5);同时四个ROM(4)根据寻址地址,采用査找表法产生四个纠错码,并将纠错码传送给流水线寄存器(5);Step5:流水线寄存器(5)将四个纠错码发送给与运算器(6),与运算器(6)将四个纠错码进行与运算后得到纠错码,并将纠错码发送给输出寄存器(7);同时流水线寄存器(5)将无差错指示信号发送给输出寄存器(7);Step6:输出寄存器(7)将纠错码分别发送给异或运算器B(9)和单比特检错模块(10);Step7:异或运算器B(9)将纠错码与经过延时模块(8)处理过的净荷长度值PLI进行异或运算,输出正确的净荷长度值PLI;同时,单比特检错模块(10)对纠错码进行判断,输出单比特错误信号;Step8:该检错纠错的装置将无差错指示信号和单比特错误信号传送给控制帧定位装置状态的控制器。全文摘要本发明公开了一种通用成帧协议中检错纠错的装置及其控制方法。该装置针对GFP帧中核心报头与净荷报头信息差错控制的问题,根据CRC-16的差错控制技术是GFP帧中核心报头与净荷报头信息差错控制的核心,针对基于CRC-16的单比特检错与纠错进行设计,提出了一种快速、高效、简捷的CRC-16纠错检错装置及其控制方法,该装置采用四个ROM、简单运算器以及三阶流水线寄存器的设计,使得纠错检错的过程十分简洁、并且该装置对硬件要求简单、适合于高速EoS系统。文档编号H04L29/06GK101355403SQ20081013978公开日2009年1月28日申请日期2008年9月9日优先权日2008年9月9日发明者岩刘,史晓飞,燕张,玲李,李惠军,骞马申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1