小盒子的小盒

BCC异或校验法

0
阅读(3184)

BCC异或校验法(Block Check Character)

适用范围:

适用于大多数要求不高的数据通讯。

应用例子:

IC卡接口通讯、很多单片机系统的串口通讯都使用。

实现方法:

很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。

校验值计算的代码类似于:

typedef  unsigned char  INT8U;
static INT8U BCC_CheckSum(INT8U *buf, INT8U len)
{
 INT8U i;
 INT8U checksum = 0;
 for(i = 0; i < len; i++) {
  checksum ^= *buf++;
 }
 return checksum;
}