ALDER32完整性算法VB6代码表示

ALDER32比CRC32速度快些,用于一般场合信号传输时用作数据校验。现在MCU计算速度快,而现场总线没多大提升,信息完整性用CRC16比较多,有些场合自己做传输开发时用ALDER32应该也行。

A$ = “010303E80002"
P = 1: Q = 0
For I = 1 To Len(A$)
   P = (P + Asc(Mid$(A$, I, 1))) And &HFFFF
   Q = (P + Q) And &HFFFF
Next I
   Q = Q Mod 65521
   Text1.Text = Right$(("0000" + Hex$(Q)), 4) + Right$(("0000" + Hex$(P)), 4)

比如发读数据指令 010303E80002

加上ALDER32检验 010303E800020F8F0267

收到010303E800020F8F0267后,取出后8字节 0F8F0267,前面的字串再进行ALDER32计算,如果与后8字节相同,收到的指令就是正确的,否则传输中受到了干扰或中断等异常错误,是废指令、不能用。

你可能感兴趣的:(经验分享,笔记)