XMC4000中文参考手册-第09章 窗口看门狗定时器(WDT)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9-1
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
表9-1 特性
应用功能 作用/应用 触发恢复系统稳定运行和确保系统的完整性 允许考虑最小和最大软件定时 确保WDT即使在系统时钟故障的情况下也能 计数 为双通道看门狗解决方案,附加系统完整的 外部控制 保证对生成代码的安全调试 软件恢复。允许校正动作,通过软件恢复程 序使系统从无答复的状态返回到正常运行
9.8.1
初始化和启动操作
系统复位后,需要完成WDT模块的初始化。 • 检查最后一次系统复位的原因,以确定电源状态 - 读出SCU_RSTSTAT.RSTSTAT寄存器位段,确定最后一次系统复位的原因 - 依据最后系统复位的原因执行适当的操作 看门狗软件初始化序列 用SCU_CLKSET.WDTCEN寄存器位段启用WDT时钟 用SCU_PRCLR2.WDTRS寄存器位段释放WDT复位 用WDT_WLB寄存器设置窗口下限 用WDT_WUB寄存器设置窗口上限 配置外部看门狗服务指示(可选,请参阅SCU/HCU章节) 用SCU_WDTCLKCR寄存器选择和启用WDT输入时钟 用SCU_NMIREQEN寄存器在系统级上启用系统陷阱预警报警(可选,仅用在WDT预警 模式) 软件启动序列 - 选择模式(超时或预警)和用WDT_CTR寄存器启用WDT模块 服务看门狗 - 在WDT_TIM寄存器中,对编程时间窗口检查当前定时器值 - 在有效时间窗内,写魔字到WDT_SRV寄存器 9.8.2 重新配置和重新启动操作 - - - - - - -
图 9-1 9.2
看门狗定时器方块图 超时模式
当计数器越过上限范围,它会触发一个溢出事件预警不启用CTR寄存器。一个溢出的结果立即 重置请求,通过信号 wdt_rst_req进入到SCU 的RCU。执行一次成功的服务是在有效的服务窗 口内的WDT的SRV寄存器写入一个被称为“魔字”的特定值,导致信号 wdt_service脉冲和定 时器计数复位。
图9-5
在用错误的魔字服务时复位
参考手册 WDT, V2.3
9-6
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
图 9-5的例子显示有效服务窗口内但用了一个无效的魔字进行的服务。尝试写一个无效的魔字 到SRV寄存器导致在wdt_rst_req信号上立即复位请求。 9.5 服务请求处理
• • •
在预警模式下,并且有效的时间窗口内未提供服务,WDT会在请求系统复位之前启动预警警报。 在启动警报后,定时器计数器值第二次超过上限之前,指示该警报的WDT状态寄存器必须被清 除。在警报状态被清除后,必须在有效的时间窗口内进行正常的看门狗服务。
参考手册 WDT, V2.3
9-9
V1.2, 2012-12 请遵守产品信息使用协议

