當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件
[導(dǎo)讀] 在實(shí)際的工作任務(wù)中,如果要設(shè)計(jì)一套由 dsp 與dac與adc等模擬器件組成的信號(hào)處理系統(tǒng),我們必須考慮到幾個(gè)重要因素,此后的工作就會(huì)非常簡(jiǎn)單。下面就來(lái)談?wù)勗O(shè)計(jì)工作中應(yīng)該考慮的這幾個(gè)因素。

在實(shí)際的工作任務(wù)中,如果要設(shè)計(jì)一套由 dsp 與dac與adc等模擬器件組成的信號(hào)處理系統(tǒng),我們必須考慮到幾個(gè)重要因素,此后的工作就會(huì)非常簡(jiǎn)單。下面就來(lái)談?wù)勗O(shè)計(jì)工作中應(yīng)該考慮的這幾個(gè)因素。

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

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

評(píng)估系統(tǒng)速率

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

選擇正確的 dsp 接口

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

在選擇接口時(shí),還要考慮的另一問(wèn)題就是,并行總線能否滿足所需的數(shù)據(jù)速率要求,或者說(shuō)并行總線芯片在滿足程序與系數(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)勢(shì),因?yàn)?cpu 不會(huì)被輪詢標(biāo)記占用,因此在獲得數(shù)據(jù)前不會(huì)打斷 cpu 的正常工作。不過(guò),如果轉(zhuǎn)換器等待處理特定的協(xié)議來(lái)讀取數(shù)據(jù),比如轉(zhuǎn)換器發(fā)出轉(zhuǎn)換結(jié)束信號(hào)后又需要讀取命令來(lái)檢索數(shù)據(jù),每個(gè)讀取命令都會(huì)觸發(fā)新的中斷,那么就會(huì)造成過(guò)多的開銷,得不償失。在這種情況下,輪詢的方法就具有明顯的優(yōu)勢(shì)了。

如果中斷時(shí)延非常重要的話,那么使用輪詢方式就更具優(yōu)勢(shì)。輪詢可確保信號(hào)響應(yīng)速度更快,這比進(jìn)入中斷服務(wù)例程要快得多。如果數(shù)據(jù)檢索有短暫時(shí)隙 (narrow timeslot),那么采用輪詢方式也是有利的。

確定傳輸模式

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

在這種情況下,應(yīng)讓 cpu 參與傳輸工作。盡管服從特殊的協(xié)議相當(dāng)簡(jiǎn)單,但必須使用大量的 cpu資源來(lái)收集數(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ìn)行轉(zhuǎn)換。

如果一步就能讀取多個(gè)數(shù)據(jù)字,且不用每次都進(jìn)行數(shù)據(jù)總線交換,肯定是非常有價(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)制(即無(wú)符號(hào)二進(jìn)制)數(shù)據(jù)類型,有的則采用帶符號(hào)的二進(jìn)制數(shù)據(jù)類型,這就是問(wèn)題的復(fù)雜所在。如果有一個(gè) 12 位數(shù)據(jù)轉(zhuǎn)換器,那么在帶符號(hào)二進(jìn)制數(shù)據(jù)情況下,如何使用將是一個(gè)問(wèn)題。符號(hào)位占據(jù)最重要的位置,即第“11”位(這里的起始位是第“0”位)。如果將此數(shù)據(jù)字賦予“c”變量,寬度為“16”位,那么假定“c”符號(hào)位為第“15”位。如果從轉(zhuǎn)換器讀取的數(shù)字為負(fù),那么 dsp 就不能識(shí)別其為負(fù)值,因?yàn)榉?hào)位的位置錯(cuò)誤。如何解決這一問(wèn)題呢?第一種方法是在讀取數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)位移。不過(guò),這只有在 cpu 讀取數(shù)據(jù)時(shí)才有可能,因?yàn)?dma 控制器不可能在傳輸時(shí)進(jìn)行數(shù)據(jù)位移。另一種方法是在數(shù)據(jù)塊完全傳輸后在環(huán)路中將數(shù)據(jù)位移至正確的位置。不過(guò)這必須使用 cpu,并要求額外的 mips。

如果改變連接后轉(zhuǎn)換器的第“11”位剛好連接至 dsp 數(shù)據(jù)總線的第“15”位,那么符號(hào)位從首位算起剛好位于正確的位置,這就能實(shí)現(xiàn)基于dma 的傳輸,而且也不用再進(jìn)行數(shù)據(jù)位移。

確保處理的是正確數(shù)據(jù)

現(xiàn)在,數(shù)據(jù)已經(jīng)進(jìn)入系統(tǒng),數(shù)據(jù)字存儲(chǔ)在陣列中,數(shù)據(jù)大小也合適,于是開始處理數(shù)據(jù),但沒(méi)有獲得預(yù)期的結(jié)果,這時(shí)需要思考到底出了什么問(wèn)題。首先應(yīng)該檢查 dsp 的高速緩存,dma 傳輸數(shù)據(jù)進(jìn)入存儲(chǔ)器時(shí)是否啟用高速緩存,在這種情況下,高速緩存很可能保留拷貝的舊數(shù)據(jù),并在算法工作中使用它們。如果發(fā)生了此類問(wèn)題,就必需注意高速緩存相關(guān)性與轉(zhuǎn)儲(chǔ)清除問(wèn)題,或者是存儲(chǔ)新數(shù)據(jù)的高速緩存區(qū)失效。這樣就能確保 cpu 處理的數(shù)據(jù)是傳輸完成后的最新數(shù)據(jù)。

如果用 c 語(yǔ)言編程應(yīng)分配易失關(guān)鍵字

在調(diào)試嵌入式系統(tǒng)時(shí),采用變量查詢外設(shè)的狀態(tài)后,發(fā)現(xiàn) cpu 所用變量

值是錯(cuò)誤的,這時(shí)就要思考到底哪里出了問(wèn)題。先看看下面這個(gè)結(jié)構(gòu):

unsigned int *pcontrol = (unsigned int *)0x00coffee; file://錯(cuò)誤

while (*pcontrol == 0); file://等待一個(gè)外部事件

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

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

volatile unsigned int *pcontrol = (unsigned int *)0x00coffee; file://正確

while (*pcontrol == 0); file://等待一個(gè)外部事件

確保采樣等距

如果要在頻域中處理采樣數(shù)據(jù),那么還要提到一點(diǎn):不是所有轉(zhuǎn)換器都有啟動(dòng)新轉(zhuǎn)換的自身時(shí)基。在這種情況下,應(yīng)采用外部時(shí)基或 dsp 定時(shí)針 (timer pin)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