|
ATR Info Siemens CardOS 4.3B
|
ATR Analyse Gemalto Classic TPC IS |
| |
|
|
|
Exemplarisch finden Sie zur Gemalto Classic TPC IS (GemSafe Xpresso 32K) eine detaillierte Aufschlüsselung der einzelnen Parameter der ATR vorgenommen, um die ATR-Grundlagen
anhand eines Beispiels zu demonstrieren. Dabei werden unter der Spalte ATR Bytes die hexadezimalen Werte dargestellt und in der Spalte Parameter ihre Interpretationen. Die Notation 0xhh steht für Hexadezimalzahlen.
Die Chipkarte verfügt über zwei ATR’s. Beim ersten Reset wird ATR 1 and den Kartenleser übermittelt. Kann der Kartenleser mit den Parametern arbeiten, wird die Kommunikation fortgesetzt. Kann der Kartenleser mit den Werten nicht betrieben werden, kann er mittels erneutem Reset die ATR 2 anfordern um dann mit den langsameren Werten zu operieren. Vertiefend sei die ISO/IEC 7816-3 empfohlen.
Die Classic TPC IS Karte ist eine T=0 Karte, bei den T=1 Karten gibt es Protokoll spezifische Parameter, siehe dazu ATR-Infos der CardOS 4.3B
Karte von Siemens.
|
 |
|
|
|
ATR 1: 3b7d94000080318065b08301029083009000 |
|
TS=0x3b (direct) |
Direct Convention: Low = 0, High = 1; LSB wird zuerst übertragen |
T0=0x7d (Y(1)=7,K=13) |
MSN: 0111, 1 steht für Auftreten von Interface Characters (TD(1) - TA(1)); LSN: Anzahl der Historical Bytes (13) |
TA(1)=0x94 (FI=9,DI=4) |
FI (Clock rate conversion factor): 9(1001) -> 512, f(max) = 5 MHz; DI (Baud rate adjustment factor): 4(0100) -> 8 |
TB(1)=0x00 (II=0,PI1=0) |
II (Reference to max. programming current) 0(00) -> 25mA; PI (Programming Voltage) 0(00000) -> Keine Spannung an Vpp |
|
TC(1)=0x00 (N=0) |
Referenzwert für die Berechnung einer zusätzlichen Guardtime (Zeit zwischen zwei Datenbytes bei der Übertragung) |
|
T1=0x80 |
Historical Byte |
|
T2=0x31 '1' |
Historical Byte |
|
T3=0x80 |
Historical Byte |
|
T4=0x65 'e' |
Historical Byte |
|
T5=0xb0 |
Historical Byte |
|
T6=0x83 |
Historical Byte |
|
T7=0x01 |
Historical Byte |
|
T8=0x02 |
Historical Byte |
|
T9=0x90 |
Historical Byte |
|
T10=0x83 |
Historical Byte |
|
T11=0x00 |
Historical Byte |
|
T12=0x90 |
Historical Byte |
|
T13=0x00 |
Historical Byte |
|
TCK is missed. |
Kein Check Byte |
|
 |
 |
 |
 |
 |
|
|
|
f(min)=1000kHz (default) |
Minimale Frequenz: 1MHz |
|
f(max)=5000kHz |
Maximale Frequenz: 5MHz |
|
Fi=512 |
Clock rate conversion factor |
|
Di=8 |
Baud rate adjustment factor |
|
N=0 |
Extra Guardtime |
|
P=0dV |
Programmierspannung |
|
I=25mA |
Programmierstrom |
|
X=Not supported (default) |
Clock stop Indikator |
|
U=A only (default) |
Class indicator für die Betriebsbedingungen. Klasse A = 5V, Klasse B = 3V |
|
WI=10 (default) |
Faktor zur Berechnung der Work Waiting Time (Zeit zwischen den Vorderflanken zweier aufeinander folgenden Characters) |
|
T(supp)=0 |
Protokoll Typ: T=0 |
|
 |
 |
 |
 |
 |
|
ATR 2: 3b6d000080318065b08301029083009000 |
|
TS=0x3b (direct) |
Direct Convention: Low = 0, High = 1; LSB wird zuerst übertragen |
T0=0x6d (Y(1)=6,K=13) |
MSN: 0110, 1 steht für Auftreten von Interface Characters (TD(1) - TA(1)); LSN: Anzahl der Historical Bytes (13) |
TB(1)=0x00 (II=0,PI1=0) |
II (Reference to max. programming current) 0(00) -> 25mA; PI (Programming Voltage) 0(00000) -> Keine Spannung an Vpp |
|
TC(1)=0x00 (N=0) |
Referenzwert für die Berechnung einer zusätzlichen Guardtime (Zeit zwischen zwei Datenbytes bei der Übertragung) |
|
T1=0x80 |
Historical Byte |
|
T2=0x31 '1' |
Historical Byte |
|
T3=0x80 |
Historical Byte |
|
T4=0x65 'e' |
Historical Byte |
|
T5=0xb0 |
Historical Byte |
|
T6=0x83 |
Historical Byte |
|
T7=0x01 |
Historical Byte |
|
T8=0x02 |
Historical Byte |
|
T9=0x90 |
Historical Byte |
|
T10=0x83 |
Historical Byte |
|
T11=0x00 |
Historical Byte |
|
T12=0x90 |
Historical Byte |
|
T13=0x00 |
Historical Byte |
|
TCK is missed. |
Kein Check Byte |
|
 |
 |
 |
 |
 |
