artikel:cd-wechsler:cd-changer_programming_algo

Erklärung des Kodierungsprozesses beim CD-Wechsler

Dies ist im Grunde nichts anderes als die hexadezimale Kodierung der Fahrgestellnummer (VIN). Bringt man die Bytes in einen Hex-Editor (z.B. HxD) sieht das so aus:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  57 46 30 47 58 E5 58 47 42 42 47 E4 37 55 33 32  WF0GXåXGBBGä7U32
00000010  32 9E 39 37 EC                                   2ž97ì

Man erkennt die VIN aber auch jeweils ein „anderes“ Byte dazwischen. Das sind Prüfsummen-Bytes. Lässt man die einfach weg, erhält man hier im Beispiel die Fahrgestellnummer WF0GXXGBBG7U32297.

Wollen wir nun unsere eigene VIN dort einkodieren, müssen wir diese nur in die Hexadezimalschreibweise umformulieren und die Prüfsummen-Bytes berechnen die jeweils am Ende einer jeden Bytesequenz steht. Der Berechnungsalgorithmus ist simpel: Es werden einfach alle Bytes, inkl. der Speicheradresse mit Überlauf auf einem Byte addiert.

Nehmen wir nun exemplarisch diese VIN als unsere eigene an WF0GXXGBBG0X00000. Dann fügen die Zeichen in den ASCII-Bereich eines Hex-Editors ein und erhalten diese Bytesequenz:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  57 46 30 47 58 58 47 42 42 47 30 58 30 30 30 30  WF0GXXGBBG0X0000
00000010  30                                               0

Die Bytes der VIN zerteilen wir jeweils in 5er Blöcke:

57 46 30 47 58
58 47 42 42 47
30 58 30 30 30
30 30
</codE>

Nun wandeln wir die Kodieradressen ebenfalls in Bytefolgen um. Dazu werden diese einfach von rechts nach links als Byte-Paare geschrieben. Aus ''770-01-01'' wird die Bytefolge ''07 70 01 01'', usw. Das Ergebnis sieht dann so aus: <code>
07 70 01 01
07 70 01 02
07 70 01 03
07 70 01 04

Jetzt fügen wir noch beides zusammen, pro Zeile immer erst die Kodieradresse, gefolgt von den VIN-Bytes und erhalten diese Byte-Sequenzen:

07 70 01 01 57 46 30 47 58
07 70 01 02 58 47 42 42 47
07 70 01 03 30 58 30 30 30
07 70 01 04 30 30

Aus jeder Sequenz berechnen wir nun mit Hilfe des Windows Rechners die Prüfsumme. Hierzu stellen den Rechner über das Menü links oben auf den „Programmierer“ Modus um. Anschließend klicken wir auf „HEX“ (blauer Balken erscheint links daneben) und die Genauigkeit auf „BYTE“ (da steht beim Start „QWORD“. Einfach draufklicken bis dort „BYTE“ steht):

Die Bytes einer jeden Sequenz nun nacheinander über die Tastatur eintippen und mit „+“ addieren. Nach Addition des letzten Bytes erhält man als Ergebnis die Prüfsumme:

07 + 70 + 01 + 01 + 57 + 46 + 30 + 47 + 58 = E5
07 + 70 + 01 + 02 + 58 + 47 + 42 + 42 + 47 = E4
07 + 70 + 01 + 03 + 30 + 58 + 30 + 30 + 30 = 93
07 + 70 + 01 + 04 + 30 + 30                = DC

Nun entfernen wird von jeder Sequenz die vorderen 4 Bytes (Kodieradresse) und lassen die Prüfsumme als letztes Byte jeder Sequenz stehen:

57 46 30 47 58 E5
58 47 42 42 47 E4
30 58 30 30 30 93
30 30 DC

Zuletzt bringen wir die Bytes nun in eine Form das wir sie in die Eingabefelder beim ForScan einfügen können. Dazu paaren wir jeweil zwei Bytes von links nach rechts (DWORD):

5746 3047 58E5
5847 4242 47E4
3058 3030 3093
3030 DC

Diese DWORDs können wir nun direkt in die Eingabefelder einfügen:

770-01-01 : [5746] [3047] [58E5]
770-01-02 : [5847] [4242] [47E4]
770-01-03 : [3058] [3030] [3093]
770-01-04 : [3030] [DC]

Noch auf „Write“ klicken und der CD-Wechsler ist kodiert und funktioniert.

  • artikel/cd-wechsler/cd-changer_programming_algo.txt
  • Zuletzt geändert: Thu. 07.03.2024 21:19
  • von wikiadmin