基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘_第1頁
基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘_第2頁
基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘_第3頁
基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘_第4頁
基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于SOPC技術(shù)實現(xiàn)數(shù)字鬧鐘【摘要】在現(xiàn)代社會,數(shù)字鬧鐘方便了人們的生活和工作。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準(zhǔn)確顯示到秒。該數(shù)字鬧鐘主要采用sopc技術(shù),設(shè)計由系統(tǒng)對外部機械按鍵模塊進行掃描獲取部分指令,對外部時鐘分頻后進行小時24分頻計時模塊、分鐘60分頻計時模塊、秒鐘60分頻計時模塊,并進一步建立年月日計時判斷模塊。采用LED數(shù)碼管顯示時、分、秒,以24小時計時方式,蜂鳴器則作為鬧鐘聲音提示用。該數(shù)字鬧鐘優(yōu)點是小巧,價格低廉,走時精度高,整點報時和定時非常方便。 關(guān)鍵字: SOPC技術(shù) 數(shù)碼管顯示 整點提示 鬧鐘一、課題簡介 SOPC技術(shù)是美國Altrea公司于2000年最早提

2、出的,并同時推出了相應(yīng)的開發(fā)軟件Quartus II。SOPC是基于FPGA解決方案的SOC,與ASIC的SOC解決方案相比,SOPC系統(tǒng)及其開發(fā)技術(shù)具有更多的特色,構(gòu)成SOPC的方案有多種途徑,我們主要用到的是:基于FPGA嵌入IP硬核的SOPC系統(tǒng)1基于FPGA嵌入IP硬核的SOPC系統(tǒng)即在FPGA中預(yù)先植入嵌入式系統(tǒng)處理器。目前最為常用的嵌入式系統(tǒng)大多采用了含有ARM的32位知識產(chǎn)權(quán)處理器核的器件。盡管由這些器件構(gòu)成的嵌入式系統(tǒng)有很強的功能,但為了使系統(tǒng)更為靈活完備,功能更為強大,對更多任務(wù)的完成具有更好的適應(yīng)性,通常必須為此處理器配置許多接口器件才能構(gòu)成一個完整的應(yīng)用系統(tǒng)。如除配置常規(guī)

3、的SRAM、DRAM、Flash外,還必須配置網(wǎng)絡(luò)通信接口、串行通信接口、USB接口、VGA接口、PS/2接口或其他專用接口等。這樣會增加整個系統(tǒng)的體積、功耗,而降低系統(tǒng)的可靠性。但是如果將ARM或其他知識產(chǎn)權(quán)核,以硬核方式植入FPGA中,利用FPGA中的可編程邏輯資源和IP軟核,直接利用FPGA中的邏輯宏單元來構(gòu)成該嵌入式系統(tǒng)處理器的接口功能模塊,就能很好地解決這些問題。2基于FPGA嵌入IP軟核的SOPC系統(tǒng)這種SOPC系統(tǒng)是指在FPGA中植入軟核處理器,如:NIOS II核等。用戶可以根據(jù)設(shè)計的要求,利用相應(yīng)的EDA工具,對NIOS II及其外圍設(shè)備進行構(gòu)建,使該嵌入式系統(tǒng)在硬件結(jié)構(gòu)、功

4、能特點、資源占用等方面全面滿足用戶系統(tǒng)設(shè)計的要求。二、數(shù)字鬧鐘的工作原理及設(shè)計過程1、工作原理 數(shù)字鬧鐘組成結(jié)構(gòu)數(shù)字鬧鐘一般由振蕩器、分頻器、計數(shù)器、譯碼器、顯示器及部分擴展電路等組成。1.1 振蕩器振蕩器是數(shù)字電子鐘的核心,其作用是產(chǎn)生一個頻率標(biāo)準(zhǔn),即時間標(biāo)準(zhǔn)信號,然后再由分頻器生成秒脈沖,所以,振蕩器頻率的精度和穩(wěn)定度就基本決定了數(shù)字電子鐘的準(zhǔn)確度,為產(chǎn)生穩(wěn)定的時間標(biāo)準(zhǔn)信號,一般采用石英晶體振蕩器。從數(shù)字電子鐘的精度考慮,振蕩頻率越高記數(shù)精度越高。但這回使振蕩器的耗電量增大,分頻器級數(shù)增多。所以在確定頻率時應(yīng)同時考慮這兩方面的因素再選擇器材。如果精度要求不是很高的話我們可以采用由集成邏輯門

