开关反弹和其他肮脏的小秘密

描述

Maxim提供了一种简单的解决方案来降低开关振铃的影响。这些器件适用于具有按钮面板、触摸屏显示器和简单按钮设备的应用。这些器件还提供过压和ESD保护。MAX6816/MAX6817/MAX6818在单个IC中集成了多种功能,因此无需大量分立元件。

开关可以做一些非常奇怪的事情。大多数工程师在将开关或继电器连接到数字系统后不久就知道了这个肮脏的小秘密。开关在数字系统的时间尺度上不会干净利落地成败。相反,典型的开关在打开或关闭所需的几十毫秒内进行多次转换,这是由于年龄、工作惯性、机械设计和开关接触表面的微观条件等影响。通常称为“开关反弹”,这种行为是生活中不可避免的事实。

将标准开关连接到数字计数电路后,您可以观察到打开时的多个计数和关闭时的多个计数(图 1 和图 2)。这种不稳定的操作可能会对数据造成严重破坏,因为从长远来看,确切的计数数量不一定会重复。开关反弹在单元之间、批次之间,甚至在单个开关的使用寿命内都不一致。薄膜开关和其他一些类型在新的时似乎不会反弹,但所有机械开关有时会反弹。没有什么可以确保另一个相同类型的开关将以相同的方式工作,或者特定开关在老化时保持无反弹。

继电器

图1.对于小型按钮开关,这种上升沿开关的反弹间隔约为 5ms,包括 10 次转换。就像弹跳球一样,开关动作频率向右增加。

继电器

图2.另一个上升沿开关反弹(对于5A触点继电器)显示大约5.5ms的反弹间隔,其中包括20个全幅度转换和一些较小的转换。

除了弹跳,开关和数字系统还有其他烦人的习惯。例如,当您在嘈杂的工业环境中运行开关接线时,会发生奇怪的事情。根据定义,开路开关具有高阻抗,因此干扰信号很容易承受负载。任何电容或电感耦合到开关接线的噪声脉冲都可能导致幻象开关闭合。

想象一下,一种称为可编程逻辑控制器(PLC)的专用工业计算机,它通过一个巨大的继电器控制电机。放置在电机附近的限位开关为PLC上的数字输入提供位置反馈。当PLC告诉电机启动时,流向继电器的电流浪涌,电机可以在长接线中耦合到其他导体,导致数字输入中的接地反弹或电容耦合尖峰。

如果设计不当,PLC 可能会将此尖峰解释为过早关闭开关并关闭操作。当PLC关闭负载时,由于接线电容,接线电感以及继电器和电机的感应踢的影响,也会发生类似的事情。如果PLC及其数字输入设计不当,这些尖峰和瞬变会导致数字输入读数错误。

家庭、办公室和工业中使用的设备上的数字和模拟输入会受到过压、电压瞬变和ESD冲击的影响。过压是由接线不当、各种故障条件和电源排序引起的(其中一个断电的盒子连接到另一个通电的盒子,即使是暂时的)。如上所述,电压瞬变通常与容性或电感耦合尖峰有关。ESD 在安装过程中可能会撞击连接器、操作员控制台或端子条。如果系统闩锁,这些瞬变中的任何一个都可能导致破坏。如果不是破坏性的,它们可能会导致 CPU 重置、看门狗溢出和其他类型的不稳定操作。

系统设计人员应该意识到这些问题以及用于解决这些问题的方法。解决此类接口问题的一种解决方案是一系列新的IC。IC (MAX6816/6817/6818单/双/八通道开关去抖器)提供万无一失、无软件的去抖动,以及过压和ESD保护。本文重点介绍IC开关去抖器的应用,同时介绍阻止过压、电压/电流尖峰、开关反弹和ESD的经典方法。

开关反弹

如果被问到,大多数工程师会说开关在软件中是去抖动的,去抖动“没有问题”。如果你适当注意细节,这两个假设都是正确的。软件去抖动可以处理反弹,但不能解决过压、ESD或其他瞬变问题。

