README.md 5.1 KB
Newer Older
axel.maurer's avatar
axel.maurer committed
1
## KIT-Card Reader  
axel.maurer's avatar
axel.maurer committed
2
3
4
5
6

Voraussetzung zur Nutzung dieser Software ist ein [ELATEC Multitech oder Mifare TWN4](https://www.elatec-rfid.com/de-de/produktdetail/twn4-multitech) und das zugehörige [Dev-Kit](https://www.elatec-rfid.com/de-de/twn4-dev-pack). Die Kosten für einen Leser liegen bei ca 100 € zzgl MwSt (Stand Juli 2021).
Das Dev-Kit muss installiert sein, der Leser über USB angeschlossen. Das Dev-Kit ist nur unter Windows nutzbar. Die Programmierung des Leser muss damit immer unter Windows erfolgen, auch dann, wenn die Nutzung des Lesers unter Linux erfolgen soll.
Der KIT-Card Reader kennt zwei Modi:

axel.maurer's avatar
axel.maurer committed
7
8
- reader mode --> USB Tastatur (HUD Device, engl. Tastaturlayout)
- serial mode --> Serial device (über VCOM Treiber)
axel.maurer's avatar
axel.maurer committed
9

axel.maurer's avatar
axel.maurer committed
10
In beiden Fällen muss der Leser an einen Rechner angeschlossen sein. Ein Stand-Alone Betrieb ist nicht möglich, auch dann nicht, wenn der Leser so programmiert ist, dass er die Funktionen eigenständig ausführt. Die Treiber für beide Varianten werden von Windows und Linux mitgeliefert. Eine Treiber-Installation ist in der Regel nicht erforderlich.
axel.maurer's avatar
axel.maurer committed
11
12
13
Zur Übersetzung und zum Laden der Firmware wird `make.bat` aufgerufen. Folgende Parameter können angegeben werden:

zwei `.bat` Dateien: `build_reader.bat` und `build_serial.bat`. Vor der Nutzung  müssen die Pfade und Parameter eingestellt werden. Folgende Parameter sind dabei zu beachten:
axel.maurer's avatar
axel.maurer committed
14
15

```
axel.maurer's avatar
axel.maurer committed
16
17
18
19
20
21
22
23
24
25
26
USAGE:
  make.bat [flags] "serial|reader"

  -?, --help                   shows this help
  -v, --version                shows the version
  -e, --verbose                shows detailed output
  -d, --debug                  debug messages on
  -s, --secure                 set secure mode
 -ek, --english_keyboard       set keyboard emulation mode in reader mode to english (default is german)
  -r, --reader_action "action" set the reader action
                               This option is mandatory in reader mode
axel.maurer's avatar
axel.maurer committed
27
```
axel.maurer's avatar
axel.maurer committed
28

axel.maurer's avatar
axel.maurer committed
29
30
31
> READER_ACTION --> Standardfunktion, die ausgeführt werden soll, wenn eine Karte aufgelegt wird. Dabei ist zu beachten, dass im reader mode nur Funnktionen angegeben werden können, die nur Daten ausgeben.<br />
> SECURE --> Nur im serial mode verfügbar. Damit werden nur Funktionen im SECURE-Mode freigeschaltet (siehe unten).<br />
> GERMAN_KEYBOARD --> Nur im reader mode verfügbar. Stellt den Reader auf deutsche Tastatur (Standard ist englische Tastatur).
axel.maurer's avatar
axel.maurer committed
32

axel.maurer's avatar
axel.maurer committed
33
Im serial mode kennt der Leser folgende Befehle, die über die serielle Schnittstelle an den Leser übergeben werden. Die seriellen Parameter sind:
axel.maurer's avatar
axel.maurer committed
34
35
36
37
38
39
40
41
42

    baudrate=9600,
    parity=NONE,
    stopbits=ONE,
    bytesize=EIGHTBITS
Unter Windows wird der Leser mit "comx" angesprochen unter Linux unter "/dev/ttyACMx", wobei x der Nummer der Schnittstelle entspricht.
Alle Befehle werden mit `0x0D`abgeschlossen. Zeichen dahinter werden ignoriert.
Alle Angaben sind als Zeichen zu übermitteln, wenn nichts anderes vermerkt ist.

axel.maurer's avatar
axel.maurer committed
43
Im serial mode werden alle Befehle direkt ausgeführt. Sollte zum Zeitpunkt der Ausführung keine Karte aufliegen, so kommt die Meldung "09,no card for action 1". Das heißt die Anwendung muss selbst die Warteschleife implementieren.
axel.maurer's avatar
axel.maurer committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Fehlermeldungen haben immer folgenden Aufbau: 
`<fehlernummer>,<Erläuterungen zum Fehler>`
|Befehl| App | Return |
|--|--|--|
| 1 | bwCard old (becaad) | bwCard-Nummer |
|10|bwCard old (becaad)|bwCard-Nummer encrypted (Hex)
|11|bwCard old (becaad)|bwCard-Nummer;readerUID (Hex)
|12|bwCard old (becaad)|cardUID (Hex);readerUID (Hex)
|13|bwCard old (becaad)|bwCard-Nummer encrypted (Hex)>;<readerUID (Hex
|20|Success Beep|Kein Returnwert
|20|Success Beep|Kein Returnwert
|20|Success Beep|Kein Returnwert
|21|Special Success Beep|Kein Returnwert
|30|Error Beep|Kein Returnwert
|31|Special Error Beep|Kein Returnwert
|50|read device UID|readerUID (Hex)
|51|Generate Login Data for secure functions|token for secure functions
|60| bwCard () | bwCard-Nummer |
|61|bwCard (F58860)|bwCard-Nummer encrypted (Hex)
|62|bwCard (F58860)|bwCard-Nummer;readerUID (Hex)
|63|bwCard (F58860)|cardUID (Hex);readerUID (Hex)
|64|bwCard (F58860)|bwCard-Nummer encrypted (Hex)>;<readerUID (Hex
|65|bwCard (F58860)|bwCard-Nummer;Scope;UID;ESCN
|70|OSS/SIPORT (F51773)|create OSS App  --> 0,app created *)
|71|OSS/SIPORT (F51773)| OSS Info File

*)Liest die bwCard Nummer (aus 0xbecaad oder 0xcc1580), legt die OSS App an, falls erforderlich und schreibet die bwCard Nummer in die OSS APP

#### Secure Mode
Zusätzlich zu obigen Funktionen ist noch eine "SECURE-Mode" implementiert. Im Secure Mode folgen die Befehle dem in der Abbildung gezegten Modus.
![coding_sequence](https://www.plantuml.com/plantuml/svg/bLHHJy8m47xlhxXtDL4UIJGa86IIg468ZwQkvsWOLsmxa7zlrurQnc1nJzlTztrtzrsxWR5SssATGwg4fEp3u7U1b29ZmrmYMRXvW27NOePSe8O-9C_9d4MHPbwx5vZYlWmsSPLY7nufrVkDHG4BWth4BO-glQ7UUgLSPP9QmJN4WSlFJsxGmOTBJ5VmfRJ7iP299SiCl4mZWP2Q8A7c5i6g5T9j10bjFxtFOIVj4XBX0jBkgsbHBwI0Ay3GQ2rnni4J76CyjN9R5gyeB5Tg0vAabJm7WyP8HSa8xl_gNLVaEnUhLS0zBIwgpRWW9w_88recpuucxpLWaSF6AjsDcg25LwxNnaDErz1W1dSz1pZLjlGYdxpfrRoDCO-C_O_2-GCiq9DgjOZebV47qy9vrR3rWbxi6d03XBiBdHpS2AtFq1IvZVhedTjq5wLrMvdRLeJfN5UeTh2fAjPrQ5fHOLXTDPoGkxrhxar54anWyruCNDZzh7u1 "coding_sequence")

axel.maurer's avatar
axel.maurer committed
76
Die implementierten Befehle im Secure Mode werden auf Nachfrage beschrieben.
axel.maurer's avatar
axel.maurer committed
77