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.
|