0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件定义汽车,E/E架构是关键

Linux阅码场 来源:拖拉机日记 作者:活到一百岁 2021-05-25 15:23 次阅读

从去年开始(可能更早),SOA的概念在汽车软件行业逐渐蔓延开来,很多公众号都发过讲汽车SOA的文章,很多车厂都要开始(或者已经在)搞SOA。但我觉得吧,在开搞新技术之前,是不是先花点时间弄明白这个技术到底是什么,它解决的是什么样的问题,然后再谈架构,再谈开发,很多时候我们连问题是什么都没整明白,就急着去做解决方案,最后的结果只能是一地鸡毛。

对个人来说,要搞SOA开发,需要夯实哪些基础知识,看了很多SOA文章,却很少有人梳理这些,这段时间我陆续思考了一些,尽管可能不全面(更偏向SOC开发涉及的技术点),但仍然试图写出来,以期逐步构建出自己的领域知识体系(详见下篇)~那么,先来理一理关于SOA:

软件定义汽车,E/E架构是关键

汽车电子电气架构(简称E/E架构)是指整车电子电气系统的总布置方案。在智能网联汽车产业大变革背景下,软件定义汽车理念已成为共识。传统汽车采用的分布式E/E架构因计算能力不足、通讯带宽不足、不便于软件升级等瓶颈,已经不能满足现阶段汽车发展的需求,E/E架构的变革已成为智能网联汽车发展的关键,其升级主要体现在硬件架构、软件架构、通信架构三个方面:

硬件架构升级:由分布式ECU向域控制/中央集中架构方向发展,汽车E/E架构的升级路径表现为分布式(模块化→集成化)、域集中(域控制集中→跨域融合)、中央集中式(车载电脑→车-云计算)。好处在于:提升算力利用率,减少算力设计总需求;数据统一交互,实现整车功能协同;缩短线束,降低故障率,减轻质量。

软件架构升级:通过 AutoSAR 等软件架构提供标准的接口定义,模块化设计,促使软硬件解耦分层,实现软硬件设计分离;Classic AutoSAR架构逐步向Classic AutoSAR+Adaptive AutoSAR混合式架构发展。好处在于:可实现软件/固件 OTA 升级、软件架构的软实时、操作系统可移植;采集数据信息多功能应用,有效减少硬件需求量,真正实现软件定义汽车。

通信架构升级:车载网络骨干由 LIN/CAN 总线向以太网方向发展。好处在于:满足高速传输、高通量、低延迟等性能需求,同时也可减少安装、测试成本。

中央计算单元——E/E架构的核心

中央计算单元是E/E架构中最关键的部分,不管是按区域的架构,还是以后的纯中央计算平台,其硬件构型从根本上决定了软件架构的设计方向。中央计算单元可以分为以下三种形态:

SOC分离式:将多个不同的芯片集成到一个中央计算单元上去,每个运行不同的操作系统,只是在形态上集中到了一起,各单元依然独立的完成各自任务;

硬件隔离式:在统一的计算平台上采用虚拟化方案,同时运行多个操作系统,但是各个系统依然在硬件上进行隔离,每个系统都有自己的专属硬件资源;

软件虚拟式:在统一的计算平台上采用虚拟化方案,同时运行多个操作系统,每个操作系统所使用的硬件资源,由Hypervisor层动态调配,每个系统并没有专属的硬件资源。

硬件隔离式和软件虚拟式,都采用了虚拟化方案,唯一不同点在于硬件资源是否专属,如果是专属的,就意味着资源无法动态调配,容易产生资源浪费。虚拟化方案最大的好处是,硬件上的可拓展性,如果中央计算单元采用刀片式的设计结构,可以很方便地拓展计算单元的算力,而不用替换整个计算单元。

在中央计算单元中,只需要两个操作系统即可,用于自动驾驶、车控、网关的RTOS,以及用于娱乐的普通OS(如AndroidLinux)。用于娱乐的OS完全可以通过虚拟机的方式运行,用于自动驾驶、车控、网关的RTOS,可以直接运行在Hypervisor层,既能兼顾实时计算的要求,也能获得丰富的娱乐系统功能。

SOA——解决软件定义汽车中服务间通信的分布式架构

在软件定义汽车中,应用间跨进程或跨核的通信,必然成为软件架构设计中一个需要去解决的问题。SOA在互联网已经应用了很长时间,但在汽车行业中,算是比较新的概念。鉴于汽车的应用场景和通信需求有其特殊性,很多互联网的SOA技术,并不能照搬过来。虽然Adaptive AutoSAR采用了SOA作为通信架构(ARA::COM架构如下图),但是Adaptive AutoSAR的应用可以说还没有普及,应该说整个行业就没什么标准的SOA中间件解决方案,几乎没有专业做中间件研发的公司,可能在国内这种慢工出细活的东西很难有什么成长的空间和土壤吧。所以,对于汽车SOA,还有很多值得我们去做的研究和尝试~

