Board logo

标题: 提高单片机系统可靠性方法探讨 [打印本页]

作者: 梦景    时间: 2011-9-28 23:21     标题: 提高单片机系统可靠性方法探讨

1 电源干扰及其抑制
  单片机应用系统的可靠性是极为重要的。在影响单片机系统可靠性的诸多因素中,电源干扰可谓首屈一指。据统计
,计算机应用的运行故障有90%以上是由电源噪声引起的。
  1.1 交流电源干扰及其抑制

  多数情况下,单片机运用系统都使用交流220 V50 Hz的电源供电。在
工业现场,生产负荷的经常变化,大型用电设备的启动与停止,往往要造成电源电压的波动,有时还会产生尖峰脉冲,这种高能尖峰脉冲的幅度约在50 000 V~4 000 V之间,持续时间为几个毫秒。它对计算机应用系统影响最大,能使系统的程序跑飞或使系统造成死机。因此,一方面要使系统尽量远离这些干扰源,另一方面要采用电源滤波器。这种滤波器是按频谱均衡原理设计的一种无源四端网络。为了提高系统供电的可靠性,还要采用交流稳压器,防止电源的过压和欠压。采用11隔离变压器,防止干扰通过初次级间的电容效应进入单片机供电系统。
  1.2 直流电源抗干扰措施

  1.2.1 采用高质量集成稳压电路单独供电

  单片机应用系统中往往需要几种不同电压等级的直流电源。这时,可以采用相应的低纹波高质量集成稳压电路。每个稳压电路单独对电压过载进行保护,因此不会因某个电路出现故障使整个系统遭到破坏,而且也减少了公共阻抗的互相偶合,从而使供电系统的可靠性大大提高。

  1.2.2 采用直流开关电源

  直流开关电源是一种脉宽调制型电源。它甩掉了传统的工频变压器,具有体积小、重量轻、效率高、电网电压范围宽、变化时不易输出过电压和欠电压的特点,在计算机应用系统中应用非常广泛。这种电源一般都有几个独立的电压输出,±5 V±12 V±24 V,电网电压波动范围可达220 V+10%-20%,同时,直流开关电源还具有较好的初、次级隔离作用。

  1.2.3 采用DC-DC变换器

  如果系统供电电网波动较大,或者精度要求高,可以采用DC-DC变换器。DC-DC变换器的特点是输入电压范围大、输出电压稳定且可调整、效率高、体积小,有多种封装形式。在单片机应用系统中获得了广泛的应用。

  2 地线干扰及其抑制

  在计算机应用系统中,接地是一个非常重要的问题。接地问题处理的正确与否,将直接影响系统的正常工作。

  2.1 一点接地和多点接地的应用

  在低频电路中,布线和元件间的寄生电感影响不大,因而常采用一点接地,以减少地线造成的地环路。在高频电路中,布线和元件间的寄生电感及分布电容将造成各接地线间的偶合,影响比较突出,此时应采用多点接地。

  通常频率小于1 MHz,采用一点接地;频率高于10 MHz,采用多点接地;频率处于1 MHz~10 MHz之间时,若采用一点接地,其地线长度不应超过波长的1/20。否则,应采用多点接地。
  2.2 数字地与模拟地的连接原则

  数字地是指TTLCMOS芯片、I/O接口电路芯片、CPU芯片等数字逻辑电路的接地端,以及A/DD/A转换器的数字地。模拟地是指放大器、取样保持器和A/DD/A中模拟信号的接地端。在单片机系统中,数字地和模拟地应分别接地。即使是一个芯片上有两种地也要分别接地,然后在一点处把两种地连接起来,否则,数字回路通过模拟电路的地线再返回到数字电源,将会对模拟信号产生影响。

  2.3 印刷电路板的地线分布原则

  TTLCMOS器件的接地线要呈辐射网状,避免环形;板上地线的宽度要根据通过的电流大小而定,最好不小于3 mm。在可能的情况下,地线尽量加宽;旁路电容的地线不要太长;功率地通过电流信号较大,地线应较宽,必须与小信号地分开。

  2.4 信号电缆屏蔽层的接地

  信号电缆可以采用双绞线和多芯线,又有屏蔽和无屏蔽两种情况。双绞线具有抑制电磁干扰的作用,屏蔽线具有抑制静电磁感应干扰的作用。

  对于屏蔽线,屏蔽层最佳的接地点是在信号源测(一点接地)

  3 其他提高系统可靠性的方法

  3.1 硬件抗干扰设计

  (1)选择抗干扰性能强的CPU。单片机和单片机抗干扰能力是不一样的。如果你的产品是工作在干扰比较大的环境,可以选用抗干扰能力强的单片机。

  (2)数字量的光电隔离。开关量信号实际上有不同的信号传输方式:TTL电平;RS232电平(非平衡信号);RS485电平(平衡信号或者差分信号);电流环路(有电流或者无电流)

  单片机的输入输出口线是最容易引进干扰的地方;对于不使用的I/O口线,需要使用电阻上拉到高电平,不可悬置。直接将开关量信号接到单片机的口线上,是最不可取的设计;至少要加一个缓冲驱动的芯片隔离,而且这个芯片要跟CPU尽量近;在严重干扰的情况下,需要将所有的口线采用光耦光电隔离。光耦隔离就是采用电流环路传输,避免在长线传输的时候,在传输线上积累高压和感应信号,使得数据紊乱甚至损坏TTL接口芯片,或者干扰单片机的正常运行。注意,采用光电隔离是为了信号使用电流环路传输,而不是使用TTL电平传输,这意味着,CPU模块的角度看,开关量输出、驱动器件,74LS244/245/07…等等,CPU模块这里,光耦在另外一块电路板处;开关量输入,光耦在CPU模块处,而驱动器件在另外一块电路板处;这样才能形成电流环路。数字信号的电流环路的电流一般在5 mA10 mA,根据光耦的指标而定。在工业环境下与CPU模块相对独立的键盘,需要使用光耦光电隔离接入到系统中,否则极易损坏接口芯片。

  (3)模拟量的光电隔离。模拟量隔离有2种方法,一种是,使用线性光耦,隔离模拟量;由于线性光耦的价格昂贵,并且线性区也很窄,不推荐使用。比较常用的办法是,选用SPI接口,或者3线接口的AD或者DA,把数据、时钟和使能信号,使用光耦隔离。这实际上是把模拟量的信号转换成串行的开关量的数据流传输。另一种是使用4 mA20 mA的电流环路,但是4 mA20 mA的芯片价格比较昂贵,而且电路也复杂。

  (4)模拟量的通讯传输。使用一个CPU,把模拟量读入到CPU,再通过RS485接口把数据按照通讯协议,传输到主CPU模块;当然,也可以传输开关量信号等。实际上,这是一个分布式的测控网络的方法;多板的单片机测控系统经常使用这种方法。

  (5)独立的看门狗。选用独立的看门狗作为系统复位信号产生;当系统跑飞时,由于没有喂狗”,“看门狗产生复位信号,使得系统可以最大限度地找回跑飞前的数据,尽可能重新开始平稳的运行。

  (6)采用RS232电平传输。比如,机箱的面板显示,经常采用max7219,这时如果使用TTL电平,经常被干扰使得显示不正常;可以在发送端使用一片MAX232,TTL电平转换成RS232电平,在面板显示电路板,选用一片MC1489,RS232电平,转换TTL电平,加强驱动能力,就可以保证信号正确传输。

