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