AUTOSAR图解==>AUTOSAR_SRS_RTE

AUTOSAR RTE(运行时环境)详解

AUTOSAR Classic Platform 的核心通信机制与运行时支持

目录


1. AUTOSAR RTE概述

1.1 RTE的定位与作用

运行时环境(RTE,Runtime Environment)是AUTOSAR软件架构中的核心中间层,它在应用软件组件和基础软件之间提供了标准化的接口和通信机制。RTE作为实际实现虚拟功能总线(VFB,Virtual Function Bus)的软件层,使软件组件能够按照AUTOSAR方法论进行开发和集成。

RTE的主要职责包括:

  • 提供软件组件之间的通信机制,支持组件间的数据交换
  • 管理运行实体(Runnable Entity)的激活和调度
  • 提供模式管理服务,协调各组件的运行状态
  • 为应用软件组件提供访问基础软件功能的标准接口
  • 支持ECU内部和ECU间的通信

RTE是为每个特定ECU专门生成的,它根据系统配置信息定制通信路径和接口实现,确保软件组件能够有效地进行通信和交互。

1.2 RTE的关键特性

RTE具有以下关键特性:

  1. 标准化接口:为软件组件提供统一的接口,隐藏底层实现细节
  2. 自动代码生成:基于ECU配置自动生成,减少手动编码工作
  3. 多种通信机制:支持多种通信模式,包括发送-接收、客户端-服务器等
  4. 资源保护:提供排他区域机制保护共享资源
  5. 可配置性:根据具体应用需求和硬件特性进行定制
  6. 多核支持:支持在多核处理器上分配和调度软件组件
  7. 内存优化:针对资源受限的嵌入式系统优化内存使用

2. RTE整体架构

2.1 分层架构与位置

AUTOSAR软件架构采用分层设计,RTE作为中间层连接应用层和基础软件层。下图展示了RTE在AUTOSAR架构中的位置和与其他组件的关系:

在这里插入图片描述

从上图可以清晰地看到,AUTOSAR软件架构分为四个主要层级:

  1. 应用层:包含各种应用软件组件(SWC)和传感器/执行器软件组件,实现特定功能
  2. RTE中间层:连接应用层和基础软件层,实现虚拟功能总线
  3. 基础软件层:包含多个子层
    • 服务层:提供通信、操作系统和内存管理等服务
    • ECU抽象层:提供硬件抽象
    • 微控制器抽象层:提供微控制器访问接口
    • 复杂驱动层:处理复杂的外设驱动功能
  4. ECU硬件:实际的硬件组件

RTE的核心价值在于它将应用软件组件与底层硬件和基础软件隔离,使应用开发能够独立于特定硬件平台进行。这种分层设计极大地提高了软件的可移植性和可重用性。

2.2 RTE与其他层的交互

RTE与其他层的主要交互包括:

  1. 与应用软件组件的交互

    • 提供标准API供应用软件调用
    • 管理Runnable实体的激活和执行
    • 处理组件间的数据传输
  2. 与基础软件的交互

    • 连接到COM服务实现ECU间通信
    • 使用OS服务进行任务调度和资源管理
    • 通过NvM服务访问非易失性内存数据
  3. 横向交互

    • 支持同一层内不同软件组件之间的通信
    • 处理应用软件组件之间的数据交换

这种分层交互机制确保了系统各部分之间的解耦,同时提供了必要的通信渠道。


3. RTE通信机制

3.1 发送-接收通信

RTE提供了丰富的通信机制,支持不同类型的数据交换和组件交互。下图详细展示了RTE支持的各种通信机制:

在这里插入图片描述

**发送-接收通信(Sender-Receiver)**是RTE中最常用的通信模式,主要特点包括:

  • 1:N通信:一个发送者可以向多个接收者发送数据,支持广播模式
  • N:1通信:多个发送者可以向一个接收者发送数据,采用最后写入者获胜的策略
  • 显式发送:通过Rte_Write()Rte_Send()等API显式触发数据发送
  • 隐式发送:Runnable实体结束时自动发送数据
  • 显式接收:通过Rte_Read()Rte_Receive()等API显式获取数据
  • 隐式接收:Runnable实体开始时自动接收数据

