主要来说,RTE可以从逻辑上分为两个实现部分:
- 软件组件之间的通讯
- 软件组建的时间调度
RTE包含(由不同的ECU组件映射而来的)系统基础设施system infrastructure的变量元素,同时包含标准的RTE服务。
为了全面的描述RTE的概念,基础软件的调度也要考虑在内。基础软件调度器用于调度基础软件模块的可调度实体。在一些文档中,可调度实体也被称为主进程函数。
由于相同的OS任务可能被用作调度软件组件和基础软件模块,RTE的调度模块与基础软件调度器强相关,两者并不能被完整的分离开。
RTE和基础软件是针对特定的ECU而生成的,这就保证了基础软件和RTE是最有搭配。
RTE通讯范式(Communication Paradigm)
RTE为软件组件实例之间的通信提供了不同的范例:发送方-接收方(信号传递)、客户机-服务器(函数调用)、模式切换和NvBlockSwComponentType交互。
在AUTOSAR架构中,软件组件(SWC)可以通过RTE与不同的软件组件通讯,不管这些不同的软件组件是不是处于同一个ECU。软件组件也可以通过RTE与同一ECU的基础软件(BSW)模块通讯,这些基础软件模块包括服务层软件,ECU抽象层软件和复杂驱动软件组件(这些BSW模块也是包含AUTOSAR接口和可运行实体的)。
此通信只能通过组件的端口进行Port。端口可以按发送方-接收方(Send-Receiver)或客户端-服务器端口(Client-Server)接口进行分类。发送方-接收方接口提供消息传递功能,而客户机-服务器接口提供函数调用。
每个通信范式都可以应用于分区内软件组件分发(包括同一分区内的任务内和任务间分发)、分区间软件组件分发和ECU间软件组件分发。
通讯模式
RTE支持两种模式的发送-接收通讯:
显式通讯——组件之间通过显式的API调用,发送或接收数据。
隐式通讯——在一个运行实体触发之前读取数据(eg. Nvm初始化),或一个运行实体终止时写入数据(eg. Nvm存数据)。