在ZYNQ架构中,AWDT(Application Processor Watchdog Timer,应用处理器看门狗定时器)和SWDT(System Watchdog Timer,系统级看门狗定时器)是两个关键的复位机制,用于确保系统在异常情况下能够自动复位,从而保障系统的稳定运行。
AWDT(应用处理器看门狗定时器)
概述:
AWDT是ZYNQ处理器系统中每个ARM Cortex-A9处理器核心自带的私有看门狗定时器。
它用于监控各自CPU核心的运行状态,防止程序跑飞或进入死循环。
特点:
私有性:每个Cortex-A9处理器都有一个独立的AWDT,且只能由各自的CPU进行操作。
配置灵活性:AWDT的溢出时间(即计数器达到零的时间)可以通过程序进行配置,以适应不同的应用场景。
复位范围:AWDT可以配置为仅复位其所在的CPU核心,或者在某些情况下复位整个系统。
时钟频率:AWDT的时钟频率通常为CPU时钟频率的一半。
工作原理:
当AWDT启动后,其内部的计数器开始自动计数。
如果在一定时间内(即溢出时间)没有通过软件对计数器进行清零(俗称“喂狗”),则计数器达到零时将产生一个复位信号,使CPU核心复位。
SWDT(系统级看门狗定时器)
概述:
SWDT是ZYNQ处理器系统中的系统级看门狗定时器,用于监控整个系统的运行状态。
它比AWDT具有更广泛的监控范围和更高的可靠性。
特点:
全局性:SWDT可以监控包括PS(处理系统)和PL(可编程逻辑)在内的整个ZYNQ系统。
时钟源多样性:SWDT的时钟输入可选为内部CPU时钟、内部PL侧时钟或外部引脚提供的时钟,提高了系统的灵活性和可靠性。
复位信号多样性:SWDT在计数单元溢出时可产生的信号包括向PS发出中断请求、向PS或PL或MIO发出复位信号等。
溢出时间可配置:SWDT的溢出时间可根据需要进行配置,范围广泛。
工作原理:
当SWDT启动后,其内部的计数器开始自动计数。
如果在一定时间内(即溢出时间)没有通过软件或硬件对计数器进行清零(即喂狗),则计数器达到溢出值时将产生一个复位信号或中断请求,使系统复位或通知软件进行相应的处理。
总结
AWDT和SWDT在ZYNQ系统中各自承担着不同的角色和功能。AWDT主要用于监控各自CPU核心的运行状态,防止程序异常;而SWDT则用于监控整个系统的运行状态,确保系统在灾难性故障发生时能够自动复位。两者共同协作,为ZYNQ系统提供了全面的复位保护机制。