AUTOSAR入门-汽车电子构架演进(三)通向未来

原创 thatway 那路谈OS与SoC嵌入式软件 2022-04-01 18:04

AUTOSAR入门-汽车电子构架演进(三)通向未来

汽车电子的发展在电子领域属于**比较靠后**  

的,最先进的电子技术不是先用在这个上面的。什么芯片
最牛逼?当然是手机
里面已经做到5纳米的芯片,3纳米马上也要出来,性能相当的强悍。什么系统软件
最多样化?答案还是手机
,人手一部,app满天飞,跟人交互的声音、屏幕、摄像、红外各种传感器也不少,提供的系统服务非常多。

然后来看汽车上的电子现在是个什么情况。除了上网看电影那个屏幕是安卓,其他比如汽车控制系统还都是**单片机****水平**  

,特别是各种功能部件都有自己的电路板,汽车上使用的芯片数量非常惊人
,成本非常的高,但是都是一些低端单片机芯片
,程序也是一个大循环
比较简陋。那么有手机这么好的技术,一个cpu的能力顶成百上千
个单片机,一个安卓的代码量比单片机程序要多多少万倍
,并且手机量产的软硬件非常便宜
,为啥不用在汽车上?
为啥不一个cpu
一套系统
就搞定所有的汽车电子系统?

首先从**技术评估**  

上来说完全可以实现的
,如上图中,实现集中式
软件框架,万法归一
一个板子搞定所有
。但是汽车对安全
要求比较高,不像手机死机
重启下也没事,卡死
等会也能用,汽车的软件出问题是会出人命
的。所以手机上的软件不能直接用,需要从软件入手进行改造
。前途是光明的,我们就处在黎明前的黑暗。

结合前两次文章讲的,归纳起来汽车框架演进路线为:**分布式(ECU)-》集中式(域控制器)-》中央式(硬件虚拟化+SOA)**  

目前在域控制器的集中式,市面上的智能汽车基本都是这个构架,比如特斯拉。万法归一的中央式大家还都在研发探索中。下面对未来的一些趋势进行一些分析。

1. 智能化对CPU算力提高的要求

比如自动驾驶,需要很强的计算能力
,来做出判断。整体来说,目前CPU的发展趋势:一方面CPU增加核心数量
(一个不行,拔毛来凑),来提高算力。另一方面一个CPU不够可以多个CPU
并行进行计算。

有时候需要CPU+GPU一块来解决,首先可以借鉴手机ARM的芯片解决,算力强,工艺先进,成本低,另外需要AI计算的时候可以把**AI芯片集成**  

到CPU的SOC上。

2. Hypervisor虚拟机技术

基于虚拟机**Hypervisor**  

技术,可以将
不同的OS
跑在一个主控芯片
上。运行不同的OS来满足不同的需求,比如上图中Classic AUTOSAR可以用做汽车控制、Android用于影音娱乐、Linux AP QNX综合性的系统也可以运行在上面。然后硬件资源在各个OS中进行动态分配
,共用就可以节省硬件资源,充分的发挥芯片的性能,降低硬件成本。

OS运行在一个电路板上,也可以减少
OS间交互成本,减少汽车的布线
,降低这方面的成本。目前最新的智能汽车上的布线有3-5
公里,首先成本巨大,其次线束之间或者受外界的电磁干扰
,如果信号出现一个位反转,或者那条线坏了将的致命的,复制的硬件系统同时也是极其脆弱的,已经限制了其发展。

3. 硬件虚拟化

虚拟化技术是一种将计算机**物理资源**  

进行抽象、转换为虚拟的计算机资源提供给程序使用的技术。这里所指的计算机资源,就包括了 CPU 提供的运算控制
资源,硬盘提供的
数据存储
资源,网卡提供的
网络传输
资源等。

对硬件虚拟化技术的需要注意两方面:  

(1)硬件资源的分区与隔离

原本需要多个ECU实现的多个功能都整合到域控制器上后,势必会导致域控制器的软件更为复杂,这势必会导致整个软件系统的出错概率增加、可靠性下降。而且多个应用混合运行在同一个操作系统上,经常会出现故障传播
(Failure Propagation),也就是一个应用出现问题后,会使得整个系统底层软件和硬件都处于紊乱状态,从而导致其它原本正常的应用也会开始出现故障。因此通过硬件虚拟化技术对硬件资源进行分区(Partition),使得各个功能对应的软硬件之间互相隔离
(Isolation),以此保证整个系统的可靠性

(2)支持混合安全等级

另一方面,在汽车电子系统中,通常不同的应用其对实时性要求和功能安全等级要求都不同。例如,根据ISO 26262标准,汽车仪表系统与娱乐信息系统属于不同的安全等级,具有不同的处理优先级。汽车仪表系统与动力系统密切相关,要求具有高实时性、高可靠性和强安全性,要求运行在底层实时操作系统上(比如QNX)。而信息娱乐系统主要为车内人机交互提供控制平台,追求多样化的应用与服务,以Linux和Android为主。为了实现混合安全等级的应用,实现不同的操作系统运行在同一个系统
上,这就需要虚拟化技术的支持。

车载硬件虚拟化技术的核心是Hypervisor,它是一种运行在物理服务器和操作系统之间的中间层软件,可以允许多个不同虚机上的操作系统和应用共享一套基础物理硬件。当系统启动时,首先运行Hypervisor,由它来负责给每一台虚拟机分配适量的**内存、CPU、网络、存储以及其它硬件资源**  

等等(也就是对硬件资源进行分区),最后加载并启动所有虚拟机的客户操作系统。

一句话总结一下基于Hypervisor的优点:  

它提供了在同一硬件平台上承载异构操作系统的灵活性,同时实现了良好的高可靠性和故障控制机制, 以保证关键任务、硬实时应用程序和一般用途、不受信任的应用程序之间的安全隔离,实现了车载计算单元整合与算力共享

承载计算和控制的底层硬件从分散的多个ECU集中到多核、异构的高性能域主控处理器后,相应的软件也会**从分散向集中、从简单向复杂、从静态向动态**  

进化。下图显示了以后汽车域控制器上的典型软件架构:

1)操作系统层:

最底层利用Hypervisor虚拟化技术对硬件资源进行分区(partition),从而可以在每个虚机运行不同的操作系统。比如在上图中,虚机VM1中运行兼容POSIX实时操作系统标准(比如PSE 52)的RTOS,RTOS上通常要承载功能安全相关的应用和服务;虚机VM2中运行Linux这种完全POSIX标准的分时操作系统,上面通常运行管理相关的功能和服务;虚机VM3中运行的可能是原来在ECU上运行的Legacy应用。  

2)中间件层:

操作系统是不做任何与“车”特定相关工作的。为了让域主控处理器在汽车场景下使用,需要有很多软件或者中间件用于让域控制器满足汽车的电源管理标准、网络管理标准以及诊断标准等;车载域控制器需要比一般工业嵌入式系统有更高的可靠性要求,这样就需要在计算机OS基础上再附加对存储和通讯等各方面的安全保护和容错机制;同时,位了让车载域控制器能够在整车EE架构下运行,还需要提供时钟同步、日志跟踪以及服务管理和发现等功能。AdaptiveAutoSAR规范定义了运行在Linux或者完全兼容POSIX1003.1标准RTOS上的这一层与“车”相关的中间件标准;而传统运行在POSIX子集的RTOS或者BareMetal模式的中间件规范则由Classic AutoSAR标准定义。  

3) 应用层:

上层应用基于AutoSAR标准的中间件来进行开发。随着汽车智能化和网联化相关的功能越来多,上层应用软件也越来越复杂。位了降低单个应用的整体复杂性,我们可以借鉴互联网的面向服务架构(SOA)的软件设计思想,将一个复杂应用拆分多个服务。每个服务实现得尽可能小,尽量实现成无状态方式的服务,以利于整个系统的开发、测试和软件重用。服务与服务之间通过事件或者消息总线(发布/订阅工作模式)来进行通信,并降低互相之间的耦合度。通过服务配置来管理服务之间的依赖性、服务的部署和启动,以及服务的健康状态检测等。  

