前几天看过一篇文章,介绍继电器驱动保持的这个功能,所以就想趁机总结下其原理与大概的实现方案。
继电器控制电路属于整个继电器驱动模块中的重要环节,驱动电路与继电器的内容我们之前都多少涉猎过,而继电器保持功能就属于控制电路中的重要内容,今天就看下这块。
继电器保持功能需求背景
继电器保持功能是这样描述的:当单片机出现非预期的异常复位时,继电器可以继续保持一段时间的当前状态,这段时间内要确保单片机复位后又回到之前的工作状态,如果超时后单片机还是没能恢复,超时后就直接断开继电器;这个保持时间大概为2s,我特意去找2s的出处暂时没有找到,但行业内像是约定俗成一样,大多都是按照2s执行的。
这个延时断开的逻辑是保护行驶过程中的车辆,不会因为单片机偶发的异常复位而导致动力输出突然中断,进而导致危险。
保持功能实现方案
从需求上分析,我们除了需要设计基本的高低边驱动电路、MCU控制电路外,还需要设计一个延时保持的电路,这个电路要实现保持指定的时间,而不是一直保持;从竞品上看到的方案有如下几种。
一种是使用单稳态多谐振荡器方案,典型器件是来自TI的SN74LV123A-Q1,其框图与真值表如下:可以看到其输出Q是一个脉冲的形式,而且脉冲时间可配,所以可以当成延时保持的控制信号。
此器件产生脉冲的原理如下图所示:外部通过RC元件来设置充电时间(即脉冲高电平持续时间),电容的一端接到内部的比较器;比较器默认输出为低电平,然后当Input有效时,电容迅速放电到0V,导致比较器输出高电平,随后Input信号变成无效,然后电容就会慢慢充电,直至比较器电平翻转。
另外一种是使用锁存器方案,典型器件是74HC595,这个器件在我刚工作时就看到师傅用于继电器控制,它内部包括移位寄存器和存储寄存器两部分,数据写入方式是通过时钟信号边沿触发的形式一级一级写入移位寄存器,然后8bit整体锁存到存储寄存器中。
下图为74HC595的真值表,其输出端的状态是锁存在内部存储寄存器中,当MCU复位时,只要电源还保持着,并对外部一些控制引脚做特殊状态上下拉,那么内部的状态就不会变。
但是它的输出会一直保持,即使复位2s超时,所以我们还需要设计一个延时关断电路,等到时间超时,就控制74HC595的OE引脚为高,这样其输出就都变成高阻状态了。
延时保持电路的专利介绍
在宁德时代的专利《CN 110262297?继电器控制装置及供电系统》中,就介绍了几种继电器延迟保持的方案,总体解决逻辑相似,不过有很多控制细节方面的注意点,例如MCU复位后再次运行,它要先判断目前的驱动状态,然后制定策略是继续保持继电器状态还是重新设置,感兴趣大家可以去学习借鉴下。
总结:
今天有阅兵式,准备下班后看看回放,给娃看看飞机大炮啥的;以上所有,仅供参考。
835