0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

智能汽车电子与软件 来源:ADAS与ECU之吾见 2023-03-23 11:27 次阅读

正文

正如我们了解的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 常用函数接口说明






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AUTOSAR
    +关注

    关注

    9

    文章

    331

    浏览量

    21145
  • ecu
    ecu
    +关注

    关注

    14

    文章

    823

    浏览量

    53934
  • CAN收发器
    +关注

    关注

    2

    文章

    150

    浏览量

    25337
  • 车载以太网
    +关注

    关注

    18

    文章

    180

    浏览量

    22611

原文标题:车载以太网基础篇之EthIf

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TJA1100可以不使用Cy_EthIf_SetFilterAddress吗?

    Cy_EthIf_SetFilterAddress 删除,不想要过滤 MAC ADDRESS,反而会收不到任何封包 cy_stc_eth_filter_config_t 的 ignoreBytes 该
    发表于 02-01 07:53

    请问下图函数作用是什么?

    1.请问如图函数作用是什么?2.请问如图函数作用是什么?注:麻烦您解释的具体一些
    发表于 04-21 06:50

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

    模块是什么?光模块有着哪些分类?光模块作用是什么?
    发表于 05-18 06:53

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

    Dictionary的主要用途是什么?Dictionary的结构是由哪些部分组成的?Dictionary的功能块接口哪些?其作用是什么?
    发表于 07-02 07:31

    FOCAS协议是什么?主要作用是什么

    FOCAS协议是什么?主要作用是什么?TCP/IP协议是什么?TCP/IP协议包括哪几种?
    发表于 08-13 07:44

    Bootloader的主要作用是什么

    Bootloader的主要作用是升级程序。一般来讲,在产品开发、生产、售后等环节都会用到Bootloader,可以说Bootloader贯穿一款产品的整个生命周期,甚至可以说从某种程度来讲,能从一个
    发表于 08-23 08:57

    c语言的接口作用是什么

    c语言的接口作用是什么?
    发表于 10-14 13:43

    摄像头镀膜的主要作用是什么?

    摄像头镀膜的主要作用是什么?什么是摄像头模组?camera模组的装配方式哪些?
    发表于 11-02 06:57

    中断与函数调用的作用是什么?他们之间什么联系区别?

    中断与函数调用的作用是什么?他们之间什么联系区别?
    发表于 11-16 07:37

    单片机是什么?单片机的主要作用是什么

    单片机是什么?单片机的主要作用是什么?单片机哪些应用领域
    发表于 01-17 06:10

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

    电力电容器的主要作用是什么?
    的头像 发表于 07-28 17:57 1w次阅读

    芯片的主要作用是什么

    芯片的主要作用是什么?芯片的主要作用是完成运算,处理任务。芯片是指含有集成电路的硅片,芯片是一个电器里面的灵魂,我们在日常生活中碰到的电子器件中大部分都含有芯片。
    的头像 发表于 12-22 11:40 1.6w次阅读

    AUTOSAR以太网通信架构模块作用介绍

    硬件驱动层的Eth Driver负责与外部PHY芯片的数据交互,实现了MAC 的初始化,内容主要包含了buffer的设置,中断的设置,部分芯片中还包含了复用的一些设置,该模块提供了相关的接口
    的头像 发表于 11-22 09:07 2912次阅读

    网线接口是什么?网线接口作用是什么-科兰

    是什么?网线接口作用是什么。 网线接口是什么? 网线接口RJ45由插头和插座组成,这两种元器件组成的连接器连接于导线之间,以实现导线的电气连续性。 RJ45
    的头像 发表于 06-19 10:10 2887次阅读

    车载以太网时间同步Time Master行为

    参数EthTSynGlobalTimeTxPeriod来进行周期性发送,在发送SYNC报文的过程中需进行如下三个基本步骤: 通过函数 EthIf_ProvideTxBuffer来获取空闲的buffer
    的头像 发表于 07-24 10:49 745次阅读