聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统

一、车规级芯片

制造手机芯片和汽车芯片,哪个难度更大?知乎上有过类似问题的回答,大概意思概括下:手机芯片,天下武功唯快不破;汽车芯片,稳定压倒一切。

汽车搭载的车规级芯片,与手机电脑搭载的消费级芯片,两者差异不是在简单的制程和核心数量上。

车规级芯片要过三道技术关

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图1

第一道关是环境关。

相比手机,汽车的工作环境要恶劣百倍。行驶时不仅会遭遇更多的振动和冲击,还可能要面对各种液体或粉尘的侵蚀,甚至就连温度条件也颇为极端。

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图2

比如车规级芯片要承受的温度范围一般在-40°C-150°C之间,而消费级芯片只需满足0°C~70°C工作环境即可。

第二道关是寿命关。

手机作为消费品,生命周期一般不会超过5年,而汽车作为大宗商品,使用寿命往往在15年、或者驾驶20万公里左右,这不仅要求车规级芯片要有足够长的寿命,还要求它能在未来15年内都能满足汽车行驶的基本诉求。

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图3

第三道关,也是最重要的一道关,是安全关。

手机玩游戏时死机,顶多是被队友骂两句,但汽车如果开在路上,芯片崩了,那可能就要出人命了。

用更直观的数据来说,手机芯片可接受的不良率是万分之二,汽车芯片的不良率则不能高于百万分之一。

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图4

二、系统区别

为了进一步能够让大家理解汽车上控制单元操作系统和消费电子产品操作系统区别,将一些公开的资料汇总整理如下:

实时操作系统  实时操作系统

  英文称Real Time Operating System,简称RTOS。

  1.实时操作系统定义

  实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。

  实时操作系统是保证在一定时间限制内完成特定功能的操作系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。一些实时操作系统是为特定的应用设计的,另一些是通用的。一些通用目的的操作系统称自己为实时操作系统。但某种程度上,大部分通用目的的操作系统,如微软的Windows NT或IBM的OS/390有实时系统的特征。这就是说,即使一个操作系统不是严格的实时系统,它们也能解决一部分实时应用问题。

  2.实时操作系统的特征

  1)多任务;

  2)有线程优先级

  3)多种中断级别

  小的嵌入式操作系统经常需要实时操作系统,内核要满足实时操作系统的要求。

  3.实时操作系统的相关概念

  (1)基本概念

  代码临界段:指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入;

  资源:任何为任务所占用的实体;

  共享资源:可以被一个以上任务使用的资源;

  任务:也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态;

  任务切换:将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行;

  内核:负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核于可剥夺型内核;

  调度:内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法;

  (2)关于优先级的问题

  任务优先级:分为优先级不可改变的静态优先级和优先级可改变的动态优先级;

  优先级反转:优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。

  (3)互斥

  虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。

  因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。中断响应时间通常被定义为:

  中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间[2]。

  中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间[2]。

