[发明专利]一种非整字节数据的循环冗余校验算法有效

专利信息
申请号: 201310246949.5 申请日: 2013-06-20
公开(公告)号: CN103297196A 公开(公告)日: 2013-09-11
发明(设计)人: 杨尚胜 申请(专利权)人: 成都国星通信有限公司
主分类号: H04L1/00 分类号: H04L1/00
代理公司: 成都金英专利代理事务所(普通合伙) 51218 代理人: 袁英
地址: 611730 *** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种非整字节数据的循环冗余校验算法,它包括以下步骤:直接查表Crc16_Table[S0]得到第一字节S0的CRC16值;将上一字节的CRC16值的高n位CH和Bn相异或,异或结果作为下标查表得到Crc16_Table[(CH+Bn)];将上一字节的CRC16的低(16-n)位左移n位后与查表值Crc16_Table[(CH+Bn)]相异或,其中n的取值关系为:在计算整字节CRC16时n=8,计算不足字节CRC16时n取实际的比特数。本发明可以在传输信息为非整数字节不满足按字节方式计算的使用条件下使用,大大提高了计算效率,缩短了计算时间,释放了大量的CPU资源,降低了对CPU性能和运行时钟的要求,降低了CPU功耗。
搜索关键词: 一种 字节 数据 循环 冗余 校验 算法
【主权项】:
一种非整字节数据的循环冗余校验算法,CRC数学本质是对传输信息多项式对CRC生成多项式求余,CRC16的生成多项式为:G(x)=x16+x12+x5+1,其计算方法为:将16个0添加到S(x)的后面,也就是S(x)=r16×S(x),其中r=2为二进制多项式操作的基,然后S(x)对生成多项式G(x)做除法运算,即进行逻辑异或操作,最后得到除法的余数部分,即为CRC16,简称为Creg,而商部分简称M(x),其特征在于:其包括以下步骤:S1:假设Sm对应的CRC16值为Creg,由定义,则: CRC S m = ( R 2 * S m ) Mod ( G ( x ) ) = G reg = Crc 16 _ Table [ S m ]     (式1)R2*Sm=M(x)*G(x)+Creg                  (式2)S2:在Sm后增加n位不足一个字节信息位,组成一个新的二进制多项式S'm,计算S'm的CRC16,其包括以下步骤:S201:在Sm后增加n位不足一个字节信息位,组成一个新的二进制多项式S'm,S'm=rn*Sm+Bn                              (式3)Bn表示n位二进制多项式,其中高位在前,低位在后。S202:对S'm进行增加16个0操作保证余数直接就是数据流的CRC16结果,得:R2*S'm=R2*(rn*Sm+Bn)=rn*(R2*Sm)+R2*Bn          (式4)将式2替代进式4得:R2*S'm=rn*(M(x)*G(x)+Creg)+R2*Bn=(rn*M(x)*G(x))+rn*Creg+R2*Bn          (式5)令CH表示Creg的高n位,CL表示Creg低(16‑n)位,Creg=r(16‑n)*CH+CL                             (式6)将式6代入式5得:R2*S'm=(rn*M(x)*G(x))+R2*CH+rn*CL+R2*Bn         (式7)=(rn*M(x)*G(x))+R2*(CH+Bn)+rn*CL由CRC定义知:(rn*M(x)*G(x))Mod(G(x))≡0                (式8) ( R 2 * ( C H + B n ) ) Mod ( G ( x ) ) = CRC C H + B n = Crc 16 _ Table [ C H + B n ] ( r n * C L ) Mod ( G ( x ) ) = r n * C L 由逻辑抑或操作的结合性,式7以及式8得:(R2*S'm)Mod(G(x))=Crc16_Table[CH+Bn]+rn*CL            (式9)即: CRC S m = Crc 16 _ Table [ ( C H + B n ) ] + r n * C L .                     (式10)S3:由式10可知,计算当前数据的CRC16分两步完成,具体步骤如下;S301:将上一字节的CRC16值的高n位CH和Bn相异或,异或结果作为下标查表得到Crc16_Table[(CH+Bn)];S302:将上一字节的CRC16的低(16‑n)位左移n位后与查表值Crc16_Table[(CH+Bn)]相异或。S4:计算任意长度字节的CRC16,其包括以下步骤:S401:取数据流的第一字节S0作为下标查表Crc16_Table[S0]得到S0的当前CRC16值;S402:按照顺序将所有可以按字节处理的部分按照字节完成CRC16计算;S403:取n为剩余数据的实际比特数代入式10,完成剩余不足字节部分CRC16的计算;S404:结合S401、S402和S403得到的当前CRC16值、按照字节计算的CRC结果和不足字节部分CRC结果得到整个数据的CRC16结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都国星通信有限公司,未经成都国星通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310246949.5/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top