CRC校验原理简介:    CRC校验就是将传输的数据当做一个位数很长的数,将这个数除以另一个数( “模2除法” )。得到的余数作为校验数据附加到原数据后面。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。如果有余数,则表明该帧在传输过程中出现了差错。模二除法实例:CRC校验分为以下几个步骤:     (1)先选择一个用于在接收端进行校验时,对接收的帧进行除法运算的除数。
一、基础知识       1、CRC简介:            CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环
1、项目的需求来源      做为程序员码代码,开发软件,开发通信协议,相信避免不了与各种校验码打交道。校验码是通信协议中数据接收方用来校验数据合法性的一个编码。那么举个栗子,请看今早我和隔壁老王的对话, 隔壁老王:今天你吃了么?“嘎哈”        老赵:我今天吃的是包子。“哇哈”      &
什么是CRC校验CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。 CRC校验原理:其根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验校验码,但要注意,这里的数也
一、CRC是什么?循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。--百度百科二、什么时候需要进行CRC校验?在数据通讯的过程中,难免
转载 2023-10-26 06:06:38
69阅读
CRC(Cyclic Redundancy Check)校验应用较为广泛,以前为了处理简单,在程序中大多数采用LRC(Longitudinal Redundancy Check)校验,LRC校验很好理解,编程实现简单。用了一天时间研究了CRC的C语言实现,理解和掌握了基本原理和C语言编程。结合自己的理解简单写下来。1、CRC简介CRC检验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制
CRC校验原理及代码实现目录背景原理模2除法多项式计算流程代码实现()c语言实现c语言测试结果labview实现labview测试结果 目录背景在进行数据传输时,为了避免数据传输发生错误,需要对数据进行校验,从而产生了一些校验方法。CRC校验便是其中之一。校验流程如下: 1:数据发送方按照一定的计算方法得到校验码,附在数据串末尾。 2:数据接收方在接受到数据后,按照同样的方法对数据进行校验,如果
又例如这些文章所提供的代码似乎都是没有错误的,但很多文章的文字描述和代码并不对应。因此我也整理了一下,也当做是给自己做个笔记。CRC校验按位计算的程序很好理解,写起来也比较简单,就是把模二除法的过程整个描述一遍。但本人认为查表程序看起来还是有一定迷惑性的,因此接下来提供查表程序的相关代码和原理性介绍。查表程序总的来说就是对按位计算算法的循环(以一个字节为单位)。需要注意的是,CRC校验有多种模型,
C实现的CRC16算法CRC即循环冗余校验码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。基本原理任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。CRC的种类标准CRC生成多项式如下表:名称生成多项式简记式标
CRC校验CRC(Cyclic Redundancy Check)校验应用较为广泛,以前为了处理简单,在程序中大多数采用LRC(Longitudinal Redundancy Check)校验,LRC校验很好理解,编程实现简单。用了一天时间研究了CRC的C语言实现,理解和掌握了基本原理和C语言编程。结合自己的理解简单写下来。1、CRC简介CRC检验的基本思想是利用线性编码理论,在发送端根据要传送的
上一篇讲了CRC校验中的模2除算法。这次讲CRC校验原理和一些基础概念。百度百科:循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送
CRC校验是编程中使用比较多的一种检验方式,包括CRC8, CRC16, CRC32校验等。校验长度越长,校验所需要的时间越久。为了缩短计算时间,CRC校验又分为直接计算法和查表计算法。直接计算是一种按位计算方法,其计算原理如下:假定有待校验数据A = 1101,校验多项式B = 0000 0111,当前CRC校验CRC = 1011 1001, 期待结果C。则计算过程如下:步骤0:
CRC循环冗余校验原理参考const uint16 wCRCTalbeAbs[] = { 0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401, 0xA001, 0x6C00, 0x7800, 0xB401, 0x
原创 2021-06-17 16:03:22
965阅读
CRC程序设计   程序的宗旨:通过编写CRC校验程序,加深对CRC原理的理解,同时学会将书本上的原理运用于实际,动手实践才能学得更快。   注:本文关于CRC原理那部分内容,来自网络搜集。   1. 需求分析 编写一个CRC校验的模拟程序,该程序实现的功能如下: 输入:一串二进制比特串 输出:CRC校验码   2. CR
推荐 原创 2009-07-12 22:59:48
9985阅读
1点赞
7评论
 1. 为什么会有 CRC 校验码?答:数据有可能被更改,需要确认是否被更改,且不能占用太多字节,于是有了校验码。而对一个字节(8位)一个字节的进行循环计算,从而核对数据是否被更改。 2. 修改了一定能被 CRC 校验出来吗?答:不是,而是一定概率可以校验出来。奇偶校验就是属于 CRC 校验一种特例。所以,为了更好的校验,就有了多项式。更优的多项式,更高概率检查数据被更改。经常
package test; public class CRC { /** * getCRC<计算str的校验值> * * @param str为十六进制 * @return s为十六进制 */ public static String getCRC(String str) { int crc = 0x00; // initial value in
转载 2023-06-28 20:01:34
247阅读
原文地址:CRC校验原理作者:神人转载:CRC校验原理1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码10111
转载 2023-06-25 11:57:37
552阅读
问题:在嵌入式系统开发中,Modbus协议是工业控制系统中广泛应用的一种协议。本题用来简单模拟Modbus协议,只需根据条件生成符合该协议的数据帧,并解析所获取的数据。假设设备使用的协议发送数据格式如下:<SlaveAddress, 1 Byte> <Function, 1 Byte> <Start Address, 2 Bytes> <NumberofB
之前没接触过,记录一下抄的东西。Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,比较容易实现。先来简单分析一条MODBUS-RTU报文,例如:01 06 00 01 00 17 98 0401 06 00 01 00 17 98 04 从机地址
转载 10月前
227阅读
CRC校验码举例一、首先复习一下异或运算(XOR),相同得0,相异得1.二、多项式算数   使用多项式算数是为了是为了在进行二进制计算时无需考虑进位问题。   CRC中用到的除数正是由多项式的各项系数组成。   比如+++1,CRC除数为10111。三、计算步骤   1.展开多项式,得到CRC除数。&nbsp
转载 2023-10-12 21:32:39
146阅读
  • 1
  • 2
  • 3
  • 4
  • 5