CRC校验方法的实现

article/2025/7/9 5:05:48

1,确定收发双方所使用的校验位数(由收发双方自定义)

     如1个字节的为CRC-8校验,2字节为CRC-16校验,4字节为CRC-32校验。

2,确定除数(生成多项式)

     根据校验字节数,确定某个除数G(x),这个除数一般以二进制形式表示,如果选择CRC-8校验,除数需要8位以内,CRC-16需要16位以内,同理CRC-32需要32位以内的除数。例如,CRC-8校验G(x)选择为 0b00001010,则G(x) = x^3 + x^1 + x^0,我们又称这个多项式为CRC校验的生成多项式。

      虽然生成多项式可以自定义,不过选择适当的多项式可以把校验的出错概率降到最低,经过砖家们的论证,已经有一些多项式被用来做标准,以降低数据传输时出错的概率,可以百度一下CRC标准多项式。标准多项式中,最高位和最低位必须为1,如下图:

3,标准生成多项式G(x) = x8+x5+x4+1 最高次幂为8(R),把需要做校验的数据C左移8(R)位(低位补0)得到数据C(x)。

4,把C(x)对G(x)做模2除法运算,得到的余数SUM(余数位数必须是多项式最高次幂8(R),位数不够高位补0)便是CRC校验和。 C+SUM便是CRC校验后的数据。


http://chatgpt.dhexx.cn/article/JFyo4oWq.shtml

相关文章

【Verilog】CRC校验码生成器原理及verilog实现

目录 一、CRC的基本原理 二、CRC生成步骤 2.1举个栗子 三、Verilog实现 四、参考资料 4.1 CRC在线计算器 一、CRC的基本原理 CRC :Cyclic Redundancy Check循环冗余校验码 将被处理的报文比特序列当做一个二进制多项式A(x)的系数,任意一个由二进制…

CRC校验原理及其使用

目录 何为CRC 为什么需要校验 为什么是CRC CRC的缺点 目录 何为CRC 为什么需要校验 为什么是CRC CRC的缺点 如何进行CRC校验 校验标准式是什么玩意? 常见的CRC校验 CRC校验计算过程 CRC校验代码参考 代码解读 生成CRC8校验表的代码 CRC检验网站 如何…

FPGA校验(2):CRC校验

CRC:输入序列对某个表达式求余数,或者认为一系列数据求异或的过程。 CRC校验 CRC原理 CRC实现非常简单,但想要真正掌握CRC算法原理,就必须清楚地了解有限域的运算规则,知道CRC就是有限域中的除法余数,并且清楚如何将串…

crc校验c语言程序,C语言:CRC校验

一、CRC码 CRC:Cylic Reduancy check译作汉语就是循环冗余校验码。 二、XOR XOR:逻辑运算符异或,不知道用符号怎么写,总之其运算法则是,不同为1,相同为0。 三、用XOR代替算术运算上除法的两个例子。 1、10110010000/11001 第一次异或(相除),得到商为1,余数为1111,加入…

【Verilog】CRC 校验(二)用 Verilog 实现生成 CRC 校验码

目录 实验任务 CRC 生成 Verilog 实现 电路生成原理 模块设计图 CRC 生成时序图 具体代码实现 上板验证 实验任务 在上一篇介绍了 CRC 校验码的原理,如何计算 CRC 校验码,这篇介绍如何利用 Verilog 实现CRC 校验码的生成。 什么是 CRC 校验码&a…

CRC校验 - 基于FPGA的实现

CRC校验 - 基于FPGA的实现 0 背景 CRC即循环冗余校验:常用于数据通信领域中,通常由发送端添加校验码于单帧数据的尾部,并由接受方进行提取和校验该帧数据传输是否正确。 循环冗余检查(CRC)是一种数据传输检错功能&am…

CRC校验的原理及实现方法

一、CRC校验介绍 循环冗余校验码(CRC),是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。循环冗余校验是通过某种数学运算来建立数据位和校验位的约定…

