开发软件定义汽车 (sdv) 时,开发团队必须具备新的能力,例如进行连续的软件发布,减少软件更改的交付周期以及尽可能减少部署失败。同时,平台团队需要为车载计算机和区域控制器创建新软件开发环境,设置持续集成/持续交付 (ci/cd) 系统,并协助系统和软件开发人员之间的协作。matlab、simulink 和 polyspace 让这些团队能够在加速产品交付的同时还可以通过早期验证、软件复用和工具集成满足汽车需求。使用这些产品,开发团队和平台团队可以:
- 设计独立于目标平台的软件功能,并将它们部署到基于信号和面向服务的中间件,如 autosar
- 使用虚拟车辆和虚拟 ecu 仿真执行早期和持续验证
- 实现功能安全 (iso® 26262)、质量(automotive spice® 或 aspice)和网络安全目标
- 使用 ci/cd 和开发运营一体化做法自动化软件集成和测试
- 利用云进行协作、仿真和车队数据处理
technical article
使用 matlab、simulink、system composer 和 polyspace 加速软件定义汽车开发
设计、仿真和部署基于信号和面向服务的应用程序
sdv 可将基于信号的应用程序和面向服务的应用程序都集成到具有车载计算机和区域控制器的电气/电子 (ee) 新架构中。这要求开发人员以新的面向服务的架构 (soa) 和传统的基于信号的架构为目标进行开发。
soa 让开发人员能够灵活地构建能够在运行时动态地发现、发布、订阅和重新配置的模块化服务。这支持在功能级别进行软件更新。soa 已广泛纳入行业标准和私有框架,包括 autosar、dds 和 ros。使用 simulink 和 system composer,您可以:
- 为基于信号和面向服务的架构,包括 autosar classic 和 adaptive,编写软件应用程序
- 将这些软件应用程序与商业或私有中间件进行集成
- 对应用程序软件组件和服务进行建模和仿真
- 为这些软件应用程序自动生成产品级 c/c 代码
使用虚拟车辆仿真将软件集成前置
随着空口 (ota) 软件更新的逐渐频繁,使用原型硬件测试新软件配置已不再可行。而集成测试也需要自动化以缩短软件发布的交付周期。通过与持续集成管道集成的虚拟车辆仿真将软件集成转移到模型在环 (mil) 和软件在环 (sil) 测试环节可帮助解决这两个问题。使用 simulink、虚拟车辆组建工具和 simulink compiler,您可以:
- 自动装配虚拟车辆模型
- 通过在 simulink 中混合使用模型和基于代码的组件构建虚拟电子控制单元 (ecu) 仿真并与第三方工具集成,以实现生产基本软件 (bsw) 和处理器仿真
- 将虚拟车辆和虚拟 ecu 模型部署到持续集成管道中
实现质量、功能安全和网络安全目标
sdv 的软件应用程序必须在满足质量目标的同时确保符合功能安全和网络安全标准。通过在基于模型的设计参考工作流中使用 matlab 和 simulink,开发团队可以实现 aspice 流程标准、iso 26262 功能安全标准和 iso 21434 网络安全标准(包括 un-ece wp.29)规定的目标。用于模型验证的 matlab 产品、embedded coder 和 polyspace 代码验证已由 tüv 南德根据 iso 26262 (asil a-d) 进行了预鉴定。使用这些产品,开发人员可以:
- 从需求追溯到架构、设计、测试和代码
- 证明软件没有关键的运行时错误
- 自动验证模型和代码,以满足质量和安全标准,如 aspice 和 iso 26262
- 检查合规性并测量模型和代码的质量
- 通过检查漏洞和是否遵守 cwe™、cert®-c、misra™、iso 21434 等标准来增强软件安全性
自动化流程以从桌面计算机扩展到云
大规模实现自动化是减少软件开发工作量的关键。ci/cd 等开发技术让开发人员可以实现自动化,同时通过可重复的过程确保可靠性。此外,云技术通过加速软件编译和仿真、处理大型数据集以及促进分布式软件团队的协作来实现扩展。借助 matlab 和 simulink,您能够:
- 与 jenkins®、gitlab® ci/cd, github actions 和 azure® pipelines 等 ci/cd 系统集成
- 在 aws® s3 和 azure blob 等系统中处理基于云的数据,并根据需要进行扩展
- 使用 matlab parallel server 将仿真扩展到集群和云
- 在 gpu 上加速神经网络的训练
- 使用 git 和 svn 源代码管理进行协作开发