[Adaptive Autosar]深入理解--State Management
作者:互联网
目录
State Management 即状态管理,以下简称SM。 查看时,可对比CP中BswM。
1.SM简介
状态管理主要作用是
- 负责收集用户应用程序的状态请求,包括保持通信或保持ECU活动;
- 监控来自Hypervisor的命令;
- 监控网络管理的状态;
- 仲裁这些需求,控制总体的ECU到一个特定的状态,最后将最终状态反馈给EM模块,由EM模块来负责切换状态,控制应用程序的启动和停止。
如下图所示,是典型的EM SM 之间状态交互。
启动流程:
运行或关闭流程:
这里需要说明下 一般machine state 一般都是平台固定的,至少包含 startup restart shutdown,而用户自定义的功能组的状态,可以不限于此。
2.SM架构
从架构中,可以看出,SM主要和网络管理,电源管理,诊断与升级以及EM等关联交互,并提供标准的服务。
2.1 SM 与Adaptive Applications
提供 TriggerIn TriggerOut 以及 TriggerInOut等接口,根据收到以及通知的接口,进而影响关联的AP应用。上图主要展示了一个异步通过SM影响另一个应用的案例。
2.2 SM 与 PowerMode
这里的PowerMode包含以下几个模式:
- On:接收此 PowerMode 的建模进程正常运行,因为它是由 ExecutionManagement 生成的。 它用于“撤消”其他 PowerMode 请求。 刚刚生成的建模进程的行为应该像请求 PowerMode 一样“开启”。
- suspend:此PowerMode 旨在用作向建模进程发出系统暂停的信号。 必要行动的实施将因项目而异,并且可能取决于环境。
- Off:接收此PowerMode 的建模进程的行为就像它接收来自执行管理的SIGTERM,除了退出。
PowerMode 主要实现所谓的延迟唤醒功能:
若在进行关机期间发现新的唤醒原因。 当找到新的唤醒原因时,将向进程发送“开启”请求,因此它们可以立即继续其“正常”工作,而无需再次生成。
若收到“关闭”PowerMode并随后从EM接收到 SIGTERM 的进程可以更快地执行其关闭,因为它已经完成了为退出做准备的所有必要步骤。
上图主要通过广播powermode ,采用同步方式 来通知各个应用模式进行关闭。
2.3 SM 与 诊断
与诊断相关的主要是诊断复位相关,诊断提供 ara::diag::EcuResetRequest 接口将 ECU reset服务请求转发到状态管理。 状态管理处理请求并执行诊断地址相关实体的reset。
2.4 SM 与 PHM
PHM,平台健康管理负责通过本地监管监控被监管实体并检查健康渠道的状态。当检测到停止状态或其他需要SM的状态时,就会通知SM。SM则评估PHM给的状态,并根据项目指定做对应的恢复操作。
2.5 SM 与 UCM
UCM,即更新和配置管理 负责安装、删除或更新软件集群作为最小的可更新实体。
首先UCM询问SM,是否允许升级,SM收到UpdateRequest,调用RequestUpdateSession进行核对是否允许升级,若允许升级 则SM会阻止系统关闭,即使出现重启,重启后也能继续升级。
此外SM应提供 准备升级,准备验证,准备回滚等接口。
升级完成后,应停止升级会话。
2.6 SM 与NM
这里的application1 触发外部网络事件,SM则将状态信息通过到NM,最终NM处理该事件后再通知到 SM。
2.7 SM 与EM
EM主要用于执行功能组状态的切换。
标签:EM,状态,Autosar,Management,--,PowerMode,升级,诊断,SM 来源: https://blog.csdn.net/AgingMoon/article/details/123609505