Kompakte, leistungsstarke, energieeffiziente und kosteneffiziente Platinen auf ARM-Basis bieten interessante Hardware-Optionen

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Welches ist Ihre Kernkompetenz? Diese selten gestellte Frage erscheint auf den ersten Blick elementar, aber die Antwort kann den Unterschied zwischen einem kommerziellen Fehlschlag und einem Erfolg ausmachen. Da Chips mehr und mehr integriert sind, massenproduziert werden und die betreffenden Architekturen mehr und mehr standardisiert werden, ist es oft nicht mehr sinnvoll (wenn es denn jemals sinnvoll war) Entwicklungsbudget, Stunden und Arbeitskräfte zur Entwicklung eigener Platinen und der zugrunde liegenden Hardware zu opfern, anstatt die Ressourcen für die einfacher abgrenzbare Software einzusetzen, die auf dieser Hardware läuft.

Wenn Sie sich für eine ARM®-basierte Standard-Systemimplementierung entschieden haben, bieten die verschiedenen Platinenvarianten der Raspberry PI Foundation eine attraktive Alternative zur Entwicklung eigener Hardware, insbesondere bei einem bescheidenen Produktionsvolumen. Die begeisterte Aufnahme auf der ganzen Welt hat zusammen mit den vielen Bezugsmöglichkeiten zu einer soliden Verfügbarkeit und günstigen Preisen geführt. Es sind Platinenvarianten auf der Basis mehrerer CPU-Kerngenerationen verfügbar. Es sind verschiedene Abmessungen und Gewichte, Stromverbrauchsspezifikationen, Taktfrequenzen, Anschlussmöglichkeiten, Arbeitsspeichergrößen und unterschiedliche Peripherievarianten erhältlich. Die standardisierten Zusatzplatinen, die hier als HAT (Hardware Attached on Top) bezeichnet werden, Anschlüsse und Software-Protokolle unterstützen eine zusätzliche Erweiterung der Peripherie sowie das Debuggen und eine weitere Entwicklung. Darüber hinaus erleichtert die Open-Source-Spezifikation der Platine den Übergang zu eigener Hardware-Produktion, falls die geschäftliche Entwicklung dies nahelegt.

In der Tabelle werden die vier Varianten der Raspberry-Pi-Platine zusammengefasst, die in diesem Artikel ausführlich behandelt werden. Da Prozessorleistung und andere Merkmale die wichtigsten (aber vielleicht nicht die einzigen) Auswahlkriterien sind, schließt der Artikel mit Codebeispielen für Benchmarks und weiteren Evaluierungstipps.

Raspberry Pi Modell A+ Raspberry Pi Modell B+* Raspberry Pi 2 Modell B Raspberry Pi 3 Modell B
SoC Broadcom BCM2835 Broadcom BCM2836 Broadcom BCM2837
CPU 700 MHz (32 Bit) Single-Core ARM1176JZF-S 900 MHz (32 Bit) Quad-Core ARM Cortex-A7 1,2 GHz (64 Bit) Quad-Core ARM Cortex-A53
Systemspeicher
(gemeinsam mit GPU-Framebuffer verwendet)
256 MByte 512 MByte 1 GByte
USB-2-Anschlüsse 1 (vom BMC2835) 4 (von einem gesonderten Mehrport-Hub-IC)
Integrierte Netzwerkunterstützung Keine 10/100 Mb/s kabelgebundenes Ethernet über integrierten USB-Adapter 10/100 Mb/s Ethernet, 802.11n Wi-Fi, Bluetooth 4.1
Nennleistung 200 mA (1 W) 600 mA (3 W) 800 mA (4 W)
Abmessungen 65,0 mm x 56,5 mm 85,6 mm x 56,5 mm
Gewicht 22,7 g 45,4 g

*Auslaufendes Modell

Tabelle 1: Vergleich der vier Raspberry-Pi-Varianten, der die Vielfalt veranschaulicht

Die gemeinsamen Merkmale der obigen Platinen:

  • Videoeingang über einen MIPI-CSI-Kameraschnittstellenanschluss mit 15 Pins
  • Zwei Videoausgangsvarianten: digitales HDMI (1.3 und 1.4) und analoges Composite-Video (3,5 mm Klinkenstecker)
  • Digitaler I2S-Audioeingang
  • Drei Audioausgangsvarianten: digitales HDMI und I2S und analog (3,5 mm Klinkenstecker)
  • Nichtflüchtiger Speicher über MicroSDHC-Einschub
  • 17 GPIO-Pins und HAT-ID-Bus
  • Konsolenschnittstelle über Mikro-USB-Kabel oder serielles Kabel mit optionalem GPIO-Stromanschluss