发送-接收通信适用于数据流处理,如传感器数据传输、控制信号传递等场景。这种通信方式支持无队列(覆盖写)和队列(先进先出)两种数据处理模式。

3.2 客户端-服务器通信

**客户端-服务器通信(Client-Server)**提供了请求-响应型的交互机制:

  • 同步调用:客户端调用Rte_Call()函数并阻塞等待服务器返回结果
  • 异步调用:客户端发出请求后可继续执行,通过后续调用Rte_Result()获取结果
  • N:1多客户端支持:多个客户端可以请求同一个服务器,服务器可序列化处理这些请求

客户端-服务器通信适用于功能性服务请求,如数据处理、诊断功能和复杂算法调用等场景。

3.3 触发器通信

**触发器通信(Trigger)**用于激活Runnable实体:

  • 外部触发器:支持1:N通信,一个触发信号可以激活多个Runnable实体
  • Runnable间触发:通过InterRunnableTriggering机制实现组件内部的Runnable间触发
  • 队列触发器:支持触发事件的排队,防止在高负载情况下触发丢失

触发器通信为基于事件的系统提供了灵活的激活机制,适用于需要响应外部事件或内部状态变化的场景。

3.4 数据共享机制

RTE还提供了多种数据共享机制:

  • Runnable间变量(InterRunnableVariables):允许同一组件内不同Runnable实体之间共享数据
  • 排他区域(Exclusive Areas):保护共享资源,确保数据一致性和避免竞争条件
  • 大数据传输优化:针对大型数据结构提供高效传输机制,减少内存开销

这些机制共同构成了RTE的全面通信框架,支持各种复杂的系统交互需求。


4. RTE与操作系统交互

4.1 任务调度与管理

RTE与AUTOSAR OS之间的交互是确保软件组件正常运行的关键环节。下图展示了RTE与OS的交互机制:

在这里插入图片描述

RTE任务调度功能与OS密切合作,主要包括:

  • 任务体构建:RTE生成器根据配置自动创建任务主体代码
  • 任务激活:管理任务的启动和周期性激活
  • 任务优先级分配:根据组件需求设置适当的优先级
  • 定时服务使用:利用OS提供的定时服务实现时间触发的Runnable激活

RTE不仅使用OS的任务管理服务,还利用OS的事件管理功能来协调Runnable实体的执行。通过这种方式,RTE能够有效地将高级软件组件的执行需求映射到OS的任务调度机制上。

4.2 排他区域与资源保护

RTE的排他区域管理与OS的资源管理紧密集成:

  • 资源保护机制:使用OS资源或禁用中断来实现互斥访问
  • 嵌套排他区域支持:处理多层次的资源保护需求
  • 跨任务保护:确保跨不同任务的共享资源访问安全

排他区域作为RTE提供的关键同步机制,依赖于OS的底层资源保护功能,为应用软件组件提供了一致的资源访问控制。

4.3 OS应用映射

RTE还负责管理软件组件与OS应用(OS Application)的映射关系:

  • 组件到OS应用的分配:将软件组件分配到特定的OS应用中
  • 跨OS应用通信处理:管理跨不同OS应用的组件间通信
  • 内存保护配置:支持OS的内存保护机制,确保系统安全性

这种映射关系对于支持复杂的多核系统和隔离关键功能至关重要,是RTE在系统集成方面的重要贡献。


5. RTE与通信服务交互

5.1 信号处理与转换

RTE与COM服务的交互是实现ECU间通信的基础。下图展示了RTE与COM的交互流程:

在这里插入图片描述

RTE中的信号转换器负责以下功能:

  • 应用数据与信号映射:将应用层数据结构映射到COM层信号
  • 数据类型转换:处理不同数据类型之间的转换
  • 大小端序调整:确保不同硬件平台之间的数据一致性
  • 扩展缓冲区处理:支持大型数据的高效传输

这些转换机制确保了应用软件组件能够以统一的方式处理数据,而不必关心底层通信细节。

5.2 序列化与大数据处理

