本文帶領(lǐng)你一起解讀汽車CAN通訊總線,從CAN的原理、設(shè)計(jì)、應(yīng)用以及維修,全方面解析讀懂CAN通訊,遇到汽車通訊協(xié)議故障,無師自通!
一、“什么是CAN?”
CAN,是controller Area Network的縮寫,即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。最初,CAN被設(shè)計(jì)作為汽車的微控制器通訊,在車載各電子控制裝置(比如發(fā)動(dòng)機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,均嵌入CAN控制裝置)之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。
一個(gè)由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛無數(shù)個(gè)節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性限制。常見的CAN線的頻率有250Kbs/500Kbs/1000Kbs,不同的頻率代表傳輸速度的快慢不一樣。
二、“CAN的工作原理?”
CAN通訊協(xié)議主要描述設(shè)備之間的信息傳遞方式。CAN層的定義與開放系統(tǒng)互連模型一致。每一層與另一設(shè)備上的相同的那一層通訊。實(shí)際的通訊發(fā)生在每一設(shè)備上相鄰的兩層,而設(shè)備只通過模型物理層的物理介質(zhì)互連。
CAN能夠使用多種物理介質(zhì),例如雙絞線、光釬等。最常用的就是雙絞線,信號(hào)使用差分電壓傳送,兩條信號(hào)線被稱為“CAN_H”和“CAN_L”,靜態(tài)時(shí)均是2.5V左右,此時(shí)狀態(tài)表示為邏輯“1”,也可以叫做“隱性”。用CAN_H比CAN_L高表示邏輯“0”,稱為“顯形”;此時(shí),通常電壓值為:CAN_H=3.5V和CAN_L=1.5V。
三、CAN總線的通訊原理
第一種『每項(xiàng)信息都通過各自獨(dú)立的數(shù)據(jù)線進(jìn)行交換』
目前,在車輛上應(yīng)用的信息傳遞形式有兩種。第一種是每項(xiàng)信息都通過各自獨(dú)立的數(shù)據(jù)線進(jìn)行交換,比如兩個(gè)控制單元間有5種信息需要傳遞,那么則需要5根獨(dú)立的數(shù)據(jù)線,即信息的種類越多,數(shù)據(jù)線的數(shù)量和控制單元的針腳數(shù)也會(huì)相應(yīng)增加。這些復(fù)雜繁多的線束無疑會(huì)增加車身重量,也為整車的布線帶來一定困難。
第二種『所有信息都通過兩根數(shù)據(jù)線進(jìn)行交換』
第二種方式是控制單元之間的所有信息都通過兩根數(shù)據(jù)線進(jìn)行交換,這種數(shù)據(jù)線也叫CAN數(shù)據(jù)總線。通過該種方式,所有的信息,不管信息容量的大小,都可以通過這兩條數(shù)據(jù)線進(jìn)行傳遞,這種方式充分的提高了整個(gè)系統(tǒng)的運(yùn)行效率。我們常見的電腦鍵盤有104個(gè)按鍵,卻可以發(fā)出數(shù)百種不同的指令,但鍵盤與電腦主機(jī)之間的數(shù)據(jù)連接線只有7根,鍵盤正是依靠這7根數(shù)據(jù)連接線上不同的編碼信號(hào)來傳遞信息的。CAN數(shù)據(jù)總線的原理也正是如此。這種一線一用的專線制改為一線多用制,可以大大減少汽車上電線的數(shù)量,同時(shí)也簡(jiǎn)化了整車的布線。
在了解到兩個(gè)控制單元是通過兩根數(shù)據(jù)線來進(jìn)行信息交換的基礎(chǔ)上,就可以將其推而廣之,多個(gè)控制單元之間的通信其實(shí)就是將每個(gè)控制單元都連接到這兩條CAN總線上,從而實(shí)現(xiàn)多個(gè)控制單元間的信息共享。
整個(gè)原理很類似于一個(gè)電話會(huì)議進(jìn)行的方式,一個(gè)電話用戶(控制單元)將數(shù)據(jù)“講”入網(wǎng)絡(luò)中,其他用戶通過網(wǎng)絡(luò)“接聽”這個(gè)數(shù)據(jù),對(duì)這個(gè)數(shù)據(jù)感興趣的用戶則會(huì)利用,其他用戶則會(huì)選擇忽略。
四、CAN通訊的設(shè)計(jì)
1、CAN線為什么是兩根雙絞線?
為了清楚起見,CAN導(dǎo)線分別用單顏色來表示CAN-High線總是黃色,CAN-Low線總是綠色。(具體CAN線顏色在于主車廠家設(shè)計(jì)采用,按實(shí)際為準(zhǔn),一般設(shè)計(jì)的很好區(qū)別車輛其他線路)
CAN數(shù)據(jù)總線的兩條導(dǎo)線分別叫CAN-High和CAN-Low線。兩條扭絞在一起的導(dǎo)線稱為雙絞線。
原則上CAN總線用一條導(dǎo)線就足以滿足功能要求了,但該總線系統(tǒng)上還是配備了第二條導(dǎo)線。在這個(gè)第二條導(dǎo)線上,信號(hào)電壓與第一條成鏡像,這樣可有效抑制外部干擾。
2、CAN總線為什么設(shè)計(jì)高低電壓?
CAN數(shù)據(jù)總線:用以傳輸數(shù)據(jù)的數(shù)據(jù)線,分為CAN高位(CAN-high)和低位(CAN-low)數(shù)據(jù)線。數(shù)據(jù)沒有指定接收器,數(shù)據(jù)通過數(shù)據(jù)總線發(fā)送給各控制單元,各控制單元接收后進(jìn)行計(jì)算。
為了防止外界電磁波干擾和向外輻射,CAN總線采用兩條線纏繞在一起,兩線條上的電位是相反的,工作中CAN高電壓2.5V-3.5V,CAN低電壓1.5V-2.5V,靜態(tài)測(cè)量時(shí),CAN高電壓2.6V左右,CAN低電壓為2.4V左右,通過這種辦法,CAN總線得到保護(hù)而免受外界電磁場(chǎng)干擾,同時(shí)CAN總線向外輻射了保持中性,即無輻射。
五、什么是通訊協(xié)議?
通訊協(xié)議,就是電子控制單元交換信息的時(shí)候所遵守的原則。簡(jiǎn)單地說,網(wǎng)絡(luò)中的電子控制單元要能夠互相順利地通信,就必須講同樣的語(yǔ)言,協(xié)議就相當(dāng)于語(yǔ)言。比如:J1939目前商用車常用CAN總線設(shè)計(jì)是基于J1939協(xié)議。
六、CAN通訊總線的優(yōu)點(diǎn)
1、傳統(tǒng)線路:
傳統(tǒng)電氣控制系統(tǒng)中電器元件比較多,多一個(gè)元件就會(huì)多一個(gè)故障點(diǎn),如果需要增加或改變功能,那么就會(huì)涉及到更改線束、更改開關(guān)或者加裝繼電器等工作,更改麻煩。如果增加復(fù)雜功能:發(fā)動(dòng)機(jī)故障中文顯示、巡航等則無法實(shí)現(xiàn)。
2、CAN通訊總線:
CAN總線優(yōu)點(diǎn):
1>滿足更多的電腦模塊之間復(fù)雜的通訊,效率更高。很遠(yuǎn)的數(shù)據(jù)傳輸距離(可長(zhǎng)達(dá)10Km);高速的數(shù)據(jù)傳輸速率(高達(dá)1Mbit/s);
2>節(jié)省了新產(chǎn)品開發(fā)設(shè)計(jì)成本。CAN節(jié)點(diǎn)幾乎可以在不、擴(kuò)充性強(qiáng),產(chǎn)品升級(jí)快,改動(dòng)原有線束的情況下增加新的組件;
3>總線控制系統(tǒng)替代了傳統(tǒng)的熔斷器和繼電器,減少了元器件數(shù)量,就減少了一個(gè)故障點(diǎn);
4>總線控制系統(tǒng)減少了線束的長(zhǎng)度,線束越長(zhǎng)越容易產(chǎn)生故障。減少車身布線,進(jìn)一步節(jié)省成本。由于采用總線技術(shù),模塊之間的信號(hào)傳遞僅需要兩條信號(hào)線。布線局部化,車上除掉總線外,其他所有橫貫車身的線都不再需要了,節(jié)省了布線成本。此外,數(shù)據(jù)共享也節(jié)省了線束;
5>電路保護(hù)功能:在電路出現(xiàn)短路時(shí),CBCU會(huì)自動(dòng)切斷該線路的電源輸出、保護(hù)電路,并同時(shí)將故障信息傳遞給儀表,儀表報(bào)出相關(guān)故障;
6>當(dāng)電器系統(tǒng)中某一路出現(xiàn)故障時(shí)候,電控模塊會(huì)將此故障顯示儀表,方便維修。
七、CAN總線上為什么首尾安裝電阻?
在汽車CAN總線首尾的終端分別安裝設(shè)計(jì)了終端電阻!
1、如圖下圖中ECU本身沒有120Ω電阻,需在CAN網(wǎng)終首尾端分別安裝2個(gè)120Ω并聯(lián)其中:
2、有的CAN總線首尾的電腦內(nèi)部本身就設(shè)計(jì)了電阻,如下圖(以德龍?zhí)烊粴釩AN總線為例):
終端電阻的作用:數(shù)據(jù)傳輸終端是一個(gè)電阻,防止數(shù)據(jù)傳送終了反射回來,產(chǎn)生的反射波而使數(shù)據(jù)遭到破壞,影響到CAN網(wǎng)數(shù)據(jù)的傳輸。所以在CAN總線設(shè)計(jì)安裝了終端電阻。
維修溫馨提示:
1、CAN網(wǎng)絡(luò)是有兩個(gè)120歐姆的終端電阻,因此在CAN網(wǎng)絡(luò)中測(cè)量?jī)蓚€(gè)CAN線電阻、正常情況下應(yīng)該是60歐姆(兩個(gè)120的電阻并聯(lián)后就成了60歐姆,極少數(shù)車型也會(huì)出現(xiàn)測(cè)量電阻為40歐姆的情況,這種情況說明有三個(gè)設(shè)備內(nèi)部有120歐姆電阻,也是能正常通訊的;這一點(diǎn)大家要知曉).
2、通常情況下CANH電壓在1.5-3.5V之間,CANL電壓在1.5-2.5V之間。
七、什么是CAN通訊節(jié)點(diǎn)?
1、CAN通訊總線實(shí)現(xiàn)ECU、CBCU、ABS、CAN儀表等CAN設(shè)備之間信息共享,比如水溫、機(jī)油壓力等,僅需ECU安裝傳感器即可, 就能把當(dāng)前測(cè)得的水溫、機(jī)油壓力時(shí)時(shí)傳送給CAN儀表。CAN儀表不需要專門安裝水溫、機(jī)油壓力傳感器了。
2、只有CAN設(shè)備才能使用CAN總線,有時(shí)一輛車上有幾個(gè)CAN設(shè)備,比如ECU、CAN儀表、NOx傳感器等,每個(gè)CAN設(shè)備稱為一個(gè)節(jié)點(diǎn),其中ECU就是節(jié)點(diǎn)A;
3、在我們維修當(dāng)中常見故障“CAN節(jié)點(diǎn)A總線錯(cuò)誤”并不一定是ECU本身故障,基本都是整車CAN網(wǎng)絡(luò)電壓異常、 其他CAN控制故障造成CAN網(wǎng)絡(luò)干擾導(dǎo)致。
八、CAN總線常見故障排查
1、常見故障:CAN高短路到電源
1>點(diǎn)火開關(guān)打到ON檔,即整車所有節(jié)點(diǎn)上電;
2>萬用表調(diào)到電壓檔量程;
3>將萬用表的正表筆連接到診斷接口引腳CAN_H,負(fù)表筆連接到地(GND),測(cè)試CAN的CAN-H電壓:若電壓值為2.6V左右,則表示正常;若電壓值大于5V,或者是電瓶電壓,則表示CAN-H與高電源短路;
2、常見故障:CAN低短路到電源
1>點(diǎn)火開關(guān)打到ON檔,即整車所有節(jié)點(diǎn)上電;
2>萬用表調(diào)到電壓檔量程;
3>將萬用表的正表筆連接到診斷接口引腳CAN_L,負(fù)表筆連接到地(GND),測(cè)試CAN的CAN-L電壓:若電壓值為2.4V左右,則表示正常;若電壓值大于5V,或者是電瓶電壓,則表示CAN-L與高電源短路;
3、常見故障:CAN高短路到地
1>將電池正極斷開,整車斷電;
2>萬用表調(diào)到電阻檔;
3>將萬用表的正表筆連接到診斷接口引腳CAN_H,負(fù)表筆連接到地(GND),測(cè)試CAN-H對(duì)地電阻,若阻值大于100KΩ則正常。若阻值過小,則CAN高線存在對(duì)地短路情況。
4、常見故障:CAN低短路到地
1>將電池正極斷開,整車斷電;
2>、萬用表調(diào)到電阻檔;
3>、將萬用表的正表筆連接到診斷接口引腳CAN_L,負(fù)表筆連接到地(GND),測(cè)試CAN-L對(duì)地電阻,若阻值大于100KΩ則正常。若阻值過小,則CAN低線存在對(duì)地短路情況。
5、常見故障:CAN高與CAN低線路存在短路
1>將電池正極斷開,整車斷電;
2>萬用表調(diào)到電阻檔;
3>將萬用表的兩個(gè)表筆連接到診斷接口引腳CAN_H和CAN_L兩端,測(cè)試CAN的CAN-H與CAN-L是否短路,整個(gè)CAN首尾安裝了120Ω電阻并聯(lián)CAN網(wǎng),正常測(cè)量CAN高與CAN低電阻值為60Ω左右,結(jié)果異常檢測(cè)CAN高與CAN低線路是否存在短路開路。
注:還有一種情況就是CAN網(wǎng)終端電阻(電腦內(nèi)部的電阻或者是外掛式電阻)本身出現(xiàn)問題,導(dǎo)致CAN高與CAN低阻值不是60Ω左右。
注:如以上測(cè)試沒有異常,但儀表還報(bào)總線通信故障那屬于特殊故障情況,根據(jù)經(jīng)驗(yàn)可能以下幾種故障:
1、某一節(jié)點(diǎn)電源斷路,導(dǎo)致沒有報(bào)文發(fā)出;
2、某一節(jié)點(diǎn)不滿足250kbps通信速率;
3、某一節(jié)點(diǎn)自身內(nèi)部出現(xiàn)故障。