PSoC的動(dòng)態(tài)重配置
摘要:本文通過(guò)對(duì)PSoC的動(dòng)態(tài)重配置方案的探討,分析了如何充分利用資源,實(shí)現(xiàn)硅芯片性能的最大化。
本文引用地址:http://m.butianyuan.cn/article/87002.htm關(guān)鍵詞:PSoC;動(dòng)態(tài)重配置;ADC;PWM;Cypress
賽普拉斯半導(dǎo)體公司推出的 PSoC 混合信號(hào)陣列 (PSoC Mixed Signal Array) 可實(shí)現(xiàn) ASIC 與可配置 FPGA 的集成,同時(shí)還能幫助用戶(hù)像使用熟悉的微控制器一樣應(yīng)用該技術(shù)。動(dòng)態(tài)重配置 (Dynamic Reconfiguration) 是 PSoC 的眾多功能之一,能幫助用戶(hù)在運(yùn)行過(guò)程中靈活地更改資源功能。憑借自動(dòng)生成的系統(tǒng)調(diào)用,PSoC 的可配置模塊能夠變形重構(gòu)以支持多種功能,從而可最大限度地減少元件數(shù)量、加速設(shè)計(jì)進(jìn)程、縮小板級(jí)空間,并降低嵌入式系統(tǒng)的成本。在某些情況下,動(dòng)態(tài)重配置功能甚至使設(shè)計(jì)人員能夠?qū)崿F(xiàn) 400% 的硅芯片利用率。
動(dòng)態(tài)重配置是指實(shí)時(shí)對(duì)硬件進(jìn)行再配置,以確保多個(gè)應(yīng)用之間可以共享資源。在眾多系統(tǒng)中,不會(huì)同時(shí)使用所有硬件。例如,就一般的對(duì)講機(jī)來(lái)說(shuō),發(fā)射模式下不會(huì)使用接收功能,反之亦然。因此,在一般通話(huà)過(guò)程中,對(duì)講機(jī)上的某些資源并沒(méi)有被使用。不過(guò),如果我們讓步話(huà)機(jī)電路支持動(dòng)態(tài)重配置功能的話(huà),那么我們就能讓同一顆硅芯片既支持來(lái)自麥克風(fēng)的聲音捕獲和發(fā)射,又能滿(mǎn)足接收信號(hào)以及將接收信號(hào)通過(guò)揚(yáng)聲器廣播出來(lái)的功能。這種即時(shí)重配置功能將實(shí)現(xiàn)資源利用率的最大化,從而可減少元件數(shù)量,進(jìn)而降低成本。
多年來(lái),微控制器實(shí)現(xiàn)了高度的集成,并且能夠集成多種外設(shè)。在許多情況下,微控制器上集成的眾多功能往往很少使用,甚至從未被用到過(guò)。我們不妨以煙霧檢測(cè)器為例來(lái)說(shuō)明。煙霧檢測(cè)器中的微控制器用 ADC 來(lái)監(jiān)視電離室,但并不使用定時(shí)器和通信接口等資源。同樣,如果發(fā)生了火災(zāi),電離室的電壓輸出會(huì)下降,這時(shí)微控制器就不再需要 ADC 資源了,而需要通過(guò)PWM 輸出讓揚(yáng)聲器系統(tǒng)發(fā)出告警。微控制器將需要同時(shí)具備 ADC 與 PWM 功能,才能使煙霧檢測(cè)器及時(shí)發(fā)出警報(bào),但二者功能不會(huì)同時(shí)使用,這就造成了很大浪費(fèi)。對(duì)于微控制器來(lái)說(shuō),若想將 ADC 模塊變成 PWM 模塊似乎有點(diǎn)變戲法的感覺(jué),但 PSoC 就是為了實(shí)現(xiàn)這一目的而推出的。PSoC 可用相同的硬件來(lái)支持不同的模塊,從而能夠支持動(dòng)態(tài)重配置。
PSoC 是賽普拉斯半導(dǎo)體公司推出的一系列混合信號(hào)陣列芯片,在同一封裝中集成了微控制器及其外部元件。PSoC 架構(gòu)除包括模擬與數(shù)字等可配置模塊之外,還提供可編程互連機(jī)制,幫助用戶(hù)創(chuàng)建專(zhuān)用外設(shè)配置,從而滿(mǎn)足不同應(yīng)用的具體要求。每個(gè)模塊都通過(guò)一系列基于鎖存的寄存器來(lái)控制,其值決定了其行為,并創(chuàng)建出模塊。用戶(hù)模塊是寄存器設(shè)置的抽象,可以支持高級(jí)功能。舉例來(lái)說(shuō),在諸多可用的選項(xiàng)之中,數(shù)字模塊可以是定時(shí)器、PWM 源乃至 UART 模塊。同樣,模擬塊也有很多可能性,可以是過(guò)濾器或 ADC 乃至比較器。因此,如果采用微控制器的話(huà),我們就必須明確列出 4 個(gè) ADC、3 個(gè)定時(shí)器、2 個(gè) DAC等等。但是,如果采用 PSoC 的話(huà),我們則只需列出其中模擬與數(shù)字模塊的數(shù)量即可,到底這些模塊如何發(fā)揮作用,則有無(wú)數(shù)種可能。賽普拉斯半導(dǎo)體公司的 PSoC 最多支持 16 個(gè)數(shù)字模塊和 12 個(gè)模擬塊,而少的則有 4 個(gè)數(shù)字塊、4 個(gè)模擬塊。
控制模塊的寄存器值可在運(yùn)行時(shí)更改,這樣就能在應(yīng)用程序的執(zhí)行過(guò)程中根據(jù)需要?jiǎng)?chuàng)建新的功能。當(dāng)完成特定模塊的工作任務(wù)后,可將該模塊轉(zhuǎn)換為不同的模塊,從而實(shí)現(xiàn)可用模塊使用率的最大化。這不僅能夠減少所需模塊的數(shù)量,而且也能相應(yīng)降低 PSoC 的成本。動(dòng)態(tài)重配置可應(yīng)用于多種設(shè)計(jì)方案之中。當(dāng)然,如果同時(shí)使用所有不同模塊,那么沒(méi)有理由不對(duì)模塊的結(jié)構(gòu)進(jìn)行重構(gòu)。除此之外,我們可以預(yù)見(jiàn)在以下四種情況中,通過(guò)動(dòng)態(tài)重配置來(lái)減少所需模塊的數(shù)量。
首先,在某些設(shè)計(jì)中,我們會(huì)在啟動(dòng)或關(guān)閉階段使用特定模塊組,而其他階段則不會(huì)再使用。例如,電路可使用 ADC 模塊來(lái)測(cè)量配置電阻,以確定無(wú)線控制玩具的正確接收頻率。一旦明確了正確的工作頻率,就不再需要 ADC 模塊,而且用于支持 ADC 的模塊則可作為到傳動(dòng)器的 PWM 輸出。
在其它設(shè)計(jì)中,僅在發(fā)生例外情況時(shí)才使用某些模塊。 應(yīng)急照明系統(tǒng)的控制器需要使模塊運(yùn)行例行程序來(lái)為電池充電,同時(shí)持續(xù)發(fā)揮監(jiān)視作用,避免發(fā)生電源故障。如果發(fā)生電源故障,負(fù)責(zé)電池充電的模塊就會(huì)轉(zhuǎn)變功能,為 LED提供適當(dāng)大小的電流。
硬件有時(shí)需要針對(duì)不同用戶(hù)發(fā)揮不同作用。對(duì)家庭用戶(hù)來(lái)說(shuō),功率表通過(guò)測(cè)量電流 來(lái)計(jì)算用電情況。對(duì)進(jìn)行維護(hù)工作的技術(shù)人員來(lái)說(shuō),則能發(fā)出指令,讓用于測(cè)量的模塊暫時(shí)變成 UART 模塊,向計(jì)算機(jī)系統(tǒng)上載故障信息。這樣,硬件就能在現(xiàn)場(chǎng)檢測(cè)或修理廠返修時(shí)用于添加更多診斷設(shè)備,也能在產(chǎn)品出廠前進(jìn)行檢查。
最后,有時(shí)我們需要所有模塊來(lái)執(zhí)行設(shè)備的例行功能,只不過(guò)不需要所有模塊同時(shí)運(yùn)行。但位于便攜式氣象設(shè)備中的控制器會(huì)使用不同類(lèi)型的模塊但是相同的模塊來(lái)測(cè)量溫度、濕度、風(fēng)速及雨量。
動(dòng)態(tài)重配置是 PSoC 的一種強(qiáng)大功能,其擁有可輕松發(fā)揮作用的強(qiáng)大軟件包。PSoC Designer 是賽普拉斯推出的一種專(zhuān)有軟件,可為所有 PSoC 器件提供功能齊全的集成開(kāi)發(fā)環(huán)境。用戶(hù)友好型工具為選擇和定制模塊提供了圖形界面,可在可用模塊與適當(dāng)引腳間放置并傳輸相關(guān)模塊。該軟件能生成應(yīng)用編程接口,充分發(fā)揮模塊的潛力,并支持 C 語(yǔ)言或匯編語(yǔ)言編寫(xiě)的代碼。此外,該軟件包含的工具還可創(chuàng)建與管理動(dòng)態(tài)重配置所需的所有接口。
評(píng)論