Wenn ein Modell-Fahrzeug mit seinem Tag über einen im Gleis eingebauten RFID Leser fährt, wird die im Tag enthaltene Information auf die Zentrale oder auf die steuernde PC-Software übertragen. Ursprünglich war der Übertragungsweg S88, später S88 über RC-Talk, gefolgt von RailCom über RS485. Der neuerdings eleganteste Weg ist über WLAN. Dazu habe ich im Blog WLAN-Rückmelder mehr geschrieben. In diesem Beitrag geht es mehr um die Tags, die Inhalte und wie diese Inhalte auf die Tags kommen.
TAG UID
Als wir 2015 mit RFID für die Modellbahn anfingen, wurde zunächst nur die UID gelesen. Nein, das hat mit Umsatzsteuer nichts zu tun, sondern steht für die einmalige Kennung des Tags, für den Unique IDentifier. Das ist ein 5 oder bei neueren Tags ein 7 Byte Code, der fest zum Tag gehört. Bei der 7 Byte Kennung ist die Chance, dass 2 UIDs gleich sind, praktisch Null. Deswegen las einer der ersten RFID Leser die komplette UID und schickte diese 5 oder 7 Byte über LocoNet an den PC. Am Tag selbst musste nichts verändert werden. Das Prozedere ist hier beschrieben. Mehr zu den RFID Grundlagen und zu ersten Anwendungen auf der Modellbahn erschien in der Modellbahnzeitschrift DiMo von der Verlagsgesellschaft Bahn.
CRC aus der UID
Nicht jeder hat LocoNet, aber die meisten Modellbahner haben S88. S88 ist im Prinzip ein Schieberegister, das parallel mit bis zu 512 Bits an Informationen geladen wird. Nach dem Laden werden die Bits mit einem Takt wiederholt um eine Stelle in Richtung Zentrale geschoben. Spätestens nach 512 Taktsignalen ist alles eingelesen und wird der Zyklus Laden mit anschließendem Schieben wiederholt. Nun 5 oder 7 Byte als 40 oder 56 Rückmeldebits – nur für einen RFID-Leser – zu übertragen, würde einen relativ großen Teil der S88 Kapazität beanspruchen. Nur wenige Lesestellen wären möglich gewesen. Die Datenmenge wurde darum von 56 auf 16 Bit reduziert. Es wurde nicht mehr die 5 oder 7 Byte der UID, sondern die CRC16 aus diesen 5 oder 7 Byte gesendet. Die Chance, aus zwei unterschiedlichen Tags dieselbe CRC16 zu berechnen, ist zwar gegeben, aber äußerst gering. Das oberste Bit 15 diente als Trigger für die Modellbahnsoftware, bzw. für die Zentrale. Wurde Bit 15 logisch 1, dann musste aus den verbliebenen 15 Bits durch Addieren der Wertigkeiten (1, 2, 4, 8, 16, usw.) die ursprüngliche Lokomotiv-ID wieder berechnet werden. S88 war dabei nicht das Problem, sondern eher die Belastung der Zentrale oder der PC-Software.
Die Nutzinformation wurde später auf 14 Bit reduziert und eigens dafür aus der UID der Tags eine CRC 14 berechnet. Das Bit 15 blieb Strobe Bit und mit Bit 14 konnte die Aufgleisrichtung übertragen werden.
RC-Link und RC-Talk Protokoll
Mit der Freigabe des RC-Talk-Protokolls durch die Firma Tams und unter Zuhilfenahme des RC-Link-Moduls (ebenfalls Tams) bestand nun auch die Möglichkeit, die CRC 14 mit Richtungsbit direkt in einen PC zu übertragen. Dazu musste lediglich das RC-Link Modul mit in die PC-Software eingebunden werden. Die RFID Information wurde also genauso behandelt wie eine RailCom Nachricht, die ebenfalls eine ID und eine Aufgleisrichtung beinhaltet. Modellbahner ohne PC konnten das Verfahren leider nicht verwenden und waren weiter auf S88 angewiesen.
Einen Nachteil dieser CRC14 Methode sollte man nicht verschweigen. Die CRC wird mathematisch generiert und das Ergebnis hat mit der Baureihe oder der Katalognummer der Ziellokomotive nichts zu tun. Schöner wäre es doch, wenn man die ID so anpassen könnte, dass die Zugehörigkeit zu einer Baureihe offensichtlich ist. So könnte man für eine Baureihe 64 z. B. die ID 6402 verwenden, genauso wie man auch die DCC Adresse festlegen würde.
Tags beschreiben
Auf der Basis eines Arduino UNO mit einem RFID Shield (RFID-S88-Light – leider vergriffen) wurde einen RFID-Writer gebaut und programmiert (Abb. 3). Er ist für die Tags der Type NTAG 2 oder Mifare Ultralight gedacht. In der Abbildung oben ist ein Tag vom Typ NTAG 213 Midas 12 x 19 mm abgebildet, der sehr gut unter einem H0 Fahrzeug passt. Die Tags sind selbstklebend und werden wie Etiketten auf Papierstreifen geliefert. Die kleinere Variante misst ca. 7 x 20 mm, ist ebenfalls selbstklebend und mit einer Ferritfolie auf der Rückseite ausgestattet. Dadurch sind diese Tags besser geeignet für Montage auf metallischen Oberflächen. Sie werden nicht auf Trägerfolie, sondern als Schüttgut geliefert.
Die Software
Die Software wird mit dem Serial Monitor der Arduino IDE oder einem beliebigen Terminalprogramm bedient. Die Baudrate und COM Parameter werden auf 115200 Baud und 8N1 eingestellt. Der für den Arduino Uno im PC belegten COM Port wird in der Arduino Entwicklungsumgebung unter „Werkzeuge“ ausgewählt (Abb. 4). Werden da mehrere Ports angeboten, kann man sich im Windows Geräte-Manager (Abb. 5) ansehen, welcher Port verschwindet und wieder erscheint, wenn man den Uno aus- und wieder einstöpselt.
Wenn man den Arduino Tag-Writer mit dem PC neu über USB verbindet oder auf den Reset Taster drückt, zeigt der Serial Monitor eine Begrüßungsnachricht an:
Legen wir nun einen Tag auf das RC522 Lesemodul, zeigt der Serial Monitor die UID des Tags in hexadezimaler und in dezimaler Form an. Wird der Tag für die LocoNet Applikation in Rocrail verwendet, kann man hier die dezimale Darstellung mit Copy-and-Paste in die Rocrail Software übernehmen. Für die bestehenden S88 Anwendungen, die den CRC14 Code benötigen, wird auch der angezeigt. In Abb. 7 sehen Sie, dass die aktuelle Fahrzeug-ID ‚3566‘ von der CRC14 übernommen wurde. Wir möchten jedoch die Fahrzeug-ID, den LocCode, auf 6402 ändern.
Dazu schreiben wir die gewünschte Fahrzeug-ID 6402 in die Eingabezeile des Serial Monitors und klicken auf Senden.
Der Tagwriter bestätigt die Eingabe 6402 und fordert dazu auf, eine URL einzutragen, die z. B. auf die Beschreibung des Originals der BR64 in Wikipedia oder auf die Beschreibung des Modells beim Modellbahnhersteller verweist. Die Eingabe der URL ist optional. Wenn aber eine URL angegeben wird, dann sollte sie auch vollständig sein. Als Beispiel: „https://google.com“. Sie wird mit klicken auf Senden oder mit <ENTER> abgeschlossen. Mit einem weiteren Klick auf „Senden“ oder Drücken der <ENTER> Taste wird der Schreibvorgang gestartet. Nach erfolgtem Schreiben wird der Anwender dazu aufgefordert, den Tag vom Leser/Writer zu nehmen.
Mit der App NXP Taginfo auf dem Smartphone kann man nun die Funktion der URL testen und sich den neuen Inhalt des Tag-Speichers ansehen:
In den Blöcken 1 und 2 finden Sie die UID des Tags wieder. In Block 4 ist die Fahrzeug-ID mit 19 02 (hex) enthalten. Umgerechnet in dezimaler Darstellung entspricht das 6402. Weiter unten ab Block [07] ist ein Link auf diesen Beitrag enthalten. Wenn man die App NXP Taginfo nicht startet und den Tag ans Smartphone bringt, ruft der Browser diese Seite auf.
Nachbauen des Tagwriters |
Firmware für Arduino UNO als Tagwriter (in .hex umbenennen) |
Schaltbild für die Verdrahtung ohne RFID-S88-Light Shield |
© 2020 – 2023 Gerard Clemens – letzte Aktualisierung 29.07.2023
Schreibe einen Kommentar