北京交通大學DSP課程設(shè)計自適應(yīng)濾波_第1頁
北京交通大學DSP課程設(shè)計自適應(yīng)濾波_第2頁
北京交通大學DSP課程設(shè)計自適應(yīng)濾波_第3頁
北京交通大學DSP課程設(shè)計自適應(yīng)濾波_第4頁
北京交通大學DSP課程設(shè)計自適應(yīng)濾波_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、DSP課程實驗報告 利用DSP實現(xiàn)自適應(yīng)濾波學 院:電子信息工程學院專 業(yè):自動化(鐵道信號)學生姓名:學 號:任課教師:北京交通大學電工電子教學基地目錄一、設(shè)計任務(wù)書3二、設(shè)計內(nèi)容31 基本部分32 發(fā)揮部分3三、設(shè)計方案、算法原理說明41利用DSP進行信號處理42利用DMA方式進行信號的采集和輸出43回波產(chǎn)生64自適應(yīng)濾波8四、程序設(shè)計、調(diào)試與結(jié)果分析101. 程序設(shè)計102. 實驗步驟133. 結(jié)果分析14五、設(shè)計(安裝)與調(diào)試的體會15六、參考文獻18七、附錄19一、 設(shè)計任務(wù)書自適應(yīng)濾波器能夠根據(jù)環(huán)境的改變,使用自適應(yīng)算法來改變?yōu)V波器的參數(shù)和結(jié)構(gòu)。自適應(yīng)濾波器的系數(shù)是由自適應(yīng)算法更新

2、的時變系數(shù),其系數(shù)自動連續(xù)地適應(yīng)于給定信號,以獲得期望響應(yīng)。自適應(yīng)濾波器的最重要的特征就在于它能夠在未知環(huán)境中有效工作,并能夠跟蹤輸入信號的時變特征。自適應(yīng)濾波器應(yīng)用于通信領(lǐng)域的自動均衡、回波消除、天線陣波束形成,以及其他有關(guān)領(lǐng)域信號處理的參數(shù)識別、噪聲消除、譜估計等方面。本設(shè)計要求利用DSP的DMA方式進行信號采集和信號輸出,同時對外部輸入的信號進行自適應(yīng)濾波。二、 設(shè)計內(nèi)容1 基本部分(1)設(shè)計數(shù)字濾波算法,或調(diào)用DSPLIB中的濾波函數(shù),實現(xiàn)對信號的濾波(2)利用C語言對A/D、D/A進行初始化 (3)利用C語言對DMA進行初始化 (4)編寫DMA中斷服務(wù)程序,實現(xiàn)信號的實時濾波 (5)

3、利用CCS信號分析工具分析信號的頻譜成分,確定濾波器的參數(shù)2 發(fā)揮部分(1)比較不同自適應(yīng)性濾波器的濾波效果; (2)在實驗板的Line in輸入端接入正弦信號,分左右聲道分別采集,并分別濾波。三、 設(shè)計方案、算法原理說明1 利用DSP進行信號處理首先,模擬信號x(t)經(jīng)過A/D轉(zhuǎn)換后,成為數(shù)字信號,由DSP讀入;DSP對采集的數(shù)字信號采用數(shù)字信號處理的算法進行處理,處理結(jié)果仍為數(shù)字信號;處理后得到的數(shù)字信號經(jīng)D/A轉(zhuǎn)換后,成為模擬信號y(t)。利用DSP進行信號處理的流程如圖3-1所示。圖3-1 DSP進行信號處理的流程2 利用DMA方式進行信號的采集和輸出C5502的DMA能在不占用CPU

4、資源的情況下,實現(xiàn)DSP存儲器間數(shù)據(jù)的自由傳送。C5502有6個可獨立編程的DMA通道,每個DMA通道擁有各自的控制寄存器。在DMA功能正常使用之前,必須根據(jù)需要對這些寄存器進行正確的設(shè)置。A/D轉(zhuǎn)換完的數(shù)據(jù)被串口1的數(shù)據(jù)接收寄存器收到后,啟動DMA4傳輸,將數(shù)據(jù)寫到指定的數(shù)據(jù)接收緩沖區(qū),通過DMA方式完成一次數(shù)據(jù)采集。當DMA4采集完一幀128個點數(shù)據(jù)后產(chǎn)生一次DMA4中斷,通知CPU對其進行DLMS濾波處理。此時DMA4可以按照設(shè)定繼續(xù)采集數(shù)據(jù),實現(xiàn)了數(shù)據(jù)采集與CPU處理的并行操作。在DMA4的中斷服務(wù)程序中,DMA4接收緩沖區(qū)1中的數(shù)據(jù)經(jīng)過DLMS濾波處理后,放入DMA5的發(fā)送緩沖區(qū)1,

5、同時啟動DMA5進行DLMS數(shù)據(jù)到串口1的數(shù)據(jù)發(fā)送寄存器的DMA傳輸。DLMS輸入數(shù)據(jù)緩沖區(qū)分為2個,gBufferRcvPing、gBufferRcvPong ;輸出數(shù)據(jù)緩沖區(qū)分為2個gBufferXmtPing、gBufferXmtPong ;每個緩沖區(qū)的大小為128個點。輸入輸出緩沖區(qū)采用了“乒乓”方式,即輸入1=輸出1,輸入2=輸出2其框圖如圖3-3所示。圖3-3 DMA緩沖區(qū)在ping、pong緩存區(qū)中,數(shù)據(jù)存放方式為左右聲道交替存放的。在進行處理前左右聲道需要分別提取出來,再分別進行處理。處理完成之后再將左右聲道進行合并后輸出。其過程圖3-3所示。圖3-3 左右聲道處理流程3 回波

6、產(chǎn)生輸入的左聲道信號產(chǎn)生回波信號后,與右聲道的信號疊加,生成帶回波的信號,從右聲道輸出。圖3-4是左聲道數(shù)據(jù)在時延兩個單位后疊加在右聲道上形成帶回波噪聲的信號的示意圖。圖3-4 回波產(chǎn)生示意圖我們希望能通過耳朵對回波信號進行區(qū)分,所以延時要求比較高,我們設(shè)定采樣頻率為8k,延時為0.5S。所以另外定義兩個存儲器delayone和delaytwo。先存儲delayone存儲區(qū),存儲滿4096個點后,換存儲delaytwo存儲區(qū)。 Delaytwo存滿時,再換回存儲到delayone??梢姡琩elayone和delaytwo的第一單元延時差為4096.當存儲一個delayone第一個單元時,將le

7、ftbuff第一個單元放入delayone第一個單元,同時將delaytwo的第一個單元衰減后加入right-buff,從right-buff輸出。并將delaytwo的第一個單元放入leftbuff第一個單元,已以備后面使用。當存儲完4096個單位時,換從delaytwo的第一個單元進行存儲。將leftbuff第一個單元放入delaytwo第一個單元,同時將delayone的第一個單元衰減后加入right-buff,從right-buff輸出。由于DSP處理時,一次處理4096個單元比較困難,所以將4096分成32個組,每次處理128個單元。此時right_buff為跌加了回波噪聲的信號。以

8、上原理圖如下3-5所示圖3-5 可辨別的回波產(chǎn)生示意圖4 自適應(yīng)濾波調(diào)用濾波函數(shù)對回波信號進行濾波。利用Dsplib中的延時自適應(yīng)濾波dlms函數(shù)對疊加有回波信號的右聲道進行濾波。Dlms函數(shù)的調(diào)用形式如下:dlms (DATA *x, DATA *h, DATA *r, DATA *des, DATA *dbuffer,DATA step, ushort nh, ushort nx)Dlms的算法原理如下: 各參數(shù)含義為:xn 自適應(yīng)濾波器的輸入;rn 自適應(yīng)濾波器的輸出;hn 自適應(yīng)濾波器的濾波系數(shù);desn 期望響應(yīng);en 估計誤差;自適應(yīng)濾波的原理:本地產(chǎn)生的語音x(k)信號經(jīng)回波信道

