天天看點

基于FPGA 架構的微控制器子系統實作

作者:至芯科技

随着物聯網應用的采用勢頭越來越猛,嵌入式開發社群面臨的壓力也越來越大,他們需要平衡每個設計的可用計算資源、延遲、成本和尺寸。由于其實時性,對雲連接配接的關注也被視為某些發展的挑戰,進而導緻混合“霧”計算方法。配置本地網關以向霧方法提供本地雲方面可能需要相當高的計算需求和算法處理。許多負責開發網關裝置的設計人員面臨的挑戰是了解其計算要求的多樣性。一些應用,尤其是工業物聯網部署中的應用,可能涉及相當複雜的電機控制或視覺處理任務。對于這些要求,不僅需要高水準的計算能力,還需要實時确定性行為。雖然高端 CPU 通常是首選裝置,但還有許多其他裝置正在引起開發人員的注意。其中之一是現場可程式設計門陣列 (FPGA),由于其硬确定性能力,它正在迅速發展。

  那些不熟悉使用 FPGA 的人面臨着許多關于這些裝置的複雜性、成本和功耗特性的神話。許多開發人員認為 FPGA 可能隻适用于高度專業化、高成本的軍事系統,但目前的情況與這種情況相去甚遠。在當今的雲連接配接世界中,FPGA 的最大應用是資料中心應用,除了加速搜尋功能外,它們還用于使用神經網絡深度學習技術進行圖像識别搜尋。

  毫無疑問,精通建構基于微控制器或微處理器的系統的嵌入式開發人員在考慮使用 FPGA 時會被前面的學習曲線吓倒。對大多數人來說,顯着的差別将是從基于軟體的思維過程轉向硬體“門”方法。FPGA 被認為是最接近設計定制 IC 的最接近的東西,它可以完全按照您的要求進行設計,FPGA 本質上是通用門和單元的空白畫布,是使用硬體描述語言 (HDL) 程式設計或連接配接在一起的結構(圖1)。學習數字邏輯的電子工程師很快就會對 FPGA 背後的基本概念感到賓至如歸,而其他人可能會發現有關該主題的線上進修課程很有用。Simon Monk 對 FPGA 進行程式設計。

基于FPGA 架構的微控制器子系統實作

  圖 1:FPGA 器件的功能框圖。

  随着 FPGA 在各種應用中的使用勢頭越來越猛,有關它們的資訊的可用性也越來越高。這主要是由領先的 FPGA 供應商推動的,他們投入巨資提供免費的開源軟體工具,以幫助定義和加速設計流程。在 FPGA 架構中內建 MCU 以建立 FPGA 片上系統 (SoC) 裝置進一步有助于管理 FPGA 并将其內建到最終應用中。極大地簡化了學習和開發過程,有助于在更廣泛的應用中使用 FPGA,并促進開放社群論壇的發展。在創客社群内采用 FPGA 也有助于激發對其功能的興趣,并為 Mojo 和 Papilio 等許多衆籌 FPGA 評估闆項目做出了貢獻。FPGA 制造商還努力通過建立在更廣泛的開源社群中得到很好支援的開發套件和評估闆來使設計更易于通路。所有這些舉措共同創造了豐富的技術資訊和支援資源,有助于鼓勵設計人員考慮他們的第一個 FPGA 設計。

  這種評估闆的一個例子是Microsemi 的 SmartFusion2 入門套件,如圖 2 所示。

基于FPGA 架構的微控制器子系統實作

  圖 2:SmartFusion2 入門套件。

  該入門套件包含一個系統級子產品 (SOM),其中包含帶有相關存儲器和時鐘的 Microsemi SmartFusion2 FPGA SoC 器件,以及一個承載原型設計區域、電源轉換器和電源管理 IC 的 SmartFusion2 基闆,該入門套件提供了一個完整的平台開始您的第一個設計。

  FPGA SoC 器件具有 32 位 ARM® Cortex®-M3 微控制器核心,在 FPGA 架構中實作為微控制器子系統 (MSS)。它支援 64 MB DDR 記憶體和 16 MB 閃存,并且能夠運作高達 142 MHz。圖 3 顯示了 SmartFusion2 SOM 的功能框圖。

基于FPGA 架構的微控制器子系統實作

  圖 3:SmartFusion2 系統級子產品的功能框圖。

  SOM 還包括一個 JTAG 接口、一個看門狗定時器、一個以太網接口以及大量 GPIO 和串行(I 2 C、CAN、SPI 和 UART)接口。基闆連接配接和使用者 I/O 功能的全部範圍如圖 4 所示。FPGA 架構的大小取決于模型,範圍從 6060 到 56520 個邏輯元件。SoC 代碼運作 uClinux 核心,通過提供對所有 Linux 工具(包括 SSH、FTP 和 Telnet 等網絡實用程式)的通路,進一步幫助開發過程。

基于FPGA 架構的微控制器子系統實作

  圖 4:SmartFusion2 基闆功能框圖。

  在對 FPGA SoC 進行程式設計時,Microsemi 的設計流程工具Libero可從 Microsemi 網站免費下載下傳。套件中還包括作為 Libero 項目設定的完整 FPGA SoC 和電路闆。Libero 将 FPGA 設計的設計流程與嵌入式應用程式開發內建在一起,如圖 5 所示。

基于FPGA 架構的微控制器子系統實作

  圖 5:Libero 将傳統的 FPGA 設計流程與微控制器固件開發內建在一起。

  Libero 快速入門指南很好地介紹了使用 Libero 和整個設計流程。Libero 的一個關鍵部分是 System Builder 向導(圖 6),它通過提出一系列問題來幫助開發人員進行架構設計過程,這些問題有助于塑造基本系統要求、配置選項,并在需要時向架構添加額外的外圍裝置。

基于FPGA 架構的微控制器子系統實作

  圖 6:Libero System Builder 向導 - MSS 中時鐘功能的示例設定。

  與傳統的開發實踐保持一緻,“Hello World”第一程式的現代解釋是通過閃爍的 LED 設計項目實作的。在本教程中完整記錄,該文檔指導工程師完成設計流程以實作此基本設計功能。圖 7 是本教程的螢幕截圖,突出顯示了将輸出信号配置設定給指定的 GPIO 引腳,該引腳在基闆上連接配接了一個 LED。

基于FPGA 架構的微控制器子系統實作

  圖 7:閃爍 LED 示例中的 GPIO 引腳配置設定。

  結論

  FPGA 在原始計算能力、設計靈活性和每瓦性能方面可為開發人員提供很多幫助。以前被視為程式複雜、耗電大且價格昂貴的裝置,随着越來越多的商業應用利用其廣泛的功能,它們在最近已經成熟了很多。衆所周知,在工程師建立複雜的神經網絡設計之前,有一個合理的學習曲線。但是,由于本文中描述的開發工具的可用性,邁出第一步變得容易得多。

繼續閱讀