单片机抗干扰技术及应用
发布时间:2008/8/25 0:00:00 访问次数:451
1 引 言
在单片机的应用系统中,系统的抗干扰技术是系统可靠性的重要方面。一个系统的正确与否,不仅取决于系统的设计思想和方法,同时还取决于系统的抗干扰措施,不然势必会出现原理正确而系统稳定性差,甚至不能实施,使得耗费了大量钱财和时间研制出来的控制系统成为一种摆设,电脑变成了“烦恼”。正因如此,抗干扰技术的研究越来越引起大家的高度重视。
以下为笔者在多年单片机控制系统设计和应用中拾取的一些抗干扰的经验体会。
2 单片机系统软件的抗干扰
一般来讲,窜入微机测控系统的干扰,其频谱往往很宽,采用硬件抗干扰措施,只能抑制某个频率段的干扰,仍有一些干扰会进入系统。因此,除了采取硬件抗干扰方法外,还要采取软件抗干扰措施。
2.1 模拟输入信号抗干扰
叠加在系统模拟输入信号上的噪声干扰,会导致较大的测量误差。但由于这些噪声的随机性,可以通过数字滤波技术剔除虚假信号,求去真值。常用方法如下:
算术平均滤波法算术平均滤波法就是连续取n个值进行采样,然后求其平均值。该方法适应于对一般具有随机性干扰的信号进行滤波。这种滤波法的特点是:n值较大时,信号的平滑度好,但灵敏度低;当n值较小时,平滑度低,但灵敏度高。
递推平均滤波法
该方法是把n个测量数据看成一个队列,队列的长度为n,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首的一次数据。计算n个数据的平均值。对周期性的干扰,此方法有良好的抑制作用,平滑度高,灵敏度低。但对偶发脉冲的干扰抑制作用差。
防脉冲干扰平均值滤波法
在脉冲干扰比较严重的场合,如果采用一般的平均滤波法,则干扰将会“平均”到结果中去,故平均值法不易消除由于脉冲干扰而引起的误差。为此,在n个采样数据中,取掉最大值和最小值,然后计算n-2个数据的算术平均值。为了加快测量速度,n一般取值为4。
2.2 “死机”现象的克服
当干扰通过总线或其他口线作用到cpu时,就会造成程序计数器pc值的改变,引起程序混乱,使系统失控。因此,在设计单片机系统时,如何发现cpu受到干扰,并尽可能无扰地使系统恢复到正常工作状态是软件设计应考虑的主要问题。
无论何种控制系统,一般讲,死机现象都是不允许的。克服死机现象最有效的办法就是采用单片机工加了硬件看门狗电路后仍然有死机现象,分析原因,可能有以下方面:
因为某种原因,程序混乱后,看门狗电路虽然发出了复位脉冲,但在程序刚刚正常还来不及发出一个脉冲信号,此时程序再次被干扰,而这时看门狗电路已处于稳态,不能再发出复位脉冲。
程序进入死循环,在该死循环中,恰好又有看门狗监视i/o口上操作的指令。而该i/o口仍有脉冲信号输出,看门狗检测不到这种异常情况。
在有严重干扰时,中断方式控制字有时会受到破坏,导致中断关闭。
可见,只用硬件看门狗电路是无法确保单片机正常工作的。因此,可采用以下方法作为补充。
软件“看门狗”的应用
选用定时器t0作为看门狗,将t0的中断定义为最高级中断。看门狗启动后,系统必须及时刷新t0的时间常数。
指令冗余技术
①nop的使用
在8031单片机指令系统中所有指令都不超过3个字节。因此,在程序中连续插入3条nop指令,有助于降低程序计数器发生错误的概率。
②重要指令冗余
对于程序流向起决定作用的指令(如ret,reti,acall,ljmp,jz等)和某些对系统工作状态有重要作用的指令(如setbea等)的后面,可重复写下这些指令,以确保这些指令的正确执行。
软件陷阱法
单片机系统程序跑飞意味着cpu执行不正确流程程序。而当乱飞程序进入非程序区,采用冗余技术无法使程序纳入正确轨道,此时可采用软件陷阱法,拦截乱飞程序。软件陷阱就是用引导指令(如ljmp)将扑获到的乱飞程序引向复位入口地址0000h,在此对程序进行出错处理,使其纳入正轨。
①软件陷阱格式
nop
nop
ljmp0000h
②软件陷阱安排未使用的中断区;
未使用的大片rom空间;
程序区;
中断服务程序区。
2.3 系统复位特征
单片机应用系统采用看门狗电路后,在一定程度上解决了系统死机现象,但是每次发生复位都使系统执行初始化,这在干扰较强的情况下仍不能正常工作。同时系统虽然没有死机,但工作状态频繁改变,这同样是不能容忍的。
理想的复位特征应该是:系统可以鉴别是首次上电复位(又称冷起动),还是异常复位(又称热启动)。首次上电复位则进行全部初始化,异常复位则不需要进行全部初始化,测控程序不必从头开始执行,而应故障部位开
1 引 言
在单片机的应用系统中,系统的抗干扰技术是系统可靠性的重要方面。一个系统的正确与否,不仅取决于系统的设计思想和方法,同时还取决于系统的抗干扰措施,不然势必会出现原理正确而系统稳定性差,甚至不能实施,使得耗费了大量钱财和时间研制出来的控制系统成为一种摆设,电脑变成了“烦恼”。正因如此,抗干扰技术的研究越来越引起大家的高度重视。
以下为笔者在多年单片机控制系统设计和应用中拾取的一些抗干扰的经验体会。
2 单片机系统软件的抗干扰
一般来讲,窜入微机测控系统的干扰,其频谱往往很宽,采用硬件抗干扰措施,只能抑制某个频率段的干扰,仍有一些干扰会进入系统。因此,除了采取硬件抗干扰方法外,还要采取软件抗干扰措施。
2.1 模拟输入信号抗干扰
叠加在系统模拟输入信号上的噪声干扰,会导致较大的测量误差。但由于这些噪声的随机性,可以通过数字滤波技术剔除虚假信号,求去真值。常用方法如下:
算术平均滤波法算术平均滤波法就是连续取n个值进行采样,然后求其平均值。该方法适应于对一般具有随机性干扰的信号进行滤波。这种滤波法的特点是:n值较大时,信号的平滑度好,但灵敏度低;当n值较小时,平滑度低,但灵敏度高。
递推平均滤波法
该方法是把n个测量数据看成一个队列,队列的长度为n,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首的一次数据。计算n个数据的平均值。对周期性的干扰,此方法有良好的抑制作用,平滑度高,灵敏度低。但对偶发脉冲的干扰抑制作用差。
防脉冲干扰平均值滤波法
在脉冲干扰比较严重的场合,如果采用一般的平均滤波法,则干扰将会“平均”到结果中去,故平均值法不易消除由于脉冲干扰而引起的误差。为此,在n个采样数据中,取掉最大值和最小值,然后计算n-2个数据的算术平均值。为了加快测量速度,n一般取值为4。
2.2 “死机”现象的克服
当干扰通过总线或其他口线作用到cpu时,就会造成程序计数器pc值的改变,引起程序混乱,使系统失控。因此,在设计单片机系统时,如何发现cpu受到干扰,并尽可能无扰地使系统恢复到正常工作状态是软件设计应考虑的主要问题。
无论何种控制系统,一般讲,死机现象都是不允许的。克服死机现象最有效的办法就是采用单片机工加了硬件看门狗电路后仍然有死机现象,分析原因,可能有以下方面:
因为某种原因,程序混乱后,看门狗电路虽然发出了复位脉冲,但在程序刚刚正常还来不及发出一个脉冲信号,此时程序再次被干扰,而这时看门狗电路已处于稳态,不能再发出复位脉冲。
程序进入死循环,在该死循环中,恰好又有看门狗监视i/o口上操作的指令。而该i/o口仍有脉冲信号输出,看门狗检测不到这种异常情况。
在有严重干扰时,中断方式控制字有时会受到破坏,导致中断关闭。
可见,只用硬件看门狗电路是无法确保单片机正常工作的。因此,可采用以下方法作为补充。
软件“看门狗”的应用
选用定时器t0作为看门狗,将t0的中断定义为最高级中断。看门狗启动后,系统必须及时刷新t0的时间常数。
指令冗余技术
①nop的使用
在8031单片机指令系统中所有指令都不超过3个字节。因此,在程序中连续插入3条nop指令,有助于降低程序计数器发生错误的概率。
②重要指令冗余
对于程序流向起决定作用的指令(如ret,reti,acall,ljmp,jz等)和某些对系统工作状态有重要作用的指令(如setbea等)的后面,可重复写下这些指令,以确保这些指令的正确执行。
软件陷阱法
单片机系统程序跑飞意味着cpu执行不正确流程程序。而当乱飞程序进入非程序区,采用冗余技术无法使程序纳入正确轨道,此时可采用软件陷阱法,拦截乱飞程序。软件陷阱就是用引导指令(如ljmp)将扑获到的乱飞程序引向复位入口地址0000h,在此对程序进行出错处理,使其纳入正轨。
①软件陷阱格式
nop
nop
ljmp0000h
②软件陷阱安排未使用的中断区;
未使用的大片rom空间;
程序区;
中断服务程序区。
2.3 系统复位特征
单片机应用系统采用看门狗电路后,在一定程度上解决了系统死机现象,但是每次发生复位都使系统执行初始化,这在干扰较强的情况下仍不能正常工作。同时系统虽然没有死机,但工作状态频繁改变,这同样是不能容忍的。
理想的复位特征应该是:系统可以鉴别是首次上电复位(又称冷起动),还是异常复位(又称热启动)。首次上电复位则进行全部初始化,异常复位则不需要进行全部初始化,测控程序不必从头开始执行,而应故障部位开
热门点击
- 单片机与RS232串口通信C51程序
- 一种基于单片机实现OLED显示的设计
- PIC单片机CRC校验程序
- PIC单片机红外遥控编码与解码的问题
- 51单片机与VB串行通信的实现
- 基于MSP430F149的温度采集报警系统的
- 最全的关于PIC单片机入门宝典
- 单片机通信协议处理
- C8051F12X存储大量常量代码的编译技巧
- PC机与单片机的通讯
推荐技术资料
- 硬盘式MP3播放器终级改
- 一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]