在业界,比较著名的电子电气架构开发工具要属德国Vector公司开发的PREEvision工具了,而MATLAB/Simulink软件是非常高效且实用的基于模型的应用软件开发工具。利用PREEvision与Simulink联合开发AUTOSAR应用软件组件的开发流程有三种,分别是:“自上而下”开发流程(从PREEvision开始),“自下而上”开发流程(从Simulink开始),以及“双向”开发流程。如下图所示,无论哪一种开发流程,PREEvision与Simulink工具都是通过arxml文件进行信息交互的。
① 定义软件组件SWC:软件组件是软件架构中最小的逻辑功能单元,是存储代码的部分。在Classic AUTOSAR架构中,绝大部分情况下使用的都是Application SWC和Sensor Actuator SWC。下图是PREEvision9.0中支持的SWC类型。
② 定义通信端口Port:完成SWC模块定义后,需要为SWC添加相应的通信端口,根据SWC类型、通信类型及传输方向,可将端口分为以下三类:
Sender/Receiver(S/R)接口
Client/Server(C/S)接口
Adaptive Provided/Required(P/R)接口
④ 定义内部行为Internal Behavior:前面完成了软件组件的框架部分,还需要完善软件组件的内部行为。一般有RTE事件(Event),运行实体(Runnable Entity)以及函数间变量(Inter Runnable Variable)组成。运行实体是软件组件内最小的逻辑功能单元,可以被RTE事件触发,比如被定时器触发、被接收数据触发,被操作调用触发等。下图是PREEvision9.0支持的RTE事件。

需提前安装AUTOSAR支持包“AUTOSAR Standard”,并将要导入的SWC描述文件存放到MATLAB当前的工作目录,在MATLAB的命令行窗口通过如下语句即可导入arxml并创建Simulink模块。
导入单个SWC描述文件:
ar = arxml.importer('filename.arxml'),filename是指SWC描述文件的名称。
运行完上述导入单个SWC描述文件命令后在命令行窗口会返回导入结果,如下图所示。其中蓝色框标记的语句将在第二步创建Simulink模块时会用到。
ar.createComponentAsModel('/SoftwareTypes/ComponentTypes/swcName, ModelPeriodicRunnablesAs',' FunctionCallSubsystem')
输入命令后MATLAB会根据arxml自动创建与SWC,Port, Interface以及Runnable相对应的Simulink模块,并自动打开Simulink软件。下图是MATLAB根据arxml自动创建的SWC的内部行为模型。
Simulink对AUTOSAR的支持是通过Simulink模块(如I/O端口,子系统等)与AUTOSAR元素(如Sender/Receiver Port,Client/Server Port,Runnable等)建立映射关系而实现的。下表是一些常见的Simulink模块与AUTOSAR元素的映射关系。在I/O模块作为RTE Event使用时必须勾选“Out Function Call”属性。

当所有的Runnable内部算法模型都搭建完成之后,即可生成C代码及arxml文件了,在生成C代码之前有一些设置项需要注意一下:
配置Configuration Parameters:将求解器设为固定步长。在AUTOSAR Code Generation选项中设置AUTOSAR的版本,根据实际情况勾选“Use AUTOSAR complier abstraction macros”等选项。
配置XML选项:打开AUTOSAR Dictionary,在XML Option选项“Export XML fille packaging”中选择“Single file”,否则一个SWC会生成多个arxml文件。
在配置好上述设置项后,按Ctrl+B即可生成C代码以及arxml文件,在编译完成之后,会有一个报告窗口弹出,根据里面的路径即可找到刚刚生成的C代码以及arxml文件。下图为本示例生成的相关文件。
综上所述,PREEvision与MATLAB联合开发AUTOSAR软件组件的主要流程是通过在PREEvision中定义SWC及其内部行为并导出arxml,然后将arxml文件导入到Simulink并定义运行实体的内部算法模型,最后通过Simulink生成C代码及arxml文件。
总结:OEM软件架构师可以在PREEvision工具中,从整车系统层面定义符合AUTOSAR规范的软件架构,以arxml文件的形式与下游设计软件(MATALAB、DaVinci等)无缝对接,从而保证设计信息的准确传递。为了应对汽车电子功能的快速迭代,OEM可以通过这种设计方式,主导汽车软件开发,提升车型开发效率及质量。
以上就是本周分享,更多精彩请关注怿星科技微信公众号!
相关精彩链接:
网络研讨会 | PREEvision 2018~汽车电子电气系统设计
怿星科技再获第一,八名工程师通过PREEvision 9.0认证
“怿星科技中秋有奖互动”比赛结果新鲜出炉
请排名前三位的小伙伴尽快联系我们领取中秋大礼哦!


