
在AUTOSAR架構(gòu)中,Ethif屬于硬件抽象層,所謂的硬件抽象層,即是抽象硬件,提升軟件的可移植性。

Ethif的主要功能是通過對下層以太網(wǎng)控制器以及以太網(wǎng)收發(fā)器的抽象,實現(xiàn)了軟硬件解耦,能夠向Ethif的上層模塊(TCPIP,ETHSM,CDD)提供一個統(tǒng)一的并且與硬件無關(guān)的接口,這樣上層模塊能夠通過Ethif提供的統(tǒng)一接口實現(xiàn)與硬件系統(tǒng)資源(一個或者多個以太網(wǎng)控制器)交互。
對下,Ethif模塊需要使用一個或者多個位于MCAL層的驅(qū)動模塊,比如Eth(以太網(wǎng)控制器驅(qū)動模塊),EthTrcv(以太網(wǎng)收發(fā)器驅(qū)動模塊)實現(xiàn)對硬件資源的控制。Ethif模塊使用Autosar規(guī)范中定義的標(biāo)準(zhǔn)接口與Mcal驅(qū)動模塊交互,保證了在需要替換芯片以及硬件時,只需要更換mcal驅(qū)動,Ethif及其上層模塊不需要替換。
英文名稱 | 含義 |
Eth | Mcal中的以太網(wǎng)控制器驅(qū)動 |
Ethif | 以太網(wǎng)抽象接口模塊 |
EthSM | 以太網(wǎng)狀態(tài)控制器模塊 |
EthTrcv | 以太網(wǎng)收發(fā)器模塊 |
TCPIP | 以太網(wǎng)TCP以及IP協(xié)議模塊 |

EthIf模塊對于以太網(wǎng)控制器的抽象具有如下特性:

1.抽象接口:Ehernet Interface模塊能夠提供一個獨立的硬件接口,上層模塊能夠通過該接口訪問EthIf抽象的所有以太網(wǎng)收發(fā)器功能,使用這些控制器提供的初始化,配置以及數(shù)據(jù)傳輸功能,并且對控制器的具體類型無感。
2.支持多個以太網(wǎng)收發(fā)器及多個驅(qū)動并存的現(xiàn)象:如Ethif對于以太網(wǎng)控制器的抽象,也支持多個以太網(wǎng)收發(fā)器驅(qū)動以及硬件并存的功能。
EthIf作為ECU抽象層的模塊,需要將參與以太網(wǎng)功能的硬件外設(shè)進(jìn)行抽象。EthIf承擔(dān)了虛擬網(wǎng)卡的功能,通過索引(EthIfCtrlIdx)配置項從底層通信系統(tǒng)中抽象出對Vlan的訪問,將Vlan與Ethernet Controller與Ethernet Transceiver硬件驅(qū)動資源綁定,達(dá)到Mcal的硬件資源以Vlan id進(jìn)行劃分的目的。
如下圖,VLAN1為EthIf通過EthIf_Ctrl0將Driver0 Ctrl0驅(qū)動(Ethernet Controller)以及Eth Transceiver0驅(qū)動綁定抽象出來的。

下面以打開上圖中的EthIf_Ctrl0為例,代碼邏輯如下:


具備數(shù)據(jù)發(fā)送功能,提供接口給到上層應(yīng)用來實現(xiàn)數(shù)據(jù)的正常發(fā)送
EthIf的報文發(fā)送功能分為兩種模式,一種是Interrupt模式,另一種是Polling模式,Interrupt模式實時性高,一般會采用該模式滿足實時性要求。
Polling模式

Interrupt模式

具備數(shù)據(jù)接收功能,提供接口給到上層應(yīng)用來實現(xiàn)數(shù)據(jù)的正常接收;
在autosar架構(gòu)中,EthIf模塊從Eth接收以太網(wǎng)幀,并將以太網(wǎng)幀轉(zhuǎn)發(fā)至TcpIp或者Cdd模塊。EthIf模塊的數(shù)據(jù)接收功能可以分為Polling模式以及中斷模式兩種。
Polling模式
下圖中展示的是Poling接收模式,在Polling接收模式下,需要使用到Ethif_MainfunctionRx函數(shù),在這個函數(shù)中使用EthIf_RxIndication告知上層模塊數(shù)據(jù)已經(jīng)被成功接收。
這種模式下數(shù)據(jù)接收完全依賴于Ethif_MainfunctionRx函數(shù)調(diào)度,報文接收速率比較低,該模式一般不使用。

Interrupt模式
下圖展示的是Ethif模塊中斷接收數(shù)據(jù)功能,在該模式下可以看到Eth模塊在收到報文后,會通過中斷觸發(fā)EthIf_RxIndication告知上層數(shù)據(jù)已經(jīng)被接收。

EthIf在接收到以太幀后,根據(jù)以太幀的Vlan與EthIf配置的vlan進(jìn)行比較,找到鏈接的Ethif Controller,并將Ethif Controller Index以及以太幀一起提供給上層模塊。
用偽代碼的形式表示如下:

