谈谈汽车软件中间件(Autosar为例)_autosar软件多少钱

老实讲,这块大家讲的很少,都说这个很美好,但实际操作过程中,我觉得是软硬件一体设计上的阻碍。

值得注意的像Tesla这样的新兴企业并没有使用autosar这是为什么?所有平台性的软件,都有一个弊病,就是为了兼容一致性,会对软硬件协作的效率带来影响,autosar也不例外。

我感觉“Autosar就是汽车行业的塞班系统,看似很好,很标准,但是最终会被淘汰。就像当年的诺基亚一样,原因是最后会被一个软硬件集成度更好的iphone取代,iphone可不纠结能够给其他公司用自己的系统。

从商业和成本角度看

Autosar设计上已经有些落后,代码臃肿,对成本影响很大。打个比方,北美一个程序员一年的cost也就是15万美金,自己完成底层的开发就这个价,使用Autosar的工具链和代码臃肿带来的升级MCU开销远大于节省的这部分开发成本。细分Autosar的成本:

1.开发成本:首先需要购买autosar,本身就是成本,autosar包含的模块多,肯定要贵,但不一定所有的都会被用上。其次是人力投入,对于一个原来就有其他平台的新的第一个项目转换到autosar是增加人力的,对于新公司,购买autosar是降低人力的,很多模块不用自己开发了。对于建立平台以后的项目,实际差不多。

2.生产成本:首先是硬件成本,现在MCU越来越便宜,用不用autosar基本没区别,如果说存储空间特别小的MCU,比如防夹模块,本来也没要求autosar。其次是软件成本,这个才是问题,跟以前基础软件不同autosar现在收量产license费。

从技术角度看

关于autosar的应用,autosar之前定义的主要就是BCM、TCU、EMS、ESP等要求实时控制的ECU。不是针对娱乐系统,自动驾驶MPU的,当然这些控制器里也有MCU,可以用运行autosar的MCU。autosar现在最擅长的是16bit MCU以及不太复杂的32bitMCU。32bit以上的MCU,需要RTOS支持,比如自动驾驶软件。车的中控也不可能基于autosar,也是因为没有一个强有力的RTOS, 在越来越强调security的软件开发中,AUTOSAR也没有进程隔离的概念。前景难料.

中间件的明星方案-AUTOSAR

所有中间件方案中,最著名的是AUTOSAR, 其是由各大整车厂商和零部件厂商开始着手联合制定软件的标准化接口。AUTOSAR(AUTomotive Open System ARchitecture)是由全球的主要汽车生产厂商、零部件供应商、软硬件和电子工业等企业(如BMW、BOSCH、Continental、DAIMLER、Ford、OPEL、PSA、TOYOTA、VW等)共同制定的汽车开放式系统架构标准。

img

2003年7月,由宝马、博世、大陆、戴姆勒-克莱斯勒、西门子VDO和大众联合成立AUTOSAR发展联盟,为汽车E/E架构建立了一种开放式的行业标准。

2003年11月,福特公司作为核心伙伴加入,12月标致雪铁龙和丰田汽车加入。接下来的11月通用汽车也作为核心伙伴加入。自从西门子VDO被大陆在2008年2月收购后,它就不再作为AUTOSAR的独立核心伙伴。

  • 第一阶段(2004-2006):标准基本开发时期(版本1.0.2.0和2.1)
  • 第二阶段(2007-2009):体系和方法相关方面扩展(版本3.0,3.1和4.0)
  • 第三阶段(2010-2013):可维护性和可选择性的改进(版本3.2,4.1和4.2)

在2013年,AUTOSAR联盟进入一种持续改进模式,主要用来维持标准和提供所选择的改进,往后实际上,autosar更新就很少了,开始转向AUTOSAR-Adaptive。

AUTOSAR-Adaptive拯救AUTOSAR

对于用于实现典型动力总成和底盘功能的深度嵌入式系统,AUTOSAR经典平台仍将是首选。在低成本硬件上运行时,对安全性、实时性和确定性要求较高。同时,AUTOSAR为这些应用程序提供了一个经过良好验证的成熟软件平台,包括一个广泛使用的方法,它支持当今所有的协作模型。而为了支持客户应用程序的动态部署,并为需要高端计算能力的应用程序提供环境,AUTOSAR在2017年推出了第二个软件平台,即AUTOSAR Adaptive platform。这个想法是尽可能从其他领域(如消费电子产品)的发展中获益,同时仍然考虑汽车的特定要求,如功能安全。

img

