DSP課程設計報告DTMF_第1頁
DSP課程設計報告DTMF_第2頁
DSP課程設計報告DTMF_第3頁
DSP課程設計報告DTMF_第4頁
DSP課程設計報告DTMF_第5頁
已閱讀5頁,還剩52頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、DTMF信號的產生與檢測 DSP課程設計實驗報告DTMF信號的產生及檢測院 系:電子信息工程學院 電子系指導老師:錢滿義時 間:2014年7月成績:工程設計50報告20答辯30總分評語:指導教師簽字: 日期:目 錄一、設計任務書- 1 -1. 設計題目:- 1 -2. 實驗目的:- 1 -3. 實驗要求:- 1 -二、設計內容- 1 -1. 基本部分:- 1 -2. 發揮部分:- 1 -三、設計方案、原理及說明- 1 -1. 關于DTMF信號:- 1 -2. 設計思路:- 2 -2.1 DTMF信號的產生:- 3 -2.2 DTMF信號的檢測:- 6 -3. 有效性檢測:- 9 -四、程序設計

2、、調試與分析:- 10 -1. 基本部分:- 10 -1.1 DTMF信號的發送:- 11 -1.2 DTMF信號的接收:- 17 -1.3 cmd文件:- 25 -2.發揮部分:- 27 -2.1 自發自收:- 27 -2.2 cmd文件:- 38 -2.3 編碼加倍:- 39 -五、設計(安裝)與調試的體會:- 53 -六、參考文獻:- 53 - 52 -一、設計任務書1. 設計題目:DTMF信號的產生及檢測2. 實驗目的:掌握DTMF信號的產生和檢測的DSP設計可使學生更加透徹的理解和應用奈奎斯特采樣定理,與實際應用相結合,提高學生系統地思考問題和解決實際問題的能力。通過對DSP信號處理

3、器及D/A和A/D轉換器的編程,可以培養學生C語言編程能力以及使用DSP硬件平臺實現數字信號處理算法的能力。3. 實驗要求:(1)掌握CCS的安裝、設置,工程的建立、打開以及編譯運行和調試方法。(2)編寫C語言程序實現設計要求,并在CCS集成開發環境下調試通過,實現設計所要求的各項功能。(3)按要求撰寫課程設計報告。二、設計內容1. 基本部分:(1)使用C語言編寫DSP下DTMF信號的產生程序,要求循環產生09、A、B、C、D、*、#對應的DTMF信號,并且符合CCITT對DTMF信號規定的指標。(2)使用C語言編寫DSP下DTMF信號的檢測程序,檢測到的DTMF編碼在CCS調試窗口中顯示,要

4、求既不能漏檢,也不能重復檢出。(3)DTMF信號的發送與接收分別使用不同的實驗板完成。2. 發揮部分:(1)使用一個DSP工程同時實現DTMF信號的發送和檢測功能。(2)改進DTMF信號的規定指標,使每秒內可傳送的DTMF編碼加倍。(3)發送的DTMF信號的幅度在一定范圍內可調,此時仍能完成DTMF信號的正常檢測。三、設計方案、原理及說明1. 關于DTMF信號:雙音多頻DTMF(Dual Tone Multi Frequency)信號是在按鍵式電話機上得到廣泛應用的音頻撥號信令,一個DTMF信號由兩個頻率的音頻信號疊加構成。這兩個音頻信號的頻率分別來自兩組預定義的頻率組:行頻組和列頻組。每組分

5、別包括4個頻率,據CCITT的建議,國際上采用的這些頻率為697Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8種。在每組頻率中分別抽出一個頻率進行組合就可以組成16種DTMF編碼,從而代表16種不同的數字或功能鍵,分別記作09、*、#、A、B、C、D。如下圖所示。圖301 DTMF的頻率及其對應的鍵值要用DSP產生DTMF信號,只要產生兩個正弦波疊加在一起即可;DTMF檢測時采用改進的Goertzel算法,從頻域搜索兩個正弦波的存在。2. 設計思路:DTMF發生器基于兩個二階數字正弦振蕩器,一個用于產生行頻,一個用于產生列頻。DSP只要裝載