4. 面向服务的软件架构SOA

ECU原先运行的软件大多数是按照Classic AutoSAR规范开发的软件系统,其中的应用软件一般都是静态调度(Static Scheduling)模式的,也即在系统运行时,程序中不同功能的函数按照事先定义好的排序文件依次调用、逐个运行。  

**静态调度**  

的优点是资源分配问题都是事先安排好的,车辆量产后就不会再改变,每个功能对应的函数代码具体运行时间也被提前锁定,是确定性的。因此这种设计对于汽车上很多对功能安全要求苛刻
的场景是非常适合的。比如:决定安全气囊是否打开的功能函数就是固定地每隔几毫秒运行一次,以便紧急情况下可以及时打开。

面向服务产生的背景:

1)汽车以太网
给车载系统通信带来一个革命性的变化,在中央计算式汽车EE架构下,整个车载系统可以被看作是一个分布式网络系统:中央计算平台是一个小型服务器集群,区域计算平台是边缘计算节点。在互联网或者大型分布式系统中,SOA架构设计理念已经被广泛使用了。因此当IP网络技术被广泛应用于汽车后,很多在互联网或者分布式计算中已经很成熟的软件技术,自然会被借鉴到新的汽车软件架构设计中来,比如:RPC技术、事件/消息总线、RESTfulAPI设计等。

2)大型互联网数据中心中的服务器集群动辄几百、上千台服务器,每秒百万、千万级别的并发。车载系统尽管可以被看作是一个分布式网络
系统,但是它却没有互联网大型服务器系统的高并发特征,相反,它更注重通信的实时性和可靠性。

3)车载系统在物理上是向集中式发展的,也就是原来通过多个分散ECU来实现的功能,渐渐集中到几个主要的高性能域控制器上。因此,尽管在软件设计上,我们会尽量按照SOA的思路拆分成一个一个小的服务
,但是这些服务在部署上其实是集中式的。鉴于这种物理部署上的“集中”与运行时的“分布式”并存的特点,因此我们可以通过一系列技术手段来优化服务与服务之间的通信延迟(比如:通过共享内存技术)。这是车载分布式系统与互联网强调高并发特性的分布式系统之间另一个显著的差别。

所以AdaptiveAutosar应运而生,AP是**动态分配资源的,面向服务**  

的,有需要了再分配,这样能节省资源,降低成本,方便使用。SOA软件构架下的底层软件也就是“服务”,具有接口标准化、相互独立、轻耦合三大特点。

标准化
:各个服务间有界定清晰的功能范围,并且有标准化的访问接口,以便上层应用进行功能变动或者升级的时候,底层软件保持不变。

相互独立
:每个服务之间相互独立没有相同部分且唯一。

松耦合
:底层软件跟硬件、车型、应用、OS、编程语言
不耦合,其他部分可以随便换,底层软件不用动。

整体上把SOA软件抽取出来,形成一个中间件
,开发完成就不用变动了。然后开发人员可以集中精力编写上层应用去实现功能创新。

此外,SOA 不需要静态系统配置。通过使用服务发现,服务提供者可以在运行时被发现。这实际上意味着可以将组件“热插拔”到系统中。不再需要关闭整个系统来更新或添加新组件。  

AUTOSAR自适应平台(AP)解决了新一代汽车高性能需求、连接性和持续软件无线(**OTA**  

)更新带来的新市场需求,它作为多个供应商的软件集成平台,解决了AUTOSAR经典架构的局限性,其为灵活性而设计的,以便在运行时支持软件更改。AP构建在POSIX
操作系统之上,由不同的功能模块组成,这些模块被划分在服务模块和基础模块上,它的的通信是面向服务
类型的,会将网络绑定到DDS
或者SOME/IP
使用以太来与其它ECU通信。

5. ISO 26262功能安全

**功能安全**  

