历史上的今天
返回首页

历史上的今天

今天是:2025年03月04日(星期二)

正在发生

2018年03月04日 | 看门狗的作用与选择分析

2018-03-04 来源:eefocus

看门狗的作用:看门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗以保证所选择的定时溢出归零,使处理器重新启动。

 

软件的可靠性一直是一个关键问题。任何使用软件的人都可能会经历计算机死机或程序跑飞的问题,这种情况在嵌入式系统中也同样存在。由于单片机的抗干扰能力有限,在工业现场的仪器仪表中,常会由于电压不稳、电弧干扰等造成死机。在水表、电表等无人看守的情况下,也会因系统遭受干扰而无法重启。为了保证系统在干扰后能自动恢复正常,看门狗定时器(Watchdog Timer)的利用是很有价值的。

看门狗问题及相关实验

现今市面上流行的一些单片机,多嵌有内部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,MICroChip的PIC列,Atmel的AT89SXX系列和HoLTEk公司的Htxxx系列。但是这些内部看门狗在工作时,多存在一定的误差。一些工程师在设计的过程中,由于忽略了这一点,导致系统出现异常。MSP430系列单片机是美国德州仪器公司(TI)近几年开发的新一代单片机,该系列是一款16位、具有精简指令集、超低功耗的全新概念混合型单片机。在众多单片机系列中,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为一颗耀眼的新星。其内部自带看门狗及复位电路,理论上如果程序跑飞,可用看门狗将其复位。但在实际使用过程中,发现看门狗的作用并非万无一失,以下实验证明了这一点。实验电路如图1所示。

单片机内置看门狗实验电路

单片机内置看门狗实验电路

试验程序清单:
#include
void main(void){
p1dir l=0x0f; //设置p1.2-.p1.0为输出
for(;;){
volatile unsigned int i;
wdtctl=wdtpw+wdtcncl;
//复位wdt
piout==0x0t;
i=5000;
do(i–)
while(i!=0);
}}

上述实验启动后,如果程序正常运行,LED会闪烁。缺省时,MSP430的看门狗是允许状态,所运行的程序会不断地访问看门狗。理论上,这个系统是不会发生启动失败的,因为即使启动失败,看门狗也应该在数百毫秒内启动,复位整个系统。基于这种思想,对单片机的复位进行测试。K2断开,用K1连续产生。Reset信号,测试看门狗使系统重启的成功率。K2闭合,则reset端高电平,理论上K1不能有效产生复位脉冲,观察看门狗是否起作用。

实验结果与分析

实验结果如下:K2断开,连续开关K1,上电重启系统,平均155次失败1次(LED不闪),即看门狗失效概率0.6%;K2闭合,连续开关K1,平均18次失败1次(LED不闪),且一旦失败,将连续失败下去,看门狗无效率占到了约5.5%。另外,当采用同样具有内置看门狗的其他系列单片机替代实验中的MSP430,启动程序段作相应修改时,实验结果仍大致相同,这说明具有内置看门狗的单片机面临的问题是相同的。经分析可能有如下原因:

①由于看门狗的时钟不独立,计数时钟与系统为同一分频链路,因此看门狗不能在系统出现问题时有效运作。

②由于时钟可用软件设置,启动失败时,开机时钟可能处于空档,没有时钟看门狗不能生效。

③有些看门狗需要用软件设置或启动,因此启动失败后,初始化程序没有激活,CPU可能跳转到随机代码,使看门狗被禁止。这样的看门狗是需要有可靠的上电复位作保证的,因此,从理论上讲,原设计存在着不合理性。基于上述分析,采用片外看门狗专用芯片TPS3823由独立的分频振荡电路提供计数脉冲。实验电路如图2所示。

外置看门狗专用芯片TPS3823应用实验电路

外置看门狗专用芯片TPS3823应用实验电路

上述电路中,TPS3823输出定时溢出信号给Reset端。程序段中,CPU要不断地通过I/O口输出喂狗信号,使看门狗计数器清零。在此电路中重复上述试验中K1、K2的相同动作,系统重启成功率达到100%。

未来的内置看门狗必须有独立可靠的时钟。系统上电后,看门狗即为允许状态,无需软件设置,它只能被外部硬件跳线或内部熔丝(fuse)所禁止。目前,如果要求设计可靠性较高的嵌入式系统,外置看门狗是必须考虑的。内置看门狗的另一问题是系统复位后,程序应判断是由Reset端正常上电复位,还是程序跑飞看门狗所致,由此确定现场数据是否应该保留。这也是在看门狗应用中所应考虑的。


推荐阅读

史海拾趣

ABB Group公司的发展小趣事

ABB Group是一家全球性的工程技术公司,提供电力和自动化技术解决方案。以下是该公司发展的五个相关故事:

  1. 公司成立和早期发展: ABB Group的前身可以追溯到1883年,当时由瑞士的Brown, Boveri & Cie (BBC)和瑞典的ASEA公司合并成立。这个合并创造了一个跨国电气工程公司,专注于发电机、电气传动和电力系统的设计和制造。该公司成立后迅速扩展了国际业务,并在世界各地建立了分支机构和生产基地。

  2. 技术创新和产品多样化: ABB Group一直致力于技术创新,并不断推出新产品和解决方案,以满足客户的需求。公司在电力输送、工业自动化、机器人技术等领域拥有丰富的经验和专业知识,为各种行业提供了全面的电力和自动化解决方案。

  3. 国际化战略和全球扩张: ABB Group通过收购、合并和战略合作,加速了在全球范围内的扩张。公司在100多个国家设有分支机构和办事处,形成了覆盖全球的销售和服务网络。这种国际化战略使ABB能够更好地满足不同国家和地区客户的需求。

  4. 可持续发展和环保责任: ABB Group致力于推动可持续发展和环保责任,在产品设计、生产和运营过程中注重减少能源消耗和减排。公司积极推动清洁能源和智能电网的发展,为全球的环境保护和可持续发展做出贡献。

  5. 未来展望和发展方向: ABB Group将继续致力于技术创新和市场拓展,加强在电力和自动化领域的领先地位。公司将加大在数字化技术和人工智能领域的投入,推动工业智能化和数字化转型,为客户提供更智能、更高效的解决方案。

