如何將DSP和MCU兩者完美結合
按照傳統方式,嵌入式應用中的數字信號處理器(DSP)相對于主微控制器(MCU)起從屬作用。在這些應用中,MCU用作系統控制器,而大量的數據處理留給DSP。例如,在音頻或視頻處理應用中有可能需要人機界面管理,或者是整個(gè)系統的控制。
設計方案選擇
為完成這些任務(wù),有幾種系統設計方案選擇。第一種方案將DSP和MCU芯片組合在印制電路板(PCB)上。這種方案成本高并且占用面積大,但是可適當地調整每個(gè)芯片的尺寸以最大限度地滿(mǎn)足系統需要。
第二種方案是一種將DSP和MCU組合在單個(gè)封裝內的多芯片模塊(MCM)。這種方案的局限性是,設計工程師必須按“50/50”的時(shí)間比例分配給控制和DSP功能;例如,一旦DSP超出時(shí)間,MCU將不能完成計算任務(wù)。像第一種方案選擇一樣,當DSP和MCU內核獨立存在時(shí),需要兩套開(kāi)發(fā)工具。
第三種方案是將DSP功能合并到一個(gè)MCU中。這種方案只適合于直接的信號處理應用。MCU的時(shí)鐘頻率和計算體系結構根本上不太適合大量的數字處理。有些MCU試圖通過(guò)增加一個(gè)乘法和累加器(MAC)(DSP的一個(gè)特點(diǎn))來(lái)補償上述不足。但是這種方案仍然缺乏高級應用所需要的基本的“由下至上 ”的體系結構設計 。
最近,已經(jīng)出現第四種方案它是將MCU的功能合并到一個(gè)DSP中。這類(lèi)方案的一個(gè)例子是美國模擬器件公司(Anolog Device Inc.,簡(jiǎn)稱(chēng)ADI)的Blackfin™ 處理器系列。這些新型處理器具有統一的經(jīng)過(guò)優(yōu)化的體系結構,不僅適于數據計算,而且也適于有關(guān)的控制任務(wù)。通過(guò)平衡執行控制任務(wù)與復雜計算的要求,這種方案可以根據系統實(shí)時(shí)處理的需要,完成100%的控制或者100%的計算任務(wù)。完成所有這一切任務(wù)不需要在DSP模式和MCU模式之間的模式轉換。
?。╰ranslation of graphics)
System Control Blocks=系統控制單元
Emulator & Test Control=仿真器和測試控制
Voltage Regulation=穩壓電源
Event Controller=事件控制器
Clock(PLL)=時(shí)鐘
鎖相環(huán)(PLL)
Memory DMA=存儲器
直接存儲器存?。―MA)
Watchdog Timer=監視定時(shí)器
Real Time Clock=實(shí)時(shí)時(shí)鐘
Core=內核
48 KB Instruction SRAM/Cache=48 KB指令
靜態(tài)存儲器(SRAM)
和高速緩存
32 KB Instruction ROM=32 KB指令
只讀存儲器(ROM)
32 KB Data SRAM/Cache=32 KB數據
靜態(tài)存儲器(SRAM)
和高速緩存
4 KB Scratchpad RAM=4 KB
高速暫存
隨機存儲器(RAM)
System Interface Unit=系統接口單元
External Memory Interface=外部存儲器接口
High Speed I/O=高速I(mǎi)/O端口
Parallel Peripheral Interface/GPIO=并行外圍接口(PPI)
和通用輸入輸出接口(GPIO)
UART=通用異步收發(fā)器
SPI=串行外圍接口(SPI)
Hi-speed Serial Ports=高速串行端口
PCI/USB=可編程通信接口(PCI)和通用串行總線(xiàn)(USB)
Timers 0/1/2=定時(shí)器0,1,2
Peripheral Blocks=外圍設備單元
一類(lèi)新型的DSP也提供一套RISC指令系統集、存儲器管理單元、事件控制器和多種外設以便在一顆單芯片內提供大量計算和高效系統控制功能。
DSP與MCU比較
首先讓我們回顧一下DSP和MCU的典型功能。DSP主要是在一單個(gè)時(shí)鐘周期內盡可能完成多個(gè)MAC(乘法和累加)操作。為了這一點(diǎn),指令的操作代碼通常是可變的超長(cháng)的指令字(VLIW)。DSP也適于工作在緊密、高效的環(huán)路中。另外,為了達到性能指標通常需要編寫(xiě)優(yōu)化的匯編代碼。由于DSP的算法程序一般裝在小容量、短等待時(shí)間的內置存儲器中,所以代碼密度通常不是大問(wèn)題。
像DSP主要用于完成計算一樣,MCU主要用于完成控制功能。同樣地,典型的MCU應用包括許多條件操作,在程序流程中頻繁地跳轉。通常使用C或者C++語(yǔ)言編寫(xiě)程序。代碼密度極為重要,并且根據編譯代碼的長(cháng)度來(lái)評估算法。存儲器系統是基于高速緩存從而允許該系統設計工程師用較長(cháng)等待時(shí)間從較大的存儲器中調用較大程序。利用基于高速緩存系統,程序員不需要考慮如何以及何時(shí)將指令輸入到內核去執行。
統一的DSP和MCU兼備兩者的優(yōu)點(diǎn)。它的指令集由16 bit,32 bit和64 bit操作碼組成,但是由于最常用的指令采用16 bit編碼,所以編譯代碼密度大小與那些流行的MCU相同。另外,它包括一個(gè)存儲器保護功能以及指令高速緩存和數據高速緩存,作為整個(gè)存儲器管理單元(MMU)的一部分。此外,容易提供一套完整的C/C++開(kāi)發(fā)工具,提供可選匯編語(yǔ)言或者全部匯編語(yǔ)言適合算法優(yōu)化的編程。
支持RTOS
系統控制的一個(gè)重要方面是任務(wù)管理。實(shí)時(shí)操作系統(RTOS)逐漸地用于控制復雜系統中多種正在進(jìn)行的和同時(shí)發(fā)生的任務(wù)。通過(guò)提供對任務(wù)調度與管理的支持,RTOS簡(jiǎn)化了編程模式,這通常是由MCU控制的,由于普通的DSP不具備支持RTOS需要的所有功能以便有效地控制。
然而,統一的DSP和MCU促進(jìn)了RTOS幾個(gè)重要功能的發(fā)展。第一個(gè)是限制訪(fǎng)問(wèn)功能以保護或者保留存儲單元。第二個(gè)是配備單獨的堆棧和幀指針以減少操作系統(OS)請求以及中斷和異常處理所需的等待時(shí)間。第三個(gè)是具備單獨的用戶(hù)操作模式和管理員操作模式。過(guò)去,DSP按照等效于管理員操作模式工作,從而允許在任何時(shí)間完全訪(fǎng)問(wèn)所有的系統資源。然而MCU提供類(lèi)似的在用戶(hù)操作模式,它允許在OS的頂層運行應用軟件?,F在,在一個(gè)統一的體系結構下提供兩種操作模式,因為增強的DSP系統能夠限制用戶(hù)應用軟件僅通過(guò)OS訪(fǎng)問(wèn)系統資源。
評論