EthIf模块的主要作用是什么?Ethif的常见函数接口有哪些呢?

发布时间:2023-03-23  

正如我们了解的CanIf模块一样,作为CAN收发器,CAN控制器的统一上层ECU抽象,能够让我们实现CanIf上层的应用模块与底层硬件解耦,大大增加了软件的可移植性。


针对车载以太网而言也是同样的道理,AUTOSAR组织按照同样的方法论实现了车载以太网协议栈的软件架构分布,其中EthIf与CanIf作用与地位相当,都是为了实现底层硬件如以太网控制器与以太网收发器的上层抽象,便于软硬件解耦,大大提高了软件的可复用度。


接下来将从AUTOSAR EthIf模块的层次关系,主体功能以及常用函数接口三个方面展开给大家进行讲解。


模块层次关系

按照AUTOSAR标准文档规范,有关EthIf模块在整个软件架构的具体位置描述如下图1所示:

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

图1 EthIf与以太网协议栈关系

如上图所示,可以得出如下几个基本结论:

一个以太网协议栈中可以存在多家供应商的以太网控制器,同时针对每家供应商的控制器进行单独控制,互不影响;

同一供应商的以太网控制器可以存在多个,但使用的以太网控制器驱动可以仅使用同一套;

上述三家不同供应商的以太网驱动作为标准AUTOSAR MCAL的一部分,能够完全实现与底层硬件的解耦;


以太网控制器关系

针对多家供应商以太网控制器并存的情况,AUTOSAR EthIf模块基于该种情况来实现了统一管理与实现,能够大大提高同一驱动的复用效率。

如下图2所示,明确表示出了针对以太网控制器不同的前提下EthIf软件模块与以太网控制器驱动两者如何进行Mapping的关系。

通过分析发现,它们两者之间具备如下的索引Mapping 关系,该Mapping关系将能够保证EthIf模块能够唯一,准确的控制各个控制器模块,具体的Mapping规则如下:

EthIf 软件模块针对每一个以太网控制器在其内部进行全局唯一的编号索引,索引从0开始,如EthIf_CtrlIdx所表示的编号所示,全局唯一;

针对同一类型的以太网控制器,对应的以太网驱动在其软件内部模块进行从0开始的索引编号,如下图具备两个相同类型的以太网控制器,因此索引编号分别为0与1,与EthIf模块的全局唯一索引并不冲突;

针对不同类型的以太网控制器,其对应的驱动模块在其内部对应的索引也应该从0开始,无论是否并存其他类型的以太网驱动;

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

图2 EthIf模块与以太网控制器关系

以太网收发器关系

如下图3所示,以太网收发器与EthIf模块存在如下相应的Mapping关系,具体可以总结为如下几点:

同一类型的以太网收发器可以使用同一个以太网收发器驱动(简称Phy驱动);

不同类型的以太网收发器应采用不同的以太网收发器驱动;

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

图3 EthIf模块与以太网收发器驱动关系

如下图4所示,对照以太网控制器与EthIf的关系,同理可以看出以太网收发器与EthIf之间的index Mapping关系:

在以太网收发器驱动如果存在多个相同类型的收发器,应当在其内部按照从0开始进行编号表示其唯一性;

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

图3 以太网收发器编号关系

以太网Switch关系

如下图4所示为以太网Switch与EthIf之间的Index关系:

针对相同类型以太网网关都使用同一驱动;

同一以太网网关内部的Port也会按照index从0开始计数,不同以太网网关内部的Port编号彼此独立,互不干扰;

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

图4 以太网Switch编号关系

模块主体功能

对于AUTOSAR标准中的EthIf模块作为底层硬件驱动的抽象层,具备如下几个基本功能:

完成通信初始化功能,为数据收发创造基础条件;

具备数据发送功能,提供接口给到上层应用来实现数据的正常发送;

具备数据接收功能,提供接口给到上层应用来实现数据的正常接收;

具备底层Phy Link状态变化管理功能,能够及时监控底层Phy的状态;

接下来将从EthIf模块的上述四个基本功能展开进行讲述,让大家进一步了解EthIf模块的基本工作原理。

通信初始化功能

如下图5所示,描述了EthIf与底层驱动建立通信的必要前提,即需要通过调用EthIf_Init函数来实现Eth控制器与Eth收发器的初始化;

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

图5 Eth硬件初始化过程

如下图6所示描述了EthSM,EthIf,Eth,EthTrcv四者之间的关系,EthSM通过调用EthIf模块的函数EthIf_SetControllerMode来实现以太网控制器的初始化,同时Eth模块将通过回调函数将是否初始化成功的标志告知EthSM模块。

紧接着EthSM将调用EthIf模块的函数EthIf_SetTransceiverMode函数来实现Eth收发器的初始化,Eth收发器通过回调函数将初始化是否成功的标志告知EthSM模块;

72444a72-c8ac-11ed-bfe3-dac502259ad0.png
图6 EthIf模块通信初始化过程

数据发送功能

EthIf模块的数据发送功能分为两者模式,一种是Polling模式,另外一种就是Interrupt模式,一般而言都优先采用中断模式来满足系统实时性要求。

如下图7为Polling模式,在Polling模式中可以看到在EthIf_MainfunctionTx函数中会去轮询是否发送成功的标志,这个也是Polling模式的典型特征。

Polling模式

724f8d06-c8ac-11ed-bfe3-dac502259ad0.png
图7 EthIf数据发送Polling模式

Interrupt模式

如下图8所示为以太网数据发送的中断模式,中断模式相比Polling模式可以看出并没有使用到EthIf_MainfunctionTx函数,而是使用Eth模块的中断函数来确认发送是否成功。

7260a654-c8ac-11ed-bfe3-dac502259ad0.png
图8 EthIf模块数据发送中断模式

数据接收功能

同理相比数据发送功能,EthIf模块的数据接收功能也可以分为Polling模式与中断模式两种,如下图9所示为EthIf模块的数据接收Polling模式。

如下图9所示,如果EthIf模块数据接收采用Polling模式,那么就需要使用到EthIf_MainfunctionRx函数,在该函数中去调用EthIf_RxIndication来告知上层数据已成功被接收,使用该模式会大大降低数据接收效率,一般接收优先采用中断模式。

Polling模式

7274bb3a-c8ac-11ed-bfe3-dac502259ad0.png
图9 EthIf模块数据接收Polling模式

Interrupt模式

如下图10所示为EthIf模块的数据接收中断功能,在该模式中可以看到通过Eth模块通过中断函数来进而告知上层数据已被接收。

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

图10 EthIf模块数据接收中断模式

Link状态变化管理功能

如下图11所示,描述了在EthIf_MainfunctionRx函数中通过调用EthTrcv模块的EthTrcv_GetLinkState来告知上层应用收发器罪行的Link状态。

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

图11 EthIf模块Link状态变化监控

VLAN支持

EthIf模块必须支持VLAN功能,该模式将会将VLAN归为虚拟控制器这一类,以太网驱动以及以太网收发器将仅针对真实的控制器与收发器,不考虑VLAN这一特性。

如果没有有效的VLAN ID设置,那么虚拟控制器将表示没有打上标签的VLAN,同时EthIf模块将使用Eth 驱动提供的Buffer来支持VLAN功能。

Wake up支持

EthIf模块须通过配置EthIfWakeUpSupport来实现,同时Wakeup有效的前提是底层的以太网收发器(Phy)需要支持休眠唤醒功能才行。

常用函数接口

为了便于大家调试方便,小T将EthIf模块常用的函数总结归纳如下:

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

图12 常用函数接口说明


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>