历史上的今天
今天是:2025年03月04日(星期二)
2018年03月04日 | 采用施密特触发器设计的一个廉价“看门狗”
2018-03-04 来源:eefocus
该电路可宜接用于MCS-51系列等单片机系统。电原理如附图所示。
图中一片四-2输入“与非”施密特触发器74HC1320其门c、门d、门b与C3、C4、R4、R5、D3、D2等组成“看门狗”
电路。与人们熟识的“看门狗”电路不同,其间没有振荡电路。图中门c、C3起隔离作用,门c的输入端可以与系统程序主循环中经常变化的某一个I/O脚相连(因为是标准的CMOS高阻输入,因而不会影响该I/O引脚的功能),也可专门为其设置一个I/O引脚,如P3.7端口,只要在主循环程序中加上一条取反该端口的指令(如CPLP3.7)就可以了——一小循环该端口输出高电平,再一个循环输出低电平……这样,门c输出端③脚就不断变化,门d的输出端⑥脚也随之变化。当⑥脚为高电平时,通过R5向电容C4充电,当⑥脚为低电平时,C4则通过二极管D3很快放电,因而,只要系统程序的主循环正常运行,该I/O端口输出不断变化,即门d的⑥脚不断变化,C4就充不上电而始终处于低电平,加到门b,使门b的⑩脚输出高电平,这样由于D1、D2被封死,门b对整个电路起不了任何影响,整个系统保持正常运行。
如果系统受干扰而出现死机或程序跑飞,主循环不能正常运行,则I/O端口(P3.7)不再变化,这时门c的输入端,不管停留在高电平还是低电平,因电容C3的隔离,门d的输入端④、⑤脚有电阻R4的下拉,其⑥脚输出恒为高电平,C4通过R5充电,约500ms后,使门b(11)脚输出低电平。一方面C1经D1很快放电,使门a的⑩脚为低电平,门a的⑧脚输出高电平,致CPU复位。另一方面C4经D2、R3放电,当C4放电至VL阈值电平时,门b翻转,其11脚输出高电平,封住了D1、D2,这样电容C1、C4又分别经R1、R5开始充电,由于R1、C1的充放电时间常数只有R5、C4的几分之一,因而门a先翻转,其⑧脚输出低电平,CPU复位后重新开始正常运行。一旦主循环正常运行,门c的输入就不断变化,门b的输出也不断变化,C4又充不上电了……图中,门a与电阻R1、R2,电容C1、C2及稳压二极管DW构成了电压监控电路,门a⑩脚上的R1、C1主要用于“上电自动复位”,即在系统上电初始阶段,门a⑩脚处于低电平,使其⑧脚输出高电平复位脉冲,CPU复位。门a的⑨脚上的C2、R2、DW则起“掉电保护作用”。在上电瞬间,由于C2的存在,使得⑨脚处于高电平,当电源电压稳定时,由于2.4V的稳压二极管DW的存在,使得⑨脚的电位钳位在VDD-2.4=5-2.4=2.6V,根据施密特触发器的特性,⑨脚仍然“保持在高电平”,不会影响门a的原有状态。当系统电源掉电或欠压时,如VDD掉至4V,则⑨脚电位为VDD一2.4=4-2.4=1.6V,低于VL阚值电压。这时,门a翻转,其⑧脚输出高电平,使CPU处于复位状态,避免了系统在掉电欠压过程中产生的误操作,直到电源恢复正常时,复位保护才撤销,CPU才开始正常运行。

下一篇:“看门狗”电路特性
史海拾趣
|
如题。就是在*.bib文件下添加dll 属性是SH,(系统隐藏),可是在wince windows目录下是可以copy的,要怎么搞啊。。… 查看全部问答> |
|
WinCE5.0系统加载完之后,屏幕还显示Logo,采用的是研华的嵌入式主板,Flash芯片采用M-System ,硬件驱动都是研华提供以及BSP, 我采用Hive-based注册表方式, [code] [HKEY_LOCAL_MACHINE\\init\\BootVars] \"SystemHive\"=\"Docume ...… 查看全部问答> |
|
我通过BOOL NTLMSetUserInfo( LPTSTR pszUser, LPTSTR pszPassword )这个函数给系统添加了用户名和密码,请问如何通过过程序来获取这个密码呢?我看了看Ntlmssp.h 这个头文件,好像没有类似NTLMGetUserInfo函数用来获取用户信息的。 … 查看全部问答> |
|
为了解决DIM3517的显示问题(因为板子没有代LCD),坛主建议我买一块LCD,最后她可以买回,坛主一片盛情,买一个LCD虽然不贵,但是只用一次的话显得太浪费,不符合一个开发者的做法,寻找廉价方案,另外一个方案:HDMI转AV,因为我的电视机有AV接口 ...… 查看全部问答> |
|
我买的stm32f103zet6最小系统板,在设置中断的时候,发现不论我把外部中断设置在哪个端口,都会在端口A上面反映,比如说我设置PB.2为外部中断, 但写程序的时候,PB.2不会响应中断,而PA.2则会,就算我把A的时钟关了,它也会相应中断。 就相当于 ...… 查看全部问答> |
|
反复折腾,摄像头终于可以工作了。发现1.12版的可以,1.19版的不行。主要区别也就在main.c文件上,用1.12版的main.c文件替换1.19版的也可以工作。对比文件后,发现主要问题在于OV2640_JPEG_Dis()函数,将它从93行的if前移到if语句中就可以了。 ...… 查看全部问答> |




