嵌入式系統(tǒng)開發(fā)人員一直在想方設(shè)法進一步縮短開發(fā)時間,特別是針對概念驗證和快速原型開發(fā)。雖然開發(fā)套件已成為捷徑之選,但設(shè)計人員需要找到一個平衡點,既兼顧外形尺寸和廣受支持的生態(tài)系統(tǒng),又要考慮性能要求。
Arduino Uno 開發(fā)板就是這種需要找到平衡點的很好例子。由于成本低廉,并在理論上具有數(shù)百個可提供 Arduino I/O 插件擴展功能的 Arduino 盾板,其外形尺寸在這一領(lǐng)域極其流行。但是,針對特定嵌入式應(yīng)用,某些開發(fā)人員可能需要比 8 位微控制器所能提供的更高性能。
對于他們來說,Crowd Supply 的 HiFive1 開發(fā)套件可能才是解決方案。本文將介紹低成本的 HiFive1 開發(fā)套件,討論如何通過其功能實現(xiàn)高性能嵌入式系統(tǒng)的快速原型開發(fā)。此外,本文將介紹幫助設(shè)計人員入門的可用開發(fā)工具。
什么是 HiFive1?
HiFive1 開發(fā)套件基于一款集成 32 位 RISC-V(讀音“risk-five”)處理器內(nèi)核的微控制器(圖 1)。該開發(fā)板可接受 Arduino 式盾板,從而大幅提升了其對嵌入式設(shè)計快速原型開發(fā)的實用性。
圖 1:HiFive1 Arduino 兼容開發(fā)板使用一個基于 32 位 RISC-V 處理器內(nèi)核的微控制器。(圖片來源:SiFive)
HiFive1 的核心是 RISC-V 處理器內(nèi)核。這就需要 Arduino 開發(fā)板背后的開源概念,并將其一直擴展到處理器本身。RISC-V 是開放式指令集架構(gòu) (ISA),基于兩個基礎(chǔ):自 20 世紀(jì) 80 年代以來一直采用的精簡指令集計算 (RISC) 概念,以及開源原則。因為 RISC-V ISA 是開源的,所以可自由地用于任何目的。任何人都可以設(shè)計、制造和銷售基于 RISC-V 的芯片和軟件,而無需支付版稅。
HiFive1 板上基于 RISC-V 的微控制器可通過編程支持芯片內(nèi)執(zhí)行 (XIP) 模式,以便在指令高速緩存重新填充期間降低 SPI 指令執(zhí)行時間。微控制器的四路 SPI (QSPI) 端口支持 32 字節(jié)猝發(fā)讀取,使用存儲器的 XIP 模式,加快來自 QSPI 閃存的指令高速緩存重新填充,進而提升性能。
微控制器可在高于 320 MHz 的時鐘速率下運行,但在 HiFive1 板上,應(yīng)限制時鐘速率不高于 133 MHz,以便保持微控制器的 SPI 串行時鐘在開發(fā)板的 128 Mbit QSPI 閃存限制范圍內(nèi)工作。
Arduino 式針座(包含注意事項)
HiFive1 開發(fā)套件復(fù)制了 Arduino 獨特的 I/O 針座布局。它可以接受數(shù)以百計可用 Arduino 盾板中的多數(shù)類型,但有幾點需要注意。
首先,微控制器沒有模擬輸入引腳。HiFive1 開發(fā)套件的 Arduino 式針座只能進行數(shù)字 I/O、中斷和脈沖寬度調(diào)制 (PWM) 引腳分配。Arduino Uno 開發(fā)板上 A0 至 A5 模擬引腳所用的物理針座位置在 HiFive1 開發(fā)板上標(biāo)注為 D14 至 D19 數(shù)字 I/O 引腳。如果有必要添加模擬功能,可使用眾多可用模數(shù)轉(zhuǎn)換器 (ADC)、數(shù)模轉(zhuǎn)換器 (DAC) 或組合 ADC/DAC Arduino 盾板中的一種。
另請注意:
-
設(shè)計人員可將多達 9 個 PWM 發(fā)生器分配到 HiFive1 開發(fā)套件上的 Arduino 式針座引腳。
-
HiFive1 開發(fā)套件的所有 19 個 Arduino 式針座 I/O 引腳均可用作中斷輸入。
板載電壓轉(zhuǎn)換器可根據(jù)跳線設(shè)置,靈活地將所有 HiFive1 開發(fā)套件的數(shù)字 I/O 引腳設(shè)置為 3.3 V 或 5 V 邏輯電平。單跳線設(shè)置(圖 1 開發(fā)板上帶 IOREF 標(biāo)志)可定義 HiFive1 開發(fā)套件的 Arduino 式針座上所有 I/O 引腳的邏輯電平。
這就引出了第二個注意事項:迄今為止,只有以下兩款 Adafruit Arduino 盾板通過了 HiFive1 測試,因為只有針對這兩款盾板的 Adafruit 支持庫已移植到 HiFive1 庫:
-
Adafruit 的 BLE SPI Friend
即便如此,盡管支持庫可能需要微調(diào),但任何與 SPI、UART 或數(shù)字 I/O 通信的盾板都應(yīng)該易于搭配 HiFive1 使用。HiFive1 外設(shè)盾板支持庫還處于初期階段:預(yù)計支持的盾板數(shù)量會增加。
好硬件需要好軟件支持
GitHub 上提供了針對 HiFive1 開發(fā)套件的軟件開發(fā)工具。這些工具包括用于 RISC-V 處理器架構(gòu)的 C 編譯器和匯編器、用于 RISC-V 處理器的 GDB 主機駐留調(diào)試器和 OpenOCD(片上調(diào)試器)的 RISC-V 版本。
一旦程序被編寫、編譯和匯編,開發(fā)人員就可以通過 USB 調(diào)試接口將其上傳到 HiFive1 開發(fā)套件。HiFive1 將該程序存儲在其板載 SPI 閃存芯片中。板載閃存芯片的容量為 16 Mb,比 8 位 Arduino Uno 板上的代碼存儲容量大得多。地址空間擴展只是諸如 RISC-V 的 32 位處理器架構(gòu)的眾多優(yōu)點之一。該微控制器的片上 16 Kb SRAM 也相對較大。
處于開發(fā)板核心地位的芯片
接下來將詳細介紹 HiFive1 開發(fā)套件的核心,即微控制器(圖 2)。
圖 2:基于 RISC-V 的開源微控制器的簡化框圖。(圖片來源:SiFive)
該微控制器的中心是基于開源的 32 位 RISC-V ISA 的 CPU 內(nèi)核。就 RISC-V 而言,核心是 RV32IMAC 處理器,這意味著它使用的是基本 32 位 RISC-V 整數(shù)指令集 (RV32I),具有整數(shù)硬件乘除 (M) ;原子、實時指令 (A);以及對 16 位精簡 (C) 指令集的附加支持。另外還有 64 位和 128 位版本的 RISC-V ISA。該內(nèi)核還包括 16 Kb 的指令緩存(在框圖中標(biāo)記為“I $”)和 16 Kb 的暫存器 SRAM。幾個標(biāo)準(zhǔn)外設(shè)包括定時器、PWM 信號發(fā)生器、實時時鐘、UART、QSPI 串行接口以及圍繞處理器內(nèi)核的一個片上硬件調(diào)試模塊。
RISC-V 架構(gòu)幕后有誰或者說有什么?為什么?
HiFive1 開發(fā)套件和微控制器實際上是開源 RISC-V 處理器架構(gòu)的硬件演示工具,是一個假設(shè)論證:世界真的需要另一種處理器架構(gòu)嗎?
RISC-V 項目始于加州大學(xué)伯克利分校,最終超越了大學(xué)研究的范疇,充分發(fā)揮了更多自愿參與者和電子行業(yè)人士的想象力。該項目的最終結(jié)果是開源代碼 RISC 處理器 ISA(指令集架構(gòu)),與其他任何 32 位 RISC ISA 幾乎一樣。不同之處在于任何人都可以自由地將 RISC-V ISA 用于任何目的。
它需要一個生態(tài)系統(tǒng)
就 HiFive1 開發(fā)板而言,嵌入式系統(tǒng)開發(fā)人員需要的不僅僅是處理器或微控制器芯片。對于 RISC-V,嵌入式開發(fā)人員需要工具、示例代碼、庫和軟件堆棧等形式的開發(fā)支持。這類支持來自圍繞成功的處理器架構(gòu)和用戶而發(fā)展的生態(tài)系統(tǒng)。RISC-V 處理器架構(gòu)相對較新,其生態(tài)系統(tǒng)也一樣,但它在不斷發(fā)展。除了上面討論的 SiFive 開發(fā)工具外,RISC-V 生態(tài)系統(tǒng)中的其他開發(fā)工具目前還包括:
總結(jié)
經(jīng)濟實惠的 Arduino Uno 開發(fā)板外形小巧輕便,可訪問數(shù)百個 I/O 和外設(shè)盾板。HiFive1 開發(fā)套件利用這些現(xiàn)有盾板,通過緊密復(fù)制緊湊型 Arduino Uno 開發(fā)板的外形尺寸和獨特針座配置,將其與基于 RISC-V 的 32 位微控制器配接。
HiFive1 開發(fā)套件具有 16 Mb 板載閃存,可提供更高的代碼存儲能力。盡管它是一款新的架構(gòu),但嶄露頭角的開源 RISC-V 生態(tài)系統(tǒng)提供了一套擴展的軟件開發(fā)工具,包括編譯器、匯編器、調(diào)試器和 Arduino IDE 庫。
-
嵌入式
+關(guān)注
關(guān)注
5060文章
18979瀏覽量
302237 -
Arduino
+關(guān)注
關(guān)注
187文章
6461瀏覽量
186524
發(fā)布評論請先 登錄
相關(guān)推薦
評論