現(xiàn)代電子系統(tǒng)設計_第1頁
現(xiàn)代電子系統(tǒng)設計_第2頁
現(xiàn)代電子系統(tǒng)設計_第3頁
現(xiàn)代電子系統(tǒng)設計_第4頁
現(xiàn)代電子系統(tǒng)設計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一:智能交通控制器 設計要求試設計民族大道與南湖大道十字路口的智能交通控制器,控制車輛的示意圖如圖1所示。 A 信號 B信號 C 信號 D 信號交通信號燈的控制順利ABCD-A,信號燈有紅綠黃三色(紅燈禁止通行;綠燈允許通行;黃燈警示,綠燈切換為紅燈時,亮黃燈3秒)為錯開早晚上下班高峰,信號燈采取分時控制,其中控制的時間表為:時間段A信號燈B信號燈C信號燈D信號燈7:309:001分鐘45秒1分鐘15秒9:0017:0030秒30秒30秒30秒17:0019:0045秒20秒1分鐘1分鐘19:007:0020秒20秒20秒20秒要求:1)采用Verilog HDL設計 2)設計報告應包含RTL

2、圖,時序仿真結(jié)果圖等 3)FPGA硬件平臺推薦使用DE2 (1) 設計思路 要南湖大道和民族大道構(gòu)成的十字路口的四個方向交通燈的控制系統(tǒng),根據(jù)要求,分為四個時間段,但是由于上班時和下班時是車流通量的高峰期,所以要給控制系統(tǒng)加時間控制,可根據(jù)時間段執(zhí)行路段的流通時間長短。在7:309:00時間段內(nèi),當A信號燈為綠燈時,這是車輛允許直行或左轉(zhuǎn),而其他三個方向的信號燈均為紅燈,禁止通行。當A信號燈的數(shù)碼管顯示綠燈倒計時,其他方向的數(shù)碼管也顯示著紅燈倒計時。60s倒計時完畢后,A信號燈由綠燈轉(zhuǎn)為黃燈,進入3s的黃燈倒計時,其他方向交通燈繼續(xù)保持著紅燈狀態(tài),3s之后A信號燈黃燈倒計時完畢轉(zhuǎn)為紅燈,B信號

3、燈由紅燈轉(zhuǎn)為綠燈,并開始45s倒計時,同上,當B信號燈轉(zhuǎn)為黃燈時,黃燈又進入3s的倒計時,在黃燈倒計時結(jié)束后,C信號燈由紅色轉(zhuǎn)為綠色。重復之前的步驟,交通燈由A-B-C-D-A完成一個循環(huán),然后在另外的三個時間段內(nèi),分別對應著信號燈在紅綠燈運行的時間狀態(tài)完成同樣的循環(huán)步驟。(2) 設計方案 總體上分為四個大模塊,即:分頻模塊,數(shù)字鐘模塊、控制模塊、譯碼顯示模塊。設計圖分頻模塊 由于所用的開發(fā)板中的晶振是50MHz,將它分頻為1Hz,使其能供應時鐘應用。程序如下 打包后的數(shù)字鐘設計24進制計數(shù)器24進制仿真圖 60進制計數(shù)器的設計方法類似24進制計數(shù)器,不同的地方在于,60進制的設計思想是當計數(shù)

4、到59時,置數(shù)清零,產(chǎn)生進位輸出;而24進制的高低4位的清零和進位需要考慮個位計數(shù)到9和整個計滿到23。由于本次要求在復位后,是7:30,所以分鐘在復位后應該是30。在仿真無誤后,進行打包60進制仿真圖24小時的時鐘完成數(shù)字鐘仿真控制模塊 在四個路口分別在四個不同的時間段內(nèi)控制交通燈的循環(huán)狀況,以達到道路上路人和車輛的正常通行的目的。這里我們需要在每個路口放置三個LED燈和兩個七段數(shù)碼管,三個LED燈分別表示紅綠黃三個不同的顯示狀態(tài),數(shù)碼管用來進行倒計時切換紅綠黃燈的正常工作。當sk1,sk2為00時就是7:30到9:00這個時間段。當sk1,sk2為01時為9:00到17:00。當sk1,s

5、k2為10時為第三個時間段。當sk1,sk2為11時為第四個時間段??刂茣r間模塊時間模塊 控制狀態(tài)模塊always(posedge sysclk_1Hz or negedge reset)begin if(!reset) / 有清零,燈都滅 begin light_select=12b000000000000; light_status=3d0; enable=0; end else if(enable=0) / 使能端為0則執(zhí)行 begin enable=1; / 使能端變1,下面只執(zhí)行一次 case(light_status) / 控制狀態(tài)跳轉(zhuǎn) 0: begin / 狀態(tài)A light_l

