首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CRC校验码

循环冗余校验码CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。...根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。...1)移位:将原信息码(kbit)左移R位 (R是多项式的最高次幂,即在信息码的后面补上R个0) (2)相除:将(1)中移位好的编码作为被除数,将多项式看成二进制码作为除数(取异或),得到的R位余数就是CRC...校验码。...2、此题生成多项式有4位(R+1)(注意:4位的生成多项式计算所得的校验码为3位,R为校验码位数),要把原始报文C(X)左移3(R)位变成1010 000 3、用生成多项式对应的二进制数对左移3位后的原始报文进行模

5.1K71

【投稿专区】crc校验码的计算

在Modbus或环保212协议中,数据的校检码(CRC-16)由两个字节16位构成。而一般电气、自动化仪表的crc16校验,多项式码选用16进制A001。...CRC的计算方式如下: 在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB移位后已经被移出...重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位,所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。...Go 语言实现如下: // 传入数据内容,返回 crc校验码 func Crc16Check(data []byte) []byte { var crc16 uint16 = 0xFFFF...for j := 0; j < 8; j++ { if crc16&0x0001 > 0 { crc16

3.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于FPGA 的CRC校验码生成器

    今天给大侠带来基于FPGA的CRC校验码生成器,话不多说,上货。 1、概述 CRC即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。...2、CRC校验的基本原理: CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位...3、校验码的生成规则: 1)将原信息码左移r bit,右侧补零,如 110--> 110 0000; 2)用110 0000除以g(x) (注意,使用的是模2除法,见下文),得到的余数即为CRC校验码...; 3)将校验码续接到信息码的尾部,形成CRC码。...4、关于生成多项式g(x) 在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。

    1.4K20

    基于FPGA的CRC校验码生成器设计

    今天给大侠带来基于FPGA 的CRC校验码生成器设计,话不多说,上货。 一、概述 CRC,即Cyclic Redundancy Check,循环冗余校验,是一种数字通信中的常用信道编码技术。...二、CRC校验的基本原理 CRC码是由两部分组成的,前部分是信息码,就是需要校验的信息,后部分是校验码,如果CRC码长共n bit,信息码长k bit,就称为(n,k)码,剩余的r bit即为校验位。...校验码; 3) 将校验码续接到信息码的尾部,形成CRC码。...四、关于生成多项式g(x) 在产生CRC校验码时,要用到除法运算,一般来说,这是比较麻烦的,因此,把二进制信息预先转换成一定的格式,这就是CRC的多项式表示。...仿真结果如下:得到的是数据0xaa和0xf0的CRC校验码,为验证结果的正确性,可以按照模2法则手工计算一下。 ?

    1.4K20

    FPGA手撕代码——CRC校验码的多种Verilog实现方式

    用Verilog实现CRC-8的串行计算,G(D)=D8+D2+D+1,计算流程如下图所示: ? 一、分析 CRC循环冗余校验码(Cyclic Redundancy Check),检错码。...7] ^ data_in; crc_reg_d[1] = crc_reg_q[7] ^ data_in ^ crc_reg_q[0]; crc_reg_d[2] = crc_reg_q[7] ^ data_in...^ crc_reg_q[1]; crc_reg_d[3] = crc_reg_q[2]; crc_reg_d[4] = crc_reg_q[3]; crc_reg_d[5] = crc_reg_q[4...CRC,计算出的 CRC 结果就是直接的 8 位 CRC,按照题目要求,需要串行输出 CRC 结果。...并行计算并行输出 (1)对于单bit输入的序列,只要将并行计算串行输出的串并转换去掉,直接输出8-bit的CRC校验值即可; (2)对于多bit同时输入的序列,通过介绍的两个在线平台去生成运算逻辑(笔试肯定不会丧心病狂到考多

    12.1K55

    一文讲透CRC校验码-附赠C语言实例

    3、数据宽度 数据宽度指的就是CRC校验码的长度(二进制位数),知道了CRC的运算概念和多项式,就可以理解这个概念了,CRC长度始终要比除数位数少1,与简记式长度是一致的。...通常,输入值反转后的结果值也会是反转的,所以这两个选项一般是同向的,我们只有在在线CRC计算器中会看到自由选择正反转的情况存在。...五、CRC原理 CRC原理:在K位信息码(目标发送数据)后再拼接R位校验码,使整个编码长度为N位,因此这种编码也叫(N,K)码。...CRC校验码(注:余数必须比除数少且只少一位,不够就补0) (3)将这个校验码附在原m位数据后面,构成新的M+K-1位数据,发送给接收端。...,下面就举例,来说明CRC校验码生成过程。

    4.8K20

    【计算机网络】数据链路层 : 差错控制 ( 检错编码 | 奇偶校验码 | CRC 循环冗余码 )★

    文章目录 一、 奇偶校验码 二、 奇偶校验码 特点 三、 奇偶校验码 示例 四、 CRC 循环冗余码 ( 原理说明 ) 五、 CRC 循环冗余码 计算示例 六、 CRC 循环冗余码 生成多项式 一、 奇偶校验码...---- 奇偶校验码 组成 : ① 信息元 : n-1 位 ; 要发送的有效数据 ; ② 校验元 : 1 位 ; 冗余码 ; ③ 奇校验码 : 1 的个数为 奇数 ; 冗余位 1 ;...④ 偶校验码 : 1 的个数为偶数 ; 冗余位 0 ; 二、 奇偶校验码 特点 ---- 奇偶校验码 特点 : 该编码方法 , 只能检查 奇数个 比特错误 , 如果有 偶数个比特错误 , 无法检查出来..., 检错率是 50\% ; 三、 奇偶校验码 示例 ---- 奇偶校验码 示例 : 传输 字符 ‘S’ 的 ASCII 码 1100101 , 使用 奇校验码 , 在 数据前 添加 1 位...循环冗余校验编码 , 进行差错控制 , 只能做到无差错接收 , 凡是接收到的数据帧 , 都是正确的 ; 五、 CRC 循环冗余码 计算示例 发送数据 1101 0110 11 , 使用 CRC 循环冗余码

    3.1K00

    【linux命令讲解大全】005.文件完整性校验与压缩包比较的常用命令:cksum、bzcmp和cmp

    cksum 检查文件的CRC是否正确 补充说明 cksum命令是用来检查文件的CRC是否正确,以确保文件在从一个系统传输到另一个系统的过程中没有损坏。...语法 cksum [选项] [文件] 选项 --help:显示在线帮助; --version:显示版本信息。 参数 文件:指定要计算校验的文件。...testfile1 上面输出信息中,"1263453430"表示校验码,"78"表示字节数。...注意:如果文件中有任何字符被修改,将改变计算后的CRC校验码值。...字符数目>:忽略指定数目的字符; -l或--verbose:标示出所有不同的地方; -s或--quiet或--silent:不显示错误信息; -v或--version:显示版本信息; --help:显示在线帮助

    32010

    白话 CRC

    其实 CRC 原理比较简单,其根本思想就在要发送的帧后面附加一个数(这个就是 CRC 校验码),生成一个新帧发送给接收端。...理解 CRC,最为关键的就是理解 CRC 校验码的生成方法。 CRC 校验码生成方法是对原始数据采用特定的多项式(对应一个二进制数)进行模2除法运算,得到的余数即为 CRC 校验码。...CRC 校验码计算示例 由以上分析可知,既然除数是随机的,或者按标准选定,所以 CRC 校验的关键是如何求出余数,也就是 CRC 校验码。 下面以一个例子来具体说明整个过程。...(2)因为生成多项式的位数为 5,根据前面的介绍,得知 CRC 校验码的位数为4(校验码的位数比生成多项式的位数少1)。...常用CRC版本 CRC 校验码的生成关键是选择一个二进制多项式作为除数。

    2.2K10

    CRC编码计算方法及C语言实现

    CRC编码计算方法及C语言实现CRC(Cyclic Redundancy Check)是一种常用的错误校验码,用于检测和纠正传输过程中的错误。...生成多项式的系数决定了CRC编码的性能和容错能力。在CRC编码中,数据和生成多项式进行除法运算,得到的余数作为校验码附加到数据中进行传输。...接收方将数据和附加的校验码进行除法运算,如果余数为0,则表明数据在传输过程中没有发生错误。下面将介绍一种常用的CRC编码计算方法及其C语言实现。...结果处理:将R(x)的系数作为校验码附加到数据D(x)的后面,得到CRC编码后的数据。...通过本文的介绍,我们了解了CRC编码的计算方法,并使用C语言实现了CRC编码的计算过程。CRC编码作为一种高效的错误校验码,可以帮助我们检测和纠正传输过程中的错误。

    47020

    CRC码计算及校验原理的最通俗诠释

    CRC校验码的计算示例 由以上分析可知,既然除数是随机,或者按标准选定的,所以CRC校验的关键是如何求出余数,也就是CRC校验码。 下面以一个例子来具体说明整个过程。...现假设选择的CRC生成多项式为G(X) = X4 + X3 + 1,要求出二进制序列10110011的CRC校验码。...(2)因为生成多项式的位数为5,根据前面的介绍,得知CRC校验码的位数为4(校验码的位数比生成多项式的位数少1)。...图5-10 CRC校验码计算示例 (3)把上步计算得到的CRC校验码0100替换原始帧101100110000后面的四个“0”,得到新帧101100110100。...通过以上CRC校验原理的剖析和CRC校验码的计算示例的介绍,大家应该对这种看似很复杂的CRC校验原理和计算方法应该比较清楚了。

    1.1K20

    串口通信(二) 数据校验

    串口通信校验码发送与接收方式 串口通信中的校验码通常是通过在数据包的末尾附加一个固定长度的校验码来实现的,发送方在发送数据时计算校验码并将其附加在数据包的末尾,接收方在接收到数据后同样计算校验码,并与发送方发送的校验码进行比对...常见校验方法 常用的校验方法包括奇偶校验、校验和和循环冗余校验(CRC)。...示例 假设需要对数据0x12, 0x34, 0x56, 0x78进行CRC校验,生成多项式为CRC-16多项式0x8005: 数据序列为0x12345678; 在数据序列的末尾添加一个0,得到0x123456780...代码 /** * 计算crc校验 * * @param sendData 发送的数据 * @param length 发送的数据长度 * @return crc校验值 */ public static...crc = (crc >> 1) ^ 0xa001; } else { crc = crc >> 1; }

    90710
    领券