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 的主要职责

  1. 通信(Communication)
    • 实现 SWC 之间的 Sender-Receiver(发送/接收) 数据通信;
    • 实现 Client-Server(客户端/服务器) 调用(跨组件、跨 ECU 通信)。
  2. 调度(Scheduling)
    • 根据事件(定时事件、数据接收事件、启动事件等)调度 SWC 的 Runnable
    • 通过 OS(AUTOSAR 调度表)周期激活(如每 10ms/100ms/1s)。
  3. 访问 BSW:向应用层提供访问 BSW 服务(NvM、Dcm、Com、I/O 等)的接口。
  4. 模式管理:处理运行模式(如模式切换)的分发。

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)

posted @ 2026-08-02 18:56  mengjie_9  阅读(1)  评论(0)    收藏  举报