Autosar AP – SM职责

Function Group(功能组)

     Function Group即一组相互关联,需要统一控制的进程的集合。 依据Function Group的状态,启动进程或者终止进程。

     AUTOSAR中,Function Group的状态被称为Function Group State。主要和用户级应用有关。

     每一个应用都可以在Execution Manifest中定义在那些Function Group States的情况下,它的进程可以运行。

SM内部状态

     状态管理是负责确定当前内部状态的功能集群,SM接收可能改变内部状态的事件,并对事件进行评估:

       ▪ 事件类型 Event type (根据项目需求定义)

       ▪ 事件优先级 Event priority (根据项目需求定义)

       ▪ 应用标识符 (R21-11中不支持)


     如果触发了SM内部状态的修改,可能要去请求EMFunction Groups或者Machine State设置为新的状态。

     状态修改请求可以来自这些AUTOSAR Adaptive平台应用:

       ▪ PHM触发了错误恢复,例如激活后备功能

       ▪ 诊断请求切换到其他的诊断状态,并且触发了系统重启

       ▪ UCM模块将系统切换到升级或者升级验证状态

       ▪ NM模块设置网络状态。NM并不会主动请求,NM提供几组NetworkHandle字段,SM可以注册到这些handle并             在NM更改这些字段时进行相应处理

      SM会最终根据项目需求做出决定。

SM内部状态

   

     AP应用会通过ara:com接口提供他们的属性或者事件给到SM,以触发SM内部事件。由于SM功能非常关键,必须保证其他应用的访问是受保护的(例如借助IAM模块)。

      SM模块应当被PHM模块监控并监管

      ▪ SM通过 ara::com 提供了一系列的 Trigger Notifier fieldsSM 监听 Triggers,执行状态机处理,将影响提供给 Notifier

状态管理中定义了Machine statefunction group state功能组状态的当前集合,并通过反馈状态改变的请求给执行管理(EM)它们来启动状态转换。

MachineState 机器状态

     Machine StateFunction Group State的特殊类型。

    

     1. EM要求每个机器至少配置有一个功能组,这个功能组叫做“机器状态”功能组,它的功能组状态叫做机器状态,代表了机器的全局状态。主要用于控制机器生命周期(启动/关闭/重启)、平台级进程和其他基础设施。

     2. “机器状态”功能组有一些标准强制的状态,除此以外,也可以根据需求定义其他的状态,在machine manifest中定义。EM本身并不会去由自身触发状态变更,都需要由SM来统一管理,为了在任何状态下,其他应用都能影响状态的改变,SM需要保证被配置在Manifest文件中所有状态,包括启动,关闭和重启状态下,都需要运行。

        Startup

        Shutdown

        Restart

     3. AUTOSAR标准定义了许多预定义的MachineState状态,也可以根据需要定义其他状态。

     功能组状态(包括机器状态),定义了当前运行的进程集合。每个APP可以在Execution Manifests里声明它应该在哪个功能组状态里运行。机器状态(包括其他功能组状态)SM来请求,活动的状态集受车辆范围内的事件和模式显著的影响。

MachineState 机器状态

     Machine StateFunction Group State的特殊类型。

    

     1. EM要求每个机器至少配置有一个功能组,这个功能组叫做“机器状态”功能组,它的功能组状态叫做机器状态,代表了机器的全局状态。主要用于控制机器生命周期(启动/关闭/重启)、平台级进程和其他基础设施。

     2. “机器状态”功能组有一些标准强制的状态,除此以外,也可以根据需求定义其他的状态,在machine manifest中定义。EM本身并不会去由自身触发状态变更,都需要由SM来统一管理,为了在任何状态下,其他应用都能影响状态的改变,SM需要保证被配置在Manifest文件中所有状态,包括启动,关闭和重启状态下,都需要运行。

        Startup

        Shutdown

        Restart

     3. AUTOSAR标准定义了许多预定义的MachineState状态,也可以根据需要定义其他状态。

     功能组状态(包括机器状态),定义了当前运行的进程集合。每个APP可以在Execution Manifests里声明它应该在哪个功能组状态里运行。机器状态(包括其他功能组状态)SM来请求,活动的状态集受车辆范围内的事件和模式显著的影响。

