搜档网
当前位置:搜档网 › 看门狗 驱动程序课件

看门狗 驱动程序课件

看门狗 驱动程序课件
看门狗 驱动程序课件

看门狗驱动程序

看门狗是当CPU进入错误状态后,无法恢复的情况下,使计算机重新启动

由于计算机在工作时不可避免的受到各种各样的因素干扰,即使再优秀的计算机程序也可能因为这种干扰使计算机进入一个死循环,更严重的就是导致死机。

有两种办法来处理这种情况:

一是:采用人工复位的方法

二是:依赖于某种硬件来执行这个复位工作。这种硬件通常叫做看门狗(Watch Dog,WD)

看门狗,就像一只狗一样,在那看着们,计算机中通常用定时器来处理这种周期性的动作

看门狗实际上是一个定时器,其硬件内部维护了一个定时器,每当时钟信号到来时,计数寄存器减1。如果减到0,则系统重启(就像狗一样,看你不认识就咬你,可不管你是谁)。

如果在减到0之前,系统又设置计数寄存器一个较大的值,那么系统永远不会重启。系统的这种设置能力表示系统一直处于一种正常运行状态。反之,如果计算机系统崩溃,那么就无法重新设置计数寄存器的值。当计数寄存器为0,系统重启

看门狗的工作原来很简单,处理器内部一般都集成了一个看门狗硬件。其提供了三个寄存器

看门狗控制寄存器(WTCON)

看门狗数据寄存器(WTDAT)

看门狗计数寄存器(WTCNT)

结合上图可知,看门狗从一个PCLK频率到产生一个RESET复位信号的过程如下:

1,处理器向看门狗提供一个PCLK时钟信号。其通过一个8位预分频器(8-bit Prescaler)使频率降低

2,8位预分频器由控制寄存器WTCON的第8~15位决定。分频后的频率就相当于PCLK除以(WTCON[15:8]+1).

3,然后再通过一个4相分频器,分成4种大小的频率。这4种频率系数分别是16,32,64,128.看门狗可以通过寄存器的3,4位决定使用哪种频率

4,当选择的时钟频率到达计数器(Down Counter)时,会按照工作频率将WTCNT减1.当达到0时,就会产生一个中断信号或者复位信号

5,如果控制寄存器WTCOON的第二位为1,则发出一个中断信号;如果控制寄存器WTCON第0位为1,则输出一个复位信号,使系统重新启动

看门狗驱动涉及两种设备模型,分别是平台设备和混杂设备

平台设备模型:

从Linux2.6起引入了一套新的驱动管理和注册模型,即平台设备platform_device和平台驱动platform_driver.Linux中大部分的设备驱动,都可以使用这套机制,设备用platform_device 表示,驱动用platform_driver表示

平台设备模型与传统的device和driver模型相比,一个十分明显的优势在于平台设备模型将设备本身的资源注册进内核,由内核统一管理。这样提高了驱动和资源管理的独立性,并且拥有较好的可移植性和安全性。通过平台设备模型开发底层驱动的大致流程为下图:

平台设备是指处理器上集成的额外功能的附加设备,如Watch Dog,IIC,IIS,RTC,ADC等设备。这些额外功能设备是为了节约硬件成本、减少产品功耗、缩小产品形状而集成到处理器内部的。需要注意的是,平台设备并不是与字符设备、块设备和网络设备并列的概念,而是一种平行的概念,其从另一个角度对设备进行了概括。如果从内核开发者的角度来看,平台设备的引入,是为了更容易开发字符设备、块设备和网络设备驱动

平台设备结构体(platform_device)

struct platform_device

{

const char *name; //平台设备的名字,与驱动的名字对应

int id; //与驱动绑定有关,一般为-1

struct device dev;//设备结构体说明platform_device派生于device

u32 num_resources; //设备使用的资源数量

struct resource *resource; //指向资源的数组,数量由num_resources指定

};

看门狗的平台设备为:

struct platform_device s3c_device_wdt = { .name = "s3c2410-wdt",

.id = -1,

.num_resources = ARRAY_SIZE(s3c_wdt_resource),

.resource = s3c_wdt_resource,

};

为了统一管理平台设备的资源,在platform_device机构体中定

义了平台设备所使用的资源。

看门狗的资源如下:

static struct resource s3c_wdt_resource[] = {

[0] = { // I/O资源指向看门狗的寄存器

.start = S3C24XX_PA_WATCHDOG, //看门狗I/O内存开始位置,被定义为WTCON的地址0x53000000

.end = S3C24XX_PA_WATCHDOG + S3C24XX_SZ_WATCHDOG - 1, //1M的地址空间

.flags = IORESOURCE_MEM, //I/O内存资源

},

[1] = { //IRQ资源

.start = IRQ_WDT, //看门狗的开始中断号,被定义为80

.end = IRQ_WDT, //看门狗的结束中断号

.flags = IORESOURCE_IRQ, //中断的IRQ资源

}

};

struct resource

{

resource_size_t start; //资源的开始地址,resource_size是32位或者64位的无符号整数

resource_size_t end; //资源的结束地址

const char *name; //资源名

unsigned long flags; //资源的类型

(IORESOURCE_IO,IORESOURCE_MEM,IORESOURCE_ IRQ,IORESOURCE_DMA等)

struct resource *parent,*sibling,*child; //用于构建资源的树形结构

};

通过platfrom_add_devices()函数可以将一组设备添加到系统中,其主要完成以下两个功能:

1,分配平台设备所使用的资源,并将这些资源挂接到资源树中

2,初始化device设备,并将设备注册到系统中

第一个参数是平台设备数组的指针,第2个参数是平台设备的数量int platform_add_devices(struct platform_device **devs, int num)

{

int i, ret = 0;

for (i = 0; i < num; i++) {

ret = platform_device_register(devs[i]);

if (ret) {

while (--i >= 0)

platform_device_unregister(devs[i]);

break;

}

}

return ret;

}

通过platform_get_resource()函数可以获得平台设备的

resource资源:

第一个参数dev是平台设备的指针,第2个参数type是资源的类型,这些类型可以是(IORESOURCE_IO,IORESOURCE_MEM,IORESOURCE_ IRQ,IORESOURCE_DMA等),第3个参数num是同种资源的索引。例如一个平台设备有3哥IORESOURCE_MEM资源,如果要获得第2个资源,那么需要使num等于1

struct resource *platform_get_resource(struct platform_device *dev,unsigned int type, unsigned int num)

{

int i;

for (i = 0; i < dev->num_resources; i++) { struct resource *r = &dev->resource[i];

if (type == resource_type(r) && num-- == 0) return r;

}

return NULL;

}

