PC104-Rechner

Das erste Steuersystem der Bahn bilden Rechner im PC104-Format. Dieser Standard für PC-kompatible eingebettete Systeme legt den Formfaktor und das Businterface fest, alle Platinen sind 90 mal 96 Millimeter groß und werden in einem Stapel übereinander gesteckt. Der ISA-Bus läuft dabei über Stift- und Buchsenleisten vertikal durch den Stapel und verbindet das in der Regel oben liegende CPU-Board mit eventuellen Zusatzplatinen. Durch diesen Aufbau sind die Rechner sehr kompakt und robust, so daß sie viel in rauhen Umgebungen in der Industrie eingesetzt werden. In der Anlage sind 24 EmCore-i313DVL-4S der Firma Arbor integriert.


PC104-Modul in der Anlage

Die Rechner befinden sich zusammen mit einem 5 Volt-Netzteil und einer Leistungselektronik auf diagonal aufgehängten Holzplatten. Die schräge Montage vergrößert den verfügbaren Platz und sorgt dafür, daß die Platinen für Wartungsarbeiten gut erreichbar sind. Der Hohlraum hinter den Verstrebungen wird als Kabelkanal genutzt, der die verschiedenen Versorgungsleitungen und Bussysteme aufnehmen kann. Die PC104-Rechner selber verfügen über die folgende Ausstattung.

  • CPU-Board
    • 386SX-kompatible CPU ohne Fließkommaeinheit, 40 MHz (ALi M6117), Watchdog
    • 4 MB EDO DRAM
    • Onboard-Grafik basierend auf TP6508IQ/CT65545 mit 1 MB RAM, Auflösungen bis 1024x768 Punkte, Ausgänge für VGA-Monitor und LCD
    • EIDE-Controller zum Anschluß von 2,5 Zoll-Festplatten
    • Floppy-Controller Diskettenlaufwerke
    • Flash/EPROM/DOC2000-Interface (Disc on Chip 2000: 16 MB bis 1GB)
    • Realtek 8029AS Netzwerkchip (Ethernet, Full Duplex, 10 MBit/s)
    • 16 Bit I/O-Interface (je 8 Ein- und Ausgänge)
    • Vier serielle Schnittstellen (basierend auf 16C550, zwei als RS-485 konfigurierbar)
    • Eine parallele Schnittstelle (SPP/EPP/ECP-fähig)
    • Anschlüsse für Tastatur und Maus (PS/2)
  • Festplatte
    • 2,5 Zoll Flash-Disc mit 32 MB Kapazität
  • Erweiterungsplatinen
    • CAN-Controller mit einem Kanal von Peak System

Die Rechner sind untereinander per Ethernet verbunden, zwei 100 MBit/s-Switches stellen einen ausreichend schnellen Uplink zum Server bereit. Die Rechner booten über das Netzwerk, sie mounten das Root-Dateisystem sowie die Benutzerverzeichnisse von einem Server und nutzen dort vorhandene Dateien als Swapspace. Die Festplatte wird nur am Anfang des Bootprozesses und für Wartungsarbeiten benötigt.

  • Booten von Festplatte
    • Auf der Festplatte ist der Bootmanager grub installiert. Er bietet auf der per Monitor und Tastatur erreichbaren Konsole ein Menü mit drei Alternativen an, bevor er nach drei Sekunden den Bootvorgang per Netzwerk startet.
    • Die erste Option startet ein Diskettenimage von der Festplatte, in dem FreeDOS und ein DOS-basierendes Konfigurationsprogramm für den Netzwerkchip installiert sind.
    • Als zweite Option kann ein auf der Festplatte installiertes Linux gebootet werden. Dieses verfügt über eine Systempartition von 25 MB sowie 4 MB Swapspace und kann unabhängig vom Server für Testzwecke benutzt werden.
    • Als letzte Option startet grub den Bootvorgang über das Netzwerk.
  • Booten per Netzwerk
    • Da die Netzwerkkarte über kein eigenes Boot-ROM verfügt, übernimmt ein Image aus dem etherboot-Projekt dessen Aufgabe. Es initialisiert die Hardware und holt sich von einem DHCP-Server die nötige Konfiguration. Dazu gehört auch die Adresse des Linux-Kernels, der anschließend per TFTP geladen und ausgeführt wird.
    • Der Kernel führt eine erneute DHCP-Anfrage durch, bei der ihm die Adresse seines Root-Dateisystems mitgeteilt wird. Jeder Rechner verfügt über ein eigenes System, der Server weist seinen Clients das richtige nach ihrer MAC-Adresse zu.
    • Das Dateisystem wird gemountet und der darin enthaltene Init-Prozeß gestartet. Dieser kümmert sich um die restliche Initialisierung, mountet Benutzerverzeichnisse mit den Anwendungsprogrammen sowie den Swapspace.
    • Die einzelnen Rechner können über ihren Namen oder ihre IP-Adresse die eigene Nummer innerhalb der Anlage ermitteln. Sie starten am Ende des Bootvorganges einen RSH-Server für den Fernzugriff sowie einen Daemon, der für die Verbindung zwischen Ethernet, CAN und den Leistungselektroniken benutzt werden kann.

Alle Applikationen für die PC104-Rechner müssen mit einem Crosscompiler übersetzt werden, der den 386er als Zielplatform unterstützt und eine platzsparende Version der libc statt der normalen GNU libc benutzt. Der gesamte Prozeß, in dem Crosscompiler und das Betriebssystem der Knoten erstellt wird, ist im Abschnitt Embedded Linux beschrieben.