单片机应用系统的抗干扰技术

[09-12 17:57:11]   来源:http://www.88dzw.com  单片机学习   阅读:8838

文章摘要:2.3 软件陷阱的设置指令冗余不能完全解决程序"跑飞"的问题,若"跑飞"的程序没有落到程序区则指令冗余就无能为力了。对于此种情况采用设置软件陷阱的方法加以解决。这种方法是在非程序区设置拦截措施,当PC失控、程序"跑飞"进入非程序区时,使程序进入陷井,从而迫使程序返回正常状态。例如,若把这段程序的人口标记为ERR,软件陷阱就可如下书写:NOPNOPLJMP ERR该软件陷阱除了安置在未使用的用户EPROM区外,还常常安置在未使用的中断向量区、表格区的最后和程序的断裂点后(断裂点是指LJMP,SJMP,RET等类指令)。2.4 设置看门狗

单片机应用系统的抗干扰技术,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

2.3 软件陷阱的设置

指令冗余不能完全解决程序"跑飞"的问题,若"跑飞"的程序没有落到程序区则指令冗余就无能为力了。对于此种情况采用设置软件陷阱的方法加以解决。这种方法是在非程序区设置拦截措施,当PC失控、程序"跑飞"进入非程序区时,使程序进入陷井,从而迫使程序返回正常状态。例如,若把这段程序的人口标记为ERR,软件陷阱就可如下书写:

NOP
NOP
LJMP ERR

该软件陷阱除了安置在未使用的用户EPROM区外,还常常安置在未使用的中断向量区、表格区的最后和程序的断裂点后(断裂点是指LJMP,SJMP,RET等类指令)。

2.4 设置看门狗

若"跑飞"的程序既没有落入软件陷阱,又没有遇到冗余指令,而自动形成一个死循环,可利用软件启动单片机的监视定时器(俗称看门狗)来使系统复位。这种方法简单、直观,只需不超过64k状态周期(16ms)的时间(用12M晶振时),计算机就可恢复正常。但一定要通过软件每隔一定时间(如15ms)使看门狗复位一次。

以AT89系列单片机为例,利用内部定时器的定时功能。先估算主控程序正常运行一个循环的时间t,将定时器定时时间T取比t稍大。主控程序运行过程中执行一次定时器的刷新操作,如果程序正常运行,定时器就不会产生溢出信号而产生中断。当程序"跑飞"失控后,系统由于不能刷新定时器而导致定时器溢出而产生中断。利用定时器中断服务子程序就可以进人错误处理子程序,由错误处理子程序对出错情况进行相应的处理,或者跳到程序起始处,重新执行主控程序。程序如下:

在系统初始化程序中,加入下列代码:
SETB EA ;开中断
SBTB ETl ;允许T1中断
SETB PTl ;将T1设为最高优先级

在主控程序中,加入定时器T1的初始化程序。程序如下:

MOV TLl,#DATAL8 ;TI低8位赋初值
MOV THl,#DATA8 ;T1高8位赋初值
ORL 89H,#2FH ;设T1的工作方式
SETB TRl ;启动定时器T1工作

中断程序如下:

ORG 00lBH ;人口地址
POP A ;丢弃PC指针压人堆栈的错误地址
POP A
MOVA,ttADDH8 ;将要跳转的地址送入
PUSH A
MOVGA,#ADDL8 ;堆栈的栈顶
PUSH A
KETI

执行上述中断服务程序后,将使程序自动将堆栈栈顶的2个内容作为地址指针PC;从而使程序进入所要去的地方,进而正确执行主程序。

3 结 语

本文介绍了单片机系统中常用的几种干扰抑制技术,实践表明,这些方法均是行之有效的。综合运用述技术可大大提高系统的可靠性,降低系统调试和维护的工作强度。


上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行