DSP入門前的背景知識

       數字信號處理(DigitalSignal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用於許多領域的新興學科。20世紀60年代以來,隨着計算機和信息技術的飛速發展,數字信號處理技術應運而生並得到迅速的發展。在過去的二十多年時間裏,數字信號處理已經在通信等領域得到極爲廣泛的應用。 
      數字信號處理是利用計算機或專用處理設備,以數字形式對信號進行採集、變換、濾波、估值、增強、壓縮、識別等處理,以得到符合人們需要的信號形式。 
       數字信號處理是圍繞着數字信號處理的理論、實現和應用等幾個方面發展起來的。數字信號處理在理論上的發展推動了數字信號處理應用的發展。反過來,數字信號處理的應用又促進了數字信號處理理論的提高。而數字信號處理的實現則是理論和應用之間的橋樑。 
    數字信號處理是以衆多學科爲理論基礎的,它所涉及的範圍極其廣泛。例如,在數學領域,微積分、概率統計、隨機過程、數值分析等都是數字信號處理的基本工具,與網絡理論、信號與系統、控制論、通信理論、故障診斷等也密切相關。近來新興的一些學科,如人工智能、模式識別、神經網絡等,都與數字信號處理密不可分。可以說,數字信號處理是把許多經典的理論體系作爲自己的理論基礎,同時又使自己成爲一系列新興學科的理論基礎。 

    數字信號處理的實現方法一般有以下幾種: 
      (1) 在通用的計算機(如PC機)上用軟件(如Fortran、C語言)實現; 
      (2) 在通用計算機系統中加上專用的加速處理機實現; 
      (3) 用通用的單片機(如MCS-51、96系列等)實現,這種方法可用於一些不太複雜的數字信號處理,如數字控制等; 
      (4) 用通用的可編程DSP芯片實現。與單片機相比,DSP芯片具有更加適合於數字信號處理的軟件和硬件資源,可用於 複雜的數字信號處理算法; 
      (5) 用專用的DSP芯片實現。在一些特殊的場合,要求的信號處理速度極高,用通用DSP芯片很難實現,例如專用於    FFT、數字濾波、卷積、相關等算法的DSP芯片,這種芯片將相應的信號處理算法在芯片內部用硬件實現,無需進行編程。 
    在上述幾種方法中,第1種方法的缺點是速度較慢,一般可用於DSP算法的模擬;第2種和第5種方法專用性強,應用受到很大的限制,第2種方法也不便於系統的獨立運行;第3種方法只適用於實現簡單的DSP算法;只有第4種方法才使數字信號處理的應用打開了新的局面。 
       雖然數字信號處理的理論發展迅速,但在20世紀80年代以前,由於實現方法的限制,數字信號處理的理論還得不到廣泛的應用。直到20世紀70年代末80年代初世界上第一片單片可編程DSP芯片的誕生,纔將理論研究結果廣泛應用到低成本的實際系統中,並且推動了新的理論和應用領域的發展。可以毫不誇張地說,DSP芯片的誕生及發展對近20年來通信、計算機、控制等領域的技術發展起到十分重要的作用。 

    在DSP系統中,輸入信號可以有各種各樣的形式。例如,它可以是麥克風輸出的語音信號或是電話線來的已調數據信號,可以是編碼後在數字鏈路上傳輸或存儲在計算機裏的攝像機圖像信號等。 
    輸入信號首先進行帶限濾波和抽樣,然後進行A/D(Analog toDigital)變換將信號變換成數字比特流。根據奈奎斯特抽樣定理,爲保證信息不丟失,抽樣頻率至少必須是輸入帶限信號最高頻率的2倍。 
    DSP芯片的輸入是A/D變換後得到的以抽樣形式表示的數字信號,DSP芯片對輸入的數字信號進行某種形式的處理,如進行一系列的乘累加操作(MAC)。數字處理是DSP的關鍵,這與其他系統(如電話交換系統)有很大的不同,在交換    系統中,處理器的作用是進行路由選擇,它並不對輸入數據進行修改。因此雖然兩者都是實時系統,但兩者的實時約束條件卻有很大的不同。最後,經過處理後的數字樣值再經D/A(Digital toAnalog)變換轉換爲模擬樣值,之後再進行內插和平滑濾波就可得到連續的模擬波形。 
    必須指出的是,上面給出的DSP系統模型是一個典型模型,但並不是所有的DSP系統都必須具有模型中的所有部件。如語音識別系統在輸出端並不是連續的波形,而是識別結果,如數字、文字等;有些輸入信號本身就是數字信號(如CD:Compact Disk),因此就不必進行模數變換了。 
    數字信號處理系統是以數字信號處理爲基礎,因此具有數字處理的全部優點: 
(1) 接口方便。DSP系統與其他以現代數字技術爲基礎的系統或設備都是相互兼容的,與這樣的系統接口以實現某種功能要比模擬系統與這些系統接口要容易得多; 
(2) 編程方便。DSP系統中的可編程DSP芯片可使設計人員在開發過程中靈活方便地對軟件進行修改和升級; 
(3) 穩定性好。DSP系統以數字處理爲基礎,受環境溫度以及噪聲的影響較小,可靠性高; 
(4) 精度高。16位數字系統可以達到10^(-5)的精度; 
(5) 可重複性好。模擬系統的性能受元器件參數性能變化比較大,而數字系統基本不受影響,因此數字系統便於測試、調試和大規模生產; 
(6) 集成方便。DSP系統中的數字部件有高度的規範性,便於大規模集成。 
    當然,數字信號處理也存在一定的缺點。例如,對於簡單的信號處理任務,如與模擬交換線的電話接口,若採用DSP則使成本增加。DSP系統中的高速時鐘可能帶來高頻干擾和電磁泄漏等問題,而且DSP系統消耗的功率也較大。此外,D SP技術更新的速度快,數學知識要求多,開發和調試工具還不盡完善。 
    雖然DSP系統存在着一些缺點,但其突出的優點已經使之在通信、語音、圖像、雷達、生物醫學、工業控制、儀器儀表等許多領域得到越來越廣泛的應用。 

    總的來說,DSP系統的設計還沒有非常好的正規設計方法。 
    在設計 DSP 系統之前,首先必須根據應用系統的目標確定系統的性能指標、信號處理的要求,通常可用數據流程圖、數學_運算序列、正式的符號或自然語言來描述。 
    第二步是根據系統的要求進行高級語言的模擬。一般來說,爲了實現系統的最終目標,需要對輸入的信號進行適當的處理,而處理方法的不同會導致不同的系統性能,要得到最佳的系統性能,就必須在這一步確定最佳的處理方法,即數字信號處理的算法(Algorithm),因此這一步也稱算法模擬階段。例如,語音壓縮編碼算法就是要在確定的壓縮比條件下,獲得最佳的合成語音。算法模擬所用的輸入數據是實際信號經採集而獲得的,通常以計算機文件的形式存儲爲數據文件。如語音壓縮編碼算法模擬時所用的語音信號就是實際採集而獲得並存儲爲計算機文件形式的語音數據文件。有些算法模擬時所用的輸入數據並不一定要是實際採集的信號數據,只要能夠驗證算法的可行性,輸入假設的數據也是可以的。 
    在完成第二步之後,接下來就可以設計實時DSP系統,實時DSP系統的設計包括硬件設計和軟件設計兩個方面。硬件設計首先要根據系統運算量的大小、對運算精度的要求、系統成本限制以及體積、功耗等要求選擇合適的DSP芯片。然後設計DSP芯片的外圍電路及其他電路。軟件設計和編程主要根據系統要求和所選的DSP芯片編寫相應的DSP彙編程序,若系統運算量不大且有高級語言編譯器支持,也可用高級語言(如C語言)編程。由於現有的高級語言編譯器的效率還比不上手工編寫彙編語言的效率,因此在實際應用系統中常常採用高級語言和彙編語言的混合編程方法,即在算法運算量大的地方,用手工編寫的方法編寫彙編語言,而運算量不大的地方則採用高級語言。採用這種方法,既可縮短軟件開發的週期,提高程序的可讀性和可移植性,又能滿足系統實時運算的要求。 
      DSP硬件和軟件設計完成後,就需要進行硬件和軟件的調試。軟件的調試一般藉助於DSP開發工具,如軟件模擬器、DSP開發系統或仿真器等。調試DSP算法時一般採用比較實時結果與模擬結果的方法,如果實時程序和模擬程序的輸入相同,則兩者的輸出應該一致。應用系統的其他軟件可以根據實際情況進行調試。硬件調試一般採用硬件仿真器進行調試,如果沒有相應的硬件仿真器,且硬件系統不是十分複雜,也可以藉助於一般的工具進行調試。 
    系統的軟件和硬件分別調試完成後,就可以將軟件脫離開發系統而直接在應用系統上運行。當然,DSP系統的開發,特別是軟件開發是一個需要反覆進行的過程,雖然通過算法模擬基本上可以知道實時系統的性能,但實際上模擬環境不可能做到與實時系統環境完全一致,而且將模擬算法移植到實時系統時必須考慮算法是否能夠實時運行的問題。如果算法運算量太大不能在硬件上實時運行,則必須重新修改或簡化算法。 
     
  DSP芯片,也稱數字信號處理器,是一種特別適合於進行數字信號處理運算的微處理器,其主要應用是實時快速地實現各種數字信號處理算法。根據數字信號處理的要求,DSP芯片一般具有如下主要特點: 
(1)在一個指令週期內可完成一次乘法和一次加法; 
(2)程序和數據空間分開,可以同時訪問指令和數據; 
(3)片內具有快速 RAM,通常可通過獨立的數據總線在兩塊中同時訪問; 
(4)具有低開銷或無開銷循環及跳轉的硬件支持; 
(5)快速的中斷處理和硬件I/O支持; 
(6)具有在單週期內操作的多個硬件地址產生器; 
(7)可以並行執行多個操作; 
(8)支持流水線操作,使取指、譯碼和執行等操作可以重疊執行。 
   當然,與通用微處理器相比,DSP芯片的其他通用功能相對較弱些。 
   DSP芯片的發展 
   世界上第一個單片 DSP 芯片應當是1978年 AMI公司發佈的 S2811,1979年美國Intel公司發佈的商用可編程器件2920是DSP芯片的一個主要里程碑。這兩種芯片內部都沒有現代DSP芯片所必須有的單週期乘法器。1980年,日本 NEC 公司推出的μP D7720是第一個具有乘法器的商用 DSP 芯片。 
   在這之後,最成功的DSP 芯片當數美國德州儀器公司(Texas Instruments,簡稱TI)的一系列產品。TI 公司在1982年成功推出其第一代 DSP 芯片 TMS32010及其系列產品TMS32011、TMS320C10/C14/C15/C16/C17等,之後相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改進型TMS320C2XX,集多片DSP芯片於一體的高性能DSP芯片TMS320C8X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI將常用的DSP芯片歸納爲三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。如今,TI公司的一系列DSP產品已經成爲當今世界上最有影響的DSP芯片。TI公司也成爲世界上最大的 DSP 芯片供應商,其DSP市場份額佔全世界份額近 50%。 
第一個採用CMOS工藝生產浮點DSP芯片的是日本的 Hitachi 公司,它於1982年推出了浮點DSP芯片。1983 年 日本Fujitsu 公司推出的MB8764,其指令週期爲 120ns,且具有雙內部總線,從而使處理吞吐量發生了一個大的飛躍。而第一個高性能浮點DSP芯片應是 AT&T 公司於1984 年推出的DSP32。 
  與其他公司相比,Motorola公司在推出 DSP 芯片方面相對較晚。1986年,該公司推出了定點處理器MC56001。1990年,推出了與IEEE 浮點格式兼容的浮點 DSP 芯片 MC96002。 
  美國模擬器件公司(AnalogDevices,簡稱AD)在DSP芯片市場上也佔有一定的份額,相繼推出了一系列具有自己特點的DSP芯片,其定點DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/2162/2164以及ADSP2171/2181,浮點DSP芯片有ADSP21000/21020、ADSP21060/21062等。自1980年以來,DSP芯片得到了突飛猛進的發展,DSP芯片的應用越來越廣泛。從運算速度來看,MAC(一次乘法和一次加法)時間已經從20世紀80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),處理能力提高了幾十倍。DSP芯片內部關鍵的乘法器部件從1980年的佔模片區(diearea)的40%左右下降到5%以下,片內RAM數量增加一個數量級以上。從製造工藝來看,1980年採用4μm 
