目录

  • 1.简介
  • 2.开关行为
  • 3.开关种类
  • 4.消抖
  • 5.消抖指南

1.简介

  • 在电子设备内两个金属触点随着触点的断开闭合便产生了多个信号,这就是抖动。“消抖”是用以确保在每一次断开或闭合触点时只有一个信号起作用的硬件设备或软件。
  • 机械开关和继电器触点·通常由弹性金属制造,由传动装置强制接触。当触点撞击在一起时,它们的惯性和弹性共同作用形成抖动,导致产生一个快速的脉冲电流而不是从零电流到全电流的平稳转换。开关和线路中的寄生电感与电容进一步引起波形改变,形成一系列衰减正弦振荡。这个影响在交流电路中不明显,因为抖动太快不至于影响大多数设备。但在某些模拟和逻辑电路中可能产生问题,因为这些电路反应太快会将开关脉冲误当作数据流。
  • 时序逻辑数字电路特别容易受到触点抖动的影响。开关抖动产生的电压波形干扰正常逻辑电路的振幅和时序规格要求。结果就是亚稳定性、竞争、小脉冲和故障等问题导致电路失效。

2.开关行为

下图是一个带有上拉电阻的简单按键开关,以及当按键压下和释放时相应的输出。



如果开关是用于开灯或启动风扇马达,则触点抖动不是什么问题。如果开关或继电器用作数字计时器、个人计算机或微处理器等设备的输入,由于触点抖动则会产生问题。计数器将会出现多次计数而不是一次计数,在开关释放的时候也会出现同样的问题。

3.开关种类

最简单的开关类型是将两个电导体通过传动机构的运动联系在一起。其他的开关更复杂,包括靠物理信号实现开关的电子线路(如光或磁场)。无论如何,任何开关的最终输出将是(至少是)一对接线端子,它们或通过开关内部触点装置连接在一起(闭合)或不连接(断开)。
一些常见的开关如下:

  • 拨动开关是通过一个控制杆转到两个或多个位置中的一个位置来操纵的。家用电路常用的灯开关是拨动开关的一个例子。
  • 按钮开关是双位设备,通过按钮的按下和释放来操纵。大多数按钮开关内部有一个弹簧机构,通过瞬间操作使按钮回到“出来”或“不按下”位置。
  • 温度开关包含两个紧挨的金属薄片,每个金属片有不同的热膨胀率。当金属片加热或冷却时,两片金属间的不同热膨胀率使它们产生弯曲。这样,薄片的弯曲就可以用于操纵开关触点位置。
  • 压力开关使用气体压力或液体压力,压力通过活塞、薄膜或波纹管变为机械力来驱动开关。
  • 液位开关也可设计用来探测固体材料的水平,如木材、粮食和煤炭等。
  • 选择开关是由旋钮或某种控制杆来操纵到两个或多个位置中的一个位置。类似于拨动开关,选择开关可能保持在任意的通断位置或内置弹簧装置回位。

4.消抖

以下是一些用于解决触点抖动问题(输入信号“消抖”)的方法。

  • RC消抖


如上图所示,一个电阻—电容(RC)网路可能是最常见且最容易的消抖电路,就是把一个电阻和电容连接在一起,开关连接至中间。电容经过电阻充电,开关未使用的默认状态是高电平。当开关闭合时,它慢慢将电容消耗至地电位,以此减弱所有小抖动的影响。这种电路能承受某些抖动但不完全消除它们。

  • 硬件消抖电路


上图展示了另一种硬件方法。它使用了由一对与非门电路制作的交叉耦合闩。它还可以用SR双稳态触发器设计。使用交叉耦合闩的好处是它提供一种完全的消抖而不用考虑延时限制,而且它的响应速度和触点断开/闭合一样快。电路要求触点正常断开或闭合。在开关中,这种安排称为“双掷”,在继电器中,这称为“形状C”。

当开关处于位置“a”时,门电路“1”的输出就是逻辑高,不考虑其他输入值。这使得门电路“2”拉到逻辑低。如果开关在触点间移动并不在这两点间的区域短暂停止,由于门电路“2”将逻辑“0”回送到门“1”使其保持状态。这样保证了锁存器输出为非抖动。

接近以上思想的软件方法之一是将两个触点上拉输入至CPU的输入引脚,CPU当然会注意到许多抖动,但通过编写探测两个触点之一行为的简单代码,抖动同样可消除。

  • 软件消抖电路

软件开关消抖可以很简单,尽管算法的选择会依赖于应用及开关的操作。

检查开关的动态特征和评估环境的影响很重要。随着开关的断开或闭合,所有开关显示开关触点抖动。在触点完全到达最后位置前,开关触点实际上要多次相互反弹。环境干扰包括振动及最重要的电磁干扰(EMI)。电磁干扰是一种有害的干扰,是由于外部来源发射的电磁辐射而影响电路。这种干扰会引起开关内噪声导致抖动。电磁干扰可通过适当的消抖程序来处理。

以下是一些软件(固件)的开关消抖技术:
1)在足以让抖动停止的时间后读出开关。
2)开关启动时中断CPU并在中断服务程序(ISR)中消抖。
3)使用计数器消除噪声并验证开关状态。

5.消抖指南

