您当前的位置:五五电子网电子知识单片机-工控设备看门狗电路基于复杂可编程逻辑器件的系统硬件看门狗设计 正文
基于复杂可编程逻辑器件的系统硬件看门狗设计

基于复杂可编程逻辑器件的系统硬件看门狗设计

点击数:7811 次   录入时间:03-04 11:51:14   整理:http://www.55dianzi.com   看门狗电路

      内容摘要:基于以DSP芯片TMS320F2812为核心的数字伺服控制器,以国微电子公司的SM1032国产CPLD(兼容LattICe公司的ispLSI 1032)为载体,设计了专用的系统硬件看门狗模块,具备识别DSP软件初始化时序、自由定制看门狗时序等功能。通过对伺服控制器上电及工作运行时序的分析、仿真和实验验证,确定了硬件看门狗功能模块的设计方案,并给出了实验结果。
      关键词:看门狗;CPLD;状态机;仿真

      引言
    在以单片机、DSP等处理器为核心的数字系统中,看门狗是不可缺少的一部分,特别是在对可靠性要求极高的系统中,如箭上伺服控制器,由于箭体内强弱电交叉使用,或者地面测试环境复杂多变,会产生诸多干扰和辐射。它们的冲击会使CPU在执行指令时的地址码或操作码发生变化,甚至将操作数作为操作码执行,导致程序跑飞。为使系统在规定时间内重新正常工作,一种有效的措施是采用硬件看门狗技术。
    本设计的最初思路来源:实现高可靠性数字伺服控制器软、硬件看门狗的双冗余设计要求,目前缺少军品级国产化硬件看门狗器件,在满足系统要求的情况下减少元器件的种类。

1 看门狗技术的实现方式
    看门狗实现方式可分为以下两种:
    硬件看门狗——采用一个独立于CPU的定时器电路或芯片,如MAX706或TPS3823等,周期性地产生复位脉冲,而CPU必须及时“喂狗”(在复位脉冲发出前对此定时器进行清零处理),否则看门狗发挥作用,复位脉冲会使CPU重启。
    软件看门狗——利用CPU内部的定时器中断替代看门狗定时器电路,存中断程序中复位CPU,这同样发挥了看门狗的作用。但由于CPU中断存在优先级、屏蔽以及中断自身故障等原因,郁可能导致软件看门狗工作异常。软件看门狗往往采用一些其他软件设计措施提高其可靠性。

2 基于CPLD的硬件看门狗设计
2.1 硬件平台
    此设计基丁箭上数字伺服控制器,以TI公司的TMS320F2812(下面简称为DSP)为控制核心,SM1032则用来实现对A/D、D/A和1553B总线的片选信号和逻辑控制信号译码,并在此基础上增加了硬件看门狗功能。与其相关的电路连接如图1所示,其中看门狗使能信号EN与DSP_JTAG电路相连,在DSP下载程序或在线仿真时可通过专用的JTAG 工装电缆禁止看门狗功能,防止看门狗的误操作。

a.JPG

   
    本设计适用于以微控制器与FPGA或CPLD联合使用的数字控制系统中。利用FPGA或CPLD的剩余资源没计看门狗模块,相当于硬件看门狗的一种,其基本功能和特点有:当软件跑飞且主控芯片内部看门狗工作异常时,可为系统进行复位操作;可关闭主控芯片内部的软件看门狗,优化软件代码;可节省专用的看门狗芯片,且在不同时序要求上灵活修改;可根据系统要求增加与主控芯片的握手信号。



www.55dianzi.com


2.2 DSP上电过程及复位时序分析
    DSP上电初始化时序如图2所示。WDT是喂狗信号输出,在定时器中断或主循环中使其电平周期性取反;RST是上电复位信号。Trst是上电复位信号的脉宽,约为100 ms;Twork是从上电时到首次进入定时器中断程序的时间,约为130 ms。在主程序中首先使WDT输出低电平,则从上电复位完成到WDT变为低电平的时间A为DSP复位后自身的各项配置所占用的时间。在定时器中每次取反WDT信号,则到WDT第一次变为高电平的时间B为各软件模块及中断初始化所占用的时间。A+B为系统初始化所用的时间,约为30ms。

e.JPG

   
    由此可见,如果系统程序跑飞,则每次复位都要经过A、B两个过程,约30 ms的时间;那么在CPLD软件的看门狗模块中,每次在给出复位信号后都要等待DSP的初始化完成(约30 ms)后再开始对喂狗信号监测并计时。
    选择看门狗定时器溢出上限以5ms为例,从程序跑飞到重新正常运行大约35 ms。设定控制系统给伺服发送控制指令信号的周期是20 ms,伺服机构常态速度10°/s,最大速度是20°/s,20 ms的时间摆动的角度是0.2°和0.4°,该角度是其控制姿态的最小步长,因此35 ms以内的热复位时间最多丢失两条指令,伺服机构在可控范同之内。此外,软件代码还有一定的优化余量,初始化时间和看门狗定时器溢出上限还可进一步减少。
2.3 看门狗设计要考虑的几点问题
    ①喂狗方式:可分为电平喂狗和边沿喂狗,本设计采用后者。与电平喂狗相比较,边沿喂狗在状态机的设计中可以减少状态数量,从而节省CPLD资源,且DSP的喂狗也很容易,只要取反WDT电平,就可被认为已喂狗,简化软件代码。
    ②定时器溢出上限:根据具体需要灵活设定,这里暂定5 ms。
    ③输出系统复位信号脉宽:这里只要超过DSP所需的512个时钟周期即可,以30 MHz品振为例,时长约为171μs。
    ④系统上电初始化时间:系统上电复位后DSP需要一断时间初始化,而这段时间内不能喂狗,所以CPLD不能检测是否有喂狗信号,否则会造成连续的错误复位,使DSP无法正常工作,因此在CPLD代码设计时需要越过初始化阶段再去检测喂狗信号。
    ⑤与主控芯片的摒手信号:根据系统任务需求,可增加与主控芯片的握手信号。例如,当主控芯片需要实现总线写程序功能时,对DSP片内的Flash进行写操作,此时不能对DSP进行复位,DSP也无法输出喂狗信号,这就需要在总线写程序之前通过总线与CPLD实现握手与应答,关闭看门狗功能,程序写入完成后系统重新加电即可正常工作。为了简化功能描述,本设计术加入握手设计。
2.4 看门狗状态机的设计
    此设计采用Mealy型状态机,使用Verilog HDL语言编写代码,信号、寄存器说明如下所示:Count,时间计数器;NUM1,定时器溢出上限(5 ms);NUM2,输出复位脉冲宽度(大丁171μs);NUM3,上电复位后等待DSP初始化的时间(30 ms);WDT_fiag,3位宽移位寄存器,接收喂狗信号,比较首未位是否相等来判断是否有喂狗信号;SYS_RST,看门狗输出的系统复位信号;WAIT、IDLE、ADDING、ERROR、KEEPING,状态机的5个状态;EN,看门狗功能使能信号,高电平禁止,低电平使能。



www.55dianzi.com

f.JPG

   
    图3为状态转移图。在任意状态时如果EN使能信号被禁止,则状态机进入IDLE状态。在图上不一一标出EN的条件转移曲线。系统上电复位后进入WAIT状态,等待NUM3时间使DSP完成初始化;进入IDLE状态,如使能看门狗功能;进入ADDING状态累加计时,如果在限定时间NUM1内监测到喂狗信号,表明程序运行正常,返回IDLE状态等待下一次喂狗信号,如果超过NUM1未收到喂狗信号,认为程序已经跑飞,进入EEROR状态;EEROR状态中输出复位信号并清零计数器;进入KEEPING状态,使低电平保持一段时间NUM2,这段时间超过DSP所需的复位时间即可;进入WAIT状态,复位后重新等待DSP完成初始化,循环往复。

3 基于CPLD的硬件看门狗的仿真与验证
3.1 功能仿真
    使用Modelsim软件进行功能仿真,可以看出EN信号和WDT(喂狗信号)的变化对SYS_RST输出的影响。编写测试文件对EN使能、禁止,WDT信号喂狗间隔小于、大于定时器溢出上限,以及不喂狗等情况进行仿真。

a.JPG

      仿真波形1如图4所示。EN处于使能状态,WDT在限定时间内有边沿变化时,对应的移位寄存器也发生变化,使WDT_flag[2]!=WDT_flag[0],喂狗成功,不会输出复位信号;存SYS_RST第二个低电平处,对应的WDT超过了限定时间没有变化,故输出复位信号。



www.55dianzi.com

b.JPG

   
    仿真波形2如图5所示。由仿真波形可看出,在EN高电平时,不会输出喂狗信号,使能信号测试通过,喂狗信号存EN使能时如不能存限定时间内喂狗,则输出系统复位信号。由仿真波形看出功能得到实现。
3.2 硬件平台验证
    在伺服控制器上对基丁CPLD的硬件看门狗功能进行验证。DSP上电初始化完成后,先止常输出喂狗信号一段时间,然后停止输出喂狗信号,通过示波器捕获CPLD输出的系统复位信号,波形如图6所示,光标1是系统复位信号SYS_RST波形,光标2是DSP输出的喂狗信号WDT波形。从波形图前半段可以看出,WDT正常喂狗时,SYS_RST保持高电平,当WDT保持高电平一段时间后SYS_RST输出低电平,实现系统复位。复位后经过一段时间的初始化过程后,WDT开始正常喂狗。

[1] [2]  下一页


本文关键字:硬件  看门狗电路单片机-工控设备 - 看门狗电路

《基于复杂可编程逻辑器件的系统硬件看门狗设计》相关文章>>>