工程問題的DSP實(shí)現(xiàn)_第1頁
工程問題的DSP實(shí)現(xiàn)_第2頁
工程問題的DSP實(shí)現(xiàn)_第3頁
工程問題的DSP實(shí)現(xiàn)_第4頁
工程問題的DSP實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章工程問題的DSP實(shí)現(xiàn)〔一〕DTMF的編解碼用DSP實(shí)現(xiàn)雙音多頻〔DTMF〕的撥號(hào)產(chǎn)生和解碼。DTMFDual-ToneMultipleFrequency實(shí)現(xiàn)步驟對象分析算法設(shè)計(jì)DSP選擇系統(tǒng)設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)系統(tǒng)調(diào)試對象分析對所要開發(fā)的系統(tǒng)的功能、性能要有深化的了解和分析,尤其對技術(shù)目的,要作透徹的了解和把握。DTMF用一對頻率〔行頻/列頻〕來表示一個(gè)符號(hào)〔鍵盤上的0—9,A—D,*,#,共16個(gè)符號(hào)〕一次按鍵的時(shí)間是100ms,其中,頻率對存在的時(shí)間是45ms,不允許超越55ms,其他的時(shí)間是靜音。

CCITT關(guān)于DTMF的目的Lowband:697、770、852、941〔Hz〕 RBW<3.5% Highband:1209、1336、1477、1633〔Hz〕RBW<3.5% TWIST: STD>4dBREV>8dB DYNRANGE:>25dB GUARDTIME:MINTONETIME45msSNR: NOISE-24dBV 算法設(shè)計(jì)算法設(shè)計(jì)是非常關(guān)鍵的步驟,由于算法決議運(yùn)算量和存儲(chǔ)器的大小,從而決議DSP的選擇,進(jìn)而決議系統(tǒng)的設(shè)計(jì),包括硬件和軟件的設(shè)計(jì)。DTMF撥號(hào)的產(chǎn)生基于DSP的DTMF的音頻信號(hào)發(fā)生器,運(yùn)用兩個(gè)二階的數(shù)字正弦波振蕩器,一個(gè)產(chǎn)生行頻,一個(gè)產(chǎn)生列頻。

DTMF發(fā)生器的系數(shù)和初始條件DTMF發(fā)生器的信號(hào)流程音頻檢測Goertzel算法是DTMF解碼器的根底,實(shí)踐上是一個(gè)兩極點(diǎn)的IIR濾波器。DFT或FFT需求在處置之前預(yù)備好一個(gè)數(shù)據(jù)塊,而Goertzel算法是一個(gè)遞歸的構(gòu)造,就每個(gè)輸入的樣本進(jìn)展計(jì)算。Goertzel算法Goertzel算法的特點(diǎn)Goertzel算法的IIR濾波器構(gòu)造涉及兩個(gè)復(fù)共軛極點(diǎn),但對于實(shí)踐的DTMF音頻檢測,只需有幅度信息就夠了〔實(shí)踐上運(yùn)用幅度平方〕,從而簡化為只需求一個(gè)實(shí)系數(shù)參與計(jì)算。Goertzel算法要比FFT快得多,由于只需求提供8個(gè)行/列頻和它們的二次諧波的信息〔二次諧波的信息用于將DTMF與話音或音樂區(qū)別開來〕。行頻/列頻及相應(yīng)的系數(shù)有效性檢查信號(hào)強(qiáng)度DTMF行頻、列頻信號(hào)之和的強(qiáng)度能否到達(dá)一定的門限值有效性檢查扭曲度規(guī)范扭曲:行頻峰值>列頻峰值4dB反向扭曲:列頻峰值>行頻峰值8dB有效性檢查二次諧波強(qiáng)度以便將DTMF信號(hào)與其他語音信號(hào)、音樂信號(hào)等區(qū)別開來。有效性檢查數(shù)字信息的穩(wěn)定性假設(shè)一個(gè)數(shù)字勝利地檢測到兩次,以為該數(shù)字是穩(wěn)定的有效性檢查數(shù)字信息的有效性檢測到的數(shù)字前面必需是靜音符時(shí),該數(shù)字才是有效的,以便將各次擊鍵區(qū)別開來

