AUTOSAR RTE(Run-Time Environment,运行时环境)
AUTOSAR RTE(Run-Time Environment,运行时环境)
RTE 是 AUTOSAR 架构中应用层(SWC)与基础软件(BSW)之间的"总线",也是整个架构的"虚拟总线(VFB)"在单个 ECU 上的实现。RTE 由工具自动生成,是一层"胶水",负责:
- 将 SWC 所需的通信、控制和调度连接到 BSW;
- 隔离软硬件,支持组件的复用性与可移植性。
8.1 什么是 VFB
- VFB(Virtual Functional Bus,虚拟功能总线) 是系统级的概念:在整车层面,各 SWC 通过 VFB 相互通信,仿佛连在一根抽象总线上。
- RTE 是 VFB 在具体 ECU 上的具体化:在单个 ECU 内部,VFB 的通信由 RTE 实现;跨 ECU 的通信则由 RTE 委托给 BSW/通信栈(Com/CAN 等)完成。
8.2 RTE 的主要职责
- 通信(Communication):
- 实现 SWC 之间的 Sender-Receiver(发送/接收) 数据通信;
- 实现 Client-Server(客户端/服务器) 调用(跨组件、跨 ECU 通信)。
- 调度(Scheduling):
- 根据事件(定时事件、数据接收事件、启动事件等)调度 SWC 的 Runnable;
- 通过 OS(AUTOSAR 调度表)周期激活(如每 10ms/100ms/1s)。
- 访问 BSW:向应用层提供访问 BSW 服务(NvM、Dcm、Com、I/O 等)的接口。
- 模式管理:处理运行模式(如模式切换)的分发。
8.3 RTE 中的核心概念
8.3.1 Runnable(可运行实体)
- SWC 内可调度的代码函数,通过 RTE 触发执行。
- 常见触发事件(RTE Events):
TimingEvent(定时事件,周期执行)DataReceivedEvent(数据接收事件)OperationInvokedEvent(操作被调用事件)ServerCallEvent(客户端请求事件)InitializationEvent/ModeSwitchEvent
- 一个 Runnable 通过 RTE 调用
Rte_Read/Write/Recv/Send等进行数据操作。
8.3.2 Ports 与 Interfaces
- Port:SWC 对外交互的端口(
P-Port提供、R-Port请求)。 - 接口(PortInterface):
- Sender-Receiver Interface:数据元素(Data Elements)——无请求的连续数据流(如传感器周期值)。
- Client-Server Interface:操作/调用——服务调用(请求-响应,如读一个诊断值)。
- RTE 生成对应 API:发送接口
Rte_Write_<Port>_<Data>、Rte_Send_<Op>,接收Rte_Read_*、Rte_Call_*。
8.3.3 Runnable 到任务的映射(Task/RTE Sched)
- 每个 Runnable 映射到一个 OS 任务中,RTE 任务通常是OS 的任务,Runnable 在其中被调度执行。
- 一个 "RTE" 会在启动时初始化并执行一个个任务(周期性/事件)。
8.4 RTE 通信类型(通信类型)
- Data(数据流):S/R 接口,类似"变量流",无应答。
- Call/Operation(调用/操作):C/S 接口,如同步/异步请求。
- Synchronous / Asynchronous:
- S/R 默认是同步(有现成内部变量的同步读取);
- Client-Server 可为异步(带 callback 返回后处理)。
8.5 RTE 的跨总线支持
- RTE 本身不直接发送总线报文,对跨 ECU 的通信:
- 提供 信号(Signal) 到总线(CAN)的映射配置;
- 通过
Rte_:v通过 COM 把信号打包成 PDU,交给 CAN/LIN/Ethernet 通信栈发送; - 接收侧由 RTE 通过回调将接收到的数据传给对应 SWC。
8.6 RTE 与"实现集成(Implementation Integration)"
- RTE 的生成与配置用于将 SWC 与集成的 BSW 通过 ECU Extract + RTE 配置 绑定在一起(详见第 7 篇)。
- 工具(DaVinci Configurator、EB tresos、RTE 生成器)根据:
- 应用层 SWC 的描述(端口、Runnable、事件)
- ECU 配置(对通信/诊断的访问需求)
自动生成Rte.c/Rte_Cfg.h/Rte_<Component>.c等文件。
8.7 RTE 生成文件示例(以 EB/DV 为例)
Rte.c:RTE 核心实现,包含调度表、端口函数;Rte_Static.h / Rte_Internal.h:内部定义;Rte_<Component>.c/.h:每个 SWC 的实现框架(函数体);Rte_Type.h:数据类型定义(Rte_...)。
开发者只需要在 Rte_<Component>_Type.h中实现各 Runnable 的函数体,工具会生成桩代码。
小结
RTE 是应用与 BSW 的"粘结剂"与调度器。它:
- 支持 SWC 间的数据/请求通信;
- 负责调度所有 Runnable;
- 对 BSW 提供统访问接口;
- 由工具自动生成,实现软硬解耦。
RTE 是 AUTOSAR 自动化和软硬解耦的核心。下一部分我们介绍 AUTOSAR 网络管理(NM)。

浙公网安备 33010602011771号