SOA,Service-Oriented Architecture(面向服务的架构),是一种架构思想,实施者可以根据实际情况设计SOA的技术实现。为什么要面向服务?以前用得好好的面向信号或者面向消息的通信架构怎么就不香了?面向服务的通信架构,它的优势到底在哪里,如果不能很好地理解这点,可能很难从过去面向信号的思维转变过来,也就无法体会引入SOA的价值和意义。这有点悖论哈,不去用,无法感受其奥义,但又因为没用过,对它保有质疑,过往的再拧巴,也是千锤百炼了,从零开始,谈何容易。因此,我觉得短时间内不太可能全面铺开做整车SOA,可能会在安全等级不高的域比如智能座舱先尝试SOA。本质上SOA就是服务的集合。

在SOME/IP 协议介绍一文中,我写过对于“服务”的理解。以智能座舱域为例(如下图),可以把“服务”分为两类:基础服务和应用服务,基础服务的功能可能包括:总线消息的解析和路由(如车身数据服务)、直接与硬件相关的逻辑处理(如音频服务)、上层应用有共同需求的一些基础设施(如日志服务);应用服务的功能相对复杂些,可能需要由多个基础服务提供数据支撑,也可能需要应用服务之间相互协同,实现业务逻辑(如导航服务)。

dda7a5be-bc8a-11eb-9e57-12bb97331649.png

SOA分层架构视图(仅作举例)

这只是一个很简单的例子,想表达的是,每个服务将自己的功能,以接口的方式提供,基于这些服务和接口,便可以设计出应用场景,以满足各种用户需求,提升驾车体验。可以想象,应用场景的需求一定是丰富且变化的,面向信号的话,新增一个需求,可能要等上一年,但如果服务也能够方便地进行开发、扩展和更新,是不是好多了,是不是挺有价值呢~

个人觉得,汽车SOA的设计难点,主要在于以下几点:

服务的定义和划分,要把业务需求分析透彻,从中提炼出服务的功能,数据流向理清,定义服务的边界,把握服务的粒度,怎么做到“低耦合,高内聚”,我以前很讨厌研究需求,觉得那些不过就是些业务,没啥技术含量,后来才慢慢认识到,这种想法很危险啊,脱离需求的软件设计不可能很好地满足需求,如果不能很好地服务于产品功能,那么再牛逼的技术都没有机会实现它应有的价值,事实上,能够把需求文档转化为可实施的软件设计,也是一种能力;

不同系统中,要实现中间件框架或者底层通信基础设施,Adaptive AutoSAR有ARA::COM组件,Android有Framework,但不能跨域,QNX/Linux就不用说了。要实现一个中间件框架,本身并不是件容易的事,需要比较强的技术实力,一旦出了问题一般都是重大问题;

服务接口标准化,接口描述语言化(IDL),能够通过工具自动生成RPC桩的代码(最好能够关联整车通信矩阵,e.g. ARXML-》C++ API),能够跨平台,支持多语言,毕竟UI层可能不是C++写的,时至今日,没几个应用愿意去解析原始消息,远程调用接口不香嘛~;

如何兼容一些没有与时俱进的设备和模块,如何兼容旧的传输通道,如何尽可能复用以前的业务逻辑,理论上任何兼容都是可以实现的,抽象一层不够,那就再来一层,但兼容得越多,系统就越复杂,出问题的概率就越大,维护起来就越费劲,这意味着成本的升高,质量却不见得变好;

评估性能影响,怎么保证安全性,……,如果是基于开源项目,可能还要做二次开发,来满足这些非功能性质的需求~;

所以,汽车SOA真不是SOME/IP,也不是DDS,更不是Adaptive AutoSAR,这些都是汽车SOA技术栈中的一环,并不是全部。

很多时候,纯技术的部分并不是最难的,新的架构方案要达成共识,要真正落地,需要博弈和取舍,需要天时地利人和。作为一名工程师,心态是极为重要的,要分清理想与现实,技术与工作,所以在这里我只想谈技术,本来打算梳理一下做汽车SOA开发的基础知识体系,以后公众号的内容大致也会围绕着这个体系去写,没想到写着写着这么长了,于是分成上下篇了,下面先开个头吧。

