访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
基于TMS320VC5410的看门狗实现方案
内容导读:

摘    要:本文具体讨论了基于TMS320VC5410的两种看门狗实现方案,同时就实现方案的方式和各自的特点作了相应的比较。
关键词:复位; 看门狗;  定时器

引言
在实际的DSP应用系统当中,运行时极有可能发生干扰和被干扰的现象。特别是产品化的DSP系统,可靠性是一个不容忽视的问题,严重时系统会出现程序“跑飞”现象。为了克服这种情况,在可能的情况下软硬件都应作相应的处理。目前,看门狗技术就是这种处理的有效措施之一。本文根据TMS320 VC5410(简称C5410)的自身特点,提出两种实现方案。
C5410是一款定点数字信号处理器,有以下主要的特点:在时钟和数据的处理速度方面,它的内部含有锁相环时钟产生器,通过编程可调时钟的倍数,其操作速率可达100MIPS,并含有一个16位定时器;在信号的处理能力方面,采用了先进的改造型哈佛结构和多总线结构,含有40位算术逻辑单元、17×17乘法器和40位专用加法器等,具有单指令和块指令重复操作的能力;在存储器能力方面,内置16K×16bit ROM和64K×16bit RAM。同时它具有多种引导方式和中断快速返回的特点。

利用片内定时器
工作原理
利用C5410内部的定时器,使C5410在一定的时间段T内,对其工作状态进行监视,如果出现程序“跑飞”现象,则采取中断处理重新复位。C5410内置的定时器是一个减法计数器,在定时中断允许和定时中断的服务程序中含有复位程序片段的情况下,当它减到0时,会引起定时中断处理,完成复位工作。在正常的情况下,希望计数器不可以计数到零,同时正常的处理程序应继续工作。而在“跑飞”的情况下,使计数器计数到零,中断复位程序开始工作,重新初始化整个C5410芯片的设置,且程序从开始处运行。
实现方案
根据如上的分析,设计的软件流程如图1所示。
在本例中,设置定时器从计数开始到计数为零的时间为T=10ms,根据公式:
T=TCLKOUT*(PRD+1)*(TDDR+1)
其中TCLKOUT是C5410的工作时钟周期,此处设置为fclkout=100MHz,则很容易得到PRD=0XF423, TDDR=0XF。如果将定时器的初始化和开中断的程序段安排在有效环内,如:
while(1)
{
 ……
/***timer initialization****/
*TCR=*TCR 0x0010;     /*timer stop*/
*PRD=0 x F423;         /*setup the number of counter loop*/
*TCR=0 x 046F;         /*initialize timer control register*/
/***request timer interrupt***/
*IFR=*IFR 0x8;        /*clear last timer interrupt*/
*IMR=*IMR 0x8;      /*allow timer interrupt*/
asm(" RSBX INTM ");  /*enable all interrupt*/
……
 }
中断向量程序可编写为:
.global  _c_int00;
.global  _c_IntX;
WORDWIDTH    .set    16
     .sect    "vectors"          
vectors:
    B        _c_int00;Reset Interrupt     
    NOP
    NOP;an interrupt consists of four clock cycles                                      
  B        _c_IntX           ;NMI Interrupt
  .space  2*WORDWIDTH ;         
    .space  17*4*WORDWIDTH;  ;omit 17 interrupt service routines
RESET ;timer interrupt service routine
;implement reset                         
NOP                     
NOP
NOP                
……
在此基础上,同时要具备以下两个要求:定时器的初始化和开中断的程序段必须在程序运行的时间段T内运行一次;在正常工作时,中断服务程序中优先权比定时中断高的中断服务程序不能工作。
利用片外看门狗器件
采用Maxim专用看门狗芯片MAX6370,通过设置它的三个SET引脚的电平值,可以实现不同的启动延迟时间和看门狗时间。值得注意的是:启动延迟时间必须满足ms级,才可以使C5410的时钟工作稳定,其后的初始化工作才能正常进行。在图2中,三个SET引脚接了拨位开关和上拉电阻,通过对拨位开关的设置,启动延迟时间和看门狗时间是可变的。为实际工作中的调试和程序的升级带来了方便。
由图2可知,只要使XF的电平在设置的看门狗时间内有变化就可以满足要求。而且此电平的控制也比较简单,通过
asm(“RSBX  XF”);  /*XF的输出变为低电平*/
asm(“SSBX  XF”);  /*XF的输出变为高电平*/
两条语句就可以实现。但为了很好地执行看门狗功能,在软件流程中,须注意电平设置的程序点,在看门狗软件流程图(图3)中显示,主程序中设置了XF为高电平,而只在子程序的循环中设置XF为低电平。但倘若在子程序的循环中XF的高低电平在同一程序点连续地设置,则有可能出现这种情况,如果该子程序由于受到某种干扰,使程序中的某个参数变化而导致它变为一个“死循环”,此时,看门狗功能就失效。

比较说明
以上的两种看门狗措施,在许多方面有所差异。利用片外的专用看门狗电路,硬件成本较高,但与片内的定时器没有约束关系,它的复位能使整个C5410全局复位,抗干扰能力较强,复位处理所需时间也长。利用片内的定时器,省去了片外的器件,降低硬件成本。但是,对于片内只含有单一定时器的C5410而言,定时器不可处理其他工作,因此该方式受到约束。同时它的复位结果只是进行程序的初始化,抗干扰能力较弱,复位处理所需时间较短。

结语
本文基于C5410提出了看门狗设计方案。在应用中,可根据实际情况进行选择,当然也可交叉使用。如在利用片内定时器的看门狗措施中,定时器的中断服务程序可以包含一条使XF为低电平的语句,而XF的输出端通过上拉电阻接到C5410的复位引脚,也可实现看门狗功能。■

参考文献
1 TMS320C54x DSP Reference Set Volume 1: CPU and

标签:
来源:电子设计应用 作者:李竹,杨镇西 丁有志 时间:2005/4/27 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