FPGA开发中按键消抖与单脉冲发生器电路

2010-01-07 17:30:21来源: 内蒙古工业大学

  FPGA开发中常用到单脉冲发生器。一些文章介绍过产生单脉冲的电路,产生的单脉冲脉宽和相位都不能与时钟同步,只能用在要求不严格的场合。笔者目前从事的课题中需要一个与时钟周期等宽,相位与时钟周期相同的键控单脉冲发生器。键控单脉冲发生器需要按键产生单脉冲,但大多数带有FPGA芯片的开发板提供的是高频时钟脉冲,按键时会存在抖动问题。为此笔者专门设计了按键消抖电路消除抖动,为产生单脉冲提供稳定的按键信号。

  1 按键消抖电路原理

  为了使按键消抖电路模块简洁,移植性好,在此用计数器的方式实现按键消抖的功能。

  计数器模值n根据抖动信号的脉冲宽度和采样脉冲信号CLK的周期大小决定。计数模值n=延时/脉冲信号采样周期。一般按键抖动时间为5~10 ms,甚至更长。笔者用的开发板提供的系统时钟为24 MHz,按公式计算,当计数器模值取20位,计数到219即h8 0000时,大约延时22 ms。计数期间认为是按键的抖动信号,不做采样;计数器停止计数,认为采样信号为稳定按键信号。这样就可以把按键时间小于22 ms的抖动信号滤掉。

  引入一个采样脉冲信号CLK,并输入按键信号KEY。KEY输入低电平,计数器开始做加法计数,当计数到h8 0000即计数器中最高位Q19为1,计数器停止计数,输出Q19,作为按键的稳定输出,计数期间Q19输出为0;KEY输入高电平,计数器清零,Q19输出为0。所以该电路需按键22 ms才会得到有效信号。

  2 键控单脉冲发生器电路原理

  键控单脉冲发生器利用上述电路解决按键消抖问题,得到稳定的信号。用两个D触发器和一个与门产生单脉冲,如图1所示。

键控单脉冲发生器

  D触发器U2A收到稳定信号D1=1后被触发。触发器U2A中的Q1端得到与CLK同步的正向脉冲。输出Q1到D触发器U3A,得到比Q1延迟一个时钟周期的的正向脉冲,将Q2端输出取反得到一个负向脉冲。Q1与Qn2的输出作为一个与门的输入,会输出一个脉宽是原时钟周期2倍的单脉冲。

  为了使得出的单脉冲脉宽与时钟周期相等,相位与时钟周期相同,对图1中电路设计做了改进,如图2所示。

相位调整后单脉冲发生器电路图

  图2中时钟送入D触发器前加了非门,使Q1端产生与nCLK(CLK的反向脉冲信号)同步的正向脉冲,与门输出单脉冲与CLK差半个时钟周期,作为D触发器U4A的输入D4,在CLK上升沿U4A被触发,使单脉冲脉宽与时钟周期相同,实现了等脉宽。并延迟了半个时钟周期使输出脉冲与时钟周期对应,实现了相位调整。整个单脉冲发生器的时序图如图3所示(图3中的t1,t2是任意键按下与键抬起时刻)。

整个单脉冲发生器的时序图

[1] [2]

关键字:FPGA  按键消抖  单脉冲发生器  电路

编辑:小甘 引用地址:http://www.eeworld.com.cn/FPGA/2010/0107/article_894.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
FPGA
按键消抖
单脉冲发生器
电路

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved