ZHCU887D September   2020  – January 2022 TMS320F280040-Q1 , TMS320F280040C-Q1 , TMS320F280041 , TMS320F280041-Q1 , TMS320F280041C , TMS320F280041C-Q1 , TMS320F280045 , TMS320F280048-Q1 , TMS320F280048C-Q1 , TMS320F280049 , TMS320F280049-Q1 , TMS320F280049C , TMS320F280049C-Q1

 

  1.   TMS320F28004x 安全手册
  2.   商标
  3. 1引言
  4. 2TMS320F28004x 产品安全能力和约束
  5. 3TI 针对系统故障管理的开发流程
    1. 3.1 TI 新产品开发流程
    2. 3.2 TI 功能安全开发流程
  6. 4TMS320F28004x 产品概述
    1. 4.1 C2000 架构和产品概述
      1. 4.1.1 TMS320F28004x MCU
    2. 4.2 功能安全概念
      1. 4.2.1 应用于 TMS320F28004x MCU 的 VDA E-GAS 监测概念
      2. 4.2.2 容错时间间隔 (FTTI)
      3. 4.2.3 TMS320F28004x MCU 安全状态
      4. 4.2.4 运行状态
      5. 4.2.5 故障管理
      6. 4.2.6 关于改善防止干扰特性的建议
      7. 4.2.7 关于解决共因失效问题的建议
    3. 4.3 C2000 安全诊断库
      1. 4.3.1 使用假设 - F28004x 自检库
      2. 4.3.2 运行详细信息 - F28004x 自检库
        1. 4.3.2.1 运行详细信息 – C28x 自检库
        2. 4.3.2.2 运行详细信息 – CLA 自检库
        3. 4.3.2.3 运行详细信息 – SDL
      3. 4.3.3 C2000 安全 STL 软件开发流程
      4. 4.3.4 STL 的软件交付表 (SDF)
    4. 4.4 TMS320F28004x MCU 安全实现
      1. 4.4.1 假设的安全要求
      2. 4.4.2 TMS320F28004x MCU 上的示例性安全概念实现选项
        1. 4.4.2.1 安全概念实现:选项 1
        2. 4.4.2.2 安全概念实现:选项 2
  7. 5安全要素简述
    1. 5.1 TMS320F28004x MCU 基础设施组件
      1. 5.1.1 电源
      2. 5.1.2 时钟
      3. 5.1.3 复位
      4. 5.1.4 系统控制模块和配置寄存器
      5. 5.1.5 电子保险丝静态配置
      6. 5.1.6 JTAG 调试、跟踪、校准和测试访问
    2. 5.2 处理元件
      1. 5.2.1 C28x 中央处理单元 (CPU)
      2. 5.2.2 控制律加速器
    3. 5.3 存储器(闪存、SRAM 和 ROM)
      1. 5.3.1 嵌入式闪存
      2. 5.3.2 嵌入式 SRAM
      3. 5.3.3 嵌入式 ROM
    4. 5.4 包括总线仲裁在内的片上通信
      1. 5.4.1 器件互连
      2. 5.4.2 直接存储器访问 (DMA)
      3. 5.4.3 增强型外设中断扩展器 (ePIE) 模块
      4. 5.4.4 双区域代码安全模块 (DCSM)
      5. 5.4.5 交叉开关 (X-BAR)
      6. 5.4.6 计时器
    5. 5.5 数字 I/O
      1. 5.5.1 通用输入/输出 (GPIO) 和引脚多路复用
      2. 5.5.2 增强型脉宽调制器 (ePWM)
      3. 5.5.3 高分辨率 PWM (HRPWM)
      4. 5.5.4 增强型捕捉 (eCAP)
      5. 5.5.5 高分辨率捕捉 (HRCAP)
      6. 5.5.6 增强型正交编码器脉冲 (eQEP)
      7. 5.5.7 Σ-Δ 滤波器模块 (SDFM)
      8. 5.5.8 外部中断 (XINT)
    6. 5.6 模拟 I/O
      1. 5.6.1 模数转换器 (ADC)
      2. 5.6.2 缓冲数模转换器 (DAC)
      3. 5.6.3 比较器子系统 (CMPSS)
      4. 5.6.4 可编程增益放大器 (PGA)
    7. 5.7 数据传输
      1. 5.7.1 控制器局域网 (DCAN)
      2. 5.7.2 串行外设接口 (SPI)
      3. 5.7.3 串行通信接口 (SCI)
      4. 5.7.4 内部集成电路 (I2C)
      5. 5.7.5 快速串行接口 (FSI)
      6. 5.7.6 本地互连网络 (LIN)
      7. 5.7.7 电源管理总线模块 (PMBus)
  8. 6诊断简述
    1. 6.1 TMS320F28004x MCU 基础设施组件
      1. 6.1.1  使用 CPU 计时器进行时钟完整性检查
      2. 6.1.2  使用 HRPWM 执行时钟完整性检查
      3. 6.1.3  关键寄存器的 EALLOW 和 MEALLOW 保护功能
      4. 6.1.4  电子保险丝自动负载自检
      5. 6.1.5  电子保险丝 ECC
      6. 6.1.6  电子保险丝 ECC 逻辑自检
      7. 6.1.7  通过 XCLKOUT 对时钟进行外部监测
      8. 6.1.8  热复位的外部监测 (XRSn)
      9. 6.1.9  外部电压监控器
      10. 6.1.10 外部看门狗
      11. 6.1.11 复位引脚上的干扰滤波
      12. 6.1.12 JTAG 端口的硬件禁用
      13. 6.1.13 内部看门狗 (WD)
      14. 6.1.14 针对控制寄存器的锁定机制
      15. 6.1.15 时钟丢失检测 (MCD)
      16. 6.1.16 NMIWD 复位功能
      17. 6.1.17 NMIWD 影子寄存器
      18. 6.1.18 控制寄存器的多位使能键
      19. 6.1.19 在线监测温度
      20. 6.1.20 静态配置寄存器的定期软件读回
      21. 6.1.21 外设时钟门控 (PCLKCR)
      22. 6.1.22 外设软复位 (SOFTPRES)
      23. 6.1.23 使用片上计时器进行 PLL 锁定性能评测
      24. 6.1.24 复位原因信息
      25. 6.1.25 写入配置的软件读回
      26. 6.1.26 ERRORSTS 功能的软件测试
      27. 6.1.27 时钟丢失检测功能的软件测试
      28. 6.1.28 复位的软件测试
      29. 6.1.29 看门狗 (WD) 操作的软件测试
      30. 6.1.30 欠压复位 (BOR)
      31. 6.1.31 双路时钟比较器 (DCC) - 0 类
      32. 6.1.32 外设访问保护 - 0 类
    2. 6.2 处理元件
      1. 6.2.1  CLA 对于非法操作和非法结果的处理
      2. 6.2.2  使用 CPU 进行 CLA 活跃度检查
      3. 6.2.3  CPU 对于非法操作、非法结果和指令陷入的处理
      4. 6.2.4  软件互惠式比较
      5. 6.2.5  CLA 的软件测试
      6. 6.2.6  CPU 的软件测试
      7. 6.2.7  栈溢出检测
      8. 6.2.8  静态存储器内容的 VCU CRC 检查
      9. 6.2.9  VCU CRC 自动覆盖
      10. 6.2.10 禁用未使用的 CLA 触发源
      11. 6.2.11 嵌入式实时分析和诊断 (ERAD) - 0 类
    3. 6.3 存储器(闪存、SRAM 和 ROM)
      1. 6.3.1  闪存阵列中的位多路复用
      2. 6.3.2  SRAM 存储器阵列中的位多路复用
      3. 6.3.3  清理数据以检测/校正存储器错误
      4. 6.3.4  闪存 ECC
      5. 6.3.5  闪存程序验证和擦除验证检查
      6. 6.3.6  ECC 逻辑的软件测试
      7. 6.3.7  闪存预取、数据缓存和等待状态的软件测试
      8. 6.3.8  存储器访问保护机制
      9. 6.3.9  SRAM ECC
      10. 6.3.10 SRAM 奇偶校验
      11. 6.3.11 奇偶校验逻辑的软件测试
      12. 6.3.12 SRAM 的软件测试
      13. 6.3.13 CLA-PROM 的背景 CRC (CLAPROMCRC)
      14. 6.3.14 存储器开机自检 (MPOST)
    4. 6.4 包括总线仲裁在内的片上通信
      1. 6.4.1  使用次级自由运行计数器进行 1oo2 软件表决
      2. 6.4.2  DMA 溢出中断
      3. 6.4.3  为未使用的中断维护中断处理程序
      4. 6.4.4  上电预运行安全检查
      5. 6.4.5  链路指针的多数表决和错误检测
      6. 6.4.6  PIE 双 SRAM 硬件比较
      7. 6.4.7  PIE 双 SRAM 比较检查
      8. 6.4.8  X-BAR 标志的软件检查
      9. 6.4.9  包括错误测试在内的 ePIE 运行软件测试
      10. 6.4.10 禁用未使用的 DMA 触发源
    5. 6.5 数字 I/O
      1. 6.5.1  eCAP 应用级安全机制
      2. 6.5.2  ePWM 应用级安全机制
      3. 6.5.3  使用 X-BAR 进行 ePWM 故障检测
      4. 6.5.4  ePWM 同步检查
      5. 6.5.5  eQEP 应用级安全机制
      6. 6.5.6  eQEP 正交看门狗
      7. 6.5.7  正交看门狗功能的 eQEP 软件测试
      8. 6.5.8  硬件冗余
      9. 6.5.9  HRPWM 内置自检和诊断功能
      10. 6.5.10 信息冗余技术
      11. 6.5.11 eCAP 对 ePWM 的监测
      12. 6.5.12 ADC 对 ePWM 的监测
      13. 6.5.13 在线监测周期性中断和事件
      14. 6.5.14 用于在线监测的 SDFM 比较器滤波器 - 0 类
      15. 6.5.15 SD 调制器时钟故障检测机制
      16. 6.5.16 包括错误测试在内的功能软件测试
      17. 6.5.17 HRCAP 对 HRPWM 的监测
      18. 6.5.18 HRCAP 校准逻辑测试特性
      19. 6.5.19 QMA 错误检测逻辑
    6. 6.6 模拟 I/O
      1. 6.6.1  ADC 信息冗余技术
      2. 6.6.2  ADC 输入信号完整性检查
      3. 6.6.3  通过改变采集窗口来检查 ADC 信号质量
      4. 6.6.4  CMPSS 斜坡发生器功能检查
      5. 6.6.5  DAC 至 ADC 环回检查
      6. 6.6.6  DAC 至比较器环回检查
      7. 6.6.7  PGA 至 ADC 环回测试
      8. 6.6.8  ADC 的开路/短路检测电路
      9. 6.6.9  通过 ADC 进行 VDAC 转换
      10. 6.6.10 禁用 ADC 未使用的 SOC 输入源
    7. 6.7 数据传输
      1. 6.7.1  包括端到端安全状态恢复的信息冗余技术
      2. 6.7.2  位错误检测
      3. 6.7.3  消息中的 CRC
      4. 6.7.4  DCAN 确认错误检测
      5. 6.7.5  DCAN 格式错误检测
      6. 6.7.6  DCAN 填充错误检测
      7. 6.7.7  使用片上计时器进行 I2C 访问延迟性能评测
      8. 6.7.8  I2C 数据确认检查
      9. 6.7.9  消息中的奇偶校验
      10. 6.7.10 SCI 中断错误检测
      11. 6.7.11 帧错误检测
      12. 6.7.12 超限错误检测
      13. 6.7.13 使用 I/O 环回的功能软件测试
      14. 6.7.14 SPI 数据超限检测
      15. 6.7.15 传输冗余
      16. 6.7.16 FSI 数据超限/欠载检测
      17. 6.7.17 FSI 帧超限检测
      18. 6.7.18 FSI CRC 成帧检查
      19. 6.7.19 FSI ECC 成帧检查
      20. 6.7.20 FSI 帧看门狗
      21. 6.7.21 FSI RX Ping 看门狗
      22. 6.7.22 FSI 标签监控器
      23. 6.7.23 FSI 帧类型错误检测
      24. 6.7.24 FSI 帧结束错误检测
      25. 6.7.25 FSI 寄存器保护机制
      26. 6.7.26 LIN 物理总线错误检测
      27. 6.7.27 LIN 无响应错误检测
      28. 6.7.28 LIN 校验和错误检测
      29. 6.7.29 数据奇偶校验错误检测
      30. 6.7.30 LIN ID 奇偶校验错误检测
      31. 6.7.31 消息中的 PMBus 协议 CRC
      32. 6.7.32 时钟超时
      33. 6.7.33 使用片上计时器进行通信访问延迟性能评测
  9. 7参考文献
  10.   A 安全架构配置
  11.   B 分布式开发
    1.     B.1 功能安全生命周期如何应用于功能安全合规型产品
    2.     B.2 德州仪器 (TI) 执行的活动
    3.     B.3 提供的信息
  12.   C 术语和定义
  13.   D 安全特性和诊断汇总
  14.   E 术语表
  15.   修订历史记录