Adaptive需要支持,未来E/E架构的两个关键特征是:

  1. 异构软件平台的集成,当今汽车的网络架构可以聚集成不同的领域,用于信息娱乐和连接、底盘、动力系统等。虽然infotainment ECUs通常使用Linux、QNX或其他通用操作系统,但AUTOSAR Classic平台是深度嵌入式控制单元的标准。随着新的用例和对计算能力的深入嵌入式应用程序不断增长的需求,第三种ecu将出现,它具有不同的特性,必须集成到现有的E/E体系结构中。
  2. 面向服务和基于信号的通信,传统的汽车通信仍然是基于ecu向其他ecu提供信号广播的思想。这种范式非常适合于有限大小的控制数据,这些数据必须循环地进行通信。先进的应用程序,如高自动化驾驶与更高的负载要求,例如交换对象列表检测到的一组传感器和以太网作为一个通信系统需要更复杂的协议。面向服务通信的概念是基于在通信系统上提供服务的应用程序和订阅此服务的其他应用程序。然后数据只发送给订阅服务器。

面向服务的通信与现有的基于信号的范式的结合是未来E/E体系结构的第二个关键方面,从这个角度来看,这是一个艰巨的挑战。

为了解决AUTOSAR僵化的问题,Adaptive希望可以找到一种中间过程平台

img

ADAPTIVE为承载这些功能的软件基础设施增加了新的需求。除了现有的需求(如功能安全和安全性),软件架构还必须支持硬件(如具有高端计算能力的硬件)、空中更新、与后端系统的通信或应用程序的动态部署。

img

AUTOSAR Adaptive扩展了AUTOSAR平台,以满足当前汽车自动驾驶、电气化和互联互通等趋势的需求。因此,它在许多方面改变了已建立的E/E开发过程。最重要的变化是,基于信号的通信被面向服务的设计所取代。c++取代了C语言作为自适应应用程序的编程语言,以及基于posix的操作系统(如Linux用于自适应电子控制单元)是进一步的突破性转变。

img

img

AUTOSAR Adaptive 组件封装了SOA软件底层的通讯细节(包括SOME/IP协议,IPC等),同时提供代理(Proxy)-骨架(Skeleton)模型,该模型以C 面向对象语言描述,方便上层应用开发人员调用标准服务接口(API)进行开发。Application Design Model是该模型另一种可配置的呈现,开发人员通过使用相应的配置工具对Application Design Model进行描述和配置,即可实现基于SOA服务架构的软件落地和部署。联合电子使用AUTOSAR Adaptive组件完成SOA服务架构软件的开发

可以看到,自适应Autosar又找到了延续自己生命的另外一个理由,提供了一种由现在信号导向的架构往SOA架构的标准。未来由于控制器数量大幅度降低, 类似特斯拉这样的车企多半是不理会自适应AutosarAdaptive

与此同时,更多的相关配套供应商也在加快与AUTOSAR自适应平台的对接。去年11月,Real-Time Innovations(RTI)宣布,AUTOSAR最新版本的自适应平台(版本18-10),已经具有数据分发服务(DDS)标准的完整网络绑定。这意味着汽车制造商现在可以使用DDS实现AUTOSAR自适应框架,并开发高度自动驾驶系统,如4级和5级。DDS允许AUTOSAR完全支持高度自动驾驶系统,并提供“量产级通信框架”,保证这些复杂系统所需的可靠性、可伸缩性和性能。比如,在AUTOSAR中完全指定了DDS之后,汽车行业现在可以使用RTI Connext和DDS开发高性能应用程序,比如传感器融合应用程序。

AUTOSAR版本18-10有助于解决OEM软件开发团队在支持不同价格区间车型时所面临的各种安全和连接性挑战。此外,允许开发人员“动态配置平台”,以支持每个车型平台的各种操作模式和硬件功能。

技术细节-AUTOSAR的分层设计

架构层面: AUTOSAR定义一个软件分层架构以支持汽车电子系统的集成。其体系架构从上至下依次为应用层、运行环境层(RTE)、以及基础软件层(BSW)

img

接着再复杂一些,BSW再分为复杂驱动模块, 微控制器抽象层、ECU抽象层、系统服务层

img

(1)应用层。包括应用软件组件、传感器和执行器软件组件,都位于应用层。该层的软件组件通过RTE进行内部通讯和访问ECU资源。应用层的软件实现独立于微控制器、ECU。

(2)RTE层。RTE层为应用层提供通讯服务。RTE层的实现与ECU和具体应用相关,必须为每个ECU分别实现,AUTOSAR软件组件之间通信需要通过RTE。

(3)服务层。包含RTOS、通信与网络管理、内存管理、诊断服务、状态管理、程序监控等服务。它为应用和基础软件模块提供基本服务,包括:操作系统服务、汽车网络通讯和管理服务、存储服务、诊断服务和ECU状态管理。服务层的实现部分与微控制器、ECU和具体应用相关。

