AUTOSAR进阶图解==>AUTOSAR_RS_SystemTemplate
AUTOSAR系统模板详解
目录
- 概述
1.1 系统模板的目标
1.2 系统模板的范围 - AUTOSAR系统模板架构
2.1 系统模板架构图
2.2 架构组件说明 - 系统通信映射
3.1 通信映射类图
3.2 通信元素说明
3.3 通信配置示例 - 系统拓扑结构
4.1 拓扑类图
4.2 拓扑元素说明
4.3 拓扑配置示例 - 总结
1. 概述
1.1 系统模板的目标
AUTOSAR系统模板的主要目标是定义纯软件视图与物理系统架构之间的关系。它描述了软件组件如何映射到ECU上,以及ECU之间如何通过网络通信。系统模板提供了一种标准化的方法来配置和管理分布式汽车电子系统。
1.2 系统模板的范围
系统模板涵盖以下主要领域:
- 系统拓扑:描述系统的逻辑布局,包括ECU与集群或通道的连接关系
- 总线配置:定义特定总线系统(如CAN、FlexRay、LIN、MOST或以太网)帧交换的属性
- 数据映射:定义软件组件之间的数据交换如何映射到信号和帧上
- ECU资源需求:描述基础软件和RTE的资源需求
- 变体管理:支持多种系统变体的配置和管理
2. AUTOSAR系统模板架构
2.1 系统模板架构图
2.2 架构组件说明
2.2.1 软件视图
软件视图包含系统的纯软件结构,不涉及硬件分配和物理实现细节。
-
软件组件 (SWC):
- 描述:应用软件组件,封装了特定功能模块
- 功能:提供独立的功能单元,通过端口与其他组件交互
- 来源:基于[RS_SYST_00001]要求,支持软件组件的模块化和可重用性
-
RTE:
- 描述:运行时环境,实现软件组件之间的通信
- 功能:提供标准化的接口,使软件组件独立于底层实现
- 来源:基于[RS_SYST_00007]要求,确保软件组件间通信的一致性
-
基础软件模块:
- 描述:提供标准化服务的底层软件
- 功能:实现通信、诊断、内存管理等基础功能
- 来源:基于系统模板需要配置基础软件资源的要求
2.2.2 物理视图
物理视图描述了系统的硬件结构和网络拓扑。
-
ECU:
- 描述:电子控制单元,系统中的物理计算节点
- 功能:执行软件组件,与其他ECU通信
- 来源:基于[RS_SYST_00012]要求,支持软件组件到ECU的映射
-
通信网络:
- 描述:连接ECU的物理网络
- 功能:提供ECU间的数据交换通道
- 来源:基于[RS_SYST_00023]到[RS_SYST_00030]的各种通信要求
-
物理连接:
- 描述:ECU与网络之间的物理接口
- 功能:定义ECU如何连接到总线系统
- 来源:基于总线带宽和信号映射的要求
2.2.3 映射视图
映射视图定义了软件视图和物理视图之间的关系。
-
SWC到ECU映射:
- 描述:定义软件组件在ECU上的分配
- 功能:支持组件的聚集和分离策略
- 来源:基于[RS_SYST_00012]到[RS_SYST_00015]的映射要求
-
信号到通信映射:
- 描述:定义软件信号如何映射到物理通信框架
- 功能:配置信号如何在ECU之间传输
- 来源:基于[RS_SYST_00016]到[RS_SYST_00022]的要求
-
总线带宽管理:
- 描述:管理通信总线的带宽分配
- 功能:确保总线通信的高效性和可靠性
- 来源:基于[RS_SYST_00016]的总线带宽管理要求
2.2.4 通信配置
通信配置定义了不同总线系统的特定参数。
-
CAN配置:
- 描述:CAN总线的配置参数
- 功能:定义CAN通信的帧格式、ID分配等
- 来源:基于[RS_SYST_00023]的ECU通过CAN通信的要求
-
FlexRay配置:
- 描述:FlexRay总线的配置参数
- 功能:定义FlexRay通信的时间周期、槽位分配等
- 来源:基于[RS_SYST_00026]的FlexRay通信要求
-
LIN配置:
- 描述:LIN总线的配置参数
- 功能:定义LIN通信的调度表、从节点配置等
- 来源:基于[RS_SYST_00024]的LIN通信要求
-
MOST配置:
- 描述:MOST网络的配置参数
- 功能:定义MOST通信的多媒体和数据传输
- 来源:基于[RS_SYST_00025]的MOST通信要求
-
Ethernet配置:
- 描述:以太网通信的配置参数
- 功能:定义以太网帧、IP配置和传输协议
- 来源:基于[RS_SYST_00041]的以太网通信要求
2.2.5 变体管理
变体管理支持系统中不同配置变体的处理。
-
拓扑变体:
- 描述:不同系统拓扑结构的变体
- 功能:支持不同的ECU连接配置
- 来源:基于[RS_SYST_00034]的拓扑变体要求
-
软件映射变体:
- 描述:软件组件到ECU映射的变体
- 功能:支持不同的软件分配方案
- 来源:基于[RS_SYST_00035]的软件映射变体要求
-
时序变体:
- 描述:时序属性的变体
- 功能:支持不同的时序配置
- 来源:基于[RS_SYST_00036]的时序变体要求
-
数据映射变体:
- 描述:数据映射的变体
- 功能:支持不同的信号映射配置
- 来源:基于[RS_SYST_00037]的数据映射变体要求
-
通信变体:
- 描述:通信配置的变体
- 功能:支持不同的通信协议和参数
- 来源:基于[RS_SYST_00038]的通信变体要求
2.2.6 时序属性
时序属性定义了系统通信的时间行为。
-
时序约束:
- 描述:系统通信的时序限制
- 功能:定义端到端延迟、周期性等约束
- 来源:基于[RS_SYST_00042]的时序约束要求
-
端到端保护:
- 描述:端到端通信保护机制
- 功能:保证通信数据的完整性和一致性
- 来源:基于[RS_SYST_00029]和[RS_SYST_00056]的端到端保护要求
示例代码
以下是系统模板架构中SWC到ECU映射的配置示例:
/* 软件组件到ECU映射配置 */
typedef struct {uint16 SwcId; /* 软件组件标识符 */uint16 EcuId; /* ECU标识符 */boolean IsEnabled; /* 映射启用状态 */uint8 ExecutionContext; /* 执行上下文(任务) */uint8 Priority; /* 优先级 */
} SwcToEcuMapping_Type;/* 创建系统中的映射配置 */
SwcToEcuMapping_Type SwcEcuMappingConfig[] = {/* 应用软件组件映射 */{ 0x0001, 0x0100, TRUE, 0x01, 5 }, /* 传感器数据处理组件 -> 传感器ECU */{ 0x0002, 0x0200, TRUE, 0x02, 3 }, /* 控制算法组件 -> 控制器ECU */{ 0x0003, 0x0300, TRUE, 0x01, 4 }, /* 执行器控制组件 -> 执行器ECU *//* 复合软件组件映射示例 */{ 0x0004, 0x0200, TRUE, 0x03, 2 }, /* 诊断组件 -> 控制器ECU */{ 0x0005, 0x0200, TRUE, 0x04, 1 } /* 系统管理组件 -> 控制器ECU */
};/* 初始化系统映射配置 */
Std_ReturnType InitSystemMapping(void) {uint8 i;Std_ReturnType result = E_OK;/* 初始化每个映射配置 */for (i = 0; i < sizeof(SwcEcuMappingConfig)/sizeof(SwcToEcuMapping_Type); i++) {result = System_ConfigureSwcMapping(&SwcEcuMappingConfig[i]);if (result != E_OK) {/* 处理配置错误 */return result;}}return result;
}
3. 系统通信映射
3.1 通信映射类图
3.2 通信元素说明
3.2.1 信号
信号是软件组件之间交换的基本数据单元。
- 信号:
- 描述:软件组件间交换的数据元素
- 属性:
- 信号ID:唯一标识信号的标识符
- 信号名称:描述性名称
- 数据类型:信号的数据类型(如uint8, sint16等)
- 初始值:信号的初始值
- 超时时间:信号接收超时时间
- E2E保护配置:端到端保护配置
- 来源:基于[RS_SYST_00017]到[RS_SYST_00022]的信号映射要求
3.2.2 IPdu
IPdu(交互PDU)是传输信号的容器。
-
IPdu:
- 描述:包含一个或多个信号的数据包
- 属性:
- PDU ID:唯一标识PDU的标识符
- PDU名称:描述性名称
- 大小:PDU的字节大小
- 传输模式:直接或周期性传输
- 触发模式:数据触发或时间触发
- 触发周期:周期性传输的周期
- 动态长度支持:是否支持动态长度
- 端到端保护:PDU级别的保护机制
- 来源:基于[RS_SYST_00029]、[RS_SYST_00031]和[RS_SYST_00032]的要求
-
安全PDU:
- 描述:具有安全保护机制的PDU
- 属性:
- 安全配置ID:安全配置的标识符
- 认证算法:用于认证的算法
- 刷新计数器:防止重放攻击的计数器
- 时间戳:消息发送时间戳
- 来源:基于[RS_SYST_00055]的安全PDU要求
-
容器PDU:
- 描述:包含多个PDU的容器
- 属性:
- 容器ID:容器的标识符
- 容器类型:容器的类型
- 包含的PDU列表:容器包含的PDU列表
- 来源:基于[RS_SYST_00056]的容器PDU要求
3.2.3 物理通道和帧
物理通道和帧定义了实际的数据传输结构。
-
物理通道:
- 描述:数据传输的物理媒介
- 属性:
- 通道ID:唯一标识通道的标识符
- 通道名称:描述性名称
- 通道类型:支持的总线类型(CAN/LIN/FlexRay/MOST/Ethernet)
- 带宽:通道的带宽限制
- 通信控制器:控制通道的硬件控制器
- 来源:基于[RS_SYST_00023]到[RS_SYST_00026]和[RS_SYST_00041]的要求
-
帧:
- 描述:在物理通道上传输的数据帧
- 属性:
- 帧ID:唯一标识帧的标识符
- 帧名称:描述性名称
- 帧类型:帧的类型(如CAN、FlexRay等)
- 帧长度:帧的字节长度
- 周期:帧的传输周期
- 来源:基于通信协议规范的要求
3.2.4 ECU和E2E保护
ECU和E2E保护定义了通信的终端和保护机制。
-
ECU:
- 描述:电子控制单元,通信的物理节点
- 属性:
- ECU ID:唯一标识ECU的标识符
- ECU名称:描述性名称
- 控制器:ECU中的控制器配置
- 网络接口:ECU的网络接口配置
- 来源:基于[RS_SYST_00012]的ECU要求
-
E2E保护配置:
- 描述:端到端保护机制的配置
- 属性:
- 配置ID:保护配置的标识符
- 保护类型:使用的保护配置文件类型
- CRC类型:校验和类型
- 校验计数器:序列计数器配置
- 数据ID:保护的数据标识符
- 来源:基于[RS_SYST_00029]和[RS_SYST_00056]的端到端保护要求
3.2.5 通信变体
通信变体支持不同的通信配置。
- 通信变体:
- 描述:不同通信配置的变体
- 属性:
- 变体ID:变体的标识符
- 变体描述:变体的描述
- 适用条件:变体适用的条件
- 来源:基于[RS_SYST_00038]的通信变体要求
3.3 通信配置示例
以下是系统通信映射的配置示例:
/* 信号配置 */
typedef struct {uint16 SignalId; /* 信号标识符 */char* SignalName; /* 信号名称 */uint8 DataType; /* 数据类型 (0=uint8, 1=uint16, 2=uint32, 3=sint8...) */uint32 InitValue; /* 初始值 */uint16 Timeout; /* 超时时间(毫秒) */boolean E2EProtection; /* 是否启用E2E保护 */uint16 E2EProfileConfigId; /* E2E配置ID(如适用) */
} Signal_ConfigType;/* PDU配置 */
typedef struct {uint16 PduId; /* PDU标识符 */char* PduName; /* PDU名称 */uint16 PduSize; /* PDU大小(字节) */uint8 TransmissionMode; /* 传输模式 (0=直接, 1=周期, 2=混合...) */uint8 TriggerMode; /* 触发模式 (0=数据触发, 1=时间触发...) */uint16 CycleTime; /* 触发周期(毫秒,如果适用) */boolean DynamicLength; /* 是否支持动态长度 */boolean E2EProtection; /* 是否启用E2E保护 */
} IPdu_ConfigType;/* 帧配置 */
typedef struct {uint16 FrameId; /* 帧标识符 */char* FrameName; /* 帧名称 */uint8 FrameType; /* 帧类型 (0=CAN, 1=FlexRay, 2=LIN...) */uint16 FrameLength; /* 帧长度(字节) */uint16 Cycle; /* 周期(毫秒) */
} Frame_ConfigType;/* E2E保护配置 */
typedef struct {uint16 ConfigId; /* 配置标识符 */uint8 ProfileType; /* 保护配置文件类型 (0=Profile 1, 1=Profile 2...) */uint8 CRCType; /* CRC类型 (0=CRC8, 1=CRC16, 2=CRC32...) */uint8 CounterWidth; /* 计数器宽度(位) */uint16 DataId; /* 数据标识符 */
} E2E_ConfigType;/* 信号到PDU映射配置 */
typedef struct {uint16 SignalId; /* 信号标识符 */uint16 PduId; /* PDU标识符 */uint16 BitPosition; /* 信号在PDU中的位位置 */uint16 BitSize; /* 信号的位大小 */boolean IsLittleEndian; /* 是否为小端序 */
} SignalToPdu_MappingType;/* PDU到帧映射配置 */
typedef struct {uint16 PduId; /* PDU标识符 */uint16 FrameId; /* 帧标识符 */uint16 BytePosition; /* PDU在帧中的字节位置 */
} PduToFrame_MappingType;/* 配置初始化函数 */
Std_ReturnType Com_InitCommunicationMapping(void) {/* 实现通信映射的初始化 *//* 1. 初始化信号配置 *//* 2. 初始化PDU配置 *//* 3. 初始化帧配置 *//* 4. 初始化E2E保护 *//* 5. 设置信号到PDU映射 *//* 6. 设置PDU到帧映射 */return E_OK;
}
4. 系统拓扑结构
4.1 拓扑类图
4.2 拓扑元素说明
4.2.1 系统
系统是最顶层的实体,包含所有ECU和通信集群。
- 系统:
- 描述:代表整个AUTOSAR系统
- 属性:
- 系统ID:唯一标识系统的标识符
- 系统名称:描述性名称
- 系统描述:详细描述
- 系统版本:版本信息
- 来源:基于系统模板的总体要求
4.2.2 ECU和ECU实例
ECU和ECU实例定义了系统中的计算节点。
-
ECU:
- 描述:电子控制单元的定义
- 属性:
- ECU ID:唯一标识ECU的标识符
- ECU名称:描述性名称
- ECU类型:ECU的类型分类
- 处理器:处理器类型和配置
- 内存大小:内存容量
- ECU类别:功能类别(如动力总成、车身等)
- 来源:基于[RS_SYST_00012]的ECU要求
-
ECU实例:
- 描述:ECU在特定系统中的实例
- 属性:
- 实例ID:实例的标识符
- 实例名称:实例的描述性名称
- ECU引用:引用的ECU定义
- 连接器:ECU实例的连接器配置
- 来源:基于ECU在系统中具体应用的要求
4.2.3 通信集群和物理通道
通信集群和物理通道定义了系统的通信拓扑。
-
通信集群:
- 描述:特定类型的网络,如CAN总线、FlexRay网络等
- 属性:
- 集群ID:唯一标识集群的标识符
- 集群名称:描述性名称
- 集群类型:支持的总线类型(CAN/LIN/FlexRay/MOST/Ethernet)
- 协议版本:使用的协议版本
- 物理通道:集群包含的物理通道
- 来源:基于[RS_SYST_00023]到[RS_SYST_00026]和[RS_SYST_00041]的要求
-
物理通道:
- 描述:实际的通信线路,如CAN线、FlexRay通道等
- 属性:
- 通道ID:唯一标识通道的标识符
- 通道名称:描述性名称
- 通道类型:通道的类型
- 带宽:通道的带宽
- 通信属性:通道的特定通信属性
- 来源:基于物理通信媒介的要求
4.2.4 连接器和网关
连接器和网关定义了ECU之间的连接和通信路由。
-
连接器:
- 描述:ECU与物理通道之间的连接点
- 属性:
- 连接器ID:唯一标识连接器的标识符
- 连接器名称:描述性名称
- 连接器类型:连接器的类型
- 通道映射:连接器到物理通道的映射
- 来源:基于ECU接口和通信需求
-
网关:
- 描述:连接不同网络的路由设备
- 属性:
- 网关ID:唯一标识网关的标识符
- 网关名称:描述性名称
- 路由规则:定义如何路由消息
- 源集群:源通信集群
- 目标集群:目标通信集群
- 来源:基于跨网络通信的要求
4.2.5 拓扑变体和部分网络配置
拓扑变体和部分网络配置支持系统的灵活配置。
-
拓扑变体:
- 描述:不同系统拓扑结构的变体
- 属性:
- 变体ID:变体的标识符
- 变体描述:变体的描述
- 变体条件:变体适用的条件
- 来源:基于[RS_SYST_00034]的拓扑变体要求
-
部分网络配置:
- 描述:支持部分网络功能的配置
- 属性:
- 配置ID:配置的标识符
- 唤醒源:可唤醒ECU的源
- 唤醒模式:唤醒机制的模式
- 休眠控制:休眠控制策略
- 来源:基于[RS_SYST_00044]到[RS_SYST_00048]的部分网络要求
4.3 拓扑配置示例
以下是系统拓扑结构的配置示例:
/* 系统配置 */
typedef struct {uint16 SystemId; /* 系统标识符 */char* SystemName; /* 系统名称 */char* SystemDesc; /* 系统描述 */uint16 VersionMajor; /* 主版本号 */uint16 VersionMinor; /* 次版本号 */
} System_ConfigType;/* ECU配置 */
typedef struct {uint16 EcuId; /* ECU标识符 */char* EcuName; /* ECU名称 */uint8 EcuType; /* ECU类型 */uint8 ProcessorType; /* 处理器类型 */uint32 MemorySize; /* 内存大小 */uint8 EcuCategory; /* ECU类别 */
} Ecu_ConfigType;/* 通信集群配置 */
typedef struct {uint16 ClusterId; /* 集群标识符 */char* ClusterName; /* 集群名称 */uint8 ClusterType; /* 集群类型 (0=CAN, 1=FlexRay, 2=LIN...) */uint16 ProtocolVersion; /* 协议版本 */
} Cluster_ConfigType;/* 物理通道配置 */
typedef struct {uint16 ChannelId; /* 通道标识符 */char* ChannelName; /* 通道名称 */uint8 ChannelType; /* 通道类型 */uint32 Bandwidth; /* 带宽 (kbps) */
} PhysicalChannel_ConfigType;/* ECU实例配置 */
typedef struct {uint16 InstanceId; /* 实例标识符 */char* InstanceName; /* 实例名称 */uint16 EcuId; /* ECU标识符引用 */
} EcuInstance_ConfigType;/* 连接器配置 */
typedef struct {uint16 ConnectorId; /* 连接器标识符 */char* ConnectorName; /* 连接器名称 */uint8 ConnectorType; /* 连接器类型 */uint16 EcuInstanceId; /* ECU实例标识符 */uint16 ChannelId; /* 通道标识符 */
} Connector_ConfigType;/* 网关配置 */
typedef struct {uint16 GatewayId; /* 网关标识符 */char* GatewayName; /* 网关名称 */uint16 SourceClusterId; /* 源集群标识符 */uint16 TargetClusterId; /* 目标集群标识符 */
} Gateway_ConfigType;/* 部分网络配置 */
typedef struct {uint16 ConfigId; /* 配置标识符 */uint8 WakeupSource; /* 唤醒源 */uint8 WakeupMode; /* 唤醒模式 */uint8 SleepControl; /* 休眠控制 */
} PartialNetworking_ConfigType;/* 系统拓扑初始化函数 */
Std_ReturnType System_InitTopology(void) {/* 实现系统拓扑的初始化 *//* 1. 初始化系统配置 *//* 2. 初始化ECU配置 *//* 3. 初始化通信集群配置 *//* 4. 初始化物理通道配置 *//* 5. 初始化ECU实例配置 *//* 6. 初始化连接器配置 *//* 7. 初始化网关配置 *//* 8. 初始化部分网络配置 */return E_OK;
}
5. 总结
AUTOSAR系统模板为复杂的分布式汽车电子系统提供了标准化的配置和管理方法。它定义了软件组件如何映射到ECU上,以及ECU之间如何通过网络通信。通过系统模板,可以实现以下目标:
-
软硬件解耦:
- 软件组件的开发独立于底层硬件
- 支持软件的可重用性和可移植性
-
灵活的系统配置:
- 支持不同的总线系统(CAN、FlexRay、LIN、MOST、以太网)
- 提供多种变体管理机制
- 支持迭代开发过程
-
通信优化:
- 总线带宽管理
- 信号映射策略
- 数据分段支持
- 端到端保护机制
-
安全与可靠性:
- 支持安全PDU
- 端到端通信保护
- 部分网络配置
系统模板是AUTOSAR架构中的关键组成部分,它将抽象的软件架构与具体的硬件实现连接起来,使分布式系统的配置和管理更加标准化和系统化。它为开发人员提供了一种一致的方法来描述和配置复杂的汽车电子系统。