9、產(chǎn)生回波噪聲y(k)疊加在對端的聲音信號v(k)上面形成疊加右回波信號的聲音d(k),最終導致本地通話方能夠聽見對方聲音里夾帶著自己剛才說話的聲音。我們的自適應(yīng)濾波是通過對接收到的疊加有噪聲的對方的信號d(k)和本地的信號進行計算形成模擬的回波信道進而估計出回波噪聲信號y(k),然后與d(k)作減法,便可以濾除掉噪聲信號,得到理想的對端的聲音信號e(k)。如圖3-3所示。圖 3- 6四、 程序設(shè)計、調(diào)試與結(jié)果分析1. 程序設(shè)計(1) DMA過程定義函數(shù)copyDatadev,實現(xiàn)將接收緩存區(qū)的數(shù)據(jù)進行左右聲道的分別提取過程void copyDatadev(Int16 *inbuf, Int16

10、 *outbuf1, Int16 *outbuf2,Int16 *outbuf3,Int16 length)Int16 i;for (i = 0; i < length; i+) outbuf1i = inbuf2*i; outbuf2i = inbuf2*i+1;outbuf3i=outbuf2i ; 定義函數(shù)copyDatadev,實現(xiàn)將左右聲道的信號合并放入發(fā)送緩存區(qū)的過程void copyDatacom(Int16 *inbuf1,Int16 *inbuf2, Int16 *outbuf, Int16 length)Int16 i;for (i = 0; i < lengt

11、h; i+) outbuf2*i = inbuf1i;outbuf2*i+1= inbuf2i; if (pingPong = PONG) copyDatadev(gBufferRcvPing, leftbuff,rightbuff,right_buff,SINSIZE);copyDatacom(leftbuff, rightbuff, gBufferXmtPing, SINSIZE); else copyDatadev(gBufferRcvPong, leftbuff,rightbuff,right_buff,SINSIZE); copyDatacom(leftbuff, rightbuff

12、, gBufferXmtPong, SINSIZE); (2) 回波信號的產(chǎn)生定義echogenerate,實現(xiàn)回波信號的產(chǎn)生void echogenerate(Int16 *inbuf, Int16 *outbuf, Int16 length)/*p,q,di,ti為全局變量,方便加載初值和便于在多次函數(shù)調(diào)用總實現(xiàn)信號在存儲空間的連續(xù)存放和讀取*/*本函數(shù)的返回值中,leftbuff的值變?yōu)檠訒r的左聲道信號,right_buff返回值為疊加了左聲道時延的信號*/Int16 i;if(Mode=0)/* Mode=0,delayone存儲當前信號,delaytwo用于讀取延時的信號用于回波的疊

13、加。*/Int16 j;for(j=0;j<NX;di+,j+)delayonedi=inbufj;/存儲當前采集到的信號于當前di到di+128的存儲空間if(di>=delay) /判斷是否存滿緩沖,滿了需要復位參數(shù)p=0;di=0;else / Mode=0時原理同上。Int16 j;for(j=0;j<NX;ti+,j+)delaytwoti=inbufj;if(ti>=delay) q=0;ti=0;if(Mode=0)for (i=0;i<NX;i+,q+)outbufi=outbufi+0.1*decay*delaytwoq;/回波疊加。inbufi

14、=delaytwoq;/左聲道存儲延時信號用于濾波。/!本函數(shù)的返回值中,leftbuff的值變?yōu)檠訒r的左聲道信號。if(q>=delay) Mode=1;/延時緩沖讀完,切換讀取的緩存else /參考Mode=1,原理同上。for (i=0;i<NX;i+,p+)outbufi=outbufi+0.1*decay*delayonep;inbufi=delayoneq;/左聲道存儲延時信號用于濾波if(p>=delay) Mode=0;if (pingPong = PONG) copyDatadev(gBufferRcvPing, leftbuff,rightbuff,rig

15、ht_buff,SINSIZE);echogenerate(leftbuff,right_buff,SINSIZE);copyDatacom(leftbuff, rightbuff, gBufferXmtPing, SINSIZE); else copyDatadev(gBufferRcvPong, leftbuff,rightbuff,right_buff,SINSIZE); echogenerate(leftbuff,right_buff,SINSIZE);copyDatacom(leftbuff, rightbuff, gBufferXmtPong, SINSIZE);(3) 調(diào)用dlm

16、s函數(shù)進行濾波處理dlms(leftbuff,h,rightbuff,right_buff,dbuffer,STEP, NH, NX);for(i=0;i<NX;i+)rightbuffi=right_buffi-rightbuffi;上述兩句代碼實現(xiàn)了right_buff中的噪聲的濾除,這兩句是自適應(yīng)濾波的核心,dlms函數(shù)根據(jù)leftbuff估計出收到的疊加有回波的信號中回波噪聲,然后從有聲道中減去噪聲就可以得到?jīng)]有回波的右聲道信號。2.實驗步驟1)把工程拷入C:CCStudio_v3.3MyProjects2)插上DSK 板子4)打開音量調(diào)節(jié)控制選中選項中的高級控制點擊屬性播放模式

17、下選中麥克風取消麥克風靜音軟件、CD、后端輸入選中靜音點擊屬性錄音模式下取消后端輸入選中高級麥克風加強去掉點擊屬性播放模式確認選中后端輸入高級取消麥克風加強主音量和麥克風音量盡量減小根據(jù)虛擬儀器顯示進行微調(diào)。6)打開虛擬儀器,點擊信號源,左通道產(chǎn)生一定頻率的正弦波。8)正確連接PC 機和板子,耳機輸出接到DSK 板上的J5 端口,麥克輸入接到DSK 板上的J6 端口。9)打開setup CCS3.3, 正確裝載并在退出前保存。10)在CCS 環(huán)境中,選中ProjectOpen 選擇建好的工程(.pjt)文件。選擇debugconnect,鏈接電腦與DSP試驗箱。選擇Load Program,讀

18、取.out文件。選擇debuggo main。點擊run運行文件。11)在CCS 中選擇View/Graph/Time/Frequency,出現(xiàn)圖形屬性對話框。12)如果要觀察頻域波形,Display Type 改為FFT Magnitude。3.結(jié)果分析(1)濾波前后頻譜的變化未濾波前,輸入的左聲道信號產(chǎn)生回波信號后,與右聲道的信號疊加,生成帶回波的信號,從左聲道輸出。所以,左聲道為加噪聲后的信號。進行自適應(yīng)濾波后,濾除回波的信號從右聲道輸出。所以,右聲道為濾波后的信號。濾波前后信號的變化如圖4-2所示。圖4-2 濾波器前后虛擬儀器上頻譜分布綠色表示左聲道頻譜,紅色表示右聲道頻譜,可見,左聲

19、道有回波噪聲的存在。自適應(yīng)濾波后,右聲道成功的濾除了回波噪聲。五、 設(shè)計(安裝)與調(diào)試的體會在本次DSP實驗中,我通過閱讀資料、了解DSP實驗系統(tǒng)的組成,學會集成開發(fā)環(huán)境CCS的使用,并利用自適應(yīng)算法進行濾波處理。首先,我們通過老師的講解,閱讀PPT和TMS320C55X等資料,了解了DSP實驗系統(tǒng)的基本組成和結(jié)構(gòu),并掌握了利用DMA進行信號采集和輸出的原理,接著,我們在main函數(shù)中利用C語言編程,實現(xiàn)了信號輸入后左右聲道的提取,并能成功將左右聲道提取的信號進行合并后輸出。接下來,我們根據(jù)要求設(shè)計產(chǎn)生回波信號,將左聲道的回波加到右聲道后,從左聲道輸出。最后,我們調(diào)用dlms函數(shù),對回波信號進

20、行自適應(yīng)濾波,得到無回波的信號。為了對自適應(yīng)濾波進行實際的應(yīng)用。我們輸入一段音頻信號,產(chǎn)生回聲,并進行濾除。插入耳機后,可以聽到左聲道有明顯的回聲,而右聲道無回聲。在本次試驗中我們遇到了很多問題。例如,在產(chǎn)生回波信號時我們對實驗要求不太理解。開始時,我們將左聲道信號疊加到右聲道,從右聲道輸出,這樣雖然原則上并沒有錯,但每次需要對比有無濾波時,必須把濾波的語句注釋掉,重新編譯運行。經(jīng)過與老師和其他組的討論后,我們才將左聲道信號疊加到右聲道,從左聲道輸出。這樣左聲道表示的是濾波器前信號,右聲道表示濾波后信號。可以同時觀察,并且通過耳機的左右聲道能明顯分辨出有回聲和回聲濾除后的明顯效果。在調(diào)用dlm

