0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

EthIf模塊的主要作用是什么?Ethif的常見函數(shù)接口有哪些呢?

智能汽車電子與軟件 ? 來源:ADAS與ECU之吾見 ? 2023-03-23 11:27 ? 次閱讀

正文

正如我們了解的CanIf模塊一樣,作為CAN收發(fā)器,CAN控制器的統(tǒng)一上層ECU抽象,能夠讓我們實現(xiàn)CanIf上層的應(yīng)用模塊與底層硬件解耦,大大增加了軟件的可移植性。

針對車載以太網(wǎng)而言也是同樣的道理,AUTOSAR組織按照同樣的方法論實現(xiàn)了車載以太網(wǎng)協(xié)議棧的軟件架構(gòu)分布,其中EthIf與CanIf作用與地位相當,都是為了實現(xiàn)底層硬件如以太網(wǎng)控制器與以太網(wǎng)收發(fā)器的上層抽象,便于軟硬件解耦,大大提高了軟件的可復用度。

接下來將從AUTOSAR EthIf模塊的層次關(guān)系,主體功能以及常用函數(shù)接口三個方面展開給大家進行講解。

模塊層次關(guān)系

按照AUTOSAR標準文檔規(guī)范,有關(guān)EthIf模塊在整個軟件架構(gòu)的具體位置描述如下圖1所示:

71b3599a-c8ac-11ed-bfe3-dac502259ad0.png

圖1 EthIf與以太網(wǎng)協(xié)議棧關(guān)系

如上圖所示,可以得出如下幾個基本結(jié)論:

一個以太網(wǎng)協(xié)議棧中可以存在多家供應(yīng)商的以太網(wǎng)控制器,同時針對每家供應(yīng)商的控制器進行單獨控制,互不影響;

同一供應(yīng)商的以太網(wǎng)控制器可以存在多個,但使用的以太網(wǎng)控制器驅(qū)動可以僅使用同一套;

上述三家不同供應(yīng)商的以太網(wǎng)驅(qū)動作為標準AUTOSAR MCAL的一部分,能夠完全實現(xiàn)與底層硬件的解耦;

以太網(wǎng)控制器關(guān)系

針對多家供應(yīng)商以太網(wǎng)控制器并存的情況,AUTOSAR EthIf模塊基于該種情況來實現(xiàn)了統(tǒng)一管理與實現(xiàn),能夠大大提高同一驅(qū)動的復用效率。

如下圖2所示,明確表示出了針對以太網(wǎng)控制器不同的前提下EthIf軟件模塊與以太網(wǎng)控制器驅(qū)動兩者如何進行Mapping的關(guān)系。

通過分析發(fā)現(xiàn),它們兩者之間具備如下的索引Mapping 關(guān)系,該Mapping關(guān)系將能夠保證EthIf模塊能夠唯一,準確的控制各個控制器模塊,具體的Mapping規(guī)則如下:

EthIf 軟件模塊針對每一個以太網(wǎng)控制器在其內(nèi)部進行全局唯一的編號索引,索引從0開始,如EthIf_CtrlIdx所表示的編號所示,全局唯一;

針對同一類型的以太網(wǎng)控制器,對應(yīng)的以太網(wǎng)驅(qū)動在其軟件內(nèi)部模塊進行從0開始的索引編號,如下圖具備兩個相同類型的以太網(wǎng)控制器,因此索引編號分別為0與1,與EthIf模塊的全局唯一索引并不沖突;

針對不同類型的以太網(wǎng)控制器,其對應(yīng)的驅(qū)動模塊在其內(nèi)部對應(yīng)的索引也應(yīng)該從0開始,無論是否并存其他類型的以太網(wǎng)驅(qū)動;

71d5ded4-c8ac-11ed-bfe3-dac502259ad0.png

圖2 EthIf模塊與以太網(wǎng)控制器關(guān)系

以太網(wǎng)收發(fā)器關(guān)系

如下圖3所示,以太網(wǎng)收發(fā)器與EthIf模塊存在如下相應(yīng)的Mapping關(guān)系,具體可以總結(jié)為如下幾點:

