详解汽车软件集成与分支管理策略(2021年软件定义汽车研究报告:架构趋势和产业全景)

deer332025-02-01技术文章45





一、引言

在汽车整体系统的视角下,汽车软件集成与分支管理显得尤为重要。随着汽车电子化、智能化趋势的加速,软件在汽车中的占比和复杂度持续攀升,使得软件集成与分支管理成为确保软件质量、提升开发效率的关键所在。本文将围绕汽车软件集成的三个层级——软件组件集成、软件向硬件集成、ECU向整车集成,深入探讨软件集成与分支管理的策略与实践。




二、软件集成与分支划分

软件集成,简而言之,就是创建一个边界清晰、质量上乘的完整软件包。这不仅仅是对源代码的简单拼接,更是基于源代码管理工具和分支管理策略,对各个软件单元(如.c或.h文件)进行逐级集成,并同步管理相关的辅助文档、集成测试、配置文件等配置项。

2.1 分支管理的核心概念

鉴于汽车软件的高度平台化需求,我们通常会区分“开发分支”与“交付分支”。开发分支致力于新特性的引入和通用性技术方案的整合,而交付分支则专注于基于特定项目要求(如标定参数、项目配置参数、bug修复等)的软件发布。这种区分使得“开发的技术完善性”与“交付的时间及时性”能够并行不悖,互不干扰。






软件集成的主要任务在于识别并确认不同分支间的公共组件,明确哪些组件应从一条分支迁移至另一条分支,哪些组件的变更需单独发布,以及哪个软件基线最终能用于哪个配置的交付。

2.2 具体的集成策略与实践

集成策略的制定需紧密结合项目或平台发布的实际需求,这些需求源于项目的整体规划,因此集成任务往往由项目经理等角色驱动。


在集成过程中,良好的输入管理至关重要。虽然邮件也可以作为输入手段,但对于复杂的集成任务,使用ALM(应用生命周期管理)工作流类工具来支撑更为高效。无论是bug报告、变更请求还是新特性需求,都可以通过相关工作项来驱动集成,确保输入需求基线、变更范围、版本规则、工件、上一版本软件基线、交付日期等信息的准确性和完整性。







编译、测试与打包是集成过程中的关键环节。集成工程师在任务驱动下,需完成源代码的编译和错误修正,并进行必要的接口测试、资源消耗测试、冒烟测试等静动态集成测试。最后,根据预定规则,将可执行文件、配置信息、测试报告、架构模型、设计文档、遗留问题、释放清单等打包发布。至此,一个常规的集成任务才算圆满完成。




2.3 软件配置管理的深化

无论是集成组件的选择还是文件的打包发布,都属于配置管理的范畴。在软件包内部,配置管理主要涉及软件版本号的管理和细化的分支管理。

软件版本号不仅是软件身份的标识,更是软件交流与管理的基石。一个版本号应唯一对应一版代码,但为了增加软件的辨识度、可见性和交流的便利性,我们通常会为软件版本号添加更多信息,如项目名、车型名、客户名、硬件类别、芯片类别、架构类别、集成序列号、标定版本号、软件阶段等。

在分支管理方面,我们进一步细化了分支的概念。分支是逻辑上的划分,而非物理上的存在。它决定了组件的变更应归属于哪个软件包,而非另一个。此外,我们还详细讨论了开发分支与交付分支的进一步细分,如平台开发分支、特性开发分支、特定项目开发分支,以及项目主干分支和项目释放分支等,旨在实现平台化与定制化的最佳平衡。




三、软件向硬件集成

在软件交付后,下一步便是将软件刷写到ECU硬件中,实现软硬件的集成。这一过程通常通过OBD口、USB、直接连接芯片针脚或远程OTA等方式进行。

软硬件集成是通过接口实现的,这些接口在系统架构阶段就已定义完毕。接口包括物理的芯片引脚和逻辑的传输数据的软件接口。在系统集成中,我们不仅要关注ECU内部的软硬件集成,还要关注ECU与传感器、执行器等外部组件的集成。这些外部组件往往由其他组织提供,因此我们需要通过线束支撑的接口来完成这一级别的集成。内部开发中经常需要这样的环境来验证ECU的功能。





四、ECU向整车集成

