ZHCABH9A October 2018 – March 2022 TMS320F280021 , TMS320F280021-Q1 , TMS320F280023 , TMS320F280023-Q1 , TMS320F280023C , TMS320F280025 , TMS320F280025-Q1 , TMS320F280025C , TMS320F280025C-Q1 , TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1
本应用报告讨论了特定系列的 C2000 实时控制器中的存储器开机自检 (M-POST) 功能。M-POST 架构可对多个存储器进行并行测试,从而缩短测试时间,并用于片上存储器的开机测试。
C2000is a TM ofTI corporate name.
Other TMs
C2000 器件是功能强大的 32 位浮点微控制器单元 (MCU),旨在用于先进的闭环控制应用,例如工业驱动和自动化、工业电源、太阳能和电动汽车应用中的电机控制和电源转换控制。该系列 MCU 除了具有出色的控制性能,还支持大量功能安全特性,可帮助客户设计和认证其功能安全系统。存储器开机自检 (M-POST) 是在器件启动期间测试器件 SRAM 和 ROM 的重要手段。基于客户的一次性可编程 (OTP) 配置,该测试在启动期间借助片上硬件自动执行。测试执行时,会并行测试多个存储器以减少对引导时间的影响。
随着半导体在汽车和工业市场的广泛应用,除了功率、性能、面积等传统因素之外,功能安全正成为半导体设计的一个关键维度。功能安全标准(例如,汽车领域的 ISO26262、工业领域的 IEC61508、白色家电领域的 IEC60730 等)列出了此类系统的设计和部署阶段需要遵守的要求。
功能安全要求避免因安全相关电子和电气系统的错误行为而产生的不合理残余风险。故障包括系统性故障和随机硬件故障。对于随机硬件故障,存储器(尤其是 SRAM)是电子器件和可编程电子器件的软件执行部分中功能安全的最重要元件之一。这是因为就面积和晶体管数量而言,SRAM 通常是整个器件中最大的元件。此外,SRAM 是非常密集的电路,因此容易受到细微缺陷的影响。并且,与正常电路逻辑相比,SRAM 的工作电压范围更低,因此更容易受到干扰。对 SRAM 的特性和错误检测的进一步讨论不在本应用报告的范围内。有关详细信息,请参阅 SRAM 中的错误检测。
在功能安全系统中使用 C2000 器件的客户可能需要特定的存储器诊断覆盖范围 (DC),以满足各种功能安全标准或要求。单点故障和潜在故障都可能需要特定的诊断覆盖范围。功能安全应用中使用的电子器件和可编程电子器件可能需要能够在启动时或维护周期内定期执行 SRAM 和 ROM 测试。一些其他类别的安全应用则需要在应用执行的同时定期测试存储器。C2000 上的 M-POST 专为满足前一种需求而设计和启用,以便检测潜在故障。M-POST 能够在启动时执行存储器测试,从而帮助客户实现其功能安全要求。
并且,为了检测系统中的随机硬件故障,C2000 器件在存储器上配备了 EDAC,即错误检测和纠正逻辑。此外,F28x7x SafeTI 诊断库 (SDL) 为 RAM March13n 算法提供了软件,该算法专门针对数据、地址和 EDAC 位,用于解决永久性固定故障,以及系统性能下降可能导致的一些最糟糕的路径时序故障。March13n 测试专为强大的存储器系统内测试而设计,可以轻松集成到系统应用中。有关详细信息,请参阅 C2000™ CPU 存储器内置自检。
利用片上存储器的 C2000 MCU 上的处理元件配备了硬件内置自检 (HWBIST),该自检面向包括 TMU、FPU 和 VCU 在内的 C28x CPU 逻辑,能够实现高达 99% 的 DC。有关更多详细信息,请参阅 C2000™ CPU 存储器内置自检。此外,控制律加速器自检库 (CLA STL) 面向 CLA 实现了 90% 的 DC,并支持在功能安全系统中使用 CLA 进行处理。有关详细信息,请参阅 C2000™ CLA 自检库。
术语 | 定义 |
---|---|
ATE | 自动测试设备 |
CPU | 中央处理单元 |
DC | 诊断覆盖范围 |
DCSM | 双区域代码安全模块 |
FTTI | 容错时间间隔 |
MDP | 存储器数据路径(连接 PBIST 控制器和存储器的路径) |
MPOST | 存储器开机自检 |
NMI | 不可屏蔽的中断 |
OTP | 一次性可编程 |
PBIST | 可编程内置自检(自检需要可编程引擎) |
ROM | 只读存储器 |
SRAM | 静态随机存取存储器 |
M-POST 在可编程内置自检 (PBIST) 解决方案的帮助下启用,用于器件的制造测试。除了制造测试期间使用的自动化测试设备 (ATE) 接口外,PBIST 还具有用于现场自检的 CPU 可配置接口。
PBIST 架构由一个专门用于高效存储器测试的控制器组成。该控制器设计有一个专用寄存器集和一个专门针对存储器测试的高度专业化的流水线和指令集。此外,PBIST 引擎配备了多个读取和写入存储器端口或总线,使其能够有效地并行测试多个存储器实例。PBIST 控制器也可以访问 PBIST ROM。PBIST ROM 用于存储测试例程,以供 PBIST 引擎提取和执行。这些测试例程由 PBIST 控制器提取,然后在多个片上存储器实例上并行执行。由于专门的架构和测试例程,PBIST 能够以非常有效的方式,在晶体管级别上对已实现的 SRAM 和 ROM 提供非常高的诊断覆盖范围。由于 PBIST 控制器可以直接访问 ROM 和 SRAM,它甚至能够在配备 DCSM(双区域代码安全模块)的器件上测试安全存储器实例。有关在 F28004x 上利用 DCSM 的详细信息,请参阅使用 C2000™ MCU 实现 EV/HEV 安全功能共存。
图 2-2 描述了执行存储器自检所涉及的步骤。
器件 SRAM 使用 March13n 算法进行测试。该算法将确保:
下表显示了 SRAM 测试期间包含的操作序列。
地址 | 初始化 | March 元件 1 | March 元件 2 | March 元件 3 | March 元件 4 |
---|---|---|---|---|---|
0 | Wr(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) |
1 | Wr(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) | / | / |
2 | Wr(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) |
| | \ | \ | \ | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) |
N-1 | Wr(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) | Rd(0)、Wr(1)、Rd(1) | Rd(1)、Wr(0)、Rd(0) |
ROM 测试算法将读取 ROM 的内容并计算一个 32 位/64 位签名,然后将这个签名与正确签名进行比较。
C2000 PBIST 为客户提供了另一种诊断安全机制,可用于进一步启用功能安全系统。它可作为一种有效手段,在启动时检测 C2000 器件的 ROM 和 SRAM 中的潜在故障。
本部分将介绍 M-POST 功能在 F28004x 上的实现。要确认与其他器件相关的功能可用性和详细信息,请参阅特定于器件的 TRM 和数据表。
存储器开机自检可以通过配置“Z1-OTP-BOOT-GPREG2”寄存器来启用,如表 5-1 中所示。在配置这些 USER OTP 位时,需要遵守 TRM 的 ROM 代码和外设引导 部分中提到的所有要求。
位 | 名称 | 说明 | 引导 ROM 操作 |
---|---|---|---|
31-24 | 密钥 | 将 0x5A 写入这 8 位,告诉引导 ROM 代码此寄存器中的位有效 | 如果设置为 0x5A,引导 ROM 将使用此寄存器中的值。如果设置为任何其他值,引导 ROM 将忽略此寄存器中的值。 |
23-8 | 保留 | 保留 | 无操作 |
7-6 | 保留 | 配置存储器开机自检 | |
0x0 - 执行自检 | |||
0x1 - 无操作(保留) | |||
0x2 - 无操作(保留) | |||
0x3 - 无操作(保留) | |||
5-4 | 错误状态引脚 | 设置 GPIO 引脚,以便用作 ERRORSTS | 无操作 |
0x0 – GPIO24 | |||
0x1 – GPIO28 | |||
0x2 – GPIO29 | |||
0x3 – 已禁用 ERRORSTS(默认值) | 引导 ROM 将为选定的 GPIO 引脚配置适当的多路复用器 | ||
3-0 | 保留 | 保留 | 无操作 |