• •
为了更新设置,需要重启和初始化WDT模块。 • 软件的初始化序列 - 用SCU_PRSET2.WDTCEN寄存器位段声明WDT复位 - 用SCU_PRCLR2.WDTRS寄存器位段释放WDT复位 - 用WDT_WLB寄存器设置窗口下限 - 用WDT_WUB寄存器设置窗口上限 - 配置外部看门狗服务指示(可选,请参阅SCU/HCU章节) -用SCU_WDTCLKCR寄存器选择和启用WDT输入时钟并启用看门狗(如果时钟设置需改 变) - 用SCU_NMIREQEN寄存器在系统级上启用系统陷阱预警警报(可选,仅用在WDT预警 模式) 软件启动顺序 -选择模式(超时或预警),用WDT_CTR寄存器启用WDT模块
一个差服务的尝试,导致一个复位请求。一个差服务尝试可能是由于在服务窗边界外提供服务 或使用一个无效的魔字服务。
参考手册 WDT, V2.3
9-5
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
图9-4
在错误的窗口服务后复位
图 9-4的例子示出了在有效服务窗口外部执行的服务。尝试服务WDT当计数器的值保留在窗口 的下限以下时,导致在wdt_rst_req信号上的立即复位请求。
WDT模块编程模型假设几个场景,分别有不同的应用控制序列。
注意:一些本章中所描述的场景需要操作在系统级上,不在WDT模块描述的范围,因此详细信
息请参阅该文档的相关章节。
参考手册 WDT, V2.3
9-7
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
在预警模式时,溢出事件的作用在有和没有启用预警是不同的。当预警启用时,计数器第一次 超过上限时触发输出报警信号wdt_alarm。只能在下一个溢出产生复位请求。报警状态通过寄 存器WDTSTS指示且通过寄存器WDTCLR清除。清除报警状态将使WDT回到正常状态。报警 信号发送请求到SCU,在那里上报到NMI。
参考手册 WDT, V2.3
9-4
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
图 9-3
预警后的复位
图 9-3中 描绘的示例场景展示了在由有效时间窗口内WDT模块成功服务后产生服务脉冲。第一 次错过服务时,WDT在wdt_alarm产生报警脉冲。报警信号作为中断请求被发送到SCU,在那 里上报到NMI。在这个报警服务请求发生和下一次溢出之前,用户可以清除WDT的状态位,并 给予一个正确的WDT服务。否则,当第二次错过服务时,WDT在wdt_rst_req上产生复位请求。 9.4 差服务操作
可以在任何时间点使用软件序列停止和重新开始WDT模块,例如用于调试目的。 • • • • 软件停止序列 -用WDT_CTR寄存器禁用WDT模块 执行任何用户操作 软件启动(恢复)序列 -用WDT_CTR寄存器启用WDT模块 服务看门狗 -对编程时间窗口检查当前在WDT_TIM寄存器中的定时器值 -在有效时间窗内,写魔字到WDT_SRV寄存器 9.8.4 进入睡眠/深睡眠和重新开始操作
在睡眠或深度睡眠模式时,WDT计数器时钟可以配置为停止。在CPU睡眠期间,如果WDT时 钟配置为停止,则在这些模式下软件与WDT不需要直接交互作用,看门狗超时也不会发生。 • • 睡眠/深度睡眠模式的软件配置序列 -用SCU寄存器的SLEEPCR或DSLEEPCR配置WDT行为 进入睡眠/深睡眠模式的软件序列 -选择CPU内睡眠或深度睡眠模式(详情请参阅Cortex-M4文献[9]) -进入模式选择(详情请参阅Cortex-M4文献[9]) 等待唤醒事件(没有软件的交互作用,CPU停止) 恢复操作(在发生唤醒事件时CPU时钟自动重启) 服务看门狗 -对编程时间窗口检查当前在WDT_TIM寄存器中的定时器值 -在有效时间窗内,写关键字到WDT_SRV寄存器 9.8.5 预警报警处理
•wenku.baidu.com
参考手册 WDT, V2.3
9-8
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)