Raspberry Pi ("1")

Das in diesem Artikel (Abbildung 1) behandelte Modell A+ ist ein abgespeckter kostenreduzierter Nachfolger des Modells A, das selbst eine kostenreduzierte Variante (mit weniger Funktionen) des ursprünglichen Modells B ist. Die Abmessungen von Modell A+ von 2,56 in x 2,22 in (65 mm x 56.5 mm) entsprechen denen der HAT-Erweiterungskarten (Hardware Attached on Top), die alle vier Alternativen der in diesem Artikel beschriebenen Platine unterstützen. Diese spezielle Platinenvariante hat von allen vier Platinen am wenigsten SDRAM (256 MBytes), nur einen einzigen USB-Anschluss und keine integrierte Netzwerkunterstützung (beide können allerdings über USB- oder HAT-basierte Peripherie aufgerüstet werden).

Bei der anderen hier behandelten Raspberry-Pi-Variante "1" handelt es sich um das Modell B+ (dieses Modell ist jetzt ausgelaufen, wird aber zum Vergleich mit anderen verfügbaren Modellen behandelt). Die Abmessungen der Systemplatine sind mit 3,37 in x 2,224 in (85,6 mm x 56,5 mm) größer als die von Modell Model A+ (und identisch mit denen der später behandelten Produkte Raspberry Pi 2 und Raspberry Pi 3). Die größere Fläche wird durch den doppelt so großen Systemspeicher von 512 MByte, der vierfachen Anzahl von USB-Anschlüssen und der integrierten 10/100 Mb/s-Ethernet-Unterstützung gut genutzt.

Denken Sie übrigens daran, dass eine 700 MHz Single-Core-ARM11-CPU im Zeitalter der Smartphones mit Zehnfachkern-CPUs zwar kurios erscheinen mag, diese CPU aber genug Power hatte, das Original-iPhone® von Apple und den Nachfolger iPhone 3G anzutreiben. Wenn Ihre Leistungsanforderungen bescheiden sind, ist der Broadcom BCM2835 möglicherweise ausreichend. Wegen seines niedrigen Energieverbrauchs ist das Modell A+ daher besonders attraktiv.

Das ursprüngliche Design des Raspberry Pi basiert auf dem SoC BCM2835 von Broadcom, in das eine 700 MHz Single-Core-ARM11-CPU integriert ist.

Das ursprüngliche Design des Raspberry Pi basiert auf dem SoC BCM2835 von Broadcom, in das eine 700 MHz Single-Core-ARM11-CPU integriert ist.

Abbildung 1: Das ursprüngliche Design des Raspberry Pi basiert auf dem SoC BCM2835 von Broadcom, in das eine 700 MHz Single-Core-ARM11-CPU integriert ist. Er wird in zwei Platinengrößen (und unterschiedlichen Funktionspaketen) angeboten: das kleinere Modell A+ (oben) und das größere Modell B+ (unten). (Bilder mit freundlicher Genehmigung von Seeed Technology)

Raspberry Pi 2

Der Raspberry Pi 2 Modell B, der ein Jahr nach dem Erscheinen des Raspberry Pi Modell A+ und Modell B+ herauskam, hat die Abmessungen seines größeren Vorgängers und ist in zwei wichtigen Punkten im Hinblick auf eine Evolution des Funktionspakets bemerkenswert. Erstens wurde die Größe des Systemspeichers gegenüber dem Model B+ auf 1 GByte verdoppelt (der SDRAM-Speicher von Modell A+ SDRAM wurde damit vervierfacht). Der zweite noch wichtigere Punkt ist der Übergang vom Broadcom BCM2835 zum BCM2836, der sowohl eine um 200 MHz höhere CPU-Taktfrequenz sowie eine Evolution vom Single-Core-ARM11 zum Quad-Core-ARM-Cortex®-A7 bringt.

Die GPU bleibt dieselbe, d.h. der Raspberry Pi 2 bringt nicht notwendigerweise höhere Grafik- und Video-Framerates (es sei denn, die fehlende „Power“ der CPU war vorher der Flaschenhals). Da wir gerade von „Power“ sprechen: Das CPU-Upgrade kann dieses Mal aus Gründen, die ich unten im Einzelnen besprechen werde, zu signifikanten Verbesserungen des Laufzeitverhaltens von Anwendungen führen. Es sei noch einmal darauf hingewiesen, dass eine 32-Bit-Quad-Core-CPU nicht automatisch unterschätzt werden sollte, auch wenn heutzutage sogar Einsteiger-Smartphones mit den 64-Bit-Nachfolgern bestückt sind. Denken Sie daran, dass im iPhone 4S eine 800 MHz Dual-Core-Implementierung des ARM-Cortex-A7 zum Einsatz kam.

