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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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ī),采樣率為96khz,也可能是電話語音系統(tǒng),采樣率僅為8khz。固然,也可能是其他系統(tǒng),如adsl質(zhì)量

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

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

4、發(fā)出轉(zhuǎn)換結(jié)束信號(hào)后又需要讀取指令來檢索數(shù)據(jù),每個(gè)讀取指令都會(huì)觸發(fā)新的中斷,那么就會(huì)造成過多的開銷,得不償失。在這種狀況下,輪詢的辦法就具有顯然的優(yōu)勢(shì)了。假如中斷時(shí)延十分重要的話,那么用法輪詢方式就更具優(yōu)勢(shì)。輪詢可確保信號(hào)響應(yīng)速度更快,這比進(jìn)入中斷服務(wù)例程要快得多。假如數(shù)據(jù)檢索有短臨時(shí)隙(narrowtimeslot),那么采納輪詢方式也是有利的。確定傳輸模式下一步就是實(shí)際收集數(shù)據(jù)的工作了。收集數(shù)據(jù)有兩種辦法,各有千秋。第一種辦法是采納dsp的dma(挺直存儲(chǔ)器存取)控制器,可使傳輸與轉(zhuǎn)換器的轉(zhuǎn)換結(jié)束標(biāo)志同步,并使cpu不用擔(dān)當(dāng)傳輸工作,由于數(shù)據(jù)陣列的填充是在后臺(tái)完成的,傳輸完成后再通知cpu。

5、不過,這種辦法惟獨(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)換速率十分高,因此,轉(zhuǎn)換經(jīng)常是必須的,幾乎每次采樣讀取都要舉行轉(zhuǎn)換。假如一步就能讀取多個(gè)數(shù)據(jù)字,且不用每次都舉行數(shù)據(jù)總線交換,絕對(duì)是十分有價(jià)值的。在這

6、種狀況下,不妨考慮在數(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)最重要的位置,即第“11”位(這里的起始位是第“0”位)。假如將此數(shù)據(jù)字給予“c”變量,寬度為“16”位,那么假定“c”符號(hào)位為第“15”位。假如從轉(zhuǎn)換器讀取的數(shù)字為負(fù),那么dsp就

7、不能識(shí)別其為負(fù)值,由于符號(hào)位的位置錯(cuò)誤。如何解決這一問題呢?第一種辦法是在讀取數(shù)據(jù)時(shí)進(jìn)行數(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的傳輸,而且也不用再舉行數(shù)據(jù)位移。確保處理的是正確數(shù)據(jù)現(xiàn)在,數(shù)據(jù)已經(jīng)進(jìn)入系統(tǒng),數(shù)據(jù)字存儲(chǔ)在陣列中,數(shù)據(jù)大小也合適,于是開頭處理數(shù)據(jù),但沒有獲得預(yù)期的結(jié)果,這時(shí)需要思量到底出了什么問題。首

8、先應(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ù)。假如用編程應(yīng)分配易失關(guān)鍵字在調(diào)試系統(tǒng)時(shí),采納變量查詢外設(shè)的狀態(tài)后,發(fā)覺cpu所用變量值是錯(cuò)誤的,這時(shí)就要思量到底哪里出了問題。先看看下面這個(gè)結(jié)構(gòu):unsignedint*pcontrol=(unsignedint*)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í)都必需重新載入,如下所示:volatileunsignedint*pcontrol=(unsignedint*)0x0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論