EthIf可以接收多種類型的以太報文:Ipv4(Frame Type = 0x800),Arp(Frame Type = 0x806),Vlan報文(Frame Type =0x8000)。
EthIf模塊對于每種以太幀可以配置對應(yīng)的接收函數(shù),定向?qū)⒃撘蕴珟瑐鬏斨辽蠈幽K。
比如:為Ipv4配置的接收函數(shù)為TcpIp_RxIndication,則EthIf僅將Ipv4報文傳輸至Tcpip模塊處理。

用偽代碼形式表示如下:

本文主要說明了以太網(wǎng)硬件抽象模塊EthIf如何實現(xiàn)對于以太網(wǎng)控制器,以太網(wǎng)收發(fā)器的抽象,以及EthIf模塊對于硬件的狀態(tài)控制功能,以太報文的收發(fā)功能。后續(xù)將會有文章詳細(xì)描述Ethif在AUTOSAR中的配置。
End
「汽車電子嵌入式在CSDN上同步推出AUTOSAR精進(jìn)之路專欄,本專欄每個模塊完全按實際項目中開發(fā)及維護(hù)過程來詳細(xì)介紹。模塊核心概念介紹、實際需求描述、實際工程配置、特殊需求介紹及背后原理、實際工程使用經(jīng)驗總結(jié)。 目的是讓讀者看完每一個章節(jié)后能理解原理后根據(jù)需求完成一個模塊的配置或者解決一個問題。」
點擊文章最后左下角的閱讀原文可以獲取更多信息
或者復(fù)制如下鏈接到瀏覽器獲取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
2.為便于技術(shù)交流,創(chuàng)建了汽車電子嵌入式技術(shù)交流群,可盡情探討AP,CP,DDS,SOME/IP等前沿?zé)狳c話題,后臺回復(fù)“加群”即可加入;
注:本文引用了一些第三方工具和文檔,若有侵權(quán),請聯(lián)系作者刪除!
推薦閱讀
汽車電子嵌入式精彩文章匯總第一期:20210530-20230703
汽車電子嵌入式精彩文章匯總第2期
汽車電子嵌入式精彩文章匯總第3期
汽車電子嵌入式精彩文章匯總第4期
AUTOSAR項目實戰(zhàn)(9) -CanTrcv模塊配置實踐
AUTOSAR架構(gòu)下Multi-Core Com配置實戰(zhàn)
TC3xx芯片看門狗復(fù)位的默認(rèn)行為分析
AUTOSAR架構(gòu)下TC3xx芯片是如何進(jìn)行模式切換的
AUTOSAR架構(gòu)下NvM_ReadAll時間優(yōu)化的實用方案(上)
AUTOSAR架構(gòu)下NvM_ReadAll無法退出問題分析
TC3xx芯片RAM監(jiān)控機(jī)制的補(bǔ)充
TC3xx芯片RAM ECC錯誤軟件調(diào)試
TC3xx芯片ROM ECC錯誤軟件調(diào)試
內(nèi)存分區(qū)設(shè)計及鏈接文件實現(xiàn)
AUTOSAR項目實戰(zhàn)(10)-Alignment Error異常問題分析
AUTOSAR項目實戰(zhàn)(11)-AUTOSAR OS MPU配置及調(diào)試
TC3xx芯片[Class 4, TIN 3] trap原因分享
CanSM何時設(shè)置BusOffDTC及常見BusOff內(nèi)部原因總結(jié)
AUTOSAR架構(gòu)下如何測試NvM的使用率
AUTOSAR架構(gòu)下如何測量Task的周期和運行時間
EVADC功能安全需求及一些軟硬件設(shè)計注意事項
AUTOSAR項目實戰(zhàn)(12)-Can Driver模塊配置使用實踐
NvM實車問題分析-看基礎(chǔ)扎實老司機(jī)如何快速定位問題
TC3xx芯片SMU FSP自檢原理和實現(xiàn)
【功能安全】ESM[SW]:SMU:ALIVE_ALARM_TEST原理及具體實現(xiàn)
【功能安全】ESM[SW]:SYS:MCU_FW_CHECK原理及注意實現(xiàn)
LIN收發(fā)器TJA1021功耗過高問題分析
【功能安全】英飛凌TC3xx芯片LBIST實現(xiàn)原理
【車載以太網(wǎng)】Eth Stack Bringup
【車載以太網(wǎng)】AUTOSAR架構(gòu)下EthTrcv實戰(zhàn)詳解
【車載以太網(wǎng)】AUTOSAR架構(gòu)下TC3xx芯片是如何將一幀ETH報文發(fā)送出去的
【車載以太網(wǎng)】AUTOSAR架構(gòu)下TC3xx芯片是如何將一幀ETH報文接收上來的
End
歡迎點贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵,都是我最大的動力!
汽車電子嵌入式
微信掃描二維碼,關(guān)注我的公眾號