汽车所有系统(一文熟悉汽车电子系统的心脏与大脑:BSW模块)

2025年02月08日 来源: 点击:

作者 | 海角

出品 | 焉知


原标题:AUTOSAR标准化的主要领域之一:BSW


想象一下汽车内部的电子系统就像是一个复杂的城市交通网络,每辆车都必须遵循相同的交通规则才能确保安全、高效地运行。AUTOSAR就像这个交通规则集,它为所有汽车制造商和供应商提供了一个共同的标准,使得不同来源的软件组件可以无缝协作。而在这个标准中,基础软件模块(BSW)就是那些支撑整个城市交通系统的基础设施,如道路、桥梁和交通信号灯等。它们不仅连接着城市的各个部分,还确保了车辆能够顺利通行。


什么是BSW?

BSW模块就像是汽车电子系统的“心脏”与“大脑”,它负责管理从操作系统到通信协议的所有底层操作。这些操作包括但不限于任务调度、内存管理、数据传输以及硬件控制。简而言之,BSW确保了所有必要的服务都能稳定且高效地运行,从而使应用软件组件(ASW)可以专注于执行其特定的功能,比如导航、娱乐或自动驾驶等。


BSW、ASW、RTE的关系

如果将汽车比作一个人体,那么ASW就如同人体的各种技能——走路、说话、思考等;而BSW则是支持这些技能的身体器官——心脏、肺部、大脑等。RTE则像是神经系统,它连接了身体器官与各种技能,确保信息能够在两者之间顺畅传递。通过这种分层设计,AUTOSAR实现了高度的灵活性和可复用性,让开发人员可以更容易地创建新的应用和服务。


BSW模块的分层架构

BSW的设计采用了分层结构,这就好比是建造一座高楼大厦,每一层都有其特定的功能和作用,同时又相互依赖。


1)服务层:位于最顶层,提供了诸如操作系统(OS)、网络通信(COM)等关键服务。


2)ECU抽象层:中间层,负责将底层硬件资源进行抽象化处理,为上层提供统一接口。


3)MCAL:最底层,直接与硬件交互,如微控制器驱动程序(ADC, CAN, LIN等)。


各个层次的功能和相互关系

每个层次都是不可或缺的,服务层就像是大楼的顶层公寓,拥有最好的视野和最高的价值;ECU抽象层则是中间楼层,起到了承上启下的作用;MCAL则是地基,虽然看不见,但却是整座大楼的基础所在。这三个层次紧密合作,确保了整个建筑的稳固和高效运作。


BSW的核心模块详解

深入探讨BSW的核心模块就像是打开一辆豪华跑车的引擎盖,探索其内部构造一样令人兴奋。每个模块都扮演着关键角色,确保整个系统能够高效、稳定地运行。


服务层

服务层是BSW中直接与应用软件组件(ASW)交互的部分,它提供了各种基础服务,使得上层应用可以专注于业务逻辑而无需关心底层硬件的具体实现。


1)操作系统(OS):操作系统在BSW中起着至关重要的作用,它负责管理处理器时间、内存分配、任务调度以及中断处理等核心功能。想象一下一个繁忙的机场,操作系统就像是那个指挥塔,它需要协调每一架飞机的起飞和降落,确保它们不会相互干扰。对于汽车电子系统而言,操作系统同样需要确保每一个任务都能得到及时处理,避免任何可能的安全隐患。


2)通信服务(COM, IPDUs等):通信服务是BSW中的“信息快递员”,负责处理车辆内外的数据交换。这些数据可能是来自车内不同ECU之间的指令,也可能是与外部设备或基础设施的通信。例如,在自动驾驶场景下,车辆需要实时接收来自雷达、摄像头和其他传感器的信息,并将这些信息传递给决策单元进行分析。这就要求通信服务必须具备高效率和可靠性,以确保信息能够在正确的时间被正确处理。


3)存储管理(NVRAM Manager):NVRAM Manager确保重要数据在断电后仍能保存,就像是一位可靠的档案保管员。在汽车环境中,这意味着即使车辆熄火,某些关键数据(如故障诊断记录、用户偏好设置等)也需要被安全存储以便下次使用。这不仅提高了用户体验,还为后续的维护工作提供了便利。


