DesignSpark Electrical Logolinkedin
Menu Suche
Ask a Question

Der SBC: Was ist das und brauche ich einen?

Heutzutage scheint bei jedem Elektronikprojekt ein digitaler Computer im Mittelpunkt zu stehen. Der „Single Board Computer“ (SBC) wird häufig als Lösung empfohlen. Aber was ist ein SBC und ist er wirklich die beste Lösung für Ihre digitalen Probleme?

Single Board Computer Raspberry Pi 3 B+ mit Quad-Core-Prozessor

Eine kurze Geschichte des SBC

Der erste SBC war der 1961 gebaute Ferranti Atlas. SBC bedeutete in diesem Fall „Single Building Computer“ („Ein-Gebäude-Computer“), da die rechenstärkste Version zwei Etagen des speziell zu diesem Zweck gebauten Atlas Computing Laboratory in Chilton (Großbritannien) einnahm. Zwischen Mitte der 1970er und Anfang der 1990er Jahre waren der DEC PDP-11 und seine Varianten die beliebtesten SRC („Single Room Computer“, d. h. „Ein-Raum-Computer“). Der berühmteste SBC („Single Box Computer“, also „Computer in einem Kasten“) war der erstmals 1981 auf den Markt gebrachte IBM Personal Computer – der Beginn einer langen Reihe von Office-PCs bzw. „Desktop-Rechnern“. Selbst der PC enthielt noch mehrere Platinen mit Chips, bis Amstrad 1986 eine echte SBC-Version einführte – den PC1512. Das Amstrad-Gerät war Teil einer stillen Revolution im Bereich des „Home Computing“, die sich auf Clive Sinclair zurückführen lässt, dessen SBC ZX80 1980 weniger als 100 GBP kostete.

Was ist also ein Single Board Computer?

Heutzutage könnte man sich zu der Aussage verleiten lassen, dass ein SBC eine Platine mit einem Mikroprozessor- oder Mikrocontroller-Chip darauf ist. In Wirklichkeit gehört aber mehr dazu – sehen Sie sich nur einmal die obige Abbildung des Raspberry Pi 3B+ (137-3331) an, dann verstehen Sie, was ich meine. Das quadratische Modul in der Mitte ist der mit einem Metallgehäuse abgedeckte Quad-Core-Prozessor ARM Cortex-A53. Der früher oben auf den Prozessor aufgesteckte RAM-Chip befindet sich nun auf der Rückseite der Platine – wahrscheinlich aus thermischen Gründen, dazu aber später mehr. Besonders zu beachten sind die vielen Anschlussbuchsen rund um die Platine: USB A, Micro USB, HDMI, 3,5-mm-Klinke usw. Um alle Funktionen eines Desktop-Computers zu nutzen, müssen Sie nur eine SD-Karte mit Betriebssystem, eine Tastatur, eine Maus, ein Netzteil und ein Display an den entsprechenden Stellen anschließen und einschalten, denn alle nötigen Peripherieschnittstellen sind integriert und das Betriebssystem enthält die dazugehörigen Softwaretreiber. Der Pi kann Linux und sogar Windows 10 ausführen, da er über einen hochentwickelten Mikroprozessorchip mit wichtigen Funktionen wie z. B. einer Speicherverwaltungseinheit (Memory Management Unit, MMU) verfügt.

Kein Single Board Computer

Wenn ein Raspberry Pi ein SBC ist, was ist dann ein Arduino Uno (715-4081) ? Sie können schon in der Abbildung erkennen, dass der Uno über wesentlich weniger Anschlüsse verfügt: Eine Hohlsteckerbuchse für die Stromversorgung und nur einen einzigen USB-B-Anschluss. Außerdem gibt es eine Reihe mehrpoliger Stiftleisten, an die sich „Shields“ genannte Erweiterungskarten anschließen lassen.

Mikrocontroller-Platine Arduino Uno Rev 3

Der 8-Bit-Mikrocontroller ATmega328 von Microchip dient als Prozessor. Die Rechenleistung lässt sich nicht mit der des Pi-Chips vergleichen und er kann nur Programme ausführen, die zuvor von einem Host-PC auf seinen Flash-Speicher heruntergeladen wurden. Im Gegensatz zum Mikroprozessor des Pi befinden sich Programmspeicher (mit begrenzter Kapazität) und Daten-RAM auf dem Chip selbst. Er enthält jedoch nützliche Hardware wie z. B. einen Analog-Digital-Wandler (ADC) mit 8 Kanälen und Generatoren zur Pulsweitenmodulation (PWM). Der USB-Anschluss dient zur Verbindung der Platine mit einem PC-Host, von dem sich über den integrierten „Bootloader“ des Chips Programme herunterladen lassen. Der Arduino ist in all seinen Varianten vor allem eine Entwicklungsplatine für Steuerungsanwendungen auf niedriger Ebene, bei denen keine komplexen Algorithmen in Echtzeit ausgeführt werden müssen. Durch die vielen verschiedenen Shields von Arduino und Drittanbietern können Sie Prototypen fast jeder Art bauen – von ferngesteuerten Robotern bis hin zu einem Sensorsystem für die Heimautomatisierung.

