国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

DSP與數(shù)據(jù)轉(zhuǎn)換器協(xié)同工作所必須考慮的10大因素

發(fā)布時間:2010-9-11 11:34    發(fā)布者:techshare
假設(shè)您接到一項工作任務(wù),設(shè)計一套由 DSPDACADC等模擬器件組成的信號處理系統(tǒng)。如果您考慮到幾個重要因素,工作就會非常簡單。下面就來談?wù)勗O(shè)計工作中應(yīng)該考慮的這幾個因素。

詳細(xì)了解應(yīng)用類型

第一步需要了解應(yīng)用類型。對于控制型應(yīng)用,既需要應(yīng)對突發(fā)的大量數(shù)據(jù)處理情形,也要考慮間歇的閑置狀態(tài);而對于音頻應(yīng)用,則需要處理連續(xù)數(shù)據(jù)流的能力。了解應(yīng)用的具體需求將有助于選擇適當(dāng)?shù)慕涌诤驼_的數(shù)據(jù)讀取方法。

評估系統(tǒng)速率

第二步需要了解數(shù)據(jù)采樣的速率。舉例來說,音頻系統(tǒng)可能是一部 CD 播放機,采樣率為 96 kHz,也可能是電話語音系統(tǒng),采樣率僅為 8 kHz。當(dāng)然,也可能是其他系統(tǒng),如 ADSL 質(zhì)量測量應(yīng)用,采樣速率高達 10 MSPS,或者是稱重應(yīng)用,每秒只要 16 次采樣就足夠了,但要求具備較高的分辨率(如 24 位)。了解此方面信息,將有助于開展下一步工作,即選擇正確的 DSP 接口。

選擇正確的 DSP 接口

了解了應(yīng)用及速率要求后,就對采用哪種 DSP 接口有了一定的認(rèn)識。大多數(shù)音頻設(shè)備均使用特定類型的串行接口,不過高速應(yīng)用則要求并行接口。當(dāng)采樣速率為 10 MSPS、分辨率為 12 位時,如果采用串行接口,其端口的速率要達到 120 MHz 才能從轉(zhuǎn)換器向 DSP 發(fā)送數(shù)據(jù)。這一要求大大超過了大多數(shù)50 MHz 串行端口的處理能力。若使用并行接口,則總線上信號交換的頻率為 10 MHz,速率顯著降低,因此處理起來非常簡單。

在選擇接口時,還要考慮的另一問題就是,并行總線能否滿足所需的數(shù)據(jù)速率要求,或者說并行總線芯片在滿足程序與系數(shù)要求后是否已經(jīng)達到了滿負(fù)荷。如果是的話,不妨考慮在 DSP 與轉(zhuǎn)換器之間插入 FIFO。

確定握手模式

一旦選擇了 DSP 接口,下一步就要考慮轉(zhuǎn)換器與 DSP 之間的握手模式 (handshake mode)。大多數(shù)轉(zhuǎn)換器在發(fā)出新的數(shù)據(jù)字之前都會給出某種類型的轉(zhuǎn)換結(jié)束 (EOC) 信號。處理器使用上述信號的方式有兩種:一是輪詢 (poll);二是用其作為中斷。

使用 EOC 信號作為中斷具有一定優(yōu)勢,因為 CPU 不會被輪詢標(biāo)記占用,因此在獲得數(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ù)檢索有短暫時隙 (narrow timeslot),那么采用輪詢方式也是有利的。

確定傳輸模式

下一步就是實際收集數(shù)據(jù)的工作了。收集數(shù)據(jù)有兩種方法,各有千秋。第一種方法是采用 DSP 的 DMA(直接存儲器存取)控制器,可使傳輸與轉(zhuǎn)換器的轉(zhuǎn)換結(jié)束標(biāo)記同步,并使 CPU 不用承擔(dān)傳輸工作,因為數(shù)據(jù)陣列的填充是在后臺完成的,傳輸完成后再通知 CPU。不過,這種方法只有在進行直接傳輸?shù)那闆r下才有效。如果數(shù)據(jù)轉(zhuǎn)換器在檢索數(shù)據(jù)時需要某些復(fù)雜的機制,那么 DMA 就不太有效了。

