Windows Internals:故障保护时钟监视器详解

需积分: 45 127 下载量 145 浏览量 更新于2024-08-10 收藏 9.91MB PDF 举报
故障保护时钟监视器(FSCM)是Windows Internals Part 2(第六版)中讨论的一个关键概念,主要针对微控制器设计,特别是针对像PIC18F46k80这样的单片机。FSCM的主要目的是在外部时钟源发生故障时,确保系统能够保持运行。当配置FSCMEN位为1时,它会启用功能,使用内部低频INTOSC振荡器作为备份,持续监控外设时钟。在发生故障时,FSCM会通过创建一个64分频的采样时钟信号来检测问题,确保在采样间隔内至少有一个外设时钟沿出现。 当检测到时钟故障时,FSCM会触发一系列操作: 1. 产生振荡器故障中断(通过设置OSCFIF位),通知处理器异常。 2. 主时钟源切换到内部振荡器模块,此时OSCCON寄存器不会更新,不会显示当前时钟源,这是故障保护的特性。 3. 外部看门狗定时器(WDT)会复位,以防止因时钟速度下降导致的计数过期和系统复位。 4. 内部振荡器模块可能不足以支持时序敏感应用,这时可能需要调整时钟配置或进入低功耗模式。 FSCM只监测主时钟源或辅助时钟源,无法检测内部振荡器模块的问题。为了在唤醒时使用更快的时钟,复位后可以通过设置IRCF<2:0>来选择INTOSC或后分频器作为源。如果在休眠模式唤醒,应在进入模式前设置。 FSCM与看门狗定时器的关系在于,两者都依赖INTOSC振荡器,但WDT有自己的分频器和计数器,FSCM不会影响WDT。当时钟故障导致WDT复位后,WDT会从故障发生时的速度开始重新计数,以减少错误超时的可能性。 退出故障保护工作模式的方法包括复位操作或者进入功耗管理模式。在复位后,主时钟源将按照配置启动,如有振荡器模式如OST或PLL定时器的启动延迟。如果主时钟源未能及时就绪,系统将使用INTOSC多路开关作为临时时钟源。OSCCON寄存器在进入低功耗模式前保持复位状态。 故障保护时钟监视器是确保微控制器在外部时钟失效时依然能够可靠工作的关键组件,它涉及了复位处理、时钟源切换、以及与其他定时器的协同工作,是单片机设计中不可或缺的一部分。