当前位置: 首页 > news >正文

TC3xx芯片】TC3xx芯片的SCU之WDT

1. TC3xx WDT速览

SCU(system control unit) 是控制不同系统功能模块的集合,这些子模块共享一个公共总线接口,子模块包含了下图这些,具体结构见图。后续文章会详细解读各个部分

TC3xx 芯片包含以下看门狗定时器:

  • Safety WatchdogSafety Watchdog Timer
  • CPU Watchdog (Watchdog Timer per CPU),每一个CPU 核都有自己的CPU Watchdog

TC397 会有 7 个WatchDog。

每个Watchdog有三个Register,WDTxCon0,WDTxCon1,WDTxSR。

除了标准的"看门狗"功能外,每个看门狗定时器还集成了End-of-Initialization(ENDINIT)保护机制,该功能可防止关键寄存器被意外写入。在看门狗服务和修改ENDINIT位是关键操作,必须确保在系统故障时不被执行。为保护这些功能,芯片采用了精密的安全机制:访问看门狗控制寄存器时需要同时验证密码和保护位。任何未提供正确密码或保护位的写操作都会被判定为系统故障,并触发看门狗报警。

此外,即使通过有效访问清除了ENDINIT位以开放关键寄存器的写入权限,看门狗也会为该访问窗口设置时间限制。若未在时限届满前重新正确设置ENDINIT位,系统将被判定为运行异常。这些严格的要求虽不能提供绝对保证,但能显著增强系统运行的鲁棒性。

看门狗定时器的主要特性总结如下:

​基本配置​

  • 采用16位计数器结构
  • 可选的输入时钟频率:fSPB/64、fSPB/256 或 fSPB/16384
  • 支持16位用户可定义的重载值(正常看门狗模式),超时模式采用固定重载值​安全保护机制​
  • 集成对应的ENDINIT位控制及修改监控功能
  • 采用密码访问机制,支持用户自定义密码字段
  • 访问错误检测:首次访问密码无效或二次访问保护位无效时,将向SMU触发报警​监控能力​
  • 时序与逻辑监控功能:
  • 可选的代码序列校验:错误的代码序列签名将触发SMU报警
  • 可选的代码执行时间校验:执行时间超出预设范围将触发SMU报警
  • 溢出错误检测:计数器溢出时立即向SMU发出报警请求​特殊工作模式​
  • 看门狗功能可单独禁用(访问保护和ENDINIT监控功能保持有效)
  • 可配置安全预警机制:未处理的安全预警事件将禁止看门狗重载,确保SMU硬件及时响应
  • (注:fSPB表示系统外设总线时钟频率,SMU为系统管理单元,ENDINIT为初始化结束保护位)

2. TC3xx SMU Watchdog Alarm

2.1 Watchdog Alarm处理流程

根据文档描述,当出现没有及时喂狗的情况,虽然触发了alarm,但仍需要一段特殊流程来保证MCU行为,特别是在重启前给与软件一小段时间用于保存现场,这是非常关键的。

因此,SMU 看门狗alarm处理流程可用下图进行总结:
 

Watchdog一般情况下如果Watchdog time溢出了就会产生一个watch dog reset,在TC3xx中Watchdog的Timeout并不会直接触发Reset,而是经过配置SMU后会触发SMU里面的一个Recovery Timer启动,Recovery Timer的Timeout时间可以配置,单Recovery Timerout后就会产生一个Alarm,如果这个Alarm配置为Reset信号的话,就会触发Reset。

当WDT timeout发生时,如果采用默认配置,则直接触发NMI;同时有一个名叫Recovery Timer的计时器用于监控WDT Alarm处理的超时,一旦超过预配置的阈值(RTD)后,就会产生一个Recovery timeout的alam(对应ALM10[16-17])。

这个alam的默认配置为Reset(b110:RESET):

这个路径就很清楚了,那么我们来看看比较关键的Recovery Timer该如何配置

2.2 Recovery Timer详解


在SMU里,Recovery Timer共有两个实例,每个实例均可配置服务不同的WDT timeout alarm。

与Recovery Timer相关的寄存器包括:

RTC
Recovery Timer Configuration,用于配置超时阈值、使能RT0\1,如下:

阈值常见使用默认值0x3FF,RT均打开。

  • RTAC00
  • RTAC01

RTAC00\01用于配置RT0的服务对象,包括CPU Watchdog Timeout、Safety Watchdog Timeout等;

以RTAC00为例,

默认值为0xA80108,即对应ALM Group GID0 = d8 ,Alarm ID ALID0 = d10 ,对应ALM8[10]CPU0 看门狗超时,

每个寄存器可以配置2个Alarm,因此RTAC00 ,RTAC01共计可以配置服务4个Alarm,在默认配置中,RT0主要服务 Safety WDT, CPU0\1\2 WDT

  • RTAC10
  • RTAC11

