单片机系统中的抗干扰技术
(3)空间隔离
单片机控制回路与其他大功率回路之间能够分开放置的,尽量不要放置在同一空间中,如果二者必须在同一空间中的,要尽量加大二者的电气距离,尽可能减小空间的电磁感应耦合和辐射耦合,或者将单片机控制电路放在由金属网或金属盒构成的屏蔽体内。 此外,还有其他一些辅助性抗干扰措施,如:晶振的外壳接地、中央处理器的电源端及各口线附近对地加去耦电容等。
3.2 软件抗干扰方法
除了硬件抗干扰途径外,采用相应的软件抑制及补偿措施,也可以起到有效的抗干扰作用。
(1)单片机各部分对干扰信号的反应
①中央处理器CPU
CPU属于高速数字器件,易受干扰的有运算器、控制器和控制寄存器。当电磁干扰信号窜入时,CPU将错误地执行指令,引起误动作或者错误的结果;控制寄存器中的信息如果被噪声修改,将导致初始化错误、寻址失败乃至系统瘫痪。试验表明,干扰信号大多数由总线导入CPU内;其中与外界联系最频繁、因而最容易受干扰的是程序指针PC,这种干扰往往引发致命错误,属于重点防范和重点纠错的对象。
②特殊功能寄存器SFR
SFR包括各种 I/O端口的寄存器、各种片内部件的工作方式寄存器,以及堆栈指针、数据指针等等,其特点是传递数据的速度高,能够与CPU的运行密切配合。如果某个 SFR被干扰信号改写,则意味着运行的结果异常,轻者改变单片机内各部件的操作控制,重则导致整个系统的输出紊乱,引发故障或安全事故。因此,对于与程序有关的内容必须提供及时有效的保护。
(2)软件补偿措施
对于已经侵入微处理机的噪声,必须采取能够维持系统功能的对应措施,以免出现意外停机或意外启动,甚至引起意外事故。对CPU的误动作和各种存储器内容的误修改,在应用软件中插入相应的程序模块,进行主动补偿是一种简便而可靠的方法。
①主动初始化
这里的“初始化”泛指在各段程序中,对单片机及片外扩展器件的各种功能、端口或者方式、状态等采取的永久性的或者临时的设置。我们不仅要保证上电或复位后软件能够正确的实现各种级别的初始化,而且在程序中每次使用某种功能前,都要再一次对相应的控制寄存器设定动作模式。实践证明,这一措施可以大大提高系统对于入侵干扰的自恢复性能。
②重复执行
程序指令在执行的过程中或者保持之后,都有可能被噪声修改,而导致控制失效乃至引发事故,为此应当尽量增加重要指令的执行次数以纠正干扰造成的错误。对于频率较低的传感器数据,建议在有效时间内多次采集并比较;对于控制外部设备的指令,则需要多次重复执行以确保有关信号的可靠性。为达此目的,可把重要的指令设计成定时扫描模块,使其在整个程序的循环运行过程中反复执行。如此,即使干扰信号改写了指令内容,也能在受控设备的反应时间内自动恢复正常。
③重要数据的保护和恢复
编写专门的数据保护子程序,是提高工控微机系统可靠性的有效途径。在编写程序的过程中,对于由指令改变结果性质的数据,可以考虑在每次改变后都尽可能地保护起来,以便在需要时能够恢复正确值。若数据的保护量较大,建议扩展非易失性的SRAM作为片外数据存储器,这种新型芯片具有很高的抗干扰性能,其缺点是目前的价位较高。
(3)片内WDT控制
“看门狗”(WDT)已经成为工控微机必不可少的成员之一,他可以防止程序“跑飞”或者出现“死循环”。有的单片机如PIC系列单片机片内就带有 WDT监视定时器,通过软件,定时清WDT监视定时器的值,当出现“死循环”或程序“跑飞”现象时,WDT监视定时器内的值计满溢出,从而强迫程序复位,从头开始。不带片内WDT监视定时器的单片机,也可以利用微处理机内部闲置的定时/计数器,配合以适当的程序就可以方便地构成WDT。
参考文献
[1] 何立民.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2000.
[2] 杨华舒,褚福涛.单片计算机系统抗干扰的软件途径[J].电子技术应用,2001(3):20-22.
评论