FPGA已經(jīng)變得如此具有成本效益,因此它們?cè)絹碓蕉嗟嘏cMCU結(jié)合使用,以提高整體系統(tǒng)效率。用途包括在最小的電路板空間中添加額外的功能,為復(fù)雜算法的前端添加節(jié)能處理,聚合多個(gè)外部設(shè)備以卸載高性能MCU或作為使現(xiàn)有設(shè)計(jì)適應(yīng)新的所需的“粘合”邏輯在接口要求方面,F(xiàn)PGA提供了標(biāo)準(zhǔn)MCU中常常缺乏的額外靈活性。本文將快速回顧一些最受歡迎的應(yīng)用,其中FPGA和MCU“配對(duì)”,以展示如何通過降低功耗,減小電路板空間,提高處理性能或接口靈活性來提高系統(tǒng)效率,從而顯著改善您的下一個(gè)設(shè)計(jì)。
FPGA作為MCU配套器件
您為設(shè)計(jì)選擇的MCU多久沒有完全具備您需要的所有接口通道?或許您對(duì)MCU的初始選擇非常合適,但是出現(xiàn)了新的要求,因?yàn)槟淖罴芽蛻粜枰獮槠?a href="http://www.1cnz.cn/article/zt/" target="_blank">最新設(shè)計(jì)添加一些額外的接口。您可能可以使用更復(fù)雜的MCU,但這可能會(huì)增加顯著的電路板空間(因?yàn)樗鼉H在高引腳數(shù)封裝中可用),功率增加(因?yàn)樗荒芴峁┍饶嬲枰母嚅W存和SRAM) )或者更高的成本(出于上述兩個(gè)原因)。
解決這個(gè)難題的一種方法是通過在MCU旁邊添加FPGA來規(guī)劃對(duì)額外接口的需求。 FPGA可以輕松提供額外的接口,只需提供您需要的接口,同時(shí)限制電路板空間,成本和功耗的增加。實(shí)際上,與使用更復(fù)雜的MCU的選項(xiàng)相比,通常最終會(huì)減少電路板空間,降低成本并降低功耗。
例如,萊迪思iCE40超低功耗FPGA可在極小的2.078 mm×2.078 mm電路板占板面積內(nèi)提供多達(dá)26個(gè)信號(hào)IO,并且由于這些器件是通過片上NVM配置的,您不需要額外的電路板空間用于配置設(shè)備。這些FPGA還有兩個(gè)專用的I 2 C接口和兩個(gè)專用SPI接口,具有大量可配置邏輯,可以根據(jù)應(yīng)用需要添加更多接口(直到用完引腳)。萊迪思ICE5LP1K-SWG36ITR50的框圖如圖1所示。
圖1:萊迪思iCE5LP FPGA的框圖。 (由Lattice Semiconductor提供)
該器件還具有高達(dá)80 kbits的嵌入式Block RAM,可用于接口FIFO和緩沖器,因此MCU可以等待整個(gè)數(shù)據(jù)包準(zhǔn)備好進(jìn)行處理。在將數(shù)據(jù)發(fā)送到MCU之前,DSP模塊還可用于對(duì)原始傳感器數(shù)據(jù)進(jìn)行低級(jí)數(shù)據(jù)處理,作為預(yù)處理步驟。當(dāng)FPGA可以在中斷MCU之前智能地聚合數(shù)據(jù)時(shí),可以大幅降低MCU功耗。此外,萊迪思的iCE5LP FPGA專為超低功耗應(yīng)用而設(shè)計(jì),核心電源靜態(tài)電流僅為71μA。添加更多接口只需要額外的電路板空間或功率。查看您最喜歡的MCU與更高引腳數(shù)之間的當(dāng)前價(jià)格差異,然后將其與Digi-Key網(wǎng)站上的萊迪思iCE5PL1K FPGA價(jià)格進(jìn)行比較,看看可能還有哪些成本節(jié)省。
快速響應(yīng)FPGA接口請(qǐng)求
使用FPGA配套器件時(shí),快速響應(yīng)FPGA的服務(wù)請(qǐng)求非常重要。例如,音頻接口可能需要具有比傳感器數(shù)據(jù)更高的優(yōu)先級(jí)訪問權(quán),因?yàn)楸仨毐苊?a target="_blank">音頻數(shù)據(jù)中的“停頓”或者用戶體驗(yàn)可能顯著降低。通常,能夠支持各種中斷優(yōu)先級(jí)有助于提高FPGA伙伴的實(shí)用性,并進(jìn)一步提高整體系統(tǒng)性能和功效。
有效使用DMA還有助于進(jìn)一步卸載MCU并提高效率。例如,F(xiàn)PGA可能首先緩沖預(yù)處理原始數(shù)據(jù)的完整數(shù)據(jù)包,以減小需要存儲(chǔ)和傳輸?shù)南⒌拇笮 ?FPGA可以中斷MCU并啟動(dòng)DMA傳輸,將整個(gè)消息移動(dòng)到MCU存儲(chǔ)器中。一旦DMA傳輸完成并且整個(gè)消息準(zhǔn)備好進(jìn)行處理,就可以中斷CPU并開始對(duì)消息進(jìn)行高級(jí)處理。
Atmel 32位AT32UC3A MCU,例如,有一個(gè)DMA控制器和一個(gè)中斷控制器,兩者都是可編程優(yōu)先級(jí)。中斷控制器圖(如圖2左側(cè)所示)在右側(cè)有一個(gè)優(yōu)先級(jí)塊,它為CPU產(chǎn)生中斷級(jí)。優(yōu)先級(jí)塊選擇具有最高優(yōu)先級(jí)的中斷,由與每個(gè)中斷源相關(guān)的中斷優(yōu)先級(jí)寄存器(IPRn)中的中斷級(jí)別字段定義。因此,可以在I 2 C端口上為較高優(yōu)先級(jí)的源(例如實(shí)時(shí)音頻接口)分配比低頻傳感器更高的優(yōu)先級(jí),以保證更快的處理。
圖2:Atmel AT32UC3A MCU的中斷控制器和DMA控制器框圖。 (由Atmel提供)
AT32UC3A MCU的DMA控制器,其框圖如圖2右側(cè)所示,連接到許多不同的外設(shè),如DMA框圖右側(cè)所示。外設(shè)DMA控制器根據(jù)與每個(gè)外設(shè)相關(guān)的DMA通道號(hào)(外設(shè)由配置寄存器分配給通道,因此它們是完全可編程的)優(yōu)先考慮每個(gè)外設(shè)DMA請(qǐng)求,其中較低的通道號(hào)具有較高的優(yōu)先級(jí)。這樣可以輕松地對(duì)DMA傳輸進(jìn)行分組和優(yōu)化,以實(shí)現(xiàn)最高效的數(shù)據(jù)傳輸。如果算法的某些部分支持一種類型的傳輸而不是另一種傳輸,則優(yōu)先級(jí)甚至可以重新分配。
傳感器融合進(jìn)一步提高了系統(tǒng)效率
如前所述,F(xiàn)PGA可用于通過使用DSP技術(shù)預(yù)處理傳感器數(shù)據(jù)。特別是,具有DSP模塊的FPGA可以實(shí)現(xiàn)許多常見的濾波算法,例如有限脈沖響應(yīng)(FIR)濾波器,無限脈沖響應(yīng)(IIR)濾波器和快速傅里葉變換(FFT)。由于這些硬件模塊可以串行或并行方式運(yùn)行,因此您可以根據(jù)帶寬和功率要求構(gòu)建濾波器以實(shí)現(xiàn)最佳配置。例如,如果需要過濾多個(gè)傳感器輸出,F(xiàn)PGA可以為每個(gè)傳感器使用單獨(dú)的濾波器塊(如果帶寬要求足夠高),或者使用單個(gè)濾波器塊并在多個(gè)傳感器之間復(fù)用(如果帶寬要求是足夠低)。
除了對(duì)原始傳感器數(shù)據(jù)進(jìn)行預(yù)處理外,F(xiàn)PGA還可以智能方式組合來自多個(gè)傳感器的讀數(shù),以進(jìn)一步降低MCU的處理要求。在通知MCU需要處理之前,本地組合多個(gè)傳感器讀數(shù)的傳感器“融合”算法可以顯著提高系統(tǒng)效率。例如,結(jié)合心率,溫度和排汗讀數(shù)以及將組合與FPGA內(nèi)的設(shè)定警報(bào)水平進(jìn)行比較,可以為MCU提供比原始數(shù)據(jù)更有價(jià)值的信息。
MCU通常需要但是,要自己做一些數(shù)據(jù)處理。它不能將所有內(nèi)容都留給FPGA。幸運(yùn)的是,即便是廉價(jià)的MCU現(xiàn)在也具有DSP處理功能,可以有效地處理大量數(shù)據(jù)。例如,著名的Microchip PIC MCU系列具有面向DSP的系列成員,如DSPIC 33EP(例如DSPIC33EP32MC202),其工作速率高達(dá)70 MIPS,一些指令可同時(shí)執(zhí)行多達(dá)8個(gè)操作。面向過濾器的指令可以受益于40位累加器,以提高定點(diǎn)精度。 DSPIC33EP中專用硬件DSP引擎的框圖如圖3所示。
圖3:Microchip DSPIC33 MCU中的DSP引擎框圖。 (由Microchip提供)
DSP引擎包括一個(gè)17 x 17乘法器/縮放器,具有零回填和符號(hào)擴(kuò)展,可創(chuàng)建40位結(jié)果。除法運(yùn)算通過使用19次迭代的重復(fù)循環(huán)的單獨(dú)硬件除法塊實(shí)現(xiàn),并且可中斷以減少最壞情況的中斷延遲。桶形移位器有助于為40位加法器和雙40位累加器正確對(duì)齊數(shù)據(jù)。這種豐富的面向DSP的處理硬件是常規(guī)ALU的補(bǔ)充,它提供16位加,減和位操作。憑借這一系列廣泛的數(shù)據(jù)處理硬件,甚至可以非常有效地支持復(fù)雜的操作。
用于硬件加速和基于MCU處理的SoC FPGA
FPGA與MCU是FPGA的良好伴侶供應(yīng)商甚至將MCU伴侶放在他們的設(shè)備上。當(dāng)這些片上系統(tǒng)(SoC)FPGA用作高端MCU的配套產(chǎn)品時(shí),更復(fù)雜的功能可以轉(zhuǎn)移到FPGA上。一個(gè)常見的例子是FPGA處理大部分系統(tǒng)接口,不僅使用標(biāo)準(zhǔn)外設(shè),還使用外部存儲(chǔ)器。由于SoC FPGA具有重要的片上存儲(chǔ)器,用于管理數(shù)據(jù)緩沖和處理通信幀的MCU以及外部存儲(chǔ)器控制器,因此您可以獲得實(shí)現(xiàn)完整通信通道控制器,橋接器或聚合器所需的所有功能。這可以讓主MCU管理更高級(jí)別的功能,例如人機(jī)界面(HMI),過程控制和服務(wù)質(zhì)量?jī)?yōu)化。
一些SoC FPGA具有額外的功能,可以卸載更低的功能來自主機(jī)MCU的電平處理。例如,Microsemi SmartFusion2 SoC FPGA系列(M2S050-FGG896的框圖如圖4所示),不僅具有完整的ARM Cortex子系統(tǒng),而且還具有重要的片上Flash NVM和SRAM模塊作為MCU的一部分子系統(tǒng)。這些存儲(chǔ)器可與處理器結(jié)合使用,作為代碼和數(shù)據(jù)存儲(chǔ),片外DDR控制器作為大型緩沖存儲(chǔ)器,PCIe和以太網(wǎng)控制器作為FIFO存儲(chǔ)器。智能DMA控制器可以在不中斷處理器的情況下管理大部分?jǐn)?shù)據(jù)傳輸。
圖4:Microsemi SmartFusion2 SoC FPGA框圖。 (由Microsemi提供)
SmartFusion2 SoC FPGA還具有片上安全硬件,可用于保護(hù)遠(yuǎn)程代碼更新免受黑客攻擊和其他安全威脅。大型片上閃存可用于存儲(chǔ)受保護(hù)的引導(dǎo)代碼,這使得支持安全引導(dǎo)操作成為可能,即使對(duì)于沒有本機(jī)安全功能的主機(jī)處理器也是如此。大量的可編程結(jié)構(gòu)可以提供定制的硬件加速,以進(jìn)一步從主機(jī)控制器卸載處理。例如,在底盤控制系統(tǒng)中,可編程結(jié)構(gòu)可用于傳感器數(shù)據(jù)的DSP預(yù)處理,傳感器融合組合電壓,電流和溫度讀數(shù),機(jī)箱風(fēng)扇控制系統(tǒng)溫度的電機(jī)控制,控制臺(tái)接口,本地診斷監(jiān)控和控制,或通過PCIe橋接到其他控制平面功能。使用SoC,F(xiàn)PGA伙伴實(shí)際上可以承擔(dān)比主機(jī)更多的處理,在作為主要參與者的MCU和僅作為輔助支持角色的FPGA之間切換傳統(tǒng)角色。
結(jié)論
有許多應(yīng)用,其中MCU和FPGA配對(duì),可以通過更低的功耗,更小的電路板空間,改進(jìn)的處理或更高的靈活性來顯著提高系統(tǒng)效率。了解如何通過在這兩個(gè)設(shè)備之間分配功能來實(shí)現(xiàn)某些改進(jìn)可能是您下一次設(shè)計(jì)成功的關(guān)鍵。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603251 -
mcu
+關(guān)注
關(guān)注
146文章
17144瀏覽量
351148 -
控制器
+關(guān)注
關(guān)注
112文章
16356瀏覽量
177998
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論