C#编程,CRC校验原理

1.CRC简介 CRC全称循环冗余校验(Cyclic Redundancy Check, CRC),是通信领域数据传输技术中常用的检错方法,用于保证数据传输的可靠性。网上有关这方面的博客和资料很多,本文尽量简洁的梳理一下它的原理。后面还会结合自己的实践经…

LabVIEW实现CRC校验

目录 1、内部控件计算CRC校验 2、公式节点计算CRC校验 CRC(循环冗余校验),是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除…

CRC校验及C语言实现

摘自:CRC校验原理及其C语言实现 地址:https://blog.csdn.net/whik1194/article/details/108837493?spm1001.2014.3001.5502 目录 什么是校验算法CRC算法简介CRC参数模型CRC计算CRC校验CRC计算的C语言实现CRC计算工具总结 什么是校验算法 最近的工作中&…

SwitchHosts

SwitchHosts 官网:https://oldj.github.io/SwitchHosts/ 客户端支持 WindowsLinuxMac 功能支持 快速切换Hosts在线 hosts 方案Chrome浏览器Hosts实时生效 v3.3.12后将被支持,可暂时下载 https://github.com/CloverNet/SwitchHosts

Host服务

这也是看网上的例子自己跟着配置做的一个小demo,这里记录一下。 一、创建一个空的控制台应用程序 二、安装所需dll  1.Quartz     Install-Package Quartz -Version 2.3.3  2.Owin    Install-Package Owin -Version 1.0.0(这个暂时装上&…

Go get http 服务

阅读目录 package mainimport ("encoding/json""fmt""net/http" )type MirageIPResponse struct {Code string json:"code"MirageIP string json:"MirageIp" }func main() {// 定义处理函数handler : func(w http.Respo…

google host地址

2019独角兽企业重金招聘Python工程师标准>>> http://git.oschina.net/AlexKing/host 保持更新中。。。 亲测通过,如果无法使用可以联系我,再做更新调整。 转载于:https://my.oschina.net/u/260921/blog/506286

virtio,vhost 和vhost-user

virtio 在虚拟机中,可以通过qemu模拟e1000网卡,这样的经典网卡一般各种客户操作系统都会提供inbox驱动,所以从兼容性上来看,使用类似e1000的模拟网卡是非常一个不错的选择。 但是,e1000网卡上也包含了复杂的io端口&a…

GO的服务

1.go的安装 1.1 确认版本go version go version go1.20.4 darwin/amd64 可以看到是macos10.14版本。如果是m1 需要安装对应的版本 1.2 用vscode 进行编写go的简单例子 先进入vscode的界面,新建一个目录为godemo,里面就是go的例子的工作目录&#xff0…

Go Registry

实现微服务的服务注册中心,支持服务服务注册、接收心跳等。客户端实现基于注册中心的服务发现机制 微服务 微服务是一些协同工作的小而自治的服务 微服务主要分为六个部分组成 服务描述:类似服务的文档说明,简单但不可或缺。 比如&#xff1a…

Gogs私服搭建

1. Gogs介绍 官网地址:https://gogs.io 文档地址:https://gogs.io/docs Gogs,全称为Go Git Service,是一个基于 Go 语言开发的Git服务。它提供了一个类似于GitHub的界面和功能,允许您在自己的服务器上搭建私有的Git仓库…

vhost-user

1,virtqueue 图一 每个queue实际上是由tx/rx两个virtqueue组成的也就是说tx和rx的virtqueue是分开的,并没有共享。一个virtio net设备最多有多少个queue由后端vhost决定,但前端可以通过ethtool –L eth0 combined 16命令动态修改当前队列数&…

gohost -- go 开发的命令行hosts配置管理工具

前几天在微博上看到有人推荐了lazygit这个工具,让人眼前一亮,什么时候命令行也可以这么抢到了,?,调研了下,发现它使用了gocui,使用它可以做出来很多很炫的命令行工具。 现有的hosts工具里面也有switchosts…