Was ist, wenn ich schnelle Datenverarbeitung und einfache Steueralgorithmen brauche?

Bisher haben wir festgestellt, dass SBCs im Allgemeinen über leistungsstarke Mikroprozessor-Chips mit Taktraten bis in den GHz-Bereich verfügen. Andererseits verfügen Platinen für die eingebettete Entwicklung normalerweise über wesentlich langsamere Mikrocontroller mit einem Takt von manchmal weniger als 100 MHz, dafür aber mit vielen nützlichen Peripheriegeräten auf dem Chip. Und wenn Sie bei Ihrem Projekt gleichzeitig Berechnungen mit hoher Geschwindigkeit anstellen und Steuerungsfunktionen (z. B. für einen Gleichstrommotor) mit niedriger Taktrate ausführen müssen?

Eine offensichtliche Lösung besteht darin, sowohl einen SBC (beispielsweise einen Raspberry Pi) als auch eine Mikrocontroller-Platine wie z. B. einen Arduino zu verwenden. Sie haben dann natürlich zwei Prozessorplatinen mit separaten Programmierumgebungen, doch diese sind über eine gemeinsame Kommunikationsschnittstelle wie z. B. einen I2C-Bus miteinander verbunden. Wenn es bei dem Projekt beispielsweise um einen intelligenten Roboter geht, würde der Arduino die Sensordaten verarbeiten und den Befehlen des Pi entsprechend die Motoren steuern. Der Pi sorgt für die „Intelligenz“, indem er z. B. einen KI-Algorithmus ausführt, der die eingehenden Sensordaten in Bewegungsbefehle für den Arduino umsetzt.

Ein SBC mit hoher Rechenleistung und Steuerungsfunktionen

Es war klar, dass über kurz oder lang jemand beide Funktionen auf eine einzelne Platine packen würde. Ein beliebtes Beispiel dafür ist der LattePanda (124-4684) von DFRobot.

Single Board Computer/Controller LattePanda

Das große graue Modul im Bild verbirgt zwei voneinander unabhängige Prozessorchips: Einen Intel Atom mit Windows 10, der alle Funktionen eines PC bietet, und einen Mikrochip ATmega32u4, der wie ein Arduino Leonardo funktioniert. Sie können auf dem Atom die Arduino IDE ausführen, einen „Sketch“ eingeben und den Code über eine serielle Schnittstelle mit dem „Leonardo“-Chip herunterladen, wie Sie es auch mit einem separaten Arduino Board und einem Desktop-PC als Host tun würden. Die meisten E/A-Anschlüsse auf der Platine des LattePanda werden vom Arduino-Chip angesteuert.

Intel® Aero Compute Board: Ein SBC zur UAV-Entwicklung

Der Aero Compute (136-8797) ist ein Original-SBC, der auf einem Atom-Mikroprozessor mit vier Kernen beruht und eigenständig mit einer als Yocto bekannten Linux-Version für Embedded- und IoT-Anwendungen läuft. In diesem Fall geht es um die Steuerung von UAV („Unmanned Aerial Vehicles“, d. h. „unbemannte Luftfahrzeuge“), also „Drohnen“. Das Gerät ähnelt dem Raspberry Pi 3B+ in Bezug auf Prozessorleistung und -größe, ist aber wesentlich teurer. Möglicherweise ist dies auf die spezielle UAV-Firmware und die vier Kameraschnittstellen zurückzuführen. Außerdem ist der Aero Compute vermutlich so konzipiert, dass er die schwierigen Einsatzbedingungen aushält, denen er ausgesetzt ist.

Einplatinen-Steuerung BeagleBone Blue zur Robotersteuerung

Die Open-Source-SBCs der BeagleBone-Reihe gibt es schon länger. Eine der neuesten Iterationen ist der BeagleBone Blue (136-0693) , der über denselben Core-Mikroprozessor Sitara AM335x Cortex-A8 von Texas Instruments verfügt wie seine Vorgänger. Seine Ausstattung ist auf die Steuerung von Robotern ausgelegt, daher wurden der Display-Ausgang sowie die Eingänge für Tastatur und Maus durch Anschlüsse für Sensoren und Motoren ersetzt. Das Gerät wird wie der Arduino über einen Host-PC programmiert, aber der leistungsstarke Prozessor kann dennoch ein Betriebssystem wie Linux ausführen. Höchstwahrscheinlich werden Sie jedoch ein Echtzeitbetriebssystem verwenden – hierfür ist eine Open-Source-Version mit dem Namen FreeRTOS erhältlich. Trotz des Namens ROS (Robot Operating System), der für „Roboterbetriebssystem“ steht, ist dies kein eigenständiges Produkt, sondern wird unter einer Linux-Version wie Debian oder Ubuntu ausgeführt. Speziell für den Bereich Robotik, der sowohl UAVs als auch mobile Roboter umfasst, gibt es ArduPilot, einen Open-Source-Autopilot, der auch auf dem Blue läuft.