的 N溝道MOS(NMOS)工藝,而現在則普遍採用亞微米(Micron)CMOS工藝。DSP芯片的引腳數量從1980年的最多64個增加到現在的200個以上,引腳數量的增加,意味着結構靈活性的增加,如外部存儲器的擴展和處理器間的通信等。此外,DSP芯片的發展使DSP系統的成本、體積、重量和功耗都有很大程度的下降。表1.1 是TI公司DSP芯片1982年、1992年、1999年的比較表。表1.2則是世界上主要DSP芯片供應商的代表芯片的一些數據。 
  DSP芯片可以按照下列三種方式進行分類。 
1.按基礎特性分 
  這是根據DSP芯片的工作時鐘和指令類型來分類的。如果在某時鐘頻率範圍內的任何時鐘頻率上,DSP芯片都能正常工作,除計算速度有變化外,沒有性能的下降,這類DSP芯片一般稱爲靜態DSP芯片。例如,日本OKI 電氣公司的DSP芯片、TI公司的TMS320C2XX系列芯片屬於這一類。 
如果有兩種或兩種以上的DSP芯片,它們的指令集和相應的機器代碼機管腳結構相互兼容,則這類DSP芯片稱爲一致性DSP芯片。例如,美國TI公司的TMS320C54X就屬於這一類。 
2.按數據格式分 
  這是根據DSP芯片工作的數據格式來分類的。數據以定點格式工作的DSP芯片稱爲定點DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮點格式工作的稱爲浮點DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。 