5、與RC組成的時鐘源振蕩器或由集成電路定時器555與RC組成的多諧振蕩器。一般而言,選用石英晶體振蕩器所選用的晶振頻率為32768Hz,再通過15級2分頻集成電路得到1Hz的標(biāo)準(zhǔn)秒脈沖。1.2 分頻器振蕩器產(chǎn)生的時標(biāo)信號頻率很高,要使它變成用來計時的“秒”信號,需要若干級分頻電路,分頻器的級數(shù)和每級分頻次數(shù)要根據(jù)時標(biāo)信號的頻率來決定。其功能主要有兩個:一是產(chǎn)生標(biāo)準(zhǔn)秒脈沖信號,二是提供功能擴展電路所需的信號。1.3 計數(shù)器有了“秒”信號了就可以根據(jù)60秒為一分,60分為一小時,24小時為一天的進制,分別選定沒“秒”、“分”、“時”的計數(shù)器。從這些計數(shù)器的輸出可得到一分、一小時、一天的時間進位信號。

6、在秒計數(shù)器鐘因為是60進制通常用兩個十進制計數(shù)器的集成片組成,其中秒個位是十進制的、十位是6進制的??刹捎梅答仛w零法變“秒”十位為6進制,實現(xiàn)秒的60進制,同樣,分計數(shù)器的與秒的一樣,只是時計數(shù)器里需要變成24進制,也用反饋歸零法實現(xiàn)。1.4 譯碼器及顯示器因為計數(shù)器全部采用8421BCD碼十進制計數(shù)集成芯片,所以“秒”、“分”、“時”的個位和十位都有四個狀態(tài)輸出端(Qa、Qb、Qc、Qd)。將這些輸出端接至專門設(shè)計制造的譯碼電路,就可產(chǎn)生驅(qū)動七段數(shù)碼顯示器的信號。1.5 校時電路當(dāng)數(shù)字鐘接通電源或者計時出現(xiàn)誤差時需要校正時間,校時電路的要求是:在小時校正時不影響分和秒的正常計數(shù);在分校時時不

7、影響時和秒的正常計數(shù);校時方式有“快校時”和“慢校時”兩種,“快校時“是通過開關(guān)控制使計數(shù)器對1Hz的校時脈沖計數(shù),“慢校時”是通過手動產(chǎn)生單脈沖作校時脈沖,校時的基本原理是將0.5秒的脈沖信號(可由分頻器的第14級分頻輸出端直接獲得),直接引進“時”計數(shù)器,同時將計數(shù)器置“0”,在時的指示調(diào)到需要的數(shù)字后,再切斷“0.5”信號讓計數(shù)器正常工作。2、設(shè)計過程SOPC設(shè)計首先使用Quartus II建立一個Quartus II 的工程,創(chuàng)建完成工程之后,需要創(chuàng)建頂層實體。創(chuàng)建完頂層設(shè)計文件之后,使用SOPC Builder創(chuàng)建NIOS II 嵌入式處理器,添加、配置系統(tǒng)的外設(shè)IP,組成Nios

8、II系統(tǒng)模塊。 Nios II 系統(tǒng)模塊設(shè)計完成之后要加入到該頂層實體中,然后進行其他片上邏輯的開發(fā)。2.1 Quartus II 工程的建立:(1)啟動Quartus II軟件;(2)選擇File菜單New Project Wizard,出現(xiàn)Introduction頁面,該頁面介紹所要完成的具體任務(wù),點擊next。(3) 進行項目名稱的設(shè)定、工作目錄的選擇。指定工程存放的目錄,工程名和頂層實體名,工程名和頂層實體名要求相同,工程目錄可以隨意設(shè)置,但必須是英文的目錄,工程名和頂層實體名也要求是英文名字,我們的工程名和頂層實體名為clock,選擇Next。4. 可以為工程添加先期已經(jīng)輸入的設(shè)計文

