汽车控制器软件开发的常用工具

来源 | 汽车电子与软件

图片

本文介绍下了解到的汽车控制器开发的工具链,本文侧重于系统和应用软件开发两个方面的工具。

1 需求管理

需求工具接触到的有DOORS, Polarion, and PTC Integrity,都是面向大型工程项目的需求管理工具,虽然它们都有类似的功能,但是它们也有一些显著的差异。

1、DOORS:DOORS是IBM开发的需求管理工具,特别强调需求的一致性和完整性。它支持多维数据结构,可以方便地组织和管理大量需求信息。

2、Polarion:Polarion是一款由Siemens开发的需求管理工具,特别强调需求的可视化和可操作性。它提供了一系列图形和表格,方便用户理解和访问需求信息。

3、PTC Integrity:PTC Integrity是PTC公司开发的需求管理工具,特别强调需求的协作性。它支持多用户协作,团队成员可以共享信息,协作完成需求管理任务。

总的来说,选择哪款需求管理工具取决于您的需求和项目的需求。目前个人偏向于用Polarion。Polarion的特点包括:

(1)协同合同的重点能力在于上下游的过程域串联,通过不同过程域的无缝集成和权限划分,保证了不同用户角色的交互协同,通过评注、审批和电子签名等方式无缝衔接业务流程,保证软件研发的效率和完整。

(2)可追溯性的重点能力在于系统层面的数据整合,软件研发的流程推进核心在于需求管理,通过建立并拆解分析完整的系统需求、软件需求形成详细的工作项作为驱动,推动流程并关联下游的代码、测试用例、产品发布包,形成完整的数据链条,保证信息从头到尾完整的追溯链条,具体到谁(用户名称)在什么时候(时间节点)做了什么事(操作内容属性)和操作原因(分析)。

(3)重用的重点能力在于形成全面的知识库,可以快速便捷地为并行项目提供文档层面、工作流层面和项目模板层面的重用、分支和数据合并,最大化提升软件开发效率。

 

2 架构设计

系统架构和软件架构设计工具包括:

1、Enterprise Architect(EA):这是一个高级系统和软件架构工具,可以帮助构建系统和软件的架构模型,以及记录和管理需求和元数据。

2、Microsoft Visio:这是一种图形化工具,可以帮助构建系统架构图和软件架构图。

以上工具都可以帮助设计人员在需求和限制的情况下,设计出可扩展、可维护的系统架构和软件架构,两者相较而言,EA更专业更强大,首选EA。

图片

source: Moving Visio Diagrams into Enterprise Architect

3 详细设计

3.1 代码编辑器

ECU(汽车电子控制单元)软件开发中常用的代码编辑工具包括:

1、Source Insight: 一款功能强大的代码阅读和编辑工具,主要用于源代码的浏览、分析和编辑。

2、Text editors:如 Sublime Text、Notepad++等,这些工具是通用的文本编辑器,可以用于编写和编辑代码。

3、Eclipse:这是一个通用的IDE,支持多种编程语言,可以用于开发嵌入式系统。

4、Visual Studio:这是一个微软公司提供的IDE,支持多种编程语言,并且有丰富的插件库。

这些工具都可以帮助开发人员编写高质量的代码,并在编码过程中提供自动完成、语法检查等功能。在选择代码编辑工具时,需要考虑项目需求和团队偏好,以选择最合适的工具。

个人习惯用Source Insight,Source Insight主要用于源代码的浏览、分析和编辑。它可以帮助开发人员更好地理解代码,支持代码标记、代码注释、代码折叠等功能,方便开发人员阅读代码。Source Insight还支持语法高亮、代码提示、代码完成等功能,可以大大提高编码效率。此外,Source Insight还具有调试、搜索和替换等功能,可以帮助开发人员快速找到问题并进行解决。总的来说,Source Insight是一款很好的代码阅读和编辑工具,特别适合用于大型项目的代码开发。

图片

source: https://www.sourceinsight.com/wp-content/uploads/2016/03/mainappwide1130.png

3.2 模型开发

Simulink, TargetLink 和 ASCET 是三种常用的建模工具,它们各具特点,主要区别如下:

1、Simulink:Simulink 是一款基于图形界面的模型开发工具,具有丰富的图形建模和仿真功能,适用于各种系统仿真需求。

2、TargetLink:TargetLink 是一款专门为汽车控制器开发而设计的建模工具,可以帮助用户快速生成高质量的 C 代码,适用于严格的汽车控制器开发流程。

3、ASCET:ASCET 是一款专注于模型驱动开发的建模工具,可以帮助用户进行系统建模和仿真,并生成高效的代码。ASCET 也适用于汽车控制器的开发,但相比 TargetLink 更注重模型的仿真和代码生成。

这三种工具中,ASCET好像主要博世使用,其他家一般都使用Simulink,TargetLink。TargetLink 通过在 Simulink 模型中生成代码来支持高效的开发流程,这两款工具结合使用可以提高开发效率并帮助提高代码质量。

图片

Source: TargetLink

