欢迎来到学术参考网

提高单片机系统可靠性方法探讨

发布时间:2015-07-04 20:13
摘 要:阐述在单片机选型、单片机系统设计以及制造工艺等方面应注意的问题,以实现高可靠性的单片机应用系统,讨论了提高系统可靠性的措施,并提出了提高系统可靠性的综合设计方法。使系统的可靠性得到了充分的保障。
  关键词:单片机;可靠性;抗干扰
  abstract:this paper elaborated should pay attention question, in aspects and so on monolithic integrated circuit shaping, monolithic integrated circuit system design as well as fabrication technology, realizes the monolithic integrated circuit application system, and proposed the integrated design method.
  key words:monolithic integrated circuit; reliability; antijamming
  
  1 电源干扰及其抑制
  单片机应用系统的可靠性是极为重要的。在影响单片机系统可靠性的诸多因素中,电源干扰可谓首屈一指。据统计,计算机应用的运行故障有90%以上是由电源噪声引起的。
  1.1 交流电源干扰及其抑制
  多数情况下,单片机运用系统都使用交流220 v、50 hz的电源供电。在工业现场,生产负荷的经常变化,大型用电设备的启动与停止,往往要造成电源电压的波动,有时还会产生尖峰脉冲,这种高能尖峰脉冲的幅度约在50 000 v~4 000 v之间,持续时间为几个毫秒。它对计算机应用系统影响最大,能使系统的程序“跑飞”或使系统造成“死机”。因此,一方面要使系统尽量远离这些干扰源,另一方面要采用电源滤波器。这种滤波器是按频谱均衡原理设计的一种无源四端网络。为了提高系统供电的可靠性,还要采用交流稳压器,防止电源的过压和欠压。采用1∶1隔离变压器,防止干扰通过初次级间的电容效应进入单片机供电系统。
  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 数字地与模拟地的连接原则
  数字地是指ttl或cmos芯片、i/o接口电路芯片、cpu芯片等数字逻辑电路的接地端,以及a/d、d/a转换器的数字地。模拟地是指放大器、取样保持器和a/d、d/a中模拟信号的接地端。在单片机系统中,数字地和模拟地应分别接地。即使是一个芯片上有两种地也要分别接地,然后在一点处把两种地连接起来,否则,数字回路通过模拟电路的地线再返回到数字电源,将会对模拟信号产生影响。
  2.3 印刷电路板的地线分布原则
  ttl、cmos器件的接地线要呈辐射网状,避免环形;板上地线的宽度要根据通过的电流大小而定,最好不小于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 ma~10 ma,根据光耦的指标而定。在工业环境下与cpu模块相对独立的键盘,需要使用光耦光电隔离接入到系统中,否则极易损坏接口芯片。
  (3)模拟量的光电隔离。模拟量隔离有2种方法,一种是,使用线性光耦,隔离模拟量;由于线性光耦的价格昂贵,并且线性区也很窄,不推荐使用。比较常用的办法是,选用spi接口,或者3线接口的ad或者da,把数据、时钟和使能信号,使用光耦隔离。这实际上是把模拟量的信号转换成串行的开关量的数据流传输。另一种是使用4 ma~20 ma的电流环路,但是4 ma~20 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的存在,避免了后面的指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用的指令如ret、reti、lcall、ljmp、jc等指令之前插入两条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 软件“看门狗”技术
  若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现程序循环时间超过最大循环运行时间,则认为系统陷入“死循环”,需进行出错处理。“看门狗”技术可由硬件实现,也可由软件实现。 在工业应用中,严重的干扰有时会破坏中断方式控制,关闭中断。则系统无法定时“喂狗”,硬件“看门狗”电路失效,而软件“看门狗”可有效地解决这类问题。

上一篇:C++程序设计浅析

下一篇:数据加密技术在银行系统中的应用