新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机应用系统的抗干扰方法

单片机应用系统的抗干扰方法

作者: 时间:2016-12-02 来源:网络 收藏

③ 时间监视器
时间监视器(Watch-Dog Timer),也称“看门狗”技术,用于设立软件陷阱失效的情况下,让系统从故障中恢复过来。因为因干扰而失控的程序不一定都会掉到陷阱中去,比如程序的死循环就是如此。所谓死循环,就是由于某种原因使程序陷入某个应用程序或中断服务子程序中做无休止的循环。这样,CPU及其他系统资源被其占用而别的任务程序都无法执行。也就是说,死循环使程序失去正常控制,但它不会使程序控制转入陷阱区,因而软件陷阱无法捕捉它。
时间监视器由两个计数器组成,计数器靠系统时钟(或分频后的脉冲信号)进行计数。当计数器记满时,将由计数器产生一个复位信号,强迫系统复位,使系统重新执行程序。在正常情况下,每隔一定的时间(根据系统应用程序执行的长短来确定),程序使计数器清零。这样,计数器就不会记满,因而不会产生复位。

本文引用地址://m.amcfsurvey.com/article/201612/324745.htm


图2 SPCE061A 看门狗结构与时序
例如,凌阳单片机SPCE061A的WatchDog的清除时间周期为0.75s。因为WatchDog的溢出复位信号WatchDog_Reset是由4Hz时基信号经4分频之后产生的,即每4个4Hz时基信号(1s)将会产生一个WatchDog_Reset信号。而清除WatchDog的WatchDog_Clear信号却可以发生在4Hz信号(0.25s)之间的任意一个时刻点上。假如WatchDog_Clear信号发生在4Hz信号尾端的0.01s即第0.25s时刻,此时虽然WatchDog被清除掉,但由于它发生在4Hz信号之后,再经3个4Hz信号即0.75s,如果一直没有WatchDog_Clear信号,便会产生出一个WatchDog_Reset信号。如图2所示,如果程序运行不正常,例如陷入死循环等,计数器将记满而产生溢出此溢出信号用来产生复位信号,使程序重新开始启动。在编程中,我们只需将0X0001H写入P_WatchDog_Clear单元即可完成清除WatchDog操作,如果在0.75秒内没有将0X0001H写入P_WatchDog_Clear单元,则CPU将进行系统复位操作,即平常我们说的重启系统。看门狗经常用于延时程序中,如
void Delay()
{
unsigned int j;
for(j=0x7fff;j>0;j--);
*P_Watchdog_Clear = 0x0001;//清看门狗
}
④ 加入空操作NOP
在ROM或RAM的若干区域内,存放若干个空操作组,空操作的个数等于所选CPU芯片最长指令节数。空操作指令NOP除了占用一个存储单元和执行时间外,对CPU的工作状态没有影响。如有选择地在程序某地方插进1~2个NOP指令,也能使PC中的内容得到调整,使程序在受到干扰后回到正确的顺序。插入的位置要在程序调试过程中摸索、分析和实验。一般来说,在对外设端口的操作指令、多字节指令、转移指令、堆栈操作指令前插入NOP指令会得到好的效果。此外,还可以在空操作组之后,再增加处理跑飞的程序,而且让CPU在执行正常程序时,不执行这些指令组。只有当跑飞时才有可能遇到这些指令组。例如:
NOP
NOP
NOP
LJMP FF
FF:ACALL FLY
MOV A,FLG
CJNE A,#11H,RSM
……
⑤ 分段式软件抗干扰
某些时候,控制系统要顺序执行几个不同的主循环通道以完成不同的功能。这时可在不同主环路内编制抗干扰判别及自恢复功能。这样做可以避免不必要的重复执行,以保证顺序的完整性。
⑥ 数字滤波
数字滤波是通过程序设计对单片机数据采集部分输入的信号进行加工处理,以达到抗干扰的目的。当干扰叠加输入通道的模拟信号时,使数据采集误差加大,特别当输入通道模拟信号较弱时,此现象更加严重。为了消除数据采集的误差,常用算术平均法、比较取舍法、一阶滞后滤波法和中值法,可根据信号和干扰的规律,采用最优的设计方法。
不同的单片机应用系统都有自己的系统要求和特点,在硬件和软件抗干扰设计上也各有自己的特色。软件抗干扰技术作为硬件抗干扰的补充,以其灵活性、实用性和可靠性在扰方面起着举足轻重的作用。在工程实践中通常都是几种抗干扰技术并用,互相补充,才能取得良好的抗干扰效果。我们在设计单片机应用系统时,要仔细分析干扰源,软硬件抗干扰技术相结合,完善系统监控程序,则可以保证系统准确、可靠地运行。


上一页 1 2 下一页

评论


技术专区

关闭