【内部教程】ISOLAR-AB配置以太网栈|超详细实战版
目录
往期推荐
缩写与定义
关于系统描述(System Description)
1.1 EthCommunicationController
1.2 EthCommunicationConnector
1.2.1 Ports(端口)
1.3 EthPhysicalChannel(以太网物理通道)
1.3.1 Network Endpoint(网络端点)
1.3.2 Triggerings(触发项)
1.3.3 SoAdConfig
1.3.3.1 SocketAddress(套接字地址)
1.3.3.2 SocketConnection 和 SocketConnectionBundle
1.3.3.3 SoAdRoutingGroups
2.在 RTA-CAR 标准 Starter Kit 中添加以太网网络
2.1 编辑系统描述
往期推荐
- 2025汽车行业新宠:欧企都在用的工具软件
- ETAS工具链自动化实战指南<一>
- ETAS工具链自动化实战指南<二>
- ETAS工具链自动化实战指南<三>
- AUTOSAR工程师必读:Artop的核心功能
- Vector工具链自动化实战指南<一>
- isolar高手秘籍| ECU Configuration三分钟速成!
- 掌握核心步骤:RTA-BSW以太网配置全解析
- 一文详解TC399 CAN MCAL 配置
- LSL常见应用场景及示例<一>
- LSL常见应用场景及示例<二>
- LSL常见应用场景及示例<三>
- 为什么Autosar钟情arxml而非json?大揭秘!
- 深入浅出:SOME/IP-SD的工作原理与应用
- 【技术进阶】|一文掌握Autosar ComStack的精髓!
- Autosar培训笔记整理<一>
- 【AutoSAR进阶】|实战详解ETAS工具链UDS 0x2f服务核心配置!
- 实战详解ETAS工具链CanTp模块自动化配置
- 一文掌握5种常见的AUTOSAR 错误类型
- 【AUTOSAR工程师必备知识】一文搞懂AUTOSAR架构9种通信方式
- 实战干货|详解ETAS工具链之 intra-ECU通信的数据转换
本文将解释如何使用系统描述来描述以太网网络。众所周知, RTA-CAR 9 中新增了以太网导入工具。新的以太网导入工具允许 confgen 使用系统描述来生成所需的 BSW 配置,以支持以太网网络及其消息,从而显著缩短向项目添加新以太网信号所需的工作量。
缩写与定义
-
IP - 互联网协议(Internet Protocol):以太网中最常用的网络层协议。地址分配给端点,数据包将被路由到其目的端点。
-
UDP - 用户数据报协议(User Datagram Protocol):最常见的两个传输层协议(TCP 和 UDP)中最简单的一种。
-
Eth - 以太网 MCAL 模块(Ethernet MCAL Module)
-
EthIf - 以太网接口 BSW 模块(Ethernet Interface BSW Module):MCAL 和 TcpIp 栈之间的接口模块。
-
TcpIp - 实现 TCP/IP AUTOSAR 栈的 BSW 模块(The BSW module that implements the TCP/IP AUTOSAR stack):同时也负责处理 UDP 帧。
-
SoAd - 套接字适配器 BSW 模块(Socket Adapter BSW Module):负责在 AUTOSAR 的 PDU 固定路由通信方式与基于套接字的以太网通信方式之间进行适配。PDU 路由将映射到套接字。
关于系统描述(System Description)
系统描述是一组包含在项目中的 ARXML 文件,用于描述系统内 ECU 的通信。用户可以定义新的帧(Frames)、信号(Signals)、端口(Ports)以及其他与通信总线相关的属性。以下介绍描述以太网系统的组件的含义,并解释这些组件如何映射到生成的 BSW 配置中。
1.1 EthCommunicationController
此配置项用于定义以太网控制器硬件的属性。这些属性将在生成 Eth 和 EthIf BSW 模块配置时被使用。
1.2 EthCommunicationConnector
通信连接器(Communication Connector)用于连接通信控制器(Communication Controller)、ECU 实例(ECU Instance)和物理通道(Physical Channel)。其关系如下:物理通道引用一个通信连接器(通信连接器是 ECU 实例的子项),而通信连接器又引用一个通信控制器。
一个 EthCommunicationConnector 包含端口(详见IPduPorts/ISignalPorts/FramePorts)。
通信连接器可以配置的属性:
NetworkEndpoint:网络端点引用用于确定将分配给 ECU 实例的 IP 地址。
1.2.1 Ports(端口)
端口表示连接器的一个端口。端口可以是以下三种类型之一:
-
Pdu 端口(IPduPort)
-
信号端口(ISignalPort)
-
帧端口(FramePort)
每个端口都将通过其对应的触发类型引用,例如:
-
IPduTriggering
-
ISignalTriggering
-
FrameTriggering
1.3 EthPhysicalChannel(以太网物理通道)
以太网物理通道表示一个 VLAN(虚拟局域网,Virtual Local Area Network)。一个 VLAN 可以是带标签(tagged)或不带标签(untagged)的,默认情况下,EthPhysicalChannel 表示一个未标记的 VLAN(这意味着它对实际 VLAN 不加干预,仅转发数据包而不添加 VLAN 元数据)。
要配置 VLAN,需要定义 VlanConfig 和 VlanIdentifier。
EthPhysicalChannel 引用一个 EthCommunicationConnector(如上一节所述)。此外,它还包含网络端点(Network Endpoints)、任何触发项(Triggerings)以及 SoAdConfig。
1.3.1 Network Endpoint(网络端点)
网络端点用于描述网络 IP 地址或多播 MAC 地址。其配置将映射到以下模块:
-
TcpIp 模块:设置 ECU 的 IP 地址。
-
SoAd 模块:设置 ECU 可传输数据的 IP 地址。
1.3.2 Triggerings(触发项)
与端口(详见 1.2.1 节)类似,触发项(Triggering)可用于以下类型:
-
Pdu 触发(IPduTriggering)
-
信号触发(ISignalTriggering)
-
帧触发(FrameTriggering)
触发项用于描述对象(Pdu/Signal/Frame)在何种通道上进行传输。触发项包含对一个端口的引用,还可能包含对更小类型对象触发项的引用(例如,一个 IPduTriggering 引用一个 ISignalTriggering,或一个 FrameTriggering 引用一个 IPduTriggering)。
通常,在系统描述中,以太网信号不需要定义帧(Frame),而是更常使用 PDUs。
1.3.3 SoAdConfig
(套接字适配器配置)SoAdConfig 是物理通道的套接字适配器(Socket Adapter, BSW 模块)配置。它由一组 PDU 的路由组成,用于在套接字之间传输数据。套接字是网络中两个通信端点之间的连接终点。
套接字适配器模块的核心作用是实现 AUTOSAR 的基于 PDU 的通信方式与以太网的基于套接字的通信方式之间的适配。
通常,系统描述中的 SoAdConfig 配置项可以直接映射到 SoAd BSW 模块中的对应配置。
1.3.3.1 SocketAddress(套接字地址)
套接字地址定义了一个端口和 IP 地址,用于发送/接收数据。然而,SocketAddress 本身并不直接包含端口信息,而是包含一个 ApplicationEndpoint,该端点定义了端口协议(UDP 或 TCP)及其端口号。
SocketAddresses 套接字地址由 SocketConnections 引用,这使得套接字(即 PDU 将被路由到的目标)可以被分配一个地址和端口。端口将在 SoAd 配置中设置,同时会创建对 TcpIp 端点(IP 地址)的引用。
1.3.3.2 SocketConnection 和 SocketConnectionBundle
SocketConnectionBundle 是一组 SocketConnections。在某些情况下,多个 SocketConnections 可能有共同的配置项,此时可以通过 Bundle 只需配置一次即可。
SocketConnection 定义了两个端点(本地端点和远程端点)之间的连接,并指定了在两者之间路由的 PDU。此外,还有一些额外的配置项可供设置,这些配置可能是某些类型消息(如服务发现)所必需的。
SocketConnection 和 Bundle 的配置几乎可以直接映射到 SoAd BSW 模块:SocketConnectionBundles 对应于 SocketConnectionGroups。
1.3.3.3 SoAdRoutingGroups
SoAdRoutingGroups 是一组可以开启或关闭的 SocketConnections。例如,这可以用于禁用发送(Tx)通信。一个常见的使用场景是,根据 ECU 是否订阅了另一 ECU 提供的服务(或反之),动态启用或禁用通信。
2.在 RTA-CAR 标准 Starter Kit 中添加以太网网络
下面展示在 RTA-CAR Starter Kit 中添加以太网网络所需的步骤。这些步骤将涵盖系统描述和 BSW 配置中的更改,以实现 ECU 定期发送的以太网消息。假设已经实现了 ASW 和 RTE/OS(如 SWCs、定时事件、任务调度等)。
2.1 编辑系统描述
1.在系统
编辑器的网络表(Networks Table)中的以太网部分,将 New Cluster 按钮拖动至以太网部分以创建新的Ethernet Cluster。如果已存在Ethernet Cluster,则无需创建新的。
2.将协议
重命名为 ETHERNET,以使Cluster属性的名称更清晰。
3.通过将 New Physical Channel 拖动到以太网网络表中来创建一个新的物理通道。之后,将 Ap
plicationECU 拖动到该物理通道上。添加 ECU 后,将自动创建一个 CommunicationController 和 CommunicationConnector。
4.将
一个新的控制器条件添加为 EthernetCommunicationController 的子项。设置目标以太网控制器所需的属性。
5.添加
一个新的耦合端口。在这种情况下,物理层类型设置为 BROAD-R-REACH,速率(波特率)设置为 100Mbps。
6.向 CouplingPort 添加一个 VlanMembership,并将 VLAN 设置为之前创建的 PhysicalChannel。这将确保在 Eth 和 EthIf 模块中生成以太网控制器配置。
7.返回到系统编辑器,将 Ethernet Pdu 拖动到表格的传输部分。这将自动生成触发项和端口(Pdu/信号端口/触发项)。
8.为发送方和接收方创建 UDP SocketAddresses。可以通过选择 SocketAddress 容器(位于 EthernetCluster 中的 PhysicalChannel 的子项),然后将 New UDP Address 拖动到表格的 Ipv4 部分来完成。以这种方式创建新的 SocketAddress 将自动为 IP 地址生成一个 NetworkEndpoint,并为 UDP 端口生成一个 ApplicationEndpoint。
注意:NetworkEndpoints 要重命名,以便在后续步骤中更清晰地区分每个端点。
9.现在
,既然 NetworkEndpoints 已创建,我们可以将本地 NetworkEndpoint 映射到第 3 步中生成的 EthernetCommunicationConnector。注意:MaximumTransmissionUnit 和 NeighborCacheSize 也已配置,这些值可能依赖于目标控制器,但对于 VRTA 来说,这些值是足够的。
10.创建一
个新的 SocketConnectionBundle。
11.确保 ServerPort 指向为表示本地 ECU 创建的 SocketAddress。
12.在该 bundle内创建一个新的 SocketConnection。
13.配置 SocketConnection,并确保 client port 指向代表远程 ECU 的 SocketAddress。
14.将一个 PDU 作为子项添加到之前创建的 SocketConnection 中。该 PDU 应指向本指南前置步骤中创建的 PDU,并且 PduTriggering 应指向第 7 步中自动创建的 PduTriggering。
15.通过点击下图中高亮的 e 按钮(生成 ECU 配置向导)来运行 Confgen。
16.这应该会生成所有所需的 BSW 配置。Confgen 存在一个已知问题,导致对 EthTrcv 的引用未正确生成。如果是这种情况,该引用将被标记为无效。
17.要解决此问题,选择 show all references ,然后选择正确的收发器(transceiver)。
18.完成此操作后,BSW 配置应该可以正常生成。对于发送以太网帧,应选择以下模块进行生成:
-
-
EthIf
-
EthSM
-
Rba_EthIPv4
-
Rba_EthUdp
-
TcpIp
-
EthTrcv(取决于target)
-
19.BSW 生成成功后,可以开始进行其余的集成。这包括将 BSW MainFunctions 映射到任务,将 SystemSignals 映射到 ComSignals(在 System Mapping Editor 中),以及将 Init 函数添加到 BswM ActionLists。