FPGA已經(jīng)變得如此成本效益的,它們?cè)絹?lái)越多地與微控制器配合使用,以提高整個(gè)系統(tǒng)的效率。使用包括添加額外的功能在電路板空間最小,增加功率高效處理的復(fù)雜算法的前端,聚集多個(gè)外部設(shè)備卸載高性能MCU或以適應(yīng)現(xiàn)有的設(shè)計(jì)到新所需的“膠水”邏輯接口要求,F(xiàn)PGA可提供額外的靈活性往往缺乏標(biāo)準(zhǔn)的MCU。本文將快速瀏覽一些最流行的應(yīng)用,F(xiàn)PGA和微控制器的“配對(duì)”來(lái)展示如何提高系統(tǒng)效率,通過(guò)降低功耗,減少電路板空間,提高了處理性能,接口靈活性可能能夠顯著地提高你的下一個(gè)設(shè)計(jì)。
FPGA成為MCU配套設(shè)備
多久的MCU您選擇為您的設(shè)計(jì)只是不太有所有的接口通道,你需要?或者,也許你最初的選擇單片機(jī)適合剛剛完美,但一個(gè)新的需求來(lái)了,因?yàn)槟阕詈玫目蛻粝M麄兊淖钚略O(shè)計(jì)一些額外的接口。你也許能夠使用更復(fù)雜的MCU,而這可能會(huì)導(dǎo)致增加顯著的電路板空間(因?yàn)樗挥性诟咭_數(shù)封裝),提高了功率(因?yàn)樗鼉H適用于更多的閃存和SRAM比你真正需要的),或者更高的成本(對(duì)于以前的原因)。
圍繞這個(gè)難題的一種方法是通過(guò)添加一個(gè)FPGA旁邊的MCU規(guī)劃需要額外的接口。該FPGA可以方便地提供額外的接口,只是你需要的,同時(shí)限制增加了電路板空間,成本和功耗。事實(shí)上,相對(duì)于使用更復(fù)雜的MCU的選擇,您通常最終會(huì)用更少的電路板空間,更低的成本和更少的功率。
例如,萊迪思的iCE40超低功耗FPGA可提供多達(dá)26個(gè)信號(hào)的IO在一個(gè)非常小的2.078毫米由2.078毫米電路板面積,而且因?yàn)檫@些設(shè)備通過(guò)片上NVM配置,您不需要額外的電路板空間為配置的設(shè)備。這些FPGA也有兩個(gè)專用I2C接口,并用大量的可配置邏輯的兩個(gè)專用SPI接口的添加為更多的接口,為您的應(yīng)用程序?qū)⑿枰ㄖ钡接猛赆槪HR迪思ICE5LP1K-SWG36ITR50的框圖如圖1所示。
萊迪思FPGA iCE5LP的框圖
圖1:萊迪思FPGA iCE5LP框圖。 (萊迪思半導(dǎo)體公司提供)
該裝置還具有高達(dá)80千位的嵌入式RAM塊可用于接口的FIFO緩沖器和因此MCU可以等到整個(gè)數(shù)據(jù)包準(zhǔn)備好進(jìn)行處理。 DSP模塊也可以被用來(lái)做低級(jí)別的數(shù)據(jù)處理上的原始傳感器數(shù)據(jù)作為先于數(shù)據(jù)發(fā)送到MCU一個(gè)預(yù)處理步驟。當(dāng)FPGA可以智能地聚合數(shù)據(jù)中斷的MCU之前,極大地降低了MCU電源是可能的。此外,萊迪思的iCE5LP FPGA已經(jīng)被設(shè)計(jì)為非常低功率應(yīng)用僅為71μA核心電源的靜態(tài)電流。添加更多的接口,幾乎不需要額外的電路板空間和功耗??纯茨阕钕矚g的微控制器和高引腳數(shù)版本之間的當(dāng)前價(jià)格差,然后把它比作萊迪思FPGA iCE5PL1K價(jià)格上向Digi-Key的網(wǎng)站,看看有什么成本節(jié)約也可能會(huì)提供。
快速響應(yīng)FPGA接口的請(qǐng)求
當(dāng)使用FPGA同伴設(shè)備能夠快速FPGA的服務(wù)請(qǐng)求響應(yīng)也可以是重要的。例如,音頻接口可能需要具有比傳感器數(shù)據(jù)更高的優(yōu)先級(jí)訪問(wèn),因?yàn)樵谝纛l數(shù)據(jù)的“失速”必須避免或用戶體驗(yàn)可顯著降低。在一般情況下,能夠支持多種中斷優(yōu)先級(jí)可幫助提高了FPGA的伴侶的實(shí)用性,進(jìn)一步提高系統(tǒng)的整體性能和能效。
有效利用DMA還可以進(jìn)一步幫助卸載MCU和提高工作效率。例如,也許在FPGA可以首先緩沖向上的前處理的原始數(shù)據(jù)的完整數(shù)據(jù)分組,以減少需要被存儲(chǔ)和發(fā)送的消息的大小。該FPGA可中斷的MCU,并啟動(dòng)DMA傳輸是將整個(gè)郵件到MCU內(nèi)存。一旦DMA傳輸完成并且整個(gè)消息準(zhǔn)備處理中,CPU可以中斷和消息的高層處理可以開(kāi)始。
愛(ài)特梅爾32位AT32UC3A MCU,例如,具有一個(gè)DMA控制器和一個(gè)中斷控制器,無(wú)論是可編程優(yōu)先級(jí)。中斷控制器圖,對(duì)圖2的左側(cè)所示,具有在右側(cè)一個(gè)優(yōu)先塊,在產(chǎn)生中斷級(jí)別到CPU。優(yōu)先級(jí)塊選擇具有最高優(yōu)先級(jí)的中斷,如中斷優(yōu)先級(jí)寄存器(IPRn)與每個(gè)相關(guān)聯(lián)的所定義的中斷級(jí)字段中斷源。因此,較高優(yōu)先級(jí)的源,例如一個(gè)實(shí)時(shí)音頻接口,可以被分配的優(yōu)先級(jí)高于低頻傳感器,也許在I2C端口,用于保證更快的處理。
為愛(ài)特梅爾MCU AT32UC3A中斷控制器圖片
DMA控制器的形象,為愛(ài)特梅爾MCU AT32UC3A
圖2:中斷控制器和DMA控制器框圖為愛(ài)特梅爾MCU AT32UC3A。 (愛(ài)特梅爾提供)
該AT32UC3A MCU的DMA控制器,框圖,其中顯示在圖2右側(cè)的,連接到許多不同的外圍設(shè)備,在右側(cè)的DMA框圖所示。外圍DMA控制器優(yōu)先基于與每個(gè)外設(shè)相關(guān)的DMA通道數(shù)的每個(gè)外設(shè)DMA請(qǐng)求(外設(shè)被分配到一個(gè)信道由一個(gè)配置寄存器,因此它們是完全可編程的)與具有較高優(yōu)先級(jí)較低的信道號(hào)。這允許DMA傳輸可以很容易地進(jìn)行分組,并為最有效的數(shù)據(jù)傳送可能優(yōu)化。優(yōu)先級(jí),甚至可以當(dāng)重新分配算法青睞一種類型的轉(zhuǎn)移在另一個(gè)的部分。
傳感器融合進(jìn)一步提高系統(tǒng)效率
如前所述,F(xiàn)PGA的可用于通過(guò)采用DSP技術(shù)來(lái)預(yù)先處理傳感器數(shù)據(jù)。特別是,F(xiàn)PGA,具有DSP塊可以實(shí)現(xiàn)許多共同的過(guò)濾算法中,例如有限脈沖響應(yīng)(FIR)濾波器,無(wú)限脈沖響應(yīng)(IIR)濾波器和快速傅立葉變換(FFT)。由于這些硬件模塊可以操作無(wú)論是在串行或并行的方式,你可以構(gòu)建過(guò)濾器基于帶寬和功率要求的最佳配置。例如,如果多個(gè)傳感器輸出需要被過(guò)濾,在FPGA既可以使用單獨(dú)的過(guò)濾器塊,每個(gè)傳感器(如果帶寬要求是足夠高),或使用一個(gè)單一過(guò)濾器塊和多個(gè)傳感器之間多路復(fù)用它(如果帶寬要求是足夠低)。
除了預(yù)處理原始傳感器數(shù)據(jù)時(shí),F(xiàn)PGA還可以結(jié)合的讀數(shù)從多個(gè)傳感器,以智能的方式來(lái)進(jìn)一步卸載的MCU處理要求。傳感器“融合”的算法,結(jié)合本地多個(gè)傳感器讀數(shù),之前通知MCU的處理是必需的,可以顯著提高系統(tǒng)效率。結(jié)合心臟速率,溫度,以及排汗讀數(shù)和比對(duì)FPGA內(nèi)部設(shè)置的警報(bào)水平的組合,例如,可以提供微控制器與不僅僅是原始數(shù)據(jù)更有價(jià)值的信息。
該MCU通常需要做一些數(shù)據(jù)的處理自己,但是。它不能放棄一切到FPGA中。幸運(yùn)的是,即使是廉價(jià)的微控制器現(xiàn)在DSP的處理能力,并且可以有效地緊縮大量數(shù)據(jù)。久負(fù)盛名的Microchip的PIC MCU系列,例如,具有DSP的家庭成員,如DSPIC 33EP(如DSPIC33EP32MC202),在高達(dá)70 MIPS的操作與某些指令執(zhí)行多達(dá)8個(gè)操作一次。過(guò)濾器的指令可以受益于40位累加器增加定點(diǎn)精度。在DSPIC33EP專用硬件DSP引擎的框圖如圖3所示。
框圖在Microchip的dsPIC33系列MCU
圖3:DSP引擎框圖在Microchip的dsPIC33系列MCU。 (Microchip的提供)
DSP引擎包括一個(gè)17×17乘法器/定標(biāo)器零回填并簽署擴(kuò)展到創(chuàng)建一個(gè)40位的結(jié)果。除法運(yùn)算使用的是19次迭代一個(gè)重復(fù)循環(huán)通過(guò)一個(gè)單獨(dú)的硬件除法模塊實(shí)現(xiàn)的,且是可中斷降低最壞情況下的中斷延遲。桶式移位器有助于正確地調(diào)整數(shù)據(jù)為40位加法器和雙40位累加器。這種豐富的DSP的處理硬件除了常規(guī)的ALU,提供16位的加,減,和位操作。有了這個(gè)廣泛的集數(shù)據(jù)處理硬件,甚至復(fù)雜的操作都可以非常有效地支持。
的SoC FPGA的硬件加速和基于微控制器的處理
FPGA和微控制器做出這樣的好同伴的FPGA供應(yīng)商甚至把MCU的同伴在其設(shè)備上。當(dāng)這些系統(tǒng)級(jí)芯片(SoC)的FPGA用作同伴高端MCU的,更復(fù)雜的功能可以被移動(dòng)到FPGA。一個(gè)常見(jiàn)的例子是用于FPGA來(lái)處置許多系統(tǒng)界面,不僅與標(biāo)準(zhǔn)外設(shè)還與外部存儲(chǔ)器。由于的SoC FPGA有顯著的片上存儲(chǔ)器,微控制器來(lái)管理數(shù)據(jù)緩沖和處理通信框架和外部存儲(chǔ)控制器,你有你需要實(shí)現(xiàn)一個(gè)完整的通信信道控制器,橋梁,或聚合碎片。這可以離開(kāi)主MCU管理更高水平的功能,例如人機(jī)界面(HMI),過(guò)程控制,以及服務(wù)質(zhì)量的優(yōu)化。
一些的SoC FPGA具有更多的功能,可從主機(jī)MCU卸載更是低層次處理。例如,Microsemi的SmartFusion2 SoC的FPGA系列(M2S050-FGG896的框圖如圖4所示),不僅擁有完整的ARM Cortex子系統(tǒng),但其片上閃存NVM和SRAM塊顯著為MCU的一部分子系統(tǒng)。這些存儲(chǔ)器可以與處理器一起使用,作為代碼和數(shù)據(jù)存儲(chǔ),與芯片外的DDR控制器作為大緩沖存儲(chǔ)器,并與PCIe和以太網(wǎng)控制器作為先進(jìn)先出存儲(chǔ)。智能DMA控制器可以管理許多數(shù)據(jù)傳輸?shù)牟恢袛嗟奶幚砥鳌?/p>
Microsemi的SmartFusion2 SoC的FPGA的框圖
圖4:Microsemi的SmartFusion2 SoC的FPGA程序框圖。 (Microsemi公司提供)
SmartFusion2的SoC FPGA還具有片上硬件的安全性,可用于保護(hù)遠(yuǎn)程代碼更新來(lái)自黑客和其他安全威脅。大型片上閃存可用于存儲(chǔ)受保護(hù)的引導(dǎo)代碼,這使得它可以支持安全啟動(dòng)的操作,即使沒(méi)有本地安全功能的主機(jī)處理器。大量的可編程結(jié)構(gòu)可以從主機(jī)控制器提供定制硬件加速,進(jìn)一步卸載處理。例如,在一個(gè)底盤(pán)控制系統(tǒng),可編程織物可以用于DSP的預(yù)處理傳感器數(shù)據(jù),傳感器融合組合的電壓,電流,和溫度讀數(shù),馬達(dá)控制的機(jī)箱風(fēng)扇控制系統(tǒng)的溫度,控制臺(tái)接口,本地診斷監(jiān)測(cè)和控制,或通過(guò)PCIe橋接至其他控制平面功能。隨著SoC的FPGA的同伴實(shí)際上可能承擔(dān)更多的處理比主機(jī),切換一個(gè)MCU之間的傳統(tǒng)角色作為主角,并僅在次要輔助作用的FPGA。
結(jié)論
有許多應(yīng)用,其中的MCU和一個(gè)FPGA,配對(duì)在一起,可以顯著地經(jīng)由較低功耗,減少電路板空間,提高了處理,或增加的靈活性提高系統(tǒng)效率。了解如何通過(guò)分配這兩個(gè)設(shè)備之間的函數(shù)來(lái)實(shí)現(xiàn)其中的一些改進(jìn),可能是在你的下一個(gè)設(shè)計(jì)成功的關(guān)鍵。