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

下載本文檔

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

文檔簡介

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

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 算法設計算法設計是非常關(guān)鍵的步驟,由于算法決議運算量和存儲器的大小,從而決議DSP的選擇,進而決議系統(tǒng)的設計,包括硬件和軟件的設計。DTMF撥號的產(chǎn)生基于DSP的DTMF的音頻信號發(fā)生器,運用兩個二階的數(shù)字正弦波振蕩器,一個產(chǎn)生行頻,一個產(chǎn)生列頻。

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

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

源程序分析器輸入是C源文件。讀入源語句,檢查語法和語意錯誤,寫出一個中間文件〔.if〕優(yōu)化器可選擇項。其輸入是分析器產(chǎn)生的中間文件〔.if〕。當運轉(zhuǎn)優(yōu)化器時,用戶可以選擇優(yōu)化的層次。產(chǎn)生一個與中間文件格式一樣的高效率版本。代碼生成器輸入是分析器或優(yōu)化器產(chǎn)生的中間文件〔.if或.opt文件〕,產(chǎn)生一個匯編言語源文件內(nèi)部列表公用程序輸入是C編譯器產(chǎn)生的匯編言語源程序和C源程序。產(chǎn)生的是按C文件的語句展開的匯編言語源文件匯編器和銜接器匯編器的輸入是代碼生成器產(chǎn)生的匯編言語文件,產(chǎn)生COFF目的文件銜接器的輸入是匯編器產(chǎn)生的COFF目的文件,產(chǎn)生可執(zhí)行的目的文件運轉(zhuǎn)C編譯器cl500[-options]filenames[-z[link_options][objectfiles]]cl500調(diào)用編譯器和匯編器的命令。-options影響編譯器處置輸入文件的途徑filenames一個或多個C源文件、匯編言語源文件,或目的文件。-z運轉(zhuǎn)銜接器的選擇項。link_options影響銜接器處置輸入文件的途徑objectfiles命名編譯器產(chǎn)生的目的文件cl500-qsymtabfileseek.asm–z編譯文件symtab和file,匯編第三個文件seek.asm,銜接這三個文件,并運用quiet選擇項,抑制輸出處置信息假設不運用-q選擇項,就會輸出以下處置信息:[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選擇項建立映射列表文件-mfilename該銜接器映射列表描畫:存儲器劃分輸入與輸出段的位置外部符號重新定位后的地址

當沒有發(fā)現(xiàn)錯誤時,銜接器就建立一個輸出模塊,省缺名為a.out。也可以運用-o選擇項,將輸出模塊寫入另外的文件:-ofilename其中的文件名就是新的輸出模塊的文件名lnk500–orun.outfile1.objfile2.obj將ile1.obj和file2.obj銜接起來,建立一個名為run.out的輸出模塊可以將上述文件名及選擇項,再加上注釋寫入一個命令文件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闡明一個存儲器空間。用戶最多可以闡明255頁。通常,page0是程序存儲器,page1是數(shù)據(jù)存儲器。name命名一個存儲器范圍。一個存儲器的名字可以是1—8個字符,其中包括A—Z,a—z,$,.,_。

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

origin指定存儲器的開場地址length指定存儲器范圍的長度。fill為存儲器范圍指定一個填入的字符,其值是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}銜接器運用舉例本例銜接三個目的文件demo.obj、fft.obj和tables.obj,并建立輸出文件demo.out。符號SETUP是程序的輸入點。銜接器命令文件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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論