遠(yuǎn)程油門(mén)控制器開(kāi)關(guān);遠(yuǎn)程油門(mén)控制器開(kāi)關(guān)圖
CAN是控制器局域網(wǎng)絡(luò)(Controller Area Network, CAN)的簡(jiǎn)稱,是由德國(guó)BOSCH公司開(kāi)發(fā)的,并最終成為國(guó)際標(biāo)準(zhǔn)(ISO 11898)。在北美和西歐,CAN總線協(xié)議已經(jīng)成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線,并且擁有以CAN為底層協(xié)議專為大型貨車和重工機(jī)械車輛設(shè)計(jì)的J1939協(xié)議。
CAN網(wǎng)絡(luò)具有:傳輸速度高、成本低、可靠性高、集成度高、效率高、節(jié)點(diǎn)增減靈活等優(yōu)勢(shì),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。
一個(gè)標(biāo)準(zhǔn)的CAN網(wǎng)絡(luò)通常由ECU節(jié)點(diǎn)、CAN總線、CAN網(wǎng)關(guān)三部分組成。

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