1.简介和功能概述
在AUTOSAR分层软件体系结构中,Ethernet Interface属于ECU抽象层,或者更准确地说,属于通信硬件抽象层。这说明了Ethernet Interface的主要任务:向上层提供一个与以太网通信系统硬件无关的接口,该系统由多个不同的有线或无线以太网控制器和收发器组成。该接口对所有以太网控制器和收发器应是统一的。这样,上层(TCP/IP、EthSM、CDD、V2x模块)可以统一访问底层总线系统。Ethernet Interface不直接访问以太网硬件(以太网通信控制器和以太网收发器),而是通过一个或多个硬件特定的驱动模块。
为了访问以太网控制器,Ethernet Interface应使用一个或多个以太网驱动模块,该模块抽象了各自的以太网控制器的特定功能和接口。
为了访问以太网收发器,Ethernet Interface应使用一个或多个以太网收发器驱动模块,该模块抽象了各自以太网收发器的具体特性和接口。
为了访问以太网交换机,Ethernet Interface应使用一个或多个以太网交换机驱动模块,该模块抽象了各自以太网交换机的特定特性和接口。
因此,Ethernet Interface可执行代码(然而,不是在运行时使用的配置)应该完全独立于以太网通信控制器。
图1:以太网栈模块概述
Eth Ethernet Controller Driver (AUTOSAR BSW module)
EthIf Ethernet Interface (AUTOSAR BSW module)
EthSM Ethernet State Manager (AUTOSAR BSW module)
EthTrcv Ethernet Transceiver Driver (AUTOSAR BSW module)
TCP/IP Stack Ethernet communication stack
WEth Wireless Ethernet Driver
WEthTrcv Wireless Ethernet Transceiver Driver
注意:Ethernet Interface的指定方式允许代码模块的对象代码交付,遵循“一元化”原则,即Ethernet Interface的整个配置可以在不修改任何源代码的情况下进行。因此,以太网接口的配置可以在很大程度上进行,而无需对底层硬件有详细的了解。
对汽车领域的适用性
以太网BSW堆栈旨在用于需要高数据速率但不需要硬实时的地方。当然,它也可以用于要求较低的用例,例如低数据速率。
图2:以太网接口文件结构
与其他模块的依赖关系
下面列举了与以太网接口模块交互的模块。
-
使用Ethernet Interface模块的模块:
-
Ethernet Communication Stack (TCP/IP Stack)
-
Ethernet State Manager (EthSM)
-
V2xGn
与其他模块的依赖关系模块:
-
Ethernet Interface模块不负责配置Ethernet Driver,但需要对其进行初始化和配置。
-
Ethernet Interface模块不负责配置Ethernet Transceiver Driver,需要对其进行初始化和配置。
2.功能说明
2.1 Ethernet BSW stack
作为AUTOSAR分层软件体系结构的一部分以太网BSW模块也形成了一个分层的软件堆栈。Ethernet Interface模块通过以太网驱动层访问多个以太网控制器,以太网驱动层可以由多个以太网驱动模块组成。
2.1.1 以太网控制器的索引方案
Ethernet Interface使用一个索引(EthIfCtrlIdx)来从底层通信系统中抽象出对vlan的访问,这些通信系统包括Ethernet Controller和Ethernet Transceiver。因此,以太网接口应该实现从以太网接口控制器(ethctrlidx)到各自的硬件资源控制器(EthCtrlId + EthTrcvId)的映射。
2.1.2 以太网交换机索引方案
由于EthIf不关心属于单个ethswtes的单个EthSwtPorts,因此EthIf中没有必要的EthSwtPorts索引方案。任何与EthSwtPort交互的BSW模块都可以直接引用EthSwtPort的ECU配置进行索引。EthIf将通过EthIfSwitchIdx索引的所有访问分配到相应的EthSwt驱动模块,该驱动模块具有相应的EthSwtIdx值.
2.1.3 以太网接口主要功能
以太网接口应以轮询方式实现用于帧传输确认和帧接收的主要功能,在系统配置时可配置呼叫周期。
2.1.4 要求
下面列出了以太网接口模块实现应满足的要求。
-
以太网接口模块环境由调用以太网接口模块接口的所有模块组成。
-
以太网接口模块支持预编译时间、链接时间和后编译时间配置。
-
头文件EthIf.h应包括软件和规格版本号。
-
以太网接口模块在处理前对相关代码文件和头文件的版本号进行预处理,对代码文件和头文件进行一致性检查。
-
如果启用了以太网接口模块的开发错误检测:以太网接口模块应检查API参数的有效性,并将检测到的错误报告给DET。
-
以太网接口模块应将以太网接口SWS指定的API函数实现为真正的C-code函数,而不应将API实现为用于对象代码交付的宏。
-
以太网接口模块头文件不应该定义全局变量。
2.1.5 配置描述
Ethernet Interface模块应提供包含数据的XML文件,用于软件识别(包含供应商识别、模块ID和软件版本信息)、配置和集成过程。这个文件应该描述特定于供应商的配置参数,也应该包含推荐的配置参数值。
MCG读取以太驱动和以太接口模块的ECU配置说明。集群相关的配置参数包含在Ethernet Interface模块的配置说明中,Ethernet Driver相关的配置数据包含在Ethernet Driver模块的配置说明中。以太网接口模块特定的配置工具应该读取两个ECU模块的描述,以获得映射到以太网接口模块的所有以太网驱动程序的配置数据。
MCG应保证生成的配置数据的一致性。
以太网接口模块的配置需要在ECU配置时进行配置。运行时不应配置任何通信参数。
在模块初始化时传递build后配置数据的起始地址。此外,以太网驱动程序的配置描述应针对以太网接口模块配置进行评估。
2.1.6 VLAN的支持
-
以太网接口应支持虚拟局域网(VLAN).
-
以太网接口应将虚拟局域网(VLAN)封装为虚拟控制器(以太网接口控制器),代表一个专用的VLAN。
-
以太网接口之上的所有BSW模块都将基于这些虚拟控制器进行交互。
-
以太网驱动程序和收发器只处理真实的控制器,不知道虚拟控制器的存在。
注意:如果不设置VLAN ID,则虚拟控制器表示untagged VLAN。
-
以太网接口应该使用以太网驱动程序提供的缓冲器来支持VLAN。
2.1.7 唤醒支持
根据参数的不同,Ethernet Interface支持唤醒功能EthIfWakeUpSupport。
注意:只有在EthTrcv支持唤醒的情况下,在EthIf中启用唤醒支持才有意义。
2.1.8 以太网交换机管理支持
以太网交换机管理允许控制关于以太网交换机端口特定的入口和出口处理的以太网帧,以及提供以太网交换机端口特定的时间戳。这个功能对于其他BSW模块来说是必不可少的,特别是对于EthTSyn,它需要与时间同步或路径延迟测量帧相关联的端口特定信息。
注:以太网交换机管理API支持上层收集/修改以太网交换机端口的特定通信属性。
2.1.9 维护的以太网硬件的处理
以太网接口处理维护的以太网硬件取决于其配置:
-
EthIfPhysController(物理以太网控制器)
-
EthIfController(支持vlan的虚拟以太网控制器)
-
EthIfTransceiver(物理接口)
-
EthIfSwitch(以太网交换机)
-
EthIfSwitchPortGroups(代表ethswtport组)
2.1.10 全局时间支持
2.1.11无线以太网支持
以太网接口应支持无线以太网的特定功能,这取决于参数EthIfEnableWEthApi。
无线功能分为控制器和收发器的特定功能。主要与EthIf上层模块和控制器/收发器交换传输和接收参数。控制器仅被api调用用于缓冲区特定的传输和接收参数:
-
EthIf_GetBufWRxParams
-
EthIf_GetBufWTxParams
-
EthIf_SetBufWTxParams
无线电收发器被称为无线无线电的一般配置和无线无线电的信道:
-
EthIf_SetRadioParams
-
EthIf_SetChanRxParams
-
EthIf_SetChanTxParams
-
EthIf_GetChanRxParams
参数值由唯一的参数标识符请求或传输。它们在控制器和收发器规范中定义。
2.2安全事件
如果已启用EthIf模块(EthIfEnableSecurityEventReporting = true),相应的安全事件应该通过定义的接口报告给IdsM
AUTOSAR_SWS_BSWGeneral。EthIf不为安全事件提供上下文数据。
2.3错误分类
-
Development Errors
-
Runtime Errors
-
Transient Faults
-
Production Errors
-
Extended Production Errors
具体的细节及更多内容可以参考AUTOSAR规范《Specification of Ethernet Interface》