首页 / 专利库 / 电信 / 时钟信号 / 一种用于对按键进行防抖处理的装置及方法

一种用于对按键进行防抖处理的装置及方法

阅读:37发布:2020-05-11

专利汇可以提供一种用于对按键进行防抖处理的装置及方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种用于对按键进行防抖处理的装置及方法,装置包括: 信号 单元:获取按键 开关 在不同状态下所产生的按键电平信号;FPGA模 块 :以 采样 频率 对所述按键电平信号进行采样,通过对采样的按键电平信号进行判断,在判断之后获取所述按键电平信号的按键状态信息,通过内部的FIFO模块对所述按键状态信息进行缓存;其中,所述FIFO模块的深度、输入宽度及输出宽度匹配FPGA模块中对所述电平信号进行采样的频率,使所述按键状态信息不被丢失;时钟模块:为FPGA模块提供 时钟信号 ;本发明中FPGA内部使用了FIFO缓存按键四种状态,并保证在不遗漏按键状态前提下,大幅度增加了 控制器 的轮询按键时间间隔。,下面是一种用于对按键进行防抖处理的装置及方法专利的具体信息内容。

1.一种用于对按键进行防抖处理的装置,其特征在于,包括:
信号单元:获取按键开关在不同状态下所产生的按键电平信号;
FPGA模:以采样频率对所述按键电平信号进行采样,通过对采样的按键电平信号进行判断,在判断之后获取所述按键电平信号的按键状态信息,通过内部的FIFO模块对所述按键状态信息进行缓存;
其中,所述FIFO模块的深度、输入宽度及输出宽度匹配FPGA模块中对所述电平信号进行采样的频率,使所述按键状态信息不被丢失;
时钟模块:为FPGA模块提供时钟信号
2.根据权利要求1所述的装置,其特征在于,所述FPGA模块包括:
分频器:利用所述时钟信号产生采样频率
采样模块:以采样频率对按键电平信号进行采样;
移位寄存器模块:存储采样的按键电平信号信息;
电平处理模块:对所述移位寄存器模块中的按键电平信号进行判断并缓存,并识别四种按键状态,并使用独热码对所述按键状态进行编码;
FIFO模块:用于匹配所述采样频率并缓存所述四种按键状态的独热码信息;
状态输出模块:将FIFO状态信息和按键状态信息组合成状态寄存;
接口封装模块:用于和控制器连接的接口。
3.根据权利要求1所述的装置,其特征在于,所述信号单元包括:按键开关、限流电阻以及去耦电容;
其中,所述限流电阻的第一端与供电电压连接,第二端与所述按键开关的第一端连接,所述按键开关的第二端接地;
所述去耦电容的第一端、第二端分别与所述按键开关的第一端、第二端连接;
所述去耦电容第一端还与所述FPGA模块采样模块连接。
4.根据权利要求2或3所述的装置,其特征在于,
所述按键开关为自按键或非自锁按键;
所述限流电阻的范围为500Ω至100K之间;
所述去耦电容为0.1uF;
所述时钟模块为1MHz到200MHz之间的晶振;
所述采样频率的范围为1K至3KHz之间;
所述移位寄存器模块为十位位宽的移位寄存器;
所述FIFO模块的输出输入宽度为4bit,深度为32,且FIFO模块的读写为同一个时钟和复位控制。
5.一种基于权利要求1-4任一所述的装置进行按键防抖处理的方法,其特征在于,包括:
在按键开关被触发时,用于对按键进行防抖处理的装置接收到按键开关被触发的按键电平信号;
用于对按键进行防抖处理的装置中的采样模块以采样频率对所述按键电平信号进行采样;
用于对按键进行防抖处理的装置中的移位寄存器模块存储所述采样的按键电平信号信息;
用于对按键进行防抖处理的装置中的电平处理模块基于采样的按键电平信号信息获取按键状态信息;
用于对按键进行防抖处理的装置中的FIFO模块缓存所述按键状态信息,以供控制器获取所述按键状态信息。
6.根据权利要求5所述的方法,其特征在于,所述采样频率为1KHz。
7.根据权利要求6所述的方法,其特征在于,采用十位的移位寄存器进行存储采样的按键电平信号信息。
8.根据权利要求7所述的方法,其特征在于,所述装置中的电平处理模块基于采样的按键电平信号信息获取按键状态信息,具体包括:
检测所述十位的移位寄存器中的数值,并根据所述移位寄存器中的数值获取有效按键电平信号信息;
其中,所述有效按键电平信号信息包括:高电平信息和低电平信息;
若,所述十位的移位寄存器中的数值为第一数值时,则所述有效按键电平信号信息为高电平信息;
其中,所述第一数值为:表示所述十位的移位寄存器中的十个位中代表采样结果都为高电平的值;
若,所述十位的移位寄存器中的数值为第二数值时,则所述有效按键电平信号信息为低电平信息;
其中,所述第二数值为:表示所述十位的移位寄存器中的十个位中代表采样结果都为低电平的值;
基于相邻的两个所述有效按键电平信号信息,确定所述按键状态;
其中,所述按键状态包括:抬起保持状态、按下过程状态、按下保持状态、抬起过程状态。
9.根据权利要求8所述的方法,其特征在于,基于相邻的两个所述有效按键电平信号信息,确定所述按键状态,具体包括:
对比相邻的两个所述有效按键电平信号信息,若两个相邻的所述有效的按键电平信号信息都为高电平信息,则确定所述按键状态为抬起保持状态;
若两个相邻的所述有效按键电平信号信息都为低电平信息,则确定所述按键状态为按下保持状态;
若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为高电平信息,后面的有效按键电平信号信息为低电平信息,则确定所述按键状态为按下过程状态;
若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为低电平信息,后面的有效按键电平信号信息为高电平信息,则确定所述按键状态为抬起过程状态;
采用独热码对所述按键状态信息进行编码。
10.根据权利要求9所述的方法,其特征在于,
缓存代表所述按键状态信息的独热码,并和所述FIFO状态信息组合成状态寄存信息。

