基于CPLD的防抖动开关电路的设计
按键消抖的原理和基于fpga的消抖设计

按键消抖1功能概述按键开关是各种电子设备不可或缺的人机接口,如电脑的键盘等。
实际应用中,按键开关通常为机械式弹性开关。
当机械点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定接通,断开时也不会马上断开,在闭合和断开的瞬间均伴随有一连串的抖动。
为保证系统及时正确识别,必须对这种情况作出相应处理。
我们称之为按键消抖。
按键消抖可分为硬件消抖和软件消抖。
硬件消抖的原理是在信号输入系统之前消除抖动干扰,在按键较少的情况下比较适宜。
如果按键较多,则使用软件消抖。
软件消抖的实质在于降低键盘输入端口的采样频率,将高频抖动略去。
需要注意的是,软件消抖需要占据一定的系统资源。
尽管硬件消抖和软件消抖能实现按键消抖功能,串行处理的方式都存在一定的局限性,显得不那么完美。
而硬件资源丰富的FPGA系统采用并行处理的模式,利用硬件来减轻软件工作量,通过硬件加速软件消抖处理,即可做到软件消抖并行化,因而在按键消抖处理方面具备非常明显的优势。
优秀的设计程序应该是用最简单的代码(架构、信号)实现功能。
在本例中,我们的只需要用4个信号界定,并用很短的代码即可。
下面我们先来看看功能要求:在系统设计中,消除按键抖动的方法五花八门,无论是硬件电路和软件设计都十分成熟。
在本项目中,我们将用Verilog语言给出具体实现过程,设计一个程序来检查键值,有效滤除按键抖动区间20 ms的毛刺脉冲。
2 设计思路一般按键所用开关为机械弹性开关,由于机械触点的弹性作用,每个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在闭合及断开的瞬间均伴随有一连串的抖动,如下图。
抖动时间的长短由按键的机械特性决定,一般为5 ms~10 ms。
1图1 按键抖动过程示意当系统检测出按键闭合后,执行一个延时程序,产生5ms~10ms的延时;前沿抖动消失后,再一次检测键的状态;如果仍保持闭合状态电平,则确认为真正有键按下。
当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。
应用CPLD解决信号跳变时的抖动问题

