测量小百科|PXI控制器的Watchdog Timer功能
来源: | 作者:JYTEK | 发布时间: 567天前 | 210 次浏览 | 分享到:

全文字数1365 | 阅读需要3分钟


关键词:Watchdog TimerWDT、看门狗定时器、BMC、SEMA


导读

PXI(e)控制器的规格除了外观可见的IO接口(Display、USB、Ethernet….etc)之外,通常还会具有Watchdog Timer(WDT、看门狗定时器)功能,这是由控制器内部的硬件所实现而成,可能是一颗独立的Watchdog Timer芯片,或是一颗BMC (Baseboard Management Controller,基板管理控制器) 芯片提供的Watchdog Timer功能。

 

PXI(e)测试测量系统经常需要长时间运行,因此控制器有可能会出现宕机,或是测试程序不明原因停止运行,或是测试程序进入死循环、测试程序跑飞等异常现象。Watchdog Timer的功能是用于当这些异常发生时,提供控制器自动重启,做为一个系统安全的保护机制。


Watchdog Timer的工作原理

Watchdog Timer是一个定时器电路,如图1所示, 具有一个输入管脚称之为Restart,用于清除定时器的计数,而且具有一个输出管脚称之为Timeout,用于输出复位信号给CPU。当CPU正常工作的时候,每隔一段时间周期性的会输出Restart信号给Watchdog Timer,用于将定时器的计数清为零,若超过规定的时间内没有清除定时器的计数,则会导致Watchdog Timer发生超时,此时会送出复位信号给CPU做自动重启。


 1  Watchdog Timer的概述图


Watchdog Timer的工作时序如图2所示,其中tWD代表超时时间,可以经由程序设定此参数。系统正常运行条件下,CPU会周期性的发送脉冲信号给Watchdog Timer,用于将定时器的计数清为零。若系统发生异常,导致超过规定的时间内(即tWD)没有送出脉冲信号,就会造成Wachdog Timer超时,此时会送出复位信号给CPU



图 2  Watchdog Timer的工作时序图


PXI-63980/63930控制器提供的Watchdog Timer功能

PXI-63980/63930控制器具有一颗独立的Watchdog Timer芯片,用户可以在凌华科技的官网下载WDT driver,安装完成后,重新启动进入BIOS setup menu,将Watchdog Timer选项Enabled (默认值为Disabled),即可以通过API去配置WDT,同时查阅用户手册去了解每个API的功能描述,总共以下五个API:

i. InitWDT : 初始化WDT

ii. SetWDT : 设定WDT的超时时间(tWD)

iii. StartWDT : 启动WDT

iv. ResetWDT: 清除WDT, 重新计数。

v. StopWDT: 停止WDT


PXIe-63987/63937控制器提供的Watchdog Timer功能

PXIe-63987/63937控制器提供的watchdog timer功能是由一颗BMC所实现,用户需要在凌华科技的官网下载SEMA软件。


SEMA(Smart Embedded Management Agent,嵌入式智慧管理平台)是凌华科技开发的软件。用于监测并收集PXI控制器的效能与状态信息,让用户取得这些信息后可以做对应的安全防护程序设计。


PXIe-63987/63937控制器的BIOS配置Watchdog Timer默认值为 Enabled,因此SEMA软件下载安装完成后, 即可通过API去配置WDT。同时需要查阅SEMA Extended EAPI Programming Guide文件去了解每个API的功能描述,总共以下六个API:

i. SemaEApiWDogGetCap: 取得WDT的能力

ii. SemaEApiWDogStart: 设定WDT的超时时间(tWD),并且启动WDT

iii. SemaEApiWDogTrigger : 清除WDT, 重新计数。

iv. SemaEApiWDogStop : 停止WDT

v. SemaEApiPwrUpWDogStart : 启动power-up watchdog timer

vi. SemaEApiPwrUpWDogStop : 停止power-up watchdog timer


SEMA同时提供GUI接口,如图3所示,让用户可以做WDT的功能测试。



 3  SEMA GUI


总结

对于长时间运行的PXI测试测量应用,优秀的程序设计师通常会考虑到设备的故障安全机制,Watchdog Timer提供的安全机制,可以重设一个冻结的测试程序或宕机的控制器,将系统调整到安全状态。没有人会刻意设计会冻结的测试程序,因此未雨绸缪的设计肯定是好的。若缺少这种安全机制,控制器可能会无限期地冻结,并导致更多的系统故障。


参考

【1】 PXI-63987 User's Manual

【2】 SEMA 3.5 Software Manual:

https://www.adlinktech.com/Products/Industrial_IoT_and_Cloud_solutions/SEMA_Smart_Embedded_Management_Agent/SEMA?lang=en

【3】 SEMA 3.5 Extended EAPI Programming Guide:

https://www.adlinktech.com/Products/Industrial_IoT_and_Cloud_solutions/SEMA_Smart_Embedded_Management_Agent/SEMA?lang=en