是汽车研发流程中非常关键的要素之一。随着系统复杂性的提高,来自系统失效和随机硬件失效的风险日益增加。ISO 26262标准制定的目的就是更好的规范和标准化汽车全生命周期中的功能安全管理和要求,包括:概念阶段、系统研发、硬件研发、软件研发、生产和操作过程、售后
等环节,尤其重点在产品设计阶段如何定义和实现功能安全的目标。

下面从软件角度说几点:

1)对编程语言
的要求也会更加严格,Rust
可以保证不内存泄漏
,在安全性上比c有优势,出于安全和面向对象需求的考虑。ATUOSAR组织已经考虑使用Rust作为开发语言。仔细读一下那500页的 AUTOSAR CPP Guidline ,你会发现其要求的大部分规则都已经被Rust 原生支持好了。Rust 用编译器保证的安全性,在C++中只能靠编码规则去维护,为了弥补这个不足,又有厂商开发代码扫描工具去发现潜在缺陷,明显的缺陷很容易被扫描出来,但是更深层次的缺陷,尤其涉及到多线程的并发场景,这些扫描工具实际也无能为力。

2)对于核心代码需要进行形式化验证
,保证百分之百正确。

程序员写程序能保无bug
么,答案是可以的,不过可能费一点功夫。在计算机学术界老早就出现了形式化验证方法,把需求进行分解,最后都依赖于数学公里来支撑,保证程序的需求绝对正确,当然是在硬件不出毛病的情况下。这种方法就是形式化验证,在最核心能出人命的代码里面可以应用。

有个想法Rust和形式化验证能
结合
应用么?做学术的可以探究下。

6. 汽车操作系统的趋势

2021年以来,**智能汽车**  

出现了爆发式增长,成为继PC
手机
后的第三代智能终端,智能座舱操作系统也成为一种主流的操作系统类型。智能汽车在智能进化过程中,正在经历从分散式到域集中,再到车云一体中央集中
的发展历程,相应地,其操作系统也从车载操作系统到智能座舱操作系统,再到整车智能操作系统演进,目前,已演进到智能座舱操作系统阶段。智能座舱操作系统的主要功能就是把仪表盘和中控屏用多核异构系统实现,业内通用的是QNX+安卓
方案。

2022年全球汽车电子及软件市场规模将达到2700亿美元,2030年将达4690亿美元,中国市场规模1610亿美元,占全球市场的34%。2022年全球汽车软件市场规模405亿美元,2030年有望达到840亿美元。其中,2022年全球汽车操作系统规模将达到50亿美元,2030年将达90亿美元,2022年中国汽车操作系统规模将达到20亿美元,2030年将达50亿美元,中国将成为全球最大智能座舱市场。智能汽车的快速发展使智能座舱操作系统成为主流操作系统类型,而中国智能汽车在全球市场中的占比优势,也为国产智能座舱操作系统的换道超车提供了巨大可能性。  

目前,最有希望脱颖而出的国产智能座舱操作系统有三家,一是**中科创达**  

,二是华为鸿蒙
,三是阿里AliOS
。中科创达是获得黑莓QNX车载操作系统的四家厂商之一,而QNX是我国智能汽车市场领域自动驾驶与液晶仪表等对功能安全要求较高的领域的操作系统的领导者,在国内已经量产的液晶仪表操作系统中QNX的市占率超过90%,其中,绝大多数方案是由中科创达提供的。华为HarmonyOS操作系统和MDC计算平台构成的智能座舱充分发挥华为手机的生态优势,鸿蒙车机OS目前开放了14500多个API,集成了手机和平台的API达到13000多个,2021年已签署包括赛力斯、北汽、广汽AION LX plus、长城机甲龙等在内的6个乘用车合同和11个商用车合同。阿里云的AliOS经过11年发展,已拥有1亿多行代码,已在神龙、福特、上汽荣威、名爵、大通、东风雪铁龙等两百多万辆各种车型搭载。

7. 中间件功能软件

软件从上到下的过程如上图,人机交互把人的命令通过**肢体**  

传递给机器
,机器里面打头战的就是应用
程序,然后就到了给应用程序提高服务
的中间层,最后是管理硬件
资源的系统内核。