平台设备驱动:

每一个平台设备都对应一个平台设备驱动,这个驱动用来对平台设备进行探测、移除、关闭和电源管理等操作。

struct platform_driver {

int (*probe)(struct platform_device *); //探测函数

int (*remove)(struct platform_device *); //移除函数

void (*shutdown)(struct platform_device *); //关闭设备时调用该函数

int (*suspend)(struct platform_device *, pm_message_t state); //挂起函数

int (*suspend_late)(struct platform_device *, pm_message_t state); //挂起之后调用的函数int (*resume_early)(struct platform_device *); //恢复正常状态之前调用的函数

int (*resume)(struct platform_device *); //恢复正常状态的函数

struct device_driver driver; //设备驱动核心结构

};

看门狗的平台设备驱动:

static struct platform_driver s3c2410wdt_driver = { .probe = s3c2410wdt_probe,

.remove = s3c2410wdt_remove,

.shutdown = s3c2410wdt_shutdown,

.suspend = s3c2410wdt_suspend,

.resume = s3c2410wdt_resume,

.driver = {

.owner = THIS_MODULE,

.name = "s3c2410-wdt",

},

};

一般来说,在内核启动时,会注册平台设备和平台设备驱动程序。内核将在适当的时候,将平台设备和平台驱动连接起来。连接的方法,是用系统中的所有平台设备和所有已经注册的平台驱动进行匹配。下面是源代码:

static int platform_match(struct device *dev, struct device_driver *drv)

{

struct platform_device *pdev;

pdev = container_of(dev, struct platform_device, dev);

return (strcmp(pdev->name, drv->name) == 0); }

该函数将由内核自己调用,当设备找到对应的驱动时,会触发probe 函数。所以,probe函数一般是驱动程序加载成功后的第一个调用函数,在该函数中可以申请设备所需要的资源

driver的绑定是通过driver core自动完成的,完成driver和device的匹配后以后会自动执行probe()函数,如果函数执行成功,则driver和device就绑定在一起了,drvier和device匹配的方法有3种:

>> 当一个设备注册的时候,他会在总线上寻找匹配的driver,platform device一般在系统启动很早的时候就注册了

>> 当一个驱动注册[platform_driver_register()]的时候,他会遍历所有总线上的设备来寻找匹配,在启动的过程驱动的注册一般比较晚,或者在模块载入的时候

>> 当一个驱动注册[platform_driver_probe()]的时候,功能上和使用platform_driver_register()是一样的,唯一的区别是它不能被以后其他的device probe了,也就是说这个driver 只能和一个device绑定。

int __init_or_module platform_driver_probe(struct platform_driver *drv,

int (*probe)(struct platform_device *))

{

int retval, code;

/* temporary section violation during probe() */ drv->probe = probe;

retval = code = platform_driver_register(drv);

/* Fixup that section violation, being paranoid about code scanning

* the list of drivers in order to probe new devices. Check to see

* if the probe was successful, and make sure any forced probes of

* new devices fail.

*/

spin_lock(&platform_bus_type.p->klist_drivers.k_l ock);

drv->probe = NULL;

if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list)) retval = -ENODEV;

drv->driver.probe = platform_drv_probe_fail;

spin_unlock(&platform_bus_type.p->klist_drivers.k _lock);

if (code != retval)

platform_driver_unregister(drv);

return retval;

}

static int platform_drv_probe(struct device *_dev) {

struct platform_driver *drv = to_platform_driver(_dev->driver);

struct platform_device *dev = to_platform_device(_dev);

return drv->probe(dev);

}

static int platform_drv_probe_fail(struct device *_dev)

{

return -ENXIO;

}

static int platform_drv_remove(struct device *_dev) {

struct platform_driver *drv = to_platform_driver(_dev->driver);

struct platform_device *dev = to_platform_device(_dev);

return drv->remove(dev);

}

static void platform_drv_shutdown(struct device *_dev)

{

struct platform_driver *drv =

to_platform_driver(_dev->driver);

struct platform_device *dev = to_platform_device(_dev);

drv->shutdown(dev);

}

static int platform_drv_suspend(struct device *_dev, pm_message_t state)

{

struct platform_driver *drv = to_platform_driver(_dev->driver);

struct platform_device *dev = to_platform_device(_dev);

return drv->suspend(dev, state);

}

static int platform_drv_resume(struct device *_dev) {

struct platform_driver *drv = to_platform_driver(_dev->driver);

struct platform_device *dev = to_platform_device(_dev);

return drv->resume(dev);

}

需要将平台设备驱动注册到系统中才能使用,内核提供了platform_driver_register()函数实现这个功能:

int platform_driver_register(struct platform_driver *drv)

{

drv->driver.bus = &platform_bus_type; //平台总线类型

//如果定义了probe函数,该函数将覆盖driver中定义的函数(即覆盖父函数)

if (drv->probe)

drv->driver.probe = platform_drv_probe; //默认探测函数

if (drv->remove)

drv->driver.remove = platform_drv_remove; //默认移除函数

if (drv->shutdown)

drv->driver.shutdown = platform_drv_shutdown; //默认关闭函数

if (drv->suspend)

drv->driver.suspend = platform_drv_suspend; //默认挂起函数

if (drv->resume)

drv->driver.resume = platform_drv_resume; //默认恢复函数

return driver_register(&drv->driver); //将驱动注册到系统中

}

在平台设备platform_driver和其父结构driver中相同的方法。如果平台设备驱动中定义probe()方法,那么内核将会调用平台设备驱动中的方法;如果平台设备驱动中没有定义probe()方法,那么将调用driver中对应方法。platform_driver_register()函数用来完成这种功能,并注册设备驱动到内核中。platform_driver注册到内核后,内核调用驱动的关系如下图:

模块卸载时需要注销函数:

void platform_driver_unregister(struct platform_driver *drv)

{

driver_unregister(&drv->driver);

}

可以使用platform_device_alloc动态地创建一个设备:struct platform_device *platform_device_alloc(const char *name, int id) {

struct platform_object *pa;

pa = kzalloc(sizeof(struct platform_object) + strlen(name), GFP_KERNEL);

if (pa) {

strcpy(pa->name, name);

pa->https://www.sodocs.net/doc/f915778432.html, = pa->name;

pa->pdev.id = id;

device_initialize(&pa->pdev.dev);

pa->pdev.dev.release = platform_device_release;

}

return pa ? &pa->pdev : NULL;

}

一个更好的方法是,通过下面的函数动态创建一个设备,并把这个设备注册到系统中:

struct platform_device *platform_device_register_simple(const char *name,

int id,

struct resource *res,

unsigned int num)

