一种基于有限状态机的逻辑看门狗实现方法

文档序号:1658823 发布日期:2019-12-27 浏览:29次 >En<

阅读说明:本技术 一种基于有限状态机的逻辑看门狗实现方法 (Logic watchdog implementation method based on finite-state machine ) 是由 唐启翔 于 2018-06-20 设计创作,主要内容包括:本发明公开了一种基于有限状态机的逻辑看门狗实现方法,包括以下步骤:单板最后一级电源1.0V上电成功,状态机由初始态转到启动态,同时启动计时器开始计数;当CPLD检测到处理器输出的WDI,且启动时间大于等于45s时,状态机由启动态转到运行态;如果启动时间达到65s还没有检测到WDI信号,则状态机由启动态转到掉电态,这时CPLD输出2s的掉电信号控制其它部分掉电,然后状态机回到初始态。本发明使用有限状态机将系统运行划分为初始态、启动态、运行态、掉电态四个阶段,可以在系统启动阶段挂死或运行阶段挂死的情况下,通过重新上下电来恢复系统运行。(The invention discloses a logic watchdog implementation method based on a finite-state machine, which comprises the following steps: the last stage of the power supply of the single board is successfully electrified at 1.0V, the state machine is switched from the initial state to the starting state, and meanwhile, a timer is started to start counting; when the CPLD detects the WDI output by the processor and the starting time is more than or equal to 45s, the state machine is switched from a starting state to a running state; if the starting time reaches 65s and no WDI signal is detected, the state machine is switched from the starting state to the power-down state, the CPLD outputs 2s of power-down signals to control other parts to be powered down, and then the state machine returns to the initial state. The invention uses the finite state machine to divide the system operation into four stages of initial state, starting state, operating state and power failure state, and can recover the system operation by powering on and powering off again under the condition that the system is hung up in the starting stage or the operating stage.)

一种基于有限状态机的逻辑看门狗实现方法

技术领域

本发明涉及嵌入式系统相关技术领域,具体是一种基于有限状态机的逻辑看门狗实现方法。

背景技术

嵌入式系统在复杂环境中工作可能存在因为外部干扰导致程序挂死或跑飞的情况,所以监控程序运行状态的“看门狗”是产品的必要功能。看门狗功能有以下几种实现方式:一是采用外部看门狗芯片,如美信MAX706;二是采用嵌入式处理器内部集成的看门狗定时器;三是使用FPGA或CPLD通过硬件描述语言搭建看门狗功能电路。在产品有逻辑芯片的情况下,第三种方案可以提高系统集成度、降低硬件成本。

如图1,以MAX706RESA芯片为例,芯片第8脚为WDI,即喂狗信号输入,只要该引脚在1.6S之内发生高低电平变化,芯片内部看门狗定时器就将会被清零,若WDI引脚电平变化间隔超过1.6S,则芯片第8脚/WDO将会输出低电平,直到WDI引脚重新发生电平翻转。所以当使用处理器的GPIO输出WDI喂狗信号时,若出现程序挂死,喂狗信号将不会再按规律翻转甚至停止,此时/WDO输出低电平,触发处理器复位。

发明内容

本发明的目的在于提供一种基于有限状态机的逻辑看门狗实现方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于有限状态机的逻辑看门狗实现方法,包括以下步骤:

S101,单板最后一级电源1.0V上电成功,状态机由初始态转到启动态,同时启动计时器开始计数;

S102,当CPLD检测到处理器输出的WDI,且启动时间大于等于45s时,状态机由启动态转到运行态;如果启动时间达到65s还没有检测到WDI信号,则状态机由启动态转到掉电态,这时CPLD输出2s的掉电信号控制其它部分掉电,然后状态机回到初始态;

S103,如果在运行态检测到WDI信号丢失或其它异常,状态机将由运行态转到掉电态;同样,如果在运行态检测到1.0V电源异常,状态机将由运行态转到初始态。

作为本发明进一步的方案:上述检测处理器输出的WDI信号的方法为:设置高电平宽度寄存器counter_width_H和低电平宽度寄存器counter_width_L,当WDI信号为低电平时,将高电平宽度寄存器counter_width_H清零,当WDI信号为高电平时,则高电平宽度寄存器counter_width_H加1;同样,当WDI信号为高电平时,将低电平宽度寄存器counter_width_L清零,当WDI信号为低电平时,则低电平宽度寄存器counter_width_L加1;当高电平宽度寄存器counter_width_H或低电平宽度寄存器counter_width_L任意一个等于580,输出WDI检测结果WDI_dec_result = 0,否则输出WDI_dec_result = 1。

作为本发明进一步的方案:CPLD为单独供电的机电管理模块,用于获取及控制单板其它部分的状态。

