设备复位知识讨论
设备复位指利用信号将微控制器(CPU或单片机)恢复到初始状态,类似于计算器“清零”。复位信号的主要作用是让系统可以稳定工作,避免进入到异常工作状态。一般的,复位可以分为冷启动复位和热启动复位。冷启动复位,比如系统下电后重新上电复位,这种复位方式会使系统从ISP监控程序区开始执行程序。热启动复位,如外部RST引脚复位,内部看门狗复位,寄存器复位等,这种复位方式会从用户程序区开始执行程序。有时,也会根据操作方式对其进行分类,如硬件复位和软件复位。
复位信号一般是持续一个特定时间的高电平或低电平的脉冲信号。常用的复位信号有高电平复位和低电平复位,一般采用电容、电阻、轻触开关与MCU的RST脚连接,R和C的选择一般与上电复位时序有关,τ=RC。其电路如图1所示,左图为高电平复位,右图为低电平复位。
图 1
在日常工作中,我们使用的单片机、DSP、CPLD、FPGA都需要用到复位电路。单片机、DSP、CPLD都具有外部RST引脚,以便复位信号输入,如STC89C51、STM32、MSP430、LPC1788、GD32、TM4C等微处理器。不同类型的MCU上电时序不同,复位所需时间不同,有的微处理器只需要250ns即可复位成功,而有的则需要4.5ms以上才能复位成功。而FPGA则没有默认的RST引脚,需要工程师将某个引脚自定义为RST脚,并将其接到外部的复位电路上,一般采用低电平有效。
常用的复位方式还有外部看门狗复位,当MCU运行过程中,由于运算数据量较大、通信协议帧过长,有时会出现程序运行不稳定、程序跑飞或者宕机等现象,此时就需要看门狗复位将其恢复正常。有的MCU内部自带看门狗复位器,如STM32、MSP430等,有的MCU内部无看门狗寄存器。但是MCU自带的看门狗采用程序控制,也存在出错的风险,为了让MCU自己恢复正常,就有了看门狗芯片。看门狗芯片原理:如果看门狗在一定时间内没有检测到看门MCU发送的脉冲信号,则看门狗认为MCU出故障了,就会发送复位信号,俗称“喂狗”(此处,本书中描述存在略微错误)。常用的看门狗芯片有:常用的看门狗芯片品牌有Microchip、Texas Instruments、Maxim Integrated等,常用的型号有ATmega328、DS1802、TCA8418、TPL5010、MAX6710等。他们可以用于监控系统的运行状态,当系统出现故障或崩溃时,可以自动重启系统,确保系统的稳定性和安全性。
在工作中,工程师尝尝会遇到MCU复位失效导致系统死机、系统反复重启、崩溃、出错等问题,按键复位和看门狗定时器(WDT)复位功能失效,导致系统无法正常复位和恢复。这些问题可能与外部复位电路设计不当、外部复位信号干扰、复位后的初始化过程异常、电源异常或看门狗定时器异常等。因此,复位电路对系统有着至关重要的作用。在单片机上电时,如果复位电路设计不当或者上电复位信号出现问题,可能导致MCU无法正常复位,从而影响系统的稳定性和可靠性。