21、s函數(shù)時,我們也遇到了問題。開始時我們將回波后左聲道信號作為輸入,原右聲道信號作為期望值,進行濾波。后來通過與老師討論,我們意識到在實際應(yīng)用中,我們是無法得知對端的信號,所以不能用對端信號最為期望。通過查找文獻資料,我們終于明白了自適應(yīng)濾波實現(xiàn)波波消除的原理,用自適應(yīng)濾波擬合回聲信號,在與疊加了回聲的信號相減,得到了對端傳來的無回聲信號。應(yīng)用自適應(yīng)濾波實現(xiàn)音頻信號的回聲濾除時,我們希望通過雙耳能分辨出濾波前后的音效。但人耳能分辨的時間間隔為0.1秒。而如果按照先前的程序,時延幾個到幾十個單位遠遠無法達到人耳的分辨。所以,我們又新定義兩個4096的存儲區(qū)交替存儲,延時衰竭與右聲道疊加,這樣才實現(xiàn)

22、了延時0.5s,雙耳能明顯分辨出回聲信號的有無。在這次DSP課程設(shè)計中,我們投入了大量時間和精力。也正是因為不斷地學習、探索、交流,我們對DSP實驗系統(tǒng)有了很深的了解,也能在CCS中進行熟練的操作。并通過自己的設(shè)計實現(xiàn)了自適應(yīng)濾波,實現(xiàn)了課堂所學到實踐應(yīng)用的轉(zhuǎn)變。在以后的學習中,我還會繼續(xù)努力學習,將知識與實踐完美結(jié)合。本次課程設(shè)計是我從頭到尾都參加的一次課程設(shè)計,經(jīng)歷比較完整,收獲十分的大。至于說感想和體會,我覺著這篇報告前面的很多內(nèi)容都能說出一些我的體會,因為前面的內(nèi)容雖然不算很多,但是每一句都是我自己敲上去的。最后我就把自己遇到的一些問題敘述一下。選擇這個題目,是因為我剛看到題目時覺著這

23、個題比較難,而且時間比較充裕,有足夠多的時間來做。在實際開始做的時候,我們覺著這個題也就是分三步就可以做完,并且每步都不會太難,尤其是第三步,直接利用CCS庫函數(shù)dlms對信號進行濾波,幾乎沒什么難度。然而,在我們?yōu)V波前的工作都做完以后,卻發(fā)現(xiàn)dlms函數(shù)的根本不是我們想得那樣。dlms函數(shù)的各個輸入?yún)?shù)并不是我們想得那樣簡單的使用。因為該函數(shù)中的參數(shù)要求并不明確,而且在調(diào)試中實驗設(shè)備的處理也并不是很穩(wěn)定,所以并不是和我們事先想的一樣簡單。而且最讓人不可捉摸的在好幾種情況下,處理后都有較為理想的濾波輸出,有些時候真的就以為是自適應(yīng)濾波完成了,但還好能及時各種問題,才不至于錯誤地使用這個函數(shù)。最

24、后導致總是感覺今天做的是對的,然后準備截圖時忽然間發(fā)現(xiàn)不合理或者有時候都把圖截好準備寫報告時發(fā)現(xiàn)問題,所以一直持續(xù)做到最后,才搞明白了這個函數(shù)的調(diào)用。最后回頭想想我覺著我們這個月幾乎一直在做DSP,雖然這個題目看起來簡單,但我覺著我們不只是簡單調(diào)用了一個函數(shù),而且是通過各種方法去研究了一個已經(jīng)封裝好的沒有任何說明的函數(shù)的功能。雖然Dsplib中對這個函數(shù)有一些說明,但到最后我覺著那根本就不是那我們正常人的思維寫的說明,當然,這更大的原因還是我們自己對自適應(yīng)回波算法的原理不是很了解。我們這次課程設(shè)計最終能夠得到理想的結(jié)果與其他小組之間的討論是分不開的,因為當局者迷,自己總是會認為自己的相法是正確

25、的,當稍微有些結(jié)果,哪怕不合理,自己也可以接受,這樣很容易進入誤區(qū)。還有就是要學會利用互聯(lián)網(wǎng)資源,我們少數(shù)人的思維畢竟太狹隘,只有我們多了解他人對相同問題的看法,并且加以思考才可以更好地得出我們自己的想法。六、 參考文獻1 高海林 錢滿義 DSP技術(shù)及其應(yīng)用 清華大學出版社,20092 陳后金等 信號分析與處理實驗. 高等教育出版社,20063 鄒鯤等 MATLAB 6.x 清華大學出版社,20024 TMS320C55X DSP Library Programmers Reference,SPRU422J.pdf5TMS320VC5502 Fixed-Point Digital Signal