浪费大量CPU周期来解决消抖问题并不是一个好主意,消抖作为一个小问题,只能占用计算机一小部分资源。所以应当选择将CPU开销最小化的方法,以下是一些应当遵守的指南以在电路中拥有强大的消抖机制:

  • 与消抖相关的CPU开销应当最小化。
  • 非消抖开关必须连接至已编程序的I/O引脚,绝不能连接至CPU的中断。如果连接至CPU中断,抖动会引起多重中断,同样会增加CPU的负担,因为每次中断CPU都会执行中断服务程序(ISR)。
  • ISR延时不能容忍,必须保持ISR的快速。与开关状态相关的中断不应当用作时钟或触发器的数据信号,因为这会违反最小时钟宽度或数据建立及保持时间等原则。
  • 开关输入取样的频率不应当与外界事件同步,否则会产生周期性的EMI。以常用50/60Hz频率的速度取样应当避免。甚至机械振动也会产生周期性干扰。对汽车而言,甚至以发动机振动或驾驶杆振动同步的频率取样都可能引发EMI。
  • 系统应当对开关(用户)输入立即响应。万一开关状态显示在LED或显示器上,用户要系统迅速响应以避免显示器或LED出现混乱情况。
  • 使用定时器有规律间隔地中断CPU,而不是用延时来等待输入稳定。这样可使得消抖代码可移植到新的编译器或CPU中,而不是随着每次时钟频率变化或CPU变化而改变等待状态。

chapter8——消抖技术相关推荐

  1. 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路

    SR锁存器常常被用来实现SPDT开关消抖,但在纳秒时域中它是如何实现的呢?Max Maxfield编辑一直试图找出应该在消抖软件中使用多长的等待状态才能可靠地消除一般的开关抖动(甚至最严重的抖动).本 ...

  2. stm32硬件消抖_在 STM32 上使用 C++ 指南

    结识更多同行,共同讨论"嵌入式"技术.欢迎添加社区客服微信,备注发送"电源+公司名(学校)+职位(专业)"拉您入群. 简介 本文描述了如何使用在搭载了 RT-T ...

  3. Verilog中按键消抖检测的实现

    Verilog按键消抖是FPGA学习时的一个入门教程,为避免眼高手低,还是再次分析与记录一下.此处着重介绍按键消抖的基本原理,对按键消抖与检测的关键技术进行分析,并进行功能仿真. 一.按键消抖基本原理 ...

  4. 单片机消抖c语言程序,基于单片机定时器软件消抖C51程序研究

    向兵 杨述凯 摘 要:随着电子技术的发展,单片机的应用在教学及科技开发中越来越普遍,而针对单片机的开发环境而言,大多采用C51语法进行设计.按键的使用在大多数硬件设计里相当频繁,而按键的干扰处理可以使 ...

  5. 基于opencv对高空拍摄视频消抖处理

    一.问题背景 无人机在拍摄视频时,由于风向等影响因素,不可避免会出现位移和旋转,导致拍摄出的画面存在平移和旋转的帧间变换, 即"抖动" 抖动会改变目标物体 (车辆.行人) 的坐标, ...

  6. 视频消重技术.批量处理去重消重去水印去logo软件批量处理去重消重去水印去log...

             最近一段时间,自媒体行业发生了很多事情,从"鸿茅药酒事件"."伊利事件"再到最近的"二更事件",给自媒体行业发展带来了不小 ...

  7. 关于按键消抖以及LED灯控制的一个实例

    要求: 1.未按建则所有LED全黑: 2.按K1按钮,则用前8个LED灯二进制显示25: 3.按K2按钮,则12只LED合并显示流水灯效果,3个LED点亮并向右流水. 注:是HR-240B FPGA  ...

  8. 【Verilog HDL 训练】第 09 天(按键消抖)

    5月7日 按键防抖 1. 用verilog实现按键抖动消除电路,抖动小于15ms,输入时钟12MHz. 在编写Verilog代码之前,先分析下一些前提问题,首先是几个按键(1个,多个),我们以1个和三 ...

  9. 【 FPGA 】按键消抖与LED灯流动小实验

    记录一个小实验吧,实验的目的是仅仅是塞塞牙缝而已,没其他意思,很简单. 功能:拨码开关控制led灯工作与否,拨码开关为on,led灯工作,否则不工作:导航按键up和down,也就是独立按键而已,控制l ...

最新文章

  1. 计算机电缆称赞千 捷网络下拉刷词,电脑常用技巧
  2. HDU 1221: Cube
  3. python PyQt5中文教程☞【第一节】PyQt5简介
  4. 六十三、栈在括号匹配和表达式求值中的应用
  5. 社交网络图中结点的“重要性“计算(Dijkstra + SPFA + Floyd + 模板)
  6. 当你老了,一生最后悔什么?大数据告诉你!
  7. 获取所有某格式文件到文件
  8. gravity 时序图绘制,改
  9. git使用笔记(一)入门
  10. 微信模板消息47001错误
  11. perl中shift 和unshift 操作
  12. Maven+SpringMVC+Dubbo 简单的入门demo配置(另一篇)
  13. LINUX使用patchelf增加/修改rpath
  14. 三星s9更新android9.0,三星Galaxy S9/S9+ Android 9.0系统更新新进展
  15. IDEA 设置类注释模板
  16. Android WebApp NativeApp 适配测试自动化平台GoGo实现 东海陈光剑
  17. SQL中的comment语法
  18. Gentoo 安装笔记 2021/8
  19. GBD数据库相关文献中的EAPC怎么算?
  20. springboot+微信小程序“微印象”在线打印预约系统的设计与实现毕业设计源码061642

热门文章

  1. mac 删除系统默认的ABC输入法
  2. QT自定义窗口,可拉伸
  3. 机器人社社长事迹_科技之星事迹材料
  4. 两张二维人物图像互相换脸代码
  5. PPO Algorithm
  6. 三言|一种新技术一旦开始流行,你要么坐上压路机,要么成为铺路石
  7. 智慧家庭建平台是智能家居成败关键
  8. AI/大数据测试——各大厂质量保障实践分享汇总
  9. 数据到底能做什么? ——谷歌、腾讯、高德告诉你答案
  10. 【转】Apache Http Server与Tomcat实现负载均衡和集群