北郵dsp硬件實(shí)驗(yàn)[優(yōu)質(zhì)內(nèi)容]_第1頁(yè)
北郵dsp硬件實(shí)驗(yàn)[優(yōu)質(zhì)內(nèi)容]_第2頁(yè)
北郵dsp硬件實(shí)驗(yàn)[優(yōu)質(zhì)內(nèi)容]_第3頁(yè)
北郵dsp硬件實(shí)驗(yàn)[優(yōu)質(zhì)內(nèi)容]_第4頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、DSP硬件實(shí)驗(yàn)報(bào)告 班級(jí):2010211204 學(xué)號(hào):10210992 姓名:許鵬 2012年12月15號(hào)實(shí)驗(yàn)一:常用指令實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康?.熟悉DSP開(kāi)發(fā)系統(tǒng)的連接2.了解DSP開(kāi)發(fā)系統(tǒng)的組成和結(jié)構(gòu)和應(yīng)用系統(tǒng)構(gòu)成3.熟悉常用C54X系列指令的用法(程序?qū)ぶ罚拇嫫?,I/O口,定時(shí)器,中斷控制)。二、 實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS 2.0版軟件,DSP仿真器,實(shí)驗(yàn)箱。三、 實(shí)驗(yàn)操作方法1、 系統(tǒng)連接進(jìn)行DSP實(shí)驗(yàn)之前,先必須連接好仿真器、實(shí)驗(yàn)箱及計(jì)算機(jī),連接方法如下所示:在硬件安裝完成后,接通仿真器電源或啟動(dòng)計(jì)算機(jī),此時(shí),仿真盒上的“紅色小燈”應(yīng)點(diǎn)亮,否則DSP開(kāi)發(fā)系統(tǒng)與計(jì)算機(jī)連接有問(wèn)題。2、 運(yùn)

2、行CCS程序先實(shí)驗(yàn)箱上電,然后啟動(dòng)CCS,此時(shí)仿真器上的“綠色小燈”應(yīng)點(diǎn)亮,并且CCS正常啟動(dòng),表明系統(tǒng)連接正常;否則仿真器的連接、JTAG接口或CCS相關(guān)設(shè)置存在問(wèn)題,掉電,檢查仿真器的連接、JTAG接口連接,或檢查CCS相關(guān)設(shè)置是否正確。四、 實(shí)驗(yàn)步驟與內(nèi)容(一) 簡(jiǎn)單指令程序運(yùn)行實(shí)驗(yàn)1、 實(shí)驗(yàn)使用資源實(shí)驗(yàn)通過(guò)實(shí)驗(yàn)箱上的XF指示燈觀察程序運(yùn)行結(jié)果2、 實(shí)驗(yàn)過(guò)程啟動(dòng)CCS 2.0,并加載“exp01.out”;加載完畢后,單擊“Run”運(yùn)行程序;實(shí)驗(yàn)結(jié)果:可見(jiàn)XF燈以一定頻率閃爍;單擊“Halt”暫停程序運(yùn)行,則XF燈停止閃爍,如再單擊“Run”,則“XF”燈又開(kāi)始閃爍;關(guān)閉所有窗口,本實(shí)驗(yàn)

3、完畢。源程序查看:用下拉菜單中Project/Open,打開(kāi)“Exp01.pjt”,雙擊“Source”,雙擊“exp01.asm”可查看源程序。源程序注釋如下:源程序:注釋:;File Name:exp01.asm;the program is compiled at no autoinitialization mode.mmregs.global _main_main: stm#3000h,sp ssbx xf call delay rsbx xf call delay b _main nop nop ;delay .5 seconddelay: stm 270fh,ar3 loop1:

4、stm 0f9h,ar4 loop2:banz loop2,*ar4-banz loop1,*ar3-ret nop nop ;stm2 cycles;banzwhen TRUE 4 cycles; FALSE 2 cycles;0f9h=249d;270fh=9999d.end定義存儲(chǔ)器映像寄存器全局符號(hào),可在外部定義;設(shè)置堆棧指針寄存器的值為3000h;置位狀態(tài)寄存器xf;調(diào)用delay函數(shù);復(fù)位狀態(tài)寄存器xf;調(diào)用delay函數(shù);無(wú)條件轉(zhuǎn)移至_main;空指令;空指令;設(shè)置輔助寄存器ar3值為9999;設(shè)置輔助寄存器ar4值為249;寄存器ar4值減一,當(dāng)其值不為0時(shí)跳轉(zhuǎn)到loop2;寄

5、存器ar3值減一,當(dāng)其值不為0時(shí)跳轉(zhuǎn)到loop1;返回;空指令;空指令(二)資料存儲(chǔ)實(shí)驗(yàn)1、 實(shí)驗(yàn)使用資源本實(shí)驗(yàn)指導(dǎo)書是以TMS32OVC5410為例,介紹相關(guān)的內(nèi)部和外部?jī)?nèi)存資源。對(duì)于其它類型的CPU請(qǐng)參考查閱相關(guān)的資料手冊(cè)。下面給出TMS32OVC5410的內(nèi)存分配表:對(duì)于存儲(chǔ)空間而言,映像表相對(duì)固定。值得注意的是內(nèi)部寄存器與存儲(chǔ)空間的映像關(guān)系。因此在編程應(yīng)用時(shí)這些特定的空間不能作其它用途。對(duì)于程序存儲(chǔ)空間而言,其映像表和CPU的工作模式有關(guān)。當(dāng)MP/MC引腳為高電平時(shí),CPU工作在微處理器模式;當(dāng)MP/MC引腳低電平時(shí),CPU工作在為計(jì)算機(jī)模式。具體的內(nèi)存映像關(guān)系如上如所示。內(nèi)存實(shí)驗(yàn)主要

6、了解內(nèi)存的操作和DSP的內(nèi)部雙總線結(jié)構(gòu)。并熟悉相關(guān)的指令代碼和執(zhí)行過(guò)程等。2、 實(shí)驗(yàn)過(guò)程連接好DSP開(kāi)發(fā)系統(tǒng),運(yùn)行CCS軟件;a) 在CCS的Memory窗口中查找C5410各個(gè)區(qū)段的數(shù)據(jù)存儲(chǔ)器地址,在可以改變的存儲(chǔ)器內(nèi)容的地方,選定地址隨意改變其中內(nèi)容并觀察結(jié)果;b) 在CCS中裝載實(shí)驗(yàn)示范程序,單步執(zhí)行程序,程序中寫入和讀出的數(shù)據(jù)存儲(chǔ)地址的變化;c) 改變其它尋址方式,進(jìn)行觀察數(shù)據(jù)存儲(chǔ)器地址與寫入和讀出數(shù)據(jù)的的變化。本實(shí)驗(yàn)說(shuō)明:本實(shí)驗(yàn)程序?qū)?duì)0x1000開(kāi)始的8個(gè)地址空間,填寫入0xAAAA的數(shù)值,然后讀出,并存儲(chǔ)到0X1008開(kāi)始的8個(gè)地址空間。在CCS中可以觀察DATA內(nèi)存空間地址0X

7、10000X100F值的變化。樣例程序?qū)嶒?yàn)操作說(shuō)明:?jiǎn)?dòng)CCS 2.0,并加載“exp02.out”,用“View”下拉菜單中的“Memory”查看內(nèi)存單元,輸入要查看的內(nèi)存單元地址,本實(shí)驗(yàn)要查看0x1000H0x100FH單元的數(shù)值變化,輸入地址0x1000H,查看0x1000H0x100FH單元的初始值,單擊“Run”運(yùn)行程序,也可以“單步”運(yùn)行程序,單擊“Halt”暫停程序運(yùn)行,查看0x1000H0x100FH單元內(nèi)數(shù)值的變化關(guān)閉各窗口,本實(shí)驗(yàn)完畢。源程序注釋:源程序:注釋:*File Name:exp02.asm;get some knowledge of the cmd file;t

8、he program is compiled at no autoinitialization mode.mmregs.global _main _main: ;store datastm 1000h,ar1 rpt#07h st0aaaah,*ar1+ ;read data then re-store stm 7h,ar3 stm1000h,ar1 stm 1008h,ar2 loop:ld*ar1+,t stt,*ar2+ banz loop,*ar3- here:b here .end;將外部?jī)?nèi)存地址1000h賦給ar1;循環(huán)執(zhí)行下一條指令8次;將0aaaah的值存儲(chǔ)在ar1所對(duì)應(yīng)內(nèi)存中

