BCC異或校驗(yàn)法
適用范圍:
本文引用地址:http://butianyuan.cn/article/201611/317164.htm適用于大多數(shù)要求不高的數(shù)據(jù)通訊。
應(yīng)用例子:
IC卡接口通訊、很多單片機(jī)系統(tǒng)的串口通訊都使用。
實(shí)現(xiàn)方法:
很多基于串口的通訊都用這種既簡單又相當(dāng)準(zhǔn)確的方法。它就是把所有數(shù)據(jù)都和一個(gè)指定的初始值(通常是0)異或一次,最后的結(jié)果就是校驗(yàn)值,通常把它附在通訊數(shù)據(jù)的最后一起發(fā)送出去。接收方收到數(shù)據(jù)后自己也計(jì)算一次異或和校驗(yàn)值,如果和收到的校驗(yàn)值一致就說明收到的數(shù)據(jù)是完整的。
校驗(yàn)值計(jì)算的代碼類似于:
typedefunsigned charINT8U;
staticINT8U BCC_CheckSum(INT8U *buf, INT8U len)
{
INT8U i;
INT8U checksum = 0;
for(i = 0; i < len; i++) {
checksum ^=*buf++;
}
returnchecksum;
}
評論