第4章實(shí)驗(yàn)61利用DSP實(shí)現(xiàn)信號(hào)濾波DMA傳輸_第1頁
第4章實(shí)驗(yàn)61利用DSP實(shí)現(xiàn)信號(hào)濾波DMA傳輸_第2頁
第4章實(shí)驗(yàn)61利用DSP實(shí)現(xiàn)信號(hào)濾波DMA傳輸_第3頁
第4章實(shí)驗(yàn)61利用DSP實(shí)現(xiàn)信號(hào)濾波DMA傳輸_第4頁
第4章實(shí)驗(yàn)61利用DSP實(shí)現(xiàn)信號(hào)濾波DMA傳輸_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)6利用DSP實(shí)現(xiàn)信號(hào)濾波-DMA傳輸一、實(shí)驗(yàn)?zāi)康亩?shí)驗(yàn)原理與資源使用三、實(shí)驗(yàn)內(nèi)容四、實(shí)驗(yàn)思考題

一、實(shí)驗(yàn)?zāi)康恼莆誅MA的使用掌握調(diào)用CSL庫中的DMA函數(shù)方法掌握DMA傳輸方法掌握DMA的使用掌握DMA的使用,實(shí)質(zhì)就是掌握DMA寄存器的使用。DMA主要寄存器

直接存儲(chǔ)器訪問(DirectMemoryAccess,簡(jiǎn)稱DMA)是C55xDSP非常重要的片上外設(shè)。DMA特性:完成數(shù)據(jù)傳輸而不影響CPU,因此數(shù)據(jù)傳輸速度快。應(yīng)用場(chǎng)合:在要求信號(hào)實(shí)時(shí)采集和處理的系統(tǒng)中常采用DMA方式進(jìn)行信號(hào)采集與傳輸。DMA連接概念框圖詳見TMS320VC5501/5502DSPDirectMemoryAccess(DMA)ControllerReferenceGuide,spru613g.pdf

直接存儲(chǔ)器訪問DMA寄存器有2個(gè)全局寄存器影響所有通道:全局控制寄存器(DMAGCR)和全局超時(shí)控制寄存器(DMAGTCR)C5502有6個(gè)可獨(dú)立編程的DMA通道:DMA0~DMA5每個(gè)DMA通道受各自的16個(gè)16位寄存器控制:DMACCR:通道控制寄存器

DMACICR:中斷控制寄存器

DMACSR:狀態(tài)寄存器

DMACSDP:源和目的參數(shù)DMACSSAL:源起始地址(低部分)DMACSSAU:源起始地址(高部分)DMACDSAL:目的起始地址(低部分)DMACDSAU:目的起始地址(高部分)DMACEN:元素?cái)?shù)目寄存器

DMACFN:幀數(shù)目寄存器DMACSEI:源元素索引寄存器DMACSFI:源幀索引寄存器DMACDEI:目的元素索引寄存器

DMACDFI:目的幀索引寄存器

DMACSAC:源地址計(jì)數(shù)寄存器DMACDAC:目的地址計(jì)數(shù)寄存器

直接存儲(chǔ)器訪問DMA寄存器(續(xù))DMA全局控制寄存器DMAGCR:DMA

GlobalControlRegister功能:調(diào)試中遇到仿真斷點(diǎn)(breakpoint)時(shí),決定是否停止DMA操作(缺省時(shí)為停止DMA操作,本實(shí)驗(yàn)為缺省)。1.DMA全局控制寄存器TMS320VC5501/5502DSPDirectMemoryAccess(DMA)ControllerReferenceGuide,spru613g.pdf1.DMA全局控制寄存器FREE[2]:仿真模式位全局超時(shí)控制寄存器:DMAGTCR:DMAGlobalTime-outControlRegister功能:是否使用DMA各端口上的超時(shí)計(jì)數(shù)器(用作監(jiān)視DMA向端口請(qǐng)求的延遲)。