Der Raspberry Pi 2 Modell B hat einen Broadcom BCM2836-Prozessor mit einer 900 MHz Quad-Core-ARM-Cortex-A7-CPU.

Abbildung 2: Der Raspberry Pi 2 Modell B hat dieselben Abmessungen wie sein Vorgänger Raspberry Pi Modell B+, aber der Anwendungsprozessor ist hier ein Broadcom BCM2836 mit einer 900 MHz Quad-Core-ARM-Cortex-A7-CPU. (Bilder mit freundlicher Genehmigung von Seeed Technology)

Raspberry Pi 3

Der ein Jahr später eingeführte Raspberry Pi 3 Modell B tritt in die Fußstapfen seines Vorgängers Raspberry Pi 2 und führt mit dem Wechsel vom BCM2836 zum BCM2837 einen Übergang vom 900 MHz Quad-Core-ARM-Cortex-A7, einer 32-Bit-CPU, zum 64-Bit-fähigen 1,2 GHz Quad-Core-ARM-Cortex-A53 durch. Die Funktionalität des GPU-Kerns innerhalb des BCM2837, der Broadcom VideoCore IV, bleibt unverändert, aber die Taktfrequenzen wurden für die 3D-Grafikverarbeitung auf 300 MHz und für die Videoverarbeitung auf 400 MHz gesteigert. Durch diesen Leistungsschub ist eine Codierung und Decodierung von komplexem H.264-Inhalt (MPEG-4 AVC) mit vollen 1080p bei 60 Hz möglich. Die wachsende Bedeutung der GPU und somit der höheren Taktfrequenz dieser SoC- und Platinengeneration wird unten ausführlicher behandelt.

Der Raspberry Pi 3 erweitert die Formfaktor-Kompatibilität seiner Vorgänger noch einmal, aber mit einem erneuten SoC-Upgrade.

Abbildung 3: Der Raspberry Pi 3 erweitert die Formfaktor-Kompatibilität seiner Vorgänger noch einmal, aber mit einem weiteren SoC-Upgrade auf den Broadcom BCM2837 mit seiner 64-Bit-fähigen 1,2 GHz Quad-Core-ARM-Cortex-A53-CPU. (Bilder mit freundlicher Genehmigung von Seeed Technology)

Beim Raspberry Pi 3 Modell B gibt es auch eine bemerkenswerte Erweiterung der integrierten Anschlussoptionen. Das kabelgebundene 10/100 Mb/s Ethernet ist wieder vorhanden und wird dieses Mal durch 2,4 GHz 802.11n-Wi-Fi und Bluetooth 4.x ergänzt (dafür wurden bei Platinen früherer Generationen zusätzliche Peripheriebausteine benötigt).

Welcher Prozessor ist nun der beste?

CPU-Taktfrequenzen, die Anzahl der Kerne und die Funktionspakete sind, wie in den obigen Abschnitten dieses Artikels hervorgehoben wurde, die wesentlichen Unterscheidungsmerkmale zwischen dem ursprünglichen Raspberry Pi und den Generationen 2 und 3. Beim ARM11 im Raspberry Pi Modell A+ und Model B+ handelt es sich um einen Prozessor mit relativ unkompliziertem 8-stufigen In-order-Pipeline-Design mit eingeschränkter Unterstützung von Out-of-order-Befehlen, der den ARMv6-Befehlssatz ausführt. Obwohl er für maximal 700 MHz spezifiziert ist, wurde er laut Berichten von Anwendern erfolgreich auf 800 MHz hochgetaktet. Die vorliegende Core-Implementierung verfügt außerdem über die optionale Gleitkommaeinheit (FPU) dieser Architektur.

