作者 | 不可说
出品 | 汽车电子与软件
#01
复杂性管理:面对汽车中日益增长的ECU(电子控制单元)数量和错综复杂的软件交互,AUTOSAR CP通过清晰的层次结构和标准化的接口定义,有效降低了系统的整体复杂度,提高了开发效率和可维护性。 软件重用与模块化:鼓励并促进软件组件的跨车型、跨品牌重用,加速产品上市时间,同时降低开发成本。AUTOSAR CP的模块化设计使得汽车制造商(OEM)和一级供应商(Tier 1)能够灵活组合和定制功能,快速响应市场变化。 安全性与可靠性:随着自动驾驶等高级功能的引入,汽车软件的安全性变得尤为重要。AUTOSAR CP通过提供安全相关的软件架构、开发流程和验证工具,帮助确保汽车软件的高可靠性和安全性,符合ISO 26262等国际标准。 互联与数据管理:支持车辆与云端、基础设施及其他车辆的互联互通,AUTOSAR CP通过集成通信协议栈和数据管理功能,为车辆提供强大的信息交换能力,促进新服务和新商业模式的创新。
#02
A、自上而下(Top-Down)工作流
应用架构设计:首先,在AUTOSAR编辑工具(如Davinci Developer、AutoSAR Builder、ISOLAR-A等(MATLAB新版工具箱也支持))中设计应用架构。这包括定义软件组件(SWC)、可运行实体(Runnable)、接口(Interface)、端口(Port)等元素。
导出SWC描述文件:设计完成后,将架构SWC信息导出为ARXML文件。ARXML文件是AUTOSAR标准的数据交换格式,包含了类型、接口、端口、可运行实体、事件等详细信息。
建模工具实现算法:使用MBD建模工具(如Simulink)根据ARXML文件中的描述搭建模型,实现算法等应用功能。
生成代码:在建模工具中完成算法实现后,生成符合AUTOSAR标准的代码。
准备基础软件层(BSW):首先,确保基础软件层(如操作系统、服务层、ECU抽象层等)已经根据AUTOSAR标准正确实现并经过验证。这包括检查BSW的版本兼容性、配置正确性以及必要的驱动和中间件的支持。
代码生成与适配:将应用层或中间件层通过模型或手动编码生成的代码,根据BSW的接口规范进行适配。这包括修改数据类型的映射、调整接口函数的调用方式以及配置必要的资源(如内存、中断等)。
集成构建:使用AUTOSAR构建系统(如AR Builder)将应用层代码、中间件代码和基础软件层代码集成在一起,生成完整的软件镜像。此过程涉及链接库的选择、依赖关系的解析以及优化选项的配置。
运行时环境(RTE)生成:在集成构建过程中,RTE生成器会根据软件组件之间的交互关系自动生成运行时环境代码。RTE负责处理组件之间的通信、数据同步以及资源调度等任务,确保软件能够按照设计预期运行。
静态分析:在代码集成后,首先进行静态代码分析,以检查潜在的编程错误、逻辑错误以及安全漏洞。静态分析工具可以帮助开发人员快速定位问题,提高代码质量。
单元测试:对软件中的每个模块或组件进行单元测试,验证其功能是否符合设计要求。单元测试可以独立运行,无需依赖其他模块,有助于快速发现和修复问题。
集成测试:在完成单元测试后,进行集成测试以验证各个模块之间的交互是否正确。集成测试关注于软件的整体功能,确保各模块在集成后能够协同工作。
系统测试:将集成后的软件部署到目标ECU上,进行实际环境下的系统测试。系统测试涵盖功能测试、性能测试、可靠性测试等多个方面,以验证软件在实际应用中的表现。
调试与优化:在测试过程中发现的问题需要进行详细的调试。开发人员使用调试工具(如MATLAB的Simulink Debugger、GDB等)来跟踪程序执行流程、查看变量值以及设置断点等。根据调试结果对代码进行优化,以提高软件的性能和稳定性。
文档记录:在整个集成与调试过程中,详细记录测试步骤、测试结果以及问题解决方案。这些文档对于后续的维护工作具有重要意义,也有助于团队成员之间的知识共享和协作。
下载代码:将调试完成的代码下载到目标ECU中。
测试:在目标ECU上进行全面的测试,包括功能测试、性能测试、可靠性测试等。
B、自下而上(Bottom-Up)工作流
建模工具实现算法:首先,在建模工具(如Simulink)中搭建模型,实现算法等应用功能,或者直接应用其他已经有的、可以在该项目上复用的模型。
导出ARXML文件:将模型中的元素(如类型、接口、端口等)导出为ARXML文件,这一过程也是将SIMULINK元素转换为AUTOSAR元素。
根据ARXML文件设计应用架构:在AUTOSAR编辑工具中,根据ARXML文件中的描述设计应用架构。这包括创建软件组件、定义可运行实体、接口和端口等元素。
与BSW层集成:将生成的代码与基础软件层(BSW)集成,生成运行时环境(RTE)。
调试:对集成后的代码进行调试。
下载与测试:将调试完成的代码下载到目标ECU中,并进行全面的测试。
C、混合工作流(Round-trip)
使用AUTOSAR编辑工具进行系统的顶层架构设计,包括定义软件组件、通信接口、资源分配等。
确立系统的主要功能需求、性能指标及非功能需求(如安全性、可靠性、实时性等),为后续开发提供明确指导。
在系统架构规划的同时,利用建模工具(如Simulink、Stateflow)进行算法和应用功能的详细设计与实现。这些工具支持快速原型设计和仿真验证,加速开发进程。
开发人员根据系统架构的划分,并行开发各个模块或子系统,提高开发效率。
ARXML文件交换与迭代。
架构设计和各个模块开发之间通过ARXML(AUTOSAR XML)文件进行信息的导出和导入。ARXML文件作为中间媒介,确保了不同开发工具之间的数据一致性和互操作性。
通过不断的导出/导入和修改,形成一个闭环的迭代过程,使系统架构和具体实现之间能够相互完善、相互验证。
BSW集成,生成RTE。
将建模工具中验证通过的算法代码转换为C/C++代码,并集成到应用层中。
将集成并调试完成的软件镜像下载到目标ECU中,进行实车或模拟环境下的测试。
根据测试结果进行必要的调整和优化,直至软件满足所有设计要求和性能指标。
#03