以MSC-51系列的8031单片机为例,给出了在软硬件规划的不同阶段,关于不同搅扰应采纳的一些办法。
1 引 言
在单片机的运用体系中,体系的抗搅扰技能是体系可靠性的重要方面。一个体系的正确与否,不只取决于体系的规划思维和办法,一起还取决于体系的抗搅扰办法,不然势必会呈现原理正确而体系稳定性差,乃至不能施行,使得耗费了很多金钱和时刻研宣布来的操控体系成为一种铺排,电脑变成了“烦恼”。正因如此,抗搅扰技能的研讨越来越引起我们的高度重视。
以下为笔者在多年单片机操控体系规划和运用中拾取的一些抗搅扰的经历领会。
2 单片机体系软件的抗搅扰
一般来讲,窜入微机测控体系的搅扰,其频谱往往很宽,选用硬件抗搅扰办法,只能按捺某个频率段的搅扰,仍有一些搅扰会进入体系。因而,除了采纳硬件抗搅扰办法外,还要采纳软件抗搅扰办法。
2.1 模仿输入信号抗搅扰
叠加在体系模仿输入信号上的噪声搅扰,会导致较大的丈量差错。但因为这些噪声的随机性,能够经过数字滤波技能除掉虚伪信号,求去真值。常用办法如下:
(1)算术均匀滤波法算术均匀滤波法便是接连取N个值进行采样,然后求其均匀值。该办法适应于对一般具有随机性搅扰的信号进行滤波。这种滤波法的特点是:N值较大时,信号的滑润度好,但灵敏度低;当N值较小时,滑润度低,但灵敏度高。
(2)递推均匀滤波法
该办法是把N个丈量数据当作一个行列,行列的长度为N,每进行一次新的丈量,就把丈量成果放入队尾,而丢掉本来队首的一次数据。核算N个数据的均匀值。对周期性的搅扰,此办法有杰出的按捺作用,滑润度高,灵敏度低。但对偶发脉冲的搅扰按捺作用差。
(3)防脉冲搅扰均匀值滤波法
在脉冲搅扰比较严峻的场合,假如选用一般的均匀滤波法,则搅扰将会“均匀”到成果中去,故均匀值法不易消除因为脉冲搅扰而引起的差错。为此,在N个采样数据中,取掉最大值和最小值,然后核算N-2个数据的算术均匀值。为了加速丈量速度,N一般取值为4。
2.2 “死机”现象的战胜
当搅扰经过总线或其他口线作用到CPU时,就会形成程序计数器PC值的改动,引起程序紊乱,使体系失控。因而,在规划单片机体系时,怎么发现CPU遭到搅扰,并尽或许无扰地使体系康复到正常作业状况是软件规划应考虑的首要问题。
不论何种操控体系,一般讲,死机现象都是不允许的。战胜死机现象最有用的办法便是选用单片机工加了硬件看门狗电路后依然有死机现象,剖析原因,或许有以下方面:
(1)因为某种原因,程序紊乱后,看门狗电路尽管宣布了复位脉冲,但在程序刚刚正常还来不及宣布一个脉冲信号,此刻程序再次被搅扰,而这时看门狗电路已处于稳态,不能再宣布复位脉冲。
(2)程序进入死循环,在该死循环中,刚好又有看门狗监督I/O口上操作的指令。而该I/O口仍有脉冲信号输出,看门狗检测不到这种反常情况。
(3)在有严峻搅扰时,中止办法操控字有时会遭到破坏,导致中止封闭。
可见,只用硬件看门狗电路是无法保证单片机正常作业的。因而,可选用以下办法作为弥补。
(1)软件“看门狗”的运用
选用守时器T0作为看门狗,将T0的中止界说为第一流中止。看门狗发动后,体系有必要及时改写T0的时刻常数。
(2)指令冗余技能
①NOP的运用
在8031单片机指令体系中一切指令都不超越3个字节。因而,在程序中接连刺进3条NOP指令,有助于下降程序计数器发生过错的概率。
②重要指令冗余
关于程序流向起决议作用的指令(如RET,RETI,ACALL,LJMP,JZ等)和某些对体系作业状况有重要作用的指令(如SETBEA等)的后边,可重复写下这些指令,以保证这些指令的正确履行。
(3)软件圈套法
单片机体系程序跑飞意味着CPU履行不正确流程程序。而当乱飞程序进入非程序区,选用冗余技能无法使程序归入正确轨道,此刻可选用软件圈套法,阻拦乱飞程序。软件圈套便是用引导指令(如LJMP)将扑获到的乱飞程序引向复位进口地址0000H,在此对程序进行犯错处理,使其归入正轨。
①软件圈套格局
NOP
NOP
LJMP0000H
②软件圈套组织未运用的中止区;
未运用的大片ROM空间;
程序区;
中止服务程序区。
2.3 体系复位特征
单片机运用体系选用看门狗电路后,在必定程度上处理了体系死机现象,可是每次发生复位都使体系履行初始化,这在搅扰较强的情况下仍不能正常作业。一起体系尽管没有死机,但作业状况频频改动,这同样是不能容忍的。
抱负的复位特征应该是:体系能够鉴别是初次上电复位(又称冷起动),仍是反常复位(又称热发动)。初次上电复位则进行悉数初始化,反常复位则不需求进行悉数初始化,测控程序不用从头开端履行,而应毛病部位开端。
(1)上电标志的设定办法
①SP建立上电标志。
②PSW.5建立上电标志。
③内RAM建立上电标志。
(2)软件复位与中止激活标志
当体系履行中止服务程序时,来不及履行RETI指令而受搅扰跳出该程序后,程序乱飞过程中由软件圈套或软件“看门狗”将程序引向0000H,明显这时中止激活标志并未铲除,这样就会使体系热发动时,不论中止标志是否置位,都不会呼应同级中止的恳求。因而,由软件圈套或“看门狗”捕获的程序必定要完结铲除 MSC-51系列中中止激活标志,才干消除体系热发动后不呼应中止的危险。
(3)程序失控后康复运转的办法
一般来说,主程序是由若干个功用模块组成,每个功用模块进口设置一个标志,体系毛病复位后,可根据这些标志挑选进入相应的功用模块。这一点对一些自动化生产线的操控体系尤为重要。
总归,微机测控体系因为遭到严峻搅扰而发生程序乱飞、堕入死循环以及中止封闭等毛病。体系经过冗余技能、软件圈套技能和“看门狗”技能等,使程序从头进入0000H单元,归入正轨。因毛病而进入0000H后,体系要履行上电标志断定、RAM数据查看与康复、铲除中止激活标志等一系列操作,决议进口地址。
2.4 睡觉抗搅扰
在实践运用中,强搅扰的来历往往是体系自身,例如被控负载的中止状况改变等。而这种搅扰是可预知的,在软件规划时可采纳恰当办法避开。当体系接通或断开大功率负载时,暂停全部数据收集等作业。待搅扰往后,再康复进行。这比单纯在硬件上采纳抗搅扰办法要好的多。8031单片机中有一个电源操控寄存器 PCON。当PCON.0=1时,8031单片机进入等候工33作状况。这时单片机时钟被封闭,一切I/O口引脚均坚持进入等候作业办法前的状况,内部时钟依然持续供应中止体系守时/计数器和串行口、8031单片机现场(栈指针、程序计数器PC、状况字PSW、累加器ACC、内部RAM)和其他特别功用寄存器内容坚持不变。中止退出和硬件复位均可使8031单片机退出睡觉状况。
3 单片机体系中硬件抗搅扰规划
一个好的电路规划,应在规划过程中充分考虑抗搅扰性的要求。剖析体系中或许引起搅扰的部件,采纳必要的硬件抗搅扰办法,按捺搅扰源、堵截搅扰传达途径。
3.1 按捺搅扰源常用办法
(1)给继电器线圈添加续流二极管,消除断电时发生的反电动势。
(2)在继电器接点两头并接火花按捺电路,(一般为RC串联电路,电阻一般为几~几十kΩ,电容为0.01μF)减小电火花影响。
(3)给电机加滤波电路,留意电容、电感连线要尽量接近电机。
(4)电路板上每个IC要并接一个0.01~0.1μF高频电容,减小IC对电源的影响。留意高频电容的布线应接近电源端,并尽量短,不然等于增大了电容的等效串联电阻,会影响滤波作用。
(5)防止90°折线,减小高频噪声发射。
(6)在可控硅两头并接RC按捺电路,减小可控硅噪声。
3.2 堵截搅扰传达途径办法
(1)充分考虑电源对单片机的影响。给单片机电源加滤波电路,减小电源噪声对单片机的搅扰。
(2)若用单片机的I/O口来操控电机等噪声器材,在I/O口与噪声源之间应加Ⅱ形滤波电路,或进行光电阻隔。
(3)留意晶振布线。晶振与单片机引脚尽量接近,用地线把时钟区阻隔起来,晶振外壳接地并固定。
(4)电路板合理分区,如数字信号、模仿信号尽或许使搅扰源与灵敏器材远离。
(5)用地线将数字区与模仿区阻隔,数字地与模仿地别离,最终接在一点接于电源地。
(6)单片机和大功率器材的地线要独自接地,以减小相互之间的搅扰。
(7)在单片机I/O口、电源线、电路板连线等要害当地运用抗搅扰元件,如磁环、电源滤波器、屏蔽罩等。
3.3 进步灵敏器材的抗搅扰功能
进步灵敏器材的抗搅扰功能是指从灵敏器材考虑尽量减小对搅扰噪声的拾取,以及从不正常状况赶快康复的办法。常用办法:
(1)布线时尽量削减回路面积,下降感应噪声;
(2)布线时电源线与地线尽量粗。除减小压降外,更重要的是下降耦合噪声;
(3)对单片机的搁置I/O,不能悬空,应接地或电源,其他IC的搁置口相同;
(4)加单片机硬件看门狗电路;
(5)满足要求的前提下,尽量下降单片机晶振和选用低速数字电路;
(6)IC器材尽量直接焊在电路板上,少用IC座。