點擊上方藍字談思實驗室
獲取更多汽車網絡安全資訊

首先,請問大家幾個小小問題,你清楚:
你知道EthIf模塊的主要作用是什么嗎?
EthIf與以太網控制器,以太網收發器,以太網網關都有哪些關系呢?
Ethif的常見函數接口有哪些呢?
今天,我們就來一起探索并回答這些問題。為了便于大家理解,以下是本文的主題大綱:

正如我們了解的CanIf模塊一樣,作為CAN收發器,CAN控制器的統一上層ECU抽象,能夠讓我們實現CanIf上層的應用模塊與底層硬件解耦,大大增加了軟件的可移植性。
針對車載以太網而言也是同樣的道理,AUTOSAR組織按照同樣的方法論實現了車載以太網協議棧的軟件架構分布,其中EthIf與CanIf作用與地位相當,都是為了實現底層硬件如以太網控制器與以太網收發器的上層抽象,便于軟硬件解耦,大大提高了軟件的可復用度。
接下來將從AUTOSAR EthIf模塊的層次關系,主體功能以及常用函數接口三個方面展開給大家進行講解。
按照AUTOSAR標準文檔規范,有關EthIf模塊在整個軟件架構的具體位置描述如下圖1所示:

如上圖所示,可以得出如下幾個基本結論:
一個以太網協議棧中可以存在多家供應商的以太網控制器,同時針對每家供應商的控制器進行單獨控制,互不影響;
同一供應商的以太網控制器可以存在多個,但使用的以太網控制器驅動可以僅使用同一套;
上述三家不同供應商的以太網驅動作為標準AUTOSAR MCAL的一部分,能夠完全實現與底層硬件的解耦;
以太網控制器關系
針對多家供應商以太網控制器并存的情況,AUTOSAR EthIf模塊基于該種情況來實現了統一管理與實現,能夠大大提高同一驅動的復用效率。
如下圖2所示,明確表示出了針對以太網控制器不同的前提下EthIf軟件模塊與以太網控制器驅動兩者如何進行Mapping的關系。
通過分析發現,它們兩者之間具備如下的索引Mapping 關系,該Mapping關系將能夠保證EthIf模塊能夠唯一,準確的控制各個控制器模塊,具體的Mapping規則如下:
EthIf 軟件模塊針對每一個以太網控制器在其內部進行全局唯一的編號索引,索引從0開始,如EthIf_CtrlIdx所表示的編號所示,全局唯一;
針對同一類型的以太網控制器,對應的以太網驅動在其軟件內部模塊進行從0開始的索引編號,如下圖具備兩個相同類型的以太網控制器,因此索引編號分別為0與1,與EthIf模塊的全局唯一索引并不沖突;
針對不同類型的以太網控制器,其對應的驅動模塊在其內部對應的索引也應該從0開始,無論是否并存其他類型的以太網驅動;

以太網收發器關系
如下圖3所示,以太網收發器與EthIf模塊存在如下相應的Mapping關系,具體可以總結為如下幾點:
同一類型的以太網收發器可以使用同一個以太網收發器驅動(簡稱Phy驅動);
不同類型的以太網收發器應采用不同的以太網收發器驅動;

如下圖4所示,對照以太網控制器與EthIf的關系,同理可以看出以太網收發器與EthIf之間的index Mapping關系:
在以太網收發器驅動如果存在多個相同類型的收發器,應當在其內部按照從0開始進行編號表示其唯一性;

以太網Switch關系
如下圖4所示為以太網Switch與EthIf之間的Index關系:
針對相同類型以太網網關都使用同一驅動;
同一以太網網關內部的Port也會按照index從0開始計數,不同以太網網關內部的Port編號彼此獨立,互不干擾;

對于AUTOSAR標準中的EthIf模塊作為底層硬件驅動的抽象層,具備如下幾個基本功能:
完成通信初始化功能,為數據收發創造基礎條件;
具備數據發送功能,提供接口給到上層應用來實現數據的正常發送;
具備數據接收功能,提供接口給到上層應用來實現數據的正常接收;
具備底層Phy Link狀態變化管理功能,能夠及時監控底層Phy的狀態;
接下來將從EthIf模塊的上述四個基本功能展開進行講述,讓大家進一步了解EthIf模塊的基本工作原理。
通信初始化功能
如下圖5所示,描述了EthIf與底層驅動建立通信的必要前提,即需要通過調用EthIf_Init函數來實現Eth控制器與Eth收發器的初始化;

如下圖6所示描述了EthSM,EthIf,Eth,EthTrcv四者之間的關系,EthSM通過調用EthIf模塊的函數EthIf_SetControllerMode來實現以太網控制器的初始化,同時Eth模塊將通過回調函數將是否初始化成功的標志告知EthSM模塊。
緊接著EthSM將調用EthIf模塊的函數EthIf_SetTransceiverMode函數來實現Eth收發器的初始化,Eth收發器通過回調函數將初始化是否成功的標志告知EthSM模塊;

數據發送功能
EthIf模塊的數據發送功能分為兩者模式,一種是Polling模式,另外一種就是Interrupt模式,一般而言都優先采用中斷模式來滿足系統實時性要求。
如下圖7為Polling模式,在Polling模式中可以看到在EthIf_MainfunctionTx函數中會去輪詢是否發送成功的標志,這個也是Polling模式的典型特征。
Polling模式

Interrupt模式
如下圖8所示為以太網數據發送的中斷模式,中斷模式相比Polling模式可以看出并沒有使用到EthIf_MainfunctionTx函數,而是使用Eth模塊的中斷函數來確認發送是否成功。

數據接收功能
同理相比數據發送功能,EthIf模塊的數據接收功能也可以分為Polling模式與中斷模式兩種,如下圖9所示為EthIf模塊的數據接收Polling模式。
如下圖9所示,如果EthIf模塊數據接收采用Polling模式,那么就需要使用到EthIf_MainfunctionRx函數,在該函數中去調用EthIf_RxIndication來告知上層數據已成功被接收,使用該模式會大大降低數據接收效率,一般接收優先采用中斷模式。
Polling模式

Interrupt模式
如下圖10所示為EthIf模塊的數據接收中斷功能,在該模式中可以看到通過Eth模塊通過中斷函數來進而告知上層數據已被接收。

Link狀態變化管理功能
如下圖11所示,描述了在EthIf_MainfunctionRx函數中通過調用EthTrcv模塊的EthTrcv_GetLinkState來告知上層應用收發器罪行的Link狀態。

VLAN支持
EthIf模塊必須支持VLAN功能,該模式將會將VLAN歸為虛擬控制器這一類,以太網驅動以及以太網收發器將僅針對真實的控制器與收發器,不考慮VLAN這一特性。
如果沒有有效的VLAN ID設置,那么虛擬控制器將表示沒有打上標簽的VLAN,同時EthIf模塊將使用Eth 驅動提供的Buffer來支持VLAN功能。
Wake up支持
EthIf模塊須通過配置EthIfWakeUpSupport來實現,同時Wakeup有效的前提是底層的以太網收發器(Phy)需要支持休眠喚醒功能才行。
為了便于大家調試方便,小T將EthIf模塊常用的函數總結歸納如下:



碼上報名
2023第六屆無人駕駛及智能駕艙中國峰會,5月11-12日,上海


碼上報名
AutoSec 7周年年會暨中國汽車網絡安全與數據安全合規峰會,5月11-12日,上海
更多文章
軟件如何「吞噬」汽車?
汽車信息安全 TARA 分析方法實例簡介
汽車FOTA信息安全規范及方法研究
聯合國WP.29車輛網絡安全法規正式發布
滴滴下架,我卻看到數據安全的曙光
從特斯拉被約談到車輛遠程升級(OTA)技術的合規
如何通過CAN破解汽
會員權益:?(點擊可進入)談思實驗室VIP會員
END

微信入群
談思實驗室專注智能汽車信息安全、預期功能安全、自動駕駛、以太網等汽車創新技術,為汽車行業提供最優質的學習交流服務,并依托強大的產業及專家資源,致力于打造汽車產業一流高效的商務平臺。
?
每年談思實驗室舉辦數十場線上線下品牌活動,擁有數十個智能汽車創新技術的精品專題社群,覆蓋BMW、Daimler、PSA、Audi、Volvo、Nissan、廣汽、一汽、上汽、蔚來等近百家國內國際領先的汽車廠商專家,已經服務上萬名智能汽車行業上下游產業鏈從業者。專屬社群有:信息安全、功能安全、自動駕駛、TARA、滲透測試、SOTIF、WP.29、以太網、物聯網安全等,現專題社群仍然開放,入滿即止。
掃描二維碼添加微信,根據提示,可以進入有意向的專題交流群,享受最新資訊及與業內專家互動機會。

談思實驗室,為汽車科技賦能,推動產業創新發展!