將少許 FPGA 功能加入 Arduino 和 Raspberry Pi 開發板組合中

Arduino 及 Raspberry Pi 開發板是顛覆嵌入式系統開發方式的登峰造極之作。以前,要開發嵌入式系統,必須先從硬體開始著手。專案的開發步驟大致如下:

  1. 先列出系統要求,包括粗估的處理速度及 I/O 要求。
  2. 選擇功率、效能與價格都符合要求的合適微控制器或微處理器。
  3. 對硬體原型進行佈線。
  4. 對硬體原型進行除錯。若有必要,編寫一小段驅動程式碼來驅動線路。
  5. 硬體運作之後,開始執行程式碼。
  6. 對程式碼進行除錯。
  7. 出貨!

現在的情況已經沒那麼簡單了。首先,目前許多家廠商已經推出上千款處理器和微控制器可供選擇,沒有人能把全部的替代品都記在腦海中。

其次,上面的第三項 (對硬體原型進行佈線) 帶來一個實際問題,因為早在三十年前,佈線技術就已演變到表面黏著技術。,人工佈線甚至絕緣包覆技術這種在 70 年代盛行的原型製造技術,對電氣工程而言,就好像鐵匠打鐵時代的技術一樣。這種技術現在已經很少見。您確實需要設計、製造並焊接原型 PC 板,如果有更好 (更快且成本更低) 的選擇,誰還會花時間那麼做呢?

可省去上述第一至第四步驟的開發板就是在這種情況下應運而生。現在市面上最知名的兩款開發板分別是 Arduino Uno (及其眾多變體版本) 及 Raspberry Pi。目前 Raspberry Pi 的最新型號是 Raspberry Pi 3 Model B+。雖然人們時常將 Arduino 與 Raspberry Pi 開發板相提並論,但兩者卻截然不同。

Arduino 這個名字代表眾多不同的事物,既指開放原始碼電腦軟硬體公司、開放原始碼社群專案、設計和製造 Arduino 開發板的使用者社群、整合式開發環境 (IDE),又指 Arduino 微控制器板本身。(Arduino 這個名字出自義大利伊夫雷亞的一間酒吧,Arduino 專案的幾個原始創始人常在那裡聚會。)

圖 1:Arduino Uno 是一款入門級開發板,採用 8 位元 Atmel 微控制器並具有一些簡單的 I/O 能力,在對效能要求不高的嵌入式設計上可當作開發平台。(圖片來源:Arduino)

最初的 Arduino 開發板採用 AtmelAVR 微控制器。在使用 Arduino IDE 開發程式碼之後,IDE 會編譯程式碼,並將其下載到板載微控制器的快閃記憶體中。Arduino IDE 支援 C 和 C++ 語言,並具備 Arduino IDE 獨有的特殊程式碼結構規則。由於 Arduino 概念已大幅度成長,較新的 Arduino 變體版本已經進化成 32 位元 Arm® Cortex®-M0 架構的微控制器,具有更高效能 (圖 1)。

由於 Arduino 開發板是為了控制相對簡易型嵌入式系統而設計的入門級微處理器開發板,因此具有非常簡單的 I/O 能力。Arduino Uno 開發板具有一些 0.1 吋排針座 (帶有簡單數位 I/O 和類比輸入引腳),還有一個 USB 埠及幾個可閃爍的板載 LED,可以說非常簡單。I/O 引腳由軟體控制,所以在發揮這些引腳的效能方面沒有太多阻礙。

進升至 Raspberry Pi

如果您的嵌入式設計需要更高效能,則可考慮從 Arduino 進升至 Raspberry Pi 3 B+ 開發板 (圖 2)。重要特點如下:

  • Broadcom BCM2837B0、Cortex®-A53 (Arm®v8) 64 位元 SoC @ 1.4 GHz
  • 1 GB LPDDR2 SDRAM
  • 2.4 GHz 與 5 GHz IEEE 802.11.b/g/n/ac 無線 LAN、藍牙 4.2、BLE
  • USB 2.0 Gigabit 乙太網路 (最大傳輸量 300 Mbps)
  • 擴充式 40 引腳 GPIO 排針座
  • 全尺寸 HDMI
  • 四個 USB 2.0 連接埠
  • 擴充式 40 引腳 GPIO 排針座
  • CSI 攝影機連接埠;用於連接 Raspberry Pi 攝影機
  • DSI 顯示器連接埠;用於連接 Raspberry Pi 觸控式螢幕顯示器
  • 4 極立體音輸出與複合視訊連接埠
  • Micro SD 連接埠;用於載入作業系統與儲存資料
  • 5 V/2.5 A DC 功率輸入
  • 乙太網路供電 (PoE) 支援 (需要獨立的 PoE HAT)

