嵌入式系统的软体和硬体通常紧密相连,错综复杂。开发人员面对有限资源和紧迫截止日期等限制,还要确保无缝整合,这需要进行许多回合的器件测试。
然而这种方法对於快速的产品开发生命周期并不适用,也不符合以服务为导向的商业模式要求。汽车制造商正在逐步接受软体定义汽车(SDV)的概念,而不是仅仅依靠维修期间进行的关键或有限的韧体(firmware)更新。SDV的目标是在其整个生命周期内持续发展和增强。
实现SDV必须采取平台的方法。通过将硬体和软体解耦(decoupling),能够让应用程式和架构设计变得更加灵活,并且可以随着时间的推移添加其他功能。解耦还有助於在不同车型中增加软体复用,减少平台之间的适应成本。此外,车主还将享受到更高的安全性和可靠性,同时降低能耗。
这种方法将彻底颠覆汽车软体发展。我们将看到行业「向左移动」,即使在原型硬体未量产的情况下,软体也能在产品开发生命周期的早期完成。同时,该行业还可以「向右延伸」,在车辆售出後继续进行更新。这让汽车制造商能够通过基於云端的服务寻找新的收入源,让不同车型的车主都可以享用他们的服务,并通过空中编程(Over-the-air programming;OTA)更新在汽车的整个生命周期内添加功能。
在持续整合和部署的基础上建构
持续整合和持续部署(或近持续部署)概念在企业领域已经成功应用多年。「向左移动」(Shift Left)和「向右延伸」(Stretch right)是合??逻辑的下一步。如果开发团队选择了正确的软体发展方法,这两者的要求在很大程度上是一致的。
SDV与其他嵌入式系统和支援技术没有本质的区别。例如,虚拟化和软体容器可以隔离软体模组,并将其从底层硬体中抽象出来。这种方法的优势是能更加轻松地与多项增值服务的云流程整合。这类服务通常将核心汽车功能与人工智慧(AI)和基於云端的分析相结合。
嵌入式系统的核心变化在於不再需要在物理硬体上进行大量的原型制作,或者至少尽量减少相关工作,以确保对时序和硬体行为的假设符合实际情况。然而,嵌入式系统确实需要一个额外的元件。
虚拟化和模拟如何助力开发
容器化是在云端环境中采用持续整合和部署方法的重要要素,能够减少应用程式对硬体的依赖性。应用程式可以与测试所用的支援函式库和设备驱动程式一起封包,从而与底层作业系统隔离开。在嵌入式环境中,需要额外的隔离和保护层,由虚拟化技术提供。在虚拟化环境下,管理程式将I/O消息映射到底层硬体。管理程式对虚拟平台的管理还有助於安全隔离在同一处理器复合体上运行的独立任务。
容器化提高了汽车制造商部署更新的灵活性和能力。这对於需要频繁进行OTA更新的系统部分特别有?明,例如车舱内的娱乐中控模组。尽管这些模组将更加独立,但硬体介面及其依赖关系对汽车的即时控制和安全系统仍然非常重要。开发人员需要了解硬体变化如何影响他们的软体,而数位分身(Digital twin)技术能够解决这个问题。
数位分身是一种复制硬体和韧体行为的虚拟模型。在数位分身技术的加持下,开发人员无需访问硬体即可完成大部分测试。数位分身可以在互动式调试的模式或高度自动化的回归测试套件中运行,既可以在桌面工具上,也可以在基於云端的容器中进行。回归测试通过执行多种测试,加速了在进行变更时的品质控制检查。另外,开发设计团队还能利用分析和机器学习技术,更快地发现bug。
可以针对任何代码模组或子系统进行更新测试,查看变更是否会导致意外的交互或问题。数位分身并不能在专案中完全取代硬体。传统的硬体在环(HIL)测试仍然是检查数位分身类比在实际条件下的行为的必要手段,但一旦解决了行为差异,数位分身可以广泛用於支援中期更新。广泛的硬体前测试可以通过云端在多台伺服器上高速运行,使汽车制造商有信心在准备就绪後立即大规模部署基於新功能的OTA更新。
使用精细和详细的模型
模型的准确性非常重要,尽管许多测试并不需要完全精确定时的模型。高度精细和详细的模型通常运行速度较慢,而那些为分析目标处理器的指令输送量和应用逻辑而优化的模型则更快。通过仅运行需要完全详细类比的元件或子系统模型的分区,可以简化测试时间和验证流程。
尽管汽车制造商和子系统供应商可以自行建构数位分身模型,但与合适的半导体供应商建立合作关系具有显着的优势。恩智浦半导体等供应商承诺,在产品交付给汽车制造商组装成原型和最终产品之前,提前一年开发其晶片平台模型。
数位模型还可以?明汽车制造商和子系统供应商了解架构创新能够为目标应用带来哪些优势。磁阻随机存取记忆体(MRAM)就是一个很好的例子,它是快闪记忆体的高性能替代方案,同时克服了易失性DRAM和SRAM在持久资料方面的局限性。基本模型可以将快闪记忆体和MRAM等非易失性记忆体视为等效记忆体,在延迟或频宽方面并没有区别,而更准确的模型则可以反映出它们在读写时间和其他行为方面的差异。
这些差异可以通过更改代码库来加以利用,从而充分发挥现有技术的优势。因此,通过采用以模型为中心的开发方法,软体团队可以?明指定未来的硬体实现方案,以提升多代产品的性能。
持续改进
支援「向右延伸」的方法将不断提高产品品质和服务收入。除了对於汽车本身进行OTA更新外,汽车制造商还可以从运行系统中收集感测器资料,并将其应用於多种机器学习和分析系统,这些资讯可以在筛选後应用於数位分身类比,以评估现实世界中的性能。
如此一来,在新的OTA更新部署之前,就可以在回归环境中测试改进,从而减少开发和部署之间的时间,加快产品改进的周期。这不仅能增强现有硬体,还能为未来的技术变革奠定基础。这也进一步证明,包含持续整合和数位分身的整体开发方法有助於简化产品设计和支援。
(本文作者Andy Birnie为恩智浦半导体汽车系统工程主管)