SOA是架构,做SOA的设计和开发,其实也是做架构的设计和开发,在这里我想引用陈皓老师为《架构整洁之道》作的推荐序里的一段话,我常想起这段话,挺有鞭策的功效,分享给每个不想成为PPT架构师的工程师,以共勉:

问题:如果你要成为一名架构师,你需要明确地区分几组词语,否则你不可能成为一名合格的工程师或架构师。这几组词语是简单vs.简陋、平衡vs.妥协、迭代vs.半成品。如果你不能很清楚地定义出其中的区别,那么你将很难做出正确的决定,也就不可能成为一名优秀的工程师或架构师。

陈皓,《架构整洁之道》推荐序一

之前很长一段时间,我经常感到焦虑,一方面不想成为PPT党,开会党,另一方面,除了工作还要生(带)活(娃),留给学习的时间并不多,而想学的知识又如同汪洋大海,今天想好好梳理一下某个技术点,明天搜到某个开源项目蛮感兴趣想写个Demo跑跑看,年轻的时候觉得日子一天天刷刷地过去,也不是什么事儿,现在愈发有种紧迫感。

在做了一些架构方面的设计和开发工作以后,更是深刻体会到构建个人的领域知识体系,尤其是一些基础技术,真的非常重要。今年伊始,听了李运华老师关于“如何打好基础”的讲座,核心观点是:“基础≠底层,基础≠源码,基础≠不变”,很是醍醐灌顶~结合个人实际情况,我觉得可以这么去构建我的领域知识体系:首先,定义出哪些是与我工作相关的领域知识(比如现阶段是SOA);其次,进一步细化要学习的知识范围,也就是下篇要梳理的SOA相关知识;最后,分别从广度和深度(根据工作内容去判别学习的深度),有针对性地学习,并在实际工作和项目中把知识和技术串起来,从而系统性地提升技术能力。就像前面说的,要分清理想与现实,因为这个世界从来都不是我所能想象的,很多PPT党开会党,基础不扎实甚至很水,设计出焦油坑一样的架构,坑自己,坑别人,坑项目,也不耽误他们升职加薪跳槽。

但是“世界上只有一种英雄主义,那就是认清生活的真相后依然热爱它”,不是么,于是才有了写公众号的初心和决心。今天的鸡汤俨然已经超标,文中诸多SOA观点,纯属个人理解,完全不具参考价值,欢迎有不同见解的朋友后台给我留言,一起交流哈~

原文标题:车载:面向服务的架构SOA 开发基础 (上)

文章出处:【微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 车载
    +关注

    关注

    17

    文章

    599

    浏览量

    83335
  • SOA
    SOA
    +关注

    关注

    1

    文章

    282

    浏览量

    27401

