DSP與數(shù)據(jù)轉(zhuǎn)換器協(xié)同工作所必須考慮的10大因素_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、dsp與數(shù)據(jù)轉(zhuǎn)換器協(xié)同工作所必須考慮的10大因素假設(shè)您接到一項(xiàng)工作任務(wù),設(shè)計(jì)一套由 與與等模擬器件組成的信號(hào)處理系統(tǒng)。假如您考慮到幾個(gè)重要因素,工作就會(huì)十分容易。下面就來談?wù)勗O(shè)計(jì)工作中應(yīng)當(dāng)考慮的這幾個(gè)因素。具體了解應(yīng)用類型第一步需要了解應(yīng)用類型。對(duì)于控制型應(yīng)用,既需要應(yīng)對(duì)突發(fā)的大量數(shù)據(jù)處理情形,也要考慮間歇的閑置狀態(tài);而對(duì)于音頻應(yīng)用,則需要處理延續(xù)數(shù)據(jù)流的能力。了解應(yīng)用的詳細(xì)需求將有助于挑選適當(dāng)?shù)慕涌诤驼_的數(shù)據(jù)讀取辦法。評(píng)估系統(tǒng)速率其次步需要了解數(shù)據(jù)采樣的速率。舉例來說,音頻系統(tǒng)可能是一部 cd 播放機(jī),采樣率為 96 khz,也可能是電話語音系統(tǒng),采樣率僅為 8 khz。固然,也可能是其他

2、系統(tǒng),如 adsl 質(zhì)量測量應(yīng)用,采樣速率高達(dá) 10 msps,或者是稱重應(yīng)用,每秒只要 16 次采樣就足夠了,但要求具備較高的辨別率(如 24 位)。了解此方面信息,將有助于開展下一步工作,即挑選正確的 dsp 接口。挑選正確的 dsp 接口了解了應(yīng)用及速率要求后,就對(duì)采納哪種 dsp 接口有了一定的熟悉。大多數(shù)音頻設(shè)備均用法特定類型的串行接口,不過高速應(yīng)用則要求并行接口。當(dāng)采樣速率為 10 msps、辨別率為 12 位時(shí),假如采納串行接口,其端口的速率要達(dá)到 120 mhz 才干從轉(zhuǎn)換器向 dsp 發(fā)送數(shù)據(jù)。這一要求大大超過了大多數(shù)50 mhz 串行端口的處理能力。若用法并行接口,則上信號(hào)

3、交換的頻率為 10 mhz,速率顯著降低,因此處理起來十分容易。在挑選接口時(shí),還要考慮的另一問題就是,并行總線能否滿足所需的數(shù)據(jù)速率要求,或者說并行總線芯片在滿足程序與系數(shù)要求后是否已經(jīng)達(dá)到了滿負(fù)荷。假如是的話,不妨考慮在 dsp 與轉(zhuǎn)換器之間插入 fifo。確定握手模式一旦挑選了 dsp 接口,下一步就要考慮轉(zhuǎn)換器與 dsp 之間的握手模式 (handshake mode)。大多數(shù)轉(zhuǎn)換器在發(fā)出新的數(shù)據(jù)字之前都會(huì)給出某種類型的轉(zhuǎn)換結(jié)束 (eoc) 信號(hào)。處理器用法上述信號(hào)的方式有兩種:一是輪詢 (poll);二是用其作為中斷。用法 eoc 信號(hào)作為中斷具有一定優(yōu)勢,由于 cpu 不會(huì)被輪詢標(biāo)志

4、占用,因此在獲得數(shù)據(jù)前不會(huì)打斷 cpu 的正常工作。不過,假如轉(zhuǎn)換器等待處理特定的協(xié)議來讀取數(shù)據(jù),比如轉(zhuǎn)換器發(fā)出轉(zhuǎn)換結(jié)束信號(hào)后又需要讀取指令來檢索數(shù)據(jù),每個(gè)讀取指令都會(huì)觸發(fā)新的中斷,那么就會(huì)造成過多的開銷,得不償失。在這種狀況下,輪詢的辦法就具有顯然的優(yōu)勢了。假如中斷時(shí)延十分重要的話,那么用法輪詢方式就更具優(yōu)勢。輪詢可確保信號(hào)響應(yīng)速度更快,這比進(jìn)入中斷服務(wù)例程要快得多。假如數(shù)據(jù)檢索有短臨時(shí)隙 (narrow timeslot),那么采納輪詢方式也是有利的。確定傳輸模式下一步就是實(shí)際收集數(shù)據(jù)的工作了。收集數(shù)據(jù)有兩種辦法,各有千秋。第一種辦法是采納 dsp 的 dma(挺直存儲(chǔ)器存取)控制器,可使

5、傳輸與轉(zhuǎn)換器的轉(zhuǎn)換結(jié)束標(biāo)志同步,并使 cpu 不用擔(dān)當(dāng)傳輸工作,由于數(shù)據(jù)陣列的填充是在后臺(tái)完成的,傳輸完成后再通知 cpu。不過,這種辦法惟獨(dú)在舉行挺直傳輸?shù)臓顩r下才有效。假如數(shù)據(jù)轉(zhuǎn)換器在檢索數(shù)據(jù)時(shí)需要某些復(fù)雜的機(jī)制,那么 dma 就不太有效了。在這種狀況下,應(yīng)讓 cpu 參加傳輸工作。盡管聽從特別的協(xié)議相當(dāng)容易,但必需用法大量的 cpu資源來收集數(shù)據(jù)。假如中斷率十分高,那么 cpu 可能很難有時(shí)光再去執(zhí)行數(shù)據(jù)收集之后的算法了。是否采納數(shù)據(jù)猝發(fā)假設(shè)數(shù)據(jù)轉(zhuǎn)換器銜接至 dsp 的并行總線,該并行總線在存儲(chǔ)器存取(讀取正在執(zhí)行的數(shù)據(jù))和 i/o 存取(讀取采樣)之間需要幾個(gè)周期的轉(zhuǎn)換,而且數(shù)據(jù)轉(zhuǎn)換速

6、率十分高,因此,轉(zhuǎn)換經(jīng)常是必須的,幾乎每次采樣讀取都要舉行轉(zhuǎn)換。假如一步就能讀取多個(gè)數(shù)據(jù)字,且不用每次都舉行數(shù)據(jù)總線交換,絕對(duì)是十分有價(jià)值的。在這種狀況下,不妨考慮在數(shù)據(jù)轉(zhuǎn)換器與 dsp 之間采納 fifo。一旦 fifo 達(dá)到一定的水平即中斷 dsp,達(dá)到一定數(shù)量的數(shù)據(jù)字一步完成傳輸,這就大大降低了總線轉(zhuǎn)換的開銷。針對(duì)變量挑選正確的數(shù)據(jù)類型數(shù)據(jù)轉(zhuǎn)換器針對(duì)所用的數(shù)據(jù)采納不同的格式。有的用法標(biāo)準(zhǔn)二進(jìn)制(即無符號(hào)二進(jìn)制)數(shù)據(jù)類型,有的則采納帶符號(hào)的二進(jìn)制數(shù)據(jù)類型,這就是問題的復(fù)雜所在。假如有一個(gè) 12 位數(shù)據(jù)轉(zhuǎn)換器,那么在帶符號(hào)二進(jìn)制數(shù)據(jù)狀況下,如何用法將是一個(gè)問題。符號(hào)位占領(lǐng)最重要的位置,即第“

7、11”位(這里的起始位是第“0”位)。假如將此數(shù)據(jù)字給予“c”變量,寬度為“16”位,那么假定“c”符號(hào)位為第“15”位。假如從轉(zhuǎn)換器讀取的數(shù)字為負(fù),那么 dsp 就不能識(shí)別其為負(fù)值,由于符號(hào)位的位置錯(cuò)誤。如何解決這一問題呢?第一種辦法是在讀取數(shù)據(jù)時(shí)舉行數(shù)據(jù)位移。不過,這惟獨(dú)在 cpu 讀取數(shù)據(jù)時(shí)才有可能,由于 dma 控制器不行能在傳輸時(shí)舉行數(shù)據(jù)位移。另一種辦法是在數(shù)據(jù)塊徹低傳輸后在環(huán)路中將數(shù)據(jù)位移至正確的位置。不過這必需用法 cpu,并要求額外的 。假如轉(zhuǎn)變銜接后轉(zhuǎn)換器的第“11”位剛好銜接至 dsp 數(shù)據(jù)總線的第“15”位,那么符號(hào)位從首位算起剛好位于正確的位置,這就能實(shí)現(xiàn)基于dma 的

8、傳輸,而且也不用再舉行數(shù)據(jù)位移。確保處理的是正確數(shù)據(jù)現(xiàn)在,數(shù)據(jù)已經(jīng)進(jìn)入系統(tǒng),數(shù)據(jù)字存儲(chǔ)在陣列中,數(shù)據(jù)大小也合適,于是開頭處理數(shù)據(jù),但沒有獲得預(yù)期的結(jié)果,這時(shí)需要思量到底出了什么問題。首先應(yīng)當(dāng)檢查 dsp 的高速緩存,dma 傳輸數(shù)據(jù)進(jìn)入存儲(chǔ)器時(shí)是否啟用高速緩存,在這種狀況下,高速緩存很可能保留拷貝的舊數(shù)據(jù),并在算法工作中用法它們。假如發(fā)生了此類問題,就必須注重高速緩存相關(guān)性與轉(zhuǎn)儲(chǔ)清除問題,或者是存儲(chǔ)新數(shù)據(jù)的高速緩存區(qū)失效。這樣就能確保 cpu 處理的數(shù)據(jù)是傳輸完成后的最新數(shù)據(jù)。假如用 c 語言編程應(yīng)分配易失關(guān)鍵字在調(diào)試系統(tǒng)時(shí),采納變量查詢外設(shè)的狀態(tài)后,發(fā)覺 cpu 所用變量值是錯(cuò)誤的,這時(shí)就要

9、思量到底哪里出了問題。先看看下面這個(gè)結(jié)構(gòu):unsigned int *pcontrol = (unsigned int *)0x00coffee; file:/錯(cuò)誤while (*pcontrol = 0); file:/等待一個(gè)外部大事這里的 *pcontrol 指向一個(gè)外設(shè)。通過 while 循環(huán),期望 eoc 能從“0”轉(zhuǎn)換為“1”。但在大多數(shù)狀況下,唯恐得向來等下去,由于編譯器認(rèn)為它已經(jīng)徹低控制了變量及與其相關(guān)的存儲(chǔ)器,只加載 *pcontrol 指向的存儲(chǔ)器位置的內(nèi)容一次,就會(huì)對(duì)其舉行循環(huán)測試。但問題在于,因?yàn)椴粫?huì)重新讀取存儲(chǔ)器內(nèi)容,也就不能結(jié)束循環(huán)。解決這一問題的辦法就是將 *pcontrol 的聲明作一下修改,通知編譯器其指向的存儲(chǔ)器位置可由外部大事修改,而每次用法該變量時(shí)都必需重新載入,如下所示:volatile unsigned int *pcontrol = (unsigned int *)0x00co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論