汽车控制器V型软件开发流程

目前新能源汽车上的控制器越来越重要,实现的功能日趋复杂,实现这些功能需要软件作为载体。从以前的整车有数十个ECU到目前域控制器,从机械定义汽车到目前软件定义汽车,汽车控制器中的软件需要发挥越来越重要的作用。

目前新能源汽车上的控制器越来越重要,实现的功能日趋复杂,实现这些功能需要软件作为载体。从以前的整车有数十个ECU到目前域控制器,从机械定义汽车到目前软件定义汽车,汽车控制器中的软件需要发挥越来越重要的作用。

如何开发汽车控制器的软件呢?

汽车、电子控制系统、硬件和软件开发间存在着千丝万缕的相互联系,使得我们必须要有一个综合完整的开发过程。这个过程包含开发的各个步骤,从用户需求分析到最终的电子系统的验收测试。控制器开发的核心流程包括一系列不同的开发步骤。

这个步骤我们称之为V字形开发流程。

V模型也叫做Verification和Validation模型。在下面的V模型中左侧部分属于软件开发阶段,称为:Validation;右侧属于软件测试阶段,称为Verification。

汽车控制器V型软件开发流程-第1张图片

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,著作权归作者所有,如有侵权请联系本平台处理。商业转载请联系作者获得授权,非商业转载请注明出处。内容投诉
零帕网 » 汽车控制器V型软件开发流程
您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论