服务看门狗 -在WDT_TIM寄存器中,对编程时间窗口检查当前定时器值 -在有效时间窗内,写魔字到WDT_SRV寄存器
9.8.3
软件停止和重新开始操作
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
9
窗口看门狗定时器(WDT)
窗口看门狗定时器模块的作用是改善系统完整性。如果主程序,由于某些故障情况,忽视了定 期操作看门狗(也被称为“踢狗”,“爱抚狗”,“喂看门狗”或“唤醒看门狗”), 看门狗 定时器(WDT)触发系统复位或其它纠正措施,例如非屏蔽中断。目的是将系统从无应答状态恢 复到正常运行。
参考手册 WDT, V2.3
9-3
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
图 9-2
无预警复位
图 9-2中描绘的示例场景展示了在有效时间窗口内WDT模块成功服务后产生的两个连续的服务 脉冲。对于没有服务执行的情况,在计数器的值已经超过窗口上限值后立即触发在wdt_rst_req 输出上的复位请求生成。 9.3 预警模式
系统在差服务时复位 服务限制在定义的刷新窗口边界内 独立的时钟 在外部引脚上的服务指示 在HALT模式下挂起 预警报警
9.1.2
方框图
WDT 框图见图9-1。
参考手册 WDT, V2.3
9-2
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
参考文献
[9] Cortex-M4用户指南, ARM DUI 0508B (ID06210) 9.1 概述
一个成功的WDT服务导致一个wdt_service 上产生一个脉冲。该信号也提供作为一种替代功能 的输出。它可以用来向一个外部看门狗表示系统还在正常运行。 看门狗定时器是一个计数从0H开始的32位计数器。它可提供服务当计数器的值是在窗口的边界 内时,即在下部和上部边界值之间。正确的服务导致计数器复位到0H。所谓的“差服务”导致 一个系统复位请求。 定时器模块是在独立于总线时钟的fWDT 时钟上运行。每当定时器值增加,定时器的值在相应的 寄存器TIM里被更新。该机制可以立即响应一个来自总线上的读取访问。 WDT模块提供可配置寄存器接口。当访问是在特权模式时,一个写操作只允许到可写寄存器。 用户模式下写访问将导致一个总线错误响应。 9.1.1 特性
当预警模式启用时,在第一个计数器溢出看门狗上限而溢出时,WDT通过wdt_alarm输出信号 产生看门狗报警服务请求。报警服务请求由SCU处理,可能允许在以下两种可选模式: 服务请求 陷阱请求引起NMI中断
如果SCU的服务请求屏蔽或陷阱请求禁用各自寄存器,服务请求可以禁用。 9.6 调试行为
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
• •
警报事件 -异常例程(系统陷阱或服务请求)用WDT_WDTCLR寄存器清除WDT_WDTSTAT寄存器 服务看门狗 -在WDT_TIM寄存器中,对编程时间窗口检查当前定时器值 -在有效时间窗内,写魔字到WDT_SRV寄存器
参考手册 WDT, V2.3
9-10
V1.2, 2012-12 请遵守产品信息使用协议
XMC4500 XMC4000 家族
窗口看门狗定时器(WDT)
9.9
寄存器
寄存器概述 所有这些寄存器可以在用户模式下读入,但只能在管理模式下写。寄存器的绝对地址是通过加 法计算: 模块的基地址+偏移地址 表9-2 模块 WDT 寄存器地址空间 基地址 5000 8000H 结束地址 5000 BFFFH 注释 看门狗定时器 寄存器 表9-3 缩写名称 寄存器概述 寄存器全称 偏移 地址 WDT 内核寄存器 ID CTR SRV TIM WLB WUB WDTSTS WDTCLR 模块ID寄存器 控制寄存器 服务寄存器 定时器寄存器 窗口的下限 窗口的上限 看门狗状态寄存器 看门狗状态清除 寄存器 9.9.1 ID 模块ID寄存器。 寄存器描述 00H 04H 08H 0CH 10H 14H 18H 1CH U, PV U, PV BE U, PV U, PV U, PV U, PV U, PV PV PV PV BE PV PV PV PV 9-11页 9-12页 9-13页 9-14页 9-14页 9-14页 9-15页 9-16页 访问模式 读 写 描述
看门狗定时器(WDT)是一个独立的窗口看门狗定时器。 它有如下特性: 当没有按时服务或提供错误方式服务时触发系统复位 服务限制在一个用户定义的刷新窗口边界内 可以使用一个独立的时钟运行 提供服务指示到一个外部引脚 在HALT模式下可挂起 复位前提供可选的预警报警
参考手册 WDT, V2.3
WDT功能可以在CPU进入HALT模式时挂起。WDT调试功能由CTR寄存器中的DSP位段控制。 9.7 电源,复位和时钟
WDT模块是内核域的一部分,由VDDC电压供电。 所有WDT寄存器在系统复位时复位。 一个在SCU / RCU模块的RSSTAT寄存器中的粘滞位指示是否最后系统复位是由WDT模块触发。 该位不会随着系统复位而复位。 WDT计数器的输入时钟可以由用户在系统PLL输出,内系统部振荡器的直接输出或32kHz待机 时钟及独立于AHB接口时钟之间选择。WDT输入时钟的选择由在SCU中所用的WDTCLKCR寄 存器完成(详情请参阅SCU/CCU章节)。 9.8 初始化和控制序列
相关文档
最新文档