9、,且ar1值加1 ;將7h賦給輔助寄存器ar3;將地址1000h賦給輔助寄存器ar1;將地址1008h賦給輔助寄存器ar2;將輔助寄存器ar1的值賦給t,且ar1內(nèi)存地址加1;將t的值存儲(chǔ)在ar2所對(duì)應(yīng)內(nèi)存中,且ar2內(nèi)存地址加1;寄存器ar3值減1,當(dāng)其值不為0時(shí)跳轉(zhuǎn)到loop;無(wú)條件轉(zhuǎn)移至here(三)I/O實(shí)驗(yàn)1、 實(shí)驗(yàn)使用資源數(shù)字量輸入信號(hào)全部拓展出來(lái),數(shù)字量輸入接口主要由兩個(gè),D_Exp與扳東開(kāi)關(guān)連接,PX4和PX5與電平轉(zhuǎn)換芯片(74LVC245)連接,其功能分別為:D_Exp數(shù)字量輸入擴(kuò)展接口I0I1I2I3I4I5I6I7VCC電平轉(zhuǎn)換擴(kuò)展接口PX45VIN0IN1IN2IN3

10、PX53.3VOUT3OUT2OUT1OUT0通過(guò)PORTR,PORTW指令可以實(shí)現(xiàn)I/O口的輸入輸出功能,如數(shù)字量采集實(shí)驗(yàn)。實(shí)驗(yàn)說(shuō)明:實(shí)驗(yàn)中采用簡(jiǎn)單的一一映像關(guān)系來(lái)對(duì)I/O口進(jìn)行驗(yàn)證,目的是使實(shí)驗(yàn)者能夠?qū)/O 有一目了然的認(rèn)識(shí)。在本實(shí)驗(yàn)系統(tǒng)中,提供的IO空間分配如下:CPU1:0x0000 switch input (X) 80x0001 LED output(X) 8CPU2:0x0001DAC0x0004Read_Key0x0006Write_Key0x000FWrite_LCD0x8000 HPIC00x8001HPIC10x8002HPID0(AUTO)0x8003HPID1(AU

11、TO)0x8004HPIA00x8005HPIA10x8006HPID0(NO AUTO)0x8007HPID1(NO AUTO)實(shí)驗(yàn)程序框圖注意: 電平轉(zhuǎn)換接口主要考慮應(yīng)用3.3V的中央處理器時(shí),系統(tǒng)的電平兼容問(wèn)題,用來(lái)保護(hù)CPU不受損壞。系統(tǒng)采用74LVC245電平兼容轉(zhuǎn)換器件。2、 實(shí)驗(yàn)過(guò)程運(yùn)行CCS程序,裝載示范程序,調(diào)整K0K7的開(kāi)關(guān),觀察LP1LP7 LED亮滅的變化,以及輸入和輸出狀態(tài)是否一致。(注意:輸出為0時(shí)點(diǎn)亮燈)例程序?qū)嶒?yàn)操作說(shuō)明啟動(dòng)CCS 2.0,并加載“exp03.out”,單擊“Run”運(yùn)行程序,任意調(diào)整K0K7開(kāi)關(guān),可以觀察到對(duì)應(yīng)LP0LP7燈“亮”或“滅”;單擊

12、“Halt”,暫停持續(xù)運(yùn)行,開(kāi)關(guān)將對(duì)燈失去控制。關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序查看:用下拉菜單中Project/Open,打開(kāi)“Exp03.pjt”,雙擊“Source”,雙擊“exp03.asm”可查看源程序。代碼如下:源程序:注釋:;File Name :exp03.asm;learn how to operate the I/O ports;get some knowledge of the rts.lib file;in the I/O space 0x0000=8 switches; 0x0001=8 LEDs.mmregs.global_main.text_main:stm310

13、0h,sp stm1000h,ar1portr 00h,*ar1 nop nop portw*ar1,01h nop nop b_main nop nop .end;設(shè)置堆棧指針寄存器的值為3000h;設(shè)置輔助寄存器ar1值為1000h;從00h端口讀數(shù)據(jù)傳入ar1所指向的內(nèi)存空間,讀按鍵;空指令;空指令;將ar1所指向的內(nèi)存空間的值賦給01h端口,控制led燈;空指令;空指令 ;無(wú)條件轉(zhuǎn)移至_main,實(shí)現(xiàn)按鍵控制;空指令;空指令(四)定時(shí)器實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源定時(shí)器實(shí)驗(yàn)時(shí)要用到C54芯片的定時(shí)器控制寄存器,定時(shí)器時(shí)間常數(shù)寄存器,定時(shí)器中斷響應(yīng),寄存器定義詳見(jiàn)C54芯片資料。C54的定時(shí)器是

