资讯详情

S32K1xx 系列安全手册

第 1 章 前言

1.1 概述

S32K118 该设备合格前的具体信息是初步的。

本文讨论了安全相关系统的集成和使用 S32K1xx 微控制器单元 (MCU) 要求。旨在支持安全系统开发人员的使用 S32K1xx 构建其安全相关系统的安全机制,并描述系统级硬件或软件安全措施,以实现所需的系统级功能安全完整性。 S32K1xx 是根据 ISO 26262 开发的,具有集成的安全概念。

1.2 假设安全手册

在 S32K1xx 在开发过程中,是的 MCU 假设系统级安全要求。在系统级开发过程中,安全系统开发人员需要在特定安全相关系统的上下文中建立 MCU 假设的有效性。为了实现这一点,所有相关的 MCU 假设都在安全手册中公布,可按如下方式确定:

? :假设与特定安全系统中的功能安全相关。假设安全系统开发人员满足设计中的假设。 ? :在特定条件下进行相关假设。假设安全系统开发人员符合设计中的假设。

示例: :假设系统设计为进入 MCU 的安全状态(Safe stateMCU)进入安全状态(Safe statesystem)。

示例::如果输出的高阻抗状态不安全,应在安全关键输出中添加上拉或下拉电阻器。这一需求将取决于 S32K1xx 未通电或复位条件(三态 I/O)的应用。

安全系统开发人员需要仔细决定这些假设是否对其特定的安全相关系统有效。在 MCU 假设不成立,安全系统开发人员应从影响分析开始变更管理活动。例如,如果不符合具体假设,则应证明替代在满足所讨论的功能安全要求方面也是有效的(例如,相同级别的诊断覆盖率也很低, 等等)。如果替代实施被证明不那么有效,则必须指定因偏差而增加的故障率和减少的测量(SFF:安全故障分数,SPFM:单点故障测量,LFM:估计潜在故障). FMEDA 本分析可用于帮助。

1.3 安全手册指南

本文还包括如何在安全相关系统中配置和操作 S32K1xx 指南。以前有以下文本声明之一:

? :建议是在没有假设的情况下实施假设或应用的合理措施。安全系统开发人员可以选择是否遵守建议。

? :具体假设和/或推荐动机。

? :提供实施提示 S32K1xx 实施假设和/或建议的具体细节。安全系统开发人员可选择遵循实施提示。

安全系统开发人员需要仔细决定这些指南是否适用于其特定的安全相关系统。

1.4 功能安全标准

假设本文档的用户熟悉功能安全标准 ISO 26262 道路车辆 - 功能安全和 IEC 61508 电气/电子/可编程电子安全相关系统的功能安全。 S32K1xx 是在 ISO 26262 在这种情况下,其开发与项目或系统的开发完全分离。因此,S32K1xx 开发被认为是一种脱离上下文的安全元件 (SEooC) 开发,如 ISO 26262-10.9 脱离上下文的安全元件,详细说明 ISO 26262-10.9.2.3 硬件组件开发作为安全脱离上下文的元素 ISO 26262-10 附录 A ISO 26262 和微控制器。

1.5 相关文档

S32K1xx 是根据 ISO 26262 对需要高安全完整性等级的安全相关系统进行开发的集成安全概念。为了支持它 S32K1xx 将以下文件集成到安全相关系统中:

? 参考手册 - 描述 S32K1xx 功能

? 数据表 - 描述 S32K1xx 操作条件