不同浮點DSP芯片所採用的浮點格式不完全一樣,有的DSP芯片採用自定義的浮點格式,如TMS320C3X,而有的DSP芯片則採用IEEE的標準浮點格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。 
3.按用途分 
  按照DSP的用途來分,可分爲通用型DSP芯片和專用型DSP芯片。通用型DSP芯片適合普通的DSP應用,如TI公司的一系列DSP芯片屬於通用型DSP芯片。專用DSP芯片是爲特定的DSP運算而設計的,更適合特殊的運算,如數字濾波、卷積和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就屬於專用型DSP芯片。 
本書主要討論通用型DSP芯片。 
DSP芯片的選擇    設計DSP應用系統,選擇DSP芯片是非常重要的一個環節。只有選定了DSP芯片,才能進一步設計其外圍電路及系統的其他電路。總的來說,DSP芯片的選擇應根據實際的應用系統需要而確定。不同的DSP應用系統由於應用場合、應用目的等不盡相同,對DSP芯片的選擇也是不同的。一般來說,選擇DSP芯片時應考慮到如下諸多因素。 
  1.DSP芯片的運算速度。 
 運算速度是DSP芯片的一個最重要的性能指標,也是選擇DSP芯片時所需要考慮的一個主要因素。DSP芯片的運算速度可以用以下幾種性能指標來衡量: 