Bay Linear Inc公司的发展小趣事

随着公司产品的热销,Bay Linear Inc开始积极拓展国际市场。通过与国外知名企业的合作,公司成功打入欧洲和北美市场,进一步提升了品牌知名度和影响力。同时,公司还积极参与国际技术交流与合作,不断提升自身的技术水平和市场竞争力。

Fenfa Electronics Ltd公司的发展小趣事

在技术创新的基础上,Fenfa Electronics Ltd公司开始积极拓展市场。公司高层意识到,仅仅依靠单一市场是远远不够的。因此,Fenfa团队制定了全球市场拓展战略,逐步打开了欧美、亚洲等地区的市场。在拓展过程中,公司积极与当地企业合作,深入了解当地市场需求和消费者习惯,不断优化产品和服务。通过这一系列的市场拓展策略,Fenfa Electronics Ltd公司的品牌知名度和市场份额均得到了显著提升。

Dow-Key Microwave Corporation公司的发展小趣事

在Dow-Key Microwave的发展历程中,企业文化和团队建设始终是公司关注的重点。公司注重培养员工的团队合作精神和创新能力,为员工提供良好的工作环境和发展机会。同时,公司还建立了完善的管理制度和激励机制,确保公司的运营效率和员工的工作积极性。这些措施的实施,使得Dow-Key Microwave成为了一个充满活力和创新精神的企业,为公司的发展提供了有力保障。

请注意,以上故事仅为概述性质,具体细节可能因实际情况而有所不同。如需了解更多关于Dow-Key Microwave Corporation公司的信息,建议查阅相关报道或公司官方网站。

DRS Technologies公司的发展小趣事

近年来,DRS在红外探测器技术领域取得了重要进展。公司在12μm像元尺寸非制冷红外探测器技术的基础上,成功研制出10μm像元尺寸的产品。这一技术的突破不仅展示了DRS在红外探测领域的实力,也为其在未来的市场竞争中提供了有力的技术支撑。

意华(CZT)公司的发展小趣事

意华在发展过程中,积极拓展国内外市场,与华为、中兴、富士康等知名企业建立了长期稳定的合作伙伴关系。这些合作伙伴的加入,不仅为意华带来了更多的订单和业务机会,也促进了公司技术的交流和提升。通过与这些行业巨头的合作,意华在电子连接器领域的影响力逐渐扩大。

问答坊 | AI 解惑

汽车行驶记录仪中USB HOST技术

1. USB 总线的简介USB(Universal Serial Bus )是一种通用串行总线,是一种标准的连接接口。在与外面的USB 从结构和USB HOST连接时,不必重新配置系统和调节接口,USB HOST 自动识别这些接口设备,并配置适当的驱动程序,因此实现了即插即用 ...…

查看全部问答>

谁能帮我找到10102A 芯片的PDF

谁能帮我找到10102A 芯片的PDF,非常感谢!请联系我QQ:645652168…

查看全部问答>

跪求!!!温控电路设计

本帖最后由 paulhyde 于 2014-9-15 09:16 编辑 可测温范围在-10——80摄氏度 可显示温度 温度低于30时可以启动加热装置 实现恒温功能!!!  …

查看全部问答>

CDMA模块

CDMA模块基于CDMA平台的通信模块,它将通信芯片、存储芯片等集成在一块电路板上,使其具有发送通过CDMA平台收发短消息、语音通话、数据传输等功能。CDMA模块可以实现普通CDMA手机的主要通信功能,也可以说是一个“精简版”的手机。电脑、单片机、AR ...…

查看全部问答>

在6F877,18F1320,18F1220上通过的18B20程序

这是在6F877,18F1320,18F1220上通过的18B20程序,18B20主要是延时问题,这个解决了,什么都可以通过。 # include <pic18f1220.h> # define uch unsigned char # define unint unsigned int # define DQ        R ...…

查看全部问答>

编译uclinux内核时候遇到的问题,帮我看看吧。

由于毕业设计需要和本身兴趣,要构造ARM+uclinux,本机Linux版本:UBUNTU6 .06. 在本机上安装了www.uclinux.org上下的arm-elf-tools, 然后arm-elf-gcc-v,显示如下 Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specs gcc ver ...…

查看全部问答>

怎样程序烧写到指定的flash地址里?

在项目中遇到一个问题:需要将一个变量放到一个指定的flash地址里,即flash的绝对地址中。我查看了IAR的complier手册,上面的例子说以下面的方式定义即可。const int bootKey @ 0x0801FFFC = 3; /* O ...…

查看全部问答>

关于选折NANDFLASH,还是SPIFLASH?

所用STM32F103ZET6, 由于,512K Flash, 64 RAM,已经能够满足系统的需要。 所以就不加NORFLASH, 和SRAM了, 但是由于要存储数据,所以就想到NandFlash,和SPI Flash. 而NandFlash容量大,但是引脚多,(NAND128W3A, 128M) SPI Flash容 ...…

查看全部问答>

谁来做一次9B96的使用教程?

期待EEWORLD和TI能够为我们这些菜鸟提供一些学习的方法和使用介绍!我想以后使用这个9B96但是这个入门貌似还不懂!…

查看全部问答>