4 测试

4.1 单元测试

单元测试包括静态单元测试和动态单元测试。其中静态单元测试,一般使用Polyspace,Tessy等工具。

Polyspace是一款强大的代码静态分析工具,用于检测软件代码中的潜在错误和安全漏洞。它可以分析代码并确定可能导致错误或漏洞的代码段,并提供详细的说明和建议以便开发人员可以解决问题。Polyspace支持许多编程语言,包括C,C++,Ada和MATLAB。它是一个高效的工具,可以在编写代码的同时对代码进行实时分析,从而减少开发周期并提高代码质量。

图片

source: Polyspace

而动态单元测试则一般基于Simulink,TargetLink来实施。

4.2 集成和确认测试

对于集成和确认测试,这里主要介绍下Vector公司的三件套:CANalyzer、CANape 和 CANoe,均用于汽车通信网络分析和测试的工具。

1、CANalyzer:用于分析和测试控制器区域网络(CAN)通信系统的工具。它提供了数据监测、协议分析、错误注入和总线模拟等功能。

2、CANape:用于提供电子控制单元(ECU)高级测量和标定功能的工具。CANape 提供了一个环境,用于开发和测试控制算法,并实时标定 ECU 参数。

3、CANoe:用于在汽车行业中开发、测试和分析 ECU 和网络的工具。它提供了一个全面的环境,用于测试通信协议,标定ECU参数和模拟复杂的网络交互。

这三种工具可以一起使用,为汽车通信网络和 ECU 的开发和测试提供一个集成的解决方案。

图片

Source: https://en.wikipedia.org/wiki/CANape

5 版本管理

常见的软件项目管理和版本管理工具有:

  • Jira:一种广泛使用的软件开发团队的项目和问题跟踪工具。

  • GitHub:一个基于网页的版本控制和协作平台,被广泛应用于软件开发团队。

  • Bitbucket:一个基于网页的版本控制和协作平台,专门为专业软件开发团队设计。

  • SVN:一个广泛使用的软件开发项目版本控制系统。

  • PTC Integrity:一款综合性的软件项目管理和版本管理工具,

  • Git:一款开源的版本控制系统,主要用于软件项目的版本管理。

此处,以PTC Integrity进行说明,PTC Integrity可支持大型软件项目的开发、测试和交付。它提供了一系列的项目管理功能,如需求管理、项目计划、缺陷跟踪等。PTC Integrity 同时也提供了强大的版本管理功能,可以管理代码和文档的变更,以及控制软件的发布。PTC Integrity 可以让团队中的多个开发人员在同一个项目上并行工作,通过版本管理功能确保代码的完整性和一致性。也具有强大的分支管理功能,可以让开发人员在不同的分支上开发,并方便地合并到主分支。

图片

当然具体选择哪个工具取决于软件开发项目和团队的具体需求和要求,如团队规模、开发流程和项目复杂度等。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
汽车电子电机控制软件开发是一个复杂的过程,涉及到多个方面的知识和技术。首先,对于电机控制软件开发,一种常用的方法是使用AUTOSAR(Automotive Open System Architecture)规范。AUTOSAR提供了一个标准化的软件架构,用于处理汽车电子系统中的各种功能和模块。基于AUTOSAR规范的开发过程通常包括以下几个步骤: 1. 硬件选择:根据项目需求,选择合适的硬件平台。引用中提到了英飞凌AURIX多核单片机,这是一种常用的硬件平台之一。 2. 软件架构设计:根据电机控制系统的功能需求和硬件平台的特性,设计软件架构。AUTOSAR规范提供了一套标准的软件组件模型,开发人员可以根据需求选择和配置这些组件。 3. 代码开发:根据软件架构设计,编写相应的代码。在编写代码的过程中,需要根据具体的电机控制算法和控制策略进行实现。磁场定向控制(FOC)是电机控制中的一种重要技术,可以实现高效的电机控制。引用指出FOC的操作时间很短,是世界上最快的速率之一。因此,在代码开发过程中,需要考虑优化算法以提高性能和效率。 4. 单元测试和集成测试:在完成代码开发后,进行单元测试来验证每个模块的功能。单元测试通过后,可以将软件编译成ECU可执行的文件,比如Hex格式的文件。然后,进行集成测试(或称HIL测试),在测试过程中,可以使用硬件负载箱来模拟传感器信号输入,或模拟执行器的故障条件。如果涉及到应用层软件,可能还需要使用物理模型来支持测试过程。例如,对于电机控制,可能需要使用电机的物理模型来验证控制算法的性能。 5. 软件发布和维护:在经过测试并达到要求后,将软件部署到车辆的电控单元上,并进行实际的道路测试。同时,还需要进行软件的维护和更新,以满足不断变化的需求和技术发展。 总结起来,汽车电子电机控制软件开发涉及到硬件选择、软件架构设计、代码开发、测试和维护等多个步骤。通过遵循AUTOSAR规范和使用合适的工具和方法,开发人员可以开发出高效、可靠的电机控制软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maeve D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值