包括错误测试在内的功能软件测试

软件测试可用于测试模块的基本功能,引入诊断错误并检查错误响应是否正确。这种测试可在启动时执行,或者定期执行。必要的软件需求由系统集成商执行的软件定义。

下面给出了创建一些特定于模块的测试功能和错误测试的思路:

  • 可以通过向 TMS320F28004x MCU 发送一个已知的输入测试序列来检查 SDFM 功能,再使用数字抽取滤波器对其进行处理,并对照已知值对该值进行交叉检查。为了检测比较器中断生成逻辑中的故障,可以创建一个测试模式,用于将高、低阈值寄存器值分别配置为最小值和最大值。应始终使用这样的配置来生成中断。
  • 可以通过将已知良好的数据从源存储器传输到目标存储器并在传输后检查数据完整性来检查 DMA 功能。使用提供的软件触发器 (CONTROL.PERINTFRC) 可以启动传输。片上计时器可用于评测此类数据传输所需的时间。
  • 使用输入和输出 X-BAR 创建一个循环(输出 X-BAR 可用作输入 X-BAR 的激励信号),在输入端发送一个已知测试序列,并在最终输出端观察,从而执行输入和输出 X-BAR 模块的软件测试。可通过发送测试激励信号并使用 ePWM 跳变或同步功能来观察响应,从而检查 ePWM X-BAR 的完整性。
  • 可通过配置输入 X-BAR 并强制相应的 GPIO 寄存器生成中断来检查针对 XINT 功能的软件测试。通过执行极性检查 (XINTxCR.POLARITY) 和使能 (XINTxCR.ENABLE) 功能,可以提高诊断覆盖率。
  • 可通过将 PWM、HRPWM 或 GPIO 输出环回到各自的模块输入,提供模块所需的已知良好序列并观察模块输出来检查 eCAP、HRCAP 和 eQEP 功能。对于 eCAP 和 HRCAP,可以借助输入 X-BAR 在内部进行测试。
  • 可以使用Topic Link Label6.3.7中给出的类似技术检查 ROM 预取功能。
  • ePWM 模块由时基 (TB)、计数器比较 (CC)、动作限定器 (AQ)、死区发生器 (DB)、PWM 斩波器 (PC)、跳变区 (TZ)、事件触发器 (ET) 和数字比较 (DC) 子模块组成。使用 ePWM 提供合适的激励信号并使用其中一个捕捉(时间戳)模块(eCAP、XINT、eQEP 等)观察响应,从而测试各个子模块。建议在执行软件测试时覆盖与应用配置相关的各种寄存器值。由于各种子模块的正则线性特性,使用软件测试可以获得高覆盖率。
  • SRAM 包装程序逻辑电路的软件测试应提供诊断覆盖,以便在访问特定 SRAM 的各种主器件之间进行仲裁,并确保访问保护正常运行。这对用于提供 SRAM 位单元覆盖的测试进行了补充(请参阅Topic Link Label6.3.12)。
  • 可通过从 CPU 和 CLA 的处理单元写入互补数据模式(如 0xA5A5、0x5A5A 等),并从通过不同网桥连接的 IP 寄存器读回来测试互连 (INC) 功能。可将读回数据与预期黄金值进行比较,以确保无故障互连操作。可以使用 CPU 和 CLA 对不同数据宽度类型的访问(16 位和 32 位)和宽地址范围(如适用)重复该练习。对于连接到各种网桥的应用中使用的不同外设实例,可以重复 CPU 访问,如图 4-1 所示。
  • 为了测试 ADC 模块和后处理块 (PPB) 的核心功能,可通过外部电路或内部 DAC 在 ADC 输入引脚上提供一组预定的电压电平。由此获得的 ADC/PPB 结果可以对照预期值进行交叉检查,以确保正常运行。可以运用和测试应用中使用的 ADC 极端拐角值来检查工作范围内的转换是否成功。可通过写入互补数据模式、读回并与预期值进行比较来检查 ADC 配置寄存器。

  • DAC 包含一组控制寄存器,可通过在 16 位访问模式下写入互补数据模式(如 0xA5A5、0x5A5A 等)来进行检查。可以读回所有寄存器并与预期值进行比较。可通过将寄存器配置为 0xA5A5 模式、置位 DAC 的软复位、读回寄存器并将读回值与预期复位值进行比较来检查寄存器的复位特性。可以检查锁定寄存器,以确保其只需设置一次。此外,被锁定的寄存器在写入时不得更新。若要测试 DAC 模块的核心功能,可以使用软件对其进行配置,以提供一组预定的电压电平。这些电压电平可由外部或内部 ADC 测量,由此获得的结果可以对照预期值进行交叉检查,以确保正常运行。根据应用对 DAC 的极端拐角值进行编程和测试,以检查在有效范围内数字到模拟模块的转换是否成功。
  • 比较器子系统 (CMPSS) 包含一组寄存器,可通过在 16 位和 32 位访问模式下写入互补数据模式(如 0xA5A5、0x5A5A 等)来检查这些寄存器。可以读回这些寄存器并与预期值进行比较。可由适用的主器件(即 DMA、CLA 和 CPU)覆盖这些访问。在通过上升的 PWMSYNC 信号从 RAMPDLYS 加载 RAMPDLYA 后,可以检查 CMPSS 模块的特性(如斜坡递减),以进行 RAMPDLYA 的倒计时。应确保减量器减少到零并保持不变,直到下一次从 RAMPDLYS 重新加载。可在倒计时之前配置 RAMPDLYS 的极值。可通过将数字滤波器 CTRIPHFILCTL/CTRIPLFILCTL 寄存器配置为各种 SAMPWIN(采样窗口)和 THRESH(多数表决阈值)值,然后根据滤波器输出的变化验证 COMPHSTS/COMPLSTS 的变化,从而检查数字滤波器 CTRIPHFILCTL/CTRIPLFILCTL 寄存器。可以使用滤波器时钟预分频器值 (CTRIPLFILCLKCTL) 的适用范围来确保滤波器正确采样。
  • 可通过软件测试来测试 CPU 计时器的一般操作,方法是从周期寄存器 PRDH 加载 32 位计数器寄存器 TIMH,在每个时钟周期开始递减计数器。当计数器达到零时,计时器中断输出会生成一个中断脉冲。在测试计时器功能时,通过选择时钟源 SYSCLK、INTOSC1、INTOSC2 或 XTAL 来改变计时器预分频计数器 (TPR) 值,并改变输入时钟。在计时器计数结束时测试中断生成功能。检查 TCR 寄存器中的时间溢出标志和计时器重新加载 (TRB) 功能是否正常运行。
  • 可以在 zone1、zone2 和非安全区域中独立实现 DCSM 中的软件测试功能,以检查 DCSM 功能。在器件启动阶段,器件安全配置从 OTP 加载到 DCSM。测试功能可用于对属于同一区域和不同区域的 RAM 和闪存扇区进行访问过滤检查(读写和执行权限)。另外,还可以对 RAM 和闪存扇区进行 EXEONLY 配置检查,以确保阻止除执行访问之外的所有访问。