![]() Anschlussbelegung Nicht vergessen: |
Die nachfolgende Anleitung wurde mit grösster Sorgfalt erstellt. Trotzdem erfolgt der Nachbau auf eigene Gefahr und wir übernehmen weder Verantwortung noch Haftung für eventuell entstehende Schäden jedweder Art. Der Umbau geht über den "normalen" Gebrauch hinaus, so dass Garantie- und Gewährleistungsansprüche erlöschen. Update 2019: Ursprünglich wurde diese Seite für die CU mit der Versionsnummer 5321 erstellt. Inzwischen ist Carrera bei 5337 angelangt. Zeit für eine Neubetrachtung. Hardware Bei den Signalen an der PC-Unit Buchse handelt es sich um serielle Anschlüsse, die mit TTL bzw. CMOS kompatiblen Pegeln arbeiten. Um mit einem Rechner kommunizieren zu können, muss man dem Rechner diese Signale zugänglich machen. Weder PCs noch Macs haben dazu geeignete Anschlüsse. Moderne Rechner kommunizieren über die USB Schnitstelle mit externer Hardware.
Auf dem PC Zubehör Markt gibt es Tausende von billigen USB-Seriell Convertern. Diese verwenden allerdings RS232C Signal Pegel und dürfen deshalb auf keinen Fall an der CU verwendet werden. Die Firma FTDI bietet ein Kabel, das die Verbindung zwischen einer TTL kompatiblen seriellen Schnittstelle und einer USB Schnitstelle herstellt. Das Kabel wird u.a. von der Firma Segor angeboten. Es gibt noch weitere günstigere Bezugsquellen. Google hilft da weiter. Da das Kabel allerdings auf der seriellen Seite keinen passenden Anschluss hat, muss man das Kabel an diesem Ende mit einem passenden Mini Din 6 Stecker versehen. Mac und PC Treiber für das Kabel sind ebenfalls auf der Webseite von FTDI zu finden. Nebenstehendes Bild zeigt die Anschlussbelegung. Eine Alternative ist es eine PC-Unit des Carrera Race Management Systems und einen handelsüblichen USB - RS232 Konverter zu verwenden. Man macht aus dem TTL SIgnal der CU durch die alte PC-Unit ein RS232C kompatibles Signal und mit Hilfe des USB-Seriell Konverters aus dem RS232C kompatiblen Signal ein USB Signal. Eine weitere Variante ist das Verbinden von CU und Rechner über ein Bluetooth Modul. Luftikus beschreibt ein solchen Projekt. Update 2019: Inzwischen gibt es von Carrera App Connect eine Box, die die Bluetooth LE herstellt. Dazu mehr am Ende dieser Seite. Die CU hat die Trafospannung an ihrem Stecker liegen und dummerweise auf dem Pin gegenüber Masse. D.h., wenn sie "Vorne" und "Hinten" beim Blick auf die Stecker oder Buchse verwechseln, wird die Masse des FTDI mit der Trafospannung verbunden und die serielle Schnittstelle des Prozessors wird mit einer Spannung von bis zu 22V verbunden. Das macht sie nicht mit und die CU ist schrottreif.
Software Die Verwendung des oben beschriebenen Konverters ist nur mit rechtmäßig erworbener Software gestattet. bei Weblegung gibt es, außer einer Testversion von iLap, noch keine zur CU kompatible Software. Aber die wird wohl nicht lange auf sich warten lassen. Update 2019: Es gibt inzwischen reichlich Software auch von Drittherstellern, die die CU und verschiedene Anschlussarten unterstützen. Ich werde keine Empfehlung geben, bemüht bitte eine Suchmaschine. Das Protokoll Wie schon erwähnt handelt es sich um eine serielle Schnittstelle, eine asynchrone Datenübertragung im NRZ Verfahren. Die Übertragungsparameter sind 19200 Baud, 8 Bit, Keine Patität, 1 Stop Bit. Die Kommunikation wird vom Rechner gesteuert, die CU sendet Daten nur als Antwort auf Anfragen. Der Rechner muss also ständig Anfragen senden. Es gibt Befehle zum Lesen und zum Schreiben von Daten. Lesebefehle (Lesen von der Control Unit) In allen nachfolgenden Beschreibungen sind Zeichen, die vom Rechner gesendet werden, rot und alle Daten, die von der CU gesendet werden, blau. Der Rechner sendet ein Anführungszeichen gefolgt vom Befehlszeichen z.B. "0. Nun antwortet die CU mit dem Befehlszeichen gefolgt von den Antwortdaten, einer Prüfsumme und einem abschliessenden $, z.B.: 05321;$. Der Rechner überprüft die Prüfsumme und quittiert sie mit einem $. Man kann diese Quittierung weglassen, es hat keine negative Auswirkungen. Die übertragenen Daten sind entweder ASCII Zeichen oder sie stellen binäre Werte dar. In unserem Besipiel ist die 5 das ASCII Zeichen 5. Handelt es sich um einen binären Bytewert, so wird er durch zwei aufeinander folgendeZeichen dargestellt. Es werden nur jeweils die unteren 4 Bit jeden Zeichens verwendet. Innerhalb eines Bytes werden zuerst die niederwertigen 4 Bits übertragen und dann die höherwertigen Bits. Werden längere Werte übertragen, so beginnt die Übertragung mit dem höchstwertigen Byte. Die Prüfsumme wir ermittelt indem man die unteren 4 Bits aller Daten addiert, dabei die Überträge ignoriert und das Ergebnis mit $30 verodert. Für unser Beispiel gilt:
Kennt die CU einen Befehl nicht, so antwortet sie mit einem #. Schreibbefehle (Schreiben zur Control Unit) Der Rechner eröffnet wieder mit Anführungszeichen gefolgt vom Befehlszeichen. Die CU antwortet mit der Wiederholung des Befehlszeichens. Nun überträgt der Rechner die Daten gefolgt von Prüfsumme und $ genau wie oben beschrieben. Die CU quittiert die Daten mit einem abschliessenden $. Das ganze sieht dann z.B. so aus: "::??>$$ Befehlssatz Der Befehlssatz der CU ist sehr klein. Und von den verfügbaren Befehlen verwendet man im normalen Betrieb nur 2. Der Befehlssatz der CU unterscheidet sich von dem des Rundenzählers. Dessen Befehlssatz ist hier beschrieben. Die Minimalausstattung für einen Rundenzähler und Zeitmessprogramm auf einem Rechner Für uns sind die Lesebefehle "0 (Null) und "? und der Schreibbefehl J iinteressant.
AppConnect - Bluetooth Adapter Carrera bietet statt USB zur Verbindung von Rechner auch eine Bluetooth LE an. Bluetooth LE - LE steht für Low Energy - ist nicht das selbe wie Bluetooth ohne LE. BLE ist eine Option von Bluetooth 4.0. D.h. nicht jedes Bluetooth Gerät bzw. Rechner oder BT-Dongle unterstützt BLE. Allerdings kann man davon ausgehen, dass heute alle aktuellen Rechner mit BT und BT Dongles BLE unterstützen. Die Kommunikation mit einem BLE Gerät unterscheidet sich von der mit einem USB/Seriell Wandler. Ein BLE Gerät stellt Services zur Verfügung. Ein Service hat verschiedene Characteristics, die funktional zusammen gehören. AppConnect hat nur eine Funktion, Daten von und zur seriellen Schnittstelle der CU zu übertragen. Deshalb bietet AppConnect auch nur einen Service. Jeder Service wird über eine UUID (Universally Unique Identifier, eineindeutige Bezeichnung) identifiziert. Die UUID des Service der AppConnect ist 39DF7777-B1B4-B90B-57F1-7144AE4E4A6A. Das ist deshalb interessant, weil der Programmierer den Rechner Geräte suchen lassen kann, die einen Service mit dieser UUIDs anbieten. Ein Service hat Characteristics (Eigenschaften) und diese können gelesen oder geschrieben werden. Characteristics klingt nach einen Wert abfragen oder setzen, aber das ist zu eng gedacht. Das Lesen oder Schreiben einer Characteristic kann auch Funktionen oder Abläufe auslösen. Das Schreiben einer Characteristic kann mit oder ohne Handshake erfolgen. Mit Handshake, weiß man ob und wann die Daten angekommen sind und im anderen Fall vertraut man darauf , dass die Daten schon ankommen werden. Will man wissen ob sich der Wert einer Characteristic geändert hat muss man sie nicht ständig abfragen, man kann ihr auch mitteilen, dass sie die Daten schicken soll, wenn sich was geändert hat. Die Characteristic unterstützt dann "Notify".. Characteristcs werden ebenfalls über UUIDs identifiziert. Der Service im AppConnect hat zwei Characteristics eine um Daten vom Rechner zur CU und eine um Daten von der CU zum Rechner zu schicken. 39DF9999-B1B4-B90B-57F1-7144AE4E4A6A leitet die von der CU empfangenen Daten an den Rechner weiter. Damit man nicht dauernd fragen muss ob es was neues gibt unterstützt sie Notify. 39DF8888-B1B4-B90B-57F1-7144AE4E4A6A leitet die vom Rechner empfangenen Daten an die CU weiter. Sie unterstützt keinen Handshake, so dass der Rechner nicht weiß ob das Schreiben geklappt hat. Auf der anderen Seite, wenn keine Antwort auf die Anfrage kommt, hat es wohl nicht geklappt. Man sollte erwarten, dass der Datenaustausch wie beim USB-Seriell Konverter erfolg, man was oben in der Protokoll-Beschreibung rot markiert ist an 39DF8888-B1B4-B90B-57F1-7144AE4E4A6A schickt und was blau markiert ist von 39DF9999-B1B4-B90B-57F1-7144AE4E4A6A empfängt. Fast - es gibt kleine Unterschiede. Wenn man einen Befehl schickt lässt man das Gänsefüßchen weg also statt "0 nur 0. Schickt man einen Befehl mit Parametern so schickt man alles auf einmal und wartet nicht, dass man das Befehlszeichen zurück bekommt, bevor man die Parameter schickt. Es wird kein Quittierungs $ von AppConnect an den Rechner gesendet, Es wird nur das Befehlszeichen zurückgeschickt. Eine Abfrage der Versionsnummer sähe wie folgt aus: 0053372$ Das Setzen von Parametern sieht dann z.B. so aus: ":??>$: |