新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的搶答器設計與實現

        基于FPGA的搶答器設計與實現

        作者: 時間:2012-01-04 來源:網絡 收藏

         搶答器在各類競賽中的必備設備,有單路輸入的,也有組輸入方式,本設計以 為基礎設計了有三組輸入(每組三人),具有搶答計時控制,能夠對各搶答小組成績進行相應加減操作的通用型搶答器;現行的搶答器中主要有兩種:小規模數字邏輯芯片譯碼器和觸發器來做,另外一種用單片機來做;小規模數字邏輯電路比較復雜,用單片機來做隨著搶答組數的增加有時候存在I/O 口不足的情況;本設計采用 來做增強了時序控制的靈活性,同時由于 的I/O 端口資源豐富,可以在本設計基礎上稍加修改可以設計具有多組輸入的搶答器。

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

          功能描述

          本文設計了一個通用型電子搶答器:三個參賽隊,每個隊有三個成員,各自可手動按按鈕申請搶答權;回到正確加1 分,回答錯誤減1 分,違規搶答減1分,不搶答不加分不扣分;用4 位LED 的左邊2 位顯示搶答組號及搶答計時時間,右邊2 位顯示相應組的成績。

          搶答器具體功能如下:

          1、可同時進行三組每個小組三人的搶答, 用9 個按鈕Group1_1,Group1_2,Group1_3,Group2_1,Group2_2,Group2_3,Group3_1,Group3_2,Group3_3 表示;

          2、設置一個搶答控制開關Start,該開關由主持人控制;只有當主持人按下開始鍵才能搶答;在按開始按鈕前搶答屬于違規;

          3、搶答器具有定時搶答功能,且一次搶答的時間設定為30 秒。當主持人啟動“開始”鍵后,用4 位LED 數碼管左邊兩位顯示30s 的倒計時;同時紅色LED燈亮,表明可以搶答。

          4、搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的組號,并在4 位LED 數碼管的左邊兩位顯示,同時用一個綠色LED 指示是否有選手搶答,如果是違規搶答還能用選手蜂鳴器報警提示。搶答實行優先鎖存,優先搶答選手的相應組號和成績一直保持到下一輪搶答開始。

          5、參賽選手在設定的時間內進行搶答,搶答有效,數碼管左邊兩位顯示 ”FX”,如果搶答違規則顯示 ”XF”(其中X 表示組號1~3),并保持到下一輪搶答。如果搶答延遲時間已到,無人搶答,本次搶答無效,系統回到主持人按開始前的等待狀態,數碼管上左邊兩位顯示“FF”。

          6、當搶答有效后,主持人可以根據搶答選手回答問題正確與否對選手相應組數的成績進行加減分操作,搶答違規也能減分操作,用4 位LED 數碼管右邊兩位顯示相應組數的成績。(注各組初始成績為10 分)

          設計架構

          本文以FPGA 為基礎設計的電子搶答器,根據設計功能要求,改設計主要包括搶答輸入鍵盤,數碼管顯示,報警及FPGA 最小系統。搶答器結構簡圖如圖1所示。

          搶答器結構圖

          1、FPGA 最小系統電路:FPGA 正常工作時的基本電路,由時鐘和復位電路組成。

          2、鍵盤輸入電路:用3×3 矩陣鍵盤組成3 個組共9 個人的搶答按鈕。同時包括Start, Add, Sub 三個由主持人控制的單獨按鈕。

          3、顯示模塊:用移位寄存器74HC164 驅動4 位共陰數碼管顯示;數碼管要顯示的數據通過74HC164 串行數據端口輸入。

          4、報警及相關信息顯示:蜂鳴器電路和LED 燈顯示相關狀態信息指示電路。

          各模塊詳細描述

          1、FPGA 與各個模塊的接口

          本文以XC3S400 為基礎設計的電子搶答器,搶答器實際上是一個人機接口的一個智能設備,該設計中用到的FPGA 外部I/O 口及其與外部各個模塊連接的網絡標識如圖2 所示。

          

          圖2.FPGA 的IO 接口

          2、按鍵模塊

          由于按鍵是機械的動作,按鍵存在電平抖動,為了消除按鍵抖動引起的干擾,需要等按鍵值達到穩定狀態時才讀取按鍵的值,也就是說要當按鍵按下一段時間后,才讀取按鍵值;本設計中搶答開始鍵(Start)、搶答后各組成績的加(Add)和減(Sub)按鍵是以單鍵的形式輸入,按鍵延遲時間為20ms,對于搶答組的按鍵是用3×3 陣列鍵盤實現,row=3’b001 以周期為5.08ms 進行循環左移掃描,掃描完三行的周期為15.24ms,這個就是說只有當兩個按鍵之間的時間間隔在15.24ms 之內時才有可能存在一個按鈕在比另一個按鈕先按,而響應后者;實際操作中,兩人按鍵之間的間隔大于這個時間間隔,因此,不會出現錯誤響應。同時每個按鍵后的延遲等待125.76ms 后此按鍵值才有效;經過實際測試,鍵盤具有消抖功能,能夠正確檢測按鍵值。按鍵電路圖如圖3 所示。

          

          圖3.按鍵電路

          圖注: Group1_1,Group1_2,Group1_3 分別表示第一參賽小組的三個成員的按鈕, 依次類推Group2_1,Group2_2,Group2_3 和 Group1_1,Group1_2,Group1_3 分別代表第二和第三參賽小組的三個成員;Start、Add、Sub 分別代表搶答開始按鍵、對小組成績的加操作和減操作按鈕!

          3、顯示模塊

          顯示模塊由4 位的LED 數碼管顯示搶答組數、是否違規搶答信息、按下搶答鍵后的搶答時間、各組所得分數等信息;其中數碼管左邊2 位顯示搶答組號及搶答計時時間,右邊2 位顯示相應組的成績。數碼管的驅動電路(譯碼電路)用兩片74164 控制;電路圖如圖4 所示。

          顯示數據信息通過74164 的串行譯碼傳送到數碼管對應段,對應位顯示;對于數碼管顯示的時序特別要注意:數碼管是采用動態掃描方式顯示,所有位掃描顯示一次的頻率一定要大于相應位數據改變的頻率;同時當數碼管對于數據改變的同時一定要把相應數據送到數碼管進行顯示,即數據改變和數據顯示要同步;此設計中4 位數碼管動態掃描頻率位190Hz,而數碼管要顯示的搶答組數、搶答組的成績等信息的變化頻率都是秒級,即幾秒鐘或者幾分鐘變化一次,滿足數碼管顯示要求。

          

          圖4.顯示電路

          注:數碼管為共陰數碼管,其中pin6,pin8,pin9,pin12 依次為位碼,其余為段碼;

          4、時鐘復位

          此模塊用于生成FPGA 系統時鐘和復位電路,采用有源晶振和低電平復位。系統時鐘采用50MHz,能夠滿足電路設計要求,電路如圖5 所示。

          

          圖5.時鐘復位電路

          5、報警模塊

          報警主要用于響應當沒有按開始鍵之前違規搶答信號;即當違規時蜂鳴器響;同時還增加了一個紅色用于顯示當按下開始鍵的信號;即當主持人按下開始按鍵時,紅色LED 燈亮;同時用一個綠色LED 燈指示有選手按搶答按鈕,選手按鍵搶答,綠色LED 閃爍一次。電路圖如圖6 所示。

          

          圖6.報警和指示

          軟件代碼描述

          軟件設計主要采用verilog HDL 語言進行設計,采用狀態機對搶答器的各個過程進行控制,設計中采用了層次化和模塊化的思想,即頂層模塊只有一個控制搶答器的主狀態機和模塊例化,然后分別用子模塊實現數碼管顯示,成績多路選擇器,成績的處理模塊,按下搶答開始鍵后的延遲等待模塊,按鍵模塊等。程序流程圖如圖7 所示。

        fpga相關文章:fpga是什么


        蜂鳴器相關文章:蜂鳴器原理

        上一頁 1 2 下一頁

        關鍵詞: FPGA 搶答器設計

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石家庄市| 安新县| 天台县| 襄汾县| 通州区| 都兰县| 马尔康县| 淮安市| 棋牌| 吉水县| 泸州市| 丹巴县| 宁安市| 友谊县| 新闻| 沙河市| 通州区| 木里| 互助| 永登县| 醴陵市| 平原县| 开封县| 霍山县| 丽水市| 怀来县| 双流县| 萍乡市| 泽库县| 惠安县| 临夏市| 遂平县| 保亭| 元谋县| 吉林省| 确山县| 潞西市| 城市| 忻州市| 寿光市| 常宁市|