分时操作系统  【词语】:分时操作系统

  【注音】:fēn shí cāo zuò xì tǒng

  【英文】:Time-sharing Operating System

  【释义】:使一台计算机同时为几个、几十个甚至几百个用户服务的一种操作系统。把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。分时操作系统的特点是可有效增加资源的使用率。例如UNIX系统就采用剥夺式动态优先的CPU调度,有力地支持分时操作。

  产生分时系统是为了满足用户需求所形成的一种新型 OS 。它与多道批处理系统之间,有着截然不同的性能差别。用户的需求具体表现在以下几个方面: 人—机交互 共享主机 便于用户上机

  分时系统的基本思想

  时间片 :是把计算机的系统资源(尤其是 CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。

  分时技术:把处理机的运行时间分为很短的时间片,按时间片轮流把处理机分给各联机作业使用。

  分时操作系统:是一种联机的多用户交互式的操作系统。一般采用时间片轮转的方式使一台计算机为多个终端服务。对每个用户能保证足够快的响应时间,并提供交互会话能力。

  设计目标:对用户的请求及时响应,并在可能条件下尽量提高系统资源的利用率。

  适合办公自动化、教学及事务处理等要求人机会话的场合。

  工作方式:

  一台主机连接了若干个终端;每个终端有一个用户在使用;交互式地向系统提出命令请求;系统接受每个用户的命令;采用时间片轮转方式处理服务请求;并通过交互方式在终端上向用户显示结果;用户根据上步结果发出下道命令

  分时系统实现中的关键问题:及时接收。及时处理。

  特征:

  交互性:用户与系统进行人机对话。

  多路性:多用户同时在各自终端上使用同一CPU。

  独立性:用户可彼此独立操作,互不干扰,互不混淆。

  及时性:用户在短时间内可得到系统的及时回答。

  影响响应时间的因素:终端数目多少、时间片的大小、信息交换量、信息交换速度。

我们上面说了这么多,简单总结下就是:

支持芯片工作的系统分为两种:分时系统和实时系统,在市面上绝大多数汽车都是采用的实时系统,并且与各类专用芯片配套定制开发优化。

我们用的苹果手机,安卓手机,笔记本,平板电脑,PC电脑,这些统统采用的都是分时系统。

而我们用的这些消费级电子产品,有谁没经历过死机?举手报到一下。

三、汽车采用分时系统的弊病/死穴

套用业内人士的话来说,就是拿消费级电子产品零件开发汽车控制系统,不强调安全稳定,只是一味的追求算力水平。

如果上面说的太绕了,可以再简化一下就是,分时系统把CPU芯片的时间划分成若干个时间片段,我们可以称为“时间片”。操作系统可以以时间片为单位,轮流为每一个进程/指令进行运算处理,一个系统当中,可能会同时存在很多进程,每个进程都会有处理需求,芯片就是在分时系统的控制下,轮流为每一个进程/指令来轮流处理信息,当进程需要的算力多、优先级高的时候,芯片分时系统分给这个进程的运算时间就多一点。这个分配规则就会导致一种情况,我们玩游戏玩着正嗨的时候卡主了,处理大型WORD文件的时候,鼠标转圈圈,不听使唤了,我们叫做死机,这个时候我们只能耐心等待,运气好,电脑过一会会反应过来,运气不好,只能强行关机重启。在出现这种情况的时候,如果是笔记本电脑,我们调用任务处理器查看进程,可能就会发现有的进程达到了100%,而且导致你的电脑风扇狂转散热,因为这个时候你的CPU算力都被这个进程占用了,因此出现这一情况。

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图5

还是用通俗易懂的方式来和大家说下实时系统,实时系统的操作管理控制逻辑和分时系统刚刚是相反的。

上面我们也说了,实时系统首先保证的是响应效率,CPU芯片运算结果的正确性不仅仅是和程序逻辑性相关,还和运算结果产生的时间有关。控制系统能不能及时响应外部时间的请求,在规定时间内完成对特定事件的处理,并且有效控制所有实时任务能够协调一致的有序运行,这就是实时系统需要做的事情,再简化一下就是,必须对进程/指令在一定时间内完成,且保证运算结果的正确及时输出,进而完成外部设备工作控制。高速行驶的汽车,对所有输入/输出反应都有强制的时间需要,满足不了这一个时间规定,你踩刹车了,他系统死机了和分时系统一样卡主了鼠标在转圈这样的情况出现了,等系统反应过来,汽车恐怕已经在几百米开外了。

汽车A类安全系统,在设计之初就有强制要求,必须满足规定的时间相应限制要求,不能满足相应时间,就无法保证安全和可靠。

四、车辆核心系统和分布式系统

传统汽车通常都是多个系统通过总线进行连接通讯,组成的一个分布式系统,例如ABS系统负责刹车和ESP等相关功能;空气悬挂电脑只是负责底盘悬架稳定性主要功能,并通过数据交换和动力总线上的控制单元分享信息,也接收指令,进而实现行车稳定性和舒适性控制;发动机控制单元负责发动机运行;部分数据共享给动力总线其他用户,用于驱动防滑,驱动扭矩控制,变速器匹配等动力控制;变速器负责驱动车辆行驶,通过总线和发动机系统协同工作......

每一个控制单元都有一个自己的系统,他们各司其职,只是通过网关和总线系统相互交换数据,进行协同工作,这种就是分布式系统,分布式系统具有自愈功能,什么意思呢?就是识别到总线系统其他控制单元提供的错误的数据给自己后,自己可以进行判断,不再采纳错误的第三方信息,直接通过信息控制输出报警,然后用自己内部逻辑程序控制系统进入应急工作模式,保证了基本功能的可靠稳定运行。

新能源车出来之后,有了另外的一种玩法,叫核心系统,这个系统管理车辆的所有控制系统,也就是说,车上系统有一个大脑,是领导核心,其他系统都要听他分配,这种设计是希望通过一台拥有强大算力的核心运算操作系统来支持整车所有系统工作,提升整车以往分布式系统的高成本的研发制造性价比,同时也简化其他系统开发制造成本。

五、汽车系统之战

目前奔驰、宝马、奥迪、保时捷、宾利、法拉利等欧系车、别克、雪佛兰等美系车、丰田等日系车、小鹏P7国产电动车等等大部分乘用车,还有很多商用卡车比如斯堪尼亚等,用的都是实时系统,在实时系统领域,做的厉害的有黑莓的QNX系统,这是一个专为汽车控制单元开发的底层操作系统,与车规级芯片在设计研发初始阶段就进行了完美适配,最大限度的提高了可靠性,单凡是采用实时系统的都一定是专业技术领域。

传统汽车电传线控换挡技术应用多年,除了机械/物理故障,极少发生过控制失灵的情况,因为这些车用的都是实时系统。

飞机上也是最早采用电传电控系统的交通工具,飞机用的控制系统也是实时系统,没听说过飞机控制失灵吧?当然,硬件机械故障和物理损坏除外。

六、敲一下黑板-特斯拉

聊一下汽车电传电控系统中的安全死穴:实时系统和分时系统的图6

很少有人研究过特斯拉的控制芯片和应用程序乃至操作系统,特斯拉芯片部分是自研芯片,车规级芯片有几颗?

特斯拉中控车载核心系统是Linux作为内核的系统,怎么改,都无法改变他是分时系统的事实。

既然他是分时系统,那么他就无法完全避免和绕开上面提到的问题。

这一切,留给国家专业权威部门来鉴定,留给时间来验证吧。

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1