同一類型的以太網(wǎng)收發(fā)器可以使用同一個以太網(wǎng)收發(fā)器驅(qū)動(簡稱Phy驅(qū)動);

不同類型的以太網(wǎng)收發(fā)器應(yīng)采用不同的以太網(wǎng)收發(fā)器驅(qū)動;

71e42070-c8ac-11ed-bfe3-dac502259ad0.png

圖3 EthIf模塊與以太網(wǎng)收發(fā)器驅(qū)動關(guān)系

如下圖4所示,對照以太網(wǎng)控制器與EthIf的關(guān)系,同理可以看出以太網(wǎng)收發(fā)器與EthIf之間的index Mapping關(guān)系:

在以太網(wǎng)收發(fā)器驅(qū)動如果存在多個相同類型的收發(fā)器,應(yīng)當在其內(nèi)部按照從0開始進行編號表示其唯一性;

71fc23e6-c8ac-11ed-bfe3-dac502259ad0.png

圖3 以太網(wǎng)收發(fā)器編號關(guān)系

以太網(wǎng)Switch關(guān)系

如下圖4所示為以太網(wǎng)Switch與EthIf之間的Index關(guān)系:

針對相同類型以太網(wǎng)網(wǎng)關(guān)都使用同一驅(qū)動;

同一以太網(wǎng)網(wǎng)關(guān)內(nèi)部的Port也會按照index從0開始計數(shù),不同以太網(wǎng)網(wǎng)關(guān)內(nèi)部的Port編號彼此獨立,互不干擾;

7218233e-c8ac-11ed-bfe3-dac502259ad0.png

圖4 以太網(wǎng)Switch編號關(guān)系

模塊主體功能

對于AUTOSAR標準中的EthIf模塊作為底層硬件驅(qū)動的抽象層,具備如下幾個基本功能:

完成通信初始化功能,為數(shù)據(jù)收發(fā)創(chuàng)造基礎(chǔ)條件;

具備數(shù)據(jù)發(fā)送功能,提供接口給到上層應(yīng)用來實現(xiàn)數(shù)據(jù)的正常發(fā)送;

具備數(shù)據(jù)接收功能,提供接口給到上層應(yīng)用來實現(xiàn)數(shù)據(jù)的正常接收;

具備底層Phy Link狀態(tài)變化管理功能,能夠及時監(jiān)控底層Phy的狀態(tài);

接下來將從EthIf模塊的上述四個基本功能展開進行講述,讓大家進一步了解EthIf模塊的基本工作原理。

通信初始化功能

如下圖5所示,描述了EthIf與底層驅(qū)動建立通信的必要前提,即需要通過調(diào)用EthIf_Init函數(shù)來實現(xiàn)Eth控制器與Eth收發(fā)器的初始化;

722260f6-c8ac-11ed-bfe3-dac502259ad0.png

圖5 Eth硬件初始化過程

如下圖6所示描述了EthSM,EthIf,Eth,EthTrcv四者之間的關(guān)系,EthSM通過調(diào)用EthIf模塊的函數(shù)EthIf_SetControllerMode來實現(xiàn)以太網(wǎng)控制器的初始化,同時Eth模塊將通過回調(diào)函數(shù)將是否初始化成功的標志告知EthSM模塊。

緊接著EthSM將調(diào)用EthIf模塊的函數(shù)EthIf_SetTransceiverMode函數(shù)來實現(xiàn)Eth收發(fā)器的初始化,Eth收發(fā)器通過回調(diào)函數(shù)將初始化是否成功的標志告知EthSM模塊;

72444a72-c8ac-11ed-bfe3-dac502259ad0.png
圖6 EthIf模塊通信初始化過程

數(shù)據(jù)發(fā)送功能

EthIf模塊的數(shù)據(jù)發(fā)送功能分為兩者模式,一種是Polling模式,另外一種就是Interrupt模式,一般而言都優(yōu)先采用中斷模式來滿足系統(tǒng)實時性要求。

如下圖7為Polling模式,在Polling模式中可以看到在EthIf_MainfunctionTx函數(shù)中會去輪詢是否發(fā)送成功的標志,這個也是Polling模式的典型特征。