整车厂在进行需求开发的时候,要依据底层提供的服务,这些服务有中间件
商家提供,会有共性需求软件化、模块化、辅助复杂需求快速落地

8. 汽车盈利模式的变化

先介绍下传统软件行业盈利模式的几个方面:

1)硬件是挣钱的基础

软件行业,小的软件公司,软件抄袭很难盈利已经成为大家的共识,市场上非常多的公司,如果只做软件会死的很快
,只有第一没有第二的市场里面是非常可怕的。大家不会为软件付费,并且有创新的软件马上就会被山寨
出来。像华为公司就一直是卖硬件相关产品的,利润确实非常的大,别人想进入门槛也比较高。

2)互联网服务收费

近十年左右AI技术
的发展,具备了一些技术门槛
,一般的山寨公司不能提供一些纯软件的服务,比如今日头条的智能推送,百度的各种AI图片识别等服务,一些强大的还联网公司通过卖服务就可以挣钱。然后通过流量是可以变现的。

3)硬件免费服务收费

进军硬件制造的互联网公司,比如,小米、乐视、360。以成本价出售硬件,然后依靠用户规模和互联网流量变现
,走的是互联网公司做产品的思路。乐视公司推出letv,也同样以低价来销售彩电,但是用户必须购买一年的乐视电视卡。

这种模式可行的原因:

1.硬件标准化,供应链打通,市场门槛降低,代工厂
以比较低的价格就可以生产出来,品质还可以的东西,这时候就需要一个品牌。

2.互联网公司有很强的融资能力。

3.互联网会搞营销,去除中间商
,降低产品价格。这种方案是可行的,但是实际效果服务产生的利润并没有那么大,因为硬件也需要更新研发费用比软件大的多,后期投入比互联网软件大的多,大多失败告终,不赚Money赚吆喝

4)吆喝能变现么?

未来经济的底座是共识
,比如马斯克造火箭,能挣钱么,当然不能。火箭投入巨大,能有几个人付费去坐火箭到太空旅游。但是对于地外探索这一块是人类的一个共识,大多数还是觉得人应该去外太空探索下,这种共识就是一种社交货币
。然后马斯克的SpaceX就上市了,然后这种共识推动了股价,换个角度来看只要大家认同并且可以长久
的东西都可以在资本市场上圈钱。

下面我们映射到汽车身上:

传统汽车是靠卖硬件,就是车的本身挣钱,刚开始毛利率很大,但是近几年汽车的供应链日趋成熟,有钱就能造,代理厂很多,硬件成本降低,**毛利率很低**  

,必须找到新的突破口。此时互联网公司就以汽车为入口,进行
硬件为流量入口,软件为收费服务模式

细想竞争如此激烈敢靠服务收费么,服务收费的研发成本有多大。能服务收费得技术领先对手很多,且对手跟上后需要继续研发。就目前看来,国内的互联网公司进军的智能汽车行业,核心技术都是买的国外的,包括软硬件,什么英伟达、NXP、英飞凌、QNX、Vector、BOCH等。**整车上很难挣到多少钱,都被国外核心零部件供应商给收割了**  

,那么答案还是靠互联网公司的看家本领融资
来挣钱的,就是量产汽车,然后看销售量,然后去股市里面捞钱,不断融资捞钱,美股搞完搞港股,直到这个行业被玩坏,即所谓的风口经济
,风口也不是个坏名词,形成风口也是因为其对政府、企业、人民等各方面有利所共同推动的。

后记:

到此,汽车电子构架演进,三篇都写完了,很多都是自己的  

一己之言,不一定正确,看看就行。话题太大,内容太多,写起来也比较累,可能还有很多没涵盖进来,也算尽力了,也欢迎留言告诉你想了解的知识和困惑,大家一块探讨学习。后续文章主要还是回归代码,去脚踏实地的研究代码。

Talk is cheap,show methe code!  

后续会继续更新,纯
干货
分享,无广告,不打赏,欢迎
转载
,欢迎
评论交流

往期见话题标签:
AUTOSAR入门

results matching ""

    No results matching ""