隨著微處理器及控制器的效能提升、價格降低及穩定性增高等因素的產生,汽車產業中也開始導入電子組件和裝置來取代傳統的純機械式產品,例如用電控燃油噴射系統來取代化油器,急剎車緩沖裝置采用高速的微處理器來達成實時的反應速度等,這在安全氣囊及座椅安全帶方面也有所體現。另外在汽車中也加裝了許多傳感器,用來追蹤不同裝置在溫度和壓力上的改變,并在出現異常時提醒控制系統及早做出處置。
為了讓汽車更安全、更有效率、更可靠和更容易操控,一臺車體中采用的電子控制單元已越來越多。在這種情況下,各個單元間的通信通力也就越來越重要。傳統的配線方式已顯得過于復雜,而且會增加車體重量和配線成本。這時就出現了對先進車載
總線技術的使用需求,以對復雜的電子控制單元及行車信息提供整合控制,進而實現線傳控制系統的理想境界。
在汽車中的電子化功能主要是要對車體中的各個零件及安全裝置進行控制,以及為駕駛提供行車或娛樂性的信息。不同的應用有不同的傳輸速率及控制機制的要求。目前業界常見或在發展中的幾項代表性的總線技術如圖1所示。
圖1 不同總線技術的速度及應用定位
CAN的技術特色
CAN協議具有許多優勢,包括它能讓設計者很容易地為CAN系統新增或移除網絡中的節點,而且不會影響其他網絡。CAN系統中的分散性微控制器無需依賴中央的主控制器就能收發信號,從而讓信號的流量管理更有效率,也有助于減少內部線路的需求。
在CAN系統中,每個節點的地位是相同的,也就是說只要總線處于閑置狀態,每個控制器節點都可以傳送信號給任何其他的控制器。控制器所發出的每個信號都有自己的識別碼,因此各個節點會接收與自己相關的信號,并忽略不相關的信號。更重要的是,在此機制中,當任何控制器出現故障時,系統中的其他裝置仍然能夠正常運作,并能保持無障礙的通信能力。
在應用上,CAN協議通常是用來傳送信號以觸發某些事件,例如在急剎車時拉緊安全帶或傳送測量到的數據(如溫度值或壓力值),因此在它的定義中限定所傳送的信號不會大于8字節。它不會去中斷任何進行中的通信行為,但會為發出的信號設定優先權,以避免產生信號之間的沖突,并確保緊急的信號能夠被優先傳送。不僅如此,此協議還具備誤碼檢查的機制,讓整個通信過程更可靠。此傳輸規范具有很高的效能,在CAN系統中每秒可傳送7600個8字節信號或1800個觸發信息。
一般來說,CAN協議具有以下特性:
□ 信號的優先次序;
□ 對延遲時間的保證;
□ 配置上的彈性;
□ 提供具有時序同步性的多點傳輸接收功能;
□ 系統級的寬數據一致性;
□ 多主機架構;
□ 誤碼偵測和誤碼信息;
□ 當總線出現空檔時,會立即自動重傳損毀的信號;
□ 能分辨節點的暫時性錯誤和永久性錯誤,并自動地關掉確定失常的節點。
CAN協議介紹
CAN協議是參考ISO/OSI的7層協議模式而做定義的,但因它主要是用來傳送簡短且簡單的信號,而且是一封閉性的系統,并不需要負責系統的安全、產生用戶接口的數據,以及監控網絡的登入等動作,因此只涉及了實體層和數據鏈接層的定義。
1、實體層規范特性
實體層負責的是網絡中節點與節點之間的連結,以及在銅線、同軸纜線、光纖,甚至是無線信號的實際電性脈沖傳送。傳送器的實體層會把從數據鏈接層來的數據轉換為電子信息,再傳送出去;在接收端,實體層將這些電子信息傳換為數據格式,再傳送到數據鏈接層。
在一個網絡系統中,要確保各個節點之間能夠順利地溝通,先決條件是每個節點的實體層特性必須是相同的,而CAN實體層的作用就在于規范位表示法、位時序及同步性,通常還包括腳位連接器和接線的型式。CAN由兩條序列總線(CAN_H和CAN_L)實時傳輸數據,傳輸速率可高達1Mb/s。理論上,每個CAN總線最多可連結2032個節點,但受限于收發器的功能,實際運用上最多大約可連結100個節點,而在一般的運用上則大約是連結3~10個節點。CAN實體層示意圖如圖2所示。
圖2 CAN實體層架構示意圖
2、數據鏈接層規范特性:總線仲裁
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的數據信框組成架構
其中控制信息是用來識別信框,決定對總線的使用,以及進行誤碼偵測。控制信息的另一項主要功能,就在于能夠分辨出某一信號是否已損毀了。當數據在任何網絡中傳送時,隨機性的誤碼是很常見的,所以數據鏈接層的重要任務之一,就是要限制這類錯誤的發生。
CAN的特色之一,就是可以通過5種方式來進行誤碼偵測,進而能掌控錯誤的發生。這5種方式包括:位檢驗、信框檢驗、循環冗余碼檢驗、確認檢驗和填充規則檢驗。透過這些方式,CAN系統中未被發現的錯誤發生率能夠有效地被降低到4.7×10-11。
此外,當損毀的信號被發現后,偵測到錯誤的節點會對這個信號做記號,其他節點會忽視這些信號,并等待正碼信號再被重傳。如果沒有更多的錯誤出現,從偵測到重傳的恢復時間是29個位時間。
CAN控制器的應用
一個CAN系統的建置中,主要的組成單元包括:控制器節點、接收/傳送發報器、兩個數據總線的終端器(電阻器)和兩條數據總線。控制器當然是其中的核心單元,在車載系統中,它可以是使用高速CAN中的汽車動力或傳動機構控制單元,例如汽車發動機控制單元、自動變速器控制單元、ABS控制單元、安全氣囊控制單元等;也可以是使用低速CAN的車身系統,例如車門上的集控鎖、車窗、行李箱鎖、后視鏡及車內頂燈。在具備遙控功能的情況下,CAN控制器還能對遙控信號進行接收處理,或控制其他防盜系統。