也可以使用电阻器和电容器进行去抖动。通常,您需要一个上拉电阻、一个串联电阻和一个电容、一个施密特触发器缓冲器输入端的电阻器,以及一个二极管(通常),以确保电容电荷在关断期间不会迫使大量电流通过缓冲器的输入保护网络。对于多输入系统,由此产生的器件数量可能难以处理(图3),因此本文将不详细介绍此方法。

继电器

图3.分立元件可以提供去抖动以及ESD和过压保护,但设计合理的分立接口可以考虑所有可能的故障,这对于多个输入来说却很笨拙。

通过软件进行去抖动是当今使用的主要方法。一个好的去抖例程实际上是实时软件,它充当简单的低通数字滤波器。非开关数字输入通常也通过去抖滤波器进行路由。该技术可以通过在报告输入打开或关闭之前确保稳定状态来消除输入端的短瞬变。

下面的伪代码说明了一个输入的软件去抖动例程。如果您泛化例程并使用基于指针的变量等,它可以容纳多个输入。虽然充其量是一种平庸的方法,但尽管存在下面讨论的问题和缺陷,但经常使用这种类型的例程。

 

行动 评论
1. 输入定时器:过期? 计时器位在主例程中轮询。
2. 如果没有计时器,则返回。 去做一些更有用的事情。
3. 获取输入位。 “弹性”输入。
4.如果高则数++,否则清除。 如果输入为高,则递增计数器。
5. 如果计数 > 4 状态 = 1,否则为 0。 检查计数器并将其夹在 4。
6. 返回输入状态。 状态被取消退回。

 

此例程对开关闭包进行反抖,但即使开关反弹,它也会接受打开作为合法状态。虽然是无意的,但这种不对称操作在键盘和其他对关闭但对打开执行操作的系统中可能是可以接受的。对于通用输入,应去抖动两条边。

另一个缺点是,此例程假定开关在未关闭时处于打开状态,从而忽略开关不稳定(仍在跳动)的第三种状态。因此,更好的例程将报告最后一个非反弹状态,直到交换机达到新的去抖状态。但是,此操作也可能导致问题。在这种情况下,软件应该识别“变化”的第三种状态。

许多去抖动例程重复对输入进行采样,等待它在预先安排的样本数量内保持相同状态。如果交换机在该时间间隔内更改状态,例程将以相同的方式测试新状态的稳定性。此操作可能会导致较大的延迟,从而占用大量 CPU 时间。作为极端情况,应用于其通用输入端口之一的高频 PLC(无论是无意、故意还是由于故障)将完全挂起处理器。看门狗定时器可能会恢复处理器,但问题会无限期地再次出现;这不是一个坚固的设计。此外,您需要大量的RAM和代码来对具有大量输入的大型工业系统(例如PLC或通用输入板)进行去抖动。每个输入需要一个闭合计数器、一个开路计数器和 2 位来定义其状态。

瞬态和ESD抑制

ESD的标准预防是每个外部输入端的瞬态抑制器或MOV器件。例如,四通道和八通道TransZorb是™简单且相对便宜的器件,可以减少杂乱和空间要求,但必须注意避免故障电流的交叉耦合。这种方法在工业和汽车系统中很常见,工程师了解省略此类保护的危险。

一个好的做法是将一个220Ω电阻与V串联抄送端口输入设备的行。例如,像八进制74HC244或74HC573这样的普通CMOS输入器件消耗的电流非常小。如果它闩锁,220Ω电阻将电流和功耗限制在安全水平。不过,电源循环仍然是必要的。通常,不应将微控制器的端口引脚直接连接到外部输入。闩锁是一个问题,但辐射EMI可能会更糟。

