




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、3.1 Modbus 協(xié)議協(xié)議 ModbusModbus是是MODICONMODICON公司于公司于19791979年開(kāi)發(fā)的一種通訊協(xié)議。它是年開(kāi)發(fā)的一種通訊協(xié)議。它是一種在工業(yè)領(lǐng)域被廣為應(yīng)用的真正開(kāi)放、標(biāo)準(zhǔn)的網(wǎng)絡(luò)通訊協(xié)議,一種在工業(yè)領(lǐng)域被廣為應(yīng)用的真正開(kāi)放、標(biāo)準(zhǔn)的網(wǎng)絡(luò)通訊協(xié)議,已經(jīng)成為一種電子控制器的通用語(yǔ)言已經(jīng)成為一種電子控制器的通用語(yǔ)言,通過(guò)此協(xié)議控制器之間通過(guò)此協(xié)議控制器之間可以通訊可以通訊,已成為一種工業(yè)標(biāo)準(zhǔn)。已成為一種工業(yè)標(biāo)準(zhǔn)。 不同廠商生產(chǎn)的控制設(shè)備通過(guò)不同廠商生產(chǎn)的控制設(shè)備通過(guò)Modbus協(xié)議可以連成通訊網(wǎng)協(xié)議可以連成通訊網(wǎng)絡(luò)絡(luò),在在PLC、變頻器變頻器、電器電器設(shè)備及自動(dòng)化儀
2、表設(shè)備及自動(dòng)化儀表 等領(lǐng)域都廣泛應(yīng)用等領(lǐng)域都廣泛應(yīng)用Modbus協(xié)議。協(xié)議。 Modbus是鏈路層的主是鏈路層的主/從協(xié)議從協(xié)議,采用請(qǐng)求響采用請(qǐng)求響-應(yīng)方式應(yīng)方式 .主站發(fā)主站發(fā)出帶有從站地址的請(qǐng)求報(bào)文出帶有從站地址的請(qǐng)求報(bào)文,具有該地址的從站收到該報(bào)文后具有該地址的從站收到該報(bào)文后發(fā)出響應(yīng)報(bào)文。發(fā)出響應(yīng)報(bào)文。 第三章第三章 Modbus 協(xié)議與現(xiàn)場(chǎng)總線協(xié)議與現(xiàn)場(chǎng)總線 ModbusModbus 在在OSI OSI 模型中所使用的層模型中所使用的層3.1.1 Modbus 協(xié)議的物理層協(xié)議的物理層 1.網(wǎng)絡(luò)結(jié)構(gòu)網(wǎng)絡(luò)結(jié)構(gòu) 總線式主從結(jié)構(gòu)總線式主從結(jié)構(gòu) 主設(shè)備:主設(shè)備:PC機(jī),機(jī),PLC 從設(shè)備:
3、從設(shè)備:PLC,智能儀表,智能儀表 一個(gè)主站可有一個(gè)主站可有1253個(gè)從站,個(gè)從站,從站之間不能相互通訊。從站之間不能相互通訊。 2.通訊方式通訊方式 (a)一對(duì)一:主設(shè)備可以和從設(shè)備通訊,從設(shè)備響應(yīng)。)一對(duì)一:主設(shè)備可以和從設(shè)備通訊,從設(shè)備響應(yīng)。 (b)一對(duì))一對(duì)N(廣播):主設(shè)備對(duì)(廣播):主設(shè)備對(duì)N個(gè)從設(shè)備,從設(shè)備無(wú)響應(yīng)。個(gè)從設(shè)備,從設(shè)備無(wú)響應(yīng)。 0地址表示廣播地址。地址表示廣播地址。 3.物理層物理層 支持支持RS-485、RS-232C。 CRLF0D0A COLON3A3.1.2 Modbus3.1.2 Modbus協(xié)議的幀格式協(xié)議的幀格式ModbusModbus有兩種格式有兩種格
4、式: ASCII: ASCII格式格式; RTU; RTU格式格式1.ASCII1.ASCII碼幀格式碼幀格式( (用用ASCII ASCII 表示數(shù)據(jù)表示數(shù)據(jù)) )(1).(1).字節(jié)格式字節(jié)格式(2).(2).數(shù)據(jù)表示方法數(shù)據(jù)表示方法 地址地址:21 :21 表示表示ASCIIASCII碼碼 32H,31H32H,31H(:)(2)(2)說(shuō)明:說(shuō)明: a.a.地址域:從設(shè)備地址地址域:從設(shè)備地址0-253,0-253,地址地址0 0為廣播地址。為廣播地址。 b.b.功能域:代碼范圍功能域:代碼范圍1-2551-255,命令從設(shè)備執(zhí)行哪些功能,命令從設(shè)備執(zhí)行哪些功能( (如讀測(cè)量如讀測(cè)量值,
5、讀開(kāi)關(guān)量狀態(tài))值,讀開(kāi)關(guān)量狀態(tài)) c.c.數(shù)據(jù)域:(兩部分內(nèi)容)數(shù)據(jù)域:(兩部分內(nèi)容) 主設(shè)備到從設(shè)備:變量起始地址、變量個(gè)數(shù)。主設(shè)備到從設(shè)備:變量起始地址、變量個(gè)數(shù)。 從設(shè)備到主設(shè)備從設(shè)備到主設(shè)備 : 字節(jié)數(shù)字節(jié)數(shù)n、數(shù)據(jù)、數(shù)據(jù)n。 d.d.檢錯(cuò):檢錯(cuò):CRC-16, CRC-16, 生成多項(xiàng)式生成多項(xiàng)式 Y=X16+X15+X2+1Y=X16+X15+X2+1。 2. RTU2. RTU格式格式( (用二進(jìn)制數(shù)表示數(shù)據(jù)用二進(jìn)制數(shù)表示數(shù)據(jù)) )(1) RTU(1) RTU幀格式幀格式3.1.3 ModBus3.1.3 ModBus功能碼功能碼 1. Modbus1. Modbus功能碼功能碼
6、2.2.功能碼功能碼3:3:讀取讀取在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值該功能碼主要用于讀取設(shè)備參數(shù)該功能碼主要用于讀取設(shè)備參數(shù)例:主機(jī)命令例:主機(jī)命令:讀讀6BH開(kāi)始的開(kāi)始的3個(gè)寄存器內(nèi)容個(gè)寄存器內(nèi)容從機(jī)響應(yīng)從機(jī)響應(yīng):回傳回傳6個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)說(shuō)明說(shuō)明 (1)應(yīng)用層:應(yīng)用層: 寄存器中存儲(chǔ)的內(nèi)容用戶(hù)定義。寄存器中存儲(chǔ)的內(nèi)容用戶(hù)定義。 (2)寄存器地址與寄存器:寄存器號(hào)減)寄存器地址與寄存器:寄存器號(hào)減1為寄存器地址為寄存器地址 3.功能碼功能碼4:讀取一個(gè)或多個(gè)輸入寄存器值:讀取一個(gè)或多個(gè)輸入寄存器值主要用于讀取設(shè)備測(cè)量數(shù)據(jù)主要用于讀取設(shè)備
7、測(cè)量數(shù)據(jù)從寄存器從寄存器8開(kāi)始讀一個(gè)寄存器值開(kāi)始讀一個(gè)寄存器值4. 功能功能6:寫(xiě)單個(gè)寄存器:寫(xiě)單個(gè)寄存器例:從寄存器地址例:從寄存器地址1開(kāi)始,寫(xiě)一個(gè)寄存器值開(kāi)始,寫(xiě)一個(gè)寄存器值03寄存器地址:0001H寄存器: 0002H5. 5. 功能碼功能碼16:16:寫(xiě)多個(gè)寄存器寫(xiě)多個(gè)寄存器主機(jī)從主機(jī)從01H01H地址開(kāi)始寫(xiě)地址開(kāi)始寫(xiě)2 2個(gè)寄存器個(gè)寄存器從機(jī)響應(yīng)主機(jī)從機(jī)響應(yīng)主機(jī)3.1.4應(yīng)用舉例應(yīng)用舉例 題題: 有某地址為有某地址為1的從設(shè)備的從設(shè)備,其變量定義如下其變量定義如下: 例例1:主設(shè)備用主設(shè)備用3號(hào)命令尋址地址為號(hào)命令尋址地址為1的從設(shè)備的從設(shè)備,讀取寄存器地址為讀取寄存器地址為000
8、0H 的量程的量程. 主設(shè)備命令幀主設(shè)備命令幀 從設(shè)備響應(yīng)幀從設(shè)備響應(yīng)幀變量定義變量定義主機(jī)請(qǐng)求主機(jī)請(qǐng)求從機(jī)響應(yīng)從機(jī)響應(yīng)量程量程(參數(shù))參數(shù))寄存器地址0000H測(cè)量值測(cè)量值0002H字節(jié)數(shù)2byte 2 byte 主從地地址址功能功能碼碼變量地址變量地址高高變量數(shù)變量數(shù)高高CRC校驗(yàn)校驗(yàn)01H03H00H00H變量數(shù)變量數(shù)低低地地址址功能功能碼碼01H03H字節(jié)字節(jié)數(shù)數(shù)02H數(shù)據(jù)數(shù)據(jù)103HCRC校驗(yàn)校驗(yàn)*流量流量 = 3E8H =1000變量地址變量地址低低00H01H*數(shù)據(jù)數(shù)據(jù)2E8H例例2:主設(shè)備用主設(shè)備用4號(hào)命令尋址地為號(hào)命令尋址地為1的從設(shè)備的從設(shè)備, 讀取地址為讀取地址為0002
9、H 的的測(cè)量值測(cè)量值 01H04H0002H0001H#地址地址功能功能碼碼變量地址變量地址變量變量數(shù)數(shù)CRC校驗(yàn)校驗(yàn)地址地址功能碼功能碼 字節(jié)數(shù)字節(jié)數(shù) 數(shù)據(jù)數(shù)據(jù)1 數(shù)據(jù)數(shù)據(jù)2CRCCRC01H04H02H03H20H* 從設(shè)備響應(yīng)從設(shè)備響應(yīng)主設(shè)備命令幀主設(shè)備命令幀測(cè)量值測(cè)量值 = 320H= 320H =800 =800問(wèn)題:測(cè)量值有小數(shù)和正負(fù)怎么辦?問(wèn)題:測(cè)量值有小數(shù)和正負(fù)怎么辦?3.1.5 CRC-16校驗(yàn)校驗(yàn) 1.1.說(shuō)明說(shuō)明: : (1) CRC校驗(yàn) = 地址碼 + 功能碼 +數(shù)據(jù) (2) (2) 生成多項(xiàng)式生成多項(xiàng)式 G(xG(x)=X16+X15+X2+1)=X16+X15+X2
10、+1 (1 1000 0000 0000 (1 1000 0000 0000 0101) 0101) (3) (3) 生成多項(xiàng)式最高位總是生成多項(xiàng)式最高位總是 1,1,所以實(shí)際中的所以實(shí)際中的 生成多項(xiàng)式為生成多項(xiàng)式為 1000 0000 00001000 0000 0000 0101 0101 (4) Modbus (4) Modbus 采用逆序生成多項(xiàng)式采用逆序生成多項(xiàng)式 1010 0000 00001010 0000 0000 0001 0001 (5) CRC本質(zhì)本質(zhì): :移位異移位異, ,是是1 1與生成多項(xiàng)式或和與生成多項(xiàng)式或和 2:CRC2:CRC方法方法0211073.CRC3
11、.CRC計(jì)算程序計(jì)算程序( (標(biāo)準(zhǔn)程序標(biāo)準(zhǔn)程序) )數(shù)據(jù)指針數(shù)據(jù)長(zhǎng)度CRC低位表CRC高位表auchCRCHi0 xFDauchCRCHi0 x39auchCRCLo0 xFDauchCRCLo0 x39 CRCLo 1 1 1 1 1 1 1 11 ST 0 0 0 0 0 0 1 0 XORuIndex 1 1 1 1 1 1 0 1auchCRCHi0 xFD = 0 xC1 uchCRCHi 1 1 1 1 1 1 1 1 XOR 1 1 0 0 0 0 0 1 uchCRCLo 0 0 1 1 1 1 1 0uchCRCHi = auchCRCLo0 xFD 1 0 0 0 0 0
12、0 1 2 ST 0 0 0 0 0 1 1 1uchCRCLo 0 0 1 1 1 1 1 0 XOR uIndex 0 0 1 1 1 0 0 1auchCRCH0 x39 =0 xC0uchCRCHi 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 XOR uchCRCLo 0 1 0 0 0 0 0 0 1 uchCRCHi =auchCRCLo0 x39 = 0 x12結(jié)果結(jié)果 0 x1241例例:x2=0 x02,0 x07;CRC_n= CRC16( x, 2); n壓3.2 Modbus協(xié)議通訊從站軟件設(shè)計(jì)協(xié)議通訊從站軟件設(shè)計(jì)(1).主站使用主站使用Mo
13、dbus 04號(hào)命令采集從站測(cè)量數(shù)據(jù)號(hào)命令采集從站測(cè)量數(shù)據(jù)(2).寄存器應(yīng)用層定義寄存器應(yīng)用層定義3.2.1 從站軟件設(shè)計(jì)要求從站軟件設(shè)計(jì)要求寄存器內(nèi)容壓力溫度液位流量2000HModbus寄存器寄存器 實(shí)際設(shè)計(jì)考慮問(wèn)題實(shí)際設(shè)計(jì)考慮問(wèn)題(1). Modbus命令幀結(jié)束判定方法命令幀結(jié)束判定方法,(2).幀間隔控制方法幀間隔控制方法(3)如何解決通訊數(shù)據(jù)串位及數(shù)據(jù)殘如何解決通訊數(shù)據(jù)串位及數(shù)據(jù)殘 缺等異常情況對(duì)通訊的影響缺等異常情況對(duì)通訊的影響.3.2.2 從站軟件設(shè)計(jì)內(nèi)容從站軟件設(shè)計(jì)內(nèi)容2004H2008H200CH寄存器地址1.接收數(shù)據(jù)接收數(shù)據(jù) (1) 串口接收數(shù)據(jù)串口接收數(shù)據(jù) (2) 根據(jù)主
14、站根據(jù)主站MODUBS命令讀命令讀寄存器。寄存器。(2)發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù) 將所讀寄存器發(fā)送出去將所讀寄存器發(fā)送出去主站一次可能讀一個(gè)寄存器,也可能主站一次可能讀一個(gè)寄存器,也可能讀多個(gè)寄存器。讀多個(gè)寄存器。3.2.3 從站接收命令幀方法從站接收命令幀方法(1).設(shè)置一個(gè)定時(shí)器設(shè)置一個(gè)定時(shí)器,定時(shí)定時(shí)3.5 char時(shí)間時(shí)間(2).每接收一個(gè)數(shù)據(jù)每接收一個(gè)數(shù)據(jù),啟動(dòng)定時(shí)器定時(shí)啟動(dòng)定時(shí)器定時(shí).(3).定時(shí)時(shí)間到定時(shí)時(shí)間到,說(shuō)明在說(shuō)明在3.5 char時(shí)間里沒(méi)有通訊數(shù)據(jù)時(shí)間里沒(méi)有通訊數(shù)據(jù),表明幀結(jié)束表明幀結(jié)束, 在定時(shí)中斷服務(wù)程序中處理在定時(shí)中斷服務(wù)程序中處理Modbus 命令命令.定時(shí)中斷定時(shí)中斷
15、幀結(jié)束幀結(jié)束,讀讀命令回答命令回答數(shù)據(jù)數(shù)據(jù)啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器3.5 char地址地址功能碼功能碼變量地址變量地址變量數(shù)變量數(shù)CRC校驗(yàn)校驗(yàn)主站發(fā)給從站讀寄存器命令8byte,從站3.5char后回答數(shù)據(jù)如何確定MODBUS幀結(jié)束?幀結(jié)束?幀間隔幀間隔3.5char定時(shí)方法定時(shí)方法ICR1(觸發(fā)寄存器)計(jì)數(shù)器PWM輸出3.2.4 從站程序設(shè)計(jì)從站程序設(shè)計(jì)(AVR MEGA64 CPU)void main(void) unsigned char i=0; unsigned long num=0; OutSet1480; /* R485 接收方向接收方向 */ Set1480Rxd; Delays
16、(100); _CLI(); /* 關(guān)中斷關(guān)中斷 UartInit(); /* UART初始化初始化 TimeDelay=OscF*10/BaudRate0; /* 根據(jù)波特率設(shè)置定時(shí)時(shí)間根據(jù)波特率設(shè)置定時(shí)時(shí)間 */ TCCR1B=(1CS11)|(1WGM12)|(1WGM13); /* 設(shè)置設(shè)置3.5char定時(shí)器定時(shí)器 */ TIM16_WriteTCNT1(0 x0000); /* 清計(jì)數(shù)器清計(jì)數(shù)器 TIM16_WriteICR1(TimeDelay); /* 設(shè)計(jì)數(shù)觸發(fā)值設(shè)計(jì)數(shù)觸發(fā)值 _SEI(); /* 開(kāi)中斷開(kāi)中斷 WDTCR=(1WDCE)|(1WDE); /* 看門(mén)狗允許看門(mén)
17、狗允許 */ WDTCR=(1WDP2)|(1WDP1)|(1WDP0); /* 看門(mén)狗看門(mén)狗2.2秒復(fù)位秒復(fù)位 */ WDTCR=(1WDCE)|(1=1000) /* 若沒(méi)有通訊,則定時(shí)初始化串口若沒(méi)有通訊,則定時(shí)初始化串口 */ num=0; /*防止通訊死機(jī)防止通訊死機(jī)*/ CloseINT0(); /*關(guān)通訊中斷關(guān)通訊中斷 */ UartInit(); /* 初始化串口初始化串口 */ OutSet1480; /* 設(shè)置設(shè)置I/O口為輸出方向口為輸出方向 */ Set1480Rxd; /* 設(shè)置設(shè)置RS485接收方向控制接收方向控制 */ OpenINT0(); /* 開(kāi)通訊中斷開(kāi)通
18、訊中斷 */ (1).主程序主程序void UartInit(void) /* 設(shè)置通訊波特率設(shè)置通訊波特率 */ UBRR0L = (OscF/16/(BaudRate0+1)%256; UBRR0H = (OscF/16/(BaudRate0+1)/256; /* Uart0 發(fā)送和接收引腳使能發(fā)送和接收引腳使能 */ UCSR0B = (1RXEN0)|(1TXEN0); /* 設(shè)置幀格式設(shè)置幀格式: 8 個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位, 1 個(gè)停止位個(gè)停止位 */ UCSR0C = (1URSEL0)|(1UCSZ01)|(1UCSZ00); UCSR0A = (1RXC0)|(1TXC0)|(1U
19、DRE0)|(1FE0);#pragma interrupt_handler usart0:iv_USART0_RXCvoid usart0(void) unsigned char combuf; combuf =UDR0; /* 讀通訊數(shù)據(jù)讀通訊數(shù)據(jù) */ TIM16_WriteTCNT1(0 x0000); /* 清定時(shí)時(shí)間常數(shù)清定時(shí)時(shí)間常數(shù) */ TIM16_WriteICR1(TimeDelay); /* 設(shè)置定時(shí)設(shè)置定時(shí)3.5 char時(shí)間常數(shù)時(shí)間常數(shù) */ TIFR|=(1ICF1); /* 定時(shí)記數(shù)器加,上限捕捉定時(shí)記數(shù)器加,上限捕捉 */ TIMSK|=(1TICIE1); /
20、* 啟動(dòng)定時(shí)中斷啟動(dòng)定時(shí)中斷 */ ReciveBuff_485ReceiveNum_485+=combuf; /* 存儲(chǔ)通訊數(shù)據(jù)存儲(chǔ)通訊數(shù)據(jù) */(2).串口初始化串口初始化(3).UART0中斷接收中斷接收(只接收一個(gè)字節(jié)數(shù)據(jù))只接收一個(gè)字節(jié)數(shù)據(jù))#pragma interrupt_handler timedelay:iv_TIMER1_CAPTvoid timedelay(void) unsigned int i,x; unsigned int len; unsigned int start; unsigned int CheckSum; unsigned int buff2; if(R
21、eceiveNum_485=8) TIMSK&=(1TICIE1); ReceiveNum_485=0; if(ReciveBuff_4850 != Address) return; /* 非本站地址返回 */ if(ReciveBuff_4851 != 0 x04) return; /* 非04命令返回 */ CheckSum = CRC16(ReciveBuff_485,6); /*計(jì)算接收命令的CRC */ CRC16Value.OTT1=ReciveBuff_4856; /* CRC16Value.OTT0=ReciveBuff_4857; if(CheckSum !=CRC1
22、6Value.TTO) return; /* CRC錯(cuò)返回 */ len= ReciveBuff_4854*256+ ReciveBuff_4855; /* 寄存器長(zhǎng)度 */ buff0=ReciveBuff_4852; buff1=ReciveBuff_4853; start=buff0*256+buff1; /* 寄存器啟始地址 */ start=start*2; /* BYTE地址 */(D). 定時(shí)定時(shí)3.5char 中斷服務(wù),幀結(jié)束中斷服務(wù),幀結(jié)束union IntToChar U8 OTT2; U16 TTO; SendBuff_4850=Address; SendBuff_485
23、1=0 x04; SendBuff_4852=len*2; /* 字節(jié)數(shù) */ for(i=0;i(len*2);i+) x=start+i; SendBuff_4853+i=LMAG_Cachex; /* 取數(shù)據(jù) */ CheckSum = CRC16(SendBuff_485,(len*2)+3); /* 計(jì)算CRC */ CRC16Value.TTO=CheckSum; SendBuff_485(len*2)+3=CRC16Value.OTT1; SendBuff_485(len*2)+4=CRC16Value.OTT0; SendLen_485=(len*2)+5; /*發(fā)送字節(jié)長(zhǎng)度
24、*/ SendNum_485=0; UCSR0A |= (1TXC0); /* 設(shè)置發(fā)送完成中斷 */ UCSR0A |= (1UDRE0); /* 設(shè)置發(fā)送寄存器空中斷 */ UCSR0B |= (1UDRIE0); /* 允許發(fā)送寄存器空中斷 */ ReceiveNum_485=0; TIMSK &=(1TICIE1); /* 關(guān)閉3.5 char 定時(shí)中斷 */#pragma interrupt_handler send0:iv_USART0_UDRE /* 發(fā)送寄存器空中斷服務(wù) */void send0(void) Set1480Txd; /* RS485 發(fā)送方向控制 */
25、UDR0 = SendBuff_485SendNum_485+; /* 發(fā)送數(shù)據(jù) */ if(SendNum_485=SendLen_485) /* 發(fā)送數(shù)據(jù)結(jié)束 */ UCSR0B &= (1UDRIE0); /* 發(fā)送寄存器空中斷關(guān)閉 */ UCSR0B |= (1TXCIE0); /* 發(fā)送完成中斷打開(kāi) */ #pragma interrupt_handler sendover:iv_USART0_TXC /* 發(fā)送完成中斷服務(wù) */void sendover(void) UCSR0B &= (1TXCIE0); /* 關(guān)閉發(fā)送完成中斷 */ Set1480Rxd; /*
26、 改變通訊方向?yàn)?接收 */ (4).中斷發(fā)送數(shù)據(jù)中斷發(fā)送數(shù)據(jù)(F).發(fā)送結(jié)束發(fā)送結(jié)束,通訊轉(zhuǎn)為接收通訊轉(zhuǎn)為接收unsigned int CRC16(unsigned char *puchMsg, unsigned int usDataLen) unsigned char uchCRCHi = 0 xFF ; /* 高CRC字節(jié)初始化 */ unsigned char uchCRCLo = 0 xFF ; /* 低CRC 字節(jié)初始化 */ unsigned char uIndex ; /* CRC循環(huán)中的索引 */ while (usDataLen-) uIndex = uchCRCHi *p
27、uchMsg+ ; /* 計(jì)算CRC */ uchCRCHi = uchCRCLo auchCRCHiuIndex ; uchCRCLo = auchCRCLouIndex ; return (uchCRCHi 8 | uchCRCLo);(5). CRC校驗(yàn)校驗(yàn)3.2.5 ARM 下的下的Modbus 幀間隔處理方法幀間隔處理方法NXP LPC2478 ARM7TDI 核 (208腳)1.UART 特性特性 (16c550 ) 16字節(jié)收發(fā)FIFO 接收器FIFO觸發(fā)點(diǎn)可為1、4、8、14字節(jié) 接收到有效字符中斷 達(dá)到FIFO觸發(fā)點(diǎn)中斷 具有3.5CHAR超時(shí)中斷2. Modbus 從站幀接收方法從站幀接收方法: (1) 上位機(jī)發(fā)送命令幀8byte (2) 下位機(jī)接收FIFO觸發(fā)點(diǎn)設(shè)為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024~2025學(xué)年廣東八年級(jí)下冊(cè)4月期中考試數(shù)學(xué)試題【帶答案】
- 2024~2025學(xué)年福建泉州八年級(jí)下冊(cè)4月期中考試數(shù)學(xué)試題【帶答案】
- 師生關(guān)系構(gòu)建考核試卷
- 濕敷敷料的透氣性對(duì)皮膚水分蒸發(fā)與熱量散失的關(guān)系探討考核試卷
- 清潔生產(chǎn)技術(shù)應(yīng)用考核試卷
- 印刷機(jī)智能調(diào)度系統(tǒng)的生產(chǎn)安全風(fēng)險(xiǎn)評(píng)估與管理技術(shù)考核試卷
- 自律監(jiān)管與消費(fèi)者權(quán)益保護(hù)考核試卷
- 成本控制與設(shè)計(jì)優(yōu)化考核試卷
- 新型維護(hù)材料在農(nóng)副食品加工中的應(yīng)用考核試卷
- 反浮選技術(shù)在鐵礦石選礦中的應(yīng)用考核試卷
- 【MOOC】算法初步-北京大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 食品檢驗(yàn)員考試題庫(kù)單選題100道及答案解析
- 鄉(xiāng)鎮(zhèn)污水管道改造施工方案
- 四年級(jí)下冊(cè)道德與法治知識(shí)點(diǎn)
- 人工智能(AI)訓(xùn)練師職業(yè)技能鑒定考試題及答案
- ASTM-D3359-(附著力測(cè)試標(biāo)準(zhǔn))-中文版
- 全國(guó)中小學(xué)生學(xué)籍信息管理系統(tǒng)學(xué)生基本信息采集表(2022修訂版)
- CJT 211-2005 聚合物基復(fù)合材料檢查井蓋
- 云南省曲靖市2023-2024學(xué)年八年級(jí)下學(xué)期期末語(yǔ)文試題
- DZ∕T 0212.4-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 鹽類(lèi) 第4部分:深藏鹵水鹽類(lèi)(正式版)
- 借款利息確認(rèn)書(shū)
評(píng)論
0/150
提交評(píng)論