System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于可靠性编解码领域,涉及一种软硬件结合的可灵活配置的通用并行crc生成与校验方法。
技术介绍
1、循环冗余校验码(crc)是通信领域中广泛进行应用的一种校验算法,校验码由生成算法计算生成后,添加在需要传输的数据位之后进行发送,在接受端则可检测数据的误码情况并进行校验,为整个通信过程提供校验能力,可以大幅提高系统数据传输的可靠性。
2、传统crc编码为串行数据编码,即每个周期只输入一个数据比特,进入电路中进行计算,通常使用线性反馈移位寄存器来进行串行编码计算。该方法在处理数据量小的情况下尚且可用,但在通信逐渐发展过程中凸显了耗时较长、资源消耗量大的各类问题。
3、针对上述问题,并行数据的crc编码应运而生,该方法可以在每个周期同时输入多位数据,如每周期输入8位数据,即可达到8并行度的计算效率。并行度这一参数也就是该方法每个周期同时进行计算的数据位数。相比于传统的串行数据的crc编码,并行数据的crc编码效率更高,但相应的,方法的计算复杂度也会随之增加。
4、通常通过查表法来进行并行数据的crc编码,即提前计算出一张表格,该表格上保存着所需数据的crc,通过查表的方法来获取要计算的crc,这种方法的缺点很明显,根据不同大小的数据需要制作不同大小的表格,比如32比特的数据进行8并行度的计算时,表格的大小就是232字节,针对较长的数据流和较大的并行度,表格会占用过多的存储空间,同时该方法对于并行度要求也十分固定,每种数据流和每种并行度都需要重新制作对应的表格,无法进行灵活参数配置,效率低下
技术实现思路
1、针对现有技术中的缺陷,本专利技术的目的是提供一种可灵活配置的通用并行crc生成与校验方法,支持crc生成和crc校验两种模式,可配置crc初始值为全0/全1,可配置crc生成和校验的并行度,可配置任意生成多项式,可配置生成crc的长度。根据本专利技术提供的方法,可以将传统的串行crc计算变成并行crc计算,且参数可灵活配置,可以相比串行计算减少耗时,避免固定参数带来的局限性,大大提高系统的整体工作效率。
2、本专利技术采用的技术方案为:
3、一种可灵活配置的通用并行crc生成与校验方法,包括以下步骤:
4、步骤一:信息码字初始值处理:
5、设编码前信息码字为[m'0,m'1,…,m'l-1];当crc初始值要求为全0时,执行步骤2;当crc初始值要求为全1时,将信息码字的前crc_len个数与1进行异或处理,其中crc_len为生成crc的长度;
6、步骤二:信息码字并行度处理:
7、当码字长度l能被并行度p整除时,执行步骤三;当码字长度l不能被并行度p整除时,进行数据补零处理,即在信息码字前补0直到长度为p的倍数,得到信息码字为[0,0,…,0,m'0,m'1,…,m'l-1],令补零后的信息码字为[m0,m1,…mk-1],其中
8、步骤三:计算各参数:
9、令将信息码字[m0,m1,…mk-1]分成m'0=[m0,m1,…mp-1]、m'1=[mp,mp+1,…m2*p-1]…m'c-1=[m(c-1)*p,m(c-1)*p+1,…mc*p-1]共c个向量;
10、当并行度p≤crc_len时,
11、余数多项式b(0)=[0,…,0]t,长度为crc_len;
12、f=f'p,是一个crc_len×crc_len大小的矩阵;
13、根据矩阵计算规则将m'0至m'c-1的最后补0直到向量长度为crc_len,再转置得到m0至mc-1:
14、m0=[m0,m1,…mp-1,0,…,0]t
15、m1=[mp,mp+1,…m2*p-1,0,…,0]t
16、…
17、mc-1=[m(c-1)*p,m(c-1)*p+1,…mc*p-1,0,…,0]t
18、当并行度p≥crc_len时,
19、余数多项式b(0)=[0,…,0]t,长度为p;
20、f矩阵是一个p×p大小的矩阵,在f'p的基础上进行扩展,将f矩阵的前crc_len行按crc_len列依次填入f'p-i×crc_len,其中如果p为crc_len的整数倍,将f'p-i×crc_len矩阵直接依次填入;否则填入时将最后一个f’中多余的列舍去;
21、根据矩阵计算规则将m'0至m'c-1的最后补0直到向量长度为p,再转置得到m0至mc-1:
22、m0=[m0,m1,…mp-1,0,…,0]t
23、m1=[mp,mp+1,…m2*p-1,0,…,0]t
24、…
25、mc-1=[m(c-1)*p,m(c-1)*p+1,…mc*p-1,0,…,0]t;
26、其中,g0,g1,…,gn-k-1为生成多项式g(x)的系数;
27、步骤四:计算crc:
28、按下列公式进行逐步计算:
29、b(0+p)=f×[b(0)+m0]
30、b(1+p)=f×[b(p)+m1]
31、b(2+p)=f×[b(1+p)+m2]
32、…
33、b(n+p)=f×[b(n+p-1)+nn]
34、…
35、b(c-1+p)=f×[b((c-2)+p)+mc-1]
36、当并行度p≤crc_len时,取b(c-1+p)为寄存器结果b;
37、当并行度p≥crc_len时,取b(c-1+p)的前crc_len个数为寄存器结果b;
38、若配置为crc生成模式,则寄存器结果即crc校验码b;若配置为crc校验模式,则判定crc校验码b是否为全零,是全零则校验成功,非全零则校验失败。
39、本专利技术相比现有技术的优点为:
40、(1)大大减少计算耗时
41、本专利技术将传统的串行crc计算变成并行crc计算,输入数据不是一个一个串行进行编码操作,而是以并行度的数目为单位,批量进行编码计算,相比串行,并行处理几乎成倍减少了计算耗时。
42、(2)可灵活配置多个参数以适应不同场景,健壮性强
43、与传统crc生成器只能进行某些特定crc初值、并行度、固定生成多项式和crc长度不同,本专利技术可针对不同的场景需求,配置crc生成和crc校验两种模式,配置不同的并行度、crc长度以及任意的生成多项式,且支持crc寄存器初值为全0或者全1,灵活性高,具有更好的健壮性。
44、(3)软硬件结合以提高工作效率
本文档来自技高网...【技术保护点】
1.一种可灵活配置的通用并行CRC生成与校验方法,其特征在于,包括以下步骤:
【技术特征摘要】
1.一种可灵活配置的通用并行crc生成...
【专利技术属性】
技术研发人员:刘潇,孙可,胡忠心,戎波,
申请(专利权)人:中国电子科技集团公司第五十四研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。