CRC校验原理与计算方法整理
1、CRC(循环冗余校验)概述
CRC(循环冗余校验)是一种编码技术,主要作用是确保传输的数据准确无误。
2、CRC编码原理
CRC编码采用多项式除法的原理,将要传输的信息除以一个预先确定的多项式,得到的余式就是所需的CRC检验码。
假设需要发送的信息为1000_0000,CRC生成多项式为g(x) = x^8+x^2+x+1(二进制序列为1_0000_0111)。
1、依据CRC生成多项式可知CRC校验码的位宽为(8=9-1)。
2、初始化CRC校验码的值为0,并将其添加到信息后,使信息序列转换为1000_0000_0000_0000。
3、依据“模2运算法”计算CRC校验码,计算步骤如下图所示。每次计算都是消除高次项,然后移入新的数据,再进行下一次计算,直到所有的数据计算完成。
生成多项式 | __________1_0_0_0_0_0_1_1 | 商 |
100000111 | 1000_0000_0_0_0_0_0_0_0_0 | |
1000_0011_1 | ||
_000_0011_1_0 | 余数 | |
_000_0000_0_0 | ||
__00_0011_1_0_0 | 余数 | |
__00_0000_0_0_0 | ||
___0_0011_1_0_0_0 | 余数 | |
___0_0000_0_0_0_0 | ||
_____0011_1_0_0_0_0 | 余数 | |
_____0000_0_0_0_0_0 | ||
______011_1_0_0_0_0_0 | 余数 | |
______000_0_0_0_0_0_0 | ||
_______11_1_0_0_0_0_0_0 | 余数 | |
_______10_0_0_0_0_1_1_1 | ||
________1_1_0_0_0_1_1_1_0 | 余数 | |
________1_0_0_0_0_0_1_1_1 | ||
__________1_0_0_0_1_0_0_1 | 余数 |
4、CRC计算步骤描述。
如上图所示,其计算结果可以描述为如下:
1、初始化crc寄存器的值为1000_0000。
2、检测crc寄存器的最高位是否为1;
crc[15]=1;crc = (crc<<1 )^ g(x);
crc[15]=0;crc = crc<<1;
3、一直循环8次后,输出CRC校验码。
CRC校验原理与计算方法整理相关推荐
- 简单易懂的CRC校验原理阐述
不要跑,CRC没这么难!(简单易懂的CRC原理阐述) 网上大多的教材都是面向大佬的很多细节原理都没有讲清楚,对于我们这些新萌菜鸟们实在太不友好了.于是我写一篇相对轻松易懂的博客,希望能对学习CRC的朋 ...
- 【个人学习总结】CRC校验原理及实现
[个人学习总结]CRC校验原理及实现 一.CRC校验原理[理论篇] 1.硬核视频讲解[重点看,非常非常好!!!] 2.基础文章[略看] 3.深入文章!!![代码.查表法有点看不懂,跨越有点大] 理解重 ...
- CRC校验原理的完整学习
前言:1.想直接用CRC的可以直接看程序,想了解原理,或者写程序的原理的.可以看按顺序看整篇 2.模二除法没有深入研究,所以模二除法待验证,也不去验证了,我花了一个月的业余时间写.3.本文只进行了16 ...
- CRC校验原理及两种代码实现方法(c语言和labview实现)
CRC校验原理及代码实现 目录 背景 原理 模2除法 多项式 计算流程 代码实现() c语言实现 c语言测试结果 labview实现 labview测试结果 目录 背景 在进行数据传输时,为了避免数据 ...
- CRC校验原理及STM32 IAP在线升级程序
CRC校验原理: 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据 ...
- CRC校验原理及CRC-8简单校验函数设计
CRC校验原理及CRC-8简单校验函数设计 CRC为循环冗余校验码,是一种常用的.具有检错.纠错能力的校验码.通常发送方在发送的数据之后,附上其CRC校验码.接收方收到数据后,也做同样的CRC校验,得 ...
- CRC校验原理和推导过程及Verilog实现(一文讲透)
目录 一.CRC简介 1.1 CRC可检测的错误 1.2 CRC需要知道的基本名称 1.2.1 多项式公式 1.2.2 多项式简记式 1.2.3 数据宽度 1.2.4 初始值与结果异或值 1.2.5 ...
- CRC校验原理及步骤
什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并 ...
- CRC校验原理及代码
参考:CRC校验原理及步骤https://blog.csdn.net/d_leo/article/details/73572373 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的 ...
最新文章
- 关于使用sudo命令后找不到JAVA_HOME的问题
- Android ViewTreeObserver简介-------------转
- 为了OFFER,菜鸟的我必须搞懂动态规划系列三个背包问题之多重背包(二进制优化方法)
- 嵩天-Python语言程序设计程序题--第二周:基本图形绘制
- 科创板开户手续费要2万元,大家怎么看?
- 记录一次webpack3升级到webpack4过程
- 2018秋计算机基础在线作业华师,18秋华师《计算机基础》在线作业3(标准答案).doc...
- html图片平移,CSS3 按钮悬停时背景图片平移入场
- php 获取视频首帧,从视频中提取特定帧的最快方法(PHP/ffmpeg/anything)
- java接听电话freeswitch_java通过http协议与Freeswitch对接实现动态添加用户
- 深入浅出 python epub_《机器学习从认知到实践(第2辑)(套装共3册,Python+TensorFlow)》epub+mobi+azw3...
- 图像算法八:【图像分割】边缘检测(Roberts,Sobel,canny)、霍夫变换(hough)、阈值分割、区域分割
- java网络爬虫,乱码问题终于完美解决
- 仿真软件测试基尔霍夫定律,基尔霍夫定律实验报告范文
- 席位分配:惯例Q值法,dhondt法matlab实现
- PLC通过PIO模式控制绝对位置型IAI电缸
- 极客空间-MySQL实战45天-第四天
- 微信小号的另一个作用
- 必做: 1041、1024、1077、2218、1183(较难)
- Java 心心跳动,能把女朋友感动哭的效果
热门文章
- 海信机顶盒交换机常用哪些LAN变压器
- python核密度图_使用Python绘制2D核密度估计
- 7讲项目实战js第三区域响应式菜单续
- 《惢客创业日记》2019.06.14(周五) 如何解决乞讨的诚信问题?
- 白杨SEO:公众号为什么会增加视频/视频号和服务?公众号视频号如何互相绑定?视频号公众号又如何互相解绑?启发是什么?
- 基于Golang语言GoFrame框架通用后台权限管理系统
- BNB Chain testnet faucet
- [AS3]心理测试题的开发
- python selenium鼠标点击_python selenium鼠标键盘操作(ActionChains)
- Python关闭文件