Es sind die serielle Kommunikation (in der Lok) und die paketvermittelnde zwischen der Lok und ihrer Umgebung (hin zum Smartphone).
Wenn man ein Objekt (z.B. über Funk) ansteuern möchte, muss man ihm eine Codierung (eine Nachricht) zukommen lassen, die eine Information enthält, was das Objekt tun soll. Idealerweise meldet das Objekt auch noch zurück, dass es
- die Nachricht verstanden hat
- und / oder den Befehl erfolgreich oder nicht erfolgreich ausgeführt hat
Wenn wir eine Nachricht transportieren möchten, machen wir das idealerweise über eine Kommunikationsverbindung, die aus einem Sender, einen Empfänger und der dazwischen liegenden Leitung.
Bei der Leitungsgebundenen Kommunikation ist die älteste, bekannteste (verbreitetste) die sogenannte Serielle Kommunikation, bestens vertreten durch die RS232 Schnittstelle http://de.wikipedia.org/wiki/RS_232 am Computer, die ein jeder irgendwie schon einmal gesehen haben dürfte. Hier http://www.elektronik-kompendium.de/sit ... 310301.htmkann man sich noch einen tieferen Überblick verschaffen - beide Links brauchen wir aber nicht unbedingt zu lesen.
Die RS232 hat mindestens eine Masseverbindung und zwei Datenleitungen (Tx und Rx), die für die beiden Endpunkte der Kommunikationsverbindung als Sendeleitung (Tx=Transmit x) und Empfangsleitung (Rx=Receive x) gesehen werden.
Was also für den einen Endpunkt die Sendeleitung ist, über die er Daten sendet, ist für den anderen Endpunkt die Empfangsleitung - et vice versa. Die Endpunkte können also (meist) beides - senden und empfangen und werden daher sehr oft als Tranceiver (Kunstwort aus Transmit und Receive) bezeichnet.
Weitere Leitungen der RS232 sind optional - werden von uns nicht eingesetzt.
Damit die Datenbits über die Entfernung (auch wenn es nur wenige Meter sind) unverfälscht übermittelt werden können, müssen bestimmte elektronische Voraussetzungen (auch hinsichtlich des Kabels) geschaffen werden. Z.B wird eine Spannung von typisch 12 - 15 Volt zwischen Tx und Masse bzw. Rx und Masse eingesetzt.
Zusätzlich wird das Signal noch codiert, z.B. um es "gleichstromfrei" zu machen (Details hier http://de.wikipedia.org/wiki/Leitungscode). Bei der RS232 Übertragung wird als Codierung die sogenannte Manchestercodierung eingesetzt. Sie sorgt eben für die Gleischstromfreiheit und die Taktung, aus der der Empfänger den Zeitpunkt ermitteln kann, zu dem er das Signal (das Bit) abtasten muss, um zu entscheiden, ob er eine NULL oder eine EINS empfangen hat.
Typische Entfernungen (Kabellängen) einer RS232 Übertragung liegen im Bereich 1 - 10 Meter!
Will man bis zu 1000 Meter seriell übertragen, muss man auf andere Standards gehen, z.B. die RS 422 http://de.wikipedia.org/wiki/RS422 (noch besser RS485 http://de.wikipedia.org/wiki/RS485 ).
Wie man nun eine Nachricht über eine digitale Kommunikationsstrecke mittels EINSEN und NULLEN elektrisch übere eine RS232 überträgt, kann man hier http://upload.wikimedia.org/wikipedia/c ... timing.png erkennen. Der gesamte Aufwand nur, um einen Buchstaben "G" zu übertragen.
Jetzt die Erleichterung: Solche Dinge wie RS232, RS422 und RS485 interessieren uns überhaupt nicht, wir verwenden nur den Teil der Seriellen Kommunikation bis VOR den Baustein, der z.B. die elektrischen Eigenschaften der RS232 Kommunikation (sagen wir mal als "Verstärker") übernimmt.
In anderen Worten: Die Daten, die aus einem Mikroprozessor rauskommen - oder reingehen, sind zwar seriell und gehen in oder kommen typisch aus einem RS232 Übertragungs- Baustein (z.B. dem IC MAX232, der nicht zum Mikroprozessor dazugehört), haben aber bezüglich ihrer elektrischen Eigenschaften lediglich die Spezifikation einer TTL - Normierung (5 Volt! zwischen Masse und Datenleitungen).
Die Daten sind auch nicht Manchestercodiert - also empflindlich gegen Störungen von aussen. Da wir aber die Daten auf der seriellen Leitung nur wenige cm (in der Lok) transportieren müssen, spielt das für uns gar keine Rolle.
Die Schnittstellen an den Endpunkten (Mikroprozessoren) der Kommunikationsstrecke, die die Daten mit 5 Volt Pegel seriell empfangen oder senden (UND die dann nach RS232 mittels z.B. eines ICs MAX232 weiter versendet werden könnten), nennen wir UART-Schnittstellen.
Das merken wir uns nun mal! Es empfiehlt sich auch diesen Link http://de.wikipedia.org/wiki/UARTeinmal zu lesen, ich finde, er ist nicht zu kompliziert - es muss aber nicht alles verstanden werden.
Fast jeder Mikroprozessor hat eine UART - Schnittstelle. Sie dient zur Standard-Kommunikation mit der Aussenwelt.
Zur Abgrenzung: Die SUSI - Schnittstelle überträgt auch Daten seriell, funktioniert aber grundsätzlich anders. Bitte SUSI nicht mit UART verwechseln. SUSI ist eine ganz private "Spielerei" bei der Modelleisenbahn - sie ist kein sogenannter Industriestandard, UART hingegen ist DER Industriestandard.
Darum hat auch kein Mikroprozessor in dieser Welt eine SUSI-Schnittstelle. Stattdessen muss man einen Programmcode (also Software) selbst schreiben, um an zwei selbst definierten Pins (I/Os) des Mikroprozessors eine SUSI-Schnittstelle zu realisieren. Diese Schnittstelle habe ich realisiert- sie ist ein Teil unseres Projektes.
Warum koppeln wir denn nun den Mikroprozessor nicht direkt über Funk mit dem Smartphone ?
Antwort ist ganz einfach:
- Der Mikroprozessor kann nicht funken
- Der Mikroprozessor beherrscht nicht das TCP/IP Protokoll
Es hat auf der einen Seite eine UART Schnittstelle - und auf der anderen Seite eine TCP/IP (Funk-) Schnittstelle. Es ist sozusagen das Bindeglied zwischen Smartphone und Microcontroller in der Lok. Man könnte es auch als "Umsetzer" (engl. Gateway) oder als Router (technisch korrket) bezeichnen. Wobei ein Router nicht unbedingt eine UART Schnittstelle besitzt ...!
Damit wir nun auch verstehen, warum wir alles so kompliziert machen:
Man kann auch Daten über Funk seriell übertragen. Das tun z.B. die Anwendungen, die über 433 Mhz oder 868 Mhz Daten (oder Sprache) digital übertragen. Es gibt billige Funkempfänger und Sender, die das können, z.B. hier: http://www.pollin.de/shop/dt/OTI5OTgxOT ... modul.html. Abgesehen davon, dass diese Funkübertragung fehleranfällig auf Störungen reagiert, die Smartphones haben gar keine serielle Funkschnittstelle!!! Ist also keine Lösung.
Man müsste sich also extra ein Endgerät zur Steuerung basteln. Genau das haben Massoth, Zimo, etc... gemacht. Sie alle verwenden eine serielle Kommunikation über Funk.
Das genau machen wir aber nicht, wir verwenden ein viel komplexeres Protokoll (eben das TCP/IP- Protokoll), das eine sehr sichere Kommunikation erlaubt. Eine serielle Funkkommunikation einer TCP/IP Kommunikation (z.B. über WLAN) gegenüberzustellen, käme dem Vergleich eines Moped mit einem JumboJet gleich ...! Immerhin ist das Moped schneller zu starten ...!
Fortsetzung folgt!