CAN總線的技術規范與控制器類型
CAN協議介紹
CAN協議是參考ISO/OSI的7層協議模式而做定義的,但因它主要是用來傳送簡短且簡單的信號,而且是一封閉性的系統,并不需要負責系統的安全、產生用戶接口的數據,以及監控網絡的登入等動作,因此只涉及了實體層和數據鏈接層的定義。
1、實體層規范特性
實體層負責的是網絡中節點與節點之間的連結,以及在銅線、同軸纜線、光纖,甚至是無線信號的實際電性脈沖傳送。傳送器的實體層會把從數據鏈接層來的數據轉換為電子信息,再傳送出去;在接收端,實體層將這些電子信息傳換為數據格式,再傳送到數據鏈接層。
在一個網絡系統中,要確保各個節點之間能夠順利地溝通,先決條件是每個節點的實體層特性必須是相同的,而CAN實體層的作用就在于規范位表示法、位時序及同步性,通常還包括腳位連接器和接線的型式。CAN由兩條序列總線(CAN_H和CAN_L)實時傳輸數據,傳輸速率可高達1Mb/s。理論上,每個CAN總線最多可連結2032個節點,但受限于收發器的功能,實際運用上最多大約可連結100個節點,而在一般的運用上則大約是連結3~10個節點。CAN實體層示意圖如圖2所示。
圖2 CAN實體層架構示意圖
CAN數據鏈接層可以說是CAN功能的核心,其目的在于建立數據信框封包,在信框內包含數據和控制數據。數據鏈接層的主要功能之一,就是當系統中出現兩個信號同時想使用網絡中的相同資源時,如何防止沖突的發生。這就是所謂MAC(Medium Access Control)功能。在CAN協議中,MAC功能會讓具有最高優先權的數據信框優先使用總線的網絡資源,此機制對于網絡效能的影響很大。
在網絡的接取控制上有兩大方向,即先決式和隨機式。在先決式的接取控制中,總線的使用權必須在節點接取總線前就預先定義好了,以確保不會發生任何沖突。此類網絡需要一個中央管控裝置來進行網絡管理,但一旦此裝置失常,整個網絡就無法運作;也有非中心化的架構,但相對會復雜許多。
在隨機式接取控制中,當總線閑置時,每個節點都能夠要求使用網絡資源。最常見的隨機式接取控制方式是載波偵測多重存取(Carrier Sense Multiple Access,CSMA),CSMA又分成限制或防止信號碰撞的CSMA/CA方式和允許碰撞再進行處置的CSMA/CD方式。由于CSMA/CD較浪費頻寬資源及會產生較長的延遲性,因此CAN采用的是CSMA/CA的方式,此作法又稱為非破壞性的按位仲裁機制。
CAN協議讓優先權較高的信號先接取使用總線資源,在每個信號信框的一開始處就存在仲裁域,仲裁域中有一個識別碼,識別碼的數值越小,表示其優先權限越高。此作法能有效地利用總線資源,其具有最高優先權的信號,最大的延遲時間大約只有150ms。
在CAN的2.0A標準中,一開始定義識別碼的長度為11位,后來因市場的需求又提出了延伸性的2.0B版本。2.0B的格式通常被稱為延伸性CAN,它允許29位的識別碼,而且有主動及被動式兩種:2.0B主動,也就是能收、發延伸信框的節點;以及2.0B被動,它會放棄掉接收到的延伸信框。2.0B的29位識別碼能夠提供51200萬個獨特的信號及優先等級,足以滿足來自越來越多節點的大量存取要求。
三、數據鏈接層規范特性:信框格式
所謂的信框即包含由傳送器送出的完整信號的數據封包。在CAN協議中具有4種信框,即數據信框、遠程信框、誤碼信框及額外負載信框。以下主要介紹數據信框的組成。
數據信框包含了識別碼和各種控制信息,以及最多8字節的數據。其基本組成包括:信框開始、仲裁域(又包括識別碼和RTR)、控制域(又包括IDE、r0和數據長度碼)、數據域、循環冗余碼檢驗域、確認域,以及信框終點等,如圖3所示。
圖3 延伸型CAN的數據信框組成架構
評論