一 autosar简介
AUTOSAR,汽车开放系统架构(AUTomotive Open System Architecture)是一家致力于制定汽车电子软件标准的联盟。AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。
在autosar之前,车企通常使用osek架构,软硬件层次存在严重耦合。
所以各车企联合推出autosar分层架构模式:应用层,RTE,系统服务层,硬件层。开发周期短,可重用,另外有图形配置工具vector公司的davinci,不需要手写代码即可生成高质量代码。
1 cp
runnable:swc中的函数,在autosar被davinci软件生成的时候,runnable是空函数,需要手动添加代码具体实现。runnable可以被触发。
RTE:对上层和下层隔离,中介角色。
BSW:基础软件
2 ap
AP主要提供高性能的计算和通信机制,并提供灵活的软件配置,例如ota在线升级。
基本概念
- Software Component (SW-C):软件组件
- Virtual Functional Bus (VFB):虚拟功能总线
- Runtime Environment (RTE):运行环境(实时环境)
- Basic Software(BSW):基础软件
- Methodology principle:方法论原理
- Mode Management:模式管理
- Memory Abstraction:存储抽象
- Runnables:可运行实体
文档命名规则
- EXP: 即Explaination"解释",详细介绍论题
- MMOD: 即Meta Model"元模型",介绍 AUTOSAR元模型
- MOD: 即Model"建模",介绍建模的原理
- RS: 即Requirement Specification"需求规范", 详细介绍需求
- SRS: 即Softeware Requirement Specification"软件需求规范", 描述所有软件模块的规范
- SWS: 即Softeware Specification"软件规范", 介绍软件模块设计和实现的规范
- TPS: 即Template Specification"模板规范", 详细介绍元模型
- TR: 即Technical Specification"技术规范",详细介绍技术规范
Application:swc,ports,runnables
swc:automic swc,composition swc,特殊的swc
ports:swc和swc之间使用ports通信
二 ARXML
ARXML代表AUTOSAR xml,是用xml语言(Extensible Markup Language)描述AUTOSAR模型的一种人机可读的文本格式。该标准介绍了如何将AUTOSAR模型序列化为AUTOSAR XML描述的规则,为AUTOSAR工具之间的互操作性提供支持; 更规范的格式表达,还可以减少工具实现的工作量。样例如下:
1)ARPackage(AR-PACKAGE)
AUTOSAR包(ARPackage)是某种“包”,用于对软件组件、数据类型和AUTOSAR的其他元素进行分组。它为这个包创建了一个对应的“名称空间”。ARPackage没有分类,但是它的sub-package有分类。
ARPackage |
Category |
PhysicalDimensions |
STANDARD |
Units |
STANDARD |
LifeCycleInfoSets |
STANDARD |
DataConstrs_Blueprint |
BLUEPRINT |
ApplicationDataTypes_Blueprint |
BLUEPRINT |
CompuMethods_Blueprint |
BLUEPRINT |
PortInterfaces_Blueprint |
BLUEPRINT |
PortPrototypeBlueprints_Blueprint |
BLUEPRINT |
KeywordSets_Blueprint |
BLUEPRINT |
Collections_Blueprint |
BLUEPRINT |
ApplicationDataTypes_Example |
EXAMPLE |
BlueprintMappingSets_Example |
EXAMPLE |
CompuMethods_Example |
EXAMPLE |
PortInterfaces_Example |
EXAMPLE |
SwComponentTypes_Example |
EXAMPLE |
DataConstrs_Example |
EXAMPLE |
Systems |
EXAMPLE |
STANDARD:由相关顶级软件包的提交者标准化的元素,可以按原样用于处理(例如ECU参数定义)。
BLUEPRINT:此类包中的元素就像工具箱一样,是一种“方案”,可以从中将定义复制到实际项目中。
EXAMPLE:示例如何在STANDARD或BLUEPRINT包中应用元素。
2) Interface
SenderReceiverInterface(SENDER-RECEIVER-INTERFACE)
SenderReceiverInterface定义了PPort可以提供的和RPort要求的数据元素,用于软件组件(SWcomponent)之间的数据交换。这个接口是由变量数据原型和指定传输的数据组成。
ClientServerInterface(CLIENT-SERVER-INTERFACE)
ClientServerInterface定义了PPort可以提供的和RPort可以使用的操作,并允许客户端(Client)调用服务器(Server)上的操作,从而将结果提供给客户端(Client)。接口操作的参数数据原型可以是服务器的客户端输入(IN)或服务器结果(OUT)或两者(INOUT)。
Basic Software内的interface类型
AUTOSAR Interface
AUTOSAR Interface定义了在软件组件之间,BSW模块之间,软件组件 和BSW模块之间交换的信息。
Standardized AUTOSAR Interface
Standardized AUTOSAR Interface是已经标准化的AUTOSAR Interface,用于定义AUTOSAR Service。AUTOSAR Service是AUTOSAR Basic Software向应用程序(ApplicationSoftware Component)提供的标准化服务。
Standardized Interface
Standardized Interface是在BSW模块之间交互的,不需要使用AUTOSAR接口技术,是标准化的API。通常是由特定语言(如C语言)定义的。当软件模块通过Standardized Interface通信时,将无法通过网路路由软件模块之间的通信。
RTE与Interface接口,如下图所示:
3) VariableDataPrototype(VARIABLE-DATA-PROTOTYPE)
VariableDataPrototype是用于包含ECU应用程序中的值的元素。可作为:
1) SenderReceiverInterface中的数据元素;
2) 软件组件内部行为中的runnable的变量;
3) 软件组件内部行为中的每个实体内存;
4) 软件组件内部行为中的静态内存。
4) ApplicationDataType
ApplicationPrimitiveDataType(APPLICATION-PRIMITIVE-DATA-TYPE)
包括:Primitive(简单类型的),STRING,BOOLEAN,ARRAY,CURVE,MAP,RES_AXIS,COM_AXIS,STRUCTURE等。
ApplicationRecordDataType(APPLICATION-RECORD-DATA-TYPE)
是ApplicationRecordElements的汇编,类别必须为STRUCTURE。
ApplicationArrayDataType(APPLICATION-ARRAY-DATA-TYPE)
是由一个或多个ApplicationArrayElements组成
5) ARXML序列化规则
一个AUTOSAR模型可以从多个XML描述文件中提取;比如一些文件中包含数据类型而另一些文件包含接口等;
文件后缀为".arxml";
文件名最大长度为255个字节;
ARXML符合标准的XML文件格式;
ARXML编码格式要求,使用UTF-8字符编码、不能以BOM开头、
ARXML头部要做XML编码格式声明
BOM是一个Unicode字符,可以在字节流中使用;UTF-8不支持不同的结尾;
ARXML基于XML V1.0标准实现;
ARXML头部要做XML版本声明,如下图所示
三 vector davinci工具链
推荐一款学习Autosar ecu配置的好工具_autosar工具_SilenceMCU的博客-CSDN博客
https://blog.csdn.net/weixin_60362661/category_11989790.html
vector davinci configuration classic 下载 配置、验证、生成BSW和RTE的核心工具
网盘提取码 3g62
1)基于需求进行软件架构设计,形成软件架构文档;
2)根据软件架构,通过DavinciDeveloper进行ARXML开发;
3)在Davinci Configurator建立配置Project,定义Project的属性,包括代码生成的路径,引用的配置SIP等等,这部分内容会在购买配置包的时候供应商会提供相应技术手册或配置说明;
4)根据软件架构和软件需求,配置底层OS,COM,DEM,DCM等代码,购买配置包的供应商提供相应的技术手册和技术支持,按照需求配置即可得到相应功能代码;
5)ARXML导入Davinci Configurator,按照软件架构书配置RTE代码,在RTE中将SWC的Runnable Mapping到具体的Task中;
6)根据软件架构和软件需求,将ARXML导入MATLAB/Simulink开发应用层模型/代码;
7)底层、RTE、应用层,MCAL代码进行集成编译调试、编译、调试。