{

struct platform_device *pdev;

看门狗真空断路器

产品简介|JiangYinBaoGuang 从事户内外高压真空断路器:10KV、24KV、35KV、40.5KV规格齐全。 智能型真空断路器为额定电压12kV,三相交流50Hz的高压户外开关设备,户外智能分界真空断路器(俗称看门狗)主要采用来开断关合农网、城网和小型电力系统的负荷电流、过载电流、短路电流。该产品总体结构为三相共箱式,三相真空灭弧室置于金属箱内,变压性能可靠,绝缘强度高。本系列产品的操动机构为弹簧储能式,分为电动和手动两种。断路器符合GBl804、DL403、GBll022等标准的规定,无论是在正常使用条件还是在故障条件(特别是短路情况)下,只要在断路器的技术参数范围内,它就可以保证安全、可靠的运行于相应电压等级的电网中。 主要符合以下国家标准: 开关部分:GB1984 《高压交流断路器》GB/T11022-1999 《高压开关设备控制和设备标准的共同技术条件》 控制终端部分:GB/T726-2000《继电器及装置基本试验方法》GB/T17626-1998 《电磁兼容试验和测量技术电快速瞬变脉冲群搞扰度试验》 (江阴宝光真空断路器型号) AB-3S-12/630-20 FZW28-12F/630-20 ZW32-40.5F/1600-31.5 ZW32-24F/630-25 ZW32-12/630-20 ZW32-12G/630-25 ZW32-12F/630-20

ZW20-12/630-20 ZW20-12F/630-20 VS1-12/630-20 ZW20-12看门狗真空断路器ZW20-12智能分界真空断路器ZW20-12高压真空断路器 VS1-24KV户内真空断路器1250A-4000A大电流真空断路器40.5KV户外高压真空断路器

_看门狗_芯片的选择及软件控制

电子世界2004年1 期 26??单片机与可编程器件 “看门狗”芯片的选择 及软件控制 ?吉林化工学院自动化系 梁 伟 ?

电子世界2004年1期 27??单片机与可编程器件 个问题的方法就是做一个看门狗清除脉冲子程序,在延时等循环的圈内中加入它,可以保证万无一失。 2. 使用其它软件方法配合看门狗除了保证对看门狗的合理控制外,还要考虑使用其它软件方法配合看门狗,才能够保证MCU可靠运行。许多书籍在分析MCU失控后的情况时,几乎都假定一般是PC错位,进入未知区域,并不再进入正常程序代码段。但实际并非如此,以下就两种情况做具体分析,并给出解决方法。(1)干扰造成PC出错,但出错后进入了正常代码段,并在错误的情况下继续运行,看门狗没有起作用,但系统实际上已经瘫痪。解决这个问题可以使用软件路标法,几乎所有软件的主程序都是在一个大循环里工作,可以在循环中设置一些断点,断点处设置路标,程序运行 时随时检查路标,这样就可以判断程序是否有非法进入的可能。具体的路标可以是一个计数器,每个断点加1,在终点清除。因为断点数固定,因此每个断点处路标值固定,只需要检测路标值就可以进行对非法进入的判断。余下的问题就是发现错误后如何处理,正常的处理就是设置死循环,等待看门狗复位。对于PHILIPS的LPC系列MCU也可以置位AUXR1寄存器的SRST位立即进行软件复位。(2)干扰导致内部寄存器及RAM出错,但PC未错,因为错误的数据和标志导致程序在错误状态下运行。解决这种问题可以采用RAM校验的方法,具体是在MCU的内部RAM中开辟几个校验区,复位时写入固定代码,如55H或者AAH,并编制校验子程序,运行时随时调用校验,发现错误马上处理,处理方法同(1)。 考虑到可靠性,应该多设置几个校验区, 但要付出RAM资源代价,应酌情处理。此方法如果与(1)方法同时使用,则会获得更好的效果。 结束语 以上对看门狗的芯片选择和软件控制做了一些介绍,笔者通过合理运用,成功地设计出了许多应用系统,这些系统在恶劣的环境下都能够正常工作。但设计看门狗的初衷是防止系统万一死机的弥补措施,设计者本身是希望它永远也不要启动的。因此对于设计MCU系统,不应该过分依靠看门狗,而应该在电源及抗干扰措施上下足功夫,同时合理选择MCU芯片,尽可能选择那些抗干扰能力强,同时低EMI的品种。只有在各个环节都精心设计,才能够保证最终系统的可靠性。◆ Protel 99SE是基于Windows环境下的EDA电子辅助设计软件。一般来讲,利用Protel软件设计工程最基本的完整过程可以分为四大步骤:(1)查找资料,确定方案;(2)电路原理图的设计;(3)产生网络表;(4)印刷电路板的设计。 本文按照实际的设计流程顺序,来谈一谈如何使用Protel 99SE软件准确、高效地设计出电路原理图和设计印刷电路板的一些技巧。 电路原理图的设计 在电路原理图的设计过程中主要应 注意以下方面: 1.设置图纸 在设计开始之前首先要选择好图纸的大小,否则在打印时,若需将图纸由大号改为小号,而电路原理图不会跟着缩小,就存在部分原理图超出图纸范围打印不出来,从而返工的问题。通常的设计顺序为从左到右,从上到下。 2.放置元件 (1)利用元件库浏览器放置元件,对于元件库内未包括的元件要自己创建。创建的元件其引脚没有必要和实物一致, Protel 99SE 软件的实用技巧 ?上海海运学院商船学院轮机工程系 黄志坚 胡以怀? 可将功能相近或相同的引脚放到一起,以方便布线。(2)自创建元件时,还要注意,一定要在工作区的中央(0,0)处 (即“十”字形的中心) 绘制库元件,否则可能会出现在原理图中放置(place)制作的元件时,鼠标指针总是与要放置的元件相隔很远的现象。 (3) 在画原理图时,有时一不小心,使元件(或导线)掉到了图纸外面,却怎么也清除不了。这是由于Protel在原理图编辑状态下,不能同时用鼠标选中工作面内外的元件。要清除图纸外的元件,可点击 【Edit】/【Select】/【Outside Area】,然后框选整张图纸,再点击【Edit】/【Cut】即可。 元件放置好后,最好及时设置好其属性(Attributes),若找不到其相应的封装形式,也要及时为其创建适当的封装形式。 3.原理图布线 (1)根据设计目标进行布线。布线应该用原理图工具栏上的(Wiring Tools)工具,不要误用了(Drawing Tools)工具。(Wiring Tools)工具包含有电气特性,而(Drawing Tools)工具不具备电气特性,会导致原理图出错。 (2) 利用网络标号(Net Label)。网络标号表示一个电气连接点,具有相同网络标号的电气接线表明是连接在一起的。虽然网络标号主要用于层次式电路或多重式电路中各模块电路之间的连接,但若在同一张普通的原理图中也使用网络 标号,则可通过命名相同的网络标号使它们在电气上属于同一网络(即连接在一起),从而不用电气接线就实现了各引脚之间的互连,使原理图简洁明了,不易出错,不但简化了设计,还提高了设计速度。 4.编辑和调整编辑和调整是保证原理图设计成功很重要的一步。 (1)当电路较复杂、或是元器件的数目较多时,用手动编号的方法不仅慢,而且容易出现重号或跳号。重号的错误会在PCB编辑器中载入网络表时表现出来,跳号也会导致管理不便,所以Protel提供了很好的元件自动编号功能,应该好好地利用,即【Tools】/【Annotate...】。 (2)在原理图画好后,许多细节之处

触摸屏控制器使用说明书

一. 触摸屏控制器型号:FX-TK04U;FX-TK04R;FX-TK05U;FX-TK05R 信息发布内容: 1)深圳方显科技触摸屏控制器可用于任何四线、五线电阻屏,11位AD转换,分辨率可到2048*2048。RS232/USB接口可选。简单的通讯指令即可实现触摸功能。支持操作系统:MS-DOS,WINDOWS3.X/9X/ME/NT/2000/XP/CE,LINUX单片机专用触摸屏控制器,车载专用触摸屏控制器,直接提供菜单式操作,大大节约嵌入式MCU资源;MCU专用接口,使您的产品无须改动直接接入触摸屏控制。 2) 深圳方显科技4线触摸屏控制器产品概述FX-TK04R/FX-TK04U 触摸屏分辨率:2048x2048 4点定位 25点定位 支援鼠标右键 支援画线测试 驱动程序包括:Windows 98, 2000, NT4, Me, XP, XP Tablet Edition, CE 2.12, CE 3.0, https://www.sodocs.net/doc/f915778432.html,, Linux, DOS & iMac 多语系的操作窗口 支援多个监视器 具备视觉旋转度 触摸屏通讯接口:RS232 或USB 计算机通讯接口:Pin Header 电气参数 电源要求: +5VDC ( Maximum 100mA, typical 70mA, 50mV peak to peak maximum ripple) 工作温度: 0 to 50℃ 贮存温度: -40 to 80℃ 湿度: 95% at 60℃ 通讯协定:RS232 Model: 9600 bauds, None parity, 8 data bits, 1 stop bit USB Model: USB 1.1 Low speed 采样速度:RS232 Model: Max. 160 points/sec USB Model: Max. 160 points/sec 最大按压延迟时间: Max. 35 ms 出线顺序: X+, Y+, X-, Y- 电阻范围: 200 ~ 900 ohm ( pin to pin on the same layer 3) 单片机专用触摸屏控制器FX-TK04RMCU 深圳方显科技是国内著名显示及触控产品的专业厂商。依靠其强大的研发能力,开发出多款LCD控制器和触摸屏控制器。LCD控制器使得单片机、DSP、各种嵌入式CPU轻松实现LCD (TFT)显示。触摸屏控制器有连笔型和点触型两种。连笔型触摸屏控制器支持4线、5线各尺寸电阻触摸屏。点触型触摸屏控制器可连接各类MCU、单片机、DSP、ARM等嵌入式系统,为不同的客户确定最佳应用。使用点触型触摸屏控制器,开发工程师不再需要详细了解触摸屏工作原理,做复杂的编程,只需简单读取触摸XY位置信息,快速完成研发工作。也可根据不同MCU的特点及不同的功能,为客户定制程序使得各种MCU均能轻松接上触摸屏,实现各具特色的人机接口。