Der Nachfolger des ARM11, der im Raspberry Pi 2 Modell B verbaute ARM-Cortex-A9, ist ebenfalls im Grunde eine CPU mit 32-Bit-Architektur. Wie der BMC8285 verhält sich auch der BMC3286 beim Übertakten meist stabil, in diesem Fall von 900 MHz auf 1,1 GHz. Die Architektur des ARM-Cortex-A9 wurde gegenüber dem ARM11 erheblich weiterentwickelt und bietet eine 8-stufige spekulative superskalare Out-of-order-Pipeline. Auf dem ARM-Cortex-A9 wird der Nachfolger-Befehlssatz ARMv7-A ausgeführt. Die Core-Implementierung im BMC3286 enthält ebenfalls die optionale (gegenüber der Version im ARM11 verbesserten ) FPU und „NEON“-SIMD-Coprozessoren. Natürlich sind im BMC3286 vier Prozessorkerne gegenüber nur einem im Vorgänger BMC3285 eingebettet.

Und schließlich befindet sich im Raspberry Pi 3 Modell B der Quad-Core-ARM-Cortex-A53. Dies ist ebenfalls ein Prozessor mit 8-stufiger Pipeline und einer superskalaren 2-Wege-Befehls-Pipeline, aber dieses Mal handelt es sich um eine vollständige 64-Bit-Implementierung, die den ARMv8-A-Befehlssatz der neuesten Generation unterstützt. NEON-SIMD- und Gleitkomma-Coprozessoren (beide noch einmal gegenüber den Implementierungen im ARM-Cortex-A9 verbessert) stehen ebenfalls zur Verfügung. Außerdem läuft der BMC3287 garantiert mit 1,2 GHz und kann nach den Berichten von Anwendern stabil auf 1,4 GHz übertaktet werden, wogegen der BMC3286 maximal mit 1,1 GHz läuft, und dies nur in einer Übertaktungskonfiguration außerhalb der Spezifikationen.

Welcher Prozessor ist der Richtige für Sie? Die Antwort hängt von der Anwendung, d. h. vom Leser ab. Einerseits möchten Sie keine CPU wählen, die für Ihre Zwecke zu langsam ist – insbesondere dann, wenn Sie etwas „Luft“ für die unvermeidliche künftige Software-Evolution lassen möchten. Anderseits hat es keinen Sinn, für mehr Prozessorleistung zu zahlen, als Sie benötigen. Denken Sie daran, dass Ihre Auswahl nicht nur Auswirkungen auf den Preis, sondern auch auf den Stromverbrauch hat. Die CPU ist nicht der einzige Grund, warum Sie eine Raspberry-Pi-Platine der anderen vorziehen sollten: Sie müssen Speicheranforderungen, Netzwerkkomponenten und andere Attribute berücksichtigen.

Außerdem bedeuten höhere Taktfrequenzen wenig, wenn Ihre Software die meiste Zeit in einer Schleife auf Eingaben wartet. Beachten Sie außerdem, dass die neuesten technologischen Entwicklungen wie „superskalar“ und „out-of-order“ sich nur dann in Form einer höheren Anzahl von Befehlen pro Taktzyklus auswirkt, wenn die Befehle in Ihrer Software nur schwach voneinander abhängen. Ebenso führt eine fehlende Thread-Unabhängigkeit beim Einsatz einer Mehrkern-CPU gegenüber einer einfacheren Einzelkernalternative bestenfalls zu einer mäßigen Erhöhung des Durchsatzes und die theoretischen Vorteile des 64-Bit-Befehlssatzes wirken sich möglicherweise in Ihrer speziellen Anwendung nicht aus (ganz zu schweigen von den höheren Arbeitsspeicheranforderungen). Denken Sie dagegen daran, dass die AArch32-Verbesserungen im ARMv8-Befehlssatz wahrscheinlich auch dann einen Leistungsschub bringen, wenn der ARM-Cortex-A53 nur 32-Bit-Code ausführt.

Verbesserung der Grafikleistung

Eine andere verfügbare Verarbeitungsmöglichkeit auf dem Chip macht die Wahl Ihres SoC noch komplizierter (oder je nach Perspektive einfacher). Konzeptionell können Sie einen Grafikprozessor (oder in diesem Fall einen Grafikkern) als eine ständig parallel arbeitende „Maschine“ betrachten, die sich hervorragend für die Verarbeitung von Pixeln und ebenso für verschiedene Arten der digitalen Signalverarbeitung und für andere Aufgaben eignet. Diese als GPGPU (general-purpose graphic processing unit) bezeichnete Technik wird zunehmend populärer, benötigt aber Software-Unterstützung zur Erschließung des Hardware-Potentials.

