8位循环冗余检验CRC校验说明

8位循环冗余检验CRC校验说明

ID:39576173

大小:326.20 KB

页数:10页

时间:2019-07-06

8位循环冗余检验CRC校验说明_第1页
8位循环冗余检验CRC校验说明_第2页
8位循环冗余检验CRC校验说明_第3页
8位循环冗余检验CRC校验说明_第4页
8位循环冗余检验CRC校验说明_第5页
资源描述:

《8位循环冗余检验CRC校验说明》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/********************************************************************************软件名称:CRC算法说明**功能描述:最近看的CRC-8资料,分享如下**公司名称:ROBAM**作者:顾长超**芯片:**日期:2017-8-1**修改日期:******************************************************************************/第一部分//=============

2、==============CRC-8原理说明==================================//CRC(CyclicRedundancyCheck):是数据通信领域中最常用的一种差错校验码,//其特征是信息字段和校验字段的长度可以任意选定。//CRC校验可以简单地描述为:例如我们要发送一些数据(信息字段),//为了避免一些干扰以及在接收端的对读取的数据进行判断是否接受的是真实的数据,//这时我们就要加上校验数据(即CRC校验码),来判断接收的数据是否正确。//在发送端,根据要传送的k位二进制

3、码序列,以一定的规则(CRC校验有不同的规则。//这个规则,在差错控制理论中称为"生成多项式"。)产生一个校验用的r位校验码(CRC码),//附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,//根据信息码和CRC码之间所遵循的规则(即与发送时生成CRC校验码相同的规则)进行检验,//校验采用计算机的模二除法,即除数和被除数(即生成多项式)做异或运算,//进行异或运算时除数和被除数最高位对齐,进行按位异或运算,若最终的数据能被除尽,//则传输正确;否则,传输错误。//CRC-8即最终

4、生成的CRC校验码为1字节,其生成多项式,生成多项式为g(x)=x^8+x^5+x^4+x^0,//相当于g(x)=1·x^8+0·x^7+0·x^6+1·x^5+1·x^4+0·x^3+0·x^2+0·x^1+1·x^0,//即对应的二进制数为100110001。//=============================CRC-8校验算法=======================//a.信息字段代码为:m(x)=0x0102=x^8+x^1=10000,0010//b.多项式为:g(x)=x^8+x^5

5、+x^4+x^0=0x0131=100110001//高位对齐:10000,00100000,0000//注:0x0102<<8(m(x)左移8位)100110001//^g(x)^m(x)做模二运算,最终的余数就是所要的CRC8校验码-----------------------------------------//(其二进制数的位数一定比生成多项式g(x)的位数小)00011001100000000100110001//^高位为1对齐-------------------------------------

6、------------------------01010100100000100110001//^-------------------------------------------------------------0011000110000100110001//^-------------------------------------------------------------01011110100100110001//^---------------------------------------

7、----------------------0010010110//最后生成的只有8位就是所要的CRC8校验码,前面的0不算,以1为准=10010110=0x96第二部分//==============================SHT3X规格书验证==============================//代码如下:staticu8tSHT3X_CalcCrc(u8tdata[],u8tnbrOfBytes){u8tbit;//bitmasku8tcrc=0xFF;//calculatedchecksu

8、mu8tbyteCtr;//bytecounter//calculates8-Bitchecksumwithgivenpolynomialfor(byteCtr=0;byteCtr0;--bit){if(crc&0x80)crc=(crc<<1)^POLYN

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。