CAN控制器能夠實現上述CAN協議中的實體層及數據鏈接層的功能,達成位同步、優先權仲裁和誤碼偵測等要求。今天的CAN控制器大多是延伸型的2.0B型式,因為標準型的2.0A或更早的1.x型式控制器無法識別29位的仲裁位。其中2.0B被動型式的控制器可以接受這些仲裁位,確認它們是否正確,再加以放棄;2.0B主動型式的控制器能傳送和接收這些位。
在使用上,2.0B和2.0A/1.x的控制器彼此是兼容的,只要2.0B的控制器能夠調整為不送延伸信框的模式,大家都能在同樣的總線上一起使用。就2.0B CAN控制器的型式來講,還有許多選擇。以意法半導體(ST)的CAN控制器來說,就依信號緩沖的數目和接收過濾器的數目不同而分為5種類型,不同的類型又有其適合的應用領域,如圖4和下表所示:
圖4 依信號緩沖及接收過濾器數目而區分的CAN控制器型式
1、pCAN(passive CAN):支持2.0B被動協議,它有3個傳送/接收郵箱和2個信號識別碼過濾器、2個中斷向量,并支持低功耗模式;
2、beCAN(basic-enhanced):支持2.0B主動協議,它有2個優先傳送郵箱和1個接收
FIFO,有助于實時性的表現;有4個可延展和可配置的過濾器,用來處理所有的信號,由于是透過硬件來過濾,所以能將對CPU的負載需求降到最小。beCAN對媒介復雜度高的車體及汽車無線系統來說是很理想的選擇;
3、bxCAN(basic-extended):它有beCAN的各種特性,但還多了3個傳送郵箱、2個獨立的接收FIFO和8個過濾器。它為高階車體及低階網關器等應用做了最佳化的設計;
4、FullCAN:它和Intel的82527 CAN控制器兼容,具有14個傳送/接收郵箱、一個接收
FIFO和29位的識別碼過濾器。FullCAN是引擎管理系統的理想選擇。
5、cCAN:它是新一代的FullCAN裝置,有32個傳送/接收郵箱,允許大量的信號被靜態和自動地處理。它的接收郵箱支持FIFO模式,每個郵箱有自己的過濾器。cCAN很適合高階的網關器和動力傳動的應用。(e