plc學者
級別: 略有小成
|
MODBUS通訊協(xié)議RTU模式中的CRC效驗是怎么算的,哪位大哥能給解析一下,不勝感激!! |
---|---|
|
xcgksp
級別: 略有小成
|
MODBUS協(xié)議CR-16碼的算法傳輸格式的最后兩字節(jié)為CRC碼,高位在后,低位在前其余為信息,高位在前,低位在后。例子,傳輸信息為0x0106000503E89975,(0x表示為十六進制)則CRC = 0x7599.,初始信息為:0x0106000503E8 傳輸信息中的CRC碼(0x7599)是如何算出來的? 一般算法: 1. 將CRC賦值0xFFFF。 2. 取初始信息的第一個字節(jié)(8位)與CRC(0xFFFF)進行異或運算,將結果賦給CRC。 3. 將CRC數據右移一位,最前位(左邊)補0。 4. 如果右移前,CRC最低位(最右端)為1,則將右移后的CRC與0xA001進行異或運算,且將結果賦給CRC。否則,跳過此步。 5. 重復3,4步8次(即右邊8位)。 6. 對初始信息的下一個字節(jié),同樣執(zhí)行2,3,4,5步,直到信息中所有字節(jié)都執(zhí)行了同樣的步驟。 7. 將此時得到的CRC值的高8位和低8位交換,加在初始信息末尾即得到完整的傳輸信息。 例子初始信息為:0x0106000503E8 初始CRC:0xFFFF |
---|---|
本帖最近評分記錄: |
rockyhuo
專業(yè)制造全伺服高速衛(wèi)生巾機器
級別: 論壇先鋒
|
我的程序都是參考別人,校驗比較繁鎖 |
|
---|---|---|
本帖最近評分記錄:
|
huangyue
級別: 工控俠客
|
這個其實可以看看PRO-FACE的通訊手冊,里面有介紹 |
---|---|
本帖最近評分記錄: |
ha741852
ha741852@163.com
級別: 略有小成
|
看下我這個表格 非常詳細 自己學習時做的 |
---|---|
本帖最近評分記錄: |