(缺省時(shí)為不使用,本實(shí)驗(yàn)為缺省)2.全局超時(shí)控制寄存器TMS320VC5501/5502DSPDirectMemoryAccess(DMA)ControllerReferenceGuide,spru613g.pdfDMAGTCR功能圖PTE[3]:外設(shè)端口超時(shí)計(jì)數(shù)器ETE[2]:外部存儲(chǔ)器端口超時(shí)計(jì)數(shù)器ITE1[1]:內(nèi)部存儲(chǔ)器端口1超時(shí)計(jì)數(shù)器ITE0[0]:內(nèi)部存儲(chǔ)器端口0超時(shí)計(jì)數(shù)器DMAGTCR位描述每個(gè)DMA均有各自的通道控制寄存器DMACCR:ChannelControlRegister功能:選擇目標(biāo)和源地址、地址更新模式、優(yōu)先級(jí)、同步信號(hào)

3.DMA通道控制寄存器(DMACCR)DMACCR功能圖DSTAMODE[15:14]:目標(biāo)尋址模式。DMA每次寫完后目的地址的變化,如00b:目的地址不變,01b:目標(biāo)地址+2(如傳輸16bit數(shù)據(jù))。(接收為01b,發(fā)送為00b)SRCAMODE[13:12]:源尋址模式。DMA每次寫完源地址的變化。如00b:源地址不變,01b:源地址+2(如傳輸16bit數(shù)據(jù))。(接收為00b,發(fā)送為01b)ENDPROG[11]:編程結(jié)束位。0:DMA的配置寄存器準(zhǔn)備編程或正在編程;1:編程完畢3.DMA通道控制寄存器PRIO[6]:DMA通道優(yōu)先級(jí)。0:優(yōu)先級(jí)低,1:優(yōu)先級(jí)高SYNC[4:0]:同步控制位。00000b:DMA無同步事件(缺省);00101b:DMA與McBSP1接收事件同步;00110b:DMA與McBSP1發(fā)送事件同步。(接收00101b,發(fā)送110b)

4.中斷控制寄存器(DMACICR)、狀態(tài)寄存器(DMACSR)每個(gè)DMA均有功能:各種DMA中斷發(fā)生時(shí)DMA是否通知CPU一般采用缺省值。功能:規(guī)定DMA傳輸數(shù)據(jù)的源和目的、規(guī)定數(shù)據(jù)類型、數(shù)據(jù)是否打包(datapacking)、傳輸是否采用突發(fā)模式(burst)5.源和目的參數(shù)寄存器(DMACSDP)DSTBEN[15:14]:目的方突發(fā)使能位00b:目的方不突發(fā);01b:目的方突發(fā)DSTPACK[13]:0:目的方不打包;1:目的方打包DST[12:9]:目的選擇位01b:目的方為DARAM,通過內(nèi)部存儲(chǔ)器口111b:目的方為外設(shè),通過外設(shè)總線SRC[5:2]:源選擇位11b:源方為外設(shè),通過外設(shè)總線00b:源方為DARAM,通過內(nèi)部存儲(chǔ)器口0DATATYPE[1:0]:數(shù)據(jù)類型.01b:數(shù)據(jù)類型為16bit(綠色表示DMA發(fā)送配置,紅色為接收或發(fā)送配置)

分別是源起始地址的低字節(jié)(byte)地址和高字節(jié)地址,源起始地址=DMACSSAU:DMACSSAL注意:C55x編譯器按字(word)編址,而DMA控制器按字節(jié)(byte)編址,因此必須向源起始地址寄存器裝載字節(jié)地址(如果為16bit,裝載前先左移1位,即乘以2)。

6.源起始地址寄存器(DMACSSAL、DMACSSAU)

分別存放目的起始地址的低字節(jié)(byte)地址和高字節(jié)地址,目的起始地址=DMACDSAU:DMACDSAL注意:C55x編譯器按字(word)編址,而DMA控制器按字節(jié)(byte)編址,因此必須向目的起始地址寄存器裝載字節(jié)地址(如果為16bit,裝載前先左移1位)。

