BCC异或校验法
适用范围:
本文引用地址:https://www.eepw.com.cn/article/201611/317164.htm适用于大多数要求不高的数据通讯。
应用例子:
IC卡接口通讯、很多单片机系统的串口通讯都使用。
实现方法:
很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。
校验值计算的代码类似于:
typedefunsigned charINT8U;
staticINT8U BCC_CheckSum(INT8U *buf, INT8U len)
{
INT8U i;
INT8U checksum = 0;
for(i = 0; i < len; i++) {
checksum ^=*buf++;
}
returnchecksum;
}
评论