一种实时检测定位硬件复位原因的装置及其方法

文档序号:6559883阅读:159来源:国知局
专利名称:一种实时检测定位硬件复位原因的装置及其方法
技术领域
本发明涉及一种实现识别和检测硬件看门狗溢出复位和检测电压欠 压复位的装置及其方法。该装置及其方法主要应用于嵌入式系统领域。
背景技术
在嵌入式系统中,基本上以嵌入式硬件系统和嵌入式软件系统组成。 嵌入式系统的运行时间是系统稳定性的重要指标,但即使可靠性再高的 嵌入式系统,在实际运行中也会出现一些环境的问题、设计上的缺陷,导 致系统运行中断,复位。嵌入式系统一般属于无人值守的系统,复位就需 要能够提供有效的手段,能够从相关信息中分析出来系统属于那种复位, 进而进一步分析,改进设计。
系统复位的原因多种多样,有软件地址异常复位,无效指令复位、人
工复位、硬件电路异常复位、电压异常复位、WATCHDOG (看门狗,一 般用来实现在系统瘫痪时候,自动恢复的场景)溢出复位等。软件地址异 常复位,无效指令复位属于软件异常复位,在一般的嵌入式系统中,都会 产生相应的异常中断,通过对异常中断的处理,软件比较容易通过输出 相应的信息来区分这两种系统复位。人工复位是可控复位,也比较容易识 别。硬件电路异常复位、电压异常复位、WATCHDOG溢出复位属于硬件 系统产生的复位,软件无法截获,因此对于这种情况很难用软件直接输 出信息来区分是哪种异常复位。
在目前的嵌入式中,对于硬件复位的检测方法是,从硬件设备接出 探头,并接到示波器或者硬件逻辑分析仪上,通过设定信号触发条件, 抓取相应的硬件复位信号来区分是哪种复位。这种方法存在非常大的缺陷, 主要有
1环境条件, 一般在嵌入式系统运行地点没有配置示波器和逻辑分析 仪这些设备,如果配置,则大大提高成本。如果运输,也涉及很多的运输 上的成本。
2时效性,很多异常复位具有强烈的环境和当时运行条件的相关性, 都有强烈的时间特性。如果和示波器和逻辑分析仪则很可能破坏了中这种 特性,无法有效定位问题。由于不具备时效性,因此很多时候需要重现故 障,因此会产生很多这方面的成本。
3本方法主要区分硬件WATCHDOG复位、硬件中断异常多、硬件 其他原因复位。

