新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 怎樣在FPGA中處理開關控制信號

        怎樣在FPGA中處理開關控制信號

        作者: 時間:2010-12-10 來源:網絡 收藏

        其中,clk為13.5 MHz頻率的時鐘,clk_cnt為采樣時間間隔計數器,當clk_cnt為135 000時采樣1次,即每隔10 ms采樣1次。寄存器shuru_temp存儲前一次狀態,shum存儲當前狀態。如果shuru_temp的值等于shtlm的值,則計數器test_cnt自動加l。如果連續4次采樣值相等,即test_cnt=4時去抖動輸出才隨輸入變化。
        用電平撥動信號作為輸入,制作了一個脈沖信號用于識別開關動作,其代碼如下:

        代碼中寄存器level_contrl_TEMP存儲level_contrl延時256個時鐘周期后的信號,然后用level_eontrl_TEMP中存儲的信號與level_co-ntrl的值相異或產生所需要的脈沖信號。
        調試中發現,去抖動后的信號經常混有持續時間很短的高頻脈沖干擾信號,因此設計中使用兩級D觸發器延時來徹底消除高頻脈沖干擾,其程序代碼如下:

        2.2 雙口RAM及開關信號編碼設計
        雙口RAM分為真、假2種雙口。真雙口2個端口都可以讀寫,互不干擾。本次設計根據實際需要,添加的RAM模塊一端只讀,另一端只寫,讀寫互不干擾。根據上述分析可知,開關信號只能知道有開關動作發生,但是不能識別具體哪個開關發生了動作。因此,設計中首先利用MegaWizardPlug_In Manager中的宏功能塊RAM:2_PORT產生1個雙口RAM存儲塊,然后對這個宏功能模塊的參數進行適當調整,產生一個滿足自己特定要求的模塊,如圖5所示。

        本文引用地址:http://www.104case.com/article/151262.htm



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石柱| 虞城县| 临桂县| 邵阳市| 甘南县| 乌拉特前旗| 凤城市| 青神县| 汾西县| 明水县| 清镇市| 石泉县| 通渭县| 司法| 呈贡县| 方正县| 海城市| 沁源县| 和田市| 陆川县| 临桂县| 淮北市| 龙胜| 上林县| 建瓯市| 丹凤县| 平江县| 沈阳市| 黔江区| 唐海县| 小金县| 河西区| 鹤峰县| 青铜峡市| 安阳县| 云阳县| 靖边县| 肃北| 孙吴县| 青田县| 阿鲁科尔沁旗|