由于除非将足够的电流注入其中一个引脚,否则器件无法闩锁,因此一些设计人员认为,与CMOS数字输入串联的电阻可以防止这些问题。事实上,现代CMOS IC中SCR锁存的阈值可能超过50mA。这种高电流阈值(在下一节中介绍)实际上在一定程度上可以防止过压,但不一定对ESD有效。15kV ESD冲击可以迫使大量电流通过寄生路径和电阻周围,甚至可以通过100KΩ强制大电流。

过压保护

过压保护使系统能够承受超出供电轨的连续和长期瞬态输入。例如,没有V的IC抄送应用具有来自外部电源的 24V 电压,施加到输入端。这种施加的电压通常会“反向驱动”保护网络,迫使电压进入系统内部的电源轨。一种有效的对策是使用与输入串联的电阻器,作用于连接到电源轨的保护二极管。横跨 V 的齐纳二极管抄送还应考虑输入端口的电源轨。为确保保护电路在最坏情况下不会失效,应计算该齐纳二极管和串联输入电阻的最大功耗。

MAX6816、MAX6817和MAX6818开关去抖器

几年前,Maxim工程师发现需要一种简单的接口器件,该器件能够消除开关的抖动,同时保护开关免受ESD和过压的影响。一些客户使用μP监控IC的手动复位输入,如MAX811,只是为了获得采用SOT-23封装的单通道去抖器功能。其他人则使用ESD保护的RS-232收发器作为通用数字输入设备。客户被RS-232 IC所吸引,因为它们可以在承受高压和ESD的同时处理低压转换。综合这些因素,Maxim生产了一系列开关去抖器,具有ESD保护和可靠的输入特性(图4和图5)。

继电器

图4.MAX6816系列开关去抖器的通用框图包括一个ESD和过压保护的输入结构,后接一个数字滤波器,用于对输入进行去抖动并施加欠压锁定。

继电器

图5.在这种典型的单去抖器应用中,唯一的元件是小型旁路电容和4引脚SOT-23封装。

MAX6816和MAX6817

MAX6816为单开关去抖器,采用4引脚SOT-23封装,MAX6817为双开关去抖器,采用6引脚SOT-23封装。它们提供去抖逻辑和数字滤波器、高达 ±25V 的输入过压保护和高达 ±15kV 的 ESD 保护,适用于恶劣的工业环境。它们采用 2.7V 至 5.5V 的单电源电压工作,典型电源电流仅为 6μA。它们还提供欠压锁定电路,确保上电时输出状态正确。由于每个输入端的专有ESD保护结构包括一个过压箝位二极管和一个63kΩ上拉电阻,因此这些IC无需外部元件即可提供与开关的直接接口。它们的标称去抖动延迟(40ms ± 20ms)掩盖了即使是最丑陋的开关产生的反弹(图 6)。

继电器

图6.MAX6816开关去抖动器系列的时序图显示,输入稳定后约40ms,输出状态发生变化。额外的MAX6818输出指示任何输入的状态变化。/CH可降低轮询开销,尤其是在多输入系统中。

MAX6818

MAX6818八通道开关去抖器设计用于数据总线接口(图7)。它监视 6818 个开关,除了单器件和双器件的去抖动和输入保护功能外,还提供状态改变输出 (/CH) 和三态数据总线输出。特别是,其/CH输出大大简化了μP的轮询和中断。每次系统读取数据输出(通过驱动/EN低电平)时,IC都会将/CH复位至高电平。当任何输入改变状态时,/CH变为低电平。MAX74与573HC20和其他标准<>引脚八通道逻辑器件引脚兼容。它可以轻松处理多个输入。

继电器

图7.在典型应用中,MAX6818数据输出保持三态,直到/EN被拉低。变化输出(/CH)在每次读取后复位为高电平,并在任何输入端的状态变化后设置为低电平。它可以由系统轮询或绑定到中断,如图所示。

MAX6816、MAX6817和MAX6818开关去抖器解决了数字系统与噪声、瞬态、“弹跳”输入端连接相关的多个问题。它们通过简化设计、减少 CPU 时间和开销以及更换多个无源元件,使系统更加稳健可靠。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分