网站首页 > 车载娱乐> 文章内容

智能汽车的操作系统架构是什么样?

※发布时间:2018/6/23 0:14:16   ※发布作者:habao   ※出自何处: 

  在今天于上海举行的预见未来:人工智能和自动驾驶技术论坛上,黑莓BTS大中华区业务总经理张人杰先生做了关于智能汽车操作系统架构的发言,以下是速记整理内容

  接下来非常荣幸有请到黑莓BTS大中华区业务总经理张人杰先生,给大家介绍“智能汽车的操作系统架构”。

  张人杰:各位来宾大家好,很高兴今天能够参加工程师的论坛,我本身也是工程师出身,所以非常高兴能跟大家做一个关于操作系统方面的技术交流。

  大家都知道黑莓原来一直是以手机著称,现在我们的重点放在软件服务这一块。我是BTS大中华区业务部门的总经理,我下面负责的包括像Certicom操作系统,以及整个黑莓4万多项国际专利,这块都是属于黑莓的核心资产。

  我们现在来讨论一下,智能驾驶的概念非常的火。但是我们想想看,与智能驾驶相关的我们谈了很多的方面,比如深度学习、人工智能,包括传感器方面谈到了像Mobileye比较擅长的单目摄像头,还有刚才其他一些合作伙伴他们谈到的双目摄像头等等这样一些算法相关的东西。但是我们有没有考虑到,其实在一个系统里头,最重要、最基础的部分往往是容易被忽略掉的。

  还跟以前一样吗,还是现在这种分离式的架构吗?大家知道现在来讲做汽车电子,多半都是聚焦在其中的某一个层面,比如有些厂家会聚焦在中控娱乐信息系统部分,还有一些厂商会聚焦在数字化部分,还有一些聚焦在ADAS相关的东西。这些车载电子设备到了智能驾驶阶段它们是不是仍然这样分离存在?其实这个地方就给我们提出了很多的疑问。

  我们看一下传统的分离式的结构其实在未来会有可能被一体化的数字座舱取代。我们为什么要谈“数字座舱”概念,我们大家想想在无人驾驶这种理想状态实现之前,一定有相当长一段时间里头是处在一种,人处于辅助的地位,主要是由机器来判断。正因为人要在这里头起到一定的决策作用,这个座舱就必不可少。对于这样一个座舱来讲,它的硬件架构其实跟现在是完全不一样的,用一个业界比较流行的词我们称之为叫“”。

  这个词来讲,其实很适合对于硬件架构的变化。大家知道以前在车里头有很多个分离的电子板卡,到了智能驾驶阶段有可能我们就会把它变成一块单独的板卡。我不知道大家对通信领域有没有理解,因为我本身也是做通信出身的,通信是我的老本行,我的导师也是工程院的院士。对于通信这块来讲,我们很看中的一点它是一个聚合的过程。最早的时候大家想我们一块板卡可以完成基本的功能,多个板卡需要经过一些走线的方式连接起来,到了后期可能有1—2块的CPU板卡,加上多个的子线卡。在汽车里头其实有这种类似的可能性会发生,有可能会有一块主控板控制汽车的所有的车载电子部分,在主控板上可以插入多个不同的子线卡,这些子线卡就可以完成目前看到的这些分离设备它所完成的这些功能,这个在整个的硬件架构上就发生了变化。

  与之而来的是硬件变了软件一定会变,软件大家知道最核心的部分是什么?就是操作系统。操作系统这个层面跟以前一样吗?肯定不一样,以前的分离式架构,每一个电子器件上会有一个OS,这个OS可以是相同的也可以是不同的。整个系统之间一定要有通信来完成相互的协同工作。对于一体架构来讲,跟以前的软件架构一定会有很大的变化。我们来看一下在这样子的架构底下会有什么样的情况会发生?就是虚拟化技术。虚拟化技术并不是一个很新的词,真正对于嵌入式设备的虚拟化这块应该大约是在十年前左右,十年前虚拟化技术在通信领域里头开始慢慢做推广。汽车电子这块其实它仍然是一个很新的概念,我记得大概在四五年前我跟哈曼的一个总架构师,他是一个人我跟他聊过,他对这个技术非常感兴趣。他当时就指出来,我们一定要改变现在的架构,我觉得他说得非常有道理。也就是说这种虚拟化的技术来讲,可以把一体化的硬件模拟成多个不同的子硬件,这种子硬件是虚拟硬件,每一个虚拟硬件对应着现在大家比较熟悉的各自的一个功能,比如说一个虚拟机可以完成传统的中控娱乐信息系统的功能,另外一个虚拟机可能是数字化仪表,还有可能是ADAS的设备,到了后来这些东西它们之间的界限可能会模糊。像奥迪TT它是没有中控娱乐信息系统的,只有一个集成功能的仪表盘,未来可能会有很多类似这样集成化的设备出现。比如说我们大家都知道,其实大家谈自动驾驶我们经常会有一个视频去捕捉这些运动中的人或者物或者车,这个时候你想想看,如果都是从这个中控娱乐信息系统去看的话你觉得别扭不别扭?其实是完全不适合未来自动驾驶的发展。

  未来的自动驾驶如果真的要做这块的分析,比如车道偏移、行人监测你希望应该怎么做?我个人觉得可能(抬头显)技术是最合适的,跟手机的蓝牙互联这个不是真正意义上的抬头显,真正意义上的抬头显应该是实体与我们计算出来结果的一个有效的融合。我们大家知道我们的车前面有一个挡风玻璃,如果你的数据仅仅是投射在这个挡风玻璃上常不科学的。因为对于我们讲,我们的实景跟挡风玻璃之间的距离很远。我们应该把计算的这些结果投射在挡风玻璃之前的区域,也就是说成像的距离一定不是在挡风玻璃上,而是在挡风玻璃比如说1.8米或者2.5米这样的一个距离。你想想看,如果在这样一个距离,正好和你看到的道上的那些比如说画线,计算出来的结果如果也是投影到类似的区域,这才是真正意义上ADAS的一个辅助驾驶。

  所以随着整个智能驾驶的发展,很多熟悉的这些电子器件有可能会在车载里头消失掉,多个技术有可能会融合在新的硬件里头。举例,我们现在中控娱乐信息系统,你的副驾驶或者后座这些乘客他们看中控娱乐信息系统一点不方便,正常我们实际上应该把这个娱乐的部分、多部分投射到副驾驶的远端,这个时候副驾驶人可以坐在他的副驾驶上可以欣赏一样看整个视频节目或者一些别的东西,这才是真正意义上的在无人驾驶之前有人类参与辅助驾驶阶段所应该给大家带来的一些功能。其实它的目的很单纯,就是把真实的硬件虚拟化成多个硬件实体,在这些实体上可以运行不同的操作系统,完成的功能。从整个硬件成本来讲也下样了,以前想想看,通信领域里头也是百家争鸣,现在为什么只剩下几家公司?很简单,因为小的公司都在一轮一轮浪潮中倒下了。我们再来看一下汽车电子领域不是这样的,百家争鸣,有1000家、1万家甚至几十万家的小公司在着,但是这个趋势仅仅只能保持几年,未来一定是巨颚的时代,巨颚时代就是通吃,那就是说如果这种一体化硬件出现的话,如果你作为一个小的供应商你可能在这个里面一点份额拿不到,因为整个硬件都是大的供应商做的,所有的这些应用全部是一家吃掉了,这就是像现在华为他们做的这些事情,未来有可能在车载电子里头就会出现。对在座各位来讲都会有一个非常大的挑战。

  我们再来观察一下,如果我们做了几个的虚拟器件之后,怎么完成通信?可以用虚拟以太网,因为以太网是最容易理解的技术。就像现在大家都说走线非常麻烦不好用或者怎么样,但是大家可以看到有一个趋势,就是以太网走线越来越多在车载里头占据了主导地位。我们想一下,如果在一体化的硬件里头,其实以太网没有用了。为什么?大家就是一块板,这些虚拟的硬件直接一定要有一个虚拟的以太网,虚拟的以太网就像两个分离的节点,虽然是两个的虚拟硬件,但是它们之间可以利用类似以太网的方式来通信,就会变得比较简单。通过这样子的方式,我们想想看,如果你觉得生态系统很好,完全可以保留在车载电子领域的使用,可以把它在其中一个虚拟硬件上实现。如果你觉得与车身安全相关的部分,你需要有一个实时操作系统控制,来提高它的安全性,这个时候可以把大部分的硬件资源的访问交给实时操作系统来管,各为其政相互之间没有任何的影响,所以我们在这个地方是有一个非常大的灵活性在里面。

  现在做智能驾驶可能比以前普通的全部的人工驾驶来讲,最重要的一点是什么?就是它的安全性。安全性里头有一个非常重要的考量的一点,就是数据性安全。如果一个很容易被黑客黑掉了,大家知道特斯拉,都被国内一家公司360花了不到一个小时就破解了它的系统,为什么?因为你的系统数据性安全这块做得不够。我们就要来考量,如果真的黑客把我们的系统给黑了,让这个系统做一些自动驾驶的操作,比如说在高速上猛的来一个刹车怎么办?那就是车毁人亡。所以在这种情况下一定要对行为做,如果黑客入侵的进程,即使有这个进程存在,没办法访问某些硬件资源或者对权限做很大的控制,这个时候没有关系,让它去黑好了,黑不到黑心,所以安全控制要放在很重要的。

  分布式处理,我们学计算机的时候可能在二十年前就会得到一个概念,就是说分布式处理,我的系统很牛是分布式处理的,什么是分布式处理?就是多个分离的计算节点它们能够协同起来完成一项操作,这就是分布式处理。在我们的汽车里头我们想想看,我们的这些虚拟硬件它们之间其实是有关联的,比如说现在有一个设备它能够探头线去访问底层的传感器传过来的资源,这个时候我们想看,另外一个设备压根访问不了,为什么?我记得刚才有一个朋友提出来,哪些是要通过安全认证而哪些不需要。其实我们有一个非常简单的指标来确定这个系统是不是需要通过安全性认证?就是它和车最关键的部分,最关键的电控部分是否有关联,如果有关联在某种意义上讲就是一个安全键,安全键和非安全键相比它一定要有一些这方面的考虑。对于这种分布式计算来讲,好处就是我们可以让安全键去控制汽车底层的汽车资源,让非安全键通过特定的通信方式来控制这样的资源,所以很多的时候只能做读操作而不能做写操作。分布式操作非常简单的一点就是完成系统之间的协作,并且系统的健壮性。

  为什么我们说在虚拟化之上的系统安全控制部分要用实时操作系统,因为实时操作系统相对于大家熟悉的基于桌面的系统来讲有一定的时间响应的要求。在的时间里头,它对的行为要极快做出反映。对于实时操作系统来讲目前应用场合非常广,包括拉斯维加斯,中国澳门有很多的博彩机,运行的是实时操作系统,比如你现在选择了一组拟定的规则,最后没有任何的响应怎么办?这只是一个比喻,也就是说整个的行为必须是确定的,而且是即时的。

  Mobileye做到现在只敢做识别,不敢做决策,为什么?它把决策留给人去做,这是很聪明的一个做法。因为人在目前来讲可以通过伦理的也好,是是自己视觉的也好,我们跟机器相比都一个绝对的优势。所以Mobileye不敢冒险,把这个决策交给人来做。未来来讲随着这个人的干预越来越少,机器的仲裁变得越发重要,如果机器的仲裁在特定的时间里头没有响应这个系统就非常的,比如高速上看到前面即将追尾,但是半天这个行为应该要做的行为执行不了,对不起还是撞上去了,智能汽车里头我们一定要系统的相应性。

  我们大家都知道怎么考量一个系统是不是真的实时操作系统呢?有一个非常重要的指标,就是它的内核可挑战程度。我们在07年加入了一个布丁,已经变成了一个实时操作系统。我们比较一下实时操作系统和非实时操作系统的两个重要的指标参数,第一个就是中断延迟,当一个中断产生到中断被真正的去执行,这样之间的一个延迟。整个的性能基本上延迟只有Linux的1/4,我们考虑平均情况还要考虑恶劣情况,恶劣情况Linux有的时候会达到1秒钟,即使系统,的虚拟机运行非常顺畅,不排除有可能是底下的内核的一个响应慢导致的,所以在这个地方有很多的指标,其实跟操作系统都是相关的,所以在这个地方有一个重要的参数叫做抖动,所谓抖动就是平均的状态和恶劣状态之间的一个比较。如果两边性能下降非常厉害,我们说这个系统是一个抖动性很大的一个系统。

  系统的可用性,可用性在英语里头比较容易理解,当这个系统在极端的情况底下真的出错了,但是出错了没有关系,但是要系统某些最关键的功能是可用的。我们大家知道现在与我们日常生活最紧密的一个电子设备,大家想想看是什么呢?可能就是我们通常出行有的时候坐的轨道交通,轨道交通里头这个地方于于可用性提到一个非常重要的程度,就是我们现在从龙阳开到浦东国际机场中间有一个磁悬浮,一些外地游客来还是想感受一下这种极速。但是怎么这个东西的可用性?如果去坐的话会发现有一个细节,从龙阳到浦东国际极长的时候会宕机。你想想看,两次故障之间的时间是多少?所以你不断的重启它自然能提高它的安全性和可用性,这就是我们在轨道交通里头经常使用的一个技术。

  对于汽车来讲比较麻烦,尤其是智能汽车,未来大概有些公司不是炒作生态、共享、经济这种吗,未来有可能这个车永远就不会停,你现在在家里头你按一个按纽,瞬间一辆车,这辆车可能已经开了两年了,因为共享经济,来接你如果出现了可用性的问题怎么办,所以可用性在未来智能驾驶里头,比现在重新启动的这种状态要更加的考虑。

  我们来看一下,比如说这个系统真的出现问题的时候我们一定要有一些办法去解决,以前大家在做硬件的时候,觉得我有一个硬件可以是否正常,但是对于软件来讲一定要有类似的技术。它可能是有一组相互协同工作的进程来对其他的进程做这样一个工作,比如说我这个地方如果启动了一个叫高可用性的器,当某个模块出现问题的时候内核会通告这个高可用的器,这个模块出问题了,接下来相关的信息会被收集,这个模块退出,并且把资源返还给这个系统。接下来就是HA Manager重启,整个程序操作常快的,也就是说这样的操作可能在几十个毫秒到100多个毫秒就能恢复。假如在高速公上我们的智能驾驶汽车在那儿跑,突然有一个模块出问题了,没关系在100毫秒里头给它恢复过来了,这个系统仍然是安全的,因为对于人来讲有的时候开着开着突然打个盹有一两秒的时间。一样的道理,如果我们让这个系统有100毫秒的可恢复能力,这个系统仍然是安全的,所以在这个地方一定要有相应的机制。所以整个操作系统来讲对于智能驾驶非常关键。

  接下来说到最重要的一个环节就是功能性的安全,功能性安全这些年来被提到各个行业,受到很高的一个重视。大家知道在工业里头有一个标准叫IC61508,就是对所有的工业生产中要使用到的电子电气或者是具备可编程逻辑的电子设备有一套要求,分为C1到C4四个等级。汽车领域大家知道汽车是工业的一部分,所以我们延伸出来一个标准叫做ISO26262是针对乘用车功能性安全的规范。智能汽车里头安全键一定是大大增加了,像这样一些东西,一定会放在安全键里头。安全键整个的系统,系统本身、硬件、软件、应用所有的层面都要通过ISO26262,就是ASIL A到ASIL D的认证。ADAS相关的控制设备要达到ASIL C的要求,如果你的系东能够达到ASIL D的要求是最好的。对于操作系统层面来讲,要通过ASIL认证常复杂的过程。这个里头不光是认证的难度还有一个就是成本,大家知道这个社会是讲经济的,你得考虑做一个事情可以做,但是要考虑花多少钱。在这个里头来讲,Linux由于内核代码庞大,要通过相应认证几乎不可能。

  整个智能汽车有一个安全设计的流程,可以简单用一句话来说就是叫失败模型的概念,我们做任何事情都有可能会失败,失败的百分比是多少?这个很关键。而一个系统失败百分比其实取决于这个系统里头多个子模块各自的百分比,然后和它们之间耦合的一个悉数,所以系统模块数越多、耦合性越强,系统出现问题的可能性就越大。所以我们一般能性安全规范的时候就是衡量你的系统能不能用一个非常好的失败模型去阐述,设计好你这个系统不难,难的是设计好这个系统之后还要有一种模型能够计算出当前这个系统出现失败的可能性。前些年我们大家在做一些轨道交通的时候,那个时候通过的叫做EO50128和E050129,我们在中国的很多设备,我们坐的高铁大家千万不要以为它非常安全。因为中国很多程序设计是以测试来安全的,大家知道测试本身就是有问题的,测试涉及到有一个测试用力,测试用力里头能不能涵盖所有的边界条件呢?不一定。只要你的测试用力它的涵盖百分比不够,这个测试能力其实就是一个无效的,所以基于测试的所有的这种模型设计都是不科学的,而且它的安全等级都是有限的。所以现在来讲如果做智能汽车它如果整个的设计流程没有按照这样子一套失败模型去设计,这种东西你让它去阐述,它为什么能够开上来,开上来失败的可能性有多少,这些东西没有人计算。因为现在整个行业太浮躁了,就是说我们没有考虑到这个系统安全本身,我们大家都想到两三年就量产了,可能吗?两三年量产的话,那这些人工智能的人已经搞了20年为什么到现在没有搞出来一个真正像样的东西呢?原因很简单,系统如果真的从高安全角度去分析的话其实常复杂的,要把它设计出来。

  接下来就是数据性安全,数据性安全比功能性安全还要复杂,因为在这个里头有很多可能的漏洞。我们以前在去破解一个系统有很多种可能。举例,就像高铁里头或者地铁里头经常有一些电子显示屏,会播放一些东方卫视或者东方明珠卫视之类的新闻,但是突然中断了,这个破解就是属于自己破解。如果你侵入到这个系统把当前运行的主程序给它停下来,通过这个程序你就可以侵入这个系统做其他的操作,这个系统的数据性安全其实已经被你了。所以这就是为什么像iphone这样的设计经常有一个BUG,然后需要做布丁。因为很多东西只要把它放到实际的层面来讲都会变得很简单,因为我们看很多东西很复杂,实际上我们让这个东西回归本质就很简单。

  我们的系统来讲,一定要增强数据安全性,否则的话以后这种智能驾驶一定是不安全的。还有就是它对系统权限这块一定要有精细化的控制,我们现在用像Linux也好,或者其他的系统也好,经常会发现大部分人喜欢用根用户,但是根用户是不安全的,实际上我们如果给用户接口,一定是一个设定的特定访问权限的应用,不像以前做的后装的机器,进去以后随便装盗版就可以了,原因就是把权限给你了,本来不应该把这个权限给你的,但是智能驾驶不能这样,智能驾驶一旦出现以后,一定会有一些的人来做,为了显示自己很牛逼,其实并不牛逼。因为大家知道很简单,最难,但是很多小孩可能就愿意为了秀自己这种事情,这是很的。可能被邻居的小孩把你的车就给黑了。而且现在APP的连接也变得非常普及,所以未来可能破解你的汽车,破解你的手机,手机跟它的连接,手机本身已经连接部分获得了这部分系统的根用户权限,你自然它破解了你的手机就可以通过这个通道来控制你的汽车,非常的。

  还有一个就是系统的重启。我们想一下,一个智能汽车如果出现极端情况下,我们必须得重启的时候,它的时间要求,不能说用一两秒再启动,这个时候在高速上,或者在非常复杂的驾驶的况下会非常。所以这个地方一定要未来的智能驾驶系统它的重新时间一定常小的。

  功能整合这块要实现系统的平台化。所谓的平台化就是,我们这个系统千万不是一个简单功能的叠加。比如这家公司做了一个双目的算法,那家公司做了一个单目的算法,这家公司做了一个激光雷达,我们随意把它放到这个系统里头,这个系统毫无关联,怎么这个系统最终产生一个确定性、一致性的决策呢?我们想我们在未来的系统来讲一定是要有一个平台化的要求。平台化的要求里头,比如说我们要对现有车型的AutoSAR的支持。还有对于未来V2X通信接口的扩展性的一个预流,这块非常重要,像美国的公交通管理局已经确定了,在所有美国的交通设备长一定要安装V2X的模块,就是通过类似WIFI的无线通信的系统信道来相互之间传递这个信息。所以未来来讲,你在这儿开到前方一英里的口就知道那个地方是红灯还是绿灯,因为那边已经传递过来了。所以智能驾驶如果你自己不用踩油门,你想想看它就可以经济性控制整个你的油门的深浅,当然未来是电动的,可以控制电动的电机转速,这样可以整个让社会的能源损耗降到极低。所以这个地方一些接口的东西一定要预留。还有就是现在最流行的大家都知道,其实我们现在的智能驾驶还是停留在图像识别,图象识别最重要的一点就是要有一个很好的摄像头框架,摄像头框架为什么重要?因为摄像头能够提供给我们太多的功能,单目的可以做识别,双目的可以测距,双目的说白了我们是怎么样测距的?三角测距,能够确定它的和确定离我们的距离。还有激光雷达能够测距,等等这样一些技术。在摄像头这种框架里头,我们有视觉的处理和计算的加速,这块可能会用到一些什么东西?用到一些芯片。我们知道现在的ADAS的整个判断、计算来讲一般会用到三种技术,第一种就是视频引导的GPU的技术,因为GPU先天比较适合做适量计算;第二种就是以TR为代表的DSP,就是以数字信号处理的模式。第三种就是FPGI的模式,各有各的优势。对于国内公司来讲其实大部分会去看,基本上我们都得用它们这三种模式里头的一种,很难完全自定义这一块。我们整个的系统一定是一个平台化的,因为未来是一个一体化的状态。

  我们最后来考虑一种场景,这种场景就是大家现在最熟悉的图象处理。很多像这样子的一些很炫的比如捕捉到一个物体、人物、汽车,这些怎么做的?从技术原理上来讲非常简单。其实就需要有一套多摄像头的框架。对于我们摄像头传进的这些视频数据来讲本身就可以在某个显示屏显示出来,是没有经过任何加工的粗糙的一层。接下来我们增加样画一个框框进来,其实这些框归根结底是通过相应的ADAS的算法,通过特定的ADAS的SOC来及出来的,实际上你看到的是多个图层的融合。我们现在以车仪表盘为例,一定要有一个SOC方案,SOC里头一定有一个通道,可以支持两或者四的通道,我们怎么样把这些东西转成到这个通道里面去呢?有几种方式,一个就是一个图层对于一种硬件通道,这种方式很难。我可能支持四个,但是有N个图层没有办法做。终端看到的就是一个融合过的结果,所以未来你再看到很多公司给你演示一个一个展示或者怎么抓住的,千万不要惊讶,其实技术本身就是一个原始视频加上后期处理的算法合成的图层之间的一个融合,这就是真实的一个结果。

  总结一下,未来整个智能汽车的硬件架构的改变会带来车载操作系统乃至底层虚拟化技术完全的改变。对于未来来讲,完全无人驾驶的里状态来讲,相应的这些通信接口也会被集成到车载电子的中央控制板里面去。而这些模块它们都会带虚拟化之上的一个或多个操作系统去互相地协同工作。整个系统来讲它的安全、协作、可用性将会成为最重要的一个指标。

  本文由325棋牌 (www.325games.com)整理发布

相关阅读
  • 没有资料