《硬件架构的艺术》笔记(八)

消抖技术

8.1 简介

        在电子设备内两个金属触点随着触点的断开闭合便产生了多个信号,当触点撞击在一起,惯性和弹性形成抖动,导致产生一个快速的脉冲电流而不是从0电流到全电流的转换。这个影响在交流电源线路不明显,由于抖动太快不至于影响大多数设备。但在某些模拟和逻辑电路中可能产生问题(如数字计时器、个人计算机或微处理器等设备的输入)。

8.2 开关行为

        下面是一个简单的带有上拉电阻的开关。并展示了当按键按下和释放时相应的输出。

         如果是计算机或者微处理器等设备的输入,则会产生问题。计数器将出现多次计数而不是一次计数。

8.3 开关种类

 8.4 消抖

8.4.1 RC 消抖

        RC消抖是最常见的,最容易的消抖电路,就是把一个电阻和电容连接在一起,开关连接至中间。开关未使用的默认状态的高电平,当开关闭合后,输出电压通过电容缓慢减低至0;当开关打开后,输出电压通过电容缓慢上升至0;以此减小抖动的影响(即使电压不会瞬变)。R2使电容器缓慢充放电,同样限制了流过开关触点,防止电容器由于瞬间大量电涌烧坏触点。但是如果时间常数过大则开关对快速”断开“或”闭合“可能无法反应。

 8.4.2 硬件消抖电路

        这是另一种硬件方法,它使用了由一对与非门电路制作的交叉耦合闩,提供一种完全的消抖而不用考虑延时限制,而且响应速度和触点一样块。当开关处于位置”a“时,门电路”1“的输出就是逻辑高,而门电路拉至逻辑低;如果开关在触点间移动并不在这两点间的区域短暂停止,由于电路2将逻辑0送回门电路1 使其保持状态,保证锁存器的输出为非抖动。

 8.4.3 软件消抖电路

  1. 在足以让抖动停止后的时间读出开关

        即每400-500毫秒读出开关,并设置状态标志指示开关状态。但是响应时间慢,如果开关操作时间小于500毫秒就会失败(上述的方法不提供EMI保护,通过为开关提供足够的时间来停止抖动可以减小绝大多数随机噪声脉冲,但取开关状态单一短脉冲干扰可能被当作触点转换,修改软件在每500毫秒循环多次读取输入)。

     2. 开关启动时中断CPU并在中断服务程序(ISR)中消抖

        通常,在激活触点时,会产生中断,调用一个子程序(中断服务程序)

         在程序中,DR调用一个子程序DELAY,其作用就是消耗足够长的时间使得触点停止抖动,此时DR检查触点是否在激活状态(即用户按下开关,但是开关还没有松开)。如果处于激活状态,DR等待触点清a零

     3. 使用计数器消除噪声并验证开关状态

        制作一个计数器,在信号为逻辑低时计数,在逻辑为高时重置计数器。如果计数器到达某个固定值,该值应当比噪声脉冲大一至两倍,意味着电流脉冲为有效脉冲。

 

  • 与消抖相关的CPU开销应当最小化
  • 非消抖开关必须连接已编程序的I/O引脚,绝不能连接CPU的中断,否则抖动会引起多重中断,同样会增加CPU的负担,每次中断CPU都会执行中断服务程序(ISR)
    与开关状态相关的中断不应当用作时钟或触发器的数据信号
  • 开关输入取样的频率不应当与外界事件同步,否则产生周期性的EMI。(以常用50/60HZ频率取样应当避免)
  • 系统应当对开关输入立即响应(LED或显示屏,以避免显示器或LED出现混乱的情况) 使用定时器有规律地中断CPU,而不是用延时来等待输入稳定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值