(1) 指令週期:即執行一條指令所需的時間,通常以ns(納秒)爲單位。如TMS320LC549-80在主頻爲80MHz時的指令週期爲12.5ns; 
(2) MAC時間:即一次乘法加上一次加法的時間。大部分DSP芯片可在一個指令週期內完成一次乘法和加法操作,如TMS320LC549-80的MAC時間就是12.5ns; 
(3) FFT執行時間:即運行一個N點FFT程序所需的時間。由於FFT運算涉及的運算在數字信號處理中很有代表性,因此FFT運算時間常作爲衡量DSP芯片運算能力的一個指標; 
(4) MIPS:即每秒執行百萬條指令。如TMS320LC549-80的處理能力爲80 MIPS,即每秒可執行八千萬條指令; 
(5)MOPS:即每秒執行百萬次操作。如TMS320C40的運算能力爲275 MOPS; 
(6) MFLOPS:即每秒執行百萬次浮點操作。如TMS320C31在主頻爲40MHz時的處理能力爲40 MFLOPS; 
(7)BOPS:即每秒執行十億次操作。如TMS320C80的處理能力爲2 BOPS。 
  2.DSP芯片的價格。 
  DSP芯片的價格也是選擇DSP芯片所需考慮的一個重要因素。如果採用價格昂貴的DSP芯片,即使性能再高,其應用範圍肯定會受到一定的限制,尤其是民用產品。因此根據實際系統的應用情況,需確定一個價格適中的DSP芯片。當然,由於DSP芯片發展迅速,DSP芯片的價格往往下降較快,因此在開發階段選用某種價格稍貴的DSP芯片,等到系統開發完畢,其價格可能已經下降一半甚至更多。 
  3.DSP芯片的硬件資源。 
  不同的DSP芯片所提供的硬件資源是不相同的,如片內RAM、ROM的數量,外部可擴展的程序和數據空間,總線接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54X系列),系列中不同DSP芯片也具有不同的內部硬件資源,可以適應不同的需要。 
  4.DSP芯片的運算精度。 
  一般的定點DSP芯片的字長爲16位,如TMS320系列。但有的公司的定點芯片爲24位,如Motorola公司的MC56001等。浮點芯片的字長一般爲32位,累加器爲40位。 
  5.DSP芯片的開發工具。 
  在DSP系統的開發過程中,開發工具是必不可少的。如果沒有開發工具的支持,要想開發一個複雜的DSP系統幾乎是不可能的。如果有功能強大的開發工具的支持,如C語言支持,則開發的時間就會大大縮短。所以,在選擇DSP芯片的同時必須注意其開發工具的支持情況,包括軟件和硬件的開發工具。 
  6.DSP芯片的功耗。 
  在某些DSP應用場合,功耗也是一個需要特別注意的問題。如便攜式的DSP設備、手持設備、野外應用的DSP設備等都對功耗有特殊的要求。目前,3.3V供電的低功耗高速DSP芯片已大量使用。 
       7.其他。 
    除了上述因素外,選擇DSP芯片還應考慮到封裝的形式、質量標準、供貨情況、生命週期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多種封裝形式。有些DSP系統可能最終要求的是工業級或軍用級標準,在選擇時就需要注意到所選的芯片是否有工業級或軍用級的同類產品。如果所設計的DSP系統不僅僅是一個實驗系統,而是需要批量生產並可能有幾年甚至十幾年的生命週期,那麼需要考慮所選的DSP芯片供貨情況如何,是否也有同樣甚至更長的生命週期等。 
