芯片系统及其看门狗自检方法、电器设备与流程

文档序号:18059236发布日期:2019-07-03 02:56阅读:1025来源:国知局
芯片系统及其看门狗自检方法、电器设备与流程

本发明涉及芯片系统领域,特别涉及一种芯片系统及其看门狗自检方法、电器设备。



背景技术:

“看门狗”是绝大部分控制芯片不可缺少的模块,而控制芯片又是电器的“心脏”,故看门狗对于各种电器来讲都是非常关键的部分。实际上,“看门狗”就是一个具有独立时钟的定时器,当芯片系统定时的对定时器进行清零也即给看门狗“喂狗”时,就表示芯片系统在正常运行,而当控制芯片由于受外界电磁场等的干扰而出现程序跑飞等异常时,控制芯片进入到死循环,此时由于芯片系统无法按时进行“喂狗”,看门狗在计数满溢出后就会自动复位,使得电器停止工作,避免其他风险出现。

一般地,控制芯片可以配置软件看门狗或本身具备硬件看门狗模块,而当硬件看门狗模块由于设置在控制芯片内部时,就较难直接检测和判定其硬件电路是否正常,而当看门狗异常时,就无法在程序异常时起到相应的监控和保护作用,从而导致电器瘫痪,甚至存在失控的风险。



技术实现要素:

本发明的主要目的是提出一种芯片系统及其看门狗自检方法、电器设备,旨在实现在芯片系统上电初始化时,也即在每次电器设备上电开始正式工作前即可完成对看门狗检测。

为了实现上述目的,本发明提出一种看门狗自检方法,应用于芯片系统中,所述看门狗自检方法包括以下步骤:

步骤s1、在将芯片系统时钟配置为检测时钟t1并开始运行后,启动看门狗独立计数器,并控制寄存器以第一初始值n开始累加计数;

步骤s2、在所述寄存器以初始值n累加计数第一预设次数n1后,判断所述寄存器当前所存值n+n1是否达到第二预设值n2;所述n+n1小于n2;

步骤s3、当所述寄存器的所存值未达到第二预设值n2时,则进入一无限循环程序段模式,直至所述看门狗计数溢满出,控制所述芯片系统复位,并返回执行所述步骤s1;在所述无限循环程序段中,给所述寄存器重新赋值第二初始值n3,所述n3=n2-n1,所述看门狗持续计数;

步骤s4、当所述第二初始值n3累加计数所述第一预设次数n1后的寄存器值n3+n1达到所述第二预设值n2时,则进入芯片系统正常工作模式。

优选地,在所述步骤s1之前还包括:

在检测到所述芯片系统上电初始化时,控制将所述芯片系统的时钟配置为检测时钟。

优选地,配置所述芯片的系统时钟为区别于正常运行时钟的检测时钟t1。

优选地,所述检测时钟t1的周期小于所述芯片系统正常工作时的系统时钟。

本发明还提出一种芯片系统,所述芯片系统包括寄存器、看门狗独立计数器及存储在所述芯片系统内并可在所述芯片系统上运行的看门狗自检程序;其中,

所述寄存器,用于在芯片系统时钟配置为检测时钟t1并开始运行后,以第一预设次数n1为计数周期进行计数;在所述看门狗计数溢满出,控制所述芯片系统时钟复位,寄存器以第一预设次数n1为计数周期进行计数;

所述看门狗,用于在所述芯片系统工作时,监测所述芯片系统中的程序是否正常运行;

所述看门狗自检的程序被所述芯片系统执行时实现如上所述看门狗自检方法的步骤,所述看门狗自检方法包括以下步骤:步骤s1、在将芯片系统时钟配置为检测时钟t1并开始运行后,启动看门狗独立计数器,并控制寄存器以第一初始值n开始累加计数;步骤s2、在所述寄存器累加计数第一预设次数n1后,判断所述寄存器当前所存值n+n1是否达到第二预设值n2;所述n+n1小于n2;步骤s3、当所述寄存器所存值未达到第二预设值n2时,则进入一无限循环程序段模式,直至所述看门狗计数溢满出,控制所述芯片系统复位,并返回执行所述步骤s1;在所述无限循环程序段中,给所述寄存器重新赋值第二初始值n3,所述n3=n2-n1,所述看门狗持续计数;步骤s4、当所述第二初始值n3累加计数所述第一预设次数n1后的寄存器值n3+n1达到所述第二预设值n2时,则进入芯片系统正常工作模式。

本发明还提出一种电器设备,所述电器设备包括如上所述芯片系统。

本发明芯片系统的看门狗自检方法,主要是在上电系统初始化过程中实现对独立的看门狗模块的检测。通过在上电系统初始化配置过程中,首先就是进入看门狗模块的自检过程,配置并开启系统时钟为检测时钟后,便进入到看门狗自检工作模式,首先配置芯片系统的时钟为检测时钟t1的工作模式,控制配置并启动看门狗独立计数器开启计数,并给寄存器附以第一初始值n,开始累加计数;在所述寄存器进行第一预设次数n1累加计数后,在所述寄存器累加计数第一预设次数n1后,确定所述寄存器当前的寄存器值n+n1是否达到第二预设值n2;所述n+n1小于n2;由于此时n+n1是小于n2的,故寄存器的寄存器值并未达到第二预设值n2,进而进入一无限循环中,在所述循环模式中,给所述寄存器赋值第二初始值n3,该第二初始值n3满足,n3=n2-n1。若该独立看门狗能够正常工作,则在进入循环模式时,看门狗也是一直在计数的,且在计数满预设值后,会自动溢出,并触发中断,从而发出复位信号给芯片系统,使得芯片系统复位,从而实现主程序的指针跳到最开始执行的语句,然后重新开始往下执行。在主程序的指针跳出后,寄存器以第二初始值n3,累加计数第一预设次数n1开始累积计数,并在寄存器值达计数到第二预设数n2时进位清零。此时芯片系统的指针跳出该看门狗检测过程,进入正常的完成系统初始化配置模式过程并进入到正常的系统配置中,从而正常工作。本发明看门狗检测方法避免了当看门狗模块自身出现故障而无法正常工作,进而无法实现对芯片系统的监控和保护时,芯片系统在无看门狗监测的状态下运行出现故障后直接瘫痪而不能复位运行,进而导致电器系统的异常工作问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本发明芯片系统的看门狗自检方法一实施例的流程示意图;

图2为本发明芯片系统一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

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

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提出一种芯片系统的看门狗自检方法。

看门狗是一种具有独立时钟的定时器,是大多数芯片系统不可或缺的组成部分,也是电器设备的重要部分。作为主控制器芯片系统不可缺少的部分,通过看门狗可以监测程序是否正常运行。当芯片系统受到电磁场等外界干扰导致程序跑飞进入死循环时,此时看门狗就发挥了其“起死回生”的功能,在看门狗计数满后溢出使芯片系统复位重新开始工作,这样就避免了因为就会芯片系统死机而导致电器设备无法正常工作的现象。能够实现这样一个过程的原理是这样的:芯片系统会定时发送一个清零信号给看门狗,我们通常称之为“喂狗”操作,这样做的目的就是防止看门狗自己计数满溢出而导致系统复位重新工作,实际也就是定时告诉看门狗此时系统是正常的。但是当因为某种原因芯片系统无法按时进行“喂狗”时,看门狗的计数器则不停计数,由于不能及时清零,在计数满后即溢出发出复位信号给芯片系统,强制芯片系统复位重新启动。重新复位后,电器设备的系统一般也就可以恢复正常的工作。但是,当看门狗自身出现故障,而芯片系统在上电工作前又没有发现时,这时当程序出现异常,由于看门狗无法正常工作,也就无法实现监控和保护芯片系统的功能,电器设备就可能会因为芯片系统的故障而出现瘫痪或者工作异常等问题。对于常用的硬件看门狗一般是内嵌于芯片系统的内部,很难检测和判定其硬件电路是否正常。

为了解决上述问题,本发明一实施例提出的芯片系统的看门狗自检方法在芯片系统上电初始化时,也即在每次电器设备上电开始正式工作前即可完成对看门狗的检测。

参照图1,该看门狗自检方法具体包括以下步骤:

步骤s1、在将芯片系统时钟配置为检测时钟t1并开始运行后,配置看门狗独立计数器,并控制寄存器以第一初始值n开始累加计数;