26、 Processor Data Manual,SPRS166K.pdf6 TMS320C55X Chip Support Library API Reference Guide,SPRU433I.pdf7 許國威、馬勝前等.自適應(yīng)濾波RLS算法研究與DSP實現(xiàn). 計算機技術(shù)與發(fā)展.2010.108 BJTU-DSP5502實驗系統(tǒng)簡介. 北京交通大學電信學院電工電子教學基地七、 附錄1.Main函數(shù)/* * Copyright (C) 2003 Texas Instruments Incorporated * All Rights Reserved */*-main_dma4.c- * Thi

27、s is a DMA application example for Codec AIC23B analog input/output, * The example places the MCBSP in DMA transmit data mode and * syncs MCBSP receive with DMA channel 4 and MCBSP transmit * with DMA channel 5. * The example uses predefined CSL macros and symbolic * constants to create the initiali

28、zation values needed for * the MCBSP and DMA control registers to effect the transfer * Created by hailingao , BJTU , 2012/06/25,2014/06/16 */#include <stdio.h>#include <csl_mcbsp.h>#include <csl_dma.h>#include <csl_irq.h>#include <math.h>#include <tms320.h>#inclu

29、de <dsplib.h>#include"dlms.h"/-Global data definition-/* Constants for the buffered ping-pong transfer */#define BUFFSIZE 256#define PING 0#define PONG 1#define SINSIZE 128#define CAHE 4096Int16 decay=6,Mode=0,delay=4095;Int16 p=0,q=0;/回波產(chǎn)生參數(shù)Int16 di=0,ti=0;/回波緩存參數(shù)/* * Data buffer de

30、clarations - the program uses four logical buffers of size * BUFFSIZE, one ping and one pong buffer on both receive and transmit sides. */#pragma DATA_SECTION (gBufferXmtPing, "buffer_sect");Int16 gBufferXmtPingBUFFSIZE; / Transmit PING buffer#pragma DATA_SECTION (gBufferXmtPong, "buf

31、fer_sect");Int16 gBufferXmtPongBUFFSIZE; / Transmit PONG buffer#pragma DATA_SECTION (gBufferRcvPing, "buffer_sect");Int16 gBufferRcvPingBUFFSIZE; / Receive PING buffer#pragma DATA_SECTION (gBufferRcvPong, "buffer_sect");Int16 gBufferRcvPongBUFFSIZE; / Receive PONG buffer#pra

32、gma DATA_SECTION (delayone, ".buffer_cahe");Int16 delayoneCAHE; / Receive PONG buffer#pragma DATA_SECTION (delaytwo, ".buffer_cahe");Int16 delaytwoCAHE; / Receive PONG buffer/*-*/ Config McBSP: Use McBSP to send and receive the data between DSP and AIC23B/*-*/MCBSP_Config Mcbsp1C

33、onfig = MCBSP_SPCR1_RMK( MCBSP_SPCR1_DLB_OFF, / DLB = 0 MCBSP_SPCR1_RJUST_LZF, / RJUST = 0,right justify the data and zero fill the MSBs MCBSP_SPCR1_CLKSTP_DISABLE, / CLKSTP = 0 MCBSP_SPCR1_DXENA_ON, / DXENA = 1,DX delay enabler on 0, / Reserved = 0 MCBSP_SPCR1_RINTM_RRDY, / RINTM = 0 MCBSP_SPCR1_RS

34、YNCERR_NO, / RSYNCER = 0 / MCBSP_SPCR1_RFULL_NO, / RFULL = 0 / MCBSP_SPCR1_RRDY_NO, / RRDY = 0 MCBSP_SPCR1_RRST_DISABLE / RRST = 0; Disable receiver ), MCBSP_SPCR2_RMK( MCBSP_SPCR2_FREE_NO, / FREE = 0 MCBSP_SPCR2_SOFT_NO, / SOFT = 0 MCBSP_SPCR2_FRST_FSG, / FRST = 1 ; Enable the frame-sync logic MCBS

35、P_SPCR2_GRST_CLKG, / GRST = 1 ; The sample rate generator is take out of its reset state MCBSP_SPCR2_XINTM_XRDY, / XINTM = 0 MCBSP_SPCR2_XSYNCERR_NO, / XSYNCER =0 / MCBSP_SPCR2_XEMPTY_NO, / XEMPTY = 0 / MCBSP_SPCR2_XRDY_NO, / XRDY = 0 MCBSP_SPCR2_XRST_DISABLE / XRST = 0 Disable transimitter ), / 單數(shù)據(jù)

