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