发明名称 一种用于数据传输差错控制的嵌套CRC码生成方法及装置
摘要 本发明公开了一种用于数据传输差错控制的嵌套CRC码生成方法,包括:对待计算数据进行分段,根据数据类型为各数据段分配所需CRC码计算通道,各计算通道进行CRC码计算,对计算得到的各CRC子码进行排序。根据实际需要,排序后的CRC子码可直接送入最终的CRC码计算通道,也可作为新的待计算数据,多次重复上述CRC子码计算再送入最终的CRC码计算通道生成嵌套CRC码。本发明还公开了一种嵌套CRC码生成装置,包括数据分段模块、计算通道选择模块、多通道CRC码计算模块、数据排序模块、寄存器、计数器、数据分配器、单通道CRC码计算模块。本发明的装置计算速度快,灵活性好,并且采用本发明的方法,因此所需存储容量小、纠错能力强,适用的范围广。
申请公布号 CN102946297A 申请公布日期 2013.02.27
申请号 CN201210446605.4 申请日期 2012.11.10
申请人 华中科技大学 发明人 周文利;段斌斌
分类号 H04L1/00(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种用于数据传输差错控制的嵌套CRC码生成方法,其特征在于,包括以下步骤:(1)数据分割器对待计算数据进行分段,具体包括以下子步骤:(1‑1)将数据分割器中的数据初始化为0,并根据计算通道的数量N确定数据分割器的最大分段数为N;(1‑2)为整个数据分割器生成N+1个指针(P0,P1,…,Pi,…,PN)和N个指针(p1,p2,…,pi,…,pN),其中i为小于等于N的正整数,(P0,P1,…,Pi,…,PN)将整个数据分割器分成N个长为Ls的数据段,按照N个数据段的顺序,为每个数据段分配一个指针分别为(p1,p2,…,pi,…,pN),其中Ls为任意正整数;(1‑3)为指针(P0,P1,…Pi,…,PN)分配固定值,其中Pi=Pi‑1+Ls,P0的值可以取任意值,整个计算过程中,Pi指针的值固定不变;(1‑4)为N个数据区域的指针(p1,p2,…,pi,…,pN)分配初始值,并令(p1,p2,…,pi,…,pN)指针的初始值分别与(P0,P1,…,Pi‑1,…,PN‑1)相等;(1‑5)将待计算数据填充至数据分割器中,根据数据的填充情况,改变(p1,p2,…,pi,…,pN)指针的值;(1‑6)数据分割器将待计算数据分为m段,并将m的值传递给通道选择器和反向通道选择器;(1‑7)利用(p1,p2,p3…pm)的值,以及计算通道的并行计算位数W,在每一个时钟周期,向m个计算通道分别传送W位数据,并将(p1,p2,p3…pm)的值均减去W;(1‑8)判断(p1,p2,p3…pm)是否与(P0,P1,P2…Pm‑1)的值相等,若相等,则进入步骤(2),否则返回步骤(1‑7);(2)为分割后的各待计算数据段分配所需的CRC码计算通道,具体包 括以下子步骤:(2‑1)针对不同类型数据的Q次嵌套CRC码的生成,为通道选择器生成一张通道选择表用于在不同类型数据的各次嵌套计算中,为数据输入通道分配相应的计算通道,其中Q为正整数;(2‑2)利用数据分割器传递的数据段总数m,通道选择器选通用于连接数据分割器的m个序号为(1,2,3,…,m)的输出与通道选择器的开关;(2‑3)根据开关选择表,将选通的m个数据输入分别连接至相应的计算通道之上;(3)各计算通道对各待计算数据段进行CRC子码计算,具体包括以下子步骤:(3‑1)为N个计算通道分别分配相应的生成多项式为(g1(x),g2(x),…,gi(x),…,gN(x)),其中i为1到N之间的任意值,各通道之间可以采用同样的生成多项式;(3‑2)根据相应的生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的各计算通道;(3‑3)根据各计算通道所采用的生成多项式,为各通道设置初始值,通常可以为各计算通道赋初始值为全零或者全一;(3‑4)对各通道的输入数据完成CRC子码计算,得到m个CRC子码;(4)对各通道计算所得到的CRC子码进行排序,具体包括以下子步骤:(4‑1)反向通道选择器与通道选择器共用一张通道选择表;(4‑2)依据数据分割器传递的待计算数据的分段总数m,反向通道选择器选通序号为(1,2,3,…,m)的CRC子码暂存器与反向通道选择器的连接开关。(4‑3)根据开关选择表,将选通的m个数据输出分别连接至相应的计算通道的输出之上;(4‑4)各计算通道按照反向通道选择器的选择结果,将各计算通道计算所得的CRC子码存入相应的CRC子码暂存器,得到一串新的数据为(CRC1,CRC2,…,CRCi,…,CRCm),其中i为1到m之间的任意值,CRCi对应第i个数据段计算所得到的CRC子码;(5)判断是否需要再次进行多通道计算,如果需要,则将步骤(4)得到的CRC子码作为新的待计算数据,返回步骤(1);如果不需要,则进入步骤(6),具体包括以下子步骤:(5‑1)将CRC码的嵌套次数Q的值减去1;(5‑2)判断Q的值是否为0,若Q的值为0,则进入步骤(6);若Q的值不为零,则以(4)步骤中排序好的CRC子码数据作为新的待计算数据,并返回步骤(1);(6)第N+1个计算通道计算出最终的Q次嵌套CRC码,具体包括以下子步骤:(6‑1)为第N+1个CRC计算通道分配生成多项式gN+1(x);(6‑2)根据生成多项式,利用逻辑电路或者查找余数表的方法来实现W位并行计算的计算通道;(6‑3)为该计算通道设置初始值,通常可以为该计算通道赋初始值为全零或者全一;(6‑4)对多计算通道第Q次计算并经过排序所得到的CRC子码数据进行最后一次CRC码计算,得到最终的Q次嵌套CRC码。
地址 430074 湖北省武汉市洪山区珞喻路1037号