单片机复位详解
单片机复位详解
单片机复位介绍
单片机复位是确保单片机能够稳定、正确地从头开始执行程序的重要机制。复位电路的作用是使单片机的状态处于初始化状态,包括让时钟处于稳定状态、各种寄存器和端口处于初始化状态等。
为什么要加复位?
-
数字电路中寄存器和 RAM 在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态,RAM 的数据可以通过复位来触发 RAM 初始化
-
程序逻辑如果进入了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。(一些简单的IC芯片没有看门狗电路,就需要外部复位)
好的,通过上面两段话,你了解了复位电路的作用以及为什么要加复位电路,正常单片机和IC芯片复位都是有一个Reset引脚,给复位引脚通一定时间的高/低电平就可以实现复位。
单片机复位分为高电平复位和低电平复位两种方式。
基本上所有单片机都有一个复位端口(随着单片机技术的发展,现在有些单片机内部集成了复位电路,这样它的复位端口有可能和IO端口等复用)。
简单讲就是给单片机的复位端口施加一定时间的高电平(或者低电平),单片机就能完成初始化过程,从头开始执行程序。
这个时间就称为复位时间,一般单片机的复位时间都很短,不过每种单片机的复位时间都不等,这个就需要查阅相应单片机的数据手册来获得该种单片机的复位时间。
需要注意的是,单片机复位后,一定要给单片机的复位端口施加单片机正常工作时的电平。例如对于低电平的复位电路,复位后,复位口应当处于高电平状态。
复位的类型
-
上电复位(Power-on Reset, POR):当单片机接通电源时,内部电路会因为电源的初始不稳定状态而进行复位。
当单片机上电时,通过一个电容和电阻的组合来实现复位。电容充电过程中,复位引脚(如51单片机的RST引脚)会被拉高,从而触发复位。这个高电平必须维持足够长的时间(通常大于2个机器周期)以确保单片机能够正确复位。
-
手动复位:通过按下硬件复位按钮来实现,通常连接到单片机的复位引脚。
通过按键连接到复位引脚,当用户按下按键时,复位引脚会被拉到高电平或低电平(取决于单片机的设计),实现复位。
-
软件复位:通过软件命令来实现,某些单片机允许通过执行特定的软件指令来复位。
通过软件指令来触发复位,这种方法可以在程序检测到错误或需要重新初始化时使用。
-
看门狗复位(Watchdog Reset, WDG):如果程序运行死锁,看门狗定时器可以自动复位单片机。
使用看门狗定时器来监控程序的运行。如果程序运行出现异常,未在规定时间内“喂狗”(即重置看门狗定时器),看门狗会产生复位信号。
-
专用复位芯片:使用专门的复位芯片来提供更加稳定和可靠的复位信号。
-
掉电复位(Brown-out Reset, BOR):当电源电压下降到某个阈值以下时,单片机会自动复位。
复位电路的工作原理
复位电路通常包括一个电阻和一个电容,它们连接到单片机的复位引脚。以下是复位电路的工作原理:
-
充电过程:当电源接通时,电容开始充电,导致复位引脚的电压逐渐上升。
-
维持复位状态:在电容充电期间,复位引脚的电压维持在一个高电平(对于低电平复位的单片机)或低电平(对于高电平复位的单片机),保持单片机在复位状态。
-
复位结束:当电容充满电后,复位引脚的电压达到稳定状态,单片机退出复位状态,开始正常运行。
复位电路的分类
-
高电平复位
-
低电平复位
-
按键复位电路
-
上电复位电路
高电平上电复位
我们来看一下高电平上电复位,本质就是RC串联充电电路,在上电的瞬间,由于电容两端电压不能突变,上电后的一瞬间电容等效为短路,电容C11充电,充电电流在电阻上形成的电压为高电平;单片机复位,几个毫秒之后,电容充电完毕,电路为断路,电流为0,电阻两端电压近似于0V,这时RST就为低电平。单片机将进入正常工作状态。
电容作为基本元器件之一,实际生产的电容都不是理想的,会有寄生电感,等效串联电阻存在,同时因为电容两极板间的介质不是绝对绝缘的,因此存在数值较大的绝缘电阻。
所以,实际的电容模型等效如下图:
所以上电后的一瞬间电容等效为短路。
电容充电时间T/复位持续时间:
T=(1/9)*R*C
低电平上电复位
低电平上电复位,由于电容两端电压不能突变的特性,在上电的瞬间RST端电位近似为GND,通过10K电阻对C11电容进行充电,此时RST复位引脚电压为低电平;单片机复位,几个毫秒之后,电容器充满,下面为断路,电流为0,电流经过电阻流入RST复位引脚,引脚为高电平,这时,单片机将进入正常工作状态。
-
在系统上电时,电容器C11是未充电的,因此其两端的电压为0V,复位脚在初始时刻会被拉低到低电平。
-
低电平复位信号意味着当复位脚的电平低于某个阈值时,微控制器或其他集成电路会进入复位状态。
-
随着电容器C11通过电阻R11逐渐充电,复位脚的电平会逐渐上升。当电容器充满电后,复位脚的电平将达到电源电压,此时复位信号结束,系统恢复正常工作。
对电容充电的过程中,刚开始充电时,电容短路,充满电后,电容断路。
电容充电时间T/复位持续时间:
T= 9*R*C
高电平按键复位
高电平按键复位,VCC上电时,电容C充电,此时电路导通,在10K电阻上出现电压,RST引脚为高电平,使得单片机复位;几个毫秒后,C充满,此时电路为断路,10K电阻上电流降为0,电压也为0,RST引脚为低电平,使得单片机进入工作状态。工作期间,按下按键Key,电容两端相当于短路,电容C放电,RST引脚为高电平,使得单片机复位。松开按键Key,电容C又充电,几个毫秒后,充电完成,电路断路,单片机进入工作状态。
低电平按键复位
低电平按键复位,VCC上电时,电容C充电,此时电路导通,RST引脚为低电平,使得单片机复位;几个毫秒后,电容C充满,此时电路为断路,电流由10K电阻流入RST复位引脚,RST引脚为高电平,使得单片机进入工作状态。工作期间,按下按键Key,RST复位引脚直接跟GND导通,为低电平,电容C放电,使得单片机复位。松开按键Key,电容C又充电,几个毫秒后,充电完成,电路断路,单片机进入工作状态。
上电复位:当单片机上电时,电容开始充电,由于电容的充电延迟特性,复位端的电位逐渐下降,直至电容充满电,复位端的电压变为低电平,完成复位。
高电平复位电路
低电平复位电路
按键复位:通过按键手动触发复位,当按键按下时,复位端被拉到高电平(对于高电平复位的单片机)或低电平(对于低电平复位的单片机),使单片机复位。
高电平按键复位电路
低电平按键复位电路
改进的按键复位电路:在按键复位电路中增加二极管,可以快速释放电容上的电荷,保证复位信号正确无误,并为下次复位做好准备。
专用复位芯片:随着系统复杂度的增加,使用专用复位芯片可以提供更可靠的复位机制。
复位电路的设计
在设计复位电路时,需要注意以下几点:
-
电容的选择:电容的容值会影响复位时间,需要根据单片机的数据手册选择合适的电容值。
-
电阻的选择:电阻与电容一起决定了复位信号的持续时间,需要确保复位信号持续时间满足单片机的要求。
电阻和电容的值:RC电路的时间常数(τ = R*C)决定了复位信号的宽度。这个值需要根据单片机的复位时间要求来选择。
-
电源稳定性:电源的稳定性对复位电路的影响很大,需要确保电源能够提供稳定的电压。电源的稳定性会影响复位电路的可靠性。在设计时,可能需要考虑电源滤波电路。
-
抗干扰能力:复位电路需要具备一定的抗干扰能力,以防止由于电源波动或外部干扰导致的误复位。复位电路应该能够抵抗电磁干扰(EMI),避免误触发复位。
-
复位按钮的设计:如果使用手动复位按钮,需要确保按钮在按下时能够提供稳定的复位信号,并在释放后能够迅速返回到正常状态。
复位电路的改进
复位电路对于单片机系统至关重要,它确保了系统能够在各种异常情况下安全地恢复到初始状态,避免数据损坏或系统崩溃。
为了提高复位电路的可靠性,可以采取以下措施:
-
添加二极管:在电容放电路径中添加二极管,可以防止电源瞬间断电时电容无法快速放电,导致复位信号不正确。
-
使用复位芯片:复位芯片可以提供更加稳定和可靠的复位信号,尤其是在复杂的应用环境中。
复位电路的类型
-
微分型复位电路:利用电压的快速变化来触发复位。
-
积分型复位电路:利用电压的缓慢变化来触发复位。
-
比较器型复位电路:通过比较电压值来决定是否触发复位。
-
看门狗型复位电路:通过定时器来监控程序运行状态,一旦程序跑飞,通过看门狗定时器来触发复位。
总结
复位电路的设计需要考虑复位信号的持续时间、上升沿和下降沿时间,以及电压和时序的容差。例如,对于51系列单片机,复位信号通常需要维持2个机器周期以上。在设计复位电路时,还需要考虑抗干扰设计,比如通过电源滤波和输入信号去抖来提高复位电路的稳定性。
在实际应用中,复位电路的设计对于整个系统的稳定性和可靠性至关重要。不当的复位电路设计可能导致单片机在实验室调试成功,但在现场出现“死机”或“程序走飞”等问题。因此,设计时需要仔细考虑所有可能的情况,并进行充分的测试。
单片机复位电路的设计需要根据具体的应用需求和单片机的特性来定制。复位电路是单片机系统中不可或缺的一部分,设计良好的复位电路可以大大提高系统的可靠性和稳定性。在设计时,需要根据单片机的具体要求和应用场景,选择合适的复位电路类型,并精确计算电阻和电容的值,以确保复位信号的准确性和及时性。