说明书全文

一种用于对按键进行防抖处理的装置及方法

技术领域

[0001] 本发明涉及电子领域,尤其涉及一种用于对按键进行防抖处理的装置及方法。

背景技术

[0002] 按键开关在电子领域的应用非常广泛,种类也繁多,常用分类为自和非自锁两种。它们内部构成均用到金属弹片,当按键关断、闭合时,由于金属机械触点的弹性作用,按键抬起按下瞬间,都不会上进入稳定电平,而是会产生一连串的抖动如附图1所示,在按键开关信号接入到控制器(MCU或者FPGA)程序前,需要将这种抖动消除掉,否则会产生不可预期的效果;按键按下抬起这一过程具备抬起保持、按下过程、按下保持以及抬起过程四种状态,在一些应用场合,需要完全不遗漏准确记录下来。
[0003] 现有的防抖处理大致分为两种:硬件防抖和软件防抖。常规的硬件防抖是通过添加电容、电阻、电感或者运放实现低通滤波,将抖动噪声滤除,开关信号边沿变化缓慢,不利于数字控制器(MCU或者FPGA)识别,该方法使用额外的元器件,增加PCB布线的面积,防抖效果要求越高,成本相应增加。软件防抖是控制器内部程序通过轮询方式以固定时间采样输入的按键信号,在等待的采样的过程中不能进行其他功能操作,该方法会消耗控制器大量的时间资源,尤其是轮询周期很小的时候,也有使用控制器外设定时器实现,引入中断机制,增加软件复杂度,同时按键的四种状态也不能无遗漏捕捉到。

发明内容

