分类:
2009-02-13 16:40:14
单片机复位电路分析
单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。
时钟电路:
8031单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。
在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。
图中,电容器Col,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。
外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。
由上图可见,外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱劝能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。
基本时序单位:
单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。
振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期包含有2个振荡周期。振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。
4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:
振荡周期=1/fosc=1/12MHZ=0.0833us
复位电路:
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。
上图(A)中:Cl=10-30uF,R1=1kO
上图1.27(B)中:C:=1uF,Rl=lkO,R2=10kO
单片机复位后的状态:
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的韧始化部分是十分必要的。
说明:表中符号*为随机状态;
A=00H,表明累加器已被清零;
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
A
00H
TMOD
00H
B
00H
TCON
00H
PSW
00H
TH0
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
P0~P3
FFH
SBUF
不定
IP
***00000B
SCON
00H
IE
0**00000B
PCON
0*******B
PSW=00H,表明选寄存器0组为工作寄存器组;
SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;
Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;
IP=×××00000B,表明各个中断源处于低优先级;
IE=0××00000B,表明各个中断均被关断;
系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,(在特殊寄存器介绍时再做详细说明)至于内部RAM内部的数据则不变。
影响单片机系统运行稳定性的因素可大体分为外因和内因两部分:
1、外因
射频干扰,它是以空间电磁场的形式传递
在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰;
电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰
。
2、内因
振荡源的稳定性,主要由起振时间
频率稳定度和占空比稳定度决定
起振时间可由电路参数整定
稳定度受振荡器类型
温度和电压等参数影响复位电路的可靠性。
二、复位电路的可靠性设计
1、基本复位电路
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图1所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。但解决不了电源毛刺(A 点)和电源缓慢下降(电池电压不足)等问题
而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效
右边为低电平 Sm为手动复位开关 Ch可避免高频谐波对电路的干扰
图1 RC复位电路
图2所示的复位电路增加了二极管,在电源电压瞬间下降时使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。
图3所示复位电路输入输出特性图的下半部分是其特性,可与上半部比较增加放电回路的效果
图2 增加放电回路的RC复位电路
使用比较电路,不但可以解决电源毛刺造成系统不稳定,而且电源缓慢下降也能可靠复位。图4 是一个实例
当 VCC x (R1/(R1+R2) ) = 0.7V时,Q1截止使系统复位。Q1的放大作用也能改善电路的负载特性,但跳变门槛电压 Vt 受 VCC 影响是该电路的突出缺点,使用稳压二极管可使 Vt 基本不受VCC影响。见图5,当VCC低于Vt(Vz+0.7V)时电路令系统复位。
图3 RC复位电路输入-输出特性
图4 带电压监控功能的复位电路
图5 稳定门槛电压
图6 实用的复位监控电路
在此基础上,增加延时电容和放电二极管构成性能优良的复位电路,如图6所示。调节C1可调整延时时间,调节R1可调整负载特性,如图7所示上半部分是图5电路的特性,下半部分对应图6。
图7 带电压监控功能的复位电路的输入-输出特性
2、电源监控电路
上述的带电压监控的复位电路又叫电源监控电路
监控电路必须具备如下功能:
上电复位,保障上电时能正确地启动系统;
掉电复位,当电源失效或电压降到某一电压值以下时,复位系统;
市面上有类似的集成产品,如PHILIPS半导体公司生产的MAX809、MAX810。此类产品体积小、功耗低,而且可选门槛电压。可保障系统在不同的异常条件下可靠地复位,防止系统失控。图8中的Rm和Sm实现手动复位
无需该功能时可把Reset端(或/Reset)端
直接与单片机的RST端(或/RST端)相连
最大限度地简化外围电路
也可选择PHILIPS半导体公司带手动复位功能的产品MAX708。
图8 集成复位监控电路
此外,MAX708还可以监视第二个电源信号,为处理器提供电压跌落的预警功能,利用此功能,系统可在电源跌落时到复位前执行某些安全操作,保存参数,发送警报信号或切换后备电池等。图9电表的应用实例
利用MAX708 电表可在电源毛刺或停电前把当前电度数保存到E2PROM中
再配合保存多个电度数备份算法,可有效解决令工程师头疼E2PROM中的电度数掉失问题使用该电路必须选择适当的预警电压点,以保证靠电源的储能供电情况下,VCC电压从预警电压跌到复位电压的维持时间(tB)必须足够长 E2PROM的写周期约为10-20ms 一般取tB>200ms就可确保数据稳定写入。预警电压调整方法
当VDC等于预警电压时调整R1和R2使PFI的电压为1.25V 此时可检测/PFO来确认内部的电压比较器是否动作,调整时必须注意此比较器是窗口比较器。
图10是该应用的程序流程图
图9 MAX708的典型应用
图10. 电表应用中E2PROM数据保护程序流程图
3. 多功能电源监控电路
除上电复位和掉电复位外,很多监控电路集成了系统所需的功能,如:
电源测控,供电电压出现异常时提供预警指示或中断请求信号,方便系统实现异常处理;
数据保护,当电源或系统工作异常时,对数据进行必要的保护,如写保护、数据备份或切换后备电池;
看门狗定时器,当系统程序“跑飞”或“死锁”时,复位系统;
其它的功能,如温度测控、短路测试等等。
我们把其称作多功能电源监控电路。下面介绍两款特别适合在工控、安防、金融行业中广泛应用多功能的监控电路 :
Catalyst 公司的 CAT1161 是一个集成了开门狗、电压监控和复位电路的 16K 位 E2PROM(I2C 接口)不但集成度高、功耗低(E2PROM部分静态时真正实现零功耗)而且清看门狗是通过改变SDA的电平实现的,节省系统I/O 资源,其门槛电压可通过编程器修改,该修改范围覆盖绝大多数应用。当电源下降到门槛电压以下时
硬件禁止访问 E2PROM 确保数据安全。
使用时注意的是 RST,/RST 引脚是 I/O 脚,CAT1161 检测到两引脚中任何一个电压异常都会产生复位信号,与 RST /RST 引脚相连的下拉电阻 R2 和上拉电阻 R1 必须同时连接,否则CAT1161将不断产生复位!同样不需要手动复位功能时可节省Rm和Sm两个元件。
图11. 内置WDT RESET /RESET E PROM监控器件接口电路
PHILIPS 公司的 SA56600-42 被设计用在电源电压降低或断电时作保护微电脑系统中SRAM 的数据。当电源电压下降到通常值 4.2V 时,输出 CS 变为逻辑低电平,把 CE 也拉低,从而禁止对 SRAM 的操作。同时,产生一个低电平有效的复位信号,供系统使用,如果电源电压继续下降,到达通常值 3.3V或更低时,SA56600-42切换系统操作,从主电源供电切换到后备锂电池供电,当主电源恢复正常(电压上升至3.3V或更高时)将SRAM的供电电源将由后备锂电池切换回主电源,当主电源上升至大于典型值4.2V 时
输出 CS 变为逻辑高电平,使 CE 变为高电平,使能 SRAM 的操作,复位信号一直持续到系统恢复正常操作为止。在系统电源电压不足或突然断电的时候,这个器件能可靠地保护系统在SRAM内的数据。
图12. 内置SRAM数据保护电路的监控器件SA56600-42的典型应用
4. ARM 单片机的复位电路设计
无论在移动电话
高端手持仪器还是嵌入式系统,32 位单片机 ARM 占据越来越多的份额,ARM 已成为事实的高端产品工业标准。由于 ARM 高速、低功耗、低工作电压导致其噪声容限低
这是对数字电路极限的挑战,对电源的纹波、瞬态响应性能、时钟源的稳定度、电源监控可靠性等诸多方面也提出了更高的要求。ARM监控技术是复杂并且非常重要的。
分立元件实现的监控电路,受温度、湿度、压力等外界的影响大而且对不同元件影响不一致
较大板面积,过多过长的引脚容易引入射频干扰,功耗大也是很多应用难以接受,而集成电路能很好的解决此类问题。目前也有不少微处理器中集成监控电路,处于制造成本和工艺技术原因,此类监控电路大多数是用低电压CMOS工艺实现的,比起用高电压、高线性度的双极工艺制造的专用监控电路
性能还有一段差距。
结论是:使用 ARM而不用专用监控电路,可能导致得不偿失,经验也告诉我们使用专用监控电路可以避免很多离奇古怪的问题。ARM的应用工程师,切记少走弯路!
图13. 用PHILIPS MAX708实现的ARM复位电路
图13 是实用可靠的 ARM 复位电路。ARM 内核的工作电压较低。R1 可保证电压低于 MAX708 的工作电源还能可靠复位。其中 TRST 信号是给 JTAG 接口用的。使用 HC125 可实现多种复位源对 ARM 复位,如通过PC机串口或JTAG接口复位ARM。
单片机系统设计的误区与对策
时间:2007-03-20 来源: 作者:王柏林
点击:533 字体大小:【大 中 小】
摘
要:用电磁兼客性理论剖析了单片机系统设计中的某些传统现念,指出其过时和失误之处.给出了根据电磁兼容性理论设计单片机系统的新理念,还给出了双时限看门狗、定时复位看门狗、抗快速脉冲群滤波器、电磁兼容PCB等新的设计方法。
单片机系统在军事、工业、民用产品中的应用越来越广。它将许多以往用硬件实现的功能由软件来完成,体积小巧、功能丰富、智能化程度高,但在可靠性方面也面临许多新问题。用现代电磁兼容性(EMC)理论剖析单片机系统设计中的某些传统观念,会发现许多误区,并且有些误区至今还在工程界广为存在。
1、误区之一:有了看门狗就不会死机
死机是指CPU的程序指针进入一个死循环。无法执行正常的程序流程。其外在表现常常是:正常功能丧失,按键无响应。显示凝固。单片机死机后,只有复位才能走出死循环,执行正常的程序流程。众所周知,克服死机的最有效手段是加看门狗(WatchDog)。
目前用得最广泛的看门狗实际上是一个特殊的定时器DogTimer。DogTimer接固定速率计时,计满预定时间就发出溢出脉冲使单片机复位。如果每次在DogTimer溢出前强行让DogTimer清零,就不会发出溢出脉冲。清零脉冲由CPU发出,在单片机程序中每隔一段语句放一个清DogTimer的语句——FeedDog语句,以保证程序正常运行时DogTimer不会溢出。一旦程序进入一个不含FeedDog语句的死循环,DogTimer将溢出,导致单片机复位,跳出这个死循环。本文称这种看门狗为典型看门狗,典型看门狗已被集成化.如MAX706,MAX791等;还有许多单片机本身集成了这种看门狗,如PIC16C57、MC68HC705等,具体电路可参阅这些芯片的技术资料。
有一个错误观点:加了看门狗.单片机就不会死机。实际上,看门狗有时会完全失效。当程序进入某个死循环,而这个死循环中又包含FeedDog语句,这时DogTimer始终不会溢出,单片机始终得不到复位信号,程序也就始终跳不出这个死循环。针对这一弊端,笔者设计了双时限看门狗和定时复位看门狗。
双时限看门狗有两个定时器:一个为短定时器,一个为长定时器。短定时器定时为T1,长定时器定时为T2,0
目前几乎所有的看门狗都是依赖于CPU(依赖于CPU FeedDog)。这可以比作:一个保险设备能否起到保险作用还依赖于被它保护的对象的行为。显然,依赖于CPU看门狗是不能保证单片机百分之百不死机的。
在绝对不允许死机的装置中,笔者设汁了一种完全不依赖于CPL]的看门狗——定时复位看门狗。定时复位看门狗的主体也是一个定时器,到预定时间就发出溢出脉冲,此溢出脉冲使单片机强行复位。定时复位看门狗不需要CPU FeedDog。
简言之,定时复位看门狗就是定时地让单片机强行复位。这样,即使装置死机,其最大死机时间也不会大于定时器的定时时间。显然,只要硬件完好,这种看门狗百分之百地保证了单片机不会长时间死机。在智能电表(包括IC卡电能表、复费率电能表、多功能电能表)中采用定时复位看门狗,每1秒让CPU强行复位,迄令数十万电表运行了近五年,无一例死机报告。
必须指出,采用这种看门狗,CPU的编程要适应定时复位的环境.保证定时复位不打断那些不能打断的程序.不造成任何误动作。
2、误区之二:加电源滤波器能提高EMC性能
在单片机系统中,为了抑制电磁干扰(EMI),常常在交流电源进线与电源变压器之间加电源滤波器。常用的电源滤波器如图1。
图1电源滤波器
图1都是双Π型LC滤波器。其中Co专用于旁路差模干扰。两者的不同之处在于:图1(b)两个电容接大地。设电感的电阻为R,它们的幅频特性分别是:
当R很小时,上述两个滤波器的谐振频率分别为:
可见,它们的幅频特性相似.谐振频率不同。从滤波效果来看,两者对于降低来自交流电的差模干扰效果差不多,但是后者对于降低共模干扰效果更好。不过,对于采用浮地方式的装置,由于电容不可能直接到大地,所以只能用前者。
设计滤波器时必须注意让谐振频率远小于干扰频率,处理不好不仅不能衰减干扰,反而放大干扰。以图1(a)的双Π型滤波器为例,如果取L=1mh,R=lΩ.C=0.47uF(这是许多资料推荐的参数),可计算出f0=5.2kHz。而EMC测试中的快速脉冲群频率是5.0kHz(2kV)或2.5kHz(4kV);5.0kHz刚好谐振,2.5kHz也不会被衰减,如图2虚线所示。可见,不是所有的电源滤波器都能提高EMC性能。工程中.许多装置尽管采用了成本不菲的滤波器,但EMC测试仍难通过,原因大多在此。
图2双Π型滤波器的幅频特性
实际上:如果取L=30mh,R=5Ω,C=O.47uF。可计算出f0=0.95kHz,5.0kHz脉冲群幅值衰减为3.73%,2.5kHz脉冲群幅值衰减为16.78%。这时,电源滤波器确实提高了系统的EMC性能。图2实线是相应的幅频特性。
3、误区之三:光偶器件隔离干扰很彻底
光偶器件是最常用的隔离干扰器件。例如现场的开关量引到测控装置后都要加光隔,以切断来自现场的传导干扰;RS485通讯口经光隔再与外部通讯线连接,防止来自外部通讯线的传导干扰。
有不少人认为:光偶器件隔离干扰很彻底,用了光偶隔离干扰就过不去了。其实,光电隔离并非万全之策。
首先,光偶器件本身只能隔离传导干扰,它隔离不断幅射、感应干扰。幅射来自空间,感应来自相邻的导体。最常见的败笔是:设计PCB时将光偶器件的输入和输出电路布在了一起.这时干扰从光偶器件是过不去了,但却很容易经输入电路感应到输出电路。
其次.光偶器件隔离传导干扰的能力也只有1kV左右,1kV以上的干扰或浪涌一般是力所不能及的。比如EMC的快速脉冲群测试,施加的干扰信号幅值是2kV、4kV、8kV,光偶器件是无法隔离的。
4、误区之四:PCB布线要横平竖直
提起PCB布线,许多工程技术人员都知道一个传统的经验:正面横向走线、反面纵向走线,横平竖直,既美观又短捷;还有一个传统经验是:只要空间允许,走线越粗越好。可以明确地说,这些经验在注重EMC的今天已经过时。
要使单片机系统有良好的EMC性能,PCB设计十分关键。一个具有良好的EMC性能的PCB,必须按高频电路来设计——这是反传统的。单片机系统按高频电路来设计PCB的理由在于:尽管单片机系统大部分电路的工作频率并不高,但是EMI的频率是高的。EMC测试的模拟干扰频率也是高的。要有效抑制EMI,顺利通过EMC测试.PCB的设计必须考虑高频电路的特点。PCB按高频电路设计的要点是:
(1)要有良好的地线层。最好的地线层处处等电位,不会产生共模电阻偶合,也不会经地线形成环流产生天线效应;良好的地线层能使EMI 以最短的路径进人地线而消失。建立良好的地线层最好的办法是采用多层板,一层专门用作地线层;如果只能用双面板.应当尽量从正面走线,反面用作地线层,不得已才从反面过线
(2)保持足够的距离。对于可能出现有害耦合或幅射的两根线或两组线要保持足够的距离,如滤波器的输人与输出、光偶的输人与输出、交流电源线与弱信号线等;
(3)长线加低通滤波器;走线尽量短捷,不得已走的长线应当在合理的位置插入C、RC或LC低通滤波器。
(4)除了地线,能用细线的不要用粗线。因为PCB上的每一根走线既是有用信号的载体,又是接收幅射干扰的天线,走线越长、越粗,天线效应越强。
5、误区之五:lC芯片的封装形式不影响性能
众所周知,IC芯片的封装有贴片式和双列直插式之分。一股认为:贴片式和双列直插式的区别主要是体积不同和焊接方法不同.对系统性能影响不大。其实不然。
前面说到,PCB上的每一根走线都存在天线效应。现在要说,PCB上的每一个元件也存在天线效应,元件的导电部分越大,天线效应越强。所以,同一型号芯片。封装尺寸小的比封装尺寸大的天线效应弱。这就解释了许多工程师已经注意到的一个现象:同一装置,采用贴片元件比采用双列直插元件更易通过EMC测试。
此外,天线效应还跟每个芯片的工作电流环路有关。要削弱天线效应,除了减小封装尺寸,还应尽量减小工作电流环路尺寸、降低工作频率和di/dt。留意最新型号的IC芯片(尤其是单片机)的管脚布局会发现:它们大多抛弃了传统方式——左下角为GND右上角为VCC,而将VCC和GND安排在相邻位置,就是为了减小工作电流环路尺寸。
实际上,不仅是IC芯片,电阻、电容封装也与EMC有关。用0805封装比1206封装有更好的EMC性能,用0603封装又比0805封装有更好的EMC性能。目前国际上流行的是0603封装。