看门狗电路及原理

看门狗电路。在单片机中,为了能使得程序能够正常的运行。设定的及时根据程序所返回的值检测程序运行情况的定时电路。 在主程序中设定一定的值,把这个值在看门狗定时电路数值益处之前定时赋给看门狗赋给定时电路,让看门狗定时器复位。主程序的赋值周期要小于看门狗定时电路的运行周期。 看门狗 百科名片 单片机"看门狗" 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog) 目录[隐藏] 应用 基本原理 看门狗使用注意 看门狗运用 设计思路 [编辑本段]应用 看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,

即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。 [编辑本段]基本原理 看门狗,又叫watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813 ,5045, IMP 813等,价格4~10元不等. 软件看门狗技术的原理和这差不多,只不过是用软件的方法实现,我们还是以51系列来讲,我们知道在51单片机中有两个定时器,我们就可以用这两个定时器来对主程序的运行进行监控。我们可以对T0设定一定的定时时间,当产生定时中断的时候对一个变量进行赋值,而这个变量在主程序运行的开始已经有了一个初值,在这里我们要设定的定时值要小于主程序的运行时间,这样在主程序的尾部对变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。对于T1我们用来监控主程序的运行,我们给T1设定一定的定时时间,在主程序中对其进行复位,如果不能在一定的时间里对其进行复位,T1 的定时中断就会使单片机复位。在这里T1的定时时间要设的大于主程序的运行时间,给主程序留有一定的的裕量。而T1的中断正常与否我们再由T0定时中断子程序来监视。这样就够成了一个循环,T0监视T1,T1监视主程序,主程序又来监视T0,从而保证系统的稳定运行。51 系列有专门的看门狗定时器,对系统频率进行分频计数,定时器溢出时,将引起复位.看门狗可设定溢出率,也可单独用来作为定时器使用。凌阳61的看门狗比较单一,一个是时间单一,第二是功能在实际的使用中只需在循环当中加入清狗的指令就OK了。AVR系列中,avr-libc 提供三个API 支持对器件内部Watchdog 的操作,它们分别是:wdt_reset() // Watchdog 复位wdt_enable(timeout) // Watchdog 使能wdt_disable() // Watchdog 禁止C8051Fxxx单片机内部也有一个21位的使用系统时钟的定时器,该定时器检测对其控制寄存器的两次特定写操作的时间间隔。如果这个时间间隔超过了编程的极限值,将产生一个WDT复位。-------------------------------------------------------------------------------- [编辑本段]看门狗使用注意

看门狗控制器原理与编程笔记