在這種情況下,應(yīng)讓 CPU 參與傳輸工作。盡管服從特殊的協(xié)議相當(dāng)簡單,但必須使用大量的 CPU資源來收集數(shù)據(jù)。如果中斷率非常高,那么 CPU 可能很難有時間再去執(zhí)行數(shù)據(jù)收集之后的算法了。

是否采用數(shù)據(jù)猝發(fā)

假設(shè)數(shù)據(jù)轉(zhuǎn)換器連接至 DSP 的并行總線,該并行總線在存儲器存取(讀取正在執(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ù)采用不同的格式。有的使用標(biāo)準(zhǔn)二進制(即無符號二進制)數(shù)據(jù)類型,有的則采用帶符號的二進制數(shù)據(jù)類型,這就是問題的復(fù)雜所在。如果有一個 12 位數(shù)據(jù)轉(zhuǎn)換器,那么在帶符號二進制數(shù)據(jù)情況下,如何使用將是一個問題。符號位占據(jù)最重要的位置,即第“11”位(這里的起始位是第“0”位)。如果將此數(shù)據(jù)字賦予“C”變量,寬度為“16”位,那么假定“C”符號位為第“15”位。如果從轉(zhuǎn)換器讀取的數(shù)字為負(fù),那么 DSP 就不能識別其為負(fù)值,因為符號位的位置錯誤。如何解決這一問題呢?第一種方法是在讀取數(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):

unsigned int *pControl = (unsigned int *)0x00COFFEE; file://錯誤
while (*pControl == 0); file://等待一個外部事件

這里的 *pControl 指向一個外設(shè)。通過 while 循環(huán),期望 EOC 能從“0”轉(zhuǎn)換為“1”。但在大多數(shù)情況下,恐怕得一直等下去,因為編譯器認(rèn)為它已經(jīng)完全控制了變量及與其相關(guān)的存儲器,只加載 *pControl 指向的存儲器位置的內(nèi)容一次,就會對其進行循環(huán)測試。但問題在于,由于不會重新讀取存儲器內(nèi)容,也就不能結(jié)束循環(huán)。

解決這一問題的方法就是將 *pControl 的聲明作一下修改,通知編譯器其指向的存儲器位置可由外部事件修改,而每次使用該變量時都必須重新載入,如下所示:

volatile unsigned int *pControl = (unsigned int *)0x00COFFEE; file://正確
while (*pControl == 0); file://等待一個外部事件

確保采樣等距

如果要在頻域中處理采樣數(shù)據(jù),那么還要提到一點:不是所有轉(zhuǎn)換器都有啟動新轉(zhuǎn)換的自身時基。在這種情況下,應(yīng)采用外部時基或 DSP 定時針 (timer pin) 。
本文地址:http://m.qingdxww.cn/thread-26100-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 激情文学在线视频 | 美国大片免费看在线观看 | 国产欧美日韩一区二区三区视频 | 久久毛片久久毛 | 成人精品视频在线观看完整版 | 男人天堂官方网站 | 国产成人v视频在线观看 | 欧美不卡一区二区三区 | 欧美精品v国产精品v日韩精品 | 日本夜夜操 | 日韩一区二区在线免费观看 | 欧美日韩极品 | 夜色福利视频 | 三面娜迦泰剧全集在线观看 | 免看一级一片一在线看 | 日韩欧美在线视频 | 手机看片国产免费 | 亚洲天堂欧美 | 羞羞视频在线免费观看 | 91麻豆国产免费观看 | 亚洲成年网站在线777 | 欧美国产一区二区 | a级亚洲片精品久久久久久久 | 伊人丁香狠狠色综合久久 | 热久久这里是精品6免费观看 | 男人阁| h肉动漫在线视频无修无遮挡 | 日韩欧美视频一区二区 | 色欧美亚洲 | 破外女出血一级毛片 | 性夜影院午夜看片 | 中文岛国精品亚洲一区 | www.91免费视频 | 国产香蕉一区二区在线观看 | 成人国产在线看不卡 | 999热成人精品国产免 | 四虎影视在线观看 | 啦啦啦在线观看视频免费观看4 | 成人综合激情网 | 国产日韩在线观看视频网站 | 亚洲成年网 |