版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、“1+X”傳感網(wǎng)應(yīng)用開發(fā) RS-232和RS-485原理與驅(qū)動程序 1、串行通信的基本概念目錄2、RS232和RS485的基本概念3、RS485原理與應(yīng)用4、UART和RS485的驅(qū)動程序 1、串行通信的基本概念(1)、串行通信的定義 所謂“串行通信”,是指外設(shè)和計(jì)算機(jī)之間,通過數(shù)據(jù)信號線、地線與控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通信方式。(2)、串行通信接口標(biāo)準(zhǔn) 常見的有RS232、RS422和RS485等,其他SPI、I2C和CAN等。(1)、常見的電平信號及其電氣特性電平信號名稱輸入輸出 說明邏輯 1邏輯 0邏輯 1邏輯 0TTL電平=2.0V=2.4V=0.7Vcc=0.7Vcc=200
2、mV (VD-VD+)=200mV4線制:VCC、GND、D+和D-。2、RS232和RS485的基本概念(2)、RS232、RS422和RS485標(biāo)準(zhǔn)對比標(biāo)準(zhǔn)RS232RS422RS485工作方式單端(非平衡)差分(平衡)差分(平衡)節(jié)點(diǎn)數(shù) 1收1發(fā)(點(diǎn)對點(diǎn))1發(fā)10收1發(fā)32收最大傳輸電纜長度50英尺4000英尺4000英尺最大傳輸速率20Kbps10Mbps10Mbps連接方式點(diǎn)對點(diǎn)(全雙工)一點(diǎn)對多點(diǎn)(全雙工)多點(diǎn)對多點(diǎn)(半雙工) (DE/RE管腳連在同一個GPIO,同一時刻,只能發(fā)或收)電氣特性邏輯1-15V-3V兩線電壓差+2V+6V兩線電壓差+2V+6V邏輯0+3V+15V兩線電
3、壓差-2V-6V兩線電壓差-2V-6V管腳編 號名稱功能描述1RO接收器輸出(至MCU)2/RE接收允許(低電平0有效)3DE發(fā)送允許(高電平1有效)4DI發(fā)送器輸入(來自MCU)5GND接地6A發(fā)送器同相輸出/接收器同相輸入7B發(fā)送器反相輸出/接收器反相輸入8VCC電源電壓485發(fā)送輸入 485接收輸出 A 485+ B 485- A+, B- 注意:(1) /RE,DE連接到MCU的同一個GPIO 1發(fā)送,0接收3、RS485典型應(yīng)用(1)、RS485的典型應(yīng)用電路(2)、RS485的主、從模式模式的目的:RS485主從設(shè)備能夠相互通信。(1)主機(jī)要發(fā)送數(shù)據(jù),先把自己設(shè)置為發(fā)送狀態(tài)(IO口
4、的電平為1),發(fā)送結(jié)束設(shè)置(IO口的電平為0)為接收狀態(tài);(2)從機(jī)接收到數(shù)據(jù)后,改為發(fā)送狀態(tài),因?yàn)橐貞?yīng)數(shù)據(jù)給主機(jī), 回應(yīng)結(jié)束要改為接收狀態(tài)。 4、UART和RS485的驅(qū)動程序 (1)、串口的初始化 (2)、發(fā)送和接收數(shù)據(jù) 1發(fā)送,0接收 (3)、接收數(shù)據(jù)(中斷服務(wù)函數(shù))初始設(shè)置“1+X”傳感網(wǎng)應(yīng)用開發(fā) Modbus通信協(xié)議01Modbus 協(xié)議概述02Modbus通信原理03Modbus寄存器分類目錄CONTENTS04Modbus串行消息幀格式0506知識鏈接01Modbus概述02Modbus通信原理1Modbus 協(xié)議概述 Modbus是一種串行通信協(xié)議,是工業(yè)電子設(shè)備之間常用的連
5、接方式。01ModBus概述 主機(jī)數(shù) 接設(shè)備(從站)最大數(shù) 通訊最大距離(米) 最大傳輸速(bps) 終端電阻位置 終端電阻阻值() 接線方式 RS-232112020k-與DB頭針(孔)數(shù)有關(guān) RS-4221101219(在100kbps速率以下) 10M(在100米以下) 最遠(yuǎn)端(在300米以下不接) 100四線、地線 RS-4851321219(在100kbps速率以下) 10M(在100米以下) 兩端(在300米以下不接) 120二線/四線、地線 RS-232、RS-422與RS-485通訊特性對照表 ModBus概述ModBus概述01 Modbus是Modicon(現(xiàn)為施耐德電氣公
6、司的一個品牌)在1979年開發(fā)的一項(xiàng)在ISO模型第7層的應(yīng)用層報文傳輸協(xié)議,在過去幾十年已被大量地應(yīng)用于工業(yè)控制領(lǐng)域的開放的、標(biāo)準(zhǔn)的、免費(fèi)的網(wǎng)絡(luò)通信協(xié)議。01 Modbus是最早的串行鏈路上的國際標(biāo)準(zhǔn)。在串行鏈路上取決于TIA/EIA標(biāo)準(zhǔn)(232-F和485-A)。 1997年施耐德在TCP/IPIETF標(biāo)準(zhǔn)(RFC793和RFC791)上實(shí)現(xiàn)了Modbus協(xié)議。ModBus概述EIA/TIA-232EIA/TIA-485MASTER/SLAVEETHERNET RJ45PHYSICAL LAYERETHERNET II/802.3Modbus RTU/ASCIIIPTCPPHYSICAL L
7、AYERDATALINK LAYERNETWORK LAYERTRANSPORT LAYERSESSION LAYERPRESENTATION LAYERAPPLICATION LAYERModBus概述2Modbus 通信原理ModBus通信原理Modbus協(xié)議是主從站通訊協(xié)議;網(wǎng)絡(luò)上的每個從站必須有唯一的地址(范圍從1到247); 從站地址用于尋址從站設(shè)備,由主站發(fā)起;地址0用于廣播模式,不需要響應(yīng);串行鏈路上的Modbus 傳輸模式分為Modbus RTU 和 Modbus ASCIIModBus通信原理 Modbus串行鏈路協(xié)議是一個主-從協(xié)議。在同一時間,只能將一個主站連接到總線,將
8、一個或多個從站(最大數(shù)量為247)連接到相同的串行總線。Modbus 通訊總是由主站發(fā)起,當(dāng)從站沒有收到來自主站的請求時,將不會發(fā)送數(shù)據(jù)。主站同時只能啟動一個Modbus事務(wù)處理,從站之間不能相互通信。Modbus主/從協(xié)議原理ModBus通信原理 Modbus尋址空間由256個不同地址組成。地址0為廣播地址,所有從站必須識別廣播地址。Modbus主站沒有特定地址,只有從站有一個地址,在Modbus串行總線上,這個地址必須是唯一的。Modbus尋址原則01-247248-255廣播地址從站某個地址保留地址ModBus通信原理單播模式工作方式:由主站尋址單個從站,從站接收并處理完請求之后,向主站
9、返回一個報文(一個應(yīng)答)。在這種模式下,一個Modbus 事務(wù)處理包含2 個報文:一個是主站的請求,另一個是從站的應(yīng)答。每個從站必須有唯一的地址(1247),這樣才能區(qū)別于其它站而被獨(dú)立地尋址。Modbus主/從協(xié)議原理ModBus通信原理Require-Respond(請求-響應(yīng))模型ModBus通信原理 廣播模式工作方式:主站可以向所有的從站發(fā)送請求,對于主站廣播的請求沒有應(yīng)答返回,廣播請求必須是寫命令,所有設(shè)備必須接收寫功能的廣播,地址0被保留用來識別廣播通信。Modbus主/從協(xié)議原理3Modbus 寄存器分類ModBus寄存器分類寄存器種類讀/寫長度寄存器PLC地址寄存器Modbus
10、協(xié)議地址線圈狀態(tài)Read-write1 bit00001-099990 x0000-0 xFFFF離散輸入狀態(tài)Read-only1 bit10001-199990 x0000-0 xFFFF輸入寄存器Read-only16 bits30001-399990 x0000-0 xFFFF保持寄存器Read-write16 bits40001-499990 x0000-0 xFFFF線圈狀態(tài):開關(guān)量輸出,可讀可寫離散輸入狀態(tài):開關(guān)量輸入,只讀輸入寄存器:輸入?yún)?shù),只讀保持寄存器:輸出參數(shù)或保持參數(shù),可讀可寫4Modbus 串行消息幀格式Modbus串行消息幀格式(1)ASCII消息幀格式 使用ASC
11、II模式,消息以冒號 : 字符(ASCII碼 3AH)開始,以回車換行符結(jié)束(ASCII碼 0DH,0AH),其它域可以使用的傳輸字符是”0.9,A.F”。Modbus串行消息幀格式2)RTU消息幀格式兩個連續(xù)發(fā)送的數(shù)據(jù)幀之間至少要有3.5個字符的停頓時間間隔。傳輸?shù)牡谝粋€域是設(shè)備地址。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線上的有效數(shù)據(jù)和停頓間隔時間,當(dāng)?shù)谝粋€域(地址域)接收到,每個設(shè)備都進(jìn)行解碼以判斷是否發(fā)往自己的。如果發(fā)送完一個數(shù)據(jù)幀,間隔時間小于3.5個字符時間又發(fā)送第二個數(shù)據(jù)幀,那么接收站點(diǎn)就會誤認(rèn)為它們是同一個數(shù)據(jù)幀。Modbus串行消息幀格式功能碼名稱作用01讀線圈狀態(tài)(Read Coil St
12、atus)取得一組開關(guān)量輸出的當(dāng)前狀態(tài)02讀取離散輸入狀態(tài)狀態(tài)(Read Input Status)取得一組開關(guān)量輸入的當(dāng)前狀態(tài)03讀 保持寄存器(Read Holding Registers)取得一組模擬量輸出的當(dāng)前狀態(tài)04讀輸入寄存器(Read Input Registers)取得一組模擬量輸入的當(dāng)前狀態(tài)05寫單個線圈(Force Single Coil)強(qiáng)制設(shè)定某個開關(guān)量輸出的值06寫單個保持寄存器(Preset Single Register)強(qiáng)制設(shè)定某個模擬量輸出的值15寫單個保持寄存器(Force Multiple Coils)強(qiáng)制設(shè)定從站幾個開關(guān)量輸出的值16寫多個保持寄存器(P
13、reset Multiple Regs)強(qiáng)制設(shè)定從站幾個模擬量輸出的值Modbus功能碼分類Modbus串行消息幀格式Modbus功能碼-01讀取線圈/離散量輸出狀態(tài)功能碼01 該功能碼用于讀取從設(shè)備的線圈或離散量的輸出狀態(tài).從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)線圈數(shù)高位數(shù)據(jù)線圈數(shù)低位校驗(yàn)和CRC11H01H00H13H00H25H0EH 84H從站地址功能碼字節(jié)計(jì)數(shù)數(shù)據(jù)校驗(yàn)和CRC11H01H05HCDH 6BH B2H 0EH 1BH45H E6H應(yīng)答RTU幀(Response)詢問RTU幀(Query)Modbus串行消息幀格式Modbus功能碼-02讀取離散量輸入值功能碼02該功
14、能碼用于讀取從設(shè)備的離散量的輸入狀態(tài).從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)線圈數(shù)高位數(shù)據(jù)線圈數(shù)低位校驗(yàn)和CRC11H02H00HC4H00H16HBAH A9H從站地址功能碼字節(jié)計(jì)數(shù)數(shù)據(jù)校驗(yàn)和CRC11H02H03HACH DBH 35H20H 18H應(yīng)答RTU幀(Response)詢問RTU幀(Query)Modbus串行消息幀格式Modbus功能碼-03讀取保持寄存器功能碼03該功能碼用于讀取從設(shè)備的保持寄存器的二進(jìn)制數(shù)據(jù),不支持廣播從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位校驗(yàn)和CRC11H03H00H6BH00H03H76H 87H從站地址功能碼字節(jié)計(jì)數(shù)數(shù)據(jù)校
15、驗(yàn)和CRC11H03H06H02H 2BH 00H 00H 00H 64H20H 18H應(yīng)答RTU幀(Response)詢問RTU幀(Query)Modbus串行消息幀格式Modbus功能碼-04從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位校驗(yàn)和CRC11H04H00H6BH00H03HC3H 47H從站地址功能碼字節(jié)計(jì)數(shù)數(shù)據(jù)校驗(yàn)和CRC11H04H06H02H 2BH 00H 00H 00H 64H5CH 89H應(yīng)答RTU幀(Response)詢問RTU幀(Query)讀取輸入寄存器功能碼04該功能碼用于讀取從設(shè)備輸入寄存器的二進(jìn)制數(shù)據(jù),不支持廣播Modbus串行消息幀格式
16、Modbus功能碼-05從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)開關(guān)原狀態(tài)校驗(yàn)和CRC11H05H00HACHFFH00H4EH 8BH應(yīng)答RTU幀(Response)詢問RTU幀(Query)從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)開關(guān)原狀態(tài)校驗(yàn)和CRC11H05H00HACHFFH00H4EH 8BH寫單個線圈或單個離散輸出功能碼05該功能碼用于將單個線圈或單個離散輸出狀態(tài)設(shè)置為“OFF”或“ON”Modbus串行消息幀格式Modbus功能碼-06從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)高位數(shù)據(jù)低位校驗(yàn)和CRC11H06H00H87H03H9EHBAH 2BH應(yīng)答RTU幀(Respo
17、nse)詢問RTU幀(Query)從站地址功能碼起始地址高位起始地址低位數(shù)據(jù)開關(guān)原狀態(tài)校驗(yàn)和CRC11H06H00H87H03H9EHBAH 2BH寫單個保持寄存器功能碼06該功能碼用于更新從設(shè)備單個保持寄存器的值Modbus串行消息幀格式Modbus功能碼-15從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位字節(jié)計(jì)數(shù)數(shù)據(jù)校驗(yàn)和CRC11H0FH00H13H00H0AH02HCDH 00H7EH CBH應(yīng)答RTU幀(Response)詢問RTU幀(Query)從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位校驗(yàn)和CRC11H0FH00H13H03H0AH26H 99
18、H寫多個線圈功能碼15該功能碼用于將連續(xù)的多個線圈或離散輸出設(shè)置為“ON”或“OFF”,支持廣播模式Modbus串行消息幀格式Modbus功能碼-16從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位字節(jié)計(jì)數(shù)數(shù)據(jù)校驗(yàn)和CRC11H10H00H87H00H02H04H00H 0AH 01H 02H7EH CBH應(yīng)答RTU幀(Response)詢問RTU幀(Query)從站地址功能碼起始地址高位起始地址低位寄存器數(shù)高位寄存器數(shù)低位校驗(yàn)和CRC11H10H00H87H00H02HF3H 71H寫多個保持寄存器功能碼16該功能碼用于設(shè)置或?qū)懭霃脑O(shè)備保持寄存器的多個連續(xù)的地址塊,支持廣播模式
19、“1+X”傳感網(wǎng)應(yīng)用開發(fā) CAN 通信幀介紹 CAN 控制器與收發(fā)器01CAN總線基礎(chǔ)知識02CAN控制器和收發(fā)器03應(yīng)用案例:生產(chǎn)線環(huán)境監(jiān)測系統(tǒng)目錄CONTENTS知識鏈接學(xué)習(xí)目標(biāo)掌握CAN總線相關(guān)基礎(chǔ)知識理解CAN控制器與CAN收發(fā)器接口方式技能目標(biāo):進(jìn)行基于CAN總線協(xié)議應(yīng)用程序的開發(fā)1CAN總線基礎(chǔ)知識知識鏈接一、 CAN總線概述01 CAN 總線定義了更為優(yōu)秀的物理層、數(shù)據(jù)鏈路層,并且擁有種類豐富、簡繁不一的上層協(xié)議。 CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network)的縮寫(以下稱為CAN),是ISO國際標(biāo)準(zhǔn)化的串行通信協(xié)議。02 由德國電氣商博世公司在198
20、6年率先提出。用于應(yīng)對汽車上日益龐大的電子控制系統(tǒng)的需求,其最大的特點(diǎn)是可拓展性好,可承受大量數(shù)據(jù)的高速通信,并且高度穩(wěn)定可靠。 廣泛應(yīng)用于:汽車電子、工業(yè)自動化、安防監(jiān)控、樓宇自動化、船舶、醫(yī)療設(shè)備、工業(yè)設(shè)備等方面。一、 CAN總線概述02CAN總線屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。一、 CAN總線概述較之許多RS-485基于R線構(gòu)建的分布式控制系統(tǒng)而言,基于CAN總線的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:01數(shù)據(jù)傳輸距離遠(yuǎn)(最遠(yuǎn)10Km); 具有實(shí)時性強(qiáng)、傳輸距離較遠(yuǎn)、抗電磁干擾能力強(qiáng)、成本低數(shù)據(jù)傳輸速率高;通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖
21、維,通信速率可達(dá)1mb/s。具備優(yōu)秀的仲裁機(jī)制(ID識別);具有優(yōu)先權(quán)和仲裁功能,多個控制模塊通過CAN 控制器掛到CAN-bus 上,形成多主機(jī)局部網(wǎng)絡(luò)。一、 CAN總線概述CAN總線主要特性02使用篩選器實(shí)現(xiàn)多地址的數(shù)據(jù)幀傳遞;借助遙控幀實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)請求;具備錯誤檢測與處理功能,保證了數(shù)據(jù)通信的可靠性。;具備數(shù)據(jù)自動重發(fā)功能;發(fā)送的信息遭到破壞后,可自動重發(fā);故障節(jié)點(diǎn)可自動脫離總線且不影響總線上其他節(jié)點(diǎn)的正常工作。CAN是一種多主總線,即每個節(jié)點(diǎn)機(jī)均可成為主機(jī),且節(jié)點(diǎn)機(jī)之間也可進(jìn)行通信。一、 CAN總線概述CAN總線主要特性二、 CAN技術(shù)規(guī)范與標(biāo)準(zhǔn)ISO未對此部分進(jìn)行標(biāo)準(zhǔn)化CAN的再發(fā)送
22、控制功能未在ISO11898/11519-2中標(biāo)準(zhǔn)化ISO對此部分進(jìn)行了標(biāo)準(zhǔn)化對于數(shù)據(jù)鏈路層,ISO11898和11519-2定義的內(nèi)容相同;對于物理層,ISO11898和11519-2定義的內(nèi)容不相同;美國汽車工程師學(xué)會等組織針對不同應(yīng)用領(lǐng)域?qū)AN技術(shù)規(guī)范進(jìn)行了標(biāo)準(zhǔn)化,常見的標(biāo)準(zhǔn)見下表:OSI參照模型與CAN標(biāo)準(zhǔn)ISO11898標(biāo)準(zhǔn)高速CAN總線網(wǎng)絡(luò)(500Kbps)閉環(huán)網(wǎng)絡(luò)應(yīng)用在汽車動力與傳動系統(tǒng)總線最大長度為40米兩端各有一個120的電阻ISO11519標(biāo)準(zhǔn)低速CAN總線網(wǎng)絡(luò)(125Kbps)應(yīng)用在汽車車身系統(tǒng)兩根總線是獨(dú)立的,不形成閉環(huán)要求每根總線上各串聯(lián)一個2.2K的電阻終端電阻用
23、來做阻抗匹配,以減少回波反射二、 CAN技術(shù)規(guī)范與標(biāo)準(zhǔn)常見的CAN標(biāo)準(zhǔn)(見教材P85)二、 CAN技術(shù)規(guī)范與標(biāo)準(zhǔn)CAN總線有ISO11898和ISO11519兩個通信標(biāo)準(zhǔn)對物理層的定義不同,兩者的信號電平特性也不相同,CAN總線上的報文信號使用差分電壓傳送。三、 CAN總線的報文信號電平差動信號放大器將CAN-H線上的電壓(UCAN-High)減去CAN-L線上的電壓(UCAN-Low)得出輸出電壓;CAN-H為3.5V,Can-L為1.5V時,差值為2V時判定為邏輯0;靜態(tài)時均為2.5左右,差值為0V時判定為邏輯1。四、 CAN總線的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)CAN總線的物理連接只需要兩根線,CAN_H和
24、CAN_L,通過差分信號進(jìn)行數(shù)據(jù)的傳輸.CAN總線有兩種電平,分別為隱性電平和顯性電平,這兩種電平有著 “與”的關(guān)系:若隱性電平相遇,則總線表現(xiàn)為隱性電平;若顯性電平相遇,則總線表現(xiàn)為顯性電平;若隱性電平和顯性電平相遇,則總線表現(xiàn)為顯性電平。CAN總線的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)五、 CAN總線的傳輸介質(zhì)CAN總線上的報文信號使用差分電壓傳送,分別為顯性電平和隱性電平。傳輸介質(zhì)選擇注意事項(xiàng):物理介質(zhì)必須支持顯性、隱性狀態(tài),總線仲裁時,顯性狀態(tài)可支配隱性狀態(tài)雙線結(jié)構(gòu)的總線必須使用終端電阻抑制信號反射,并且采用差分信號以減弱電磁干擾使用光學(xué)介質(zhì)時,隱性電平-狀態(tài)“暗”,顯性電平狀態(tài)“亮”同一段CAN總線網(wǎng)絡(luò)必須
25、采用相同的傳輸介質(zhì)五、 CAN總線的傳輸介質(zhì)雙絞線目前在汽車電子、電力系統(tǒng)、電梯控制系統(tǒng)和遠(yuǎn)程傳輸系統(tǒng)得到廣泛應(yīng)用雙絞線五、 CAN總線的傳輸介質(zhì)雙絞線構(gòu)成CAN網(wǎng)絡(luò)時的注意事項(xiàng)雙絞線1.網(wǎng)絡(luò)兩端必須各有一個120歐左右的終端電阻2.支線盡可能短3.確保不在干擾源附近4.電纜電阻越小越好,避免電路壓降過大5.CAN總線的波特率取決于傳輸線延時,通信距離隨波特率減小而增加五、 CAN總線的傳輸介質(zhì)拓?fù)浣Y(jié)構(gòu)的類型 光纖總線型環(huán)型星型五、 CAN總線的傳輸介質(zhì)拓?fù)浣Y(jié)構(gòu)的類型 光纖總線拓?fù)浣Y(jié)構(gòu)由一根用于共享的光纖總線作為主線路各節(jié)點(diǎn)使用總線耦合器和站點(diǎn)耦合器實(shí)現(xiàn)與主線路連接環(huán)形拓?fù)浣Y(jié)構(gòu)每個節(jié)點(diǎn)與相鄰的
26、節(jié)點(diǎn)進(jìn)行點(diǎn)對點(diǎn)相連所有節(jié)點(diǎn)形成閉環(huán)星型拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)中有一個中心節(jié)點(diǎn)。其他節(jié)點(diǎn)與中心節(jié)點(diǎn)進(jìn)行點(diǎn)對點(diǎn)相連六、 CAN通信幀CAN總線的五種通信幀序號幀類型幀用途1數(shù)據(jù)幀用于發(fā)送單元向接收單元傳送數(shù)據(jù)。2遙控幀用于接收單元向具有相同 ID 的發(fā)送單元請求數(shù)據(jù)。3錯誤幀用于當(dāng)檢測出錯誤時向其他單元通知錯誤。4過載幀用于接收單元通知發(fā)送單元其尚未做好接收準(zhǔn)備。5幀間隔用于將數(shù)據(jù)幀及遙控幀與前面的幀分離開。六、 CAN通信幀數(shù)據(jù)幀的構(gòu)成1.數(shù)據(jù)幀結(jié)構(gòu)上由7個段組成,其中根據(jù)仲裁段ID碼長度的不同,分為:標(biāo)準(zhǔn)幀(CAN2.0A)擴(kuò)展幀(CAN2.0B)六、 CAN通信幀幀起始、幀結(jié)束1.數(shù)據(jù)幀六、 CAN通
27、信幀仲裁段表示幀優(yōu)先級1.數(shù)據(jù)幀標(biāo)準(zhǔn)幀的仲裁段由11個bit的標(biāo)識符ID和RTR位構(gòu)成;擴(kuò)展幀的仲裁段由29個bit標(biāo)識符ID、SRR位、IDE位、RTR位構(gòu)成。六、 CAN通信幀控制段數(shù)據(jù)的字節(jié)數(shù)和保留位1.數(shù)據(jù)幀標(biāo)準(zhǔn)幀的控制段由IDE、保留位r0和4個bit的數(shù)據(jù)長度碼DLC構(gòu)成;擴(kuò)展幀的控制段由保留位r1、r0和4個bit的數(shù)據(jù)長度碼DLC構(gòu)成。六、 CAN通信幀數(shù)據(jù)段承載數(shù)據(jù)內(nèi)容(0-8個字節(jié))1.數(shù)據(jù)幀六、 CAN通信幀CRC段檢查幀傳輸是否錯誤1.數(shù)據(jù)幀六、 CAN通信幀ACK段確認(rèn)接收是否正常1.數(shù)據(jù)幀六、 CAN通信幀與數(shù)據(jù)幀相比,無數(shù)據(jù)段,其他與數(shù)據(jù)幀相同;遙控幀:RTR為隱
28、性電平2.遙控幀六、 CAN通信幀3.錯誤幀六、 CAN通信幀3.錯誤幀六、 CAN通信幀4.過載幀六、 CAN通信幀5. 幀間隔七、 CAN優(yōu)先級與位時序CAN技術(shù)規(guī)范規(guī)定:在總線空閑的時候,僅有一個單元可以占有總線并發(fā)送數(shù)據(jù);在多個單元同時發(fā)送數(shù)據(jù)時,優(yōu)先級高的幀先發(fā)送;“顯性電平”的優(yōu)先級高于“隱性電平”具有相同ID的數(shù)據(jù)幀與遙控幀在CAN總線上競爭時,數(shù)據(jù)幀RTR為顯性,遙控幀的為隱性,則數(shù)據(jù)幀有優(yōu)先權(quán)。七、 CAN優(yōu)先級與位時序收發(fā)單元存在時鐘頻率誤差,傳輸路徑上相位延遲也會引起同步誤差,接收單元必須采取措施調(diào)整接收時序,確保接收數(shù)據(jù)的準(zhǔn)確性。這些段又由可稱為 Time Quantu
29、m(以下稱為Tq)的最小時間單位構(gòu)成。 波特率=每秒傳輸碼元數(shù)目 位速率=1/波特率 2CAN控制器與收發(fā)器知識鏈接01CAN節(jié)點(diǎn)的硬件構(gòu)成02CAN控制器03CAN收發(fā)器一、 CAN總線上節(jié)點(diǎn)的硬件架構(gòu)CAN總線上節(jié)點(diǎn)的硬件架構(gòu)方案有兩種1.硬件架構(gòu)由MCU、CAN控制器、CAN收發(fā)器組成,采用獨(dú)立控制器。優(yōu)點(diǎn):程序移植方便缺點(diǎn):占有MCU資源且電路復(fù)雜2.硬件架構(gòu)由集成了CAN控制器的MCU和CAN收發(fā)器組成。優(yōu)點(diǎn):硬件電路簡單缺點(diǎn):可移植性差,用戶編寫的CAN程序適用某個系列MCU。CAN控制器的分類獨(dú)立控制器芯片與微控制器集成在一起NXP半導(dǎo)體的MPC2515NXP半導(dǎo)體的P87C59
30、1和LPC11CxxNXP半導(dǎo)體的SJA1000ST公司的STM32F103系列和STM32F407二、 CAN控制器1.CAN控制器的分類二、 CAN控制器CAN控制器的工作原理接口管理邏輯:連接微控制器解釋微控制器發(fā)送的命令,控制CAN控制器寄存器尋址,并向微控制器提供中斷和狀態(tài)信息CAN核心模塊:接受數(shù)據(jù)時,用于將接收到的報文由串行流轉(zhuǎn)換為并行數(shù)據(jù)。發(fā)送緩沖器:存儲完整報文,發(fā)送數(shù)據(jù)時,CAN核心模塊從發(fā)送緩沖器讀取CAN報文接收濾波器:可根據(jù)編程配置過濾掉無需接收的報文接收FIFO:接收濾波器與微控制器之間的接口,存儲從CAN總線上接收的所有報文當(dāng)CAN總線上的一個節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時
31、,它以報文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。對每個節(jié)點(diǎn)來說,無論數(shù)據(jù)是否是發(fā)給自己的,都對其進(jìn)行接收。二、 CAN控制器3.STM32F1系列MCU的CAN控制器bxCAN有3個主要的工作模式:初始化模式、正常模式和睡眠模式。bxCAN有3個主要的測試模式:靜默模式、回環(huán)模式和靜默回環(huán)模式。bxCAN特性:支持CAN技術(shù)規(guī)范V2.0A、 CAN技術(shù)規(guī)范V2.0B,通信比特率達(dá)1MB/s,支持時間觸發(fā)通信方案;含3個發(fā)送郵箱,發(fā)送優(yōu)先級可配置;含兩個具有三級深度的接收FIFO,上溢參數(shù)可配置,篩選器組可調(diào)整二、 CAN控制器3.STM32F1系列MCU的CAN控制器bxCAN的組成:CAN控制核心、CA
32、N發(fā)送郵箱、CAN接收FIFO、篩選器CAN控制核心:構(gòu)成:CAN2.0B主動內(nèi)核與各種控制、狀態(tài)、配置寄存器;任務(wù):配置CAN參數(shù)、請求發(fā)送、處理接收、管理中斷、獲取診斷信息主要寄存器:CAN主控寄存器(CAN_MCR) CAN時序寄存器( CAN_BTR )二、 CAN控制器3.STM32F1系列MCU的CAN控制器CAN主控寄存器(CAN_MCR)配置功能:調(diào)試凍結(jié)、時間觸發(fā)通信模式、自動總線關(guān)閉管理、自動喚醒模式、禁止自動重發(fā)送、接收FIFO鎖定模式、發(fā)送FIFO優(yōu)先級;CAN時序寄存器( CAN_BTR )配置功能:正常模式與各測試模式之間的切換;位時序與波特率的配置;二、 CAN控
33、制器3.STM32F1系列MCU的CAN控制器CAN發(fā)送郵箱:每個發(fā)送郵箱包含4個與數(shù)據(jù)發(fā)送功能相關(guān)的寄存器,具體名稱和功能如下:1.當(dāng)程序向CAN控制器發(fā)數(shù)據(jù)時,CAN會選擇優(yōu)級最高的空郵箱放入數(shù)據(jù)2.如果所有郵箱都滿了,會使溢出標(biāo)志位置1,需要等待有空郵箱3.滿郵箱按先后順序排隊(duì)發(fā)送數(shù)據(jù),發(fā)送完成后會變成空郵箱序號名稱功能1標(biāo)識符寄存器存儲待發(fā)送報文的標(biāo)準(zhǔn)ID和擴(kuò)展ID信息2數(shù)據(jù)長度控制寄存器存儲待發(fā)送報文的數(shù)據(jù)長度DLC段信息3低位數(shù)據(jù)寄存器存儲待發(fā)送報文數(shù)據(jù)段的低4個字節(jié)內(nèi)容4高位數(shù)據(jù)寄存器存儲待發(fā)送報文數(shù)據(jù)段的高4個字節(jié)內(nèi)容二、 CAN控制器3.STM32F1系列MCU的CAN控制器
34、篩選器:每個篩選器組包含兩個32位寄存器,分別是CAN_FxR0和CAN_FxR1 :篩選器使用時,需進(jìn)行如下配置:配置篩選器模式:標(biāo)識符掩碼模式或標(biāo)識符列表模式配置篩選器尺寸:雙16位或單32位配置篩選器的FIFO關(guān)聯(lián)情況:FIFO0或FIFO1二、 CAN控制器篩選器的4種工作狀態(tài)與說明序號工作狀態(tài)模式尺度說明1一個32位篩選器標(biāo)識符掩碼32位CAN_FxR1存儲ID,CAN_FxR2存儲掩碼,2個寄存器表示1組待篩選的ID與掩碼。可適用于標(biāo)準(zhǔn)ID和擴(kuò)展ID。2兩個32位篩選器標(biāo)識符列表32位CAN_FxR1和CAN_FxR2各存儲1個ID,2個寄存器表示2個待篩選的位ID??蛇m用于標(biāo)準(zhǔn)I
35、D和擴(kuò)展ID。3兩個16位篩選器標(biāo)識符掩碼16位CAN_FxR1高16位存儲ID,低16位存儲相應(yīng)的掩碼,CAN_FxR2高16位存儲ID,低16位存儲相應(yīng)掩碼,2個寄存器表示2組待篩選的16位ID與掩碼。只適用于標(biāo)準(zhǔn)ID。4四個16位篩選器標(biāo)識符列表16位CAN_FxR1存儲2個ID,CAN_FxR2存儲2個ID,2個寄存器表示4個待篩選的16位ID。只適用于標(biāo)準(zhǔn)ID。三、 CAN收發(fā)器電阻R14、R15為終端匹配電阻,120歐RXD、TXD:數(shù)據(jù)接收和發(fā)送引腳:用于連接CAN控制器的數(shù)據(jù)收發(fā)端;CAN-H/L兩端用于連接CAN總線的其他設(shè)備;所有設(shè)備以并聯(lián)形式接在CAN總線上三、 CAN收
36、發(fā)器官方定義:CAN收發(fā)器是CAN控制器和物理總線之間的接口,將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,在兩條有差分電壓的總線電纜上傳輸數(shù)據(jù)。三、 CAN收發(fā)器CAN收發(fā)器芯片的管腳功能描述“1+X”傳感網(wǎng)應(yīng)用開發(fā) CAN總線開發(fā)-代碼講解01CAN總線代碼編寫方法概覽02CAN總線代碼的數(shù)據(jù)結(jié)構(gòu)03CAN總線使用方法和函數(shù)目錄CONTENTS04CAN總線實(shí)例流程圖05CAN總線代碼概覽06代碼編寫建議CAN總線代碼編寫方法概覽1.CAN總線配置:工作模式配置(初始化,正常,睡眠) CAN_MCR寄存器,過濾器模式設(shè)置,過濾器優(yōu)先級設(shè)置等。2.發(fā)送數(shù)據(jù):選擇一個空的發(fā)送郵箱,設(shè)置標(biāo)
37、志符,數(shù)據(jù)長度,待發(fā)送數(shù)據(jù),CAN_T1xR寄存器置1,請求發(fā)送3.接收數(shù)據(jù)01CAN總線代碼編寫方法概覽02CAN總線代碼的數(shù)據(jù)結(jié)構(gòu)03CAN總線使用方法和函數(shù)目錄CONTENTS04CAN總線實(shí)例流程圖05CAN總線代碼概覽06代碼編寫建議CAN_HandleTypeDefCAN總線結(jié)構(gòu)體CAN_HandleTypeDefCAN總線結(jié)構(gòu)體:typedef struct _CAN_HandleTypeDef CAN_TypeDef *Instance; /*! Register base address */ CAN_InitTypeDef Init; /*! CAN required pa
38、rameters */ _IO HAL_CAN_StateTypeDef State; /*! CAN communication state */ _IO uint32_t ErrorCode; /*! CAN Error code. CAN_HandleTypeDef;CAN_TypeDef-CAN寄存器結(jié)構(gòu)體見P102詳細(xì)描述typedef struct _IO uint32_t MCR; _IO uint32_t MSR; _IO uint32_t TSR; _IO uint32_t RF0R; _IO uint32_t RF1R; _IO uint32_t IER; _IO uint
39、32_t ESR; _IO uint32_t BTR; uint32_t RESERVED088; CAN_TxMailBox_TypeDef sTxMailBox3; CAN_FIFOMailBox_TypeDef sFIFOMailBox2; uint32_t RESERVED112; _IO uint32_t FMR; _IO uint32_t FM1R; uint32_t RESERVED2; _IO uint32_t FS1R; uint32_t RESERVED3; _IO uint32_t FFA1R; uint32_t RESERVED4; _IO uint32_t FA1R;
40、 uint32_t RESERVED58; CAN_FilterRegister_TypeDef sFilterRegister14; CAN_TypeDef;01CAN總線代碼編寫方法概覽02CAN總線代碼的數(shù)據(jù)結(jié)構(gòu)03CAN總線使用方法和函數(shù)目錄CONTENTS04CAN總線實(shí)例流程圖05CAN總線代碼概覽06代碼編寫建議MX_CAN_Init():CAN工作模式配置 hcan.Instance = CAN1; hcan.Init.Prescaler = 40; hcan.Init.Mode = CAN_MODE_NORMAL; hcan.Init.SyncJumpWidth = CAN_
41、SJW_1TQ; hcan.Init.TimeSeg1 = CAN_BS1_6TQ; hcan.Init.TimeSeg2 = CAN_BS2_2TQ; hcan.Init.TimeTriggeredMode = DISABLE; hcan.Init.AutoBusOff = ENABLE; hcan.Init.AutoWakeUp = DISABLE; hcan.Init.AutoRetransmission = DISABLE; hcan.Init.ReceiveFifoLocked = DISABLE; hcan.Init.TransmitFifoPriority = DISABLE;見P102CAN函數(shù)的用法見user_can.c1. MX_CAN_Init():CAN工作模式配置2. CAN_User_Init(),CAN總線配置,過濾器的配置和啟用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國血液制品行業(yè)市場狀況調(diào)研及投資前景展望報告版
- 2024-2030年中國葵花籽種植產(chǎn)業(yè)未來發(fā)展趨勢及投資策略分析報告
- 2024-2030年中國薺藍(lán)油行業(yè)生產(chǎn)銷售模式及投資潛力分析報告版
- 2024-2030年中國背光模組行業(yè)發(fā)展態(tài)勢及投資策略分析報告
- 2024-2030年中國纖維板行業(yè)產(chǎn)量分析及投資規(guī)劃研究報告
- 2024-2030年中國篷布行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 外墻安全隱患排查與整改方案
- 急救中心應(yīng)急管理制度
- 2024年電能計(jì)量配套產(chǎn)品項(xiàng)目綜合評估報告
- 2024年細(xì)菌類診斷抗原項(xiàng)目評估分析報告
- 股權(quán)轉(zhuǎn)讓價值評估方法與案例討論(39張)課件
- 給地球爺爺?shù)囊环庑诺拈喿x答案
- 部編小學(xué)語文《口語交際》解讀課件
- 漢語言文學(xué)師范專業(yè)導(dǎo)論課程教學(xué)大綱
- 醫(yī)院參觀引導(dǎo)詞
- 污水處理廠日常水質(zhì)監(jiān)測體系
- 大學(xué)生戀愛和性心理教學(xué)案
- 體操技巧組合動作改編教案
- 腳手架工程危險源辨識及對策措施
- GB∕T 39402-2020 面向人機(jī)協(xié)作的工業(yè)機(jī)器人設(shè)計(jì)規(guī)范
- 五年級上冊數(shù)學(xué)教案2.6花邊設(shè)計(jì)比賽_西師大版(2018秋)
評論
0/150
提交評論