14、一個(gè)20位的減法計(jì)數(shù)器,可以被特定的狀態(tài)位實(shí)現(xiàn)停止、重新啟動(dòng)、重設(shè)置或禁止,可以使用該定時(shí)器產(chǎn)生周期性的CPU中斷,控制定時(shí)器中斷頻率的兩個(gè)寄存器是定時(shí)周期寄存器PRD和定時(shí)減法寄存器TDDR定時(shí)器實(shí)驗(yàn)通過(guò) LED(LP1LP7)來(lái)顯示。在本系統(tǒng)中,時(shí)鐘頻率為20MHZ,令PRD = 0x4e1f,這樣得到每1/1000秒中斷一次,通過(guò)累計(jì)1000次,就能定時(shí)1秒鐘。2、實(shí)驗(yàn)過(guò)程調(diào)入樣例程序,裝載并運(yùn)行;例程序?qū)嶒?yàn)操作說(shuō)明啟動(dòng)CCS 2.0,并加載“exp04.out”,單擊“Run”運(yùn)行,可觀察到LED燈(LP0LP7)以一定的間隔時(shí)間不停擺動(dòng),單擊“Halt”,暫停程序運(yùn)行,LED 燈停止

15、閃爍,單擊“Run”,運(yùn)行程序,LED燈又開(kāi)始閃爍。關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序:exp04.c注釋:#include interrupt void timer();/*extern void time();*/extern void initial();extern void porta();extern void portb();int flag=0;interrupt void timer()*(int *)0x300=*(int *)0x300+1if(*(int *)0x300=0x3e8)*(int *)0x300=0; *(int *)0x302=*(int *)0x302+

16、1; if(flag=0) flag=1;porta();else flag=0;portb(); return; main()initial(); 初始化while(1); ; 無(wú)限循環(huán) ;定時(shí)不斷加1;當(dāng)定時(shí)器數(shù)值達(dá)到0x3e8,開(kāi)始定時(shí)器中斷為定時(shí)器重新賦予初值;如果flag為0,則將其變?yōu)?,執(zhí)行porta();如果flag為1,則將其變?yōu)?,執(zhí)行portb()源程序:initial.asm.mmregs.global _initial_initial:stm 300h,ar1 st #00h,*ar1stm 302h,ar1st #00h,*ar1stm200h,ar1st#5555

17、h,*ar1stm201h,ar1st#0aaaah,*ar1stm202h,ar1st#400h,*ar1 ssbx1,11 stm 0ffffh,ifrstm 00h,imr stm 410h,tcrstm 4e1fh,prdstm 420h,tcrstm 08h,imrrsbx 1,11 ret;將300h賦值給ar1;將00h賦值給內(nèi)存地址為300h的空間里;將302h賦值給ar1;將00h賦值給內(nèi)存地址為302h的空間里;為內(nèi)存200h的內(nèi)容賦予5555h;為內(nèi)存201h的內(nèi)容賦予aaaah;為內(nèi)存202h的內(nèi)容賦予400h;設(shè)置ST1.INTM=1,停止所有的中斷;清除所有中斷的標(biāo)

18、志位,中斷標(biāo)志寄存器(IFR)用來(lái)指明各個(gè)中斷的目前狀態(tài)。; 停止所有的中斷 中斷屏蔽寄存器(IMR)在需要的時(shí)候獨(dú)立地屏蔽特定的中斷; 停止定時(shí)器; 設(shè)置定時(shí)器, 定時(shí)器周期計(jì)數(shù)器; 打開(kāi)定時(shí)器 定時(shí)器控制寄存器;允許定時(shí)器中斷;設(shè)置ST1.INTM=0,打開(kāi)所有中斷源程序:port.asm注釋:.mmregs.global_porta.global_portb_porta:stm304h,ar1 st5555h,*ar1portw*ar1,01hret_portb:stm304h,ar1st0aaaah,*ar1portw*ar1,01hret ;將304h賦給輔助寄存器ar1;將內(nèi)存30

