資源描述:
《MODBUS串口通訊協(xié)議.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、MODBUS串口通訊協(xié)議1、協(xié)議概述?數(shù)據(jù)格式:1位起始位8位數(shù)據(jù)位,最小的有效位先發(fā)送1位停止位偶校驗(yàn)一一》溫濕度、直流屏只能是無(wú)校驗(yàn),?波特率:4800BPS、9600BPS、19200BPS、38400BPS可供選擇?通訊地址:01?247,默認(rèn)地址為01》地址可設(shè)?Modbus協(xié)議支持RS232、RS485傳輸方式,默認(rèn)為RS232傳輸形式,若用RS485傳輸方式,需要加232<->485轉(zhuǎn)換器。?數(shù)據(jù)包組織說(shuō)明:(1).本協(xié)議中涉及到的CRC校驗(yàn)皆是對(duì)本幀屮所有數(shù)據(jù)的校驗(yàn),且校驗(yàn)位在傳輸時(shí)低位在前,高位在后。(2
2、).本協(xié)議中的模擬量均采用附M表示,數(shù)值用補(bǔ)碼表示,所以必M的取值范毎I:-32768~+32767,模擬量在傳輸時(shí)高位在前,低位在后。(3).電壓電流的放大系數(shù)為1()。即將實(shí)際的電壓電流量乘以1()取整就是數(shù)據(jù)幀屮的數(shù)據(jù)。2、CRC校驗(yàn)CRC域是兩個(gè)字節(jié),包含一16位的二進(jìn)制值。它由傳輸設(shè)備計(jì)算后加入到消息中。接收設(shè)備重新計(jì)算收到消息的CRC,并與接收到的CRC域中的值比較,如果兩值不同,則有誤。CRC是先調(diào)入一值是全“1”的16位寄存器,然后調(diào)用一過(guò)程將消息中連續(xù)的8位字節(jié)各當(dāng)前寄存器屮的值進(jìn)行處理。僅每個(gè)字符中的8
3、13it數(shù)據(jù)對(duì)CRC有效,起始位和停止位以及奇偶校驗(yàn)位均無(wú)效。CRC產(chǎn)生過(guò)程中,每個(gè)8位字符都單獨(dú)和寄存器內(nèi)容相或(0R),結(jié)果向最低有效位方向移動(dòng),最高有效位以0填充。LSB被提取出來(lái)檢測(cè),如果LSB為1,寄存器單獨(dú)和預(yù)置的值或一下,如果LSB為0,則不進(jìn)行。整個(gè)過(guò)程要重復(fù)8次。在最后一位(第8位)完成后,下一個(gè)8位字節(jié)乂單獨(dú)和寄存器的當(dāng)前值相或。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行Z后的CRC值。CRC添加到消息中時(shí),低字節(jié)先加入,然后高字節(jié)。CRC簡(jiǎn)單函數(shù)如下:unsignedshortCRC16(puchMs
4、g,usDataLen)unsignedchar*puchMsg;/*要進(jìn)行CRC校驗(yàn)的消息*/unsignedshortusDataLen;/*消息中字節(jié)數(shù)*/unsignedcharuchCRCIIi=OxFF;/*高CRC字節(jié)初始化*/unsignedcharuchCRCLo=OxFF;/*低CRC字節(jié)初始化*/unsignedulndex;/*CRC循環(huán)中的索引*/while(usDataLen--)/*傳輸消息緩沖區(qū)*/{ulndex=uchCRCIIi"*puchMsgg++;/*計(jì)算CRC*/uchCRCII
5、i=uchCRCLoauchCRCHi[ulndex};uchCRCLo=auchCRCLo[ulndex];}return(uchCRCHi?8
6、uchCRCLo);/*CRC高位字節(jié)值表*/staticunsignedcharauchCRCHi[]二{0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x00,OxCl,0x81,0
7、x40,0x01,OxCO,0x80,0x11,0x01,OxCO,0x80,0x11,0x00,OxCl,0x81,0x10,0x00,OxCl,0x81,0x10,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,
8、0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x40,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x10,0x01,OxCO,0x80,0x11,0x00,OxCl,0x81,0x10,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,Oxll,0x01,OxCO,0x80,0x41,0x00
9、,OxCl,0x81,0x40,0x00,OxCl,0x81,0x40,0x01,OxCO,0x80,0x41,0x00,OxCl,0x81,0x10,0x01,OxCO,0x80,0x41,0x01,OxCO,0x80,0x41,0x00,OxCI,0x81,0x40,0x00,OxCI,0x81,0