
把工作簡單化,DSP與數(shù)據(jù)轉(zhuǎn)換器協(xié)同工作需考慮這些因素
發(fā)布時間:2016-12-14 責任編輯:susan
【導(dǎo)讀】假設(shè)你接到一項工作任務(wù),設(shè)計一套由DSP與DAC與ADC等模擬器件組成的信號處理系統(tǒng)。如果你考慮到幾個重要因素,工作就會非常簡單。下面就來談?wù)勗O(shè)計工作中應(yīng)該考慮的這幾個因素。

詳細了解應(yīng)用類型
第一步需要了解應(yīng)用類型。對于控制型應(yīng)用,既需要應(yīng)對突發(fā)的大量數(shù)據(jù)處理情形,也要考慮間歇的閑置狀態(tài);而對于音頻應(yīng)用,則需要處理連續(xù)數(shù)據(jù)流的能力。了解應(yīng)用的具體需求將有助于選擇適當?shù)慕涌诤驼_的數(shù)據(jù)讀取方法。
評估系統(tǒng)速率
第二步需要了解數(shù)據(jù)采樣的速率。舉例來說,音頻系統(tǒng)可能是一部CD播放機,采樣率為96kHz,也可能是電話語音系統(tǒng),采樣率僅為8kHz。當然,也可能是其他系統(tǒng),如ADSL質(zhì)量測量應(yīng)用,采樣速率高達10MSPS,或者是稱重應(yīng)用,每秒只要16次采樣就足夠了,但要求具備較高的分辨率(如24位)。了解此方面信息,將有助于開展下一步工作,即選擇正確的DSP接口。
選擇正確的DSP接口
了解了應(yīng)用及速率要求后,就對采用哪種DSP接口有了一定的認識。大多數(shù)音頻設(shè)備均使用特定類型的串行接口,不過高速應(yīng)用則要求并行接口。當采樣速率為10MSPS、分辨率 為12位時,如果采用串行接口,其端口的速率要達到120MHz才能從轉(zhuǎn)換器向DSP發(fā)送數(shù)據(jù)。這一要求大大超過了大多數(shù)50MHz串行端口的處理能力。若使用并行接口,則總線上信號交換的頻率為10MHz,速率顯著降低,因此處理起來非常簡單。
在選擇接口時,還要考慮的另一問題就是,并行總線能否滿足所需的數(shù)據(jù)速率要求,或者說并行總線芯片在滿足程序與系數(shù)要求后是否已經(jīng)達到了滿負荷。如果是的話,不妨考慮在DSP與轉(zhuǎn)換器之間插入FIFO。
確定握手模式
一旦選擇了DSP接口,下一步就要考慮轉(zhuǎn)換器與DSP之間的握手模式(handshakemode)。大多數(shù)轉(zhuǎn)換器在發(fā)出新的數(shù)據(jù)字之前都會給出某種類型的轉(zhuǎn)換結(jié)束(EOC)信號。處理器使用上述信號的方式有兩種:一是輪詢(poll);二是用其作為中斷。
使用EOC信號作為中斷具有一定優(yōu)勢,因為CPU不會被輪詢標記占用,因此在獲得數(shù)據(jù)前不會打斷CPU的正常工作。不過,如果轉(zhuǎn)換器等待處理特定的協(xié)議來讀取數(shù)據(jù),比如轉(zhuǎn)換器發(fā)出轉(zhuǎn)換結(jié)束信號后又需要讀取命令來檢索數(shù)據(jù),每個讀取命令都會觸發(fā)新的中斷,那么就會造成過多的開銷,得不償失。在這種情況下,輪詢的方法就具有明顯的優(yōu)勢了。
如果中斷時延非常重要的話,那么使用輪詢方式就更具優(yōu)勢。輪詢可確保信號響應(yīng)速度更快,這比進入中斷服務(wù)例程要快得多。如果數(shù)據(jù)檢索有短暫時隙(narrowtimeslot),那么采用輪詢方式也是有利的。
確定傳輸模式
下一步就是實際收集數(shù)據(jù)的工作了。收集數(shù)據(jù)有兩種方法,各有千秋。第一種方法是采用DSP的DMA(直接存儲器存?。┛刂破?,可使傳輸與轉(zhuǎn)換器的轉(zhuǎn)換結(jié)束標記同步,并使CPU不用承擔傳輸工作,因為數(shù)據(jù)陣列的填充是在后臺完成的,傳輸完成后再通知CPU。
不過,這種方法只有在進行直接傳輸?shù)那闆r下才有效。如果數(shù)據(jù)轉(zhuǎn)換器在檢索數(shù)據(jù)時需要某些復(fù)雜的機制,那么DMA就不太有效了。
在這種情況下,應(yīng)讓CPU參與傳輸工作。盡管服從特殊的協(xié)議相當簡單,但必須使用大量的CPU資源來收集數(shù)據(jù)。如果中斷率非常高,那么CPU可能很難有時間再去執(zhí)行數(shù)據(jù)收集之后的算法了。
是否采用數(shù)據(jù)猝發(fā)
假設(shè)數(shù)據(jù)轉(zhuǎn)換器連接至DSP的并行總線,該并行總線在存儲器存?。ㄗx取正在執(zhí)行的數(shù)據(jù))和I/O存取(讀取采樣)之間需要幾個周期的轉(zhuǎn)換,而且數(shù)據(jù)轉(zhuǎn)換速率非常高,因此,轉(zhuǎn)換常常是必需的,幾乎每次采樣讀取都要進行轉(zhuǎn)換。
如果一步就能讀取多個數(shù)據(jù)字,且不用每次都進行數(shù)據(jù)總線交換,肯定是非常有價值的。在這種情況下,不妨考慮在數(shù)據(jù)轉(zhuǎn)換器與DSP之間采用FIFO。一旦FIFO達到一定的水平即中斷DSP,達到一定數(shù)量的數(shù)據(jù)字一步完成傳輸,這就大大降低了總線轉(zhuǎn)換的開銷。
針對變量選擇正確的數(shù)據(jù)類型
數(shù)據(jù)轉(zhuǎn)換器針對所用的數(shù)據(jù)采用不同的格式。有的使用標準二進制(即無符號二進制)數(shù)據(jù)類型,有的則采用帶符號的二進制數(shù)據(jù)類型,這就是問題的復(fù)雜所在。如果有一個12位數(shù)據(jù)轉(zhuǎn)換器,那么在帶符號二進制數(shù)據(jù)情況下,如何使用將是一個問題。符號位占據(jù)最重要的位置,即第“11”位(這里的起始位是第“0”位)。如果將此數(shù)據(jù)字賦予“C”變量,寬度為“16”位,那么假定“C”符號位為第“15”位。如果從轉(zhuǎn)換器讀取的數(shù)字為負,那么DSP就不能識別其為負值,因為符號位的位置錯誤。如何解決這一問題呢?第一種方法是在讀取數(shù)據(jù)時進
行數(shù)據(jù)位移。不過,這只有在CPU讀取數(shù)據(jù)時才有可能,因為DMA控制器不可能在傳輸時進行數(shù)據(jù)位移。另一種方法是在數(shù)據(jù)塊完全傳輸后在環(huán)路中將數(shù)據(jù)位移至正確的位置。不過這必須使用CPU,并要求額外的MIPS。
如果改變連接后轉(zhuǎn)換器的第“11”位剛好連接至DSP數(shù)據(jù)總線的第“15”位,那么符號位從首位算起剛好位于正確的位置,這就能實現(xiàn)基于DMA的傳輸,而且也不用再進行數(shù)據(jù)位移。
確保處理的是正確數(shù)據(jù)
現(xiàn)在,數(shù)據(jù)已經(jīng)進入系統(tǒng),數(shù)據(jù)字存儲在陣列中,數(shù)據(jù)大小也合適,于是開始處理數(shù)據(jù),但沒有獲得預(yù)期的結(jié)果,這時需要思考到底出了什么問題。首先應(yīng)該檢查DSP的高速緩存,DMA傳輸數(shù)據(jù)進入存儲器時是否啟用高速緩存,在這種情況下,高速緩存很可能保留拷貝的舊數(shù)據(jù),并在算法工作中使用它們。如果發(fā)生了此類問題,就必需注意高速緩存相關(guān)性與轉(zhuǎn)儲清除問題,或者是存儲新數(shù)據(jù)的高速緩存區(qū)失效。這樣就能確保CPU處理的數(shù)據(jù)是傳輸完成后的最新數(shù)據(jù)。
如果用C語言編程應(yīng)分配易失關(guān)鍵字
在調(diào)試嵌入式系統(tǒng)時,采用變量查詢外設(shè)的狀態(tài)后,發(fā)現(xiàn)CPU所用變量值是錯誤的,這時就要思考到底哪里出了問題。先看看下面這個結(jié)構(gòu):
unsignedint*pControl=(unsignedint*)0x00COFFEE;file://錯誤
while(*pControl==0);file://等待一個外部事件
這里的*pControl指向一個外設(shè)。
通過while循環(huán),期望EOC能從“0”轉(zhuǎn)換為“1”。但在大多數(shù)情況下,恐怕得一直等下去,因為編譯器認為它已經(jīng)完全控制了變量及與其相關(guān)的存儲器,只加載*pControl指向的存儲器位置的內(nèi)容一次,就會對其進行循環(huán)測試。但問題在于,由于不會重新讀取存儲器內(nèi)容,也就不能結(jié)束循環(huán)。
解決這一問題的方法就是將*pControl的聲明作一下修改,通知編譯器其指向的存儲器位置可由外部事件修改,而每次使用該變量時都必須重新載入,如下所示:
volatileunsignedint*pControl=(unsignedint*)0x00COFFEE;file://正確
while(*pControl==0);file://等待一個外部事件
確保采樣等距
如果要在頻域中處理采樣數(shù)據(jù),那么還要提到一點:不是所有轉(zhuǎn)換器都有啟動新轉(zhuǎn)換的自身時基。在這種情況下,應(yīng)采用外部時基或DSP定時針(timerpin)。
特別推薦
- 機構(gòu)預(yù)警:DRAM價格壓力恐持續(xù)至2027年,存儲原廠加速擴產(chǎn)供應(yīng)HBM
- IDC發(fā)出預(yù)警:存儲芯片暴漲,明年DIY電腦成本恐大幅攀升
- 2025年全球智能手表市場觸底反彈,出貨量將增長7%
- 從集成到獨立!三星首款2nm芯片Exynos 2600將不集成5G基帶
- AI熱潮的連鎖反應(yīng):三星、SK海力士上調(diào)HBM3E合約價
技術(shù)文章更多>>
- 無負擔佩戴,輕便舒適體驗:讓智能穿戴設(shè)備升級你的生活方式
- TWS 耳機智能進階的 “隱形核心”:解讀無錫迪仕 DH254 霍爾開關(guān)
- - 解決頻率偏差問題的可重構(gòu)低頻磁電天線研發(fā)
- 從實驗室到產(chǎn)業(yè)界:鋰硫電池的商業(yè)化之路探析
- Alleima 合瑞邁Hiflex?壓縮機閥片鋼助力空調(diào)能效提升超18%
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
風(fēng)速風(fēng)向儀
風(fēng)揚高科
輔助駕駛系統(tǒng)
輔助設(shè)備
負荷開關(guān)
復(fù)用器
伽利略定位
干電池
干簧繼電器
感應(yīng)開關(guān)
高頻電感
高通
高通濾波器
隔離變壓器
隔離開關(guān)
個人保健
工業(yè)電子
工業(yè)控制
工業(yè)連接器
工字型電感
功率表
功率電感
功率電阻
功率放大器
功率管
功率繼電器
功率器件
共模電感
固態(tài)盤
固體繼電器



