什么是模拟看门狗?

6

我从维基百科引用:

看门狗定时器(WDT; 有时称为计算机操作正常或COP定时器,或简称为看门狗)是一种电子定时器,用于检测和恢复计算机故障。

在使用STM32F429I-Discovery时,我遇到了一个术语[在"stm32f4xx.h"],它使用一个寄存器来禁用看门狗:

#define  ADC_CR1_AWDIE    ((uint32_t)0x00000040)    //Analog Watchdog interrupt enable

这里,我无法理解模拟看门狗

如果可能的话,

#define  ADC_CR1_JAWDEN    ((uint32_t)0x00400000)    //Analog watchdog enable on injected channels

这里的“injected channel”是什么意思?
2个回答

14
一个看门狗定时器可以被视为两个独立的电路,一个计时器电路和一个看门狗电路。计时器电路仅仅计算时间的流逝。看门狗电路积极监控计时器,以查看某段时间是否已经过去而没有被软件重置。如果是这样,那么软件就不再运行,看门狗通常会执行自动化功能,如重置处理器。看门狗只需要在初始化时告诉它要监视多长时间,它就可以处理其余的操作,无需额外的软件交互。
类比地,模拟看门狗也是以类似的方式工作。只是它不是监控一个计时器,而是监控一个模拟输入通道。在初始化时,您告诉看门狗要监视哪些模拟阈值。如果模拟输入上的转换值通过了其中一个阈值,它将为您触发中断以处理信号采样。这意味着您不必编写代码来连续轮询模拟输入并检查它们的级别。一切都由模拟看门狗电路在后台自主处理。

注入通道可以被看作是一个高优先级的转换通道。如果一个常规模拟输入正在执行转换,并且触发了一个注入通道的转换(无论是由计时器还是因为它被编程为连续转换模式),则常规通道上的转换将停止并等待,直到注入通道完成转换后才会完成自己的转换。如果您有一个必须实时响应的模拟输入,则此功能非常有用。

这里有一篇应用笔记(不知何故,在ST的网站上似乎无法获取),其中列出了一些使用各种ADC功能的示例。这里还有另一个解释,说明了你所问的两个特性。


  1. 所以看门狗不仅仅用于检查无响应的处理器并重置它。还有其他的看门狗可以用于观察处理器发生的不同动作(例如检查模拟输入阈值)。
  2. 注入通道为看门狗(或同类型处理器的其他功能)提供了实时转换所需的通道。我说得对吗?
- user263210
1
@user263210:此时您应该阅读参考手册(特别是第13节)。SO不是手册。 STM32F4xx标准外设库也很有用-它包含所有外设的示例。或者,您可以尝试STM32Cube工具(相同的链接),它包括库和更多内容。看门狗可以在注入或常规通道上工作-通常您会使用连续转换模式 - Clifford
2
  1. 看门狗是指一种监控其他电路的通用电路。它可以是外部芯片或电路。许多处理器都有内置看门狗定时器。STM32F01xxx具有看门狗时钟、模拟看门狗、独立看门狗和窗口看门狗。每个看门狗监视的信息可以在Clifford引用的参考手册中找到。
  2. 注入通道不提供看门狗。看门狗电路可以监视任何常规或注入通道的转换,并根据编程阈值触发中断。
- embedded.kyle
1
@user263210 有几个模拟输入通道,但只有一个转换电路。如果您将ADC设置为连续转换模式,则每个通道都必须等待其轮到使用转换电路将其模拟电压转换为处理器可以读取的数字值。注入通道基本上与常规通道相同,只是它们可以插队。只有在程序需要非常快速地响应特定的模拟信号变化时才需要这些通道。 - embedded.kyle
谢谢,现在我明白了。 - user263210
显示剩余3条评论

4
在这里,“看门狗”一词是指ADC通道的持续监控。在此情况下,该术语与处理器操作看门狗无关 - 后者监视处理器操作。但是,如果您的电源供应具有储备电容或电池备用功能,在电源侧失效后可以将其用于褐变检测或电源故障检测。
STM32上的模拟看门狗只是一种在某些外部电压低于或超过可编程阈值级别时生成中断的方法。当ADC转换配置为自由运行时,可以在没有软件干预的情况下完成这项工作,因此,如果应用程序仅需要响应阈值,则可以实现零ADC轮询的软件开销。
例如,在RF应用中,您可以使用该功能通过监视FM解调器的RSSI信号来实现载波感知检测。或者它可能用于bang-bang控制器(例如锅炉恒温器)。 AWD具有上限和下限阈值,因此可以用于实现滞后,并且可以动态修改阈值以生成多个事件,例如曲线。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接