? 安全手册 - 描述 S32K1xx 安全概念和可能的安全机制(集成 S32K1xx、系统级硬件或系统级软件统级软件故障的措施

? FMEDA - 可定制系统级安全机制的归纳分析,包括 ISO 26262(SPFM、LFM 和PMHF) 和 IEC 61508(SFF 和 β 因子 βIC)

? FMEDA 报告 - 描述 FMEDA 支持的 FMEDA 在分析过程中,方法和安全机制包括故障率的来源、故障模式和假设。

FMEDA 和 FMEDA 可按要求提供报告。 S32K1xx 是一种 SafeAssure 解决方案;有关恩智浦功能安全的更多信息,请访问 www.nxp.com/safeassure。

1.6 其他注意事项

在使用 S32K1xx 开发安全相关系统时,应考虑以下信息:

? S32K1xx 的处理符合 JEDEC 标准 J-STD-020 和 J STD-033。

? S32K1xx 数据表中给出的操作条件。

? 如果适用,任何已发布的 S32K1xx 勘误表。

? S32K1xx 在质量协议中提供的推荐生产条件。

? 安全系统开发人员必须向安全系统开发人员方向NXP 报告S32K1xx 所有现场故障。

和任何技术文档一样,读者有责任确保他或她使用最新版本的文档。

第 2 章 MCU 安全背景

2.1 目标应用

作为 SafeAssure 解决方案,微控制器针对所需的汽车安全完整性等级 (ASIL) 特别是:

? 汽车 - S32K 产品系列通用 MCU 成分适用于各种汽车应用,如

? BCM

? 网关

? 信息娱乐连接模块

? 泊车辅助

? 电子停车制动

? 胎压监测系统

? 电池管理

? 被动无钥匙启动

? 照明

? HVAC

? 车窗升降

? 车门控制单元

&nsp;               • 天窗控制单元

                • 雨刮器控制单元

                • DC/ BLDC 电机控制

        • 工业 - 该系列还可用于需要 125°C 环境温度等级的通用工业应用。

该系列中的所有器件均围绕针对 ISO26262 ASIL-B 的集成安全概念构建。

2.2 安全完整性等级

S32K1xx 设计用于需要满足功能安全完整性等级定义的功能安全要求(例如,ISO 26262 的 ASIL B 或 IEC 61508 的 SIL 2)的汽车或工业应用。 S32K1xx 是在 ISO 26262 上下文中看到的组件,在这种情况下,它的开发与项目或系统的开发完全分离。因此,S32K1xx 的开发被认为是脱离上下文的安全元件 (SEooC) 开发。

S32K1xx 在 IEC 61508(“复杂”,参见 IEC 61508-2,第 7.4.4.1.3 节)的上下文中被视为 B 类子系统,HFT = 0(硬件容错),可用于任何模式操作(参见 IEC 61508-4,第 3.5.16 节)。

2.3 安全功能

2.3.1 MCU 安全功能

鉴于 S32K1xx 的应用独立性,无法指定特定的安全功能。因此,在 S32K1xx 的 SEooC 开发过程中,假设了 MCU 安全功能。在安全相关系统的开发过程中,MCU 的安全功能被映射到特定的系统安全功能(取决于应用程序)。假定的 MCU 安全功能是:

        • :从 S32K 闪存中读取指令,在指令缓存中缓冲这些指令(如果支持),执行指令,从 S32K 系统 SRAM 或闪存中读取数据,缓冲这些在数据缓存中(如果支持),处理数据并将结果数据写入 S32K 系统 SRAM。

此外,输入/输出相关功能和调试功能采用以下方法:

        • :S32K1xx 的输入/输出功能具有高度的应用依赖性。

        • :假设某些功能。 有关详细信息,请参阅模块分类部分。

2.3.2 正确运行

S32K1xx 的正确运行定义为:

        • 模块按照规范运行。

        • 模块可通过使用系统级安全措施来限定数据或通过冗余使用模块来使用。资格认证应具有较低的相关失败风险。通常,模块安全措施是在系统级软件中实施的。

        • 模块不干扰其他模块的操作。

2.4 安全状态

系统的安全状态称为Safe statesystem,而S32K1xx 的安全状态称为Safe stateMCU。安全状态系统是一种操作模式,不会发生不合理的身体伤害或对任何人的健康造成损害的可能性。安全状态系统可以是预期的操作模式或系统已被禁用的模式。

: [SM_200] 假设进入 MCU 的安全状态(Safe stateMCU)时系统能够管理其安全状态(Safe statesystem)行为。[结尾]

2.4.1 MCU安全状态

S32K1xx的安全状态(Safe stateMCU)有:

        • 运行正常(参见图 2-1 和“正确操作”部分)

        • 复位中(参见图 2-1)

        • 完全断电(参见图 2-1)

2.4.2 转换到安全状态系统

: [SM_016] 当 MCU 处于复位状态时,系统会自行转换到安全状态系统。 [结束]

:[SM_017] 当 MCU 断电时,系统会自行转换到安全状态系统。 [end]

:[SM_018] 当 MCU 没有活动输出(例如,三态)时,系统将自身转换为安全状态系统。 [结束]

:如果MCU没有主动输出到外部环境,MCU的状态是未知的。在这种情况下,整个系统应置于需要在系统级别完成的安全状态系统。

2.4.3 连续复位转换

如果系统在标准操作状态和复位状态之间连续切换,而没有任何设备关闭,则不认为它处于安全状态。

: [SM_019] 假设应用程序将复位和标准操作模式之间的连续切换识别并发出信号作为故障条件。 [结尾]

2.5 故障和故障

故障是对功能安全的主要有害影响:

        • 系统故障以确定的方式表现在某个原因(系统故障)上,只能通过改变设计过程、制造过程、操作来消除程序、文件或其他相关因素。因此,针对系统故障的措施可以减少系统故障(例如,实施和遵循适当的流程)。

        • 随机硬件故障可能在硬件元件的生命周期内不可预测地发生并且遵循概率分布。硬件固有故障率的降低将降低随机硬件故障发生的可能性。 当随机硬件故障确实发生时,检测和控制将减轻它们的影响。随机硬件故障是由永久性故障(例如物理损坏)、间歇性故障或暂时性故障引起的。永久性故障是不可恢复的。例如,间歇性故障是与特定操作条件或噪声相关的故障。例如,瞬态故障是粒子(α、中子)或 EMI 辐射。受影响的配置寄存器可以通过设置所需的值或通过电源循环来恢复。由于瞬态故障,元件可能会切换到自毁状态(例如,单事件闩锁),因此可能会导致永久性损坏。

        • :[SM_020] 假设导致失去正确操作的随机硬件故障的最小数量为 1。假设 MCU 的硬件容错 (HFT) 为 0。 MCU 设计为无故障或故障指示。 [结尾]

2.5.1 故障

以下随机故障可能会产生故障,从而可能导致违反功能安全目标。引文依据 ISO 26262-1。随机硬件故障发生在随机时间,这是由硬件中一种或多种可能的降级机制引起的。

:安全机制未涵盖的元件中的故障并导致单点故障。这直接导致违反安全目标。图 2-2 中的“a”显示了元素内部的 SPF,它会生成错误的输出。 IEC 61508 中与单点故障的等效项是随机故障。 无论何时在本文档中提及 SPF,都应将其视为 IEC 61508 应用的随机故障。

:安全机制未检测到汽车驾驶员也未察觉到的故障。 LF 是一种不违反功能安全目标本身的故障,但在与至少一个额外的独立故障相结合时会导致双点或多点故障,然后直接导致违反功能安全目标安全目标。图 2-2 中的“b”显示了元素内部的 LF,它仍然会生成正确的输出。 IEC 61508 中没有指定 LF 的等效项。

:单个故障与另一个独立故障相结合,导致双点故障。这直接导致违反功能安全目标。图 2-2 中的“d”显示了一个元素内的两个 LF,它们会生成错误的输出。

:单个故障与其他独立故障相结合,导致多点故障。这直接导致违反功能安全目标。除非另有说明,多点故障被认为是安全故障,不包含在 S32K1xx 的功能安全概念中。

:独立导致违反功能安全目标的故障部分,其中该部分故障未被功能安全机制覆盖。图 2-2 中的“c”显示了一个元件内部的射频,尽管功能安全机制已设置到位,但它会生成错误输出,因为功能安全机制未涵盖此特定故障。

:其发生不会显着增加违反功能安全目标的可能性的故障。本文档不涉及安全故障。 SPF、RF 或 DPF 不是安全故障。

 2.5.2 相关故障

        :由于共同原因,两个或多个组件故障状态同时存在或在短时间内存在的相关故障的子集(见图 2- 3)。         CCF 是冗余元素的不同通道上的两个或多个元素的随机故障状态的巧合,导致定义的元素无法执行其预期的安全功能,这是由单个事件或根本原因(偶然原因,非偶然原因)引起的。 -可分配的原因、噪音、自然模式等)。 CCF 导致多个通道 (N) 的故障率大于 λsingle channel N (λredundant element > λsingle channel N) 的概率。

    :单一根本原因导致冗余通道中的两个或多个(不一定相同)元件发生类似的巧合错误行为(关于安全功能),从而导致无法检测到故障。图 2-4 显示了两个冗余通道中的三个元素。一个单一的根本原因(CMFA 或 CMFB)导致主通道和冗余通道的元素之一中未检测到的故障。

        :当系统中某个元件的局部故障波及互连元件,导致同一系统和同一通道内的另一个或多个元件发生故障时,就会发生CF。级联故障是非共因故障的相关故障。图 2-5 显示了单个通道中的两个元素,其中单个根本原因导致一个元素中的故障(故障 1)导致故障(故障 a)。然后,此故障会级联到第二个元素,导致第二个故障(故障 2)导致故障(故障 b)。

2.6 单点容错时间间隔和过程安全时间

单点容错时间间隔 (FTTI)/过程安全时间 (PST) 是有可能导致危险事件的故障和为防止危险事件发生而必须完成应对措施的时间。

: [SM_211] 假设应用程序容错时间间隔为 100 ms。硬件措施的反应时间列表附于安全手册中。 [结束]

