ArduinoおよびRaspberry Piの開発ボードを合わせたものにFPGAを少し追加

ArduinoおよびRaspberry Piの開発ボードは、エンジニアが組み込みシステムを開発する方法における革命の頂点となっています。かつては、ハードウェアから始まる組み込みシステムが開発されました。大まかに説明すると、プロジェクトの手順は次のとおりです。

  1. 処理速度の大まかな見積もりとI/O要件を含むシステム要件を指定します。
  2. 電力、性能、および価格の要件を満たす適切なマイクロコントローラまたはマイクロプロセッサを選択します。
  3. ハードウェアのプロトタイプを配線します。
  4. ハードウェアのプロトタイプをデバッグします。行を動かすために必要な場合は、短いドライバコードを記述します。
  5. ハードウェアが実行されたら、コードのスリングを開始します。
  6. コードをデバッグします。
  7. 出荷します。

現在、状況はそれほど単純ではありません。第一に、選択肢として文字どおり何千ものプロセッサとマイクロコントローラがあります。多数のベンダーから入手できます。これらすべての選択肢を頭に入れておくことはできません。

第二に、世界が30年前に面実装技術へと進化したため、前述の手順3(ハードウェアのプロトタイプを配線する)によって実際の問題が提起されます。手配線、さらには1970年代にプロトタイピング技術として普及していたワイヤラッピング技術でさえも、電気工学の鍛冶に似ています。これは現在ではめったにないことです。プロトタイプのプリント基板を設計、組み立て、およびはんだ付けする必要があるとします。もし、より良い(より高速で低コストの)代替手段がある場合、これらの作業に時間を使うことはないでしょう。

この状況によって、前述の手順1から4を短絡する開発ボードに好機が訪れました。現在市場で最も有名な2つの開発ボードは、Arduino Uno(およびその多数のバージョン)とRaspberry Piです。Raspberry Piの最新モデルは、Raspberry Pi 3 Model B+です。同時によく言及されていますが、ArduinoとRaspberry Piの開発ボードは、まったく似ていません。

Arduinoは、オープンソースコンピュータのハードウェアおよびソフトウェア会社、オープンソースコミュニティプロジェクト、Arduino開発ボードを設計および製造するユーザーコミュニティ、統合開発環境(IDE)、そして実際のArduinoマイクロコントローラボード自体の名前です。(Arduinoという名前は、Arduinoプロジェクトの創設者の一部が以前によく会っていた、イタリアのイブレアのバーに由来します。)

図1:Arduino Unoは、いくつかの単純なI/O機能を備えた8ビットAtmelマイクロコントローラに基づくエントリレベルの開発ボードで、高性能を必要としない組み込み設計の開発プラットフォームとして機能します。(画像提供:Arduino)

最初のArduino開発ボードは、Atmel AVRマイクロコントローラに基づいていました。Arduino IDEを使用してコードを開発しました、その後、そのコードをコンパイルし、オンボードマイクロコントローラのフラッシュメモリにダウンロードしました。Arduino IDEは、Arduino IDEに固有の特別なコード構造化規則でCおよびC++言語をサポートします。Arduinoのコンセプトが大きく成長したため、新しいArduinoのバージョンは、さらなる性能のために32ビットのArm® Cortex®-M0に基づいたマイクロコントローラにステップアップしました(図1)。

比較的単純な組み込みシステムを制御するための入門用マイクロプロセッサ開発ボードとして設計されているため、Arduino開発ボードは非常に単純なI/O機能を備えています。単純なデジタルI/Oとアナログ入力ピンを備えた0.1インチのヘッダに加えて、Arduino Uno開発ボードにはUSBポートと点滅するいくつかのオンボードLEDがあります。それですべてです。I/Oピンはソフトウェアで制御されているため、性能の面ではあまり問題にはなりません。

Raspberry Piへのステップアップ

