如何將DSP和MCU兩者完美結(jié)合
按照傳統(tǒng)方式,嵌入式應(yīng)用中的數(shù)字信號(hào)處理器(DSP)相對于主微控制器(MCU)起從屬作用。在這些應(yīng)用中,MCU用作系統(tǒng)控制器,而大量的數(shù)據(jù)處理留給DSP。例如,在音頻或視頻處理應(yīng)用中有可能需要人機(jī)界面管理,或者是整個(gè)系統(tǒng)的控制。
設(shè)計(jì)方案選擇
為完成這些任務(wù),有幾種系統(tǒng)設(shè)計(jì)方案選擇。
第一種方案將DSP和MCU芯片組合在印制電路板(PCB)上。這種方案成本高并且占用面積大,但是可適當(dāng)?shù)卣{(diào)整每個(gè)芯片的尺寸以最大限度地滿足系統(tǒng)需要。
第二種方案是一種將DSP和MCU組合在單個(gè)封裝內(nèi)的多芯片模塊(MCM)。這種方案的局限性是,設(shè)計(jì)工程師必須按“50/50”的時(shí)間比例分配給控制和DSP功能;例如,一旦DSP超出時(shí)間,MCU將不能完成計(jì)算任務(wù)。像第一種方案選擇一樣,當(dāng)DSP和MCU內(nèi)核獨(dú)立存在時(shí),需要兩套開發(fā)工具。
第三種方案是將DSP功能合并到一個(gè)MCU中。這種方案只適合于直接的信號(hào)處理應(yīng)用。MCU的時(shí)鐘頻率和計(jì)算體系結(jié)構(gòu)根本上不太適合大量的數(shù)字處理。有些MCU試圖通過增加一個(gè)乘法和累加器(MAC)(DSP的一個(gè)特點(diǎn))來補(bǔ)償上述不足。但是這種方案仍然缺乏高級(jí)應(yīng)用所需要的基本的“由下至上 ”的體系結(jié)構(gòu)設(shè)計(jì) 。
最近,已經(jīng)出現(xiàn)第四種方案它是將MCU的功能合并到一個(gè)DSP中。這類方案的一個(gè)例子是美國模擬器件公司(Anolog?。模澹觯椋悖濉。桑睿悖?,簡稱ADI)的Blackfin? 處理器系列。這些新型處理器具有統(tǒng)一的經(jīng)過優(yōu)化的體系結(jié)構(gòu),不僅適于數(shù)據(jù)計(jì)算,而且也適于有關(guān)的控制任務(wù)。通過平衡執(zhí)行控制任務(wù)與復(fù)雜計(jì)算的要求,這種方案可以根據(jù)系統(tǒng)實(shí)時(shí)處理的需要,完成100%的控制或者100%的計(jì)算任務(wù)。完成所有這一切任務(wù)不需要在DSP模式和MCU模式之間的模式轉(zhuǎn)換。
(translation?。铮妗。纾颍幔穑瑁椋悖螅?
System?。茫铮睿簦颍铮臁。拢欤铮悖耄螅较到y(tǒng)控制單元
Emulator?。Α。裕澹螅簟。茫铮睿簦颍铮欤椒抡嫫骱蜏y試控制
Voltage?。遥澹纾酰欤幔簦椋铮睿椒€(wěn)壓電源
Event?。茫铮睿簦颍铮欤欤澹颍绞录刂破?
Clock(PLL)=時(shí)鐘
鎖相環(huán)(PLL)
Memory DMA=存儲(chǔ)器
直接存儲(chǔ)器存?。ǎ模停粒?
Watchdog?。裕椋恚澹颍奖O(jiān)視定時(shí)器
Real?。裕椋恚濉。茫欤铮悖耄綄?shí)時(shí)時(shí)鐘
Core=內(nèi)核
48?。耍隆。桑睿螅簦颍酰悖簦椋铮睢。樱遥粒停茫幔悖瑁澹剑矗浮。耍轮噶?
靜態(tài)存儲(chǔ)器(SRAM)
和高速緩存
32?。耍隆。桑睿螅簦颍酰悖簦椋铮睢。遥希停剑常病。耍轮噶?
只讀存儲(chǔ)器(ROM)
32?。耍隆。模幔簦帷。樱遥粒停茫幔悖瑁澹剑常病。耍聰?shù)據(jù)
靜態(tài)存儲(chǔ)器(SRAM)
和高速緩存
4?。耍隆。樱悖颍幔簦悖瑁穑幔洹。遥粒停剑础。耍?
高速暫存
隨機(jī)存儲(chǔ)器(RAM)
System?。桑睿簦澹颍妫幔悖濉。眨睿椋簦较到y(tǒng)接口單元
External?。停澹恚铮颍。桑睿簦澹颍妫幔悖澹酵獠看鎯?chǔ)器接口
High?。樱穑澹澹洹。桑希礁咚伲桑隙丝?
Parallel?。校澹颍椋穑瑁澹颍幔臁。桑睿簦澹颍妫幔悖澹牵校桑希讲⑿型鈬涌冢ǎ校校桑?
和通用輸入輸出接口(GPIO)
UART=通用異步收發(fā)器
SPI=串行外圍接口(SPI)
Hi-speed?。樱澹颍椋幔臁。校铮颍簦螅礁咚俅卸丝?
PCI/USB=可編程通信接口(PCI)和通用串行總線(USB)
Timers?。埃保玻蕉〞r(shí)器0,1,2
Peripheral?。拢欤铮悖耄螅酵鈬O(shè)備單元
一類新型的DSP也提供一套RISC指令系統(tǒng)集、存儲(chǔ)器管理單元、事件控制器和多種外設(shè)以便在一顆單芯片內(nèi)提供大量計(jì)算和高效系統(tǒng)控制功能。
DSP與MCU比較
首先讓我們回顧一下DSP和MCU的典型功能。DSP主要是在一單個(gè)時(shí)鐘周期內(nèi)盡可能完成多個(gè)MAC(乘法和累加)操作。為了這一點(diǎn),指令的操作代碼通常是可變的超長的指令字(VLIW)。DSP也適于工作在緊密、高效的環(huán)路中。另外,為了達(dá)到性能指標(biāo)通常需要編寫優(yōu)化的匯編代碼。由于DSP的算法程序一般裝在小容量、短等待時(shí)間的內(nèi)置存儲(chǔ)器中,所以代碼密度通常不是大問題。
像DSP主要用于完成計(jì)算一樣,MCU主要用于完成控制功能。同樣地,典型的MCU應(yīng)用包括許多條件操作,在程序流程中頻繁地跳轉(zhuǎn)。通常使用C或者C++語言編寫程序。代碼密度極為重要,并且根據(jù)編譯代碼的長度來評估算法。存儲(chǔ)器系統(tǒng)是基于高速緩存從而允許該系統(tǒng)設(shè)計(jì)工程師用較長等待時(shí)間從較大的存儲(chǔ)器中調(diào)用較大程序。利用基于高速緩存系統(tǒng),程序員不需要考慮如何以及何時(shí)將指令輸入到內(nèi)核去執(zhí)行。
統(tǒng)一的DSP和MCU兼?zhèn)鋬烧叩膬?yōu)點(diǎn)。它的指令集由16 bit,32 bit和64?。猓椋舨僮鞔a組成,但是由于最常用的指令采用16?。猓椋艟幋a,所以編譯代碼密度大小與那些流行的MCU相同。另外,它包括一個(gè)存儲(chǔ)器保護(hù)功能以及指令高速緩存和數(shù)據(jù)高速緩存,作為整個(gè)存儲(chǔ)器管理單元(MMU)的一部分。此外,容易提供一套完整的C/C++開發(fā)工具,提供可選匯編語言或者全部匯編語言適合算法優(yōu)化的編程。
支持RTOS
系統(tǒng)控制的一個(gè)重要方面是任務(wù)管理。實(shí)時(shí)操作系統(tǒng)(RTOS)逐漸地用于控制復(fù)雜系統(tǒng)中多種正在進(jìn)行的和同時(shí)發(fā)生的任務(wù)。通過提供對任務(wù)調(diào)度與管理的支持,RTOS簡化了編程模式,這通常是由MCU控制的,由于普通的DSP不具備支持RTOS需要的所有功能以便有效地控制。
然而,統(tǒng)一的DSP和MCU促進(jìn)了RTOS幾個(gè)重要功能的發(fā)展。第一個(gè)是限制訪問功能以保護(hù)或者保留存儲(chǔ)單元。第二個(gè)是配備單獨(dú)的堆棧和幀指針以減少操作系統(tǒng)(OS)請求以及中斷和異常處理所需的等待時(shí)間。第三個(gè)是具備單獨(dú)的用戶操作模式和管理員操作模式。過去,DSP按照等效于管理員操作模式工作,從而允許在任何時(shí)間完全訪問所有的系統(tǒng)資源。然而MCU提供類似的在用戶操作模式,它允許在OS的頂層運(yùn)行應(yīng)用軟件?,F(xiàn)在,在一個(gè)統(tǒng)一的體系結(jié)構(gòu)下提供兩種操作模式,因?yàn)樵鰪?qiáng)的DSP系統(tǒng)能夠限制用戶應(yīng)用軟件僅通過OS訪問系統(tǒng)資源。
外圍設(shè)備
MCU的一個(gè)優(yōu)點(diǎn)是包含使用靈活和種類齊全的外圍設(shè)備。作為通用的嵌入式控制器,它們通常具備可編程輸入輸出(I/O)標(biāo)志、定時(shí)器、串行接口和日益增加越來越復(fù)雜的標(biāo)準(zhǔn)接口。MCU外圍設(shè)備的主要作用是嵌入式控制,而不是大量計(jì)算。例如,一個(gè)實(shí)時(shí)時(shí)鐘信號(hào)可以喚醒一只溫度傳感器用以采集環(huán)境溫度并且將一個(gè)延遲的信息通過I/O引腳反饋到MCU。然后,一個(gè)定時(shí)器的脈沖寬度調(diào)制(PWM)輸出相應(yīng)地能夠增加或者減小風(fēng)扇電機(jī)的轉(zhuǎn)速。
像MCU一樣,統(tǒng)一的DSP和MCU具備一套系統(tǒng)控制外圍設(shè)備(例如,實(shí)時(shí)時(shí)鐘、多功能定時(shí)器、監(jiān)視定時(shí)器、雙向標(biāo)志位引腳)。然而,它還包括一些高速接口(例如,PCI、異步或者同步存儲(chǔ)器控制器、USB、并行視頻接口)以便通過這些接口,與許多DMA通道配合快速搬移數(shù)據(jù),從而有助于有效利用高速DSP內(nèi)核的信號(hào)處理能力。
電源管理
功耗控制一直是嵌入式控制器的一項(xiàng)功能。但是,當(dāng)系統(tǒng)要求DSP具有優(yōu)良的性能時(shí),對其電源的選擇就不太理想。如果將獨(dú)立的MCU和DSP芯片應(yīng)用于電源敏感的場合,通常必須為每個(gè)芯片提供一個(gè)單獨(dú)的開關(guān)穩(wěn)壓器,因?yàn)檫@兩個(gè)器件的內(nèi)核電壓經(jīng)常不一致。這會(huì)導(dǎo)致降低電源變換效率和增加設(shè)計(jì)器件的引腳數(shù)目,最終增加布線的復(fù)雜程度和解決方案的成本。此外,當(dāng)MCU和DSP的內(nèi)核集成到一個(gè)芯片上時(shí),電源解決方案本質(zhì)上不是最佳的,因?yàn)樗仨殱M足2個(gè)完全獨(dú)立并具有不同負(fù)載特性處理器的需求。
將這種情況與統(tǒng)一的DSP和MCU相比較,它包含一個(gè)集成動(dòng)態(tài)電源管理(DPM)控制器。由于它是只有一個(gè)處理器的體系結(jié)構(gòu),所以該控制器能夠完全適合給定應(yīng)用的需求。它提供幾種固有的電源模式以支持多種系統(tǒng)性能等級(jí)。另外,對于未使用的時(shí)鐘和L2存儲(chǔ)器可選擇性地禁止。該PLL的頻率可在一個(gè)寬范圍(通常1倍~31倍)進(jìn)行調(diào)節(jié),以滿足在DSP和MCU內(nèi)部多層次的處理需求。最后能夠調(diào)節(jié)電壓(外部或者通過一個(gè)集成的開關(guān)控制器)以提供指數(shù)式的節(jié)省功耗。
由于系統(tǒng)成本、開發(fā)容易、器件采購和升級(jí)能力的原因,設(shè)計(jì)工程師正趨向采用一種單芯片解決方案用于嵌入式信號(hào)處理解決方案。這種單芯片解決方案必須能夠同樣好地完成DSP和MCU的功能,所以有必要提出一種統(tǒng)一的處理器體系結(jié)構(gòu)。面對MCU的挑戰(zhàn),比較簡單的解決方案是將MCU的功能合并到一個(gè)高性能的DSP內(nèi)核,而不是與此相反。當(dāng)今一個(gè)統(tǒng)一的DSP和MCU平臺(tái)(由Blackfin??。模樱邢盗挟a(chǎn)品說明)已經(jīng)投放市場,它將在MCU和DSP目前應(yīng)用領(lǐng)域提供許多應(yīng)用。