图 2-6 显示了系统的 FTTI:

        • 正常的 MCU 操作 (a)。         • 使用适当的功能安全机制来管理故障 (b)。         • 如果没有任何合适的功能安全机制,在 FTTI 结束后可能会出现危险 (c)。 IEC 61508 中与 FTTI 等效的是过程安全时间 (PST)。每当本文档中提到单点容错时间间隔或 FTTI 时,对于 IEC 61508 应用,它应被解读为 PST。

故障指示时间是从故障发生到 S32K1xx 切换到安全状态 MCU 的时间(例如,通过驱动错误输出引脚、强制 S32K1xx 的输出为高阻抗状态或通过复位断言) 。

2.6.1 MCU 故障指示时间

之和。

        • (诊断测试间隔 + 识别时间)是安全机制检测到故障的最长时间,包括:

                • 是在线测试之间的间隔(例如,基于软件的自检)来检测故障。

                • 是安全机制检测故障所需的时间。时间最长的机制是:

                        • ADC 识别时间在时序方面是一项非常苛刻的硬件测试。

                        • 与SPLL 时钟丢失相关的识别时间:它取决于SPLL 的配置方式。

                        • 基于软件的功能安全机制的软件执行时间。这个时间与软件实现密切相关。

        • (内部处理时间 + 外部指示时间)是所有涉及的功能安全机制的反应时间的最大值,包括内部处理时间和外部指示时间:

                • 是向其传达故障的时间/间隔相应的错误标志状态寄存器。

                • 通知观察者S32K1xx 外部故障的外(例如,更高优先级的IRQ、交叉开关争用、寄存器保存等)。

S32K1xx 故障指示时间和系统故障反应时间之和应小于功能安全目标的 FTTI。

2.7 潜在故障的潜在容错时间间隔

潜在故障容错时间间隔 (L-FTTI) 是潜在故障之间的时间跨度,它有可能与其他潜在故障同时发生并引起危险的多点事件,以及反作用的时间。完成以防止危险事件的发生。 L-FTTI 定义了各个最坏情况故障指示时间和执行相应对策的时间之和。图 2-7 显示了系统中多点故障的 L-FTTI。

IEC 61508 中没有等效的 L-FTTI。

潜在故障指示时间是从发生多点故障到故障指示迫使 S32K1xx 的输出进入高阻抗状态或通过复位断言所用的时间。

:[SM_212] 假设应用程序潜在容错时间间隔 (L FTTI) 通常为 12 小时。假设 MCU 将在 L-FTTI 内经历一个完整的上电/断电周期。 [结束]

:消除任何瞬态故障的影响。

2.7.1 MCU 故障指示时间

之和。一般来说,多点故障的故障检测时间和故障反应时间可以忽略不计,因为 L-FTTI 明显大于启动、关闭或周期性执行的典型潜在故障(小时,而不是秒)安全系统的诊断测试间隔要求。

潜在故障指示时间与潜在多点故障反应时间之和应小于功能安全目标的 L-FTTI。

潜在故障检测机制对潜在故障的检测和处理必须在多点故障 (MPF) 检测间隔内完成。之后,假设故障导致多点故障,潜在故障检测不再保证正常工作。

2.8 MCU 故障指示

2.8.1 故障处理

故障处理可以分为两类:

        • 启用系统级安全功能之前的故障处理(例如,在S32K1xx 初始化期间/之后)。这些故障需要在系统启用安全功能之前处理,或者在启用安全功能后比相应的 FTTI 或 L-FTTI 更短的时间内处理。

        • 在启用安全功能的情况下,通过重复监督处理运行期间的故障。这些错误将在比相应的 FTTI 或 L-FTTI 更短的时间内处理。

:[SM_022] 假设在启用安全功能时,单点和潜在故障诊断措施在比相应 FTTI 或 L-FTTI 更短的时间内完成操作(包括故障反应时间)。 [结束]

:建议在启用系统级安全功能之前识别启动失败。

关于上电/启动诊断措施的典型故障反应是不初始化和启动安全功能,而是向用户提供故障指示。

软件可以读取故障源(指示时钟错误、电压错误的寄存器),并且可以在功能复位之前或之后进行。如有必要,软件也可以复位 S32K1xx。

第 3 章 MCU 安全概念

3.1 一般概念

图 3-1 是 S32K14x 功能组织的顶层图。

图 3-2 是显示 S32K11x 功能组织的顶层图。

S32K1xx 具有针对需要高安全完整性级别的安全相关系统的集成安全概念。通常,安全完整性通过以下方式实现:

        • 时钟和电源、生成和分配由专用监视器监控(参见时钟和电源监控部分)

        • 通过允许并发执行的分层内存保护架构确保操作干扰保护具有不同(较低)ASIL 的软件(参见操作干扰保护部分)

3.2 ECC

3.2.1 用于存储的 ECC

在 S32K14x 中,Flash 和 SRAM 存储器,除了 1400_0000h – 1400_0FFFh 区域中用作系统 RAM 的 4 KB FlexRAM 外,使用带有 SEC/DED(单错误纠正和双错误检测)的 ECC 算法) 计算存储的数据。

在 S32K11x 中,Flash 和 SRAM 存储器,除了 1400_0000h – 1400_07FFh 区域中用作系统 RAM 的 2 KB FlexRAM 和 1FFF_FC00h – 1FFF_FFFFh 区域中用作系统 RAM 的 1 KB SRAM_L 使用 ECC 算法和 SEC/DED(单错误纠正和双重错误检测)计算存储的数据。

3.2.2 ECC 故障处理

在“读取闪存”访问期间:

        • 在 FTFC 中报告检测到的双位不可纠正故障,如果启用则触发中断。客户软件可以根据错误是发生在代码空间(例如:进入安全状态)还是数据空间(例如:如果数据与安全无关,则继续)以不同方式处理双位错误中断。如果在机器异常执行过程中出现不可纠正的 ECC 故障,则应进入安全状态。         • 检测到的单位错误会在不通知的情况下得到纠正。

系统 RAM 中的一位可纠正故障和双位不可纠正故障以及相应的访问地址在错误报告模块 (ERM) 中报告,如果启用,则会触发中断。系统 RAM 中的一位可纠正故障和双位不可纠正故障也会在 MCM 中报告(如果启用)。

:[SM_111] ECC SRAM 报告必须由软件应用程序(在 LMEM 模块中)启用,然后才能启动安全应用程序。 [结束]

错误注入模块 (EIM) 允许您在访问系统 RAM 时对读取的数据进行单位和多位反转。由于 ECC 纠正机制,ECC 中的错误可能直接违反安全目标。 ECC 应在 FTTI 内检查一次。