应用CPLD解决信号跳变时的抖动问题alZou(XXXXXXXXXX公司)摘要:数字信号在跳变时有时会出现抖动,本文介绍应用XX公司自主研发的XXXXXXX系列芯片开发电子产品时如何解决数字信号在跳变时出现抖动的问题。
关键词: CPLD;抖动1.问题的提出2004年下半年,公司先后给我下了两个开发任务:1,为配合公司市场部推销公司自主研发的XXXXXXX系列CPLD芯片,公司要求搞一个CPLD 演示产品;2,针对公司自主研发的EPROM芯片(具体型号我忘了,请审稿的同志帮忙填上;另外,如果发现有需要修改的的地方,审稿的同志有自主修改权,修改后可以不用我再看了),公司要求搞一个EPROM烧录器。
我是个多一事不如少一事的人,就决定将两个项目合成一个搞了。
市场上好一点的EPROM 烧录器一般都是用单片机实现的,我决定用XXXXXXX代替单片机,开发一款EPROM烧录器,当然同时也可达到演示CPLD芯片应用的目的。
EPROM烧录器的原理框图如下:CPLD与PC机之间通过并口连接,完成通信功能。
由于PC机并口的资源有限,只有一个八位的数据端口,而EPROM芯片仅地址线一般就有十几条。
因此,需要进行端口扩展,将一个八位的数据端口扩展为两个地址端口(高八位地址和低八位地址)和一个数据端口。
数据端口和地址端口扩展的实现基本上是一样的,为了简化问题,本文只讨论一个PC机的八位数据端口扩展成两个地址端口的问题。
我的基本思路是:为了节省并口资源,PC机与XXXXXXX之间的地址下传用八条数据线和一条控制线完成。
PC端:高八位地址和低八位地址分两次送出,每次地址上线时,通过控制线的下降沿通知CPLD。
PC端的程序流程图如下:CPLD端:在CPLD内部设置一个计数器,用于计下控制线下降沿到来的次数,如果是第一次,就将数据线锁存到高八位地址;如果是第二次,就将数据线锁存到低八位地址。
CPLD 端的程序流程图如下:CPLD端的VHDL代码如下:library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;entity EPROM isp ort (pc_data: in STD_LOGIC_VECTOR (7 downto 0);pc_control: in STD_LOGIC;reset: in STD_LOGIC;eprom_high_address: out STD_LOGIC_VECTOR(7 downto 0);eprom_low_address: out STD_LOGIC_VECTOR(7 downto 0) );end EPROM;architecture EPROM of EPROM isSIGNAL count:STD_LOGIC_VECTOR(1 downto 0);beginPROCESS(reset,pc_control)BEGINIF (reset =’0’) THENcount <= “00”;ELSIF (pc_control 'EVENT AND pc_control ='0') THENIF (count="00") THENeprom_high_address <= pc_data;count <= count + '1';ELSIF (count="01") THENeprom_low_address <= pc_data;count <= "00";END IF;END IF;END PROCESS;end EPROM;如此简单的问题加上如此简单的解决方案,我没想到在进行硬件调试时会出现问题。
基于CPLD的PWM控制电路设计说明

2008 年 08 月 04 日
社区交流
介绍了利用硬件描述语言 VHDL 设计的一种基于 CPLD 的 PWM 控制电路,该PWM控制电路具有 PWM 开关频率可调,同侧2路信号互锁、延时时间可调、接口简单等特点,可应用于现代直流伺服 系统。
在直流伺服控制系统中,通过专用集成芯片或中小规模的数字集成电路构成的传 统 PWM 控制电路往往存在电路设计复杂,体积大,抗干扰能力差以及设计困难、设计周 期长等缺点 因此 PWM 控制电路的模块化、集成化已成为发展趋势.它不仅可以使系统 体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高.随着电子技术的发 展,特别是专用集成电路(ASIC)设计技术的日趋完善,数字化的电子自动化设计(EDA) 工具给电子设计带来了巨大变革,尤其是硬件描述语言的出现,解决了传统电路原理图 设计系统工程的诸多不便.针对以上情况,本文给出一种基于复杂可编程逻辑器件(CPL D)的 PWM 控制电路设计和它的仿真波形. 1 PWM 控制电路基本原理
‘0'; Q<=Qs; cao<=reset or caolock; end a_counter;
在原理图中,延迟模块必不可少,其功能是对 PWM 波形的上升沿进行延时,而不影响 下降沿,从而确保桥路同侧不会发生短路.其模块的 VHDL 程序如下:
entity delay is port(clk: in std_logic; input: in std_logic_vector(1 downto 0); output:out std_logic_vector(1 downto 0) end delay; architecture a_delay of delay is
基于CPLD的开关电容组式跟踪滤波器设计与实现

w o r k we l l o n t h e re f q u e n c y b a n d b e t w e e n 1 MHz t o 3 0 MHz .T h e e x p e r i me n t a l s o s h o w s t h a t t h e d e s i g n p r o v i d e s a s t a b l e b a n d wi d t h a n d h i g h e r t e mp e r a t u r e s t a b i l i t y .T h e o b s e r v e d d a t a o f t h e i f l t e r s h o ws t h a t t h e 3 d B b a n d wi d t h i s 3 0 0 k Hz t o 7 0 0 k Hz ,w i t h
P e n g Yo n g b a n g, S u n F e n g l o u, L a n J i a p i n g, C h e n Ku n
( C o l l e g e o f E l e c t r o n i c s a n d I n f o r ma t i o n E n g i n e e i r n g, S o u t h —C e n t r a l Un i v e r s i t y f o r Na t i o n a l i t i e s, Wu h a n 4 3 0 0 7 4, Ch i n a)
De s i g n a n d i mp l e me n t a t i o n o f t h e s wi t c h -c a p a c i t o r - g r o u p- s t y l e
基于VHDL语言的几种消抖电路的设计

图1是N为3的波形仿真图,当按键持续时间大于3个时钟周期,计数器输出一个单脉冲,其宽度为1个时钟周期,小于3个时钟周期的窄脉冲用作模拟抖动干扰,从图1可以看出,抖动不能干扰正常的单脉冲输出。
该方案的特点是能很好消除按键抖动产生的窄脉冲,还可以滤去干扰、噪音等其他尖峰波,但遇到脉宽大于N个Tclk时钟周期的干扰、噪音等时会有输出从而产生误操作,而对于按键操作要求按键时间必须大于N个Tclk时钟周期,否则按键操作也没有输出。
1.2计数器型消抖电路(二)计数器型消抖电路(二)是控制计数器工作一个循环周期(N+1个状态),且仅在计数器为0时输出为“1”。
电路设计了连锁控制设施。
在计数器处于状态0时,此时若有按键操作,则计数器进入状态1,同时输出单脉冲(其宽度等于时钟周期)。
计数器处于其他状态,都没有单脉冲输出。
计数器处于状态N时,控制en='0',导致计数器退出状态N,进入状态0。
计数器能否保持状态0,取决于人工按键操作,若按键key_in='1',控制en='1'(计数器能正常工作),key_in='0',计数器状态保持。
显见计数器处于状态0,人工不按键,则计数器保持状态0。
图2是N为7的波形仿真图。
在计数器状态为0时,key_in有按键操作,计数器开始连续计数直到计数器状态为0;计数器状态为1-7时,key_in任何操作对计数器工作无影响,计数器在状态为1时,输出一个单脉冲,脉冲宽度为1个时钟周期。
该设计方案的特点是能很好消除按键抖动产生的连续脉冲,对按键时间没有要求,缺点是在计数器状态为0时,遇到干扰、噪音等时会有输出,从而产生误操作。
2D触发器型消抖电路D触发器型消抖电路设计了三个D触发器与一个三输入与门。
三个D触发器串行连接,其Q输出端分别与三输入与门的输入端连接,D触发器型消抖电路RTL电路如图3所示。
图4为D触发器型消抖电路波形仿真图,由图可见,当按键操作时间大于或等于clk 时钟周期的3倍时,输出一个正脉冲,正脉冲的宽度比key_in少2个clk时钟周期。
基于CPLD的多路数字开关电路的设计

龙源期刊网
基于CPLD的多路数字开关电路的设计
作者:曾全胜
来源:《电子世界》2005年第04期
摘要文中介绍了多路数字开关电路的基本结构及工作原理,采用VHDL语言实现了基于
多路选择的数字开关电路,并通过计算机仿真进行了验证。
由于采用CPLD芯片来实现,因而具有高集成度与高可靠性的特点。
在现代工业自动控制系统、测量仪器仪表及家用电子产品中,广泛应用着各种多路机械触点的旋钮开关。
这类开关存在故障率高、换挡易错位、不易维护等缺点。
本文提供的数字开关电路,不仅克服了机械开关的上述缺点,若采用不同的外围电路,还具有自动换挡、高速切换等优点。
基于CPLD的开关综合保护器设计

O M 键 I ER/)85 盘 E 9W 广 P AC T5 微制 控D 器
系统设 计 除使 用 C L P D作 为 核 心外 , 使 用 还 A 8 S 2单 片 机 作 为 整 修 系 统 的数 据 处 理 器 。 T 95 A 95 s2把 E M 1 8经 A 0 0 P 72 D 8 9得 到 的数 据 分
设计 中, 当井下工作环境恶劣 , 各种干扰信号过大
时 , 序经 常 出现 “ 飞 ” 象 ; 且 所 要 采 集 的 程 跑 现 并 电压 电流 信号有 8路 , 中有 三 路 电流 信 号 和 两 其 相 电压 信 号是模 拟 交 流 信号 , 采样 速 度 要 求 很 其 高 ,T9 5 WD的工 作频 率 最 大 只有 3 MH , A 8C5 0 z对
一 一
液 晶显示模 块 广———
—电 《路 一 报 警 盘 E— P C M键 P 7 L l D 2 8 ∈ 一
e 钟 电路 一 时
于低压信息的高速采集有 “ 力不从心 ” 之感。而
复杂 的可编 程逻辑 器件 C L P D的 出现 很好 的解 决
了 以上 问题 。 以 C L P D—E M 1 8 L 8 P 7 2 S C 4为 核心 、
图 2新 型 C L P D综 合 保 护 器 内部 框 图
二、 新型 高压 智能保 护器 的 设计
1 控 制 核 心 — — CP D . L
以 A 8 S 2为辅 助 构 成 的新 型低 压 智 能 保 护 器 T 95 的框 图如 图 2所示 。
C L 采 用 的是 E M7 2 S C 4—1 , 是 PD P 18L 8 5它
有 8路 模 拟 开 关 , 辨 率 为 8位 , 换 时 间 约 分 转
基于可编程逻辑器件去除电路中抖动设计

2 2 数 字 电路 中产 生边沿抖 动的原 因 .
数 字 电路 中产 生边 沿 抖 动 主要 发生 在 以下几 个 方
面 :1 不 匹配 终端长线效应 ,2 逻辑设计的缺陷 i3 () () () 开 关器 件 的多次 触 发 。开 关器 件 的多 次触 发是最 常 见
A b t ac :P s r t LD s o t n u e o d s g o p c f c c r ui n o d rt o v o e s e i lp o l ms T s p p ri to u e i fe s d t e i n s me s e ii ic t i r e o s l e s m p c a r b e s . hi a e n r d c s a
( h c o l f aue n— nrl e h& C mmu iain n ie r g, ri iest f ce c n eh oo y T eS h o s rme t o Me Co t c oT o nc t s gn ei HabnUnv ri o in ea dT c n lg , o E n y S Hab 10 4 Chn r m 5 0 0 ia)
2 边 沿抖 动 的产 生 原 因
2 1 模拟 电路 中产 生边沿抖动 的原 因 .
当模 拟信 号 向数字信 号 转化 时常常 出现 抖动 现象 ,
即, 模拟信 号离散成数 字信号 , 要有三种 情况 : 主 一是转 换 电路本身产生 , 二是输入模 拟信号失真 ; 三是对 摸拟信
收 稿 日期 :2 8 1 0 0 —0 — 4 0
; > ., o。 输 入 L D 3V c ;H: O7V  ̄ . H: O9V c :< .* c > .* o 5 J
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:本文介绍 了一种基于 C L PD的防抖动开关 电路 的设计 ,利用 V D 语 言编 程,依靠 C L HL PD内的硬 件资源来实现,可以 作为 一个 实用 的防抖动接 口电路在 电子 系统设 计 中应用 ,提高系统的抗干扰能力。
关键 词 :防抖 动:电路设计: C L P D:V D HL 中图分类 号:T 3 12 P 3 . 文献标识码:B 文章编号:1 7 — 7 2 (0 87 0 8 — 3 6 1 4 9 一 2 0 )— 0 9 0
,
t i r o mp ove he an -s ki g t ti ha n
Ke wo d v r s:A ti s a i g ; C r u t D s g ; C L ; V D n —hkn ic i e i n PD HL
‘
0 引言
高 ,体积加大 。
在 许多数字 电子系统 中, 要通过拨动开关 、 都 按钮 或继
公司的cL— PD
Ⅱ。
EM 18, P72s软件使用At r公司的MxPu lea a+ ls
SI GN ̄ cp ST : D
—
IGC; / 定义 内部信号 c I / O p
SI AL GN co 4: i eg r g 0 nt nt er an e to 3 ;
i n the de i n el t ni sy te p ac c a s gn of a ec ro c s m as a r ti al nti h —s aki i ng nte fa ci cu t r ce r i abil y it of he ys m. t s te
法加以实现,应用十分方便 ,并具有 高集成度 、 高性能、 低 成本等特点 。 PD L 的种 类很多,高密度 PD L 主要有 复杂可编程逻辑器
件 ( P D 和现场可 编程 门阵列 ( P A 。 CL ) F G ) 本设计选用 A t r lea
1 7
0
.
维普资讯
在实 际应用电路中,一般采用 的方法是 利用 R 触发器 S 来实 现。 另外 , 利用模拟开关集成 电路 ( C45 ) 防抖 如 D03 或 动专用集 成电路 ( I X86 61 )  ̄M 61 — 88 也可 以实现防 抖动 。 A 但
是上述方法 均需增加硬件电路, 系统 电路变复杂 , 使 成本提
Ab ta t hi a e n r d c s t e d s g f a n i s a i g c r u t b s d o P D w i h c n b e l z d s r c :T s p p r i t o u e h e i n o n a t — h k n i c i a e n C L , h c a e r a i e
by ep ndi o t ar wa r our s n CP d y pr r mi g n HD l ng ge. T ci cui an be a pl e d e ng n he h d re es ce i LD an b og am n i V L a ua he r tc p id
维普资讯
基
于
0
’ D
广
C L 的防抖云 P。 力开关电路的设计
D s g 0 a n i s a i 9 w c r u B s d n C L e i n f n A t - h k n S i h Ci c i a e o P D t t
现代 电子技术 已进人数 字化 、 大规模集成时代, 设计开
发方法是基于 电子设计 自动化 (D )和可编程或定制集 成 EA 电路,采用可编程逻辑器件 ( L )的电子系统设计越来越 PD 多 。此时,我 们可 以利用 P D L 器件 内部的硬件资源来实现 防 抖动,在 提高电路性能 的同时保持 整体电路的简洁 。 1 防抖动电路的 VHD L程序设计 1 1 P D H L 述 . L 与 D概 PD 2 L 是 0世纪 8 年代 发展起来 的新型器件,是一种 由 0 用户根据 自己的需要来设计逻辑功能并对其进行编程后才实
电器 等与传感器或人工操作设备发生联 系, 由机械触点 实现 开关 的闭合和断开 。 由于机械触点存 在弹性,当机械开关 闭 合时会产 生反弹, 出现 “ 抖动”现象 。 所谓 “ 抖动” 现象是指开 关的两个 触点要经历一个长达 数毫秒 的接 通、断开 、再接通 、再断开,循环 往复,直至最 后接通 的过程 ,反映在 电信号 上将 产生不规则 的脉冲信号 。 例如设开关 接通 表示 … l,断开表示 “ ” 0 ,我们将开关接通 是希 望输入一个 “ ” 由于抖动 ,结果却输入 了一 连串的 1,但
“” “” 这些因抖动而产生的干扰信号输入到数字系统 1 和 0。
中将 会干扰正常 的逻辑关系, 必须 设置防抖动开关 电路加 以பைடு நூலகம் 克服 。
现所需功能的器件。 其内部含有大量组成数字电路的最小单
元—— 门电路,这些 门电路并没有 固定连接,并且输入 、输 出脚的连接可 由用户设置 , 这些 门电路的连接是通过编程方
.
0
的 防 抖 动
开 关
邓 海 Dn H i e g a
电 路 的
( 江西财经大学 电子学 院,江西
南昌 3 0 1 ) 3 0 3
计 设
( l c r n I s i u e i n x n v r i yo Fn n ea dE o o i s i n x a c a g 3 0 1 ) E e t o n t t t ,J a g i U i e s t f ia c n c n m c ,J a g i N n h n 30 3