詳解MODBUS標(biāo)準(zhǔn)協(xié)議——下篇
二、特點(diǎn)
Modbus具有以下幾個(gè)特點(diǎn):
1、標(biāo)準(zhǔn)、開放,用戶可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán)。目前,支持Modbus的廠家超過(guò)400家,支持Modbus的產(chǎn)品超過(guò)600種。
2、Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線、光纖、無(wú)線等。
3、Modbus的幀格式簡(jiǎn)單、緊湊,通俗易懂。用戶使用容易,廠商開發(fā)簡(jiǎn)單。
三、功能碼定義 1 ModBus功能碼 01 READ COIL STATUS 02 READ INPUT STATUS 03 READ HOLDING REGISTER 04 READ INPUT REGISTER 05 WRITE SINGLE COIL 06 WRITE SINGLE REGISTER 15 WRITE MULTIPLE COIL 16 WRITE MULTIPLE REGISTER 四、傳輸方式 在ModBus系統(tǒng)中有2種傳輸模式可選擇。這2種傳輸模式與從機(jī)PC通信的能力是同等的。選擇時(shí)應(yīng)視所用ModBus主機(jī)而定,每個(gè)ModBus系統(tǒng)只能使用一種模式,不允許2種模式混用。一種模式是ASCII(美國(guó)信息 交換碼),另一種模式是RTU(遠(yuǎn)程 終端設(shè)備)。 用戶選擇想要的模式,包括 串口通信參數(shù)( 波特率、校驗(yàn)方式等),在配置每個(gè)控制器的時(shí)候,在一個(gè)Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。所選的ASCII或RTU方式僅適用于標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃?,以及決定怎樣將信息打包成消息域和如何解碼。在其它網(wǎng)絡(luò)上(像MAP和Modbus Plus)Modbus消息被轉(zhuǎn)成與串行傳輸無(wú)關(guān)的幀。 1.傳輸模式特性: ASCII可打印字符便于故障檢測(cè),而且對(duì)于用高級(jí)語(yǔ)言(如Fortran)編程的主計(jì)算機(jī)及主PC很適宜。RTU則適用于 機(jī)器語(yǔ)言編程的計(jì)算機(jī)和PC主機(jī)。 用RTU模式傳輸?shù)臄?shù)據(jù)是8位二進(jìn)制字符。如欲轉(zhuǎn)換為ASCII模式,則每個(gè)RTU字符首先應(yīng)分為高位和低位兩部分,這兩部分各含4位,然后轉(zhuǎn)換成十六進(jìn)制等量值。用以構(gòu)成 報(bào)文的ASCII字符都是十六進(jìn)制字符。ASCII模式使用的 字符雖是RTU模式的兩倍,但ASCII數(shù)據(jù)的譯碼和處理更為容易一些,此外,用RTU模式時(shí)報(bào)文字符必須以連續(xù)數(shù)據(jù)流的形式傳送,用ASCII模式,字符之間可產(chǎn)生長(zhǎng)達(dá)1s的間隔,以適應(yīng)速度較慢的機(jī)器。 控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)通信。 2.ASCII模式: 當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國(guó)標(biāo)準(zhǔn)信息交換代碼)模式通信,一個(gè)信息中的每8位字節(jié)作為2個(gè)ASCII字符傳輸,如數(shù)值63H用ASCII方式時(shí),需發(fā)送兩個(gè)字節(jié),即ASCII“6"(0110110)和ASCII”3“(0110011),ASCII字符占用的位數(shù)有7位和8位,國(guó)際通用7位為多。這種方式的主要優(yōu)點(diǎn)是字符發(fā)送的時(shí)間間隔可達(dá)到1秒而不產(chǎn)生錯(cuò)誤。 代碼系統(tǒng) 十六進(jìn)制,ASCII 字符0...9,A...F 消息中的每個(gè)ASCII字符都是一個(gè)十六進(jìn)制字符組成 每個(gè)字節(jié)的位 1個(gè)起始位 7個(gè) 數(shù)據(jù)位,最小的有效位先發(fā)送 1個(gè) 奇偶校驗(yàn)位,無(wú)校驗(yàn)則無(wú) 1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)Bit(無(wú)校驗(yàn)時(shí)) 錯(cuò)誤檢測(cè)域 LRC(縱向冗長(zhǎng)檢測(cè)) 3.RTU模式: 當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU模式通信,在消息中的每個(gè)8Bit字節(jié)按照原值傳送,不做處理,如63H,RTU將直接發(fā)送01100011。這種方式的主要優(yōu)點(diǎn)是:數(shù)據(jù)幀傳送之間沒(méi)有間隔,相同波特率下傳輸數(shù)據(jù)的密度要比ASCII高,傳輸速度更快。 代碼系統(tǒng) 8位二進(jìn)制, 十六進(jìn)制數(shù)0...9,A...F 消息中的每個(gè)8 位域都是一或兩個(gè)十六進(jìn)制字符組成 每個(gè)字節(jié)的位 1個(gè)起始位 8個(gè) 數(shù)據(jù)位,最小的有效位先發(fā)送 1個(gè) 奇偶校驗(yàn)位,無(wú)校驗(yàn)則無(wú) 1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)Bit(無(wú)校驗(yàn)時(shí)) 五、數(shù)據(jù)校驗(yàn)方式 1.CRC: 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è)字符中的8Bit數(shù)據(jù)對(duì)CRC有效,起始位和停止位以及 奇偶校驗(yàn)位均無(wú)效。 CRC產(chǎn)生過(guò)程中,每個(gè)8位字符都單獨(dú)和寄存器內(nèi)容相異或(XOR),結(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)前值相異或(XOR)。最終寄存器中的值,是消息中所有的字節(jié)都執(zhí)行之后的CRC值。 CRC添加到消息中時(shí),低字節(jié)先加入,然后高字節(jié)。 CRC-16錯(cuò)誤校驗(yàn)程序如下:報(bào)文(此處只涉及 數(shù)據(jù)位,不指起始位、停止位和任選的 奇偶校驗(yàn)位)被看作是一個(gè)連續(xù)的二進(jìn)制,其最高有效位(MSB)首選發(fā)送。報(bào)文先與X↑16相乘(左移16位),然后看X↑16+X↑15+X↑2+1除,X↑16+X↑15+X↑2+1可以表示為二進(jìn)制數(shù)11000,0000,0000,0101。整數(shù)商位忽略不記,16位余數(shù)加入該報(bào)文(MSB先發(fā)送),成為2個(gè)CRC校驗(yàn)字節(jié)。余數(shù)中的1全部初始化,以免所有的零成為一條報(bào)文被接收。經(jīng)上述處理而含有CRC字節(jié)的報(bào)文,若無(wú)錯(cuò)誤,到接收設(shè)備后再被同一多項(xiàng)式(X↑16+X↑15+X↑2+1)除,會(huì)得到一個(gè)零余數(shù)(接收設(shè)備核驗(yàn)這個(gè)CRC字節(jié),并將其與被傳送的CRC比較)。全部運(yùn)算以2為模(無(wú)進(jìn)位)。 習(xí)慣于成串發(fā)送數(shù)據(jù)的設(shè)備會(huì)首選送出字符的最右位(LSB-最低有效位)。而在生成CRC情況下,發(fā)送首位應(yīng)是被除數(shù)的最高有效位MSB。由于在運(yùn)算中不用進(jìn)位,為便于操作起見,計(jì)算CRC時(shí)設(shè)MSB在最右位。生成多項(xiàng)式的位序也必須反過(guò)來(lái),以保持一致。多項(xiàng)式的MSB略去不記,因其只對(duì)商有影響而不影響余數(shù)。 生成CRC-16校驗(yàn)字節(jié)的步驟如下: ①裝如一個(gè)16位 寄存器,所有數(shù)位均為1。 ②該16位寄存器的高位 字節(jié)與開始8位字節(jié)進(jìn)行“異或”運(yùn)算。運(yùn)算結(jié)果放入這個(gè)16位寄存器。 ③把這個(gè)16寄存器向右移一位。 ④若向右(標(biāo)記位)移出的數(shù)位是1,則生成多項(xiàng)式10,1000,000,0000,001和這個(gè)寄存器進(jìn)行“異或”運(yùn)算;若向右移出的數(shù)位是0,則返回③。 ⑤重復(fù)③和④,直至移出8位。 ⑥另外8位與該十六位寄存器進(jìn)行“異或”運(yùn)算。 ⑦重復(fù)③~⑥,直至該 報(bào)文所有字節(jié)均與16位 寄存器進(jìn)行“異或”運(yùn)算,并移位8次。 ⑧這個(gè)16位寄存器的內(nèi)容即2字節(jié)CRC錯(cuò)誤校驗(yàn),被加到報(bào)文的最高有效位。 另外,在某些非ModBus通信協(xié)議中也經(jīng)常使用CRC16作為校驗(yàn)手段,而且產(chǎn)生了一些CRC16的變種,他們是使用CRC16多項(xiàng)式X↑16+X↑15+X↑2+1,單首次裝入的16位寄存器為0000;使用CRC16的反序X↑16+X↑14+X↑1+1,首次裝入寄存器值為0000或FFFFH。CRC簡(jiǎn)單函數(shù)如下: LRC錯(cuò)誤校驗(yàn)用于ASCII模式。這個(gè)錯(cuò)誤校驗(yàn)是一個(gè)8位二進(jìn)制數(shù),可作為2個(gè)ASCII十六進(jìn)制字節(jié)傳送。把十六進(jìn)制字符轉(zhuǎn)換成二進(jìn)制,加上無(wú)循環(huán)進(jìn)位的二進(jìn)制字符和二進(jìn)制補(bǔ)碼結(jié)果生成LRC錯(cuò)誤校驗(yàn)(參見圖)。這個(gè)LRC在接收設(shè)備進(jìn)行核驗(yàn),并與被傳送的LRC進(jìn)行比較,冒號(hào)(:)、回車符號(hào)(CR)、換行字符(LF)和置入的其他任何非ASCII十六進(jìn)制字符在運(yùn)算時(shí)忽略不計(jì)。 Modbus與PROFIBUS-DP協(xié)議比較 Modbus的協(xié)議內(nèi)容是完全公開的,內(nèi)容是簡(jiǎn)單滴,實(shí)現(xiàn)起來(lái)是非常容易滴,單片機(jī)、PLC、DCS統(tǒng)統(tǒng)都能輕易實(shí)現(xiàn)。 Profibus則要復(fù)雜一些,關(guān)鍵是需要專用芯片進(jìn)行二次開發(fā),并且需要得到上級(jí)組織的認(rèn)證,開發(fā)成本肯定高不少 。 當(dāng)然從性能上講,基于串口的modbus rtu/ASCII通訊性能肯定比不過(guò)profibus dp,但是就一些儀表級(jí)的簡(jiǎn)單通訊或者控制器級(jí)別的小數(shù)據(jù)量通訊,modbus是足以勝任的。說(shuō)白了,就是modbus是*絲,profibus是高富帥! Modbus支持的功能碼: 功能碼 名稱 作用 01 讀取線圈狀態(tài) 取得一組邏輯線圈的當(dāng)前狀態(tài)(ON/OFF) 02 讀取輸入狀態(tài) 取得一組開關(guān)輸入的當(dāng)前狀態(tài)(ON/OFF) 03 讀取保持寄存器 在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值 04 讀取輸入寄存器 在一個(gè)或多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值 05 強(qiáng)置單線圈 強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài) 06 預(yù)置單寄存器 把具體二進(jìn)值裝入一個(gè)保持寄存器 07 讀取異常狀態(tài) 取得8個(gè)內(nèi)部線圈的通斷狀態(tài),這8個(gè)線圈的地址由控制器決定 08 回送診斷校驗(yàn) 把診斷校驗(yàn)報(bào)文送從機(jī),以對(duì)通信處理進(jìn)行評(píng)鑒 09 編程(只用于484) 使主機(jī)模擬編程器作用,修改PC從機(jī)邏輯 10 控詢(只用于484) 可使主機(jī)與一臺(tái)正在執(zhí)行長(zhǎng)程序任務(wù)從機(jī)通信,探詢?cè)搹臋C(jī)是否已完成其操作任務(wù),僅在含有功能碼9的報(bào)文發(fā)送后,本功能碼才發(fā)送 11 讀取事件計(jì)數(shù) 可使主機(jī)發(fā)出單詢問(wèn),并隨即判定操作是否成功,尤其是該命令或其他應(yīng)答產(chǎn)生通信錯(cuò)誤時(shí) 12 讀取通信事件記錄 可是主機(jī)檢索每臺(tái)從機(jī)的ModBus事務(wù)處理通信事件記錄。如果某項(xiàng)事務(wù)處理完成,記錄會(huì)給出有關(guān)錯(cuò)誤 13 編程(184/384 484 584) 可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯 14 探詢(184/384 484 584) 可使主機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信,定期控詢?cè)搹臋C(jī)是否已完成其程序操作,僅在含有功能13的報(bào)文發(fā)送后,本功能碼才得發(fā)送 15 強(qiáng)置多線圈 強(qiáng)置一串連續(xù)邏輯線圈的通斷 16 預(yù)置多寄存器 把具體的二進(jìn)制值裝入一串連續(xù)的保持寄存器 17 報(bào)告從機(jī)標(biāo)識(shí) 可使主機(jī)判斷編址從機(jī)的類型及該從機(jī)運(yùn)行指示燈的狀態(tài) 18 (884和MICRO 84) 可使主機(jī)模擬編程功能,修改PC狀態(tài)邏輯 19 重置通信鏈路 發(fā)生非可修改錯(cuò)誤后,是從機(jī)復(fù)位于已知狀態(tài),可重置順序字節(jié) 20 讀取通用參數(shù)(584L) 顯示擴(kuò)展存儲(chǔ)器文件中的數(shù)據(jù)信息 21 寫入通用參數(shù)(584L) 把通用參數(shù)寫入擴(kuò)展存儲(chǔ)文件,或修改之 22~64 保留作擴(kuò)展功能備用 65~72 保留以備用戶功能所用 留作用戶功能的擴(kuò)展編碼 73~119 非法功能 120~127 保留 留作內(nèi)部作用 128~255 保留 用于異常應(yīng)答 功能碼命令詳解: 在這些功能碼中較長(zhǎng)使用的是1、2、3、4、5、6號(hào)功能碼,使用它們即可實(shí)現(xiàn)對(duì)下位機(jī)的數(shù)字量和模擬量的讀寫操作。 1、01號(hào)命令,讀可讀寫數(shù)字量寄存器(線圈狀態(tài)): 計(jì)算機(jī)發(fā)送命令:[設(shè)備地址] [命令號(hào)01] [起始寄存器地址高8位] [低8位] [讀取的寄存器數(shù)高8位] [低8位] [CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位] 例:[11][01][00][13][00][25][CRC低][CRC高] 意義如下: <1>設(shè)備地址:在一個(gè)485總線上可以掛接多個(gè)設(shè)備,此處的設(shè)備地址表示想和哪一個(gè)設(shè)備通訊。例子中為想和17號(hào)(十進(jìn)制的17是十六進(jìn)制的11)通訊。 <2>命令號(hào)01:讀取數(shù)字量的命令號(hào)固定為01。 <3>起始地址高8位、低8位:表示想讀取的開關(guān)量的起始地址(起始地址為0)。比如例子中的起始地址為19。 <4>寄存器數(shù)高8位、低8位:表示從起始地址開始讀多少個(gè)開關(guān)量。例子中為37個(gè)開關(guān)量。 <5>CRC校驗(yàn):是從開頭一直校驗(yàn)到此之前。設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào)01] [返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位] 例:[11][01][05][CD][6B][B2][0E][1B] [CRC高] [CRC低] 意義如下: <1>設(shè)備地址和命令號(hào)和上面的相同。 <2>返回的字節(jié)個(gè)數(shù):表示數(shù)據(jù)的字節(jié)個(gè)數(shù),也就是數(shù)據(jù)1,2...n中的n的值。 <3>數(shù)據(jù)1...n:由于每一個(gè)數(shù)據(jù)是一個(gè)8位的數(shù),所以每一個(gè)數(shù)據(jù)表示8個(gè)開關(guān)量的值,每一位為0表示對(duì)應(yīng)的開關(guān)斷開,為1表示閉合。比如例子中,表示20號(hào)(索引號(hào)為19)開關(guān)閉合,21號(hào)斷開,22閉合,23閉合,24斷開,25斷開,26閉合,27閉合...如果詢問(wèn)的開關(guān)量不是8的整倍數(shù),那么最后一個(gè)字節(jié)的高位部分無(wú)意義,置為0。 <4>CRC校驗(yàn)同上。 2、05號(hào)命令,寫數(shù)字量(線圈狀態(tài)): 計(jì)算機(jī)發(fā)送命令:[設(shè)備地址] [命令號(hào)05] [需下置的寄存器地址高8位] [低8位] [下置的數(shù)據(jù)高8位] [低8位] [CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位] 例:[11][05][00][AC][FF][00][CRC高][CRC低] 意義如下: <1>設(shè)備地址和上面的相同。 <2>命令號(hào):寫數(shù)字量的命令號(hào)固定為05。 <3>需下置的寄存器地址高8位,低8位:表明了需要下置的開關(guān)的地址。 <4>下置的數(shù)據(jù)高8位,低8位:表明需要下置的開關(guān)量的狀態(tài)。例子中為把該開關(guān)閉合。注意,此處只可以是[FF][00]表示閉合[00][00]表示斷開,其他數(shù)值非法。 <5>注意此命令一條只能下置一個(gè)開關(guān)量的狀態(tài)。 設(shè)備響應(yīng):如果成功把計(jì)算機(jī)發(fā)送的命令原樣返回,否則不響應(yīng)。 3、03號(hào)命令,讀可讀寫模擬量寄存器(保持寄存器): 計(jì)算機(jī)發(fā)送命令:[設(shè)備地址] [命令號(hào)03] [起始寄存器地址高8位] [低8位] [讀取的寄存器數(shù)高8位] [低8位] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位] 例:[11][03][00][6B][00][03] [CRC高][CRC低] 意義如下: <1>設(shè)備地址和上面的相同。 <2>命令號(hào):讀模擬量的命令號(hào)固定為03。 <3>起始地址高8位、低8位:表示想讀取的模擬量的起始地址(起始地址為0)。比如例子中的起始地址為107。 <4>寄存器數(shù)高8位、低8位:表示從起始地址開始讀多少個(gè)模擬量。例子中為3個(gè)模擬量。注意,在返回的信息中一個(gè)模擬量需要返回兩個(gè)字節(jié)。 設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào)03] [返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位] 例:[11][03][06][02][2B][00][00][00][64] [CRC高] [CRC低] 意義如下: <1>設(shè)備地址和命令號(hào)和上面的相同。 <2>返回的字節(jié)個(gè)數(shù):表示數(shù)據(jù)的字節(jié)個(gè)數(shù),也就是數(shù)據(jù)1,2...n中的n的值。例子中返回了3個(gè)模擬量的數(shù)據(jù),因?yàn)橐粋€(gè)模擬量需要2個(gè)字節(jié)所以共6個(gè)字節(jié)。 <3>數(shù)據(jù)1...n:其中[數(shù)據(jù)1][數(shù)據(jù)2]分別是第1個(gè)模擬量的高8位和低8位,[數(shù)據(jù)3][數(shù)據(jù)4]是第2個(gè)模擬量的高8位和低8位,以此類推。例子中返回的值分別是555,0,100。 <4>CRC校驗(yàn)同上。 4、06號(hào)命令,寫單個(gè)模擬量寄存器(保持寄存器): 計(jì)算機(jī)發(fā)送命令:[設(shè)備地址] [命令號(hào)06] [需下置的寄存器地址高8位] [低8位] [下置的數(shù)據(jù)高8位] [低8位] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位] 例:[11][06][00][01][00][03] [CRC高] [CRC低] 意義如下: <1>設(shè)備地址和上面的相同。 <2>命令號(hào):寫模擬量的命令號(hào)固定為06。 <3>需下置的寄存器地址高8位,低8位:表明了需要下置的模擬量寄存器的地址。 <4>下置的數(shù)據(jù)高8位,低8位:表明需要下置的模擬量數(shù)據(jù)。比如例子中就把1號(hào)寄存器的值設(shè)為3。 <5>注意此命令一條只能下置一個(gè)模擬量的狀態(tài)。 設(shè)備響應(yīng):如果成功把計(jì)算機(jī)發(fā)送的命令原樣返回,否則不響應(yīng)。 5、16號(hào)命令,寫多個(gè)模擬量寄存器(保持寄存器): 計(jì)算機(jī)發(fā)送命令:[設(shè)備地址] [命令號(hào)16] [需下置的寄存器地址高8位] [低8位] [數(shù)據(jù)數(shù)量高8位] [數(shù)據(jù)數(shù)量低8位] [下置的數(shù)據(jù)高8位] [低8位][……][……] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位] 例:[11][16][00][01][00][01][00][05] [CRC高] [CRC低] 意義如下: <1>設(shè)備地址和上面的相同。 <2>命令號(hào):寫模擬量的命令號(hào)固定為16。 <3>需下置的寄存器地址高8位,低8位:表明了需要下置的模擬量寄存器的地址。 <4>需下置的數(shù)據(jù)數(shù)量高8位,低8位:表明了需要下置的數(shù)據(jù)數(shù)量,這里為1。 <5>下置的數(shù)據(jù)高8位,低8位:表明需要下置的模擬量數(shù)據(jù)。比如例子中就把1號(hào)寄存器的值設(shè)為5。 設(shè)備響應(yīng):如果成功把計(jì)算機(jī)返回的如下命令,否則不響應(yīng)。設(shè)備響應(yīng):[設(shè)備地址] [命令號(hào)16] [需下置的寄存器地址高8位] [低8位] [數(shù)據(jù)數(shù)量高8位] [數(shù)據(jù)數(shù)量低8位] [CRC校驗(yàn)的高8位] [CRC校驗(yàn)的低8位],如上例返回:[11][16][00][01][00][01] [CRC高] [CRC低]
2.LRC: