基于复杂可编程逻辑器件技术的看门狗电路设计

      随着现代电子技术的发展 , 带有各种微处理的现代电子设备已广泛应用于国民生产的各行各业中 。 但随着设备功能越来越强大 , 程序结构越来越复杂 , 指令代码越来越长 , 加之现场工作环境的干扰 , 设备失控 , 程序“走飞” , 各功能模块“死机”的概率也同样成倍地增加 。 对此 , 常见的解决方法是在电路设计时放置一片硬件看门狗(Watchdog)电路 , 其目的是在系统“走死”后能强制系统复位并返回初始化程序 。 随着CPLD器件被广泛应用于各种仪器、仪表设备的设计中 , 而且CPLD几乎可模拟任何一种逻辑电路 , 所以 , 现在在设计时已完全没有必要再放置一片独立的看门狗器件 , 而完全可以将硬件看门狗电路整合于CPLD器件中 , 从而节省成本 , 降低系统的设计风险 。 下面具体介绍这种基于CPLD技术的看门狗电路的设计 。
     2 工作原理
     CPLD是英文Complex Programmable LogICDevice的缩写 , 中文名称为复杂可编程逻辑器件 , 因其具有工作效率高、内部延时小、可预测延时等特点 , 而被广泛应用于计数器、逻辑电路、控制电路和复杂的状态机等功能的实现 , 而看门狗电路的核心就是一个计数定时电路 , 所以 , 利用CPLD特点将能很好地实现看门狗电路的功能 。 看门狗电路的原理框图如图1所示 。 它在结构上可分为分频电路、计数定时电路和复位电路三大部分 , 其工作方式是将一个32768Hz的方波时钟输入分频电路 , 分频后的方波再输入到计数定时电路中进行计数 , 同时与已设置好的计数时间常数相比较 , 当CPU在指定的时间内没有通过改变CS端状态来将计数定时器清零 , 一旦计数值与预先设定的值相一致 , 计数定时电路将产生一个高电平给复位电路 , 复位电路将产生一个复位信号给CPU的REST端 。 例如 , 对于MCS51系列单片机来说 , 将产生一个大于10ms的高电平以保证CPU可靠地复位 。

基于复杂可编程逻辑器件技术的看门狗电路设计

文章插图
    复杂可编程逻辑器件    3 电路设计
    目前 , XILINX公司的可编程器件 , 因其良好的设计平台、安全的加密方法、完整的产品线 , 而被广泛地应用于各种产品中 。 下面 , 以其产品线中的X95系列CPLD为例 , 具体介绍看门狗电路的设计 。
基于复杂可编程逻辑器件技术的看门狗电路设计

文章插图

    看门狗电路的设计
    3.1 分频电路
该电路是由图1中的U1 COUNT5宏单元来完成的 , 该宏单元的目的是将32768kHz的矩形脉冲通过一个5位的二进制计数器 , 经32级分频 , 得到一个1024Hz的方波 , 也就是周期约为1ms的方波 , 其仿真波形如图2所示 。
基于复杂可编程逻辑器件技术的看门狗电路设计

文章插图

    看门狗电路的设计
    其中 , CLKIN为32762Hz方波信号 , CLR为分频器清零端 , TIMECLK为32分频器的输出端 。 由该图可见 , 当CLR为低电平时 , 分频器工作 , CLR为高电平时 , 分频器清零 。
    3.2 计数定时电路
    该电路是看门狗的核心电路 , 其功能由图1中的U5 COMP宏单元来完成 , 该宏单元由一个8位的二进制计数器、一个8位的寄存器和一个8位的比较器组成 。 其中8位寄存器的初始值为0FFH , 也可通过AD BUS的8位数据口和WR DOG片选口进行置数 。 当1024Hz方波进入8位计数器进行计数时 , 比较器同时会将计数器的计数值与寄存器相比较 , 一旦两者相等 , 比较器将产生一个REST高电平 , 禁止计数脉冲输入同时打开复位电路中的计数器 。 仿真波形如图3所示 。
基于复杂可编程逻辑器件技术的看门狗电路设计

文章插图

    计数定时电路
    其中RESTCLKIN为1024Hz基准时钟输入端 。 CLR为8位计数器清零端 。 WR为8位寄存器的片选锁存端(上升沿锁存) 。 DATA7为8位数据总线 , 用于预置8位寄存器 。 REST为复位输出端 , 提供高电平以保证系统复位 。
    3.3 复位延时电路
    该电路的功能由U3 DELAY12MS宏单元来完成 , 目的是在REST信号产生后 , 使其保持在10ms以上的稳定高电平 , 以保证可以实现系统可靠地复位 , 并在延时结束后产生一个高电平将所有宏单元计数器清零 。 仿真波形如图4所示 。
基于复杂可编程逻辑器件技术的看门狗电路设计

文章插图

【基于复杂可编程逻辑器件技术的看门狗电路设计】    其中 , CLKIN为1024Hz基准时钟脉冲 , 当U5_COMP宏单元REST输出为高电平时被允许输入U3_DELAY12MS宏单元 。 当计数器计为12时 , U3_DELAY12MS宏单元CLRALL端产生一个高电平 , 通过32768Hz的脉冲锁存到D型寄存器中 , D型寄存器的输出端将会把所有计数器清零 , 使U5_COMP宏单元中比较器的输出端为“0” , 从而结束复位 。
    4 结束语
    目前 , 本人在所设计的产品中都采用了这种设计 , 实践证明 , 通过CPLD器件来整合看门狗电路 , 将能有效地保证系统正常工作 , 同时减小单独放置看门狗器件带来的设计风险和额外的费用 。