19、4h的內(nèi)容賦予5555h;將內(nèi)存304h的值寫入01h端口;將內(nèi)存304h的內(nèi)容賦予0aaaah;將內(nèi)存304h的值寫入01端口源程序:vectors.asm注釋: .sect .vectors .ref _c_int00 .ref _timer .align 0x80 RESET: BD_c_int00 STM #200,SP stack size of 200nmi: RETE NOP NOP NOP sint17 .space 4*16sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint2

20、2 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE NOP NOP NOPint1: RETE NOP NOP NOPint2: RETE NOP NOP NOPtint: b _timer NOP NOPrint0: RETE NOP NOP NOPxint0: RETE NOP NOP NOPrint1: RE

21、TE NOP NOP NOPxint1: RETE NOP NOP NOPint3: RETE NOP NOP NOP .end引用函數(shù)c_int00引用了c中的函數(shù)頁(yè)邊界排列reset vector,復(fù)位中斷響應(yīng)延遲分支到C主程序默認(rèn)入口地址,c_int00是c程序的入口,這里即進(jìn)入main函數(shù)中開(kāi)辟堆??臻g棧的大小設(shè)置為200中斷屏蔽置為0,響應(yīng)中斷,不可屏蔽中斷產(chǎn)生時(shí),使中斷屏蔽取消,后返回。保留出中斷向量的地址空間中斷寄存器設(shè)置RETE返回并允許中斷外部中斷產(chǎn)生時(shí),直接返回。定時(shí)器產(chǎn)生的時(shí)鐘中斷,返回到c中定義的timer程序,b即是跳轉(zhuǎn)同步串口0(McBSP0)接受的中斷,直接返回同

22、步串口0(McBSP0)發(fā)送的中斷,直接返回同步串口1(McBSP1)接受的中斷,直接返回同步串口1(McBSP1)發(fā)送的中斷,直接返回(五)INT2中斷實(shí)驗(yàn)1、實(shí)驗(yàn)使用資源本實(shí)驗(yàn)是進(jìn)行C54芯片的INT2中斷練習(xí), C54芯片中斷INT2是低電平單脈沖觸發(fā);實(shí)驗(yàn)采用導(dǎo)線一端連接D_Exp數(shù)字量輸入擴(kuò)展接口I0,經(jīng)PX4的IN3,到PX5的OUT0電平轉(zhuǎn)換,再與另一端連接INT2插孔;撥動(dòng)開(kāi)關(guān)K0一次,就產(chǎn)生一個(gè)低電平單脈沖;運(yùn)行示范程序,觀察LP1LP7 LED燈的輸出變化;可觀察到每撥動(dòng)開(kāi)關(guān)K0一次LP1LP7燈亮滅變化一次;2、實(shí)驗(yàn)過(guò)程樣例程序?qū)嶒?yàn)操作說(shuō)明啟動(dòng)CCS 2.0,并加載“ex

23、p05.out”,單擊“Run”運(yùn)行程序,反復(fù)撥動(dòng)開(kāi)關(guān)K0,觀察LP1LP7 LED燈亮滅變化,單擊“Halt”暫停程序運(yùn)行,反復(fù)撥動(dòng)開(kāi)關(guān)K0,LP1LP7 LED燈亮滅不變化; 關(guān)閉所有窗口,本實(shí)驗(yàn)完畢。源程序查看:用下拉菜單中Project/Open,打開(kāi)“Exp05.pjt”,雙擊“Source”,雙擊“int2.c”、“initial.asm”、“port.asm”以及“vectors.asm”可查看各源程序。源程序:int2.c注釋:interrupt void int2c(); extern void initial();extern voidporta();extern void

24、 portb();int flag=0;main()initial();while(1); interrupt void int2c() asm(nop); *(int *)0x300=*(int *)0x300+2if(flag=0)flag=1;porta();elseflag=0; portb(); ;/*break here to show if interrupt happened*/這是一個(gè)記錄外部中斷的標(biāo)志,通過(guò)記錄0x300h中的值來(lái)記錄源程序:initial.asm注釋:.mmregs.global _initial .text _initial:stm 300h,ar3 s

