博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CRC冗余校验码简介
阅读量:4091 次
发布时间:2019-05-25

本文共 713 字,大约阅读时间需要 2 分钟。

CRC冗余校验码简介

在数据通信中,接收端通常需要检测传输过程中是否发生差错,常用的方法包括:奇偶校验(Parity Check)、校验和(Check Sum)和CRC(Cyclic Redundancy Check)等。

相应的检测方式是:

  1. 发送端按照某种算法对发送消息进行计算,得到校验码,然后将校验码和消息一起发送到接收端;
  2. 接收端对接收到的消息按照相同算法计算,得到本地校验码;
  3. 将本地校验码与接收到校验码进行比较;

如果两者一致,则证明接收到的消息是正确的,否则存在传输错误。

奇偶校验

奇偶校验 通过计算传输数据二进制表示中“1”的个数是奇数还是偶数来进行校验的方法,被称为奇偶校验。统计出奇数个“1”的称之为奇校验,反之成为偶校验。

采用何种校验是事先规定好的,若用奇校验,则当接收端收到这组数据时,校验“1”的个数是否为奇数个,从而确定传输是否正确。奇校验可以检测出1位差错,或者任意奇数个差错。

校验和

校验和 的思想比较简单:将传输的消息当成8位(或16、32位)整数序列,将这些整数加起来的结果就是校验码,也称校验和。

校验和被广泛应用于IP协议中,按照16位整数运算,而且其MSB的进位被加到结果中

CRC

奇偶校验不能检测出偶数位差错。对于校验和,如果整数序列中有两个整数出错,一个增加了一定的值,另一个减小了相同的值,这种差错就检测不出来。

因此复杂的通信系统通常采用CRC校验。下表是常见通信系统所用到的CRC校验算法。WLAN系统采用CRC-32,而LTE系统根据需要校验位的长度,选取不同的CRC校验算法。

image-20210630214439660

image-20210630214455203

后续内容

CRC算法实现

本文内容选自《通信IC设计》一书.

2021-6-30.

转载地址:http://wanii.baihongyu.com/

你可能感兴趣的文章
4 岁小女孩给 Linux 内核贡献提交
查看>>
推荐几个私藏很久的技术公众号给大家
查看>>
20 个 2020 年软件开发趋势预测
查看>>
王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...
查看>>
Python 趣味打怪:147 段简单代码助你从入门到大师
查看>>
GitHub 热榜第一:最全中华古诗词数据库,收录30多万诗词
查看>>
“我的名片可以运行 Linux”
查看>>
效果酷炫!开源可视化神器:带你看尽项目的沧桑变化!
查看>>
实测两款 GitHub 开源抢票插件,所有坑我们都帮你踩过了
查看>>
上线 B 站,钢铁侠出镜 AI 科普纪录片!
查看>>
GitHub 标星 2.2w+,一个为云而生的开源数据库,有多强大...
查看>>
手把手教你写出几十种让同事无法维护的代码!
查看>>
按我说的来,让 VS Code 好用 10 倍 | VS Code 新手指南
查看>>
GitHub 标星 1.8w+:What the fuck Python?!
查看>>
2019 最烂密码排行榜大曝光!网友:已中招!
查看>>
牛逼了同学!一位哈工大在读 NLP 博士积累 28W 粉丝
查看>>
今天,强烈推荐一位改变我命运的程序员大佬!
查看>>
这 7 个稀奇古怪的小网站,让我摸了一天的鱼!太上瘾啦!
查看>>
网络常见的 9 大命令,非常实用!
查看>>
Google 开源的这个图片压缩器,值得一用
查看>>