版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于FPGA的搶答器設計與實現(xiàn)搶答器在各類競賽中的必備設備,有單路輸入的,也有組輸入方式,本設計以FPGA為基礎設計了有三組輸入(每組三人),具有搶答計時掌握,能夠對各搶答小組成果進行相應加減操作的通用型搶答器;現(xiàn)行的搶答器中主要有兩種:小規(guī)模數(shù)字規(guī)律芯片譯碼器和觸發(fā)器來做,另外一種用單片機來做;小規(guī)模數(shù)字規(guī)律電路比較簡潔,用單片機來做隨著搶答組數(shù)的增加有時候存在I/O口不足的情況;本設計接受FPGA來做增強了時序掌握的靈敏性,同時由于FPGA的I/O端口資源豐富,可以在本設計基礎上稍加修改可以設計具有多組輸入的搶答器。功能描述本文設計了一個通用型電子搶答器:三個參賽隊,每個隊有三個成員,各自可手動按按鈕申請搶答權;回到正確加1分,回答錯誤減1分,違規(guī)搶答減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,該開關由主持人掌握;只有當主持人按下開頭鍵才能搶答;在按開頭按鈕前搶答屬于違規(guī);3、搶答器具有定時搶答功能,且一次搶答的時間設定為30秒。當主持人啟動“開頭”鍵后,用4位LED數(shù)碼管左邊兩位顯示30s的倒計時;同時紅色LED燈亮,表明可以搶答。4、搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的組號,并在4位LED數(shù)碼管的左邊兩位顯示,同時用一個綠色LED指示是否有選手搶答,如果是違規(guī)搶答還能用選手蜂鳴器報警提示。搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的相應組號和成果始終保持到下一輪搶答開頭。5、參賽選手在設定的時間內(nèi)進行搶答,搶答有效,數(shù)碼管左邊兩位顯示”FX”,如果搶答違規(guī)章顯示”XF"(其中X表示組號1~3),并保持到下一輪搶答。如果搶答延遲時間已到,無人搶答,本次搶答無效,系統(tǒng)回到主持人按開頭前的等待狀態(tài),數(shù)碼管上左邊兩位顯示“FF”。6、當搶答有效后,主持人可以依據(jù)搶答選手回答問題正確與否對選手相應組數(shù)的成果進行加減分操作,搶答違規(guī)也能減分操作,用4位LED數(shù)碼管右邊兩位顯示相應組數(shù)的成果。(注各組初始成果為10分)設計架構本文以FPGA為基礎設計的電子搶答器,依據(jù)設計功能要求,改設計主要包括搶答輸入鍵盤,數(shù)碼管顯示,報警及FPGA最小系統(tǒng)。搶答器結構簡圖如圖1所示。1、FPGA最小系統(tǒng)電路:FPGA正常工作時的基本電路,由時鐘和復位電路組成。2、鍵盤輸入電路:用3×3矩陣鍵盤組成3個組共9個人的搶答按鈕。同時包括Start,Add,Sub三個由主持人掌握的單獨按鈕。3、顯示模塊:用移位寄存器74HC164驅動4位共陰數(shù)碼管顯示;數(shù)碼管要顯示的數(shù)據(jù)通過74HC164串行數(shù)據(jù)端口輸入。4、報警及相關信息顯示:蜂鳴器電路和LED燈顯示相關狀態(tài)信息指示電路。各模塊簡略描述1、FPGA與各個模塊的接口本文以XC3S400為基礎設計的電子搶答器,搶答器實際上是一個人機接口的一個智能設備,該設計中用到的FPGA外部I/O口及其與外部各個模塊連接的網(wǎng)絡標識如圖2所示。圖2.FPGA的IO接口2、按鍵模塊由于按鍵是機械的動作,按鍵存在電平抖動,為了消除按鍵抖動引起的干擾,需要等按鍵值達到穩(wěn)定狀態(tài)時才讀取按鍵的值,也就是說要當按鍵按下一段時間后,才讀取按鍵值;本設計中搶答開頭鍵(Start)、搶答后各組成果的加(Add)和減(Sub)按鍵是以單鍵的形式輸入,按鍵延遲時間為20ms,對于搶答組的按鍵是用3×3陣列鍵盤實現(xiàn),row=3’b001以周期為5。08ms進行循環(huán)左移掃描,掃描完三行的周期為15.24ms,這個就是說只有當兩個按鍵之間的時間間隔在15.24ms之內(nèi)時才有可能存在一個按鈕在比另一個按鈕先按,而響應后者;實際操作中,兩人按鍵之間的間隔大于這個時間間隔,因此,不會消滅錯誤響應。同時每個按鍵后的延遲等待125.76ms后此按鍵值才有效;經(jīng)過實際測試,鍵盤具有消抖功能,能夠正確檢測按鍵值。按鍵電路圖如圖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數(shù)碼管顯示搶答組數(shù)、是否違規(guī)搶答信息、按下?lián)尨疰I后的搶答時間、各組所得分數(shù)等信息;其中數(shù)碼管左邊2位顯示搶答組號及搶答計時時間,右邊2位顯示相應組的成果。數(shù)碼管的驅動電路(譯碼電路)用兩片74164掌握;電路圖如圖4所示。顯示數(shù)據(jù)信息通過74164的串行譯碼傳送到數(shù)碼管對應段,對應位顯示;對于數(shù)碼管顯示的時序格外要注意:數(shù)碼管是接受動態(tài)掃描方式顯示,全部位掃描顯示一次的頻率肯定要大于相應位數(shù)據(jù)轉變的頻率;同時當數(shù)碼管對于數(shù)據(jù)轉變的同時肯定要把相應數(shù)據(jù)送到數(shù)碼管進行顯示,即數(shù)據(jù)轉變和數(shù)據(jù)顯示要同步;此設計中4位數(shù)碼管動態(tài)掃描頻率位190Hz,而數(shù)碼管要顯示的搶答組數(shù)、搶答組的成果等信息的變化頻率都是秒級,即幾秒鐘或者幾分鐘變化一次,滿意數(shù)碼管顯示要求。圖4.顯示電路注:數(shù)碼管為共陰數(shù)碼管,其中pin6,pin8,pin9,pin12依次為位碼,其余為段碼;4、時鐘復位此模塊用于生成FPGA系統(tǒng)時鐘和復位電路,接受有源晶振和低電平復位.系統(tǒng)時鐘接受50MHz,能夠滿意電路設計要求,電路如圖5所示。圖5.時鐘復位電路5、報警模塊報警主要用于響應當沒有按開頭鍵之前違規(guī)搶答信號;即當違規(guī)時蜂鳴器響;同時還增加了一個紅色用于顯示當按下開頭鍵的信號;即當主持人按下開頭按鍵時,紅色LED燈亮;同時用一個綠色LED燈指示有選手按搶答按鈕,選手按鍵搶答,綠色LED閃爍一次。電路圖如圖6所示。圖6.報警和指示軟件代碼描述軟件設計主要接受verilogHDL語言進行設計,接受狀態(tài)機對搶答器的各個過程進行掌握,設計中接受了層次化和模塊化的思想,即頂層模塊只有一個掌握搶答器的主狀態(tài)機和模塊例化,然后分別用子模塊實現(xiàn)數(shù)碼管顯示,成果多路選擇器,成果的處理模塊,按下?lián)尨痖_頭鍵后的延遲等待模塊,按鍵模塊等。程序流程圖如圖7所示.圖7.程序流程圖圖注:顯示“FF+成果”中FF表示無效狀態(tài),成果表示上一次搶答的那個小組的成果;顯示“FX+成果"表示搶答小組答題完并進行評分操作后的組號和成果;顯示“XF+成果"表示違規(guī)搶答的那個小組組號及減1分后的成果信息(X表示1,2,3)。這里“+"是為了區(qū)分組號和成果信息,數(shù)碼管并不顯示加號,下同。用VerilogHDL分別編寫各個模塊,然后在ISE環(huán)境下運行程序,調(diào)試成功。最后生成的頂層模塊的方塊圖如圖8所示.圖8。頂層模塊圖圖注:Line(2:0)和row(2:0)分別表示參賽小組按鍵的輸入陣列信號和輸出掃描陣列信號;start_key,add_key,sub_key,分別代表搶答開頭命令,對各組成果的加、減操作命令;dp,error,push_key分別表示開頭鍵按下后的信號,違規(guī)搶答信號以及參賽組有人按鍵的響應信號;hc_cp,hc_si表示顯示譯碼芯片74HC164的串行時鐘和數(shù)據(jù)信號.問題與解決1、狀態(tài)機問題在整體調(diào)試的時候,當主持人按開頭按鈕后,程序就死在那里,不能接收搶答信息,由于搶答鍵盤已單獨調(diào)試成功,因此懷疑是掌握搶答過程的狀態(tài)機除了問題,指示進入開頭狀態(tài)的紅色LED燈始終亮著,說明程序的確死在開頭狀態(tài).再次綜合的過程中發(fā)現(xiàn)警告提示:狀態(tài)機的狀態(tài)量的賦值錯誤,把二進制標識“b”誤寫為“h”,這樣由于狀態(tài)機數(shù)據(jù)寬度小于時間數(shù)據(jù)數(shù)據(jù)長度,自動取較小位數(shù)據(jù);如state_start=4‘b0010誤寫為state_start=4’h0010,實際就是state_start=4'b0000,這肯定與前面狀態(tài)沖突;同時調(diào)試過程中也遇到過復位時沒有把狀態(tài)機復位到初始狀態(tài)的情況。經(jīng)過此次設計,體會生疏到狀態(tài)機在實際掌握中的重要性,以后設計中要學會看綜合布線過程中警告信息。2、信號同步的問題在搶答器按下開頭鍵后有一個等待搶答30s的延遲時間,當30s完成后如果三個小組都沒有人按搶答鍵,那么此次競賽搶答無效,系統(tǒng)自動回到主持人按開頭前的系統(tǒng)等待狀態(tài);當計時完成30s后生成一個高電平的脈沖信號(pulse),由于此脈沖信號高電平持續(xù)時間是整個系統(tǒng)的系統(tǒng)時鐘(clk),這個時鐘周期小于狀態(tài)機的時鐘周期(clk_4),直接用狀態(tài)機的時鐘是檢測不到此脈沖信號,需要把此脈沖信號同步到與狀態(tài)機時鐘同步。接受的方法是:首先用一個鎖存器(pulse_reg)鎖存此脈沖信號(鎖存器時鐘也為系統(tǒng)時鐘),通過鎖存器的輸出值和原脈沖信號寄存器值就可以檢測到脈沖由低電平0到高電平1的跳變沿,同樣用一個與系統(tǒng)時鐘同步的鎖存器(flag)鎖存這個跳變沿,當消滅這個跳變沿時flag=1;而為了讓狀態(tài)機時鐘(clk_4)檢測到flag信號,同時要在狀態(tài)機時鐘檢測到后要把flag清零,為下一次檢測作籌備,這時可以當狀態(tài)機時鐘(clk_4)檢測到flag=1’b1后,同時生成一個flag的清零信號(flag_rst)flag_rst=1’b1;當flag_rst為1時把flag清零。調(diào)試信號同步的部分程序如下:regflag_rst;//生成flag_rst信號always@(posedgeclk_4ornegedgerst_n)beginif(!rst_n)beginflag_rst〈=1‘b0;endelsebeginif(flag==1'b0)flag_rst<=1‘b0;elsebeginflag_rst<=1’b1;endendendalways@(posedgeclk)beginpulse_reg<=pulse;endregflag;//flag用來檢測pulse上升沿always@(posedgeclk)beginif(!rst_n)flag<=1’b0;elsebeginif((pulse_reg==1‘b0)&&(pulse==1’b1))flag<=1‘b1;elseif(flag_rst==1’b1)flag<=1‘b0;endendregflag_reg;//生成與clk_4同步的用于檢測脈沖上升沿信號的flag信號always@(posedgeclk_4)beginflag_reg<=flag;end用modesim6.0仿真波形如下:圖9.信號的同步的仿真波形從仿真波形中可以看出當pulse高電平常的下一個時鐘flag=1'b1;為了讓時鐘clk_4能夠檢測到flag=1’b1,就讓flag始終保存到clk_4上升沿消滅,然后在clk_4上升沿把flag的復位信號flag_rst置1;然后flag,flag_rst都清零。轉變pulse脈沖消滅的時間或者clk_4的頻率都能檢測到pulse的高電平。經(jīng)過信號同步后,狀態(tài)機能夠檢測搶答計時完30s后生成的一個脈沖信號然后回到初狀態(tài).時序設計是數(shù)字電路電路的主要工作,在設計中肯定要明白信號如何傳遞,在何時賦值,何時信號值需要轉變等,這樣才能更好的設計。在需要轉變寄存器值的時刻沒有對寄存器進行操作,會造成結果的錯誤。設計結果依據(jù)搶答器功能要求,規(guī)劃程序包括的子模塊,并編寫Verilog代碼,在硬件電路上調(diào)試運行成功。操作過程:開頭時對,整個系統(tǒng)復位(默認每組成果為10分),數(shù)碼管顯示“FF+10".在主持人發(fā)出開頭搶答的Start之后,參賽隊員就可以按自己前面的搶答按鈕,同時用數(shù)碼管左邊兩位計時搶答時間30s,如果在30s內(nèi)各組都無人搶答,則此次搶答無效,系統(tǒng)自動回到開頭前的初狀態(tài)(數(shù)碼管顯示“FF+成果"),等待下一次操作;主持人可依據(jù)回答爭取與否,以及是否違規(guī)搶答,決定加減分(Add為加分掌握,Sub為減分掌握),加減操作后系統(tǒng)又回到開頭前的等待狀態(tài)。設計中,哪個組搶答,就顯示哪個組的信息。如果搶答沒有違規(guī)(按開頭后搶答)則顯示器左邊兩位顯示“FX”;反之,則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年銷售獸藥工作計劃范文
- 2025年年度計劃培訓表 年度計劃分配率公式
- 2025年高一語文教師下學期教學工作計劃
- 2025年幼兒園保育工作計劃開頭范文
- 2025招投標工作計劃
- 智能小車行業(yè)相關投資計劃提議
- 特種電線相關行業(yè)投資方案
- 工業(yè)淀粉相關項目投資計劃書范本
- 2025年年級教師工作計劃范文
- Unit3 Topic2. 說課稿 -2024-2025學年仁愛科普版英語八年級上冊
- 腫瘤放射治療體位固定技術
- 監(jiān)理報告范本
- 店鋪交割合同范例
- 新生兒心臟病護理查房
- 規(guī)劃設計行業(yè)數(shù)字化轉型趨勢
- 物業(yè)年終總結匯報工作
- 金色簡約蛇年年終總結匯報模板
- 醫(yī)院住院病歷質量檢查評分表(評分標準)
- 12.1 擁有積極的人生態(tài)度(教學設計)2024七年級道德與法治上冊
- 視聽說課程(《走遍美國》)教學方案
- 高中體育與健康-短跑教學設計學情分析教材分析課后反思
評論
0/150
提交評論