930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 6081|回复: 0

DS18B20数字温度传感器介绍3---CRC校验介绍

[复制链接]

101

主题

332

帖子

7422

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7422
发表于 2019-5-31 09:29:18 | 显示全部楼层 |阅读模式
本帖最后由 正是河豚 于 2019-5-31 09:31 编辑
    1、CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
    2、下面介绍下CRC校验的几个基本概念:
    1)帧检验序列FCS(Frame Check Sequence):为了进行差错检验而添加的冗余码。
    2)多项式模2运行:实际上是按位异或(Exclusive OR)运算,即相同为0,相异为1,也就是不考虑进位、借位的二进制加减运算。
         如:10011011 + 11001010 = 01010001。
    3)生成多项式(generator polynomial):当进行CRC检验时,发送方与接收方需要事先约定一个除数,即生成多项式,一般记作G(x)。生成多项式的最高位与最低位必须是1。常用的CRC码的生成多项式有:
    CRC8=X^8+X^5+X^4+1
    CRC-CCITT=X^16+X^12+X^5+1
    CRC16=X^16+X^15+X^5+1
    CRC12=X^12+X^11+X^3+X^2+1
    CRC32=X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+1

    注:每一个生成多项式都可以与一个代码相对应,如CRC8对应代码:100110001 。
    3、DS18B20采用的是CRC8校验方式,而CRC8校验又可分为常规编码算法和逆序CRC信息单元编码算法两种,下一贴将介绍CRC8的两种算法。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

Copyright © 合肥艾克姆电子科技有限公司
快速回复 返回顶部 返回列表