(7)采用RS422电平传输。同样,也可以在发送端,采用一片MAX485,TTL电平转换成RS485电平,在接收端,选用一片MAX485,RS485电平,转换TTL电平,就可以保证信号正确传输。
  3.2 单片机软件抗干扰

  在单片机软件程序的设计中,采用一些措施来提高单片机系统工作的可靠性。软件抗干扰研究的内容主要是:消除模拟输入信号的噪声(如数字滤波技术);程序运行混乱时使程序进入正轨的方法。这里针对后者提出几种有效的软件抗干扰方法。

  3.2.1 指令冗余技术

  单片机CPU取指令过程是先取操作码,再取操作数。当PC受干扰出现错误,程序便脱离正常轨道乱飞”,乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若到了三字节指令,出错概率更大。在关键地方人为插入一些单字节指令,或将有效单字节指令重写称为指令冗余。通常是在双字节指令和三字节指令后插入两个字节以上的NOP。这样即使乱飞程序飞到操作数上,由于空操作指令NOP的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如RETRETILCALLLJMPJC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,确保这些重要指令的执行。

  3.2.2 软件陷阱技术

  当乱飞程序进入非程序区,冗余指令便无法起作用。通过设置软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错处理。软件陷阱是指用来将捕获的乱飞程序引向复位入口地址0000H的指令。

  例如,对于8051单片机,通常在单片机程序存储器中非程序区填入以下指令作为软件陷阱
:
  
NOP
  
NOP
  
LJMP0000H
  在用户程序区各模块之间的空余单元也可填入陷阱指令。当使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,能及时捕获错误的中断。如某应用系统虽未用到外部中断1,外部中断1的中断服务程序可为如下形式
:
  
NOP
  
NOP?
  
RETI
  返回指令可用“RETI”,也可用“LJMP 0000H”。如果故障诊断程序与系统自恢复程序的设计可靠、完善,“LJMP 0000H”作返回指令可直接进入故障诊断程序,尽早地处理故障并恢复程序的运行。考虑到程序存储器的容量,软件陷阱一般1K空间有2~3个就可以进行有效拦截。

  3.2.3 软件看门狗技术

  若失控的程序进入死循环”,通常采用看门狗技术使程序脱离死循环。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入死循环”,需进行出错处理。看门狗技术可由硬件实现,也可由软件实现。
工业应用中,严重的干扰有时会破坏中断方式控制,关闭中断。则系统无法定时喂狗”,硬件看门狗电路失效,而软件看门狗可有效地解决这类问题。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0