在上述諸多因素中,一般而言,定點DSP芯片的價格較便宜,功耗較低,但運算精度稍低。而浮點DSP芯片的優點是運算精度高,且C語言編程調試方便,但價格稍貴,功耗也較大。例如TI的TMS320C2XX/C54X系列屬於定點DSP芯片,低功耗和低成本是其主要的特點。而TMS320C3X/C4X/C67X屬於浮點DSP芯片,運算精度高,用C語言編程方便,開發週期短,但同時其價格和功耗也相對較高。 
   DSP應用系統的運算量是確定選用處理能力爲多大的DSP芯片的基礎。運算量小則可以選用處理能力不是很強的DSP芯片,從而可以降低系統成本。相反,運算量大的DSP系統則必須選用處理能力強的DSP芯片,如果DSP芯片的處理能力達不到系統要求,則必須用多個DSP芯片並行處理。那麼如何確定DSP系統的運算量以選擇DSP芯片呢?下面我們來考慮兩種情況。 
1.按樣點處理 
    所謂按樣點處理就是DSP算法對每一個輸入樣點循環一次。數字濾波就是這種情況。在數字濾波器中,通常需要對每一個輸入樣點計算一次。例如,一個採用LMS算法的256 抽頭的自適應FIR濾波器,假定每個抽頭的計算需要3個MAC週期,則256抽頭計算需要256×3=768個MAC週期。如果採樣頻率爲8kHz,即樣點之間的間隔爲125ms,DSP芯片的MAC週期爲200ns,則768個MAC週期需要153.6ms的時間,顯然無法實時處理,需要選用速度更高的DSP芯片。表1.3示出了兩種信號帶寬對三種 DSP 芯片的處理要求,三種DSP芯片的MAC週期分別爲200ns、50ns和25ns。從表中可以看出,對話帶的應用,後兩種DSP芯片可以實時實現,對聲頻應用,只有第三種DSP芯片能夠實時處理。當然,在這個例子中,沒有考慮其他的運算量。 
