基于80C552单片机的多芯片同步复位电路
扫描二维码
随时随地手机看文章
关键词:软件复位;同步;可靠性
0.引言
复位是单片机的重要操作内容,复位功能是系统正常运行的先决条件。在简单的复位电路中,只要在微处理芯片的RESET引脚保持高电平达2个以上的机器周期,即可完成一次复位操作[1]。考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,一般只要在RESET引脚出现10ms以上的高电平,就能使单片机有效复位。但是在单片机应用系统中除单片机外,往往还有若干个外围器件,如果外围器件有复位要求,便形成了多个芯片的综合复位系统,这时,一般的复位电路就不能满足使用要求,本文以常用芯片80C552为例,提出了一种多芯片同步复位电路设计方法,供读者参考。
1.MSC-51系列的一般上电复位电路
图1 一般复位电路 |
一般上电复位电路是利用RC充电原理实现的,如图1(a)所示。初始上电,电容两端等电位,则RESET为高电平,随着对电容的充电,RESET端电位逐渐降低,直至低电平,复位过程结束。RC的选取应使RESET端保持10ms的高电平,才能实现可靠复位。
图1(a)虽然能实现上电复位功能,但对干扰没有抵抗作用,不能保证复位电路任何时候都能可靠地工作。单片机复位端口的干扰主要来自电源的噪声,尽管不会造成单片机的错误复位,但会引起某些内部寄存器错误复位。因此要采取必要措施,消除干扰低复位功能的影响。
图1(b)给出了一个改进的电路。电阻R与电容C构成一个低通滤波环节,然后通过74LS14施密特电路接入单片机复位端,可以提高对串入复位端噪声的抑制能力。电路中并联二极管D的目的是在电源断电后,电容能迅速放电。如果没有二极管,那么在断电窄脉冲的干扰下,由于电容C不能迅速将电荷放掉,待电源恢复时,由于电容C两端仍维持较高电压,单片机不能上电自动复位,导致程序运行失控。
2. 基于80C552的多芯片同步复位的硬件电路
2.1 80C552内部特殊的复位结构
图 2 80C552片内复位电路 |
80C552[4]芯片的内部复位电路和MSC-51系列的其他芯片不同,它已经将抑制噪声干扰的史密特电路集成到芯片内部,这样就减少了外部连接的不可靠因素的影响,而且将上电复位用的充电电阻也集成到芯片内部,简化了外部复位电路的硬件设计,提高了上电复位的可靠性。
另外,80C552内部有一个定时监视器T3,可以产生内部复位。如图2所示。80C552的内部复位过程是:将定时监视器T3置为有效,当程序运行出现异常时,定时器T3溢出,并输出宽度为3个机器周期的窄脉冲到复位电路,这样的脉冲足以完成一次复位操作,使系统尽快地从故障中恢复正常。80C552的外部复位与内部复位是相互独立的,当允许内部复位时,不管RST引脚是否为高电平,都能产生一次复位操作。
2.2 单独采用80C552芯片的复位电路
图 3 80C552外部复位电路
|
如果80C552的复位端不再连到其它芯片上,可以采取图3(a)的方案,外部元件少,而且外部复位、内部复位均可实现,系统设计简单,可靠性也高。
2.3 多芯片简单复位电路
当系统中有多个复位端连在一起时,不能采用图3(a)的方案。因为电容的放电作用,使得T3输出的窄脉冲无法在RST引脚出现,这样,当产生内部复位条件时,虽然80C552可以得到复位,但其它外围芯片无法得到复位。这时应采用图3(b)的方案,电容不直接与RST引脚相连,在RST引脚就可以取到T3输出的窄脉冲了。这样,当产生内部复位条件时,整个系统都可以实现复位了。
但由于不同厂家生产的芯片结构不同,对复位的要求也不同[5],况且多芯片的复位连接必然使复位线加长,这极易引起较大的分布电容,从而使外围电路的复位过程滞后于单片机,如果单片机复位结束后立即对外围电路进行初始化操作,往往会导致失败。解决的方法是在程序的初始处加一些延时软件,然后再对外围芯片进行初始化设置,可实现多个芯片的可靠同步。
2.4 基于80C552的多芯片同步复位电路设计图
图 4 多芯片综合复位电路举例
5 软件复位流程图
|
图4是我们设计的遥控数据采集器的接收和转发电路,红外接收器接收发射器发过来的现场数据信息,送到89C2051进行处理,然后通过I2C总线传送到80C552,经过80C552进一步处理后,采用CAN总线传送到数据处理中心.我们这里仅对它的复位电路进行讨论.
在这个系统中,除了80C552需要复位外,还有两个芯片需要复位操作,一个是CAN控制器SJA1000,一个是单片机89C2051。其复位要求是:既要有上电自动复位功能,又要能通过定时监视器T3实现“看门狗”复位功能;当80C552复位时,89C2051和SJA1000也同时复位;当89C2051或SJA1000出现问题时,通过80C552能够分别对其进行复位,而不影响80C552程序的正常运行。而且,89C2051和SJA1000两个芯片的复位电平信号不同,前者为高电平复位,后者为低电平复位。按照上述功能要求,简单的采用前面介绍的两种复位电路均不可行。于是我们采取了一种软件与硬件结合的方法,这种方法是,在硬件结构上,芯片80C552的外部复位电路仍采用图3(a)的结构,芯片89C2051和SJA1000的复位不直接与80C552的复位端相连,而是连到了80C552的两根I/O口线P1.1和P1.3;在软件设计上,通过在初始化程序中软件模拟上电复位过程,就可以满足系统的要求,其程序流程图如图5所示。
系统综合复位过程是:系统上电后,80C552首先复位,开始运行软件程序,在执行初始化部分时,首先通过P1.1和P1.3实现对89C2051和SJA1000的复位操作,然后再运行其他程序。当程序运行出现异常时,“看门狗”起作用,T3溢出产生内部复位操作,程序重新开始,初始化部分也重新运行,89C2051和SJA1000随之再复位一次。在程序正常运行过程中,如果与89C2051或SJA1000相关的模块出现错误时,可以通过软件判定是否出现异常,之后通过P1.1、P1.3端口分别对89C2051或SJA1000单独进行复位操作,此时80C552并不需要复位,程序正常运行。
3 结论:
本文作者创新点: 对于多芯片结构提出了一种软件与硬件相结合的方法建立同步复位系统。这种方法有利于提高系统设计的灵活性和可靠性。经过长期使用的结果表明,这种采用软件、硬件相结合的复位方法,具有硬件器件少、灵活、可靠性高的特点,完全能够保证多个芯片的可靠同步。
参考文献
[1]孙涵芳 徐爱卿.MCS-51、96系列单片机原理及应用[M],北京:北京航空航天大学出版社,1995,4
[2]王幸之 王雷 翟成 王闪.单片机应用系统抗干扰技术[M],北京:北京航天大学出版社,2000,9
[3]张有德.飞利浦80C51系列单片机原理与应用技术手册[M],北京:北京航空航天大学出版社,1999,1
[4]田景文,性能卓越的单片机80C552[J].石油仪器[J] 1998,3:32-34
[5]洪一池,袁一萍.微控制器实时系统监测复位电路的软件设计[J].微型计算机应用2003,3:44-45.
[6]乔维德.基于87LPC768微处理器相位计的设计[J].微计算机信息2006,3-2:43-44.