CAN總線協議

CAN總線發展
控制器局域網CAN( Controller Area Network)屬于現場總線的范疇,是一種有效支持分布式控制系統的串行通信網絡。是由德國博世公司在20世紀80年代專門為汽車行業開發的一種串行通信總線。由于其高性能、高可靠性以及獨特的設計而越來越受到人們的重視,被廣泛應用于諸多領域。而且能夠檢測出產生的任何錯誤。當信號傳輸距離達到10km時,CAN仍可提供高達50kbit/s的數據傳輸速率。由于CAN總線具有很高的實時性能和應用范圍,從位速率最高可達1Mbps的高速網絡到低成本多線路的50Kbps網絡都可以任意搭配。因此,CAN己經在汽車業、航空業、工業控制、安全防護等領域中得到了廣泛應用。   隨著CAN總線在各個行業和領域的廣泛應用,對其的通信格式標準化也提出了更嚴格的要求。1991年CAN總線技術規范(Version2.0)制定并發布。該技術規范共包括A和B兩個部分。其中2.0A給出了CAN報文標準格式,而2.0B給出了標準的和擴展的兩種格式。美國的汽車工程學會SAE在2000年提出了J1939協議,此后該協議成為了貨車和客車中控制器局域網的通用標準。
相關組織
依據國際標準化組織/開放系統互連(International Standardi-zation Organization/Open SystemInterconnection,ISO/OSI)參考模型,CAN的ISO/OSI參考模型的層結構如圖7-6所示。
概念和特征
下面對CAN協議的媒體訪問控制子層的一些概念和特征做如下說明:   (1)報文(Message)總線上的數據以不同報文格式發送,但長度受到限制。當總線空閑時,任何一個網絡上的節點都可以發送報文。   (2)信息路由(Information Routing)在CAN中,節點不使用任何關于系統配置的報文,比如站地址,由接收節點根據報文本身特征判斷是否接收這幀信息。因此系統擴展時,不用對應用層以及任何節點的軟件和硬件作改變,可以直接在CAN中增加節點。   (3)標識符(Identifier) 要傳送的報文有特征標識符(是數據幀和遠程幀的一個域),它給出的不是目標節點地址,而是這個報文本身的特征。信息以廣播方式在網絡上發送,所有節點都可以接收到。節點通過標識符判定是否接收這幀信息。   (4)數據一致性應確保報文在CAN里同時被所有節點接收或同時不接收,這是配合錯誤處理和再同步功能實現的。   (5)位傳輸速率不同的CAN系統速度不同,但在一個給定的系統里,位傳輸速率是唯一的,并且是固定的。   (6)優先權 由發送數據的報文中的標識符決定報文占用總線的優先權。標識符越小,優先權越高。   (7)遠程數據請求(Remote Data Request) 通過發送遠程幀,需要數據的節點請求另一節點發送相應的數據?;貞濣c傳送的數據幀與請求數據的遠程幀由相同的標識符命名。   (8)仲裁(Arbitration) 只要總線空閑,任何節點都可以向總線發送報文。如果有兩個或兩個以上的節點同時發送報文,就會引起總線訪問碰撞。通過使用標識符的逐位仲裁可以解決這個碰撞。仲裁的機制確保了報文和時間均不損失。當具有相同標識符的數據幀和遠程幀同時發送時,數據幀優先于遠程幀。在仲裁期間,每一個發送器都對發送位的電平與被監控的總線電平進行比較。如果電平相同,則這個單元可以繼續發送,如果發送的是“隱性”電平而監視到的是“顯性”電平,那么這個單元就失去了仲裁,必須退出發送狀態。   (9)總線狀態 總線有“顯性”和“隱性”兩個狀態,“顯性”對應邏輯“0”,“隱性”對應邏輯“1”?!帮@性”狀態和“隱性”狀態與為“顯性”狀態,所以兩個節點同時分別發送“0”和“1”時,總線上呈現“0”。CAN總線采用二進制不歸零(NRZ)編碼方式,所以總線上不是“0”,就是“1”。但是CAN協議并沒有具體定義這兩種狀態的具體實現方式,如圖7-7所示。  ?。?0)故障界定(Confinement) CAN節點能區分瞬時擾動引起的故障和永久性故障。故障節點會被關閉。   (11)應答接收節點對正確接收的報文給出應答,對不一致報文進行標記。  ?。?2)CAN通訊距離最大是10公里(設速率為5Kbps),或最大通信速率為1Mbps(設通信距離為40米)。  ?。?3)CAN總線上的節點數可達110個。通信介質可在雙絞線,同軸電纜,光纖中選擇。  ?。?4)報文是短幀結構,短的傳送時間使其受干擾概率低,CAN有很好的效驗機制,這些都保證了CAN通信的可靠性。
編輯本段2 CAN總線協議內容
CAN總線的物理層是將ECU連接至總線的驅動電路。ECU的總數將受限于總線上的電氣負荷。物理層定義了物理數據在總線上各節點間的傳輸過程,主要是連接介質、線路電氣特性、數據的編碼/解碼、位定時和同步的實施標準。
總線競爭的原則
BOSCH CAN基本上沒有對物理層進行定義,但基于CAN的ISO標準對物理層進行了定義。設計一個CAN系統時,物理層具有很大的選擇余地,但必須保證CAN協議中媒體訪問層非破壞性位仲裁的要求,即出現總線競爭時,具有較高優先權的報文獲取總線競爭的原則,所以要求物理層必須支持CAN總線中隱性位和顯性位的狀態特征。在沒有發送顯性位時,總線處于隱性狀態,空閑時,總線處于隱性狀態;當有一個或多個節點發送顯性位,顯性位覆蓋隱性位,使總線處于顯性狀態。   在此基礎上,物理層主要取決于傳輸速度的要求。從物理結構上看,CAN節點的構成如圖7-8所示。在CAN中,物理層從結構上可分為三層:分別是物理信號層(Physical Layer Signaling,PLS)、物理介質附件(Physical MediaAttachment,PMA)層和介質從屬接口(Media Dependent:Inter-face,MDI)層。其中PLS連同數據鏈路層功能由CAN控制器完成,PMA層功能由CAN收發器完成,MDI層定義了電纜和連接器的特性。目前也有支持CAN的微處理器內部集成了CAN控制器和收發器電路,如MC68HC908GZl6。PMA和MDI兩層有很多不同的國際或國家或行業標準,也可自行定義,比較流行的是ISOll898定義的高速CAN發送/接收器標準。
節點數量
理論上,CAN總線上的節點數幾乎不受限制,可達到2000個,實際上受電氣特性的限制,最多只能接100多個節點。
CAN的數據鏈路層
CAN的數據鏈路層是其核心內容,其中邏輯鏈路控制(Logical Link control,LLC)完成過濾、過載通知和管理恢復等功能,媒體訪問控制(Medium Access control,MAC)子層完成數據打包/解包、幀編碼、媒體訪問管理、錯誤檢測、錯誤信令、應答、串并轉換等功能。這些功能都是圍繞信息幀傳送過程展開的。
編輯本段3 CAN總線的報文傳輸和結構
報文類型
在CAN2.0B的版本協議中有兩種不同的幀格式,不同之處為標識符域的長度不同,含有ll位標識符的幀稱之為標準幀,而含有29位標識符的幀稱為擴展幀。如CAN1.2版本協議所描述,兩個版本的標準數據幀格式和遠程幀格式分別是等效的,而擴展格式是CAN2.0B協議新增加的特性。為使控制器設計相對簡單,并不要求執行完全的擴展格式,對于新型控制器而言,必須不加任何限制的支持標準格式。但無論是哪種幀格式,在報文傳輸時都有以下四種不同類型的幀:
幀類型
(1)數據幀(Data ) 數據幀將數據從發送器傳輸到接收器。   (2)遠程幀(Remote ) 總線單元發出遠程幀,請求發送具有同一標識符的數據幀。   (3)錯誤幀(Error ) 任何單元檢測到總線錯誤就發出錯誤幀。   (4)過載幀(Overload ) 過載幀用在相鄰數據幀或遠程幀之間提供附加的延時。   數據幀或遠程幀與前一個幀之間都會有一個隔離域,即幀間間隔。數據幀和遠程幀可以使用標準幀及擴展幀兩種格式。
編輯本段4 CAN總線應用領域
CAN總線最初是德國BOSCH為汽車行業的監測,控制而設計的?,F已應用到鐵路、交通、國防、工程、工業機械、紡織、農用機械、數控、醫療器械機器人、樓宇、安防等方面。文章來源于:百度百科

官方微信

客戶服務熱線

0757-25588996
0757-25589697

在線客服
亚洲中文字幕无码乱线