作者:刘向
出品:汽车电子与软件
平台健康管理(Platform Health Management)负责监测和维护整个平台的健康状态。它通过持续追踪各个AA中的检查点报告的运行情况来确定其本地状态,并基于所有应用报告的本地状态信息推导出平台的整体健康状况。
作为一个功能集群,平台健康管理包括一个C++库(librb-phm.so),为应用程序提供API,允许监督应用实例的执行并监督其状态。同时,还包括一个运行时进程守护程序(rb_phmd),支持基于各个受监督应用实例的本地状态推导出全局平台健康状态。这些C++ API实现于AUTOSAR标准命名空间ara::phm中。
一旦检测到故障,平台健康管理会及时通知状态管理(State Management)模块。作为系统的协调中心,状态管理负责分析错误并决定适当的恢复措施,以确保平台的稳定性和可用性。
此外,平台健康管理还与硬件看门狗(watchdog)进行集成。在遇到严重故障时,除了通知状态管理之外,还可以触发硬件看门狗的响应,以便执行更为紧急的处理措施,确保系统的快速恢复。
注:Adaptive application :自适应应用程序,简称AA
AUTOSAR Support for Functional Safety Elements
受监督实体(Supervised Entity, SE):
平台健康管理负责监控受监实体。每个受监实体映射到一个进程的全部或部分。只要相应的进程处于活动状态,监控就会持续进行。
Supervised Entity是包含在监控范围内的SwComponentType(软件组件类型)的整体或部分。受监实体表示在相应的SwComponentType内的检查点集合。一个SwComponentType可以包含零个、一个或多个受监实体。一个受监实体可以被多次实例化,在这种情况下,每个实例都将被独立监控。
受监实体实例的监控结果体现在基本监控状态中。每个活动监控、截止时间监控和逻辑监控都有一个基本监控状态。功能组内基本监控的状态被汇总到相应的全局监控状态中。
恢复操作: 当监控到SE发生错误或故障时,PHM可以触发一系列恢复操作,如请求重启进程、执行重置动作或将错误信息报告给诊断管理。
状态仲裁和控制: PHM通过状态仲裁和控制来执行恢复操作,这涉及到评估条件、表达式和规则,以确定是否需要采取行动。
健康通道(Health Channels):健康通道是一种机制,用于绑定外部监控结果(如RAM测试、电压监控等)并将这些信息报告给PHM。
健康状态(Health Status):健康状态是PHM用来从健康通道获取信息的抽象格式,它可以代表软件的全局状态、环境监控算法的结果或操作系统的状态。
注意:健康通道是AP AUTOSAR中已废弃的功能。Health Channels are set to obsolete(R21-11)
进程:进程是在机器上将要执行的可执行文件的加载实例。
功能组:Function Group是一组相互关联的进程,需要一致地进行控制。根据功能组的状态,进程会被启动或终止。
平台健康管理(PHM)扮演着至关重要的角色,它全面监控整个平台的健康状态,涵盖了诸如“正常运作”、“过电压”及“欠电压”等多种状态。这一机制依赖于一个或多个由应用程序实例实时更新的监督状态,以确保对平台运行状态的精确追踪。
PHM通过汇总每个本地监督实体的状态信息,形成一个统一的全局监督状态。这一综合视图为平台健康状况提供了全面的概览。当PHM模块敏锐地察觉到应用程序的运行状态偏离了预设的期望值时,它会迅速响应,触发一系列预先在配置文件中定义好的恢复操作。
这些恢复操作不仅详尽地规定了触发恢复的具体条件,还清晰地列出了在检测到问题时需要执行的恢复步骤。PHM不仅保障了车载软件应用程序的稳定运行,更在问题初露端倪时,就能采取及时且有效的恢复措施,从而最大限度地减少了潜在的系统故障和停机时间。
平台健康管理(PHM) 通过监督实体(Supervised Entity)支持对应用实例的监督。一个自适应应用可以包含零个、一个或多个监督实体,并可以对每个监督实体进行以下监督:
截止时间监督 Deadline Supervision:检查“开始”和“结束”检查点之间的执行时间。
存活监督 Alive Supervision :检查在给定时间内报告的检查点数量是否符合预期。
逻辑监督 Logical Supervision :检查应用是否按照预期路径执行(即从一个检查点到另一个检查点的允许过渡;通常是开发人员定义的软件执行顺序)。
图1 PHM 监督方式
3.1 截止时间监督Deadline Supervision
Deadline Supervision是一种用于监测非周期性任务的运行时长是否满足设计要求的机制。
目的:Deadline Supervision的目标是检查两个检查点之间的执行时间是否低于给定的上限执行时间。这对于需要关注某段程序运行时间的应用程序非常重要,因为过长或过短的执行时间都可能表明程序执行异常。
工作原理:在Deadline Supervision中,用户将配置起始检查点(Start Checkpoint)和结束检查点(End Checkpoint)。这两个检查点之间的实际执行时间将受到监督,以确定运行时间是否在合理范围内。
检查点配置:对于每个监督实体(Supervised Entity)的Deadline Supervision,必须配置两个检查点如图CP1和CP2。这是因为Deadline Supervision针对两个检查点之间的过渡执行时间进行监督。
算法逻辑:Deadline Supervision需要两种类型的检查点:起始检查点和结束检查点。用户通过配置参数来设定这些检查点。在运行到起始检查点时启动Deadline Supervision,在运行到结束检查点时,AA使用ReportCheckpoint API来表示它已经达到测量执行时间的开始和结束。计算运行时间是否在配置的合理范围内。
可能的结果如下:
在范围内:测量的时间在为监督实体配置的[最小,最大]范围内。
太长:在配置的最大时间内未报告结束检查点。
太短:测量的时间小于配置的最小时间。
3.2 存活监督Alive Supervision
在存活参考周期结束后,平台健康管理系统会根据收集到的检查点指示次数进行结果判定。可能的结果包括:
在范围内:存活指示等于预期存活指示或在设定的边界范围内。
低于最小边距:存活指示少于允许的最小偏差。
超过最大边距:存活指示多于允许的最大偏差。
3.3 逻辑监督 Logical Supervision
检查点报告:受监督实体在其执行的关键位置报告检查点。
顺序验证:PHM验证检查点的报告顺序是否符合预定义的监督图,而不考虑时间因素。
4.1 本地监督状态 Local Supervision Status
OK:如果为受监督实体配置的存活、截止时间或逻辑监督中没有任何一个失败。
FAILED:如果配置的存活监督中有一个失败但仍可恢复,并且所有其他配置的监督都是“OK”。
EXPIRED:如果存活、截止时间或逻辑监督中至少有一个失败并且已过期。一旦本地监督切换到“EXPIRED”,它将无法返回“OK”。
4.2 全局监督状态 Global Supervision Status
“OK” - 如果配置的受监督实体组的所有本地监督状态都是OK。
“FAILED” - 如果配置的组中至少有一个受监督实体的本地监督状态为“FAILED”,而没有任何一个切换到“EXPIRED”。
“EXPIRED” - 如果配置的组中至少有一个受监督实体的本地监督状态为“EXPIRED”。一旦全局监督切换到“EXPIRED”,它将无法返回“OK”。
“STOPPED” - 如果全局监督已过期,并且自过期以来的时间等于或大于配置的SupervisionMode.expiredSupervisionTolerance。
4.3 本地监督状态和全局监督状态的关系:
全局监督状态是本地监督状态的集合和汇总。每个全局监督都涵盖了一组受监督实体SE,这些实体的本地监督状态共同决定了全局监督的状态。
如果所有受监督实体的本地监督状态都是“OK”,则全局监督状态为“OK”。
如果有任何一个受监督实体的本地监督状态为“FAILED”但无“EXPIRED”,则全局监督状态为“FAILED”。
如果有一个或多个受监督实体的本地监督状态为“EXPIRED”,则全局监督状态为“EXPIRED”,并且一旦达到此状态,它将无法返回“OK”。
在全局监督状态为“EXPIRED”后,如果经过的时间等于或大于配置的容忍时间,则全局监督状态将变为“STOPPED”。
组成全局监督的所有监督都对应于单个功能组上下文中控制的进程;
一个监督只能属于一个全局监督。
4.4 监督模式 Supervision Mode
4.5 监督模式条件 Supervision Mode Condition
4.6 状态管理的恢复通知
4.7 设计与部署之间的关系
4.8 监督策略Supervision Strategies
截止时间监督:实体必须进行两个检查点API调用,以指示受监督部分的开始和结束。
存活监督:实体进行一个单一的检查点API调用,通常在受监督实体的执行开始时定期报告。
逻辑监督:实体在执行过程中进行一系列检查点API调用。平台健康管理验证序列的有效性。
5.1 工作原理
5.2 与PHM守护进程的交互
配置看门狗:PHM守护进程通过环境变量来配置看门狗设备,包括设备文件名、最大超时时间等关键参数。
周期性服务:如果看门狗已配置,PHM守护进程会在每个周期中服务看门狗一次,即发送“喂狗”信号以重置计时器。
恢复操作:如果看门狗因超时而触发复位信号,则系统会根据预设的恢复策略执行相应的恢复操作,如重启PHM守护进程、重启整个系统或执行其他预定义的恢复措施。这些恢复操作并不直接依赖于Global Supervision Status,而是由看门狗设备的配置和系统的恢复策略共同决定。
5.3 恢复操作机制
5.4 与Global Supervision Status的关系
5.5 看门狗控制
5.6 看门狗配置
必要的基本设置:
deviceFilePath:指定与看门狗设备接口所需的设备文件的完整路径。
maxTimeout:设置看门狗设备的最大超时时间(以毫秒为单位)。
可选设置:
deactivateOnShutdown:如果设置为true,则当PHM守护进程关闭时,看门狗设备将被停用(默认值为true)。
requireMagicClose:如果设置为true,则当停用设备时,PHM守护进程会向看门狗设备写入特定的关闭字符。
多个看门狗的并行配置:
可以通过添加后缀(如Watchdog_1, Watchdog_2等)来配置多个看门狗设备。每个看门狗设备都有独立的设备文件路径和配置参数。
AUTOSAR_AP_RS_PlatformHealthManagement.pdf AUTOSAR_AP_SWS_PlatformHealthManagement.pdf AUTOSAR_AP_EXP_PlatformDesign.pdf AUTOSAR_AP_TPS_ManifestSpecification.pdf
-end-
本专栏是由汽车电子与软件打造的中立性技术科普专栏,将系统地阐述软件定义汽车下的关键挑战和工程实践。欢迎订阅本专栏!