/*Configurethereceivechannelforponginputdata*/addr=((Uint32)gBufferRcvPong)<<1;//將接收緩沖器首地址左移DMA_RSETH(hDmaRcv,DMACDSAL,addr&0xffff;//將addr低位寫到hDmaRcv的DMACDSAL中

/*Configurethetransmitchannelforpongoutputdata*/addr=((Uint32)gBufferXmtPong)<<1;//將發(fā)送緩沖器首地址左移DMA_RSETH(hDmaXmt,DMACSSAL,addr&0xffff);//將addr低位寫到hDmaRcv的DMACDSAL中7.目的起始地址寄存器(DMACDSAL、DMACDSAU)DMA傳輸前,先將每個(gè)數(shù)據(jù)塊的幀個(gè)數(shù)裝載到DMACFN中,將每幀中的元素個(gè)數(shù)裝載到DMACEN中。8.元素?cái)?shù)目寄存器(DMACEN)、

幀數(shù)目寄存器(DMACFN)

源和目的元素索引、源和目的幀索引均為16bit數(shù),范圍均在-32768bytes~32767bytes之間。(本實(shí)驗(yàn)中這四個(gè)寄存器均初始化為0)8.元素索引寄存器(DMACSEI、DMACDEI)、幀索引寄存器(DMACSFI,DMACDFI)每個(gè)DMA通道的進(jìn)程由這兩個(gè)計(jì)數(shù)器監(jiān)視,DMACSAC表明當(dāng)前源地址的低16bits,而DMACDAC表明當(dāng)前目的地址的低16bits。(缺省值為0,本實(shí)驗(yàn)采用缺省值。)9.源地址計(jì)數(shù)器(DMACSAC)、目的地址計(jì)數(shù)器(DMACDAC)本實(shí)驗(yàn)利用DMA通道4與McBSP1通道結(jié)合來讀取A/D轉(zhuǎn)換的數(shù)據(jù),利用DMA通道5與McBSP1通道結(jié)合來將處理后數(shù)據(jù)發(fā)送至D/A。選擇McBSP1通道的接收寄存器DRR11(0x2C01u)為DMA傳送數(shù)據(jù)的首地址,并選擇DMA源地址工作在不調(diào)整方式(訪問后源地址不變,SRCAMODE=00b)。選擇McBSP1接收事件為DMA同步事件,以實(shí)現(xiàn)DMA和McBSP的結(jié)合。選擇McBSP1通道發(fā)送寄存器為DMA傳送數(shù)據(jù)的首地址,并選擇寫后增加的尋址方式,二、本實(shí)驗(yàn)DMA使用情況數(shù)據(jù)采集:A/D轉(zhuǎn)換的數(shù)據(jù)按McBSP1的設(shè)置被送到DSP內(nèi)部接收寄存器DRR11中,再由DMA通道4將DRR11中的數(shù)據(jù)讀到指定數(shù)據(jù)存儲(chǔ)區(qū)gBufferRcvPing和gBufferRcvPong中完成數(shù)據(jù)采集(然后寫入寄存器DMACDSAL)。當(dāng)DMA通道4采集完一組數(shù)據(jù)后產(chǎn)生一個(gè)DMA中斷事件中斷CPU,來通知CPU對(duì)其進(jìn)行相應(yīng)的處理,此時(shí)DMA通道4可以按照設(shè)定繼續(xù)采集下一組數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)采集與CPU處理的并行操作。本濾波實(shí)驗(yàn)DMA使用情況(續(xù))數(shù)據(jù)采集:A/D轉(zhuǎn)換的數(shù)據(jù)按McBSP1的設(shè)置被送到DSP內(nèi)部接收寄存器DRR11中,再由DMA通道4將DRR11中的數(shù)據(jù)讀到指定數(shù)據(jù)存儲(chǔ)區(qū)gBufferRcvPing和gBufferRcvPong中完成數(shù)據(jù)采集(然后寫入寄存器DMACDSAL)。當(dāng)DMA通道4采集完一組數(shù)據(jù)后產(chǎn)生一個(gè)DMA中斷事件中斷CPU,來通知CPU對(duì)其進(jìn)行相應(yīng)的處理,此時(shí)DMA通道4可以按照設(shè)定繼續(xù)采集下一組數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)采集與CPU處理的并行操作。本濾波實(shí)驗(yàn)DMA使用情況(續(xù))數(shù)據(jù)發(fā)送:

