导读:目前新能源汽车上的控制器越来越重要,实现的功能日趋复杂,实现这些功能需要软件作为载体。从以前的整车有数十个ECU到目前域控制器,从机械定义汽车到目前软件定义汽车,汽车控制器中的软件需要发挥越来越重要的作用。如何开发汽车控制器的软件呢?
汽车、电子控制系统、硬件和软件开发间存在着千丝万缕的相互联系,使得我们必须要有一个综合完整的开发过程。这个过程包含开发的各个步骤,从用户需求分析到最终的电子系统的验收测试。控制器开发的核心流程包括一系列不同的开发步骤。这个步骤我们称之为V字形开发流程。V模型也叫做Verification和Validation模型。在下面的V模型中左侧部分属于软件开发阶段,称为:Validation;右侧属于软件测试阶段,称为Verification。
V模型的特点是流程严格有序,一个阶段必须在上一阶段完成后才能进行,并且每个开发阶段都对应一个测试阶段,一环扣一环,这样能有效保证软件质量。
一、V流程需要的工具链
从系统需求到软件需求,再到软件的释放,需要工具对其进行管理,以达到可追溯,可记录的目的,目前市场主流的工具含有 Door,ClearCase,GIT,SDOM 等,同时也有公司自己研发的一些流程工具。这些工具的运作方式都遵循需求,研发,测试的V流程。在架构设计过程中,需要使用EA架构设计工具,isolar等AUTOSAR配置工具。软件实现过程中,需要使用到Matlab等模型开发工具。软件组件集成过程中需要使用到编译工具。软件组件测试过程中需要使用到Tessy等测试工具。
二、系统需求确定
这部分为系统需求。需要系统工程师完成。基于项目的整体需求,以及软硬件整体定义,对系统逻辑架构进行整体定义,这部分工作包括:硬件功能定义,控制器与其他控制器通信定义,软件简要功能定义。这个过程并不会对具体的技术实现做出定义。通常会使用Doors等流程软件定义系统需求。
三、软件需求确定
这部分为软件需求,需要系统工程师完成。系统工程师根据系统相关方需求说明书、软硬件接口文件、变更通知书等输入,梳理定义软件研发需求说明书,包括操作系统需求、电源管理策略、传感器读取,执行器控制、信号特性需求、存储服务、通信服务,网络管理、故障诊断、标定、程序升级等功能需求和非功能需求。根据项目规划,制定软件开发计划。
软件需求分析建立需求追踪矩阵,将软件需求映射到系统需求,确保软件要实现的系统需求全部覆盖,为了完成这个功能,通常我们也是使用Doors等流程软件完成。
四、软件架构确定
这部分为软件架构,需要架构工程师完成。为了建立清晰的、结构化的软件设计,应该统一分配软件需求,然后完成软件架构设计。根据系统相关需求、软硬件接口表、软件需求确定软件架构。将每条软件需求合理分配到软件模块中,定义每个软件模块的输入输出接口、动态行为、资源消耗目标等,评估多种软件架构的优缺点等。架构工程师需要使用EA等架构软件画出整个控制器软件所有模块的输入输出接口、以及内部动态行为。如果项目基于AUTOSAR开发,需要架构工程师配置应用层的所有组件,并输出每个组件的ARXML描述文件。一般来说,还需要架构工程师输出架构文档。
五、软件单元设计
这部分为软件单元设计,需要软件开发工程师完成。在此阶段,需要对每个组件内部的算法逻辑进行详细的内部设计。组件功能的详细设计需要与软件需求建立有效的对应关系。
六、软件实现
这部分为软件实现,需要软件开发工程师完成。此阶段进行模块设计的实际编码。根据系统和架构的要求确定最合适的编程语言。如果是算法逻辑编码,建议使用Matlab进行模型开发,如果是接近底层的复杂驱动,一般是使用手写代码。如果项目使用AUTOSAR架构,使用模型开发时需要导入arxml生成模型框架进行开发,使用手写代码进行开发时需要使用AUTOSAR工具生成的组件代码框架进行开发。需要将代码经过多次代码审查和优化之后,将最终版本上传至代码库,以实现最佳的可靠性和性能。
七、单元测试
这部分为组件单元测试,一般需要软件开发工程师完成,也可以让测试工程师完成。单元测试与软件单元设计对应。单元测试是根据软件单元设计,进行代码级别上进行的测试,尽管通过单元测试不能够发现所有的缺陷,但有助于在早期阶段排除错误单元测试一般可以使用Tessy和Matlab软件进行测试。
八、集成测试
这部分为集成测试,需要测试工程师完成。集成测试与软件需求对应。集成测试将各个组成部分整合入一个软件系统中之后,最后进行软件的集成测试。根据定义的需求,测试相应的功能是否满足软件需求。
九、系统测试
这部分为系统测试,需要测试工程师完成。系统测试与系统需求对应。因为软件给各个ECU提供了相应的功能,因此在集成测试中,需要将软件烧录至硬件中。然后ECU要与其他电子系统组件集成起来,比如传感器和执行器。在接下来的系统综合测试中,对所有系统设备的交互响应进行评估。
十、总结
对于软件工程师来说可能更关注于软件单元设计与软件实现,单元测试,现在基于AUTOSAR开发汽车控制器软件成为主流,BSW可以使用AUTOSAR工具进行开发,AUTOSAR应用层软件可以使用Matlab软件进行开发。
来源:汽车电子嵌入式 作者:Tank