|
|
|
f(min)=1000kHz (default) |
Minimale Frequenz: 1MHz |
|
f(max)=5000kHz |
Maximale Frequenz: 5MHz |
|
Fi=372 (default) |
Clock rate conversion factor (Da keine Angabe in ATR -> Standardwert verwenden) |
|
Di=1 (default) |
Baud rate adjustment factor (Da keine Angabe in ATR -> Standardwert verwenden) |
|
N=0 |
Extra Guardtime |
|
P=0dV |
Programmierspannung |
|
I=25mA |
Programmierstrom |
|
X=Not supported (default) |
Clock stop Indikator |
|
U=A only (default) |
Class indicator für die Betriebsbedingungen. Klasse A = 5V, Klasse B = 3V |
|
WI=10 (default) |
Faktor zur Berechnung der Work Waiting Time (Zeit zwischen den Vorderflanken zweier aufeinander folgenden Characters) |
|
T(supp)=0 |
Protokoll Typ: T=0 |
|
 |
 |
 |
 |
 |
|
Bedeutung der Parameter |
Aus den einzelnen Bytes der ATR lassen sich die, in den Tabellen Parameter aufgeführten, Werte extrahieren.
f(min): Minimale Frequenz, mit der die Karte angesprochen werden kann. f(max): Maximale Frequenz, mit der die Karte angesprochen werden kann. Fi: Clock rate conversion factor. Di: Baude rate adjustment factor. N: Extra guardtime P: Programmierspannung I: Programmierstrom X: Clock stop indicator U: Class indicator für Betriebsbedingungen. Klasse A = 5V, Klasse B = 3VIFSC: Maximum information field size for cards; Maximallänge von Blöcken die die Karte empfangen kann. BWI: Block waiting time integer. Dient zur Berechnung der Block waiting time (BWT). Die maximale Verzögerung zwischen der Vorderflanke des letzten Characters in einem Block bis zur Vorderflanke des ersten Characters des nächsten Blocks. CWI: Character waiting time integer. Dient zur Berechnung der Character waiting time (CWT). Die maximale Verzögerung der Vorderflanken zweier aufeinander folgender Characters innerhalb eines Blocks. EDC: Error detection code. Gibt die Art der Error Detection (LRC, CRC) an. T: Protokoll Typ.
Wesentlicher Unterschied der beiden ATR’s sind die Werte für Fi und Di, die Einfluss auf die Kommunikationsgeschwindigkeit (Baudrate) haben.
ATR 1: Fi: 512, Di: 8 ATR 2: Fi: 372, Di: 1
Die Baudrate ermittelt sich aus der (Frequenz / Teilerfaktor Fi)* Teilerfaktor Di
Kann der Kartenleser bereits mit den Werten der ATR 1 betrieben werden, so ist auch der Performance-Wert des Lesers besser, da er Kommandos an die Karte schneller übermitteln kann. Muss der Leser jedoch aufgrund seiner Spezifikation mit der ATR 2 betrieben werden, fallen die Performance-Werte schlechter aus.
|
Fazit |
Wie ein Kartenleser beim Reader Test abschneidet, hängt sehr stark von der eingesetzten Chipkarte ab. Konkret ist die mögliche etu (elementary time unit), die Dauer der Übertragung eines Bits, verantwortlich für die Kommunikationsgeschwindigkeit. Zur Berechnung der etu sind die folgenden beiden Faktoren relevant: Die Frequenz (MHz) mit der die Karte angesprochen werden kannDer Faktor F/D Die Formel für die Berechnung der etu lautet:
1 etu = (F/D) * (1/f)
F = Clock rate conversion factor D= Baud rate adjustment factor f = Frequency (Hz)
Mit konkretem Bezug auf die Gemalto Classic TPC IS (GemSafe Xpresso 32K) Karte ergibt sich für die ATR 1 eine etu von ca.12 ms (bei Fi = 512, Di = 8, f = 5 MHz) im Vergleich zur ATR 2, bei der nur eine etu von ca. 74 ms (bei Fi = 372, Di = 1, f = 5 MHz) erreicht wird. Für den Anwender interessanter ist jedoch die Baudrate, mit der die Karte kommunizieren kann. Sie berechnet sich wie folgt:
Baudrate = (f/F) * D
Für die ATR 1 ergibt sich daher eine maximale Baudrate von 78125; für die ATR 2 von 13440. Diese Werte sind die, die die Karte maximal akzeptiert. Entscheidend ist, mit welcher Frequenz der Kartenleser getaktet ist wodurch sich auch eine andere Baudrate ergeben kann. Dadurch wird es möglich, dass ein Kartenleser mit einer Karte schnell und mit einer anderen vielleicht nur langsam kommunizieren kann. Diese Erkenntnis schlägt sich auch im Reader Test nieder.
|
|
|
|
|
|
|
|
|