組み込み設計にさらに性能が必要な場合、Raspberry Pi 3 B+開発ボードは、Arduinoから大幅にステップアップしたものです(図2)。その重要な機能は次のとおりです。

  • Broadcom BCM2837B0、Cortex®-A53(Arm®v8)64ビットSoC @ 1.4GHz
  • 1GB LPDDR2 SDRAM
  • 2.4GHzおよび5GHz IEEE 802.11.b/g/n/acワイヤレスLAN、Bluetooth 4.2、BLE
  • USB2.0を介したギガビットEthernet(最大スループット300Mbps)
  • 拡張40ピンGPIOヘッダ
  • フルサイズHDMI
  • 4つのUSB2.0ポート
  • 拡張40ピンGPIOヘッダ
  • Raspberry Piカメラ接続用のCSIカメラポート
  • Raspberry Piタッチスクリーンディスプレイ接続用のDSIディスプレイポート
  • 4極ステレオ出力およびコンポジットビデオポート
  • オペレーティングシステムのロードおよびデータの保存用のマイクロSDポート
  • 5V/2.5A DC電源入力
  • Power over Ethernet(PoE)のサポート(別途PoE HATが必要)

図2:Raspberry Pi 3 Model B+は、クワッドコア、64ビットArmアプリケーションプロセッサ、1GBのSDRAM、および広範なI/O機能を備えた、優れた組み込みハードウェア開発プラットフォームとして機能します。(画像提供:Raspberry Pi

その十分な処理能力、メモリ、およびI/O機能で多くのことを行えます。Raspberry Pi 3 B+開発ボードはLinuxを実行しており、製品の周囲に巨大なサポートコミュニティがあります。低価格であることを考慮すると、Raspberry Pi 3 Model B+は、多くの組み込み開発プロジェクトに対して優れたハードウェアプラットフォームを作成します。

速度が必要だと感じたときは

Raspberry Pi 3 Model B+が組み込みシステムのすべての設計要件を満たしている場合、それ以上は必要ありません。この能力に優れた開発ボードの低価格を考慮すると、必要ないのです。しかし、組み込みシステムがRaspberry Pi Model 3 B+のかなりのI/Oリソースを超えた特別なI/O機能を必要とする場合はどうでしょうか。

この状況は、ソフトウェアのみを使用して定義された新しいタイプの高速インターフェースを定義できるという点で優れている、FPGAの高性能機能が必要な場合の例です。追加の配線は不要です。さらに、Trenz ElectronicTE0726-03M開発ボードであるZynqBerryを使用して、Raspberry Pi Model 2のフォームファクタにすでに組み込まれたFPGA機能を得ることができます(図3)。

図3:Trenz TE0726-03M ZynqBerry開発ボードは、追加のI/O性能を必要とする組み込み設計用のRaspberry Pi Model 2フォームファクタにXilinx Zynq Z-7010 SoCをパッケージ化したものです。(画像提供:Trenz Electronic)

ZynqBerryは、デュアルコアArm® Cortex®-A9 32ビットマイクロプロセッサをFPGAと融合したXilinx Zynq Z-7010 SoCに基づいており、プロセッサのみ(あるいは1.4GHzで実行される4つのプロセッサ)よりも多くの高性能なタスクを処理できるデバイスになります。Zynq SoCのソフトウェア(プロセッサ)側とハードウェア(FPGA)側の両方にIDEを提供する、ダウンロード可能なXilinx Vivadoツールスイートを使用して、Trenz ZynqBerryをプログラムします。

Arduinoのフォームファクタという選択肢

Arduino Unoのフォームファクタの方を選ぶ場合はどうなりますか。Trenz Electronicは、TE0723-03M ArduZynqについても同様に説明しています(図4)。

図4:Trenz ElectronicのTE0723-03M ArduZynqは、さらにプロセッサおよびI/O性能を必要とするArduinoプロジェクトのために、Xilinx Zynq SoCを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」の2つのエピソードで技術専門家を務めました。同氏は、33年間にわたって、高速でかつ信頼性の高い優れたシステムを設計技術者が開発することを支援しています。
More posts by Steve Leibson氏