6、ong=aaaa; / 燈亮的時間60s light_select=12b001100100100; / 控制燈亮 light_status=3d1; / 交給下一個狀態(tài) end 1: begin / 黃燈閃爍 light_long=eeee; / 黃燈亮的時間3s light_select=12b010100100100; / 控制黃燈亮 light_status=3d2; / 交給下一個狀態(tài) end 2: begin / 狀態(tài)B light_long=bbbb; / 燈亮的時間 light_select=12b100001100100; / 控制燈亮 light_status=3d3; /

7、 交給下一個狀態(tài) end 3: begin / 黃燈閃爍 light_long=eeee; / 黃燈亮的時間 light_select=12b100010100100; / 控制黃燈亮 light_status=3d4; / 交給下一個狀態(tài) end 4: begin / 狀態(tài)C light_long=cccc; / 燈亮的時間 light_select=12b100100001100; light_status=3d5; / 交給下一個狀態(tài) end 5: begin / 黃燈閃爍 light_long=eeee; / 黃燈亮的時間 light_select=12b100100010100; /

8、 控制黃燈亮 light_status=3d6; / 交給下一個狀態(tài) end 6: begin / 狀態(tài)D light_long=dddd; / 燈亮的時間 light_select=12b100100100001; light_status=3d7; / 交給下一個狀態(tài) end 7: begin / 黃燈閃爍 light_long=eeee; / 黃燈亮的時間10s light_select=12b100100100010; / 控制黃燈亮 light_status=3d0; / 交給下一個狀態(tài) end default light_select=12b000000000000; endcas

9、e end else if(light_long=0) / 一個燈倒計時完,使能端變0 enable=0; else if(light_long3:0=0) / 如果個位為0 begin light_long3:0=4d9; / 則個位重新賦值9 light_long7:4=light_long7:4-1; end / 且十位減1 else / 否則個位值減1 light_long3:0=light_long3:0-1;endassign dout_1s=light_long3:0; / 倒計時低四位就是輸出個位assign dout_10s=light_long7:4; / 倒計時高四位就是

10、輸出十位endmodule控制各燈亮滅程序:always(y_flicker or light_sel)begin colour11=light_sel11; /A紅燈傳送 colour9=light_sel9; /A綠燈傳送 colour8=light_sel8; /B紅燈傳送 colour6=light_sel6; /B綠燈傳送 colour5=light_sel5; /C綠燈傳送 colour3=light_sel3; /C綠燈傳送 colour2=light_sel2; /D紅燈傳送 colour0=light_sel0; /D綠燈傳送 if(y_flicker=1)&(light_s

11、el1=1b1) /輸入黃燈亮,且控制信號 colour1=1b1; /為高,黃燈才亮 else /別的情況,黃燈都滅 colour1=1b0; if(y_flicker=1)&(light_sel4=1b1) /輸入黃燈亮,且控制信號 colour4=1b1; /為高,黃燈才亮 else /別的情況,黃燈都滅 colour4=1b0; if(y_flicker=1)&(light_sel7=1b1) /輸入黃燈亮,且控制信號 colour7=1b1; /為高,黃燈才亮 else /別的情況,黃燈都滅 colour7=1b0; if(y_flicker=1)&(light_sel10=1b1)

12、 /輸入黃燈亮,且控制信號 colour10=1b1; / 為高,黃燈才亮 else / 別的情況,黃燈都滅 colour10=1b0; end控制燈亮時間及狀態(tài)切換:always(posedge sysclk_1Hz or negedge reset)begin if(! reset) begin My_Time=13b0; end else begin if(sysclk_1Hz=1b1) / 0.5s后翻轉(zhuǎn) begin My_Time0&My_Time5400) /7:30-9:00 begin aaaa=8h60; bbbb=8h45; cccc=8h60; dddd5400&My_T