RTAC10\11用于配置RT1的服务对象,包括CPU Watchdog Timeout、Safety Watchdog Timeout等,与上述配置类似,RT0默认服务CPU3\4\5 WDT

2.3 NMI里可以做什么?

配置好RT后,我们继续来看看看门狗超时的行为--NMI,全称Non-Maskable Interrupt。

它是Tricore内核Trap系统中的一个具体实现。

SMU通过内部行为配置NMI触发一个Trap事件给到SCU,再有SCU仲裁生成Trap给到对应CPU,如下:

rap发生时,会由硬件自动生成一个Trap ID,该ID由两部组成,

TCN:Trap Class Number,作为Trap table的索引,由硬件根据BTV生成
TIN:Trap Identification Number,硬件自动加载到的数据寄存器D[15]

3. End-of-Initialization(ENDINIT)保护

为了提供系统的安全性能,TC3xx上一些重要的寄存器都受Endinit保护,不能直接修改。如果想要修改这些重要寄存器,就需要先按特定步骤解锁Endinit,然后才能修改这些重要的寄存器的值,最后还要上锁Endinit。那什么是Endinit功能了? 

Endinit 是一种写保护方案,它只允许在特定时间进行写入,并使受此功能保护的寄存器的意外修改几乎不可能实现。

3.1  ENDINIT 类型

以下各节介绍了 WDT 的访问保护方案和 Endinit 超时操作。 在每个模块 (包括 SCU 本身) 的寄存器概览表中,通过每个 Endinit 类型保护的寄存器在描述写入访问的列中标识,如下所示:

  •  “ CEy ” - CPU 关键寄存器。 仅当 CPUy WDT ENDINIT=0 (y=CPU number) 时可写。也就是,只有把要要访问这个寄存器的CPU的ENDINIT设为0后,这个寄存器才能被这个CPU写访问(也就是解锁WDTCPUyCON0.ENDINIT)。
  • “ E ” - 系统关键寄存器 - 任何 (一个或多个) CPUy 看门狗计时器 ENDINIT=0 或 EICON0.ENDINIT=0 时可写。也就是,任意一个CPU的ENDINIT设为0后,所有CPU都可以对这个寄存器进行写访问。
  •  “ SE ” - 安全关键寄存器 - 仅当安全监控计时器 ENDINIT=0 或 SEICON0.ENDINIT=0 时才可写入。也就是,Safety Watchdog的ENDINIT设为0后,Safety EndInit的保护就解除了,所有CPU都可以对这个寄存器进行写访问(也就是解锁WDTSCON0.ENDINIT)。
  • .以上都不是 - 随时都可以访问

EICON0SEICON0是两个Global的ENDINIT保护寄存器,如果不想改变Watchdog CPUx或者Safety Watchdog的ENDINIT值,但是又想解除保护,就可以使用Global的EICON0和SEICON0(前提是EndInit的保护等级是“E”或者“SE”)。

http://www.dtcms.com/a/495803.html

相关文章:

  • 【OpenHarmony】医疗传感器模块架构
  • 「日拱一码」119 CP2K
  • 台阶仪在表面计量学的应用:基于表面纹理最大高度S±3σ的表征研究
  • 大型企业应该如何选择RPA?
  • 杭州哪里做网站好建设网站公司哪儿济南兴田德润有活动吗
  • 引流人脉推广软件莆田seo外包公司
  • SeC - 视频对象分割/AI抠像/视频绿幕抠像/视频一键换背景 支持50系显卡 一键整合包下载
  • 【ROS2】gdb、coredump 调试ROS2程序
  • h5页面生成青岛网站seo公司
  • PRNet:原始信息即全部所需
  • 【文档】部署 MySQL-Exporter
  • 南宁网站seo服务绛帐做网站
  • 10.17 枚举中间|图论
  • if条件语句 三目运算符 汇编分析
  • LeetCode 401 - 二进制手表
  • 【Leetcodenowcode数据结构】顺序表的应用
  • 软考高项论文考试攻略2:从备考到写作的专业指南
  • vue2和vue3函数式调用组件学习记录
  • 廊坊市固安县建设局网站中小企业网络设计论文
  • 3D打印技术在金属材料上的应用现状
  • 网站数据库丢失注册公司网站需要什么资料
  • 重生之我在大学自学鸿蒙开发第九天-《分布式流转》
  • 做手机网站公司wordpress萌主题下载
  • 【Android15快速自定义与集成音效实战课】:正式上线了(二百六十二)
  • 数字化时代,企业应该如何看待商业智能BI
  • 算法---队列+宽搜
  • 解锁分布式唯一 ID:技术、实践与最佳方案
  • 检察院门户网站建设方案网站建设a2345
  • GB200 NVL72超节点深度解析:架构、生态与产业格局
  • 课程网站的设计做网站被骗去哪投诉