TOPS
更多原创文章,请收看公众号!
思维导图
内容目录
一、 AUTOSAR 方法论
二、 AUTOSAR 系统开发工具分类与介绍
三、 基于 AUTOSAR 的系统解决方案
四、 基于Matlab/Simulink的软件组件例子
一、 AUTOSAR 方法论
AUTOSAR方法论(AUTOSAR Methodology)的开发涉及系统级、ECU级和软件组件级。系统级主要考虑系统功能需求、硬件资源、系统约束,然后建立系统架构;ECU级根据抽象后的信息对ECU进行配置;系统级和ECU级设计的同时,伴随着软件组件级的开发。上述每个环节都有良好的通信接口,并使用统一的arxml(AUTOSAR Extensible Markup Language)描述文件,以此构建了AUTOSAR方法论。其中各主要步骤如图所示。
系统级设计可进行整车级别的软件架构设计,其基础是软件组件,即功能模块的定义; ECU 级则着重对单片机底层软件进行开发; 而软件组件级是对各软件组件的控制算法进行具体实施。各阶段开发过程之间以规范化的 arxml 描述性文件进行配置信息交互, 从而便于 OEM 与各零部件供应商间的沟通与合作。
在开发之前,需要先编写系统配置输入描述文件,其包含以下三部分内容。
①软件组件描述(SW-Component Description):包含系统中所涉及的软件组件的接口信息,例如数据类型、端口接口、端口等。
②ECU资源描述(ECU Resource Description-HW only):包含系统中每个ECU所需要的处理器及其外设、传感器、执行器等信息。
③系统约束描述(System Constraint Description):包含总线信号、软件组件间的拓扑结构和一些映射关系等信息。
基于上述系统配置输入描述文件,系统配置根据ECU资源和时序要求,将软件组件映射到对应的ECU上,生成系统配置描述文件(System Configuration Description)。系统配置描述文件中包含了设计过程中非常重要的一个描述——系统通信矩阵,其描述了网络中所有运行的数据帧及其对应的时序和内容。从系统级到ECU级的过渡操作是指ECU信息抽取(ECUExtract)。在系统配置阶段已经将每个ECU所包含的所有软件组件、网络通信等信息封装好,ECU信息抽取阶段只需将待配置ECU信息抽取出来即可,服务于之后的ECU配置。ECU配置过程主要是对RTE和BSW的配置。在RTE配置阶段,需要将软件组件的运行实体映射到相应的操作系统任务;在BSW配置阶段,需要详细配置BSW层中所需要用到的模块,一般有操作系统、通信服务、ECU抽象层和微控制器抽象层等。依据ECU配置信息生成BSW和RTE代码,再结合软件组件级实现的应用代码,最终进行代码集成,编译链接,生成单片机可执行文件。
二、 AUTOSAR 系统开发工具分类与介绍
在不使用相关配置工具的情况下完成符合AUTOSAR 分层架构的汽车嵌入式系统软件开发是非常困难的,并且后期需要进行一系列底层代码的测试与验证。经过多年的发展, 国内外工具供应商已针对 AUTOSAR 方法论中的各阶段开发了相关工具, 总体上按功能大致可以分为以下三类:
( 1) 系统级设计工具 主要完成软件组件框架( 包括端口、端口接口、数据类型、运行实体、触发事件等) 的设计定义及其框架代码生成; 软件组件间通信端口的连接; 硬件拓扑及网络拓扑设计; 导入 DBC、LDF 和 FIBEX 等传统网络描述性文件进行软件组件向 ECU 的映射以及数据至系统信号的映射; 实现待配置 ECU 信息抽取( ECUExtract) 等工作。
( 2) 软件组件级设计工具 主要完成软件组件内部行为( internal behaviour, IB) , 即控制算法逻辑的设计建模, 以及符合 AUTOSAR 规范的代码与软件组件 arxml 描述性文件的生成工作。
( 3) ECU 级配置工具 主要完成 ECU 配置( 包括 BSW 各需求模块、RTE) 及其代码生成。
此外,还有编译器、单片机调试工具等。
表 1 主要 AUTOSAR 系统开发工具分类
三、 基于 AUTOSAR 的系统解决方案
首先,使用Matlab/Simulink来实现部分软件组件级的开发,并自动生成应用层软件组件代码及arxml描述文件,其中软件组件arxml描述文件作为AUTOSAR系统级开发的输入文件之一。
其次,使用ETAS ISOLAR-A工具来进行AUTOSAR系统的设计与配置,过程中会利用
ISOLAR-A工具设计一些附加的SWC,以及I/O硬件抽象层SWC。系统级开发最后会抽取出待配置ECU的信息,进而可以进入ECU级开发阶段。在ECU级开发阶段,基于ETAS RTA系列工具(RTA-RTE、RTA-BSW、RTA-OS)来实现ECU级的开发,即RTE及除MCAL以外的BSW模块配置和代码生成;使用NXP MCAL配置工具来实现MCAL模块的配置及代码生成。
最后,进行代码集成,使用Wind River编译器进行代码编译链接,生成单片机可执行的文
件,并通过Lauterbach调试器将单片机可执行的文件烧写到MPC5744P开发板进行代码调试。
四、 基于Matlab/Simulink的软件组件例子
新版的MATLAB(2014b版本以上需要安装插件,2019版本已经已经集成了) 中,已经有基于 AUTOSAR 的<span style="font-size:1.3em;font-weight: bold;">软件组件</span>的例子:
微信公众号:depthkernel
关注可了解更多 AUTOSAR 内容。问题或建议,请公众号留言;
如果你觉得对你有帮助,欢迎关注公众号