文章总结: 本文详细解析AUTOSAR架构中EthIf模块作为硬件抽象层的核心功能,包括对以太网控制器和收发器的抽象、索引与状态管理、以及报文收发的中断与轮询模式。关键结论是EthIf通过统一接口实现软硬件解耦,提升可移植性,支持多控制器和收发器并存。可操作建议是理解EthIf配置以优化车载以太网通信性能。 综合评分: 85 文章分类: 技术标准,应用安全,网络安全,安全建设,解决方案
【车载以太网】AUTOSAR-EthIf详解
原创
Tomas Li Tomas Li
汽车电子嵌入式
2026年7月27日 08:46 广东
在小说阅读器读本章
去阅读
目录
#
1.概述
在AUTOSAR架构中,Ethif属于硬件抽象层,所谓的硬件抽象层,即是抽象硬件,提升软件的可移植性。
Ethif的主要功能是通过对下层以太网控制器以及以太网收发器的抽象,实现了软硬件解耦,能够向Ethif的上层模块(TCPIP,ETHSM,CDD)提供一个统一的并且与硬件无关的接口,这样上层模块能够通过Ethif提供的统一接口实现与硬件系统资源(一个或者多个以太网控制器)交互。
对下,Ethif模块需要使用一个或者多个位于MCAL层的驱动模块,比如Eth(以太网控制器驱动模块),EthTrcv(以太网收发器驱动模块)实现对硬件资源的控制。Ethif模块使用Autosar规范中定义的标准接口与Mcal驱动模块交互,保证了在需要替换芯片以及硬件时,只需要更换mcal驱动,Ethif及其上层模块不需要替换。
2.专有名词
| | | | — | — | | 英文名称 | 含义 | | Eth | Mcal中的以太网控制器驱动 | | Ethif | 以太网抽象接口模块 | | EthSM | 以太网状态控制器模块 | | EthTrcv | 以太网收发器模块 | | TCPIP | 以太网TCP以及IP协议模块 |
3.EthIf对硬件外设的抽象
3.1 EthIf对以太网控制器的抽象
EthIf模块对于以太网控制器的抽象具有如下特性:
1.抽象接口:Ehernet Interface模块能够提供一个独立的硬件接口,上层模块能够通过该接口访问EthIf抽象的所有以太网控制器,使用这些控制器提供的初始化,配置以及数据传输功能,并且对控制器的具体类型无感。
2.支持多个控制器多个驱动并存的现象:
1)从上图中可以看出,以太网协议栈中可以存在多个以太网控制器与以太网驱动。
2)单个以太网驱动程序(Ethernet Driver)模块只能支持一种类型的控制器硬件,但是可以支持多个类型的控制器。如上图中,ECU存在三种以太网控制器,驱动Ethernet DriverA只能支持同类型的以太网控制器硬件EC TYPE A,但能支持多个EC TYPE A。
3.2 EthIf对以太网收发器的抽象
1.抽象接口:Ehernet Interface模块能够提供一个独立的硬件接口,上层模块能够通过该接口访问EthIf抽象的所有以太网收发器功能,使用这些控制器提供的初始化,配置以及数据传输功能,并且对控制器的具体类型无感。
2.支持多个以太网收发器及多个驱动并存的现象:如Ethif对于以太网控制器的抽象,也支持多个以太网收发器驱动以及硬件并存的功能。
4.功能说明
4.1 以太网控制器以及外设的索引功能
EthIf作为ECU抽象层的模块,需要将参与以太网功能的硬件外设进行抽象。EthIf承担了虚拟网卡的功能,通过索引(EthIfCtrlIdx)配置项从底层通信系统中抽象出对Vlan的访问,将Vlan与Ethernet Controller与Ethernet Transceiver硬件驱动资源绑定,达到Mcal的硬件资源以Vlan id进行划分的目的。
如下图,VLAN1为EthIf通过EthIf_Ctrl0将Driver0 Ctrl0驱动(Ethernet Controller)以及Eth Transceiver0驱动绑定抽象出来的。
4.2 以太网控制器以及外设状态管理功能
4.2.1 以太网控制器状态控制
1)Ethif模块提供了函数EthIf_SetControllerMode(EthIf_CtrlIdx,CtrlMode)以控制Ethernet Controller的状态,进而控制以太网控制器报文收发开关。
2)EthIfCtrlIdx指的是上图中Ethif Controller的Index,根据Ethif对以太网控制器的索引,进而可以找到以太网控制器索引号通过Eth_SetControllermode()函数直接进行控制。
下面以打开上图中的EthIf_Ctrl0为例,代码逻辑如下:
4.2.2 以太网收发器状态控制:
1)EthIf模块提供了函数EthIf_SetTransceiverMode(TrcvIdx,TrcvMode)控制以太网收发器Ethernet Transceiver的状态。
2)TrcvIdx,指的是上图中的Transceiver的Index,根据EthIf对以太网收发器的索引,进而能够找到收发器的索引号。
#
5. 以太网报文收发功能
5.1 报文发送功能
具备数据发送功能,提供接口给到上层应用来实现数据的正常发送
EthIf的报文发送功能分为两种模式,一种是Interrupt模式,另一种是Polling模式,Interrupt模式实时性高,一般会采用该模式满足实时性要求。
Polling模式
1)上层模块CDD或者TcpIp通过EthIf_ProvideTxBuffer函数调用Eth_ProvideTxBuffer向Eth Controller申请buffer发送以太帧。
2)当EthIf_ProvideTxBuffer返回E_OK,说明当前有空闲的Buffer可以用于发送报文。
EthIf模块使用EthIf_Transmit接口用于发送报文。
1)EthIf的周期轮询任务EthIf_MainFunctionTx调用Eth_TxConfirmation函数触发发送确认。
2)EthIf模块通过配置参数EthIfTxConfirmationFunction找到回调函数,将确认结果发送上层。
3)只有发送TxConfirmation完成后,Eth的Buffer才能变成空闲状态,再次开始发送任务。
Interrupt模式
1)中断模式相对于Polling模式的区别在于,发送确认由Eth的中断触发回调EthIf_TxConfirmation函数。
2)中断模式能够以更快的方式发送确认(中断速率远大于轮询),因此Eth Buffer能够以更快的速率发送报文。
3)中断模式适用于对以太报文发送实时性要求高的需求场景。
5.2 报文接收功能
具备数据接收功能,提供接口给到上层应用来实现数据的正常接收;
在autosar架构中,EthIf模块从Eth接收以太网帧,并将以太网帧转发至TcpIp或者Cdd模块。EthIf模块的数据接收功能可以分为Polling模式以及中断模式两种。
Polling模式
下图中展示的是Poling接收模式,在Polling接收模式下,需要使用到Ethif_MainfunctionRx函数,在这个函数中使用EthIf_RxIndication告知上层模块数据已经被成功接收。
这种模式下数据接收完全依赖于Ethif_MainfunctionRx函数调度,报文接收速率比较低,该模式一般不使用。
Interrupt模式
下图展示的是Ethif模块中断接收数据功能,在该模式下可以看到Eth模块在收到报文后,会通过中断触发EthIf_RxIndication告知上层数据已经被接收。
5.3 EthIf对于以太帧报文的处理
5.3.1 Vlan Check
EthIf在接收到以太帧后,根据以太帧的Vlan与EthIf配置的vlan进行比较,找到链接的Ethif Controller,并将Ethif Controller Index以及以太帧一起提供给上层模块。
用伪代码的形式表示如下:
5.3.2 Frame Type Check
EthIf可以接收多种类型的以太报文:Ipv4(Frame Type = 0x800),Arp(Frame Type = 0x806),Vlan报文(Frame Type =0x8000)。
EthIf模块对于每种以太帧可以配置对应的接收函数,定向将该以太帧传输至上层模块。
比如:为Ipv4配置的接收函数为TcpIp_RxIndication,则EthIf仅将Ipv4报文传输至Tcpip模块处理。
用伪代码形式表示如下:
6.结语
本文主要说明了以太网硬件抽象模块EthIf如何实现对于以太网控制器,以太网收发器的抽象,以及EthIf模块对于硬件的状态控制功能,以太报文的收发功能。后续将会有文章详细描述Ethif在AUTOSAR中的配置。
End
「汽车电子嵌入式在CSDN上同步推出AUTOSAR精进之路专栏,本专栏每个模块完全按实际项目中开发及维护过程来详细介绍。模块核心概念介绍、实际需求描述、实际工程配置、特殊需求介绍及背后原理、实际工程使用经验总结。 目的是让读者看完每一个章节后能理解原理后根据需求完成一个模块的配置或者解决一个问题。」
点击文章最后左下角的阅读原文可以获取更多信息
或者复制如下链接到浏览器获取更多信息
https://blog.csdn.net/qq_36056498/article/details/132125693
文末福利
1
.如需汽车电子嵌入式收集的学习文档,
后台回复“
资料
“即可免费下载;
2.为便于技术交流,创建了汽车电子嵌入式技术交流群,可尽情探讨AP,CP,DDS,SOME/IP等前沿热点话题,后台回复“加群”即可加入;
注:本文引用了一些第三方工具和文档,若有侵权,请联系作者删除!
推荐阅读
汽车电子嵌入式精彩文章汇总第一期:20210530-20230703
汽车电子嵌入式精彩文章汇总第2期
汽车电子嵌入式精彩文章汇总第3期
汽车电子嵌入式精彩文章汇总第4期
AUTOSAR项目实战(9) -CanTrcv模块配置实践
AUTOSAR架构下Multi-Core Com配置实战
TC3xx芯片看门狗复位的默认行为分析
AUTOSAR架构下TC3xx芯片是如何进行模式切换的
AUTOSAR架构下NvM_ReadAll时间优化的实用方案(上)
AUTOSAR架构下NvM_ReadAll无法退出问题分析
TC3xx芯片RAM监控机制的补充
TC3xx芯片RAM ECC错误软件调试
TC3xx芯片ROM ECC错误软件调试
内存分区设计及链接文件实现
AUTOSAR项目实战(10)-Alignment Error异常问题分析
AUTOSAR项目实战(11)-AUTOSAR OS MPU配置及调试
TC3xx芯片[Class 4, TIN 3] trap原因分享
CanSM何时设置BusOffDTC及常见BusOff内部原因总结
AUTOSAR架构下如何测试NvM的使用率
AUTOSAR架构下如何测量Task的周期和运行时间
EVADC功能安全需求及一些软硬件设计注意事项
AUTOSAR项目实战(12)-Can Driver模块配置使用实践
NvM实车问题分析-看基础扎实老司机如何快速定位问题
TC3xx芯片SMU FSP自检原理和实现
LIN收发器TJA1021功耗过高问题分析
【功能安全】英飞凌TC3xx芯片LBIST实现原理
【车载以太网】Eth Stack Bringup
【车载以太网】AUTOSAR架构下EthTrcv实战详解
【车载以太网】AUTOSAR架构下TC3xx芯片是如何将一帧ETH报文发送出去的
【车载以太网】AUTOSAR架构下TC3xx芯片是如何将一帧ETH报文接收上来的
End
欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!
汽车电子嵌入式
微信扫描二维码,关注我的公众号
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:汽车电子嵌入式 Tomas Li Tomas Li《【车载以太网】AUTOSAR-EthIf详解》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论