与现有技术相比,本发明的有益效果是:本发明使用有限状态机将系统运行划分为初始态、启动态、运行态、掉电态四个阶段,可以在系统启动阶段挂死或运行阶段挂死的情况下,通过重新上下电来恢复系统运行;利用状态机实现看门狗功能方法简单,逻辑清晰,且状态转换时间可根据实际系统加载时间调节,喂狗信号的脉宽检测判据和复位信号输出时间均可编程,比硬件看门狗芯片应用更加灵活。

附图说明

图1为现有芯片看门狗溢出逻辑时序图。

图2为本发明的流程图。

图3为本发明中状态机的逻辑示意图。

图4为本发明实施例一的仿真结果图。

图5为本发明实施例二的仿真结果图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图2、3,一种基于有限状态机的逻辑看门狗实现方法,包括以下步骤:

S101,单板最后一级电源1.0V上电成功,状态机由初始态(Idle)转到启动态(Start),同时启动计时器开始计数;

S102,当CPLD检测到处理器输出的WDI,且启动时间大于等于45S时,状态机由启动态(Start)转到运行态(Run);如果启动时间达到65S还没有检测到WDI信号,则状态机由启动态(Start)转到掉电态(off),这时CPLD输出2S的掉电信号控制其它部分掉电,然后状态机回到初始态(Idle);

S103,如果在运行态(Run)检测到WDI信号丢失或其它异常,状态机将由运行态(Run)转到掉电态(off);同样,如果在运行态(Run)检测到1.0V电源异常,状态机将由运行态(Run)转到初始态(Idle)。

通过上述状态机的设置,可以在系统启动阶段挂死或运行阶段挂死的情况下,通过重新上下电来恢复系统运行。

上述检测处理器输出的WDI信号的方法为:设置高电平宽度寄存器counter_width_H,和低电平宽度寄存器counter_width_L,当WDI信号为低电平时,将高电平宽度寄存器counter_width_H清零,当WDI信号为高电平时,则counter_width_H加1;同样,当WDI信号为高电平时,将counter_width_L清零,当WDI信号为低电平时,则counter_width_L加1;当counter_width_H或counter_width_L任意一个等于580,即高电平或低电平宽度达到580ms,而不是约定500ms时,将输出WDI检测结果WDI_dec_result = 0,否则输出WDI_dec_result = 1。

实施例一,

输入激励条件1:CLK_1KHz:输入1KHz主时钟;rst_n:10个主时钟周期后拉高全局复位信号;VCC1V0_PG:初始化输入1.0V电源状态为高;CPU_WDI:先输入50个周期的1Hz信号后拉低。

图4为在上述激励条件下状态机的仿真结果,由该仿真结果可以看出,状态机state1从初始态(3’h0)到启动态(3’h1),启动时间计数器计到7’h2d,即启动时间达到45S时,状态机转到运行态(3’h2),之后停止喂狗信号CPU_WDI,逻辑检测结果WDI_dec_result从1变为0时,状态机转到掉电态(3’h4),随后掉电时间计数器开始计数,该计数器为1时拉高掉电信号标志power_again_flag,使处理器掉电或复位,当计数器为3时再拉低掉电信号标志power_again_flag,使处理器重新上电或解复位。

实施例二,

输入激励条件2 :CLK_1KHz:输入1KHz主时钟;rst_n:10个主时钟周期后拉高全局复位信号;VCC1V0_PG:初始化输入1.0V电源状态为高;CPU_WDI:先输入50个周期的1.2Hz信号后拉低。

图5为在上述激励条件下状态机的仿真结果,可以看出,状态机state1从初始态(3’h0)到启动态(3’h1),启动时间计数器计到7’h41,即启动时间达到65S时,由于CPU_WDI信号高低电平脉宽为600ms,大于设定的580ms,逻辑判定喂狗信号一直处于异常,状态机转到掉电态(3’h4),随后输出2S的掉电或复位信号。

综上可以看出,利用状态机实现看门狗功能方法简单,逻辑清晰,且状态转换时间可根据实际系统加载时间调节,喂狗信号的脉宽检测判据和复位信号输出时间均可编程,比硬件看门狗芯片应用更加灵活。

上述实施例的状态机为Mealy型有限状态机,采用两段式写法,将组合逻辑和时序逻辑分开,在组合逻辑中实现状态判断及输出,在时序逻辑中实现当前状态和下一状态的切换,其程序代码框架如下:

always @(posedge CLK_1KHz or negedge rst_n)

begin

if(rst_n == 1'b0)

begin

state1 <= idle ;

end

else

begin

state1 <= state2 ;

end

end

always @(*)

begin

case (state1)

idle :

begin

end

start:

begin

end

run:

begin

end

off:

begin

end

default : state2 = idle ;

endcase

end

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种邀请码生成方法、装置、终端设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类