CN101957790A - 微控制器多源看门狗的实现方法 - Google Patents
微控制器多源看门狗的实现方法 Download PDFInfo
- Publication number
- CN101957790A CN101957790A CN2009101995853A CN200910199585A CN101957790A CN 101957790 A CN101957790 A CN 101957790A CN 2009101995853 A CN2009101995853 A CN 2009101995853A CN 200910199585 A CN200910199585 A CN 200910199585A CN 101957790 A CN101957790 A CN 101957790A
- Authority
- CN
- China
- Prior art keywords
- register
- house dog
- watchdog timer
- reset
- microcontroller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种微控制器多源看门狗实现方法。该方法通过在一个看门狗模块内嵌入多个看门狗定时器以及设置专门的标志位寄存器,不仅可以实现传统的看门狗定时器发现并且纠正程序运行错误的目的,而且可以记录错误发生的程序段的位置,这为应用人员排查错误改进设计提供了很大的方便。本发明可应用于MCU领域,亦可应用于其他微处理器领域。
Description
技术领域
本发明涉及一种微控制器(MCU,Microcontroller Unit)多源看门狗的实现方法,该方法主要用于微控制器(MCU)运行状态的监视以及对运行错误的纠正,也可应用于其他的芯片级的处理器领域。
背景技术
看门狗监视器在微控制器(MCU)的应用上非常普遍,在工业控制上尤其如此。在大型的工业流水线上,许多机器在MCU的控制下按照预定的程序有序地运行着。如果由于未能预料的原因,如脉冲干扰等,造成程序跑飞,系统无法正常地工作而进入死循环,这时系统就必须立刻被重新复位,否则就会对生产活动造成影响。因此,必需由操作人员在机器旁边照看,如果出现死循环,就手动复位。这种方法既浪费了资源,也不是非常有效。而看门狗监视器的出现,解决了这类的问题。一旦程序发生跑飞进入死循环状态,看门狗监视器就能够监视到程序运行异常的发生,自动产生一个复位信号,在人工不干预的情况下也能对系统进行复位。
但是,传统的看门狗监视器也有其缺点。虽然它能够发现程序跑飞的问题并进行纠正,却无法告知用户程序跑飞的位置与发生的原因。在具体操作中,技术人员需要凭借经验花费大量的时间查找错误的源头,这也一直是运用传统看门狗监视器的一个遗憾。
发明内容
本发明的目的在于提供一种微控制器多源看门狗的实现方法,相比传统的看门狗电路,它不仅具有系统自动复位的功能,而且该方法通过多个看门狗的协调工作以及设置专门的寄存器,能够保存发生错误时CPU所在程序段的位置信息,这样就能使系统工作人员快速找出程序的出错点,从而减少了系统工作人员在系统出现程序跑飞问题后的仿真时间,简化了仿真和检错的过程,极大地提高了工作的效率。
该方法在应用上可以通过硬件电路方便地实现,并且可以作为功能模块来嵌入到芯片内部以提高系统集成度。
为达到上述目的,本发明的构思如下:
构建一个集成在MCU内部的多源看门狗模块,该模块内部由多个看门狗监视器组成,整个设计通过多个看门狗的协调工作以及设置专门的寄存器来达到设计的要求。
每个看门狗的工作方式与传统的看门狗监视器基本一致,即根据主程序会循环运行的原理,在程序中设置看门狗定时器的程序。启动看门狗定时器后,在正常情况下每当程序循环运行到看门狗定时器相应的程序时,就会对看门狗定时器进行赋值操作(也称为刷新看门狗或者“喂狗”)。如果出现程序跑飞的故障则主程序的循环无法进行,也就无法实现刷新操作,则看门狗定时器会一直计数直到某一个临界值并发出复位信号使整个MCU复位,也就纠正了程序跑飞造成的影响。
多源看门狗模块内嵌多个上述的看门狗监视器,并且为该模块配置了专门的标志位寄存器来存放各看门狗的状态,多个看门狗的协同作用就可以知道程序发生跑飞的位置,图1是多源看门狗思想的工作示意图。如图1所示,当程序跑飞的现象发生以后,发生状况的程序段之前的看门狗定时器已经被赋值,而由于程序跑飞,发生状况的程序段之后的看门狗定时器无法得到赋值,则其中距发生状况的程序段最近的看门狗定时器就会首先发生复位。在看门狗定时器发出复位信号的同时,标志位寄存器内相应的标志位会被置位。这样,通过在程序的不同位置嵌入多个看门狗进行监视,一旦发生复位,只要查看标志寄存器就可以知道发生复位的看门狗位置,从而确定程序跑飞发生的位置。这对检查错误产生的位置以及产生的原因都带来极大的方便。
根据上述构思,本发明采用下述技术方案:
一种MCU多源看门狗实现方法,其特征在于通过一个嵌入在芯片内部多源看门狗模块,可以在程序的不同位置设置多个看门狗监视器以跟踪程序的运行,专门的标志位寄存器还可在MCU被复位后记录下产生复位的看门狗的信息,以方便发现错误。其具体步骤为:
a.设置n个独立的看门狗定时器模块,每个模块包括一个单独的看门狗初值寄存器;
b.设置看门狗频率选择寄存器来配置每一个看门狗的工作频率,以适应不同的应用条件;
c.设置看门狗运行控制寄存器,该寄存器通过控制每一个看门狗的运行使能位来控制其运行情况;
d.设置看门狗标志位寄存器,该寄存器可以在看门狗对MCU发出复位信号前,记录下发出信号的看门狗监视器的身份信息,以供应用人员读出并找出错误的源头。
e.改变原MCU的复位方式,将多源看门狗模块的复位信号引入到复位模块,使其可以触发MCU复位
上述设置n个独立的定时器模块的方法为:
每个模块都是一个独立的定时器模块,所有n个模块的结构完全相同。所有的定时器都采用统一的计数方式,即统一采用“加一”或者“减一”的计数方式。每个定时器模块均采用统一的复位信号,当定时器被复位时会处于一个默认的初值状态。在非复位状态,定时器可以通过用户的控制按照要求进行“加一”或者“减一”的计数运算。
每个定时器不仅可以从默认的计数初值开始计数,而且可以从一个指定的初值开始计数。这需要用户为每一个定时器配置初值,如果用户不配置定时器会采用默认初值,上述设定初值的方法也就是一般看门狗监视器所谓的刷新定时器或者“喂狗”的功能。一旦定时器接受到从CPU发出的控制信号,就可以很方便地对定时器初值寄存器进行赋予初值的操作。
对每一个看门狗定时器而言,如果不能在设定的时间内刷新初值,看门狗就会复位MCU。这里的时间指的是在看门狗定时器复位MCU前最长的工作时间为,其计算公式如下:
最长的工作时间=计数时钟频率倒数×计数初值
上式中的初值如前文所言由用户通过配置初值寄存器而设定,而计数时钟频率则是用户根据实际的需要而设置的,其设置方式是通过对频率选择寄存器的设置来实现的,具体的内容参看“设置看门狗频率选择寄存器”。
在所有寄存器完成其配置以后,需要对看门狗运行控制寄存器进行读写操作才能真正地启动看门狗的运行,有关这方面的内容参照“设置看门狗运行控制寄存器”的内容。
上述设置看门狗频率选择寄存器的方法为:
该寄存器用来设置每一个看门狗定时器的计数时钟的频率,以影响看门狗定时器复位MCU前最长的工作时间。超过该时间,看门狗就应该认为程序没有正常地运行而刷新MCU。
为了能够适应不同条件下的计数时间的长度,应该给予用户自由选择的空间,所以应该提供不同的工作频率,具体可视应用的需要来决定。同时考虑到寄存器的结构,一般对于每个看门狗定时器,所设定的可选频率个数应为2n(n=1,2…)个,也就是说每个看门狗定时器所占用的寄存器的位数是n个,以达到充分利用寄存器空间的目的。假设有寄存器的位数是m位而每个看门狗占据n位数据,寄存器的分配示意图如图2所示。
对每一个看门狗定时器可以采用如下的配置方式,假设n=2而且该看门狗定时器占据bit0、bit1两位,则对每一个看门狗定时器可以选择的频率个数是22,它们的定义是:
1)bit1 bit0=00:看门狗定时器的计数频率为时钟频率的K1倍;
2)bit1 bit0=01:看门狗定时器的计数频率为时钟频率的K2倍;
3)bit1 bit0=10:看门狗定时器的计数频率为时钟频率的K3倍;
4)bit1 bit0=11:看门狗定时器的计数频率为时钟频率的K4倍;
对于K1、K2、K3、K4的选取应根据实际的情况选择,以保证覆盖所有的计数范围。如果在复位状态,则该寄存器所有的内容自动地会被复位为低电平状态,即处于所有看门狗定时器的计数频率为时钟频率的K1倍的状态。
上述设置看门狗运行控制寄存器的方法为:
该寄存器用来设置每一个看门狗定时器的运行使能情况,使能位严格地控制每个看门狗定时器能否运行,每一个看门狗定时器的运行都只有在该寄存器内与之相应的使能位被置位之后才能开始。
寄存器的位数就是看门狗定时器的个数,假设有n个看门狗定时器就对应于n位的寄存器。寄存器的定义如下表所示:
Bit 0 | Bit 1 | …… | Bitn-1 |
上表中,寄存器的每一位都是一个看门狗定时器的运行使能位,且都为高电平有效。此外,所有的看门狗定时器都可以被单独地触发而不受其他看门狗运行状态的影响。如果在复位状态,则该寄存器自动地会被复位为低电平状态,即所有的看门狗定时器都不运行。上述设置看门狗标志位寄存器的方法为:
看门狗标志位寄存器是用来记录具体是哪一个看门狗产生的复位信号的寄存器,以供应用人员发现错误的原因。
看门狗标志位寄存器的复位方式采用的是与其他寄存器都不同的单独复位方式:当CPU向该寄存器发出“写”信号时,该寄存器会自动清零所有的内容以达到复位的目的。而当其他所有寄存器共用的复位信号发生作用时,对该寄存器所存储的内容没有任何影响。这样就保证当某个看门狗定时器发出复位信号并且被看门狗标志位寄存器记录以后,该寄存器的内容不会因为MCU的复位而被擦除。该复位机制需要依靠软件的帮助来实现复位,但在具体实现上依然方便可靠。
看门狗标志位寄存器的结构如下表所示:
…… | Bitn-4 | Bitn-3 | Bitn-2 | Bitn-1 |
上表中,寄存器的每一位都对应一个看门狗定时器的溢出标志位,且都为高电平有效,该寄存器的位数对应于看门狗定时器的个数。该寄存器的内容可以被读出但不能被写入。当一个看门狗定时器计数达到规定值而没有被复位时,它就会向看门狗标志位寄存器发出信号,使其相对应的溢出标志位置为高定平,该位会一直保持直到被用上文所述的方法清零为止。上述改变原MCU的复位方式方法为:
在了解原MCU复位方式的基础上,将由多源看门狗模块产值生的复位信号也加入到整个MCU的复位系统中。
对于多源看门狗定时器的复位方法需要加以解释的是,多源看门狗的每一个看门狗定时器都具有产生复位信号使整个MCU复位的能力。所以对于多源看门狗模块的复位信号应该采用“一热键”模式,避免了系统的竞争,增加了整个多源看门狗模块复位MCU的可靠性。
由多源看门狗产生的复位信号应该被引入到整个MCU的复位模块。为了减少对原MCU源代码的修改,采用简单的逻辑电路将多源看门狗产生的复位信号与原MCU的复位信号“相与”或者“相或”之后,连接到复位模块,由其产生整个MCU统一使用的复位信号。该信号对上文提到的看门狗标志位寄存器无效。
本发明与现有技术相比较,具有以下的突出实质性特点和显著优点:改变了传统看门狗定时器只能发现MCU运行的错误而无法获知MCU错误产生的来源的缺点。它通过多个看门狗定时器以及一个能够在系统复位后依旧保持数据的标志位寄存器,能够在看门狗复位后记录具体是哪一个看门狗产生的复位信号,以方便地查找出MCU运行错误的源头。这为MCU在应用过程中带来了方便。本发明已经在兼容8051指令的MCU上进行了硬件的实现并取得了成功,亦可应用于其他微处理器和微处理器领域。
附图说明:
图1是多源看门狗思想的工作示意图。
图2是频率选择寄存器的分配示意图。
图3是四源看门狗模块结构图。
图4是四源看门狗模块复位MCU结构图。
图5是四源看门狗运行流程图如图。
具体实施方式
本发明的优选实施例结合附图详述如下:
实施例一:参见图1和图5,本微控制器多源看门狗实现方法,其特征在于通过一个嵌入在芯片内部多源看门狗模块,在程序的不同位置设置多个看门狗监视器以跟踪程序的运行,专门的标志位寄存器还在微控制器被复位后记录下产生复位的看门狗的信息,以方便发现错误。
实施例二:本实施例与实施例一相同,特别之处如下所述:
本实施例是应用于MCU的四源看门狗模块,即模块内嵌了4个看门狗定时器。本实施例的出发点是设计一个可以嵌入在芯片系统内部的功能模块,该模块被设计为IP(IntelligentProperty)核的结构以便可以在各类的芯片系统中复用。
四源看门狗模块主要由4个看门狗定时器,控制寄存器组,分频电路,标志位寄存器,复位信号产生模块等部分组成。在本设计中,共使用了7个寄存器,所有的寄存器均采用8位的结构。四源看门狗模嵌入的芯片环境是兼容8051指令的MCU系统,该模块的整体结构图如图3所示。
对于图3中未能够展示的细节做如下的介绍:
1)复位方式:整个模块采用了两种复位方式:除看门狗标志位寄存器以外的所有寄存器都采用与整个芯片系统相同的复位方式,该方式为异步复位方式;看门狗标志位寄存器采用的是独立的同步复位方式,该方式在收获到CPU读取该寄存器的写使能信号后会对该寄存器进行清零;
2)时钟信号:整个模块采用统一的外接时钟,采用整个芯片统一的始终信号即可,每一个看门狗定时器的计数时钟则由频率寄存器和专门的分频电路来决定;
3)计数方式:四个看门狗定时器均采用“统一”的减法计数方式:在每个时钟的上升沿,计数使能信号允许的情况下,进行自动减一运算;
4)频率选择方式:通过对看门狗频率选择寄存器的读写来进行计数频率的配置。在本实施例中为每个看门狗定时器定义了四种可供选择的时钟频率,它们的定义如下(假设bit1 bit0为寄存器中控制位):
A)bit1 bit0=00:看门狗定时器的计数频率为时钟频率的16倍;
B)bit1 bit0=01:看门狗定时器的计数频率为时钟频率的64倍;
C)bit1 bit0=10:看门狗定时器的计数频率为时钟频率的256倍;
D)bit1 bit0=11:看门狗定时器的计数频率为时钟频率的1024倍;
所有的计数频率都是通过模块内专门的分频电路来产生,1024倍的时钟频率是针对64K程序存储器来设计的;
5)计数初值载入方式:4个看门狗定时器都可以通过载入计数初值的方式来设定计数的初值。设定初值时,由程序设定的初值会在时钟的上升沿记录在4个初值寄存器中。当不采用该方法时,定时器会将默认的初值作为计数的初值来使用,本设计中默认的初值是十六进制数FF,该值也是8位减法计数器的最大计数初值;
6)计数器启动方式:本设计中的4个看门狗定时器的启动必须通过专门的看门狗运行控制寄存器来配置,否则所有的看门狗定时器都不能进行计数工作;
7)复位MCU的方式:在单门狗定时器处于计数状态时,当任意一个计数器的值为00时,会立刻触发复位整个MCU的过程,该过程分为两个部分同时进行:
A)记录看门狗定时器的状态:在计数器值归零的时刻,计数器会立即触发看门狗标志位寄存器内相应的标志位使其置位高电平。
B)触发复位信号:该复位信号连接到整个MCU的复位信号上,它由看门狗标志位寄存器与运行使能位共同触发,只有在看门狗标志位寄存器不为零且看门狗处于计数状态下才能被触发,这就使错误触发复位信号的可能性被大大降低了。
需要说明的是,由于在计数器的值等于00的一瞬间就会引发复位,所以实际的计数周期应该是:
计数周期=(计数初值-1)×计数器时钟频率;
对于本实施例中所涉及的寄存器做如下的介绍:
1)四源看门狗频率选择寄存器:
本设计用一个8比特的寄存器分配4个看门狗的频率状态,每个看门狗定时器可以有4种频率选择,具体定义上文已经介绍,该寄存器的结构如下图所示:
T01 | T00 | T11 | T10 | T21 | T20 | T31 | T30 |
T01、T00对应于看门狗定时器0的频率选择控制位,T11、T10则对应于看门狗定时器1的频率选择控制位,看门狗定时器2与看门狗定时器3的情况以此类推。对于每个频率选择控制位的设置情况参看上文的“4)频率选择方式”的介绍。
在默认的情况下,整个寄存器会被赋值为十六进制数00,则4个看门狗会以时钟频率的16倍为计数时钟进行计数。
2)四源看门狗运行控制寄存器:
本实施例用一个8比特的寄存器分配4个看门狗的运行状态,该寄存器的结构如下表所示:
Tr0 | Tr1 | Tr2 | Tr3 | ** | ** | ** | ** |
上表中的Tr0,Tr1,Tr2,Tr3分别对应4个看门狗定时器的的4个运行控制标志位,当任何一位被置位为高电平时,则该为对应的看门狗定时器就从计数初值开始“自减一”的计数。该寄存器的后四位并没有被用到,可供其他模块进行配置。
在默认的情况下,整个寄存器会被赋值为十六进制数00,则4个看门狗都处于不工作的状态。
3)四源看门狗初值寄存器:
本实施例用4个8比特的寄存器为4个看门狗配置计数的初值,每个寄存器的结构如下图所示:
Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
4个寄存器的结构都如上图所示,计数器初值的赋值范围也就是从十六进制数01至FF。若赋值为00,在计数器工作状态下会立即引起看门狗定时器发出信号复位MCU,故没有意义。
在默认的情况下,4个寄存器会被赋值为十六进制数FF,即定时器从最大的初值开始计数。
4)4源看门狗标志位寄存器:
本实施例用一个8比特的寄存器记录4个看门狗复位与否的状态,该寄存器的结构如下表所示:
** | ** | ** | ** | Wdt0_ov | Wdt1_ov | Wdt2_ov | Wdt3_ov |
上表中的wdt0_ov,wdt1_ov,wdt2_ov,wdt3_ov分别代表4个看门狗的溢出标志位。该寄存器的前四位并没有被用到,可供其他模块进行配置。
如前文所介绍的那样,该寄存器不能够被写入数值,4个溢出标志位的置位都是在看门狗定时器自减到00值时由硬件自动触发的。为了保证该寄存器的内容在MCU被整体复位后仍然能够被保存,该寄存器采用单独的复位信号,当该寄存器接受到对它的写使能信号后就进行复位,在复位的情况下,该寄存器的所有内容被清零。
四源看门狗模块在芯片内的嵌入主要涉及到对原有芯片复位系统一些小的改动,配合图4做如下的解释:
复位电路的输入信号为高电平有效,故将外部复位信号与看门狗复位信号(均为高定平有效)两者经过或门连接到复位电路的输入端。复位电路产生的将是整个芯片共用的复位信号。
四源看门狗运行流程图如图5所示:
1)初始化所有的寄存器,清零频率选择寄存器、运行控制寄存器、四个看门狗初值寄存器和看门狗标志位寄存器;
2)设置看门狗标志位寄存器的检查程序,该程序设置在初始化程序的开始部分。在每次MCU被复位后自动查询该复位是由哪种复位方式所引起的,如果是由看门狗复位方式引起的,则启动告警程序告知看门狗已发生作用并且保存发出复位信号的看门狗的信息,然后清零看门狗标志位寄存器。如果是由上电复位引起的则直接初始化看门狗标志位寄存器;
3)根据需要配置看门狗频率选择寄存器的值,一般将所有四个看门狗的运行频率都配置为统一的值;
4)分析整个程序的结构,在关键的位置依次设置4个看门狗定时器。设置时,先对看门狗定时器赋初值,初值的数值需要根据整个程序的运行时间以及3)中的技术频率值计算得来,赋值结束后就对看门狗运行控制寄存器赋值来启动该看门狗定时器。建议,在具体的实施过程中,采用停止看门狗定时器的运行,然后赋值,再启动看门狗定时器的方法来实现赋值;
5)在程序的运行过程中,如果运行正常,则无需采用任何的操作;如果发生看门狗的复位,则根据2)中的描述告警程序会提示工作人员看门狗发生了复位,工作人员读出发生复位的看门狗的信息之后,可以据此判断出发生复位的原因,进行相应的修改。
Claims (6)
1.一种微控制器多源看门狗实现方法。其特征在于通过一个嵌入在芯片内部多源看门狗模块,在程序的不同位置设置多个看门狗监视器以跟踪程序的运行,专门的标志位寄存器还在微控制器被复位后记录下产生复位的看门狗的信息,以方便发现错误,其具体步骤为:
a.设置n个独立的看门狗定时器模块,每个模块包括一个单独的看门狗初值寄存器;
b.设置看门狗频率选择寄存器来配置每一个看门狗的工作频率,以适应不同的应用条件;
c.设置看门狗运行控制寄存器,该寄存器通过控制每一个看门狗的运行使能位来控制其运行情况;
d.设置看门狗标志位寄存器,该寄存器可以在看门狗对微控制器发出复位信号前,记录下发出信号的看门狗监视器的身份信息,以供应用人员读出并找出错误的源头;
e.改变原微控制器的复位方式,将多源看门狗模块的复位信号引入到复位模块,使其可以触发微控制器复位。
2.根据权利要求1所述的微控制器多源看门狗实现方法,其特征在于所述的步骤a中设置n个独立的定时器模块的方法为:
每个模块都是一个独立的定时器模块,所有n个模块的结构完全相同;所有的定时器都采用统一的计数方式,即统一采用“加一”或者“减一”的计数方式;每个定时器模块均采用统一的复位信号,当定时器被复位时会处于一个默认的初值状态;在非复位状态,定时器通过用户的控制按照要求进行“加一”或者“减一”的计数运算;
每个定时器从默认的计数初值开始计数,或者从一个指定的初值开始计数。这需要用户为每一个定时器配置初值,如果用户不配置定时器会采用默认初值;上述设定初值的方法也就是一般看门狗监视器所谓的刷新定时器或者“喂狗”的功能,一旦定时器接受到从CPU发出的控制信号,就可以很方便地对定时器初值寄存器进行赋予初值的操作;
对每一个看门狗定时器而言,如果不能在设定的时间内刷新初值,看门狗就会复位微控制器;这里的时间指的是在看门狗定时器复位微控制器前最长的工作时间,其计算公式如下:
最长的工作时间=计数时钟频率倒数×计数初值。
3.根据权利要求1所述的微控制器多源看门狗实现方法,其特征在于所述的步骤b中设置看门狗频率选择寄存器的方法为:
该寄存器用来设置每一个看门狗定时器的计数时钟的频率,以影响看门狗定时器复位微控制器前最长的工作时间;超过该时间,看门狗就应该认为程序没有正常地运行而刷新微控制器;
为了能够适应不同条件下的计数时间的长度,应该给予用户自由选择的空间,所以应该提供不同的工作频率,具体可视应用的需要来决定。同时考虑到寄存器的结构,一般对于每个看门狗定时器,所设定的可选频率个数应为2n(n=1,2…)个,也就是说每个看门狗定时器所占用的寄存器的位数是n个,以达到充分利用寄存器空间的目的;
对每一个看门狗定时器采用如下的配置方式,假设n=2而且该看门狗定时器占据bit0、bit1两位,则对每一个看门狗定时器选择的频率个数是22,它们的定义是:
1)bit1 bit0=00:看门狗定时器的计数频率为时钟频率的K1倍;
2)bit1 bit0=01:看门狗定时器的计数频率为时钟频率的K2倍;
3)bit1 bit0=10:看门狗定时器的计数频率为时钟频率的K3倍;
4)bit1 bit0=11:看门狗定时器的计数频率为时钟频率的K4倍;
对于K1、K2、K3、K4的选取应根据实际的情况选择,以保证覆盖所有的计数范围;如果在复位状态,则该寄存器所有的内容自动地会被复位为低电平状态,即处于所有看门狗定时器的计数频率为时钟频率的K1倍的状态。
4.根据权利要求1所述的微控制器多源看门狗实现方法,其特征在于所述的步骤c中设置看门狗运行控制寄存器的方法为:
该寄存器用来设置每一个看门狗定时器的运行使能情况,使能位严格地控制每个看门狗定时器能否运行,每一个看门狗定时器的运行都只有在该寄存器内与之相应的使能位被置位之后才能开始;
寄存器的位数就是看门狗定时器的个数,假设有n个看门狗定时器就对应于n位的寄存器。寄存器的定义如下表所示:
上表中,寄存器的每一位都是一个看门狗定时器的运行使能位,且都为高电平有效。此外,所有的看门狗定时器都被单独地触发而不受其他看门狗运行状态的影响;如果在复位状态,则该寄存器自动地会被复位为低电平状态,即所有的看门狗定时器都不运行。
5.根据权利要求1所述的微控制器多源看门狗实现方法,其特征在于所述的步骤d中设置看门狗标志位寄存器的方法为:
看门狗标志位寄存器是用来记录具体是哪一个看门狗产生的复位信号的寄存器,以供应用人员发现错误的原因;
看门狗标志位寄存器的复位方式采用的是与其他寄存器都不同的单独复位方式:当CPU向该寄存器发出“写”信号时,该寄存器会自动清零所有的内容以达到复位的目的;而当其他所有寄存器共用的复位信号发生作用时,对该寄存器所存储的内容没有任何影响;
看门狗标志位寄存器的结构如下表所示:
上表中,寄存器的每一位都对应一个看门狗定时器的溢出标志位,且都为高电平有效,该寄存器的位数对应于看门狗定时器的个数。该寄存器的内容可以被读出但不能被写入;当一个看门狗定时器计数达到规定值而没有被复位时,它就会向看门狗标志位寄存器发出信号,使其相对应的溢出标志位置为高定平,该位会一直保持直到清零为止。
6.根据权利要求1所述的微控制器多源看门狗实现方法,其特征在于所述的步骤e中改变原微控制器的复位方式方法为:
将由多源看门狗模块产值生的复位信号也加入到整个微控制器的复位系统中。
多源看门狗的每一个看门狗定时器都具有产生复位信号使整个微控制器复位的能力,所以对于多源看门狗模块的复位信号应该采用“一热键”模式,避免了系统的竞争,增加了整个多源看门狗模块复位微控制器的可靠性;
由多源看门狗产生的复位信号应该被引入到整个微控制器的复位模块,为了减少对原微控制器源代码的修改,采用简单的逻辑电路将多源看门狗产生的复位信号与原微控制器的复位信号“相与”或者“相或”之后,连接到复位模块,由其产生整个微控制器统一使用的复位信号;该信号对看门狗标志位寄存器无效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101995853A CN101957790B (zh) | 2009-11-26 | 2009-11-26 | 微控制器多源看门狗的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101995853A CN101957790B (zh) | 2009-11-26 | 2009-11-26 | 微控制器多源看门狗的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101957790A true CN101957790A (zh) | 2011-01-26 |
CN101957790B CN101957790B (zh) | 2012-11-07 |
Family
ID=43485129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101995853A Expired - Fee Related CN101957790B (zh) | 2009-11-26 | 2009-11-26 | 微控制器多源看门狗的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101957790B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214124A (zh) * | 2011-06-08 | 2011-10-12 | 深圳市理邦精密仪器股份有限公司 | 一种看门狗复位控制系统 |
CN103226507A (zh) * | 2013-04-28 | 2013-07-31 | 惠州市德赛西威汽车电子有限公司 | 一种嵌入式系统中防止系统崩溃的方法 |
CN103443734A (zh) * | 2011-02-15 | 2013-12-11 | 大陆汽车系统公司 | 硬件复位原因 |
CN103530197A (zh) * | 2013-10-29 | 2014-01-22 | 浙江宇视科技有限公司 | 一种检测及解决Linux系统死锁的方法 |
CN103580941A (zh) * | 2012-08-01 | 2014-02-12 | 研祥智能科技股份有限公司 | 网络看门狗及其实现方法 |
CN104063223A (zh) * | 2014-06-26 | 2014-09-24 | 西安空间无线电技术研究所 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
CN104835215A (zh) * | 2015-05-11 | 2015-08-12 | 上海航盛实业有限公司 | 一种行车记录仪的安全监控系统 |
CN104899110A (zh) * | 2015-06-05 | 2015-09-09 | 宁波三星智能电气有限公司 | 看门狗的设置及喂狗方法 |
CN105527508A (zh) * | 2015-07-10 | 2016-04-27 | 北京中电华大电子设计有限责任公司 | 一种评估智能卡芯片cpu抗干扰能力的测试装置及方法 |
CN105988884A (zh) * | 2014-11-12 | 2016-10-05 | 现代自动车株式会社 | 用于控制看门狗的方法和装置 |
CN108919698A (zh) * | 2018-06-07 | 2018-11-30 | 浙江国自机器人技术有限公司 | 一种实时控制cpu的监控系统、方法及移动机器人 |
CN113806132A (zh) * | 2021-09-22 | 2021-12-17 | 京东方科技集团股份有限公司 | 异常复位的处理方法及装置 |
CN117806880A (zh) * | 2024-02-29 | 2024-04-02 | 中国科学院长春光学精密机械与物理研究所 | 一种存储器双模冗余切换电路 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1323500C (zh) * | 2003-11-05 | 2007-06-27 | 中兴通讯股份有限公司 | 硬件看门狗的功能测试方法及其系统 |
CN100354832C (zh) * | 2005-01-05 | 2007-12-12 | 杭州华三通信技术有限公司 | 一种看门狗电路 |
CN2824125Y (zh) * | 2005-08-11 | 2006-10-04 | 中兴通讯股份有限公司 | 一种看门狗复位电路 |
-
2009
- 2009-11-26 CN CN2009101995853A patent/CN101957790B/zh not_active Expired - Fee Related
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103443734A (zh) * | 2011-02-15 | 2013-12-11 | 大陆汽车系统公司 | 硬件复位原因 |
CN103443734B (zh) * | 2011-02-15 | 2017-06-20 | 大陆汽车系统公司 | 硬件复位原因处理器及其方法 |
CN102214124A (zh) * | 2011-06-08 | 2011-10-12 | 深圳市理邦精密仪器股份有限公司 | 一种看门狗复位控制系统 |
CN102214124B (zh) * | 2011-06-08 | 2013-02-06 | 深圳市理邦精密仪器股份有限公司 | 一种看门狗复位控制系统 |
CN103580941A (zh) * | 2012-08-01 | 2014-02-12 | 研祥智能科技股份有限公司 | 网络看门狗及其实现方法 |
CN103580941B (zh) * | 2012-08-01 | 2018-01-30 | 研祥智能科技股份有限公司 | 网络看门狗及其实现方法 |
CN103226507A (zh) * | 2013-04-28 | 2013-07-31 | 惠州市德赛西威汽车电子有限公司 | 一种嵌入式系统中防止系统崩溃的方法 |
CN103530197A (zh) * | 2013-10-29 | 2014-01-22 | 浙江宇视科技有限公司 | 一种检测及解决Linux系统死锁的方法 |
CN104063223A (zh) * | 2014-06-26 | 2014-09-24 | 西安空间无线电技术研究所 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
CN104063223B (zh) * | 2014-06-26 | 2017-11-28 | 西安空间无线电技术研究所 | 一种fpga实现软件编程器件可控看门狗功能的方法 |
CN105988884A (zh) * | 2014-11-12 | 2016-10-05 | 现代自动车株式会社 | 用于控制看门狗的方法和装置 |
CN105988884B (zh) * | 2014-11-12 | 2020-08-21 | 现代自动车株式会社 | 用于控制看门狗的方法和装置 |
CN104835215A (zh) * | 2015-05-11 | 2015-08-12 | 上海航盛实业有限公司 | 一种行车记录仪的安全监控系统 |
CN104899110A (zh) * | 2015-06-05 | 2015-09-09 | 宁波三星智能电气有限公司 | 看门狗的设置及喂狗方法 |
CN105527508A (zh) * | 2015-07-10 | 2016-04-27 | 北京中电华大电子设计有限责任公司 | 一种评估智能卡芯片cpu抗干扰能力的测试装置及方法 |
CN108919698A (zh) * | 2018-06-07 | 2018-11-30 | 浙江国自机器人技术有限公司 | 一种实时控制cpu的监控系统、方法及移动机器人 |
CN113806132A (zh) * | 2021-09-22 | 2021-12-17 | 京东方科技集团股份有限公司 | 异常复位的处理方法及装置 |
CN113806132B (zh) * | 2021-09-22 | 2023-12-26 | 京东方科技集团股份有限公司 | 异常复位的处理方法及装置 |
CN117806880A (zh) * | 2024-02-29 | 2024-04-02 | 中国科学院长春光学精密机械与物理研究所 | 一种存储器双模冗余切换电路 |
CN117806880B (zh) * | 2024-02-29 | 2024-05-14 | 中国科学院长春光学精密机械与物理研究所 | 一种存储器双模冗余切换电路 |
Also Published As
Publication number | Publication date |
---|---|
CN101957790B (zh) | 2012-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101957790B (zh) | 微控制器多源看门狗的实现方法 | |
CN101625657B (zh) | 监控数据处理设备和概括监控数据 | |
CN101809542B (zh) | 用于监视调试事件的系统和方法 | |
US8943248B2 (en) | Method and system for handling discarded and merged events when monitoring a system bus | |
CN103440216A (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN101344865B (zh) | 一种cpu占用率测量方法及装置 | |
US7752494B2 (en) | Method and system of aligning execution point of duplicate copies of a user program by exchanging information about instructions executed | |
CN101278265A (zh) | 使用用户级控制机制进行剖析 | |
US20120226839A1 (en) | Method and System for Monitoring and Debugging Access to a Bus Slave Using One or More Throughput Counters | |
CN104272271B (zh) | 具有指令跟踪能力的处理器装置 | |
CN102761439A (zh) | Pon接入系统中基于看门狗的异常检测记录装置及方法 | |
CN110515754B (zh) | 神经网络处理器的调试系统及方法 | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
CN100517177C (zh) | 一种组合式复位系统处理方法及装置 | |
CN113190082A (zh) | 三冗余计算机时钟中断检测和同步方法及计算机系统 | |
CN104063223B (zh) | 一种fpga实现软件编程器件可控看门狗功能的方法 | |
CN100511179C (zh) | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 | |
CN103530197A (zh) | 一种检测及解决Linux系统死锁的方法 | |
CN108021495B (zh) | 基于回放的代码调试方法 | |
US9195524B1 (en) | Hardware support for performance analysis | |
TWI825845B (zh) | 收集用於除錯及分析之運行時間資訊 | |
CN110941503A (zh) | 故障处理方法、装置及电子设备 | |
US20240037049A1 (en) | Bus exception handling method and apparatus, electronic device and readable storage medium | |
CN111008133B (zh) | 粗粒度数据流架构执行阵列的调试方法及装置 | |
CN104168150A (zh) | 一种多通道任意定时器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121107 Termination date: 20151126 |