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