25、t #00h,*ar3stm 302h,ar4st #00h,*ar4ssbx1,11 stm 00h,imrstm 0ffffh,ifrstm 04h,imrrsbx 1,11ret .end;將00h存入地址為300h的內(nèi)存中;將00h存入地址為302h的內(nèi)存中;設(shè)置ST1.INTM=1,停止所有的中斷;停止所有的中斷,中斷屏蔽寄存器(IMR)在需要的時(shí)候獨(dú)立地屏蔽特定的中斷;清除所有中斷的標(biāo)志位,中斷標(biāo)志寄存器(IFR)用來(lái)指明各個(gè)中斷的目前狀態(tài)。;開(kāi)啟int2的外部中斷;打開(kāi)所有中斷總開(kāi)關(guān)源程序:port.asm注釋:.mmregs.global_porta.global_portb_

26、porta:stm304h,ar1 st5555h,*ar1portw*ar1,01hret_portb:stm304h,ar1st0aaaah,*ar1portw*ar1,01hret ; 將304h賦給輔助寄存器ar1;將內(nèi)存304h的內(nèi)容賦予5555h;將內(nèi)存304h的值寫入01h端口;將內(nèi)存304h的內(nèi)容賦予0aaaah;將內(nèi)存304h的值寫入01端口源程序:vectors.asm注釋: .sect .vectors .ref _c_int00 .ref _int2c .align 0x80 RESET: BD_c_int00 STM #200,SP stack size of 200

27、nmi: RETE NOP NOP NOP sint17 .space 4*16sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE NOP NOP NOPint1

28、: RETE NOP NOP NOPint2: RETE NOP NOP NOPtint: b _timer NOP NOPrint0: RETE NOP NOP NOPxint0: RETE NOP NOP NOPrint1: RETE NOP NOP NOPxint1: RETE NOP NOP NOPint3: RETE NOP NOP NOP .end引用函數(shù)c_int00頁(yè)邊界排列reset vector,復(fù)位中斷響應(yīng)延遲分支到C主程序默認(rèn)入口地址,c_int00是c程序的入口,這里即進(jìn)入main函數(shù)中開(kāi)辟堆棧空間中斷屏蔽置為0,響應(yīng)中斷,不可屏蔽中斷產(chǎn)生時(shí),使中斷屏蔽取消,后返回。

29、保留出中斷向量的地址空間中斷寄存器設(shè)置RETE返回并允許中斷外部中斷產(chǎn)生時(shí),直接返回。定時(shí)器產(chǎn)生的時(shí)鐘中斷,返回到c中定義的timer程序,b即是跳轉(zhuǎn)同步串口0(McBSP0)接受的中斷,直接返回同步串口0(McBSP0)發(fā)送的中斷,直接返回同步串口1(McBSP1)接受的中斷,直接返回同步串口1(McBSP1)發(fā)送的中斷,直接返回實(shí)驗(yàn)二 A/D采樣實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康? 掌握利用TLV320AD50實(shí)現(xiàn)/轉(zhuǎn)換的技術(shù)基本原理和常用方法。2 學(xué)會(huì)DSP的多信道緩沖串口的應(yīng)用方法。3 掌握并熟練使用DSP和AD50的接口及其操作。4 通過(guò)實(shí)驗(yàn)加深對(duì)DSP系統(tǒng)頻譜混疊認(rèn)識(shí)。二、 實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS

30、 2.0軟件,DSP仿真器,實(shí)驗(yàn)箱,示波器,連接導(dǎo)線。三、 實(shí)驗(yàn)步驟和內(nèi)容1 實(shí)驗(yàn)連線 用短接塊短接SS1的1,2腳,設(shè)置輸出低頻信號(hào);短接S2 的Sin腳,設(shè)置輸出正弦波信號(hào),這時(shí)模擬信號(hào)產(chǎn)生單元SP1輸出為低頻正弦波。 JD跳線斷開(kāi),設(shè)置語(yǔ)音處理單元輸入信號(hào)為交流;并用導(dǎo)線連接SP1腳和JAD3的1腳,將模擬低頻正弦波信號(hào)接入語(yǔ)音處理單元。 用導(dǎo)線連接JAD1的INP和INPF,以及JAD2的INM和INMF,將語(yǔ)音處理單元輸出的差動(dòng)模擬信號(hào)接入AD50輸入端。2 運(yùn)行 CCS 2.0軟件, 裝入“exp06.pjt”工程文件,雙擊“exp06.pjt”及“Source”3加載“exp06

