3921|0

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

[转贴]悟空,CRC原来是这么回事! [复制链接]

悟空:师傅,最近我被CRC搞的头晕脑涨?
~~~:那是何方神圣?
悟空:CRC通用数据传送的校验编码。
~~~:555,
悟空:????
~~~:加快追赶青春的脚步,飞速与世界接吻咯。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
几天后,

悟空:师傅你怎满脸青一块紫一块?
~~~:FANS太多,还真让人伤脑筋啊~~~~~~~~~~~
悟空:知道自己是近视眼,就别盯着别人的MM,被暴打了把。
~~~:多年不出山,没想到还怎么受欢迎!
悟空:观音姐姐,救救我~~~~~~
……—¥%……¥……¥%##¥%#%¥#%#%%%¥
悟空:让你没事就长篇大论,我T~~~~
~~~: 我招了

======================================================================

CRC远没有网上所说那么简单。
  
  首先我们有一个数据流,也就是你需要校验的数据,可以是N BIT,一般我们常用的4,8,16,32,128 BIT,这里我取几个8的倍数,是因为我们的硬件以二进制为基础,所以在存取数据比较容易,无须充填位数来满足寄存器的要求。你用13,17,29 BIT也可以。

  有一点你要记住的是,你选用几个BIT,那么在CRC编码就需要移位几次,8就是移位8次,13就是移位13次,128就是移位128次。

我们看看目前为止的CRC的标准或者行规有:
CRC8  = X8+X5+X4+1
CRC16 = X16+X15+X5+1
CRC12 = X12+X11+X3+X2+1
CRC32 = X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1
   
CRC-CCITT=X16+X12+X5+1

需要说明的:CRC后所带的数字就是CRC的位数,它与你的数据流是无关的。

CRC8,8位CRC校验。
CRC16,16位CRC校验。
CRC12,12位CRC校验。
CRC32,32位CRC校验。
CRC-CCITT,16位CRC校验。

我们看到5个多项式,它的意义其实就是给出一个与数据流进行异或运算的初始值,
当然你可以更改这个值。比如:

CRC8  = X8+X5+X4+1 》》》 CRC8  = X7+X3+X2+1

CRC16 = X16+X15+X5+1 》》》CRC16 = X15+X5+1

只要你做出的东西是相互连接,不用与其他的机器对接,推荐保密部门使用该方法。
如果修改上述的多项式,那么别人在分析你传送来的数据时,该全部是错码。

补一下课:
异或操作:
              RESULT
  0    0       0
  0    1       1
  1    0       1
  1    1       0

此帖出自单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表