作者:陈群阳 戴曙光 穆平安 黄杨晖 来源:仪表技术
摘 要:以TMS320LF2407A为例,介绍现场干扰对它的影响,及硬件和软件抗干扰技术的应用。
关键词:抗干扰;看门狗;数字信号处理器
1 干扰的来源及后果
干扰可以沿各种线路侵入DSP系统,也可以以场的形式从空间侵入DSP系统。其主要的渠道有三条,即空间干扰,供电系统干扰,过程通道干扰。
干扰对DSP系统的作用可以分为三个部位。第一个部位是输入系统,干扰叠加在信号上,使数据采集误差增大,特别在前向通道的传感器接口是小电压信号输入时,此现象会更加严重。第二个部位是输出系统,使各输出信号混乱,不能正常反应DSP系统的真实输出量,导致一系列严重后果。第三个部位是DSP系统的内核,使三总线上的数字信号错乱,程序运行失常,内部程序指针错乱,控制状态失灵,RAM中数据被修改;更严重的会导致死机,使系统完全崩溃。
2 软件硬件抗干扰设计
2.1硬件抗干扰设计
硬件抗干扰效率高,若硬件措施得当,可以将绝大多数干扰拒之门外。硬件抗干扰技术主要有以下几种:
(1)光电隔离。在输入输出通道上通过光耦合器件传输信息可将DSP系统与各种传感器、开关、执行机构从电气上隔离开来,阻挡很大一部分干扰。
(2)双绞线传输和终端阻抗匹配。长线传输数字信号时利用双绞线,对噪声干扰有较好的抑制效果。可与光电耦合器或者平衡输入接收器和输出驱动器联合使用。在发送和接收信号端必须有末端电阻,双绞线应该阻抗匹配。
(3)硬件滤波。RC低通滤波器可以大大消弱各 类高频干扰信号(如各类“毛刺”干扰)。
(4)良好的接地。有两种接地:一种是为人身或设备安全目的,把设备的外壳接地,这种接地叫外壳接地或安全接地;另一种是为电路工作提供一个公共的电位参考点,这种接地称为工作接地。两种接地系统都要设计合理,同时,系统的数字地与模拟地要分开。
(5)屏蔽。高频电源、交流电源、强电设备、电弧产生的电火花,甚至雷电,都能产生电磁波,从而成为电磁干扰的噪声源。用金属外壳将器件包围起来,再将金属外壳接地,其对屏蔽各种通过电磁感应引起的干扰非常有效。
2.2 软件抗干扰设计
在DSP系统中,充分挖掘软件的抗干扰能力可以将干扰的影响抑制到最小。软件抗干扰设计主要是消除模拟输入信号的噪声,程序运行混乱时使程序重新正常运行。下面给出几种有效的软件抗干扰方法。
(1)数字滤波。数字滤波技术可以有效地消除模拟输入信号的噪声。数字滤波技术有:中值滤波、算术平均值滤波、加权平均值滤波等。
(2)指令冗余。当DSP系统受干扰出现错误时,程序便脱离正常轨道“乱飞”。若乱飞到某双字节指令且取指令时刻落到操作数上,则将操作数当作操作码,程序将出错。若“飞”到三字节指令处,出错机率更大。为避免差错,可在关键地方人为插入一些单字节指令,或将有效单字节指令重写。如在双字节指令和三字节指令后插入两个字节以上的NOP。这样,即使乱飞到操作数上,由于空操作指令NOP的存在,也可避免后面的指令被当作操作数执行,程序自动纳入正轨。此外,在对系统流向起重要作用的指令,如RET、CALL、BCND、B等指令之前插入两条或三条NOP指令,也可将乱飞程序纳入正轨,确保这些重要指令的执行。
(3)软件陷阱。TMS320LF2407A片内有高达32K字的FLASH程序存储器,经过扩展,程序存储空间可达64K。在一般测控系统中存在着大量未用的空间,若在这些未用的程序区设置一段引导程序,当程序受到干扰跳到该区域时,引导程序将强行捕获的程序引向一个指定的地址,在那里以一段专门程序对出错进行处理。
(4)程序运行监视系统(WATCHDOG)。若失控的程序进入“死循环”,通常采用“看门狗”技术使程序脱离“死循环”。通过不断检测程序循环运行时间,若发现它超过最大循环运行时间,则认为系统陷入“死循环”,则对其进行出错处理。
3 DSP系统的“看门狗”设计
TMS320LF2407A片内有一个功能强大的“看门狗”电路模块,其框图如图1:
该看门狗模块具有以下特点:当8位看门狗计数器溢出时,将产生系统复位信号;6位独立运行的计数器根据看门狗计数器预定标值对看门计数器进行“喂狗”;看门狗复位键(WDKEY)寄存器在看门狗被正确“喂狗”时清看门狗计数器,在错误或无“喂狗”时产生复位(看门狗预定标时间值多达6种)。
看门狗预定标时间的选择。如图1,WDCLK是看门狗模块的一个低频时钟信号。WDCLK=(CLK-OUT)/512,其中CLKOUT为 TMS320LF2407A的CLK-OUT管脚的时钟信号频率。当DSP芯片的CPU时钟=40MHz时,WDCLK=78125Hz。8位看门狗计数器WDCNTR对WDCLK或其预分频信号时钟进行计数。可选的预分频系数从2到64,共有6个。当WDCLK=78125Hz时,看门狗模块可以提供从 3.28ms到209.7ms的溢出时间周期,完全满足一般测控的要求。
喂狗操作。在看门狗定时器WDCNTR溢出前,按正确的顺序写入正确的数,即清WDCNTR,完成一次“喂狗”,流程如图2。
系统自恢复程序的设计。 系统恢复前,首先要正确识别是上电开机复位还是看门狗故障复位。TMS320LF2407A提供了简单易行的看门狗复位判断。当DSP系统以看门狗复位时,TMS320LF2407A的看门狗模块将自动置看门狗控制寄存器WDCR第7位WDFLAG为“1”,系统恢复时,软件程序仅需查询该位即可以判断是否为看门狗复位。在已判别出系统非正常复位的情况下,先恢复一些必要的系统数据,如显示模块的初始化;其次再对测控系统的系统状态、运行参数等予以恢复,包括显示界面等的恢复;之后再恢复复位前的任务、参数、运行时间等和进入系统运行状态。
一个好的自恢复程序不仅可以恢复到总任务状态,还可以恢复至具体的某个小任务的执行。可以设置一个标志字(FLAGWORD),当程序执行任务N时,相应地设置FLAGWORD为N。这样,系统恢复时,可以通过查询FLAG-WORD的值来确定恢复后的程序应调至何处。若采用多级标志字,程序可以恢复至更加准确的位置。
系统自恢复程序流程图如图3:
参考文献
[1]刘和平,严利平,张学锋,卓清锋.TMS320LF240XDSP结构,原理及应用[M].北京航空航天大学出版社,2002.
[2]周航慈.单片机应用程序设计技术[M].北京航空航天大学出版社,1992.
[3]TMS320LF2407AUser Manual[Z].TEXASINSTRUMENTS.
转自: