汽車CAN總線基礎-CAN總線簡介
1.1 CAN是什么
CAN是Controller Area Network的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。
1.2 CAN的起源
汽車CAN總線是20世紀80年代初德國Bosch公司為解決現代汽車中眾多控制單元、測試儀器之間的實時數據交換而開發的一種串行通信協議。
傳統汽車線束連接如圖1.21。
在當前的汽車產業中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由于這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應“減少線束的數量”,“通過多哥LAN,進行大量數據的高速通信”的需要,1986年德國電氣商博世公司開發出面向汽車的CAN通信協議。此后,CAN通過ISO11898及ISO11519進行了標準化,現在在歐洲已是汽車網絡的標準協議。
現在,CAN總線的高性能和可靠性已被認同,并被廣泛地應用于工業自動化、船舶、醫療設備、工業設備等方面。
在汽車上的應用,CAN節點已經達到最多90個電子控制節點了。
1.1 CAN的發展史
※1983年,Bosch開始研究車上的網絡技術;
※1986年,Bosch在SAE大會公布CAN協議;
※1987年,Intel與Philips先后推出CAN控制器芯片;
※1991年,Bosch頒布CAN2.0技術規范,CAN2.0包括A和B兩個部分;
※1991年,CAN總線最先在Benz S系列轎車上實現;
※1993年,ISO頒布CAN國際標準ISO-11898;
※1994年,SAE頒布基于CAN的J1939標準;
※2003年,Maybach頒布帶76個ECU的新車型(CAN、LIN、MOST);
※2003年,VW頒布了帶35ECU的新車型Golf;
……
※未來,CAN總線將部分被FlexRay所取代,但是CAN總線將會被持續應用相當長的時間。
1.2 CAN的特性
※多主結構依據優先權進行總線訪問;
※無破壞性的基于優先權的逐位仲裁;
※借助驗收濾波器的多地址幀傳遞;
※遠程數據請求;
※全系統數據相容性;
※錯誤檢測與出錯信令;
※很遠的輸出傳輸距離(長達10Km);
※高速的數據傳輸速率(高達1Mbps);
※高度實時性,每幀報文允許傳輸最多8個字節的數據;
※發送期間丟失仲裁或出錯而遭到破壞的幀可自動重發;
※暫時錯誤和永久性故障節點的判別以及故障節點的自動脫離;
※脫離總線的節點不影響總線的正常工作。
1. 多主控制
在總線空閑時,所有的單元都可開始發送消息,最先訪問總線的單元可獲得發送權,多個單元同時開始發送時,發送高優先級ID消息的單元可獲得發送權。
2. 消息的發送
在CAN協議中,所有的消息都以固定的格式發送。總線空閑時,所有與總線相連接的單元都可以開始發送新消息。兩個以上的單元同時開始發送消息時,根據標識符ID決定優先級。ID并不是表示發送的目的地址,而是表示訪問總線的消息的優先級。兩個以上的單元同時開發發送消息時,對各消息ID的每個位進行逐個仲裁比較。仲裁獲勝(被判定為優先級最高)的單元可繼續發送消息,仲裁失利的單元則立刻停止發送而進行接收工作。
3. 系統的柔軟性
與總線相連接的單元沒有類似于“地址”的信息,因此在總線傷增加單元時,連接在總線上的其他單元的軟硬件及應用層都不需要改變。
4. 通信速度
根據整個網絡的規模,可設定適合的通信速度。在同一網絡中,所有單元必須設定成統一的通信速度,即使有一個單元的通信速度與其他的不一樣,此單元也會輸出錯誤信號,妨礙整個網絡的通信。
5. 遠程數據請求
可通過發送“遠程幀”請求其他單元發送數據。
6. 錯誤檢測功能、錯誤通知功能、錯誤恢復功能
所有的單元都可以檢測錯誤及錯誤檢測功能。檢測出錯誤的單元會立即同時通知其他所有單元及錯誤通知功能。正在發送消息的單元一旦檢測出錯誤,會強制結束當前的發送,強制結束發送的單元會不斷反復地重新發送此消息直到成功發送為止及錯誤恢復功能。
7. 故障封閉
CAN可以判斷出錯誤的類型是總線上暫時的數據錯誤(如外部噪聲等)還是持續的數據錯誤(如單元內部故障、驅動器故障、斷線等)。由此功能,當總線上發生持續數據錯誤時,可將引起此故障單元從總線上隔離出去。
8. 連接
CAN總線是可同時連接多個單元的總線,可連接的單元總數理論上是沒有限制的,但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加;提高通信速度,則可連接的單元數減少。
評論