ModBusRTU協議中的CRC算法專業文章_第1頁
ModBusRTU協議中的CRC算法專業文章_第2頁
ModBusRTU協議中的CRC算法專業文章_第3頁
ModBusRTU協議中的CRC算法專業文章_第4頁
ModBusRTU協議中的CRC算法專業文章_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、本文重點介紹modbus rtu協議及協議中的crc16算法。modbus rtu協議在儀器儀表、數據采集屮(如深圳科立恒公司km 數控儀表、kt2隔離數據采集器)廣范應用。二、modbus協議說明地址03數據地 址(h)數據地址(l)數據長 度(h)數據長 度(l)crc (h)crc (l)1> modbus rtu發送協議(讀取:03功能碼):地址03數據地數據地驚f鬻 crc (h) crc (l) 址(h) 址億) 度) 度(d例:01 03 00 00 00 01 84 0a接收數據格式為:地址03字長數據數據 crc (h)crc (l)1(h)kl)例:01 03 0

2、2 00 00 b8 442> modbus rtu發送協議(寫入:06功能碼)地址06數據地 址(h)數據地 址(l)新數據(h)新數據(l)crc (h)crc (l)例:01 06 00 00 00 02 08 0b回復數據格式為(也就把收到的數據不變返回):地址06數據地 址(h)數據地 址(l)新數據(h)新數據(l)crc (h)crc (l)例:01 06 00 00 00 02 08 0b三、crc的生成方法:/ crc1 6計算方法1:使用2個256長度的校驗表/const bytechcrchtalbe =/ crc 高位字節值表0x00, 0xc1, 0x81,0x

3、40,0x01, ox co,0x80,0x41, 0x01,oxco,0x80,0x41,0x00, 0xc1, 0x81,0x40,0x01, oxco,0x80,0x41, 0x00,0xc1,0x81,0x40,0x00, 0xc1, 0x81,0x40,0x01, oxco,0x80,0x41, 0x01,oxco,0x80,0x41,0x00, 0xc1, 0x81,0x40,0x00, 0xc1,0x81,0x40, 0x01,oxco,0x80,0x41,0x00, 0xc1, 0x81,0x40,0x00, 0xc1, 0x81,0x40,0x00, 0xc1, 0x81,0

4、x40,0x01, oxco, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41,0x00, oxc1, 0x81, 0x40,0x00, oxc1, 0x81, 0x40,0x01, ox co, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0

5、x41,0x01, ox co, 0x80, 0x41,0x01, ox co, 0x80, 0x41,0x01, ox co, 0x80, 0x41,0x01, ox co, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x01, ox co, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x00, oxc1, 0x81, 0x40,0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x00, oxc1, 0x8

6、1, 0x40,0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x01, oxco, 0x80, 0x41,0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41, 0x00, oxc1, 0x8

7、1, 0x40, 0x00, 0xc1, 0x81, 0x40,0x01, oxco, 0x80, 0x41, 0x01, oxco, 0x80, 0x41, 0x00, oxc1, 0x81, 0x40, 0x00, 0xc1, 0x81, 0x40, 0x01, oxco, 0x80, 0x41, 0x00, 0xc1, 0x81, 0x40, 0x01, oxco, 0x80, 0x41, 0x01, oxco, 0x80, 0x41, 0x00, oxc1, 0x81, 0x40;const bytechcrcltalbe =/ crc 低位字節值表0x00, ox co, 0xc1,

8、 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7, 0x05, 0xc5, 0xc4, 0x04, oxcc, oxoc, oxod, oxcd, ox of, oxcf, oxce, oxoe, oxoa, oxca, oxcb, oxob, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9, ox1b, oxdb, oxda, 0x1 a, ox1e, oxde, oxdf, 0x1 f, oxdd, ox1d, ox1c, oxdc, 0x14, oxd4, 0xd5, 0x15, 0x

9、d7, 0x1 7, 0x16, 0xd6, 0xd2, 0x1 2, 0x1 3, 0xd3, 0x11, oxd1, oxdo, 0x1 0, oxfo, 0x30, 0x31, oxf1, 0x33, 0xf3, 0xf2, 0x32, 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, ox fc, oxfd, 0x3d, oxff, 0x3f, 0x3e, oxfe, ox fa, 0x3a, 0x3b, oxfb, 0x39, 0xf9, 0xf8, 0x38, 0x28, 0xe8, 0xe9, 0x29, oxeb, 0x

10、2b, 0x2a, oxea, ox ee, 0x2e, 0x2f, oxef, 0x2d, ox ed, ox ec, 0x2c, oxe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26, 0x22, 0xe2, 0xe3, 0x23, oxe1, 0x21, 0x20, oxeo, oxao, 0x60, 0x61, 0xa1, 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4, 0x6c, oxac, oxad, 0x6d, oxaf, 0x6f, 0x6e,

11、 oxae, oxaa, 0x6a, 0x6b, oxab, 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, oxbb, 0x7b, 0x7a, ox ba, oxbe, 0x7e, 0x7f, oxbf, 0x7d, oxbd, oxbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5, 0x77, 0xb7, 0xb6,0x76, 0x72, 0xb2,0xb3, 0x73, oxb1,0x71, 0x70,oxbo,0x50, 0x90, 0x91,0x51, 0x93, 0x53,0x52, 0x92, 0x96,0x56,

12、0x57,0x97,0x55, 0x95, 0x94,0x54, 0x9c, 0x5c,0x5d, 0x9d, 0x5f,0x9f, 0x9e,0x5e,0x5a, 0x9a, 0x9b,0x5b, 0x99, 0x59,0x58, 0x98, 0x88,0x48, 0x49,0x89,ox4b, 0x8b, 0x8a,0x4a, 0x4e, 0x8e,0x8f, 0x4f, 0x8d,0x4d, 0x4c,0x8c, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83,0x41, 0x81, 0x80,

13、 0x40 word crc16_1(byte* pchmsg, word wdatalen) byte chcrchi = oxff; / 高 crc 字節初始化byte chcrclo = oxff; / 低 crc 字節初始化word wlndex;/ crc循環中的索引while (wdatale wl ndex = chcrclo a * pchmsg+ + ;chcrclo = chcrchi a chcrchtalbewl ndex;chcrchi = chcrcltalbewlndex;return (chcrchi << 8) | chcrclo);/crc1 6計算方法2:使用簡單的校驗表/const word wcrctalbeabs= 0x0000, 0xcc01,0xd801,0x1400, 0xf001, 0x3c00, 0x2800, 0xe401,0xa001,0x6c00, 0x7800, 0xb401, 0x5000, 0x9c01, 0x8801, 0x4400, ;word crc16_2(byte* pchmsg, word wdatalen) word wcrc = oxffff; word i;byte chc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論