9、件,指定用戶自定義的元件庫的路徑,這里我們沒有事先輸入好的文件,也沒有自定義的元件庫,點擊Next進入下一步。 5. 用戶指定目標(biāo)器件,根據(jù)開發(fā)板的所使用的器件來選擇,實際開發(fā)中,通過查看核心板的參考手冊來獲取所使用的器件具體型號,可以使用窗口右邊的Filters來加快器件的選擇,選擇完畢點擊Next。6. 指定在Quartus II 之外的用于,設(shè)計輸入、綜合、仿真、時序分析的第三方EDA工具,Quartus II對第三方工具的支持比較完善。這里我們不做選擇,直接點擊Next。所見新工程的信息,確認所創(chuàng)建工程的主要信息,點擊Finish完成工程的建立,在開發(fā)的過程中,還可以通過菜單assig

10、nmentSettings來對這些配置進行修改。 點擊Finish按鈕,Quartus II自動會打開這個工程,可以看到頂層實體名出現(xiàn)在工程導(dǎo)航窗口中。7,、 新建的工程窗口中,選擇FileNew;在Device Design File頁中,選擇Block DiagramSchematic File,即原理圖文件,也可以選擇硬件描述語言的文件形式。單擊OK。出現(xiàn)一個模塊編輯窗口;選擇FileSave As,出現(xiàn)Save As對話框,顯示的目錄為之前設(shè)置的工程目錄,文件名為之前設(shè)置的頂層實體名(由于這是工程的第一個文件,系統(tǒng)會默認為頂層設(shè)計實體的名字)。確定Add to Current Proj

11、ect選項被選中,點擊save。器件型號 2.2創(chuàng)建NIOS II 系統(tǒng)模塊(1) 創(chuàng)建系統(tǒng):啟動SOPC Builder,選擇ToolsSOPC Builder,出現(xiàn)如圖所示的Create New System對話框。鍵入系統(tǒng)的名字,選擇硬件描述語言Verilog或者是VHDL。 (2) 設(shè)置系統(tǒng)主頻和指定目標(biāo)FPGA:在Board部分選擇Unspecified,然后在Device Family選擇Cyclone II。用戶需要設(shè)置系統(tǒng)的時鐘頻率,該頻率用于計算硬件和軟件開發(fā)中的定時,比如時鐘分頻或波特率,還可以選擇是否選用流水線。 (3)加入Nios II CPU和 IP模塊:首先加入Ni

12、os II軟核,Nios II 是軟核CPU,共有三種類型的CPU可供選擇:Nios II/e(經(jīng)濟型)、Nios II/s(標(biāo)準(zhǔn)型)和Nios II/f(快速型)。用戶可以根據(jù)實際的情況進行選擇。Nios II是一個用戶可以自行進行定制的CPU,用戶可以增加新的外設(shè)、新的指令等。 添加CPU軟核添加內(nèi)存_SDRAM 添加LCD模塊 添加100ms的定時器 完整的SOPC的硬件系統(tǒng)生成的PLL模塊 頂層總原理圖2.3部分程序如下:模24計數(shù)器/counter24.v 1 /filename :counter24.v (BCD : 0-23) 2 module counter24(CntH,Cn

13、tL,ncR,EN,CP); 3 input CP,ncR,EN; 4 output 3:0CntH,CntL; 5 reg 3:0CntH,CntL; 6 7 always (posedge CP,negedge ncR) 8 begin 9 if(ncR)10 CntH,CntL=8h00;11 else if(EN)12 CntH,CntL2)|(CntL9)|(CntH=2)&(CntL=3)14 CntH,CntL=8h00;15 else if(CntH=2)&(CntL3)16 begin17 CntH=CntH;18 CntL=CntL+1b1;19 end20 else if