看门狗主要用于监测芯片系统的主程序是否正常运行,为了能够适配芯片系统在不同的电器设备中的运行时间,芯片系统中看门狗均具有独立时钟,且看门狗的“喂狗”时间可以根据芯片系统主程序的运行时间设定,一般地,为了避免喂狗过于频繁而造成资源浪费,设置喂狗时间时,可以比主程序运行时间长一点即可。芯片系统在上电后,开始初始化,各功能模块开始工作,其中,各功能模块包括系统时钟的开启和看门狗的开启。当看门狗开启后,看门狗开始计数工作,以监测芯片系统的主程序工作,保证芯片系统正常运行。为了在芯片系统正常工作前检测看门狗的硬件电路正常与否,本实施例在电器设备每次上电工作,且芯片上电初始化时,将系统时钟配置为检测时钟t1并开始运行后,配置并启动看门狗独立寄存器开始计数,即进入看门狗模块进入自检过程,并给芯片系统中的一寄存器附值以第一初始值n并累加计数第一预设次数n1。

步骤s2、在所述寄存器以初始值n进行累加计数第一预设次数n1后,判断所述寄存器所存储的值是否达到第二预设值n2;所述n+n1小于n2;

本实施例中,设置寄存器的第一初始值可以设置为3,第一预设次数n1可以设置为5次,第二预设值可以设为12。在控制寄存器进行第一预设次数n1累积计数后,此时寄存器值为n+n1,也即为8,判断所述寄存器存储值是否达到所述第二预设值n2,也即12。由于此时寄存器所存值为8小于第二预设值12,系统指针跳入一无限循环中;具体地,若当寄存器的存储值达到所述第二预设值n2,则系统指针跳出看门狗检测模块,进入正常的系统初始化配置。

步骤s3、当所述寄存器的所存器值未达到所述第二预设值n2时,则系统指针进入一无限循环中,直至所述看门狗计数溢满出,强制所述芯片系统复位,跳至所述步骤s1;在所述无限循环程序段中,给所述寄存器重新赋值第二初始值n3,所述n3=n2-n1,所述看门狗持续计数;

由于第一次上电初始化时是在所设置的给寄存器所附的值n加上第一预设次数n1是小于第二预设值n2的,所以第一次判定的结果,是使系统时钟指针跳到一无限循环中,进入该循环后首先给寄存器附值第二预设值n3。该循环为一死循环,系统指针跳入后无法自动跳出。具体地,进入该无限循环后,首先给所述寄存器第二初始值n3,本实施例以7为例进行说明,该值是寄存器再进行累加计数第一预设次数n1就能达到第二预设值n2的,也即当寄存器以7开始累加计数,进行5次的累加计数后,寄存器的计数次数就可以达12次,12是可以满足判断使得系统指针跳出看门狗检测过程的值。在给寄存器附值n3之后,系统指针停留在该无限循环中无法自行跳出,看门狗计数器持续计数,当看门狗模块正常,看门狗计数器累加计数满至溢出时,发出复位信号给芯片系统,强迫芯片复位,系统指针此时会跳出该无限循环至步骤s1,若看门狗模块出现异常,无法正常计数或者无法在计数满后发出复位信号给系统芯片,则系统指针一直停留在该初始化检测过程中,无法正常开机运行。

步骤s4、当所述寄存器以所述第二初始值n3累加计数所述第一预设次数n1后的寄存器值n3+n1达到所述第二预设值n2时,则系统指针跳出该看门狗检测过程,进入芯片系统正常配置及工作过程中。

本实施例中,根据芯片系统的主程序在某一环节出现异常,进入死循环无法跳出,也就因此无法给看门狗计数器发出清零信号以及,看门狗计数器若不按时清零就会持续计数直至溢出并发出强制系统复位的信号的原理计数满后,看门狗就会自动溢出,并触发中断,从而发出复位信号给芯片系统,以使芯片系统复位,进而使得电器设备停止工作这一特性,即可确定开判定看门狗是否正常。

具体地,若看门狗正常,则在主程序异常时,看门狗也是一直在计数的,且在计数满预设值后,会自动溢出,并触发中断,从而发出复位信号给芯片系统,使得芯片系统复位,从而实现主程序的指针跳到最开始执行的语句,然后重新开始往下执行。当主程序的指针跳出至主程序最开始执行的语句时,寄存器以第二初始值n3,也即从7开始继续计数,在计数到第二预设值n2,即再次进行5次的累加计数后,寄存器的存储值达到所述第二预设值n2,即12次判断当寄存器达到第二预设值n2后,系统指针跳出该看门狗检测过程并进入到正常的系统初始化配置中,从而开始正常工作。

