AUTOSAR的BswM模块详解

原创 嵌入式软件实战派 2021-06-20 19:30
↑点击上方蓝色字体,关注“嵌入式软件实战派”回复“AUTOSAR”获得更多实战教程。
0. 关于BswM模块
BswMBSW Mode Manager,它是实现位于 BSW 中的车辆模式管理(Vehicle Mode Management )和应用程序模式管理概念(Application Mode Management )的一部分的模块。
它的职责是根据简单的规则对来自应用层 SW-C 或其他 BSW 模块的模式请求进行仲裁,并根据仲裁结果执行操作。
BswM在AUTOSAR上跟很多模块有关联的,例如EcuM、ComM、OS等等,我们从下图就可以看出来:
BSWM的操作功能可以描述为两部分:Mode Arbitration Mode Control
Mode Arbitration部分启动模式切换,SW-C 或其他 BSW 模块接收的模式请求和模式指示基于规则的仲裁会触发模式切换。
Mode Control部分通过执行包含其他 BSW 模块的模式切换操作的Action List来执行模式切换。
BswM 应该被视为一个模式管理框架模块,其中的行为完全由其配置定义。
对于Mode Arbitration 和Mode Control,我们可以简单粗暴地理解为前者是条件判断的,后者是动作执行的。
以下内容,我们会接触到以下概念:Rules(规则)、Mode Request(模式请求)、Expression(表达式)、Action List(执行列表)等等,从下图可以看出,这几个东西都是AUTOSAR Configurator的BswM里面配置项。
1. Mode Arbitration
BswM 执行的Mode Arbitration是基于规则(rule-based)的而且很简单。用于Mode Arbitration的rules在 BSW Mode Manager模块的配置中指定。
这些规则由简单的布尔表达式组成,因此Mode Arbitration对运行时的影响很小。
为了知道要执行哪些Action List,BswM 需要检测来自先前规则评估的Mode Arbitration结果的变化。
1.1 Arbitration Rules
Rules是由一组模式请求条件组成的逻辑表达式。
当输入模式请求和模式指示改变时,或在 BswM主函数执行期间,将评估Rule。评估结果(True or False)用于决定执行相应的模式控制Action List。
1.2 Mode Conditions and Logical Expressions
构成模式仲裁规则的Logical Expressions可以使用不同的运算符,例如 AND、OR、XOR 和 NAND。表达式中的每一项都对应一个模式请求条件。这些条件验证所请求或指示的模式对于特定模式是 EQUAL还是NOT_EQUAL。下图显示了具有两个条件的示例Rule。Rule和可用逻辑操作集被定义为ECU 配置的一部分。
1.3 Requirements of Mode Arbitration
如上所述,BswM接受模式请求和模式指示作为模式仲裁的输入。模式请求通常源自应用程序SW-C,但也可能源自其他 BSW模块,例如 DCM。模式指示总是由其他BSW模块发出,例如不同的总线特定状态管理器、EcuM 和WdgM。
Immediate and Deferred Operation
有各种不同方式来调度处理Mode Arbitration:
  • 在模式请求或模式指示上下文immediately处理;

  • 推迟到BswM MainFunction(周期轮询函数)处理。

Immediate”请求在调用者的上下文中执行。系统集成商(如Vector)有责任确保操作列表的执行不会危及系统性能或一致性。
特别是,如果调用者在中断上下文中运行(或可能运行),则有关在中断上下文中使用系统函数的限制仍然适用。
ImmediateDeferred操作之间的区别在下图。
(1)Immediate Operation
(2)Deferred Operation
1.4 Arbitration Behavior after Initialization
BswM初始化后的Mode Arbitration行为由Configurator Container BswMModeInitValue控制。该参数可以为配置中的每个BswMModeRequestPort配置一次。例如
2. Mode Control
BswM的Mode Control部分根据Mode Arbitration的结果执行所有必需的操作。这是使用Action List完成的。Action List是由Mode Arbitration触发时BswM执行的动作的有序列表。
Action List中的Action可以分为三种类型:
  1. 调用其他BSW模块或 RTE。
  2. 链接到要包含在执行中的其他Action List。
  3. Mode Arbitration规则。当执行相应的Action List时,将评估这些规则。这样可获得规则的层次结构。
