目录
2.1.2.3 SMU_core到Ports(ErrorPin)的接口
2.1.8 故障信号协议 (Fault Signaling Protocol, FSP)
2.1.8.2 Bi-stable fault signaling protocol
2.1.8.4 Time switching protocol
2.1.8.6 FSP and SMU_core START State
前言
SMU模块是Aurix芯片自带的一个功能安全硬件模块,它能够收集其他模块(PMS, MTU, SCU, CCU, e.g.)由于硬件功能安全机制产生的报警(Alarm),然后,SMU模块通过用户配置能够产生内部或者外部的动作/响应,也可以不产生任何动作。本文将详细介绍SMU模块。
缩略词
简写 |
全称 |
SMU |
Safety Management Unit |
FSP |
Fault Signaling Protocol |
SCU |
System Control Unit |
IR |
Interrupt Router |
注:本文章引用了一些第三方工具和文档,若有侵权,请联系作者删除!
正文
1.SMU功能概述
SMU 是安全架构的核心组件,提供通用接口,用于管理存在故障的微控制器的行为。SMU 集中所有与不同的硬件和软件安全机制相关的警报信号。每个警报都可以单独配置为触发内部操作和 / 或通过故障信号协议(FSP, Fault Signaling Protocol)向外部通知存在故障。 每一报警的严重程度应根据安全应用的需要进行配置:默认情况下,除看门狗超时报警外,每一报警反应都被禁用。 为了进行调试和诊断,报警信号设置了一个粘滞位(sticky bit),该粘滞位可适应应用程序或系统重置。 SMU 还实施了一些与专用安全机制的管理和测试相关的内务管理(housekeeping functions)功能。 可以使用特殊测试模式测试 SMU 本身,以检测潜在故障。除了寄存器访问保护外, SMU 还实施了配置锁定机制(configuration locking mechanism)。 此外,为了缓解(mitigate)潜在的常见原因故障, SMU 分为两部分:
. SMU_core: 位于core domain.
. SMU_stdby: 位于stand-by domain.
SMU_CORE 和 SMU_Stdby 的设计方式和时间安排各不相同。SMU 的两个部分之间存在物理隔离。它们位于不同的时钟和电源域中。这允许 SMU 处理任何传入的报警,而不管用于生成此报警的时钟频率如何。此外,在 fSPB (或衍生产品) 上生成的报警事件将由 SMU_CORE 处理,而在 fBACK 上生成的报警事件将由 SMU_Stdby 处理。这样,所有时钟活动监视器警报都将在生成时钟域中处理。此外,与功率和温度有关的报警也以不同的方式处理,因为它们由 SMU_CORE 和 SMU_Stdby 处理。可以在 SMU_CORE 或 SMU_Stdby 中配置对这些报警的一个或多个反应(Actions)。
此外,为了检测 SMU_CORE 中的错误,将从 SMU_core 向 SMU_Stdby 发送警报 SMU_core_alive。对这些警报的反应(Actions)可在两个域中配置。 但是,对于 SMU_Stdby ,只有无反应(no reaction)或将 Errorpins 配置为高阻抗状态作为报警反应。
SMU 与嵌入式安全机制相结合,可以在容错时间间隔内检测并报告超过 99% 的微控制器严重故障模式。可在 SMU 中配置容错时间间隔的计时特性。
1.1 SMU架构
1.2 SMU_core
核心域 SMU (也称为 SMU_core) 从安全概念定义的硬件监视器(hardware monitors)的安全机制收集大多数警报信号。 报警映射(Alarm Mapping)部分(后面的章节)指定报警接口(alarm interface)并将其分类为报警组(alarm group)。 报警组定义逻辑映射,用于将报警信号映射到内部状态寄存器。 “报警处理”部分描述了配置选项。配置选项指定检测到报警事件时 SMU_core的行为。警报事件可以触发内部操作和 / 或激活错误针脚,以指示外部环境存在故障。SMU_CORE Control Interface 部分指定了软件如何控制 SMU_CORE 以及硬件操作的相关性。故障信号协议 (FSP) 部分描述了外部故障信号协议的属性,这些属性定义了错误针脚(ErrorPin)的计时和逻辑属性。
1.3 SMU_stdby
备用域 SMU (也称为 SMU_Stdby) 从检测时钟 (无时钟) ,电源 (电压过低 / 过高) 和温度故障 (温度过低 / 过高) 的模块收集警报。SMU_Stdby 还会收集 SMU_Alive 报警信号,当 SMU_CORE 在报警升高后未触发反应时,该信号会发出通知。此外, SMU_Stdby 实现了内置自检功能,允许用户测试 SMU_Stdby 对报警信号的反应以及从次级电压监视器到 SMU_Stdby 的完整报警路径。有关辅助监视器和 SMU_Stdby 内置自检的详细信息,请参阅电源管理系统一章。
“报警映射”部分指定报警接口,并将它们分为两个报警组。“报警处理”部分描述了可以指定的配置选项。配置选项指定检测到报警事件时 SMU_Stdby 的行为。警报事件可以触发启动 ErrorPins (错误针脚) ,该 ErrorPins (错误针脚) 表示外部环境存在故障。
2. SMU功能详述
2.1 SMU_core
2.1.1 Reset类型
SMU_CORE 需要多种Reset类型。 Reset类型在系统控制单元中完全指定。 SMU_CORE 要求的重置类型为:
. Power-on Reset
. System Reset
. Debug Reset
. Application Reset
下表指定了每个重置(Reset)类型的范围,这些重置类型的配置和逻辑是SMU_core 控的。
2.1.2 接口(Interfaces)概述
这一章描述SMU_core和其他模块之间的接口信号。
2.1.2.1 SMU_core到SCU的接口
与系统控制单元连接的警报事件所导致的内部操作。 接口信号为:
. Emergency Stop Request
. Reset Request
. NMI Request
. CPU Reset Request
2.1.2.2 SMU_core到IR的接口
与中断路由模块相连的报警事件导致的内部操作。 接口信号为:
. SMU Interrupt Service Request 0
. SMU Interrupt Service Request 1
. SMU Interrupt Service Request 2
SMU 中断服务请求到中断路由 (IR) 中断节点的映射可在中断路由器一章 (SRC_SMUy, y=0.2) 中找到。
AGC.IGCSx , x= { 0 , 1 , 2 } 寄存器字段提供了软件接口来控制 SMU 如何触发中断路由器的中断请求。
每个AGC.IGCSx是一个3-bits的位域信号:
. AGC.IGCSx[0] shall be set to ‘1’ to trigger SMU Interrupt Service Request 0
. AGC.IGCSx[1] shall be set to ‘1’ to trigger SMU Interrupt Service Request 1
. AGC.IGCSx[2] shall be set to ‘1’ to trigger SMU Interrupt Service Request 2
AGC.IGCSx的使用在Alarm Configuration章节描述。
2.1.2.3 SMU_core到Ports(ErrorPin)的接口
通用端口结构如下图所示。
端口引脚(Port Pin)可以通过 ALTx 输出线路连接到外围设备。这是开机重置后端口的默认状态 。SMU_CORE 使用 HW_DIR , AlTIN , HW_EN , HW_OUT 信号连接到端口。当 HW_EN 端口输入由 SMU_CORE 驱动时, SMU_CORE 将完全控制该端口,绕过与 ALTx 输入使用相关的任何其他软件配置。
下图 提供了端口结构的更详细概述,并突出显示了 SMU_CORE 连接中涉及的信号。
SMU_FSP0(也就是上图中的FSP [0]) 由硬件控制。FSP_DIR和FSP_EN由软件控制,控制寄存器如下:
. PCTL.HWDIR直接驱动FSP_DIR输出。
. PCTL.HWEN直