Über 40 Jahre DARC-Mitglied

 

Embedded-Computing


Für mich ist Embedded-Computing (etwa eingebaute Rechenfunktion) so etwas wie eine Rückkehr nach fast 40 Jahren. Beispielsweise baute ich damals ein Mikroprozessorsystem, das die Funktionen eine Zeitschaltuhr bot. Die Uhrzeit und Wochentag holte sich das System vom Zeitzeichensender DCF77. Jeden Tag schaltete mein Eigenbau für 15 min ein Gerät ein. Die Alternative wäre eine mechanische Schaltuhr mit ziemlich vielen Schiebern gewesen, die aber nicht die nötige zeitliche Auflösung bot.

Auch wenn ich diese Schaltuhr aus einer ganzen Reihe einfacher Bauelemente aufbauen und das Steuerprogramm direkt in Maschinensprache (Assembler) schreiben musste: Diese Lösung war bedeutend kleiner und billiger als die TTL-Gräber, die man bis dahin gebaut hatte. TTL kommt von Transistor-Transistor-Logik. Das war die damals übliche Technik hinter den Käfern, die jeweils ein paar einfache Logikfunktionen wie AND-Gatter oder vier Speicher für jeweils einen Logikzustand enthielten. 20-50 TTL-Chips waren selbst für recht einfache Funktionen nötig.

Zum Glück konnte ich auf dem Großrechner im Uni-Rechenzentrum einen Crossassembler nutzen. Zum Berechnen von 1000 Byte Maschinencode brauchte der 1 min Rechnerzeit...

Mehr Rechenleistung als Großrechner vor 40 Jahren

Heute gibt es für ein paar 10 EUR Rechner zu kaufen, die mehr Leistung und mehr Speicherplatz haben als die Großrechner der oben geschildeten Zeit. Der typische Institutsrechner hatte damals vielleicht 128 kB Arbeitsspeicher und ein 14-Zoll-Plattenlaufwerk. Eine Magnetplatte war fest eingebaut, die andere konnte man austauschen. Jede der Platten hatte 5 oder 10 MB Speicherkapazität. Die Taktfrequenz lag bei wenigen MHz. Der Rechner steckte in einem Schrank, der mindestens so groß war wie ein Schreibtischcontainer.

Raspberry B+

Im Vergleich dazu hat der Raspberry B+ hier rechts 524.288 kB Arbeitsspeicher, bis zu 32.000 MB Massenspeicher und 600 MHz Taktfrequenz. Ganz nebenbei erledigt er pro Arbeitstakt auch viel mehr als der erwähnte Institutsrechner. Noch völlig unvorstellbar war damals der Grafikprozessor, der im Raspberry Pi steckt: Ich erinnere mich an ein südteueres Grafikterminal, das nur Strichzeichnungen darstellte und die direkt im Bildschirm speicherte. Das Berechnen einer komplexeren Zeichnung dauerte schon mal ein paar Minuten, während der Raspberry Pi pro Sekunde 60 hoch auflösende Fernsehbilder an den Monitor schickt.

Große Funktionseinheiten, viele Standards

Diese Rechnerplatinen nutzen Bauelemente, die zu schwierig zu verarbeiten und zu komplex zum einfachen Beherrschen sind, als dass man damit selber Schaltungen aufbauen und Programme dafür schreiben könnte. Die Platine auf dem Bild ist so groß wie eine Scheckkarte. Die meisten Bauelemente sind so winzig klein, dass man sie bestenfalls unter der Lupe löten könnte. Der eigentliche Rechnerkern, im Bild links von der Mitte, lässt sich ohne professionelle Maschinen überhaupt nicht auflöten.

Entsprechend müssen die benutzten Elemente größer und komplexer sein, als das Bastler früher gewohnt waren. Auf der anderen Seite passt sehr viel relativ zwanglos zusammen. Man braucht sich nicht mehr um die ganzen kleinen Details zu kümmern, muss aber mit viel komplexeren Bausteinen klarkommen.

Videocontroller für NIBL-BASIC-Rechner

Während ich mal das TTL-Grab rechts bauen musste, um 16 Zeilen mit je 64 Zeichen auf einem Bildschirm darstellen zu können, steckt man heute einfach ein HDMI-Kabel zwischen Kleinrechner und einen handelsüblichen Fernseher der letzten 10 Jahre. Tastatur und Maus sind auch kein Problem: Am PC benutzt man die gleichen Geräte und ebenfalls USB-Schnittstellen. Um die recht komplexe Ansteuerung einer USB-Schnittstelle braucht man sich keinerlei Gedanken mehr zu machen.

