遠程油門控制器開關;遠程油門控制器開關圖
CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由德國BOSCH公司開發的,并最終成為國際標準(ISO 11898)。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。
CAN網絡具有:傳輸速度高、成本低、可靠性高、集成度高、效率高、節點增減靈活等優勢,是國際上應用最廣泛的現場總線之一。
一個標準的CAN網絡通常由ECU節點、CAN總線、CAN網關三部分組成。
ECU節點
ECU節點就是車上的智能硬件設備里的ECU控制單元。比如發動機ECU、懸架系統ECU、BMS、ABS等。汽車越豪華,ECU就越多。智能控制硬件越多,相對價格就越貴。一般的,一輛車普通的家用轎車都有20個以上的ECU。
下圖就是博世賽車運動發動機ECU(控制單元)。
帶有CAN接口的ECU設計是總線開發的核心與關鍵,其中ECU的CAN總線模塊主要由CAN控制器和CAN收發器組成。
CAN收發器作為CAN控制器與物理總線之間的接口,它實現CAN控制器與總線之間邏輯電平與信號電平的轉換。即從CAN核心模塊輸出邏輯電平到CAN收發器,然后經過CAN收發器內部轉換將邏輯電平轉換為差分信號輸出到CAN總線上,CAN總線上的節點都可以決定自己是否需要總線上的數據。
CAN控制器執行完整的CAN協議,完成通訊功能,包括信息緩沖和接收濾波。CAN控制器和收發器完成CAN物理層和邏輯電路層的所有功能。
CAN總線
CAN總線也叫CAN BUS,每條CAN總線一般都是由2根線組成的雙絞線構成,一根CAN_high,一根CAN_low,分別代表高電平和低電平。各個節點通過這兩條線實現信號的串行差分傳輸,為了避免信號的反射和干擾,還需要在CAN_H和CAN_L之間接上120歐姆的終端電阻。為什么是120Ω,因為電纜的特性阻抗為120Ω,選用120Ω的電阻可以模擬無限遠的傳輸線。
CAN_high電壓為2.5~3.5V、CAN_low電壓為1.5~2.5V。當沒有數據發送時,兩條線的電平一樣都為2.5V,稱為靜電平,也就是隱性電平。
CAN_high與CAN_low的電壓差小于0.5V的時候為隱性的,邏輯信號表現為“邏輯1"(高電平)。
CAN_high與CAN_low的電壓差大于0.9V的時候為顯性的,邏輯信號表現為"邏輯0"(低電平)。
一般汽車的CAN網絡可以分成動力總成總線、底盤控制總線、車身控制總線、娛樂系統總線、診斷控制總線共計五條CAN總線。
動力總成CAN總線 (PowerTrain CAN P-CAN ),主要負責車輛動力,是整車CAN網絡信號優先級、安全等級及信號傳輸速率最高的一條CAN總線,這條CAN總線上一般有以下ECU: ECM ( Engine Control Module ) 發動機控制模塊、SRS ( SupplementalRestraintSystem) 電子安全氣囊 、BMS ( Battery Management System ) 電池管理系統 、EPB Electronic Park Brake 電子駐車系統等。
底盤控制CAN總線(Chassis CAN C-CAN ),主要負責汽車底盤及4個輪子的制動、穩定、轉向,由于涉及整車制動/助力轉向等, 所以其網絡信號優先級也是比較高的。C-CAN總線上一般有以下ECU: ABS ( Antilock Brake System ) 防抱死制動系統 、ESP(Electronic Stability Program)車身電子穩定系統 、EPS(Electric Power Steering)電子轉向助力等。
車身控制CAN總線(Body CAN B-CAN),上面主要都是輔助設備,因而其網絡信號優先級比較低。B-CAN總線上一般有以下ECU:AC ( Air Condition ) 空調 、AVM(Around View Monitor) 360環視 、BCM(Body Control Module) 天窗, 車窗, 霧燈, 轉向燈, 雨刮等、IMMO(Immobilizer) 發動機防盜系統 、TPMS(Tire Pressure Monitoring System) 胎壓監控系統等。
娛樂系統CAN總線 (Infomercial CAN I-CAN),是輔助可選設備, 所以優先級也是較低的,主要負責車身上的一些提高娛樂性的智能硬件的管理與控制。I-CAN 總線上一般有以下ECU: VAES( Video Audio Entertainment System) 車載娛樂系統(中控屏) 、IPK(Instrument Pack) 組合儀表。
診斷控制總線(Diagnose CAN D-CAN):D-CAN總線主要提供遠程診斷功能,只有一個ECU: Tbox(Telematics BOX) 遠程控制模塊。
CAN網關
CAN網關或叫汽車網關,因為網關不僅處理CAN網絡,還要處理LIN網絡、車載以太網等網絡的信號。
CAN網關通常有幾十個接線pin腳,有的網關甚至100多個接線pin腳。每個接線pin腳都有嚴格的定義,要匹配規定好的CAN總線、LIN總線、車載以太網、電源接口、開關設備、電源管理方面的接線口、鑰匙開關(或無鑰匙啟動系統)的接口、油門、制動踏板的接線口、檔位開關的接線pin腳等等。
一些汽車廠商可能有更多新的硬件開關設備,電壓電阻開關設備、CAN網絡電阻匹配等也都有對應的接線pin腳。為了做通用化,還會預留一些pin腳以備用。
CAN網關是整個CAN網絡的核心,控制著整車所有CAN總線的各類信號轉發與處理?;竟δ馨?
①連接不同波特率(傳輸速度)的CAN總線/LIN總線,以實現CAN網絡的網關中繼功能。
②診斷報文/非診斷報文轉發。
③診斷防火墻的管理。
④節點在線監控。
⑤巡航控制器開關檢測。
⑥腳踏板位置檢測。
⑦網關休眠與喚醒管理。
⑧ECU升級/網關升級。
⑨電壓管理。
CAN網關可以接收任何CAN總線(LIN總線)傳來的不同傳輸速率的網絡信號,把這些信號按一定的標準處理后,廣播到整車網絡去,如果有ECU訂閱(接收)了這個信號, 則ECU將解析信號并做相應的處理。
整車所有ECU基本是以毫秒級或者微妙級的速度在源源不斷的發送并接收信號,所以網關需要處理并轉發廣播的信號是非常多的,且必須要很快處理完。
常見CAN總線故障問題及解決方案
1.總線分支過多、過長的問題
當總線支線過長,上升沿和下降沿產生臺階現象,當臺階正好處于0.5V邏輯識別閾值附近時,容易導致位寬度失調,從而使接收節點接收錯誤。
1.1 使用標準的“手牽手”的接口與布線規則,讓分支長度最小,為了保證阻抗連續,收發器應靠近接口擺放,以減少分支殘段的長度,收發器到接口距離控制在10cm以內。
1.2 根據不同波特率,制定最長分支距離的規范。 ISO11898-1/2中對高速CAN的分支長
度規定值是1Mbps下最長0.3米。其他波特率的最長分支一般由應用廠商自定義。原則是:
分支長度總和+主干長度<總線傳輸極限長度(注意極限長度一般要*0.7使用);
分支總和一般不超過總長度的30%。
1.3 采用收發器前置、TTL分支的方法,徹底解決分支問題與節點擴展問題。
2 總線電容過大問題
CAN節點的電容會影響整個網絡的電容,電容越大邊沿越緩,導致位采樣錯誤。
CAN收發器為了實現CAN的仲裁與錯誤處理,只能采用單向驅動的結構,導致CAN波形的上升沿有驅動,而下降沿是通過整條總線與終端電阻放電產生的,所以總線的終端電阻的第一作用是“放電”。
2.1 減小終端電阻值,總線加快放電速度,以“犧牲幅值”的方法改善下降沿。注意,總并聯的終端電阻不得小于24歐,在線纜較細(導線衰減較大)時,總并聯電阻要適當提高,才能保證差分幅值不小于0.9V的最低限度。
2.2 更換低電容、低直流電阻的導線。CAN的90%電容過大問題,都是導線引起的,所以控制導線的電容是最重要的,保證導線電容在40-70PF/m的范圍內,為性價比比較高的方案。
2.3 使用CANBridge等中繼器,進行波形整形。
3 傳輸報文數據不夠用
因為每個CAN報文只有8字節,應用時,很容易不夠用,所以要傳輸大于8字節,就要進行分包傳輸。CAN幀只有8字節,導致的煩擾有:
①傳輸大于8字節的內容時,必須進行分包,導致每次發送8字節,都要重復發送ID、CRC、幀結尾等“無效”數據,浪費了總線帶寬,比如擴展幀進行滿負載傳輸時,有效數據負載不到帶寬的60%,遠不如RS485;
②CAN控制器與CPU之間的總線沒有校驗,導致出錯風險,而每個CAN幀只有8字節,加上1個校驗字節,就只有7個字節有效負載,更加惡化了數據傳輸;
③分包傳輸時,容易被其他優先級較高的報文插入,或者因為干擾等錯誤引起報文丟失或者延遲到達,導致接收節點的軟件判斷困難,增加了軟件復雜程度。
3.1 把CAN ID中的某些位當做數據來用。如圖所示,擴展幀的ID中,可以擠出3個字節。
3.2 升級到CAN FD,支持最長64字節。
3.3 通過多路CAN轉以太網,實現高速CAN節點的大數量傳輸。
4 總線被干擾
4.1 保證每個節點都是電氣隔離的??梢杂行p小地回流的干擾。
4.2 共CAN收發器的信號地,CAN使用三線制信號傳輸??梢杂行б种乒材8蓴_。注意圖中屏蔽層為近距離外殼等電勢的情況下的接線方法。
4.3 屏蔽層單點接干凈的外殼,節點信號地阻容接自身外殼、屏蔽層分段屏蔽的方法??梢越鉀Q外殼電勢差導致的屏蔽層電流干擾問題。
4.4 加強線絞程度,提高抗干擾能力。通用線纜為33絞/米,強抗干擾要到45-55絞/米。還可以加磁環、共模電感。甚至要和強干擾線纜拉開0.5米以上。
4.5 增加信號保護器,提高抗浪涌群脈沖等EMC能力(注意,由于電容較大,一條總線最多增加2-3個保護器)。
4.6 增加CAN轉光纖轉換器。解決超強干擾(比如遠程激光與電磁脈沖發射裝置)與雷擊問題。
5 CAN總線系統產生故障的主要原因
5.1 汽車電源系統引起的故障:乘用車電控模塊的工作電壓為12V,實際值通常在10.5-15.0V之間,如果汽車電源系統提供的工作電壓異常,就會使得一些電控模塊可能出現短暫的工作異常,這會引起整個汽車CAN總線系統出現通信故障。
5.2 汽車CAN總線系統的鏈路故障:當CAN網絡通信線路出現、或線路物理性質變化引起信號衰減或失真,都會導致一個或多個電控單元工作異常,進而使CAN總線系統無法工作。
5.3 汽車CAN總線系統單個節點的故障:節點是汽車CAN總線系統中的ECU控制單元,因此節點故障就是ECU控制單元的故障。它通常包括軟件故障和硬件故障,軟件故障即傳輸協議或軟件程序有缺陷或沖突,從而使汽車CAN總線系統通信出現混亂或無法整車工作,這種故障一般會成批出現。硬件故障一般是ECU控制單元芯片、CAN控制器、CAN收發器或故障,造成汽車CAN總線系統無法正常工作。通常的處理措施是:將所有節點都拔掉,一個一個往上接。接到系統出錯時,即找到最后一個插入節點為故障節點。