Leistung und Hitze

Ein paar Jahre v. P. (vor Pi) waren SBCs sehr teuer und es handelte sich dabei im Wesentlichen um PC-Mainboards mit Intel-Prozessoren wie 80386 und Celeron. Später waren sie mit dem Atom und sogar mit Prozessoren der Core-Produktfamilie bestückt. Ein gängiges Merkmal dieser Platinen besteht darin, dass ein umfangreiches Kühlsystem an die Prozessorchips angeschlossen ist: Ein Lüfter und/oder ein großer Kühlkörper mit Rippen. Diese schnellen Geräte der x86-Familie wurden inzwischen in winzige, sehr kostengünstige SBCs, wie z. B. den bereits erwähnten LattePanda, gezwängt. Leider wurden in vielen Fällen die thermischen Aspekte vernachlässigt, um den Preis niedrig zu halten. Wenn Ihr Projekt alle Kerne mit annähernd voller Geschwindigkeit laufen lässt, drosseln die eingebauten Temperatursensoren den Takt, um Schäden zu vermeiden. Der LattePanda kann mit einem zusätzlichen Lüfter ausgestattet werden und hat auf der Platine einen entsprechenden elektrischen Anschluss.

Der Raspberry Pi läutete eine neue Ära mit sehr günstigen und leistungsstarken Prozessoren und elektronischen Hardware-Entwicklungskits aller Art ein. Er erschütterte die Dominanz der x86-Prozessoren auf dem Massenmarkt durch Verwendung eines Chips auf Grundlage der bereits veralteten Kernarchitektur ARM 11 (ein Grund für die niedrigen Kosten des Pi). Aufgrund der relativ langsamen Taktung und der weniger dichten Chiparchitektur litt der Pi 1 nicht unter thermischen Beeinträchtigungen. Der Pi 2 ging mit seinem Quad-Core-Prozessor ARM Cortex-A7 an die Grenze und der Pi 3 lief in jedem Fall heiß, wenn sein Quad-Core-Prozessor ARM Cortex-A53 auf Touren kam. Beim Pi 3B+ scheinen die Probleme mit der Kühlung behoben zu sein und die Platine hat jetzt laut Datenblatt einen Umgebungstemperaturbereich von 0 bis +50 °C. All diese thermischen Aspekte sind besonders dann zu beachten, wenn Sie ein technisches Gimmick mit SBC herstellen und verkaufen möchten.

Unzuverlässiger Speicher

Ein SBC mit einem herkömmlichen Betriebssystem lädt Programmcode aus einem „Sicherungsspeicher“ und führt ihn in SDRAM aus. Auf einem Desktop-PC ist der Sicherungsspeicher eine Festplatte, aber auf einem SBC ein Flash-Speicher. Der Pi verwendet eine SD-Speicherkarte zum Einstecken, während bei anderen Platinen stattdessen ein eMMC-Flash-Chip aufgelötet ist. Flash-Speicher haben jedoch eine Schwäche: Nach einer gewissen Anzahl von Lösch- und Programmiervorgängen fallen sie aus. Desktop-Betriebssysteme verschieben ständig große Datenmengen zwischen RAM und Sicherungsspeicher und können einen Flash-Speicher innerhalb weniger Monate verschleißen. Bei einer Embedded-Anwendung, für die keine Desktop-Funktionen benötigt werden, lässt sich dieses Problem mit einem RTOS umgehen.

Bei Platinen wie dem Arduino, die keine SBCs sind, kommt es kaum zu Flash-Schreibfehlern, da an diesem nichtflüchtigen Speicher nur bei der Firmware-Entwicklung und bei späteren Aktualisierungen und Fehlerbehebungen Änderungen vorgenommen werden.

Was daraus folgt ...

Nicht jede Platine mit einem Mikroprozessor ist ein Single Board Computer und nicht jedes Projekt erfordert die Rechenleistung eines Quad-Core-Geräts mit einem Speicher von mehreren Gigabyte. Noch vor wenigen Jahren hätte man für eine Embedded-Anwendung, ohne zu zögern, einen einfachen 8-Bit-Mikrocontroller wie den Mikrochip PIC16 genommen, seine Software in C oder Assembler entwickelt und den Maschinencode in seinen winzigen Programmspeicher geflasht. Der Raspberry Pi hat all das geändert – er verfügt über eine grafische Benutzeroberfläche mit 32-Bit-Prozessorleistung (jetzt 64-Bit) auf einer Platine mit ungefähr derselben Größe und zum selben Preis wie ein Arduino Uno. Doch Überlastungen und Komplikationen bei der Datenverarbeitung bringen manchmal ihre eigenen Probleme mit sich ...

Engineer, PhD, lecturer, freelance technical writer, blogger & tweeter interested in robots, AI, planetary explorers and all things electronic. STEM ambassador. Designed, built and programmed my first microcomputer in 1976. Still learning, still building, still coding today.

31 May 2019, 12:03

Kommentare