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