不同的使用场景,对工业无线路由器、工业级无线DTU功能与性能的需求点就完全不一样,在工业级应用中,稳定可靠,是无线组网的第一需求。
试想一下,在工业现场,远程监测应用时无线组网出现中断,前端采集数据无法上传,远程管理中心指令无法下达,对整个系统运行的影响也是致命的。此种情况下,看门狗技术的“形象”瞬间高大起来,宇泰几乎所有的工业级无线DTU产品都内嵌了“看门狗”术。
工业无线路由器、工业级无线DTU上“看门狗”技术为何如此受欢迎?今天我们就来搞懂它。
一.什么是“看门狗”
看门狗,又叫 watchdog,从本质上来说就是一个定时器电路,一般有一个输入和一个输出,其中输入叫做“喂狗”,输出一般连接到另外一个部分的复位端,一般是连接到单片机。 “看门狗”的功能是定期的查看芯片内部的情况,一旦发生错误就向芯片发出重启信号。“看门狗”命令在程序的中断中拥有最高的优先级,防止程序跑飞,也可以防止程序在线运行时候出现死循环。
二、“看门狗”工作原理
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。
三、“看门狗”也有软硬
硬件“看门狗”技术是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。
软件“看门狗”技术的原理和这差不多,只不过是用软件的方法实现。
情况1:如在单片机系统中
利用闲置的定时器/计数器就可以设计一个软件看门狗。具体实现步骤如下:
首先,在初始化程序中设置定时器/计数器的方式以控制寄存器(TMOD) 和定时时间的初值,并且打开中断。
然后,根据定时器的时间,在主程序中按一定的时间间隔插人复位定时器的指令(喂狗), 两条喂狗指令之间的时间间隔可以根据系统时钟与指令周期计算出来,而且该时间周期应该小于定时器的定时时间。
最后,在定时器的中断服务程序中,设置一条无条件转移指令,将程序计数器PC转移到初始化程序的入口。
情况2:如在非单片机系统中
在非单片机系统,如PowerPC系统中,也可以采用多线程的方式来设置“软件狗”,其主要的步骤如下所述:
首先,新建一个看门狗线程,该线程维护一个全局变量数组,该数组相当于每个工作线程的计数器。看门狗线程为一一个死循环,每隔一段时间就会循环一次,并将全局变量数组的每一个值都加1后判断是否超过预定义的上限值,若发现某个线程对应的变量数值超过最大值,则看门狗线程会重置该线程。
然后,每个工作线程中,每隔一段时间就会将对应的全局变量置0 (喂狗)。
宇泰科技工业级无线路由器、工业级无线DTU具有双重“看门狗”,包括软件“看门狗”与硬件“看门狗”,当发生异常时,会智能进行软件唤醒或硬件断电自动重启,实时保障无线组网与无线数据传输畅通无阻。
软硬件双重“看门狗”,忠诚地为客户看家护院,故障自行恢复,确保设备稳定可靠运行。