DSP入門前的背景知識(shí)
數(shù)字信號(hào)處理(DigitalSignal Processing,簡稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來,隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。在過去的二十多年時(shí)間里,數(shù)字信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。
數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。
數(shù)字信號(hào)處理是圍繞著數(shù)字信號(hào)處理的理論、實(shí)現(xiàn)和應(yīng)用等幾個(gè)方面發(fā)展起來的。數(shù)字信號(hào)處理在理論上的發(fā)展推動(dòng)了數(shù)字信號(hào)處理應(yīng)用的發(fā)展。反過來,數(shù)字信號(hào)處理的應(yīng)用又促進(jìn)了數(shù)字信號(hào)處理理論的提高。而數(shù)字信號(hào)處理的實(shí)現(xiàn)則是理論和應(yīng)用之間的橋梁。
數(shù)字信號(hào)處理是以眾多學(xué)科為理論基礎(chǔ)的,它所涉及的范圍極其廣泛。例如,在數(shù)學(xué)領(lǐng)域,微積分、概率統(tǒng)計(jì)、隨機(jī)過程、數(shù)值分析等都是數(shù)字信號(hào)處理的基本工具,與網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)、控制論、通信理論、故障診斷等也密切相關(guān)。近來新興的一些學(xué)科,如人工智能、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等,都與數(shù)字信號(hào)處理密不可分??梢哉f,數(shù)字信號(hào)處理是把許多經(jīng)典的理論體系作為自己的理論基礎(chǔ),同時(shí)又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。
數(shù)字信號(hào)處理的實(shí)現(xiàn)方法一般有以下幾種:
(1) 在通用的計(jì)算機(jī)(如PC機(jī))上用軟件(如Fortran、C語言)實(shí)現(xiàn);
(2) 在通用計(jì)算機(jī)系統(tǒng)中加上專用的加速處理機(jī)實(shí)現(xiàn);
(3) 用通用的單片機(jī)(如MCS-51、96系列等)實(shí)現(xiàn),這種方法可用于一些不太復(fù)雜的數(shù)字信號(hào)處理,如數(shù)字控制等;
(4) 用通用的可編程DSP芯片實(shí)現(xiàn)。與單片機(jī)相比,DSP芯片具有更加適合于數(shù)字信號(hào)處理的軟件和硬件資源,可用于 復(fù)雜的數(shù)字信號(hào)處理算法;
(5) 用專用的DSP芯片實(shí)現(xiàn)。在一些特殊的場合,要求的信號(hào)處理速度極高,用通用DSP芯片很難實(shí)現(xiàn),例如專用于 FFT、數(shù)字濾波、卷積、相關(guān)等算法的DSP芯片,這種芯片將相應(yīng)的信號(hào)處理算法在芯片內(nèi)部用硬件實(shí)現(xiàn),無需進(jìn)行編程。
在上述幾種方法中,第1種方法的缺點(diǎn)是速度較慢,一般可用于DSP算法的模擬;第2種和第5種方法專用性強(qiáng),應(yīng)用受到很大的限制,第2種方法也不便于系統(tǒng)的獨(dú)立運(yùn)行;第3種方法只適用于實(shí)現(xiàn)簡單的DSP算法;只有第4種方法才使數(shù)字信號(hào)處理的應(yīng)用打開了新的局面。
雖然數(shù)字信號(hào)處理的理論發(fā)展迅速,但在20世紀(jì)80年代以前,由于實(shí)現(xiàn)方法的限制,數(shù)字信號(hào)處理的理論還得不到廣泛的應(yīng)用。直到20世紀(jì)70年代末80年代初世界上第一片單片可編程DSP芯片的誕生,才將理論研究結(jié)果廣泛應(yīng)用到低成本的實(shí)際系統(tǒng)中,并且推動(dòng)了新的理論和應(yīng)用領(lǐng)域的發(fā)展??梢院敛豢鋸埖卣f,DSP芯片的誕生及發(fā)展對(duì)近20年來通信、計(jì)算機(jī)、控制等領(lǐng)域的技術(shù)發(fā)展起到十分重要的作用。
在DSP系統(tǒng)中,輸入信號(hào)可以有各種各樣的形式。例如,它可以是麥克風(fēng)輸出的語音信號(hào)或是電話線來的已調(diào)數(shù)據(jù)信號(hào),可以是編碼后在數(shù)字鏈路上傳輸或存儲(chǔ)在計(jì)算機(jī)里的攝像機(jī)圖像信號(hào)等。
輸入信號(hào)首先進(jìn)行帶限濾波和抽樣,然后進(jìn)行A/D(Analog toDigital)變換將信號(hào)變換成數(shù)字比特流。根據(jù)奈奎斯特抽樣定理,為保證信息不丟失,抽樣頻率至少必須是輸入帶限信號(hào)最高頻率的2倍。
DSP芯片的輸入是A/D變換后得到的以抽樣形式表示的數(shù)字信號(hào),DSP芯片對(duì)輸入的數(shù)字信號(hào)進(jìn)行某種形式的處理,如進(jìn)行一系列的乘累加操作(MAC)。數(shù)字處理是DSP的關(guān)鍵,這與其他系統(tǒng)(如電話交換系統(tǒng))有很大的不同,在交換 系統(tǒng)中,處理器的作用是進(jìn)行路由選擇,它并不對(duì)輸入數(shù)據(jù)進(jìn)行修改。因此雖然兩者都是實(shí)時(shí)系統(tǒng),但兩者的實(shí)時(shí)約束條件卻有很大的不同。最后,經(jīng)過處理后的數(shù)字樣值再經(jīng)D/A(Digital toAnalog)變換轉(zhuǎn)換為模擬樣值,之后再進(jìn)行內(nèi)插和平滑濾波就可得到連續(xù)的模擬波形。
必須指出的是,上面給出的DSP系統(tǒng)模型是一個(gè)典型模型,但并不是所有的DSP系統(tǒng)都必須具有模型中的所有部件。如語音識(shí)別系統(tǒng)在輸出端并不是連續(xù)的波形,而是識(shí)別結(jié)果,如數(shù)字、文字等;有些輸入信號(hào)本身就是數(shù)字信號(hào)(如CD:Compact Disk),因此就不必進(jìn)行模數(shù)變換了。
數(shù)字信號(hào)處理系統(tǒng)是以數(shù)字信號(hào)處理為基礎(chǔ),因此具有數(shù)字處理的全部優(yōu)點(diǎn):
(1) 接口方便。DSP系統(tǒng)與其他以現(xiàn)代數(shù)字技術(shù)為基礎(chǔ)的系統(tǒng)或設(shè)備都是相互兼容的,與這樣的系統(tǒng)接口以實(shí)現(xiàn)某種功能要比模擬系統(tǒng)與這些系統(tǒng)接口要容易得多;
(2) 編程方便。DSP系統(tǒng)中的可編程DSP芯片可使設(shè)計(jì)人員在開發(fā)過程中靈活方便地對(duì)軟件進(jìn)行修改和升級(jí);
(3) 穩(wěn)定性好。DSP系統(tǒng)以數(shù)字處理為基礎(chǔ),受環(huán)境溫度以及噪聲的影響較小,可靠性高; (4) 精度高。16位數(shù)字系統(tǒng)可以達(dá)到10^(-5)的精度;
(5) 可重復(fù)性好。模擬系統(tǒng)的性能受元器件參數(shù)性能變化比較大,而數(shù)字系統(tǒng)基本不受影響,因此數(shù)字系統(tǒng)便于測試、調(diào)試和大規(guī)模生產(chǎn);
(6) 集成方便。DSP系統(tǒng)中的數(shù)字部件有高度的規(guī)范性,便于大規(guī)模集成。
當(dāng)然,數(shù)字信號(hào)處理也存在一定的缺點(diǎn)。例如,對(duì)于簡單的信號(hào)處理任務(wù),如與模擬交換線的電話接口,若采用DSP則使成本增加。DSP系統(tǒng)中的高速時(shí)鐘可能帶來高頻干擾和電磁泄漏等問題,而且DSP系統(tǒng)消耗的功率也較大。此外,D SP技術(shù)更新的速度快,數(shù)學(xué)知識(shí)要求多,開發(fā)和調(diào)試工具還不盡完善。
雖然DSP系統(tǒng)存在著一些缺點(diǎn),但其突出的優(yōu)點(diǎn)已經(jīng)使之在通信、語音、圖像、雷達(dá)、生物醫(yī)學(xué)、工業(yè)控制、儀器儀表等許多領(lǐng)域得到越來越廣泛的應(yīng)用。
總的來說,DSP系統(tǒng)的設(shè)計(jì)還沒有非常好的正規(guī)設(shè)計(jì)方法。
在設(shè)計(jì) DSP 系統(tǒng)之前,首先必須根據(jù)應(yīng)用系統(tǒng)的目標(biāo)確定系統(tǒng)的性能指標(biāo)、信號(hào)處理的要求,通??捎脭?shù)據(jù)流程圖、數(shù)學(xué)運(yùn)算序列、正式的符號(hào)或自然語言來描述。
第二步是根據(jù)系統(tǒng)的要求進(jìn)行高級(jí)語言的模擬。一般來說,為了實(shí)現(xiàn)系統(tǒng)的最終目標(biāo),需要對(duì)輸入的信號(hào)進(jìn)行適當(dāng)?shù)奶幚?,而處理方法的不同?huì)導(dǎo)致不同的系統(tǒng)性能,要得到最佳的系統(tǒng)性能,就必須在這一步確定最佳的處理方法,即數(shù)字信號(hào)處理的算法(Algorithm),因此這一步也稱算法模擬階段。例如,語音壓縮編碼算法就是要在確定的壓縮比條件下,獲得最佳的合成語音。算法模擬所用的輸入數(shù)據(jù)是實(shí)際信號(hào)經(jīng)采集而獲得的,通常以計(jì)算機(jī)文件的形式存儲(chǔ)為數(shù)據(jù)文件。如語音壓縮編碼算法模擬時(shí)所用的語音信號(hào)就是實(shí)際采集而獲得并存儲(chǔ)為計(jì)算機(jī)文件形式的語音數(shù)據(jù)文件。有些算法模擬時(shí)所用的輸入數(shù)據(jù)并不一定要是實(shí)際采集的信號(hào)數(shù)據(jù),只要能夠驗(yàn)證算法的可行性,輸入假設(shè)的數(shù)據(jù)也是可以的。
在完成第二步之后,接下來就可以設(shè)計(jì)實(shí)時(shí)DSP系統(tǒng),實(shí)時(shí)DSP系統(tǒng)的設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面。硬件設(shè)計(jì)首先要根據(jù)系統(tǒng)運(yùn)算量的大小、對(duì)運(yùn)算精度的要求、系統(tǒng)成本限制以及體積、功耗等要求選擇合適的DSP芯片。然后設(shè)計(jì)DSP芯片的外圍電路及其他電路。軟件設(shè)計(jì)和編程主要根據(jù)系統(tǒng)要求和所選的DSP芯片編寫相應(yīng)的DSP匯編程序,若系統(tǒng)運(yùn)算量不大且有高級(jí)語言編譯器支持,也可用高級(jí)語言(如C語言)編程。由于現(xiàn)有的高級(jí)語言編譯器的效率還比不上手工編寫匯編語言的效率,因此在實(shí)際應(yīng)用系統(tǒng)中常常采用高級(jí)語言和匯編語言的混合編程方法,即在算法運(yùn)算量大的地方,用手工編寫的方法編寫匯編語言,而運(yùn)算量不大的地方則采用高級(jí)語言。采用這種方法,既可縮短軟件開發(fā)的周期,提高程序的可讀性和可移植性,又能滿足系統(tǒng)實(shí)時(shí)運(yùn)算的要求。
DSP硬件和軟件設(shè)計(jì)完成后,就需要進(jìn)行硬件和軟件的調(diào)試。軟件的調(diào)試一般借助于DSP開發(fā)工具,如軟件模擬器、DSP開發(fā)系統(tǒng)或仿真器等。調(diào)試DSP算法時(shí)一般采用比較實(shí)時(shí)結(jié)果與模擬結(jié)果的方法,如果實(shí)時(shí)程序和模擬程序的輸入相同,則兩者的輸出應(yīng)該一致。應(yīng)用系統(tǒng)的其他軟件可以根據(jù)實(shí)際情況進(jìn)行調(diào)試。硬件調(diào)試一般采用硬件仿真器進(jìn)行調(diào)試,如果沒有相應(yīng)的硬件仿真器,且硬件系統(tǒng)不是十分復(fù)雜,也可以借助于一般的工具進(jìn)行調(diào)試。
系統(tǒng)的軟件和硬件分別調(diào)試完成后,就可以將軟件脫離開發(fā)系統(tǒng)而直接在應(yīng)用系統(tǒng)上運(yùn)行。當(dāng)然,DSP系統(tǒng)的開發(fā),特別是軟件開發(fā)是一個(gè)需要反復(fù)進(jìn)行的過程,雖然通過算法模擬基本上可以知道實(shí)時(shí)系統(tǒng)的性能,但實(shí)際上模擬環(huán)境不可能做到與實(shí)時(shí)系統(tǒng)環(huán)境完全一致,而且將模擬算法移植到實(shí)時(shí)系統(tǒng)時(shí)必須考慮算法是否能夠?qū)崟r(shí)運(yùn)行的問題。如果算法運(yùn)算量太大不能在硬件上實(shí)時(shí)運(yùn)行,則必須重新修改或簡化算法。
DSP芯片,也稱數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下主要特點(diǎn):
(1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;
(2)程序和數(shù)據(jù)空間分開,可以同時(shí)訪問指令和數(shù)據(jù);
(3)片內(nèi)具有快速 RAM,通??赏ㄟ^獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問;
(4)具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個(gè)操作;
(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。
DSP芯片的發(fā)展
世界上第一個(gè)單片 DSP 芯片應(yīng)當(dāng)是1978年 AMI公司發(fā)布的 S2811,1979年美國Intel公司發(fā)布的商用可編程器件2920是DSP芯片的一個(gè)主要里程碑。這兩種芯片內(nèi)部都沒有現(xiàn)代DSP芯片所必須有的單周期乘法器。1980年,日本 NEC 公司推出的μP D7720是第一個(gè)具有乘法器的商用 DSP 芯片。
在這之后,最成功的DSP 芯片當(dāng)數(shù)美國德州儀器公司(Texas Instruments,簡稱TI)的一系列產(chǎn)品。TI 公司在1982年成功推出其第一代 DSP 芯片 TMS32010及其系列產(chǎn)品TMS32011、TMS320C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改進(jìn)型TMS320C2XX,集多片DSP芯片于一體的高性能DSP芯片TMS320C8X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI將常用的DSP芯片歸納為三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。如今,TI公司的一系列DSP產(chǎn)品已經(jīng)成為當(dāng)今世界上最有影響的DSP芯片。TI公司也成為世界上最大的 DSP 芯片供應(yīng)商,其DSP市場份額占全世界份額近 50%。
第一個(gè)采用CMOS工藝生產(chǎn)浮點(diǎn)DSP芯片的是日本的 Hitachi 公司,它于1982年推出了浮點(diǎn)DSP芯片。1983 年 日本Fujitsu 公司推出的MB8764,其指令周期為 120ns,且具有雙內(nèi)部總線,從而使處理吞吐量發(fā)生了一個(gè)大的飛躍。而第一個(gè)高性能浮點(diǎn)DSP芯片應(yīng)是 AT&T 公司于1984 年推出的DSP32。
與其他公司相比,Motorola公司在推出 DSP 芯片方面相對(duì)較晚。1986年,該公司推出了定點(diǎn)處理器MC56001。1990年,推出了與IEEE 浮點(diǎn)格式兼容的浮點(diǎn) DSP 芯片 MC96002。
美國模擬器件公司(AnalogDevices,簡稱AD)在DSP芯片市場上也占有一定的份額,相繼推出了一系列具有自己特點(diǎn)的DSP芯片,其定點(diǎn)DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/2162/2164以及ADSP2171/2181,浮點(diǎn)DSP芯片有ADSP21000/21020、ADSP21060/21062等。自1980年以來,DSP芯片得到了突飛猛進(jìn)的發(fā)展,DSP芯片的應(yīng)用越來越廣泛。從運(yùn)算速度來看,MAC(一次乘法和一次加法)時(shí)間已經(jīng)從20世紀(jì)80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),處理能力提高了幾十倍。DSP芯片內(nèi)部關(guān)鍵的乘法器部件從1980年的占模片區(qū)(diearea)的40%左右下降到5%以下,片內(nèi)RAM數(shù)量增加一個(gè)數(shù)量級(jí)以上。
從制造工藝來看,1980年采用4μm的 N溝道MOS(NMOS)工藝,而現(xiàn)在則普遍采用亞微米(Micron)CMOS工藝。DSP芯片的引腳數(shù)量從1980年的最多64個(gè)增加到現(xiàn)在的200個(gè)以上,引腳數(shù)量的增加,意味著結(jié)構(gòu)靈活性的增加,如外部存儲(chǔ)器的擴(kuò)展和處理器間的通信等。此外,DSP芯片的發(fā)展使DSP系統(tǒng)的成本、體積、重量和功耗都有很大程度的下降。表1.1 是TI公司DSP芯片1982年、1992年、1999年的比較表。表1.2則是世界上主要DSP芯片供應(yīng)商的代表芯片的一些數(shù)據(jù)。
DSP芯片可以按照下列三種方式進(jìn)行分類。
1.按基礎(chǔ)特性分
這是根據(jù)DSP芯片的工作時(shí)鐘和指令類型來分類的。如果在某時(shí)鐘頻率范圍內(nèi)的任何時(shí)鐘頻率上,DSP芯片都能正常工作,除計(jì)算速度有變化外,沒有性能的下降,這類DSP芯片一般稱為靜態(tài)DSP芯片。例如,日本OKI 電氣公司的DSP芯片、TI公司的TMS320C2XX系列芯片屬于這一類。
如果有兩種或兩種以上的DSP芯片,它們的指令集和相應(yīng)的機(jī)器代碼機(jī)管腳結(jié)構(gòu)相互兼容,則這類DSP芯片稱為一致性DSP芯片。例如,美國TI公司的TMS320C54X就屬于這一類。
2.按數(shù)據(jù)格式分
這是根據(jù)DSP芯片工作的數(shù)據(jù)格式來分類的。數(shù)據(jù)以定點(diǎn)格式工作的DSP芯片稱為定點(diǎn)DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮點(diǎn)格式工作的稱為浮點(diǎn)DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。
不同浮點(diǎn)DSP芯片所采用的浮點(diǎn)格式不完全一樣,有的DSP芯片采用自定義的浮點(diǎn)格式,如TMS320C3X,而有的DSP芯片則采用IEEE的標(biāo)準(zhǔn)浮點(diǎn)格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。
3.按用途分
按照DSP的用途來分,可分為通用型DSP芯片和專用型DSP芯片。通用型DSP芯片適合普通的DSP應(yīng)用,如TI公司的一系列DSP芯片屬于通用型DSP芯片。專用DSP芯片是為特定的DSP運(yùn)算而設(shè)計(jì)的,更適合特殊的運(yùn)算,如數(shù)字濾波、卷積和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就屬于專用型DSP芯片。
本書主要討論通用型DSP芯片。
DSP芯片的選擇 設(shè)計(jì)DSP應(yīng)用系統(tǒng),選擇DSP芯片是非常重要的一個(gè)環(huán)節(jié)。只有選定了DSP芯片,才能進(jìn)一步設(shè)計(jì)其外圍電路及系統(tǒng)的其他電路??偟膩碚f,DSP芯片的選擇應(yīng)根據(jù)實(shí)際的應(yīng)用系統(tǒng)需要而確定。不同的DSP應(yīng)用系統(tǒng)由于應(yīng)用場合、應(yīng)用目的等不盡相同,對(duì)DSP芯片的選擇也是不同的。一般來說,選擇DSP芯片時(shí)應(yīng)考慮到如下諸多因素。
1.DSP芯片的運(yùn)算速度。
運(yùn)算速度是DSP芯片的一個(gè)最重要的性能指標(biāo),也是選擇DSP芯片時(shí)所需要考慮的一個(gè)主要因素。DSP芯片的運(yùn)算速度可以用以下幾種性能指標(biāo)來衡量:
(1) 指令周期:即執(zhí)行一條指令所需的時(shí)間,通常以ns(納秒)為單位。如TMS320LC549-80在主頻為80MHz時(shí)的指令周期為12.5ns;
(2) MAC時(shí)間:即一次乘法加上一次加法的時(shí)間。大部分DSP芯片可在一個(gè)指令周期內(nèi)完成一次乘法和加法操作,如TMS320LC549-80的MAC時(shí)間就是12.5ns;
(3) FFT執(zhí)行時(shí)間:即運(yùn)行一個(gè)N點(diǎn)FFT程序所需的時(shí)間。由于FFT運(yùn)算涉及的運(yùn)算在數(shù)字信號(hào)處理中很有代表性,因此FFT運(yùn)算時(shí)間常作為衡量DSP芯片運(yùn)算能力的一個(gè)指標(biāo);
(4) MIPS:即每秒執(zhí)行百萬條指令。如TMS320LC549-80的處理能力為80 MIPS,即每秒可執(zhí)行八千萬條指令;
(5)MOPS:即每秒執(zhí)行百萬次操作。如TMS320C40的運(yùn)算能力為275 MOPS;
(6) MFLOPS:即每秒執(zhí)行百萬次浮點(diǎn)操作。如TMS320C31在主頻為40MHz時(shí)的處理能力為40 MFLOPS;
(7)BOPS:即每秒執(zhí)行十億次操作。如TMS320C80的處理能力為2 BOPS。
2.DSP芯片的價(jià)格。
DSP芯片的價(jià)格也是選擇DSP芯片所需考慮的一個(gè)重要因素。如果采用價(jià)格昂貴的DSP芯片,即使性能再高,其應(yīng)用范圍肯定會(huì)受到一定的限制,尤其是民用產(chǎn)品。因此根據(jù)實(shí)際系統(tǒng)的應(yīng)用情況,需確定一個(gè)價(jià)格適中的DSP芯片。當(dāng)然,由于DSP芯片發(fā)展迅速,DSP芯片的價(jià)格往往下降較快,因此在開發(fā)階段選用某種價(jià)格稍貴的DSP芯片,等到系統(tǒng)開發(fā)完畢,其價(jià)格可能已經(jīng)下降一半甚至更多。
3.DSP芯片的硬件資源。
不同的DSP芯片所提供的硬件資源是不相同的,如片內(nèi)RAM、ROM的數(shù)量,外部可擴(kuò)展的程序和數(shù)據(jù)空間,總線接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54X系列),系列中不同DSP芯片也具有不同的內(nèi)部硬件資源,可以適應(yīng)不同的需要。
4.DSP芯片的運(yùn)算精度。
一般的定點(diǎn)DSP芯片的字長為16位,如TMS320系列。但有的公司的定點(diǎn)芯片為24位,如Motorola公司的MC56001等。浮點(diǎn)芯片的字長一般為32位,累加器為40位。
5.DSP芯片的開發(fā)工具。
在DSP系統(tǒng)的開發(fā)過程中,開發(fā)工具是必不可少的。如果沒有開發(fā)工具的支持,要想開發(fā)一個(gè)復(fù)雜的DSP系統(tǒng)幾乎是不可能的。如果有功能強(qiáng)大的開發(fā)工具的支持,如C語言支持,則開發(fā)的時(shí)間就會(huì)大大縮短。所以,在選擇DSP芯片的同時(shí)必須注意其開發(fā)工具的支持情況,包括軟件和硬件的開發(fā)工具。
6.DSP芯片的功耗。
在某些DSP應(yīng)用場合,功耗也是一個(gè)需要特別注意的問題。如便攜式的DSP設(shè)備、手持設(shè)備、野外應(yīng)用的DSP設(shè)備等都對(duì)功耗有特殊的要求。目前,3.3V供電的低功耗高速DSP芯片已大量使用。
7.其他。
除了上述因素外,選擇DSP芯片還應(yīng)考慮到封裝的形式、質(zhì)量標(biāo)準(zhǔn)、供貨情況、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多種封裝形式。有些DSP系統(tǒng)可能最終要求的是工業(yè)級(jí)或軍用級(jí)標(biāo)準(zhǔn),在選擇時(shí)就需要注意到所選的芯片是否有工業(yè)級(jí)或軍用級(jí)的同類產(chǎn)品。如果所設(shè)計(jì)的DSP系統(tǒng)不僅僅是一個(gè)實(shí)驗(yàn)系統(tǒng),而是需要批量生產(chǎn)并可能有幾年甚至十幾年的生命周期,那么需要考慮所選的DSP芯片供貨情況如何,是否也有同樣甚至更長的生命周期等。
在上述諸多因素中,一般而言,定點(diǎn)DSP芯片的價(jià)格較便宜,功耗較低,但運(yùn)算精度稍低。而浮點(diǎn)DSP芯片的優(yōu)點(diǎn)是運(yùn)算精度高,且C語言編程調(diào)試方便,但價(jià)格稍貴,功耗也較大。例如TI的TMS320C2XX/C54X系列屬于定點(diǎn)DSP芯片,低功耗和低成本是其主要的特點(diǎn)。而TMS320C3X/C4X/C67X屬于浮點(diǎn)DSP芯片,運(yùn)算精度高,用C語言編程方便,開發(fā)周期短,但同時(shí)其價(jià)格和功耗也相對(duì)較高。
DSP應(yīng)用系統(tǒng)的運(yùn)算量是確定選用處理能力為多大的DSP芯片的基礎(chǔ)。運(yùn)算量小則可以選用處理能力不是很強(qiáng)的DSP芯片,從而可以降低系統(tǒng)成本。相反,運(yùn)算量大的DSP系統(tǒng)則必須選用處理能力強(qiáng)的DSP芯片,如果DSP芯片的處理能力達(dá)不到系統(tǒng)要求,則必須用多個(gè)DSP芯片并行處理。那么如何確定DSP系統(tǒng)的運(yùn)算量以選擇DSP芯片呢?下面我們來考慮兩種情況。
1.按樣點(diǎn)處理
所謂按樣點(diǎn)處理就是DSP算法對(duì)每一個(gè)輸入樣點(diǎn)循環(huán)一次。數(shù)字濾波就是這種情況。在數(shù)字濾波器中,通常需要對(duì)每一個(gè)輸入樣點(diǎn)計(jì)算一次。例如,一個(gè)采用LMS算法的256 抽頭的自適應(yīng)FIR濾波器,假定每個(gè)抽頭的計(jì)算需要3個(gè)MAC周期,則256抽頭計(jì)算需要256×3=768個(gè)MAC周期。如果采樣頻率為8kHz,即樣點(diǎn)之間的間隔為125ms,DSP芯片的MAC周期為200ns,則768個(gè)MAC周期需要153.6ms的時(shí)間,顯然無法實(shí)時(shí)處理,需要選用速度更高的DSP芯片。表1.3示出了兩種信號(hào)帶寬對(duì)三種 DSP 芯片的處理要求,三種DSP芯片的MAC周期分別為200ns、50ns和25ns。從表中可以看出,對(duì)話帶的應(yīng)用,后兩種DSP芯片可以實(shí)時(shí)實(shí)現(xiàn),對(duì)聲頻應(yīng)用,只有第三種DSP芯片能夠?qū)崟r(shí)處理。當(dāng)然,在這個(gè)例子中,沒有考慮其他的運(yùn)算量。
2.按幀處理 有些數(shù)字信號(hào)處理算法不是每個(gè)輸入樣點(diǎn)循環(huán)一次,而是每隔一定的時(shí)間間隔(通常稱為幀)循環(huán)一次。例如,中低速語音編碼算法通常以10ms或20ms為一幀,每隔10ms或20ms語音編碼算法循環(huán)一次。所以,選擇DSP芯片時(shí)應(yīng)該比較一幀內(nèi)DSP芯片的處理能力和DSP算法的運(yùn)算量。假設(shè)DSP芯片的指令周期為 p(ns),一幀的時(shí)間為Dt
(ns),則該DSP芯片在一幀內(nèi)所能提供的最大運(yùn)算量為 Dt/p條指令。例如TMS320LC549-80的指令周期為12.5ns,設(shè)幀長為20ms,則一幀內(nèi)TMS320LC549-80所能提供的最大運(yùn)算量為160萬條指令。因此,只要語音編碼算法的運(yùn)算量不超過160萬條指令,就可以在TMS320LC549-80上實(shí)時(shí)運(yùn)行。
DSP芯片的應(yīng)用
自從20世紀(jì)70年代末80年代初DSP芯片誕生以來,DSP芯片得到了飛速的發(fā)展。DSP芯片的高速發(fā)展,一方面得益于集成電路技術(shù)的發(fā)展,另一方面也得益于巨大的市場。在近20年時(shí)間里,DSP芯片已經(jīng)在信號(hào)處理、通信、雷達(dá)等許多領(lǐng)域得到廣泛的應(yīng)用。目前,DSP芯片的價(jià)格越來越低,性能價(jià)格比日益提高,具有巨大的應(yīng)用潛力。DSP芯片的應(yīng)用主要有:
(1) 信號(hào)處理——如數(shù)字濾波、自適應(yīng)濾波、快速傅立葉變換、相關(guān)運(yùn)算、譜分析、卷積、模式匹配、加窗、波形產(chǎn)生等;
(2) 通信——如調(diào)制解調(diào)器、自適應(yīng)均衡、數(shù)據(jù)加密、數(shù)據(jù)壓縮、回波抵消、多路復(fù)用、傳真、擴(kuò)頻通信、糾錯(cuò)編碼、可視電話等;
(3) 語音——如語音編碼、語音合成、語音識(shí)別、語音增強(qiáng)、說話人辨認(rèn)、說話人確認(rèn)、語音郵件、語音存儲(chǔ)等;
(4) 圖形/圖像——如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強(qiáng)、動(dòng)畫、機(jī)器人視覺等;
(5) 軍事——如保密通信、雷達(dá)處理、聲納處理、導(dǎo)航、導(dǎo)彈制導(dǎo)等;
(6) 儀器儀表——如頻譜分析、函數(shù)發(fā)生、鎖相環(huán)、地震處理等;
(7) 自動(dòng)控制——如引擎控制、聲控、自動(dòng)駕駛、機(jī)器人控制、磁盤控制等;
(8) 醫(yī)療——如助聽、超聲設(shè)備、診斷工具、病人監(jiān)護(hù)等;
(9) 家用電器——如高保真音響、音樂合成、音調(diào)控制、玩具與游戲、數(shù)字電話/電視等。
隨著DSP芯片性能價(jià)格比的不斷提高,可以預(yù)見DSP芯片將會(huì)在更多的領(lǐng)域內(nèi)得到更為廣泛的應(yīng)用。
數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。
數(shù)字信號(hào)處理是圍繞著數(shù)字信號(hào)處理的理論、實(shí)現(xiàn)和應(yīng)用等幾個(gè)方面發(fā)展起來的。數(shù)字信號(hào)處理在理論上的發(fā)展推動(dòng)了數(shù)字信號(hào)處理應(yīng)用的發(fā)展。反過來,數(shù)字信號(hào)處理的應(yīng)用又促進(jìn)了數(shù)字信號(hào)處理理論的提高。而數(shù)字信號(hào)處理的實(shí)現(xiàn)則是理論和應(yīng)用之間的橋梁。
數(shù)字信號(hào)處理是以眾多學(xué)科為理論基礎(chǔ)的,它所涉及的范圍極其廣泛。例如,在數(shù)學(xué)領(lǐng)域,微積分、概率統(tǒng)計(jì)、隨機(jī)過程、數(shù)值分析等都是數(shù)字信號(hào)處理的基本工具,與網(wǎng)絡(luò)理論、信號(hào)與系統(tǒng)、控制論、通信理論、故障診斷等也密切相關(guān)。近來新興的一些學(xué)科,如人工智能、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等,都與數(shù)字信號(hào)處理密不可分??梢哉f,數(shù)字信號(hào)處理是把許多經(jīng)典的理論體系作為自己的理論基礎(chǔ),同時(shí)又使自己成為一系列新興學(xué)科的理論基礎(chǔ)。
數(shù)字信號(hào)處理的實(shí)現(xiàn)方法一般有以下幾種:
(1) 在通用的計(jì)算機(jī)(如PC機(jī))上用軟件(如Fortran、C語言)實(shí)現(xiàn);
(2) 在通用計(jì)算機(jī)系統(tǒng)中加上專用的加速處理機(jī)實(shí)現(xiàn);
(3) 用通用的單片機(jī)(如MCS-51、96系列等)實(shí)現(xiàn),這種方法可用于一些不太復(fù)雜的數(shù)字信號(hào)處理,如數(shù)字控制等;
(4) 用通用的可編程DSP芯片實(shí)現(xiàn)。與單片機(jī)相比,DSP芯片具有更加適合于數(shù)字信號(hào)處理的軟件和硬件資源,可用于 復(fù)雜的數(shù)字信號(hào)處理算法;
(5) 用專用的DSP芯片實(shí)現(xiàn)。在一些特殊的場合,要求的信號(hào)處理速度極高,用通用DSP芯片很難實(shí)現(xiàn),例如專用于 FFT、數(shù)字濾波、卷積、相關(guān)等算法的DSP芯片,這種芯片將相應(yīng)的信號(hào)處理算法在芯片內(nèi)部用硬件實(shí)現(xiàn),無需進(jìn)行編程。
在上述幾種方法中,第1種方法的缺點(diǎn)是速度較慢,一般可用于DSP算法的模擬;第2種和第5種方法專用性強(qiáng),應(yīng)用受到很大的限制,第2種方法也不便于系統(tǒng)的獨(dú)立運(yùn)行;第3種方法只適用于實(shí)現(xiàn)簡單的DSP算法;只有第4種方法才使數(shù)字信號(hào)處理的應(yīng)用打開了新的局面。
雖然數(shù)字信號(hào)處理的理論發(fā)展迅速,但在20世紀(jì)80年代以前,由于實(shí)現(xiàn)方法的限制,數(shù)字信號(hào)處理的理論還得不到廣泛的應(yīng)用。直到20世紀(jì)70年代末80年代初世界上第一片單片可編程DSP芯片的誕生,才將理論研究結(jié)果廣泛應(yīng)用到低成本的實(shí)際系統(tǒng)中,并且推動(dòng)了新的理論和應(yīng)用領(lǐng)域的發(fā)展??梢院敛豢鋸埖卣f,DSP芯片的誕生及發(fā)展對(duì)近20年來通信、計(jì)算機(jī)、控制等領(lǐng)域的技術(shù)發(fā)展起到十分重要的作用。
在DSP系統(tǒng)中,輸入信號(hào)可以有各種各樣的形式。例如,它可以是麥克風(fēng)輸出的語音信號(hào)或是電話線來的已調(diào)數(shù)據(jù)信號(hào),可以是編碼后在數(shù)字鏈路上傳輸或存儲(chǔ)在計(jì)算機(jī)里的攝像機(jī)圖像信號(hào)等。
輸入信號(hào)首先進(jìn)行帶限濾波和抽樣,然后進(jìn)行A/D(Analog toDigital)變換將信號(hào)變換成數(shù)字比特流。根據(jù)奈奎斯特抽樣定理,為保證信息不丟失,抽樣頻率至少必須是輸入帶限信號(hào)最高頻率的2倍。
DSP芯片的輸入是A/D變換后得到的以抽樣形式表示的數(shù)字信號(hào),DSP芯片對(duì)輸入的數(shù)字信號(hào)進(jìn)行某種形式的處理,如進(jìn)行一系列的乘累加操作(MAC)。數(shù)字處理是DSP的關(guān)鍵,這與其他系統(tǒng)(如電話交換系統(tǒng))有很大的不同,在交換 系統(tǒng)中,處理器的作用是進(jìn)行路由選擇,它并不對(duì)輸入數(shù)據(jù)進(jìn)行修改。因此雖然兩者都是實(shí)時(shí)系統(tǒng),但兩者的實(shí)時(shí)約束條件卻有很大的不同。最后,經(jīng)過處理后的數(shù)字樣值再經(jīng)D/A(Digital toAnalog)變換轉(zhuǎn)換為模擬樣值,之后再進(jìn)行內(nèi)插和平滑濾波就可得到連續(xù)的模擬波形。
必須指出的是,上面給出的DSP系統(tǒng)模型是一個(gè)典型模型,但并不是所有的DSP系統(tǒng)都必須具有模型中的所有部件。如語音識(shí)別系統(tǒng)在輸出端并不是連續(xù)的波形,而是識(shí)別結(jié)果,如數(shù)字、文字等;有些輸入信號(hào)本身就是數(shù)字信號(hào)(如CD:Compact Disk),因此就不必進(jìn)行模數(shù)變換了。
數(shù)字信號(hào)處理系統(tǒng)是以數(shù)字信號(hào)處理為基礎(chǔ),因此具有數(shù)字處理的全部優(yōu)點(diǎn):
(1) 接口方便。DSP系統(tǒng)與其他以現(xiàn)代數(shù)字技術(shù)為基礎(chǔ)的系統(tǒng)或設(shè)備都是相互兼容的,與這樣的系統(tǒng)接口以實(shí)現(xiàn)某種功能要比模擬系統(tǒng)與這些系統(tǒng)接口要容易得多;
(2) 編程方便。DSP系統(tǒng)中的可編程DSP芯片可使設(shè)計(jì)人員在開發(fā)過程中靈活方便地對(duì)軟件進(jìn)行修改和升級(jí);
(3) 穩(wěn)定性好。DSP系統(tǒng)以數(shù)字處理為基礎(chǔ),受環(huán)境溫度以及噪聲的影響較小,可靠性高; (4) 精度高。16位數(shù)字系統(tǒng)可以達(dá)到10^(-5)的精度;
(5) 可重復(fù)性好。模擬系統(tǒng)的性能受元器件參數(shù)性能變化比較大,而數(shù)字系統(tǒng)基本不受影響,因此數(shù)字系統(tǒng)便于測試、調(diào)試和大規(guī)模生產(chǎn);
(6) 集成方便。DSP系統(tǒng)中的數(shù)字部件有高度的規(guī)范性,便于大規(guī)模集成。
當(dāng)然,數(shù)字信號(hào)處理也存在一定的缺點(diǎn)。例如,對(duì)于簡單的信號(hào)處理任務(wù),如與模擬交換線的電話接口,若采用DSP則使成本增加。DSP系統(tǒng)中的高速時(shí)鐘可能帶來高頻干擾和電磁泄漏等問題,而且DSP系統(tǒng)消耗的功率也較大。此外,D SP技術(shù)更新的速度快,數(shù)學(xué)知識(shí)要求多,開發(fā)和調(diào)試工具還不盡完善。
雖然DSP系統(tǒng)存在著一些缺點(diǎn),但其突出的優(yōu)點(diǎn)已經(jīng)使之在通信、語音、圖像、雷達(dá)、生物醫(yī)學(xué)、工業(yè)控制、儀器儀表等許多領(lǐng)域得到越來越廣泛的應(yīng)用。
總的來說,DSP系統(tǒng)的設(shè)計(jì)還沒有非常好的正規(guī)設(shè)計(jì)方法。
在設(shè)計(jì) DSP 系統(tǒng)之前,首先必須根據(jù)應(yīng)用系統(tǒng)的目標(biāo)確定系統(tǒng)的性能指標(biāo)、信號(hào)處理的要求,通??捎脭?shù)據(jù)流程圖、數(shù)學(xué)運(yùn)算序列、正式的符號(hào)或自然語言來描述。
第二步是根據(jù)系統(tǒng)的要求進(jìn)行高級(jí)語言的模擬。一般來說,為了實(shí)現(xiàn)系統(tǒng)的最終目標(biāo),需要對(duì)輸入的信號(hào)進(jìn)行適當(dāng)?shù)奶幚?,而處理方法的不同?huì)導(dǎo)致不同的系統(tǒng)性能,要得到最佳的系統(tǒng)性能,就必須在這一步確定最佳的處理方法,即數(shù)字信號(hào)處理的算法(Algorithm),因此這一步也稱算法模擬階段。例如,語音壓縮編碼算法就是要在確定的壓縮比條件下,獲得最佳的合成語音。算法模擬所用的輸入數(shù)據(jù)是實(shí)際信號(hào)經(jīng)采集而獲得的,通常以計(jì)算機(jī)文件的形式存儲(chǔ)為數(shù)據(jù)文件。如語音壓縮編碼算法模擬時(shí)所用的語音信號(hào)就是實(shí)際采集而獲得并存儲(chǔ)為計(jì)算機(jī)文件形式的語音數(shù)據(jù)文件。有些算法模擬時(shí)所用的輸入數(shù)據(jù)并不一定要是實(shí)際采集的信號(hào)數(shù)據(jù),只要能夠驗(yàn)證算法的可行性,輸入假設(shè)的數(shù)據(jù)也是可以的。
在完成第二步之后,接下來就可以設(shè)計(jì)實(shí)時(shí)DSP系統(tǒng),實(shí)時(shí)DSP系統(tǒng)的設(shè)計(jì)包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)方面。硬件設(shè)計(jì)首先要根據(jù)系統(tǒng)運(yùn)算量的大小、對(duì)運(yùn)算精度的要求、系統(tǒng)成本限制以及體積、功耗等要求選擇合適的DSP芯片。然后設(shè)計(jì)DSP芯片的外圍電路及其他電路。軟件設(shè)計(jì)和編程主要根據(jù)系統(tǒng)要求和所選的DSP芯片編寫相應(yīng)的DSP匯編程序,若系統(tǒng)運(yùn)算量不大且有高級(jí)語言編譯器支持,也可用高級(jí)語言(如C語言)編程。由于現(xiàn)有的高級(jí)語言編譯器的效率還比不上手工編寫匯編語言的效率,因此在實(shí)際應(yīng)用系統(tǒng)中常常采用高級(jí)語言和匯編語言的混合編程方法,即在算法運(yùn)算量大的地方,用手工編寫的方法編寫匯編語言,而運(yùn)算量不大的地方則采用高級(jí)語言。采用這種方法,既可縮短軟件開發(fā)的周期,提高程序的可讀性和可移植性,又能滿足系統(tǒng)實(shí)時(shí)運(yùn)算的要求。
DSP硬件和軟件設(shè)計(jì)完成后,就需要進(jìn)行硬件和軟件的調(diào)試。軟件的調(diào)試一般借助于DSP開發(fā)工具,如軟件模擬器、DSP開發(fā)系統(tǒng)或仿真器等。調(diào)試DSP算法時(shí)一般采用比較實(shí)時(shí)結(jié)果與模擬結(jié)果的方法,如果實(shí)時(shí)程序和模擬程序的輸入相同,則兩者的輸出應(yīng)該一致。應(yīng)用系統(tǒng)的其他軟件可以根據(jù)實(shí)際情況進(jìn)行調(diào)試。硬件調(diào)試一般采用硬件仿真器進(jìn)行調(diào)試,如果沒有相應(yīng)的硬件仿真器,且硬件系統(tǒng)不是十分復(fù)雜,也可以借助于一般的工具進(jìn)行調(diào)試。
系統(tǒng)的軟件和硬件分別調(diào)試完成后,就可以將軟件脫離開發(fā)系統(tǒng)而直接在應(yīng)用系統(tǒng)上運(yùn)行。當(dāng)然,DSP系統(tǒng)的開發(fā),特別是軟件開發(fā)是一個(gè)需要反復(fù)進(jìn)行的過程,雖然通過算法模擬基本上可以知道實(shí)時(shí)系統(tǒng)的性能,但實(shí)際上模擬環(huán)境不可能做到與實(shí)時(shí)系統(tǒng)環(huán)境完全一致,而且將模擬算法移植到實(shí)時(shí)系統(tǒng)時(shí)必須考慮算法是否能夠?qū)崟r(shí)運(yùn)行的問題。如果算法運(yùn)算量太大不能在硬件上實(shí)時(shí)運(yùn)行,則必須重新修改或簡化算法。
DSP芯片,也稱數(shù)字信號(hào)處理器,是一種特別適合于進(jìn)行數(shù)字信號(hào)處理運(yùn)算的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。根據(jù)數(shù)字信號(hào)處理的要求,DSP芯片一般具有如下主要特點(diǎn):
(1)在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法;
(2)程序和數(shù)據(jù)空間分開,可以同時(shí)訪問指令和數(shù)據(jù);
(3)片內(nèi)具有快速 RAM,通??赏ㄟ^獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問;
(4)具有低開銷或無開銷循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個(gè)操作;
(8)支持流水線操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。
DSP芯片的發(fā)展
世界上第一個(gè)單片 DSP 芯片應(yīng)當(dāng)是1978年 AMI公司發(fā)布的 S2811,1979年美國Intel公司發(fā)布的商用可編程器件2920是DSP芯片的一個(gè)主要里程碑。這兩種芯片內(nèi)部都沒有現(xiàn)代DSP芯片所必須有的單周期乘法器。1980年,日本 NEC 公司推出的μP D7720是第一個(gè)具有乘法器的商用 DSP 芯片。
在這之后,最成功的DSP 芯片當(dāng)數(shù)美國德州儀器公司(Texas Instruments,簡稱TI)的一系列產(chǎn)品。TI 公司在1982年成功推出其第一代 DSP 芯片 TMS32010及其系列產(chǎn)品TMS32011、TMS320C10/C14/C15/C16/C17等,之后相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改進(jìn)型TMS320C2XX,集多片DSP芯片于一體的高性能DSP芯片TMS320C8X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI將常用的DSP芯片歸納為三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。如今,TI公司的一系列DSP產(chǎn)品已經(jīng)成為當(dāng)今世界上最有影響的DSP芯片。TI公司也成為世界上最大的 DSP 芯片供應(yīng)商,其DSP市場份額占全世界份額近 50%。
第一個(gè)采用CMOS工藝生產(chǎn)浮點(diǎn)DSP芯片的是日本的 Hitachi 公司,它于1982年推出了浮點(diǎn)DSP芯片。1983 年 日本Fujitsu 公司推出的MB8764,其指令周期為 120ns,且具有雙內(nèi)部總線,從而使處理吞吐量發(fā)生了一個(gè)大的飛躍。而第一個(gè)高性能浮點(diǎn)DSP芯片應(yīng)是 AT&T 公司于1984 年推出的DSP32。
與其他公司相比,Motorola公司在推出 DSP 芯片方面相對(duì)較晚。1986年,該公司推出了定點(diǎn)處理器MC56001。1990年,推出了與IEEE 浮點(diǎn)格式兼容的浮點(diǎn) DSP 芯片 MC96002。
美國模擬器件公司(AnalogDevices,簡稱AD)在DSP芯片市場上也占有一定的份額,相繼推出了一系列具有自己特點(diǎn)的DSP芯片,其定點(diǎn)DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/2162/2164以及ADSP2171/2181,浮點(diǎn)DSP芯片有ADSP21000/21020、ADSP21060/21062等。自1980年以來,DSP芯片得到了突飛猛進(jìn)的發(fā)展,DSP芯片的應(yīng)用越來越廣泛。從運(yùn)算速度來看,MAC(一次乘法和一次加法)時(shí)間已經(jīng)從20世紀(jì)80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),處理能力提高了幾十倍。DSP芯片內(nèi)部關(guān)鍵的乘法器部件從1980年的占模片區(qū)(diearea)的40%左右下降到5%以下,片內(nèi)RAM數(shù)量增加一個(gè)數(shù)量級(jí)以上。
從制造工藝來看,1980年采用4μm的 N溝道MOS(NMOS)工藝,而現(xiàn)在則普遍采用亞微米(Micron)CMOS工藝。DSP芯片的引腳數(shù)量從1980年的最多64個(gè)增加到現(xiàn)在的200個(gè)以上,引腳數(shù)量的增加,意味著結(jié)構(gòu)靈活性的增加,如外部存儲(chǔ)器的擴(kuò)展和處理器間的通信等。此外,DSP芯片的發(fā)展使DSP系統(tǒng)的成本、體積、重量和功耗都有很大程度的下降。表1.1 是TI公司DSP芯片1982年、1992年、1999年的比較表。表1.2則是世界上主要DSP芯片供應(yīng)商的代表芯片的一些數(shù)據(jù)。
DSP芯片可以按照下列三種方式進(jìn)行分類。
1.按基礎(chǔ)特性分
這是根據(jù)DSP芯片的工作時(shí)鐘和指令類型來分類的。如果在某時(shí)鐘頻率范圍內(nèi)的任何時(shí)鐘頻率上,DSP芯片都能正常工作,除計(jì)算速度有變化外,沒有性能的下降,這類DSP芯片一般稱為靜態(tài)DSP芯片。例如,日本OKI 電氣公司的DSP芯片、TI公司的TMS320C2XX系列芯片屬于這一類。
如果有兩種或兩種以上的DSP芯片,它們的指令集和相應(yīng)的機(jī)器代碼機(jī)管腳結(jié)構(gòu)相互兼容,則這類DSP芯片稱為一致性DSP芯片。例如,美國TI公司的TMS320C54X就屬于這一類。
2.按數(shù)據(jù)格式分
這是根據(jù)DSP芯片工作的數(shù)據(jù)格式來分類的。數(shù)據(jù)以定點(diǎn)格式工作的DSP芯片稱為定點(diǎn)DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮點(diǎn)格式工作的稱為浮點(diǎn)DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。
不同浮點(diǎn)DSP芯片所采用的浮點(diǎn)格式不完全一樣,有的DSP芯片采用自定義的浮點(diǎn)格式,如TMS320C3X,而有的DSP芯片則采用IEEE的標(biāo)準(zhǔn)浮點(diǎn)格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。
3.按用途分
按照DSP的用途來分,可分為通用型DSP芯片和專用型DSP芯片。通用型DSP芯片適合普通的DSP應(yīng)用,如TI公司的一系列DSP芯片屬于通用型DSP芯片。專用DSP芯片是為特定的DSP運(yùn)算而設(shè)計(jì)的,更適合特殊的運(yùn)算,如數(shù)字濾波、卷積和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就屬于專用型DSP芯片。
本書主要討論通用型DSP芯片。
DSP芯片的選擇 設(shè)計(jì)DSP應(yīng)用系統(tǒng),選擇DSP芯片是非常重要的一個(gè)環(huán)節(jié)。只有選定了DSP芯片,才能進(jìn)一步設(shè)計(jì)其外圍電路及系統(tǒng)的其他電路??偟膩碚f,DSP芯片的選擇應(yīng)根據(jù)實(shí)際的應(yīng)用系統(tǒng)需要而確定。不同的DSP應(yīng)用系統(tǒng)由于應(yīng)用場合、應(yīng)用目的等不盡相同,對(duì)DSP芯片的選擇也是不同的。一般來說,選擇DSP芯片時(shí)應(yīng)考慮到如下諸多因素。
1.DSP芯片的運(yùn)算速度。
運(yùn)算速度是DSP芯片的一個(gè)最重要的性能指標(biāo),也是選擇DSP芯片時(shí)所需要考慮的一個(gè)主要因素。DSP芯片的運(yùn)算速度可以用以下幾種性能指標(biāo)來衡量:
(1) 指令周期:即執(zhí)行一條指令所需的時(shí)間,通常以ns(納秒)為單位。如TMS320LC549-80在主頻為80MHz時(shí)的指令周期為12.5ns;
(2) MAC時(shí)間:即一次乘法加上一次加法的時(shí)間。大部分DSP芯片可在一個(gè)指令周期內(nèi)完成一次乘法和加法操作,如TMS320LC549-80的MAC時(shí)間就是12.5ns;
(3) FFT執(zhí)行時(shí)間:即運(yùn)行一個(gè)N點(diǎn)FFT程序所需的時(shí)間。由于FFT運(yùn)算涉及的運(yùn)算在數(shù)字信號(hào)處理中很有代表性,因此FFT運(yùn)算時(shí)間常作為衡量DSP芯片運(yùn)算能力的一個(gè)指標(biāo);
(4) MIPS:即每秒執(zhí)行百萬條指令。如TMS320LC549-80的處理能力為80 MIPS,即每秒可執(zhí)行八千萬條指令;
(5)MOPS:即每秒執(zhí)行百萬次操作。如TMS320C40的運(yùn)算能力為275 MOPS;
(6) MFLOPS:即每秒執(zhí)行百萬次浮點(diǎn)操作。如TMS320C31在主頻為40MHz時(shí)的處理能力為40 MFLOPS;
(7)BOPS:即每秒執(zhí)行十億次操作。如TMS320C80的處理能力為2 BOPS。
2.DSP芯片的價(jià)格。
DSP芯片的價(jià)格也是選擇DSP芯片所需考慮的一個(gè)重要因素。如果采用價(jià)格昂貴的DSP芯片,即使性能再高,其應(yīng)用范圍肯定會(huì)受到一定的限制,尤其是民用產(chǎn)品。因此根據(jù)實(shí)際系統(tǒng)的應(yīng)用情況,需確定一個(gè)價(jià)格適中的DSP芯片。當(dāng)然,由于DSP芯片發(fā)展迅速,DSP芯片的價(jià)格往往下降較快,因此在開發(fā)階段選用某種價(jià)格稍貴的DSP芯片,等到系統(tǒng)開發(fā)完畢,其價(jià)格可能已經(jīng)下降一半甚至更多。
3.DSP芯片的硬件資源。
不同的DSP芯片所提供的硬件資源是不相同的,如片內(nèi)RAM、ROM的數(shù)量,外部可擴(kuò)展的程序和數(shù)據(jù)空間,總線接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54X系列),系列中不同DSP芯片也具有不同的內(nèi)部硬件資源,可以適應(yīng)不同的需要。
4.DSP芯片的運(yùn)算精度。
一般的定點(diǎn)DSP芯片的字長為16位,如TMS320系列。但有的公司的定點(diǎn)芯片為24位,如Motorola公司的MC56001等。浮點(diǎn)芯片的字長一般為32位,累加器為40位。
5.DSP芯片的開發(fā)工具。
在DSP系統(tǒng)的開發(fā)過程中,開發(fā)工具是必不可少的。如果沒有開發(fā)工具的支持,要想開發(fā)一個(gè)復(fù)雜的DSP系統(tǒng)幾乎是不可能的。如果有功能強(qiáng)大的開發(fā)工具的支持,如C語言支持,則開發(fā)的時(shí)間就會(huì)大大縮短。所以,在選擇DSP芯片的同時(shí)必須注意其開發(fā)工具的支持情況,包括軟件和硬件的開發(fā)工具。
6.DSP芯片的功耗。
在某些DSP應(yīng)用場合,功耗也是一個(gè)需要特別注意的問題。如便攜式的DSP設(shè)備、手持設(shè)備、野外應(yīng)用的DSP設(shè)備等都對(duì)功耗有特殊的要求。目前,3.3V供電的低功耗高速DSP芯片已大量使用。
7.其他。
除了上述因素外,選擇DSP芯片還應(yīng)考慮到封裝的形式、質(zhì)量標(biāo)準(zhǔn)、供貨情況、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多種封裝形式。有些DSP系統(tǒng)可能最終要求的是工業(yè)級(jí)或軍用級(jí)標(biāo)準(zhǔn),在選擇時(shí)就需要注意到所選的芯片是否有工業(yè)級(jí)或軍用級(jí)的同類產(chǎn)品。如果所設(shè)計(jì)的DSP系統(tǒng)不僅僅是一個(gè)實(shí)驗(yàn)系統(tǒng),而是需要批量生產(chǎn)并可能有幾年甚至十幾年的生命周期,那么需要考慮所選的DSP芯片供貨情況如何,是否也有同樣甚至更長的生命周期等。
在上述諸多因素中,一般而言,定點(diǎn)DSP芯片的價(jià)格較便宜,功耗較低,但運(yùn)算精度稍低。而浮點(diǎn)DSP芯片的優(yōu)點(diǎn)是運(yùn)算精度高,且C語言編程調(diào)試方便,但價(jià)格稍貴,功耗也較大。例如TI的TMS320C2XX/C54X系列屬于定點(diǎn)DSP芯片,低功耗和低成本是其主要的特點(diǎn)。而TMS320C3X/C4X/C67X屬于浮點(diǎn)DSP芯片,運(yùn)算精度高,用C語言編程方便,開發(fā)周期短,但同時(shí)其價(jià)格和功耗也相對(duì)較高。
DSP應(yīng)用系統(tǒng)的運(yùn)算量是確定選用處理能力為多大的DSP芯片的基礎(chǔ)。運(yùn)算量小則可以選用處理能力不是很強(qiáng)的DSP芯片,從而可以降低系統(tǒng)成本。相反,運(yùn)算量大的DSP系統(tǒng)則必須選用處理能力強(qiáng)的DSP芯片,如果DSP芯片的處理能力達(dá)不到系統(tǒng)要求,則必須用多個(gè)DSP芯片并行處理。那么如何確定DSP系統(tǒng)的運(yùn)算量以選擇DSP芯片呢?下面我們來考慮兩種情況。
1.按樣點(diǎn)處理
所謂按樣點(diǎn)處理就是DSP算法對(duì)每一個(gè)輸入樣點(diǎn)循環(huán)一次。數(shù)字濾波就是這種情況。在數(shù)字濾波器中,通常需要對(duì)每一個(gè)輸入樣點(diǎn)計(jì)算一次。例如,一個(gè)采用LMS算法的256 抽頭的自適應(yīng)FIR濾波器,假定每個(gè)抽頭的計(jì)算需要3個(gè)MAC周期,則256抽頭計(jì)算需要256×3=768個(gè)MAC周期。如果采樣頻率為8kHz,即樣點(diǎn)之間的間隔為125ms,DSP芯片的MAC周期為200ns,則768個(gè)MAC周期需要153.6ms的時(shí)間,顯然無法實(shí)時(shí)處理,需要選用速度更高的DSP芯片。表1.3示出了兩種信號(hào)帶寬對(duì)三種 DSP 芯片的處理要求,三種DSP芯片的MAC周期分別為200ns、50ns和25ns。從表中可以看出,對(duì)話帶的應(yīng)用,后兩種DSP芯片可以實(shí)時(shí)實(shí)現(xiàn),對(duì)聲頻應(yīng)用,只有第三種DSP芯片能夠?qū)崟r(shí)處理。當(dāng)然,在這個(gè)例子中,沒有考慮其他的運(yùn)算量。
2.按幀處理 有些數(shù)字信號(hào)處理算法不是每個(gè)輸入樣點(diǎn)循環(huán)一次,而是每隔一定的時(shí)間間隔(通常稱為幀)循環(huán)一次。例如,中低速語音編碼算法通常以10ms或20ms為一幀,每隔10ms或20ms語音編碼算法循環(huán)一次。所以,選擇DSP芯片時(shí)應(yīng)該比較一幀內(nèi)DSP芯片的處理能力和DSP算法的運(yùn)算量。假設(shè)DSP芯片的指令周期為 p(ns),一幀的時(shí)間為Dt
(ns),則該DSP芯片在一幀內(nèi)所能提供的最大運(yùn)算量為 Dt/p條指令。例如TMS320LC549-80的指令周期為12.5ns,設(shè)幀長為20ms,則一幀內(nèi)TMS320LC549-80所能提供的最大運(yùn)算量為160萬條指令。因此,只要語音編碼算法的運(yùn)算量不超過160萬條指令,就可以在TMS320LC549-80上實(shí)時(shí)運(yùn)行。
DSP芯片的應(yīng)用
自從20世紀(jì)70年代末80年代初DSP芯片誕生以來,DSP芯片得到了飛速的發(fā)展。DSP芯片的高速發(fā)展,一方面得益于集成電路技術(shù)的發(fā)展,另一方面也得益于巨大的市場。在近20年時(shí)間里,DSP芯片已經(jīng)在信號(hào)處理、通信、雷達(dá)等許多領(lǐng)域得到廣泛的應(yīng)用。目前,DSP芯片的價(jià)格越來越低,性能價(jià)格比日益提高,具有巨大的應(yīng)用潛力。DSP芯片的應(yīng)用主要有:
(1) 信號(hào)處理——如數(shù)字濾波、自適應(yīng)濾波、快速傅立葉變換、相關(guān)運(yùn)算、譜分析、卷積、模式匹配、加窗、波形產(chǎn)生等;
(2) 通信——如調(diào)制解調(diào)器、自適應(yīng)均衡、數(shù)據(jù)加密、數(shù)據(jù)壓縮、回波抵消、多路復(fù)用、傳真、擴(kuò)頻通信、糾錯(cuò)編碼、可視電話等;
(3) 語音——如語音編碼、語音合成、語音識(shí)別、語音增強(qiáng)、說話人辨認(rèn)、說話人確認(rèn)、語音郵件、語音存儲(chǔ)等;
(4) 圖形/圖像——如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強(qiáng)、動(dòng)畫、機(jī)器人視覺等;
(5) 軍事——如保密通信、雷達(dá)處理、聲納處理、導(dǎo)航、導(dǎo)彈制導(dǎo)等;
(6) 儀器儀表——如頻譜分析、函數(shù)發(fā)生、鎖相環(huán)、地震處理等;
(7) 自動(dòng)控制——如引擎控制、聲控、自動(dòng)駕駛、機(jī)器人控制、磁盤控制等;
(8) 醫(yī)療——如助聽、超聲設(shè)備、診斷工具、病人監(jiān)護(hù)等;
(9) 家用電器——如高保真音響、音樂合成、音調(diào)控制、玩具與游戲、數(shù)字電話/電視等。
隨著DSP芯片性能價(jià)格比的不斷提高,可以預(yù)見DSP芯片將會(huì)在更多的領(lǐng)域內(nèi)得到更為廣泛的應(yīng)用。
模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
c語言相關(guān)文章:c語言教程
聲控?zé)粝嚓P(guān)文章:聲控?zé)粼?/a> 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理 鎖相環(huán)相關(guān)文章:鎖相環(huán)原理
評(píng)論