把工作簡單化,DSP與數據轉換器協同工作需考慮這些因素
發布時間:2016-12-14 責任編輯:susan
【導讀】假設你接到一項工作任務,設計一套由DSP與DAC與ADC等模擬器件組成的信號處理係統。如果你考慮到幾個重要因素,工作就會非常簡單。下麵就來談談設計工作中應該考慮的這幾個因素。

詳細了解應用類型
第一步需要了解應用類型。對於控製型應用,既需要應對突發的大量數據處理情形,也要考慮間歇的閑置狀態;而對於音頻應用,則需要處理連續數據流的能力。了解應用的具體需求將有助於選擇適當的接口和正確的數據讀取方法。
評估係統速率
第二步需要了解數據采樣的速率。舉例來說,音頻係統可能是一部CD播放機,采樣率為96kHz,也可能是電話語音係統,采樣率僅為8kHz。當然,也可能是其他係統,如ADSL質量測量應用,采樣速率高達10MSPS,或者是稱重應用,每秒隻要16次采樣就足夠了,但要求具備較高的分辨率(如24位)。了解此方麵信息,將有助於開展下一步工作,即選擇正確的DSP接口。
選擇正確的DSP接口
了解了應用及速率要求後,就對采用哪種DSP接口有了一定的認識。大多數音頻設備均使用特定類型的串行接口,不過高速應用則要求並行接口。當采樣速率為10MSPS、分辨率 為12位時,如果采用串行接口,其端口的速率要達到120MHz才能從轉換器向DSP發送數據。這一要求大大超過了大多數50MHz串行端口的處理能力。若使用並行接口,則總線上信號交換的頻率為10MHz,速率顯著降低,因此處理起來非常簡單。
在zai選xuan擇ze接jie口kou時shi,還hai要yao考kao慮lv的de另ling一yi問wen題ti就jiu是shi,並bing行xing總zong線xian能neng否fou滿man足zu所suo需xu的de數shu據ju速su率lv要yao求qiu,或huo者zhe說shuo並bing行xing總zong線xian芯xin片pian在zai滿man足zu程cheng序xu與yu係xi數shu要yao求qiu後hou是shi否fou已yi經jing達da到dao了le滿man負fu荷he。如ru果guo是shi的de話hua,不bu妨fang考kao慮lv在zaiDSP與轉換器之間插入FIFO。
確定握手模式
一旦選擇了DSP接口,下一步就要考慮轉換器與DSP之間的握手模式(handshakemode)。大多數轉換器在發出新的數據字之前都會給出某種類型的轉換結束(EOC)信號。處理器使用上述信號的方式有兩種:一是輪詢(poll);二是用其作為中斷。
使用EOC信號作為中斷具有一定優勢,因為CPU不會被輪詢標記占用,因此在獲得數據前不會打斷CPUdezhengchanggongzuo。buguo,ruguozhuanhuanqidengdaichulitedingdexieyilaiduqushuju,biruzhuanhuanqifachuzhuanhuanjieshuxinhaohouyouxuyaoduquminglinglaijiansuoshuju,meigeduquminglingdouhuichufaxindezhongduan,namejiuhuizaochengguoduodekaixiao,debuchangshi。zaizhezhongqingkuangxia,lunxundefangfajiujuyoumingxiandeyoushile。
如(ru)果(guo)中(zhong)斷(duan)時(shi)延(yan)非(fei)常(chang)重(zhong)要(yao)的(de)話(hua),那(na)麼(me)使(shi)用(yong)輪(lun)詢(xun)方(fang)式(shi)就(jiu)更(geng)具(ju)優(you)勢(shi)。輪(lun)詢(xun)可(ke)確(que)保(bao)信(xin)號(hao)響(xiang)應(ying)速(su)度(du)更(geng)快(kuai),這(zhe)比(bi)進(jin)入(ru)中(zhong)斷(duan)服(fu)務(wu)例(li)程(cheng)要(yao)快(kuai)得(de)多(duo)。如(ru)果(guo)數(shu)據(ju)檢(jian)索(suo)有(you)短(duan)暫(zan)時(shi)隙(xi)(narrowtimeslot),那麼采用輪詢方式也是有利的。
確定傳輸模式
下一步就是實際收集數據的工作了。收集數據有兩種方法,各有千秋。第一種方法是采用DSP的DMA(直接存儲器存取)控製器,可使傳輸與轉換器的轉換結束標記同步,並使CPU不用承擔傳輸工作,因為數據陣列的填充是在後台完成的,傳輸完成後再通知CPU。
不過,這種方法隻有在進行直接傳輸的情況下才有效。如果數據轉換器在檢索數據時需要某些複雜的機製,那麼DMA就不太有效了。
在這種情況下,應讓CPU參與傳輸工作。盡管服從特殊的協議相當簡單,但必須使用大量的CPU資源來收集數據。如果中斷率非常高,那麼CPU可能很難有時間再去執行數據收集之後的算法了。
是否采用數據猝發
假設數據轉換器連接至DSP的並行總線,該並行總線在存儲器存取(讀取正在執行的數據)和I/O存取(讀取采樣)之間需要幾個周期的轉換,而且數據轉換速率非常高,因此,轉換常常是必需的,幾乎每次采樣讀取都要進行轉換。
如果一步就能讀取多個數據字,且不用每次都進行數據總線交換,肯定是非常有價值的。在這種情況下,不妨考慮在數據轉換器與DSP之間采用FIFO。一旦FIFO達到一定的水平即中斷DSP,達到一定數量的數據字一步完成傳輸,這就大大降低了總線轉換的開銷。
針對變量選擇正確的數據類型
數據轉換器針對所用的數據采用不同的格式。有的使用標準二進製(即無符號二進製)數據類型,有的則采用帶符號的二進製數據類型,這就是問題的複雜所在。如果有一個12位數據轉換器,那麼在帶符號二進製數據情況下,如何使用將是一個問題。符號位占據最重要的位置,即第“11”位(這裏的起始位是第“0”位)。如果將此數據字賦予“C”變量,寬度為“16”位,那麼假定“C”符號位為第“15”位。如果從轉換器讀取的數字為負,那麼DSP就不能識別其為負值,因為符號位的位置錯誤。如何解決這一問題呢?第一種方法是在讀取數據時進
行數據位移。不過,這隻有在CPU讀取數據時才有可能,因為DMA控製器不可能在傳輸時進行數據位移。另一種方法是在數據塊完全傳輸後在環路中將數據位移至正確的位置。不過這必須使用CPU,並要求額外的MIPS。
如果改變連接後轉換器的第“11”位剛好連接至DSP數據總線的第“15”位,那麼符號位從首位算起剛好位於正確的位置,這就能實現基於DMA的傳輸,而且也不用再進行數據位移。
確保處理的是正確數據
現(xian)在(zai),數(shu)據(ju)已(yi)經(jing)進(jin)入(ru)係(xi)統(tong),數(shu)據(ju)字(zi)存(cun)儲(chu)在(zai)陣(zhen)列(lie)中(zhong),數(shu)據(ju)大(da)小(xiao)也(ye)合(he)適(shi),於(yu)是(shi)開(kai)始(shi)處(chu)理(li)數(shu)據(ju),但(dan)沒(mei)有(you)獲(huo)得(de)預(yu)期(qi)的(de)結(jie)果(guo),這(zhe)時(shi)需(xu)要(yao)思(si)考(kao)到(dao)底(di)出(chu)了(le)什(shen)麼(me)問(wen)題(ti)。首(shou)先(xian)應(ying)該(gai)檢(jian)查(zha)DSP的高速緩存,DMA傳chuan輸shu數shu據ju進jin入ru存cun儲chu器qi時shi是shi否fou啟qi用yong高gao速su緩huan存cun,在zai這zhe種zhong情qing況kuang下xia,高gao速su緩huan存cun很hen可ke能neng保bao留liu拷kao貝bei的de舊jiu數shu據ju,並bing在zai算suan法fa工gong作zuo中zhong使shi用yong它ta們men。如ru果guo發fa生sheng了le此ci類lei問wen題ti,就jiu必bi需xu注zhu意yi高gao速su緩huan存cun相xiang關guan性xing與yu轉zhuan儲chu清qing除chu問wen題ti,或huo者zhe是shi存cun儲chu新xin數shu據ju的de高gao速su緩huan存cun區qu失shi效xiao。這zhe樣yang就jiu能neng確que保baoCPU處理的數據是傳輸完成後的最新數據。
如果用C語言編程應分配易失關鍵字
在調試嵌入式係統時,采用變量查詢外設的狀態後,發現CPU所用變量值是錯誤的,這時就要思考到底哪裏出了問題。先看看下麵這個結構:
unsignedint*pControl=(unsignedint*)0x00COFFEE;file://錯誤
while(*pControl==0);file://等待一個外部事件
這裏的*pControl指向一個外設。
通過while循環,期望EOC能從“0”轉換為“1”。但在大多數情況下,恐怕得一直等下去,因為編譯器認為它已經完全控製了變量及與其相關的存儲器,隻加載*pControl指向的存儲器位置的內容一次,就會對其進行循環測試。但問題在於,由於不會重新讀取存儲器內容,也就不能結束循環。
解決這一問題的方法就是將*pControl的聲明作一下修改,通知編譯器其指向的存儲器位置可由外部事件修改,而每次使用該變量時都必須重新載入,如下所示:
volatileunsignedint*pControl=(unsignedint*)0x00COFFEE;file://正確
while(*pControl==0);file://等待一個外部事件
確保采樣等距
如果要在頻域中處理采樣數據,那麼還要提到一點:不是所有轉換器都有啟動新轉換的自身時基。在這種情況下,應采用外部時基或DSP定時針(timerpin)。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻



