我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。
老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師:
鈍感力的“鈍”,不是木訥、遲鈍,而是直面困境的韌勁和耐力,是面對外界噪音的通透淡然。
生活中有兩種人,一種人格外在意別人的眼光;另一種人無論別人如何,他們始終有自己的節奏。
過度關注別人的看法,會攪亂自己的步調,讓自己更加慌亂。與其把情緒的開關交到別人手中,不如把有限的精力用在提升自己上,久而久之,你自然會更加優秀。
時間不知不覺中,來到新的一年。2025開始新的忙碌。成年人的我也不知道去哪里渡自己的靈魂,獨自敲擊一些文字算是對這段時間做一個記錄。
一、整車車載網關設計概念
對于網關,應該單獨分配請求和相應的通道,另外基于功能應用場景,通信通道有優先級。例如,像TesterPresent這類用于維持ECU處于非默認會話狀態的功能請求,在通過車載網關傳輸時,其優先級應始終高于物理請求。
關于車載網關通道分配和優先級的問題,網關應該為請求和響應分配單獨的通道,并且根據功能應用場景,通信通道要有優先級。特別是像TesterPresent這樣的功能尋址請求,用于維持ECU保持在非默認會話狀態,它們的優先級應該高于物理尋址請求。
因為功能尋址發送的對象多數是多個ECU同時受到,特別是整車刷寫模式情況下,用于Service 3E 80保持當前會話模式下。
需要明確幾個概念。什么是車載網關?車載網關在汽車電子系統中負責不同網絡之間的通信,比如CAN、LIN、FlexRay、以太網等。它處理不同協議之間的消息轉發,確保各電子控制單元(ECU)之間的有效通信。
請求和響應通道分開。這可能類似于車載網絡中的全雙工通信,允許同時發送和接收數據,但在這里可能指的是邏輯上的分離,比如不同的消息隊列或優先級通道,確保請求和響應不會互相阻塞。
單獨分配請求和響應通道可能意味著在網關中為不同方向或類型的消息設立不同的處理隊列或緩沖區。例如,請求通道專門處理從診斷工具到ECU的請求,而響應通道處理ECU返回的響應。這樣可以避免請求和響應之間的競爭,提高處理效率,并確保關鍵響應及時傳送。
二、網關設計遵循基本原則
在車載網關的設計中,為請求和響應分配獨立通道并基于功能優先級管理通信流量,是確保系統可靠性和實時性的關鍵。
1、通道分離策略
請求通道專門處理從診斷工具或上層控制器發送至ECU的指令(如診斷請求TesterPresent、編程指令等)。
響應通道負責傳輸ECU對請求的反饋(如診斷響應、狀態報告等)。
物理通道處理來自傳感器、執行器等實時設備的請求(如車速、剎車信號)。
優勢:避免請求與響應的資源競爭,降低延遲,提升關鍵消息的確定性。
2、優先級動態分配
最高級,比如診斷保持類消息(如TesterPresent),確保ECU會話不中斷。
常規:安全相關物理請求(如緊急制動、電池管理),常規物理請求(如空調控制、信息娛樂),非實時數據傳輸(如日志上傳、軟件更新包)。
實現方式:
CAN總線:使用更小的消息ID(如0x700)賦予TesterPresent最高優先級。
以太網:通過VLAN標簽或DiffServ字段標記優先級。
網關調度器:基于消息類型和源地址動態調整隊列順序。
3、TesterPresent的高優先級必要性
會話維持:若TesterPresent未被及時處理,ECU可能退回默認會話,導致診斷中斷(如刷寫失敗)。
容錯機制:網關需周期性檢測診斷會話狀態,在丟包時自動重傳TesterPresent。
帶寬預留:為診斷通道保留最小帶寬(如CAN總線中限制物理請求的帶寬占用)。
4、網關架構設計
多隊列調度器:
±--------------------+
| 網關接收層 |
| - 分類器按協議/功能 |
±---------±---------+
|
±---------v----------+
| 優先級隊列管理 |
| - 高優先級隊列(診斷)|
| - 中優先級隊列(安全)|
| - 低優先級隊列(常規)|
±---------±---------+
|
±---------v----------+
| 調度器 |
| - 加權輪詢(WRR) |
| - 搶占式調度 |
±---------±---------+
|
±---------v----------+
| 協議轉換與轉發 |
±--------------------+