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校验原理与计算方法整理相关推荐

  1. 简单易懂的CRC校验原理阐述

    不要跑,CRC没这么难!(简单易懂的CRC原理阐述) 网上大多的教材都是面向大佬的很多细节原理都没有讲清楚,对于我们这些新萌菜鸟们实在太不友好了.于是我写一篇相对轻松易懂的博客,希望能对学习CRC的朋 ...

  2. 【个人学习总结】CRC校验原理及实现

    [个人学习总结]CRC校验原理及实现 一.CRC校验原理[理论篇] 1.硬核视频讲解[重点看,非常非常好!!!] 2.基础文章[略看] 3.深入文章!!![代码.查表法有点看不懂,跨越有点大] 理解重 ...

  3. CRC校验原理的完整学习

    前言:1.想直接用CRC的可以直接看程序,想了解原理,或者写程序的原理的.可以看按顺序看整篇 2.模二除法没有深入研究,所以模二除法待验证,也不去验证了,我花了一个月的业余时间写.3.本文只进行了16 ...

  4. CRC校验原理及两种代码实现方法(c语言和labview实现)

    CRC校验原理及代码实现 目录 背景 原理 模2除法 多项式 计算流程 代码实现() c语言实现 c语言测试结果 labview实现 labview测试结果 目录 背景 在进行数据传输时,为了避免数据 ...

  5. CRC校验原理及STM32 IAP在线升级程序

    CRC校验原理: 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据 ...

  6. CRC校验原理及CRC-8简单校验函数设计

    CRC校验原理及CRC-8简单校验函数设计 CRC为循环冗余校验码,是一种常用的.具有检错.纠错能力的校验码.通常发送方在发送的数据之后,附上其CRC校验码.接收方收到数据后,也做同样的CRC校验,得 ...

  7. CRC校验原理和推导过程及Verilog实现(一文讲透)

    目录 一.CRC简介 1.1 CRC可检测的错误 1.2 CRC需要知道的基本名称 1.2.1 多项式公式 1.2.2 多项式简记式 1.2.3 数据宽度 1.2.4 初始值与结果异或值 1.2.5 ...

  8. CRC校验原理及步骤

    什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定.循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并 ...

  9. CRC校验原理及代码

    参考:CRC校验原理及步骤https://blog.csdn.net/d_leo/article/details/73572373 什么是CRC校验? CRC即循环冗余校验码:是数据通信领域中最常用的 ...

最新文章

  1. 关于使用sudo命令后找不到JAVA_HOME的问题
  2. Android ViewTreeObserver简介-------------转
  3. 为了OFFER,菜鸟的我必须搞懂动态规划系列三个背包问题之多重背包(二进制优化方法)
  4. 嵩天-Python语言程序设计程序题--第二周:基本图形绘制
  5. 科创板开户手续费要2万元,大家怎么看?
  6. 记录一次webpack3升级到webpack4过程
  7. 2018秋计算机基础在线作业华师,18秋华师《计算机基础》在线作业3(标准答案).doc...
  8. html图片平移,CSS3 按钮悬停时背景图片平移入场
  9. php 获取视频首帧,从视频中提取特定帧的最快方法(PHP/ffmpeg/anything)
  10. java接听电话freeswitch_java通过http协议与Freeswitch对接实现动态添加用户
  11. 深入浅出 python epub_《机器学习从认知到实践(第2辑)(套装共3册,Python+TensorFlow)》epub+mobi+azw3...
  12. 图像算法八:【图像分割】边缘检测(Roberts,Sobel,canny)、霍夫变换(hough)、阈值分割、区域分割
  13. java网络爬虫,乱码问题终于完美解决
  14. 仿真软件测试基尔霍夫定律,基尔霍夫定律实验报告范文
  15. 席位分配:惯例Q值法,dhondt法matlab实现
  16. PLC通过PIO模式控制绝对位置型IAI电缸
  17. 极客空间-MySQL实战45天-第四天
  18. 微信小号的另一个作用
  19. 必做: 1041、1024、1077、2218、1183(较难)
  20. Java 心心跳动,能把女朋友感动哭的效果

热门文章

  1. 海信机顶盒交换机常用哪些LAN变压器
  2. python核密度图_使用Python绘制2D核密度估计
  3. 7讲项目实战js第三区域响应式菜单续
  4. 《惢客创业日记》2019.06.14(周五) 如何解决乞讨的诚信问题?
  5. 白杨SEO:公众号为什么会增加视频/视频号和服务?公众号视频号如何互相绑定?视频号公众号又如何互相解绑?启发是什么?
  6. 基于Golang语言GoFrame框架通用后台权限管理系统
  7. BNB Chain testnet faucet
  8. [AS3]心理测试题的开发
  9. python selenium鼠标点击_python selenium鼠标键盘操作(ActionChains)
  10. Python关闭文件