6、相應的系數和初始條件,就可以只用兩個振蕩器產生所需的八種音頻信號。典型的DTMF信號頻率范圍是7001700Hz,選取8000Hz作為采樣頻率,即可滿足奈奎斯特定理。DTMF數字振蕩器對的二階系統函數的差分方程為:其中 , , , 為采樣頻率, 為輸出正弦波的頻率, 為輸出正弦波的幅度。該式初值為 , 。下面以770Hz為例,詳細說明方程中系數的計算方法:f/fs=770/8000,0 =2*pi*f/fs, cos0 =0.8226, sin0=-0.5686。f/HZa1Y(-1)Y(-2)/A6970.853820-0.520477700.822630-0.568578520.78433

7、0-0.620339410.739110-0.6735812090.582060-0.8131413360.498200-0.8670614470.399320-0.9168016330.284240-0.95874在輸入信號中檢測DTMF信號,需要在輸入的數據信號流中連續地搜索DTMF信號頻譜的存在。整個檢測過程分兩步:首先采用Goertzel算法在輸入信號中提取頻譜信息;接著作檢測結果的有效性檢查。DTMF解碼時在輸入信號中搜索出有效的行頻和列頻。計算數字信號的頻譜可以采用DFT及其快速算法FFT,而在實現DTMF解碼時,采用Goertzel算法要比FFT更快。通過FFT可以計算得到信號所

8、有譜線,了解信號整個頻域信息,而對于DTMF信號只需關心其8個行頻/列頻及其二次諧波信息即可,二次諧波的信息用于將DTMF信號與聲音信號區別開。此時Goertzel算法能更加快速的在輸入信號中提取頻譜信息。Goertzel算法實質是一個兩極點的IIR濾波器。2.1 DTMF信號的產生:DTMF發生器基于兩個二階數字正弦振蕩器,一個用于產生行頻,一個用于產生列頻。DSP只要裝載相應的系數和初始條件,就可以只用兩個振蕩器產生所需的八種音頻信號。典型的DTMF信號頻率范圍是7001700Hz,選取8000Hz作為采樣頻率,即可滿足奈奎斯特定理(Nyquist定理:為了正確判定信號頻率,信號在一個周期

9、內至少被采樣兩次)。具體來說DTMF編碼是將撥號盤上的09,AD,*、#,共 16個字符,用音頻范圍 (小于3400 Hz) 的8個頻率表示出來。具體來說,將8個頻率分為高頻群和低頻群2組,分別作為列頻組和行頻組,總共可構成4×4共16種不同組合,代表16個符號。具體表示方法如圖所示。頻率1209Hz1336Hz1477Hz1633Hz697Hz123A770Hz456B852Hz789C941Hz*0#D表3-1 DTMF頻率表DTMF雙音頻可以由2個可編程的二階數字正弦振蕩器產生,如圖所示,圖3-2 產生DTMF的數字正弦信號振蕩器分別用于產生行音頻和列音頻。由于DTMF 頻率范

10、圍在6971633 Hz之間,根據Nyquist定理可知,用8kHz速率抽樣對DTMF信號沒有影響。CCITT對DTMF信號規定的指標是,傳送/接收率為每秒10個數字,即每個數字100ms。代表數字的音頻信號必須持續至少45ms,但不超過55ms。100ms內其他時間為靜音,以便區別連續的兩個按鍵信號。我們使用8000Hz的采樣頻率,即1秒采樣8000個點,則100ms采樣800個點,我們設置800個點的緩存,其中用400個存產生的DTMF信號值,即音頻信號必須持續50ms,另外400個存0值,即靜音信號。圖3-3 信號發送流程開始任務標志=0?靜音任務雙音任務持續時間完畢?持續時間完畢?持續

11、時間變量-1產生靜音樣本產生雙音樣本持續時間變量-1變量復位任務標志=1裝入下一數字初始化新數字的振蕩器系數與初始條件變量復位任務標志=0返回另外,需要注意的是,由于本實驗需要用到DSP板上的CODEC模塊,因此在編寫的程序中還需要寫入AD/DA轉換部分。圖3-02 AD/DA轉換流程2.2 DTMF信號的檢測:DTMF信號包含兩組音頻信號,解碼器的任務是通過數學變換把它從時域轉換到頻域,然后得出對應的數字信息由于DSP芯片處理的是數字信號,所以必須把輸入信號數字化,再用DSP芯片進行處理在信號接收端,需要對DTMF信號進行檢測,即尋找信號的行頻和列頻,最后根據DTMF鍵盤信息確定相應的數字或

12、符號。DTMF檢測是對進入解碼端的信號進行檢測,并把雙音頻信號轉換成對應的數字信息。它是一個比DTMF產生更加復雜過程。由于數據流是連續的,為了保證DTMF檢測的實時性,因此要求檢測過程必須是實時連續的。2.2.1 關于Goertzel算法:DTMF檢測器的核心是Goertzel算法。該算法利用二極點IIR濾波器計算離散傅立葉變換值,能夠快速高效地提取輸入信號的頻譜信息。由于IIR濾波器是一個遞歸結構,它利用只有一個實系數的差分方程進行操作,并不像FFT算法那樣需要計算數據塊,而是每輸入一個樣值就執行一次算法。完成時域到頻域的變換可以用DFT或FFT。FFT計算出所有點頻率,而DFT可以只計算

13、感興趣的頻率點。如果要計算的頻率點數少于log 2N(N為輸入信號點數),采用DFT的計算速度比FFT更快。直接計算DFT,需要很多復系數,即使只計算一點的DFT也需要N個復系數。采用數字信號處理中的Goertzel算法,則可明顯地提高速度。圖3-03 Goertzel算法原理框圖利用二階復共軛極點可以得到只有一個實系數的差分方程:在實際的DTMF檢測中,只需DFT的幅度(本算法為平方幅度)信息就足夠了,因此在Goertzel濾波器中,當N點(相當于DFT數據塊的長度)樣值輸入濾波器后,濾波器輸出偽DFT值vk(n),由vk(n)即可確定頻譜的平方幅度。DTMF信號包含兩組音頻信號,解碼器的任

14、務是通過數學變換把它從時域轉換到頻域,然后得出對應的數字信息由于DSP芯片處理的是數字信號,所以必須把輸入信號數字化,再用DSP芯片進行處理頻率檢測時,檢測出DTMF信號的基波及二次諧波,DTMF信號只在基波上有較高能量,而話音信號則在基波上疊加有較強的二次諧波,檢測二次諧波的作用是用來區分DTMF信號與語言和音樂信號。用DFT檢測模擬DTMF信號所含有的兩個音頻頻率,是一個用DFT對模擬信號進行頻譜分析的問題。確定三個參數:(1)采樣頻率,(2)DFT的變換點數N,(3)需要對信號的觀察時間的長度。這三個參數不能隨意選取,要根據對信號頻譜分析的要求進行確定。這里對信號頻譜分析也有三個要求:

15、(1)頻率分辨率,(2)譜分析的頻譜范圍,(3)檢測頻率的準確性。2.2.2 頻譜分析的分辨率:觀察要檢測的8個頻率,相鄰間隔最小的是第一和第二個頻率,間隔是73Hz,要求DFT最少能夠分辨相隔73Hz的兩個頻率,即要求。DFT的分辨率和對信號的觀察時間有關, 。考慮到可靠性,留有富裕量,要求按鍵的時間大于45ms。2.2.3 頻譜分析的頻率范圍要檢測的信號頻率范圍是6971633Hz,但考慮到存在語音干擾,除了檢測這8個頻率外,還要檢測它們的二次倍頻的幅度大小,波形正常且干擾小的正弦波的二次倍頻是很小的,如果發現二次諧波很大,則不能確定這是DTMF信號。這樣頻譜分析的頻率范圍為6973266

16、Hz。按照采樣定理,最高頻率不能超過折疊頻率,即,由此要求最小的采樣頻率應為7.24KHz。因為數字電話總系統已經規定8KHz,因此對頻譜分析范圍的要求是一定滿足的。按照,8KHz,算出對信號最少的采樣點數為。2.2.4 檢測頻率的準確性這是一個用DFT檢測正弦波頻率是否準確的問題。序列的N點DFT是對序列頻譜函數在0區間的N點等間隔采樣,如果是一個周期序列,截取周期序列的整數倍周期,進行DFT,其采樣點剛好在周期信號的頻率上,DFT的幅度最大處就是信號的準確頻率。分析這些DTMF信號,不可能經過采樣得到周期序列,因此存在檢測頻率的準確性問題。DFT的頻率采樣點頻率為(k=0,1,2,-,N-

17、1),相應的模擬域采樣點頻率為(k=0,1,2,-,N-1),希望選擇一個合適的N,使用該公式算出的能接近要檢測的頻率,或者用8個頻率中的任一個頻率代入公式中時,得到的k值最接近整數值,這樣雖然用幅度最大點檢測的頻率有誤差,但可以準確判斷所對應的DTMF頻率,即可以準確判斷所對應的數字或符號。經過分析研究認為N205是最好的。按照8KHz,N205,算出8個頻率及其二次諧波對應k值,和k取整數時的頻率誤差見下表。8個基頻Hz最近的整數k值DFT的k值絕對誤差二次諧波Hz對應的k值最近的整數k值絕對誤差69717.861180.139139435.024350.02477019.531200.2

18、69154038.692390.30885221.833220.167170442.813430.18794124.113240.113188247.285470.285120930.981310.019241860.752610.248133634.235340.235267267.134670.134147737.848380.152295474.219740.219163341.846420.154326682.058820.058表3-2 K取值表通過以上分析,確定8KHz,N205。3. 有效性檢測:得到了DTMF信號的基波及二次諧波的頻譜平方幅度信息后,需要通過一系列檢測才能確定信

19、號的有效性:1)DTMF信號的強度是否足夠大,行列頻率分量平方幅度和是否高于規定的門限值。2)如果DTMF信號存在,比較行列頻率的最大頻率分量差值,因為電話線具有低通特性,列頻比行頻衰減得要厲害,因此要設置一門限值。 3)分別在行列頻率組比較頻譜分量,最強的譜線至少要比其他音頻信號高一個門限值。 4)二次諧波分量是否小于某個值。 5)判斷DTMF信號是否包含穩定的數字信息,只有數字信息被連續檢測到兩次,才認為數字信息是穩定的。 6)最后要檢測數字信息之后是否有停頓狀態,只有這樣才將當前的數字作為有效數字。 在每一個接收中斷到來時,表明采到一個新樣點,迭代計算8個行頻列頻的中間變量v (n)(k

20、為8個行頻列頻分別對應的數字頻率),直到采到N=125個樣點(在8kHz采樣頻率下,約為15ms)。此時再按式計算8個行頻列頻的幅度平方 。接下來將|X(k)|2與門限作比較,并作二次諧波檢測,判決出有效的音頻信號。將音頻信號映射為數字信號后,再與上一個檢測到的數字信號比較,最終判決出有效的數字信號。 與發生部分原理相似,我們也需要在檢測程序中加入AD/DA轉換部分。圖3-6 信號發送流程四、程序設計、調試與分析:1. 基本部分:設計的總體思路是將DTMF信號的產生與檢測分別建立工程,期望在兩個DSP板可以實現雙機通信。發送部分程序需要設置8KHz 的采樣頻率,因而在AIC23.c 文件中必須

21、對寄存器參數進行設置。參考采樣頻率選擇表: 表4-1 采樣頻率選擇表對應8KHz 的寄存器的參數設置應為SR3-SR0:0011,也就是在AIC23.c 中設置如下圖:圖4-1 寄存器參數設置1.1 DTMF信號的發送:/*-頭文件-*/#include <math.h>#include <stdio.h>#include <csl.h>#include <csl_chip.h>#include <csl_i2c.h>#include <csl_pll.h>#include <csl_mcbsp.h>#incl

22、ude <csl_emif.h>#include <csl_emifBhal.h>#include <stdio.h>#include "CODEC.h"#include "volume.h"#undef CODEC_ADDR#define CODEC_ADDR 0x1A / 定義McBSP的句柄MCBSP_Handle hMcbsp;/*-*/ / 主函數 / /*-*/*-定義變量-*/ Int16 buffer800; /float buffer1800;float A=16; /產生信號的幅度int gain