13、ime34200) /9:00-17:00 begin aaaa=8h30; bbbb=8h30; cccc=8h30; dddd34200&My_Time41400) /17:00-19:00 begin aaaa=8h45; bbbb=8h20; cccc=8h60; dddd41400&My_Time86400) /19:00-7:30 begin aaaa=8h20; bbbb=8h20; cccc=8h20; dddd86400) /19:00-7:30 begin My_Time=0; end end end數(shù)碼管顯示模塊 數(shù)碼管譯碼顯示(部分)always ( led_g or

14、en)beginledbcd_g=7b1111111;if(en=1)case(led_g) /用 case 語句進行計時個位譯碼4b0000:ledbcd_g=7b1000000; /04b0001: ledbcd_g=7b1111001; /14b0010: ledbcd_g=7b0100100; /24b0011: ledbcd_g=7b0110000; /34b0100: ledbcd_g=7b0011001; /44b0101: ledbcd_g=7b0010010; /54b0110: ledbcd_g=7b0000010; /64b0111: ledbcd_g=7b1111000

15、; /74b1000: ledbcd_g=7b0000000; /84b1001: ledbcd_g=7b0010000; /9default: ledbcd_g=7b0000000;endcaseendalways ( led_s or en)beginledbcd_s=7b1111111;if(en=1)case(led_s) /用 case 語句進行計時十位譯碼4b0000:ledbcd_s=7b1000000; /04b0001: ledbcd_s=7b1111001; /14b0010: ledbcd_s=7b0100100; /24b0011: ledbcd_s=7b0110000

16、; /34b0100: ledbcd_s=7b0011001; /44b0101: ledbcd_s=7b0010010; /54b0110: ledbcd_s=7b0000010; /64b0111: ledbcd_s=7b1111000; /74b1000: ledbcd_s=7b0000000; /84b1001: ledbcd_s=7b0010000; /9default: ledbcd_s=7b0000000;endcaseend 倒計時(每隔1s的時間閃爍)always(posedge clk or negedge rst)begin if(! rst) begin clk_sca

17、n=0; cnt=32d0; end else begin if(cnt=32d50000000-1) / 1s的時間 begin cnt=32d0;sec=sec; end else cnt0) if(numA3:0=0) begin numA3:0=4b1001; numA7:4=numA7:4-1; /十位減1 end else numA3:0=numA3:0-1; /個位減1 if(numA=1) timA計算得到根目錄所在的扇區(qū)獲取根目錄所在扇區(qū)的512字節(jié)數(shù)據(jù)計算音頻文件所在的扇區(qū)或開始簇號根據(jù)FAT表分析文件所占有簇的分布情況從而讀取整個文件如何保證讀到的音頻文件按其采樣頻率輸出

18、?由于SD卡讀取的數(shù)據(jù)的速度的不可控性,另外WAV音頻文件比較大,一首歌多達十幾兆,只能采用邊讀邊放才能保證音樂實時不間斷地放出來。播放速度只取決于歌曲的采樣頻率,播放速度在播放過程中不能變化。(2) 實驗原理設計充分利用了DE2開發(fā)板上的硬件資源,其中音頻編/解碼器(Audio CODEC) 是系統(tǒng)的核心,它是由Wolfson公司的低功耗立體聲24位音頻編解碼芯片WM8731來完成的WM8731包含了線路輸入、麥克風輸入及耳機( 音響) 輸出。兩路線路左、右聲道能以1.5dB的步距在12dB-34.5dB范圍內(nèi)進行對數(shù)音量調(diào)節(jié),完成A/D轉(zhuǎn)換后,還可以進行高通數(shù)字濾波,有效濾除輸入信號中的直

19、流成分。一路麥克風輸入可以在-634dB范圍內(nèi)進行音量調(diào)節(jié)。這三路輸入都有單獨的靜音功能,D/A 轉(zhuǎn)換器輸入、線路輸入旁路及麥克風輸入經(jīng)過側(cè)音電路后可相加作為輸出以驅(qū)動耳機( RHPOUT 和 LHPOUT)。DE2平臺上的LINE OUT可以直接驅(qū)動耳機,LINE IN經(jīng)過隔直電容輸入,而 MIC IN則直接輸入。充分利用了24位立體聲音頻編/解碼芯片WM8731高性能、低功耗的優(yōu)點,可聽到音質(zhì)較好的音樂。系統(tǒng)總體設計框圖如圖1所示,利用這些硬件資源,設計實現(xiàn)了一個基于 FPGA 的多媒體音樂播放器。整個系統(tǒng)分為:WM8731 的驅(qū)動程序編寫,SD 卡時序模擬, 整個音樂播放系統(tǒng)的硬件平臺的