36、相,接受數(shù)據(jù)長度為16位,每相2個數(shù)據(jù) MCBSP_RCR1_RMK( MCBSP_RCR1_RFRLEN1_OF(1), / RFRLEN1 = 1 MCBSP_RCR1_RWDLEN1_16BIT / RWDLEN1 = 2 ), MCBSP_RCR2_RMK( MCBSP_RCR2_RPHASE_SINGLE, / RPHASE = 0 MCBSP_RCR2_RFRLEN2_OF(0), / RFRLEN2 = 0 MCBSP_RCR2_RWDLEN2_8BIT, / RWDLEN2 = 0 MCBSP_RCR2_RCOMPAND_MSB, / RCOMPAND = 0 No compa

37、nding,any size data, MSB received first MCBSP_RCR2_RFIG_YES, / RFIG = 1 Frame-sync ignore MCBSP_RCR2_RDATDLY_1BIT / RDATDLY = 1 1-bit data delay ), MCBSP_XCR1_RMK( MCBSP_XCR1_XFRLEN1_OF(1), / XFRLEN1 = 1 MCBSP_XCR1_XWDLEN1_16BIT / XWDLEN1 = 2 ), MCBSP_XCR2_RMK( MCBSP_XCR2_XPHASE_SINGLE, / XPHASE = 0

38、 MCBSP_XCR2_XFRLEN2_OF(0), / XFRLEN2 = 0 MCBSP_XCR2_XWDLEN2_8BIT, / XWDLEN2 = 0 MCBSP_XCR2_XCOMPAND_MSB, / XCOMPAND = 0 MCBSP_XCR2_XFIG_YES, / XFIG = 1 Unexpected Frame-sync ignore MCBSP_XCR2_XDATDLY_1BIT / XDATDLY = 1 1-bit data delay ), MCBSP_SRGR1_DEFAULT, MCBSP_SRGR2_DEFAULT, MCBSP_MCR1_DEFAULT,

39、 MCBSP_MCR2_DEFAULT, MCBSP_PCR_RMK( / MCBSP_PCR_IDLEEN_RESET, / IDLEEN = 0 MCBSP_PCR_XIOEN_SP, / XIOEN = 0 MCBSP_PCR_RIOEN_SP, / RIOEN = 0 MCBSP_PCR_FSXM_EXTERNAL, / FSXM = 0 Tranmit frame-syn is provided by AIC23B MCBSP_PCR_FSRM_EXTERNAL, / FSRM = 0 Receive frame-syn is provided by AIC23B MCBSP_PCR

40、_CLKXM_INPUT, / CLKR is input MCBSP_PCR_CLKRM_INPUT, / CLKX is input MCBSP_PCR_SCLKME_NO, / SCLKME=0 CLKG is taken from the McBSP internal input clock / MCBSP_PCR_CLKSSTAT_0, / The signal on the CLKS pin is low MCBSP_PCR_DXSTAT_0, / Drive the signal on the DX pin low / MCBSP_PCR_DRSTAT_0, / The sign

41、al on the DR pin is low MCBSP_PCR_FSXP_ACTIVEHIGH, / FSXP = 1 Because a falling edge on LRCIN or LRCOUT starts data transfer MCBSP_PCR_FSRP_ACTIVELOW, / FSRP = 1 MCBSP_PCR_CLKXP_FALLING, / CLKXP = 1 The falling edge of BCLK starts data transfer MCBSP_PCR_CLKRP_RISING / CLKRP = 1 ), MCBSP_RCERA_DEFAU

42、LT, MCBSP_RCERB_DEFAULT, MCBSP_RCERC_DEFAULT, MCBSP_RCERD_DEFAULT, MCBSP_RCERE_DEFAULT, MCBSP_RCERF_DEFAULT, MCBSP_RCERG_DEFAULT, MCBSP_RCERH_DEFAULT, MCBSP_XCERA_DEFAULT, MCBSP_XCERB_DEFAULT, MCBSP_XCERC_DEFAULT, MCBSP_XCERD_DEFAULT, MCBSP_XCERE_DEFAULT, MCBSP_XCERF_DEFAULT, MCBSP_XCERG_DEFAULT, MC

