• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于FPGA的按鍵消抖電路設(shè)計(jì)方法的研究

    2011-06-05 11:02:08楊曉慧
    電子設(shè)計(jì)工程 2011年22期
    關(guān)鍵詞:狀態(tài)機(jī)觸發(fā)器計(jì)數(shù)器

    于 晶, 楊曉慧, 黃 勇

    (1.長(zhǎng)春理工大學(xué) 吉林 長(zhǎng)春 130000;2.吉林博安消防設(shè)備有限公司 吉林 長(zhǎng)春 130000)

    通常所用的按鍵都為機(jī)械觸點(diǎn)開關(guān),由于機(jī)械觸點(diǎn)存在彈性作用,當(dāng)按下按鍵或松開按鍵時(shí),都不可避免地要在觸點(diǎn)閉合及斷開的瞬間產(chǎn)生一連串的鍵抖動(dòng)。其在按鍵閉合和斷開時(shí)產(chǎn)生了多個(gè)邊沿,如果不濾除抖動(dòng)的話,則在讀取信號(hào)的邊沿,會(huì)引起按鍵被誤讀多次,這樣就會(huì)導(dǎo)致電路的誤動(dòng)作。為了保證按鍵電路只有一次正確的響應(yīng),則按鍵消抖電路的使用是必不可少的。

    1 按鍵消抖的方法分析

    按鍵消抖一般采用硬件和軟件消抖兩種方法。硬件消抖是利用電路濾波的原理實(shí)現(xiàn),可用RS觸發(fā)器作為常用的消抖電路[1],但對(duì)于按鍵較多且從節(jié)省硬件資源和易于修改的角度考慮,常采用軟件的方法來(lái)實(shí)現(xiàn)硬件電路[2]。文中利用Altera公司的可編程邏輯器件FPGA,通過(guò)VHDL語(yǔ)言編程實(shí)現(xiàn)按鍵消抖硬件電路的功能。采用軟件延時(shí)和對(duì)按鍵信號(hào)進(jìn)行處理的方法設(shè)計(jì)了3種性能可靠的按鍵消抖電路。

    2 按鍵消抖電路的幾種設(shè)計(jì)方法

    一般人按鍵的時(shí)間大于100 ms,抖動(dòng)時(shí)間一般為5~10 ms。按這種常規(guī)處理,一般認(rèn)為接收到的按鍵信號(hào)持續(xù)時(shí)間如果小于40 ms則其為抖動(dòng)信號(hào),如果時(shí)間大于40 ms則為正確的按鍵信號(hào)。即讓計(jì)數(shù)器的模值和計(jì)數(shù)時(shí)鐘周期的乘積略大于40 ms即可。這樣就可以把按下的時(shí)間小于40 ms的抖動(dòng)信號(hào)濾掉[3]。文中的晶振頻率采用80 MHz。

    2.1 基于計(jì)數(shù)器的按鍵消抖電路

    應(yīng)用計(jì)數(shù)器實(shí)現(xiàn),即采用延時(shí)的方法。先正確設(shè)定計(jì)數(shù)的時(shí)鐘脈沖。當(dāng)判斷到有脈沖發(fā)生并且為上升沿時(shí)計(jì)數(shù)器開始計(jì)數(shù),等計(jì)數(shù)器計(jì)滿后將按鍵的狀態(tài)輸出。其VHDL代碼如下,仿真波形如圖1所示。

    圖1 基于計(jì)數(shù)器的按鍵消抖電路的仿真波形Fig.1 Simulation waveform of key-jitter circuit base on counter

    2.2 基于RS觸發(fā)器的按鍵消抖電路

    在設(shè)計(jì)中用時(shí)鐘信號(hào)進(jìn)行采樣,對(duì)按鍵輸入信號(hào),當(dāng)兩次采樣信號(hào)相同時(shí),判定已經(jīng)穩(wěn)定的按下或放開了按鍵。觸發(fā)器相應(yīng)被置成0態(tài)或1態(tài)。如兩次采樣結(jié)果不相同,則觸發(fā)器維持原輸出信號(hào)不變。由于直接由觸發(fā)器輸出的信號(hào)時(shí)間寬度可能過(guò)長(zhǎng),所以在觸發(fā)器后再接一級(jí)同步化電路,保證每次輸出的信號(hào)只占有一個(gè)時(shí)鐘周期的寬度。應(yīng)用這種方法濾除抖動(dòng),關(guān)鍵是確定采樣時(shí)鐘的頻率。保證兩次采樣的時(shí)間間隔能大于按鍵的抖動(dòng)時(shí)間,且小于正常按鍵時(shí)的按鍵穩(wěn)定閉合時(shí)間。其VHDL代碼如下,仿真波形如圖2所示。

    圖2 基于RS觸發(fā)器的按鍵消抖電路的仿真波形Fig.2 Simulation waveform of key-jitter circuit base on RS flip-flop

    2.3 基于狀態(tài)機(jī)的按鍵消抖電路

    電路的復(fù)位信號(hào)Rst_I有效時(shí),電路[4-6]進(jìn)入復(fù)位狀態(tài)s0,在s0狀態(tài)下時(shí)鐘信號(hào)CLK以80 MHz的頻率采樣按鍵輸入信號(hào)key_I,如果采樣到 key_I=‘0’則停留在s0狀態(tài),并繼續(xù)采樣按鍵輸入信號(hào)的狀態(tài),一旦采樣到輸入信號(hào)是高電平,即key_I=‘1’,則轉(zhuǎn)入s1延時(shí)狀態(tài),進(jìn)行消抖延時(shí)。當(dāng)延時(shí)結(jié)束時(shí),則轉(zhuǎn)入s2狀態(tài),在此狀態(tài)下時(shí)鐘信號(hào)CLK以一定頻率采樣按鍵輸入key_I的狀態(tài),如果采樣到key_I為高電平,即key_I=‘1’表示經(jīng)過(guò)消抖延時(shí)之后,按鍵仍然為按下狀態(tài),則停留在s2狀態(tài)繼續(xù)檢測(cè)按鍵輸入信號(hào)狀態(tài),等待按鍵釋放,同時(shí)key_I=‘1’表示此次按鍵為有效按鍵,此時(shí)輸出按鍵確認(rèn)信號(hào),即 key_confirm=‘1’;如果采樣到 key_I為低電平即Key_in=‘0’表示按鍵已經(jīng)釋放,則轉(zhuǎn)回狀態(tài)s0,因?yàn)楫?dāng)按鍵釋放時(shí)也會(huì)有抖動(dòng),所以當(dāng)采樣到輸入信號(hào)為高電平,即key_I=‘1’時(shí),再次轉(zhuǎn)入s1進(jìn)行消抖延時(shí),當(dāng)延時(shí)結(jié)束時(shí),則轉(zhuǎn)入s2狀態(tài)判斷此時(shí)按鍵的狀態(tài),當(dāng)采樣到輸入信號(hào)為低電平時(shí),回到s0狀態(tài),此時(shí)完成一次按鍵按下和釋放的操作。其狀態(tài)機(jī)的狀態(tài)圖和仿真波形如圖3、4所示。

    圖3 狀態(tài)機(jī)Fig.3 State machine

    圖4 基于狀態(tài)機(jī)的按鍵消抖電路仿真波形Fig.4 Simulation waveform of key-jitter circuit based on state machine

    為便于在仿真圖中可以清晰的看出消抖延時(shí)的效果,程序中采用較短延時(shí)時(shí)間,在實(shí)際應(yīng)用中,延時(shí)部分的計(jì)數(shù)值可以根據(jù)具體的時(shí)鐘頻率以及所需要延時(shí)的時(shí)間進(jìn)行修改,VHDL程序如下:

    3 結(jié) 論

    仿真結(jié)果表明,以上3種按鍵消抖的方法都能很有效的起到消抖的作用,然而經(jīng)過(guò)實(shí)際工程應(yīng)用之后發(fā)現(xiàn),基于有限狀態(tài)機(jī)的方法最能有效的對(duì)按鍵進(jìn)行消抖處理,并且性能穩(wěn)定,確保每一次按鍵操作能夠準(zhǔn)確輸出按鍵確認(rèn)信號(hào)。

    [1]曾旖,奚大順,李向陽(yáng).按鍵開關(guān)的抖動(dòng)與消除方法[J].電子世界,2005(9):55-56.ZENG Yi,XI Da-shun,LI Xiang-yang.Jitter of key switch and eliminate method[J].Electron World,2005(9):55-56.

    [2]許德成.基于FPGA的按鍵消抖動(dòng)設(shè)計(jì)[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版,2009(4):154-156.XU De-cheng.Shaking release design on the keys of FPGA[J].Journal of Jilin Normal University:Natural Science Edition, 2009(4):154-156.

    [3]谷長(zhǎng)龍,李小英.基于FPGA器件的消除按鍵抖動(dòng)方法研究[J].吉林化工學(xué)院學(xué)報(bào),2006(3):53-55.GU Chang-long,LI Xiao-ying.Methods of eliminating the jitter of keys based on FPGA devices[J].Journal of Jilin Institure of Chemical Technology, 2006(3):53-55.

    [4]侯繼紅.基于VHDL語(yǔ)言的按鍵消抖電路設(shè)計(jì)及仿真[J].現(xiàn)代電子技術(shù),2009(23):201-205.HOU Ji-hong.Design and simulation of key-jitter elimination circuit based on VHDL[J].Modern Electron Technology,2009(23):201-205.

    [5]魯傳明,甕嘉民.基于VHDL的防抖型矩陣式鍵盤設(shè)計(jì)[J].河南工程學(xué)院學(xué)報(bào):自然科學(xué)版,2009(1):58-62.LU Chuan-ming,WENG Jia-min.Design of eliminate bounce and matrix keyboard based on VHDL[J].Journal of Henan Nature of Engineer NG:Natural Science Edition,2009 (1):58-62.

    [6]邢自茹,史明健.FPGA開發(fā)中按鍵消抖與單脈沖發(fā)生器電路[J].現(xiàn)代電子技術(shù),2009(21):171-172.XING Zi-ru,SHI Ming-jian.Elimination buffeting of keystroke and single pulse generator circuit in FPGA development process[J].Modern Electron Technology,2009(21):171-172.

    猜你喜歡
    狀態(tài)機(jī)觸發(fā)器計(jì)數(shù)器
    煤氣與熱力(2022年2期)2022-03-09 06:29:30
    基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
    主從JK觸發(fā)器邏輯功能分析
    電子世界(2017年22期)2017-12-02 03:03:45
    使用觸發(fā)器,強(qiáng)化安全性
    計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
    任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
    河南科技(2014年10期)2014-02-27 14:09:30
    基于單片機(jī)的仰臥起坐計(jì)數(shù)器
    對(duì)觸發(fā)器邏輯功能轉(zhuǎn)換的分析
    觸發(fā)器邏輯功能轉(zhuǎn)換的兩種方法
    FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
    手游| 黄浦区| 上栗县| 吐鲁番市| 阳春市| 遂溪县| 泗洪县| 曲松县| 南投县| 阳山县| 南郑县| 沂源县| 邻水| 苍梧县| 金沙县| 东乡族自治县| 萨迦县| 柳林县| 封丘县| 萨迦县| 平泉县| 珠海市| 岳池县| 镇沅| 留坝县| 红安县| 调兵山市| 柯坪县| 德令哈市| 龙口市| 瓦房店市| 鸡东县| 汝州市| 京山县| 河北区| 镇坪县| 佳木斯市| 桓仁| 洪泽县| 林甸县| 绵阳市|