发明内容
本发明所要解决的技术问题在于提供一种实时检测定位硬件复位原 因的装置及其方法,以解决硬件看门狗溢出复位和欠压硬件复位的检测方 法,用于无人值守嵌入式系统复位的检测问题,特别是为了解决嵌入式系 统硬件复位的检测问题。
为了解决上迷问题,本发明提供了 一种实时检测定位硬件复位原因的 装置,用来识别和检测硬件系统产生的复位的原因,其中包括
一个定时器中断产生装置,其设置中断周期Tt,定时器中断按中断周 期Tt产生中断的时候,对定时器中断计数器A进行计数;
一个看门狗WATCHDOG模块,其设置清除周期Tw、溢出周期T;
一个或多个外部中断接收装置,其在接收到外部中断产生的时候,对 外部中断计数器Ai进行计数;
一个存储器,其用于存储中断数据,包括定时器中断计数器A、外 部中断计数器Ai、中断累计运行时间Mai和当前一次中断运行时间Tai;
其中,所述看门狗WATCHDOG模块按照其清除周期Tw被清除,同 时对存储器中的定时器中断计数器A、外部中断计数器Ai、中断累计运 行时间Mai做清零处理;当设备复位重新启动时,从存储器中读取当前的
定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai,确 定复位原因,同时对定时器中断计数器A、外部中断计数器Ai和中断累 计运行时间Mai做清零处理。
进一步地,本发明所述的装置,其中,所述看门狗WATCHDOG模 块,其设置清除周期Tw,进一步设置为中断周期的IO倍以上;所述存储 器,为非易失性存储器,可以为高端保留内存。
进一步地,本发明所述的装置,其中,所述外部中断接收装置,其在 接收到外部中断产生的时候,进一步计算外部中断计数器此次中断需要的 中断运行时间Tai,以及计算原中断累计运行时间与此次中断需要的中断 运行时间的和,为当前中断累计运行时间Mai=Mai+Tai。
进一步地,本发明所述的装置,其中,所述当i殳备复位重新启动时, 如果当前定时器中断计数器A的值乘以中断周期Tt,等于看门狗 WATCHDOG溢出周期T时,则此次复位是看门狗WATCHDOG引起的 复位;如果当前定时器中断计数器A的值乘以中断周期Tt,小于,溢出 周期T减去中断周期Tt时,则是由于其他硬件原因导致的自复位;如果 是看门狗WATCHDOG溢出导致的复位,根据中断累计运行时间Mai,则 可以判断是否是由于哪个中断太多的原因导致中断溢出。
为了解决上述问题,本发明还提供了 一种实时检测定位硬件复位原因 的方法,用来识别和检测硬件系统产生的复位的原因,其中包括如下步骤
当定时器中断产生装置按中断周期Tt产生中断的时候,对定时器中 断计数器A进行计数;
看门狗WATCHDOG模块按照其清除周期Tw被清除,同时对存储器 中的定时器中断计数器A、外部中断计数器Ai、中断累计运行时间Mai 做清零处理;
当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器 进行计数Ai;
当设备复位重新启动时,从存储器中读取当前的定时器中断计数器 A、外部中断计数器Ai和中断累计运行时间Mai,确定复位原因,同时对
定时器中断计数器A、外部中断计数器Ai和中断累计运行时间Mai做清 零处理。
进一步地,本发明所述的方法,其中,所迷看门狗WATCHDOG模 块按照其清除周期Tw被清除,进一步清除周期Tw是中断周期的10倍以 上。
进一步地,本发明所述的方法,其中,所述当外部中断接收装置接收 到外部中断产生的时候,进一步包括计算外部中断计数器此次中断需要 的中断运行时间Tai,以及计算原中断累计运行时间与此次中断需要的中 断运行时间的和,为当前中断累计运行时间Mai=Mai+Tai。
进一步地,本发明所述的方法,其中,所述当设备复位重新启动时, 从存储器中读取当前的定时器中断计数器、其他中断计数器和中断累计运 行时间,确定复位原因,进一步包括
如果当前定时器中断计数器A的值乘以中断周期Tt,等于看门狗 WATCHDOG溢出周期时,则此次复位是看门狗WATCHDOG引起的复 位;如果当前定时器中断计数器A的值乘以中断周期Tt,小于,溢出周 期T减去中断周期Tt时,则是由于其他硬件原因导致的自复位;如果是 看门狗WATCHDOG溢出导致的复位,根据中断累计运行时间Mai,则可 以判断是否是由于哪个中断太多的原因导致中断溢出。
根据本发明所述的方法,与现有技术相比,具有能够准确测试看门狗 WATCHDOG溢出复位,而且方便灵活,提高判断准确率,减少误差;同 时能够实时对看门狗导致的硬件复位,并且对中断导致的看门狗 WATCHDOG溢出复位有较准确地测试定位;能够实时对其他原因导致的 硬件复位,如欠压等,有一定的测试定位作用。
附困说明


