ZHCABS9A October 2017 – September 2022 TMS320F28075 , TMS320F28075-Q1 , TMS320F28374D , TMS320F28374S , TMS320F28375D , TMS320F28375S , TMS320F28375S-Q1 , TMS320F28376D , TMS320F28376S , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28377S , TMS320F28377S-Q1 , TMS320F28379D , TMS320F28379D-Q1 , TMS320F28379S
如前所述,一些 C2000 器件支持使用 HWBIST 来筛查 CPU 在系统中是否存在逻辑故障,而不仅仅是在器件制造测试期间。图 1-2 展示了一个方框图,其中包括支持此选项的附加电路。
在器件测试环境中使用 HWBIST 时,测试仪管理每个目标逻辑部分以提供器件的总体测试。然而,当器件在系统中时,系统的各方面可能会受到待测目标逻辑的活动的不利影响。这些方面包括器件上和器件外部。出于这个原因,HWBIST 在目标逻辑周围包含一个屏障,以便 HWBIST 测试的活动与系统的其余部分隔离。在微运行测试期间,CPU 与外设和中断信号断开连接。测试后,内核重新连接到这些信号。这称为内核界限。在图 1-2 中,隔离屏障显示为绿色。同样,待测逻辑必须与系统中其他地方的活动隔离。这一屏障也发挥同样的作用。
但是,如果系统必须引起待测 CPU 的注意,那么它可能提供中断。当 BIST 控制器释放目标逻辑时,这些中断被捕获在缓冲器中,并提供给待测 CPU 逻辑。目标逻辑的完整覆盖率测试需要一段时间。覆盖率目标越高,所需时间就越长。C2000 器件中的 BIST 控制器将总覆盖率分为若干小部分来执行和验证,尽可能减少这些捕获的中断的延迟。这也解决了通过并行扫描路径产生的较高晶体管开关速率的一些功率问题。
在极端情况下,系统资源可能生成一个 NMI,该 NMI 会停止 HWBIST 操作并使用 HWBIST 复位恢复待测 CPU 运行。一旦环境恢复完成,就会获取 NMI 矢量,并且 NMI 服务例程可以解码 NMI 标志寄存器以确定中断的来源。NMI 将在 HWBIST 软件返回到调用序列之前设置陷阱。用户应用程序必须相应地管理 NMI 响应。
器件制造 HWBIST 和系统内 HWBIST 之间的一个显著差异在于:器件测试仪通过测试端口与 BIST 控制器进行通信,而系统内 HWBIST 使用 CPU 与 BIST 控制器进行通信。HWBIST 正在测试的 CPU 是管理 HWBIST 控制器的 CPU。更具体地说,待测 C28x CPU 控制 BIST 操作,其中所有锁存器都被多次更改。
下面是这个过程的工作原理。在 CPU 上运行的代码执行以下操作:
当 HWBIST 正在执行时,系统的其他方面也可以运行。如前所述,来自片外或片上源的中断保存在中断捕获缓冲器中。但是,将在 HWBIST 主动测试 CPU 时处理映射到 DMA 通道的触发器。例如,一旦完成步骤 6,就可以收集来自 SCI 或 I2C 端口的系统相关命令,并将其从端口移动到要处理的系统存储器中。这是因为所有器件总线都使用 HWBIST 屏障进行隔离。
前面概述中列出的所有操作都在 C2000 软件诊断库 (SDL) 中执行,该库是 C2000Ware 的一个组件。SDL 提供功能安全软件机制的实现,可帮助系统开发人员实现其安全目标。有关应用程序代码如何可以调用提供的 HWBIST 驱动程序的详细信息,请参阅 SDL 软件包中包含的用户指南。SDL 用户指南是有关 HWBIST 的器件特定的详细信息的更佳来源,例如支持的诊断覆盖率和执行时间。请在 <C2000Ware install directory>/libraries/diagnostic/<device>/docs 中查找此文档。