92号中石油价最新消息? 油价92最新价格
2023-08-18
很多朋友对crc校验例题,crc校验方法及示例不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。
CRC校验简介CRC是循环冗余校验(1):是数据通信领域中最常用的错误校验码,其特点是信息字段和校验字段的长度可以任意选择。循环冗余校验(CRC)是一种数据传输错误检测功能,它对数据进行多项式计算,并将得到的结果附加到帧的后面。接收设备也执行类似的算法来确保数据传输的正确性和完整性。
在数据存储和数据通信领域,为了保证数据的正确性,CRC校验实用程序库不得不采用错误检测的手段。在众多的错误检测方法中,CRC是最著名的一种。CRC的全称是循环冗余校验,其特点是检错能力强,开销低,易于用编码器和检测电路实现。从它的检错能力来看,它发现不了错误的概率只有0.0047%以下。在性能和开销上,远远优于奇偶校验、算术和校验。
因此,在数据存储和数据通信领域,CRC无处不在:著名通信协议X.25的FCS(帧检错序列)使用CRC-CCITT,WinRAR,NERO,ARJ,LHA等压缩工具软件使用CRC32,磁盘驱动器使用CRC16进行读写,常见的图像存储格式GIF和TIFF也使用CRC作为检错手段。下面描述硬件生成和CRC计算的过程。
以最常用的CRC-16为例说明CRC16的硬件生成过程。
CRC-16代码由两个字节组成。开始时,CRC寄存器的每个位都预设为1,然后CRC寄存器与8位数据进行异或运算,然后CRC寄存器从高电平变为低电平,最高有效位(MSB)用0填充。如果最低有效位(已移出CRC寄存器的LSB)为1,则该寄存器与预定义的多项式代码进行异或运算,否则LSB为零。
重复上述由高到低的移位8次,处理第一个8位数据。此时,CRC寄存器的值与下一个8位数据进行异或运算,并像前面的数据一样移位8次。处理完所有字符后,CRC寄存器中的值就是最终的CRC值。
CRC硬件计算过程1。设置CRC寄存器,并将其分配给FFFF(十六进制)。2.将数据的第一个8位字符与16位CRC寄存器的低8位进行异或运算,并将结果存储在CRC寄存器中。3.三号。CRC寄存器右移一位,MSB用零填充,LSB移出并检查。4.如果LSB为0,重复第三步;如果LSB为1,则CRC寄存器和多项式代码不同或。注意:这一步检查的LSB应该是右移前的LSB,也就是第三步之前的LSB。
5.重复步骤3和4,直到完成所有8个班次。此时,一个8位数据被处理。6.重复步骤2至5,直到所有数据都处理完毕。7.CRC寄存器的最终内容是CRC值。
CRC-16验证概述CRC-16生成的多项式表示为x的乘数,如X3 X2 1,而不是二进制码1101的表示。如果生成多项式是素数多项式,则可以定义并提出几个标准生成多项式来优化错误检测。RTU协议采用对应于二进制码1 1000 0000 0000 0101的生成多项式(X16 X15 X2 1)。生成的CRC是CRC-16。
算法CRC-16的计算算法如图3.1所示。请结合后面展示的计算实例来理解。图中显示了发送端CRC数据的计算,这些数据最终会作为校验码附加到发送帧中。同样的算法也用于接收和处理。但是它还包括将在接收侧计算的CRC数据与发送的CRC数据进行比较的过程。读出传输数据的计算示例的示例
站号1,fc=3,功能码P02 (P为03 H,02为02H),读取数据个数为20,GP为生成多项式(1010 0000 0000 0001)。通过以上计算,传输的数据如下。帧长的计算为了计算CRC-16,需要知道变长的消息长度。所有消息类型的长度可由表3.14中的回复消息长度确定。
以上知识分享希望能够帮助到大家!
版权声明:本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们
推荐阅读
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
2023-08-18
栏目热点
92号中石油价最新消息? 油价92最新价格
LilyGoT手表键盘C3迷你电脑套件
索泰ZBOXEdgeCI342迷你电脑正式上市
谷歌在最新的视频预告片中展示了PixelWatch的独特设计
三星与设计师Juun.J合作推出限量版可折叠产品和配件
从2023年起Fitbit设备将需要Google帐户
TOKKCAMC2+智能WiFi独立日 夜视摄像头
三星正在与全球时尚品牌JUUN.J合作
OnePlusNordWatch的颜色选项通过泄露的渲染揭示
就在第一款Nothing手机发布之前一种新的TWS芽设计浮出水面