31、.out”示范程序,在“exp06.c”中“READAD50()”處,設(shè)置斷點(diǎn),運(yùn)行程序,通過(guò)用下拉菜單中的View / Graph的“Time/Frequency”打開(kāi)一個(gè)圖形觀察窗口,調(diào)節(jié)輸入信號(hào)的頻率或幅值, 觀察圖形情況(幅值和頻率),設(shè)置該圖形觀察窗口的參數(shù),觀察起始地址為0x1000H,長(zhǎng)度為256的內(nèi)存單元內(nèi)的數(shù)據(jù),該資料為輸入信號(hào)經(jīng)A/D轉(zhuǎn)換之后的數(shù)據(jù),數(shù)據(jù)類型為16位整型,擊“Animate”運(yùn)行程序,在圖形觀察窗口觀察A/D轉(zhuǎn)換后的采樣波形。在圖形觀察窗口觀察A/D轉(zhuǎn)換后的采樣波形;旋轉(zhuǎn)開(kāi)發(fā)板上的電位器,使幅度調(diào)節(jié)到適當(dāng)位置,得到波形如下:旋轉(zhuǎn)開(kāi)發(fā)板上的頻率旋鈕,得到波形如

32、下:繼續(xù)改變頻率,導(dǎo)致頻譜混疊,波形如下:實(shí)驗(yàn)三:轉(zhuǎn)換實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康? 掌握利用TLV320AD50實(shí)現(xiàn)/轉(zhuǎn)換的技術(shù)基本原理和常用方法。2 進(jìn)一步學(xué)習(xí)DSP的多信道緩沖串口的應(yīng)用方法。3 掌握并熟練使用DSP和AD50的輸出接口及其操作。二、 實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS 2.0版軟件,DSP仿真器,實(shí)驗(yàn)箱,示波器。三、 實(shí)驗(yàn)步驟與內(nèi)容1 不需聯(lián)機(jī),通過(guò)示波器觀測(cè)輸出波形情況;2 運(yùn)行CCS軟件,加載示范源程序,了解實(shí)驗(yàn)程序; 3 加載示范程序“exp07.out”,并通過(guò)File/Data/Load裝載波形數(shù)據(jù)sin.dat。.按F5運(yùn)行程序,用示波器檢測(cè)JAD4的3腳AD50_DAout輸出

