一 autosar简介
AUTOSAR,汽车开放系统架构(AUTomotive Open System Architecture)是一家致力于制定汽车电子软件标准的联盟。AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立,各成员保持开发合作伙伴关系。
在autosar之前,车企通常使用osek架构,软硬件层次存在严重耦合。
所以各车企联合推出autosar分层架构模式:应用层,RTE,系统服务层,硬件层。开发周期短,可重用,另外有图形配置工具davinci,不需要手写代码即可生成高质量代码。如下图所示。
Application:swc,ports,runnables
swc:automic swc,composition swc,特殊的swc
ports:swc和swc之间使用ports通信
runnable:swc中的函数,在autosar被davinci软件生成的时候,runnable是空函数,需要手动添加代码具体实现。runnable可以被触发。
RTE:对上层和下层隔离,中介角色。
BSW:
二 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版本声明,如下图所示