(4)ECU抽象层。ECU抽象层抽象出ECU结构,如外设与ECU的联接方式等.虽然该层与ECU平台相关,但是与微控制器是无关的。这种无关性是由微控制器抽象层来实现的。其中封装了微控制器层及外围设备的驱动,并对微控制器内外设的访问进行了统一,实现了软件应用层与硬件系统的分离

(5)微控制器的抽象层(microcontroller abstraction layer,MCAL)。位于基础软件的最底层,包含了访问微控制器的驱动(如I/O驱动、ADC驱动等),做到了上层软件与微控制器的分离,以便应用的后续的移植复用。微控制器的抽象层是实现不同硬件接口统一化的特殊层,通过微控制器的抽象层可将硬件封装起来,避免了高层软件直接与微控制器的寄存器打交道。MCAL提供消息机制,并以此将指令、响应和信息分离成不同的过程。微控制器抽象层包括微控制器相关的驱动,它负责管理微控制器的外部设备,并将微控制器的信号提供给基础软件的元件。

(6)复杂驱动层,由于其严格的时序为应用层通过RTE访问硬件提供支持。

再复杂一些

img

再再复杂一些

img

-------------接着我们从RTE层往上看-------------

运行时环境( RTE )是应用软件和基础软件通信的桥梁,无论通信发生在 ECU之间( 如通过CAN、LIN、FlexRay、MOST等网络) ,还是在ECU内部,RTE均通过提供一致的接口和服务来实现SWC之间的通信抽象,其最终实现会因ECU的不同而有所差异。一般情况下,每一层只能使用下一层的接口,并向上一层提供服务接口。

img

应用层中的功能由各软件组件(SWC)实现,组件中封装了部分或者全部汽车电子功能,包括对其具体功能的实现以及对应描述,如控制大灯,空调等部件的运作,但与汽车硬件系统没有连接。

在设计开发阶段中,软件组件通信层面引入了一个新的概念,虚拟功能总线VFB(Virtual Functional Bus),它是对AUTOSAR所有通信机制的抽象,利用VFB,开发工程师将软件组件的通信细节抽象,只需要通过AUTOSAR所定义的接口进行描述,即能够实现软件组件与其他组件以及硬件之间的通信,甚至ECU内部或者是与其他ECU之间的数据传输。

img

因此软件组件只需向VFB发送输出信号,VFB将信息传输给目标组建的输入端口,这样的方式使得在硬件定义之前,即可完成功能软件的验证,而不需要依赖于传统的硬件系统。

img

中间件RTE与面向对象OO(object oriented)的编程思想非常接近,所有ECU所对应的RTE都是特定的,它负责着软件构件间以及软件构件与基础软件之间的通信。对于软件构件来说,基础软件不能够直接访问,必须通过RTE进入。因而RTE也被理解成是VFB的接口实现。

img

而构件之间及构件与基础软件的通信关系如图所示:

img

AUTOSAR软件构件无法直接访问基础软件中的操作系统OS,因而在应用程序中就不存在「task」的概念,且不能动态创建线程,因此并行的任务由RTE直接管理调入的「构件运行实体」来实现。每个软件构件也许会有一个或者多个运行实体,但是一个运行实体只对应一个入口。

方法学层面

「AUTOSAR方法论」是指在汽车电子系统开发的某些步骤中所需要的通用技术方法。

img

1、 但AUTOSAR方法既非完整的过程描述也不是商业模式,也没有定义「角色」和「责任」。

2、 方法论仅是一个work-product flow,并定义了其中的依赖关系。

img

根据AUTOSAR方法论,完整的基于AUTOSAR规范的配置生成过程分为以上图示两部分,即系统配置过程及ECU配置过程。两者之间并无先后关系,系统配置过程中的输入包内含有ECU配置的相关模块,ECU配置也会反馈于系统配置。

系统配置过程:

系统配置输入(System Configuration Input)必须被定义好,AUTOSAR倾向于通过信息交换格式(软件构件、ECU资源、系统限制)以及模版来减少这些厨师系统设计决定的正式描述。模板包含三部分:

  • 软件构件的描述:定义每个需要的软件构件的接口内容,如数据类型、端口、接口等
  • 系统约束描述:如总线信号的定义、拓扑结构与软件构件之间的映射关系
  • ECU资源描述:定义每个ECU的资源需求,如处理器、外部设备、存储器、传感器以及执行器

img

img

配置步骤如下

img

输入的系统配置文件借助配置系统(configure-system)将软件构件映射到资源与计时要求相关的ECU上,所得到的文件就是系统配置描述文件(system configuration description)。其中包含了软件构件与ECU映射时所需注意的限制条件,以及通信矩阵(Communication-Matrix),矩阵中描述了整车网络结构中的数据包内容及其时序关系。

ECU配置过程

系统配置完成后,生成了系统配置描述文件,作为ECU配置过程的输入。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-qnkLrVnw-1713079448615)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值