Auf der Softwareseite spielt dabei Open Source eine riesige Rolle: Heute gibt es große Mengen an Programmen, die man kostenlos nutzen und bei Bedarf sogar ändern darf. Open Source bedeutet ursprünglich, dass der direkt vom Programmierer erstellte Quellcode verfügbar ist. Dazu mussten aber noch die entsprechenden Nutzungsrechte kommen.

Mit dem Quellcode kommt man gelegentlich selbst dann in Berührung, wenn man selber nicht programmieren will: Damit ein Programm auf dem eigenen Rechner laufen kann, muss man es erst in Maschinencode übersetzen. Auch dafür gibt es Standards, die das häufig recht einfach machen: Quellcode herunterladen, mit einer Standardprozedur in Maschinencode übersetzen, starten.

Es gibt ganze Betriebssysteme als Open Source; durchaus mit der Komplexität von Windows. Meist benutzt man dafür vorbereitete Pakete aus dem eigentlichen Betriebssystemkern und mehr oder weniger Hilfs- und Anwendungsprogrammen. Ganz typisch dafür sind Linux-Distributionen wie beispielsweise Ubuntu.

Zwar braucht man erst mal einige Basisprogramme, die zur Elektronik des Rechners passen. Aber dann ist es relativ einfach, eine Distribution auf einem Rechner mit völlig anderer Architektur und Maschinencode zum Laufen zu bekommen. Heutige Betriebssysteme isolieren die Anwendungsprogramme sowieso von der eigentlichen Elektronik und bieten dafür standardisierte Schnittstellen. Anwendungsprogramme auf eine völlig andere Umgebung zu portieren ist zwar immer noch keine Aufgabe für Anfänger, aber durchaus von engagierten Hobbyisten zu bewältigen.

Standards erleichtern es auch enorm, Peripherie anzuschließen. Will man den Raspberry Pi beispielsweise an ein Netzwerk anschließen, so steckt man im einfachsten Fall ein Netzwerkkabel zwischen Rechnerplatine und den Router. WLAN erfordert lediglich, einen WLAN-Transceiver an die USB-Schnittstelle anzuschließen und die Zugangsdaten mit einem Texteditor einzugeben.

Einfache Schnittstellen zur Selbstbedienung

Der Raspberry Pi wurde ursprünglich als Ausbildungsmittel entworfen. Die britischen Entwickler wurden 2012 vom Erfolg ihres Entwurfs völlig überrascht. Sie wollten Kindern und Jugendlichen Lust auf die Computerei machen, um mehr qualifizierten Nachwuchs für die einschlägigen Studiengänge zu gewinnen.

Dafür war es nötig, etwas einfache, selbst gestrickte Elektronik direkt anschließen zu können. Deshalb hat der Raspberry Pi die Steckerleiste im Hintergrund des Bildes: Mit ein paar Widerständen und Leuchtdioden hat man schnell ein paar Verkehrsampeln simuliert, die direkt an die universellen Anschlüsse (GPIO, General-Purpose Input Output) der Steckerleiste angeschlossen werden können. Gesteuert wird das Ganze dann mit einem kleinen Programm, das man im einfachsten Fall mit der Maus zusammenklicken kann.

Statt einer Leuchtdiode kann man auch den Schalteingang eines Funkgerätes anschließen und so per Programm den Sender ein- und ausschalten. Der Raspberry Pi enthält auch eine Soundkarte, so dass man auch den Mikrofoneingang des Funkgerätes anschließen kann.

Ein eigenes Biotop entsteht

Um bei der Soundkarte zu bleiben: Deren Qualität ist nicht sonderlich gut und sie bietet auch nur Ausgänge – um einem selbst geschriebenen Spiel die nötige Geräuschkulisse zu verpassen reicht das. Will man aber auch das Empfängersignal im Rechner verarbeiten, muss eine bessere und vollständige Soundkarte her. So etwas gibt es zu kaufen: Entweder man steckt ein passendes Teil aus dem PC-Bereich an die USB-Schnittstelle, oder man nutzt eine spezielle Erweiterungskarte. Die steckt man dann auf die Steckerleiste mit den GPIO-Anschlüssen.

Auch spezielle Programme für den Raspberry Pi gibt es mittlerweile in reicher Auswahl. So hat eine Gruppe deutscher Funkamateure den Raspberry Pi zum Steuerrechner eines Amateurfunkknotens gemacht: Eine Relaisstation steuern, einen Server im HAMNET betreiben – alles kein Problem mehr.