原文标题:车载:面向服务的架构SOA 开发基础 (上)

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    软件定义汽车的大背景下,MathWorks如何更好地赋能汽车设计

    的趋势已经不可阻挡。   在软件定义汽车这一全新的架构里,AI是底层核心技术,智能化系统将遍布整车的每一个角落。在2024 MathWorks中国
    的头像 发表于 09-18 00:03 3421次阅读
    在<b class='flag-5'>软件</b><b class='flag-5'>定义</b><b class='flag-5'>汽车</b>的大背景下,MathWorks如何更好地赋能<b class='flag-5'>汽车</b>设计

    新思科技与Arm携手合作,让软件定义汽车走向成功

    自动驾驶汽车现在已经不再是遥不可及的概念,甚至在一些国家已经上路行驶。为了满足便利性、安全性、自主性以及电气化等新的驾驶需求,汽车行业正朝着软件定义
    的头像 发表于 09-13 13:22 477次阅读

    紫光同芯推出开放式架构安全芯片E450R

    2024紫光同芯合作伙伴大会在北京璀璨启幕,会上紫光同芯震撼发布了其最新技术结晶——全球首颗融合开放式硬件与软件架构的安全芯片E450R。这款芯片以其独特的双开放设计,即开放式硬件架构
    的头像 发表于 08-28 16:28 543次阅读

    大众汽车集团宣布2025年起采用Rivian软件与基础架构

    近日,德国汽车巨头大众汽车集团发布重要声明,计划自2025年起在其多款车型中全面引入美国电动汽车初创公司Rivian的软件和基础架构。这一战
    的头像 发表于 07-29 16:13 1106次阅读

    详解TSMaster CAN 与 CANFD 的 CRC E2E 校验方法

    关键字:TSMaster,CAN/CANFD,CRC校验,E2E校验目录Catalog1.CRC/E2E在报文传输过程中的应用2.基于TSMaster剩余总线仿真的
    的头像 发表于 05-25 08:21 1751次阅读
    详解TSMaster CAN 与 CANFD 的 CRC <b class='flag-5'>E2E</b> 校验方法

    小鹏汽车与大众汽车宣布签署E/E架构技术合作框架协议

    是其垂直集成的全栈软硬件技术的核心。它支持ADAS和Connectivity OS等软件与底层硬件和车辆平台解耦,实现跨平台软件的快速迭代。小鹏汽车最新一代E/
    的头像 发表于 04-23 14:49 455次阅读
    小鹏<b class='flag-5'>汽车</b>与大众<b class='flag-5'>汽车</b>宣布签署<b class='flag-5'>E</b>/<b class='flag-5'>E</b><b class='flag-5'>架构</b>技术合作框架协议

    大众全新奥迪E³1.2电子架构介绍

    奥迪 E³ 1.2 电子架构的诞生 E³ 1.2 电子架构是奥迪与CARIAD合作开发的成果,首次应用于奥迪Q6 e-tron系列的1.
    发表于 04-11 10:34 387次阅读
    大众全新奥迪<b class='flag-5'>E</b>³1.2电子<b class='flag-5'>架构</b>介绍

    PREEvision中的逻辑架构:实现车辆系统设计的高效抽象化

    车辆的电子/电气(E/E架构已经从过去的简单设计演变成今天的复杂结构。在早期,E/E架构主要由
    的头像 发表于 04-08 14:11 996次阅读
    PREEvision中的逻辑<b class='flag-5'>架构</b>:实现车辆系统设计的高效抽象化

    Arm推出能在Arm AE IP和虚拟原型平台上运行的全栈软件解决方案

    软件定义汽车 (SDV) 的出现意味着汽车行业需要对车辆的设计和开发进行全面反思。随着车辆中电子电气 (E/
    的头像 发表于 04-08 10:47 520次阅读
    Arm推出能在Arm AE IP和虚拟原型平台上运行的全栈<b class='flag-5'>软件</b>解决方案

    英特尔推出全新软件定义汽车架构方案

    英特尔汽车事业部近期推出卓越性能与超高效率的全新软件定义汽车(SDV)架构方案。这一创新方案不仅满足了
    的头像 发表于 03-16 09:31 521次阅读

    一种可应对E/E架构变化的最新16位RL78/F2x MCU

    近年来,汽车E/E架构发生了巨大变化,给执行器和传感器应用带来了影响,如车灯、车窗和后视镜等车身控制、发动机泵和风扇等电机控制,以及传感器控制等应用。传统上,这些应用使用低成本的小型1
    的头像 发表于 02-23 10:00 487次阅读
    一种可应对<b class='flag-5'>E</b>/<b class='flag-5'>E</b><b class='flag-5'>架构</b>变化的最新16位RL78/F2x MCU

    智能网联汽车电子电气架构解析

    什么是电子电气架构?在2007年由德尔福(DELPHI)首先提出E/E架构的概念,具体就是在功能需求、法规和设计要求等特定约束下,把汽车里的
    的头像 发表于 01-03 09:46 1242次阅读
    智能网联<b class='flag-5'>汽车</b>电子电气<b class='flag-5'>架构</b>解析

    什么是“软件定义汽车”?各大车企的软件定义汽车战略

    要实现软件定义汽车,除了电子/电气架构的升级,用于软硬件分离解耦的集成ECU(电子控制单元)也是必不可少的。另外还提到,为此需要一种称为“虚拟机(hypervisor)”的技术在单个E
    发表于 12-22 11:11 486次阅读
    什么是“<b class='flag-5'>软件</b><b class='flag-5'>定义</b><b class='flag-5'>汽车</b>”?各大车企的<b class='flag-5'>软件</b><b class='flag-5'>定义</b><b class='flag-5'>汽车</b>战略

    再谈“软件定义汽车”,剖析SOAFEE的成绩、打法和目标

    电子发烧友网报道(文/吴子鹏)2021年,Arm 通过与汽车供应链领先企业展开协作,推出了一个软件架构和参考实现——面向嵌入式边缘的可扩展开放架构SOAFEE(Scalable Ope
    的头像 发表于 12-06 18:14 2273次阅读
    再谈“<b class='flag-5'>软件</b><b class='flag-5'>定义</b><b class='flag-5'>汽车</b>”,剖析SOAFEE的成绩、打法和目标

    汽车区域架构的演变历程

    E/E架构领域,芯片制造商、Tier1 供应商和汽车企业,需要考虑多个维度来优化配置系统。从战略角度看,需要明确自身在价值链上的定位。不同汽车
    发表于 11-19 16:31 496次阅读
    <b class='flag-5'>汽车</b>区域<b class='flag-5'>架构</b>的演变历程