论文部分内容阅读
摘要:本文阐述单片机应用系统中干扰的来源以及抑制干扰若干方法。
关键词:干扰 抗干扰 光电隔离 指令冗余
单片机应用系统的抗干扰性是极为重要的。对单片机应用系统的干扰产生的机理以及如何提高抗干扰性引起了国内外专家及工程技术人员的普遍重视。由于单片机工作的环境往往比较恶劣,比如周围有很强的电磁干扰,这些因素对单片机的正常运行有很大的干扰,甚至会导致系统的瘫痪。因此,提高单片机系统的抗干扰能力具有很强的现实意义。
一、电源干扰及其抑制
在影响单片机系统可靠性的诸多因素中可谓首屈一指。据统计,计算机应用的运行故障有90%以上是由电源噪声引起的。多数情况下,单片机运用系统都使用交流220V、50Hz的电源供电。在工业现场,生产负荷的经常变化,大型用电设备的启动与停止,往往要造成电源电压的波动,有时还会产生尖峰脉冲,这种高能尖峰脉冲的幅度约在50000V~4000V之间,持续时间为几个毫秒。它对计算机应用系统影响最大,能使系统的程序“跑飞”或使系统造成“死机”。
因此,一方面要使系统尽量远离这些干扰源,另一方面要采用电源滤波器。这种滤波器是按频谱均衡原理设计的一种无源四端网络。为了提高系统供电的可靠性,还要采用交流稳压器,防止电源的过压和欠压。采用1∶1隔离变压器,防止干扰通过初次级间的电容效应进入单片机供电系统。
如果系统供电电网波动较大,或者精度要求高,可以采用DC-DC变换器。DC-DC变换器的特点是输入电压范围大、输出电压稳定且可调整、效率高、体积小、有多种封装形式。
二、地线干扰及其抑制
在计算机应用系统中,接地是一个非常重要的问题。接地问题处理的正确与否,将直接影响系统的正常工作。
在低频电路中,布线和元件间的寄生电感影响不大,因而常采用一点接地,以减少地线造成的地环路。在高频电路中,布线和元件间的寄生电感及分布电容将造成各接地线间的偶合,影响比较突出,此时应采用多点接地。
通常频率小于1MHz时,采用一点接地;频率高于10MHz时,采用多点接地;频率处于1MHz~10MHz之间时,若采用一点接地,其地线长度不应超过波长的1/20。否则,应采用多点接地。
对于信号电缆可以采用双绞线和多芯线,又有屏蔽和无屏蔽两种情况。双绞线具有抑制电磁干扰的作用,屏蔽线具有抑制静电磁感应干扰的作用。
三、常见硬件的干扰及抑制
单片机的输入输出口线是最容易引进干扰的地方。对于不使用的I/O口线,需要使用电阻上拉到高电平,不可悬置。直接将开关量信号接到单片机的口线上,是最不可取的设计;至少要加一个缓冲驱动的芯片隔离,而且这个芯片要跟CPU尽量近;在严重干扰的情况下,需要将所有的口线采用光耦光电隔离。光耦隔离就是采用电流环路传输,避免在长线传输的时候,在传输线上积累高压和感应信号,使得数据紊乱甚至损坏TTL接口芯片,或者干扰单片机的正常运行。
模拟量隔离有2种方法:一种是使用线性光耦隔离模拟量;由于线性光耦的价格昂贵,并且线性区也很窄,不推荐使用。比较常用的办法是,选用SPI接口,或者3线接口的AD或者DA,把数据、时钟和使能信号,使用光耦隔离。这实际上是把模拟量的信号转换成串行的开关量的数据流传输。另一种是使用4mA~20mA的电流环路,但是4mA~20mA的芯片价格比较昂贵,而且电路也复杂。
选用独立的“看门狗”作为系统复位信号产生。当系统跑飞时,由于没有“喂狗”,“看门狗”产生复位信号,使得系统可以最大限度地找回跑飞前的数据,尽可能重新开始平稳的运行。
四、软件的干扰及抑制
软件抗干扰研究的内容主要是:程序运行混乱时使程序进入正轨的方法。
指令冗余技术。单片机CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当“乱飞”到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错概率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使“乱飞”程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将“乱飞”程序纳入正轨,确保这些重要指令的执行。
软件陷阱技术。当“乱飞”程序进入非程序区,冗余指令便无法起作用。通过設置软件陷阱,拦截“乱飞”程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的“乱飞”程序引向复位入口地址0000H的指令。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。考虑到程序存储器的容量,软件陷阱一般1K空间有2~3个就可以进行有效拦截。
软件“看门狗”技术。若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。“看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制,关闭中断。则系统无法定时“喂狗”,硬件“看门狗”电路失效,而软件“看门狗”可有效地解决这类问题。
作者简介:
柯希均,男,湖北十堰人,湖北咸宁职业技术学院机电工程教师。
关键词:干扰 抗干扰 光电隔离 指令冗余
单片机应用系统的抗干扰性是极为重要的。对单片机应用系统的干扰产生的机理以及如何提高抗干扰性引起了国内外专家及工程技术人员的普遍重视。由于单片机工作的环境往往比较恶劣,比如周围有很强的电磁干扰,这些因素对单片机的正常运行有很大的干扰,甚至会导致系统的瘫痪。因此,提高单片机系统的抗干扰能力具有很强的现实意义。
一、电源干扰及其抑制
在影响单片机系统可靠性的诸多因素中可谓首屈一指。据统计,计算机应用的运行故障有90%以上是由电源噪声引起的。多数情况下,单片机运用系统都使用交流220V、50Hz的电源供电。在工业现场,生产负荷的经常变化,大型用电设备的启动与停止,往往要造成电源电压的波动,有时还会产生尖峰脉冲,这种高能尖峰脉冲的幅度约在50000V~4000V之间,持续时间为几个毫秒。它对计算机应用系统影响最大,能使系统的程序“跑飞”或使系统造成“死机”。
因此,一方面要使系统尽量远离这些干扰源,另一方面要采用电源滤波器。这种滤波器是按频谱均衡原理设计的一种无源四端网络。为了提高系统供电的可靠性,还要采用交流稳压器,防止电源的过压和欠压。采用1∶1隔离变压器,防止干扰通过初次级间的电容效应进入单片机供电系统。
如果系统供电电网波动较大,或者精度要求高,可以采用DC-DC变换器。DC-DC变换器的特点是输入电压范围大、输出电压稳定且可调整、效率高、体积小、有多种封装形式。
二、地线干扰及其抑制
在计算机应用系统中,接地是一个非常重要的问题。接地问题处理的正确与否,将直接影响系统的正常工作。
在低频电路中,布线和元件间的寄生电感影响不大,因而常采用一点接地,以减少地线造成的地环路。在高频电路中,布线和元件间的寄生电感及分布电容将造成各接地线间的偶合,影响比较突出,此时应采用多点接地。
通常频率小于1MHz时,采用一点接地;频率高于10MHz时,采用多点接地;频率处于1MHz~10MHz之间时,若采用一点接地,其地线长度不应超过波长的1/20。否则,应采用多点接地。
对于信号电缆可以采用双绞线和多芯线,又有屏蔽和无屏蔽两种情况。双绞线具有抑制电磁干扰的作用,屏蔽线具有抑制静电磁感应干扰的作用。
三、常见硬件的干扰及抑制
单片机的输入输出口线是最容易引进干扰的地方。对于不使用的I/O口线,需要使用电阻上拉到高电平,不可悬置。直接将开关量信号接到单片机的口线上,是最不可取的设计;至少要加一个缓冲驱动的芯片隔离,而且这个芯片要跟CPU尽量近;在严重干扰的情况下,需要将所有的口线采用光耦光电隔离。光耦隔离就是采用电流环路传输,避免在长线传输的时候,在传输线上积累高压和感应信号,使得数据紊乱甚至损坏TTL接口芯片,或者干扰单片机的正常运行。
模拟量隔离有2种方法:一种是使用线性光耦隔离模拟量;由于线性光耦的价格昂贵,并且线性区也很窄,不推荐使用。比较常用的办法是,选用SPI接口,或者3线接口的AD或者DA,把数据、时钟和使能信号,使用光耦隔离。这实际上是把模拟量的信号转换成串行的开关量的数据流传输。另一种是使用4mA~20mA的电流环路,但是4mA~20mA的芯片价格比较昂贵,而且电路也复杂。
选用独立的“看门狗”作为系统复位信号产生。当系统跑飞时,由于没有“喂狗”,“看门狗”产生复位信号,使得系统可以最大限度地找回跑飞前的数据,尽可能重新开始平稳的运行。
四、软件的干扰及抑制
软件抗干扰研究的内容主要是:程序运行混乱时使程序进入正轨的方法。
指令冗余技术。单片机CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道“乱飞”,当“乱飞”到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞”到了三字节指令,出错概率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使“乱飞”程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将“乱飞”程序纳入正轨,确保这些重要指令的执行。
软件陷阱技术。当“乱飞”程序进入非程序区,冗余指令便无法起作用。通过設置软件陷阱,拦截“乱飞”程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的“乱飞”程序引向复位入口地址0000H的指令。在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。考虑到程序存储器的容量,软件陷阱一般1K空间有2~3个就可以进行有效拦截。
软件“看门狗”技术。若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。“看门狗”技术可由硬件实现,也可由软件实现。在工业应用中,严重的干扰有时会破坏中断方式控制,关闭中断。则系统无法定时“喂狗”,硬件“看门狗”电路失效,而软件“看门狗”可有效地解决这类问题。
作者简介:
柯希均,男,湖北十堰人,湖北咸宁职业技术学院机电工程教师。