若看门狗异常,要么无法正常计数要么计数满后不能正常发出复位信号给芯片系统,也即无法计数满预设值并自动溢出,此时芯片系统的主程序的指针会一直停留在死循环中,而无法跳出,故无法正常完成系统初始化配置,电器设备也无法正常开机工作。

本发明芯片系统的看门狗自检方法通过在上电初始化,并开启系统时钟后,开始进入自检工作模式,首先配置芯片系统的时钟为检测时钟t1的工作模式,并控制看门狗独立计数器开启计数,给寄存器附值以第一初始值n,并进行累加计数;在所述寄存器以初始值n累加计数第一预设值n1后,确定所述寄存器的存储值是否达到第二预设值n2;所述n+n1小于n2,由于此时寄存器的寄存器值n+n1是小于第一预设值n2的,故寄存器的寄存器值并未达到第二预设值n2,进而进入一无限循环中,在所述无限循环中,给所述寄存器赋值第二初始值n3,该第二初始值n3满足,n3=n2-n1。若看门狗能够正常工作,则在进入循环模式时,看门狗也是一直在计数的,且在计数满预设值后,会自动溢出,并触发中断,从而发出复位信号给芯片系统,使得芯片系统复位,从而实现主程序的指针跳到最开始执行的语句,然后重新开始往下执行。在主程序的指针跳出后,寄存器以第二初始值n3,第一预设次数n1开始累积计数,并在计数到第二值n2时满足判定条件此时芯片系统跳出看门狗检测过程,进入到正常的系统初始化配置,从而开始正常工作。本发明提出一种看门狗自检方法,实现了芯片系统上电初始化时,也即在每次电器设备上电开始正式工作前即可完成对看门狗检测。这样,本发明解决了当看门狗自身出现故障而无法正常工作,进而无法监控和保护芯片系统时,芯片系统在运行过程中瘫痪而无法继续工作,或者由于芯片系统失控而导致电器设备工作在异常状态下的问题。

进一步地,在检测到所述芯片系统上电初始化时,控制所述芯片系统时钟工作,并监控及获取看门狗的计数数据以及寄存器的存储数据。

本实施例中,为了保证看门狗在芯片系统的正常运行的,在芯片系统上电初始化时,即对看门狗进行自检,并监控及获取看门狗的计数数据以及寄存器的寄存器值,如果自检时检测到看门狗异常,则芯片系统的主程序无法正常运行,电器设备也无法正常开机工作。

进一步地,配置所述芯片的系统时钟为区别于正常运行时钟的检测时钟t1;其中,所述在将芯片系统时钟配置为检测时钟t1具体为:控制所述检测时钟t1为高频时钟。

本实施例中,芯片系统的时钟可配置,为了不影响芯片系统初始化后的正常工作,故在系统初始化时,可以选择给芯片系统配置一个周期比较短的高频时钟,这样便于在短时间内尽快对看门狗进行检测,且不影响系统初始化的正常进行。

进一步地,所述检测时钟t1周期小于所述芯片系统正常工作模式下的时钟周期。

本实施例中,为了不影响芯片系统初始化后的正常工作,故在系统初始化时,可以选择给芯片系统所配置的检测时钟t1周期小于芯片系统正常工作模式下的时钟周期,这样便于在短时间内尽快对看门狗进行检测,且不影响系统初始化的正常进行。

本发明还提出一种芯片系统。

参照图2,所述芯片系统包括寄存10、看门狗20及存储在所述芯片系统内并可在所述芯片系统上运行的看门狗自检程序;

所述寄存器10,用于在芯片系统时钟配置为检测时钟t1并开始运行后,以第一预设次数n1为计数周期进行计数;在所述看门狗计数溢满出,控制所述芯片系统时钟复位,寄存器10以第一预设次数n1为计数周期进行计数;

所述看门狗20,用于在所述芯片系统工作时,监测所述芯片系统中的程序是否正常运行;其中,所述看门狗自检的程序被所述芯片系统执行时实现实现上述看门狗自检方法的步骤。该看门狗自检方法的具体步骤及实现的技术效果可参照上述实施例,在此不再赘述。

本发明还提出一种电器设备,所述电器设备包括如上所述芯片系统。该芯片系统的详细结构可参照上述实施例,此处不再赘述;可以理解的是,由于在本发明电器设备中使用了上述芯片系统,因此,本发明电器设备的实施例包括上述芯片系统全部实施例的全部技术方案,且所达到的技术效果也完全相同,在此不再赘述。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1