數(shù)據(jù)經(jīng)DSP計(jì)算完,存放在指定數(shù)據(jù)存儲(chǔ)區(qū)gBufferXmtPing和gBufferXmtPong中,DSP將其中的數(shù)據(jù)存放到McBSP1的發(fā)送寄存器DXR11中,然后通過由DMA通道5將數(shù)據(jù)發(fā)送出去,完成發(fā)送。當(dāng)DMA通道5采集完一組數(shù)據(jù)后產(chǎn)生一個(gè)DMA中斷事件中斷CPU,來通知CPU對(duì)其進(jìn)行相應(yīng)的處理,此時(shí)DMA通道5可以按照設(shè)定繼續(xù)發(fā)送下一組數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)發(fā)送與CPU處理的并行操作。本濾波實(shí)驗(yàn)DMA使用情況(續(xù))DMA_ConfigdmaRcvConfig={/*Configreceiver*/

DMA_DMACSDP_RMK(//ConfigDMACSDPregisterDMA_DMACSDP_DSTBEN_NOBURST,//DSTBEN=00b,目的不突發(fā)(burstingdisabled)DMA_DMACSDP_DSTPACK_OFF,//DSTPACK=0,目的不打包DMA_DMACSDP_DST_DARAMPORT1,//DST=01b,目的方DARAM,通過內(nèi)部存儲(chǔ)器口1DMA_DMACSDP_SRCBEN_NOBURST,//SRCBEN=00b,目的不突發(fā)(burstingdisabled)DMA_DMACSDP_SRCPACK_OFF,//DSTPACK=0,源不打包

DMA_DMACSDP_SRC_PERIPH,//SRC=11b,源為外設(shè),通過外設(shè)總線

DMA_DMACSDP_DATATYPE_16BIT//DATATYPE=10b,傳輸數(shù)據(jù)類型為16bit),DMA_DMACCR_RMK(

DMA_DMACCR_DSTAMODE_POSTINC,//DSTAMODE=01b,目的尋址模式,訪問后//目的地址后增加方式,即每個(gè)元素傳輸完后,地址將增加.如果16bit,則地址增加2DMA_DMACCR_SRCAMODE_CONST,//SRCAMODE=00b,源方尋址模式,訪問后源地址不變

DMA_DMACCR_ENDPROG_ON,//ENDPROG=1, 寄存器編程結(jié)束

DMA_DMACCR_WP_DEFAULT,//WP=0,寫記錄(writeposting)禁止,DMA控制器//等待來自存儲(chǔ)器接口的完成寫數(shù)的應(yīng)答

實(shí)驗(yàn)中DMA配置1(接收配置)Burst形式:增加數(shù)據(jù)吞吐量,但外設(shè)端口不支持burst。DMA_DMACCR_REPEAT_OFF,//REPEAT=0,RepeatonlyifENDPROG=1DMA_DMACCR_AUTOINIT_OFF,//AUTOINIT=0,DMA控制器不進(jìn)行自動(dòng)初始化

DMA_DMACCR_EN_STOP,//EN=0,通道傳輸禁止

DMA_DMACCR_PRIO_LOW,//此DMA通道的優(yōu)先級(jí)低

DMA_DMACCR_FS_DISABLE,//元素同步,而不是幀同步

DMA_DMACCR_SYNC_REVT1//SYNC=101b,DMA同步事件是McBSP1接收事件

),/*DMACCR*/DMA_DMACICR_RMK(DMA_DMACICR_AERRIE_ON,//AERRIE=1,當(dāng)源或目的端口的地址發(fā)生錯(cuò)誤,DMA向//CPU發(fā)送通道中斷請(qǐng)求

DMA_DMACICR_BLOCKIE_OFF,//0,當(dāng)前所有塊已經(jīng)傳輸?shù)侥康亩丝跁r(shí),DMA不向//CPU發(fā)送通道中斷請(qǐng)求。

DMA_DMACICR_LASTIE_OFF,//0,最后一幀時(shí),DMA控制器如何反應(yīng),DMA不向//CPU發(fā)送通道中斷請(qǐng)求。DMA_DMACICR_FRAMEIE_ON,//1,當(dāng)前所有幀已經(jīng)傳輸?shù)侥康亩丝跁r(shí),DMA向//CPU發(fā)送通道中斷請(qǐng)求。

DMA_DMACICR_FIRSTHALFIE_OFF,//0,當(dāng)前幀的前一半已經(jīng)傳輸?shù)侥康亩丝跁r(shí),//DMA不向CPU發(fā)送通道中斷請(qǐng)求。實(shí)驗(yàn)中DMA配置2(接收配置)DMA_DMACICR_DROPIE_OFF,//發(fā)生同步事件丟棄時(shí),DMA不向CPU發(fā)送通道中斷請(qǐng)求。DMA_DMACICR_TIMEOUTIE_OFF//TIMEOUTIE=0.DMA不向CPU發(fā)送超時(shí)中斷//(TIMEOUTIE=1,傳輸在512個(gè)SYSCLK1周期未完成,產(chǎn)生超時(shí)中斷)),/*DMACICR*/(DMA_AdrPtr)(MCBSP_ADDR(DRR11),//DMACSSAL,源地址低位(LOW),為McBSP1接收寄存器DRR11*/0,/*DMACSSAU,源地址高位(HIGH),為0*/NULL,

/*DMACDSAL,目的地址低位(LOW)tobeloadedbysubmit*/0,/*DMACDSAU*/BUFFSIZE,/*DMACEN,元素個(gè)數(shù)*/1,/*DMACFN,幀個(gè)數(shù)*/

/*如果(1)ForCHIP_5510PG2_x(x=0,1,2),5509A,5502需要最后4個(gè)0參數(shù);*//*如果(2)ForCHIP_5509,CHIP_5510PG1_x(x=0,2)則只需要最后2個(gè)0參數(shù)*/0,/*dmacsfifor(1);DMACFIfor(2);*///DMA通道源幀索引(for5502)0,/*dmacseifor(1);DMACEIfor(2);*///DMA通道源元素索引(for5502)0,/*dmacdfionlyfor(1)*///DMA通道目的幀索引(for5502)0

/*dmacdeionlyfor(1)*///DMA通道目的元素索引(for5502)};

實(shí)驗(yàn)中DMA配置3(接收配置)發(fā)送配置(此處僅列與接收配置不同)DMA_ConfigdmaXmtConfig={/*Configtransmitter*/…DMA_DMACSDP_DST_PERIPH,//DST=11b,目的為外設(shè),通過外設(shè)總線DMA_DMACSDP_SRC_DARAMPORT0,//SRC=00b,源為DARAM,通過內(nèi)部存儲(chǔ)器口0DMA_DMACCR_DSTAMODE_CONST,//DSTAMODE=00b,目的尋址模式為恒量,即每個(gè)//元素傳輸完后,目的地址不變。

DMA_DMACCR_SRCAMODE_POSTINC,//SRCMODE=01b,源尋址模式,訪問后源地址后//增加方式,即每個(gè)元素傳輸完后,地址將增加.如果16bit,則地址增加2DMA_DMACCR_SYNC_XEVT1//SYNC=110b,DMA同步事件是McBSP1發(fā)送事件

NULL,

/*DMACSSAL,tobeloadedbysubmit,NULL表示空指針*/0,/*DMACSSAU*/(DMA_AdrPtr)(MCBSP_ADDR(DXR11)),/*DMACDSAL,目的地址低位(LOW),為McBSP1//發(fā)送寄存器DXR11*/0,/*DMACDSAU*/BUFFSIZE,/*DMACEN,元素個(gè)數(shù)*/1/*DMA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論