2.按幀處理   有些數字信號處理算法不是每個輸入樣點循環一次,而是每隔一定的時間間隔(通常稱爲幀)循環一次。例如,中低速語音編碼算法通常以10ms或20ms爲一幀,每隔10ms或20ms語音編碼算法循環一次。所以,選擇DSP芯片時應該比較一幀內DSP芯片的處理能力和DSP算法的運算量。假設DSP芯片的指令週期爲 p(ns),一幀的時間爲Dt 
(ns),則該DSP芯片在一幀內所能提供的最大運算量爲 Dt/p條指令。例如TMS320LC549-80的指令週期爲12.5ns,設幀長爲20ms,則一幀內TMS320LC549-80所能提供的最大運算量爲160萬條指令。因此,只要語音編碼算法的運算量不超過160萬條指令,就可以在TMS320LC549-80上實時運行。 

  DSP芯片的應用 
  自從20世紀70年代末80年代初DSP芯片誕生以來,DSP芯片得到了飛速的發展。DSP芯片的高速發展,一方面得益於集成電路技術的發展,另一方面也得益於巨大的市場。在近20年時間裏,DSP芯片已經在信號處理、通信、雷達等許多領域得到廣泛的應用。目前,DSP芯片的價格越來越低,性能價格比日益提高,具有巨大的應用潛力。DSP芯片的應用主要有: 
(1) 信號處理——如數字濾波、自適應濾波、快速傅立葉變換、相關運算、譜分析、卷積、模式匹配、加窗、波形產生等; 
(2) 通信——如調制解調器、自適應均衡、數據加密、數據壓縮、回波抵消、多路複用、傳真、擴頻通信、糾錯編碼、可視電話等; 
(3) 語音——如語音編碼、語音合成、語音識別、語音增強、說話人辨認、說話人確認、語音郵件、語音存儲等; 
(4) 圖形/圖像——如二維和三維圖形處理、圖像壓縮與傳輸、圖像增強、動畫、機器人視覺等; 
(5) 軍事——如保密通信、雷達處理、聲納處理、導航、導彈制導等; 
(6) 儀器儀表——如頻譜分析、函數發生、鎖相環、地震處理等; 
(7) 自動控制——如引擎控制、聲控、自動駕駛、機器人控制、磁盤控制等; 
(8) 醫療——如助聽、超聲設備、診斷工具、病人監護等; 
(9) 家用電器——如高保_真音響、音樂合成、音調控制、玩具與遊戲、數字電話/電視等。 
   隨着DSP芯片性能價格比的不斷提高,可以預見DSP芯片將會在更多的領域內得到更爲廣泛的應用。 
發佈了17 篇原創文章 · 獲贊 14 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章