工程实践|CP\xa0AUTOSAR中的软件集群设计与示例

原创 汽车电子与软件 2025-03-19 08:26

作者 | 不可说

出品 | 汽车电子与软件



#01

引  入
  

AUTOSAR CP平台中,软件集群(Software Clusters)方法被设计以充分考虑多个ECU的内部拓补结构,这些结构对软件系统的整体性能和功能很是重要。这一核心理念在下图所呈现的概念元模型中得到了直观且深入的体现。



车辆拓扑中ECUMachine和软件集群的层次结构


具体而言,车辆的拓扑结构由多个ECU组成,进一步地,每个ECU可以根据需要配备1N个控制器,以处理各种复杂的计算和控制任务。


在一个微控制器上,可以托管一个或多个Machine。当微控制器托管多个Machine时(即N大于1时),这些Machine是虚拟化的,它们共享微控制器的硬件资源,以实现更高的资源利用率和灵活性。此外,每个机器都配备了一个完整的Machine,从AUTOSAR的角度来看,这构成了CP平台架构的一个具体实例,为上层应用提供了稳定而强大的支撑。




#02

实  施


通过软件集群的方法,CP的整体软件被巧妙地划分为多个独立的部分。每个软件集群都是一个独立的构建单元,它包含了实现特定功能所需的全部组件和代码。而集群特定的构建过程则会产生相应的二进制对象,这些对象可以在目标ECU上运行,从而实现预期的功能和性能。


 

AUTOSAR分层软件体系结构中的软件集群连接


参考上图,在集群式软件系统中,现有的分层架构得到了扩展,这一扩展是通过引入一个新的构建块——软件集群连接(Software Cluster Connection)来实现的。软件集群连接包含以下三个主要的子模块:


1.二进制清单(Binary Manifest:此模块提供了在同一台Machine上部署的二进制对象之间的连接手段。


2.跨集群通信(Cross Cluster Communication:该模块提供了软件集群之间的虚拟功能总线(VFB)通信功能。不过,服务接口并不包含在此模块的功能范围内,因为对BSW模块的访问是通过代理模块来实现的。


3.代理模块(Proxy Modules:代理模块分为高层代理模块和低层代理模块。高层代理模块在应用软件集群中替代非本地的BSW模块,并与主机软件集群中的低层代理模块进行连接。低层代理模块则进一步连接到实际的BSW模块。高层代理模块暴露的接口与真实BSW相同。


主机软件集群(Host Software Cluster)包含了BSW的大部分内容,特别是那些依赖于微控制器的模块,如操作系统。因此,Machine的动态行为主要由主机软件集群决定,并负责实现调度。应用软件集群的实现必须遵循主机软件集群的调度策略。


在应用软件集群中,可以集成应用软件组件以及受到严格限制的BSW模块。如果应用软件集群中本地没有可用的基础软件模块,但其接口对于集成软件来说是必需的,那么这些模块将由代理模块进行替代。


一些RTE功能可能会受到限制,因为这些功能的实现可能不具备可扩展性,或者可能对其他软件集群产生意外的副作用。例如,跨软件集群的同步客户端-服务端调用需要实现完全的上下文解耦,这在单个软件集群范围内很难准确预见其对整体调度的影响。


尽管存在这些限制,仍然可以通过同步客户端-服务端调用访问BSW。对于采用软件集群的软件系统而言,实现多核BSW分发概念是确保系统可扩展性和良好性能的关键前提。




#03

目  的


软件集群旨在提升AUTOSAR系统设计与实施的灵活性,并通过模块化手段确保集群内部变更的影响得以局部化。这一特性使得架构变更能够逐步引入,同时部分实施变更无需重建整个软件系统。


尽管软件集群有助于减少变更的频率,但每个软件集群,包括主机软件集群,在必要时仍可重建。部分使用场景可能仅能通过此概念部分解决,甚至完全无法解决,仍需对BSW进行变更,并重建主机软件集群。


这一概念所具备的功能将简化对基础软件的变更过程,可能导致主机软件集群的重建频率有所增加。但与此同时,它也促使基础软件的变更从以往罕见且规模较大的情况,转变为更为频繁但规模较小的变更。




#04

与Ecu-Partitions的关系


F:此ECU上的一个分区的定义。一个分区将使用一个Os-Applications


Software Cluster概念主要面向资源受限严重的控制器,其核心在于尽可能减少开销,实现“按需付费,所得即所付”的原则。这一理念在软件集群与Ecu-Partitions的关系中得到了充分体现。


Ecu-Partitions为功能分离提供了可能,它们通过OsApplications实现,能够在一定程度上实现内存访问和运行时行为的隔离。然而,多个OsApplications的执行也会带来相对较大的开销,包括执行任务切换(可能消耗数百个处理器周期)以及额外的管理开销(如更改执行级别、重新配置MPU等)。随着Ecu-Partitions数量的增加,这些开销可能会变得尤为显著。因此,为了提高资源利用率,可以在多个软件集群中重用同一个Ecu-Partition


同时,系统设计者往往希望在一个软件集群内组合来自不同Ecu-Partitions的功能,以满足大功能中不同ASIL要求或车载诊断相关的分离需求。例如,一个制动功能集群可能包含来自不同ASIL级别的功能,其中有些功能与安全相关,负责制动操作,而其他功能则与安全无关,如评估行驶平稳性的功能。因此,一个软件集群可以包含多个Ecu-Partitions,以实现所需的功能组合。


为了满足这些需求,软件集群与Ecu-Partitions之间形成了n:m的关系,即一个软件集群中可以包含多个Ecu-Partitions,同时一个Ecu-Partition也可以在多个软件集群之间共享。然而,如果Ecu-Partition在软件集群之间共享,那么在运行时可能无法强制分离其包含的不同软件集群中的SWC。尽管如此,由于软件集群在逻辑上和内存地址区域上是分离的,这种做法仍具有一定的可行性。某些违规情况可能不是在ECU的运行时检测到的,而是通过ECU外部的静态检查来发现。


如果资源限制允许,最好不要在软件集群之间共享Ecu-Partitions,以更好地实现软件集群的分离。然而,在实践中,这通常难以避免,因此应尽可能减少这种共享,以降低开销并提高系统的可维护性和安全性。




#05

软件集群内存分配


通常,微控制器的总内存由多种不同类型的内存组成,如RAMFLASH程序ROMFLASH数据ROM等,每种内存都有其特定的用途。此外,即使是同一类型的内存,其不同段在不同用例下也可能表现出不同的性能,例如不同微控制器核心的访问速度差异。因此,在将整体式的CP软件架构拆分为可独立构建的单元时,每个软件集群的提供者必须明确了解哪种内存可用于什么目的。


由于微控制器通常不支持内存虚拟化,所以在为软件集群分配内存时,不仅需要就内存量达成一致,还需要就具体的地址范围进行明确划分。为此,建议采取以下方法:


机器架构师应将总内存划分为多个逻辑内存插槽,并为每个插槽指定其可用的目的。这些指示应与内存插槽的物理属性(如RAMFLASH)相对应,同时也应与软件分区(如MPU的空间分离)、功能分组(如校准数据集的内存)和性能目标相匹配。下图展示了不同内存如何被分配给软件集群的原则性示例。


 

软件集群分配内存


接下来,根据每个软件集群所包含功能的预测内存消耗和所需的内存类型,为每个软件集群分配不同的内存插槽。这种分配可以直接体现在链接定位文件中,并作为AUTOSAR内存映射初始配置的一部分。软件集群特定的链接定位文件确保在构建过程中,软件集群只分配为其预留的内存。


除了静态内存使用外,堆栈使用也是需要考虑的重要因素。当主机软件集群调用应用软件集群的“代理”操作系统任务时,这些任务可能会进一步调用主机软件集群中的BSW功能。由于这种复杂的调用关系,堆栈的估算和尺寸确定必须综合考虑主机软件集群和各个应用软件集群的软件架构。


通过这样的规划和分配,可以确保软件集群在微控制器上高效、稳定地运行,同时充分利用有限的内存资源。




#06

设计实例


 

示例概览


该示例包含两个Software Compositions


  • Compo_AHB,包含三个SWCAntonHugoBernd


  • Compo_Host,包含两个SWCClausCeline


这些SWC各自拥有Providing PortsRequiring Ports,其中一些Ports在顶层视图中相互连接。


此外,还存在两个软件集群:


  • SwClu_AHB,包含Compo_AHB


  • SwClu_Host,包含Compo_Host


它们基于必要的系统元素分别进行描述。当然,在实际系统中,一个集群通常会包含多个Ports


在上图中,这两个软件集群具有以下接口:


  • IF_Celine端口从SwClu_Host连接到SwClu_AHB


  • IF_Bernd端口从SwClu_AHB连接到SwClu_Host


  • IF_HugoSwClu_Host上的开放R-Port端口。


  • IF_AntonSwClu_AHB上的开放P-Port端口。


图中也展示了相关的服务依赖关系,通过这些依赖关系,一个配置正确的Host软件集群及其操作系统可以运行AHB软件集群。


对于所需的操作系统服务,采用了操作系统代理模式。在此示例中,基本配置包含两个操作系统任务:OsTask_50msOsTask_10ms。每个任务在应用软件集群中都有两个入口点供所谓的调度器使用:


OsTask_10ms


Disp_10ms_Ph110ms任务调度器,阶段1


Disp_10ms_Ph210ms任务调度器,阶段2


OsTask_50ms


Disp_50ms_Ph150ms任务调度器,阶段1


Disp_50ms_Ph250ms任务调度器,阶段2


AHB软件集群中,遵循操作系统高代理模式,为操作系统提供了本地实现,包含两个代理任务:ProxyT_10msProxyT_50ms。软件组件的定时事件(TimingEvents)与这两个代理任务相匹配。


图未显示的是OsBaseSocket_AHBBaseConfigCheck_AHBOsBaseSocket_AHB用于软件集群AHB本地操作系统代理的初始设置。BaseConfigCheck_AHB用于确保由Host软件集群实现的配置满足AHB软件集群的需求。


有了所有这些设置,该示例的系统设计就完成了。



/ END /


汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论 (0)
  •         在当今电子设备高度集成的时代,电路保护显得尤为重要。TVS管(瞬态电压抑制二极管)和压敏电阻作为一种高效的电路保护器件,被广泛应用于各种电子设备中,用以吸收突波,抑制瞬态过电压,从而保护后续电路免受损坏。而箝位电压,作为TVS管和压敏电阻的核心参数之一,直接关系到其保护性能的优劣。箝位电压的定义        箝位电压指瞬态保护器件(如TVS二极管、压敏电阻)在遭遇过压时,将电路电压限制在安全范围内的
    广电计量 2025-03-20 14:05 71浏览
  • 如同任何对我们工作方式的改变,新的工作方式必然会遇到许多必须面对的挑战。如果不解决组织在实施精益六西格玛过程中面临的障碍以及如何克服它们的问题,那么关于精益六西格玛的讨论就不算完整。以下列举了组织在成功实施精益六西格玛时常见的几个障碍,以及克服它们的方法:1)对精益六西格玛方法论缺乏理解。抵触情绪通常源于对精益六西格玛方法论的不了解,以及不相信它能真正发挥作用。这种情况在所有层级的人员中都会出现,包括管理层。虽然教育培训可以帮助改善这一问题,但成功的项目往往是打消疑虑的最佳方式。归根结底,这是一
    优思学院 2025-03-20 12:35 78浏览
  • 贞光科技代理的品牌-光颉科技高精密薄膜电阻凭借0.01%的超高精度,在AI服务器电源模块中实现了精确电压分配、优化功率因数和减少热损耗,显著提升系统能效和可靠性。在当今的数字时代,人工智能(AI)服务器已成为数据中心的核心。随着AI应用的激增,服务器的性能和能效需求也在不断提高。电源模块作为服务器的关键组件,其性能直接影响整个系统的效率和可靠性。本文将探讨光颉科技高精密薄膜电阻,特别是其0.01%的精度,如何在AI服务器电源模块中提升能效。电源模块在AI服务器中的重要性电源模块负责将输入电源转换
    贞光科技 2025-03-20 16:55 112浏览
  • 为有效降低人为疏失导致交通事故发生的发生率,各大汽车制造厂及系统厂近年来持续开发「先进驾驶辅助系统」ADAS, Advanced Driver Assistance Systems。在众多车辆安全辅助系统之中,「紧急刹车辅助系统」功能(AEB, Autonomous Emergency Braking)对于行车安全性的提升便有着相当大的帮助。AEB透过镜头影像模块与毫米波雷达感测前方目标,可在发生碰撞前警示或自动刹车以降低车辆损伤以及乘员伤害。面临的挑战以本次分享的客户个案为例,该车厂客户预计在
    百佳泰测试实验室 2025-03-20 15:07 72浏览
  • 流感季急诊室外彻夜排起的长队,手机屏幕里不断闪烁的重症数据,深夜此起彼伏的剧烈咳嗽声——当病毒以更狡猾的姿态席卷全球,守护健康的战争早已从医院前移到每个人的身上。在医学界公认的「72小时黄金预警期」里,可穿戴设备闪烁的光芒正穿透皮肤组织,持续捕捉血氧浓度、心率变异性和体温波动数据。这不是科幻电影的末日警报,而是光电传感器发出的生命预警,当体温监测精度精确到±0.0℃,当动态血氧检测突破运动伪影干扰……科技正在重新定义健康监护的时空边界。从智能手表到耳机,再到智能戒指和智能衣物,这些小巧的设备通过
    艾迈斯欧司朗 2025-03-20 15:45 129浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,凭借AS1163独立智能驱动器(SAID)成为中国领先的智能集成系统产品汽车制造商宁波福尔达智能科技股份有限公司(“福尔达”)环境动态照明应用的关键供应商。此次合作标志着汽车技术发展的一个重要时刻,充分展现了AS1163在优化动态照明应用系统成本方面的多功能性和先进性能。该产品支持传感器集成,拥有专为车顶照明设计的超薄外形,并能提升车内照明系统的性能。AS1163是一款先进的智能LED驱动器,能够与开放系统协议(OSP)网络无缝
    艾迈斯欧司朗 2025-03-20 14:26 73浏览
  • 本文内容来自微信公众号【工程师进阶笔记】,以工程师的第一视角分析了飞凌嵌入式OK3506J-S开发板的产品优势,感谢原作者温老师的专业分享。前两周,有一位老朋友联系我,他想找人开发一款数据采集器,用来采集工业现场的设备数据,并且可以根据不同的业务场景,通过不同的接口把这些数据分发出去。我把他提的需求总结了一下,这款产品方案大概有以下功能接口,妥妥地一款工业网关,在网上也能找到很多类似的产品方案,为啥他不直接买来用?再跟朋友深入地聊了一下,他之所以联系我,是因为看到我在公众号介绍过一款由飞凌嵌入式
    飞凌嵌入式 2025-03-20 11:51 102浏览
  • 4月8-11日,第91届中国国际医疗器械博览会(CMEF)将在国家会展中心(上海)举办。这场全球瞩目的医疗科技盛宴以“创新科技,智领未来”为主题,旨在全方位展示医疗科技的最新成果,与来自全球的行业同仁一道,为全球医疗健康领域带来一场科技与商贸交融的产业“盛宴”。飞凌嵌入式作为专业的嵌入式技术解决方案提供商,一直致力于为医疗器械行业提供丰富的、高可靠性的嵌入式硬件主控解决方案。届时,飞凌嵌入式将为来自全球的观众带来适用于IVD、医疗影像、生命体征监测等医疗设备的嵌入式板卡、显控一体屏产品以及多款动
    飞凌嵌入式 2025-03-20 11:46 33浏览
  • PCIe 5.0应用环境逐步成形,潜在风险却蠢蠢欲动?随着人工智能、云端运算蓬勃发展,系统对于高速数据传输的需求不断上升,PCI Express(PCIe)成为服务器应用最广的传输技术,尤其在高效能运算HPC(High Performance Computing)及AI服务器几乎皆导入了最新的PCIe 5.0规格,使得数据传输的双向吞吐量达到了128GB/s,让这两类的服务器能够发挥最大的效能。不过随着PCIe 5.0的频率达到16GHz,PCB板因为高频而导致讯号衰减加剧的特性,使得厂商面临很
    百佳泰测试实验室 2025-03-20 13:47 69浏览
  • 家电“以旧换新”政策的覆盖范围已从传统的八大类家电(冰箱、洗衣机、电视、空调、电脑、热水器、家用灶具、吸油烟机)扩展至各地根据本地特色和需求定制的“8+N”新品类。这一政策的补贴再叠加各大电商平台的优惠,家电销售规模显著增长,消费潜力得到进一步释放。晶尊微方案为升级换代的智能家电提供了高效且稳定的触摸感应和水位检测功能,使得操作更加便捷和可靠!主要体现在:水位检测1健康家电:养生壶、温奶器、加湿器的缺水保护安全2清洁电器:洗地机、扫地机器人的低液位和溢液提醒3宠物家电:宠物饮水机的缺水提醒/满水
    ICMAN 2025-03-20 15:23 106浏览
  • 近日,保定飞凌嵌入式技术有限公司(以下简称“飞凌嵌入式”)携手瑞芯微电子股份有限公司(以下简称“瑞芯微”)正式加入2025年全国大学生嵌入式芯片与系统设计竞赛(以下简称“嵌入式大赛”),并在应用赛道中设立专属赛题。本次嵌入式大赛,双方选用基于瑞芯微RK3588芯片设计的ELF 2开发板作为参赛平台,旨在通过此次合作,促进产教融合,共同推动嵌入式系统创新人才的培养。全国大学生嵌入式芯片与系统设计竞赛是一项A类电子设计竞赛,同时也是被教育部列入白名单的赛事,由中国电子学会主办,是学生保研、求职的公认
    飞凌嵌入式 2025-03-20 11:53 62浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