Einfacher Balisenleser für den Messzug

Embedded Software Hardware Messtechnik Retrofit & Reverse Engineering

Eurobalisen sind auf allen Bahntrassen installiert und identifizieren Zuggleise eindeutig. In erster Linie natürlich für die Zugsicherung, aber auch für Diagnosezüge ist dies eine wichtige Information. Nur soll hier die Balise unkompliziert ausgelesen werden, unabhängig vom komplexen und teuren Zugsicherungssystem.

  • Ausgangslage

    Messzüge lesen unter anderem Balisen aus, um den Standort und das exakte Gleis zu ermitteln, damit die erfassten Diagnosedaten verortet werden können. Dazu werden spezielle Balisenleser eingesetzt, die unabhängig vom Zugsicherungssystem arbeiten. Von diesen Geräten gibt es aber nur noch eine Handvoll Exemplare. Sie werden nicht mehr hergestellt und die ursprünglichen Produzenten bieten keinen Support mehr.

  • Lösung SCS

    SCS machte ein Reverse Engineering eines der bestehenden Balisenleser und entwickelte ein preisgünstiges Gerät auf Basis eines Standard-Funkmoduls (Software Defined Radio) und einem kundenspezifischen RF-Board. Damit wird die Balise angeregt und das zurückgesendete Signal empfangen. Eine Python-Applikation gibt über Websocket die Daten ans übergelagerte Positionierungssystem des Messzugs.

  • Mehrwert

    Dank offenem Quellcode, Produktionsdaten und IP-Rechten ist die Verfügbarkeit von Balisenlesern nun für die SBB als Kunde gesichert. Der neue Balisenleser besteht zudem aus deutlich weniger Komponenten und ist nur noch eine statt drei Units hoch im 19" Rack. Durch das FPGA-SoC und dem Software-Defined Radio ist der Balisenleser flexibel erweiterbar.

Projekteinblicke

Das Schienennetz ist ausgestattet mit Balisen, also magnetisch gekoppelten Transpondern, die zwischen den Schienen eines Gleises montiert sind. Jede davon trägt eine eindeutige Identifikationsnummer. Eine Antenne unter der Lokomotive regt die Balise mit einem 27 MHz RF-Feld an, worauf die Balise auf 4 MHz die Identifikationsnummer zurückgibt. Über die Identifikationsnummer wird der Zug sicher lokalisiert für das ETCS-Zugsicherungssystem.

Diagnosezug liest Balisen aus

Zur Überwachung und Instandhaltung der Infrastruktur setzt die SBB Diagnosezüge ein, die mit diversen Sensoren und Kameras den Zustand der Gleise erfassen. Für die Verortung der Diagnosedaten auf der Topologie der Infrastruktur werden, neben Odometrie und GPS, auch die Balisen als fixe Objekte verwendet, da diese in der Datenbank mit Position eingepflegt sind. Dafür hat die SBB eine Handvoll nicht-sicherheitsrelevanter Balisenleser im Einsatz, die nicht mit dem Zugsicherungssystem verbunden sind.

Die heute genutzten Balisenleser können nicht nachbestellt werden, da die beiden aktuellen Hersteller dieser Geräte keinen Support mehr anbieten und die Geräte nicht mehr produziert werden. Aus Gründen der Wirtschaftlichkeit und Verfügbarkeit sollte ein neuer Balisenleser entwickelt werden, der in einer kleinen Serie zu einem tiefen Preis hergestellt werden kann.

Reverse Engineering

Von den bestehenden Balisenlesern existiert keine Dokumentation, weshalb der Typ eines Lieferanten per Reverse Engineering analysiert und mit der Spezifikation der Eurobalisen abgeglichen wurde. Die Schlüsselkomponenten sind:

  • ein TX Sender bei 27.095 MHz als Telepower Source, die genaue Leistung ist unbekannt, liegt aber aufgrund der Leistungsaufnahme bei rund 3 bis 5 Watt.
  • ein RX Verstärker mit einem Tiefpassfilter (DC bis 5MHz) mit einer Attenuation von -50dB bei 27MHz.
  • ein Duplexer, um Sender und Empfänger zu trennen bei der Antenne.
  • ein Software Defined Radio (SDR), um den Sender einzuschalten und das Signal der Balise zu demodulieren.
  • ein Industrie-PC, der das Signal decodiert.

Retrofit: Nicht nur eine Kopie

Bei einem Retrofit soll nicht nur eine Kopie hergestellt, sondern auch aus dem bestehenden System gelernt werden. Im bestehenden Balisenleser wird der Sender beispielsweise über ein USB-attached Relais aus der Software ein- und ausgeschaltet, könnte aber auch direkt über das SDR-Board gesteuert werden. Zudem wird das SDR-Board nur fürs Sampling (und Demodulation) der empfangenen Signale genutzt – die Daten werden danach auf dem integrierten PC decodiert. Auch werden viele verschiedene Speisespannungen (+5V, +15V, -15V, 24V) eingesetzt. Die System-Architektur ist recht komplex und belegt wertvollen Platz im Messzug (4U Höheneinheiten im 19-Zoll Rack).

