《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 单片计算机系统抗干扰的软件途径

单片计算机系统抗干扰的软件途径

2009-03-24
作者:杨华舒 楮福涛

  摘  要: 基于微机主要部件的抗扰性能试验,提出了几种在单片微机上行之有效的软件抗干扰对策,探索了抗干扰程序的原理及设计方法。

  关键词: 工业控制  单片计算机  软件抗干扰

 

  对于研制微机工控系统的科技人员而言,系统自身及应用环境产生的各种电磁噪声仍是普遍的困扰因素。许多应用系统在进行仿真调试和实验室内的联机试运行时都是成功的,然而一旦进入现场使用,系统则会产生预料以外的误动作或误显示,严重时甚至导致前期研制成果基本失效,浪费了宝贵的时间和人力物力。因此,如何在系统研制的过程中对干扰源进行正确的分析,如何提高系统各部分及整体抗电磁干扰的能力,已经日益引起人们的高度重视。以往对于电磁干扰的抑制主要侧重于采取硬件措施,例如电磁隔离、去耦滤波、噪声补偿、CPU“看门狗”等。

  笔者在研制数控设备的过程中对单片机受到的常见干扰进行了试验分析,采用了相应的软件抑制及补偿措施,室内模拟噪声测试和现场使用均证明了这些方法的有效性。

1 单片机的各部分对干扰信号的反应

  单片机属于数字系统,各逻辑元件都有相应的阈电平和噪声容限,外来噪声只要不超过逻辑元件的容限值,整个系统就能维持正常。然而一旦侵入系统的噪声超过了某种容限,此干扰信号就会被逻辑器件放大、整形,成为产生误动作的重要原因。倘若干扰改变了触发器或存储器的信息,则在噪声消失后系统也不能恢复正常运行。因此,在分析计算机系统受干扰的原因时,应当注意其对噪声信号的存储或滞留特性。

  我们借鉴美国电器制造商协会(NEMA)提出的工控微机抗扰度试验标准,将放电干扰电压提高到2kV,检测常用的MCS—51系列芯片各部分的超常抗扰能力和受扰结果,以分析确定相应的软件对策。试验原理及触点的放电波形、电缆感应的干扰电流波形分别如图1~图3所示,试验时将图1中剩余的电缆芯线分别接到集成电路的受试引脚上,每次干扰试验持续6min。

 

1.1 中央处理器CPU

  CPU属于高速数字器件,易受干扰的有运算器、控制器和控制寄存器。当电磁干扰信号窜入时,CPU将错误地执行指令,引起误动作或者错误的结果;而控制寄存器中的信息如果被噪声修改,将导致初始化错误、寻址失败乃至系统瘫痪。试验表明,干扰信号大多数由总线导入CPU内;其中与外界联系最频繁、因而最容易受干扰的是程序指针PC,这种干扰往往引发致命错误,属于重点防范和重点纠错的对象。

1.2 特殊功能寄存器SFR

  SFR包括各种I/O端口的寄存器、各种片内部件的工作方式寄存器,以及堆栈指针、数据指针等等,其特点是传递数据的速度高,能够与CPU的运行密切配合。如果某个SFR被干扰信号改写,则意味着程序运行的结果异常,轻者改变单片机内各部件的操作控制,重则导致整个系统的输出紊乱,引发故障或安全事故。因此,对于与程序有关的SFR内容必须提供及时有效的保护。

1.3 存储器MEM

  微处理机的存储器包括片内存储器及片外扩展的存储器。为了增强抑制噪声的能力,工控计算机的数据存储器和程序存储器一般分属两个器件。噪声试验表明:程序存储器(EEPROM或者EPROM)的抗扰度最高,经过引脚噪声超常耦合试验后芯片内容毫无变化;单片机内部的数据存储器(片内RAM)抗扰度也较为满意,经过9次试验后仅有两个字节的内容发生了改变,累积变化率不到1%;片外RAM(6264)的抗扰性能相对较差,在6次试验后,其内容的累计变化率已达8.05%。因此,在干扰信号较强的环境中运行的工控微机,其较持久的和重要的数据应当保存在片内RAM之中,在扩展的RAM中只宜保存临时数据(中间变量),否则应当采用后述方法在应用程序中实施数据恢复。

2 软件补偿措施

  对于已经侵入微处理机的噪声,必须采取能够维持系统功能的对应措施,以免出现意外停机或意外启动,甚至引起恶性事故。对CPU的误动作和各种存储器内容的误修改,在应用软件中插入相应的程序模块,进行主动补偿是一种简便而可靠的方法。

2.1 主动初始化

  这里的“初始化”泛指在各段程序中,对单片机及片外扩展器件的各种功能、端口或者方式、状态等采取的永久性的或者临时的设置。我们不仅要保证上电或复位后软件能够正确地实现各种级别的初始化,而且在程序中每次使用某种功能前,都要再一次对相应的控制寄存器设定动作模式。实践证明,这一措施可以大大提高系统对于入侵干扰的自恢复性能。

2.2 数据冗余化

  在噪声幅度较大的环境中,采用冗余数据法可以明显地增加系统的可靠性,这种方法对于传输系统的永久性硬件故障或者干扰引入的数据错误都具有明显的纠错效果。采用的主要措施是给重要的数据添加冗余位,延长数据—代码之间的汉明(hamming)距离以增强检测和纠正错误的能力。图4表明了这种方式的原理,完全无冗余性的代码汉明距离为1。

  冗余化码系在远距离数字通讯传输技术中应用较为普遍,但在工业控制中的应用尚不多见。图4A代表工控技术中的一般数据码,无检测错误的能力。奇偶校验则是在数据中增加1位冗余位(图4B),使汉明距离变为2,因此可以检测奇数位错误。若再增加冗余位使码系间的汉明距离延长为3(图4C),还可具有校正1位错误的能力。在干扰信号特别强烈的场合中,控制或采集终端与上位机之间的串行传送还可以考虑采用循环冗余校验(CRC)手段来增加数据的可靠性。

2.3 重复执行

  程序指令在执行的过程中或者保持(锁存)之后,都有可能被噪声修改而导致控制失效乃至引发事故,为此应当尽量增加重要指令的执行次数以纠正干扰造成的错误。对于频率较低的传感器数据,建议在有效时间内多次采集并比较;对于控制外部设备的指令,则需要多次重复执行以确保有关信号的可靠性。为达此目的,可把重要的指令设计成定时扫描模块,使其在整个程序的循环运行过程中反复执行。如此即使干扰信号改写了指令内容,也能在受控设备的反应时间内自动恢复正常。

2.4 重要数据的保护和恢复

  编写专门的数据保护子程序,是提高工控微机系统可靠性的有效途径。在编写程序的过程中,对于由指令改变结果性质的数据,可以考虑在每次改变后都尽可能地保护起来,以便在需要时能够恢复正确值。 对于大多数工控微处理机而言,在运行错误而强制“复位”之后,I/O端口和特殊寄存器SFR中的内容都将变成芯片出厂时的设定值[4],这很可能会引起整个系统的运行混乱。因此计算机在重新启动后,应当首先执行数据恢复程序,把控制端口等重要寄存器被保护的内容恢复还原。基于前述的试验结果,保护数据最可靠的地址位于微处理机的片内RAM;若数据的保护量较大,则建议扩展非易失性的SRAM作为片外数据存储器。这种新型芯片具有很高的抗干扰性能,其缺点是目前的价位较高。

3 片内软WDT监控

  “看门狗”(WDT)已经成为工控微机必不可少的成员之一,其通常采用软件与片外专门电路相结合的技术,来防止CPU程序的“跑飞”。我们在课题的研究过程中注意到,利用微处理机内部闲置的定时/计数器,配合以适当的程序就可以方便地构成WDT,在PC异常时能够及时有效地强制“软复位”而恢复系统的正常运行。

3.1 基本原理

  与前面提及的软件补偿措施相配合,此WDT可以有效地防止由于CPU的PC“飞出”正常运行的程序区域而导致的系统瘫痪。用微处理机片内的一个定时器单元接收内部时钟提供的稳定脉冲,当此定时器溢出(加法型)或者为零(减法型)时提出中断请求;对应的中断服务程序使PC回到初始化程序的第一行,从而实现强制性“软复位”。 程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器清零或置数,即可预防溢出中断而引起的误复位。

3.2 设计示例

  下面以常用的MCS-51系列单片机的T0为例,介绍软WDT的设计思路。

  首先,在初始化程序块中设置T0的工作方式,并开启其中断和计数功能。设主频为12MHz,T0为8位计数器,则:

  最大计数值为 28-1=255

  计数速率是主频的112(1次/μs),故:

  溢出周期为(255+1)÷1=256μs

  其次,计算各条指令的执行耗时,以适当的间隔设置 T0=0。由于MCS—51系列单片机的指令集中只有“乘”、“除”两条指令耗用4个机器周期,其它均只耗用1~2个机器周期,为保险起见简化为“每条指令均耗用2个机器周期”,即每执行一条指令耗用2μs。据此可以推算出“清零定时器T0”的指令执行间隔应当少于:

  256÷2=128(条)

  即每执行不多于128条程序指令(计入多次循环执行的指令),就应当执行一条清零T0的指令,以防止软复位被误执行。

第三,设计T0溢出所对应的中断服务程序。此子程序只须一条指令,即在T0对应的中断向量地址(000BH)写入“无条件转移”命令,把PC 拖回整个程序的第1行,对单片机重新进行初始化并获得正确的执行顺序。由于这条中断指令并没有结束中断子程序就转出去了,为了能够继续响应其它的中断请求,可以在程序的初始化功能块中把SP定高2字节,在此2字节中写入“中断返回” (RETI)之后应执行指令的地址,以便RETI执行后自动弹栈装入PC,并在初始化程序结束前写上RETI指令。

  在工业控制系统的研制过程中,微机的抗干扰性能是系统成败的关键之一。数十年来,人们已经研究出了许多抗干扰的硬件措施,包括采用净化电源、接地、屏蔽、光电耦合、数据滤波及延时除颤等等。本文针对微处理机易受干扰的部件提出了软件抗干扰的一些方案,实用表明具有较高的经济性和可靠性,很容易将其结合进工业控制程序之中,不失为一类简便而有效的抗扰手段。

 

参考文献

1 张国屏.电子仪器的干扰和抑制.北京:水利电力出版社,1989

2 郝鸿安.常用数字集成电路应用手册.北京:中国计量出版社,1987

3 山崎弘郎.电子回路のぅ???技术,?—?社,1981

4 黄一夫.微型计算机控制技术.北京:机械工业出版社,1990

5 周  斌.机电一体化实用技术手册.北京:兵器工业出版社,1994协作单位

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。