图1为本发明所迷装置的实施例的配置示意图; 图2为本发明所述方法的实施例的方法流程图。
具体实施例方式
下面对本发明所述的装置及其方法作详细的说明。
如图1所示,3G系统有多个嵌入式系统组成,这里以其中一个单板 为例说明。实施例中的非易失性存储区可以直接使用在单板上预留一段内 存,这段内部一般放在高端,称为高端保留内存104。这部分内存不被其 他软件使用,在系统复位的时候,这部分内存不被清除。
WATCHDOG模块103是用CPU内部实现的超时产生硬复位模块, 其中设置溢出周期T、清除周期Tw。
定时器中断产生装置101可以直接使用操作系统使用调度定时器, 其中设置中断周期Tt。
外部中断产生装置102根据实际单板设计情况而定,图中仅用一个外 部中断表示。CPU和RAM表示嵌入式系统105。
实施例中所述的方法如下
第一步在定时器中断产生装置101按中断周期Tt产生中断的时候, 对定时器中断计数器A进行计数。
第二步按照清除周期Tw对WATCHDOG模块103进行清除,同时 对定时器中断计数器A,外部中断计数器Ai,中断累计运行时间Mai做清 0处理。
第三步在外部中断产生装置102产生中断的时候,对外部中断计数 器Ai进行计数。并计算外部中断计数器Ai此次中断需要的中断运行时间 Tai的值,以及计算当前中断累计运行时间Mai的值;当前中断累计运行 时间Mai的值等于原中断累计运行时间Mai与此次中断需要的中断运行 时间Tai的和,Mai=Mai+Tai 。
第四步设备复位重新启动,从高端保留内存中读取当前定时器中断 计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值。
第五步把读取当前定时器中断计数器A、当前外部中断计数器Ai
和当前中断累计运行时间Mai的值输出到显示设备上,同时对定时器中断 计数器A、外部中断计数器Ai和中断累计运行时间Mai做清0处理。
第六步分析如果当前定时器中断计数器A的值乘以中断周期Tt, 等于WATCHDOG模块103的溢出周期T (误差为一个Tt)时,则此次 复位是WATCHDOG模块103引起的复位;如果当前定时器中断计数器A 的值乘以中断周期Tt,小于,溢出周期T减去中断周期Tt时,则是由于 其他硬件原因导致的自复位,如欠压等。如果是WATCHDOG模块103溢 出导致的复位,则可以4艮据当前中断累计运行时间Mai的值,判断是否是 由于哪个中断太多的原因导致中断溢出(Mai至少大于A,Tt的85%)。
此外,1、本发明所述实施例的清除周期Tw至少是中断周期Tt的10 倍以上,以提高判断准确率,减少误差;2、 Mai每次纪录的值中包括当 前一个Tai,并且可以累计,因此提高Tai可以提高中断处理时间的准 确度;3、上述方法的条件是中断不能被关闭。
下面结合图1的配置示意图和具体实施例,对所述发明的装置及其方 法作进一步详细的说明。
3G系统有多个嵌入式系统组成,图1中所示,以其中一个单板为例 说明;非易失性存储区直接使用在单板上预留一段内存,这段内部一般放 在高端,称为高端保留内存104。这部分内存不被其他软件使用,在系统 复位的时候,这部分内存不被清除。
WATCHDOG模块103是用CPU内部实现的超时产生硬复位模块, 其溢出周期T为1.6s、清除周期Tw为500ms。
定时器中断产生装置101可以直接使用操作系统使用调度定时器, 其中断周期Tt为10ms。
外部中断产生装置102根据实际单板设计情况而定,本实例仅用一个 外部中断表示。CPU和RAM表示嵌入式系统105。
如图2所示,本实施例所述的方法,包括如下步骤
步骤201:当定时器中断产生装置按中断周期Tt每10ms产生中断的
时候,对定时器中断计数器A加1计数。
步骤202:按照清除周期Tw的500ms对WATCHDOG模块进行清除, 同时对定时器中断计数器A,外部中断计数器Ai,中断累计运行时间Mai 做清0处理。
步骤203:在外部中断产生装置产生中断的时候,对外部中断计数器 Ai进行加l计数。并计算外部中断计数器Ai此次中断需要的中断运行时 间Tai的值,以及计算当前中断累计运行时间Mai的值;当前中断累计运 行时间Mai的值等于原中断累计运行时间Mai与此次中断需要的中断运 行时间Tai的和,Mai=Mai+Tai。
步骤204:设备复位重新启动,从高端保留内存中读取当前定时器中 断计数器A、当前外部中断计数器Ai和当前中断累计运行时间Mai的值。
步骤205:把读取当前定时器中断计数器A、当前外部中断计数器Ai 和当前中断累计运行时间Mai的值输出到显示设备上,同时对定时器中断 计数器A、外部中断计数器Ai和中断累计运行时间Mai做清0处理。
步骤206:分析如果当前定时器中断计数器A的值乘以中断周期 Tt的10ms,等于WATCHDOG模块的溢出周期T的1.6s(误差为10ms) 时,则此次复位是WATCHDOG模块引起的复位;如果当前定时器中断计 数器A的值乘以中断周期Tt的10ms,小于,溢出周期T的1.6s减去中 断周期Tt的10ms时,则是由于其他硬件原因导致的自复位,如欠压等。 如果是WATCHDOG模块溢出导致的复位,则可以根据当前中断累计运 行时间Mai的值,判断是否是由于哪个中断太多的原因导致中断溢出。
尽管参照实施例对所公开的涉及提供一种实时检测定位硬件复位原 因的装置及其方法进行了特别描述,作为本领域技术人员将能理解,在不 偏离本发明的范围和精神的情况下,可以对它进行形式和细节的种种显而 易见的修改。因此,以上描述的实施例只是说明性的而不是限制性的,在 不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的范 围之内。
权利要求
1、一种实时检测定位硬件复位原因的装置,用来识别和检测硬件系统产生的复位的原因,其特征在于,包括一个定时器中断产生装置,其设置中断周期,定时器中断按中断周期产生中断的时候,对定时器中断计数器进行计数;一个看门狗模块,其设置清除周期、溢出周期;一个或多个外部中断接收装置,其在接收到外部中断产生的时候,对外部中断计数器进行计数;一个存储器,其用于存储中断数据,包括定时器中断计数器、外部中断计数器、中断累计运行时间和当前一次中断运行时间;其中,所述看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计数器、外部中断计数器、中断累计运行时间做清零处理;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器、外部中断计数器和中断累计运行时间,确定复位原因,同时对定时器中断计数器、外部中断计数器和中断累计运行时间做清零处理。
2、 如权利要求l所述的装置,其特征在于,所述看门狗模块,其清 除周期设置为中断周期的IO倍以上。
3、 如权利要求1所述的装置,其特征在于,所述存储器,为非易失 性存储器。
4、 如权利要求3所述的装置,其特征在于,所述存储器,为高端保 留内存。
5、 如权利要求l所述的装置,其特征在于,所述外部中断接收装置, 其在接收到外部中断产生的时候,进一步计算外部中断计数器此次中断需 要的中断运行时间,以及计算原中断累计运行时间与此次中断需要的中 断运行时间的和,为当前中断累计运行时间。
6、 如权利要求1所述的装置,其特征在于,所述设备复位重新启动时,如果当前定时器中断计数器的值乘以中断周期,等于看门狗溢出周期时,则此次复位是看门狗引起的复位;如果当前定时器中断计数器的值乘 以中断周期,小于,溢出周期减去中断周期时,则是由于其他硬件原因导 致的自复位;如果是看门狗溢出导致的复位,根据中断累计运行时间,则 可以判断是否是由于哪个中断太多的原因导致中断溢出。
7、 一种实时检测定位硬件复位原因的方法,用来识别和检测硬件系 统产生的复位的原因,其特征在于,包括如下步骤当定时器中断产生装置按中断周期产生中断的时候,对定时器中断计 数器进行计数;看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计 数器、外部中断计数器、中断累计运行时间做清零处理;当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器 进行计数;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器、 外部中断计数器和中断累计运行时间,确定复位原因,同时对定时器中断 计数器、外部中断计数器和中断累计运行时间做清零处理。
8、 如权利要求7所述的方法,其特征在于,所述看门狗模块按照其 清除周期被清除,进一步清除周期是中断周期的IO倍以上。
9、 如权利要求7所述的方法,其特征在于,所述当外部中断接收装 置接收到外部中断产生的时候,进一步包括计算外部中断计数器此次中 断需要的中断运行时间,以及计算原中断累计运行时间与此次中断需要 的中断运行时间的和,为当前中断累计运行时间。
10、 如权利要求7所述的方法,其特征在于,所述当设备复位重新启 动时,从存储器中读取当前的定时器中断计数器、其他中断计数器和中断 累计运行时间,确定复位原因,进一步包括如果当前定时器中断计数器的值乘以中断周期,等于看门狗溢出周期 时,则此次复位是看门狗引起的复位;如果当前定时器中断计数器的值乘以中断周期,小于,溢出周期减去中断周期时,则是由于其他硬件原因导致的自复位;如果是看门狗溢出导致的复位,根据中断累计运行时间,则 可以判断是否是由于哪个中断太多的原因导致中断溢出。
全文摘要
本发明公开了一种实时检测定位硬件复位原因的装置及其方法。该方法包括步骤当定时器中断产生装置按中断周期产生中断的时候,对定时器中断计数器进行计数;看门狗模块按照其清除周期被清除,同时对存储器中的定时器中断计数器、外部中断计数器、中断累计运行时间做清零处理;当外部中断接收装置接收到外部中断产生的时候,对外部中断计数器进行计数;当设备复位重新启动时,从存储器中读取当前的定时器中断计数器、外部中断计数器和中断累计运行时间,然后输出,确定复位原因,同时对定时器中断计数器、外部中断计数器和中断累计运行时间做清零处理。本方法主要用来识别和检测硬件系统产生的复位。
文档编号G06F11/00GK101101565SQ20061009872
公开日2008年1月9日 申请日期2006年7月6日 优先权日2006年7月6日
发明者傅仁武, 吴安军, 陈诗军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1