20、搭建,NIOS II 軟件 C 程序的編寫。 本系統(tǒng)的核心在于 SD 卡的讀取操作,使系統(tǒng)能完成其音樂播放功能。結(jié)構(gòu)框圖PC軟件 調(diào)試復位信 號JTAG BlasterUARTWM8731音頻解碼芯片耳機UART控制器JTAG控制器I2C控制器配置模塊音頻數(shù)據(jù)控制模塊SD卡WAV文件按鍵控制器按鍵50MHz時鐘PLLLED七段數(shù)碼管SD卡讀寫控制器七段數(shù)碼管控制器配置后的Nios 處理器LED控制器(3) 實驗步驟工程的初建:新建“demo_WAVplayer”工程拷貝ip到工程文件夾“demo_WAVplayer”里利用“SOPC Builder”工具初建硬件系統(tǒng)配置硬件時鐘硬件配置產(chǎn)生“.

21、ptf”文件在“SOPC Builder”工程頁面,設置映射地址;設置中斷號,中斷號越小,優(yōu)先級越高,一般把 Timer 的優(yōu)先級設為最高。缺省情況下,各個硬件的時鐘都使用“pll_c0_cpu”。一般做如下修改:“pll_0”使用“clk_50”;“sdram_0”和“sdram_1”使用“pll_c1_memory”;“audio”使用“pll_c2_audio”。“Generate”生成的“.ptf”等用于硬件編譯的文件都自動保存在路徑。建立頂層文件頂層文件(demo_wav.v)的內(nèi)容:分配引腳 選中“pinsde270.tcl”使其藍色高亮,然后鼠標左鍵單擊“Run”,稍等片刻即可以

22、完成管腿分配。 硬件編譯(4) 軟件設計下載工程文件夾“demo_WAVplayer”里的“.sof” 文件到DE2-70開發(fā)板上 新建“demo_WAVplayer_blank_project”工程 準備庫文件 建立“wavplayer_main.c”源代碼 選擇release,插入SD卡,軟件執(zhí)行稍等片刻,DE2-70多媒體開發(fā)板上的“LINE OUT”插接口接的耳機里會傳出輕音樂,兩個存在SD卡上的“.wav”文件wave1和wave2開始連續(xù)播放;板上1602LCD顯示正在播放的文件名;數(shù)碼管顯示正在播放文件的持續(xù)時間;26個LED隨著音樂強度越強亮的越多。四個按鈕開關的作用如下:KE

23、Y1:Volumn DownKEY2:Volumn UpKEY3:Next SongKEY4:Repeat current song3、FIR低通濾波器設計3.1設計要求采用DSP builder設計一個截止頻率為10KHz的FIR低通濾波器,濾波器的階數(shù)不小于32階,濾波器采樣頻率為48KHz,輸入序列的位寬為9位(最高位為符號位)。要求:1)給出詳細的設計步驟 2)給出必要的仿真實驗結(jié)果設計參考書:潘松 “現(xiàn)代DSP技術(shù)”西安電子科技大學出版社3.2 設計思路使用DSP Bulider在圖形環(huán)境中設計FIR數(shù)字濾波器,然后借助Matlab來計算濾波器的系數(shù)。先設計好一個4階FIR數(shù)字濾波器

24、(直接I型),然后通過不斷電泳FIR濾波器節(jié),將其級聯(lián)起來,完成32階FIR低通濾波器的設計。3.3 設計步驟本文設計的是直接I型的FIP濾波器。FIR濾波器原理:對于一個FIR濾波器系統(tǒng),它的沖激響應總是有限長的,最具體的FIR濾波器可用下式表示:式中:r是FIR濾波器的抽頭數(shù);z(,l一,)是延時r個抽頭的輸入信號;b(r)是第r級抽頭數(shù)(單位脈沖響應);M是濾波器的階數(shù);y(竹)表示濾波器的輸出序列。典型的直接I型FIR濾波器如圖1表示,其輸出序列y(n)滿足下式:圖1 直接I型FIR濾波器先設計直接I型4階FIR濾波器節(jié)子系統(tǒng)fir4tap,如圖所示:內(nèi)部結(jié)構(gòu)如下圖所示:然后復制8個fir4tap,并將它們銜接起來。前一級的輸出端口x4接后一級的X輸入端口,并加上32個常樹端口,作為FIR濾波器系數(shù)的輸入。把8個子系統(tǒng)的fir4tap的輸出端口y連接起來,接入一個8輸入的加法器,得到FIR濾波器的輸出yout。設計的32階FIR濾波器如圖:注:對于濾波器系數(shù)暫時h1-h32統(tǒng)一設置了255,會在后面

溫馨提示

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

評論

0/150

提交評論