S3C2410接口之看门狗控制器原理与编程 1.看门狗:是一种电路,具有监视并恢复程序正常运行的功能,从而达到增强系统的稳定性。它本质上是一种定时器电路 2.稳定性和定时器之间有什么样的关系呢? 3.看门狗增强系统稳定性的基本原理:设一系统程序完整运行一周期的时间是Tp,看狗的定时周期为Ti,要求Ti>Tp。在程序运行一周期后,修改定时器的计数值,只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在Tp 时刻修改定时器的计数值,定时器将在Ti 时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。 s3c2410的看门狗控制器 S3C2410 的看门狗定时器有两个功能: (1)定时器功能:可以作为常规定时器使用,它是一个十六位的定时器,并且可以产生中断,中断名为INT_WDT,中断号是0x09。 (2)复位功能:作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128个时钟周期的复位信号。 S3C2410 ARM9的看门狗主要由五部分构成:时钟、看门狗计时器、看门狗数据寄存器、复位信号发生器、控制逻辑等。 S3C2410 ARM9的看门狗工作原理: PCLK 经过预分频、再分频,使得到达看门狗的频率能够没有那么高,这样看门狗才处理得了。 ?S3C2410 看门狗定时时间 预分频器为8位,其值为:0---255 再分频器可选择值为:16、32、64、128 输入到计数器的时钟周期为: T_wtd=1/[PCLK/(Prescaler+1)/Division_factor] 看门狗的定时周期为: T=WTDAT(看门狗的计数器的初值)×T_wtd

高压看门狗,10kv线路看门狗,zw32看门狗开关,看门狗开关

高压看门狗10kv线路看门狗zw32看门狗开关看门狗开关 陕西泰开高压开关制造有限公司(简称“泰开高压开关”原西安高压开关厂分支)是一家专业 从事高压真空开关及相关高压产品的研发、生产及销售于一体的重点高新技术企业,高压电 器设备骨干企业,从事高压电力设备生产已有三十余年,拥有宽敞的净化生产区,拥有先进 的生产设备和完善的高压试验、检测设施,以其优越的性能、技术、精湛的工艺、可靠的质量、优质的服务赢得了广大用户的赞誉,并跟多家合资企业、外资企业建立了长期稳定的合 作伙伴关系,我厂专业生产12-40.5KV户内外高压断路器,永磁真空断路器,智能、预付费、小型化、双电源、看门狗等真空断路器,六氟化硫断路器,负荷开关,隔离开关,高压熔断器,避雷器,变压器,高低压成套,电缆分支箱,充气柜,自动化设备电器等高低压电器。 自创建以来一直本着“服务至上“的经营宗旨。不折不扣做好售前,售中,售后,服务各处细节之点,本顾客之所想,为在电气行业中而努力奋斗不止。 陕西泰开高压开关厂是中国高压开关行业定点生产厂家,已成为我国高压开关设备的研发和 生产基地,特别在城网、农网改造和电站改造中一站式供应单位,是国家经贸委城乡电网建设、改造所需设备***的生产企业,坚持走高新技术之路,坚持高新技术产品的研发,近年来陆续开发了10KV智能永磁快速真空断路器,高压智能双电源自动转换装置等,并针对智能 电网的新要求,高压断路器本体能更快速地动作,具有更小的分散性、更高的可靠性,终达 到同步关合的要求,而随着我国电网不断扩大及用电负荷的迅猛增长,原有10KV电压等级 配电网难以满足供电要求,公司适时开发出了24KV户外永磁快速真空断路器,特别是在小 型化断路器上有全新的发展,针对35KV真空断路器取得了突破性的成功。公司将结合对电力设备市场导向的分析,继续并努力开发高新产品。 ZW32-12F/630-20“看门狗式智能型真空断路器”或“智能分界真空断路器”,其实就是真空断路器上,加上一套控制单元(通常包括:电压互感器、CPU处理器、通讯模块等),具备故障 检测功能,保护控制功能和通讯功能,安装于10KV架空线路上,可实现自动切除单相接地 故障和自动隔离相间短路故障。 看门狗开关(分界真空断路器)主要配置由真空分界断路器本体、RM100型控制器、外置电 压互感器三大部分组成,产品广泛用于10kV城市、农村配电网架空环网线路中作分段隔离 开关、联络开关、可实行环网线路负荷调配的自动化开关装置,在大用户供电的分支线路中 可作为分界开关,馈线架空配电网络作分界断路器分段器之用,真空分界断路器具有远程管 理模式,保护控制功能及通讯功能。能可靠判断、检测界内毫安级零序电流及相间短路故障 电流,实现自动切除单相接地故障和相间短路故障。

C51单片机看门狗电路及程序设计方案

C51单片机看门狗电路及 程序设计案 院系:信息工程学院 年级:2010级 电子一班禹豪 电子一班训虎 电子二班邓启新 一、引言 在由单片机构成的微型计算机系统中,程序的正常运行常常会因为来自外界的电磁场干扰等原因而被打断,从而造成程序的跑飞,而陷入死循环。由此导致单片机控制的系统无法继续工作,造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片或程序,俗称"看门狗"(watchdog) (1)看门狗电路基本原理 看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连**,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。 *此处设计原理实际上为下文中硬件看门狗设计思路。

(2)看门狗电路一般设计式 “看门狗”电路一般分为硬件看门狗与软件看门狗两种设计式。 硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位。如果出现死循环,或者说PC指针不能回来,那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813,5045,IMP 813等,价格4~10元不等. 软件看门狗技术的原理和硬件看门狗类似,只不过是用软件的法实现(即利用单片机部定时器资源,通过编程模拟硬件看门狗工作式),以51系列为例:因在51单片机中有两个定时器,在利用部定时器资源来对主程序的运行进行监控时。可以对T1(或T0)设定一定的定时时间(设定的定时值要小于主程序的运行时间),当产生定时中断的时候对一个变量进行赋值(此变量在主程序运行的开始已有一个初值)。当主程序运行至最后时对此变量的值进行判断,如果值发生了预期的变化,就说明T0中断正常,如果没有发生变化则使程序复位。 考虑到设计要求,本设计采用软件看门狗设计思路。 二、看门狗电路整体设计思路 根据设计要求,本设计利用C51单片机部自带的定时器1进行编程,并配合少量电路实现“看门狗“电路功能。整个设计分为软件部分与硬件部分,如下: (1)软件部分设计原理: 软件设计分为三部分:“看门狗“定时器设置程序、溢出中断服务程序和喂狗代码。 1.1设计思路: 1)在主程序开头,“看门狗“定时器设置程序设置定时器1计时50ms。 2)当定时达50ms时,定时器1产生溢出中断,溢出中断服务程序开始工作,将看门狗标志num加1。当num的值等于100时,说明看门狗定时器已经计时5s,此时,单片机I/O端口P1.0输出高电平,对程序进行复位。 3)在此过程中,喂狗代码将被穿插于程序中循环体末尾。当循环体结束时,喂狗代码执行,关闭定时器1、清空num并重新初始化定时器设置。若循环体进入死循环,喂狗代码无法执行,num将一直累加至100,此时程序复位。 注:喂狗代码放置位置可根据num预计数值进行调整:当num门限值较小,即看门狗计数时间较短时,喂狗代码可放于程序中各循环体之后或均匀分布于整个主程序中。当num门限值较大,即看门狗计数时间较长时,喂狗代码可放于程序主循环体末尾。但是需注意看门狗计数时间必须长于正常工作时间,以免非正常复位。 1.2软件设计流程图:

