百科解釋
1 .Digital Signal Processor -- 數(shù)字信號(hào)處理器
2 .Digital Sound Processor -- 數(shù)字聲音處理器
3. Directory System Protocol -- 目錄系統(tǒng)協(xié)議
4. Domain Specific Part -- 域?qū)S脜^(qū)
5.數(shù)字信號(hào)處理
DSP數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱(chēng)DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來(lái),隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。數(shù)字信號(hào)處理是一種通過(guò)使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來(lái)處理現(xiàn)實(shí)信號(hào)的方法,這些信號(hào)由數(shù)字序列表示。在過(guò)去的二十多年時(shí)間里,數(shù)字信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。德州儀器、Freescale等半導(dǎo)體廠(chǎng)商在這一領(lǐng)域擁有很強(qiáng)的實(shí)力。
DSP(digital singnal processor)是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來(lái)處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào),再對(duì)數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬(wàn)條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過(guò)通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱(chēng)道的兩大特色。
DSP芯片,也稱(chēng)數(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ù)空間分開(kāi),可以同時(shí)訪(fǎng)問(wèn)指令和數(shù)據(jù);
(3)片內(nèi)具有快速RAM,通?赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線(xiàn)在兩塊中同時(shí)訪(fǎng)問(wèn);
(4)具有低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)的硬件支持;
(5)快速的中斷處理和硬件I/O支持;
(6)具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器;
(7)可以并行執(zhí)行多個(gè)操作;
(8)支持流水線(xiàn)操作,使取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。
當(dāng)然,與通用微處理器相比,DSP芯片的其他通用功能相對(duì)較弱些。
第一種商品化的 IC 數(shù)字信號(hào)處理器是英特爾的 2920,早在 1979 年就在取代全雙工、1200bps 數(shù)字硬調(diào)制解調(diào)器中的模擬濾波器組了。同時(shí),迅速增多的微處理器和外設(shè)提高了處理以數(shù)字表示信號(hào)的可行性。那時(shí)幾乎任何商業(yè)化信號(hào)處理任務(wù)都需要模擬計(jì)算,伴有復(fù)雜的反饋回路和補(bǔ)償電路來(lái)維持穩(wěn)定性。各種依賴(lài)位片處理器小型電腦和數(shù)據(jù)采集硬件的技術(shù)都極其昂貴,并且通常只適合于研究人員。能夠經(jīng)濟(jì)地把信號(hào)數(shù)字化,并在數(shù)字領(lǐng)域進(jìn)行數(shù)學(xué)計(jì)算,從而減少漂移和其它用模擬技術(shù)處理也很昂貴的不精確條件,這種邏輯很有吸引力,它直接導(dǎo)致今天市場(chǎng)上出現(xiàn)多種系列的 DSP。
目前,某種形式的 DSP 安裝在從自動(dòng)應(yīng)答電話(huà)機(jī)到洗衣機(jī)等各種產(chǎn)品的中心部位,很容易使人忘記這場(chǎng)變革就發(fā)生在最近。直到最近,通用微控制器和 DSP 芯片之間的巨大差別還使許多嵌入式系統(tǒng)工程師覺(jué)得:數(shù)字信號(hào)處理是門(mén)困難的學(xué)科。這種感覺(jué)來(lái)源于第一代 DSP 的架構(gòu)和編程要求,這一代 DSP 往往設(shè)計(jì)用來(lái)實(shí)現(xiàn)數(shù)字濾波器。不過(guò),在卷入 DSP 對(duì)比微控制器的爭(zhēng)論之前,你也許要問(wèn),為什么使用數(shù)字濾波器?DSP 還適合于別的什么領(lǐng)域?使用數(shù)字濾波的經(jīng)典理由是,你可以實(shí)現(xiàn)線(xiàn)性相位 FIR (有限脈沖響應(yīng))濾波器,它保持了音頻處理等應(yīng)用中的信號(hào)保真度。當(dāng)你正在嘗試處理傳感器信號(hào)時(shí),避免由于不相等的組延遲(由非線(xiàn)性相位-頻率響應(yīng)特性引起)導(dǎo)致的信號(hào)失真可能也是很關(guān)鍵的。正如任何已經(jīng)嘗試過(guò)的人所知道的那樣,用模擬技術(shù)制造線(xiàn)性相位濾波器幾乎是不可能的,相比之下,DSP 和軟件濾波器工具箱使這種實(shí)現(xiàn)不費(fèi)吹灰之力。
假如你使用針對(duì)控制系統(tǒng)建模的仿真工具,你一定知道來(lái)自 Mathworks 的 Matlab 和 Simulink 等工具也可以建立 DSP 算法的模型,并自動(dòng)生成代碼,你可以把這些代碼移植到各種硬件目標(biāo)。不過(guò),數(shù)字信號(hào)處理的能力其實(shí)起始于濾波器應(yīng)用。例如,軟件工具也可以毫不費(fèi)力地實(shí)現(xiàn) FFT(快速傅里葉變換)。然后,你可以對(duì)連續(xù)時(shí)間信號(hào)的快照做頻率分析。假如你有很多傳感器輸出要處理,以得到關(guān)鍵的實(shí)時(shí)控制響應(yīng),那么 DSP 通常是惟一的答案。
初學(xué)者工具包幫你建立信心
假如你第一次接觸數(shù)字信號(hào)處理,你很可能想得到更多背景信息。不過(guò),閱讀產(chǎn)品的相關(guān)資料無(wú)法取代親自嘗試它們,而初學(xué)者工具包提供了一種獲得體驗(yàn)的輕松方式。今天,與微控制器最相像的 DSP 系列就是摩托羅拉的 DSP56F800,它主要針對(duì)實(shí)時(shí)控制應(yīng)用。例如,F(xiàn)805 核心包括一個(gè) 16 比特定點(diǎn)引擎,該引擎運(yùn)行在雙哈佛架構(gòu)上,以實(shí)現(xiàn)對(duì)程序和數(shù)據(jù)存儲(chǔ)器的三路并行訪(fǎng)問(wèn)。
摩托羅拉的片上仿真技術(shù)通過(guò)一個(gè) JTAG 標(biāo)準(zhǔn)的端口來(lái)提供系統(tǒng)內(nèi)調(diào)試能力。該器件是 144 引腳 LQFP 封裝。
開(kāi)發(fā)支持來(lái)自 DSP56F805EVM,它包含一個(gè) 130mm×165mm 印制電路板、CodeWarrior IDE 和一個(gè) SDK(軟件開(kāi)發(fā)工具包),價(jià)格為 299 美元。該印制電路板上裝有處理器,還有一個(gè) 128k×16比特 SRAM(外部代碼和數(shù)據(jù)各為 64k 字)、一個(gè) RS-232 端口,以及一個(gè)“并口至 JTAG”接口,便于基于 PC 的調(diào)試。一個(gè)正交解碼器/霍爾效應(yīng)接口和專(zhuān)用的馬達(dá)控制邏輯給伺服控制等應(yīng)用帶來(lái)了便利。各個(gè)跳線(xiàn)器選擇不同的運(yùn)行模式,多個(gè)起始碼準(zhǔn)備信號(hào)和 I/O,用于輕松連接。
CodeWarrior 安裝的文檔很有用地包括了 56F805 的硬件參考手冊(cè)和數(shù)據(jù)表,以及該 IDE 的用法說(shuō)明和參考手冊(cè)。要想迅速開(kāi)始,請(qǐng)查看開(kāi)發(fā)板的在線(xiàn)硬件手冊(cè),并確保所有跳線(xiàn)器都處在默認(rèn)位置。接著,把并口連接到你的 PC,并嘗試這些在線(xiàn)手冊(cè)的“瞄準(zhǔn) DSP56F805”(Targeting DSP56F805) 部分。這部分包括一個(gè)簡(jiǎn)要的指南,它示范如何創(chuàng)建、編譯和鏈接 F805 代碼。在默認(rèn)情況下,CodeWarrior 使用“項(xiàng)目用具” (project stationery) 來(lái)構(gòu)造新的項(xiàng)目。這個(gè)方法自動(dòng)創(chuàng)建和解開(kāi)各種依賴(lài)處理器的功能、庫(kù)、鏈接器命令和你的代碼之間的依賴(lài)性。假如你正用 C 語(yǔ)言編程,用具還可以進(jìn)行啟動(dòng)文件的創(chuàng)建,以分配和初始化系統(tǒng)內(nèi)存;你可以選擇“空項(xiàng)目”并自己控制這些進(jìn)程。你可以在 CodeWarrior 的編輯器里無(wú)縫地混合和匹配 C 語(yǔ)言代碼和匯編代碼。
假如你使用預(yù)制用具,那么項(xiàng)目窗口會(huì)打開(kāi),顯示代碼、支持和庫(kù)子目錄;把它們展開(kāi),就可以訪(fǎng)問(wèn)恰當(dāng)?shù)馁Y源,然后你可以編輯這些資源。在項(xiàng)目窗口內(nèi)選擇“運(yùn)行” (run) 圖標(biāo),默認(rèn)的設(shè)定就會(huì)編譯、鏈接并下載模板程序到開(kāi)發(fā)板的外部 SRAM。線(xiàn)程窗口會(huì)打開(kāi),讓你查看棧、變量和源代碼,還有執(zhí)行控制,比如設(shè)置/清除斷點(diǎn)、運(yùn)行、終止以及多種單步運(yùn)行選項(xiàng)。
檢查“視圖” (View) 菜單下的可用工具,比如表達(dá)式視圖、全局變量視圖和寄存器視圖。這些工具包括原始數(shù)據(jù)、反匯編、源和混合模式內(nèi)存表示;你還可以從這兒直接編輯內(nèi)存單元。不過(guò),你不會(huì)找到正式的剖析工具,你只有自己計(jì)算時(shí)序要求嚴(yán)格的任務(wù)。一種替代辦法是包含多個(gè)調(diào)用來(lái)啟動(dòng)和停止片上定時(shí)器,從而在關(guān)鍵點(diǎn)安插你的代碼;除去調(diào)用開(kāi)銷(xiāo),就得到了真實(shí)結(jié)果。當(dāng)然,假如你的代碼運(yùn)行沒(méi)有超出截止期限,并且安插的代碼位置適當(dāng),那么除去這種開(kāi)銷(xiāo)應(yīng)該不會(huì)對(duì)運(yùn)行造成消極影響。由于片上內(nèi)存使用和片外內(nèi)存使用之間可能存在明顯的性能差別,因此要確保測(cè)試的是真正的目標(biāo)配置。
CodeWarrior 只安裝了一個(gè) F805 例子,這個(gè)例子檢測(cè)從板上開(kāi)關(guān)到交替閃爍 LED 的中斷。你可以使用這個(gè)例子作為使用 C 語(yǔ)言編譯器 pragma 指令、編寫(xiě)中斷服務(wù)例程以及保存并調(diào)用庫(kù)函數(shù)的指導(dǎo)。不過(guò),假如你想要 CAN(控制器區(qū)域網(wǎng)絡(luò))例子,那你真不走運(yùn)——這項(xiàng)功能是額外費(fèi)用高級(jí)包中的一個(gè)價(jià)格為 3000 美元的選項(xiàng)。其它高級(jí)功能包括安全例程,這其中含 RSA (Rivest、Shamir 和 Adleman)、DES (數(shù)據(jù)加密標(biāo)準(zhǔn))和 3重 DES 算法,以及遠(yuǎn)程通信和語(yǔ)音處理函數(shù),比如 G711 語(yǔ)音編碼器。
其它開(kāi)發(fā)工具包括 200 美元的“并口至 JTAG”命令轉(zhuǎn)換器;USB 至 JTAG 轉(zhuǎn)換器目前正在開(kāi)發(fā)中。你還可以指定 1999 美元的 PCI 至 JTAG 仿真器連接和 2999 美元的以太網(wǎng)同等品。另一方面,對(duì)于那些好奇心很重、不需要 F805 的 I/O 功能的用戶(hù)來(lái)說(shuō),有一個(gè)選項(xiàng)也許更好,那就是 65 美元的 DSP56F801 開(kāi)發(fā)工具包。該工具包還包括并列排線(xiàn)(parallel-cable)仿真、SDK以及 CodeWarrior 的一個(gè)免費(fèi)版本,它局限于 16kB 程序內(nèi)存。無(wú)限制的 IDE 價(jià)格為 495 美元。
多媒體照亮實(shí)時(shí)控制
模擬器件公司 (Analog Devices) 的 Blackfin 系列主要針對(duì)多媒體設(shè)備和便攜式設(shè)備,包括三個(gè)代碼兼容處理器,它們的不同之處僅在于速度和片上補(bǔ)充內(nèi)存。
從內(nèi)部來(lái)看,Blackfin 內(nèi)核包括一個(gè)雙 MAC 定點(diǎn)處理引擎,該引擎把結(jié)果存儲(chǔ)在兩個(gè) 40 比特累加器里。在使用中,VisualDSP++ IDE 的編譯器利用最適合該內(nèi)核架構(gòu)的 32 比特“長(zhǎng)”的值,在軟件中自動(dòng)合成浮點(diǎn)運(yùn)算;你可以選擇改變這種行為,以符合 ANSII-C 規(guī)范。
ADDS-BF533-EZlite 初學(xué)者工具包現(xiàn)已上市,價(jià)格為 295 美元,它包括一塊 127mm×178 mm印制電路板,板上裝有處理器、2MB 閃存和 32MB SDRAM。板上外設(shè)包括一個(gè) AD1836 音頻編解碼器(帶有四條輸入聲道和六條輸出聲道)、一個(gè) ADV7171 視頻編碼器和 ADV7183 解碼器(各帶三個(gè)拾音插座、一個(gè) ADM3202 RS-232 線(xiàn)路驅(qū)動(dòng)器/接收器—用于片上 UART,它連接到一個(gè) DB9 連接器、一個(gè)擴(kuò)充接口—它承載并口、串口和 SPI 等各種 I/O、一個(gè) JTAG 在線(xiàn)仿真器頭,以及各種 LED 和按鈕。該工具包依靠 VisualDSP++ IDE 的一個(gè) 20kB的代碼有限版本,用于程序開(kāi)發(fā)。調(diào)試通信采用板上“USB 至 JTAG”調(diào)試接口,該接口允許與主機(jī) PC 之間的非侵入式通信,這是通過(guò)該環(huán)境的背景遙測(cè)通道進(jìn)行的。
不要理睬快速開(kāi)始卡,遵照評(píng)估系統(tǒng)手冊(cè)中的指示,VisualDSP++ IDE 就會(huì)順利地安裝好。
頭兩個(gè)練習(xí)介紹了鏈接器等基本元件如何通過(guò)讓你建造、運(yùn)行和修改某個(gè)過(guò)程(它計(jì)算來(lái)自定點(diǎn)數(shù)組的三個(gè)乘積的各個(gè)和)來(lái)互動(dòng)。有意思的是,C 源代碼窗口中的“混合”控制視圖使你能夠同時(shí)比較例程的 C 語(yǔ)言實(shí)現(xiàn)和匯編器實(shí)現(xiàn)。某些 IDE 能夠把源代碼行拖到匯編器窗口中,或反過(guò)來(lái),以找到相應(yīng)的代碼段,上述的同時(shí)比較功能是這種功能的替代方法。其它編輯器功能允許設(shè)置和清除斷點(diǎn)、啟用行編號(hào),以及設(shè)置書(shū)簽。假如你把第三課中的代碼例子裝載到前一課,你就能看到該 IDE 數(shù)據(jù)可視化能力的多個(gè)方面,比如正態(tài)圖、正態(tài)圖的 FFT 等價(jià)圖,以及一份 FIR 濾波器響應(yīng)分析。由于這個(gè)例子及目前的其它 Blackfin 例子是針對(duì) 535 處理器,因此你需要把目標(biāo)改到 533。
由于工具包許可證不允許仿真器會(huì)話(huà),因此請(qǐng)你下載整個(gè)軟件及其評(píng)估許可證,連同許可證管理器工具程序。運(yùn)行該 60MB 的組合,就可以讓你的安裝升級(jí)。90 天后,它會(huì)回到最初的限制版。在選擇單一仿真器會(huì)話(huà)選項(xiàng)之后,你現(xiàn)在可以看到線(xiàn)性剖析仿真工具,它專(zhuān)門(mén)分析處理器在某應(yīng)用程序內(nèi)的何處花了時(shí)間。雙擊某個(gè)例程,就會(huì)顯示底層匯編器以及在該流程內(nèi)部所花時(shí)間的百分比;雙擊某個(gè)程序計(jì)數(shù)器條目,就會(huì)高亮度顯示相應(yīng)的反匯編器輸出。
軟件剖析工具一般在函數(shù)的開(kāi)頭和結(jié)尾插入侵入性的“包裝代碼”,以獲得統(tǒng)計(jì)數(shù)據(jù)。VisualDSP++ 消除了這種開(kāi)銷(xiāo),因?yàn)樗?PC 計(jì)數(shù)器的一個(gè)統(tǒng)計(jì)隨機(jī)樣本來(lái)記錄指令地址,得到執(zhí)行統(tǒng)計(jì)數(shù)據(jù),并顯示代碼瓶頸。ADI還還表示,該仿真器具有幾項(xiàng)尖端而獨(dú)特的功能,比如高速緩存和流水線(xiàn)可視化。他指出,由于這些功能提供非常多的細(xì)節(jié),因此它們是“只有仿真器才具有的功能” 。他說(shuō),在這個(gè)水平上,目前不可能不露痕跡地全速詢(xún)問(wèn)處理器,而又不往該部件“增加大量的邏輯和測(cè)試引腳” 。
該環(huán)境在安裝期間創(chuàng)建的 ADSP-BF533 文件夾包括多個(gè)針對(duì) 533 的例子,你可以把它們用作進(jìn)一步開(kāi)發(fā)的模板。對(duì)新手的一個(gè)主要障礙是 C 語(yǔ)言程序員傾向于隱藏關(guān)鍵組件,比如頭文件,并模糊它們的交互;好消息是伴隨工具包的這些例子是極其清晰的。你還將看到 VSCE(VisualDSP++ 的組合式軟件工程)模塊,它們是預(yù)先配置的例程,根據(jù)模擬器件公司的 VCSE 標(biāo)準(zhǔn)編寫(xiě)。這種做法使你能夠把來(lái)自模擬器件公司和第三方廠(chǎng)商的符合標(biāo)準(zhǔn)的模塊添加到你自己的項(xiàng)目中,不用擔(dān)心各種沖突,比如內(nèi)存沖突或 I/O 沖突。
1GHz 的能力使并行 I/O 更快
假如你想做實(shí)驗(yàn),那么你可能想知道和一個(gè)真正復(fù)雜的處理器打交道涉及哪些內(nèi)容,這樣的處理器包括德州儀器公司的 TMS320C6000 系列,它有用地提供了定點(diǎn)微分和浮點(diǎn)微分之間的代碼兼容性。一款新型初學(xué)者工具包展示了 16 比特定點(diǎn) 6416 的 600MHz 版本,它緊隨該廠(chǎng)商的 256 比特甚長(zhǎng)指令字型號(hào)之后。這種頂級(jí)的機(jī)器針對(duì) I/O 密集型應(yīng)用,比如通信基礎(chǔ)設(shè)施。例如,該芯片把一個(gè) ATM (異步傳輸模式)接口裝入其 532 引腳、0.8mm間距 BGA 封裝中,封裝大小僅為 23 mm2;其它通信外設(shè)包括維特比(Viterbi)和 turbo 解碼器協(xié)處理器。
這種初學(xué)者工具包由 Spectrum Digital 公司制造,包括一個(gè) 115mm×225 mm印制電路板,板上裝有 DSP、一個(gè) TLV320AIC23 編解碼器、16MB SDRAM、512kB 用戶(hù)閃存和一個(gè)“USB 至 JTAG”仿真端口——所有這些的價(jià)格為 395 美元左右。四個(gè) 3.5 mm立體聲 I/O 端口與編解碼器連接;一些簡(jiǎn)單的用戶(hù) I/O 端口連接到四個(gè) LED 和若干鋼琴鍵開(kāi)關(guān);高密度的擴(kuò)充連接器提供額外的存儲(chǔ)器、外設(shè)和 PCI/HPI 連接;兩個(gè)端口選項(xiàng)提供外部仿真器。盡管硬件很復(fù)雜,但用戶(hù)友好的軟件展示了德州儀器公司針對(duì)模塊化軟件開(kāi)發(fā)的 eXpressDSP 理念。理想情況下,eXpressDSP 把應(yīng)用程序抽象得足夠好,非程序員可以通過(guò)在執(zhí)行模板內(nèi)部組合現(xiàn)成的算法來(lái)構(gòu)造應(yīng)用程序。實(shí)際上,你需要充分的 C 語(yǔ)言編程經(jīng)驗(yàn)來(lái)充分利用可提供給你的功能。
eXpressDSP 的內(nèi)核是 DSP/BIOS 內(nèi)核,這是一種實(shí)時(shí)調(diào)度程序,該程序包括各種模塊以處理各項(xiàng)中斷、傳輸數(shù)據(jù)的管道和周期性事件。事實(shí)上,DSP/BIOS 構(gòu)成了支持 320C 系列的 RTOS 的基礎(chǔ)。Code Composer Studio IDE 擁有一個(gè) DSP/BIOS 配置工具,它使你能夠在程序編譯期間選擇包括哪些模塊,從而使該固件的內(nèi)存占位(memory footprint)達(dá)到最小。非常關(guān)鍵的是,每個(gè) DSP/BIOS 模塊都包括代碼安插機(jī)制,允許 Code Composer 通過(guò) USB 仿真鏈接來(lái)調(diào)試運(yùn)行中的應(yīng)用程序。為了使對(duì)實(shí)時(shí)操作的影響最小,當(dāng) DSP 芯片處于代碼線(xiàn)程執(zhí)行之間的閑置狀態(tài)時(shí),安插代碼才開(kāi)始運(yùn)行。你可以在它以圖形格式在線(xiàn)程之間切換時(shí)查看執(zhí)行圖,這種格式幫助揭示被超過(guò)的截止期限。其它使時(shí)序要求嚴(yán)格的任務(wù)分析變得容易的工具包括一張 CPU 負(fù)載圖和一個(gè)統(tǒng)計(jì)窗口,后者報(bào)告某個(gè)線(xiàn)程的平均情形和最差情形執(zhí)行時(shí)間。你還可以從某個(gè)駐留在 PC 上的文件傳送數(shù)據(jù),比如來(lái)自 DSO 的輸出,它代表了你想處理的真正信號(hào)。DSP/BIOS 提供了一組定義得非常好的 API,它們適用于整個(gè) 320Cxx 系列,這樣你可以輕松地在各種平臺(tái)之間移植代碼。通過(guò)禁止直接訪(fǎng)問(wèn)外設(shè)和堅(jiān)持可重入的可重定位碼,eXpressDSP 算法標(biāo)準(zhǔn)允許你輕松集成來(lái)自德州儀器公司和第三方廠(chǎng)商的符合標(biāo)準(zhǔn)的算法。你可以下載免費(fèi)的 DSP/BIOS 驅(qū)動(dòng)程序開(kāi)發(fā)工具包。
你還可以免費(fèi)下載一組共三個(gè)參考框架應(yīng)用程序,作為德州儀器公司大多數(shù)初學(xué)者工具包的“初學(xué)者件”。全面的應(yīng)用程序說(shuō)明描述了這些模型的功能,包括其定制示例。RF1 針對(duì)的是約 3.5k 字大小的應(yīng)用程序,它們需要一至三條通道和類(lèi)似數(shù)量的 eXpressDSP 算法。其局限包括不支持動(dòng)態(tài)內(nèi)存分配、線(xiàn)程預(yù)占、阻塞、多速率操作或控制函數(shù)。由于這些原因, RF1 最適合較低端的 5xxx 硬件平臺(tái)。中檔的 RF3 一般適合 6xxx 芯片,這些芯片運(yùn)行一至十條通道和一至十種算法。RF3 約為 11k 字的占位提供了 RF1 中沒(méi)有的所有工具,但不包括任務(wù)阻塞。最后,RF5 版本提供了所有此類(lèi)工具,并支持 100 多條通道和同樣多種算法,代價(jià)是 28k 字內(nèi)存。RF5 增強(qiáng)包括一個(gè)用于支持多處理器的單獨(dú)線(xiàn)程。
附文:通往 DSP 的最初幾步
假定你想首先從 DSP 開(kāi)始,那么你將面臨幾個(gè)挑戰(zhàn)。首先,如果你避開(kāi) C 語(yǔ)言,你將錯(cuò)過(guò)大量例子。你可以通過(guò) www.cyberdiem.com/vin/learn.html 等門(mén)戶(hù)網(wǎng)站來(lái)免費(fèi)提高 C 語(yǔ)言方面的技巧,但你一定要弄到幾本參考課本。
其次,假如你想有效利用數(shù)字信號(hào)處理,你就不能逃避數(shù)學(xué)。其包括復(fù)數(shù)理論,以及卷積和離散傅里葉變換等基本知識(shí)。
然后,你將需要選擇一種處理器。你必須考慮在定點(diǎn)和浮點(diǎn)算術(shù)功能之間進(jìn)行選擇,以及傳統(tǒng)的微控制器選擇準(zhǔn)則?偟卣f(shuō)來(lái),定點(diǎn)器件比同等的浮點(diǎn)器件需要更少的硅,并更便宜。假如你正在使用定點(diǎn)器件,并在設(shè)計(jì)自己的算法,那么你往往必須在可選數(shù)字格式表示法之間做選擇,這些表示法有時(shí)需要仔細(xì)的軟件設(shè)計(jì),以避免舍入和截?cái)嗾`差,這些誤差使數(shù)據(jù)失真。浮點(diǎn)芯片可以簡(jiǎn)化你的生活,因?yàn)樗谟布袑?shí)現(xiàn)了一致的數(shù)字表示系統(tǒng),比如 IEEE-754 標(biāo)準(zhǔn),它定義了 32 比特單精度和 64 比特雙精度格式。浮點(diǎn) DSP 一般采用單精度表示法,這些表示法把 23 比特小數(shù)尾數(shù)、8 比特指數(shù)和一個(gè)符號(hào)比特放入 32 比特的字中,使指數(shù)具有 ±127 的動(dòng)態(tài)范圍。
廠(chǎng)商支持和工具鏈的提供情況是關(guān)鍵的考慮事項(xiàng)。模擬器件、摩托羅拉和德州儀器提供各種 DSP 初學(xué)者工具包,跨越多種應(yīng)用,從簡(jiǎn)單的馬達(dá)控制器到復(fù)雜的通信鏈路。不過(guò),如果你想繼續(xù)使用常規(guī)的微控制器,并且需要硬件乘法功能,請(qǐng)考慮英飛凌 (Infineon) 的新款 XC167CI。這種 16 比特處理器擴(kuò)展了嵌入式 166 架構(gòu)的功能,把 32/40 比特 MAC(乘法/累加)單元包括進(jìn)來(lái),這種單元在 25 ns(40MHz 時(shí)鐘)內(nèi)進(jìn)行單周期乘法;其它增強(qiáng)包括一個(gè)柱形移位器。要想獲得更強(qiáng)的功能,該公司的 32 比特 TriCore 系列增加了多種功能,比如反向比特尋址,用于恢復(fù)FFT算法的輸出。
基于DSP的智能視頻監(jiān)控系統(tǒng)
傳統(tǒng)的視頻監(jiān)視系統(tǒng)是簡(jiǎn)單的非智能閉路電視(CCTV)系統(tǒng),其缺點(diǎn)十分明顯。這樣的系統(tǒng)或者需要安保人員實(shí)時(shí)監(jiān)視畫(huà)面以捕捉關(guān)鍵事件,或者需要在事后對(duì)視頻記錄進(jìn)行回放并進(jìn)行人工分析,耗時(shí)耗力,成本高而效率低。近幾年,DSP在智能視頻監(jiān)控系統(tǒng)方面的應(yīng)用不斷完善,正在逐漸取代傳統(tǒng)的模擬非智能系統(tǒng)。
iSuppli公司2006年的一份分析報(bào)告曾指出,IP視頻監(jiān)控系統(tǒng)市場(chǎng)到2010年將增長(zhǎng)近十倍。 IP監(jiān)控的創(chuàng)新技術(shù)之一是“智能攝像機(jī)”,它擁有強(qiáng)大的數(shù)字信號(hào)處理器,能探測(cè)威脅并觸發(fā)自動(dòng)響應(yīng)?梢(jiàn),DSP芯片是智能監(jiān)控的核心。
提到DSP,多數(shù)人都會(huì)聯(lián)想到TI公司。該公司的DSP開(kāi)發(fā)歷史悠久,它所占據(jù)的DSP市場(chǎng)份額遙遙領(lǐng)先。當(dāng)然,TI公司也重視DSP在智能視頻監(jiān)控中的應(yīng)用(見(jiàn)TI 達(dá)芬奇技術(shù)實(shí)現(xiàn)數(shù)字化智能視頻監(jiān)控http://www.21ic.com/news/n12583c8.aspx)。
本文重點(diǎn)介紹ADI公司在智能監(jiān)控領(lǐng)域的進(jìn)展情況。本月初,筆者有幸和ADI上海公司的DSP和嵌入式處理器產(chǎn)品技術(shù)市場(chǎng)經(jīng)理張鐵虎、EP/DSP高級(jí)技術(shù)應(yīng)用工程師魏宏偉兩位先生進(jìn)行了交流。他們介紹了ADI公司DSP智能監(jiān)控技術(shù)、戰(zhàn)略特點(diǎn)和計(jì)劃等,在此向21IC用戶(hù)做個(gè)匯報(bào)。
雖然總體來(lái)說(shuō)ADI公司DSP的名氣不如TI的大,但該公司對(duì)DSP應(yīng)用于智能視頻監(jiān)控相當(dāng)重視。從產(chǎn)品角度來(lái)講,ADI公司主要業(yè)務(wù)有三:模擬產(chǎn)品、MEMS和DSP。其中DSP應(yīng)用包括工業(yè)測(cè)控、移動(dòng)媒體和汽車(chē)電子,而監(jiān)控則占據(jù)ADI工業(yè)測(cè)控業(yè)務(wù)的大部分。可見(jiàn),智能監(jiān)控對(duì)于A(yíng)DI的DSP業(yè)務(wù)發(fā)展十分重要。
據(jù)張鐵虎介紹,ADI的DSP發(fā)展歷程雖然不如TI的悠久,但擁有自己明顯的特點(diǎn)或優(yōu)勢(shì)。首先,ADI的DSP架構(gòu)和TI的不同。TI的DSP實(shí)際上是ARM+DSP,所以需要兩套開(kāi)發(fā)工具。ADI的DSP是基于1999年與Intel公司合作開(kāi)發(fā)的Micro Signal Architecture(微信號(hào)架構(gòu)),稱(chēng)作convergent processor,在一個(gè)核里既有數(shù)字信號(hào)處理功能,又有MCU功能,所以只需一套開(kāi)發(fā)工具,為用戶(hù)使用、學(xué)習(xí)提供了方便。其次,ADI的DSP開(kāi)發(fā)工具是免費(fèi)的,可在該公司網(wǎng)站上隨時(shí)下載。據(jù)第三方評(píng)測(cè)機(jī)構(gòu)BDTI稱(chēng),ADI的DSP具有最高的性?xún)r(jià)比。此外,ADI的DSP還具有功耗低、穩(wěn)定(工業(yè)/汽車(chē)級(jí)DSP工作溫度范圍為-40至+85攝氏度)的優(yōu)點(diǎn)。
ADI公司在智能視頻監(jiān)控方面的市場(chǎng)策略比較獨(dú)特。有一些第三方設(shè)計(jì)單位為用戶(hù)提供解決方案。尤其是,ADI同許多科研院所(如清華大學(xué))進(jìn)行合作,共同展開(kāi)視頻分析的開(kāi)發(fā)工作。視頻智能分析算法屬于前沿技術(shù),挑戰(zhàn)性很強(qiáng),而科研院所內(nèi)的智力資源比較豐富,非常適合做這方面的研究。
目前,ADI公司的一些DSP智能視頻監(jiān)控已經(jīng)走向?qū)嶋H應(yīng)用。在印度,人頭清點(diǎn)(people counting)系統(tǒng)已經(jīng)實(shí)現(xiàn)量產(chǎn);在美國(guó),車(chē)牌識(shí)別系統(tǒng)實(shí)現(xiàn)了小批量應(yīng)用;在中國(guó),人臉識(shí)別也實(shí)現(xiàn)了小批量應(yīng)用。
張鐵虎介紹說(shuō),現(xiàn)在智能視頻監(jiān)控還主要應(yīng)用在對(duì)安全要求很高的場(chǎng)合,如銀行、監(jiān)獄、水廠(chǎng)、政府機(jī)關(guān)等。隨著技術(shù)的發(fā)展、成本的降低,智能視頻監(jiān)控將越來(lái)越普及,更廣泛地取代傳統(tǒng)的CCTV。
張鐵虎說(shuō),ADI公司非?春弥悄鼙O(jiān)控市場(chǎng),在這方面將持續(xù)投資,并在全球范圍內(nèi)同設(shè)計(jì)公司、科研院所展開(kāi)合作開(kāi)發(fā)。DSP技術(shù)也是ADI的長(zhǎng)期計(jì)劃,目前該公司正在設(shè)計(jì)下一代的指令集,并已經(jīng)完成了其中一部分。ADI的DSP會(huì)特別注重視頻分析,并為這方面的客戶(hù)提供參考設(shè)計(jì)、算法模塊等。
關(guān)于DSP核FPGA的競(jìng)爭(zhēng)問(wèn)題,張鐵虎說(shuō),DSP更適合視頻分析,而FPGA的長(zhǎng)處是并行處理。另外,F(xiàn)PGA還存在體積大、功耗大、價(jià)格高等問(wèn)題。不過(guò),根據(jù)BDTI的報(bào)告,F(xiàn)PGA正越來(lái)越多地涉入DSP的應(yīng)用領(lǐng)域。在現(xiàn)今的很多設(shè)計(jì)中,DSP往往與FPGA配合使用。在很多情形下,這一組合對(duì)于下一代系統(tǒng)的設(shè)計(jì)仍然適合。但在另外一些情形下,設(shè)計(jì)者會(huì)考慮僅使用兩者之一,而且通常是FPGA取代DSP的功能。然而,對(duì)于智能視頻監(jiān)控市場(chǎng),雖然FPGA也在試圖進(jìn)入,但就目前情況來(lái)看,DSP似乎是比較現(xiàn)實(shí)的解決方案。
基于DSP的語(yǔ)音實(shí)時(shí)變速系統(tǒng)設(shè)計(jì)
引言
在外語(yǔ)多媒體教學(xué)中,要求對(duì)語(yǔ)速進(jìn)行快慢控制,以適應(yīng)不同程度學(xué)生的需求。然而,傳統(tǒng)的語(yǔ)音變速產(chǎn)品往往在教師改變語(yǔ)速的同時(shí),也改變了原說(shuō)話(huà)者的語(yǔ)調(diào),不能達(dá)到教學(xué)的真正目的。因此,語(yǔ)音變速系統(tǒng)應(yīng)當(dāng)具備調(diào)整語(yǔ)速的同時(shí),還需要保證原說(shuō)話(huà)者語(yǔ)調(diào)保持不變的特點(diǎn)。本文介紹的就是一種基于TMS320C5409的語(yǔ)音實(shí)時(shí)變速系統(tǒng)。另外,考慮到在實(shí)際系統(tǒng)中語(yǔ)音的壓縮存儲(chǔ)和語(yǔ)音變速往往是同時(shí)需求的,因此本文提出一種基于LPC低比特率語(yǔ)音編碼算法的語(yǔ)音變速算法,該算法能夠任意調(diào)整語(yǔ)音語(yǔ)速。
LPC算法
LPC編碼將語(yǔ)音信號(hào)s(n)看作一個(gè)時(shí)變的聲道系統(tǒng)在聲門(mén)的激勵(lì)之下的輸出信號(hào)。對(duì)濁音而言,聲門(mén)激勵(lì)為一周期脈沖串;而對(duì)清音而言,聲門(mén)激勵(lì)為隨機(jī)噪聲序列。
在LPC編碼中,可以將一幀的語(yǔ)音信號(hào)用簡(jiǎn)化模型的參數(shù)來(lái)表示,如濁音、清音判別,基音周期,增益G以及數(shù)字濾波器系數(shù),這樣就可以獲得3kb/s的編碼。解碼時(shí),由于在LPC編碼中,濁音可以看作是一周期脈沖串的激勵(lì),其中,脈沖周期為基音周期,因此,為了改變語(yǔ)音的速率,我們將語(yǔ)音的幀長(zhǎng)變長(zhǎng),在其中再加入若干的脈沖串的激勵(lì)即可得到變速的語(yǔ)音信號(hào)。
硬件系統(tǒng)設(shè)計(jì)
本系統(tǒng)是一個(gè)完善的應(yīng)用系統(tǒng),主要完成對(duì)語(yǔ)音信號(hào)的實(shí)時(shí)LPC編解碼及語(yǔ)音變速,此外,還具有鍵盤(pán)控制功能和語(yǔ)音錄放功能。因此,本系統(tǒng)不但需要外部的SRAM存放語(yǔ)音數(shù)據(jù),而且需要與DSP相連接的鍵盤(pán)控制設(shè)備。本系統(tǒng)主要由TMS320C5409、TLC320AD50、SST39VF400A和CY7C133等構(gòu)成,系統(tǒng)框圖如圖2所示。TMS320C5409內(nèi)部提供的32K字片內(nèi)RAM用來(lái)存放實(shí)時(shí)運(yùn)行的程序和數(shù)據(jù),片外SRAM(CY7C133)用于存放編碼后的語(yǔ)音數(shù)據(jù)。系統(tǒng)的工作過(guò)程如下:系統(tǒng)加電后,通過(guò)復(fù)位建使TMS320C5409復(fù)位。TMS320C5409復(fù)位后,由內(nèi)部固化的自引導(dǎo)程序?qū)lash(SST39VF400A)上的程序和初始化數(shù)據(jù)搬移到片內(nèi)RAM,然后TMS320C5409根據(jù)鍵盤(pán)的控制執(zhí)行操作,運(yùn)行LPC編碼運(yùn)算(錄音)、LPC解碼和語(yǔ)音變速(放音),調(diào)整語(yǔ)音變速速率。
TMS320C5409用于實(shí)現(xiàn)語(yǔ)音的編解碼算法,TLC320AD50用于完成語(yǔ)音信號(hào)的數(shù)/模和模/數(shù)轉(zhuǎn)換功能。TMS320C5409與TLC320AD50之間通過(guò)McBSP串口通信。為了減輕CPU的負(fù)擔(dān),本系統(tǒng)中設(shè)計(jì)McBSP通過(guò)DMA收到或發(fā)送完一組單元后,再給CPU中斷的方式跟CPU通信。TMS320C5409與TLC320AD50的接口。
采用DMA的方式,即串口每收到或發(fā)送一組單元,都會(huì)自動(dòng)觸發(fā)DMA將其搬送到一個(gè)內(nèi)部的Buffer中,等Buffer滿(mǎn)了再通過(guò)中斷方式告訴CPU處理。這時(shí)DMA最好采用ABU(Auto Buffering)模式,可以有效防止Buffer中的數(shù)據(jù)在串口速率較高時(shí)被新數(shù)據(jù)沖掉的問(wèn)題。在進(jìn)行語(yǔ)音變速時(shí),只需要將13MA通道的幀長(zhǎng)做相應(yīng)的改變即可。
SST39VF400A(256K×1 6位)作為T(mén)MS320C5409的外部數(shù)據(jù)存儲(chǔ)器,地址總線(xiàn)和數(shù)據(jù)總線(xiàn)接至TMS320C5409的外部總線(xiàn),CR接至TMS320C5409的DS。
外部存儲(chǔ)器采用的是CY7C133,它是高速的2K×16bit的靜態(tài)異步雙端口RAM,其存儲(chǔ)速度為25ns。它有兩套獨(dú)立的地址線(xiàn)、數(shù)據(jù)線(xiàn)和控制信號(hào)線(xiàn),允許兩個(gè)控制器件中的數(shù)據(jù)通過(guò)共同連接的存儲(chǔ)器來(lái)進(jìn)行通信。該雙端口RAM允許兩個(gè)控制器同時(shí)讀取任何存儲(chǔ)單元(包括同時(shí)讀同一單元),但不允許同時(shí)寫(xiě)或者一讀一寫(xiě)統(tǒng)一地址單元。
對(duì)于TMS 320VC5402,數(shù)據(jù)存儲(chǔ)器CY7C133的對(duì)應(yīng)地址為4000H~47FFH。
系統(tǒng)軟件
本系統(tǒng)實(shí)現(xiàn)的目標(biāo)是鍵盤(pán)控制功能和語(yǔ)音錄放功能,并且能夠?qū)⑤斎氲恼Z(yǔ)音信號(hào)以任意變速率播放而不改變語(yǔ)音的聲調(diào)。系統(tǒng)采用C語(yǔ)言進(jìn)行功能開(kāi)發(fā)。
本系統(tǒng)中將HPI口映射成為GPIO,并且將鍵盤(pán)連線(xiàn)通過(guò)"或"門(mén)接到INTO。當(dāng)有按鍵按下時(shí),INTO中斷處理程序通過(guò)從GPIO中讀出的數(shù)值判斷此時(shí)是錄音、放音、語(yǔ)速變快還是語(yǔ)速變慢。
抗干擾設(shè)計(jì)
本系統(tǒng)中既采用硬件抗干擾技術(shù),也采用了軟件抗干擾技術(shù)。下面簡(jiǎn)要介紹一下本系統(tǒng)所采用的硬件看門(mén)狗和數(shù)字濾波器的設(shè)計(jì)。
利用硬件看門(mén)狗功能提高系統(tǒng)的抗干擾能力。由專(zhuān)用芯片MAX692構(gòu)成的看門(mén)狗電路,系統(tǒng)所用外圍元件少。MAX692是微系統(tǒng)監(jiān)控電路芯片,具有后備電池切換、掉電判別、看門(mén)狗監(jiān)控等功能。其中WDI是看門(mén)狗檢測(cè)輸入端,接到數(shù)字電路系統(tǒng)的一個(gè)專(zhuān)用I/O口或一個(gè)總線(xiàn)口上。RESET是復(fù)位信號(hào)輸出端,接數(shù)字電路系統(tǒng)的復(fù)位端RST。MAX692的WDI定時(shí)周期為1.6 s,復(fù)位脈沖寬度是200ms。如果WDI保持高或低超過(guò)"看門(mén)狗"定時(shí)周期(1.6s),RESET端將發(fā)生200ms寬(最小140ms)的負(fù)脈沖使數(shù)字電路系統(tǒng)復(fù)位。
數(shù)字濾波器的軟件設(shè)計(jì)方法有:程序判斷濾波法(限幅濾波法)、中位值濾波法、算術(shù)平均濾波法、遞推平均濾波法、防脈沖干擾平均濾波法、一階滯后濾波法等6種方法。根據(jù)需要,本系統(tǒng)選擇程序判斷濾波法。
結(jié)浯
實(shí)踐證明,本系統(tǒng)在進(jìn)行語(yǔ)音變速的同時(shí),能夠保證原說(shuō)話(huà)者語(yǔ)調(diào)保持不變,且操作簡(jiǎn)單,系統(tǒng)延時(shí)小。
2003年,我國(guó)DSP市場(chǎng)繼續(xù)保持了快速增長(zhǎng),市場(chǎng)銷(xiāo)量總計(jì)達(dá)到26628.8萬(wàn)片,總銷(xiāo)售額達(dá)126.4億元。我國(guó)DSP市場(chǎng)規(guī)模迅速擴(kuò)大,主要得益于我國(guó)移動(dòng)電話(huà)市場(chǎng)、數(shù)字消費(fèi)市場(chǎng)以及自動(dòng)控制市場(chǎng)規(guī)模的增長(zhǎng)。
三大領(lǐng)域帶動(dòng)DSP持續(xù)增長(zhǎng)
在我國(guó)市場(chǎng)上,移動(dòng)電話(huà)、數(shù)碼相機(jī)等DSP產(chǎn)品的主要應(yīng)用領(lǐng)域走勢(shì)良好,需求旺盛,推動(dòng)著DSP市場(chǎng)持續(xù)增長(zhǎng)。在無(wú)線(xiàn)領(lǐng)域,我國(guó)手機(jī)用戶(hù)繼續(xù)大規(guī)模增加,手機(jī)需求的大幅增加帶動(dòng)了我國(guó)DSP市場(chǎng)的高速增長(zhǎng)。在數(shù)字消費(fèi)領(lǐng)域,我國(guó)新興的數(shù)字消費(fèi)類(lèi)電子產(chǎn)品進(jìn)入增長(zhǎng)活躍期,市場(chǎng)呈現(xiàn)高增長(zhǎng)態(tài)勢(shì),用戶(hù)認(rèn)知率和普及率大幅提高,數(shù)碼消費(fèi)市場(chǎng)的高速增長(zhǎng)推動(dòng)了DSP市場(chǎng)的發(fā)展。此外,計(jì)算機(jī)、通信和消費(fèi)類(lèi)電子產(chǎn)品的數(shù)字化融合也為DSP提供了進(jìn)一步的發(fā)展機(jī)會(huì)。
目前,在VoIP、DSL、Cable Modem、3G、數(shù)字相機(jī)和馬達(dá)控制等需要實(shí)時(shí)處理大量數(shù)字信息的應(yīng)用中,都可見(jiàn)到DSP的身影,DSP無(wú)疑已經(jīng)成為推動(dòng)數(shù)字化進(jìn)程的動(dòng)力。
新應(yīng)用層出不窮
DSP應(yīng)用的快速發(fā)展為數(shù)字信息產(chǎn)品帶來(lái)廣闊的發(fā)展空間,并將支持通信、計(jì)算機(jī)和消費(fèi)類(lèi)電子產(chǎn)品的數(shù)字化融合。在無(wú)線(xiàn)領(lǐng)域,DSP遍及無(wú)線(xiàn)交換設(shè)備、基站、手持終端和網(wǎng)絡(luò)領(lǐng)域,并涵蓋從骨干基礎(chǔ)設(shè)施到寬帶入戶(hù)的設(shè)備,包括VoIP網(wǎng)關(guān)和IP電話(huà)、DSL和Cable Modem等。面向群體應(yīng)用,DSP在媒體網(wǎng)關(guān)、視頻監(jiān)控、專(zhuān)業(yè)音響、數(shù)字廣播、激光打印等應(yīng)用中表現(xiàn)出色;面向個(gè)人應(yīng)用,DSP在便攜式數(shù)字音頻和影像播放器、指紋識(shí)別和語(yǔ)音識(shí)別等應(yīng)用中表現(xiàn)不俗;針對(duì)嵌入式數(shù)字控制應(yīng)用,DSP極大地滿(mǎn)足了工業(yè)界的需求,如數(shù)字變頻電力電源設(shè)備、工業(yè)縫紉機(jī)等;DSP也極大地滿(mǎn)足了消費(fèi)電子的需求,如空調(diào)、冰箱、洗衣機(jī)等。
隨著DSP生產(chǎn)技術(shù)和工藝的進(jìn)步,新型的DSP產(chǎn)品將會(huì)不斷涌現(xiàn),并得到廣泛應(yīng)用。
國(guó)內(nèi)DSP廠(chǎng)商尋求突破
在2003年我國(guó)DSP市場(chǎng)上,TI、摩托羅拉、杰爾、ADI四家廠(chǎng)商依然占據(jù)了國(guó)內(nèi)市場(chǎng)85.6%的份額,其他國(guó)外廠(chǎng)商占據(jù)了14.4%的份額,產(chǎn)品完全依賴(lài)進(jìn)口。我國(guó)是亞洲發(fā)展?jié)摿ψ畲蟮氖袌?chǎng),數(shù)碼相機(jī)、MMoIP電話(huà)和手持電子設(shè)備等數(shù)碼產(chǎn)品在國(guó)內(nèi)市場(chǎng)的迅速發(fā)展促進(jìn)了高性能DSP的廣泛使用。我國(guó)電子產(chǎn)品制造商眾多,對(duì)低成本、易使用的DSP需求巨大,然而DSP市場(chǎng)由國(guó)外廠(chǎng)商所壟斷的局面不利于國(guó)內(nèi)廠(chǎng)商的發(fā)展,國(guó)內(nèi)廠(chǎng)商生產(chǎn)所需的關(guān)鍵芯片仍控制在上述四家國(guó)外廠(chǎng)商手中,國(guó)外廠(chǎng)商的生產(chǎn)狀況對(duì)國(guó)內(nèi)市場(chǎng)的影響十分明顯。
雖然目前DSP的主要應(yīng)用產(chǎn)品的市場(chǎng)都是由國(guó)際半導(dǎo)體大廠(chǎng)所控制,但在相關(guān)政策的扶植下,本土廠(chǎng)商積極投入研發(fā)資源,以消費(fèi)性產(chǎn)品作為進(jìn)入DSP市場(chǎng)的一個(gè)“敲門(mén)磚”,也必將在DSP市場(chǎng)上爭(zhēng)得一席之地。
隨著我國(guó)自主研發(fā)的DSP芯片--“漢芯一號(hào)”在上海交大問(wèn)世,標(biāo)志著我國(guó)在DSP芯片核心技術(shù)領(lǐng)域走出了關(guān)鍵的第一步,也標(biāo)志著我國(guó)DSP芯片制造商從消費(fèi)性電子產(chǎn)品市場(chǎng)開(kāi)始加入到與國(guó)際IT業(yè)“大鱷”的“貼身肉搏”之中。盡管?chē)?guó)內(nèi)廠(chǎng)商在技術(shù)上還處于劣勢(shì)地位,但卻有著成本低、市場(chǎng)反應(yīng)快、能進(jìn)入國(guó)家敏感領(lǐng)域等諸多優(yōu)勢(shì)。DSP芯片本身所具有的無(wú)須依賴(lài)于特定操作系統(tǒng)的特點(diǎn),也為國(guó)內(nèi)廠(chǎng)商進(jìn)入相關(guān)市場(chǎng)減輕了不小的負(fù)擔(dān)。
盡管?chē)?guó)內(nèi)DSP廠(chǎng)商還沒(méi)有真正進(jìn)入市場(chǎng),但是國(guó)內(nèi)廠(chǎng)商在DSP上的突破必將在未來(lái)的市場(chǎng)上對(duì)國(guó)外廠(chǎng)商形成威脅,國(guó)內(nèi)廠(chǎng)商的進(jìn)入將使市場(chǎng)競(jìng)爭(zhēng)更加激烈。
自十多年前浮點(diǎn)數(shù)字信號(hào)處理器(DSP)誕生以來(lái),便為實(shí)時(shí)信號(hào)處理提供了算術(shù)上更為先進(jìn)的備選方案。不過(guò),定點(diǎn)器件至今仍是業(yè)界的主流--當(dāng)然低成本是主要原因。定點(diǎn)DSP每器件產(chǎn)品的價(jià)格很低,這對(duì)大規(guī)模大眾市場(chǎng)應(yīng)用而言是相當(dāng)重要的優(yōu)勢(shì)。
相比較而言,浮點(diǎn)DSP能夠?qū)崿F(xiàn)更快速而簡(jiǎn)便的開(kāi)發(fā),因此對(duì)開(kāi)發(fā)成本比單位制造成本重要的小規(guī)模應(yīng)用而言,更是最佳的選擇。
最近幾年,高密度集成與支持改善使兩種DSP在使用方便性與成本上都較為接近。目前,器件類(lèi)型的選擇越來(lái)越取決于應(yīng)用數(shù)據(jù)集是否要求浮點(diǎn)格式的更多計(jì)算功能。因此,設(shè)計(jì)大規(guī)模量產(chǎn)信號(hào)處理應(yīng)用的開(kāi)發(fā)人員現(xiàn)在開(kāi)始發(fā)現(xiàn)浮點(diǎn)格式更多的內(nèi)在價(jià)值。他們將視線(xiàn)投向傳統(tǒng)定點(diǎn)DSP開(kāi)發(fā)模式之外的領(lǐng)域,并探索浮點(diǎn) DSP 所帶來(lái)的設(shè)計(jì)機(jī)遇。
不同的數(shù)字格式
定點(diǎn)與浮點(diǎn)DSP的基本差異在于它們各自對(duì)數(shù)據(jù)的數(shù)字表示法不同。定點(diǎn)硬件嚴(yán)格執(zhí)行整數(shù)運(yùn)算,而浮點(diǎn) DSP 既支持整數(shù)運(yùn)算又支持實(shí)數(shù)運(yùn)算,后者以科學(xué)計(jì)數(shù)法進(jìn)行了標(biāo)準(zhǔn)化。字長(zhǎng)為 16 位的定點(diǎn) DSP 實(shí)現(xiàn) (rovide) 64K 的精度,帶符號(hào)整數(shù)值范圍為 -215 至 215-1。
與此相對(duì)比,浮點(diǎn)DSP將數(shù)據(jù)路徑分為兩部分:一是可用作整數(shù)值或?qū)崝?shù)基數(shù)的尾數(shù),二是指數(shù)。在支持業(yè)界標(biāo)準(zhǔn)單一精確運(yùn)算的32位浮點(diǎn)DSP中,尾數(shù)為24位,指數(shù)為8位。由于其較長(zhǎng)的字長(zhǎng)與取冪范圍,該器件支持 16M 的精度范圍,這樣的動(dòng)態(tài)范圍大大高于定點(diǎn)格式可提供的精確度。實(shí)施業(yè)界標(biāo)準(zhǔn)雙精度(64 位,包括一個(gè) 53 位的尾數(shù)與 11 位的指數(shù))的器件還可實(shí)現(xiàn)更高的精確度。
成本與方便易用性
浮點(diǎn) DSP 提供的計(jì)算能力更高,這也是其區(qū)別于定點(diǎn) DSP 功能的最大差異所在。但在浮點(diǎn) DSP 剛剛出現(xiàn)的20世紀(jì)90年代初期,其它因素往往掩蓋了基本的數(shù)學(xué)計(jì)算問(wèn)題。浮點(diǎn)功能需要的內(nèi)部電路多,而 32位數(shù)據(jù)路徑比當(dāng)時(shí)可用的定點(diǎn)器件要寬一倍。晶片面積越大,引腳數(shù)量就越多,封裝也越大,這就大大提高了新款浮點(diǎn)器件的成本,因此數(shù)字化語(yǔ)音與電信集成卡(concentration card)等高產(chǎn)量應(yīng)用仍更傾向于采用較低成本的定點(diǎn)器件。
當(dāng)時(shí),方便易用性抵消了成本問(wèn)題帶來(lái)的不利影響。浮點(diǎn)器件是最早支持 C 語(yǔ)言的 DSP 之一,而定點(diǎn) DSP則仍須在匯編代碼級(jí)上進(jìn)行編程。此外,對(duì)浮點(diǎn)格式而言,實(shí)數(shù)運(yùn)算可直接通過(guò)代碼加入硬件運(yùn)算中,而定點(diǎn)器件則必須通過(guò)軟件才能間接執(zhí)行實(shí)數(shù)運(yùn)算,這就增加了算法指令并延長(zhǎng)了開(kāi)發(fā)時(shí)間。由于浮點(diǎn) DSP 易于編程,因此其最初主要用于開(kāi)發(fā)工作強(qiáng)度較大的情況,如研究、原型開(kāi)發(fā)、影像識(shí)別、工作站的三維圖像加速器以及雷達(dá)等軍用系統(tǒng)。
逐漸趨同
目前,早先的成本與易用性間的差異已經(jīng)不那么明顯了?傮w說(shuō)來(lái),定點(diǎn)DSP仍然在成本上有優(yōu)勢(shì),而浮點(diǎn) DSP 仍然在易用性上有優(yōu)勢(shì),但差別已經(jīng)縮小很多,因此上述因素已經(jīng)不再起決定作用了。
成本日益成為片上系統(tǒng)(SoC)集成與產(chǎn)量的問(wèn)題,而不是DSP內(nèi)核本身大小的問(wèn)題。在十年前還只能放置單個(gè)晶體管的空間,目前可放置數(shù)十個(gè)晶體管。目前,占據(jù)晶片面積最多的是存儲(chǔ)器,而不是邏輯,而且許多基于DSP的產(chǎn)品都充分利用再擴(kuò)展(rescaling)的優(yōu)勢(shì),針對(duì)具體市場(chǎng)的需求集成了不只一個(gè)內(nèi)核。定點(diǎn)DSP的成本仍然較低,因?yàn)槠溽槍?duì)大眾市場(chǎng)應(yīng)用的產(chǎn)量很高;但是,如果大規(guī)模量產(chǎn)的需求出現(xiàn),那么浮點(diǎn)器件也將受益于規(guī)模效益帶來(lái)的同樣的成本降低。
早期在易用性方面的差異也已經(jīng)減小。高效的C編譯程序與工具早已能支持定點(diǎn)DSP,為代碼執(zhí)行帶來(lái)了可視性。直接采用浮點(diǎn)硬件實(shí)施實(shí)數(shù)運(yùn)算仍有優(yōu)勢(shì);但目前先進(jìn)的建模工具、完整的數(shù)學(xué)函數(shù)庫(kù)以及現(xiàn)成的算法降低了為定點(diǎn)器件開(kāi)發(fā)復(fù)雜應(yīng)用的難度。
浮點(diǎn)的精確度
目前,選用定點(diǎn)DSP還是浮點(diǎn)DSP歸根結(jié)底在于應(yīng)用數(shù)據(jù)集是否需要浮點(diǎn)算術(shù)功能?傮w說(shuō)來(lái),設(shè)計(jì)人員應(yīng)解決兩個(gè)問(wèn)題:數(shù)據(jù)集要求多高的精確度?數(shù)據(jù)集的可預(yù)見(jiàn)度有多大?
三個(gè)因素影響著浮點(diǎn)格式的內(nèi)在高精度。首先,浮點(diǎn)DSP的24位I/O字長(zhǎng)在整數(shù)與實(shí)數(shù)值方面可實(shí)現(xiàn)比定點(diǎn)器件中常用的16位字長(zhǎng)更高的精確度。第二,取冪大幅提高了應(yīng)用可用的動(dòng)態(tài)范圍,較大的動(dòng)態(tài)范圍對(duì)處理極大數(shù)據(jù)集以及難以方便預(yù)計(jì)數(shù)據(jù)集范圍的情況相當(dāng)重要。第三,浮點(diǎn)硬件內(nèi)部的數(shù)據(jù)表示法比定點(diǎn)器件更為精確,這就保證了最終結(jié)果的精確度更高。
最后一點(diǎn)應(yīng)稍做解釋。在DSP的內(nèi)部架構(gòu)中,三種數(shù)據(jù)字長(zhǎng)相當(dāng)重要,應(yīng)當(dāng)考慮。第一是I/O信號(hào)字長(zhǎng),正如我們已經(jīng)說(shuō)過(guò)的那樣,其就浮點(diǎn)而言為24位,就定點(diǎn)DSP而言通常為16位。第二就是用于乘法的系數(shù)字長(zhǎng)。定點(diǎn)系數(shù)為16位,與信號(hào)數(shù)據(jù)相同;但浮點(diǎn)系數(shù)則可能為24位或53位,這取決于所用的是單寬度精度還是雙寬度精度。如果指數(shù)表示有意義的零,則精確度實(shí)際上會(huì)超過(guò)上述位數(shù)。
最后,就是保存乘加器(MAC)運(yùn)算中間結(jié)果的字長(zhǎng),通常稱(chēng)作寄存器文件。對(duì)單一16位乘以16位的乘法而言,將需要32位的乘積;而就單一24位乘以24位的尾數(shù)乘法而言,則需48位的乘積(指數(shù)有不同的數(shù)據(jù)路徑)。但是,MAC 需要額外的位用于溢出空間 (overflow headroom)。在16位定點(diǎn)器件中,溢出空間通常為 8 位,這就使總的中間結(jié)果字長(zhǎng)為 40 位(16 個(gè)信號(hào)+16 個(gè)系數(shù)+8 個(gè)溢出)。
將相同大小的溢出空間集成到浮點(diǎn)DSP中將需要60個(gè)中間結(jié)果位(24個(gè)信號(hào)+24個(gè)系數(shù)+12個(gè)溢出),這將超過(guò)大多數(shù)應(yīng)用對(duì)精度的要求。但就取冪而言,我們將結(jié)果標(biāo)準(zhǔn)化,這樣所有24位或53位都有效,溢出位就不必要了。TI的TMS320C67x系列等浮點(diǎn)DSP允許開(kāi)發(fā)人員在雙精度內(nèi)部運(yùn)算與單精度I/O結(jié)合的模式下優(yōu)化精確度與性能。其結(jié)果是得到的精確度比定點(diǎn)或單精度浮點(diǎn)運(yùn)算提供的精確度高得多,但又不會(huì)產(chǎn)生完全雙精度 I/O 帶來(lái)的周期問(wèn)題。
視頻與音頻數(shù)據(jù)集要求
將視頻與音頻應(yīng)用的數(shù)據(jù)集要求加以對(duì)比,就很容易看出使用浮點(diǎn)格式的優(yōu)勢(shì)。視頻的采樣率很高,其像素?cái)?shù)據(jù)采樣率相當(dāng)于每秒數(shù)十乃至數(shù)百個(gè)兆位 (Mbps),具體的值決于應(yīng)用。像素?cái)?shù)據(jù)通常以 8 至 12 位的短字表示,每一位代表影像的紅、綠、藍(lán)(RGB)位面。業(yè)界標(biāo)準(zhǔn)的MPEG視頻壓縮算法的關(guān)鍵數(shù)學(xué)運(yùn)算包括離散余弦變換(DCT)與量化,且過(guò)濾有限。DCT與量化采用整數(shù)運(yùn)算就能有效處理,它與短數(shù)據(jù)字相結(jié)合使得視頻成為定點(diǎn)DSP很自然的應(yīng)用,特別對(duì)那些設(shè)計(jì)有大量并行數(shù)據(jù)路徑與片上視頻接口的情況更是如此。
另一方面,音頻的數(shù)據(jù)流更為有限,對(duì) 24 位采樣且每秒 48 千個(gè)采樣 (ksps) 的速度而言,約為1Mbps的速度。新興的采樣率為192ksps,為該數(shù)據(jù)速率的四倍,但其數(shù)據(jù)流仍然大大低于視頻流。不過(guò)音頻數(shù)據(jù)的處理必須比視頻精確得多。眼睛很容易就被欺騙,特別當(dāng)影像運(yùn)動(dòng)時(shí)更是如此;但耳朵就很難欺騙了。因此音頻需要浮點(diǎn)硬件提供的更大的字長(zhǎng)。
使用完全24位浮點(diǎn)I/O精度來(lái)進(jìn)行聲音采樣,這就得到144dB的動(dòng)態(tài)范圍,大大超出了聲音復(fù)制所需的全振幅范圍。此外,音頻還要求寬系數(shù)與中間結(jié)果提供的精確度,其原因有二。首先,音頻應(yīng)用通常使用串聯(lián)無(wú)限脈沖響應(yīng)濾波器(IIR)以實(shí)現(xiàn)最低時(shí)延與最高性能。但串聯(lián)過(guò)濾每一級(jí)都會(huì)傳播上一級(jí)的錯(cuò)誤。信號(hào)與系數(shù)字長(zhǎng)越長(zhǎng),精確度越高,上述傳播錯(cuò)誤的影響就越小。
第二,在接近于零時(shí)必須保持信號(hào)精確度,以避免人耳可以分辨的諧波失真。浮點(diǎn)格式從本質(zhì)上說(shuō)與人耳的敏感度配合得很好,因?yàn)樗诜謹(jǐn)?shù)趨近于零時(shí)會(huì)變得更精確。相反,定點(diǎn)系統(tǒng)在分?jǐn)?shù)極小的情況下會(huì)取近似值等于零,這就降低了精確度。所有上述浮點(diǎn)實(shí)數(shù)算法方面都對(duì)真實(shí)復(fù)制音頻信號(hào)至關(guān)重要。
盡管過(guò)去常用定點(diǎn)器件實(shí)現(xiàn)高保真音頻,但目前則轉(zhuǎn)向采用精確度更高的浮點(diǎn)格式。某些浮點(diǎn)DSP集成了多通道音頻串行端口(McASP),從而簡(jiǎn)化了音頻系統(tǒng)的設(shè)計(jì),這就為上述發(fā)展趨勢(shì)提供了支持。隨著最新型音頻創(chuàng)新在消費(fèi)類(lèi)電子產(chǎn)品中的日益普及,對(duì)浮點(diǎn)DSP的需求也將上升,這也有助于讓其成本更接近于定點(diǎn) DSP。
其他數(shù)據(jù)集
其它類(lèi)型應(yīng)用的數(shù)據(jù)集也可受益于浮點(diǎn)的精確度。在醫(yī)療影像識(shí)別中,更高的精確度能夠支持許多層次的信號(hào)輸入,包括光、X射線(xiàn)、超聲波與其它來(lái)源的輸入等,它們都必須進(jìn)行定義與處理,以生成提供有用診斷信息的輸出影像。動(dòng)態(tài)范圍較大對(duì)雷達(dá)至關(guān)重要,這種情況下,系統(tǒng)應(yīng)能夠在從零到無(wú)窮大的范圍內(nèi)進(jìn)行跟蹤,而只用整個(gè)范圍的一個(gè)較小的子集進(jìn)行目標(biāo)捕獲與識(shí)別。動(dòng)態(tài)范圍較大也有助于讓機(jī)器人處理不可預(yù)見(jiàn)的情況,如在機(jī)器人正常有限的運(yùn)動(dòng)范圍中遇到的障礙等。與上述應(yīng)用形成對(duì)比的是,定點(diǎn)器件為巨大的通信市場(chǎng)提供更好的服務(wù),因?yàn)榇蠖鄶?shù)通信數(shù)據(jù)都是以八位字節(jié)串行傳輸,隨后進(jìn)行內(nèi)部擴(kuò)展以根據(jù)整數(shù)運(yùn)算進(jìn)行 16 位處理。
近年來(lái),隨著數(shù)字信號(hào)處理領(lǐng)域不斷發(fā)展,DSP也由應(yīng)用推動(dòng)發(fā)展。SoC集成意味著更多的存儲(chǔ)器和不同的內(nèi)核與專(zhuān)用外設(shè)一起均能集成到同一器件上,這就使DSP產(chǎn)品能夠按特定市場(chǎng)的需求進(jìn)行定制。在此環(huán)境中,浮點(diǎn)功能已成為整體 DSP 產(chǎn)品組合中的另一要素。
定點(diǎn)DSP與浮點(diǎn) DSP
之間在成本與易用性方面仍有某些差異,但隨著時(shí)間的推移,上述差異已經(jīng)不大。對(duì)設(shè)計(jì)人員最具重要性的特性在于浮點(diǎn)格式具有更高的算術(shù)靈活性與精確度。對(duì)高保真音頻以及需要實(shí)數(shù)運(yùn)算、更高精確度與較大動(dòng)態(tài)范圍的其它數(shù)據(jù)集應(yīng)用而言,浮點(diǎn) DSP 是最佳的解決方案。
DSP:VC++工程文件擴(kuò)展名 。