43、BSP_XCERH_DEFAULT ; DMA_Config dmaRcvConfig = DMA_DMACSDP_RMK( DMA_DMACSDP_DSTBEN_NOBURST, DMA_DMACSDP_DSTPACK_OFF, DMA_DMACSDP_DST_DARAMPORT1, DMA_DMACSDP_SRCBEN_NOBURST, DMA_DMACSDP_SRCPACK_OFF, DMA_DMACSDP_SRC_PERIPH, DMA_DMACSDP_DATATYPE_16BIT ), /* DMACSDP */ DMA_DMACCR_RMK( DMA_DMACCR_DSTAMODE

44、_POSTINC, DMA_DMACCR_SRCAMODE_CONST, DMA_DMACCR_ENDPROG_OFF,/* ENDPROG OFF */ DMA_DMACCR_WP_DEFAULT, DMA_DMACCR_REPEAT_OFF, DMA_DMACCR_AUTOINIT_ON,/* AUTOINIT ON */ DMA_DMACCR_EN_STOP, DMA_DMACCR_PRIO_LOW, DMA_DMACCR_FS_DISABLE, DMA_DMACCR_SYNC_REVT1 ), /* DMACCR */ DMA_DMACICR_RMK( DMA_DMACICR_AERR

45、IE_ON, DMA_DMACICR_BLOCKIE_OFF, DMA_DMACICR_LASTIE_OFF, DMA_DMACICR_FRAMEIE_ON, DMA_DMACICR_FIRSTHALFIE_OFF, DMA_DMACICR_DROPIE_OFF, DMA_DMACICR_TIMEOUTIE_OFF ), /* DMACICR */ (DMA_AdrPtr)(MCBSP_ADDR(DRR11), /* DMACSSAL */ 0, /* DMACSSAU */NULL, /* DMACDSAL, to be loaded by submit */ 0, /* DMACDSAU

46、*/ BUFFSIZE, /* DMACEN */ 1, /* DMACFN */ 0, /* DMACFI */ 0 /* DMACEI */;DMA_Config dmaXmtConfig = DMA_DMACSDP_RMK( DMA_DMACSDP_DSTBEN_NOBURST, DMA_DMACSDP_DSTPACK_OFF, DMA_DMACSDP_DST_PERIPH, DMA_DMACSDP_SRCBEN_NOBURST, DMA_DMACSDP_SRCPACK_OFF, DMA_DMACSDP_SRC_DARAMPORT0, DMA_DMACSDP_DATATYPE_16BIT

47、 ), /* DMACSDP */ DMA_DMACCR_RMK( DMA_DMACCR_DSTAMODE_CONST, DMA_DMACCR_SRCAMODE_POSTINC, DMA_DMACCR_ENDPROG_ON, DMA_DMACCR_WP_DEFAULT, DMA_DMACCR_REPEAT_OFF, DMA_DMACCR_AUTOINIT_OFF, DMA_DMACCR_EN_STOP, DMA_DMACCR_PRIO_LOW, DMA_DMACCR_FS_DISABLE, DMA_DMACCR_SYNC_XEVT1 ), /* DMACCR */ DMA_DMACICR_RM

48、K( DMA_DMACICR_AERRIE_ON, DMA_DMACICR_BLOCKIE_OFF, DMA_DMACICR_LASTIE_OFF, DMA_DMACICR_FRAMEIE_ON, DMA_DMACICR_FIRSTHALFIE_OFF, DMA_DMACICR_DROPIE_OFF, DMA_DMACICR_TIMEOUTIE_OFF ), /* DMACICR */NULL, /* DMACDSAL, to be loaded by submit */ 0, /* DMACSSAU */ (DMA_AdrPtr)(MCBSP_ADDR(DXR11), /* DMACDSAL */ 0, /* DMACDSAU */ BUFFSIZE, /* DMACEN */ 1, /* DMACFN */ 0, /* DMACFI */ 0 /* DMACEI */;/* Define a DMA_Handle object to be used with

溫馨提示

  • 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

提交評論