: [SM_112] 假设客户软件可以根据错误是发生在代码空间(例如:进入安全状态)还是数据空间(例如:如果数据不安全则继续)以不同的方式处理双位错误中断相关的)。如果在机器异常执行过程中出现不可纠正的 ECC 故障,则应进入安全状态。 [结束]

3.3 时钟和电源监控

3.3.1 时钟

对于安全应用,始终使用 PLL(在 S32K14x 部件中为 LOL 和 LOC 启用时钟监控)和 FIRC(在 S32K11x 部件中启用 CMU)作为系统时钟。在 S32K1xx 中,FXOSC 对系统的时钟复位指示丢失可能需要长达 512 微秒,而在 S32K11x 中,CMU 将在 5 微秒内指示 FIRC 时钟丢失。

3.3.2 电源

S32K1xx 上的低压检测(LVD)监视器和低压复位(LVR)是电压监控器。监控安全相关电压(推荐的工作电压)是否超出这些范围。由于任何超出安全相关范围的电压都有可能禁用 MCU 的故障指示机制,因此这些电源电压错误的指示可用于导致 MCU 直接转换到安全状态(复位断言)(参见S32K1xx 参考手册和 S32K1xx 数据手册中的“电源管理控制器块 (PMC)”章节了解详细信息)。

3.4 操作干扰保护

S32K1xx 是一个多主机系统。因此,它提供了安全机制来防止非安全主控器干扰内核的运行,以及处理具有不同(较低)ASIL 的软件的并发执行的机制。通过分层内存保护架构保证无干扰,包括:

        • 系统内存保护单元 (MPU)

        • 外设桥

        • 寄存器保护

S32K1xx 上的系统 MPU 可防止不同总线主机访问地址范围。它通常供安全应用程序使用,以防止非安全相关模块访问应用程序的安全相关资源。

此外,外围网桥可以根据访问的来源及其状态(用户模式/管理员模式)限制对各个 I/O 模块的读写访问。

最后,寄存器保护可防止单个寄存器受到任何操纵,直到寄存器被解锁。

第 4 章硬件要求

4.1 系统级硬件要求

本节介绍了补充S32K1xx 集成安全机制所需的系统级硬件安全措施。

S32K1xx 集成安全概念能够以高诊断覆盖率检测 SPF 和潜在故障。然而,并不是所有的 CMF 都可以被检测到。为了检测 S32K1xx 可能无法检测到的故障,假设将有一些单独的方法使系统进入安全状态系统。

图 4-1 描绘了与外部 IC 结合的功能安全相关应用的简化应用示意图(仅显示了与功能安全相关的元件)。外部 IC 产生的电源应受到保护,以防止电压超过器件的绝对最大额定值(如 S32K1xx 数据表中“绝对最大额定值”部分所述)。

