本发明属于crc校验技术领域,涉及改进型crc校验方法,尤其是一种适用于专用asic的crc校验方法。
背景技术:
随着人们对数据量的需求越来越大,现代数据通信对信息的可靠性要求也越来越高,然而数据信号在实际信道中传输不可避免的受到噪声干扰,为了提高链路传输的可靠性,一些高级数据链路控制规程会对用户数据进行差错编码,其中,循环冗余校验码(crc)由于其检错纠错能力强等特点,在数据通信领域有着广泛的应用。
基本的crc校验方法原理并不复杂,但是国外先进asic厂商在将crc校验方法集成到专用asic中的时候会进行改进变形,这种改进型的crc校验算法作为厂商的核心技术不被公开。然而,随着芯片国产化上升到国家战略,越来越多的国产芯片将会取代国外芯片,国内进口芯片巨大的保有量决定着芯片国产化是一个道阻且长的过程,为了使得自主化芯片能够与国外芯片兼容通信,必须达到校验方法的兼容,故这种改进型的crc校验算法成为高级数据链路规程研究者必须要攻破的技术难题。
技术实现要素:
本发明的目的在于克服现有技术的不足,提出一种适用于专用asic的crc校验方法,使得国产化同步通信型asic能够与进口asic兼容通信。
本发明解决其现实问题是采取以下技术方案实现的:
一种适用于专用asic的crc校验方法,包括以下具体步骤:
步骤1、构建十六位移位寄存器,模2除用异或门实现,从而生成多项式反转,即将生成多项式的简记式16’h1024进行反转为16’h8048;
步骤2、设定十六位移位寄存器校验初始值为全0,计算得到当前周期移位寄存器的状态与当前输入和移位寄存器前一状态的关系表达式;
步骤3、将校验结果进行按位取反输出。
本发明的优点和有益效果:
1、国外芯片厂商对基本crc校验算法进行变形,是因为基本crc算法在实际asic的工作环境中存在一种无法校验出的错误情况,即数据流开头添加若干个0并不影响校验结果,但是会造成解码端的解码错误。本发明通过生成多项式的反转、初始值设置为全0和结果按位取反操作可以避免上述缺陷。
2、本发明攻破了进口专用asic中crc校验算法的具体变形规则,使得国产化同步通信型asic能够与进口asic兼容通信。
附图说明
图1为本发明的串行校验码生成原理图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
帧校验算法原型采用的是ccitt-16标准,其生成多项式g为x16+x12+x5+1,对应的简记式为16’h1021。crc校验的基本原理是在一个k位的二进制序列d后加一个r位的帧校验序列r,生成新的二进制序列m,其中r为d被g整除的余数,其生成过程如公式(1)所示:
其中xrd(x)表示将d(x)左移r位,低位补r个0,re表示取余操作。
在接收端,则直接对序列m进行除法运算,除数必须是生成多项式g,若余数r为0,则表示校验正确。其检验过程如式(2)所示:
以上为crc校验的基本原理,但在专用asic中的合格判据不再是余数r为0,而是r为16’hf0b8。推导出crc算法经过怎样的变形会使得合格判据为16’hf0b8是解决问题的关键所在。
经研究,一种适用于专用asic的crc校验方法,包括以下具体步骤:
步骤1、构建十六位移位寄存器,模2除用异或门实现,从而生成多项式反转,即将生成多项式的简记式16’h1024进行反转为16’h8048;
步骤2、设定十六位移位寄存器校验初始值为全0,计算得到当前周期移位寄存器的状态与当前输入和移位寄存器前一状态的关系表达式;
步骤3、将校验结果进行按位取反输出。
经过上述三点变形,经验证,接收端合格判据为16’hf0b8。
只有符合上述三个条件,自主研制的专用通信asic才能与国外芯片成功对接。
该设计的原理框图如图1所示,f0-f15为十六位移位寄存器,模2除用异或门实现,该框图为串行crc校验码生成原理图,设计者可以根据上述框图进行代入推导,即可得出每次并行计算后移位寄存器的状态与当前输入和前一状态的关系表达式,进而得出8位并行校验算法。
假设输入数据为8位并行数据,由高位到低位分别表示为d7-d0,其并行crc校验码生成过程如表1所示:
表1并行crc校验码生成过程表
根据表1所示,便得到当前周期移位寄存器的状态与当前输入和移位寄存器前一状态的关系表达式,即:
f15<=d3^d7^f7^f3;
f14<=d2^d6^f6^f2;
f13<=d1^d5^f5^f1;
f12<=d0^d4^f4^f0;
f11<=d3^f3;
f10<=d2^d3^d7^f7^f3^f2;
f9<=d1^d2^d6^f6^f2^f1;
f8<=d0^d1^d5^f5^f1^f0;
f7<=d0^d4^f15^f4^f0;
f6<=d3^f14^f3;
f5<=d2^f13^f2;
f4<=d1^f12^f1;
f3<=d0^d3^d7^f11^f7^f3^f0;
f2<=d2^d6^f10^f6^f2;
f1<=d1^d5^f9^f5^f1;
f0<=d0^d4^f8^f4^f0;
最后,注意将所得校验码进行按位取反输出。
本发明攻破了进口专用asic中crc校验算法的具体变形规则,使得国产化同步通信型asic能够与进口asic兼容通信。且给出了基于此方法的具体实现方案。
需要强调的是,本发明所述实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。