Arduino- und Raspberry Pi-Entwicklungsboards mit einer Prise FPGA

Die Entwicklungsboards von Arduino und Raspberry Pi stehen an der Spitze einer Revolution bei der Entwicklung von Embedded-Systemen. Früher begann die Entwicklung eines Embedded-Systems mit der Hardware. Dies waren, grob gesagt, die Projektschritte:

  1. Spezifikation der Systemanforderungen, einschließlich einer groben Schätzung der Verarbeitungsgeschwindigkeit und der I/O-Anforderungen
  2. Auswahl eines geeigneten Mikrocontrollers oder Mikroprozessors, der die Anforderungen bezüglich Stromverbrauch, Leistung und Preis erfüllt
  3. Verdrahten eines Hardware-Prototyps
  4. Debuggen des Hardware-Prototyps Ggf. Schreiben von Treibercode.
  5. Flottes Programmieren, sobald die Hardware läuft
  6. Debuggen des Codes
  7. Fertig!

So einfach ist es nicht mehr. Zum einen stehen buchstäblich Tausende von Prozessoren und Mikrocontrollern von zahlreichen Anbietern zur Auswahl. Keiner kann alle diese Varianten im Kopf haben.

Zum anderen stellt Punkt drei oben (Verdrahten eines Hardware-Prototyps) ein ziemliches Problem dar, da schon vor drei Jahrzehnten alle zur Oberflächenmontage übergegangen sind. Etwas von Hand zu verdrahten, ja selbst die Wickelmethode, die in den 1970er-Jahren als Prototyping-Technik vorherrschend war, ist ausgesprochen veraltet. Das macht heute kaum mehr jemand. Sie müssten eine Prototyp-PC-Karte entwerfen, fertigen und löten – wer hat schon dafür Zeit, wenn es bessere (schnellere und kostengünstigere) Alternativen gibt?

In dieser Situation entstanden Entwicklungsboards, mit denen Sie Schritt eins bis vier überspringen können. Zwei der bekanntesten Entwicklungsboards, die heute auf dem Markt sind, sind das Arduino Uno (und ihre zahlreichen Varianten) und das Raspberry Pi. Das neueste Modell des Raspberry Pi ist das Raspberry Pi 3 Modell B+. Doch auch wenn sie oft im selben Atemzug genannt werden, sind sich die Entwicklungsboards Arduino und Raspberry Pi gar nicht ähnlich.

„Arduino“ ist der Name eines Unternehmens für Open-Source-Hardware und -Software, der Benutzercommunity, die die Arduino-Entwicklungsboards entwirft und fertigt, einer integrierten Entwicklungsumgebung (IDE) und des eigentlichen Arduino-Mikrocontrollerboards selbst. (Der Name Arduino stammt von einer Bar in Ivrea, Italien, wo sich anfangs einige der Gründer des Arduino-Projekts trafen.)

Abbildung 1: Das Arduino Uno, ein Entwicklungsboard für Einsteiger, basierend auf einem 8-Bit-Mikrocontroller von Atmel mit ein paar einfachen I/O-Fähigkeiten, dient als Entwicklungsplattform für Embedded-Designs, die keine hohe Leistung benötigen. (Bildquelle: Arduino)

Die ersten Arduino-Entwicklungsboards basierten auf Atmel-AVR-Mikrocontrollern. Code wurde in der Arduino-IDE entwickelt, die dann den Code kompilierte und in den integrierten Flash-Speicher des Mikrocontrollers lud. Die Arduino-IDE unterstützt die Sprachen C und C++ mit speziellen Codestrukturierungsregeln, die nur für die Arduino-IDE gelten. Weil das Arduino-Konzept enorm gewachsen ist, sind neuere Arduino-Varianten zur Erhöhung der Leistung zu Mikrocontrollern übergegangen, die auf dem 32 Bit Arm®-Cortex®-M0 basieren (Abbildung 1).

Da sie als Mikroprozessor-Entwicklungsboards für Einsteiger zum Steuern relativ einfacher Embedded-Systeme entwickelt wurden, haben die Arduino-Entwicklungskarten sehr einfache I/O-Fähigkeiten. Neben ein paar 0,1-Zoll-Steckleisten mit einfachen digitalen I/O- und analogen Eingangspins verfügen Arduino-Uno-Entwicklungskarten über einen USB-Port und ein paar LEDs zum Blinken. Mehr nicht. Die I/O-Pins sind softwaregesteuert, sodass Sie nicht viel Leistung aus ihnen herausholen können.

Einen Schritt weiter mit Raspberry Pi

Benötigen Sie für Ihr Embedded-Design mehr Leistung, bringt das Entwicklungsboard Raspberry Pi 3 B+ eine deutliche Steigerung gegenüber der von Arduino (Abbildung 2). Wichtige Merkmale sind:

  • Broadcom BCM2837B0, Cortex®-A53 (Arm®v8) 64-Bit-SoC mit 1,4 GHz
  • 1 GB LPDDR2 SDRAM
  • 2,4 GHz und 5 GHz IEEE 802.11.b/g/n/ac Wireless LAN, Bluetooth 4.2, BLE
  • Gigabit-Ethernet über USB 2.0 (maximaler Durchsatz 300 Mbit/s)
  • Erweiterte 40-Pin-GPIO-Steckleiste
  • HDMI in Standardgröße
  • Vier USB2.0-Ports
  • Erweiterte 40-Pin-GPIO-Steckleiste
  • CSI-Kameraport zum Anschluss einer Raspberry-Pi-Kamera
  • DSI-Displayport zum Anschluss eines Touchscreen-Displays von Raspberry Pi
  • 4-poliger Stereoausgang und Composite-Video-Port
  • Micro-SD-Port zum Laden eines Betriebssystems und Speichern von Daten
  • Stromversorgungseingang für 5 V/2,5 A DC
  • Unterstützung für Power over Ethernet (PoE) (erfordert separate PoE-HAT)

Abbildung 2: Das Raspberry Pi 3 Modell B+ dient als ausgezeichnete Embedded-Hardware-Entwicklungsplattform mit Quadcore, 64-Bit-ARM-Anwendungsprozessor, 1 GB SDRAM und umfangreicher I/O-Ausstattung. (Bildquelle: Raspberry Pi)

Mit so viel Rechenleistung, Speicher und I/O-Möglichkeiten können Sie viel erreichen. Das Entwicklungsboard Raspberry Pi 3 B+ führt Linux aus, und das Produkt hat eine große Support-Community. In Anbetracht des geringen Preises ist das Raspberry Pi 3 Modell B+ eine gute Hardware-Plattform für viele Embedded-Entwicklungsprojekte.

Was, wenn Sie mehr brauchen?

Wenn die Raspberry Pi 3 Modell B+ alle Design-Anforderungen Ihres Embedded-Systems erfüllt, müssen Sie nicht weiter suchen. Warum sollten Sie auch, wenn dieses extrem leistungsfähige Entwicklungsboard so preisgünstig ist? Wenn Ihr Embedded-System jedoch eine spezielle, über die beträchtlichen I/O-Ressourcen des Raspberry Pi 3 Modell B+ hinausgehende I/O-Ausstattung benötigt?

Dies ist einer der Fälle, in denen Sie die hohen Leistungen von FPGAs benötigen, die Ihnen die Definition neuer Typen von Hochgeschwindigkeitsschnittstellen ermöglichen – nur mit Software. Sie benötigen keine zusätzliche Verdrahtung. Und Sie können bereits in den Formfaktor des Raspberry Pi Modell 2 integrierte FPGA-Fähigkeiten erhalten – mit dem TE0726-03M-Entwicklungsboard ZynqBerry von Trenz Electronic (Abbildung 3).

Abbildung 3: Das Entwicklungsboard Trenz TE0726-03M ZynqBerry packt ein Xilinx Zynq Z-7010-SoC in einen Raspberry-Pi-Modell-2-Formfaktor – für Embedded-Designs, die zusätzliche I/O-Leistung benötigen. (Bildquelle: Trenz Electronic)

Der ZynqBerry basiert auf einem Xilinx Zynq Z-7010-SoC, das einen 32-Bit-Mikroprozessor Dual-Core-Arm®-Cortex®-A9 mit einem FPGA fusioniert, was zu einem Gerät führt, das viel mehr Hochleistungsaufgaben ausführen kann als ein Prozessor alleine (oder auch als vier Prozessoren mit 1,4 GHz). Programmiert wird der Trenz ZynqBerry mit der herunterladbaren Xilinx-Vivado-Tool-Suite, die eine IDE für die Software (Prozessor-Seite) und die Hardware (FPGA-Seite) des Zynq-SoC gleichermaßen bietet.

Sie ziehen den Arduino-Formfaktor vor?

Wenn Sie aber lieber mit dem Formfaktor von Arduino Uno arbeiten? Auch dafür hat Trenz Electronic vorgesorgt, mit dem TE0723-03M ArduZynq (Abbildung 4).

Abbildung 4: Bei dem TE0723-03M ArduZynq von Trenz Electronic finden Sie den Xilinx-Zynq-SoC im Formfaktor der Arduino-Entwicklungskarte. Für Arduino-Projekte, die mehr Prozessor- und I/O-Leistung benötigen. (Bildquelle: Trenz Electronic)

Wie die Trenz ZynqBerry programmieren Sie auch die Trenz ArduZynq mit der herunterladbaren Xilinx Vivado-Tool-Suite.

Boards wie das Arduino Uno und das Raspberry Pi vereinfachen viele Embedded-Entwicklungsentscheidungen, aber sie können nicht alle Herausforderungen von Embedded-Designs meistern. Gehen Ihre Anforderungen über die Möglichkeiten dieser Boards hinaus, müssen Sie deshalb nicht auf einen anderen Formfaktor umsteigen. Sie müssen nur eine Prise FPGA dazugeben.

Über den Autor

Image of Steve Leibson Steve Leibson war Systemingenieur für HP und Cadnetix, der Chefredakteur für EDN und Microprocessor Report, ein Tech-Blogger für Xilinx und Cadence (u.a.) und er diente als Technologieexperte für zwei Folgen von „The Next Wave with Leonard Nimoy“. Er hilft Entwicklern seit 33 Jahren, bessere, schnellere und zuverlässigere Systeme zu entwickeln.
More posts by Steve Leibson