广告

车载以太网基础篇之EthIf

2023-03-23 汽车电子与软件 阅读:
你知道EthIf模块的主要作用是什么吗?EthIf与以太网控制器,以太网收发器,以太网网关都有哪些关系呢?Ethif的常见函数接口有哪些呢?今天,我们就来一起探索并回答这些问题。

前言clUednc

首先,请问大家几个小小问题,你清楚:clUednc

你知道EthIf模块的主要作用是什么吗?clUednc

EthIf与以太网控制器,以太网收发器,以太网网关都有哪些关系呢?clUednc

Ethif的常见函数接口有哪些呢?clUednc

今天,我们就来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:clUednc

正文clUednc

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

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

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

模块层次关系clUednc

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

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

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

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

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

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

以太网控制器关系clUednc

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

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

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

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

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

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

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

以太网收发器关系clUednc

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

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

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

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

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

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

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

以太网Switch关系clUednc

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

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

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

图4 以太网Switch编号关系 模块主体功能clUednc

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

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

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

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

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

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

通信初始化功能clUednc

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

图5 Eth硬件初始化过程clUednc

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

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

图6 EthIf模块通信初始化过程clUednc

数据发送功能clUednc

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

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

Polling模式clUednc

图7 EthIf数据发送Polling模式clUednc

Interrupt模式clUednc

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

图8 EthIf模块数据发送中断模式clUednc

数据接收功能clUednc

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

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

Polling模式clUednc

图9 EthIf模块数据接收Polling模式clUednc

Interrupt模式clUednc

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

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

Link状态变化管理功能clUednc

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

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

VLAN支持clUednc

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

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

Wake up支持clUednc

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

常用函数接口clUednc

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

图12 常用函数接口说明clUednc

责编:Ricardo
文章来源及版权属于汽车电子与软件,EDN电子技术设计仅作转载分享,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如有疑问,请联系Demi.xia@aspencore.com
汽车电子与软件
汽车电子与软件
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了