DSP課程設(shè)計(jì) 音頻信號(hào)頻譜分析
《DSP課程設(shè)計(jì) 音頻信號(hào)頻譜分析》由會(huì)員分享,可在線閱讀,更多相關(guān)《DSP課程設(shè)計(jì) 音頻信號(hào)頻譜分析(35頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 CHANGSHA UNIVERSITY OF SCIENCE & TECHNOLOGY DSP課程設(shè)計(jì) 題目: DSP ——音頻信號(hào)頻譜分析 學(xué)生姓名: 翦杰 學(xué) 號(hào): 200757170119 班 級(jí): 07-01 專 業(yè): 電子信息工程 指導(dǎo)教師: 黃亞飛、肖鴻 實(shí)習(xí)起止時(shí)間: 2010年12月27日至2011年1月7日 1 / 35 題目 DSP —音頻信號(hào)頻譜分析 學(xué)生
2、姓名: 翦杰 學(xué) 號(hào): 200757170119 班 級(jí): 電子信息工程07-01 所在院(系): 電氣與信息工程 指導(dǎo)教師: 肖鴻、黃亞飛 完成日期: 2011年1月7日 音頻信號(hào)頻譜分析 摘要 隨著信息技術(shù)革命的深入和計(jì)算機(jī)技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)已經(jīng)逐漸發(fā)展成為一門(mén)關(guān)鍵的技術(shù)學(xué)科。而DSP芯片的出現(xiàn)則為數(shù)字信號(hào)處理算法的實(shí)現(xiàn)提供了可能。這一方面極大地促進(jìn)了數(shù)字信號(hào)處理技術(shù)的進(jìn)一步發(fā)展;另一方面,它也
3、使數(shù)字信號(hào)處理的應(yīng)用領(lǐng)域得到了極大的拓展。在國(guó)外DSP芯片已經(jīng)被廣泛地應(yīng)用于當(dāng)今技術(shù)革命的各個(gè)領(lǐng)域;在我國(guó),DSP技術(shù)也正以極快的速度被應(yīng)用到科技和國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域。本次課程設(shè)計(jì)介紹了音頻信號(hào)頻譜分析的原理以及其所涉及的硬件結(jié)構(gòu)和軟件設(shè)計(jì),該設(shè)計(jì)是基于快速傅立葉變換(FFT)的方法對(duì)采集的音頻信號(hào)進(jìn)行頻譜分析,得到音頻信號(hào)的頻率及功率,F(xiàn)FT算法采用TLC320AD50編寫(xiě)DSP程序?qū)崿F(xiàn)。現(xiàn)可以完成256點(diǎn)的FFT運(yùn)算,頻率分辨率達(dá)到100Hz,輸入信號(hào)電壓(峰峰值)可以達(dá)到100mV到4V。 關(guān)鍵詞:音頻信號(hào);快速傅立葉變換;頻譜分析;分辨率
4、 目 錄 1 緒論……………………………………………….………………………………………..1 1.1 課題背景........................................................................................................................1 1.2 課題目的.....................................................................................................
5、...................1 2 硬件電路............................................................................................ ..... ..... ......................3 2.1 系統(tǒng)框圖......................................................................................... ..............................3 2.2 信號(hào)處理部分
6、..................................................................................................... ..........3 2.2.1 信號(hào)疊加電路.................................................................................. ......... ........3 2.2.2 低通濾波器.......................................................
7、.................................. ...............3 2.2.3 50Hz陷波電路......................................................................... ...........................4 2.2.4 電平轉(zhuǎn)換電路... ......... ............................................... .......................... ............4
8、2.2.5 信號(hào)采集部分............ ........................................................................ ...............4 2.3 時(shí)鐘信號(hào)產(chǎn)生電路.. ... .......................................... ................................. ..................13 3 軟件設(shè)計(jì)...........................................................
9、... ..... .... ...................................... ............14 3.1 DSP初始化................................................................... ... ..........................................14 3.2 AD50初始化...................................................................................... . ..
10、.....................14 3.3 設(shè)置DSP中斷..... ... ................................................................................... ...............14 3.4 數(shù)據(jù)存儲(chǔ)... .... ... ................................................ ....................................... ...... .........14 3.5 數(shù)據(jù)輸出.... .... ...
11、 ..................................................... ......................................... ........14 3.6 FFT算法... .... ... ............................................................ ................................... .........14 4 總結(jié) ................................................
12、................................................. ...................................17 參考文獻(xiàn)................................................................................... ...............................................19 附錄…………………………………………………………......…………….……... ………20 1 緒論
13、 1.1 課題背景 目前,在微電子技術(shù)發(fā)展的帶動(dòng)下,DSP芯片的發(fā)展日新月異,DSP的功能日益強(qiáng)大,性能價(jià)格比不斷上升,開(kāi)發(fā)手段不斷改進(jìn)。DSP芯片已經(jīng)完全走下了“貴族”的圣壇。DSP芯片已經(jīng)在通信與電子系統(tǒng)、信號(hào)處理系統(tǒng)、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器、電力系統(tǒng)等許多領(lǐng)域中得到了廣泛的應(yīng)用,而且新的應(yīng)用領(lǐng)域在不斷地被發(fā)掘。 TI、AD、AT&T、Motorola和Lucent等公司是DSP芯片的主要生產(chǎn)商。其中TI公司的TMS320系列的DSP占據(jù)了全球DSP市場(chǎng)的50%左右。該系列產(chǎn)品在我國(guó)同樣被用戶廣泛使用,市場(chǎng)份額更高,超過(guò)90%。 鑒于多數(shù)DSP芯片和高速A/D
14、、D/A芯片工藝為貼片封裝,對(duì)一般用戶來(lái)說(shuō)工廠制版成本較高、手工工藝難制版、效果差等的困難,本系統(tǒng)設(shè)計(jì)了一套基于DSP芯片的最小系統(tǒng)板,并擴(kuò)展了A/D、D/A實(shí)現(xiàn)語(yǔ)音信號(hào)的采集和回放,制作語(yǔ)音處理平臺(tái)。設(shè)計(jì)的核心芯片采用TI公司的TMS320VC5402PGE100進(jìn)行設(shè)計(jì),其最高處理速度能達(dá)到100MIPS(每秒執(zhí)行100百萬(wàn)條指令),性能優(yōu)越、性價(jià)比高,適合大多數(shù)用戶和教學(xué)科研。 基于DSP的運(yùn)用領(lǐng)域和前景,結(jié)合我的專業(yè)跟個(gè)人愛(ài)好,本次畢業(yè)設(shè)計(jì)所選課題為DSP語(yǔ)音采集回放處理平臺(tái)。以TMS320C5402DSP為核心,對(duì)外部語(yǔ)音信號(hào)進(jìn)行采集,并對(duì)所采集信號(hào)進(jìn)行語(yǔ)音處理,最后通過(guò)外
15、部設(shè)備回放。該系統(tǒng)適合對(duì)單語(yǔ)音信號(hào)進(jìn)行處理。由于設(shè)計(jì)過(guò)程中采用的A/D、D/A芯片是TI公司的TLC320AD50,所以最高采樣速率為22.05KHZ。為了驗(yàn)證本次設(shè)計(jì)的正確性和可用性,對(duì)采集的語(yǔ)音信號(hào)進(jìn)行FIR濾波,濾除50HZ交流信號(hào),并抑制頻率在3600HZ以上的語(yǔ)音信號(hào)。所設(shè)計(jì)的濾波器是帶通濾波器,通帶為200HZ—3400HZ,經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,得到了預(yù)期的濾波效果。證明本次單通道語(yǔ)音信號(hào)處理平臺(tái)設(shè)計(jì)的正確性,可用性。 1.2 課題目的 DSP課程設(shè)計(jì)是對(duì)《數(shù)字信號(hào)處理》、《DSP原理及應(yīng)用》等課程的較全面練習(xí)和訓(xùn)練,是實(shí)踐教學(xué)中的一個(gè)重要環(huán)節(jié)。 通過(guò)本次課程設(shè)計(jì),綜合運(yùn)用數(shù)字信號(hào)
16、處理、DSP技術(shù)課程以及其他有關(guān)先修課程的理論和生產(chǎn)實(shí)際知識(shí)去分析和解決具體問(wèn)題,并使所學(xué)知識(shí)得到進(jìn)一步鞏固、深化和發(fā)展。初步培養(yǎng)學(xué)生對(duì)工程設(shè)計(jì)的獨(dú)立工作能力,掌握電子系統(tǒng)設(shè)計(jì)的一般方法。通過(guò)課程設(shè)計(jì)完成基本技能的訓(xùn)練,如查閱設(shè)計(jì)資料和手冊(cè)、程序的設(shè)計(jì)、調(diào)試等,提高學(xué)生分析問(wèn)題、解決問(wèn)題的能力。 本題目通過(guò)TLC320AD50采集音頻信號(hào)(f.max<10kHz),編寫(xiě)DSP的FFT處理程序(自定頻譜分辨力),獲得幅頻特性之后,在點(diǎn)陣液晶(128*64)中大致顯示出幅頻圖。并在液晶中用文字顯示頻率幅值前三的頻率值。 1、DSP與TLC320AD50接口電路的原理圖繪制; 2、DSP控制
17、TLC320AD50的程序編寫(xiě)與調(diào)試; 3、TLC320AD50進(jìn)行語(yǔ)音模擬量到數(shù)字信號(hào)的轉(zhuǎn)換,實(shí)現(xiàn)聲音的采集,在CCS軟件中分析信號(hào)的幅頻特性; 4、編寫(xiě)DSP的FFT處理程序; 5、控制點(diǎn)陣液晶,實(shí)現(xiàn)繪圖功能,將幅頻圖顯示出來(lái); 6、按要求編寫(xiě)課程設(shè)計(jì)報(bào)告書(shū),正確、完整的闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果; 7、在報(bào)告中繪制程序的流程圖,并文字說(shuō)明。 2 硬件電路 2.1 系統(tǒng)框圖 本系統(tǒng)的硬件電路主要由信號(hào)預(yù)處理模塊、信號(hào)采集模塊、信號(hào)頻譜分析模塊、時(shí)鐘觸發(fā)信號(hào)、系統(tǒng)控制模塊和鍵盤(pán)顯示模塊6部分組成。
18、系統(tǒng)組成框圖如圖2.1所示。 圖2.1 系統(tǒng)組成框圖 2.2 信號(hào)處理部分 信號(hào)預(yù)處理具體電路主要由信號(hào)合成、阻抗匹配、0.5f的低通濾波、50H的陷波器和信號(hào)抬高等部分組成,如圖2.2所示。 圖2.2 信號(hào)處理框圖 2.2.1 信號(hào)疊加電路 信號(hào)疊加電路采用反向求和電路,將3信號(hào)求和的輸出,運(yùn)放采用OP37。 2.2.2 低通濾波器 由于要求音頻信號(hào)為10KHz以下,為了使信號(hào)得到更高的純度,則需對(duì)不用的高頻信號(hào)進(jìn)行濾出,從而提高系統(tǒng)測(cè)量精度。通過(guò)
19、濾波器的快速設(shè)計(jì)方法設(shè)計(jì)出12KHz的低通濾波器。 2.2.3 50Hz陷波電路 在音頻信號(hào)中,工頻50HZ信號(hào)對(duì)系統(tǒng)的影響最大,因此,在信號(hào)處理中加入50HZ的陷波電路。計(jì)算工公式為:f=1/2πRC。 2.2.4 電平轉(zhuǎn)換電路 由于ADC只能采集正電壓,則需對(duì)信號(hào)進(jìn)行抬高,分析計(jì)算得電路需加3V的直流電平。 2.2.5 信號(hào)采集部分 語(yǔ)音信號(hào)模數(shù)/數(shù)模轉(zhuǎn)換選擇TLC320AD50(以下簡(jiǎn)稱AD50)芯片,AD50使用過(guò)采樣(over sampling)∑—Δ技術(shù)提供從數(shù)字信號(hào)到模擬信號(hào)(DA)和模擬信號(hào)到數(shù)字信號(hào)(AD)的高分辨率低速信號(hào)轉(zhuǎn)換。該器件包括兩個(gè)串行的同步轉(zhuǎn)換通道(
20、用于各自的數(shù)據(jù)傳輸),在DA之前有一個(gè)插人濾波器(interpolationfilter),在AD之后有一個(gè)抽取濾波器(decimdtionfilter),由此可降低AD50自身的噪聲。此外,AD50還具有片內(nèi)時(shí)序和控制功能。 AD50特點(diǎn)如下。 輸入信號(hào)。單端信號(hào)輸人,幅度在1~4V之間。 輸出信號(hào)。單端信號(hào)輸出,幅度在1~4V之間。 單一 5V電源供電,也可以使用5V模擬電源和3V數(shù)字電源同時(shí)供電。 最大工作功耗為100mW。 通用16位數(shù)據(jù)格式,也可以采用2的補(bǔ)碼數(shù)據(jù)格式。 內(nèi)部基準(zhǔn)電壓。 AD為64倍采樣,DA為25
21、6倍采樣。 支持各種V.34協(xié)議的采樣速率。 具有多種可選的采樣頻率。 支持商業(yè)級(jí)音響應(yīng)用。 工作溫度范圍從-40~850。 AD50的引腳分布如圖2.3所示((1)為DW封裝的引腳分布,(2)為PT封裝的引腳分布)。 圖2.3 AD50的引腳分布 AD50的各個(gè)引腳的說(shuō)明如表2-1所示。 表2-1 AD50的引腳說(shuō)明 續(xù)表 在AD50正常工作前,必須對(duì)它進(jìn)行正確的初始化。初始化操作的主要工作是配置AD50的4個(gè)控制寄存器CR1、CR2、CR3和CR4??刂萍拇嫫鞯淖x寫(xiě)是通過(guò)二次通信來(lái)實(shí)現(xiàn)。在二次通信
22、中,D0~D7為寫(xiě)人控制寄存器的數(shù)據(jù)或者從控制寄存器讀出的數(shù)據(jù),D8~D12的內(nèi)容決定選擇哪個(gè)控制寄存器,D13位決定是讀操作還是寫(xiě)操作。由D8~D13位確定的所有情況如表2-2所示。 表2-2AD50的D8~D13位確定的所有操作情況 控制寄存器1中各個(gè)控制位的功能說(shuō)明如表2-3所示。 表2-3控制寄存器1的各個(gè)控制位的功能說(shuō)明 控制寄存器2中各個(gè)控制位的功能說(shuō)明如表2-4所示。 表2-4 控制寄存器2的各個(gè)控制位的功能說(shuō)明 控制寄存器3中各個(gè)控制位的功能說(shuō)明如表2-5所示。 表2-5 控制寄存器3的各個(gè)控制位的功能說(shuō)明
23、 控制寄存器4中各個(gè)控制位的功能說(shuō)明如表2-6、2-7所示。 表2-6 控制寄存器4的各個(gè)控制位的功能說(shuō)明 表2-7 控制寄存器4的第4~第6位對(duì)應(yīng)的N值 AD50控制寄存器的設(shè)置必須在二次通信中完成。AD50有硬件和軟件兩種方式啟動(dòng)二次通信,下面介紹硬仵方式啟動(dòng)AD50的二次通信過(guò)程。硬件啟動(dòng)過(guò)程如下:C5409通過(guò)其內(nèi)部寄存器將XF引腳變?yōu)楦唠娖?,從而控制AD50的FC引腳到高電平,然后向緩沖串口寫(xiě)一個(gè)16位的控制字,低8位是AD50的控制寄存器初始化值,高8位選擇所要初始化的控制寄存器及操作。整個(gè)過(guò)程的時(shí)序如圖2.4所示。 圖2.4 硬件啟動(dòng)A
24、D50二次通信時(shí)序 AD50的工作過(guò)程可分為AD通道工作過(guò)程和DA通道工作過(guò)程。AD通道把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并以2進(jìn)制補(bǔ)碼形式表示。當(dāng)幀同步信號(hào)有效時(shí)(FS為低電平),16位(或者15位)數(shù)字信號(hào)在SCLK的上升沿輸出到DOUT引腳,一位數(shù)據(jù)對(duì)應(yīng)一個(gè)SCLK周期。傳輸時(shí)序如圖2.5所示。 圖2.5 AD50的AD通道數(shù)據(jù)傳輸時(shí)序 AD50的DA通道把送人的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)。在SCLK的作用下,數(shù)字信號(hào)通過(guò)DIN引腳進(jìn)人DA通道,每個(gè)SCLK的下降沿輸人一位數(shù)字信號(hào)。DA將輸入的數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào)輸出,DA通道的傳輸時(shí)序如圖2.6所示。 圖
25、2.6 AD50的DA通道數(shù)據(jù)傳輸時(shí)序 AD50的前后端信號(hào)處理包括兩個(gè)處理電路:輸人模擬信號(hào)的處理電路和依據(jù)輸出模擬信號(hào)的處理電路。這兩個(gè)處理電路的主要作用是將信號(hào)進(jìn)行處理,使之更加適合AD和DA的要求。 為了達(dá)到更好的信號(hào)處理效果,AD50的模擬信號(hào)輸人一般采用差分輸人方式,即使用兩個(gè)運(yùn)算放大器,將單端輸入信號(hào)轉(zhuǎn)換成差分輸人信號(hào),電路連接如圖2.7所示。 圖2.7 AD50單端信號(hào)轉(zhuǎn)換成差分信號(hào) 由圖可知,單端輸人信號(hào)經(jīng)過(guò)兩個(gè)22μF的隔直電容,送人運(yùn)算放大器的反相端,輸出反相信號(hào)IMP;IMP再輸人到另一個(gè)信號(hào)的反相端,輸出同相信號(hào)INP,從而形成差分輸人
26、信號(hào)INP和IMP。圖中的運(yùn)算放大器選擇的是TI公司的TLC4502,也可以選用其他可替代的運(yùn)算放大器芯片。 除了使用上述的運(yùn)算放大器外,也可以使用變壓器將單端信號(hào)轉(zhuǎn)換成差分信號(hào)輸人到AD50,如圖2.8所示。 圖2.8 使用變壓器將單端信號(hào)轉(zhuǎn)換成差分信號(hào) 圖中推薦的值為50Ω,Rin為22Ω,Cin為10μF,這些元件的值也可以根據(jù)具體的信號(hào)進(jìn)行調(diào)整,一般清況下電阻值在10~100Ω之間,電容值在10~200pF之間。 AD50的DA輸出為差分信號(hào),可以直接驅(qū)動(dòng)600Ω的負(fù)載。DA輸出處理電路如圖2.9所示。 圖2.9 AD50的DA后端輸出信號(hào)
27、處理 AD50的去耦合電容的連接如圖2.10所示。 圖2.10 AD50的去耦合電容的連接 AD50的模擬電源和數(shù)字電源可以使用一個(gè)電感連接在一起,連接方法如圖2.11所示。 圖2.11 AD50模擬和數(shù)字電源的連接 2.3 時(shí)鐘信號(hào)產(chǎn)生電路 通過(guò)計(jì)算,對(duì)模擬信號(hào)的采樣速率為25.6KHz,則需產(chǎn)生25.6KHZR的方波.作為A/D轉(zhuǎn)換數(shù)據(jù)的速率??刹捎脝纹呻娐泛瘮?shù)發(fā)生器ICL8038。ICL8038工作頻率范圍在幾Hz到幾百KHZ之間,可以同時(shí)輸出三角波、方波和正統(tǒng)波,滿足設(shè)計(jì)要求。
28、 3 軟件設(shè)計(jì) 3.1 DSP的初始化 包括定時(shí)器0的初始化,以確保TOUT0引腳能輸出正確的時(shí)鐘信號(hào)到AD50,使AD50能根據(jù)該時(shí)鐘信號(hào)進(jìn)行采樣。初始化緩沖串口時(shí),應(yīng)使DSP工作于主設(shè)備方式,CLKR0和FSX0引腳設(shè)為輸出。DSP初始化完成后,在DSP的TOUT0,CLKR0,F(xiàn)SX0這3個(gè)引腳可以看到連續(xù)輸出的脈沖。 3.2 AD50的初始化 此時(shí)主要是設(shè)置DSP的XF引腳輸出為高,以啟動(dòng)AD50的二次通信,在正確設(shè)置AD50的4個(gè)控制寄存器以后,AD50開(kāi)始采樣數(shù)據(jù)。此時(shí)檢測(cè)AD50的DOUT引腳能,能發(fā)現(xiàn)引腳有連續(xù)的信號(hào)輸出。 3.3 設(shè)置
29、DSP中斷 DSP的中斷負(fù)責(zé)從緩沖串口讀取數(shù)據(jù),可以在CCS中查看讀取的數(shù)據(jù)是否正確,如果每次讀取的都是0或者同一個(gè)數(shù)據(jù),說(shuō)明AD50沒(méi)有正常工作,此時(shí)需檢查DSP或者AD50是否初始化成功。 3.4 數(shù)據(jù)存儲(chǔ) DSP從緩沖串口讀取數(shù)據(jù)存放到RAM,連續(xù)存放500或者1000個(gè)數(shù)據(jù),可以通過(guò)CCS的畫(huà)圖功能看到采集到的數(shù)據(jù)。這時(shí)主要判斷采樣頻率是否正確、有沒(méi)有數(shù)據(jù)丟失等。 3.5 數(shù)據(jù)輸出 將RAM中的數(shù)據(jù)直接送到AD50的D/A單元,轉(zhuǎn)換成模擬信號(hào)后輸出。這時(shí)從AD50的模擬信號(hào)輸出端可以看到和輸入端一樣的信號(hào)。 3.6 FFT算法 本系統(tǒng)軟件設(shè)計(jì)主要實(shí)現(xiàn)FFT算法和各頻率和
30、對(duì)應(yīng)功率的分析和顯示,由于DSP語(yǔ)言表達(dá)和運(yùn)算能力比較強(qiáng)且具有很好的可移植性和硬件控制能力,則采用DSP語(yǔ)言實(shí)現(xiàn)??傮w程序流程圖如圖3.1所示。 圖3.1 總體程序流程圖 本設(shè)計(jì)中FFT根據(jù)DFT的基二分解方法,在第L(L表示從左到右的運(yùn)算級(jí)數(shù),L=1,2,3…M)級(jí)中,每個(gè)蝶形的兩個(gè)輸入數(shù)據(jù)相距B(L-1)個(gè)點(diǎn),同一旋轉(zhuǎn)因子對(duì)應(yīng)著間隔為2L點(diǎn)的2(M-L)個(gè)蝶形。從輸入端開(kāi)始,逐級(jí)進(jìn)行,在進(jìn)行L級(jí)運(yùn)算時(shí),依次求出2(L-1)不同的旋轉(zhuǎn)因子,每求出一個(gè)旋轉(zhuǎn)因子,就計(jì)算完它對(duì)應(yīng)的所有的2(M-L)個(gè)蝶形。因此用三重循環(huán)程序?qū)崿F(xiàn)FFT變換。同時(shí)采用原址計(jì)算,可節(jié)省
31、大量的存儲(chǔ)單元。FFT算法的程序框圖如圖3.2所示。 圖3.2 FFT算法的程序框圖 系統(tǒng)用于實(shí)現(xiàn)語(yǔ)音信號(hào)的采集和播放,收到數(shù)據(jù)后,AD50對(duì)數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換,變成數(shù)字語(yǔ)音信號(hào)后存儲(chǔ)于內(nèi)部RAM,然后輸出到AD50,AD50進(jìn)行數(shù)模轉(zhuǎn)換后輸出到相應(yīng)的后端處理電路,最后由后端電路將輸入的語(yǔ)音信號(hào)顯示。 4 總結(jié) 在這次課程設(shè)計(jì)中,我遇到了許多問(wèn)題,這些問(wèn)題是我們初學(xué)者經(jīng)常會(huì)遇到的問(wèn)題。通過(guò)老師的指導(dǎo),和自己的思考,總結(jié)如下: 問(wèn)題1:?jiǎn)尾娇梢赃\(yùn)行,連續(xù)運(yùn)行時(shí)總回0地址。 解決
32、辦法:Watchdog沒(méi)有關(guān),連續(xù)運(yùn)行復(fù)位DSP回到0地址。 問(wèn)題2:OUT文件不能load到片內(nèi)flash中。 解決辦法:Flash不是RAM,不能用簡(jiǎn)單的寫(xiě)指令寫(xiě)入,需要專門(mén)的程序?qū)懭?。CCS和CSourceDebugger中的load命令,不能對(duì)flash寫(xiě)入。OUT文件只能load到片內(nèi)RAM,或片外RAM中。 問(wèn)題3:在flash中如何加入斷點(diǎn)解決辦法:在flash中可以用單步調(diào)試,也可以用硬件斷點(diǎn)的方法在flash中加入斷點(diǎn),軟件斷點(diǎn)是不能加在ROM中的。硬件斷點(diǎn),設(shè)置存儲(chǔ)器的地址,當(dāng)訪問(wèn)該地址時(shí)產(chǎn)生中斷。 問(wèn)題4:中斷向量 解決辦法:C2000的中斷向量不可重定位,因此
33、中斷向量必須放在0地址開(kāi)始的flash內(nèi)。在調(diào)試系統(tǒng)時(shí),代碼放在RAM中,中斷向量也必須放在flash內(nèi)。 問(wèn)題5:DSP初始化 解決辦法:DSP在RESET后,許多的寄存器的初值一般同用戶的要求不一致,例如:等待寄存器,SP,中斷定位寄存器等,需要通過(guò)初始化程序設(shè)置為用戶要求的數(shù)值。初始化程序的主要作用:1)設(shè)置寄存器初值。2)建立中斷向量表。3)外圍部件初始化。 GEL文件的功能: GEL文件的功能同emuinit.cmd的功能基本相同,用于初始化DSP。但它的功能比emuinit的功能有所增強(qiáng),GEL在CCS下有一個(gè)菜單,可以根據(jù)DSP的對(duì)象不同,設(shè)置不同的初始化程序。以TMS3
34、20LF2407為例: #defineSCSR10x7018;定義scsr1寄存器 #defineSCSR20X7019;定義scsr2寄存器 #defineWDKEY0x7025;定義wdkey寄存器 #defineWDNTR0x7029;定義wdntr寄存器 StartUp();開(kāi)始函數(shù) { GEL_MapReset();;存儲(chǔ)空間復(fù)位GEL_MapAdd(0x0000,0,0x7fff,1,1);定義程序空間從0000-7fff可讀寫(xiě) GEL_MapAdd(0x8000,0,0x7000,1,1);定義程序空間從8000-f000可讀寫(xiě) GEL_MapAdd(0
35、x0000,1,0x10000,1,1);定義數(shù)據(jù)空間從0000-10000可讀寫(xiě) GEL_MapAdd(0xffff,2,1,1,1);定義i/o空間0xffff可讀寫(xiě) GEL_MapOn();存儲(chǔ)空間打開(kāi) GEL_MemoryFill(0xffff,2,1,0x40);在i/o空間添入數(shù)值40h *(int*)SCSR1=0x0200;給scsr1寄存器賦值 *(int*)SCSR2=0x000C;給scsr2寄存器賦值,在這里可以進(jìn)行mp/mc方式的轉(zhuǎn)換 *(int*)WDNTR=0x006f;給wdntr寄存器賦值 *(int*)WDKEY=0x055;給wdkey寄存器
36、賦值 *(int*)WDKEY=0x0AA;給wdkey寄存器賦值 cmd文件: 由3部分組成: 1)輸入/輸出定義:.obj文件:鏈接器要鏈接的目標(biāo)文件;.lib文件:鏈接器要鏈接的庫(kù)文件;.map文件:鏈接器生成的交叉索引文件;.out文件:鏈接器生成的可執(zhí)行代碼;鏈接器選項(xiàng)。 2)MEMORY命令:描述系統(tǒng)實(shí)際的硬件資源。 3)SECTIONS命令:描述"段"如何定位。 通過(guò)近兩周的課程設(shè)計(jì),我學(xué)到了許多知識(shí),使我實(shí)現(xiàn)了從茫然到基本的認(rèn)識(shí)到比較熟練的運(yùn)用DSP的轉(zhuǎn)變。剛開(kāi)始自己編的程序運(yùn)行就錯(cuò)誤很多,當(dāng)時(shí)都沒(méi)信心能把這個(gè)課程設(shè)計(jì)完成,但什么都要自己面對(duì)的。后來(lái)在老師的指導(dǎo)和
37、自己的思考下,我把程序統(tǒng)統(tǒng)都重新寫(xiě)了一遍,并反復(fù)修改,最后通過(guò)編譯。在后面的時(shí)間里,我順利完成了課程設(shè)計(jì)。 參考文獻(xiàn) [1] 鄒彥. DSP原理及應(yīng)用[M]. 北京:電子工業(yè)出版社,2005,1. [2] 戴明楨.TMS320C54xDSP結(jié)構(gòu)、原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2001,8. [3] 胡圣堯. DSP原理及應(yīng)用[M].東南大學(xué)出版社,2008.7. [4] 清源科技.TMS320C54xDSP應(yīng)用程序設(shè)計(jì)教程[M].機(jī)械工業(yè)出版社,2004,1. [5] 清源科技.TMS320C54x硬件開(kāi)發(fā)教程[M].機(jī)械工業(yè)出版社,2003
38、,1. 附錄A音頻信號(hào)頻譜分析完整程序 ex12.asm ************************************************ * FileName: ex12.asm * * Description: 音頻信號(hào)頻譜分析實(shí)驗(yàn) * * Copyright(C) SanZhi Electronic, Author Zpin * *******************
39、***************************** .title "ex12" BSP .set 1 ;當(dāng)前使用McBsp1 ;McBsp 內(nèi)存映射寄存器 SPSA0 .set 038h SPSD0 .set 039h DRR10 .set 021h DRR20 .set 020h DXR10 .set 023h DXR20 .set 022h SPSA1 .set 048h SPSD1 .set 049h DRR11 .set 041h DRR21
40、.set 040h DXR11 .set 043h DXR21 .set 042h ;McBsp Subaddressed Registers SPCR1 .set 00h SPCR2 .set 01h RCR1 .set 02h RCR2 .set 03h XCR1 .set 04h XCR2 .set 05h SRGR1 .set 06h SRGR2 .set 07h MCR1 .set 08h MCR2 .set 09h RCERA .set 0ah RCERB .set 0bh XCERA
41、 .set 0ch XCERB .set 0dh PCR .set 0eh .if BSP = 0 SPSA .set SPSA0 SPSD .set SPSD0 RDRR .set DRR10 RDXR .set DXR10 .endif .if BSP = 1 SPSA .set SPSA1 SPSD .set SPSD1 RDRR .set DRR11 RDXR .set DXR11 .endif WR_SUB_REG .macro val,addr ;寫(xiě)McBsp控制寄存器 stm addr,SP
42、SA nop stm val,SPSD nop .endm RD_SUB_REG .macro addr,acc ;讀McBsp控制寄存器 stm #:addr:,SPSA nop ldm SPSD,acc nop nop nop .endm WAITTRX .macro ;等待串口中斷 WAITR? RD_SUB_REG SPCR1,A and #1<<1, A bc WAITR?, AEQ
43、 .endm PROGREG .macro progword ;與AD50二次通訊 stm #01h,RDXR WAITTRX stm #:progword:,RDXR WAITTRX .endm wait .macro STM #0008h, AR0 RPT *AR0 NOP .endm .mmregs .global _c_int00 .sect ".v
44、ectors" RESET bd _c_int00 stm #2000h,SP .space 19*4*16 BRINT0 b recv nop nop BXINT0 b trans nop nop .space 4*4*16 BRINT1 b recv nop nop BXINT1 b trans nop nop .space 4*4*16 .text _c_int00 ld #0h,DP stm #2000h,SP ssbx INTM ssbx SXM
45、 st #2491h,SWWSR st #0ffe0h,PMST st #0f007h,CLKMD stm #4000h,AR1 stm #4000h,AR2 mcbsp_init ;初始化McBsp串口 rsbx CPL nop ; cpl latency nop ; cpl latency nop ; cpl lat
46、ency ld #0, DP ssbx INTM ssbx SXM WR_SUB_REG #0000H,SPCR1 WR_SUB_REG #0200H,SPCR2 WR_SUB_REG #000CH,PCR WR_SUB_REG #0000H,SPCR1 WR_SUB_REG #0000H,SPCR2 WR_SUB_REG #0040H,RCR1 ;16 BITs WR_SUB_REG #0004H,RCR2 ;Ignore FS after the
47、first WR_SUB_REG #0040H,XCR1 ;16 BITs WR_SUB_REG #0004H,XCR2 ;Ignore FS after the first ld 100,A wait andm #0ff3fh, 54h ;set interrupts to come from serial ports not DMA ;by clearing bits 6 and 7 in DMPREC stm #0,RDXR WR_SUB_REG #0001H,SPCR1 ;啟動(dòng)McBsp串口
48、 WR_SUB_REG #0201H,SPCR2 ld 100,A wait aic_init stm #0h,IMR orm #0c00h,IMR stm #0ffffh,IFR PROGREG 0000001100000001b ;76543210 PROGREG 0000010000010000b ;76543210 ;PROGREG 0104H ;二次通訊初始化AD50 ;PROGREG 0280H ;PROGREG 0301h
49、 ;PROGREG 045Ah ld RDRR,A ld RDRR,A stlm A,RDXR stlm A,RDXR rsbx INTM nop nop nop js nop nop nop b js recv ldm RDRR,A ;讀取ADC采樣數(shù)據(jù) ld #0d000h,b sub ar1,b bc record,beq ;判斷錄音是否結(jié)束 ;ld a,b ;ld #0,a stl a,*ar1+ ;未結(jié)束->錄音 ;ld b
50、,a b play ;已結(jié)束->放音 record ld #0d000h,b sub ar2,b bc load,bneq ;錄制數(shù)據(jù)放完,再?gòu)念^放起 stm #4000h,ar2 load ld *ar2+,a ;加載錄制數(shù)據(jù) play and #0fffeh,a ;放音 stlm A,RDXR rete trans rsbx XF rete .end EX12.MAK /************* Code Composer V1 Project Data ***
51、***************** The following section contains data generated by Code Composer to store project information like build options, source filenames and dependencies. [command filename] experi.cmd 1 [Project Root] D:\dsp_user_soft\sanzhi\12語(yǔ)音錄放 [build options] 3 Linker = "-o ex1.
52、out -x " Assembler = "-s " Compiler = "-g -as -frD:\dsp_user_soft\sanzhi\ " [source files] ex12.asm 880946490 1 -18158 [dependencies] 0 -802 [version] 2.0 */ -o ex1.out -x "ex12.obj" "experi.cmd" /******** End of Project Data Generated by Code Composer ********/ Exx.ASM BS
53、P .set 0 ; 5409 DSK audio in/out codec uses McBSP0 SAMPLERATE .set 8 .mmregs SPCR1_VAL .set 0000h SPCR2_VAL .set 0200h RCR1_VAL .set 040h RCR2_VAL .set 004h XCR1_VAL .set 040h XCR2_VAL .se
54、t 004h PCR_VAL .set 0Ch MCBSP0_TO_CODEC0 .set 0xFE MCBSP1_TO_CODEC1 .set 0xFD CODEC1_FC_ON .set 0x8 CODEC0_FC_ON .set 0x4 CPLD_CTRL2 .set 0x4 * McBSP Memory Mapped Registers SPSA0 .set 038h SPSD0 .set 039h DRR10 .set 021h DXR10
55、 .set 023h SPSA1 .set 048h SPSD1 .set 049h DRR11 .set 041h DXR11 .set 043h * McBSP Subaddresed Registers SPCR1 .set 00h SPCR2 .set 01h RCR1 .set 02h RCR2 .set 03h XCR1
56、 .set 04h XCR2 .set 05h SRGR1 .set 06h SRGR2 .set 07h PCR .set 0Eh ;; Choose appropriate sub-address registers and DRR/DXR .if BSP = 0 SPSA .set SPSA0 SPSD .set SPSD0 RDRR .set 21H ; McBSP0
57、 data receive register 1 RDXR .set 23H ; McBSP0 data transmit register 1 MCBSP_TO_CODEC .set MCBSP0_TO_CODEC0 IMASK .set (1 << 4) .endif WR_MCBSP_SUB_REG .macro addr,val stm addr,SPSA nop
58、 stm val,SPSD nop .endm RD_MCBSP_SUB_REG .macro addr,acc stm #:addr:,SPSA nop ldm SPSD,acc nop
59、 nop nop .endm WAITTRX .macro ; Wait for serial port to Rx word WAITR? RD_MCBSP_SUB_REG SPCR1,A and #1<<1, A bc WAITR?, AEQ .endm PROGREG .macro progword stm #0
60、1h,RDXR WAITTRX stm #:progword:,RDXR WAITTRX .endm wait .macro STM #0008h, AR0 ;AR0 points to ACCL RPT *AR0 ;repeat the # of times specified in ACCL NOP ;do nothing in the delay loop .endm .global R
61、ESET,AIC_INIT,WAIT_INT,_CPU_to_codec_ch1,READ_SAMPLES .text .mmregs .def _main p0_serialflag .set 060h p0_serialint .set 061h SYSTEM_STACK .set 04000h .text _main ld #0, DP ssbx INTM ssbx SXM st #0, p
62、0_serialint st #2491h, SWWSR ;2 wait except for on-chip data st #0ffe0h, PMST ; MP/MC = 1, IPTR = 1ff st #0f007h,clkmd st #1, p0_serialflag ;************************************************************************* ;* audio_init: ;**************************
63、*********************************************** _DSS_init rsbx CPL nop ; cpl latency nop ; cpl latency nop ; cpl latency ld #0, DP ssbx INTM ssbx SXM WR_MCBSP_SUB_REG SPCR1,
64、 #SPCR1_VAL WR_MCBSP_SUB_REG SPCR2, #SPCR2_VAL WR_MCBSP_SUB_REG PCR, #PCR_VAL WR_MCBSP_SUB_REG SPCR1, #0h ; reset McBSP0 WR_MCBSP_SUB_REG SPCR2, #0h ;; write McBSP registers WR_MCBSP_SUB_REG RCR1, #RCR1_VAL WR_MCBSP
65、_SUB_REG RCR2, #RCR2_VAL WR_MCBSP_SUB_REG XCR1, #XCR1_VAL WR_MCBSP_SUB_REG XCR2, #XCR2_VAL LD #100 ,A WAIT ;; set interrupts to come from serial ports not DMA ;; by clearing bits 6 and 7 in DMPREC andm #0ff3fh, 54h
66、 ;; clear xmit register -- why? stm #0, RDXR ;; now enable McBSP transmit and receive WR_MCBSP_SUB_REG SPCR1,#SPCR1_VAL | 1 WR_MCBSP_SUB_REG SPCR2,#SPCR2_VAL | 1 LD #100 ,A WAIT _AIC_INIT STM #0, IMR orm #IMASK, IMR ;only receive-int is served. ; orm #08h, IMR stm #0ffffh, IFR
- 溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 精美實(shí)用框架完整的年終總結(jié)工作匯報(bào)新年計(jì)劃
- 英語(yǔ)滬教版小學(xué)六年級(jí)下冊(cè)Module4Unit12Thefivepeas優(yōu)質(zhì)課ppt課件
- 四年級(jí)上冊(cè)書(shū)法ppt課件-第14課-弓字旁-西泠印社版
- 腦卒中患者良肢位的擺放
- 九年級(jí)語(yǔ)文上學(xué)期期中測(cè)試(含第三單元)課件 語(yǔ)文版 (23)
- 第1講Java概覽
- 護(hù)理質(zhì)量匯報(bào)一季度
- 2020年鼠年公司年會(huì)PPT模板課件
- 六年級(jí)語(yǔ)文下冊(cè)《古詩(shī)詞背誦》課件-課件
- 二年級(jí)語(yǔ)文下冊(cè)《開(kāi)滿鮮花的小路》教學(xué)課件-部編版
- C語(yǔ)言課件二維數(shù)組
- 精神科病歷書(shū)寫(xiě)及存在問(wèn)題解答課件
- 銷(xiāo)售管家終端數(shù)據(jù)采集方案課件
- 無(wú)創(chuàng)呼吸機(jī)課件
- 安全使用食品添加劑-說(shuō)課課件