1、AUTOSAR的解决方案
面对日益复杂的汽车E/E架构,在欧洲大地上诞生的AUTOSAR组织,提出了解决方案。
而且做了标准化:
· 软件接口 交换格式 方法 论
首先,其目标要:软件功能模块在不同车型之间被重用
还有,标准化AUTOSAR的代码配置/建模工具
AUTOSAR Interface
“ AUTOSAR Interface”定义了软件组件和/或BSW模块之间交换的信息。该描述独立于特定的编程语言,ECU或网络技术。
Standardized AUTOSAR Interface
“Standardized AUTOSAR Interface”是其语法和语义在AUTOSAR中标准化的“ AUTOSAR Interface”。“Standardized AUTOSAR Interface”通常用于定义AUTOSAR服务,这是AUTOSAR基本软件向应用程序软件组件提供的标准化服务。
Standardized Interface
“Standardized Interface”是一种在AUTOSAR中标准化的API,无需使用“ AUTOSAR Interface”技术。这些“Standardized Interface”通常是为特定的编程语言(如“ C”)定义的。
交换格式标准化(arxml)
arxml到底长什么样?以下截取一段来熟悉下:
<AUTOSAR> <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>DataTypes</SHORT-NAME> <ELEMENTS> <IMPLEMENTATION-DATA-TYPE> <SHORT-NAME>uint8</SHORT-NAME> <CATEGORY>VALUE</CATEGORY> <SW-DATA-DEF-PROPS> <SW-DATA-DEF-PROPS-VARIANTS> <SW-DATA-DEF-PROPS-CONDITIONAL> <BASE-TYPE-REF DEST="SW-BASE-TYPE">/DataTypes/BaseTypes/uint8</BASE-TYPE-REF> <SW-CALIBRATION-ACCESS>NOT-ACCESSIBLE</SW-CALIBRATION-ACCESS> <DATA-CONSTR-REF DEST="DATA-CONSTR">/DataTypes/DataConstrs/uint8_DataConstr</DATA-CONSTR-REF> </SW-DATA-DEF-PROPS-CONDITIONAL> </SW-DATA-DEF-PROPS-VARIANTS> </SW-DATA-DEF-PROPS> <TYPE-EMITTER>Platform_Type</TYPE-EMITTER> </IMPLEMENTATION-DATA-TYPE>
// 部分内容省略
</ELEMENTS> </AR-PACKAGE> </AR-PACKAGES> </AR-PACKAGE> </AR-PACKAGES></AUTOSAR
再来看看其他几个基本概念:SWC
SWC,即Software Component,是封装了部分或者全部汽车电子功能的模块,其包括了其具体的功能实现以及与对应的描述。例如,我们可以把Dimmer、Switch、Door Control设计成SWC
SWC分类:
§ Atomic component (最小的逻辑单元,无法再分)
· Application(普通应用类)
· Sensor/actuator(给Application提供I/O控制等)
§ Composition(可以包含数个SWC的逻辑集 合)
Port
Port是SWC之间通信用,算是SWC的组成部分。
Port分两大类:S/R(Sender/Receiver)和C/S(Client/Server)
Runnables
Runnables,即Runnable entities,也是SWC的组成部分,但它是运行在RTE里面,由RTE周期事件触发或者其他事件触发时调用。Runnable包含着实际运行的函数。
2AUTOSAR的方法 论,可以说是AUTOSAR的灵魂,就像一道菜的配料和方法,如果没有这个方法,那么食材仅仅是食材,而不是一道美味的菜肴。
既然,说方法 论是AUTOSAR的灵魂,那么什么能承载这个灵魂,没有载体的灵魂就是孤魂野鬼啊。ARXML就能担此重任。其实,ARXML本质就是XML格式的文本,只是被AUTOSAR组织将其披上一件美丽的外衣。方法 论具体有哪些要求呢?见下图
方法 论 描述了从系统底层配置到ECU可执行代码产生过程的设计步骤。所以,这个ARXML文件也是挺复杂的。我们先看个图感受下:
这个ARXML关联着整个开发的方方面面
这个开发过程简单抽象起来就像
抽取其中BSW的配置和生成过程来看看