自動駕駛學習筆記(4)| 汽車CAN匯流排:匯流排不是很粗的線
引言
前面介紹過目前高階轎車的車載控制器可達50個以上,這些控制器不是雜亂無章地佈置在車裡,而是透過特定的拓撲結構相連,硬體基礎是各種各樣的匯流排。
目前運用在汽車上主要的匯流排技術標準是控制器區域網CAN、區域性互聯協議LIN、車輛多媒體網路MOST、具有高速容錯功能的網路協議FlexRay、以及車載乙太網。
本篇簡單介紹其中最常用的CAN匯流排, CAN和英文yes, we can沒有關係,是Controller Area Network(控制區域網絡)的首字母縮寫;匯流排也不是很粗的線(物理介質可以是芯徑約0。5mm的雙絞線)。
圖片來源:https://www。cetitec。com/products/automotive-bus-converter。html
CAN匯流排簡介
CAN(Controller Area Network控制區域網絡)是德國Bosch公司從20世紀80年代初, 為解決現代汽車中眾多的控制與測試儀器之間的資料交換問題而開發的一種序列資料通訊協議。CAN匯流排系統可以形象地示意如下圖所示,CAN資料匯流排可以比作公共汽車(英文中CAN匯流排就叫做CAN BUS)。就像公共汽車可以運輸大量乘客一樣,CAN資料匯流排可以傳輸大量的資料資訊。
CAN匯流排示意
l 不同的控制器並聯掛接在總線上
l 傳輸的訊號是廣播發送,任何節點都可以接收總線上其他節點發送的訊號
l 為了提高訊號抗干擾能力,兩根CAN線(通常叫CAN_H和CAN_L)兩端有120Ω電阻
CAN匯流排可以分為物理層、資料鏈路層和應用層。“
在計算機領域,任何複雜的問題都可以透過增加中間層來解決”
,CAN匯流排也遵循這個理念。
CAN匯流排層次
由於CAN匯流排技術已經非常成熟,對於底層已有穩定的CAN收發晶片來處理,工程師通常只需要專注於設計CAN總體架構、選擇傳輸的資訊(
dbc檔案
)、定義各個控制器的介面。
由於汽車上的控制器越來越多,設定一條CAN匯流排可能會導致負載率過高,並且不同的控制器對於通訊速率的要求不盡相同,因此實際車輛上通常根據不同的功能部件將CAN匯流排分成幾類,如動力CAN,車身CAN,底盤CAN等,不同的CAN匯流排透過閘道器互動資訊。
不同的CAN匯流排透過閘道器互動
結語
CAN匯流排是汽車電子電氣架構最具代表性的元素,瞭解了CAN匯流排,對汽車電子電氣系統就會有個大致的體會。所謂紙上得來終覺淺,要真正成為CAN方面的行家還需要大量的實踐,包括總體架構的設計、模擬和測試,以及CAN工具鏈的使用。
如果需要了解CAN匯流排更細緻的內容,可以查閱規範ISO11898。
自動駕駛所需的雷達、攝像頭、鐳射雷達相比於其他傳統感測器,能夠產生大量的資料,這些資料經過自動駕駛控制器的運算,最終輸出指令控制車輛執行機構,這些指令目前也是透過CAN網路來傳輸的,因此熟悉CAN匯流排也算是自動駕駛的入門技能之一。
好奇Mobileye攝像頭的CAN訊號長什麼樣?推薦閱讀自動駕駛工程師
@陳光
的專欄:
願大家都能從學習中獲得樂趣!
封面圖來源:
https://www。
mikroe。com/blog/can-bus
參考資料:
https://
en。wikipedia。org/wiki/C
AN_bus
本專欄是筆者工作經驗和學習心得的原創,如有錯誤,歡迎指正~
如需轉載及使用,煩請私信溝通~