chapter8——消抖技术

news2024/11/18 3:24:36

目录

  • 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变化而改变等待状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RobotFramework】FOR循环应用

自动化测试过程中,如果我们想多次运行某段语句,且每次使用的值都不一样,那么我们就要使用到循环。 在Robot FrameWork中,循环使用到的关键字是FOR,常用见应用如下。 应用一: FOR ${变量} IN 参数1 参数2…

知识图谱-KGE-语义匹配-双线性模型-2019:RotatE

【paper】 RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space【简介】 本文是北大和加拿大的研究团队发表在 ICLR 2019 上的文章,提出了 RotatE(Rotation Embedding),主要思想是将实体表示为复向量&…

Drupal9自定义module添加多个定时任务

drupal的自定义cron常见的就是hook_cron,具体做法参见: Drupal踩坑:在自定义module中添加cron job 这种方法只能一个module添加一个cron。如果想添加多个自定义的cron怎么办?使用hook_cronapi。 有两个模块提供 hook_cronapi&…

DeepLab V3学习笔记

DeepLab V3遇到的问题和解决方法相关工作DeepLab V3中的两种模型结构cascaded modelASPP model相对于DeepLab V2的优化Multi-grid MethodASPP的改进消融实验cascaded model消融实验ASPP model消融实验和其他网络的对比实验总结网络模型图遇到的问题和解决方法 对于DeepLab系列…

nginx使用配置(亲测自用)

文章目录一、作用二、案例1.动静分离将静态资源放入Nginx目录下2.负载均衡常见的几种负载均衡方式1) 轮询(默认)2)weight3)ip_hash4)fair(第三方)5)url_hash(第三方&…

Flutter - Button样式及参数

Material 组件库中提供了多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们都是集成于ButtonStyleButton,所以他们大多数属性都和ButtonStyleButton一样。在介绍各个按钮时我们先介绍其默认外观,而按钮的外观大都可以通过属性…

基于萤火虫算法优化的lssvm回归预测-附代码

基于萤火虫算法优化的lssvm回归预测 - 附代码 文章目录基于萤火虫算法优化的lssvm回归预测 - 附代码1.数据集2.lssvm模型3.基于萤火虫算法优化的LSSVM4.测试结果5.Matlab代码摘要:为了提高最小二乘支持向量机(lssvm)的回归预测准确率&#xf…

通信原理 | CRC循环冗余校验码

CRC循环冗余码 CRC校验的手算演示异或运算和多项式步骤一、展开多项式得到CRC除数步骤二、原数据串末端加0(多项式最高是几次就加几个0)步骤三、从左往右,按位异或(所得结果如果不够长,前面的0别忘了添加)CRC(Cyclic Redundancy Check )循环冗余校验码 CRC校验的手算演…

MQ高级(二)死信交换机

一、初识死信交换机(P159) 当一个队列中的消息满足下列情况之一时,可以成为死信(dead letter): (1)消费者使用basic.reject或 basic.nack声明消费失败,并且消息的requeue…

使用opencv截取旋转框目标

使用opencv截取旋转框目标1、第一种方法2、第二种方法3、两种方法的简单对比4、opencv 最小面积矩形返回角度的理解4.1、version4.2之前4.1、version4.2之后本文列举了两种方法,使用的数据如图,用的是改版rolabelimg标注的标注文件有四个点的坐标: 1、…

mybatis详述

文章目录一、引言1.1 什么是框架?1.2 什么是ORM框架?1.3使用JDBC完成ORM操作的缺点?二、MyBatis框架2.1概念2.2 MyBatis开发步骤2.3 如何编写mybatis映射文件(规范)三、mybatis-config.xml 配置补充四、mybatis接口与映射文件指令间 传递参数4.1 传递…

安卓APP源码和设计报告——北京旅游系统

目 录 一、概述11 1.1 课题描述11 1.2 需求分析22 1.3 开发环境33 二、系统分析与概要设计55 2.1 系统功能分析55 2.2 系统模块结构图66 2.3 数据库表的设计66 三、北京旅游系统的登录功能模块的详细设计88 3.1 登录模块的功能描述88 3.2 登录模块的界面布局的设计9…

185: vue+openlayers 引用hover插件,展示各种鼠标cursor样式

第185个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中使用hover效果,这里是引用了一个hover插件。鼠标对应到相应的feature中时候,获取其类型,并且设定不同的鼠标样式。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果Ope…

一篇知晓-内存竟被”无意“破坏,真相究竟如何?

内存是C/C程序员的好帮手,我们通常说C/C程序性能更高其原因之一就在于可以自己来管理内存,然而计算机科学中没有任何一项技术可以包治百病,内存问题也给C/C程序员带来无尽的烦恼。 野指针、数组越界、错误的内存分配或者释放、多线程读写导致…

kotlin之hello world

如果你想一个人写全栈的话,Kotlin Multiplatform (以下简称MPP)是目前这个星球上最好的选择,没有之一。 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrain…

CTFSHOW web入门 java反序列化篇(更新中)

在做这部分题前,推荐大家先去学习下java反序列化,尤其是CC链 可以看下两个系列视频,收获颇多 https://space.bilibili.com/2142877265/channel/collectiondetail?sid29805&ctype0 https://www.bilibili.com/video/BV16h411z7o9/?spm_i…

手写Spring2(实现 Bean 的定义、注册、获取)

文章目录前言本章目标一、实现1、项目结构2、BeanFactory-bean工厂3、BeanDefinition -bean定义4、单例注册接口定义和实现-SingletonBeanRegistry 、DefaultSingletonBeanRegistry5、AbstractBeanFactory-抽象bean工厂类(定义模板方法)6、AbstractAutowireCapableBeanFactory-…

python配置环境问题记录------2022/12/07

python配置问题记录1、版本匹配的问题2、指令安装相关依赖包3、pycharm指定解释器4、运行网络模块5、总结1、版本匹配的问题 到官网下载合适的版本(注意位数,我这里选的是64位),pycharm选的是21年版本的,太新的话会有…

【C++】异常exception

目录 一.C语言错误处理方式 1.assert(断言) 2.返回/设置错误码 二.C异常的概念与使用 1.异常的概念 2.异常的使用 三.自定义异常体系MyException 四.异常的重新抛出 五.异常安全问题 六.异常规范 七.异常的优缺点对比 一.C语言错误处理方式 一个C语言程序, 在运行期…

回归分析与相关分析的区别和联系

在本节中,我们将首先讨论相关性分析,它用于量化两个连续变量之间的关联(例如,独立变量与因变量之间或两个独立变量之间)。 最近我们被客户要求撰写关于回归分析与相关分析的研究报告,包括一些图形和统计输…