既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
[11] dSPACE Inc. The future of agile software development and validation for autonomous vehicles. [R]. 2021
[12] Oded Mann.Amit Shah. Future E/E vehicle architectures and the shifting goal post for mainstream OTA adoption. [R]. 2021-10
[13] W3C.GENIVI. Service Oriented Architecture is coming to your vehicle program. [R].2021-04
[14] Anders Kallerdahl. How can we design and configure systems where Adaptive and Classic AUTOSAR co-exist? [R]. 2020-11
[15] Christian Götz. How to Build a Reliable Connected Car Platform with MQTT. [R]. 2020-02
[16] Robert Bosch. INTRODUCTION TO ECLIPSE ICEORYX [R]. 2020-02
[17] Vikrant Bhangay.Shehan P R.Renjith G. Modern day eCockpit Architecture-Approaches & Challenges. [R]. 2020-04
[18] 中国汽车工业协会. 软件定义汽车服务API.
[19] Omkar Panse. Service oriented architecture for software driven vehicles.
[20] ARM. Scalable Open Architecture For the Embedded Edge. [R]. 2021
[21] David Rush.Erich Meier. The Future of Work Digital Transformation in Engineering. [R].2021
[22] Rensas.Opensynergy. Implement virtual I/O device(virtio) standard. [R]. 2021
[23] 龚小平. 基于模型设计开发面向服务的应用. [R]. 2021-05
[24] (法)尼古拉斯·纳威特,(法)弗朗西斯·西蒙-莱昂. 汽车嵌入式系统手册. [M]. 机械工业出版社. 2016-01
[25] 汪珺. 汽车行业的IT数字化转型——DevOps. [R]. 2022-01
[26] 杨国梁. 通过Shift Left 提高汽车软件竞争力. [R]. 2021-04
[27] 云原生产业联盟. 云原生发展白皮书. [Z]. 2020-07
[28] 中国汽车工业协会. 中国汽车基础软件发展白皮书 2.0. [Z]. 2021-09
[29] 杨世春. 自动驾驶汽车平台技术基础. [M]. 清华大学出版社. 2020-06
[30] 肖猛. 自动驾驶软件架构之中间件与SOA. [R]. 2021-10
END已剪辑自: https://mp.weixin.qq.com/s/uUeBWkQoGumsLiyIPo6obw
云原生是一种基于云端的开发与部署框架。基于云原生框架和开发理念的应用被称为云原生应用。云原生(Cloud Native)是由"Cloud"和"Native"组合而成的词汇。"Cloud"表示应用程序部署在云环境中,而"Native"表示应用程序在设计之初就考虑到云环境,以最佳方式在云平台上运行,并充分利用和发挥云平台的弹性和分布式优势。
随着对汽车软件价值的深入挖掘,行业内外对于"软件定义"的认知和研发也越来越深入。在汽车行业的云原生之路上,不同用户存在差异,一些传统车企刚刚起步,而一些则成为了引领者,已经在采用新技术方面取得了重要进展。在软件定义汽车的大背景下,可以观察到一些显著的趋势:
- 以软件为核心,将人的需求置于首位,注重提供优质的服务体验。汽车不再只是冷冰冰的机械产品,而是变得更加温暖人心。
- 汽车成为一个智能空间,集办公、娱乐、支付、社交等功能于一体,并且需要满足个性化需求。
- 新型车企通过微服务的应用解耦,通过建立服务平台和利用车联网技术,实现多种服务的快速集成和输出。
- 软件的发展趋势是向微服务化和容器化方向发展。
在满足不同地区法规的强制功能要求的同时,一款全新的车型还需要提供数百个功能选项,而这些选项的可能组合数量会以几何倍数增加。为了应对这些功能配置的要求,需要采用一套可进行大规模开发、测试和提供各项功能的方法,以最大程度地降低干扰和相互依赖性。此外,软件的顺利运行也离不开硬件的支持。
汽车软件功能变得越来越多样和复杂,也对硬件平台提出了更高的要求。与消费电子产品两三年更替的周期不同,汽车的平均使用年限往往更长。这给我们带来了一个相当具有挑战性的问题:什么样的硬件平台可以提供足够的灵活性、计算能力和数据处理能力,以满足尚未发生的复杂场景所需的要求?
答案是软件定义。软件定义不仅指由软件启动和控制特定功能,还包括对底层硬件的抽象化,以实现相同的软件在不同的硬件上流畅运行。此外,软件定义还必须具备不断升级和更新的能力,并以云端技术为基础进行开发和构建。这种软件定义的方法能够提供灵活性和适应性,使得车辆能够适应未来的技术进展和功能需求的变化。通过采用软件定义的方法,汽车制造商可以更好地应对不断变化的市场需求,同时提供更多功能选项给消费者。这种方法还可以降低开发和维护的成本,提高软件的质量和可靠性,为车辆的整体性能和用户体验提供更好的保障。
软件定义汽车必须满足以下四个需求:**
1、可移植性
软件必须能够在不同的硬件平台上运行,实现同一软件的跨平台兼容性。这样,无论是在不同车型、不同制造商还是不同硬件配置下,软件都能顺利运行,确保功能的一致性和可靠性。
2、云端开发和升级
软件必须基于云端技术进行开发、构建和升级,以实现开发和维护成本的最小化。通过云端开发和升级,制造商可以迅速推出新功能和修复软件缺陷,无需对每辆车辆进行物理更新,提高了开发效率和用户体验。
3、实时性、功能安全和保密性
考虑到汽车行业的特殊性,软件必须满足实时性要求,确保及时响应车辆的各项指令和反馈。同时,软件必须具备功能安全性,能够识别和处理潜在的故障和风险,确保车辆和乘客的安全。另外,保护软件的保密性也至关重要,以防止未经授权的访问和潜在的恶意攻击。
4、开放式架构
软件架构必须是开放的,以创造更大的生态系统,使所有人都能参与其中。这样,不仅汽车制造商和供应商可以共同开发和集成软件,还能够吸引第三方开发者和合作伙伴加入,共同创造更多创新和丰富的功能。开放式架构还能够促进软件的互操作性,提高整体系统的灵活性和可扩展性。
随着汽车功能的复杂化和多样化,汽车软件代码的规模也日益庞大。在这种背景下,云原生开发方式成为推动云基础设施产业降低成本、缩短开发时间的有效途径。当前,云计算已经进入成熟阶段,而云原生作为支持数字化转型的重要技术,在人工智能、大数据、边缘计算、5G等新兴领域展现出巨大的潜力。未来,越来越多的应用将基于云平台进行本地应用开发,而云计算为云原生应用提供了资源隔离、分布式和高可用性等诸多优势,最大程度地发挥了云计算的优势。
云原生应用在车企中有一些典型的应用场景:
1、主流的DevOps实践通常采用微服务化和容器化的方式。
对于汽车行业的内容提供商和出行服务商来说,无论是语音识别还是天气、股票等内容的提供,都可以基于云原生的技术和理念进行产品的持续迭代和更新。
2、车联网等数据分析和人工智能领域天然适合采用容器化技术。
通过将训练和推理过程容器化,无状态的算法能够快速得出结论,不仅速度快,还可以节省资源。因此,与人工智能相关的场景非常适合采用容器和云原生技术栈。通过云原生技术,生产制造的上下游链条数据分析可以实现业务全流程的统一化,实现自动化、精细化和智能化的管理。
**3、混合多云的车联网协作。
在混合多云的车联网场景里,允许应用在各种云上自由流动和迁移。无论应用、中间件部署在什么云上,用户可以随意迁移,从一个云厂商迁移到另一个云厂商,且不用修改任何东西。
云原生应用
云原生技术的应用实现了应用的敏捷开发,显著提高了交付速度,降低了业务试错成本,高效地响应用户需求,增强了用户体验,加速了业务创新的进程。当前,汽车行业正处于变革时期,各个汽车软件社区之间存在着竞争和合作的关系。许多汽车软件社区正在推动云原生技术在汽车领域的应用。其中,微软主导的SDV Group、ARM主导的SOAFEE组织等,国内的均胜、东软、中科创达、映驰科技等公司都已经加入了SOAFEE组织,共同致力于推动云原生技术在汽车领域的发展。
二、 SOAFEE 架构介绍
2021年由Arm和其他创始成员共同宣布成立嵌入式边缘的可扩展开放架构SOAFEE(Scalable Open Architecture For Embedded Edge)特别兴趣小组(SIG),联合车厂、半导体公司、软件公司、云技术的领导企业共同定义一个新的开放标准架构来实现软件定义汽车的最低级别技术栈,提供一个参考实现,使云原生技术(如微服务、容器和编排系统)首次与汽车功能安全相结合,从而保持环境对等。SOAFEE 的推出旨在解决三大问题:实现软件在不同芯片解决方案中的复用,轻松实现从云到边缘的软件部署,以及将开发流程往前提,使得开发者能够更早开始软件开发并在汽车上市后部署软件更新。
SOAFEE
在传统的数据中心或服务器端的云端技术无法直接应用于汽车产业的情况下,汽车对于功能安全和实时性的特殊要求成为了最关键的问题。SOAFEE架构通过扩展现有的云端技术,满足了汽车产业对于实时性和功能安全的需求。SOAFEE基于Arm Project Cassini中的System Ready开放标准,实现了底层硬件的抽象化。
云原生在汽车领域的架构由以下两个部分组成:底层是硬件计算平台,上面是固件(firmware),作为系统软件与硬件之间的接口。在系统软件之上,有各种应用和服务,它们在各自独立的环境中运行,这些环境被称为容器(container)。在基于云原生的系统中,这些容器在云端环境中进行开发、测试和验证,然后通过编排器(Orchestrator)的软件模块,为每个容器中的应用和服务配置适当的软硬件资源,使它们能够在汽车中执行任务。同时,在云端,还有一个持续集成/持续交付(CI/CD)模块负责管理应用和服务的更新。
通过引入云原生的概念和SOAFEE架构,汽车软件开发能够更好地满足汽车行业对功能安全和实时性的要求,提高开发效率并推动业务创新。
SOAFEE云原生架构通过System Ready开放标准实现了硬件、固件和系统软件之间接口的统一,达到了第一层的抽象化。同时,通过管理程序(hypervisor)来解决不同操作系统之间共享资源的问题,并利用容器运行时和硬件抽象层(HAL)作为另一层次的抽象化。下图展示了SOAFEE云原生架构的示意图。
SOAFEE 云原生架构
在云端,SOAFEE不仅构建相同的软件环境,还构建了虚拟的硬件环境(Virtual ECU),以确保云端和终端之间的一致性。SOAFEE的重要贡献是将编排器(orchestrator)改进为能够处理功能安全和实时需求的软件模块。
SOAFEE架构解决方案利用容器的特性,可以针对每个容器配置不同的软件和硬件资源。例如,将自动驾驶功能和服务放在独立的容器中,通过编排器(orchestrator),可以配置满足最高级别功能安全要求的硬件和软件环境来为该容器提供服务。另一方面,例如导航,不需要最高级别的功能安全,因为如果这样功耗会非常大,而且会有应用的冗余设计。针对这样的容器配置,不需要最高级别的功能安全,通常也不需要使用分核锁步(split-lock)等机制来支持该容器。因此,不同容器之间存在不同的功能安全需求,这样就可以构建一个灵活的基础,并让编排器(orchestrator)配置适当的软硬件环境,以满足这些不同容器的要求,从而实现整个系统的功能安全目标。
当功能和服务在车辆中执行时,底层硬件必须提供良好的扩展能力,以应对各种计算处理需求,同时在一定功耗范围内实现最佳的运行性能。此外,它还必须提供处理实时性、功能安全和保密性的技术。ARM提供的技术完全可以满足这些要求,因此ARM可以从终端IP技术出发,完善软件定义汽车的架构,并整合汽车产业链对于软件定义汽车的需求。SOAFEE涵盖了各种不同的硬件和IP架构,只要符合软件之间的标准接口,除ARM以外的硬件架构也可以在SOAFEE上使用。
采用SOAFEE后,车厂和一级供应商的软件开发成本将大幅降低。同时,通过不断推出创新的售后服务,可以为车厂创造新的营收来源。对于IC设计和软件供应商来说,他们可以更好地实现产品的差异化,并吸引更多的云端应用开发者参与汽车创新。最终,消费者将享受到更满意的定制化汽车功能和使用体验。
此外,传统汽车的开发流程需要三到四年的时间,而IC芯片的规格是三、四年前的标准。SOAFEE架构可以在确定IC规格之前通过SOAFEE和硬件开发平台进行左移开发,从而决定应用和服务的计算需求,降低了规格不合的风险,并缩短了整个开发周期。
许多公司已经开始使用云平台来开发汽车软件。自SOAFEE推出以来,其成员数量已经翻了两番,目前已经超过50家。这些成员来自汽车供应链的各个环节,涵盖了芯片供应商、软件提供商、系统集成商、云服务提供商、OEM厂商以及一级供应商等各个领域。每周都有新的成员加入,进一步扩大了SOAFEE的影响力和合作网络。如果生态系统按预期发展,很多参与者很可能会逐渐转向SOAFEE。ARM处理器在所有ECU领域都占据主导地位。一旦主要的OEM、Tier1供应商和主要芯片制造商开始采用具备ARM兼容性的系统和软件,SOAFEE将成为事实上的标准。SOAFEE将成为未来汽车生态系统中不可或缺的重要组成部分,为汽车软件开发提供了创新的解决方案。
三、Eclipse Software Defined Vehicle Working Group介绍**
2022年3月,Eclipse基金会在其官网宣布成立软件定义汽车工作组。工作组的核心成员有在全世界开发软件最多的Microsoft、世界上最大开源基金会之一的Eclipse,以及全球汽车零部件Top5中的三家:Bosch、ZF和Conti。
Eclipse SDV 工作组专注于使用开源和开放式规范,加速车规级车载软件栈的创新。该工作组为个人及组织(包括埃森哲、Arm、博世集团、CARIAD、大陆集团、微软、恩智浦半导体、SUSE、丰田汽车和采埃孚公司)提供了一个论坛,以此构建和推广所需的开源软件、规范和开放协作模式,从而创建一个可缩放、模块化、可扩展、业界即用型且采用开放式许可证的汽车软件平台,支持车载与车辆周围应用程序的开发和部署。
SDV相关项目以“代码优先”的方法为重点,致力于构建行业首个开源软件堆栈和相关工具,以支持新型汽车的核心功能。SDV工作组认为,这种方法将更快地对行业产生实质性的影响。由博世、Microsoft、大陆、采埃孚、Cariad、埃森哲和Eteration等领导者领导的这些新项目,已经向任何希望利用它们进行自己车辆开发的组织提供他们的软件。
为了支持软件定义汽车的转型,来自技术行业和汽车行业的主要参与者正积极开发开源车载应用程序运行时堆栈、基于云的车辆操作系统以及高度集成的开发工具链。开源软件定义汽车计划旨在为不同车型、产品线、品牌、组织和时间段的车载软件提供可用的开源代码。这将极大地加速创新速度、生产速度以及以软件为核心的车辆规模化生产能力,显著降低新车设计的复杂性,同时提高效率。行业参与者能够专注于创新,同时在实时操作系统、中间件层的特定部分或通信协议等非差异化元素上节省时间和成本,从中获益。
Eclipse SDV目前已经进行了32个项目,下面简要介绍下Eclipse SDV的Velocitas和Kuksa项目。Eclipse Velocitas 是提供端到端、可扩展、模块化和开源的开发工具链,用于创建容器化和非容器化车载应用程序。
Eclipse Velocitas
Eclipse Velocitas的特点:
**
- 通过命令行界面更新车载应用程序存储库的项目生命周期管理。
- 车辆抽象支持通过在代码级别使用生成的车辆模型,提供类型安全和自动完成的方式,以便专注于业务逻辑。车辆模型是从标准化的API生成的,它隐藏了车辆特定信号和电气/电子架构的细节,使得车载应用程序可以在不同的电子和软件架构之间进行移植。
- Microsoft Visual Studio Code与DevContainer的集成帮助快速安装启动本地开发所需的一切,而任务和启动配置则有助于启动运行时服务、其他应用程序和测试。
- 车载应用程序的骨架和示例有助于理解如何使用KUKSA.VAL运行时服务编写车载应用程序。
Eclipse Kuksa开源项目主要功能之一是将车辆数据和接口抽象为基于车辆信号规范等的通用格式。VAL是Kuksa项目的核心组件,它主要负责将车内各种非标准格式的数据映射并转换为统一的VSS标准数据格式,同时提供各种标准接口与外部进行交互。
Kuksa.VAL的系统架构
- 即用型的CI/CD工作流程可以构建(针对多种架构)、测试、文档化和部署容器化的车载应用程序,而且无需依赖于电气/电子架构,从而节省了设置时间。
在汽车供应链的各个环节中,包括芯片供应商、软件提供商、系统集成商、云服务提供商、OEM厂商和一级供应商的共同推动下,云原生技术在汽车领域的应用将迎来加速发展。通过改进软件的开发、构建、管理和更新方法,大幅提高整个汽车软件系统开发的效率,同时降低了开发和维护成本,进一步加速了软件定义汽车时代的到来。
参考文献:
[1] 宋珂. AUTOSAR规范与车用控制器软件开发. [M]. 化学工业出版社. 2019-01
[2] 中国汽车基础软件生态委员会. 车载SOA软件架构技术规范1.1. [R]. 2021-09
[3] Dr. Joachim Schlosser. Why Scrum for embedded software. [R]. 2020-07
[4] Stefan Wagener.Jochen Möller.Christof Menzenbach. How high-performance computers shape the user experience in the cockpit of the future. [R].
[5] JASPAR Next Generation High-Speed Network WG. What is the conqueror in the SOA platform for the future in-vehicle networks? [R]. 2021-06
[6] ARM. How the SOAFEE Architecture Brings A Cloud-Native Approach To Mixed Critical Automotive Systems. [R]. 2021-09
[7] Jochen Steuerwald. A tool and workflow approach for automotive ECUs using AUTOSAR Classic. [R].2020-06
[8] Steffen Kuhn. Combined application of agile practices and functional safety in automotive software development. [R]. 2020-10
[9] STEVE HOWARD.JILL BRITTON. Claiming Compliance for Coding Standards. [R].
[10] Trista Lin.David Fernandez Blanco.Juleixis Guariguata. Communication Management in Automotive Service Oriented Architectures. [R]. 2021-11
[11] dSPACE Inc. The future of agile software development and validation for autonomous vehicles. [R]. 2021
[12] Oded Mann.Amit Shah. Future E/E vehicle architectures and the shifting goal post for mainstream OTA adoption. [R]. 2021-10
[13] W3C.GENIVI. Service Oriented Architecture is coming to your vehicle program. [R].2021-04
[14] Anders Kallerdahl. How can we design and configure systems where Adaptive and Classic AUTOSAR co-exist? [R]. 2020-11
[15] Christian Götz. How to Build a Reliable Connected Car Platform with MQTT. [R]. 2020-02
[16] Robert Bosch. INTRODUCTION TO ECLIPSE ICEORYX [R]. 2020-02
[17] Vikrant Bhangay.Shehan P R.Renjith G. Modern day eCockpit Architecture-Approaches & Challenges. [R]. 2020-04
[18] 中国汽车工业协会. 软件定义汽车服务API.
[19] Omkar Panse. Service oriented architecture for software driven vehicles.
[20] ARM. Scalable Open Architecture For the Embedded Edge. [R]. 2021
[21] David Rush.Erich Meier. The Future of Work Digital Transformation in Engineering. [R].2021
[22] Rensas.Opensynergy. Implement virtual I/O device(virtio) standard. [R]. 2021
[23] 龚小平. 基于模型设计开发面向服务的应用. [R]. 2021-05
[24] (法)尼古拉斯·纳威特,(法)弗朗西斯·西蒙-莱昂. 汽车嵌入式系统手册. [M]. 机械工业出版社. 2016-01
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
(img-zeBHPVZc-1715710919643)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新