14、(CntL=9)21 begin22 CntH=CntH+1b1;23 CntL=4b0000;24 end25 else26 begin27 CntH=CntH;28 CntL=CntL+1b1;29 end30 end31 32 endmodule 模60計數(shù)器/counter60.v1 /countuer 60 2 3 /counter10.v (BCD: 0-9) 4 module counter10(Q,ncR,EN,CP); 5 input CP,ncR,EN; 6 output reg 3:0Q; 7 8 always (posedge CP,negedge ncR) 9 beg

15、in10 if(ncR)11 Q=4b0000;12 else if(EN)13 Q=Q;14 else if(Q=4b1001)15 Q=4b0000;16 else17 Q=Q+1b1;18 end19 endmodule20 21 /counter6.v(BCD: 0-5)22 module counter6(Q,ncR,EN,CP);23 input CP,ncR,EN;24 output reg 3:0Q;25 26 always (posedge CP,negedge ncR)27 begin28 if(ncR)29 Q=4b0000;30 else if(EN)31 Q=Q;32

16、 else if(Q=4b0101)33 Q=4b0000;34 else35 Q=Q+1b1;36 end37 endmodule 38 39 /counter60.v(BCD:0-59)40 module counter60(Cnt,ncR,EN,CP);41 input CP,ncR,EN;42 output 7:0Cnt;43 wire 7:0Cnt;44 wire ENP;45 46 counter10 UC0(Cnt3:0,ncR,EN,CP);47 counter6 UC1(Cnt7:4,ncR,ENP,CP);48 49 assign ENP=(Cnt3:0=4h9);50 e

17、ndmodule 鬧鐘/1 /Bell.v 2 module Bell(alarm_clock,set_hr,set_min,hour,minute, 3 second,sethrkey,setminkey,_1khz,_500hz, 4 _1hz,ctrlbell); 5 output alarm_clock; 6 output 7:0set_hr,set_min; 7 wire alarm_clock; 8 input _1khz,_500hz,_1hz; 9 input sethrkey,setminkey;10 input ctrlbell;11 input 7:0hour,minut

18、e,second;12 13 supply1 Vdd;14 wire hrh_equ,hrl_equ,minh_equ,minl_equ;15 wire time_equ;16 17 counter60 SU1(set_min,Vdd,setminkey,_1hz);18 counter24 SU2(set_hr7:4,set_hr3:0,Vdd,sethrkey,_1hz);19 20 /comparate the set time21 _4bitcomparator SU4(hrh_equ,set_hr7:4,hour7:4);22 _4bitcomparator SU5(hrl_equ,

19、set_hr3:0,hour3:0);23 _4bitcomparator SU6(minh_equ,set_min7:4,minute7:4);24 _4bitcomparator SU7(minl_equ,set_min3:0,minute3:0);25 26 assign time_equ=(hrh_equ & hrl_equ & minh_equ & minl_equ);27 assign alarm_clock=ctrlbell?(time_equ&(second0=1b1)&_500hz)28 |(second0=1b0)&_1khz):1b0;29 endmodule30 31

20、/4bitcomparator.v32 module _4bitcomparator(equ,a,b);33 input 3:0a,b;34 output equ;35 36 assign equ=(a=b);37 endmodule2.3元器件型號及邏輯門芯片:EP2C20F484C7 1.2v 18752 315 52 4占用了3383個邏輯單元,占器件中18752個邏輯單元的18% Timeout period:100msTimer counter size :32bitsPio:4電容若干開關(guān)若干100khz晶振1塊蜂鳴器1個三、設(shè)計過程中遇到的問題及方案在連接電路時,用1HZ的信號輸入時,發(fā)現(xiàn)數(shù)碼管顯示沒有按預(yù)期的要求顯示,結(jié)果得等一兩分鐘才顯示一次,于是用是最后用時鐘信號來代替晶振通過調(diào)節(jié)脈沖信號的大小,結(jié)果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論