[0004] (一)要解决的技术问题
[0005] 为了解决现有技术的上述问题,本发明提供一种按键防抖装置及方法。
[0006] (二)技术方案
[0007] 为了达到上述目的,本发明提供一种用于对按键进行防抖处理的装置及方法,其装置包括:
[0008] 信号单元:获取按键开关在不同状态下所产生的按键电平信号;
[0009] FPGA模:以采样频率对所述按键电平信号进行采样,通过对采样的按键电平信号进行判断,在判断之后获取所述按键电平信号的按键状态信息,通过内部的FIFO模块对所述按键状态信息进行缓存;
[0010] 其中,所述FIFO模块的深度、输入宽度及输出宽度匹配FPGA模块中对所述电平信号进行采样的频率,使所述按键状态信息不被丢失;
[0011] 时钟模块:为FPGA模块提供时钟信号
[0012] 优选的,所述FPGA模块包括:
[0013] 分频器:利用所述时钟信号产生采样频率
[0014] 采样模块:以采样频率对按键电平信号进行采样;
[0015] 移位寄存器模块:存储采样的按键电平信号信息;
[0016] 电平处理模块:对所述移位寄存器模块中的按键电平信号进行判断并缓存,并识别四种按键状态并使用独热码对所述按键状态进行编码;
[0017] FIFO模块:用于匹配所述采样频率并缓存所述四种按键状态的独热码信息;
[0018] 状态输出模块:将FIFO状态信息和按键状态信息组合成状态寄存;
[0019] 接口封装模块:用于和控制器连接的具有驱动转换的接口。
[0020] 优选的,所述信号单元包括:按键开关、限流电阻以及去耦电容;
[0021] 其中,所述限流电阻的第一端与供电电压连接,第二端与所述按键开关的第一端连接,所述按键开关的第二端接地;
[0022] 所述去耦电容的第一端、第二端分别与所述按键开关的第一端、第二端连接;
[0023] 所述去耦电容第一端还与所述FPGA模块采样模块连接。
[0024] 优选的,
[0025] 所述按键开关为自锁按键或非自锁按键;
[0026] 所述限流电阻的范围为500Ω至100K之间;
[0027] 所述去耦电容为0.1uF;
[0028] 所述时钟模块为1MHz到200MHz之间的晶振;
[0029] 所述采样频率的范围为1K至3KHz之间;
[0030] 所述移位寄存器模块为十位位宽的移位寄存器;
[0031] 所述FIFO模块的输出输入宽度为4bit,深度为32,且FIFO的读写为同一个时钟和复位控制。
[0032] 一种基于上述任一所述的装置进行按键防抖处理的方法,包括:
[0033] 在按键开关被触发时,用于对按键进行防抖处理的装置接收到按键开关被触发的按键电平信号;
[0034] 用于对按键进行防抖处理的装置中的采样模块以采样频率对所述按键电平信号进行采样;
[0035] 用于对按键进行防抖处理的装置中的移位寄存器模块存储所述采样的按键电平信号信息;
[0036] 用于对按键进行防抖处理的装置中的电平处理模块基于采样的按键电平信号信息获取按键状态信息;
[0037] 用于对按键进行防抖处理的装置中的FIFO模块缓存所述按键状态信息,以供控制器获取所述按键状态信息。
[0038] 优选的,所述采样频率为1KHz。
[0039] 优选的,采用十位的移位寄存器进行存储采样的按键电平信号信息。
[0040] 优选的,所述装置中的电平处理模块基于采样的按键电平信号信息获取按键状态信息,具体包括:
[0041] 检测所述十位的移位寄存器中的数值,并根据所述移位寄存器中的数值获取有效按键电平信号信息;
[0042] 其中,所述有效按键电平信号信息包括:高电平信息和低电平信息;
[0043] 若,所述十位的移位寄存器中的数值为第一数值时,则所述有效按键电平信号信息为高电平信息;
[0044] 其中,所述第一数值为:表示所述十位的移位寄存器中的十个位中代表采样结果都为高电平的值;
[0045] 若,所述十位的移位寄存器中的数值为第二数值时,则所述有效按键电平信号信息为低电平信息;
[0046] 其中,所述第二数值为:表示所述十位的移位寄存器中的十个位中代表采样结果都为低电平的值;
[0047] 基于相邻的两个所述有效按键电平信号信息,确定所述按键状态;
[0048] 其中,所述按键状态包括:抬起保持状态、按下过程状态、按下保持状态、抬起过程状态。
[0049] 优选的,基于相邻的两个所述有效按键电平信号信息,确定所述按键状态,具体包括:
[0050] 对比相邻的两个所述有效按键电平信号信息,若两个相邻的所述有效的按键电平信号信息都为高电平信息,则确定所述按键状态为抬起保持状态;
[0051] 若两个相邻的所述有效按键电平信号信息都为低电平信息,则确定所述按键状态为按下保持状态;
[0052] 若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为高电平信息,后面的有效按键电平信号信息为低电平信息,则确定所述按键状态为按下过程状态;
[0053] 若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为低电平信息,后面的有效按键电平信号信息为高电平信息,则确定所述按键状态为抬起过程状态;
[0054] 采用独热码对所述按键状态信息进行编码。
[0055] 优选的,
[0056] 缓存代表所述按键状态信息的独热码,并和所述FIFO状态信息组合成状态寄存信息。
[0057] (三)有益效果
[0058] 本发明的有益效果是:本发明中FPGA内部使用了FIFO缓存按键四种状态,并保证在不遗漏按键状态前提下,大幅度增加了控制器的轮询按键时间间隔。
[0059] 进一步,FPGA内部使用了移位寄存器缓存按键信号电平,具有很强的抗干扰的能;进一步的,本发明的按键防抖处理装置硬件外围简单,成本低,软件操作简单,适用所有FPGA平台。

附图说明

[0060] 图1为现有的开关动作信号和状态示意图;
[0061] 图2为本发明中实施例一中的按键防抖缓存状态实现框图
[0062] 图3为本发明FPGA内部FIFO接口框图;
[0063] 图4为图3的FPGA内部FIFO接口的说明图;
[0064] 图5为本发明按键防抖处理方法流程图
[0065] 【附图标记说明】
[0066] 1:FPGA模块;
[0067] 2:时钟模块;
[0068] 3:限流电阻;
[0069] 4:按键开关;
[0070] 5:去耦电容;
[0071] 1-1:分频器;
[0072] 1-2:采样模块;
[0073] 1-3:移位寄存器;
[0074] 1-4:电平处理模块;
[0075] 1-5:FIFO模块;
[0076] 1-6:状态输出模块;
[0077] 1-7:接口封装模块。

具体实施方式

[0078] 为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
[0079] 实施例一
[0080] 本实施例一中用于对按键进行防抖处理的装置如附图2所示,包括:信号单元:获取按键开关在不同状态下所产生的按键电平信号。FPGA模块1:以采样频率对所述按键电平信号进行采样,通过对采样的按键电平信号进行判断,在判断之后获取所述按键电平信号的按键状态信息,通过内部的FIFO模块1-5对所述按键状态信息进行缓存。其中,FIFO模块1-5的深度、输入宽度及输出宽度匹配FPGA模块1中对所述电平信号进行采样的频率,使所述按键状态信息不被丢失。时钟模块2:为FPGA模块1提供时钟信号。
[0081] 本实施例中在FPGA内部使用了移位寄存器缓存按键信号电平,具有很强的抗干扰的能力;FPGA内部使用了FIFO,缓存按键四种状态,保证不遗漏按键状态前提下,大幅度增加MCU的轮询按键时间间隔。该装置,硬件外围简单,成本低,软件操作简单,适用所有FPGA平台。
[0082] 本实施例一中,FPGA模块1包括:分频器1-1:利用所述时钟信号产生采样频率。采样模块1-2:以采样频率对按键电平信号进行采样。移位寄存器模块1-3:存储采样的按键电平信号信息。电平处理模块1-4:对所述移位寄存器模块1-3中的按键电平信号进行判断并缓存,并识别四种按键状态,并使用独热码对所述按键状态进行编码。FIFO模块1-5:用于匹配所述采样频率并缓存所述四种按键状态的独热码信息。状态输出模块1-6:将FIFO状态信息和按键状态信息组合成状态寄存。接口封装模块1-7:用于和控制器连接的接口。
[0083] 如附图3所示,本实施例中的FPGA模块1内部构建的FIFO模块1-5,其端口的定义如附图4所示,主要用于缓存4种按键状态,当案件状态发生变化时,就会触发FIFO模块1-5的写FIFO动作,判断FIFO没有满(Full信号为0),准备好数据(4位状态赋值给FIFO模块1-5输入数据端din[3:0]),然后wr_en使能一个时钟(clk)周期,data_count[4:0]输出会在下一个时钟自动加1,写FIFO动作完成;当接收到外部发起读取FIFO命令时,读使能信号rd_en,拉高一个时钟周期,FIFO模块1-5中的数据输出端dout[3:0]数据更新,同时data_count[4:0]自动减1,FIFO读数据完成。
[0084] 本实施例一中,所述信号单元包括:按键开关4、限流电阻3以及去耦电容5。其中,限流电阻3的第一端与供电电压连接,第二端与按键开关4的第一端连接,所述按键开关4的第二端接地。去耦电容5的第一端、第二端分别与按键开关4的第一端、第二端连接。去耦电容5第一端还与所述FPGA模块1中采样模块1-2连接。
[0085] 本实施例一中,按键开关4为自锁按键或非自锁按键;限流电阻3的范围为500Ω至100K之间;去耦电容5为0.1uF;时钟模块2为1MHz到200MHz之间的晶振;采样频率的范围为
1K至3KHz之间;移位寄存器模块为十位位宽的移位寄存器1-3;FIFO模块1-5的输出输入宽度为4bit,深度为32,且FIFO模块1-5的读写为同一个时钟和复位控制。
[0086] 实施例二
[0087] 本实施例二中,进行按键防抖处理的方法如附图5所示,包括步骤:
[0088] 在按键开关被触发时,用于对按键进行防抖处理的装置接收到按键开关4被触发的按键电平信号。
[0089] 用于对按键进行防抖处理的装置中的采样模块1-2以采样频率对所述按键电平信号进行采样。
[0090] 用于对按键进行防抖处理的装置中的移位寄存器1-3存储所述采样的按键电平信号信息。
[0091] 用于对按键进行防抖处理的装置中的电平处理模块1-4基于采样的按键电平信号信息获取按键状态信息。
[0092] 用于对按键进行防抖处理的装置中的FIFO模块1-5缓存所述按键状态信息,以供控制器获取所述按键状态信息。
[0093] 本实施例二中,进行按键防抖处理的方法中的采样频率为1KHz。
[0094] 本实施例二中,进行按键防抖处理的的方法中采用十位的移位寄存器1-3进行存储采样的按键电平信号信息。
[0095] 本实施例二中,进行按键防抖处理的方法中,电平处理模块1-4基于采样的按键电平信号信息获取按键状态信息,具体包括:
[0096] 检测十位的移位寄存器1-3中的数值,并根据移位寄存器1-3中的数值获取有效按键电平信号信息;
[0097] 其中,所述有效按键电平信号信息包括:高电平信息和低电平信息;
[0098] 若,所述十位的移位寄存器1-3中的数值为第一数值时,则所述有效按键电平信号信息为高电平信息;
[0099] 其中,所述第一数值为:表示所述十位的移位寄存器1-3中的十个位中代表采样结果都为高电平的值;
[0100] 若,所述十位的移位寄存器1-3中的数值为第二数值时,则所述有效按键电平信号信息为低电平信息;
[0101] 其中,所述第二数值为:表示所述十位的移位寄存器1-3中的十个位中代表采样结果都为低电平的值;
[0102] 基于相邻的两个所述有效按键电平信号信息,确定所述按键状态;
[0103] 其中,所述按键状态包括:抬起保持状态、按下过程状态、按下保持状态、抬起过程状态。
[0104] 本实施例二中,基于相邻的两个所述有效按键电平信号信息,确定所述按键状态,具体包括:
[0105] 对比相邻的两个所述有效按键电平信号信息,若两个相邻的所述有效的按键电平信号信息都为高电平信息,则确定所述按键状态为抬起保持状态;
[0106] 若两个相邻的所述有效按键电平信号信息都为低电平信息,则确定所述按键状态为按下保持状态;
[0107] 若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为高电平信息,后面的有效按键电平信号信息为低电平信息,则确定所述按键状态为按下过程状态;
[0108] 若两个相邻的所述有效按键电平信号信息中前面的有效按键电平信号信息为低电平信息,后面的有效按键电平信号信息为高电平信息,则确定所述按键状态为抬起过程状态;
[0109] 采用独热码对所述按键状态信息进行编码。
[0110] 本实施例二中,进行按键防抖处理的方法中还包括缓存代表所述按键状态信息的独热码,并和所述FIFO状态信息组合成状态寄存信息。
[0111] 以上结合具体实施例描述了本发明的技术原理,这些描述只是为了解释本发明的原理,不能以任何方式解释为对本发明保护范围的限制。基于此处解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