您当前的位置:五五电子网电子知识plc技术PLC入门CRC校验计算子程序 正文
CRC校验计算子程序

CRC校验计算子程序

点击数:7283 次   录入时间:03-04 11:38:25   整理:http://www.55dianzi.com   PLC入门

TITLE=子程序注释

// CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB),移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码(16#A001)进行 异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。 

//   下面为CRC的计算过程: 

//   1.设置CRC寄存器,并给其赋值FFFF(hex)。 

//   2.将数据的第一个8-bit字符与16CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。 

//   3CRC寄存器向右移一位,MSB补零,移出并检查LSB。 

//   4.如果LSB0,重复第三步;若LSB1CRC寄存器与多项式码相异或。 

//   5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。 

//   6.重复第2至第5步直到所有数据全部处理完成。 

//   7.最终CRC寄存器的内容即为CRC值。 

// 

// 输入参数:

// 待校验数据区指针,第一个字节为数据长度

// LD0 DataBuff IN DWORD

Network 1 

LD SM0.0

[1] [2] [3]  下一页


本文关键字:子程序  PLC入门plc技术 - PLC入门