Polling模式

724f8d06-c8ac-11ed-bfe3-dac502259ad0.png
圖7 EthIf數(shù)據(jù)發(fā)送Polling模式

Interrupt模式

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

7260a654-c8ac-11ed-bfe3-dac502259ad0.png
圖8 EthIf模塊數(shù)據(jù)發(fā)送中斷模式

數(shù)據(jù)接收功能

同理相比數(shù)據(jù)發(fā)送功能,EthIf模塊的數(shù)據(jù)接收功能也可以分為Polling模式與中斷模式兩種,如下圖9所示為EthIf模塊的數(shù)據(jù)接收Polling模式。

如下圖9所示,如果EthIf模塊數(shù)據(jù)接收采用Polling模式,那么就需要使用到EthIf_MainfunctionRx函數(shù),在該函數(shù)中去調(diào)用EthIf_RxIndication來告知上層數(shù)據(jù)已成功被接收,使用該模式會大大降低數(shù)據(jù)接收效率,一般接收優(yōu)先采用中斷模式。

Polling模式

7274bb3a-c8ac-11ed-bfe3-dac502259ad0.png
圖9 EthIf模塊數(shù)據(jù)接收Polling模式

Interrupt模式

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

728a81a4-c8ac-11ed-bfe3-dac502259ad0.png

圖10 EthIf模塊數(shù)據(jù)接收中斷模式

Link狀態(tài)變化管理功能

如下圖11所示,描述了在EthIf_MainfunctionRx函數(shù)中通過調(diào)用EthTrcv模塊的EthTrcv_GetLinkState來告知上層應(yīng)用收發(fā)器罪行的Link狀態(tài)。

72a84fea-c8ac-11ed-bfe3-dac502259ad0.png

圖11 EthIf模塊Link狀態(tài)變化監(jiān)控

VLAN支持

EthIf模塊必須支持VLAN功能,該模式將會將VLAN歸為虛擬控制器這一類,以太網(wǎng)驅(qū)動以及以太網(wǎng)收發(fā)器將僅針對真實的控制器與收發(fā)器,不考慮VLAN這一特性。

如果沒有有效的VLAN ID設(shè)置,那么虛擬控制器將表示沒有打上標簽的VLAN,同時EthIf模塊將使用Eth 驅(qū)動提供的Buffer來支持VLAN功能。

Wake up支持

EthIf模塊須通過配置EthIfWakeUpSupport來實現(xiàn),同時Wakeup有效的前提是底層的以太網(wǎng)收發(fā)器(Phy)需要支持休眠喚醒功能才行

常用函數(shù)接口

為了便于大家調(diào)試方便,小T將EthIf模塊常用的函數(shù)總結(jié)歸納如下:

72c8006a-c8ac-11ed-bfe3-dac502259ad0.png

圖12 常用函數(shù)接口說明






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    363

    瀏覽量

    21757
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    892

    瀏覽量

    54703
  • CAN收發(fā)器
    +關(guān)注

    關(guān)注

    3

    文章

    166

    瀏覽量

    25703
  • 車載以太網(wǎng)
    +關(guān)注

    關(guān)注

    18

    文章

    226

    瀏覽量

    23066

原文標題:車載以太網(wǎng)基礎(chǔ)篇之EthIf