整车集成是OEM(原始设备制造商)的核心竞争力所在。这一步的系统是从整车视角来看的,包括驱动系统、刹车系统、转向系统、被动安全系统、照明系统、辅助驾驶系统等。








在某个电子控制器完成所有内部集成和验证后,必不可少的一步是在整车环境中进行布置确认、模态分析、传感信号校验、电子对手件联调、产线确认以及EMC(电磁兼容性)、振动、冲击、水淋、盐雾、高低温等一系列测试。这些测试旨在确保ECU在整车环境中的稳定性和可靠性。






对于软件来说,尤其要关注与对手件的联调。越来越多的电子功能需要多模块协同工作,而诊断、通信等问题往往在这一环节频繁出现。此外,很多在整车层面的属性性能也需要在整车环境下进行软件标定匹配。因此,在汽车行业中做软件,要时刻牢记所有的代码都是为整车中的表现服务的。

然而,我们并不期望在整车集成环节解决软件问题。毕竟,整车试验的成本通常都很高。当软件问题从开发团队一路逃逸到整车集成环节时,往往会带来较大的成本损失。因此,在软件开发的早期阶段就应尽可能多地识别和解决问题,以降低后期修改和测试的成本。

在汽车软件集成与分支管理的实践中,我们还需关注以下几点:

首先,持续集成与持续部署(CI/CD)的引入能够显著提升软件开发的效率和质量。通过自动化构建、测试和部署流程,我们可以及时发现和修复代码中的错误,确保软件版本的稳定性和可靠性。同时,CI/CD还能够促进团队成员之间的协作和沟通,提高整个开发团队的效率。

其次,代码审查与测试驱动开发(TDD)是确保软件质量的重要手段。代码审查能够发现代码中的潜在问题,提高代码的可读性和可维护性。而TDD则能够确保每个功能点都有相应的测试用例进行验证,从而降低软件发布后的故障率。


此外,在软件集成过程中,我们还需要关注版本控制工具的选择和使用。Git等版本控制工具能够帮助我们更好地管理代码的版本和分支,实现代码的合并、回滚和冲突解决等操作。同时,版本控制工具还能够提供代码的历史记录和变更追踪功能,便于我们进行后续的维护和调试工作。

在软件向硬件集成的过程中,我们还需要关注硬件的兼容性和稳定性。不同型号的ECU硬件可能具有不同的接口和性能特点,因此我们需要根据具体的硬件平台进行适配和优化。同时,我们还需要对硬件进行充分的测试,以确保其在各种环境下的稳定性和可靠性。

在ECU向整车集成的过程中,我们还需要关注整车系统的复杂性和多样性。不同车型和配置可能具有不同的电子控制系统和传感器配置,因此我们需要根据具体的车型和配置进行定制化的开发和测试工作。同时,我们还需要与整车制造商和其他供应商进行紧密的协作和沟通,以确保ECU能够与其他系统进行良好的集成和协同工作。




最后,我们还需要关注软件的安全性和合规性问题。随着汽车电子化和智能化趋势的加速发展,软件的安全性和合规性已经成为越来越重要的问题。我们需要确保软件符合相关的标准和法规要求,并采取相应的安全措施来保护车辆和乘客的安全。




综上所述,汽车软件集成与分支管理是一个复杂而重要的过程。我们需要根据具体的项目需求和目标来选择合适的策略和工具,并不断优化和改进我们的开发流程和实践方法。通过持续的努力和改进,我们可以为汽车行业提供更加优质、可靠和安全的软件解决方案。




来源:网络

|人工智能|视觉算法|大数据|充电桩|储能系统集成|智慧充电运营平台|

|新能源电动汽车||新能源||智慧信息化系统|解决方案|运营平台建设|

华远系统是致力于人工智能(AI算法以及流媒体技术),信息软件技术,新能源、物联网等领域的集成商,在智慧社区,智慧园区,智慧停车,充电桩(储能充电站/光储充)及充电桩软件管理平台,储能系统集成,车联网有整套解决方案以及成功的项目案例。

说明:本文章所引用的资料均通过互联网等公开渠道合法获取,仅作为行业交流和学习使用,并无任何商业目的。其版权归原资料作者或出版社所有,小编不对所涉及的版权问题承担任何法律责任。若版权方、出版社认为本文章侵权,请立即联系小编删除。