嘴哥有料系列-can教程2:CAN閘道器及CAN訊號轉發機制
原文章:https://mp.weixin.qq.com/s/qbUcZngSDClx9Ll5aKvlLg
上節課, 我們講到了CAN閘道器,
其實準確的說不能叫CAN閘道器, 應該叫閘道器或者汽車閘道器, 因為閘道器不僅處理CAN網路, 還處理LIN網路.
主要是為了配合本系列教程及區分於乙太網閘道器, 所以才取名叫CAN閘道器.
CAN閘道器的外形結構
大概外形如上, 偶有差異, 大小如香菸煙盒, 有60,70多個PIN腳組成.
每個接線pin腳都有嚴格的定義, 嚴格定義了要接can匯流排或者開關裝置等...
從以上拓撲圖可以看出:
CAN閘道器除了10個can接線pin腳(5條雙絞線/5條CAN匯流排),2個電源線接線pin腳,還應包括定速巡航裝置的8個接線pin腳,電源管理方面的3個接線pin腳,鑰匙開關(或無鑰匙啟動系統)的5個接線pin腳,腳踏板的3個接線pin腳,5個LIN接線pin腳, 檔位開關的4個接線pin腳等等....
某些汽車廠商可能有更多新的硬體開關裝置,電壓電阻開關裝置等也都有對應的接線pin腳, 且可能預留一些PIN腳以備用.
CAN閘道器的功能
CAN閘道器是整個CAN網路的核心, 控制著整車5條CAN匯流排的各類訊號轉發與處理.
CAN閘道器的基本功能包括:
1. 連線不同波特率(傳輸速度)的CAN匯流排/LIN匯流排,
以實現CAN網路的閘道器中繼功能。
2. 診斷報文/非診斷報文轉發
3. 診斷防火牆管理
4. 節點線上監控
5. 巡航控制器開關檢測
6. 腳踏板位置檢測
7. 閘道器休眠與喚醒管理
8. ECU升級/閘道器升級
9. 電壓管理
簡單點說:
CAN閘道器可以接收任何CAN匯流排(還有LIN匯流排)傳來的不同傳輸速率網路訊號,
CAN閘道器把這些訊號按一定的標準處理後, 廣播到整車網路去,
如果有ECU訂閱(接收)了這個訊號, 則ECU將解析訊號並做相應的處理.
沒理解不了, 請看下方例項!
☟☟☟
CAN閘道器的CAN訊號轉發機制
例項一: 儀表顯示發動機轉速
發動機的轉速訊號, 先從PCAN的ECM(發動機引擎控制模組)節點發出, CAN閘道器收到後,
閘道器處理後廣播以GW_開頭的ECM訊號到其他4條CAN總線上去.
用Vehicle Spy 3 CAN工具檢視可以看到以下的訊號內容:
******
ECAN上的儀表(IPK)節點訂閱(接收)了發動機轉速訊號,
則會將這個轉速訊號解析, 並顯示到儀表盤去.
由於以上訊號傳送頻率太快, 比如上圖的9.94ms/次, 則你就會看到儀表盤上的轉速
指標一直在不停地偏動.
簡略傳送圖如下:
例項二: 安全帶未扣緊, 儀表端報警
安全帶未扣緊需要兩個條件:
1. 車速大於5
2. 安全帶扣未扣 ( 即無電壓訊號 )
車速一般是PCAN上的ECM(發動機引擎控制模組)節點負責訊號管理的.
安全帶扣這個裝置是BCAN上的BCM(負責天窗, 車窗, 安全帶扣, 雨刮等車身零部件裝置...) 節點負責訊號管理的.
即閘道器收到PCAN上的ECM節點發出來的車速訊號, 並收到了BCAN上的BCM發出來的安全帶扣電壓值為異常值(比如0), CAN閘道器統一處理後轉發並廣播以GW_開頭的訊號幀,
ECAN上的儀表(IPK)節點訂閱(接收)了GW_開頭的相關安全帶未扣訊號幀
則會解析報警並顯示到儀表盤去.
如果安全帶扣一直未扣緊, 則CAN閘道器將一直髮送GW_開頭的相關安全帶訊號幀,
其訊號值是安全帶未扣緊
所以車主會聽到一直報警.
直到安全帶扣上, CAN閘道器繼續傳送安全帶相關的訊號,
只是這個時候的訊號值是安全帶已扣緊
報警將立馬消失.
簡略傳送圖如下:
總結:
以上只是兩個簡易的案例, 實際上, 整車所有ECU基本是以毫秒級或者微妙級的速度在源源不斷的傳送並接收訊號, 所以閘道器需要處理並轉發廣播的訊號是非常多的且必須要很快處理完的.