編碼器對速度和存儲(chǔ)器的要求解碼器對速度和存儲(chǔ)器的要求DSP芯片選擇算法對DSP芯片計(jì)算速度的要求系統(tǒng)的管理〔如義務(wù)管理、進(jìn)程管理、存儲(chǔ)器管理、I/O管理等〕對DSP的要求片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器的要求〔包括容量的要求和速度的要求〕DSP芯片選擇對外設(shè)〔如串口、并口、定時(shí)器、總線寬度、等待形狀等〕的要求DSP封裝對印制板的設(shè)計(jì)影響甚大開發(fā)環(huán)境技術(shù)支持性能價(jià)錢比DSP芯片的速度DSP的片內(nèi)存儲(chǔ)器DSP的外設(shè)BGA〔BALLGRIDARRAY〕PLCC〔PLASTICJ-LEADEDCHIPCARRIER〕PQFP〔PLASTICQUADFLATPACK〕PDLP〔PLASTICDUAL-IN-LINEPACKAGE〕LCCC〔LEADLESSCERAMICCHIPCARRIER〕系統(tǒng)設(shè)計(jì)硬件系統(tǒng)設(shè)計(jì)軟件系統(tǒng)設(shè)計(jì)任務(wù)軟件測試軟件功能框圖〔目的分配〕電原理圖印制板〔數(shù)字與模擬電路,接地,電源,多層板〕系統(tǒng)的實(shí)現(xiàn)從C程序作起用CCompiler將C源程序編譯成為匯編言語源程序,然后匯編、銜接后輸出可執(zhí)行代碼;也可以運(yùn)用shell程序,將編譯、匯編、銜接一齊完成

源程序分析器輸入是C源文件。讀入源語句,檢查語法和語意錯(cuò)誤,寫出一個(gè)中間文件〔.if〕優(yōu)化器可選擇項(xiàng)。其輸入是分析器產(chǎn)生的中間文件〔.if〕。當(dāng)運(yùn)轉(zhuǎn)優(yōu)化器時(shí),用戶可以選擇優(yōu)化的層次。產(chǎn)生一個(gè)與中間文件格式一樣的高效率版本。代碼生成器輸入是分析器或優(yōu)化器產(chǎn)生的中間文件〔.if或.opt文件〕,產(chǎn)生一個(gè)匯編言語源文件內(nèi)部列表公用程序輸入是C編譯器產(chǎn)生的匯編言語源程序和C源程序。產(chǎn)生的是按C文件的語句展開的匯編言語源文件匯編器和銜接器匯編器的輸入是代碼生成器產(chǎn)生的匯編言語文件,產(chǎn)生COFF目的文件銜接器的輸入是匯編器產(chǎn)生的COFF目的文件,產(chǎn)生可執(zhí)行的目的文件運(yùn)轉(zhuǎn)C編譯器cl500[-options]filenames[-z[link_options][objectfiles]]cl500調(diào)用編譯器和匯編器的命令。-options影響編譯器處置輸入文件的途徑filenames一個(gè)或多個(gè)C源文件、匯編言語源文件,或目的文件。-z運(yùn)轉(zhuǎn)銜接器的選擇項(xiàng)。link_options影響銜接器處置輸入文件的途徑objectfiles命名編譯器產(chǎn)生的目的文件cl500-qsymtabfileseek.asm–z編譯文件symtab和file,匯編第三個(gè)文件seek.asm,銜接這三個(gè)文件,并運(yùn)用quiet選擇項(xiàng),抑制輸出處置信息假設(shè)不運(yùn)用-q選擇項(xiàng),就會(huì)輸出以下處置信息:[symtab]TMS320C54xANSICCompilerVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c〞==>main“symtab.c〞==>lookupTMS320C54xANSICCodegenVersionx.xxCopyright(c)1997TexasInstrumentsIncorporated“symtab.c〞==>main“symtab.c〞==>lookup

TMS320C54xCOFFAssemblerversionx.xxCopyright?1997TexasInstrumentsIncorporatedPASS1PASS2NoErrors,NoWarnings匯編器輸出的列表文件:1*******************************************2**Assembleintothe.textsection.**3*******************************************40000 .text50000e800 LD#0,A6*******************************************7**Allocate4wordsin.bssforTEMP.**8*******************************************90000 Var_1: .bssTEMP,410

11*******************************************12**Stillin.text**13*******************************************140001f000 ADD#56h,A00020056150003f066 MPY#73h,A0004007316

17*******************************************18**Allocate100wordsin.bssforthe**19**symbolnamedARRAY;thispartof**20**.bssmustfitonasinglepage.**21*******************************************220004 .bss ARRAY,100,12324*******************************************25**Assemblemorecodeinto.text.**26*******************************************2700058000- STLA,Var_128

29*******************************************30**Declareexternal.bsssymbols.**31*******************************************32.globalARRAY,TEMP33.end銜接器-m選擇項(xiàng)建立映射列表文件-mfilename該銜接器映射列表描畫:存儲(chǔ)器劃分輸入與輸出段的位置外部符號(hào)重新定位后的地址

當(dāng)沒有發(fā)現(xiàn)錯(cuò)誤時(shí),銜接器就建立一個(gè)輸出模塊,省缺名為a.out。也可以運(yùn)用-o選擇項(xiàng),將輸出模塊寫入另外的文件:-ofilename其中的文件名就是新的輸出模塊的文件名lnk500–orun.outfile1.objfile2.obj將ile1.obj和file2.obj銜接起來,建立一個(gè)名為run.out的輸出模塊可以將上述文件名及選擇項(xiàng),再加上注釋寫入一個(gè)命令文件linkd:a.obj /*Firstinputfilename*/b.obj /*Secondinputfilename*/-oprog.out/*Optiontospecifyoutputfile*/-mprog.map/*Optiontospecifymapfile*/并用該命令文件來調(diào)用銜接器:lnk500linkd包含銜接器偽指令的命令文件:a.objb.objc.obj /*Inputfilenames*/-oprog.out-mprog.map /*Options*/MEMORY /*MEMORYdirective*/{RAM:origin=100h length=0100hROM:origin=01000h length=0100h}SECTIONS /*SECTIONSdirective*/{.text:>ROM.data:>ROM.bss:>RAM}MEMORY

{

PAGE0:name1[(attr)]:origin=constant,length=constant;

PAGEn:namen[(attr)]:origin=constant,length=constant;

}

PAGE闡明一個(gè)存儲(chǔ)器空間。用戶最多可以闡明255頁。通常,page0是程序存儲(chǔ)器,page1是數(shù)據(jù)存儲(chǔ)器。name命名一個(gè)存儲(chǔ)器范圍。一個(gè)存儲(chǔ)器的名字可以是1—8個(gè)字符,其中包括A—Z,a—z,$,.,_。

Attr存儲(chǔ)器的屬性:R存儲(chǔ)器可讀W存儲(chǔ)器可寫X存儲(chǔ)器可包含可執(zhí)行代碼I存儲(chǔ)器可以初始化

origin指定存儲(chǔ)器的開場地址length指定存儲(chǔ)器范圍的長度。fill為存儲(chǔ)器范圍指定一個(gè)填入的字符,其值是2-byte的整常數(shù)。TMS320C54x省缺的地址配置:MEMORY{PAGE0:PROG:origin=0x0080length=0xFF00PAGE1:DATA:origin=0x0080length=0xFF80}SECTIONS{.text:PAGE=0.data:PAGE=0.cinit:PAGE=0;cflagoptiononly.bss:PAGE=1}銜接器運(yùn)用舉例本例銜接三個(gè)目的文件demo.obj、fft.obj和tables.obj,并建立輸出文件demo.out。符號(hào)SETUP是程序的輸入點(diǎn)。銜接器命令文件demod/******************************************************//***SpecifyLinkerOptions***//*******************************************************/-ecoeff /*Definetheprogramentrypoint*/-odemo.out /*Nametheoutputfile*/-mdemo.map /*Createanoutputmap*//*******************************************************//***SpecifytheInputFiles***//*******************************************************/demo.objfft.objtables.obj

/**********************************************************//***SpecifytheMemoryConfigurations***//**********************************************************/MEMORY{PAGE0:RAM_PG:origin=00080h length=06F80hROM: origin=0C000h length=03F80hPAGE1:ONCHIP:origin=00080h length=0F7FhEXT: origin=01000h length=0EFFFh}

/*******************************************************//***SpecifytheOutputSections***//*******************************************************/SECTIONS{.text: load=ROM,page=0 /*link.textintoROM*/var_defs: load=ONCHIP,page=1 /*defsinRAM*/.data: fill=07A1Ch,load=ONCHIP,page=1{tables.obj(.data) /*.datainput*/fft.obj(.data) /*.datainput*/.=100h; /*createhole,fillwith07A1Ch*/}/*andlinkwithONCHIP*/.bss: load=RAM_PG, page=0, fill=0FFFFh/*Remaining.bss;fillandlink*/}映射文件demo.mapOUTPUTFILENAME:<demo.out>ENTRYPOINTSYMBOL:0MEMORYCONFIGURATIONNameoriginlengthattributesfill

PAGE0:RAM_PG00000080000006f80RWIXROM0000c000000003f80RWIXPAGE1:ONCHIP00000080000000f7fRWIXEXT0000100000000efffRWIX

SECTIONALLOCATIONMAPoutputattributes/sectionpage origin length inputsections

.text 0 0000c000 00000015 0000c000 00000008 demo.obj(.text) 0000c008 00000007 fft.obj(.text) 0000c00f 00000006 tables.obj(.text)var_defs1 00000080 00000002 00000080 00000002demo.obj(var_defs).data 1 00000082 00000108 00000082 00000000 ta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論