Transponder-Codierung EM4102

Bei den RFiD-Transpondern „Unique“, die wir meist im Zeiterfassungsbereich verwenden, handelt es sich um sog. 125 kHz Transponder vom Typ EM4102. Diese Transponder zeichnen sich dadurch aus, dass Sie intern fest einprogrammiert eine weltweit eindeutige ID-Nummer haben, UID genannt. Diese UID ist 40 Bit = 5 Byte lang.

In unseren Programmen verwendet wir immer die vollständige 5-Byte-lange Codierung der Transponder, wenn Sie die Transponder aber bei Fremdherstellern kaufen, kann es auch oftmals vorkommen, dass eine andere Nummer aufgedruckt ist. Leider lassen sich diese Nummern nicht ohne weiteres Umrechnung, zumindest nicht von kurz nach lang…

10H>13D = Honeywell IK-2

Im Beispiel verwenden wir einen Transponder mit der internen Codierung:

:sieheauch: Hexadezimal 5 Byte = 10 Hex-Werte: 0A 0690 4E10

In Dezimal-Schreibweise ergibt dies umgerechnet den Wert (mit führenden 0en auf 13 Stellen aufgefüllt):

:sieheauch: Dezimal: 0 043 059 793 424

Diese Codierung verwenden wir im PepMax, das heißt diese Nummer muss im PepMax in den Stammdaten zur Identifizierung der Chipkarte hinterlegt werden.

Bezeichnet wird diese Art der Umrechnung auch oftmals als „10H>13D“, sprich: 10 Stellen Hexadezimal werden umgerechnet in 13 Stellen Dezimal, eben 10H>13D. Eine andere Bezeichnung dafür ist Honeywell IK-2.

08H>10D = WEG34

Alternativ findet man oftmals auch die Variante 08H>10D, hier wird von der internen Codierung einfach das erste Byte ignoriert und damit das Ergebnis gekürzt.

Das erste Byte der UID gibt in der Regel die Versionsnummer des Chips aus (i.d.R. immer 0) sowie den Hersteller (hier A).

:sieheauch: Hexadezimal: 0690 4E10

:sieheauch: Dezimal: 0 110 120 464

Das fehlende Byte am Anfang der internen Nummer lässt sich natürlich nicht einfach „erraten“, so dass eine Umrechnung von der „kurzen“ Nummer (10D) auf die lange Variante (13D) nicht möglich ist ohne zu raten. Wenn die Transponder aus der gleichen Quelle stammen, kann aber davon ausgegangen werden, dass die Hersteller-Kennung im ersten Byte immer identisch ist.

Achtung! Die gekürzte Darstellung der Transpoder-Codierung ist nicht mehr weltweit eindeutig! Unterschiedliche Hersteller können die gleiche WEG34-Codierung haben, wenn sich lediglich das Hersteller-Byte unterscheidet!

08H>55D = WEG32

Ebenfalls weit verbreitet ist die Darstellung als 08H>55D. Hier wird ebenfalls das erste Byte der Codierung ignoriert und einfach weggelassen. Die verbleibenden 4 Byte werden dann aber in zwei Gruppen á 2 Byte aufgetrennt, und jeweils getrennt voneinander als Dezimalwert interpretiert und anschließend einfach als 2 x 5-stellige Zahlen aneinandergehängt.

:sieheauch: Hexadezimal: 0690 + 4E10

:sieheauch: Dezimal: 01680 + 19984 = 0 168 019 984

Diese Darstellungsvariante trägt auch oftmals die Bezeichnung „WEG32“.

06H>08D

Ebenso gibt es eine noch kürzere Darstellung, indem nur die letzten 3 Byte verwendet werden, die ersten 2 Bytes werden wieder einfach ignoriert.

:sieheauch: Hexadezimal: 90 4E10

:sieheauch: Dezimal: 09 457 168

Aus 6 Stellen Hexadezimal werden damit 8 Stellen dezimal.

2.4H>3.5D (A)

Um die Vielfalt noch weiter zu erhöhen, gibt es nicht die Varianten 2.4H>3.5D, also 2+4 Stellen Hexadezimal in 3+5 Stellen Dezimal umzurechnen. Bei der ersten Variante wird hierbei das Byte 1 für den ersten Teil verwendet, Byte 2 und 3 werden ignoriert, und Byte 4 und 5 werden für den zweiten Teil verwendet.

:sieheauch: Hexadezimal: 0A + 4E10

Im Ergebnis gibt das dann 3.5D, also 3 + 5 Stellen dezimal, die wieder aneinander gehängt werden.

:sieheauch: Dezimal: 010 + 19984 = 01 019 984

2.4H>3.5D (B)

Anstelle die Bytes 2 + 3 zu ignorieren, könnte man aber auch alternativ hergehen, und die Bytes 1 + 3 ignorieren… das ergibt dann…