4)其他服务(如诊断、网络管理):除了上述功能外,服务层还包括了诸如诊断和网络管理等功能。诊断服务就像是系统的“医生”,它可以帮助识别潜在的问题并提供解决方案。例如,当某个传感器出现故障时,诊断服务可以快速定位问题所在,并通知维修人员采取相应措施。而网络管理则负责监控和控制车载网络的状态,确保所有连接都是健康且高效的。


ECU抽象层

ECU抽象层的作用是将硬件资源进行抽象化处理,为上层提供统一接口,简化了软件开发过程。


1)输入输出硬件接口(I/O Hardware Abstraction):

I/O Hardware Abstraction让软件能够轻松访问各种传感器和执行器,就像一把万能钥匙。无论你是想读取温度传感器的数据还是控制车窗电机的动作,这个接口都可以帮助你实现目标,而不需要了解具体硬件的工作原理。这种抽象大大降低了开发难度,并提高了代码的可移植性。


2)内存抽象(Memory Abstraction):

内存抽象使不同类型内存的使用变得简单,如同一位魔术师。无论是RAM、ROM还是Flash Memory,开发者都可以通过这一层获得一致的操作体验。这对于那些需要跨平台部署的应用程序来说尤其重要,因为它减少了针对特定硬件优化的需求。


3)通信硬件接口(COM HW Interface):

通信硬件接口确保数据可以通过各种通信渠道准确无误地传输,像是一座坚固的桥梁。无论是CAN总线、LIN总线还是以太网,COM HW Interface都能够提供可靠的支持,保证数据能够在复杂的车载网络中顺畅流通。


MCAL


MCAL层是最接近硬件的部分,它包含了微控制器驱动程序,直接控制微控制器的各种外设。


微控制器驱动程序(ADC, CAN, LIN等):微控制器驱动程序相当于一群训练有素的技术工人,它们各自负责不同的任务,如模拟信号转换(ADC)、控制器局域网通信(CAN)、本地互连网络通信(LIN)等。这些驱动程序是硬件与软件之间的桥梁,确保了上层应用能够有效地利用底层硬件资源。例如,ADC驱动程序可以将传感器采集到的模拟信号转换为数字信号,供后续处理使用;而CAN驱动程序则确保了车辆内部各个ECU之间能够高效、可靠地交换信息。


BSW的一致性类(ICCs)


为了适应不同的项目需求和复杂度,确保在满足特定功能要求的同时,允许一定程度的灵活性和简化。通过定义不同的一致性级别,AUTOSAR标准允许开发者根据项目的具体需要选择适合的实现方式,这有助于降低开发成本、缩短开发周期,并提高软件组件的可重用性和互操作性。分为以下3种等级


ICC1:RTE和整个BSW放在同一个集群中。


接口要求:RTE和COM组件之间的接口以及与总线的接口必须符合AUTOSAR标准。


特点:RTE和BSW之间的接口并不标准,因此RTE的实现是专有的。


功能要求:BSW和RTE的ICC1实施必须提供标准化的功能和行为,例如ASW组件运行实体的调度。


ICC2:逻辑上相关的模块被打包成独立的集群,例如所有与通信相关的模块组成一个集群。


接口要求:集群之间的接口、ASW组件接口和总线接口必须符合AUTOSAR标准。


特点:可以集成来自不同供应商的BSW集群,例如使用来自供应商A的通信栈和供应商B的操作系统。


ICC3:ICC3 实现“最高”等级的 AUTOSAR 兼容性。在这里,所有由 AUTOSAR 定义的 BSW 模块用它们相应的接口来展示。


特点:这里不存在聚类模块,这意味着每个BSW模块都单独存在,并且通过其定义的接口与其他模块交互。


优势:这种配置提供了最高的灵活性和可扩展性,因为每个模块都是独立的,可以根据需要进行替换或升级,而不会影响其他模块。


总结


ICC1:适用于最初的迁移阶段,将RTE和BSW作为一个整体,简化了迁移过程。可以类比乐高积木想象为的所有的积木被粘在一起,形成一个大块,这样简单但不灵活。


ICC2:更灵活,允许将逻辑上相关的模块打包成独立的集群,提高系统的灵活性和可扩展性。积木被分组,比如一组是轮子,一组是车身,这样可以在保持基本结构的同时更换部分积木。


ICC3:实现了最高级别的AUTOSAR兼容性,每个BSW模块都单独存在并通过定义的接口与其他模块交互,提供了最大的灵活性和可扩展性。每块积木都是独立的,可以通过特定的接口连接,这样最灵活,可以任意组合和替换积木。

相关文章
友情链接