第3版-基于CPLD的看门狗模块设计及实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CPLD的智能看门狗设计与实现Referance to the design and relization of CPLD intellective watchdog

邹国民

Zou Guomin

(江西联创通信有限公司,江西南昌330096)

Jiangxi Lian Chuang Communication Corporation,Jiangxi Nanchang 330096)

摘要:智能看门狗是基于CPLD技术,使用VHDL语言实现的,具有功能灵活可变、参数设置方便、使用简单快捷等优点。由于CPLD具有可反复擦写/编程特性,为看门狗

的设计和调试提供方便。

关键词:智能看门狗;CPLD;VHDL

Abstract:Intellective watchdog is relized by VHDL language and bases on CPLD technology which has overriding advantages of flexible and variable function ,simple and dirrect convenient parameter setting.it is more convenient to design and debug the intellective dog with the specificity of reversal erasing and programming.

Keywords: Intelligence watchdog;CPLD;VHDL

1概述

1.1特种行业嵌入式产品设计看门狗的重要性

在煤炭、石油和化工等行业,运行着各类嵌入式通信产品。为保障生产活动平稳有序开展,要求嵌入式产品具备极高的可靠性,在持续不断电情况下,产品能够长期稳定运行。尤其在煤矿井下,产品可靠性显得尤为关键,当井下发生事故时,如因通信产品无法正常工作导致事故抢险不及时,将产生严重后果。

嵌入式系统经过几十年的发展,CPU运行速度越来越快,内存、闪存空间越来越多、硬件平台越来越复杂,软件代码越来越庞大。根据可靠性建模理论分析,产品的可靠性与产品复杂程度关系成反比,产品越复杂,可靠性系数越低;

为了克服复杂嵌入式产品所带来的可靠性问题,防止嵌入式产品主CPU因无法正常运

行导致通信中断等问题,嵌入式产品设计时应采用看门狗机制。

所谓看门狗机制是指:系统设计中通过软件或硬件方式在一定的周期内监控系统的运行状况。如果在规定时间内没有收到来自系统的触发信号,则系统会强制复位,以保证系统在受到干扰时仍然能够维持正常的工作状态。

1.2通用看门狗使用时存在的不足

通用看门狗大致分为两种,第一种是CPU内置看门狗,第二种是外置看门狗。内置看门狗使用时可能存在工作不可靠问题,外置看门存在参数设置不灵活、使用步骤繁杂和无法设置多个时间周期等问题。

2通用看门狗弊端详细分析

2.1CPU内置看门狗弊端

主流的处理器(如POWERPC 、ARM等)均自带看门狗模块,如果使用得当,能在系统软件崩溃时恢复运行。但也存在系统崩溃时看门狗不起作用的例外情况,如系统硬件CPU 产生了一个严重错误,CPU进入了异常模式,造成看门狗失效,系统无法自行恢复运行,此时只有重新上电系统才能正常启动。假设这些嵌入式产品安装在野外或煤矿井下等无人值守之地,会造成长时间通信中断故障,给日常生产调度、事故抢险等活动带来不利影响。

2.2外置看门狗芯片不足

外置看门狗芯片是器件厂商根据嵌入式系统通用要求设计的一款通用芯片,芯片种类繁多,按编程方式分:有引脚编程方式和电容编程方式两种;按启动延时分为:有普通启动延时和长时间启动延时两种;按喂狗检测方式分:有单向检测方式和窗口检测方式两种。下面以引脚编程式看门狗为例简单介绍看门狗的工作过程。

引脚编程式看门狗芯片外部设有编程引脚,CPU通过控制编程引脚设置看门狗基本参数:喂狗周期、启动延时时长和关闭看门狗等。下面详细分析下看门狗工作流程:

图 1 看门狗工作流程

看门狗工作流程如图1所示,工作流程分为4个阶段。

a)第一阶段:bootrom启动阶段

该阶段bootrom程序通过CPU的GPIO将WDI设置为高电平,然后再设置启动延迟时长,由于复杂嵌入式bootrom 完成的任务较多,启动时间较长,一般设置启动延迟时长大于60s。

b)第二阶段:bootrom结束时刻

该阶段bootrom程序运行结束,系统硬件资源即将由操作系统接管。此时应设置喂狗周期。喂狗周期间隔时间与系统负荷有关,任务数量较多,喂狗周期间隔时间越长。一般设置喂狗周期间隔时间为100ms~5s,如喂狗周期太短,将无形中增加CPU 工作负荷,浪费CPU 资源。如周期太长,故障出现时将无法及时恢复系统,延长系统中断时间。

c)第三阶段:操作系统启动后,用户程序运行阶段

该阶段操作系统启动成功,用户程序开始喂狗。看门狗实时监控用户程序喂狗情况,如果喂狗间隔超过设定的喂狗周期,看门狗WDO引脚输出低电平信号,提示CPU 的喂狗信号异常。

d)第四阶段:复位系统

如第三阶段CPU 运用程序喂狗失败,看门狗则复位系统,系统又开始新一轮循环运行。

上述四个阶段中,看门狗运行于CPU配合较紧密,CPU在不同的运行阶段均需要参与看门狗设置或激活工作,使用较为繁琐。另外,看门狗启动延迟时长可设范围较短,一般不超过180s,而现今嵌入式系统软件比较庞大,量产时Flash编程的时间可能会超过180s,在

此情况下,导致CPU长时间没有喂狗产生系统复位引起Flash编程异常,给产品生产、维

护和升级带来不利影响。

3智能看门狗设计详述

智能看门狗可以较好的解决上述问题,智能看门狗是基于CPLD技术及VHDL语言实现,其具有功能灵活可变、参数设置方便、使用简单快捷等优点。由于CPLD具有可反复擦

写/编程特性,为看门狗的设计/调试提供极大方便。

3.1智能看门狗的工作流程

智能看门狗工作流程如图2所示。

N

图 2 智能看门狗工作流程

a)第一阶段:上电阶段主要步骤如下

1)在上电阶段,看门狗不断监测CPU是否使能看门狗开关,如果没有使能,进入步骤2,如果看门狗已使能则进入第二阶段。

2)看门狗判断系统是否处于初次上电状态,如果系统是处于初次上电状态,则进入步骤3;否则进入步骤4。

3)看门狗判断上电时间是否大于T_start,如果上电时间小于T_start则进入步骤1,如果上电时间大于T_start,说明系统CPU上电后长时间没有使能看门狗,

CPU工作异常,看门狗使系统进入复位状态;T_start是系统初次上电时至CPU

相关文档
最新文档