版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、dsp技術(shù)及應(yīng)用課程設(shè)計報告學(xué)院:通信與信息工程學(xué)院專業(yè): 電子信息工程專業(yè) 班級: 電信*班 姓名: 艾依河里的魚 時間: 2012年1月1日 一、設(shè)計任務(wù)及要求設(shè)計任務(wù):本課程設(shè)計要求應(yīng)用des5402pp-u實驗板實現(xiàn)fir濾波器,能夠在ccs集成開發(fā)環(huán)境中使用圖形顯示工具顯示輸入和輸出波形。設(shè)計要求:利用des5402pp評估板的模擬信號輸出通道產(chǎn)生一個1khz的方波,然后將產(chǎn)生的方波信號通過模擬信號輸入通道輸入des5402pp-u實驗板,對方波進(jìn)行低通濾波,得到一個1khz的正弦信號。二、設(shè)計原理本設(shè)計中我們使用一個38階的對稱結(jié)構(gòu)的fir低通濾波器,其采樣頻率fs為25khz,通
2、帶截止頻率1.2khz,阻帶截止頻率為2.8khz,阻帶衰減為40db。我們可以應(yīng)用matlab中的設(shè)計fir濾波器的指令fir(),也可以應(yīng)用matlab的工具fdatool來進(jìn)行設(shè)計,然后將所設(shè)計的濾波器的系數(shù)導(dǎo)入dsp程序中。下面對fdatool進(jìn)行簡單的介紹:fdatool(the filter design and analysis tool)是一個設(shè)計分析濾波器的工具,它具有很好的用戶界面。借助它可以快速的設(shè)計數(shù)字iir或fir濾波器。你可以設(shè)置濾波器的性能指標(biāo),也可以直接配置濾波器的系數(shù),還可以從matlab工作空間導(dǎo)入濾波器。在fdatool界面下,你可以方便的看到設(shè)計的濾波器
3、的幅頻特性、相頻特性、零極點分布、單位脈沖響應(yīng)、階躍響應(yīng)、濾波器系數(shù)、群時延等。要使用fdatool,只要在matlab命令窗口中鍵入,按回車即可。fdatool有兩種模式:設(shè)計模式和輸入模式。在設(shè)計模式中,你可以從零開始設(shè)計,或者對已經(jīng)設(shè)計的濾波器進(jìn)行改進(jìn),或者分析濾波器。在輸入模式中,你可以導(dǎo)入先前已經(jīng)設(shè)計好的濾波器或者已經(jīng)存在于matlab工作空間的濾波器系數(shù),你還可以分析導(dǎo)入的濾波器。本設(shè)計中我們主要使用fdatool的設(shè)計模式進(jìn)行fir濾波器的設(shè)計和對所設(shè)計的濾波器進(jìn)行分析,然后可以用file菜單下的export將濾波器的系數(shù)導(dǎo)入matlab的workspace和將系數(shù)寫入dsp匯編
4、程序中。在寫系數(shù)到匯編程序中,要注意小數(shù)的表示方法。三、程序代碼.title fir5402.asm .ref _c_int00 .mmregs;寄存器地址設(shè)置gpiocr .set 3ch ;5402通用i/o控制寄存器gpiosr .set 3dh ;5402通用i/o狀態(tài)寄存器dxr10 .set 23h ;串口0數(shù)據(jù)發(fā)送寄存器drr10 .set 21h ;串口0數(shù)據(jù)接收寄存器spsa0 .set 38h ;串口0子地址寄存器spcr10 .set 39h ;多通道串口0寄存器1spcr20 .set 39h ;多通道串口0寄存器2xcr10 .set 39h ;串口0發(fā)送控制寄存器p
5、cr0 .set 39h ;串口0引腳控制寄存器dxr11 .set 43h ;串口1數(shù)據(jù)發(fā)送寄存器spsa1 .set 48h ;串口1子地址寄存器spcr11 .set 49h ;多通道串口1寄存器1spcr21 .set 49h ;多通道串口1寄存器2xcr11 .set 49h ;串口1發(fā)送控制寄存器pcr1 .set 49h ;串口1引腳控制寄存器srgr1 .set 49h ;采樣率發(fā)生寄存器1srgr2 .set 49h ;采樣率發(fā)生寄存器2swcr .set 2bh ;軟件等待狀態(tài)寄存器 ;定義變量timer_count .set 060h ;定時器計數(shù)mcbsp_init .
6、set 061h ;mcbsp初始化wave_ptr .set 062his_new_data .set 063h ;新數(shù)據(jù)到達(dá)標(biāo)志new_ad .set 064hout_wave_ptr .set 065ht_ar2 .set 066ht_ar3 .set 067htemp .set 068hwave_buf .set 0900h out_wave_buf .set 01000hn .set 38 ; fir tapsfir_coef_buf .set 100h ; fir coef bufferfir_data .set 200h ; fir windows data buffer ! .
7、text;-; interrupt vector table !;-rs b _c_int00 nop nopnmi b _ret nop nopsint17 b _ret nop nopsint18 b _ret nop nopsint19 b _ret nop nopsint20 b _ret .word 0,0sint21 b _ret .word 0,0sint22 .word 01000h .word 0,0,0sint23 .word 0ff80h .word 0,0,0sint24 .word 01000h .word 0,0,0sint25 .word 0ff80h .word
8、 0,0,0sint26 .word 01000h .word 0,0,0sint27 .word 0ff80h .word 0,0,0sint28 .word 01000h .word 0,0,0sint29 .word 0ff80h .word 0,0,0sint30 .word 01000h .word 0,0,0int0 b _ret nop nopint1 b _ret nop nopint2 b _ret nop noptint b timer ;內(nèi)部定時中斷 nop nopbrint0 b receive ;緩沖串口接收中斷 nop nopbxint0 b transmit ;緩
9、沖串口發(fā)送中斷 nop noptrint b _ret nop noptxint b _ret nop nopint3 b _ret nop nophpint b _ret nop nopq26 .word 0ff80h .word 0,0,0q27 .word 01000h .word 0,0,0q28 .word 0ff80h .word 0,0,0q29 .word 01000h .word 0,0,0q30 .word 0ff80h .word 0,0,0q31 .word 01000h .word 0,0,0;-; 復(fù)位中斷服務(wù)程序 ;-_c_int00: stm #2020h,pm
10、st ; vector table start: 0x2000,看iptr中的值 ssbx intm ; close all int ! (ssbx intm) ssbx sxm ; extend sign ! ssbx frct ; faction multiply stm #10h,26h ; stop timer0 ! stm #10h,36h ; stop timer1 ! stm #0ffh,sp ; sp= 0x0ff ld #0,dp ; dp=0 stm #0ffffh,ifr ; clear all int ! 中斷標(biāo)志寄存器 stm #20h,imr ; bit5-bxin
11、t0, bit4-brint0, enable bxint0 ;中斷屏蔽寄存器 stm #02492h,swwsr ; all 2 waits ! stm #0,swcr;/*-; 配置dsp的時鐘des5402pp-u板的上電默認(rèn)配置沒有將dsp的時鐘設(shè)置到100m,而只有20m。下面的程序?qū)ll改為10,以便dsp以100m全速運行。pll的時鐘工作方式寄存器clkmd,地址為0058h,見dsp技術(shù)及應(yīng)用教材248頁。;-*/ stm #0,58h wait_pll: ldm 58h,a and #1,a bc wait_pll,aneq stm #97ffh,58h ; switch
12、 pll*10 - 100m clk rpt #100 nop;*;初始化ram, variable.;* stm #wave_buf,ar6 stm #1,ar0 rpt #24 mvpd wave_data,*ar6+0 ; move wave data to wave_buf - 0x0900h stm #wave_buf,wave_ptr ; save wave bufferptr stm #out_wave_buf,out_wave_ptr ; save out wave bufferptr, because use ; circular address, so when save
13、out_wave ; date,must + ! stm #fir_coef_buf,ar6 rpt #n-1 mvpd fir_coef,*ar6+ ; move fir coef to fir_coef_buf(in data mem) stm #fir_coef_buf,t_ar2 ; stm #fir_data,t_ar3 stm #0aa55h,mcbsp_init ; when mcbsp_init=0xaa55, transmit for init ac01 stm #5,timer_count ; init variable timer_count ! stm #0,is_ne
14、w_data ; if is_new_data =1 , has new ad data by slave ac01 ! stm #1000h,ar0 stm #1800h,ar5 stm #400h,bk ld *ar0,t ld #0,b;*; the following codes are used to initalize mcbsp0 !;*;- stm #0,spsa0 ; spsa0為串口0的子地址寄存器,choose spcr10 stm #2000h,spcr10 ; receive sign_extend in drr stm #1,spsa0 ; choose spcr2
15、0 stm #0c0h,spcr20 ; fs - int ! stm #2,spsa0 ; choose rcr10 stm #40h,39h stm #3,spsa0 ; choose rcr20 stm #0,39h stm #4,spsa0 ; choose xcr10 stm #40h,xcr10 stm #5,spsa0 ; choose xcr20 stm #0,39h stm #0eh,spsa0 ; choose pcr0 stm #0dh,pcr0 ; fs is low active, rise edge of clkx, falling edge ; of clkr s
16、tm #7h,spsa0 stm #8000h,39h rpt #0ffffh nop stm #00h,dxr10 ldm 22h,a stm #1,38h stm #0c1h,39h ; start mcbsp0 send ! ld #603h,a rsbx intm ; enable all int !;-; the following codes initalizeac01, all ac01 setup same !;- idle 1 idle 1 idle 1 idle 1 ; 軟件復(fù)位兩個ac01 ld #600h,a idle 1 ; wait for int . ld #3,
17、a idle 1 ; send #3 ld #00105h,a ; fs=10m/2/a/b= 25k ; flp=10m/2/40/a= 25k (all pass) ; fhp=fs/200= 125hz (not use !) ; a=05,b=40(0x28) idle 1 ; 送05h到ac01的數(shù)據(jù)寄存器1 ld #3,a idle 1 ; send #3 ld #00228h,a idle 1 ; 送28h到ac01的數(shù)據(jù)寄存器2 ld #3,a idle 1 ; send #3 ld #00300h,a idle 1 ; 送00h到ac01的數(shù)據(jù)寄存器3 ld #3,a idl
18、e 1 ; send #3 ld #00405h,a idle 1 ; 送05h 到ac01的數(shù)據(jù)寄存器4(ad & da 0 db) ld #3,a idle 1 ; send #3 ld #00505h,a idle 1 ;送05h到ac01的數(shù)據(jù)寄存器5(highpass filter ;disable) ld #3,a idle 1 ; send #3 ld #00600h,a idle 1 ; 送00h 到ac01的數(shù)據(jù)寄存器6 ld #3,a idle 1 ; send #3 ld #00700h,a idle 1 ; 送0到ac01的數(shù)據(jù)寄存器7 ld #3,a idle 1 ;
19、 send #3 ld #800h,a idle 1 ; 送0到ac01的數(shù)據(jù)寄存器8 ld #0h,a stm #0,38h stm #2001h,39h ;開始mcbsp0 接收! stm #30h,imr ; bit5-bxint0, bit4-brint0, 使能 bxint0;-;*; the following codes are used to initalize timer !;*;- stm #10h,tcr ; stop timer ! stm #0ffffh,prd ;裝載prd, 周期寄存器 stm #0fh,tcr ; timer start, each about
20、100hz . orm #8,imr ; enable timer int !;-;* *; the following codes are main function;* *main: bitf is_new_data,#1 ; test is_new_data 1 ? cc fir,tc ;1, then call fir ! new ad data in new_ad(0x64) b main ;檢測到新數(shù)據(jù)到達(dá)標(biāo)志(變量is_new_data)為1時,調(diào);用fir濾波程序。;* *; the following codes are served for mcbsp0 transmit
21、!;* *;-transmit: pshm st1 pshm st0 pshm bk pshm ar7 pshm ah pshm al cmpm mcbsp_init,#0aa55h bc init,tc stm #25,bk ; each ac01 has 25 dots to d/a ! mvdm #wave_ptr,ar7 ; restore wave buffer ptr ! nop ld *ar7+%,a nop stlm a,dxr10 ; send wave data ! master ac01 make source wave ; slave ac01 make filter
22、result wave ! bd wave_make_end mvmd ar7,#wave_ptr ; save wave buffer ptr !init: stlm a,dxr10 bitf dxr10,#800h ; if setup last register of ac01, set mcbsp_init=0 ! bc wave_make_end,ntc ; not equal ,jump ! stm #0,mcbsp_init ; when mcbsp=0 or 1, transmit for make wave !wave_make_end: popm al popm ah po
23、pm ar7 popm bk popm st0 popm st1_ret: rete;- ;*; the following codes are serived for mcbsp0 receive ! use ar5,bk!;*;-receive: pshm st1 pshm st0 ld #0,dp mvkd drr10,ar5 ; save ad data pshd *ar5+% ; save ad data in ad_buffer(0x1800-0x1c00) popd new_ad stm #1,is_new_data ; has new ad data popm st0 popm
24、 st1 rete-;*; the following codes are serived for vc5402 timer !;*;-timer: pshm ah pshm al ldm timer_count,a sub #1,a bc not_show_led,aneq ; if a != 0 ,jump ! bitf st1,#2000h ; test xf bc show_led,tc ssbx xf ; set xf=1 b show_conshow_led rsbx xf ; set xf=0show_con ld #5,a ; not_show_led stlm a,timer
25、_count popm al popm ah rete;- ;*; the following codes is used to fir( new ad data in new_ad(0x64); fir buffer coff- 0x100(ar2), fir window buffer - 0x200(ar3);*fir: pshm st1 pshm st0 pshm bk pshm ar7 pshm ah pshm al pshm ar0 pshm ar2 pshm ar3mvdm #t_ar2,ar2 ; restore ar2 mvdm #t_ar3,ar3 ; restore ar
26、3 ld new_ad,-2,a ; new ad data - a, remove two lsbs ;- stm#1,ar0stm#n,bk ; set circular addressing sizestla,*ar3+%rptza,#(n-1) ; 0 - a, then repeat 34 timesmac*ar2+0%,*ar3+0%,a ; done fir filter, result in ahmvmdar3,#t_ar3 ; save ar3mvmdar2,#t_ar2 ; save ar2 stm #1,ar0 stm #100h,bk ; each ac01 has 2
27、5 dots to da ! mvdm #out_wave_ptr,ar7 ; restore wave buffer ptr ! sth a,-2,temp ; save fir result in temp ld temp,2,a ; shift 2 bit for ac01 da ! stl a,*ar7+0% ; save fir result to wave buffer ! stl a,temp mvmd ar7,#out_wave_ptr ; save wave buffer ptr ! stm #0,is_new_data ; new ad data has been proc
28、essed ! ld #0,dp cmpm out_wave_ptr, 1000h bc con_fir,ntc ;- ccs_show: ;此處加斷點,查看結(jié)果 nop ; if out_wave_ptr = 0xc00, nop ; may show out_wave in ccs ! show 128 dots ! ; input buffer - 0x1800 ; output buffer - 0x1000 (show from 0x1020) con_fir: popm ar3 popm ar2 popm ar0 popm al popm ah popm ar7 popm bk p
29、opm st0 popm st1 ret;*; the following data is used by make wave ! when using, must copy to; wave buffer - 0x6000;*wave_data: ; freq about 1k hz .word 03ffch ; +2 volt .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 03ffch .word 0c000h ; -2 volt .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .word 0c000h .
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《創(chuàng)新作品推介技巧》課件
- 2022長沙市岳麓區(qū)高考英語完形填空和閱讀理解一輪練習(xí)(10)及答案
- 【全程復(fù)習(xí)方略】2020年高考政治一輪單元評估檢測(十五)(江蘇專供)
- 北京市通州區(qū)2024-2025學(xué)年九年級上學(xué)期期末考試語文試卷(含答案)
- 2024-2025學(xué)年遼寧省沈陽市沈河區(qū)七年級(上)期末英語試卷(含答案)
- 【名師一號】2022屆高三歷史一輪復(fù)習(xí)調(diào)研試題:第十單元-中國特色社會主義建設(shè)的道路10-19a
- 三年級數(shù)學(xué)計算題專項練習(xí)及答案
- 【創(chuàng)新設(shè)計】2020-2021學(xué)年高中化學(xué)魯科版選修5-分層訓(xùn)練:第2章-第3節(jié)-第1課時-醛和酮
- 《疾病與健康課件》課件
- 杜絕不良行為-遠(yuǎn)離違法犯罪主題班會
- 川骨香-川古香手撕鴨配方及制作方法
- 深圳市排水管網(wǎng)維護(hù)管理質(zhì)量
- 變電站二次設(shè)計規(guī)范
- 能見度不良時船舶航行須知
- 軟膠囊的制備
- 實習(xí)證明、實習(xí)證明表(模板)2頁
- 目視化管理實施計劃方案
- 晉城煤業(yè)集團(tuán)寺河礦井東區(qū)開采設(shè)計(學(xué)校要求版本)
- 全國職業(yè)院校技能大賽工業(yè)分析檢驗賽項(中職組)團(tuán)體賽學(xué)生選拔之我見
- 良渚文化——文明的曙光PPT課件
- 天賦圖標(biāo)與代碼及說明
評論
0/150
提交評論