51單片機Modbus協(xié)議RTU模式校驗CRC計算方法.pdf

51單片機Modbus協(xié)議RTU模式校驗CRC計算方法.pdf

ID:48033839

大?。?80.24 KB

頁數:2頁

時間:2019-09-05

51單片機Modbus協(xié)議RTU模式校驗CRC計算方法.pdf_第1頁
51單片機Modbus協(xié)議RTU模式校驗CRC計算方法.pdf_第2頁
資源描述:

《51單片機Modbus協(xié)議RTU模式校驗CRC計算方法.pdf》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。

1、CRC域是兩個字節(jié),包含一16位的二進制值。它由傳輸設備計算后加入到消息中。接收設備重新計算收到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有誤。CRC是先調入一值是全“1”的16位寄存器,然后調用一過程將消息中連續(xù)的8位字節(jié)各當前寄存器中的值進行處理。僅每個字符中的8Bit數據對CRC有效,起始位和停止位以及奇偶校驗位均無效。CRC產生過程:1.先將CRC設置成0xFFFF2.將CRC中的低字節(jié)與信息中的第一個字節(jié)做XOR(異或)運算,并將運算結果傳回CRC的低字節(jié)(確保是CRC的低字節(jié),而不是CRC)3.CRC右移一位,CRC最

2、高位補0,并判斷移出位。4.如果移出位是0:重復3步驟,如果移出位是1:則CRC與A001H做XOR(異或)運算將運算結果傳回CRC(這次是CRC)。5.重復步驟3和4直到已經右移了8位為止。6.對信息的下一個字節(jié)重復2到5的步驟,直到信息中的數據字節(jié)都處理完。7.此時得到的CRC就是校驗CRC注意:在傳送CRC的時候確保低字節(jié)數據線傳送,然后在傳送高字節(jié)。下面是C代碼:VoidCRC_Check(unsignedchar*gets,unsignedcharlength){UnsignedintI;Unsignedintj;UnsignedintCR

3、C;UnsignedcharCRC_L;UnsignedcharCRC_H;CRC=0xFFFF;CRC_L=CRC;CRC_H=CRC>>8;for(i=0;i>=1;CRC=CRC^0xA001;}else{CRC=CRC/2;}CRC_H=CRC>>8;CRC_L=CRC;}}}判斷接收數據CRC:如:接收數據放在數組rsbuf[],length為接收到數據的總長度。判斷C

4、RC_L是否等于rsbuf[length-2];CRC_H是否等于rsbuf[length-1]

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。