摘要:介绍一种将软件和硬件相结合实现的“看门狗”技术在某型相机导航数据接口板中的应用。结合实际应用给出硬件电路和软件流程。实践证明,采用该技术可使429接口板具有较高的抗干扰性及高可靠性。
关键词:航空相机; 抗干扰性; 可靠性; “看门狗”技术
在某型航空相机中,通过429总线数据接口板与任务机通讯接收相关数据和控制指令,同时与相机主板通过并口通讯交换数据,这样一来,如果接口板程序陷入“死机”或“死循环”状态,那么整个相机系统将无法正常运行,因此,必须尽早发现故障并采取补救措施。本设计系统中采用了软件与硬件相结合的“看门狗”技术。
1 系统中的硬件“看门狗"
专用硬件看门狗是指一些集成化的或集成在单片机内的专用看门狗电路,实际上它是一个特殊的定时器,当定时时间到时发出溢出脉冲。从实现角度上看,该方式是一种软件与外部专用电路相结合的技术,硬件电路连接好以后,在程序中适当地插入一些看门狗复位指令(即“喂狗”指令),保证程序正常运行时看门狗不溢出;而当程序运行异常时,看门
狗超时发出溢出脉冲,并通过单片机的RESET引脚使单片机复位。在这种方式中,看门狗能否可靠有效地工作,与硬件组成及软件的控制策略都有密切的关系。
该系统采用Maxim公司推出的内有“看门狗”(Watchdog)定时器的MAX813L型双列直插式微处理器,其引脚排列如图1所示。
图2示出MAX813L“看门狗”定时器的时序。WDI为“看门狗”的输入端.用来启动Watchdog使定时器开始计数。当RESET有效或WDI输入为高阻态时,Watchdog定时器被清零且不计数。当复位信号变为低电平且WDI电平发生变化(上升沿变化或下降沿变化)时,定时器开始计数。Watchdog一旦被驱动。若在1.6s内不再重新触发WDI.或WDI不是高阻态也无复位信号时,定时器将发生计数溢出,使WDO变为低电平。通常,Watchdog可使CPU摆脱“死循环”的困境,因为陷入死循环后就不可能发出WDI脉冲,最多经过1.6s后,发出WDO信号。
图3为实际应用接口板时的“看门狗”硬件连接,其中MAX813L的1脚与8脚相连,7脚接CPU的复位脚,6脚与CPU的P1.7相连。在软件设计中,P1.7不断输出脉冲信号(“喂狗”指令),如因某种原因CPU进人死循环,则P1.7无脉冲输出,经1.6s后,MAX813L的8脚输出低电平,将该低电平加到1脚,MAX813L则产生复位输出,使CPU有效复位,CPU从而摆脱死循环的困境。另外,当电源电压低于门限值(4.65V)时,MAX813L也产生复位输出,使CPU处于复位状态,不执行任何指令,直至电源电压恢复正常,可有效防止电源电压较低时CPU产生错误的动作。以下是系统的“喂狗”函数。
Sbit WDI=P1.7:
void WatchDog()
{
WDI=1;
delayl ms();
WDI=0;
)
2 系统中的软件“看门狗"
硬件“看门狗”技术能有效监视程序,避免CPU陷入“死循环”或“死机”故障,但对中断关闭故障无能为力;而软件“看门狗”技术对高级中断服务程序陷入“死循环”无能为力,但能监视全部中断关闭的故障。该系统将硬件“看门狗”与软件“看门狗”相结合,互相取长补短。获得出色的抗干扰效果。
图3所示的“看门狗”硬件电路足以应对中断服务程序出现的“死循环”故障,因此,设计软件时只需考虑监视所有的中断关闭故障即可。这样从而大大简化软件流程。系统要求每隔一段时间接口板要与任务机进行一次通讯,而通讯过程是在T0中断处理程序中完成的,同时接口板还要与相机主板完成并口通讯,而这一通讯过程是在INT0中断处理程序中完成的。这样,一旦由于某种原因T0中断或INT0被关闭,那么接口板将无法完成与任务机的 429通讯及与相机主板的并口数据通讯。系统软件 设计流程如图4所示,其中的A0、A1分别为T0、INT0中断运行的状态观测器.每当T0、I:NT0中断1次,A0、A1就相应加1。在主程序功能模块的入口处给A0、A1赋初值,并在中断处理程序中重新对A0、Al赋新值,由于整个429数据解码程序一般足够长.在解码的过程中接口板至少会分别完成与429任务机及相机主板的一次通讯,因此在每个周期429数据解算完毕的出口处分别将.A0、A1与其初值进行比较,以判断A0、A1是否发生变化,从而观测二个中断是否正常执行。若中断因干扰而关闭,A0、A1的值不发生变化,程序可转向相应函数进行出错处理,进而将程序纳入正轨。
3 结论
用硬件电路使程序摆脱“死循环”或“死机”,用软件“看门狗”技术解除中断关闭故障,使程序重新纳入正轨。这种软硬件相结合实现“看门狗”技术的方案合理利用了硬件“看门狗”和软件“看门狗”技术的优点,使429接口板获得良好的抗干扰效果及较高的可靠性。