单片计算机系统抗干扰的软件途径
对于研制微机工控系统的科技人员而言,系统自身及应用环境产生的各种电磁噪声仍是普遍的困扰因素。许多应用系统在进行仿真调试和实验室内的联机试运行时都是成功的,然而一旦进入现场使用,系统则会产生预料以外的误动作或误显示,严重时甚至导致前期研制成果基本失效,浪费了宝贵的时间和人力物力。因此,如何在系统研制的过程中对干扰源进行正确的分析,如何提高系统各部分及整体抗电磁干扰的能力,已经日益引起人们的高度重视。以往对于电磁干扰的抑制主要侧重于采取硬件措施,例如电磁隔离、去耦滤波、噪声补偿、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代表工控技术中的一般
- 单片机系统软件如何抗干扰的方法(04-19)
- 软件抗干扰经验之四、话说指令冗余技术(11-22)
- 软件抗干扰经验之一(11-22)
- 软件抗干扰经验之二、不要轻信软件狗(11-22)
- 软件抗干扰经验之三、话说RAM冗余技术(11-22)
- 单片机软件抗干扰的这几种办法,以后不能说不知道啦~(11-22)