可編程485通訊智能檢測網(wǎng)絡(luò)電力監(jiān)控電流表產(chǎn)品型號:
可編程485通訊智能檢測網(wǎng)絡(luò)電力監(jiān)控電流表技術(shù)參數(shù):
外形尺寸:
安裝方式:
按鍵編程說明:
錯誤校驗(yàn)碼(CRC)的生成方法
錯誤校驗(yàn)(CRC)域占用兩個字節(jié),包含了一個 16 位的二進(jìn)制值。CRC 值由傳輸設(shè)備計(jì)算出來,然后附加到數(shù)據(jù)幀上,接收設(shè)備在接受數(shù)據(jù)時重新計(jì)算 CRC 值,然后與接收到的 CRC 域中的值進(jìn)行比較,如果這兩個值不相等,就發(fā)生了錯誤。
CRC 運(yùn)算時,首先將一個 16 位的寄存器預(yù)置為全 1,然后連續(xù)把數(shù)據(jù)幀中的每個字節(jié)中的 8 位與該寄存器的當(dāng)前值進(jìn)行運(yùn)算,僅僅每個字節(jié)的 8 個數(shù)據(jù)位參與生成 CRC,起始位和停止位以及可能使用的奇偶位都不影響CRC。在生成 CRC時,每個字節(jié)的 8 位與寄存器中的內(nèi)容進(jìn)行異或,然后將結(jié)果向低位移位,高位則用“0" 補(bǔ)充,低位(LSB)移出并檢測,如果是 1,該寄存器就與一個預(yù)設(shè)的固定值(0A001H)進(jìn)行一次異或運(yùn)算, 如果低位為 0,不作任何處理。CRC 生成流程:
1 預(yù)置一個 16 位寄存器為 0FFFFH(全1),稱之為 CRC 寄存器。
2 把數(shù)據(jù)幀中的個字節(jié)的 8 位與CRC 寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回 CRC 寄存器。
3 將CRC 寄存器向右移一位,高位填 0,低位移出并檢測。
4 如果低位移出為 0:重復(fù)第 3 步(下一次移位);如果低位移出為 1:將CRC 寄存器與一個預(yù)設(shè)固定值(0A001H)進(jìn)行異或運(yùn)算。
5 重復(fù)第 3 步和第4 步直到8 次移位。這樣就處理完了一個完整的 8 位。
6 重復(fù)第 2 步到第5 步來處理下一個 8 位,直到所有的字節(jié)處理結(jié)束。
7 終 CRC 寄存器的值就是 CRC 的值。此外還有一種利用查表計(jì)算 CRC 的方法,它的主要特點(diǎn)是計(jì)算速度快,但是表格需要較大的存儲空間,該方法此處不再贅述,請查閱相關(guān)資料。