BswM不需要在其执行的操作上存储或响应任何 BSW 模块特定的返回值。因此,BSW 中的不同状态管理器将它们的当前状态给BswM,以用作Mode Arbitration的输入。但是,如果返回错误 (E_NOT_OK),BswM 可以发出 DEM事件和/或取消当前正在执行的Action List。
如图所示,BswM可能包含多个Action List,一个Action List可以容纳多个Action。为了减少Action List的总数,应该可以将它们级联。Action List的元素可以是具体动作或对另一个Action List的引用,或者如上所述,Mode Arbitration要执行的规则。应该有一个标志连接到每个动作列表条目,说明其类型(动作/引用/规则)。带有具体动作的列表和带有引用或甚至是混合列表的列表的激活方式应该没有区别。
2.1 Mode Processing Cycle
通过下图来讲解Mode Request的处理周期
  1. 模式请求者 SW-C 通过其发送者端口请求模式 A RTE 分发请求,BswM 通过其接收器端口接收它。
  2. BswM作为接收到的模式仲裁请求的结果或在 BswM 主函数执行期间循环评估其规则。
  3. 根据选择的执行方法执行相应的动作列表。
  4. 在执行动作列表时,BswM 可能会向 RTE Switch API发出一次或多次调用,作为通知受影响的 SW-C 仲裁结果的动作。任何 SW-C,尤其是模式请求者都可以注册接收模式切换指示。
注意模式请求者只能从本地BswM接收模式切换指示;这对于源自本地代理 SW-C 发出的不同 ECU 的请求也是如此。
2.2 Behavior of Mode Control after Initialization
BswM初始化后模式控制的行为由BswMRuleInitState 参数配置(在BswMRule Container内)。它定义了在初始化后第一次评估规则后决定执行哪个Action List时使用的“前一个评估结果”。配置参数BswMActionListExecution(在BswMActionList Container内)也会影响初始化后的动作列表执行。
BswMRuleInitState是什么样的,可见下图的“Rule Init State”
BswMActionListExecution可见下图的“Action List Execution”
3. BswM Interfaces and Ports
BSWM Service的 SW-C将定义RTE下的Port。每个使用Service的 AUTOSAR SW-C都必须在其自己的 SW-C中包含Service Port。这些Port使用相同的Interface接入,并且必须连接到BSWM的Port,以便 RTE可以生成适当的 ID和所需的符号。
以下讲讲Mode Request Port、Mode Switch Port、Mode Notification Port,即下图这几个东西:
3.1 Mode Request Ports
BSW Mode Manager必须声明一个接收器端口,其接口定义在 SW-C的上下文中:
RequirePort AppModeRequestInterface modeRequestPort_{ArbName}_{ReqName};
要读取当前请求的模式,BSW Mode Manager实现必须调用:
Rte_Read_modeRequestPort_{ArbName}_{ReqName}_requestedMode( &<variable> );
3.2 Mode Switch Ports
与Mode Request一样,BSW Mode Manager仅引用在其为模式切换提供端口的相应SW-C 描述上下文中定义的模式切换Port。对于上面的例子,Mode Switch的声明是:
ProvidePort AppModeInterface modeSwitchPort_{ModConName}_{SwitchName};
配置参数BswMModeSwitchInterfaceRef引用此模式切换接口。

要切换当前激活模式,BSW Mode Manager实现必须将以下调用之一插入其操作列表:
Rte_Switch_modeSwitchPort_{ModConName}_{SwitchName}_currentMode(<new_mode>);SchM_Switch_modeSwitchPort_{ModConName}_{SwitchName}_currentMode(<new_mode>);
 3.3 Notifications of Mode Switches
除了Mode Request之外,当前激活的模式也可以用作Mode Arbitration的输入。对于应用程序和车辆模式,BSW Mode Manager需要注册为模式用户。然后它通过Mode Switch Port接收有关更改模式的通知。对于上面的例子,模式通知的声明是:
注意:为了更容易区分ModeSwitchPort类型的RequirePortProvidePort,下面示例中RequirePorts被命名为Mode Notification Port。
RequirePort AppModeInterface modeNotificationPort_{ArbName}_{ModeName};
要读取当前激活模式,BSW Mode Manager实现必须调用以下函数之一:
Rte_Mode_modeNotificationPort_{ArbName}_{ModeName}_currentMode( &<variable> );SchM_Mode_modeNotificationPort_{ArbName}_{ModeName}_currentMode( &<variable> );
如果配置了增强型 Rte_Mode SchM_Mode,BSW Mode Manager实现必须调用以下函数之一:
Rte_Mode_modeNotificationPort_{ArbName}_{ModeName}_currentMode( &<variable>, &<previousmode>, &<nextmode> );SchM_Mode_modeNotificationPort_{ArbName}_{ModeName}_currentMode( &<variable>, &<previosmode>, &<nextmode> );
 
