![現(xiàn)場總線 第2章 CAN總線的概念及其相關(guān)的協(xié)議_第1頁](http://file4.renrendoc.com/view/b79eec89fc80e9b722d834a848ecb242/b79eec89fc80e9b722d834a848ecb2421.gif)
![現(xiàn)場總線 第2章 CAN總線的概念及其相關(guān)的協(xié)議_第2頁](http://file4.renrendoc.com/view/b79eec89fc80e9b722d834a848ecb242/b79eec89fc80e9b722d834a848ecb2422.gif)
![現(xiàn)場總線 第2章 CAN總線的概念及其相關(guān)的協(xié)議_第3頁](http://file4.renrendoc.com/view/b79eec89fc80e9b722d834a848ecb242/b79eec89fc80e9b722d834a848ecb2423.gif)
![現(xiàn)場總線 第2章 CAN總線的概念及其相關(guān)的協(xié)議_第4頁](http://file4.renrendoc.com/view/b79eec89fc80e9b722d834a848ecb242/b79eec89fc80e9b722d834a848ecb2424.gif)
![現(xiàn)場總線 第2章 CAN總線的概念及其相關(guān)的協(xié)議_第5頁](http://file4.renrendoc.com/view/b79eec89fc80e9b722d834a848ecb242/b79eec89fc80e9b722d834a848ecb2425.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2章CAN總線的概念及其相關(guān)的協(xié)議2.1CAN總線的概念
CAN(ControllerAreaNetwork)即控制器局域網(wǎng)。由于具有高性能、高可靠性以及獨(dú)特的設(shè)計(jì),CAN總線越來越受到人們的重視。德國的Bosch公司最初為了汽車監(jiān)控和控制系統(tǒng)設(shè)計(jì)了CAN總線,現(xiàn)在,世界上許多的著名汽車制造廠商都已經(jīng)開始采用CAN總線來實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。由于CAN總線本身的特點(diǎn),其應(yīng)用范圍目前已經(jīng)不再局限于汽車行業(yè),而向過程工業(yè)、機(jī)械工業(yè)、紡織工業(yè)、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展。CAN已經(jīng)形成國際標(biāo)準(zhǔn)。并已經(jīng)被公認(rèn)為幾種最有前途的現(xiàn)場總線之一。隨著CAN在各種領(lǐng)域的應(yīng)用和推廣,對(duì)其通信格式標(biāo)準(zhǔn)化的要求日益增長。1991年9月philipsSemiconductots制定并發(fā)布了CAN技術(shù)規(guī)范。該技術(shù)規(guī)范包括A和B兩部分。CAN2.0A給出了CAN報(bào)文標(biāo)準(zhǔn)格式,而CAN2.0B給出了標(biāo)準(zhǔn)和擴(kuò)展的兩種格式。此后,1993年11月ISO正式頒布了道路交通運(yùn)輸工具——數(shù)據(jù)信息交換——高速通信控制器局域網(wǎng)(CAN)國際標(biāo)準(zhǔn)IS011898,為控制器局域網(wǎng)的標(biāo)準(zhǔn)化、規(guī)范化鋪平了道路。
下面我們首先介紹一下CAN中的一些基本概念。①報(bào)文總線上的信息以不同格式的報(bào)文發(fā)送,但長度有限。當(dāng)總線開放時(shí),任何連接的單元均可開始發(fā)送一個(gè)新報(bào)文。②信息路由在CAN系統(tǒng)中,一個(gè)CAN節(jié)點(diǎn)不使用有關(guān)系統(tǒng)結(jié)構(gòu)的任何信息。這里包含一些重要的概念:系統(tǒng)靈活性——節(jié)點(diǎn)可在不要求所有節(jié)點(diǎn)及其應(yīng)用層改變?nèi)魏诬浖蛴布那闆r下,被接于CAN網(wǎng)絡(luò)。報(bào)文通信——一個(gè)報(bào)文的內(nèi)容由其標(biāo)識(shí)符ID命名。ID并不指出報(bào)文的目的,但描述數(shù)據(jù)的含義,以便網(wǎng)絡(luò)中的所有節(jié)點(diǎn)有可能借助報(bào)文濾波決定該數(shù)據(jù)是否使它們激活。成組——由于采用了報(bào)文濾波,所有節(jié)點(diǎn)均可接收?qǐng)?bào)文,并同時(shí)被相同的報(bào)文激活。數(shù)據(jù)相容性——在CAN網(wǎng)絡(luò)內(nèi),可以確保報(bào)文同時(shí)被所有節(jié)點(diǎn)或者沒有節(jié)點(diǎn)接收,因此,系統(tǒng)的數(shù)據(jù)相容性是借助于成組和出錯(cuò)處理達(dá)到的。③位速率CAN的數(shù)據(jù)傳輸率在不同的系統(tǒng)中是不同的,而在一個(gè)給定的系統(tǒng)中,此速度是惟一的,并且是固定的。④優(yōu)先權(quán)在總線訪問期間,標(biāo)識(shí)符定義了一個(gè)報(bào)文靜態(tài)的優(yōu)先權(quán)。⑤遠(yuǎn)程數(shù)據(jù)請(qǐng)求通過發(fā)送一個(gè)遠(yuǎn)程幀,需要數(shù)據(jù)的節(jié)點(diǎn)可以請(qǐng)求另一個(gè)節(jié)點(diǎn)發(fā)送一個(gè)相應(yīng)的數(shù)據(jù)幀,該數(shù)據(jù)幀與對(duì)應(yīng)的遠(yuǎn)程幀以相同標(biāo)識(shí)符ID命名。⑥多主站當(dāng)總線開放時(shí),任何單元均可開始發(fā)送報(bào)文,發(fā)送具有最高優(yōu)先權(quán)報(bào)文的單元會(huì)贏得總線的訪問權(quán)。⑦仲裁當(dāng)總線開放時(shí),任何單元均可開始發(fā)送報(bào)文,若同時(shí)有兩個(gè)或更多的單元開始發(fā)送,總線訪問沖突運(yùn)甩逐位仲裁規(guī)則,借助標(biāo)識(shí)符ID解決。這種仲裁規(guī)則可以使信息和時(shí)間均無損失。若具有相同標(biāo)識(shí)符的一個(gè)數(shù)據(jù)幀和一個(gè)遠(yuǎn)程幀同時(shí)發(fā)送,數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位電平與總線上檢測到的電平進(jìn)行比較,若相同則該單元可繼續(xù)發(fā)送。當(dāng)發(fā)送一個(gè)“隱陛”電平,而在總線上檢測為“顯性”電平時(shí),該單元退出仲裁,并不再傳送后繼位。⑧安全性為了獲得盡可能高的數(shù)據(jù)傳輸安全性,在每個(gè)CAN節(jié)點(diǎn)中均設(shè)有錯(cuò)誤檢測、標(biāo)定和自檢的強(qiáng)有力措施。檢測錯(cuò)誤的措施包括:發(fā)送自檢、循環(huán)冗余校驗(yàn)、位填充和報(bào)文格式檢查。⑨出錯(cuò)標(biāo)注和恢復(fù)時(shí)間己損報(bào)文由檢驗(yàn)出錯(cuò)誤的節(jié)點(diǎn)進(jìn)行標(biāo)注。這樣的報(bào)文將失效,并自動(dòng)進(jìn)行重發(fā)送。如果不存在新的錯(cuò)誤,從檢出錯(cuò)誤到下一個(gè)報(bào)文開始發(fā)送的恢復(fù)時(shí)間最多為29個(gè)位時(shí)間。⑩故障界定CAN節(jié)點(diǎn)有能力識(shí)別永久性故障和暫時(shí)擾動(dòng),可自動(dòng)關(guān)閉故障節(jié)點(diǎn)。⑾連接CAN串行通信鏈路是一條眾多單元均可以被連接的總線:理論上,單元數(shù)目是無限的,實(shí)際上單元總數(shù)受限于延遲時(shí)間和總線的電器負(fù)載。⑿應(yīng)答所有接收器均對(duì)接收?qǐng)?bào)文的相容性進(jìn)行檢查,回答一個(gè)相容報(bào)文,并標(biāo)注一個(gè)不相容報(bào)文。2.2CAN的特點(diǎn)
CAN屬于總線式串行通信網(wǎng)絡(luò),由于采用了許多新技術(shù)以及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的性能、可靠性、實(shí)時(shí)性和靈活性。其特點(diǎn)可以概括如下:①通信方式靈活。CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)的向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從,且無需站地址等節(jié)點(diǎn)信息。利用這一特點(diǎn)可方便的構(gòu)成多機(jī)備份系統(tǒng)。②CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求。③CAN采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)的退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響的繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時(shí)間,尤其是在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓情況。④CAN只需通過報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無需專門的“調(diào)度”。⑤CAN的直接通信距離最遠(yuǎn)可達(dá)10km(傳輸速率5Kb/s以下):通信速率最高可達(dá)1Mb/s(此時(shí)通信距離最長為40m)。⑥CAN上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路,目前可達(dá)110個(gè);報(bào)文標(biāo)識(shí)符可達(dá)2032種(CAN2.0A),而擴(kuò)展標(biāo)準(zhǔn)(CAN2.0B)的報(bào)文標(biāo)識(shí)符幾乎不受限制。⑦CAN總線通信格式采用短幀格式,傳輸時(shí)間短,受干擾概率低。具有極好的檢錯(cuò)效果。每幀字節(jié)數(shù)最多為8個(gè),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時(shí),8B也不會(huì)占用過長的總線時(shí)間,從而保證了通信的實(shí)時(shí)陛。⑧CAN的每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,保證了數(shù)據(jù)通信的可靠性。⑨CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等多項(xiàng)工作。⑩CAN的通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活。
⑾CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。2.3CAN的分層結(jié)構(gòu)和通信協(xié)議
2.3.1CAN的分層結(jié)構(gòu)
為使設(shè)計(jì)透明和執(zhí)行靈活,遵循ISO/OSI標(biāo)準(zhǔn)模型,CAN分為數(shù)據(jù)鏈路層和物層,其中數(shù)據(jù)鏈路層又包括邏輯鏈路控制子層LLC和媒體訪問子層MAC。而在CAN技術(shù)規(guī)范2.0A中,數(shù)據(jù)鏈路層的LLC和MAC子層的服務(wù)和功能被描述為目標(biāo)層和傳輸層。圖2.1解釋了CAN的分層結(jié)構(gòu)和功能。
CAN技術(shù)規(guī)范2.0B定義了數(shù)據(jù)鏈路層中的MAC:子層和LLC子層的一部分,并描述了與CAN有關(guān)的外層接口。物理層定義信號(hào)怎樣進(jìn)行發(fā)送,因而,涉及位定時(shí)、位編碼和同步的描述,在這部分技術(shù)規(guī)范中,未定義物理層中的驅(qū)動(dòng)器,接收器特性,以便允許跟據(jù)具體應(yīng)用,對(duì)發(fā)送媒體和信號(hào)電平進(jìn)行優(yōu)化。MAC子層是CAN協(xié)議的核心,它描述由LLC子層接收到的報(bào)文和對(duì)LLC子層發(fā)送的認(rèn)可報(bào)文。MAC子層可響應(yīng)報(bào)文幀、仲裁、應(yīng)答、錯(cuò)誤檢測和標(biāo)定。MAC子層由稱為故障界定的一個(gè)管理實(shí)體監(jiān)控,它具有識(shí)別永久故障或短暫擾動(dòng)的自檢機(jī)制。LLC子層的主要功能是報(bào)文濾波、超載通知和恢復(fù)管理。
2.3.2CAN的通信協(xié)議
首先我們對(duì)CAN總線自身的通信規(guī)則和幀格式的定義進(jìn)行簡單的介紹。CAN總線是一種種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng);可以用點(diǎn)對(duì)點(diǎn),一點(diǎn)對(duì)多點(diǎn)以及全局廣播幾種方式傳送和接受數(shù)據(jù);CAN總線直接通信距離最遠(yuǎn)可達(dá)10km(此時(shí)傳輸速率只能達(dá)到5Kb/s),通信速率最高可達(dá)1Mb/s(此時(shí)傳輸距離只能達(dá)到40m):且理論上CAN總線通信網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)不受限制(實(shí)際上受CAN收發(fā)器芯片驅(qū)動(dòng)能力的限制)。CAN總線總是基于下列5條基本規(guī)則進(jìn)行通信協(xié)調(diào):①總線訪問:
CAN是共享媒體的總線,它對(duì)媒體的訪問機(jī)制類似于與以太網(wǎng)的媒體訪問機(jī)制,即采用載波監(jiān)聽多路訪問(CarrierSenseMultipleAccess,CSMA)的方式。CAN控制器只能在總線空閑時(shí)開始發(fā)送,并采用硬同步,所有CAN控制器劃步都位于幀起始的前沿。為避免異步時(shí)鐘因累計(jì)誤差而錯(cuò)位,CAN總線中用硬同步后滿足一定條件的跳變進(jìn)行重同步。所謂總線空閑,就是網(wǎng)絡(luò)上至少存在3個(gè)空閑位(隱性位)時(shí)網(wǎng)絡(luò)的狀態(tài),也就是CAN節(jié)點(diǎn)在偵聽到網(wǎng)絡(luò)上出現(xiàn)至少3個(gè)隱性位時(shí),才開始發(fā)送。②仲裁:當(dāng)總線空閑時(shí)呈隱性電平,此時(shí)任何一個(gè)節(jié)點(diǎn)都可以向總線發(fā)送一個(gè)顯性電平作為一個(gè)幀的開始。如果有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā),就會(huì)產(chǎn)生總線沖突CAN總線解決總線沖突的方法比以太網(wǎng)的CSMA/CD方法有很大的改進(jìn)。以太網(wǎng)是碰撞檢測的方式,即一旦檢測到兩個(gè)或多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息幀時(shí),即所有發(fā)送節(jié)點(diǎn)都退出發(fā)送,待隨機(jī)時(shí)間后再發(fā)送。而CAN是按位對(duì)標(biāo)識(shí)符進(jìn)行仲裁:各發(fā)送節(jié)點(diǎn)在向總線發(fā)送電平的同時(shí),也對(duì)總線上的電平進(jìn)行讀取,并與自身發(fā)送的電平進(jìn)行比較,如果電平相同則繼續(xù)發(fā)送下一位,不同則說明網(wǎng)絡(luò)上有更高優(yōu)先級(jí)的信息幀正在發(fā),即停止發(fā)送,退出總線競爭。剩余的節(jié)點(diǎn)則繼續(xù)上述過程。直到總線上只剩下一個(gè)節(jié)點(diǎn)發(fā)送的電平,總線競爭結(jié)束,優(yōu)先級(jí)最高的節(jié)點(diǎn)獲得了總線的使用權(quán),繼續(xù)發(fā)送信息幀的剩余部分直至全部發(fā)送完畢。③編碼,解碼:幀起始域、仲裁域、控制域、數(shù)據(jù)域和CRC序列均使用位填充技術(shù)進(jìn)行編碼。在CAN總線中,每連續(xù)5個(gè)同狀態(tài)的電平插入一位與它相補(bǔ)的電平,還原時(shí)每5個(gè)同狀態(tài)的電平后的相補(bǔ)電平被刪除,從而保證了數(shù)據(jù)的透明。④出錯(cuò)標(biāo)注:當(dāng)檢測到位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤或應(yīng)答錯(cuò)誤時(shí),檢測出錯(cuò)條件的CAN控制器將發(fā)送一個(gè)出錯(cuò)標(biāo)志。⑤超載標(biāo)注:一些CAN控制器會(huì)發(fā)送一個(gè)或多個(gè)超載幀以延遲下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀的發(fā)送。2.4CAN報(bào)文的幀結(jié)構(gòu)
CAN通信協(xié)議2.0A規(guī)定了4種不同的幀格式:數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀和超載幀。其中數(shù)據(jù)幀用于傳送數(shù)據(jù),遠(yuǎn)程幀用于請(qǐng)求數(shù)據(jù),超載幀用于擴(kuò)展幀序列的延遲時(shí)間,而當(dāng)局部檢測出錯(cuò)條件后產(chǎn)生一個(gè)全局信號(hào)出錯(cuò)幀。2.4.1CAN報(bào)文的幀類型
1.?dāng)?shù)據(jù)幀
數(shù)據(jù)幀由7個(gè)不同的位場組成,即幀起始標(biāo)志位、仲裁場、控制場、數(shù)據(jù)場、CRC檢查場、ACK應(yīng)答場和幀結(jié)束標(biāo)志位。數(shù)據(jù)場長度可為零。CAN2.0A數(shù)據(jù)幀的組成如圖2.2所示。
在CAN2.0B中存在兩種不同的幀格式,其主要區(qū)別在于標(biāo)識(shí)符的長度,具有11位標(biāo)識(shí)符的幀稱為標(biāo)準(zhǔn)幀,而包括29位標(biāo)識(shí)符的幀稱為擴(kuò)展幀,其格式如圖2.3所示。①幀起始標(biāo)志位(SOF)標(biāo)志著數(shù)據(jù)幀和遠(yuǎn)程幀的起始,它以一個(gè)比特的顯位出現(xiàn),只有在總線處于空閑狀態(tài)時(shí),才允許站開始發(fā)送,這個(gè)狀態(tài)將結(jié)束總線空閑狀態(tài)(被動(dòng)狀態(tài)),表明有某個(gè)節(jié)點(diǎn)設(shè)備開始發(fā)送消息,并且所有站都必須同步于首先開始發(fā)進(jìn)的那個(gè)站的幀起始前沿。②仲裁場(ArbiffafionField)由標(biāo)識(shí)符(Identifier)和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)標(biāo)志組成,如圖2.4所示。對(duì)于CAN20A標(biāo)準(zhǔn),標(biāo)識(shí)符的長度為11位,這些位以從高位到低位的順序發(fā)送,最低位為ID0,其中最高7位不能全為隱位。在數(shù)據(jù)幀中,RTR位總是設(shè)成0,而在遠(yuǎn)程幀中必須為1。對(duì)于CAN20B,標(biāo)準(zhǔn)格式和擴(kuò)展格式的仲裁場的格式不同。在標(biāo)準(zhǔn)格式中,仲裁場由11位標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位RTR組成,標(biāo)識(shí)符為ID.28~ID.l8,而在擴(kuò)展格式中,仲裁場由29位標(biāo)識(shí)符、替代遠(yuǎn)程請(qǐng)求SRR位、標(biāo)識(shí)位和遠(yuǎn)程發(fā)送請(qǐng)求位組成。標(biāo)識(shí)符位為ID.28~ID.0。IDE位對(duì)于擴(kuò)展格式屬于仲裁場,對(duì)于標(biāo)準(zhǔn)格式屬于控制場。IDE在標(biāo)準(zhǔn)格式中以顯性電平發(fā)送,而在擴(kuò)展格式中以隱性電平發(fā)送。③控制場包括數(shù)據(jù)長度碼和兩個(gè)保留位,這兩個(gè)保留位必須發(fā)送顯性位。數(shù)據(jù)長度碼(DLC)為4位,它指出了數(shù)據(jù)場的字節(jié)數(shù)目??刂茍龅慕M成如圖2.5所示。④數(shù)據(jù)場由數(shù)據(jù)幀中被發(fā)送的數(shù)據(jù)組成,它可包括0~8個(gè)字節(jié)。⑤CRC場包括CRC序列,后隨CRC界定符。
⑥應(yīng)答場(ACK)位,包括應(yīng)答間隙和應(yīng)菩界定符。在應(yīng)答場中,發(fā)送器送出兩個(gè)隱位。一個(gè)正確的接收到有效報(bào)文的接收器,在應(yīng)答間隙,將此信息通過發(fā)送一個(gè)顯位報(bào)告給發(fā)送器。所有接收到匹配CRC序列的站,通過在應(yīng)答間隙內(nèi)把顯位寫入發(fā)送器的隱位來報(bào)告。應(yīng)答界定符是應(yīng)答場的第二位,并且必須是隱位,因此,應(yīng)答間隙被兩個(gè)隱位包圍。⑦幀結(jié)束:每個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由7個(gè)隱位組成的標(biāo)志序列界定。2.遠(yuǎn)程幀
遠(yuǎn)程幀被用來請(qǐng)求總線上某個(gè)遠(yuǎn)程節(jié)點(diǎn)發(fā)送自己想要接收的某種數(shù)據(jù),具有發(fā)出這種遠(yuǎn)地消息能力的節(jié)點(diǎn)收到這個(gè)遠(yuǎn)程幀后,就應(yīng)盡力響應(yīng)這個(gè)遠(yuǎn)地傳送要求。所以對(duì)遠(yuǎn)程幀本身來說,是沒有數(shù)據(jù)域的。早遠(yuǎn)程幀中,除了RTR位被置成1,表示被動(dòng)狀態(tài)外,其余部分與數(shù)據(jù)幀完全相同。遠(yuǎn)程幀的組成如圖2.6所示。3.錯(cuò)誤幀
錯(cuò)誤幀由兩個(gè)場組成,如圖27所示,第一個(gè)場由來自各站的錯(cuò)誤標(biāo)志疊加得,隨后的第二個(gè)場是出錯(cuò)界定符。報(bào)文傳輸過程中,檢測到任何一個(gè)節(jié)點(diǎn)出錯(cuò),即于下一位開始發(fā)送錯(cuò)誤幀,通知發(fā)送端停止發(fā)送。4.超載幀
超載幀和錯(cuò)誤幀一樣由兩個(gè)場組成:超載標(biāo)志和超載界定符,如圖2.8所示。當(dāng)某接收因內(nèi)部原因要求緩發(fā)下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀時(shí),它向總線發(fā)出超載幀。超載幀還可以引發(fā)另一次超載幀,但以兩次為限。5.幀間空間
數(shù)據(jù)幀和遠(yuǎn)程幀同前面的幀相同,不管是何種幀,均以稱之為幀間空間的場位分開。相反,在超載幀和出錯(cuò)幀前面沒有幀間空間,并且多個(gè)超載幀前面也不被幀間空間分隔。2.4.2CAN報(bào)文的幀格式
在這里,我們以CAN2.0B協(xié)議為代表,簡單的介紹一下在常用的cAN控制器寄存器中,CAN數(shù)據(jù)幀的格式。1.CAN2.0B標(biāo)準(zhǔn)幀
CAN標(biāo)準(zhǔn)幀信息為11個(gè)字節(jié).包括兩部分:信息和數(shù)據(jù)部分。前3個(gè)字節(jié)為信息部分,如圖2.9所示。
注:①字節(jié)1為幀信息。第7位(FF)表示幀格式,在標(biāo)準(zhǔn)幀中,F(xiàn)F=0;第6位(RTR)表示幀的類型,RTR=O~,RTR=1表示為遠(yuǎn)程幀:DLC表示在數(shù)據(jù)幀時(shí)實(shí)際即數(shù)據(jù)長度。②字節(jié)2、字節(jié)3為報(bào)文識(shí)別碼,11位有效。③字節(jié)4~字節(jié)11為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無效。2.CAN2.0B擴(kuò)展幀
CAN擴(kuò)展幀信息為13B,包括兩部分:信息和數(shù)據(jù)部分。前5個(gè)字節(jié)為信息部分,如圖2.10所示。
注:①字節(jié)1為幀信息。第7位(FF)表示幀格式,在標(biāo)準(zhǔn)幀中,F(xiàn)F=1:第6位(RTR)表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=l表示為遠(yuǎn)程幀;DLC表示在數(shù)據(jù)幀時(shí)實(shí)際的數(shù)據(jù)長度。②字節(jié)2~字節(jié)5為報(bào)文識(shí)別碼,29位有效。③字節(jié)6~字節(jié)13為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無效。至于數(shù)據(jù)幀對(duì)于不同的CAN上層協(xié)議,存在著不同的定義。例如,在HiLon協(xié)議A和HiLon協(xié)議B中,支持廣播和點(diǎn)對(duì)點(diǎn)傳送命令數(shù)據(jù)。命令數(shù)據(jù)包可長達(dá)256B。我們在后面介紹相關(guān)CAN應(yīng)用層協(xié)議時(shí),再做介紹。2.5位定時(shí)與位同步2.51位定時(shí)與位同步的概念臣原理簡述CAN總線的數(shù)據(jù)傳輸速率最高可達(dá)IMb/s,通常用石英晶振作為時(shí)鐘發(fā)生器,可以獨(dú)立進(jìn)行位定時(shí)的參數(shù)設(shè)置,這樣即使網(wǎng)絡(luò)中節(jié)點(diǎn)之間的時(shí)鐘周期不一樣仍可獲得相同的位速率。但網(wǎng)絡(luò)中晶振的頻率不是絕對(duì)穩(wěn)定的,溫度、電壓以及器件的異常都會(huì)導(dǎo)致微小的差別,但只要將其穩(wěn)定在振蕩器容差范圍之內(nèi),總線上的節(jié)點(diǎn)會(huì)通過重同步進(jìn)行彌補(bǔ)。
與CAN總線有關(guān)的位定時(shí)和位同步包括以下的一些基本概念。(1)正常位速率在非重同步情況下,借助理想發(fā)送器每秒發(fā)送的位數(shù)。(2)正常位時(shí)間正常位速率的倒數(shù)。也就是傳送一位數(shù)據(jù)的時(shí)間,它可被分為幾個(gè)互相沒有重疊的時(shí)間段。其中包括同步段(SYNC-SEG)、傳播時(shí)間段(PROP-SEG)、相位緩沖段1(PHASE—SEGI)和相位緩沖段2(PHASE-SEG2),具體結(jié)構(gòu)如圖2.11所示。(3)同步段同步段用于同步總線上的各個(gè)節(jié)點(diǎn),在此段內(nèi)期望有一個(gè)跳變沿出現(xiàn)。如果跳變沿出現(xiàn)在同步段之外,那么沿與同步段之間的長度叫做沿相位誤差。采樣點(diǎn)位于相位緩沖段1的末尾和相位緩沖段2開始處。傳播時(shí)間段用于補(bǔ)償總線上信號(hào)傳播時(shí)間和電子控制設(shè)備內(nèi)部的延遲時(shí)間。因此,要實(shí)現(xiàn)與位流發(fā)送節(jié)點(diǎn)的同步,接收節(jié)點(diǎn)必須移相。CAN總線非破壞性仲裁規(guī)定,發(fā)送位流的總線節(jié)點(diǎn)必須能夠收到同步于位流的CAN總線節(jié)點(diǎn)發(fā)送的顯性位。(4)傳播時(shí)間段用于補(bǔ)償網(wǎng)絡(luò)內(nèi)部的傳輸延遲時(shí)間,它是信號(hào)在總線上傳播的時(shí)間、輸入比較器延遲和驅(qū)動(dòng)器延遲之和的兩倍。(5)相位緩沖段1和相位緩沖段2
用于補(bǔ)償沿的相位誤差,通過重同步,這兩個(gè)時(shí)間段可被延長或縮短。(6)采樣點(diǎn)它是一個(gè)這樣的時(shí)間點(diǎn),在該點(diǎn)上,仲裁電平被讀取,并被理解為各位的數(shù)值。它位于相位緩沖段1的終點(diǎn)。(7)信息處理時(shí)間由采樣點(diǎn)開始,保留用于計(jì)算子序列位電平的時(shí)間。(8)時(shí)間份額由振蕩器周期派生出的一個(gè)固定時(shí)間單元,存在一個(gè)可編程的分度值,其整體數(shù)值范圍為1~32,以最小時(shí)間份額為起點(diǎn)。時(shí)間份額可表示為:時(shí)間份額=m×最小時(shí)間份額(其中m為分度值)
正常位時(shí)間中各時(shí)間段長度數(shù)值分別為:同步段為一個(gè)時(shí)間份額;傳播時(shí)間段長度可編程為1個(gè)~8個(gè)時(shí)間份額;相位緩沖段1可編程為1個(gè)--8個(gè)時(shí)間份額;相位緩沖段2長度為相位緩沖段1和信息處理時(shí)間的最太值;信息處理時(shí)間長度小于或等于2個(gè)時(shí)間份額。在位時(shí)間中,時(shí)間份額的總數(shù)必須被編程為8個(gè)~25個(gè)。(9)硬同步硬同步后,內(nèi)部位時(shí)間從同步段重新開始。因而,硬同步強(qiáng)迫由于硬同步引起的沿處于重新開始的位時(shí)間同步段之內(nèi)。(10)重同步跳轉(zhuǎn)寬度由于重同步的結(jié)果,相位緩沖段1可被延長或相位緩沖段2可被縮短。這兩個(gè)相位緩沖段的延長或縮短的總和上限由重同步跳轉(zhuǎn)寬度給定。重同步跳轉(zhuǎn)寬度可編程為1個(gè)~4個(gè)。時(shí)鐘信息可由一位數(shù)值到另一位數(shù)值的跳轉(zhuǎn)獲得。由于總線上出現(xiàn)連續(xù)相同位的位數(shù)的最大值是確定的,這提供了在幀期間重新將總線單元同步于位流的可能性??杀挥糜谥赝降膬纱翁冎g的最大長度為29個(gè)位時(shí)間。(11)沿相位誤差沿相位誤差由沿相對(duì)于SYNC-SEG的位置給定,以時(shí)間份額度量。相位誤差的符號(hào)定義如下:如果沿處于同步段之內(nèi),則e=0:如果沿處于采樣點(diǎn)之前,則e>0;如果沿處于前一位的采樣點(diǎn)之后,則e<0。(12)重同步當(dāng)引起重同步沿的相位誤差小于或等于重同步跳轉(zhuǎn)寬度編程值時(shí),重同步的作用與硬同步相同。當(dāng)相位誤差太于重同步跳轉(zhuǎn)寬度且相位誤差為正時(shí),相位緩沖段1延長總數(shù)為重同步跳轉(zhuǎn)寬度。當(dāng)相位誤差大于重同步跳轉(zhuǎn)寬度且相位誤差為負(fù)時(shí),則相位緩沖段2縮短總數(shù)為重同步跳轉(zhuǎn)寬度。(13)同步規(guī)則硬同步和重同步是同步的兩種形式。它們遵從下列規(guī)則:①在一個(gè)位時(shí)間內(nèi)僅允許一種同步。②只要在先前采樣點(diǎn)上監(jiān)測到的數(shù)值與總線數(shù)值不同,沿過后立即有一個(gè)沿用于同步。③在總線空閑期間,當(dāng)存在一個(gè)隱位至顯位的跳變沿時(shí),則執(zhí)行一次硬同步。④所有履行以上規(guī)則①和②的其他隱位至顯位的跳變沿都將被用于重同步。例外情況是,對(duì)于具有正相位誤差的隱位至顯位的跳變沿,只要隱位至顯位的跳變沿被用于重同步,發(fā)送顯位的節(jié)點(diǎn)將不執(zhí)行重同步。位時(shí)間各組成部分的比較如表2.1所示。2.5.2位定時(shí)與位同步的作用
在CAN總線中,位定時(shí)有一點(diǎn)小的偏差就會(huì)導(dǎo)致總線性能嚴(yán)重下降。雖然在許多情況下,位同步會(huì)修補(bǔ)由于位定時(shí)設(shè)置不當(dāng)而產(chǎn)生的錯(cuò)誤,但不能完全避免出錯(cuò)情況.并且在遇到兩個(gè)或多個(gè)CAN節(jié)點(diǎn)同時(shí)發(fā)送的情況時(shí),錯(cuò)誤的采樣點(diǎn)會(huì)使節(jié)點(diǎn)啟動(dòng)錯(cuò)誤認(rèn)可標(biāo)志,使節(jié)點(diǎn)不能贏得總線上的任何活動(dòng)。傳播時(shí)間段>=延遲A到B+延遲B到A
傳播時(shí)間段>=2×(節(jié)點(diǎn)A的輸出延遲+總線上的傳輸時(shí)間+節(jié)點(diǎn)口的輸入延遲)
在這個(gè)例子里,節(jié)點(diǎn)A和節(jié)點(diǎn)丑都是發(fā)送節(jié)點(diǎn),因此總線要對(duì)兩個(gè)節(jié)點(diǎn)進(jìn)行仲裁。節(jié)點(diǎn)A比節(jié)點(diǎn)丑提前發(fā)送不到1個(gè)位時(shí)間,當(dāng)節(jié)點(diǎn)B收到延遲后的跳變沿時(shí),B節(jié)點(diǎn)要同步于A節(jié)點(diǎn),對(duì)位時(shí)間進(jìn)行移相。移相后節(jié)點(diǎn)B發(fā)送的標(biāo)識(shí)號(hào)有較高優(yōu)先級(jí),因此節(jié)點(diǎn)B贏得總線的使用權(quán),如圖2.12所示節(jié)點(diǎn)囂發(fā)送的顯性位經(jīng)過延遲后到達(dá)節(jié)點(diǎn)A。
因?yàn)榇嬖谡袷幤魅莶?,?jié)點(diǎn)A的采樣點(diǎn)在相位緩沖段的位置是不能確定的,所以節(jié)點(diǎn)丑發(fā)送的位流必須在A節(jié)點(diǎn)的相位緩沖段1開始之前到達(dá),因此傳播時(shí)間段的長度將受到這個(gè)條件的限制。如果節(jié)點(diǎn)口發(fā)送一個(gè)隱性到顯性的跳變沿,節(jié)點(diǎn)A在相位緩沖段l開始之后收到,那么節(jié)點(diǎn)A就有可能采樣到一個(gè)隱性位,導(dǎo)致產(chǎn)生一個(gè)位錯(cuò)誤。這樣的錯(cuò)誤只有當(dāng)兩個(gè)節(jié)點(diǎn)都參與總線仲裁,且總線比較長,節(jié)點(diǎn)的振蕩器頻率相差較大時(shí)才會(huì)出現(xiàn)。另外,CAN總線還提供一種采樣方式,即采樣3次,在相位緩沖段首尾以及相位緩沖段l、2的交界處各采樣一次,并通過位定時(shí)邏輯確定位的正確值,這樣就會(huì)要求額外的一個(gè)時(shí)間份額的延遲,因而需要更長的傳播時(shí)間斷。
同步跳轉(zhuǎn)寬度規(guī)定了重同步發(fā)生時(shí)采樣點(diǎn)在相位緩沖段內(nèi)移動(dòng)的距離。相位緩沖段和同步跳轉(zhuǎn)寬度用來補(bǔ)償振蕩器容差,發(fā)生重同步時(shí)相位緩沖段會(huì)被加長或縮短。當(dāng)總線發(fā)生從臆性到顯性跳變時(shí),會(huì)產(chǎn)生同步.其作用是控制沿與采樣點(diǎn)之間的距離。總線節(jié)點(diǎn)在每個(gè)時(shí)間份額都會(huì)采樣總線,并與前一次采樣值進(jìn)行比較,如果前一次采樣值是隱性而當(dāng)前的采樣值是顯性,那么總線節(jié)點(diǎn)就會(huì)發(fā)生一次同步。如果跳變沿出現(xiàn)在同步段的前面,沿相位錯(cuò)誤就是負(fù)的,反之就是正的。在幀起始時(shí),總線會(huì)進(jìn)行一次硬同步。硬同步后,位時(shí)間由每個(gè)位定時(shí)邏輯單元在同步段之后重新啟動(dòng).強(qiáng)迫引起硬同步的邊沿處于重新啟動(dòng)位時(shí)間的同步段內(nèi)。當(dāng)引起重同步的鉿相位錯(cuò)誤幅值小于或等于同步跳轉(zhuǎn)寬度的數(shù)值時(shí),重同步導(dǎo)致位時(shí)間的延長或縮短,使采樣點(diǎn)處于適當(dāng)?shù)奈恢?。?dāng)沿相位誤差幅值太于重同步跳轉(zhuǎn)寬度時(shí),如果相位誤差為正,相位緩沖段1延長數(shù)值等于同步跳轉(zhuǎn)寬度;如果相位誤差為負(fù),相位緩沖段2縮短數(shù)值等于同步跳轉(zhuǎn)寬度。
通過同步,總線可以有效地濾除長度小于傳播時(shí)間段與相位緩沖段1長度之和的噪聲。但在一個(gè)位時(shí)間里只允許一種同步發(fā)生。除了噪聲以外,絕大多數(shù)的同步都是由仲裁引起的,總線上的所有節(jié)點(diǎn)都要同步于最先開始發(fā)送的節(jié)點(diǎn),但是由于總線延遲,節(jié)點(diǎn)的同步不可能達(dá)到理想的要求。如果最先發(fā)送的節(jié)點(diǎn)沒有贏得總線仲裁,那么所有的接收節(jié)點(diǎn)都要重新同步于獲得總線仲裁的節(jié)點(diǎn)。應(yīng)答場的情況也是如此,總線上的接收節(jié)點(diǎn)都要同步于最先發(fā)送顯性位的節(jié)點(diǎn)。但是當(dāng)發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)的時(shí)鐘周期不同并經(jīng)過多次同步累加起來,振蕩器容差會(huì)導(dǎo)致同步在仲裁場之后出現(xiàn)。圖2.13列舉了沿相位誤差為正、負(fù)的兩種情況,中間的圖作為參考,說明了相位緩沖段如何彌補(bǔ)沿相位錯(cuò)誤。2.6CAN的位仲裁技術(shù)2.6.1位仲裁技術(shù)度其原理概述CAN總線使用的是一種叫做“載波監(jiān)測,多主掌控腫突避免”(csMA/CA)的通信模式。這就允許在總線上的任一設(shè)各有一定的機(jī)會(huì)取得總線的控制權(quán)來向外發(fā)送信息。如果在同一時(shí)刻有兩個(gè)以上的設(shè)備欲發(fā)送信息,就會(huì)發(fā)生數(shù)據(jù)沖突,CAN總線能夠?qū)崟r(shí)地檢測這些沖突情況并做出相應(yīng)的仲裁,而使得獲得仲裁的信息幀不受任何損壞的繼續(xù)傳送。當(dāng)總線空鬧時(shí)呈隱性電平,此時(shí)任何一個(gè)節(jié)點(diǎn)都可以向總線發(fā)送一個(gè)顯性電平作為一個(gè)幀的開始。如果有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送,就會(huì)產(chǎn)生競爭。CAN總線解決總線競爭的方法和以太網(wǎng)的CSMA,CD方法比較類似,并且CAN做了改進(jìn),是按位對(duì)標(biāo)識(shí)符進(jìn)行仲裁。各發(fā)送節(jié)點(diǎn)再向總線發(fā)送電平的同時(shí),也對(duì)總線上的電平進(jìn)行讀取,并與自身發(fā)送的電平進(jìn)行比較,如果電平相同則繼續(xù)發(fā)送下一位,不同則停止發(fā)送,退出總線競爭。剩余的節(jié)點(diǎn)則繼續(xù)上述過程.直到總線上只剩下一個(gè)節(jié)點(diǎn)發(fā)送的電平,總線競爭結(jié)束,優(yōu)先級(jí)最高的節(jié)點(diǎn)獲得了總線的使用權(quán)。
CAN總線以報(bào)文為單位進(jìn)行數(shù)據(jù)傳送,報(bào)文的優(yōu)先級(jí)結(jié)合在11位標(biāo)識(shí)符中(擴(kuò)展幀是29位標(biāo)識(shí)符),具有最低二進(jìn)制數(shù)的標(biāo)識(shí)符有最高的優(yōu)先級(jí)。這種優(yōu)先級(jí)一旦在系統(tǒng)設(shè)計(jì)時(shí)被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。圖2.14是3個(gè)CAN信息幀同時(shí)發(fā)送,在總線上的競爭情況。在前5位,它們都是相同的,因此3個(gè)節(jié)點(diǎn)偵聽到的信息和它們發(fā)出去的相同。到第6位,節(jié)點(diǎn)2發(fā)送一個(gè)“l(fā)”,但是,從總線上接收到的卻是“0”,說明有優(yōu)先級(jí)比它高的信息幀在發(fā)送,這個(gè)節(jié)點(diǎn)即退出發(fā)送,而變成只聽模式,余下的2個(gè)節(jié)點(diǎn)繼續(xù)發(fā)送。到了第9位,節(jié)點(diǎn)1發(fā)送“1”,而接收到“0”,也退出發(fā)送狀態(tài),而轉(zhuǎn)成只聽模式。只有節(jié)點(diǎn)3成功的發(fā)送完全部仲裁域位,而獲得總線的控制權(quán),繼而發(fā)送完它的全部信息。注意,總線中的信號(hào)持續(xù)跟蹤最后獲得總線讀取權(quán)的站的報(bào)文。在此例中,節(jié)點(diǎn)3的報(bào)文被跟蹤。這種非破壞性位仲裁方法的優(yōu)點(diǎn)在于,在網(wǎng)絡(luò)晟終確定哪一個(gè)站的報(bào)文被傳送以前,報(bào)文的起始部分已經(jīng)在網(wǎng)絡(luò)上傳送了。所有未獲得總線讀取權(quán)的站都成為具有最高優(yōu)先權(quán)報(bào)文的接收站,并且不會(huì)在總線再次空閑前發(fā)送報(bào)文。CAN具有較高的效率是因?yàn)榭偩€僅僅被那些請(qǐng)求總線懸而未決的節(jié)點(diǎn)利用,這些請(qǐng)求是根據(jù)報(bào)文在整個(gè)系統(tǒng)中的重要性按順序處理的。這種方法在網(wǎng)絡(luò)負(fù)載較重時(shí)有很多優(yōu)點(diǎn),因?yàn)榭偩€讀取的優(yōu)先級(jí)已被按順序放在每個(gè)報(bào)文中了,這可以保證在實(shí)時(shí)系統(tǒng)中較低的個(gè)體隱伏時(shí)間。對(duì)于主節(jié)點(diǎn)的可靠性,由于CAN協(xié)議執(zhí)行非集中化總線控制,所有主要通信,包括總線讀取(許可)控制,在系統(tǒng)中分幾次完成。這是實(shí)現(xiàn)有較高可靠性的通信系統(tǒng)的惟一方法。2.6.2位仲裁的作用
載波監(jiān)測的意思是指在總線上的每個(gè)節(jié)點(diǎn)在發(fā)送信息報(bào)文前都必須監(jiān)測到總線上有一段時(shí)間的空閑狀態(tài)。一旦此空閑狀態(tài)被監(jiān)測到,那么每個(gè)節(jié)點(diǎn)都有均等的機(jī)會(huì)來發(fā)送報(bào)文,這被稱作多主掌握。沖突避免是指在兩個(gè)以上節(jié)點(diǎn)同時(shí)發(fā)送信息時(shí)。節(jié)點(diǎn)本身首先會(huì)檢測到出現(xiàn)沖突,然后采取相應(yīng)的措施來解決這一沖突情況。此時(shí)優(yōu)先級(jí)高的報(bào)文先發(fā)送,低優(yōu)先級(jí)的報(bào)文發(fā)送會(huì)暫停。在CAN總線協(xié)議中是通過一種非破壞性的仲裁方式來實(shí)現(xiàn)沖突檢測的。這也就意味著當(dāng)總線出現(xiàn)發(fā)送沖突時(shí),通過仲裁后原發(fā)送信息不會(huì)受到任何影響。所有的仲裁判別都不會(huì)破壞優(yōu)先級(jí)高的報(bào)文信息內(nèi)容,也不會(huì)對(duì)其發(fā)送產(chǎn)生任何的時(shí)延。為了達(dá)到這種“非破壞性的位仲裁方式”,CAN總線協(xié)議必須滿足一些前提條件。首先,必須定義兩種邏輯狀態(tài)——我們在這里叫做顯性位(Dominant)和隱性位(Recessive):然后,節(jié)點(diǎn)在發(fā)送過程中必須檢測剛剛發(fā)出的狀態(tài)是否就是信息中所描述的內(nèi)容。在CAN總線的定義中,邏輯0為顯性位,邏輯1為隱性位。顯性位一定會(huì)在和隱性位的判別過程中獲勝,從這個(gè)角度來看,CAN總線系統(tǒng)就相當(dāng)于一個(gè)大的與門。換句話說,報(bào)文標(biāo)記區(qū)(報(bào)文仲裁專用區(qū)域)的值越小,其優(yōu)先級(jí)就越高。假定有兩個(gè)節(jié)點(diǎn)在同一時(shí)刻發(fā)送一個(gè)報(bào)文,每個(gè)節(jié)點(diǎn)都會(huì)監(jiān)測總線以便了解欲發(fā)送的信息狀態(tài)是否確實(shí)出現(xiàn)在總線上。一個(gè)優(yōu)先級(jí)較低的報(bào)文在某一時(shí)刻會(huì)發(fā)送一個(gè)“隱牲位”但是檢測回來的卻是“顯性位”。此時(shí)這個(gè)節(jié)點(diǎn)被仲裁為發(fā)送權(quán)取消,立刻停止發(fā)送報(bào)文的工作。優(yōu)先級(jí)較高的報(bào)文繼續(xù)發(fā)送直到完整的報(bào)文發(fā)送完畢。在剛才沖突仲裁中被取消發(fā)送權(quán)的節(jié)點(diǎn)將等待總線的下一個(gè)空閑期并自動(dòng)地再次嘗試發(fā)送。
雖然上述的仲裁方式有著許多的優(yōu)點(diǎn),但是它也存在一些不足和局限性。顯而易見,由于CAN總線采用的是固定的優(yōu)先級(jí),所以當(dāng)總線上的數(shù)據(jù)量較大時(shí),由前面介紹的仲裁方法我們可知:當(dāng)所有的節(jié)點(diǎn)都隨機(jī)的向總線上發(fā)送數(shù)據(jù)時(shí),具有低優(yōu)先級(jí)的節(jié)點(diǎn)總是比具有高優(yōu)先級(jí)的節(jié)點(diǎn)有較大的發(fā)送失敗的幾率。也就是說,當(dāng)具有高優(yōu)先級(jí)的節(jié)點(diǎn)以足夠高的頻率向總線上發(fā)送數(shù)據(jù)時(shí),如果考慮一種最壞的情況。那么具有較低優(yōu)先級(jí)的節(jié)點(diǎn)可能每次要求向總線上發(fā)送數(shù)據(jù)的時(shí)候都有一個(gè)具有更高優(yōu)先級(jí)的節(jié)點(diǎn)同時(shí)也要求發(fā)送,那么每次具有較低優(yōu)先級(jí)的節(jié)點(diǎn)都會(huì)在總線競爭中失敗,從而導(dǎo)致它一個(gè)數(shù)據(jù)都發(fā)送不出去,或者發(fā)送的數(shù)據(jù)都有較大的延時(shí),對(duì)采樣或控制來說,當(dāng)延時(shí)超過某個(gè)預(yù)定值時(shí),接收到的數(shù)據(jù)就已經(jīng)失去了實(shí)際的意義。這種情況在實(shí)際的工業(yè)應(yīng)用中是可能出現(xiàn)的,并且是不利于我們采集數(shù)據(jù)和控制過程的。在采樣或控制過程中,我們希望各個(gè)節(jié)點(diǎn)無論是采樣還是執(zhí)行控制,都應(yīng)該是平等的,也就是說它們發(fā)送的數(shù)據(jù)對(duì)控制而言具有同等的重要性,在許多的環(huán)境中實(shí)際情況都是這樣。所以我們要找出一個(gè)合理的解決方案,使得所有的節(jié)點(diǎn)都能在它們發(fā)送的數(shù)據(jù)還有效的時(shí)候把數(shù)據(jù)發(fā)送出去,使所有的節(jié)點(diǎn)公平的享有總線的使用權(quán)。2.7CAN的報(bào)文濾波技術(shù)2.7.1報(bào)文濾波的原理及其用途
在CAN總線中,存在多種傳送和接收暫據(jù)的方式,比如點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式。這幾種方式的選擇和轉(zhuǎn)換就是通過CAN總線中的報(bào)文濾波技術(shù)實(shí)現(xiàn)的,而無需專門的調(diào)度。下面我們以SJAl000為例簡單地介紹一下報(bào)文濾波的原理和用途。在SJAl000中,無論是何種模式,都是CAN的某一地址存在驗(yàn)收濾波器中。在驗(yàn)收濾波器的幫助下,CAN控制器能夠允許RXFIFO只接收同識(shí)別碼和驗(yàn)收濾波器中預(yù)設(shè)值相一致的信息。只有當(dāng)接收信息中的識(shí)別位和驗(yàn)收濾波器預(yù)定義的值相等時(shí),CAN控制器才允許將已接收信息存入RXFIFO。驗(yàn)收濾波器由驗(yàn)收代碼寄存器(ACRn)和驗(yàn)收屏蔽寄存器(AMRn)定義。要接收的信息的位模式在驗(yàn)收代碼寄存器中定義。相應(yīng)的驗(yàn)收屏蔽寄存器允許定義某些位為“不影響”(即可為任意值)。有兩種不同的過濾模式可在模式寄存器中選擇:①單濾波器模式。②雙濾波器模式。2.7.2單濾波技術(shù)
單濾波器配置可以定義一個(gè)長濾波器(4B)。濾波器字節(jié)和信息字節(jié)之間位的對(duì)應(yīng)關(guān)系取決于當(dāng)前接收幀的格式。標(biāo)準(zhǔn)幀:如果接收的是標(biāo)準(zhǔn)幀格式的信息,在驗(yàn)收濾波中只使用前兩個(gè)數(shù)據(jù)字節(jié)來存放包括RTR位的完整的識(shí)別碼。如果由于置位砌喂位而導(dǎo)致沒有數(shù)據(jù)字節(jié),使設(shè)置相應(yīng)的數(shù)據(jù)長度代碼沒有或只有一個(gè)數(shù)據(jù)字節(jié),信息也會(huì)被接收的。對(duì)于一個(gè)成功接收的信息,所有單個(gè)位的比較后都必須發(fā)出接受信號(hào)。接收標(biāo)準(zhǔn)結(jié)構(gòu)信息時(shí)的單個(gè)濾波器配置如圖2.15所示。
為了和將來的產(chǎn)品兼容,AMR1和ACR1的低四位是不用的。這些位可通過設(shè)置AMR1.3、AMR1.2、AMR1.4和AMR1.0為1而定為“不影響”。
擴(kuò)展幀:如果接收的信息是擴(kuò)展幀格式的,包括RTR位的全部識(shí)別碼將被接受過濾使用。為了成功接收信息,每個(gè)位的比較后都必須發(fā)出接受信號(hào)。接收擴(kuò)展幀信息時(shí)的單濾波器配置如圖2.16所示。
必須注意的是,為了和將來的產(chǎn)品兼容,AMR3的最低兩位和ACR3是不用的。這些位應(yīng)該通過置位AMR3.1和AMR3.0“不影響”。2.7.3雙濾波技術(shù)
雙濾波器的配置可以定義兩個(gè)短濾波器,一條接收的信息要和兩個(gè)濾波器比較來決定是否放入接收緩沖器中。至少有一個(gè)濾波器發(fā)出接受信號(hào),接收的信息才有效。濾波器字節(jié)和信息字節(jié)之間位的對(duì)應(yīng)關(guān)系取決于當(dāng)前接收的幀格式。標(biāo)準(zhǔn)幀:如果接收的是標(biāo)準(zhǔn)幀信息,被定義的兩個(gè)濾波器是不一樣的。第一個(gè)濾波器比較包括RTR位的整個(gè)標(biāo)準(zhǔn)識(shí)別碼和信息的第一個(gè)數(shù)據(jù)字節(jié)。第二個(gè)濾波器只比較包括RTR位的整個(gè)標(biāo)準(zhǔn)識(shí)別碼,接收標(biāo)準(zhǔn)幀信息的雙濾波器配置如圖2.17所示。
為了成功接收信息,所有單個(gè)位的比較時(shí)應(yīng)至少有一個(gè)濾波器表示接受。RTR位置位或數(shù)據(jù)長度代碼是0時(shí)表示沒有數(shù)據(jù)字節(jié)存在。無論怎樣。只要從開始到RTR位的部分都被表示接收,信息就可以通過濾波器1。如果沒有向?yàn)V波器請(qǐng)求數(shù)據(jù)字節(jié)過濾,AMR1和AMR3的低四位必須被置為1(不影響)。當(dāng)使用包括RTR位的整個(gè)標(biāo)準(zhǔn)識(shí)別碼時(shí),兩個(gè)濾波器都同樣工作。
擴(kuò)展幀:如果接收到擴(kuò)展幀信息,定義的兩個(gè)濾波器是相同的。兩個(gè)濾波器都只比較擴(kuò)展識(shí)別碼的前兩個(gè)字節(jié)。接收擴(kuò)展幀信息的雙濾波器配置如圖2.18所示。
為了能成功接收信息,所有單個(gè)位的比較時(shí)至少有一個(gè)濾波器表示接收。2.8有關(guān)CAN總線的通信錯(cuò)誤及其處理2.8.1CAN總線的通信錯(cuò)誤成因及其狀態(tài)描述
在CAN總線中存在5種錯(cuò)誤類型,它們互相并不排斥,下面簡單介紹一下它們的區(qū)別和成因。①位錯(cuò)誤:向總線送出一位的某個(gè)節(jié)點(diǎn)同時(shí)也在監(jiān)視總線.當(dāng)監(jiān)視到總線位數(shù)值與送出的位數(shù)值不同時(shí),則在該位時(shí)刻檢測到一個(gè)位錯(cuò)誤。例外情況是,在仲裁場的填充位流期間或應(yīng)答間隙送出隱位而檢測到顯位時(shí),不視為位錯(cuò)誤。送出認(rèn)可錯(cuò)誤標(biāo)注的發(fā)送器,在檢測到顯位時(shí),也不視為位錯(cuò)誤。②填充錯(cuò)誤:在應(yīng)使用位填充方法進(jìn)行編碼的報(bào)文中,出現(xiàn)了第6個(gè)連續(xù)相同的位電平時(shí),將檢出一個(gè)位填充錯(cuò)誤。③CRC錯(cuò)誤:CRC序列是由發(fā)送器CRC計(jì)算的結(jié)果組成的。接收器以與發(fā)送器相同的方法計(jì)算CRC。如果計(jì)算結(jié)果與接收到的CRC序列不相同,則檢出一個(gè)CRC錯(cuò)誤。④形式錯(cuò)誤:當(dāng)固定形式的位場中出現(xiàn)一個(gè)或多個(gè)非法位時(shí),則檢出一個(gè)形式錯(cuò)誤。⑤應(yīng)答錯(cuò)誤:在應(yīng)答間隙,發(fā)送器未檢測到顯位時(shí),則由它檢出一個(gè)應(yīng)答錯(cuò)誤。
2.8.2錯(cuò)誤檢測及處理
檢測到出錯(cuò)條件的站通過發(fā)送錯(cuò)誤標(biāo)志進(jìn)行標(biāo)定。當(dāng)任何站檢出位錯(cuò)誤、填充錯(cuò)誤、形式錯(cuò)誤或應(yīng)笞錯(cuò)誤時(shí),由該站在下一位開始發(fā)送出錯(cuò)標(biāo)志。當(dāng)檢測到CRC錯(cuò)誤時(shí),出錯(cuò)標(biāo)志在應(yīng)答界定符后面那一位開始發(fā)送,除非其他出錯(cuò)條件的錯(cuò)誤標(biāo)志已經(jīng)開始發(fā)送。在CAN總線中,任何一個(gè)單元可能處于下列3種故障狀態(tài)之一:錯(cuò)誤激活狀態(tài)(ErrorActive)、錯(cuò)誤認(rèn)可狀態(tài)(ErrorPassive)和總線關(guān)閉狀態(tài)。檢測到出錯(cuò)條件的站通過發(fā)送出錯(cuò)誤標(biāo)志進(jìn)行標(biāo)定。對(duì)于錯(cuò)誤激活節(jié)點(diǎn),該標(biāo)志為活動(dòng)錯(cuò)誤標(biāo)志;而對(duì)于錯(cuò)誤認(rèn)可節(jié)點(diǎn),該標(biāo)志為認(rèn)可錯(cuò)誤標(biāo)志。錯(cuò)誤激活單元可以照常參與總線通信,并且當(dāng)檢測到錯(cuò)誤時(shí),送出一個(gè)活動(dòng)錯(cuò)誤標(biāo)志。錯(cuò)誤認(rèn)可節(jié)點(diǎn)可參與總線通信,但是不允許它送出活動(dòng)錯(cuò)誤標(biāo)志,它當(dāng)檢測到錯(cuò)誤時(shí),只能送出認(rèn)可錯(cuò)誤標(biāo)志,并且發(fā)送后仍為錯(cuò)誤認(rèn)可狀態(tài),直到下一次發(fā)送初始化??偩€關(guān)閉狀態(tài)不允許單元對(duì)總線有任何影響。
為了界定故障,在每個(gè)總線單元中都設(shè)有兩種計(jì)數(shù):發(fā)送出錯(cuò)計(jì)數(shù)和接收出錯(cuò)計(jì)數(shù)。這些計(jì)數(shù)按照下列規(guī)則進(jìn)行:①接收器檢出錯(cuò)誤時(shí),接收器出錯(cuò)計(jì)數(shù)器加1.除非所檢測錯(cuò)誤是發(fā)送活動(dòng)錯(cuò)誤標(biāo)志或超載標(biāo)志期間的位錯(cuò)誤。②接收器在送出錯(cuò)誤標(biāo)志后的第一位檢出一個(gè)顯位時(shí),接收器錯(cuò)誤計(jì)數(shù)器加8。③發(fā)送器送出一個(gè)錯(cuò)誤標(biāo)志時(shí),發(fā)送器錯(cuò)誤計(jì)數(shù)器加8。其中有兩個(gè)例外情況:一個(gè)是如果發(fā)送器為錯(cuò)誤認(rèn)可,由于未檢測到顯位應(yīng)答或檢測到一個(gè)應(yīng)答錯(cuò)誤,并且在送出其認(rèn)可錯(cuò)誤標(biāo)志時(shí),未檢測到顯
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- LY/T 3405-2024竹材弧形原態(tài)重組材
- 人教版數(shù)學(xué)七年級(jí)下冊第7課時(shí)《平行線的性質(zhì)(一)》聽評(píng)課記錄
- 2025年造紙色漿合作協(xié)議書
- 湘教版數(shù)學(xué)七年級(jí)上冊《3.4一元一次方程模型的應(yīng)用(1)》聽評(píng)課記錄
- 蘇人版道德與法治九年級(jí)上冊7.2《違法要受法律處罰》聽課評(píng)課記錄
- 生態(tài)保護(hù)資源共享合同(2篇)
- 環(huán)境監(jiān)測設(shè)備合作開發(fā)合同(2篇)
- 六年級(jí)上冊聽評(píng)課記錄
- (人教版)七年級(jí)下冊數(shù)學(xué)配套聽評(píng)課記錄:5.1.3 《同位角、內(nèi)錯(cuò)角、同旁內(nèi)角》
- 四年級(jí)科學(xué)聽評(píng)課記錄
- 拆遷征收代理服務(wù)投標(biāo)方案
- 完形療法概述
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗(yàn)收評(píng)定標(biāo)準(zhǔn)
- 商標(biāo)基礎(chǔ)知識(shí)課件
- 監(jiān)理質(zhì)量管理講義監(jiān)理工作的基本知識(shí)
- 涉詐風(fēng)險(xiǎn)賬戶審查表
- 煙花爆竹考試真題模擬匯編(共758題)
- 2023年大學(xué)英語四級(jí)考試模擬真題及答案
- 四年級(jí)數(shù)學(xué)上冊口算天天練4
- 蘇教版二年級(jí)數(shù)學(xué)寒假輔導(dǎo)提高班課件 第1講 眼花繚亂的數(shù)據(jù)(66張PPT)
- 水利水電工程監(jiān)理平行檢測表部分
評(píng)論
0/150
提交評(píng)論