23、= MINGAIN; float x,y; int k=0; int i=0; int num=0;/int count=0;float freq162= 941,1336, /0 697,1209, /1 697,1336, /2 697,1477, /3 770,1209, /4 770,1336, /5 770,1477, /6 852,1209, /7 852,1336, /8 852,1477, /9 697,1633, /A 770,1633, /B 852,1633, /C 941,1633, /D 941,1209, /* 941,1477 /# ;float pi=3.141

24、5926;/*-定義"發射400個有效點、400個靜音點"的子程序-*/void generate(int num) float x,y; int k=0;while(1)for(k=0;k<800;k+)while(!MCBSP_xrdy(hMcbsp) ;MCBSP_write16(hMcbsp, bufferk);/左聲道輸出while(!MCBSP_xrdy(hMcbsp) ;MCBSP_write16(hMcbsp, bufferk);/右聲道輸出if(num=17) /依次輸出"0-#"等16個音num=0;x=freqnum0/800

25、0; /f/fsam 行頻y=freqnum1/8000; /f/fsam 列頻num+;for(k=0;k<400;k+)bufferk=(sin(2*pi*y*k)+sin(2*pi*x*k)*(A+gain);/把有用信號擴大到16位bufferk+400=0;/靜音信號/*- FUNCTION: MAIN -*/void main()/ CSL初始化 CSL_init(); / 該頻率是為了設置IIC模塊的需要設置的,為了使用I2C_setup函數,頻率設置為240MHz PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);/EMIF初始化 Emif_Confi

26、g(); /打開McBSP port 1 產生 McBSP 句柄hMcbsp = MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);/ Config McBSPport 1 by use previously defined structureMcbsp_Config(hMcbsp);/I2C初始化I2C_cofig(); /CODEC寄存器初始化inti_AIC(); /*-*/ / Receive the ADC output data of CODEC / Then output the received data to DAC of CODEC /*-*

27、/*x=freq00/8000;y=freq01/8000;for(k=0;k<400;k+)bufferk=(sin(2*pi*y*k)+sin(2*pi*x*k)*A;bufferk+400=0;*/*-循環產生16個符號值-*/generate(num);1.1.1 發送端的時域波形: 圖4-2 發送端的時域參數設置圖4-3 發送端的時域波形(1)圖4-4 發送端的時域波形(2)圖4-5 觀察變量圖1.1.2 發送端的頻域波形:圖4-6 發送端的頻域參數設置圖4-7 發送端的頻域波形1.2 DTMF信號的接收:/*-頭文件-*/#include <math.h>#inc

28、lude <stdio.h>#include <csl.h>#include <csl_chip.h>#include <csl_i2c.h>#include <csl_pll.h>#include <csl_mcbsp.h>#include <csl_emif.h>#include <csl_emifBhal.h>#include <stdio.h>#include "CODEC.h" #undef CODEC_ADDR#define CODEC_ADDR 0x1A

29、 / 定義McBSP的句柄MCBSP_Handle hMcbsp; float test2256;/右聲道數據存儲區float pi=3.1415926;Int16 test1256;/左聲道數據存儲區Int16 dacdata;int k=0;int i,j;int x;int y;int flag=0;int l=0;int detect_result150=0;/*-定義檢測用的子程序-*/void detect()/Goertzel 算法/int x,y;float w8,a83,amp8;w0=2*cos(2*pi*18/205);w1=2*cos(2*pi*20/205);w2=2

30、*cos(2*pi*22/205);w3=2*cos(2*pi*24/205);w4=2*cos(2*pi*31/205);w5=2*cos(2*pi*34/205);w6=2*cos(2*pi*38/205);w7=2*cos(2*pi*42/205);for(i=0;i<8;i+)ai0=0;ai1=0;for(j=1;j<=205;j+)/計算buffer中的205點 ai2=wi*ai1-ai0+test2j-1;ai0=ai1;ai1=ai2; ampi=ai1*ai1+ai0*ai0-wi*ai1*ai0;/計算頻譜的幅度平方值/printf("The amp

31、 %d is %f.rn",i,ampi);j=0;for(i=0;i<8;i+)if(ampi>0.1) /門限值 j+;if(j=1)x=i; /行頻else if(j=2)y=i; /列頻/*-判斷并打印輸出-*/i=-1; if(flag=0) if(j=2)if(x=0 && y=4) i='1' else if(x=0 && y=5) i='2' else if(x=0 && y=6) i='3' else if(x=1 && y=4) i='

32、;4' else if(x=1 && y=5) i='5' else if(x=1 && y=6) i='6' else if(x=2 && y=4) i='7' else if(x=2 && y=5) i='8' else if(x=2 && y=6) i='9' else if(x=3 && y=5) i='0' else if(x=0 && y=7) i='A'

33、;else if(x=1 && y=7) i='B' else if(x=2 && y=7) i='C' else if(x=3 && y=7) i='D' else if(x=3 && y=4) i='*' else if(x=3 && y=6) i='#' if(i!=-1) detect_resultl=i; l+; if(l=150) for(l=0;l<150;l+) printf("The DTMF sign

34、al is %c.rn ",detect_resultl); l=0; flag+; else if(j=0) flag=0; /*if(j=2)if(x=0&&y=4)printf("The DTMF signal is 1n");/i=1;else if(x=0&&y=5)printf("The DTMF signal is 2n");/i=2;else if(x=0&&y=6)printf("The DTMF signal is 3n");/i=3;else if(x=1

35、&&y=4)printf("The DTMF signal is 4n");/i=4;else if(x=1&&y=5)printf("The DTMF signal is 5n");/i=5;else if(x=1&&y=6)printf("The DTMF signal is 6n");/i=6;else if(x=2&&y=4)printf("The DTMF signal is 7n");/i=7;else if(x=2&&y=

36、5)printf("The DTMF signal is 8n");/i=8;else if(x=2&&y=6)printf("The DTMF signal is 9n");/i=9;else if(x=3&&y=5)printf("The DTMF signal is 0n");/i=0;else if(x=0&&y=7)printf("The DTMF signal is An");/i='A'else if(x=1&&y=7)p

37、rintf("The DTMF signal is Bn");/i='B'else if(x=2&&y=7)printf("The DTMF signal is Cn");/i='C'else if(x=3&&y=7)printf("The DTMF signal is Dn");/i='D'else if(x=3&&y=4)printf("The DTMF signal is *n");/i='*'el

38、se if(x=3&&y=6)printf("The DTMF signal is #n");/i='#'*/*-主函數-*/void main()/初始化 CSL library CSL_init(); / The main frequency of system is 240MHz/頻率為240MHz 該頻率是為了設置IIC模塊的需要設置的,為了使用I2C_setup函數 PLL_setFreq(1, 0xC, 0, 1, 3, 3, 0);/EMIF初始化 Emif_Config(); / 打開McBSP port 1 hMcbsp =

39、 MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);/ 配置 McBSPport 1 Mcbsp_Config(hMcbsp);/I2C初始化I2C_cofig(); /CODEC寄存器初始化inti_AIC(); /*-*/ / Receive the ADC output data of CODEC / Then output the received data to DAC of CODEC /*-*/while(1)while(!MCBSP_rrdy(hMcbsp) ;dacdata=MCBSP_read16(hMcbsp);/左聲道數據輸入test1k

40、=dacdata;while(!MCBSP_rrdy(hMcbsp) ;dacdata=MCBSP_read16(hMcbsp);/右聲道數據輸入test2k=dacdata/2100.0;k+;if(k=205)k=0;detect();/一共抽取205個點,然后開始檢測1.2.1 接收端時域波形圖4-8 接收端的時域參數設置圖4-9 接收端的時域波形1.2.2 接收端頻域波形:圖4-10 接收端頻域參數設置圖4-11 接收端頻域波形圖4-11 接收端數據1.3 cmd文件:/*/* */* LINKER command file for SDRAM memory map */* */*/

41、MEMORY MMR : origin = 0000000h, length = 00000c0h SPRAM : origin = 00000c0h, length = 0000040 VECS : origin = 0000100h, length = 0000100h DARAM0 : origin = 0000200h, length = 0007E00h DARAM1 : origin = 0008000h, length = 0008000h CE0 : origin = 0010000h, length = 03f0000h /* 對應ZBTRAM空間 */ FLASH : or

42、igin = 0400000h, length = 0100000h/* Flash 空間 */* FLASH : origin = 0410000h, length = 00f0000h*/ EXTEND: origin = 0500000h, length = 0300000h/* 狀態控制寄存器、UARTA、UARTB、USB、和擴展總線所對應的空間 */ SDRAM : origin = 0800000h, length = 03FFFFCh/* SDRAM 空間*/ CE3 : origin = 0c00000h, length = 03f8000h/* SDRAM 空間*/ PDR

43、OM : origin = 0ff8000h, length = 07f00h RESET_VECS : origin = 0ffff00h, length = 000ffh /* reset vector */ SECTIONS .vectors : > VECS /* interrupt vector table */ .cinit : > DARAM1 .text : > DARAM1 .Audio_in_data1: > SDRAM .Audio_in_data2: > SDRAM .Audio_in_data3: > SDRAM .Audio_ou

44、t_data1: > SDRAM .Audio_out_data2: > SDRAM .Audio_out_data3: > SDRAM data_out : > SDRAMdata_out1 : > SDRAM .stack : > DARAM0 .sysstack: > DARAM0 .sysmem : > DARAM0 .cio : > DARAM1 .data : > DARAM1 .bss : > DARAM1 .const : > DARAM1 .csldata: > DARAM0 dmaMem: > DARAM02.發揮部分:2.1 自發自收:使用一個DSP工程同時實現DTMF信號的發送和檢測功能。#include <csl.h>#include <csl_chip.h>#include <csl_i2c.h>#include <csl_pll.h>#include <csl_mcbsp.h>#include <csl_emif.h>#include <csl_emifBhal.h>#include <stdio.h>#include

溫馨提示

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

評論

0/150

提交評論