至于,BswM在应用中是怎么配置的,请看《AUTOSAR BswM Shutdown流程配置详解》,通过这个文件,你可以理解Rules和Action List是怎么用的,Notification又是干嘛的等等。
如果有疑问或者其他建议,请留言。

关注“嵌入式软件实战派”,回复“AUTOSAR”获得更多实战教程。

>>>猜你喜欢
AUTOSAR OS Hook总结
Os ShutdownHook调用深度剖析
MCAL SPI Module原理和配置详解
AUTOSAR Interrupt
MCAL Port Module使用详解与配置
MCAL Dio Module讲解与配置

AUTOSAR BswM Shutdown流程配置详解

详解BswM Initialization
详解EcuM Initialization


嵌入式软件实战派 专注嵌入式软件开发领域知识传授,包括C语言精粹,RTOS原理与使用,MCU驱动开发,AUTOSAR搭建,软件架构方法设计等。
评论 (0)
  • 收到富芮坤开发板已经有很久了,今天与大家分享基于REPL MicroPython实现本地音乐播放。什么是REPL?其实REPL是Read-Eval-Print Loop 的缩写,中文可以理解为“读取-求值-输出循环”。它是一种交互式编程环境,允许用户输入代码并立即看到执行结果。REPL 是许多编程语言(如 Python、JavaScript 等)的常见特性。在 MicroPython 中,REPL 是一个非常重要的工具,它允许开发者通过串口与 MicroPython 设备(如 ESP32、ESP
    逗徐坤 2025-02-23 22:23 72浏览
  • 1.keil SWD 烧录无法识别拿到开发板遇到得问题就是Keil无法烧录固件(跳线帽已经接到PB10 PB11), SWD 无法识别;这个无法烧录得原因是出厂demo里面的PB10 PB11被用做其他功能了。2.使用串口进行烧录将J9上得PB5与RX使用跳线帽连接,将PB4与TX使用跳线帽连接 打开烧录软件,如图选择待烧录固件复位开发板就可以自动进行烧录。3.烧录USB CDC 进行测试固件烧录成功后 DAP 烧录可以正常识别了;但是现在还无法直接使用keil进行烧录,因为没选择烧录算法,烧录
    neebourne 2025-02-23 21:02 80浏览
  • 第一回 谷歌布阵出奇谋 Transformer横空定乾坤诗曰:滚滚代码东逝水,浪花淘尽英雄。循环卷积转头空,参数依旧在,几度夕阳红。白发学者芯片上,惯看秋月春风。一壶咖啡喜相逢,AI多少事,都付笑谈中。话说天下大势,分久必合,合久必分。自辛格顿老仙以反向传播算法一统江湖,深度学习门派分立。有循环门(RNN)仗着时序秘法盘踞文本疆域,卷积派(CNN)凭空间绝技割据图像河山。两派相争数十年,虽各有胜负,却难破"长程遗忘""梯度消散"之困局。忽一日,谷歌祭出绝世秘籍《Attention Is All
    Leagowang 2025-02-22 21:44 77浏览
  •         在当今高度集成化和智能化的电子行业中,静电放电(ESD)和闩锁效应(Latch-Up,以下简称LU)是两大核心挑战。它们不仅可能导致芯片性能下降,甚至会造成永久性损坏,严重影响产品的可靠性和用户体验。因此,开展全面而有效的ESD测试和LU测试,对于电子行业而言至关重要。       ES612A型静电放电测试仪是一款专为评估晶圆级和封装级器件而设计的测试仪。该测试仪旨在满
    ESDEMC静电放电电磁兼容 2025-02-24 15:06 44浏览
  • 一、引言:MCU的跨界赋能与普冉技术定位      在万物互联的时代浪潮下,嵌入式微控制器(MCU)正从传统工业控制领域向消费电子市场快速渗透。智能手表、电动玩具、厨房电器等设备的“智能化”升级,离不开高性能、低功耗、高集成度的MCU支持。普冉半导体凭借其基于ARM Cortex-M0+内核的MCU产品线,通过工艺创新与场景化设计,在消费电子领域开辟了一条独特的国产替代路径。 普冉Cortex-M0+ MCU的核心竞争力在于:以32位处理器的性能实现8位处理器的成本
    中科领创 2025-02-22 17:12 70浏览
  • 引言:智能家居设备的“双刃剑”——功能升级与续航/设计挑战 随着智能家居设备功能日益复杂化,用户对续航时间、设备体积和成本的要求也愈发严苛。以智能门锁为例,集成指纹识别、蓝牙连接、远程报警等功能已成为市场标配,但电池续航却难以突破1年大关;温控器需要24小时待机并实时监测环境数据,如何在低功耗与高性能间平衡成为行业难题。普冉MCU凭借低功耗硬件架构与高集成设计,直击这一矛盾,为智能家居设备提供“鱼与熊掌兼得”的解决方案。本文将以智能门锁与温控器为锚点,拆解普冉MCU如何破解续航焦虑与设计瓶颈。第
    中科领创 2025-02-22 17:21 45浏览
  • 材料的电学性能主要包括导电性、介电性、压电性和热电性等,这些性能决定了材料在电场或温度变化时的行为和响应。材料的电学性能是描述其在电场作用下的各种物理现象的重要参数。以下是一些主要的电学性能:一、导电性导电性是衡量材料传导电流能力的物理量。金属是最常见的导电材料,其内部自由电子可以在电场作用下自由移动,从而形成电流。除了金属,某些离子液体和电解质也具有良好的导电性。导电性在电线、电路板和电极材料的选择中至关重要。二、介电性介电性描述的是材料在电场中的极化能力和储存电荷的能力。介电材料在电场中会发
    锦正茂科技 2025-02-24 11:35 63浏览
  • 在电磁兼容(EMC)领域,解决干扰问题的核心在于围绕EMC三要素——干扰源、耦合路径、敏感设备——进行系统性分析与设计。以下从三要素出发,结合具体案例与策略,探讨如何实现电磁兼容性优化。时源芯微   专业EMC解决方案提供商  为EMC创造可能一、EMC三要素的理论框架根据电磁兼容理论,任何EMC问题的产生必须同时满足三个条件:干扰源的存在、耦合路径的传导或辐射、敏感设备受到干扰29。因此,解决EMC问题的核心策略是:抑制干扰源:降低干扰源的强度或频率;阻断耦合路径
    时源芯微 2025-02-24 14:34 76浏览
  • 第六回 闪电门奇袭显威 混合阵诡变惊四方诗曰:显存如渊锁蛟龙,分块重算破九重。参数浩荡终有尽,巧夺天工方为雄。却说斯坦福闪电门主Tri Dao,率弟子苦修《FlashAttention》心法。这日闻得谷歌Transformer大军压境,冷笑道:"彼辈空有千亿参数,岂知算力调度之妙?" 遂布下"分块爆破阵",将注意力矩阵斩作碎玉残片。但见:显存读写如电闪,长文吞吐似龙吟。百万token过眼处,不滞片叶惊鬼神。谷歌先锋BERT连退三十里,折损三成算力。闪电门自此威震江湖,得号"显存刺客"。第七回 法
    Leagowang 2025-02-22 22:13 61浏览
  • 最近DeepSeek非常热门,市场热度甚至超过2023年的GPT,因为它由中国研发,不受互联网“墙”的限制就能使用。国内多数普通人应该都听说过GPT,但有不少人可能还没用过。上周参与一个在线话题活动,参加的多是科技类公司的产品经理,主题是“机器人+AI”用于老龄化产品的可行性。我在活动上提了些我的观点,我认为当前的AI技术虽然看起来聪明,但要应用于适老化机器人,会有挺大风险。后来被主持人调侃为“思想有待进步”。其实我也知道,AI和机器人在非常热门的宣传阶段,你要“胆敢”说技术还不成熟、有风险,就
    牛言喵语 2025-02-23 22:32 115浏览
我要评论
0
8
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