文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    TJA1100可以不使用Cy_EthIf_SetFilterAddress嗎?

    Cy_EthIf_SetFilterAddress 刪除,不想要過濾 MAC ADDRESS,反而會收不到任何封包 cy_stc_eth_filter_config_t 的 ignoreBytes 該
    發(fā)表于 02-01 07:53

    請問下圖函數(shù)作用是什么?

    1.請問如圖函數(shù)作用是什么?2.請問如圖函數(shù)作用是什么?注:麻煩您解釋的具體一些
    發(fā)表于 04-21 06:50

    模塊是什么?光模塊作用是什么?

    模塊是什么?光模塊有著哪些分類?光模塊作用是什么?
    發(fā)表于 05-18 06:53

    Dictionary的功能塊接口哪些?其作用是什么?

    Dictionary的主要用途是什么?Dictionary的結(jié)構(gòu)是由哪些部分組成的?Dictionary的功能塊接口哪些?其作用是什么?
    發(fā)表于 07-02 07:31

    中斷與函數(shù)調(diào)用的作用是什么?他們之間什么聯(lián)系區(qū)別?

    中斷與函數(shù)調(diào)用的作用是什么?他們之間什么聯(lián)系區(qū)別?
    發(fā)表于 11-16 07:37

    單片機是什么?單片機的主要作用是什么

    單片機是什么?單片機的主要作用是什么?單片機哪些應(yīng)用領(lǐng)域?
    發(fā)表于 01-17 06:10

    Wifi模塊:USB接口對于wifi模塊什么作用

    Wifi模塊:USB接口對于wifi模塊什么作用? 在wifi模塊中,USB充當什么角色
    發(fā)表于 10-17 15:42 ?29次下載

    藍牙模塊什么作用 藍牙芯片的作用 藍牙芯片什么作用 具體哪些應(yīng)用場景

    在如今生活中,每個人都接觸了無線連接、藍牙傳輸。但是藍牙模塊還是很少見的。那么藍牙模塊什么作用?具體又有哪些應(yīng)用場景
    發(fā)表于 12-09 11:45 ?8177次閱讀

    電力電容器的主要作用是什么

    電力電容器的主要作用是什么?
    的頭像 發(fā)表于 07-28 17:57 ?1.1w次閱讀

    芯片的主要作用是什么

    芯片是一種將電路小型化的方式,一般制造在半導體晶圓表面上。我們是生活離不開芯片,那么芯片的主要作用是什么?下面就一起來看看吧! 雖然芯片的體積很小,但是它無處不在。芯片是指內(nèi)含集成電路的硅片,
    的頭像 發(fā)表于 12-22 09:47 ?1.4w次閱讀

    芯片的主要作用是什么

    芯片的主要作用是什么?芯片的主要作用是完成運算,處理任務(wù)。芯片是指含有集成電路的硅片,芯片是一個電器里面的靈魂,我們在日常生活中碰到的電子器件中大部分都含有芯片。
    的頭像 發(fā)表于 12-22 11:40 ?1.8w次閱讀

    AUTOSAR以太網(wǎng)通信架構(gòu)模塊作用介紹

    硬件驅(qū)動層的Eth Driver負責與外部PHY芯片的數(shù)據(jù)交互,實現(xiàn)了MAC 的初始化,內(nèi)容主要包含了buffer的設(shè)置,中斷的設(shè)置,部分芯片中還包含了復用的一些設(shè)置,該模塊提供了相關(guān)的接口
    的頭像 發(fā)表于 11-22 09:07 ?3737次閱讀

    網(wǎng)線接口是什么?網(wǎng)線接口作用是什么-科蘭

    RJ45接口就是常見的網(wǎng)線接口,屬于布線系統(tǒng)中信息插座連接器的一種,連接器由插頭(接頭、水晶頭)和插座(模塊)組成,插頭 8 個凹槽和 8
    的頭像 發(fā)表于 06-19 10:10 ?4542次閱讀

    車載以太網(wǎng)時間同步Time Master行為

    參數(shù)EthTSynGlobalTimeTxPeriod來進行周期性發(fā)送,在發(fā)送SYNC報文的過程中需進行如下三個基本步驟: 通過函數(shù) EthIf_ProvideTxBuffer來獲取空閑的buffer來
    的頭像 發(fā)表于 07-24 10:49 ?1138次閱讀

    功率放大器模塊作用是什么

      功率放大器模塊在電子設(shè)備和系統(tǒng)中扮演著重要的角色。它的主要作用是將輸入信號放大到更高的功率水平,為后續(xù)的應(yīng)用提供足夠的信號強度和功率驅(qū)動。西安安泰Aigtek將詳細介紹功率放大器模塊
    的頭像 發(fā)表于 12-25 11:24 ?1299次閱讀
    功率放大器<b class='flag-5'>模塊</b>的<b class='flag-5'>作用是</b>什么