Überhaupt ist das HAMNET, eine amateurfunkspezifische Mischung aus WLAN-Technik und Anleihen aus dem Internet, ein ganz typischer Anwendungsfall für den Raspberry Pi: Ein paar aufgebohrte WLAN-Accesspoints und ein Raspberry Pi brauchen nur wenige Watt Leistung, aber können breitbandige Verbindungen über einige 10 km ermöglichen.

So entsteht gerade ein leistungsfähiges Intranet des Amateurfunks, das robust und immer unabhängiger vom Internet ist. Ein oder zwei Solarpanele und eine recht kleine Batterie ermöglichen den Betrieb eines HAMNET-Knotens völlig unabhängig vom Stromnetz. Man stelle sich die Möglichkeiten im Katastrophenfall vor. An vielen Orten gibt es bereits Kontakte zu dem Sicherheitsdiensten wie Feuerwehr oder THW.

Leistungsfähigere Alternativen

Der Raspberry Pi entstand als Lerncomputer auf Basis eines System on a Chip (SoC), wie es heute auch in jedem Handy oder Tablet steckt. Nur das ermöglicht den Preis. Das Konzept musste aber aufgebohrt werden: In dem Speicher, in dem sonst Android oder ähnlich stecken, ist hier nur der Bootloader – also das Programm, mit dem man den Raspi überhaupt erst mal zum Laufen bekommt. Das führt zu einigen ganz typischen Schwachstellen:

  • Als Massenspeicher nutzt der Raspi eine SD-Speicherkarte. Das ist ein recht schnelles und ausgesprochen billiges Speichermedium, das aber leider nicht für diesen Zweck gedacht ist: In einem Handy speichert man darauf MP3-Dateien, Bilder oder Apps. Solche Dateien werden nur sehr selten (alle paar Minuten oder Stunden) geschrieben, meist nur gelesen. Als Massenspeicher eines Linux-Systems wird aber ständig (vielfach jede Sekunde) darauf geschrieben. Es gibt deshalb genug Berichte, dass die SD-Karten in dieser Rechnerklasse recht häufig den Geist aufgeben.
  • Die zentrale Schnittstelle des SoC im Raspi nach außen ist eine einzelne USB-2-Schnittstelle – mehr hat kaum ein Handy oder Tablet. Darüber laufen alle Daten der Netzwerkschnittstelle der USB-Anschlüsse und wohl noch einiges Andere. Große Übertragungsgeschwindigkeit und kontinuierlicher Datenstrom (Audio, SDR...) schließen sich da aus. Jede leidlich moderne Festplatte wird durch diese USB-Schnittstelle gnadenlos ausgebremst.

Kein Wunder, dass diese Schwachstellen und der riesige Erfolg des Raspberry Pi chinesische Nachahmer auf den Plan riefen. Wer sowieso schon Handys und Tablets baut, kann auch einen Banana Pi oder ein Cubie Board entwickeln und fertigen. Die SoCs haben alle sehr ähnliches Innenleben, da sorgt schon der Lizenzgeber ARM dafür. Ein Raspian, eine sonstige Linux-Distribution oder Android an den Rechner anzupassen ist keine wirklich aufwändige Arbeit mehr.

Zu diesem Kapitel meiner Website

Fast alles, was ich bislang an Literatur fand, ist für Einsteiger mit Selbstbauambitionen nur begrenzt geeignet. Entweder sind das thematisch eng begrenzte Texte oder sie wurden aus der Entwicklerperspektive geschrieben. Men Ziel ist, aus der Anwenderperspektive zu schreiben und einen roten Faden zu liefern, der den eigenständigen Einstieg ermöglicht. Einerseits habe ich eine Menge techniches Hintergrundwissen, andererseits habe ich mit Linux im Allgemeinen und dem Raspberry Pi im Besonderen noch recht wenig Erfahrung. Damit stolpere ich über die gleichen Steine, über die wohl jeder Einsteiger ohne vertiefte Linux-Kenntnisse stolpert.

Die erste Fassung dieses Schwerpunkts entsteht im Februar 2015. Wie viele meiner anderen Themenschwerpunkte in meinen Websites überarbeite ich sie immer wieder. Mir ist bewusst, dass diese Texte Verbesserungspotential haben...

TOP
Alexander von Obert * http://www.dl4no.de/thema/embedded.htm
Letzte Änderung: 03.02./13.09.15 (Erstfassung)


Startseite
Suche

Was ist Amateurfunk?
Amateurfunk-Geschichte
Amateurfunk-Technik
Mobilbetrieb
Amateurfunk-Zeitschriftenarchiv München
Rundfunk
Sonstige Informationen
Embedded-Computing
HAMNET