-
2021-09-05 08:29:39
问题1
-
循环冗余校验码(Cyclic Redundancy Check,CRC)是数据通信领域中最常用的一种差错校验码,该校验方法中,使用【多项式除法】,也就是【模2除法】运算后的余数为校验字段。
-
如数据信息为
n
位,则将其左移k
位后,被长度为k+1
位的【生成多项式】相除,所得的k
位余数即构成k
个校验位,构成n+k
位编码。 -
若数据信息为
1100
,生成多项式为X³ + X + 1
,即(1011),则CRC编码如何计算?
计算方法
- 原始数据:
1100
,左移3位,这里的3
,就是【生成多项式】最高次方,如X³
,最高为3
,左移3位后为:1100000
- 注意,
1100000
虽然可以转换为十进制的96,多项式1011
为11,但多项式除法不是96%11。 - 多项式的计算方法,类似于【除法列式】计算流程,不过不需要【借位】,也就是不需要【借一当二】
更多相关内容 -
-
Modbus-Rtu-指令CRC校验码计算,modbus的crc校验手动计算,C,C++
2021-09-10 18:06:59超级好用的Modbus-Rtu-指令CRC校验码计算工具,功能很全,CRC16 CRC8还有多项式可选 -
CRC校验码计算方法.pdf
2019-09-17 23:56:41CRC校验码计算方法pdf,CRC校验码计算方法 -
crc校验,crc校验码计算,LabView
2021-09-10 15:29:32labview试验crc16的校验位计算。 -
CRC校验码计算小工具
2017-04-18 00:30:26*本程序是为MODBUS协议而写的,所以最后是两位CRC检验码,高位在后,低位在前。 *使用十分的方便。 -
CRC校验码计算软件_源代码
2018-09-28 11:34:591.CRC-16/MODBUS(最通用) 2.CRC-16/CCITT-FALSE 支持以上CRC校验计算方式(分查表法和计算法),原代码可执行,能正确输出结果。需要的朋友可以直接 引用到自己项目中。谢谢支持。 -
CRC校验码计算与校验函数
2017-02-12 20:38:40本例提供了CRC校验码的计算与判断函数,从CRC4到CRC16任意计算,生成多项式由一个整数表示,可以自由定制。 -
Modbus通讯CRC校验码计算器
2019-03-22 13:17:52自动计算Modbus通信报文的两个CRC校验位,不用人手工计算。。。。。。。。。。。。。。。。。。。。。。。。。。 -
CRC校验码计算器
2017-03-19 20:22:38CRC校验码计算工具(8位,16位,32位均可计算) -
CRC校验计算工具.rar
2020-10-21 11:06:08为解决CRC校验专门写的一个小程序,方便计算CRC校验。需要详细程序资料的请留言。。。。。。。。。。。 -
crc校验,crc校验码计算,LabView源码.zip
2021-10-15 00:33:55crc校验,crc校验码计算,LabView源码.zip -
crc校验,crc校验码计算,LabView源码.rar
2021-10-10 21:44:02crc校验,crc校验码计算,LabView源码.rar -
MATLAB CRC校验码计算
2009-12-08 21:12:23输入校验多项式和二进制信号,输出校验码,其实编写很简单 -
modbus crc校验码计算 verilog
2022-03-03 20:39:10一次项目中使用,计算其他位数校验码要修改一下代码,关键是理解 -
CRC校验码计算过程
2021-05-19 17:13:10namespace CRC { class Program { static void Main(string[] args) { byte[] date = { 0x01, 0x05, 0x00, 0x... //要计算CRC校验的数据 byte[] crc = new byte[2]; //用来保存CRC效验码 crc = GetCRC(date)...namespace CRC
{
class Program
{
static void Main(string[] args)
{
byte[] date = { 0x01, 0x05, 0x00, 0x00, 0xFF, 0x00 }; //要计算CRC校验的数据
byte[] crc = new byte[2]; //用来保存CRC效验码
crc = GetCRC(date); //得到data的CRC码
foreach (var item in crc)
{
Console.Write(item.ToString("X2") + " "); //打印出CRC码
}
Console.WriteLine();
Console.ReadKey();
}
public static byte[] GetCRC(byte[] byteData) //计算CRC校验的数据方法
{
byte[] CRC = new byte[2];UInt16 wCrc = 0xFFFF;
for (int i = 0; i < byteData.Length; i++)
{
wCrc ^= Convert.ToUInt16(byteData[i]);
for (int j = 0; j < 8; j++)
{
if ((wCrc & 0x0001) == 1)
{
wCrc >>= 1;
wCrc ^= 0xA001; //异或多项式
}
else
{
wCrc >>= 1;
}
}
}CRC[1] = (byte)((wCrc & 0xFF00) >> 8); //高位在后
CRC[0] = (byte)(wCrc & 0x00FF); //低位在前
return CRC;}
}
} -
Modbus-Rtu-指令CRC校验码计算,modbus的crc校验手动计算,C,C++源码.zip
2021-10-15 00:48:30Modbus-Rtu-指令CRC校验码计算,modbus的crc校验手动计算,C,C++源码 -
CRC16校验码计算器v1.2.zip
2020-03-12 12:07:05CRC16校验器,适用于CRC数据校验。亲测可用。在这也谢谢之前分享的人,希望大家事事顺利,技术上多多进步。 -
CRC校验码计算公式
2018-12-07 10:22:07CRC校验码计算公式 int CRC_Check(char *m_Data,short m_Size) { int i0,i1; char CRC16Lo,CRC16Hi; //CRC寄存器 char SaveHi,SaveLo; CRC16Lo = 0xFF; CRC16Hi = 0XFF; for(i0=0;i0&lt;m_Size;i0++...CRC校验码计算公式
int CRC_Check(char *m_Data,short m_Size)
{
int i0,i1;
char CRC16Lo,CRC16Hi; //CRC寄存器
char SaveHi,SaveLo;
CRC16Lo = 0xFF;
CRC16Hi = 0XFF;
for(i0=0;i0<m_Size;i0++)
{
CRC16Lo = CRC16Lo ^ *(m_Data+i0); //每一个数据与CRC寄存器进行异或
for(i1=0;i1<8;i1++)
{
SaveHi = CRC16Hi;
SaveLo = CRC16Lo;
CRC16Hi >>=1; //高位右移一位
CRC16Lo >>=1; //低位右移一位
if((SaveHi & 1) == 1) //如果高位字节最后一位为1
{
CRC16Lo |=0x80; //则低位字节右移后前面补1
}
if((SaveLo & 1) == 1) //如果LSB为1,则与多项式码进行异或
{
CRC16Hi ^=0XA0;
CRC16Lo ^=1;
}
}
}
return ( CRC16Hi << 8 )| CRC16Lo;
} -
循环冗余校验码(CRC)计算源代码合集
2019-02-15 15:51:43循环冗余校验码(CRC)计算源代码合集,里面包含了各种编程语言(包括C,C++,单片机等)CRC代码的实现 -
串口通讯CRC计算校验工具
2018-12-28 00:00:48串口通讯CRC计算校验工具,便于工程调试,本工具用来计算CRC校验,可以计算接收到的校验码是否正确。在最下面输入字节,直接计算。 -
CRC校验码并行计算的FPGA实现.pdf
2019-07-23 14:34:03用软件实现 CRC 校验码计算很难满足高速数据通信的要求 ,基于硬件的实现方法中 ,有串行经典算法 LFSR 电路 以及由软件算法推导出来的其它各种并行计算方法。以经典的LFSR 电路为基础 ,研究了按字节并行计算 CRC 校验... -
CRC校验码的计算
2021-04-30 16:15:41Step1:原始信息后“添0”。 假定生成多项式G(x)阶为r,则在原始信息为后添加r个0,新生成的信息串共m+r位,对应多形式设定为x^rM(x)。 以G(X)=X^4+X+1为例。 G(X)=1X^4+0* X^3+ 0X^2+ 1X+1*X0,所以生成的对应的二...Step1:原始信息后“添0”。
假定生成多项式G(x)阶为r,则在原始信息为后添加r个0,新生成的信息串共m+r位,对应多形式设定为x^rM(x)。
以G(X)=X^4+X+1为例。
G(X)=1X^4+0* X^3+ 0X^2+ 1X+1*X0,所以生成的对应的二进制字符串为10011。由于最高阶为4,所以在原始信息10010后添加4个0后,得到的信息串为10010 0000。
Step2:使用生成多项式除新字符串。
利用模2除法,对应的G(x)位去除串x^rM(x),得到长度位r位余数。除法过程如下图所示:得到余数1100。
注意:余数不足r,则余数左边用若干个0补齐。例如求得余数为11,r=4,则补两个0得到0011.
-
C# Modbus_CRC16校验码计算
2017-06-14 14:17:32基于VS2010 C# Modbus_CRC16校验码计算 -
CRC码计算及校验原理计算
2021-05-28 17:12:51奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误。 1. CRC校验原理 CRC校验原理看起来比较复杂,好难懂,因为大多数书上基本上是以二进制的多项式... -
【Modbus】 RTU CRC校验码计算方法
2017-08-09 14:38:29附:Modbus RTU CRC校验码计算方法 在CRC计算时只用8个数据位, 起始位及停止位,如有奇偶校验位也包括奇偶校验位 ,都不参与CRC计算。 CRC计算方法是: 1、 加载一值为0XFFFF的16位... -
串口通信CRC校验码得计算方法
2011-04-16 20:27:26CRC循环校验方法的说明,让你充分理解其原理 -
计算CRC冗余校验码(32)
2017-02-17 14:26:37计算CRC 校验码 计算机网络 -
CRC16校验码计算工具
2018-01-07 18:16:51做串口通讯时经常计算CRC校验码,有了这个小公举,调试非常方便