:sieheauch: Hexadezimal: 06 + 4E10 :sieheauch: Dezimal: 006 + 19984 = 00 619 984

2.4H>3.5D (C) -- auch WEG26 genannt

Oder als letzte Alternative: Es werden die Bytes 1 + 2 ignoriert, das Byte 3 wird als ersten Teil des Ergebnisses verwendet, und schließlich die Bytes 4 + 5 als zweiter Teil. Diese Variante ist auch unter dem Namen „WEG26“ verbreitet.

:sieheauch: Hexadezimal: 90 + 4E10

:sieheauch: Dezimal: 144 + 19984 = 14 419 984

IK-3 Code

Noch komplexer kann es werden, beispielsweise mit dem IK-3 Code. Hierbei wird wieder die ursprüngliche Hex-Codierung verwendet:

:sieheauch: Hexadezimal: 0A 0690 4E10

Diese Werte werden nun in einzelne Bytes zerlegt und getrennt im Bits umgerechnet.

:sieheauch: Bit-Gruppen: 0000 1010 (0A) + 0000 0110 (06) + 1001 0000 (90) + 0100 1110 (4E) + 0001 0000 (10)

Diese werden nun jeweils gespiegel (also einfach umgedreht):

:sieheauch: Bit-Gruppen: 0101 0000 + 0110 0000 + 0000 1001 + 0111 0010 + 0000 1000

Das Ergebnis wird nun wieder in Hex-Werte umgerechnet:

:sieheauch: Hexadezimal: 50 6009 7208

Dieser Hex-Wert wird nun wieder als Dezimalzahl interpretiert, wieder mit führender 0 als 13-stellige Zahl:

:sieheauch: Dezimal: 0 345 208 615 432

Dorma XS Code

Ähnlich erfolgt auch die Codierung im Dorma-XS-Code. Auch hier werden nur die letzten 4 Byte verwendet:

:sieheauch: Hexadezimal: 0690 4E10

Diese Werte werden nun in einzelne Bytes zerlegt und getrennt im Bits umgerechnet.

:sieheauch: Bit-Gruppen: 0000 1010 (0A) + 0000 0110 (06) + 1001 0000 (90) + 0100 1110 (4E) + 0001 0000 (10)

Diese werden nun jeweils gespiegel (also einfach umgedreht) – im Gegensatz im IK-3 Code werden aber nicht die Bytes als Ganzes gespiegelt, sondern immer nur 4-Bit-Gruppen:

:sieheauch: Bit-Gruppen: 0000 0101 + 0000 0110 + 1001 0000 + 0010 0111 + 1000 0000

Das Ergebnis wird nun wieder in Hex-Werte umgerechnet:

:sieheauch: Hexadezimal: 05 0690 2780

Dieser Hex-Wert wird nun wieder als Dezimalzahl interpretiert, wieder mit führender 0 als 13-stellige Zahl:

:sieheauch: Dezimal: 21 584 947 072

ELV TimeMaster

Zum Abschluss noch die Codierung bei ELV-TimeMaster, hier werden von der Codierung lediglich die letzten 26 Bit verwendet.

:sieheauch: Hexadezimal: 0A 0690 4E10

:sieheauch: Bit-Gruppen: 0000 1010 (0A) + 0000 0110 (06) + 1001 0000 (90) + 0100 1110 (4E) + 0001 0000 (10)

:sieheauch: Bit-Gruppen (gekürzt auf 26 Bit): (00)10 + 1001 0000 + 0100 1110 + 0001 0000

:sieheauch: Hexadezimal: 290 4E10

:sieheauch: Dezimal: 43 011 600

Zusammenfassung

Codierung Hexadezimal Dezimal
10H>13D / IK-2 0A 0690 4E10 0 043 059 793 424
08H>10D / WEG34 0690 4E10 0 110 120 464
08H>55D / WEG32 0690 + 4E10 0 168 019 984
06H>08D 90 4E10 09 457 168
2.4H>3.5D (A) 0A + 0690 4E10 01 019 984
2.4H>3.5D (B) 06 + 4E10 00 619 984
2.4H>3.5D (C) / WEG26 90 + 4E10 14 419 984
IK-3 50 6009 7208 0 345 208 615 432
Dorma XS 05 0690 2780 21 584 947 072
ELV TimeMaster 290 4E10 43 011 600

Tipp

Zur Umrechnung zwischen Hexadezimal und Dezimal können Sie den im Windows eingebauten Taschenrechner verwenden! Im Hamburger-Menü links oben müssen Sie diesen lediglich auf den „Programmierer“-Modus umschalten, um die Werte als Hex oder auch Dec zu sehen. Mit der blauen Markierung links können Sie umschalten, in welchem Modus Sie die Werte eingeben möchten.

pepmax/zevterminals/transponder-codierung-em4102.txt · Zuletzt geändert: 04.03.2018 03:52 von mkahlert · 6475 Zugriffe bisher