1. CAN總線是啥
總線是啥?
總線分類的方式有很多,如被分為(wei) 外部和內(nei) 部總線、係統總線和非係統總線等等,不管是啥看英文叫作“BUS”,即“公交車”,也就是說總線就行公交一樣。你隻要在公交的運行線路上,就可以上車,上車點就是公交站點,同樣的總線接好了,加入一個(ge) 節點(設備),節點接可以把數據放到總線上,傳(chuan) 到其他節點。
CAN是控製器局域網絡(Controller Area Network, CAN)的簡稱,是由以研發和生產(chan) 汽車電子產(chan) 品著稱的德國BOSCH公司開發的,並最終成為(wei) 國際標準(ISO 11898),是國際上應用最廣泛的現場總線之一。 在北美和西歐,CAN總線協議已經成為(wei) 汽車計算機控製係統和嵌入式工業(ye) 控製局域網的標準總線,並且擁有以CAN為(wei) 底層協議專(zhuan) 為(wei) 大型貨車和重工機械車輛設計的J1939協議。
中文名:CAN總線
外文名 :Controller Area Network
開發公司 :德國BOSCH公司
特 點: 國際上應用最廣泛的現場總線之一
地 區 :北美和西歐
應用範圍:汽車計算機控製係統和嵌入式工業(ye) 控製局域網
CAN總線是廣播類型的總線。這意味著所有節點都可以偵(zhen) 聽到所有傳(chuan) 輸的報文。無法將報文單獨發送給指定節點;所有節點都將始終捕獲所有報文。但是CAN硬件能夠提供本地過濾功能,讓每個(ge) 節點對報文有選擇性地做出響應。
上世紀八十年代以來,汽車ECU越來越多,如ABS,電控門窗,電子燃油噴射裝置。如果仍然采用常規的點對點布線方式,即電線一段與(yu) 開關(guan) 相接,另一端與(yu) 用電設備相通,將會(hui) 導致車上電線數目的急劇增加,從(cong) 而帶來線束的冗餘(yu) 及維修成本的提高。這就對汽車的線束分布及信息通訊提出了更高的要求。總線技術可以實現信息的實時共享,解決(jue) 了傳(chuan) 統布線方式中線束多,布線難,成本高等問題,CAN(Controller Area Network)總線技術應運而生。
2. CAN總線簡介
CAN總線是由德國研發和生產(chan) 汽車電子產(chan) 品著稱的BOSCH公司開發的,並最終成為(wei) 國際標準(ISO11519),是國際上應用最廣泛的現場總線之一。CAN總線是一種多主控(Multi-Master)的總線係統。傳(chuan) 統總線係統如USB或以太網等是在總線控製器的協調下,實現從(cong) A節點到B節點大量數據的傳(chuan) 輸。CAN網絡的消息是廣播式的,即在同一時刻網絡上所有節點偵(zhen) 測的數據是一致的,它是一種基於(yu) 消息廣播模式的串行通信總線。
CAN總線的很多優(you) 點,使得它得到了廣泛的應用,如傳(chuan) 輸速度最高到1Mbps, 通信距離最遠到10km,無損位仲裁機製,多主結構。
2.1 CAN總線標準
CAN總線標準之規定了物理層和數據鏈路層,至於(yu) 應用層需要用戶自定義(yi) 。不同的CAN標準僅(jin) 物理層不同。物理層和數據鏈路層:ISO11898;應用層:不同的應用領域使用不同的應用層標準。
2.2 CAN物理層
CAN拓撲網絡
連接在CAN總線上的設備叫做節點設備(CAN Node),CAN網絡的拓撲一般為(wei) 線型。線束最常用的是雙絞線,線上傳(chuan) 輸為(wei) 對稱的差分電平信號。下圖為(wei) CAN總線網絡示意圖,節點主要包括Host、控製器和收發器。Host常集成有CAN控製器,CAN控製器負責處理協議相關(guan) 功能,以減輕Host的負擔。CAN收發器將控製器連接到傳(chuan) 輸媒介。通常控製器和總線收發器通過光耦或磁耦隔離,這樣即使總線上過壓損壞收發器,控製器和Host設備也可以得到保護。
在發送數據時,CAN控製器把要發送的二進製編碼通過CAN_Tx線發送到CAN收發器,然後由收發器把這個(ge) 普通的邏輯電平信號轉化成差分信號,通過差分線CAN_High和CAN_Low輸出到CAN總線網絡。接收數據過程,相反。采用差分信號,可以取得更好的電磁兼容效果。因此,CAN總線物理傳(chuan) 輸媒介隻需要兩(liang) 根線。
高速CAN總線最高信號傳(chuan) 輸速率為(wei) 1Mbps,支持最長距離40m。ISO11898-2要求在高速CAN總線兩(liang) 段安裝端接電阻RL(端接電阻一般為(wei) 120Ω,因為(wei) 電纜的特性阻抗為(wei) 120 Ω,為(wei) 了模擬無限遠的傳(chuan) 輸線。)以消除反射。低速CAN最高速度隻有125Kbps,所以ISO11898-3沒有端接要求。
因為(wei) 傳(chuan) 輸距離越大,信號時延也越大,為(wei) 了保證消息的正確采樣,總線上的信號速率相應也要下降。下圖是推薦的信號速率與(yu) 距離的關(guan) 係。
2.3 CAN收發器
CAN總線分高速CAN和低速CAN,收發器也分為(wei) 高速CAN收發器(1Mbps)和低速CAN收發器(125Kbps)。低速CAN也叫Fault
Tolerance CAN,指的是即使總線上一根線失效,總線依然可以通信。如同串口中的MAX3232用作電平轉換,CAN收發器的作用則是把邏輯信號轉換為(wei) 差分信號。
2.4 差分信號
CAN總線采用差分信號傳(chuan) 輸,通常情況下隻需要兩(liang) 根信號線就可以進行正常的通信。在差分信號中,邏輯0和邏輯1是用兩(liang) 根差分信號線的電壓差來表示。當處於(yu) 邏輯1,CAN_High和CAN_Low的電壓差小於(yu) 0.5V時,稱為(wei) 隱性電平(Recessive);當處於(yu) 邏輯0,CAN_High和CAN_Low的電壓差大於(yu) 0.9V,稱為(wei) 顯性電平(Dominant)。
高速CAN
低速容錯CAN (Fault Tolerance CAN)
差分信號其實使用CAN_HIGH減去CAN_LOW的到的,在邏輯信號中,5V代表1, 0V代表0,而在差分信號中:
- 0V---------邏輯1------隱形電平
- 2.0V-------邏輯0-----顯性電平
顯性電平比隱形電平優(you) 先級要高。
CAN總線遵從(cong) “線與(yu) ”機製:“顯性”位可以覆 蓋“隱性”位;隻有所有節點都發 送“隱性”位, 總線才處於(yu) “隱性” 狀態。這種“線與(yu) ”機製使CAN總線呈現顯性優(you) 先的特性。
2.5 CAN總線連接器
一般嵌入式中,處理器MCU的CAN接口出來的是CAN TXD和CAN RXD,一手一發,但是實際接到CAN網絡中還需要收發器,收發器輸出的就是差分信號了CANH和CANL,如下圖所示。