看门狗定时器参考资料

看门狗定时器参考资料: S3C2410A 的看门狗定时器有两个功能:作为常规时钟,并且可以产生中断; 作为看门狗定时器使用,当时钟计数减为0(超时)时,它将产生一个128 个时钟周期(PCLK)的复位信号. 主要特性如下: 通用的中断方式的16bit 定时器. 当计数器减到0(发生溢出) ,产生128 个PCLK 周期的复位信号. 下图为看门狗的电路示意图,看门狗时钟使用PCLK 作为他的时钟源,PCLK 通过预分频产生适合的看门狗时钟. 看门狗模块包括一个预比例因子放大器,一个是四分频器,一个16bit 计数器.看门狗的时钟源来自PCLK,为了得到较宽范围的看门狗信号,PCLK 先被预分频,之后再经过分频器分频.预分频比例因子的分频值,都可以由看门狗控制器(WTCON)决定,预分频值的有效范围从0 到256-1.分频因子可以选择16,32,64 或者128. 看门狗定时器记数值的计算公式如下: t_watchdog=1/ [PCLK/( prescaler value +1)/ Division_factor ] 看门狗的定时周期为T=WTCH×t_watchdog 一旦看门狗定时器被允许,看门狗定时器数据寄存器(WTDAT)的值不能被自动的装载到看门狗计数器(WTCNT)中.因此,看门狗启动前要将一个初始值写入看门狗计数器(WTCNT)中. 调试环境下的看门狗当S3C2410A 用嵌入式ICE 调试的时候,看门狗定时器的复位功能不能启动,看门狗定时器能从CPU 内核信号判断出当前CPU 是否处于调试状态, 如果看门狗定时器确定当前模式是调试模式,尽管看门狗能产生溢出信号,但是仍然不会产生复位信号. 5,S3C2410A 相关寄存器 WTCON――看门狗定时器控制寄存器看门狗控制寄存器能够禁止或者允许看门狗时钟,从四个不同的时钟源中挑选时钟信号,允许或禁止中断,并且能允许或禁止看门狗时钟输出.如果用户想要使用看门狗作为普通时钟,应该中断使能,禁止看门狗定时器复位. WTDAT――看门狗定时器数据寄存器WTDAT 用于设置看门狗定时器的超时时间值,在初始化看门狗过程中,WTDAT 的值不会自动加载到定时计数器中,首次使用定时器超时值为其初始值即0x8000,以后该寄存器的值会被自动加载到WTCNT 寄存器中. WTCNT――看门狗定时器计数寄存器WTCNT 为看门狗定时器工作的时间计数器的当前计数值,注意在初始化看门狗操作后,看门狗数据寄存器(WTDAT)的值不能自动装载到看门狗计数寄存器(WTCNT)中, 所以看门狗被允许之前应高初始化看门狗计数寄存器的值. 6,实验程序 由于看门狗是对系统的复位或者中断的操作,所以不需要外围的硬件电路.要实现看门狗的功能,只需要对看门狗的寄存器组进行操作.即对看门狗的控制寄存器(WTCON) , 看门狗数据寄存器(WTDAT) ,看门狗计数寄存器(WTCNT)的操作. 设计流程如下: 设置看门狗中断操作, 包括全局中断和看门狗中断的使能, 看门狗中断向量的定义. 对看门狗控制寄存器(WTCON)的设置,包括设置预分频比例因子,分频器的分 频值,中断使能和复位使能等. 对看门狗数据寄存器(WTDAT)和看门狗技术寄存器(WTCNT)的设置. 启动看门狗定时器. 6.1 主功能函数 int Main(void) { ChangeClockDivider(1,1); ChangeMPllValue(0xa1,0x3,0x1); Port_Init(); Uart_Select(0); Uart_Init(0,115200); Uart_Printf("watchdog test is beginning\n"); watchdog_test(); while(1); }

“看门狗”开关原理

“看门狗”开关 一、开关介绍 户外分界断路器设备具备故障电流检测功能,保护控制功能(过流保护、速断保护、零序保护),适用于10kV 架空线路,可实现自动切除单相接地故障和自动切除相间短路故障。安装点适用于10kV 配电线路用户进户线的责任分界点处或主干线上运用短路保护等。

二、如何操作 2.1 机械操作

2.2 控制器电动操作 控制器通电延时 10 秒,自动检测开关储能信号,检测到分界断路器未储能则自动发出电动储能命令,分界断路器接收到储能命令后,自动完成电动储能。

三、基本功能与操作 1.开关本体手动分合功能 如同通用的断路器一样,分界断路器具备现场手动分合和电动分合控制功能。 2.模拟量检测功能 控制器与开关本体配合使用可检测线路的两相电流、零序电流和线路电压,上 述模拟量信号由开关本体航空插座输出,从控制器底部的CT/IO 插座通过航空插头接入控制器。通过控制器内部的信号转换和计算,可实时监测其运行值(用笔记本电脑通过控制器的维护通信口或配置通信模块后可接收及处理这些测量数值)。 3.保护控制功能 a)零序保护 通过对控制器的定值整定和对零序电流的监测,分界断路器能侦测和判定用户界内的单相接地故障,在延时达到整定值后执行分闸操作,自动切除接地故障;变电站及馈线上的其 它用户避免发生停电事故, 为了避免瞬时性故障造成开关分闸,可对分界断路器进行重合闸设置,重合闸时间可自行设定,为了避免永久性故障对线路造成严重损坏,或其它保护的时限配合问题,分界断路器做了重合闸后加速保护功能。 零序保护的控制功能适用于配电网中性点不接地系统、中性点经消弧线圈接地系统和 中性点经小电阻接地系统。 b)过流(速断)保护 通过定值整定和对相电流的监测,分界断路器能侦测和判定用户界内的相间短路故障,经延时判定后,控制器输出分闸命令使分界真空断路器自动分闸,自动切除过流故障,变电站及馈线上的其它用户避免发生停电事故, 为了避免瞬时性故障造成用户长时间停电,在控制器保护动作后,对分界断路器进行重合闸,重合闸时间可以设定,为了避免永久性故障对线路造成严重损坏,或其它保护的时限配合问题,控制器做了重合闸后加速保护功能。 4.线路失电状态下的分闸及保护告警功能 控制器在[自动]运行状态时,如用户界外发生相间短路故障后,会造成变电站出线开 关掉闸,控制器无输入电源,在整个装置失电后,控制器靠储能电容维持其正常工作,在此期间可执行分闸输出(DC 48 V)使开关可靠分闸。无论是单相接地故障还是相间短路故障致使分界断路器保护动作,控制器的ALARM告警指示灯均常亮或闪亮,提示用户界内发生了单相接地或相间短路故障。 5.自检功能 控制器在正常运行时定时自检(由程序控制自动进行),自检的对象包括定值区、输出 回路、采样通道、E2PROM等,自检异常时,点亮自检告警指示灯,并且闭锁跳合闸回路。 6.控制器的基本操作 控制器的所有操作均在其圆形罩壳的底部,COM内设TV输出回路保护熔管,当控制器内部电路发生故障时,保护开关本体内置TV不受影响。CT插座连接从开关侧引来的测量电缆,IO插座连接从开关侧引来的控制电缆。ALARM为保护动作发光二极管指示信号;定值设定窗口在设备正常运行时由一密封小盖关闭,当需要进行定值修改或检查控制作状态时则开启