圖 2:Raspberry Pi 3 Model B+ 具有四核心 64 位元 Arm 應用處理器、1 GB 的 SDRAM 與豐富的 I/O 能力,可作為絕佳的嵌入式硬體開發平台。(圖片來源:Raspberry Pi)

出色的處理能力、超大的記憶體與豐富的 I/O 能力,可讓您完成很多工作。Raspberry Pi 3 B+ 開發板能執行 Linux,並有龐大的社群可提供產品支援。鑒於其低廉的價格,Raspberry Pi 3 Model B+ 是眾多嵌入式開發專案的理想硬體平台。

若您還有速度上的需求,該怎麼辦?

如果 Raspberry Pi 3 Model B+ 符合您所有的嵌入式系統設計需求,就不需要再找其他產品。既然這款能力絕佳的開發板價格低廉,又何必多此一舉呢?不過,如果您的嵌入式系統需要特殊的 I/O 能力,且遠超出 Raspberry Pi Model 3 B+ 可觀的 I/O 資源能力範圍,該怎麼辦呢?

這種情況就是需要藉助 FPGA 高效能的例子。FPGA 的強項在於能制訂新型的高速介面,而且只要使用軟體即可完成,完全不需要額外佈線。此外,您可以使用 Trenz ElectronicTE0726-03M 開發板 (即 ZynqBerry,如圖 3 所示) 獲得已內建於 Raspberry Pi Model 2 外形尺寸中的 FPGA 功能。

圖 3:Trenz 的 TE0726-03M ZynqBerry 開發板將 XilinxZynq Z-7010 SoC 封裝在 Raspberry Pi Model 2 的外形尺寸中,適合需要額外 I/O 效能的嵌入式設計。(圖片來源:Trenz Electronic)

ZynqBerry 採用 Xilinx 的 Zynq Z-7010 SoC,融合了雙核心 Arm® Cortex®-A9 32 位元微處理器與 FPGA;此裝置可處理的高效能工作量,比單一處理器 (甚至比 1.4 GHz 運作速度的四個處理器) 可處理的量超出許多。您可使用 Xilinx Vivado 工具套件 (可下載) 對 Trenz ZynqBerry 進行編程,套件提供的 IDE 可用於 Zynq SoC 的軟體 (處理器) 與硬體 (FPGA) 層面。

偏好 Arduino 外形尺寸嗎?

要是您偏好 Arduino Uno 的外形尺寸,該怎麼辦?Trenz Electronic 也針對您的需求提供 TE0723-03M ArduZynq (圖 4)。

圖 4:Trenz Electronic 的 TE0723-03M ArduZynq 將 Xilinx 的 Zynq SoC 置入 Arduino 開發板的外形尺寸中,可供需要更高處理器與 I/O 效能的 Arduino 專案使用。(圖片來源:Trenz Electronic)

與 Trenz ZynqBerry 一樣,您可以使用 Xilinx Vivado 工具套件 (可下載) 對 Trenz ArduZynq 進行編程。

Arduino Uno 和 Raspberry Pi 等開發板可在嵌入式開發過程中簡化許多選擇作業,但無法應對所有嵌入式設計的難題。當您的需求已經超出這些開發板的能力,就沒有必要去改變開發板的外形尺寸。您所需要的只不過是在組合中加入少許 FPGA 功能。

關於作者

Image of Steve Leibson Steve Leibson 曾任 HP 和 Cadnetix 的系統工程師、EDN 和 Microprocessor Report 的總編輯,以及 Xilinx 和 Cadence 等的科技部落客,也曾在兩集《The Next Wave with Leonard Nimoy》電視節目中擔任技術專家。33 年來,他協助設計工程師開發更優良、更快速且更可靠的系統。
More posts by Steve Leibson