针对复杂数据结构和大型数据,RTE提供了专门的处理机制:

  • 数据序列化:将复杂数据结构转换为可传输的字节流
  • TLV编码支持:支持Tag-Length-Value格式的灵活数据编码
  • 分段传输:大数据的分段处理和重组
  • 信号组处理:多个相关信号的组合处理

这些机制支持现代汽车系统中日益增加的大数据传输需求,如摄像头数据、雷达信息等高带宽应用。

5.3 ECU间通信支持

RTE为跨ECU通信提供了全面支持:

  • 标准化通信协议:与COM服务协作实现标准通信
  • 网络数据转换:处理网络传输中的数据格式转换
  • 超时检测:监控通信延迟和失败,支持故障处理
  • 初始值管理:确保通信启动时的数据一致性

通过这些机制,RTE实现了AUTOSAR虚拟功能总线的核心目标:使分布在不同ECU上的软件组件能够透明地进行通信。


6. Runnable实体调度与激活

6.1 Runnable类别与特性

Runnable实体是AUTOSAR软件组件中的基本执行单元。下图展示了RTE对Runnable实体的调度和激活机制:

在这里插入图片描述

AUTOSAR定义了两类Runnable实体:

  • Category 1 Runnable

    • 不使用任何可能导致等待的RTE API
    • 一旦开始执行就会一直执行到结束
    • 适用于简单、快速的操作
  • Category 2 Runnable

    • 可以使用导致等待的RTE API
    • 可能被挂起并等待事件
    • 适用于复杂、可能需要等待的操作

根据功能特点,Runnable实体还可分为:

  • 服务器Runnable:响应客户端请求,提供服务
  • 周期性Runnable:按固定时间间隔执行
  • 事件触发Runnable:响应特定事件而激活
  • 后台Runnable:在系统空闲时执行
  • 启动/关闭Runnable:在系统初始化或关闭时执行

6.2 激活机制

RTE支持多种Runnable激活机制:

  • 时间触发激活

    • 基于OS定时器实现定期激活
    • 支持设置激活周期和偏移量
    • 可配置去抖动启动特性
  • 事件触发激活

    • 数据接收事件(ComRxComRxTOut
    • 模式切换事件(ModeSwitch
    • 外部触发器(DataReceivedOperationInvoked
    • Runnable间触发(InterRunnableTriggering
  • 后台激活

    • 通过空闲任务实现
    • 低优先级循环执行

这些激活机制使RTE能够灵活应对各种系统需求,从严格的实时控制到后台数据处理。

6.3 调度与执行管理

RTE的调度和执行管理包括:

  • OS任务调度

    • 将相关Runnable映射到适当的OS任务
    • 根据优先级和激活方式构建调度代码
    • 优化任务执行顺序
  • Runnable执行管理

    • 构建Runnable执行链
    • 控制并发执行
    • 管理排他区域
  • 服务器调用管理

    • 处理同步和异步服务调用
    • 实现服务序列化执行
    • 管理多个并发请求

这些调度机制确保了系统的可预测性和实时性能,满足了汽车电子系统的严格要求。


7. RTE的优势与应用

AUTOSAR RTE通过其灵活的架构和全面的功能,为汽车电子系统开发带来了显著优势:

  • 标准化与一致性

    • 提供统一的接口和通信模型
    • 简化组件集成和系统开发
    • 降低开发和测试复杂度
  • 可移植性与可重用性

    • 将应用与底层硬件分离
    • 支持跨平台软件重用
    • 减少移植工作量
  • 系统优化

    • 为特定ECU定制生成
    • 针对资源受限环境优化
    • 支持复杂的多核和分布式架构
  • 性能与安全性

    • 保证实时性能要求
    • 支持功能安全机制
    • 提供可靠的通信保障

RTE已经广泛应用于现代汽车的各个系统,包括:

  1. 发动机管理系统
  2. 车身电子控制
  3. 高级驾驶辅助系统(ADAS)
  4. 信息娱乐系统
  5. 电动车能量管理
  6. 诊断与维护系统

通过RTE的实现,AUTOSAR标准实现了其提高汽车电子系统可靠性、灵活性和开发效率的核心目标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiGer666

慧眼~施主!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值