汽車CAN匯流排基礎介紹
1、 什麼是CAN?
CAN是Controller Area Network縮寫,中文名稱控制器區域網絡。從名稱就可以看出來,CAN是一種控制器之間通訊的現場匯流排。CAN匯流排最早應用於汽車工業,由德國BOSCH提出。由於消費者對汽車功能需求的不斷增加,汽車中電子器件不斷增加,造成各控制器之間通訊信號接線方式複雜,因此設計了一個單一的網路匯流排,整車的所有控制器都可以掛在這個網路上。
2、 CAN匯流排物理層
下圖為比較典型的網路拓撲
CAN匯流排的物理層傳輸介質可以為雙絞線、光纖、同軸電纜等。主機廠一般使用雙絞線,在雙絞線上傳輸的信號形式為差分信號,差分信號即大小相等跳變方向相反的信號。差分信號的主要優點為傳輸穩定,抗干擾能力強。因為兩條信號線一同走線,干擾一般會同時等值的加到兩條線上,到了接收端進行差分運算時就可以消除干擾影響。
雙絞線的一般要求:
A、 阻抗:120Ω,5ns/m延時;
B、 絞距:1m 33絞至50絞;
C、 線經:0.35mm2至0.5mm2
與光從一種介質進入另一種介質會發生反射類似,對於高頻信號,當阻抗不連續時,會引發信號的反射,反射波會干擾原信號,為了消除這種反射會在網路的終端增加一顆與線束阻抗相同的電阻,另因為信號的傳遞是雙向的,因此在另一端也需增加電阻。終端電阻阻值一般選用120Ω。
3、CAN匯流排工作原理
CAN匯流排的兩條信號線分別為CAN_H及CAN_L。匯流排當傳輸數據時,隱性電平(邏輯1)CAN_H及CAN_L電壓均為2.5V,電壓差為0V;顯性電平(邏輯0)CAN_H為3.5V,CAN_L為1.5V,電壓差為2V;
0和1的不同組合就組成了CAN匯流排中的一條條報文,對於報文幀的格式主要有兩種:標準幀與數據幀,兩種形式之間的區別如下圖所示:標準幀的仲裁域有11位,擴展幀的仲裁域有29位。擴展幀能夠擴展更多節點,與標準幀主要區別是ID的數據。擴展幀主要應用於卡車、工程車、商務車,乘用車一般使用標準幀。
對於CAN匯流排上的各個節點,都是可以向網路上發送報文的,但如果所有節點同時向匯流排發送報文,就會造成匯流排混亂。因此CAN匯流排採用了一種類似「會議」的機制,當兩個人同時準備發言的時候,需要先進行比較,優先順序高的先說話,優先順序低的等會再說。確保在同一個時間段只有一個節點發送報文,其他節點根據需要選擇性接收報文。關係如下:
比較報文「優先順序」高低使用的就是每幀報文中仲裁場的ID,對於CAN匯流排上的節點ID都是唯一的,當進行比較是同一位邏輯0高於邏輯1,兩個節點從第一位開始對ID進行比較,第一位相同比較下一位,第一位不同邏輯0的節點勝出開始發送報文,仲裁失敗的節點暫停發送報文,等待下一次的匯流排空閑重新發送,以此類推。
4、對於匯流排傳輸速率的思考
CAN匯流排傳輸速率與匯流排長度有關,越長最大傳輸速率越低。當匯流排長度為40m時,最大傳輸速率為1Mbit/s;匯流排長度為1Km時,最大傳輸速率為50Kbit/s。
CAN匯流排採用應答機制,一個節點的一幀報文在接近發送完成的時候會有個應答場(ACK場),ACK場由兩位邏輯1組成,在ACK場的ACK區域,收到此條報文的節點會在此時發送邏輯0,邏輯0(顯性電平)會覆蓋邏輯1(隱形電平),發送節點檢測到邏輯0就知道已經發送成功。
數據在雙絞線上傳輸存在延時,延遲時間為5ns/m(典型值,上文中有提到)。當匯流排長度為40m,延遲時間40m*5ns/m=200ns,因為信號傳輸是雙向的,發送節點發送信號,接收節點接收到之後發送邏輯0給發送節點,因此線的延時時間為400ns,同時考慮到信號在ECU內部處理存在延時,各ECU晶振的頻率存在差異,會造延遲時間>400ns。延遲的時間就限制了CAN匯流排的傳輸速率,匯流排的長度越長,傳輸速率越低。
5、報文的發送類形
對於報文的發送類型,一般常用的有:周期型、事件型、混合型
周期型:節點報文按照一定周期發送,當事件變化觸發其狀態信號變化,發送報文內容發生變化。例如:ECU狀態信號
事件性:當某一事件觸發,會連續發送1幀或多幀報文。例如:開關信號
混合型:當某一事件觸發,其周期發生變化。
6、路由形式
對於同一條CAN網路上的ECU可以彼此接收到對方發出的報文,然而對於不在同一條網路上的ECU,如何實現接收對方發出的報文?這時就需要使用路由實現,路由的方式有兩種基本形式:報文路由、信號路由
報文路由:把一條報文完整的從一條網路傳輸到另一條網路,包括有用的信號和無用的信號。
信號路由:只轉發目標網路需要的信號。
想了解更多汽車專業知識,微信搜索Auto_College關注
推薦閱讀:
TAG:CAN匯流排 |