之前寫了一篇關于車載OBD接口的文章,帶大家認識了車載總線,今天的文章是關于最重要的車載總線——CAN BUS。汽車上的OBD接口,到底是啥東西?文章目錄:
一、CAN總線是什么?
二、CAN總線的作用?
三、CAN總線的優點
四、CAN總線的歷史
五、CAN總線拓撲圖
1. 顯性和隱性
2. CAN收發器的作用
3. CAN控制器的作用
4. 120Ω終端電阻
六、基本的CAN總線電路
一、CAN總線是什么?
CAN是Controller Area Network的簡稱,是一種有效支持分布式控制或實時控制的串行通信網絡,最早是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,1986年,BOSCH開發出面向汽車的CAN通信協議,后來,CAN總線通過ISO 11898和ISO 11595進行了標準化,現在在歐洲是汽車網絡的標準協議。
把汽車比如成人體,那CAN總線就是神經系統,電子控制單元(ECU)就是身體的一部分,身體是由多個ECU組成的,各個ECU之間通過神經系統進行通信,一個部分感知到的信息可以與另一部分共享。
CAN的應用非常廣泛,工業自動化、船舶、醫療設備、工業設備等方面。
二、CAN總線的作用?
在汽車上,CAN總線的作用就是把不同的部件連接起來,然后這些部件都執行同一套標準協議,這樣的好處是兼容性高,信息可以可靠共享,并且能減少整車的線束數量。
節點可以掛很多部件
三、CAN總線的優點
1. 簡單低成本:ECU通過單個CAN系統進行通信,而不是直接的復雜模擬信號線通信,這樣減少了錯誤,重量,接線和成本。2. 完全集中:CAN總線提供了一個接入點,可以與所有網絡ECU進行通信,——支持集中診斷,數據記錄和配置。3. 穩定:CAN總線具有強大的抗電干擾和抗電磁干擾能力,非常適合對安全要求嚴格的應用(例如車輛)。4. 高效:通過ID對CAN幀進行優先級排序,以便優先級最高的數據可以立即訪問總線,而不會引起其他幀的中斷。
四、CAN總線的歷史
CAN總線發展很多年了。
CAN之前版本:汽車ECU是復雜點對點布線。
1986年:博世開發了CAN協議作為解決方案。
1993年:CAN被采用為估計標準(ISO 11898)
2003年:ISO 11898稱為標準系列。
2012年:博世發布了CAN FD 1.0
2015年:CAN FD協議標準化(ISO 11898-1)
2016年:CAN物理層,數據速率高達5Mbit/s,已通過ISO 11898-2標準化。
如今,CAN BUS已成為汽車、卡車、公共汽車、拖拉機、輪船、飛機等的標準配置。
五、CAN總線拓撲圖
從拓撲圖中可以看到一個CAN節點,主要由CPU,CAN控制器,CAN收發器組成。
CAN總線拓撲
1. 顯性和隱性
CAN總線是差分線,有CAN_H和CAN_L兩根線,差分線的抗干擾能力強,外界有干擾時,幾乎同時會耦合到差分線的兩根線上,而接收端關心的只是兩信號的差值,所以外界的共模噪聲可以被完全抵消,圖中箭頭所示,雖然兩根線都受到干擾,但是兩者差值不變。
CAN收發器根據CAN_H和CAN_L的差值來判斷總線電平,總線電平有兩種,顯性電平和隱性電平,CAN2.0A/B規定的總線value如下:
電平邏輯總線Value顯性電平0CAN_H=3.5V,CAN_L=1.5V隱性電平1CAN_H=2.5V,CAN_L=2.5V
有人會說,為什么顯性電平是邏輯0,是因為CAN總線采用的"線與"的規則進行總線沖裁,在CAN2.0上規定了總線上同時傳輸顯性和隱形電平時,總線是顯性,即1&0=0,所以0為顯性。
從下圖可以看到,ISO11898的電平和ISO11519是不一樣的,現在大多數都是和ISO11898一樣的。
下面是兩個顯隱性電平的區別比較,同時給出了最大最小值。
兩種標準CAN總線電平區別
2. CAN收發器的作用
顧名思義,收發器既可以收,也可以發,收是接收CAN總線上的差分數據,將數據轉換為TTL電平,發送給控制器;發是將CAN控制器的TTL電平信號轉換為差分信號進行總線數據傳輸。
3. CAN控制器的作用
CAN控制器一方面接收收發器的數據,進行解析后發送給CPU;另一方面接收CPU的指令數據,然后發送給CAN收發器。
4. 120Ω終端電阻
高頻信號傳輸時,信號波長相對傳輸線較短,信號在傳輸線終端會形成反射波,干擾原信號,所以需要在傳輸線末端加終端電阻,使信號到達傳輸線末端后不反射。
對于低頻信號則不用CAN總線兩端必須連接終端電阻才可以正常工作,終端電阻應該與通訊電纜的阻抗相同,典型值為120歐姆,其作用是匹配總線阻抗,提高數據通信的抗干擾性及可靠行。
終端電阻并不都是120Ω,以下是ISO 11898協議的推薦值。
終端電阻取值
四、基本的CAN總線電路
如下就是CAN BUS的基本電路,因為一般節點都是和OBD接口相連的,ESD保護非常重要,另一方面120Ω并不是任何時候都需要,所以電路設計時加一個JP1跳接帽比較好。
必要時需要在CAN_H和CAN_L預留RC EMI filters,用來吸收EMI。
CAN總線上預留RC吸收EMI
今天的文章到這里就結束了。。。
后續的文章會更新CAN總線的軟件協議部分,盡請期待。