Golf 4 Tacho Teardown Reverse Engineering - Das CAN-Bus Mysterium

Поделиться
HTML-код
  • Опубликовано: 21 окт 2024

Комментарии • 11

  • @Golf4org
    @Golf4org 2 года назад +1

    Abo ist raus, bin gespannt aufs nächste Video. VW Tachos werden einfach nicht langweilig. :D

  • @GEMC98
    @GEMC98 2 года назад +2

    Tolle Arbeit, das zu verstehen und die einzelnen Botschaften aufzuschlüsseln finde ich echt kompliziert.

    • @ChrisseLow
      @ChrisseLow  2 года назад +1

      Danke fürs Feedback! Inzwischen ist es auch sehr schwer in den Foren die ganzen Unterlagen dazu zu finden, da entweder die Foren nicht mehr existieren oder die Nutzer ihre Beiträge gelöscht haben.

    • @GEMC98
      @GEMC98 2 года назад +2

      @@ChrisseLow Ja das stimmt. Weiss selber wie zeitintensiv die Informationssuche da ist, insbesondere Elektrik. Weiss nicht wieviele Stunden ich schon vor Stromlaufplänen gehangen habe für meinen 4er GTI :D

  • @christopherhampe6848
    @christopherhampe6848 2 года назад +2

    Das Display Datenprotokoll:
    Da das DDP Tutorial schon älter ist, wird in den späteren Kommunikationsbeispielen von der Radio Geräte ID 0x39 ausgegangen, nicht mehr von 0x36 wie im TP 1.6 Tutorial.
    In den Erklärungen sind die IDs mit "X" allerdings variabel gehalten.
    Eine DDP Nachricht wird je nach Länge auf mehrere TP 1.6 Nutzdatennachrichten aufgeteilt.
    Das Display ist in 3 Segmente unterteilt. Radioanzeige, MFA/Navianzeige und Ganganzeige. Diese können einzeln oder Barrierefrei genutzt werden, daraus ergeben sich insgesamt 6 mögliche Segmente.
    Um nun Text oder Symbole auf dem Display anzuzeigen, muss für jedes verwendete Displaysegment ein Datenkanal geöffnet werden. Jeder Datenkanal hat eine Nummer von 0x00 - 0xFF, diese wird bei der Anmeldung eines Kanals vom Tacho vergeben. Pro Teilnehmer können maximal 3 Kanäle angemeldet werden.
    Nachdem für ein Segment ein Datenkanal erstellt und mit der Erstellung konfiguriert wurde, kann dieser Datenkanal beschrieben werden, solange der Tacho diesen freigibt. Ein Datenkanal kann auch in einem gewissen Rahmen nachträglich umkonfiguriert, oder auch gelöscht werden.
    OP Codes der DDP Nachrichten
    Das erste Byte deiner DDP Nachricht beinhaltet einen OPcode, der bestimmt, welche Funktion die Nachricht erfüllen soll:
    Opcodes Radio / DDP Teilnehmer
    0x00 = Löschen aller DDP Kanäle deines DDP Teilnehmers (OP/Geräte ID)
    0x01 = Displaysegment-Größe anfordern (OP/Segmentnummer [Erklärung Segmente siehe OP Code 0x02])
    0x02 = DDP Kanal anmelden (genaue Beschreibung siehe unten)
    0x05 = DDP Kanal abmelden (OP/Kanalnummer)
    0x06 = DDP Kanal Menümodus ändern (OP/Kanalnummer/Menümodus [Erklärung Menümodus siehe OP Code 0x02])
    0x09 = Daten für DDP Kanal senden (genaue Beschreibung siehe unten)
    0x0A = Zum Menüeintrag des Kanals springen (OP/Kanalnummer)
    0x0B = Displaysegment wechseln (OP/Kanalnummer/Neues Segment)
    0x0C = DDP Kanal priorisieren (OP/Kanalnummer)
    0x0D = Alle Kanäle des DDP Teilnehmers löschen (OP/0x00/0x00)
    0x15 = DDP Teilnehmer Status senden (OP/Geräte ID/0x20/0x01/Status [0x00 = Aus, 0x01 = Ein])
    Opcodes Tacho
    0x20 = Alle DDP Kanäle des DDP Teilnehmers gelöscht.
    0x21 = Senden von Display-Segmentgrößen (OP/Tachointerne Segmentnummer/0x00/Breite in Pixel High/Breite in Pixel Low/Höhe in Pixel High/Höhe in Pixel Low)
    0x23 = Aufforderung zum Senden von Daten für DDP Kanal, Übertragen von Kanal Parametern (OP/Kanalnummer/Kanalstatus [0x00 = gesperrt, 0x01 = Daten erwünscht)
    0x25 = Allgemeine Bestätigung
    0x27 = Status von DDP Kanal, Übertragen von Kanal Parametern (OP/Kanalnummer/Kanalstatus)
    0x2A = DDP Kanal mit Menüeintrag durch Sprung ins Hauptmenü verlassen (OP/Kanalnummer)
    0x2B = Fehler - Fehlercodes weiter unten
    0x35 = DDP Teilnehmer abgemeldet (OP)
    Anmelden eines Datenkanals
    Ein Datenkanal hat verschiedene Parameter:
    - Mit / ohne Menüeintrag und Name
    - Displaysegment
    Nachrichtenaufbau zur Anmeldung eines Datenkanals:
    Header:
    Byte 0: OP Code Datenkanal erstellen = 0x02
    Nachricht:
    Byte 0: Mit Menüeintrag = 0x70, Ohne Menüeintrag = 0x71 - 0x85 (Je niedriger desto höher die Priorität)
    Byte 1: Geräte ID = 0x3X
    Byte 2: Alle Segmente = 0x00, Mittleres Segment = 0x10, Oberes Segment = 0x20, Unteres Segment = 0x30, Oberes + Mittleres Segment = 0x40, Mittleres + Unteres Segment = 0x50
    Byte n: Beschriftung Menüeintrag ASCII (wenn Byte 0 = 0x70)
    Beschreiben eines Datenkanals
    Bei jeder Text-/ Grafiknachricht wird die entsprechende Datenkanalnummer mit übertragen.
    Nachrichtenaufbau zur Übertragung von Text- / Grafiknachrichten (gesendet von DDP Teilnehmer):
    Header:
    Byte 0: OP Code Daten für DDP Kanal senden = 0x09
    Byte 1: Datenkanalummer
    Nachricht:
    Byte 0: Character schreiben = 0x57
    Byte 1: 0x05 + Länge der nach Byte 6 folgenden Zeichenkette
    Byte 2 Bit
    0: Aktive Pixel des Characters auf Display toggeln
    1: Normale Schrift = 1, Invertierte Schrift = 0
    2: Schmale Schrift = 1, Normale Schrift = 0
    3: Grafikbausteine = 1, Schriftzeichen = 0
    4: Große Schriftzeichen = 1, Normale Schriftzeichen = 0
    5: Mittenorientiert = 1, Linksorientiert = 0
    6: Displayzeile überschreiben = 1, Display komplett löschen = 0
    7: Nicht verwendet
    Byte 3: X Position in Pixel Low
    Byte 4: X Position in Pixel High
    Byte 5: Y Position in Pixel Low
    Byte 6: Y Position in Pixel High
    Byte n: Pfeildaten 0x00 - 0x74, Textdaten ASCII
    Byte n+1: Abschluss = 0x08
    Beispiel:
    Die Nachrichten des DDPs werden einfach nacheinander in die 7 Bytes der Nutzdatennachrichten des Transport Protokolls geschrieben.
    Eröffnen eines Datenkanals
    0x4D9 0x08 0xC0 0xB9
    0x2E8 0x39 0xD0 0x99
    0x6B9 0xA0 0x04 0x82 0x84 0x46 0xC5
    0x699 0xA1 0x04 0x8A 0x85 0x43 0x94
    0x6B9 0x20 0x02 0x70 0x39 0x10 0x41 0x42 0x43 // Mit Menüeintrag (0x70) Name: ABCDE, Segment: Mitte (0x10)
    0x6B9 0x11 0x44 0x45
    0x699 0xB2
    0x699 0x10 0x23 0x04 0x01 // Tacho fragt Kanal an, Kanalnummer = 0x04, Tacho möchte Text/Grafikdaten für diesen Kanal.
    0x6B9 0xB1
    0x6B9 0xA8
    Beschreiben des Datenkanals
    0x4D9 0x08 0xC0 0xB9
    0x2E8 0x39 0xD0 0x99
    0x6B9 0xA0 0x04 0x82 0x84 0x46 0xC5
    0x699 0xA1 0x04 0x8A 0x85 0x43 0x94
    0x6B9 0x20 0x09 0x04 0x57 0x0a 0x02 0x02 0x00 // Kanalnummer = 0x04, Anzahl der zu übertragenden Zeichen = 5, nichtinvertierte Schrift, X Position = 0x02
    0x6B9 0x21 0x03 0x00 0x48 0x41 0x4c 0x4c 0x4f // Y Position = 0x03, Text = HALLO
    0x6B9 0x12 0x08 // Abschluss
    0x699 0xB3
    0x699 0x10 0x27 0x04 0x01 // Statusübermittlung, Datenkanalnummer = 0x04, Tacho möchte weiterhin Daten für diesen Kanal.
    0x6B9 0xB1
    0x6B9 0xA8
    Löschen des Datenkanals
    0x4D9 0x08 0xC0 0xB9
    0x2E8 0x39 0xD0 0x99
    0x6B9 0xA0 0x04 0x82 0x84 0x46 0xC5
    0x699 0xA1 0x04 0x8A 0x85 0x43 0x94
    0x6B9 0x10 0x05 0x04 // Abmelden, Kanalnummer = 0x04
    0x699 0xB1
    0x699 0x10 0x25 0x04 // Abgemeldet, Kanalnummer = 0x04
    0x6B9 0xB1
    0x6B9 0xA8
    Allgemeine Anmerkung:
    Der Tacho hat ein haufen Zeug zu tun. Das Display ist daher die unwichtigste Funktion dieses Steuergeräts (siehe die hohen Identifier der CAN Kommunikation)
    Der Tacho benötigt Zeit um Daten zu verarbeiten. Sendet man Datenpakete zu schnell hintereinander, vergisst er einfach mal eine Datenanfrage zu senden oder zeigt die gesendeten Daten einfach nicht an. Also immer mit der Ruhe.
    Das Display ist daher nicht für hohe Aktualisierungsraten geeignet.
    Der Heartbeat-Ring:
    Die Steuergeräte am Komfort CAN Senden Heartbeatmessages nach einer gewissen Reihenfolge. Ein Steuergerät verweist immer auf das Nächste, das Letzte immer auf das Erste. Ringmaster sind Gateway (Geräte ID 0x00) und Tacho (Geräte ID 0x08).
    Unmittelbar nach "Zündung ein" startet das Gateway die Ringinitialisierung. 30ms später beendet der Tacho diese. Innerhalb dieser 30ms sendet jeder verbleibende Ringteilnehmer eine Initialisierungsbotschaft.
    Steuergeräte, die sich später in den Ring einbuchen, senden einfach ihre Initialisierungsbotschaft und warten bis ein vorauslaufendes Steuergerät auf sie verweist. Das neue STGR verweist erst einmal auf das Gateway, also 0x00. Falls ein bereits angemeldetes Steuergerät darüber liegt, welches nun übergangen wurde, wird es sich mit einer Neuinitialisierung melden. Auf diese muss das neue Steuergerät hören und beim nächsten Ringdurchlauf dann darauf verweisen.
    Die Identifier der Heartbeatmessages bestehen aus der Basis 0x400 addiert mit der Geräte ID.
    Im Falle eines DDP Teilnehmers also 0x43X
    Die Message besteht aus 6 Bytes.
    Das erste Byte enthält bei erkanntem Fehler oder der Anmeldung (also die erste Heartbeatmessage die ein Steuergerät verschickt) die eigene Verweis ID. Bei Geräte ID 0x39 ist die Verweis ID 0x19, bei Geräte ID 0x36 allerdings 0x16.
    Byte 0: Verweis ID des nächsten Steuergeräts (0x00 bis 0x1f) / Bei Anmeldung oder Fehler die eigene.
    Byte 1: Eigener Status: 0x01 = Normaler Betriebsmodus; 0x02 = Fehler erkannt; 0x11 = Bereit für Standby; 0x31 = Wenn ein Steuergerät erkennt dass es selbst und alle anderen bereit für den Standby sind, legt dieser Wert den Ring für den Standby lahm. Der Ring wird erst wieder aufgeweckt wenn der Ringmaster 0x400 seine Initialisierungsbotschaft schickt.
    Byte 3: 0x00 = Normalmodus; 0x80 = Anmeldung
    Der beim Polo zugelassene CAN ID Bereich liegt bei: 0x400 - 0x43F

  • @christopherhampe6848
    @christopherhampe6848 2 года назад +1

    Segmentgrößen:
    Ganzes Display 0x00 : 40h x 58h (0h - 15h; 16h - 48h;
    Navi-/MFA-Anzeige 0x10 : 40h x 33h (0h - 32h)
    Radioanzeige 0x20 : 40h x 16h (0h - 15h)
    Ganganzeige 0x30 : 40h x 0Ch (0h - 0Bh)
    Radioanzeige + Navi-/MFA-Anzeige 0x40 : 40h x 4Ch (0h - 15h, 16h - 48h)
    Ganganzeige + Navi-/MFA-Anzeige 0x50 : 40h x 3Fh (0h - 32h; 33h - 3eh)

  • @christopherhampe6848
    @christopherhampe6848 2 года назад

    Transport Protokoll 1.6
    Grundlegender Ablauf der Kommunikation bei TP 1.6:
    1. Aufbau eines Kommunikationskanals mit dem Aushandeln der Kommunikations IDs
    2. Austauschen von protokollbedingten Daten z.B. Timingwerte (Schon ab hier mit den ausgehandelten Kommunikations IDs)
    3. Senden von Nutzdaten
    4. Richtungswechsel
    5. Empfangen von Nutzdaten
    6. Richtungswechsel oder Beendigung der Kommunikation
    // Im Falle der Beendigung ist hier schluss, bei Richtungswechsel allerdings nicht!
    7. Senden von Nutzdaten
    8. Richtungswechsel
    9. USW....
    Aufbau des Kommunikationskanals
    Wenn das Radio beginnt:
    1. Radio frägt an
    2. Tacho antwortet
    Wenn Tacho beginnt:
    1. Tacho frägt an
    2. Radio antwortet
    Die Nachricht für Anfrage und Antwort ist 3 Datenbytes groß und besteht aus CAN ID (AAA), Geräte ID des Steuergerätes mit dem kommuniziert werden soll (BB),
    OP Code (CC), Die später gewünschte eigene Kommunikations ID (DD)
    0xAAA 0xBB 0xCC 0xDD
    Der 1. Schritt ist CAN Identifier (AAA).
    Jeder Teilnehmer hat eine Basis ID und eine Geräte ID.
    Die Basis ID des Radios ist 0x4A0
    Die Geräte ID des Radios ist 0x36 oder 0x39. Beides ist später möglich, ich gehe nun weiterhin von 0x36 aus.
    Die Basis ID des Tachos ist 0x2E0
    Die Geräte ID des Tachos ist 0x08.
    Um den Identifier für die Anfrage zu erhalten, addiert man Basis ID und Geräte ID:
    Radio = 0x4D6
    Tacho = 0x2E8
    Der 2. Schritt ist der OP Code (CC)
    Es gibt 3 Möglichkeiten:
    0xC0 = Anfrage
    0xD0 = Antwort
    0xD8 = Ablehnen der Kommunikation
    Der 3. Schritt ist die Kommunikations ID (DD)
    Sie errechnet sich aus der Basis 0x600 + Geräte ID Radio 0x36 + eines Gerätespezifischen Offsets Tacho 0x60, Radio 0x80, jeh nach dem wer die Nachricht sendet.
    Man verrechnet an dieser Stelle die Geräte ID des Radios, da mehrere Teilnehmer gleichzeitig einen TP Kanal zum Tacho geöffnet haben können.
    Daraus resultieren die Kommunikation IDs:
    Tacho: 0x696
    Radio: 0x6B6
    Da die Basis von 0x600 anscheinend offensichtlich ist, wird jeweils nur das niederwertige Byte übertragen, d.h. für das Radio 0xB6 und für den Tacho 0x96.
    Nun ein Beispiel zu einem kompletten Kommunikationsablauf
    bei dem das Radio die Kommunikation aufbaut:
    0x4D6 0x08 0xC0 0xB6
    0x2E8 0x36 0xD0 0x96
    bei dem der Tacho die Kommunikation aufbaut:
    0x2E8 0x36 0xC0 0x96
    0x4D6 0x08 0xD0 0xB6
    Austauschen von protokollbedingten Daten
    Soweit so gut, Die Kommunikation ist aufgebaut, die Identifier für weitere Übertragungen ausgehandelt ( 0xB6 und 0x96 )
    Nun werden protokollbedingte Daten ausgetauscht, wie Blockgröße ( Wird später erläutert ) und Timingwerte.
    Wenn das Radio die Kommunikation initiierte:
    1. Radio sendet protokollbedingte Daten
    2. Tacho antwortet mit protokollbedingten Daten
    Wenn der Tacho die Kommunikation initiiert hat, ist das Ganze genau andersrum.
    Die Nachricht dafür ist 6 Datenbytes groß und besteht aus CAN ID (AAA), OP Code (BB), Blockgröße (CC) und den Timingwerten (T0 - T3)
    0xAAA 0xBB 0xCC 0xT0 0xT1 0xT2 0xT3
    Der 1. Schritt ist die CAN ID (AAA)
    Ab hier werden bis zur Beendigung/Quittierung des TP Kanals die Kommunikations IDs der sendenden Teilnehmer verwendet.
    Wenn das Radio die Nachricht sendet: 0x6B6
    Der Tacho: 0x696
    Der 2. Schritt ist der OP Code (BB)
    Hier gibt es 2 Möglichkeiten:
    0xA0 = Anfrage
    0xA1 = Antwort
    Der 3. Schritt ist die Blockgröße (CC)
    Die Blockgröße gibt an, ab wieviel gesendeten Nutzdatennachrichten ein Acknowledge erwartet wird. Dazu später mehr.
    Der Wertebereich liegt zwischen 0x01 und 0x0F
    Der 4. Schritt sind Timingwerte (T0 - T3)
    T0: Maximale Zeit zwischen zwei Nachrichten (Bei überschreiten erfolgt Quittierung)
    T1: Maximale Zeit zwischen zwei Blöcken
    T2: Minimalste Zeit zwischen zwei Nachrichten
    T3: ?
    Jedes Timingbyte besteht aus einem 2 Bit Prescaler und einem 6 Bit Multiplikator.
    ( PRESC1 | PRESC0 | MUL5 | MUL4 | ... | MUL0 )
    Prescalerwerte:
    00 = 100 µS
    01 = 1 mS
    10 = 10 mS
    11 = 100 mS
    Multiplikatorwerte:
    0x00 - 0x3F
    Der Prescaler wird einfach mit dem Multiplikator multipliziert... wie der Name schon sagt
    Nun ein Beispiel für den Kommunikationsablauf
    wenn das Radio die Kommunikation initiierte:
    0x6B6 0xA0 0x04 0x82 0x84 0x46 0xC5
    0x696 0xA1 0x04 0x8A 0x85 0x43 0x94
    wenn der Tacho die Kommunikation initiierte:
    0x696 0xA0 0x04 0x8A 0x85 0x43 0x94
    0x6B6 0xA1 0x04 0x82 0x84 0x46 0xC5
    Senden von Nutzdaten
    Eine Nutzdatennachricht ist 1 - 8 Datenbytes groß und besteht aus der CAN ID (AAA), dem Kontrollbyte (BB) und den Nutzdatenbytes (D0 - D6)
    0xAAA 0xBB 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6
    Der 1. Schritt ist die CAN ID (AAA)
    Hier werden wieder die Kommunikations IDs verwendet (0x6B6 und 0x696).
    Der 2. Schritt ist das Kontrollbyte (BB)
    Hier wird es komplizierter, da dieses Byte einen großen Teil des TP 1.6 beinhaltet.
    Die einelnen Bits des Bytes:
    ( NV | NV | /ACK ANFORDERN | RICHTUNGSWECHSEL | ZÄHLERBITS 3 - 0 )
    Bit 7 und 6 sind nicht verwendet.
    Bit 5 ist 0-Aktiv. Ist dieses "LOW" schickt der Empfänger ein Acknowledgement.
    Bit 4 ist 1-Aktiv. Ist dieses "HIGH" so wird ein Richtungswechsel erzwungen und der Empfänger fängt an Daten zu senden.
    Das Lownipple (Bit 3 - 0) des Kontrollbytes wird mit jeder verschickten Nachricht inkementiert. Bei einem Überlauf (> 0xf) geht es einfach wieder bei 0x0 weiter.
    Nach einem Richtungswechsel geht es ebenfalls wieder mit 0x0 weiter.
    Die Acknowledgement Botschaft ist 1 Byte lang und besteht aus CAN ID (AAA) und der eigentlichen ACK Botschaft (BB).
    0xAAA 0xBB
    Der 1. Schritt ist die CAN ID (AAA)
    Hier werden wieder die Kommunikations IDs verwendet (0x6B6 und 0x696).
    Der 2. Schritt ist die ACK Botschaft (BB)
    Das Highnipple ist immer 0xB
    Das Lownipple inkrementiert mit jeder bereits erhaltenen Nutzdatennachricht.
    Nun habe ich die richtige Stelle erreicht um das Thema mit den "Blöcken" anzuschneiden. Ein Block besteht aus einer gewissen Anzahl von Nutzdatennachrichten.
    Diese Anzahl wird wie schon beschrieben, beim Austausch von protokollbedingten Daten festgelegt. In Falle meines Beispiels oben ist ein Block 4 Nutzdatennachrichten groß.
    Das heißt: Bei jeder 4. Nutzdatennachricht wird Bit 5 des Kontrollbytes "LOW" und der Empfänger schickt eine ACK Nachricht. Wird ein Block nicht voll ( Nur 1 - 3 Nutzdatennachrichten ),
    so sendet der Empfänger das letzte Acknowledgement beim Richtungswechsel.
    Nach dem Richtungswechsel sendet der ursprüngliche Empfänger (wird zum Sender) seine Daten nach dem gleichen Schema.
    Nachdem ein Richtungswechsel stattgefunden hat und der nun sendende Teilnehmer keine Daten zum Senden hat, Quittiert der Teilnehmer die Kommunikation.
    Die Quittierungsbotschaft ist 1 Byte lang und besteht aus CAN ID (AAA) und dem OP Code (BB).
    0xAAA 0xBB
    Der 1. Schritt ist die CAN ID (AAA)
    Hier werden wieder die Kommunikations IDs verwendet (0x6B6 und 0x696).
    Der 2. Schritt ist der OP Code (BB)
    0xA8 = Quittieren
    Ein Beispiel zum Kommunikationsablauf:
    0x4D6 0x08 0xC0 0xB6 // Initiieren der Kommunikation
    0x2E8 0x39 0xD0 0x96
    0x6B6 0xA0 0x04 0x82 0x84 0x46 0xC5 // Austauschen der protokollbezogenen Parameter
    0x699 0xA1 0x04 0x8A 0x85 0x43 0x94
    0x6B6 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00 // Senden von Nutzdaten
    0x6B6 0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x6B6 0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x6B6 0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x00 // 4er Block voll, Acknowledgement angefordert
    0x696 0xB4 // Acknowledgement: 4 Nutzdatennachrichten erhalten
    0x6B6 0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x6B6 0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x00 // Letzte Nutzdatennachricht, Richtungswechsel!
    0x696 0xB6 // Acknowledgement: 6 Nutzdatennachrichten erhalten
    0x696 0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x696 0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x00
    0x6B6 0xB2 // Acknowledgement: 2 Nutzdatennachrichten erhalten
    0x6B6 0xA8 // Kommunikation quittieren

  • @christopherhampe6848
    @christopherhampe6848 2 года назад +1

    der späte Golf 4 mit CAN ist dem PQ24 in der CAN Datenfestlegung beim Komfort CAN seeehr ähnlich, beim Motor CAN identisch.
    Willst Du mehr über den MotorCAN herausfinden google: EDC15P Funktionsbeschreibung.. Lade dir die PDF runter und gehe im Inhaltsverzeichnis zum Abschnitt CAN.
    Die weiteren Kommentare sind:
    1. PQ24 Komfort CAN (was ich damals rausfinden konnte)
    2. TP 1.6 das zur Kommunikation mit der MFA über CAN verwendet wird
    3. Das Display Datenprotokoll, das mit TP1.6 verwendet wird, um das Display zu beschreiben

    • @ChrisseLow
      @ChrisseLow  2 года назад +1

      Hey, danke für die Infos. Hab das ganze Thema TP 1.6 sowie DDP schon im Polo Forum gelesen. Dasteht ja exakt der Wortlaut von dir. Ich werd mir das die Tage mal genauer ansehen

    • @christopherhampe6848
      @christopherhampe6848 2 года назад

      @@ChrisseLow Sii, habe die Tuts auch verfasst :) wobei ich zugeben muss, dass die Info mit den Timingwerten aus der EDC15 Funktionsbeschreibung stammt. Da is des TP1.6 auch erläutert. Ansonsten auch alles durch Logging und Versuche hart erarbeitet :D
      Schreibst mal auf polo9n.info ne PN, die UART Geschichte ist sau interessant. Das Ganze ist wahrscheinlich bis zu den frühen Fabia 2 Tachos anwendbar, die auch noch das NEC Board verwenden... Die ham schöne schwarz/weiße DFSTN Displays mit weißem Backlight

  • @christopherhampe6848
    @christopherhampe6848 2 года назад

    CAN IDs:
    Bordnetz:
    0x151:
    Byte 1L ?
    Byte 2H inkrementert um 5, start 2;
    Byte 3H inkrementert um 5, start 2;
    Byte 3L wie 1L
    0x271 = byte 0 bit 0 schlussel steckt
    wertigkeit 3 = anlassen beginnt
    5 = zwischenstufe
    7 = zundung an
    b = anlassen
    0x351:
    Byte 0H Zündung 0 = aus, 8 = AN
    Byte 0L Rückwärtsgang 0 = Aus, 2 = An
    Byte 1,2 Geschwindigkeit
    Byte 3,4 Wegimpuls
    Byte 5 Außentemperatur 1
    Byte 6 Außentemperatur 2
    Byte 7 ?
    0x353:
    Byte 0 ?
    Byte 1,2 Drehzahl
    Byte 3 Kühlwassertemperatur
    Byte 4 ?
    Byte 5 ?
    0x371 = byte 0
    bit 0 fahrertur
    bit 1 beifahrer
    bit 2 hinten links
    bit 3 hinten rechts
    byte 2
    bit 0,1 kofferraum
    bit 3 motorhaube
    bit 6,7 fahrer beifahrer nicht ausgestiegen nach zundung aus
    0x400 = Ring
    0x470 = Licht, Byte 1 Türen, Byte 0 Blinker
    0x571:
    Byte 0 Batteriespannung (/2 + 50)
    0x635 = licht
    ox651 = ?
    ox653 = ?
    ox659 = ?
    0x5D1 = ?
    Tacho:
    408 = Ring
    551 = ?
    621:
    Byte 0 Kontrolllampen
    Byte 1 Tankinhalt
    62f = Lenkstock, Displaystatus
    Klima
    3E1 = ?
    40C = Ring
    Komfort
    591:
    Byte 1 Verriegelung 4 = safe, 1 = innenraum; 2 unsafe