网站首页  词典首页

请输入您要查询的论文:

 

标题 基于9263的嵌入式测控系统看门狗技术研究
范文 罗丹++王会燃



摘要摘要:在基于AT91SAM9263开发板的嵌入式测控系统中,系统运行时,由于内外各种干扰,可能造成软件的异常跳转,从而形成非设计的软件跑飞,功能失效。为了解决这类问题,提高嵌入式测控系统抗干扰能力,在对具体实例进行原因分析后,对9263软件看门狗进行了设计与实现。在系统发生错误时,通过看门狗对系统复位。实验验证表明,该方法能大大提高系统的可靠性,最大限度地降低由于干扰问题带来的系统异常。
关键词关键词:嵌入式测控系统;AT91SAM9263;跑飞;看门狗;异常
DOIDOI:10.11907/rjdk.151943
中图分类号:TP319
文献标识码:A文章编号文章编号:16727800(2015)011009703
基金项目基金项目:
作者简介作者简介:罗丹(1991-),女,陕西西安人,西安工程大学计算机科学学院硕士研究生,研究方向为计算机网络技术、嵌入式系统;王会燃(1959-),男,陕西华县人,博士,西安工程大学计算机科学学院教授,研究方向为计算机网络技术、嵌入式系统。
0引言
为了克服因电磁干扰引起程序跑飞而死机的故障, 一般设置硬件看门狗定时器(WDT),但硬件WDT常有不足之处, 它的时间常数需要合理选择。太短会使程序不能正常执行, 太长则系统不能及时恢复, 另外硬件WDT会妨碍软件的开发调试。为了弥补硬件WDT的不足,本文研究实现了软件WDT功能,它能监视程序是否跑飞,跑飞时能自动使系统复位。
由于嵌入式测控系统的工作偶尔会受到来自外界电磁场的干扰,造成程序跑飞而陷入死循环,程序的正常运行被打断,使整个系统陷入停滞状态。所以,出于对测控系统运行状态实时监测的考虑,以及对系统可靠性的保障,本文对看门狗进行研究。
1嵌入式系统可靠性
1.1嵌入式系统概述
嵌入式系统定义为:以应用为中心,以计算机技术为
基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
如计算机系统一样,嵌入式系统也是硬件和软件两大系统结合,相辅相成[1]。嵌入式系统硬件组成如图1所示。
1.2嵌入式系统可靠性概述
自20世纪80年代以来,可靠性研究向着更加深入、更加广泛的方向发展。可靠性研究包含两个方面:一部分科研人员专门从事可靠性理论研究,他们从数学理论出发,研究一系列的可靠性理论问题;另一部分科研人员则专门从事可靠性工程研究,研究装备或系统的可靠性在工程上的实现。
目前,国外在可靠性、可维修性及保障性方面进行了全面、综合性的研究,取得了许多新成果。国内有关可靠性方面的研究起步于20世纪60年代,但发展非常缓慢,没有引起足够的重视。从80年代开始,有关可靠性的研究及应用得到了迅速发展,各个应用领域均投入大量人力和物力。如今,可靠性、可维修性正处于积极研究阶段,工程技术人员和工科院校的毕业生都必须掌握有关可靠性的基础知识[1]。
2实验案例分析
2.1实验背景
本文研究内容来自“某大型发动机特种便携式测控仪项目”,在项目基本功能均已实现的基础上,研究基于嵌入式芯片AT91SAM9263开发板的看门狗技术,并采用软件的方法实现看门狗,最终使该嵌入式便携设备能够更加可靠稳定运行。
2.2AT91SAM9263看门狗简介
2.2.1概述
看门狗,又叫Watchdog timer(简称WDT),从本质上来说是一个定时器电路,一般有一个输入和一个输出,其中的输入叫做喂狗,输出一般连接到另外一个复位端。WDT的基本工作原理是:在整个系统运行后启动看门狗计数器,此时看门狗就开始自动计时,如果到了一定时间还不去给它清零,看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。看门狗原理如图2所示。
2.2.2AT91SAM9263看门狗功能解析
如果用户程序进入死锁状态,看门狗定时器可以防止系统锁定(lock-up)。看门狗由VDDCORE 供电。当处理器复位时将加载初始值。看门狗围绕一个12 位递减计数器构造,此计数器用定义在模式寄存器(WDT_MR)的WV 域中的值装载。看门狗定时器用慢时钟除以128作为时钟,最大看门狗周期为16 s(用一个典型的32.768KHz的慢时钟)。处理器复位后,WV的值为0xFFF,相当于用外部复位产生使能(一个备份复位后,WDRSTEN域为1)的最大值。这就意味着看门狗复位后缺省就运行,例如上电复位。如果用户不想用它就必须禁用它(通过置位WDT_MR中的WDDIS 位),或必须重编程来满足看门狗周期的应用需求。看门狗模式寄存器(WDT_MR)仅可被写一次,仅能用一个处理器复位。写WDT_MR 寄存器将用新编程的模式参数重新装载定时器。
2.3AT91SAM9263看门狗应用
2.3.19263看门狗工作程序
普通操作中,用户通过一定时间间隔向控制寄存器的WDRSTT位写1 ,在定时器下溢产生前重新装载看门狗,看门狗计数器立即从WDT_MR 重装载并重启,慢时钟128 分频器被复位和重启,WDT_CR 寄存器被写保护。
如果没有适当的硬编码密钥(hard-coded key),写WDT_CR则无效。如果产生一个下溢, WDRSTEN位在模式寄存器被置位,则复位控制器的“dt_fault”信号被激活。此外,WDUNF位在看门狗状态寄存器(WDT_SR)中被置位。
为阻止软件死锁时连续触发看门狗,当看门狗计数器在0和WDD 间的窗口时,看门狗必须重装载。
当看门狗计数器在WDV和WDD间任何重启尝试都导致看门狗错误,即看门狗在无效状态时,WDERR位在WDT_SR中刷新,直到复位控制器的dt_fault”信号有效。注意此功能部件可以通过编程一个大于或等于WDV 值的WDD 值来禁用。
在这样的配置中,重启看门狗定时器在整个[0;WDV]范围内是允许的并且不会出错,这是复位后的缺省配置(WDD和WDV值相等)。
如果WDFIEN 位在模式寄存器中置位,状态位WDUNF(看门狗下溢)和WDERR(看门狗错误)触发一个中断。如果WDRSTEN 位置位,就像已在复位控制器编程器Datasheet中所解释的那样,则“dt_fault”信号在复位控制器导致看门狗复位。此情况下,处理器和看门狗定时器被复位,WDERR和WDUNF标志位被复位。
如果复位发生或WDT_SR已读,状态位被复位,中断被清零,并且到复位控制器的“dt_fault”信号无效。
2.3.2写WDT_MR 重装载和重启递减计数器
当处理器在调试状态或空闲模式,计数器可能被停止,这取决于WDT_MR中的WDIDLEHLT和WDDBGHLR位的编程值。
9263看门狗工作行为如图3所示。
软件看门狗特性[2]:① 本身独立工作,基本上不依赖CPU;② CPU 在一个固定的时间间隔内和系统打一次交道(喂一次狗) ,以表明系统目前工作正常;③ 当CPU陷入死循环后,能及时发觉并使系统复位。
软件看门狗实现步骤如下:① 设置WDV固定装载值;② 设置WDT_CR寄存器,并使能看门狗;③ 通过向WDDIS置0启动看门狗;④ 看门狗下溢之前再次喂狗以防复位/中断;⑤ 可以检查WDUNF、WDERR来确认看门狗是否产生复位条件。
初始化看门狗:
Void WDTInit( void)
{
WDV = 0x10000;
WDDIS = 0;
WdtFeed( ) ;
}
喂狗操作:
void RstWdt (void)
{
IRQDisable( ) ;
WDRETT=1;
...
IRQEnable( ) ;
}
2.3.3一种双循环监测的看门狗软件
看门狗可以通过硬件与软件来实现。前者是通过硬件来监控主程序运行,要在定时时间到来之前对定时器复位。如果出现死循环,那么定时时间到时后就使操作系统复位。监控定时器Watchdog硬件实现方案可以由定时/计数器及其与CPU之间适当的输入/输出接口电路构成。
而软件看门狗是利用嵌入式系统内闲置的定时器/计数器单元作为看门狗,在系统程序中适当地插入监控指令即喂狗。当程序运行出现异常或进入死循环时,利用软件将程序计数器PC赋予初始值,强制性地使程序重新开始运行。
为了尽量克服软硬件看门狗的缺点,本文提出一种双循环监测的软件看门狗,其基本思路是: 设T0中断为高级中断,在主程序中对T0中断服务程序进行监视;在T1中断服务程序中对主程序进行监视;T0中断监视T1中断。当系统受到干扰后,主程序可能发生死循环,而中断服务程序也可能陷入死循环或因中断方式的破坏而关闭中断。主程序的死循环可由T1中断服务程序监视;T0中断的故障关闭可由主程序监视;T1中断服务程序的死循环和故障关闭可由T0的中断服务程序监视。
由于采用了多重软件监测方法,因而大大提高了系统运行的可靠性。但必须注意,若T0中断服务程序因干扰而陷入死循环,应用主程序和T1中断服务程序则无法检测出来。
3结语
看门狗(Watchdog)技术的应用使计算机控制系统对外界干扰由被动防御变为主动防御,抗干扰能力大大提高,系统可靠性也极大增强。但是要提高系统的可靠性仅仅依赖看门狗是不够的,如果干扰发生在程序读写数据时,即使看门狗恢复运行,计算机系统也只是在错误的数据上运行。还有的干扰是因电路硬件损坏引起的,无疑需要辅以其它抗干扰措施才可实现系统的可靠运行。看门狗电路是提高系统可靠性的一种简单、廉价方案。
参考文献参考文献:
[1]李伯成.嵌入式系统可靠性设计[M].北京:电子工业出版社,2006.
[2]吴学辉.嵌入式操作系统中的看门狗[J].电脑开发与应用,2009(7):4043.
[3]刘生建.看门狗Watchdog在计算机控制系统抗干扰中的应用[J].机电工程技术,2006,35(2):9091.
[4]王彬,李文新,李得天,等.通过看门狗软件设计提高抗干扰能力的方法[J]. 计算机技术与发展,2012,22(10):188190.
责任编辑(责任编辑:杜能钢)
随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 6:52:19