S32K1xx通过数字接口(例如SPI)反复触发外部IC的看门狗。如果存在已识别的故障(例如,看门狗未得到服务,则外部 IC 的复位输出将被置位以复位 S32K1xx。

为安全起见,冗余看门狗系统外部看门狗监视器 (EWM) 旨在监控外部电路以及 MCU 软件流程。这为重置 MCU 的 CPU 和外围设备的内部看门狗 (WDOG) 提供了备份机制。一个输出端口 EWM_out 在置位时用于复位或将外部电路置于安全模式。一个输入端口 EWM_in 允许外部电路控制 EWM_out 信号的置位。

:[SM_037] 建议使用外部看门狗,作为 MCU 的强大外部监控安全机制在系统级实施。不要求这些外部措施应在 IC 中提供,甚至以所述的特定方式提供(例如,外部看门狗功能可以由系统的另一个组件提供,该组件可以识别芯片已停止发送周期性数据包通信网络)。 [结尾]

4.1.1 由独立电路承担的功能

本节描述了与 S32K1xx 一起用于安全相关系统的系统中使用的外部组件。

需要注意的是,外部服务的故障模式在 S32K1xx 的 FMEDA 中只是部分考虑(例如,时钟、电源),必须由安全系统开发人员在系统 FMEDA 中进行全面分析。

4.1.1.1 高阻抗输出

如果认为 S32K1xx 处于安全状态 MCU(例如,未通电和输出三态),则包含 S32K1xx 的系统可能不符合安全状态系统。实现安全状态系统的一种可能的系统级安全措施可能是在高阻抗状态不安全时在 I/O 上放置上拉或下拉电阻。

: [SM_038] 如果输出引脚上的高阻抗状态不安全,则应将上拉或下拉电阻添加到安全相关输出。对此的需求将取决于未通电或复位(三态 I/O)S32K1xx 的应用程序。[结束]

:为了将与安全相关的输出提高到这样的水平,实现了安全状态系统。

4.1.1.2 复位

复位焊盘默认拉高(具体值见S32K1xx 数据手册),输入复位功能可配置。专用复位引脚功能在复位退出前可用;之后,必须将引脚配置为执行输入复位功能,以便应用程序(安全机制)可以使用它。

每当启用复位延迟时,应用程序应确保 LPO 时钟可用。

4.1.1.3 电源监控

超出规定工作范围的电源电压可能会对 S32K1xx 造成永久性损坏,即使它处于复位状态。

: [SM_042] 假设系统级别的安全措施在任何电源电压高于指定操作范围期间和之后保持安全状态系统。[结束]

S32K1xx 微控制器数据表提供了必须保持的特定工作电压范围。

: [SM_087] 假设在 MCU 上未提供监控的情况下,监控外部电源的高偏差和低偏差。 [end]

:[SM_088] 假设如果外部电压超出规范,MCU 将保持复位状态,并且受到保护以防止电压超过设备的绝对最大额定值(如数据表中“绝对最大额定值”部分中所述”)。 [结束]

如果电源超出范围,S32K1xx 应保持复位或断电,或必须采取其他措施保持系统处于安全状态。超出技术规定范围的过电压可能会对 S32K1xx 造成永久性损坏,即使保持复位状态也是如此。

实施提示:外部独立设备可以为外部 S32K1xx 电源提供过压监视器。如果提供的电压高于 S32K1xx 的推荐工作电压范围,则 S32K1xx 应保持断电状态。外部电源监视器将系统切换到 FTTI 内的安全状态系统,并将其保持在安全状态系统(例如,具有功能安全关闭的过压保护,或切换到第二个电源单元) .

如果 S32K1xx 电源可以设计为避免任何潜在的过压,则可以将外部电压监控排除在系统设计之外。

S32K1xx 本身会检测某些电源上的过压,但可能需要系统级措施来维持安全状态系统,以防过压情况可能导致 S32K1xx 损坏。

4.1.1.4 错误监控

如果 S32K1xx 在其状态寄存器中发出内部故障(错误标志)信号,则系统可能不再依赖其他 S32K1xx 输出的完整性来实现安全功能。如果指示错误,系统必须切换到并保持在安全状态系统,而不依赖 S32K1xx。根据其功能,系统可能会禁用或重置设备作为对错误指示的反应(请参阅安全状态下的)。

:[SM_043] 整个系统需要包括监控 MCU 寄存器中的错误标志并在指示错误时将系统移至安全状态系统的措施。 [结尾]

第 5 章软件要求

5.1 系统级别的软件要求

本节列出了在安全系统中使用S32K1xx 时应采取的必要或推荐的安全措施。

此处未明确提及的 S32K1xx 片上模块不需要在安全系统中使用特定的安全措施。复制的模块无需在应用程序或系统级别采取额外的专用安全措施即可达到非常高的诊断覆盖率。

5.2 电源

5.2.1 电源管理控制器(PMC)

PMC 管理设备上所有模块的电源电压。该单元包括用于逻辑电源的内部稳压器和一组用于低压检测器 (LVD) 和低压复位 (LVR) 的电压监视器。如果监控的电压低于 LVR 给定的阈值,则会启动复位以控制错误电压,以免导致潜在故障(有关正确的工作电压范围,请参阅 S32K1xx 数据表)。

LVD 具有警告、中断和复位(掉电)功能。有关详细信息,请参阅 S32K1xx 系列参考手册的“复位和启动”一章中的“低电压检测 (LVD)”部分。

: [SM_084] 应用软件必须检查 RCM 的状态寄存器是否有错误标志。 [结尾]

: [SM_204] 假设 ADC 用于监控 PMC 的带隙参考电压并监控连接到 ADC 的内部电源。 [结尾]

除了监视错误标志和 ADC 监视带隙参考电压之外,将 PMC 用于安全相关应用对用户来说是透明的。

欠压情况主要报告给 RCM,在那里它们通过复位直接导致转换到安全状态。之所以选择此解决方案,是因为与安全相关的电压可能会禁用 S32K1xx 的故障指示机制。

: [SM_085] 软件不得因过压或欠压指示而禁止 RCM 直接转换为安全状态。 [结束]

应按照电源监控中的说明从外部监控过压电源。

5.2.1.1 3.3 V 电源监控

电压检测器 LVD 和 LVR 监控 VDD 电源相对于参考电压的欠压。下图描述了电压检测器的逻辑方案。如果 LVD 在 S32K1xx 正常运行期间检测到欠压情况,则(取决于 SW 配置)触发低电压检测标志、低电压警告标志、低电压中断或破坏性复位。低电压检测系统(低电压检测标志、低电压警告标志和低电压检测复位产生)在低功耗模式下被禁用。如果电源电压低于复位触发点 (VLVR),无论工作模式如何,LVR 都会产生系统复位。

5.3 时钟

5.3.1 系统锁相环 (SPLL)

S32K14x 具有系统锁相环 (SPLL),用于生成高速时钟。 SPLL 提供了发送到 RCM 的失锁错误指示。晶体时钟上可能出现的毛刺被 SPLL 过滤(低通滤波器)。专用于系统时钟的 SPLL 分配给大多数 S32K14x 模块

5.3.1.1 初始检查和配置

系统复位后,外部晶振掉电,PLL 停用。软件应启用振荡器。系统复位后,S32K1xx 使用快速内部 RC 振荡器时钟 (FIRC) 作为其时钟源(有关 FIRC 配置的详细信息,请参见 S32K1xx 参考手册和内部 RC 振荡器中的“时钟”和“FIRC 数字接口”章节)。

: [SM_078] 在执行任何安全功能之前,应将基于外部时钟源的高质量时钟(低噪声、低毛刺可能性)配置为 S32K14x 的系统时钟。 [结束]

:由于时钟监视器使用 SIRC 作为参考来监视 SPLL 的输出,因此它不能用作 SPLL 的输入。

:系统振荡器时钟 (SOSC) 是 SPLL 源时钟。

:RCM_SRS[LOL]、RCM_SSRS[SLOL] 和 SCG_SPLLCSR[SPLLVLD] 表示发生了失锁事件。您可以配置 SCG_SPLLCSR[SPLLCM] 和 SCG_SPLLCSR[SPLLCMRE] 以在失去锁定时启用中断/复位请求。对于复位事件,将 SCG_SPLLCSR[SPLLCM] 和 SCG_SPLLCSR[SPLLCMRE] 编程为 1。对于中断,编程 SCG_SPLLCSR[SPLLCM]=1 和 SCG_SPLLCSR[SPLLCMRE]=0。

: [SM_079] 当时钟毛刺危及系统级功能安全完整性测量时,应使用 PLL 生成的时钟信号为各个功能安全相关模块提供时钟,因为 PLL 用作过滤器以减少时钟毛刺的可能性由于外部干扰。或者,应使用具有低噪声和低时钟毛刺可能性的高质量外部时钟。 [结束]

:减少由外部晶体及其与 S32K14x 的硬件连接引起的毛刺的影响。

:通过对系统时钟发生器 (SCG) 进行适当编程来满足此要求。

:在初始化期间或之后,但在执行任何安全功能之前,应用软件可以通过检查 SCG_CSR[SCS] 位字段来检查当前系统时钟。 SCG_CSR[SCS] = 0110b 表示系统 PLL (SPLL) 时钟被用作系统时钟。

:[SM_213] 应实施检查以验证使用预期的 PLL 配置,PLL 锁定正确的输出时钟。 [结束]

:您可以根据配置为在 SOSC 上运行另一个在 SPLL 上运行的 2 个定时器来比较 PLL 输入时钟和 PLL 输出时钟。如果在某个时间窗口内没有触发定时器中断来确认输出时钟 SPLL 是否正确,您可以在这种情况下选择复位器件。

5.3.2 时钟监控单元 (CMU)

S32K11x 变体没有 SPLL,系统时钟应由 FIRC 驱动。启动时,CMU 未初始化,FIRC 是默认系统时钟。CMU 由 8 MHz SIRC 驱动,以确保独立于受监控时钟 (FIRC)。由于时钟超出可编程界限和监控时钟丢失,CMU 会标记与条件相关的事件。如果监控时钟离开设备的编程频率范围,则配置的反应由 CMU 生成。 S32K11x 器件包括 CMU,它仅监控作为系统时钟主要来源的 FIRC。 CMU 使用 SIRC(8 MHz 慢速内部振荡器)作为参考时钟,以独立于被监控时钟运行。

目的是检查:

        • FIRC(系统时钟的主源)丢失

        • FIRC(系统时钟的主源)超出可编程频率范围(频率过高或过低)

对于安全相关应用,CMU 的使用是强制的。如果 CMU 监控的模块被应用安全功能使用,用户应确认 CMU 未被禁用。

5.3.2.1 初始检查和配置

:[SM_083] 需要以下监控功能:

        • 快速内部参考时钟丢失

        • 系统 FIRC 频率高于(可编程)频率参考上限

        • 系统 FIRC 频率低于(可编程)频率参考下限

[结束]

:监控系统时钟信号的完整性。

建议:CMU 应用于监控 firc 时钟以实现功能安全相关应用。应用软件应检查 CMU 是否已启用,因为它默认是禁用的。建议在时钟丢失或时钟超出范围的情况下始终生成复位。对于超出范围的时钟条件,应在中断条件内产生复位事件。在进入任何低功耗模式之前,必须通过配置 PCC 模块中 CMU 控制寄存器的 CGC 字段来禁用 CMU 并关闭 CMU 时钟。

:一般而言,在启用 CMU 监控之前,应执行以下依赖于应用程序的配置。         • 第一个配置与 CMU0 实例中的低频参考 (CMU_FC_LTCR[LFREF]) 有关,用于丢失 FIRC 时钟检测和复位生成。         • 第二个配置与CMU1 实例中用于中断生成的高频(CMU_FC_HTCR[HFREF])和低频参考(CMU_FC_LTCR[LFREF])有关。

通过写入 CMU_FC_GCR[FCE]=1 启用 CMU 后,CMU 需要几个周期才能开始内部操作,如 CMU_FC_SR[RS]=1 所示。必须在 CMU_FC_SR[RS]=1 后启用安全应用程序。

5.3.3 带有 SPLL 的器件的时钟监视器

在启动时,时钟监视器没有初始化,FIRC 是默认的系统时钟。 上电时时钟监视器不会检测到系统振荡器时钟 (SOSC) 上的卡滞故障,因为监视单元未初始化并且 S32K14x 仍在 FIRC 上运行。

时钟监视器由 8 MHz 慢速内部 RC 时钟 (SIRC) 驱动,以确保独立于被监视时钟。由于时钟超出可编程界限和参考时钟丢失,时钟监控与条件相关的标志错误。如果监控时钟离开设备的指定范围,则在相应的状态寄存器中设置错误标志。 S32K14x 包括 SOSC 和 SPLL 的时钟监视器。

时钟监视器使用 SIRC(8 MHz 内部振荡器)作为参考时钟,独立于被监视时钟运行。它们的目的是检查由于以下原因导致的错误情况:

        • 外部晶振 (SOSC) 时钟丢失

        • SPLL 时钟超出可编程频率范围(频率过高或过低 - 时钟丢失)

        • SPLL 时钟丢失

时钟监控监督各种时钟源的频率范围。如果出现异常行为,则将信息转发到相应的 SCG 状态寄存器。

: [SM_080] 对于安全相关应用,必须使用时钟监视器。如果 SCG 监控的模块被应用安全功能使用,用户应确认时钟监控没有被禁用,并且它们的故障由软件管理。 [结束]

5.3.3.1 初始检查和配置

:[SM_081] 需要以下管理器功能:外部时钟丢失、SPLL 频率高于(可编程)频率参考上限和 SPLL 频率低于(可编程)频率参考下限.[结束]

:监控时钟信号的完整性

:时钟监控器应用于功能安全相关模块正在监控和使用的每个时钟。应用软件应检查时钟监视器是否已启用以及它们的故障是否由软件管理。为防止时钟复位事件意外丢失,在进入任何低功耗模式之前,应禁用所有时钟监视器。

:一般来说,在开启时钟监控之前,需要执行以下两个应用相关的配置。

        • 第一个配置与晶体振荡器时钟(SOSC)监视器有关。         软件配置 SCG_SOSCCSR[SOSCM] 并启用系统 OSC 时钟监视器。仅当锁定寄存器 (LK) 位为零时,才能写入 SCG SOSC 控制状态寄存器 (SCG_SOSCCSR)。将分频后的 SIRC 频率与 SOSC 进行比较。

        • 第二个配置与被监控的PLL 时钟有关。         SCG_SPLLCSR[SPLLCM] 使能 PLL 时钟监视器。仅当锁定寄存器 (LK) 位为零时,才能写入SCG PLL 控制状态寄存器 (SCG_SPLLCSR)。

5.3.4 系统振荡器时钟 (SOSC)

FlexCAN、CLKOUT 和其他外设具有直接从 SOSC 提供时钟的模式。如需完整列表,请参阅 S32K1xx 系列参考手册的“时钟分配”一章。

每当需要严格的容差(高达 0.1%)时,都应选择振荡器时钟。晶振时钟也比外设时钟具有更好的抖动性能。

5.3.4.1 初始检查和配置

:[SM_075]FlexCAN 和 CLKOUT 都具有由 SOSC 直接提供时钟的模式,除非时钟毛刺的影响被 SOSC 充分检测到,否则不应在正常操作中使用这些模式应用 FT-COM 层。[结束]

5.3.4.2 运行时检查

:[SM_076] 在运行任何安全元件功能之前,软件应检查系统时钟是否可用,并且由 SOSC 提供。[结束]

5.3.5 内部 RC 振荡器

三个内部 RC 振荡器是实施:

        • 快速内部RC (FIRC) 的标称频率为48 MHz。

        • 慢速内部RC (SIRC) 的标称频率为8 MHz。

        • LPO_CLK,提供 128 kHz。可以从中导出 32 kHz 和 1 kHz 时钟。

必须考虑整个电压和温度范围内的频率精度(参见 S32K1xx 数据表)。可以使用内部时钟产生的时钟的功能安全相关模块如下表所示。更多详细信息,请参见 S32K1xx 系列参考手册的“时钟分配”章节。

5.3.5.1 初始检查和配置

快速 IRC 时钟错误标志 (SCG_FIRCCSR[FIRCVLD]) 应用于检查快速内部 RC 振荡器 (FIRC) 的可用性。此外,应通过执行一个软件测试例程来验证标称 FIRC 频率,该程序比较基于不同时钟源(FIRC 和 SOSC)的两个独立定时器(例如 FTM 和 WDOG)的计数器值。

:[SM_073] 通过比较独立定时器基于不同时钟源生成的计数器值,测量 FIRC 频率并将其与预期频率进行比较。此测试在上电后但在执行任何安全功能之前执行。 [结束]

:检查 FIRC 的完整性

5.3.5.2 运行时检查

应使用基于不同时钟源比较两个独立定时器的计数器值来验证 FIRC 的可用性和频率。这种方法允许使用 SOSC 作为参考时钟源来测量 FIRC 频率。

: [SM_074] 为检测 FIRC 故障,应用软件应利用基于不同时钟源比较两个独立定时器的计数器值的方法,将 FIRC 频率与预期值 48 MHz 进行比较。[结束]

:有关如何检查 FIRC 的说明,请参阅假设:在初始检查和配置中。

如果测得的 FIRC 频率与预期值不匹配,则存在所有安全措施完全失效的可能性。然后,软件应使系统进入安全状态系统,而不依赖于 FIRC 驱动的模块。

:为了增加故障检测,该功能安全完整性措施应在每个 FTTI 执行一次。

5.4 闪存

5.4.1 闪存

S32K1xx 提供带有ECC 的可编程非易失性闪存(NVM),可用于指令和/或数据存储。

用于闪存的 ECC 将 All-0 标记为错误,但允许 All-1 情况考虑读取已擦除、未初始化的闪存。

闪存子系统有一个带有内部存储器的内部嵌入式控制器,如果在安全应用期间完成嵌入式控制器的激活,则应将其视为安全相关。嵌入式闪存控制器的激活在以下情况下完成:

        • 擦除/编程闪存阵列

        • EEPROM 仿真

        • 使用安全引擎

5.4.1.1 EEPROM

我们建议您使用软件仿真将安全相关数据直接存储到 DFLASH 中。但是,如果使用 EEPROM 仿真来存储与安全相关的数据,则必须在这种情况下实施软件检查,以验证内存控制器的功能是否正确。

在这种情况下,用户需要通过 PGMPART 命令将 FlexNVM 配置为 EEPROM。

:可以根据 SETRAM 命令实施检查。此命令会将活动记录从 FlexNVM 复制到 EEEPROM 仿真,并且 EEPROM 仿真可以在命令执行前后进行 CRC 检查,以确保在 FlexNVM 中备份了正确的数据。

S32K116 和 S32K118 提供一个 FlexNVM 块 (32 KB),由 2 KB 扇区组成,用于 EEPROM 仿真。 S32K142、S32K144 和 S32K146 提供一个 FlexNVM 块 (64 KB),由 2 KB 扇区组成,用于 EEPROM 仿真。 S32K148 提供高达 512 KB(作为程序闪存的一部分)的 FlexNVM,包括用于 EEPROM 仿真的 2 KB 扇区。执行 ECC 算法来纠正单位故障和检测双位故障。双位错误通过状态寄存器和中断(如果已配置)发出信号。

: [SM_114] 使用 EEPROM 存储信息的软件将使用检查来检测从 EEPROM 仿真返回的不正确数据。 [结束]

通常,将存储 CRC 以验证数据。

执行闪存编程操作后,您必须检查安全相关代码的完整性。为此,您可以使用 CRC 检查或 CMAC 检查,具体取决于应用程序。

5.4.1.2 运行时检查

如果嵌入式闪存控制器在安全应用过程中被激活,应进行应用软件检查以检查预期操作的状态以及闪存阵列中保存的安全相关数据的内容。在编程/擦除操作的情况下,应在编程/擦除操作结束时检查编程/擦除扇区的内容。编程/擦除操作的结果可以基于回读方案,其中写入的字被回读并与预期值进行比较。安全相关数据应通过 CRC 校验保存以进行验证。为此,您可以使用内置的 HW CRC。

:[SM_116] 应实施软件测试以检查由闪存控制器中的永久故障引入的潜在多位错误。假设如果嵌入式控制器被归类为安全相关,则嵌入式控制器的激活伴随着闪存完整性检查。首先,应检查启动的闪存相关命令是否已完成并返回通过状态。根据安全应用,应对代码闪存或/和数据闪存进行闪存完整性检查。安全相关代码和数据应使用 CRC 或哈希签名保存在闪存中,以检测任何完整性违规。 [end]

: [SM_117] 应实施软件安全机制以确保对闪存的任何写操作的正确性。 [end]

:检查写入数据是否与预期数据一致 您应该在每次写入操作后或对闪存进行一系列写入操作后执行此测试。

:闪存的编程可以通过检查 FTFC_FSTAT[MGSTAT0] 内存控制器命令完成状态标志的值来验证。此外,写入的数据可以被读回,然后通过软件检查是否与编程数据相同。数据回读可以在边距读取模式下执行(FCMD = 0x02(程序检查))。这可以使用对弱编程或擦除状态更敏感的读取裕量来验证编程数据。

:[SM_119] 应检查闪存 ECC 故障报告路径,以验证检测到的 ECC 故障是否被正确报告。[结束]

:此测试的目的是确保正确报告故障检测。

:闪存ECC故障报告检查在软件中执行。

5.4.1.3 安全

由于安全子系统中的永久性/暂时性故障,数据可能在加密或解密过程中被破坏,安全引擎的错误输出可能在安全应用程序中用作安全相关变量。

:[SM_118] 根据应用类型及其对安全子系统的安全要求,建议实施一组软件检查以保证安全操作中涉及的数据完整性。 [结尾]

5.5 SRAM

5.5.1 纠错码 (ECC)

S32K1xx 包括纠错码 (ECC) 支持,以提高功能和瞬态故障检测能力。由传统 ECC/EDC 保护的内存生成并检查内存单元本地的附加错误奇偶校验信息,以检测和/或纠正内存中存储数据发生的错误。

内存中的 All-X 错误有特殊处理,因为人们认为 All-X 错误的概率可能高于随机错误位。

RAM 的 ECC(不包含地址)将 All-X 标记为错误。

对于用作系统 RAM 的 4 KB(对于 S32K14x 系列)或 2 KB(对于 S32K11x 系列)FlexRAM 或(对于 S32K11x 系列)1 KB SRAM_L 位置(也可用作消息跟踪缓冲区),不会产生 ECC 和访问错误。

:[SM_113]假设如果安全相关数据存储在该内存中,则进行额外的完整性检查。 [完]

详情见ECC存储。

5.6 处理模块

5.6.1 Cortex-M4/M0+ 结构核心自测 (SCST)

Cortex-M4/M0+ 结构核心自测 (SCST) 是 NXP 的软件产品。它需要在 Core 中检测 SPF,并且必须在 FTTI 中执行一次。它被开发用于通过使用一组固定的操作数执行机器操作码并比较它们的执行结果来检测内核中的硬件永久性故障。该库被认为是脱离上下文的安全元素,是根据 ASIL-B 开发的。

SCST 交付包含 SCST 库、质量包和安全包。

        • 质量包包含代码覆盖分析、MISRA 报告、软件需求规范和测试规范。

        • 安全包包括SCST 故障覆盖估计、安全分析和概念以及SCST 安全手册。

结构内核自检库安全手册包含一系列建议和假设,用户应满足和验证这些建议和假设,以便正确使用 Cortex-M4/M0+ 内核的 SCST 库。

5.6.2 禁用操作模式

系统级和应用软件必须确保在运行与功能安全相关的操作时不会激活本节中描述的功能。

5.6.2.1 调试模式

S32K1xx 的调试功能如果在功能安全相关应用程序运行期间被激活,则可能会导致故障。它们可以暂停内核、触发断点、写入内核寄存器和地址空间,等等。为减少干扰应用软件正常运行的可能性,S32K1xx 不得进入调试模式。

JTAG_TMS 信号的状态决定了系统是否正在调试或系统是否在正常工作模式下运行。当 JTAG_TMS 为逻辑低电平时,JTAGC TAP 控制器保持复位以进入正常操作模式。当它为逻辑高时,JTAGC TAP 控制器被启用以进入调试模式。在引导期间,必须采取措施确保 JTAG_TMS 不会被外部源断言,从而可以避免进入调试模式。在现场,应将 JTAG_TMS 拉低以确保禁用 JTAGC TAP 控制器。

:[SM_047] 当设备用于安全相关功能时,将在现场禁用调试。 [结束]

:[SM_048] 如果看门狗定时器 (WDOG)、低功耗串行外设接口 (LPSPI)、低功耗周期性中断定时器 (LPIT)、FlexCAN 等模块,或通常任何可以冻结的模块在调试模式下,与功能安全相关,要求应用软件配置这些模块以在调试模式期间继续执行,并且在进入调试模式时不冻结模块操作。 [结束]

:提高对调试模式错误激活的恢复能力

:在调试模式下,看门狗控制和状态寄存器 (CS) 中的 DBG 位控制 WDOG 的操作。如果 CS[DBG] = 1,WDOG 计数器继续在调试模式下运行。

在调试模式下,模块的行为如下:

5.6.3 附加配置信息

5.6.3.1 堆栈

堆栈上溢和堆栈下溢是由于应用软件中的系统故障导致的共模故障。在堆栈上使用过多内存(推送大量数据)时会发生堆栈溢出。从内存中读取(弹出)过多数据时会发生堆栈下溢。堆栈包含有限数量的内存,通常在应用软件的开发过程中确定。当程序尝试使用比堆栈上保留(可用)更多的空间时(当访问超出堆栈上限和下限的内存时),堆栈被称为溢出或下溢,通常会导致程序崩溃。

在堆栈溢出和堆栈下溢的情况下实施监督堆栈并分别生成故障信号的措施可能是有益的。

5.6.3.1.1 初始检查和配置

:[SM_139] 当应用软件内部的系统故障导致堆栈下溢和堆栈溢出危及系统级时,可以实施功能安全机制来检测堆栈下溢和堆栈溢出故障. [结尾]

:在堆栈溢出或堆栈下溢错误的情况下发出通知

:可以使用 DWT 中的数据观察点比较器在堆栈上溢和下溢时触发调试监视器异常。

5.6.3.2 S32K1xx 配置

假设:[SM_140] 应用软件必须在激活安全相关功能之前验证 S32K1xx 的初始化是正确的。[end]

启动后,应用软件必须确保满足本节描述的条件之前启用安全相关功能。

下面是在执行任何安全功能之前必须通过的安全完整性功能检查的最少数量列表:

        • 启用 LPO

        • 启用 WDOG

        • SCG 和 RCM 状态寄存器中的错误标志处理:

                • 检查 SCG 中的时钟源和时钟错误寄存器

        • 检查 RCM_SRS 寄存器中最多复位的来源

        • IRC_SW_CHECK(另请参阅初始检查和配置)

        • WDOG 快速测试(请参阅看门狗的快速测试)

        • ERM SW 检查与系统中的 ECC 相关的内存错误事件的通知RAM

        • 启用时钟监视器

未列出先决条件。如果这些检查中的任何一个失败,则无法确保功能安全。

:将微控制器配置为在对设备上未使用的外设插槽进行任何访问时触发异常。

:引导后,对未实现的内存空间执行预期访问并检查是否发生预期的中止。

:检测地址和总线逻辑中的错误寻址和故障。

:将未使用的中断向量配置为指向或跳转到非法执行、包含非法指令或以某种其他方式导致检测到它们的执行的地址。

:在超级用户模式下仅运行硬件相关软件(操作系统、驱动程序)。

:降低意外写入配置寄存器影响 S32K1xx 安全功能执行的风险,或因更改而禁用安全机制。

:使用硬锁保护(如果该选项可用于寄存器)或使用外设访问控制来保护所有配置寄存器,以及在应用程序执行期间未修改的寄存器。

:为了降低意外写入配置寄存器影响 S32K1xx 安全功能执行的风险,或者由于它们的变化而禁用安全机制。

:一些平台外的外设有自己的寄存器保护。可以通过寄存器保护来保护的每个外设都有一个锁定位。该位可置位以启用相关外设的保护。

可以设置锁定寄存器位 (PORT_PCRn_LK = 1) 以获得最佳引脚控制寄存器写保护。

5.6.4 交叉开关(AXBS-Lite)

交叉开关设计用于最小化门数,并允许从任何主机(例如内核、eDMA)到任何从机(例如存储器、外设桥等)的并发事务。

5.6.4.1 运行时检查

交叉开关不需要初始化。您可以检查与交叉开关从属和主控配置相关的 MCM 寄存器中是否存在总线从属连接或主连接。

5.6.5 内存保护单元

作为一个多主机并发总线系统,S32K1xx 提供了安全机制来防止非安全主机干扰安全内核的运行。 S32K1xx 还包含处理具有不同或更低 ASIL 等级的软件任务的并发操作的机制。

:对于与安全相关的应用,应使用系统 MPU 确保只有授权的软件任务才能配置模块,并且只能根据其访问权限访问其分配的资源。

5.6.5.1 内存保护单元 (MPU)

系统内存保护单元 (MPU) 在交叉开关 (AXBS-Lite) 处提供内存保护。系统 MPU 允许将物理内存分成 16 个不同的区域。每个 AXBS-Lite 主机(Core、eDMA)可以被分配到每个区域的不同访问权限。系统 MPU 可用于防止非安全主机(包括 eDMA)访问受限内存区域。

允许完成具有足够访问控制权限的内存访问,而未映射到任何区域描述符或权限不足的访问会以保护错误响应终止。系统 MPU 实现了一组程序可见的区域描述符,用于监视所有系统总线地址。结果是具有二维连接矩阵的硬件结构,其中区域描述符代表一维,各个系统总线地址和属性代表第二维。

: [SM_094] 假设系统 MPU 在用于安全应用之前已检查其功能是否正确。可以配置每个当前主站的可能访问权限并检查预期的系统反应。检查应在 L-FTTI 内完成一次(在启动时)。 [结束]

5.6.5.2 初始检查和配置

:[SM_095] 系统级功能安全完整性措施必须涵盖总线操作,以减少共享资源被当前主设备(核心、eDMA)错误修改的可能性。 [结束]

:系统 MPU 级别的访问限制是防止特定软件例程(进程)对某些预定义的内存映射地址位置进行不必要的读/写访问。

:系统 MPU 应用于确保只有授权的软件例程才能配置模

标签: 555集成电路间歇定时器20200k14压力继电器压力变送器的抗干扰电源电路复用传感器阵列感应开关传感器到位返回26k1电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台