Function Group State 功能组状态

   

     如果在机器上安装了一组功能一致的应用,那么有一起控制它们的能力是很重要的,因此AP提出了功能组的概念。

每个功能组有着它自己的进程集和状态集(功能组状态),每个功能组状态定义了当SM请求激活哪个状态时,哪些进程将会被EM启动,每个功能组至少有一个进程,最多由实现限制。作为一个控制应用的进程启动和停止的工具,系统集成者可以将进程分配到功能组状态,然后用SM来请求它。

   

    主要用于单独启动和停止功能一致的用户级应用程序进程组,即用于控制(通常是功能上的)相关应用程序实例的执行。它们可以在机器清单中配置。

        ▪ 过程状态:流程状态用于应用程序生命周期管理,由执行管理内部状态机实现。

        ▪ 执行状态:执行状态表征应用程序可执行文件(即进程)的任何实例的内部生命周期。每个进程必须向执行管理报告执行状态更改。

        ▪ 实例的执行状态:此状态由应用程序实例本身在内部管理,例如使用ReportExecutionState API,因此不受状态管理功能集群的控制。

总得来说,机器状态用来控制机器和平台级别的应用的生命周期(启动/停止/重启),其他的功能组状态单独控制属于同一功能的用户级别应用,当然这并不意味着所有的平台级应用都必须要被机器状态控制。

 一个进程必须分配到一个,且只能分配到一个功能组。

 

SM架构

     AUTOSAR_SWS_StateManagement.pdf

     -> 5.1 Platform dependencies

     SM对平台依赖如下:

     1. Operating System Interface

     2. Execution Manager Interface

     3. Platform Health Management

     4. Diagnostic Management

     5. Update And Configuration Management

     6. Network Management

 

SMAPP交互

    当EM需要改变进程的内部行为时,它需要将进程从中存储中移除,然后将可执行程序从文件系统载入到内存当中。这样的操作非常消耗带宽,CPU负载和执行时间。

    因此,SM提供一个带有“Notifier" Field的服务接口,每一个AP应用都可以订阅它,每当SM内部状态发生改变时都可以通过这个接口通知到应用。当应用收到这个提醒后,可以执行相应操作。

    相反地,AP应用也可以借由SM带有"Trigger" field的接口,影响SM的行为。当然,你需要把这个AP应用配置相应的权限,否则无法通过这个field写入任何值。

    SM还提供第三种接口,它既有Trigger又有Notifier,当Trigger值发生变化时,SM根据Trigger值进行相应操作,最终也会改变Notifier并通知。

"Trigger" field  - TriggerIn_{StateGroup}

" Notifier " field  - TriggerOut_{StateGroup}

■ 多个APP同步

Autosar Ap在某些场景需要更复杂的处理,SM内部状态的改变只能是相关的模块处理触发专用状态时才能完成。目前SM有两个不同的用例:

1. 针对电源模式,通知机器中所有运行的模块处理;
2. 针对诊断重置原因,通知所有运行的模块处理;

为了处理不同Modelled Processes组的通信,提出了通信组的概念。

通信组,服务端:

1. 向组内所有客户端广播消息;
2. 向组内专用客户端发送消息
3. 获得所有组内客户端表
4. 接收组内所有客户端回复

通信组,客户端:

1. 从服务器接收消息
2. 向服务器发送回复

■ 针对APP(包括平台APP)的电源模式

Autosar Ap在某些场景需要更复杂的处理,SM内部状态的改变只能是相关的模块处理触发专用状态时才能完成。目前SM有两个不同的用例:

1. 针对电源模式,通知机器中所有运行的模块处理;
2. 针对诊断重置原因,通知所有运行的模块处理;

为了处理不同Modelled Processes组的通信,提出了通信组的概念。

通信组,服务端:

1. 向组内所有客户端广播消息;
2. 向组内专用客户端发送消息
3. 获得所有组内客户端表
4. 接收组内所有客户端回复

通信组,客户端:

1. 从服务器接收消息
2. 向服务器发送回复        

 

 

 

SM请求初始机器状态Driving的过程如图:

SM启动并成功汇报给EM启动状态之后,EM通过ConfirmMachineState通知SM模块,已经是Startup状态,启动流程已确认,然后SM模块会使用SetState接口,并将Machine State -- Driving传递到EM模块,由EM模块进行后续操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小火球2.0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值