33、一個(gè)正弦波;.在程序中,改變相應(yīng)資料來(lái)實(shí)現(xiàn)改變波形和周期;得到的波形如下所示:在示波器觀察的模擬信號(hào)波形如下,由以上兩個(gè)波形圖可以看出,數(shù)字信號(hào)周期為,模擬信號(hào)周期為。右由模擬角頻率與數(shù)字角頻率的關(guān)系=*T=可推導(dǎo)出采樣頻率為之后也是問(wèn)了老師,得知示波器的采樣頻率大約是10K+實(shí)驗(yàn)四:數(shù)字濾波器(FIR算法實(shí)驗(yàn))一實(shí)驗(yàn)?zāi)康?掌握用窗函數(shù)法設(shè)計(jì)FIR數(shù)字濾波器的原理和方法;2熟悉線性相位FIR數(shù)字濾波器特性;3了解各種窗函數(shù)對(duì)濾波特性的影響。二實(shí)驗(yàn)設(shè)備計(jì)算機(jī),CCS 2.0 版軟件,實(shí)驗(yàn)箱,DSP仿真器,短接塊,導(dǎo)線。三實(shí)驗(yàn)原理1有限沖擊響應(yīng)數(shù)字濾波器的基礎(chǔ)理論;2模擬濾波器原理(巴特沃斯濾波器

34、、切比雪夫?yàn)V波器、貝塞爾濾波器);3數(shù)字濾波器系數(shù)的確定方法。四實(shí)驗(yàn)步驟1復(fù)習(xí)如何設(shè)計(jì)FIR數(shù)字濾波。閱讀本實(shí)驗(yàn)原理,掌握設(shè)計(jì)步驟;2閱讀本實(shí)驗(yàn)所提供的樣例子程序;3運(yùn)行CCS軟件,對(duì)樣例程序進(jìn)行跟蹤,分析結(jié)果;4填寫實(shí)驗(yàn)報(bào)告。5樣例程序?qū)嶒?yàn)操作說(shuō)明1)實(shí)驗(yàn)前準(zhǔn)備在模擬信號(hào)產(chǎn)生單元中,一路信號(hào)源產(chǎn)生低頻正弦波信號(hào)(S1 置“L”),另一路信號(hào)源產(chǎn)生高頻正弦波信號(hào)(S11置“H”),檢查模擬信號(hào)輸出端口“A”與“B”應(yīng)斷開(kāi);實(shí)驗(yàn)箱上電,用示波器分別觀測(cè)out1和out2輸出的模擬信號(hào),調(diào)節(jié)電位器SPR1、SPR2(out1輸出信號(hào)的頻率調(diào)節(jié)和幅值調(diào)節(jié))和電位器SPR11、SPR12(out2輸出

35、信號(hào)的頻率調(diào)節(jié)和幅值調(diào)節(jié)),直至滿意為止;本樣例實(shí)驗(yàn)程序建議:1.低頻正弦波信號(hào)為100Hz/1V;2.高頻正弦波信號(hào)為6KHz/1V;3.實(shí)驗(yàn)箱掉電,做以下連接和檢查:4.短接輸出端口“A”與“B”;5.短接JAD1的INM、INMF;短接JAD2的INP、INPF;6.用導(dǎo)線連接out2(模擬信號(hào)輸出)和JAD3 1腳(MIC_IN);7.檢查:JD 是否斷開(kāi)。注:有關(guān)以上連接的說(shuō)明,可參見(jiàn)第八章中語(yǔ)音接口跳線接輸出接口配置使用說(shuō)明以及信號(hào)產(chǎn)生單元配置說(shuō)明。正確完成計(jì)算機(jī)、DSP仿真器和實(shí)驗(yàn)箱的連接后,系統(tǒng)上電。實(shí)驗(yàn)程序說(shuō)明:該程序?yàn)?1階FIR低通濾波器算法程序,采用矩形窗函數(shù)實(shí)現(xiàn),數(shù)組

36、h和xmid長(zhǎng)度均為51,fs 為采樣頻率,fstop 為濾波器截止頻率,可以修改以上參數(shù)來(lái)改變?yōu)V波器性能。重新“Rebuild All”后,并加載“Load”,單擊“Animate”,可得到不同的實(shí)驗(yàn)結(jié)果;實(shí)驗(yàn)結(jié)果:在CCS2.0環(huán)境,同步觀察輸入信號(hào)及其FIR低通濾波結(jié)果。通過(guò)修改程序,使得濾波器變?yōu)楦咄V波器。未修改的源程序中的文件代碼如下:extern void InitC5402(void);extern void OpenMcBSP(void);extern void CloseMcBSP(void);extern void READAD50(void);extern void W

37、RITEAD50(void);/* Main Function Program*/ #include stdio.h #include math.h #define pi 3.1415927 double npass,h51, x, y, xmid51; int m=50; int n=256; void firdes (int m, double npass); main () int xm,ym;int *px = (int*)0x3000;int *py = (int*)0x3100; double fs,fstop,r,rm; int i,j,p,k,s; k=0; fs = 1600

38、0; fstop = 2000; npass = fstop/fs; for (i=0; i=m; i+) xmidi=0; firdes(m, npass); for (; ; ) OpenMcBSP();for (s=0; s=4; s+)READAD50();for (i=0; i=n-1; i+)px = (int*)(0x3000+i);xm = *px;x = xm/32768.0; for (p=0; p=m; p+) xmidm-p = xmidm-p-1; xmid0 = x; r = 0; rm= 0; for (j=0; j=m; j+) r = xmidj * hj;rm = rm + r; y = rm; py = (int*)(0x3100+i); ym = (int)(32768.0 * y); *py = ym; WRITEAD50();k+; /*void PROCESSING(void)do the necessery operations here!*/ void firdes(int m, double npass) int t; for (t=0; t=m; t+) ht = sin(t-m/2.0)*npass*pi)/(pi*(t-m/2.0); if (t=m/2) ht=npass; /* End of

溫馨提示

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

評(píng)論

0/150

提交評(píng)論