版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第七章工程問題的工程問題的DSP實現(xiàn)(一)實現(xiàn)(一)DTMF的編解碼的編解碼用用DSP實現(xiàn)雙音多頻(實現(xiàn)雙音多頻(DTMF)的撥)的撥號產(chǎn)生和解碼號產(chǎn)生和解碼。DTMFDual-Tone Multiple Frequency實現(xiàn)步驟v對象分析對象分析v算法設(shè)計算法設(shè)計vDSP選擇選擇v系統(tǒng)設(shè)計系統(tǒng)設(shè)計v系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn)v系統(tǒng)調(diào)試系統(tǒng)調(diào)試對象分析 對所要開發(fā)的系統(tǒng)的功能、對所要開發(fā)的系統(tǒng)的功能、性能要有深入的了解和分析性能要有深入的了解和分析,尤其對技術(shù)指標,要作透,尤其對技術(shù)指標,要作透徹的理解和把握。徹的理解和把握。 DTMF用一對頻率(行頻用一對頻率(行頻/列列頻)來表示一個符號(電話鍵
2、盤頻)來表示一個符號(電話鍵盤上的上的09,AD,*,#,共,共16個個符號)符號) 一次按鍵的時間是一次按鍵的時間是100ms,其中,其中,頻率對存在的時間是,頻率對存在的時間是45ms,不允許超過不允許超過55ms,其余的時間,其余的時間是靜音。是靜音。 CCITT關(guān)于關(guān)于DTMF的指標的指標vLow band: 697、770、852、941(Hz)RBW3.5%vHigh band: 1209、1336、1477、1633(Hz)RBW4dB REV 8dBvDYN RANGE: 25dBvGUARD TIME: MIN TONE TIME 45msvSNR:NOISE -24dBV算
3、法設(shè)計算法設(shè)計 算法設(shè)計是非常關(guān)鍵的步驟算法設(shè)計是非常關(guān)鍵的步驟,因為算法決定運算量和存,因為算法決定運算量和存儲器的大小,從而決定儲器的大小,從而決定DSP的的選擇,進而決定系統(tǒng)的設(shè)計選擇,進而決定系統(tǒng)的設(shè)計,包括硬件和軟件的設(shè)計。,包括硬件和軟件的設(shè)計。DTMF撥號的產(chǎn)生撥號的產(chǎn)生 基于基于DSP的的DTMF的音頻信號的音頻信號發(fā)生器,使用兩個二階的數(shù)字正發(fā)生器,使用兩個二階的數(shù)字正弦波振蕩器,一個產(chǎn)生行頻,一弦波振蕩器,一個產(chǎn)生行頻,一個產(chǎn)生列頻。個產(chǎn)生列頻。 DTMF發(fā)生器的系數(shù)和初始條件發(fā)生器的系數(shù)和初始條件DTMF發(fā)生器的信號流程發(fā)生器的信號流程音頻檢測音頻檢測vGoertzel算
4、法是算法是DTMF解碼器的解碼器的基礎(chǔ),實際上是一個兩極點的基礎(chǔ),實際上是一個兩極點的IIR濾波器。濾波器。vDFT或或FFT需要在處理之前準備需要在處理之前準備好一個數(shù)據(jù)塊,而好一個數(shù)據(jù)塊,而Goertzel算法算法是一個遞歸的結(jié)構(gòu),就每個輸入是一個遞歸的結(jié)構(gòu),就每個輸入的樣本進行計算。的樣本進行計算。Goertzel算法算法Goertzel算法的特點算法的特點vGoertzel算法的算法的IIR濾波器結(jié)構(gòu)涉及兩個濾波器結(jié)構(gòu)涉及兩個復(fù)共軛極點,但對于實際的復(fù)共軛極點,但對于實際的DTMF音頻音頻檢測,只要有幅度信息就夠了(實際上檢測,只要有幅度信息就夠了(實際上使用幅度平方),從而簡化為只需
5、要一使用幅度平方),從而簡化為只需要一個實系數(shù)參與計算。個實系數(shù)參與計算。v Goertzel算法要比算法要比FFT快得多,因為只快得多,因為只需要提供需要提供8個行個行/列頻和它們的二次諧波列頻和它們的二次諧波的信息(二次諧波的信息用于將的信息(二次諧波的信息用于將DTMF與話音或音樂區(qū)別開來)。與話音或音樂區(qū)別開來)。行頻行頻/ /列頻及相應(yīng)的系數(shù)列頻及相應(yīng)的系數(shù)有效性檢查有效性檢查v信號強度 DTMF行頻、列頻信號之和行頻、列頻信號之和的強度是否達到一定的門限值的強度是否達到一定的門限值有效性檢查有效性檢查v扭曲度 標準扭曲:標準扭曲: 行頻峰值行頻峰值 列頻峰值列頻峰值 4dB 反向扭
6、曲:反向扭曲: 列頻峰值列頻峰值 行頻峰值行頻峰值 8dB有效性檢查有效性檢查v二次諧波強度 以便將以便將DTMF信號與其他語信號與其他語音信號、音樂信號等區(qū)別開來音信號、音樂信號等區(qū)別開來。有效性檢查有效性檢查v數(shù)字信息的穩(wěn)定性 如果一個數(shù)字成功地檢測到如果一個數(shù)字成功地檢測到兩次,認為該數(shù)字是穩(wěn)定的兩次,認為該數(shù)字是穩(wěn)定的有效性檢查有效性檢查v數(shù)字信息的有效性 檢測到的數(shù)字前面必須是靜音檢測到的數(shù)字前面必須是靜音符時,該數(shù)字才是有效的,以便符時,該數(shù)字才是有效的,以便將各次擊鍵區(qū)別開來將各次擊鍵區(qū)別開來 編碼器對速度和存儲器的要求編碼器對速度和存儲器的要求解碼器對速度和存儲器的要求解碼器對
7、速度和存儲器的要求DSPDSP芯片選擇芯片選擇v算法對算法對DSP芯片計算速度的要求芯片計算速度的要求v系統(tǒng)的管理(如任務(wù)管理、進程管系統(tǒng)的管理(如任務(wù)管理、進程管理、存儲器管理、理、存儲器管理、I/O管理等)對管理等)對DSP的要求的要求v片內(nèi)存儲器和片外存儲器的要求(片內(nèi)存儲器和片外存儲器的要求(包括容量的要求和速度的要求)包括容量的要求和速度的要求)DSPDSP芯片選擇芯片選擇v對外設(shè)(如串口、并口、定時器、對外設(shè)(如串口、并口、定時器、總線寬度、等待狀態(tài)等)的要求總線寬度、等待狀態(tài)等)的要求vDSP封裝對印制板的設(shè)計影響甚大封裝對印制板的設(shè)計影響甚大v開發(fā)環(huán)境開發(fā)環(huán)境v技術(shù)支持技術(shù)支持
8、v性能價格比性能價格比DSPDSP芯片的速度芯片的速度DSPDSP的片內(nèi)存儲器的片內(nèi)存儲器DSP的外設(shè)的外設(shè)BGA(BALL GRID ARRAY)PLCC(PLASTIC J-LEADED CHIP CARRIER)PQFP(PLASTIC QUAD FLAT PACK)PDLP(PLASTIC DUAL-IN-LINE PACKAGE)LCCC(LEADLESS CERAMIC CHIP CARRIER)系統(tǒng)設(shè)計v硬件系統(tǒng)設(shè)計硬件系統(tǒng)設(shè)計v軟件系統(tǒng)設(shè)計軟件系統(tǒng)設(shè)計工作軟件工作軟件測試軟件測試軟件功能框圖(指標分配)功能框圖(指標分配)電原理圖電原理圖印制板(數(shù)字與模擬電路,接地,印制板(數(shù)
9、字與模擬電路,接地,電源,多層板)電源,多層板)系統(tǒng)的實現(xiàn)系統(tǒng)的實現(xiàn)v從從C C程序作起程序作起 用用C Compiler將將C源程序編譯源程序編譯成為匯編語言源程序,然后匯編成為匯編語言源程序,然后匯編、連接后輸出可執(zhí)行代碼;也可、連接后輸出可執(zhí)行代碼;也可以使用以使用shell程序,將編譯、匯編程序,將編譯、匯編、連接一齊完成、連接一齊完成 源程序分析器源程序分析器 輸入是輸入是C源文件。讀入源語源文件。讀入源語句,檢查語法和語意錯誤,寫出句,檢查語法和語意錯誤,寫出一個中間文件(一個中間文件(.if)優(yōu)化器優(yōu)化器 可選擇項。其輸入是分析器產(chǎn)生可選擇項。其輸入是分析器產(chǎn)生的中間文件(的中間
10、文件(.if)。當運行優(yōu)化器)。當運行優(yōu)化器時,用戶可以選擇優(yōu)化的層次。產(chǎn)時,用戶可以選擇優(yōu)化的層次。產(chǎn)生一個與中間文件格式相同的高效生一個與中間文件格式相同的高效率版本。率版本。代碼生成器代碼生成器 輸入是分析器或優(yōu)化器產(chǎn)生的輸入是分析器或優(yōu)化器產(chǎn)生的中間文件(中間文件(.if或或.opt文件),產(chǎn)文件),產(chǎn)生一個匯編語言源文件生一個匯編語言源文件內(nèi)部列表公用程序內(nèi)部列表公用程序 輸入是輸入是C編譯器產(chǎn)生的匯編語編譯器產(chǎn)生的匯編語言源程序和言源程序和C源程序。產(chǎn)生的是源程序。產(chǎn)生的是按按C文件的語句展開的匯編語言文件的語句展開的匯編語言源文件源文件匯編器和連接器匯編器和連接器v匯編器的輸入是
11、代碼生成器產(chǎn)生的匯編器的輸入是代碼生成器產(chǎn)生的匯編語言文件,產(chǎn)生匯編語言文件,產(chǎn)生COFF目標文件目標文件 v連接器的輸入是匯編器產(chǎn)生的連接器的輸入是匯編器產(chǎn)生的COFF目標文件,產(chǎn)生可執(zhí)行的目標文件目標文件,產(chǎn)生可執(zhí)行的目標文件運行運行C編譯器編譯器cl500 -options filenames -z link_options object filescl500調(diào)用編譯器和匯編器的命令。調(diào)用編譯器和匯編器的命令。-options 影響編譯器處理輸入文件的途徑影響編譯器處理輸入文件的途徑filenames 一個或多個一個或多個C源文件、匯編語言源源文件、匯編語言源文件,或目標文件。文件,或目
12、標文件。-z 運行連接器的選擇項。運行連接器的選擇項。link_options 影響連接器處理輸入文件的途徑影響連接器處理輸入文件的途徑object files 命名編譯器產(chǎn)生的目標文件命名編譯器產(chǎn)生的目標文件cl500 -q symtab file seek.asm z 編譯文件編譯文件symtab和和file,匯編,匯編第三個文件第三個文件seek.asm,連接這三,連接這三個文件,并使用個文件,并使用quiet選擇項,抑選擇項,抑制輸出處理信息制輸出處理信息如果不使用如果不使用-q選擇項,就會輸出以下選擇項,就會輸出以下處理信息:處理信息:symtabTMS320C54x ANSI C
13、Compiler Version x.xxCopyright (c) 1997 Texas Instruments Incorporated“symtab.c”= main“symtab.c”= lookupTMS320C54x ANSI C Codegen Version x.xxCopyright (c) 1997 Texas Instruments Incorporated“symtab.c” = main“symtab.c” = lookup TMS320C54x COFF Assembler version x.xxCopyright 1997 Texas Instruments I
14、ncorporatedPASS 1PASS 2No Errors, No Warnings匯編器輸出的列表文件匯編器輸出的列表文件:1 *2 * Assemble into the .text section. *3 *4 0000 .text5 0000 e800 LD #0, A6 *7 * Allocate 4 words in .bss for TEMP. *8 *9 0000 Var_1: .bss TEMP, 410 11 *12 * Still in .text *13 *14 0001 f000 ADD #56h, A 0002 005615 0003 f066 MPY #73
15、h, A 0004 007316 17 *18 * Allocate 100 words in .bss for the *19 * symbol named ARRAY; this part of *20 * .bss must fit on a single page. *21 *22 0004 .bss ARRAY, 100, 12324 *25 * Assemble more code into .text. *26 *27 0005 8000-STL A, Var_128 29 *30 * Declare external .bss symbols. *31 *32 .global
16、ARRAY, TEMP33 .end連接器連接器-m-m選擇項建立映射列表文件選擇項建立映射列表文件-m filename該連接器映射列表描述:該連接器映射列表描述:存儲器劃分存儲器劃分輸入與輸出段的位置輸入與輸出段的位置 外部符號重新定位后的地址外部符號重新定位后的地址 當沒有發(fā)現(xiàn)錯誤時,連接器就建立一當沒有發(fā)現(xiàn)錯誤時,連接器就建立一個輸出模塊,省缺名為個輸出模塊,省缺名為a.out。也可以使。也可以使用用-o選擇項,將輸出模塊寫入另外的文選擇項,將輸出模塊寫入另外的文件:件:-o filename其中的文件名就是新的輸出模塊的文件名其中的文件名就是新的輸出模塊的文件名lnk500 o ru
17、n.out file1.obj file2.obj 將將ile1.obj 和和 file2.obj 連接起來,連接起來,建立一個名為建立一個名為run.out 的輸出模塊的輸出模塊可以將上述文件名及選擇項,再加上注釋寫入一個命令文件link.cmd :a.obj /* First input filename */b.obj /* Second input filename */-o prog.out /* Option to specify output file */-m prog.map /* Option to specify map file */并用該命令文件來調(diào)用連接器:lnk5
18、00 link.cmd包含連接器偽指令的命令文件包含連接器偽指令的命令文件:a.obj b.obj c.obj /* Input filenames */-o prog.out -m prog.map /* Options */MEMORY /* MEMORY directive */RAM: origin = 100h length = 0100hROM: origin = 01000h length = 0100h SECTIONS /* SECTIONS directive */.text: ROM.data: ROM.bss: RAMMEMORYPAGE 0 : name 1 (att
19、r) : origin = constant , length = constant;PAGE n : name n (attr) : origin = constant , length = constant;PAGE 說明一個存儲器空間。用戶最多可說明一個存儲器空間。用戶最多可以說明以說明255頁。通常,頁。通常,page0是程序存儲是程序存儲器,器,page1是數(shù)據(jù)存儲器。是數(shù)據(jù)存儲器。name 命名一個存儲器范圍。一個存儲器的命名一個存儲器范圍。一個存儲器的名字可以是名字可以是18個字符,其中包括個字符,其中包括AZ,az,$,.,_。 Attr 存儲器的屬性:存儲器的屬性:R 存儲器
20、可讀存儲器可讀W 存儲器可寫存儲器可寫 X 存儲器可包含可執(zhí)行代碼存儲器可包含可執(zhí)行代碼I 存儲器可以初始化存儲器可以初始化 origin 指定存儲器的開始地址指定存儲器的開始地址length 指定存儲器范圍的長度。指定存儲器范圍的長度。fill 為存儲器范圍指定一個填入的字為存儲器范圍指定一個填入的字符,其值是符,其值是2-byte的整常數(shù)。的整常數(shù)。TMS320C54xTMS320C54x省缺的地址配置:省缺的地址配置:MEMORYPAGE 0: PROG: origin = 0 x0080 length = 0 xFF00PAGE 1: DATA: origin = 0 x0080 le
21、ngth = 0 xFF80SECTIONS.text: PAGE = 0.data: PAGE = 0.cinit: PAGE = 0 ;cflag option only.bss: PAGE = 1連接器使用舉例連接器使用舉例 本例連接三個目標文件本例連接三個目標文件demo.obj、fft.obj和和 tables.obj,并建立輸出文,并建立輸出文件件demo.out。符號。符號SETUP是程序的是程序的輸入點。輸入點。連接器命令文件連接器命令文件 demo.cmddemo.cmd/*/* Specify Linker Options */*/-e coeff /* Define th
22、e program entry point */-o demo.out /* Name the output file */-m demo.map /* Create an output map */*/* Specify the Input Files */*/demo.objfft.objtables.obj /*/* Specify the Memory Configurations */*/MEMORYPAGE 0: RAM_PG: origin=00080h length=06F80hROM: origin=0C000h length=03F80hPAGE 1: ONCHIP: or
23、igin=00080h length=0F7FhEXT: origin=01000h length=0EFFFh /*/* Specify the Output Sections */*/SECTIONS.text: load = ROM, page = 0 /* link .text into ROM */var_defs: load = ONCHIP, page=1 /* defs in RAM */.data: fill = 07A1Ch, load=ONCHIP, page=1tables.obj(.data) /* .data input */fft.obj(.data) /* .d
24、ata input */. = 100h; /* create hole, fill with 07A1Ch */ /* and link with ONCHIP */. b s s : l o a d = R A M _ P G ,p a g e = 0 ,fill=0FFFFh/* Remaining .bss; fill and link */映射文件映射文件demo.mapdemo.mapOUTPUT FILE NAME: ENTRY POINT SYMBOL: 0MEMORY CONFIGURATION Name origin length attributes fill - - -
25、 - -PAGE 0: RAM_PG 00000080 000006f80 RWIX R O M 0 0 0 0 c 0 0 0 000003f80 RWIXPAGE 1: ONCHIP 00000080 000000f7f RWIX EXT 00001000 00000efff RWIX SECTION ALLOCATION MAPoutput attributes/section page originlengthinput sections- -.text 00000c000000000150000c000 00000008 demo.obj (.text)0000c008 00000007 fft.obj (.text)0000c00f 00000006 tables.obj (.text)var_defs 1 00000080 0000000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 英文微課程設(shè)計講解
- 物流行業(yè)設(shè)計師工作總結(jié)
- 全球石油庫存數(shù)據(jù)透明度報告(英文版)
- 美食店服務(wù)員的服務(wù)感悟
- 服裝定制行業(yè)裁板師培訓心得
- 【八年級下冊歷史】單元測試 第五、六單元測試題
- 2024年設(shè)備監(jiān)理師考試題庫附參考答案【基礎(chǔ)題】
- 2024年計算機網(wǎng)絡(luò)實習心得體會
- 2024年給圖形做標記教案
- 2024年煤礦安全質(zhì)量標準化標準
- 2024年中國遠洋海運集團招聘筆試參考題庫附帶答案詳解
- 2024年貴州能源集團電力投資有限公司招聘筆試參考題庫附帶答案詳解
- 生殖免疫學教案課件
- 沙糖桔互聯(lián)網(wǎng)創(chuàng)業(yè)計劃書
- 胃結(jié)石演示課件
- 書法知識之章法布局
- 2023乙型肝炎病毒標志物臨床應(yīng)用專家共識(完整版)
- 23J916-1:住宅排氣道(一)
- 儲能項目用戶側(cè)投資測算表
- 【解析】教科版(廣州)2023-2023學年小學英語五年級上冊分類專項復(fù)習卷:閱讀
- 月日上午王一凡把問題當做教育的資源 優(yōu)秀獎
評論
0/150
提交評論