Das neue System soll deutlich vereinfacht werden:

  • TX Kontrolle direkt auf dem SDR-Board
  • reduzierte Anzahl Speisespannungen (Amplifier nicht symmetrisch versorgt)
  • Decoding direkt auf dem SDR Board, ohne separaten PC

Ohne relevante Abstriche bei der Funktionalität konnte das neue Design um einen Faktor 4 verkleinert werden (auf eine Höheneinheit im 19-Zoll Rack). Weniger Komplexität bringt zudem höhere Zuverlässigkeit und bessere Wartbarkeit.

Neues Systemdesign

Das 27 MHz Signal wird im neuen Balisenleser direkt im SDR-Board erzeugt und vom RF-Modul nur verstärkt. Da das SDR-Board mit einer Taktfrequenz von 125 MHz arbeitet, werden die Oberwellen für ein sauberes Ausgangssignal nach dem Verstärker herausgefiltert.
Das Empfangssignal wird direkt im SDR-Board decodiert. Damit besteht das neue System nur noch aus drei wesentlichen Elementen: einem Netzgerät zur Speisung, dem SDR-Board und dem RF-Frontend. Letzteres wurde kundenspezifisch für den Balisenleser entwickelt.

RF-Frontend

Im RF-Frontend sind sowohl der TX- als auch RX- und Duplexer-Pfad integriert. Auf dem Bild (unten) sieht man unten den TX- und oben den RX-Pfad. Rechts ist der Anschluss für die Antenne. Die Ausgangsleistung von 35dBm (3.2W) reicht zuverlässig, um die Balisen auszulesen. Die Leistungsaufnahme des RF-Moduls liegt bei 700mA/12V.

Software Defined Radio (SDR)

Die SDR-Plattform basiert auf einem Red Pitaya Board mit 125MHz Takt und einer Auflösung von 14bit. Es ist bestückt mit einem Xilinx Zynq 7010 FPGA. Als Betriebssystem wurde ein Yocto-basiertes Linux mit einem U-Boot Bootloader aufgesetzt. Sichere Software-Updates sind jederzeit über das Webinterface möglich. Die Applikation (Decoder) ist in Python3 geschrieben.
Während der frühen Entwicklungsphase wurden verschiedene Algorithmen für Demodulation und Decoding mit Hilfe von GNU Radio und einem Hardware-in-the-Loop Setup evaluiert. Im fertigen Produkt übernimmt das FPGA die rechenintensive Demodulation, das anschliessende Decoding geschieht in der Python-Applikation.

Websocket Applikation

Die Applikation ist als Websocket-Server ausgestaltet. Im Vergleich zu einem HTTP-Server kann ein Websocket bei einer geöffneten Verbindung auch von sich aus Daten schicken, ohne auf eine neue Verbindung des Clients zu warten. Sobald eine Balise erkannt wird, sendet der Server die Identifikationsnummer und einen Zeitstempel. Weil die Balise bei der Überfahrt mehrfach erkannt wird, kann sehr genau bestimmt werden, wann sich die Balise mittig unter dem Leser befindet. Die Genauigkeit (Jitter) des Zeitstempels ist besser als 200 Mikrosekunden, wenn die Zeitsynchronisation mittels Network Time Protocol geschieht.

Der neue Balisenleser wurde für die SBB umgesetzt und im Diagnosefahrzeug in die OpenTLS Messapplikation integriert. Täglich werden damit tausende Balisen zuverlässig ausgelesen. Über ein Web-Interface kann der Status oder das Live Log abgerufen werden. Und dank offenem Quellcode, Produktionsdaten und IP-Rechten ist die Verfügbarkeit von Balisenlesern für die SBB nun gesichert.

Verwandte Projekte

Smart Meter Toolkit

Gemäss Stromversorgungsverordnung muss der Netzbetreiber dem Endkunden ermöglichen, Echtzeitmessdaten des Smart Meter zu erhalten. Das Smart Meter ... mehr erfahren

Vertrauensvolle KI für den Messradsatz

Um die dynamischen Kontaktkräfte zwischen Schiene und Rad zu messen, setzt die SBB sogenannte Messradsätze ein. Sensoren auf den Rädern messen die ... mehr erfahren

Visuelle Innovation durch KI in der Augenheilkunde

Die optische Kohärenz-Tomographie (OCT) ist ein schonendes Laser-Mikroskop und wird von Augenärzten eingesetzt, um die Netzhaut nach Anomalien zu ... mehr erfahren

Visuelle Kontrolle von Eisenbahnwagen

Ist die Klotzbremse abgenutzt? Wie dick ist das Schleifstück des Pantographen? Hängt eine nicht richtig montierte Schraubenkupplung nach unten? Das ... mehr erfahren

Medizinisches Spektrometer mit elektro-optischer Leiterplatte

Ein elektrooptisches Spektrometer wurde miniaturisiert, damit es bei den engen Platzverhältnissen auf einer Intensivstation eingesetzt werden kann. ... mehr erfahren
Alle Projekte anzeigen
David Gschwend High Performance Systems Wie kann ich Ihnen weiterhelfen?