PWAT100看门狗控制器功能规划

智能大用户看门狗 控 制 器 功 能 规 划 广州智光自动化公司 2012年7月 编制:黄惠群

1、智能分体式终端控制器 智能分体式终端控制器PWAT-100是一款分布式安装集保护测控装置,由控制器主体、控制器显示模块、CT模块和数据线组成。其中主体为导轨式安装,显示模块为嵌入式面板安装,非常适合配置于体积较小的配电箱体。 控制器主体集保护、测量、控制、通讯等众多功能为一体,采用频率高达100M的高速微处理器芯片作为核心运算单元,运算速度快,可靠性高,抗干扰能力强;显示模块可实现测量参数的显示、定值的查询整定和控制命令的输入等。装置通讯功能强大,具有光电隔离的RS-485通讯口,支持开放式的通讯协议,便于构成高效经济的保护测控网络。装置的主要原理架构图如下:

2 继电保护功能 2.1短路保护 三相塑壳断路器作为主要的低压断路器,在低压出线继电保护上用的很多。当出线分路的某单相接地出现短路电流、相间短路及三相短路时,断路器将流过很大的电流,使断路器立即跳开,断路器都是同期切断该分路的全部三相。由于断路器的断开时间,是跟断路器的特性与电流的大小有关系的,所以当发生短路电流时,断路器断开的安全及可靠性不够高。为了获得线路更高的安全性及可靠性,控制器采用短路保护,其短路跳闸电流的大小可以设定,这样就可以通过设定其动作定值,提高其安全可靠性。 参数设定意义如下: 定值:设定短路跳闸电流,当保护电流大于整定定值时,保护满足动作条件。 分闸:选中时,表示满足保护条件时,分闸继电器出口(本设计中表示K3继电器),否则分闸继电器不出口。 告警:选中时,表示满足保护条件时,告警继电器出口(本设计中表示K8继电器),否则告警继电器不出口。 告警保护逻辑: ①保护电流值(二次值)> 短路保护整定定值(设定的值为二次值) ②告警保护投入 ①、②是逻辑“与”关系,满足条件则保护立即动作。 若在分闸保护延时时间内,保护电流值<= 0.95*保护整定定值时,告警保护自动返回。 若故障时间超过分闸保护延时时间,则须手动复归返回。 分闸保护逻辑: ①保护电流值(二次值)> 保护整定定值(设定的值为二次值) ②保护分闸投入 ③保护延时时间> 时间整定定值(ms) ①、②与③是逻辑“与”关系,满足条件则保护动作。若保护电流值<= 0.95*保护整定定值时,分闸保护返回。

用CD4060制作看门狗报警电路

用CD4060制作看门狗报警电路 看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。 原理图: CD4060芯片特性 1) 电压范围宽,应该可以工作在3V~15V,输入阻抗高,驱动能力差外,跟74系列的功能基本没有区别; 2) 输入时,1/2工作电压以下为0,1/2工作电压以上为1; 3) 输出时,1=工作电压;0=0V; 4) 驱动能力奇差,在设计时最多只能带1个TTL负载; 5) 如果加上拉电阻的话,至少要100K电阻; 6) 唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数。 以AT89C51为例: 看门狗电路由14位二进制计数器CD4060和三极管VT1、VT2等组成。

Vout接单片机AT89C51的引脚输出口P1.7,由单片机的CPU向看门狗电路发送喂狗信号——正脉冲,在两个正脉冲间隔内,P1.7保持为低电平(此功能要结合软件才能实现,相应的软件设计在下面介绍)。我们知道,单片机AT89C51的I/O口带灌电流负载的能力比较大,每个引脚低电平时的吸入电流为20 mA,带拉电流负载的能力却很小,实测情况是,每个引脚高电平时的输出电流仅25μA,现在P1.7口被设计成带拉电流负载的方式,为了提高P1.7口带拉电流负载的能力,所以,电路中设置了上拉电阻R3。 14位二进制计数器CD4060的计数脉冲由其内部振荡器和外接阻容元件R1、R2、C1组成的电路产生,振荡周期为 T0SC=2.2×R1×C1=0.22 ms 振荡器产生的计数脉冲(矩形波)可以直接引出,同时还可以从CD4060的10个输出端Q4~Q10和Q12~Q14得到不同分频系数的方波输出,各方波输出信号的周期如表1所示。这样,如果CD4060得不到CPU通过P1.7口发送来的喂狗信号——正脉冲,则CD4060的输出端Q14在1.8S内将产生一个完整周期的方波信号,而且低电平在前,高电平在后,其高电平经三极管VT1、VT2处理后形成单片机AT89C51的复位信号,使单片机AT89C51复位。由此可见,单片机AT89C51正常工作时,只要在0.9S内从P1.7口送出一个正脉冲,便可及时清零看门狗,输出端Q14就不会产生定时溢出信号,从而使看门狗电路对单片机系统不起作用。并且,从CD4060的10个输出端Q4~Q10和Q12~Q14可以得到不同周期的方波信号,经三极管VT1、VT2处理后形成单片机系统的复位信号,可以适应不同用户应用程序,从而该硬件看门狗电路可以适应不同的单片机应用系统。 对MCS-51系列的单片机而言,它所需要的复位信号是高电平宽度大于2个机器周期的正脉冲,例如,单片机的时钟脉冲频率为12 MHz时,则所需要的复位信号高电平宽度为2μs以上就可以了,而由上面的分析可知,CD4060的Q14输出的是高电平宽度为0.9 s的方波,如果让它直接作为单片机的复位信号,则单片机的复位时间势必在0.9 s以上,这样尽管可以使程序跑飞的单片机复位,但是显然没有做到尽快地引导跑飞的程序到正确的轨道来,如果这样做的话,对于某些单片机应用系统而言可能带来非常严重的后果。图1中的三极管VT1、VT2及其周围阻容元件构成波形转换电路,把较宽的正脉冲变换为较窄的正脉冲,从而较好地解决了上述的问题。三极管VT1、VT2构成的2级直接耦合放大器作为缓冲器使用,它是CD4060的输出端Q14的灌电流负载,C2、R8是微分电路。 经分析后不难看出,电路中的R7、R8、C2还具有单片机上电复位的功能。 2 上电复位与看门狗信号复位的不同处理过程 由于程序跑飞很可能会造成一些随机破坏事件,对某些系统而言,希望尽可能从断点处恢复运行,因此,有必要妥善解决跑飞的程序回复后的处理。 单片机应用系统上电时,上电复位电路会使得单片机处于复位状态,这一般称为冷启动,这种情况下,单片机处于复位状态表现为: (1) 程序计数器PC的值为0000H。 (2) I/O口(P0、P1、P2、P3(1))为FFH状态,即准双向I/O口的输入状态。 (3) 堆栈指示器SP=07H,即堆栈底为片内RAM的07H单元。 (4) 除上述状态外,所有特殊功能寄存器SFR的有效位均为0。 (5) 上电复位时,由于是重新供电,RAM在断电时数据丢失,上电复位后为随机数。

单片机心得与看门狗程序整理知识分享

单片机学习心得 时光飞逝,一转眼,一个学期又接近尾声了,本学期的单片机的课程学习也结束了。这里说说我学习单片机的心得和体会。 1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,说KEIL 不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。 2、知识点用到才学,不用的暂时丢一边。 厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写 流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。 3、程序不要光看不写,一定要自己写一次。 最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。 4、必须学会掌握调试程序的方法。不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。 5、找到解决问题思路比找到代码更重要。 我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。 6、开动脑筋,运用多种方法,不断优化自己的程序。 想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让

ZW32-12F看门狗智能分界开关

ZW32-12F看门狗智能分界开关 ZW32看门狗分界开关产品概述: ZW32-12(G)/M630-20型户外高压永磁智能型(看门狗)真空断路器(以下简称永磁开关)是三相 交流501"1z、额定电压12kV的户外高压 开关设备。永磁开关主要用作变电站。10kV出线开关及10kV级三相交流电力系统中作为分、合负荷电流,开断过载电流及短路电流的 线路保护开关。佳吉电气O135******** YUAN 断路器符合GB1984-2003《高压交流断路器》、DL/T402-2007《高压交流断路器订货技术条件》和DL/T403—2000《12kV~40.5 高压真空断路器订货技术条件》等枝术标准。 结构特点 1、永磁开关由真空开关本体,单稳定永磁操动机构和智能控制器三部分构成,因而具有广 泛的配合范围和灵活方便的动作程序整定方式,具有很高的工作可靠性和安全性,佳吉电气 是具有控制和保护功能的新型“机电一体化”智能高压开关设备。 2、断路器符合GBl984-2003《高压交流断路器》、DL/T402-2007《高压交流断路器订货技术 条件》和DL/T403-2000《12kV~40 5kV高压真空断路器订货技术条件》等技术标准。 ZW32看门狗分界开关型号含义: ZW32看门狗分界开关使用环境: 1、周围空气温度:上限+4-40~C,下限-40~C 2、海拔:不超过3000mm 3、风压:不超过700Pa(相当于风速34m/s) 4、空气污秽程度:不超过IV级 5、覆冰厚度:不超过10mm 6、没有火灾,爆炸危险,化学腐蚀及剧烈振动的场所 ZW32看门狗分界开关结构特点: 佳吉电气该断路器由三相支住、机构箱组成,结构简单明了,三相支柱及电流互感器采用 户外环氧树固体或硅橡胶绝缘,具有耐高低温、耐紫外线、耐老化等优点;采用小型化弹簧 操动机构,分合闸能耗低、机构传动输出采用主轴滑动方式,无扭力损耗,分合传动件少, 可靠性高;电流互感器安装于动端出线,二次采用插拔结构,维护更换方便。

服务器USB防死机看门狗解决方案

服务器USB防死机看门狗 解决方案 适用设备:基于Windows系统的工控机、监控主机、DVR、触摸屏主机、广告发布机、排号机、无人值守游戏工作室、电子 警察主控机、服务器、PC机等需要长时间稳定运行的设 备。嵌入式系统、linux系统暂不支持。 主要功能:当Windows或监视的应用程序、服务无响应后自动恢复,恢复不成功则自动重启机器。 独有特点:软件采用多任务技术,可同时连续监测128个应用程序或Windows服务。USB接口芯片采用英国FT公司的工业级 产品以确保防死机智能卡硬件的稳定可靠。独有的计划任 务功能设置功能可以定期重新启动电脑以保障系统的稳 定。 使用价值:智能监测,灵敏度高;无需人工到达现场手动重启,响应速度快,实现真正的24小时无人值守。 专业设计:软硬件部分均由amdtech进行的可靠性,稳定性及安全性设计,给客户带来省心放心的防死机效果。 一、系统组成

本系统由监测软件(守护精灵V2.0)、硬件板卡及若干连接线组成。 图1软件界面 图2硬件狗卡板 1、USB口 2、两个RESET口; 3、电源指示灯(D1); 4、工作指示灯(D2) 注意:红色电源指示灯(3)亮表示工作正常。绿色工作指示灯(4)

亮表示工作正常;绿灯灭表示当前正在系统设置或系统正 在重启或系统没有正常工作。 5、PC-USB端口连接线(红色端接VCC,白色端接GND) 6、reset 线 图3连接线 二、硬件安装(★★★安装前请先关闭主机电源★★★) 第一步:用USB线(5)连接硬件狗USB口(1)和主机上的USB口。 注意:硬件狗卡板上从左至右依次是VCC, Data-,Data+,GND,另外PC-USB端口连接线红色端接VCC, 白色端接GND,请务必按照该线序连接。 第二步:将机箱reset按钮连接线接到硬件狗的reset口(2)(两个任选一个),用reset线(6)连接主板reset跳线和硬件狗上剩 下的reset口(2)。 第三步:用固定螺丝将硬件卡板固定在主机内部。

相关主题