Leider unterstützt die in allen drei Generationen der in diesem Artikel behandelten Broadcom-SoCs eingebaute VideoCore®-IV-GPU (zumindest zum jetzigen Zeitpunkt) kein OpenCL, eine von der Khronos-Gruppe betreute Schnittstelle nach einem offenen Standard, die Programmiersprachen und APIs für eine heterogene Parallelprogrammierung festlegt (die vorhandene OpenCL-Unterstützung für den Raspberry Pi 2 und 3 beschränkt sich derzeit darauf die verschiedenen Ressourcen der CPU nutzbar zu machen). Als Broadcom allerdings im Oktober 2014 den vollständigen Umfang der VideoCore-IV-Spezifikationen (PDF) als Open Source herausgab, eröffnete sich eine Alternative für den Zugriff auf die GPU und ihre Nutzung für allgemeine Aufgaben.

Der Raspberry-Pi-Begeisterte Pete Warden (ebenfalls Forschungsingenieur bei Google und ehemaliger Gründer und Cheftechnologe von Jetpac, das später von Google übernommen wurde) hat z. B. herausgefunden, wie mit der GPU die Objekterkennung mithilfe des Deep Belief „Deep Learning“-SDK zusammen mit einem Assembler/Disassembler bei den QPUs (SIMD Quad Processing Units) des VideoCore IV dramatisch beschleunigt werden kann (hier ist seine Lösung: https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/). Die Open-Source-Community hat ebenfalls herausgefunden, wie mit denselben QPUs die FFT-Verarbeitung erheblich beschleunigt werden kann. Es gibt viele weitere Projektbeispiele, oft mit Open-Source-Codebeispielen, die auf Github gehostet werden. Ich empfehle zur Suche folgende Begriffe:

  • "Raspberry Pi GPGPU"
  • "Broadcom VideoCore IV GPGPU"
  • "Raspberry Pi OpenCL"
  • "Broadcom VideoCore IV OpenCL"

Kameras und Zusammenfassung

Die Fähigkeiten zur Mustererkennung von „Deep learning“, die ich kürzlich in einem Artikel beleuchtet habe (und für die Pete Warden in seinem Projekt Beispiele liefert), sind insbesondere bei diversen Anwendungen zur Bildanalyse anwendbar. Aber wie kommen diese Bilder auf die Platine? Eine beliebte Möglichkeit ist das MIPI-CSI-basierte Raspberry-Pi-Kameramodul (Abbildung 4) mit dem 5-Megapixel CMOS-Bildsensor OV05647 von OmniVision Technologies. Denken Sie daran, auch wenn „Deep learning“ nicht Ihr Ding ist, dass die Raspberry-Pi-Platinen eine hervorragende Option für Anwendungen für Maschinelles Sehen sind, insbesondere nachdem Sie von der Community der OpenCV-Open-Source-Bibliothek für Maschinelles Sehen begeistert aufgenommen wurden.

Im Raspberry-Pi-Kameramodul ist die MIPI-SPI-Schnittstelle integriert.

Abbildung 4: Im Raspberry-Pi-Kameramodul ist die MIPI SPI-Schnittstelle integriert, die nativ auf allen in diesem Artikel besprochenen Raspberry-Pi-Systemplatinen vorhanden ist. Seine Auflösung von 5 Megapixeln ist für viele Aufgaben im Bereich Maschinelles Sehen ausreichend.

Insgesamt gesehen ist eine Unmenge an Open-Source-Software vorhanden, die Sie verwenden oder einbinden können. Die lange Liste der Wikipedia-Einträge ist ein hervorragender Ausgangspunkt. Eine Software-Simulation kann zwar Anhaltspunkte dafür liefern, zu welcher Broadcom-SoC-Generation (bzw. Raspberry-Pi-Platinengeneration) sie greifen sollten, aber die Platinen sind so preisgünstig, dass es sich lohnt, eine von jeder zu kaufen und zusätzlich oder stattdessen eine praktische Evaluierung durchzuführen. Mit den Formfaktor-kompatiblen Raspberry Pi Modell B+, Raspberry Pi 2 Modell B und Raspberry Pi 3 Model B gestaltet sich der Austausch von Hardware und der Test von Software besonders mühelos.

Zum Schluss möchte ich Sie daran erinnern, nicht den Spaß zu vergessen! Die Größe, Vielfalt und Energie der Raspberry-Pi-Community kann manchmal zu überwältigender Produktivität führen. Manchmal fördert eine kurze Suche wertvolle Perlen zutage, die Ihnen dabei helfen können, ihr nächstes Design schnell, zielstrebig und kosteneffizient auf den Markt zu bringen.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey