# Answer to Select

Answer to Select, kurz ATS, ist Teil der Aktivierungssequenz für Chipkarten, die kontaktlos nach Standard ISO/IEC 14443 kommunizieren. Der ATS ist die Antwort auf den Request To Answer To Select, kurz RATS und wird nur für das kontaktlose Kommunikationsprotokoll Typ A verwendet. Wie der ATR in der kontaktbehafteten Kommunikation von Chipkarten handelt es sich beim ATS um eine Reihe von Parametern, mit denen die Chipkarte dem Chipkartenleser mitteilt, wie er mit ihr kontaktlos kommunizieren kann.

## Inhalt

Der Inhalt des ATS wird in der Chipkartenspezifikationen ISO/IEC 14443 spezifiziert und ist von den Fähigkeiten der Chiphardware (UART) und der Protokollimplementierung des Chipkarten Betriebssystems abhängig. Im ATS werden unter anderem die unterstützten Bitraten für Terminal und Chipkarte, die Rahmengröße für die weitere Kommunikation und die Warte- und Schutzzeiten für Kommunikationsrahmen angegeben.

## Struktur

Der ATS ist eine Reihe von Bytes. Davon sind das Längenbyte TL und 2 Checksummenbytes verpflichtend. Alle weiteren Bytes sind optional, d. h. der kürzeste ATS besteht aus 3 Bytes.
| TL | T0 | TA1 | TB1 | TC1 | Historical Characters | CRC1 | CRC2 |
Folgende Datentypen kann man im ATS unterscheiden:
| Datenelement | Bezeichnung (engl.) | Bedeutung |
| TL | Length Byte | Länge des ATS inklusive des TL Bytes selbst ohne die beiden Checksummen Bytes. |
| T0 | Format Byte | Dieses Byte enthält die maximal unterstützte Rahmengröße FSCI (Frame Size for proximity Card Integer) und zeigt das Vorhandensein der Interface Bytes TA1, TB1 und TC1 im ATS an. |
| TA1, TB1, TC1 | Interface Bytes | Diese Bytes geben Kommunikationsparameter an. |
| T1, T2... | Historical Bytes | Die Historical Bytes sind eine Kette von maximal 15 Bytes, deren Inhalt nicht festgelegt ist. |
| CRC1 und CRC2 | Check Bytes | Checksumme über alle ATS Bytes beginnend ab Byte TL. |

### Das Längen Byte TL

Dieses Byte gibt die Länge des ATS inklusive des TL Bytes selbst an. Die beiden Checksummen Bytes werden nicht zur Länge des ATS gezählt.

### Das Format Byte T0

Das Format Byte enthält zwei Informationen:
* Angabe über die folgenden Interface Characters TA1, TB1 und in den Bits 5 bis 7.
* Den FSCI, der die maximale Rahmengröße FSC (Frame Size for proximity Card), die die Karte verarbeiten kann codiert. Die default Rahmengröße is 32 Bytes, d. h. ist T0 nicht im ATS enthalten, wird vom Terminal FSCI=2 angenommen.
| Bit | Bedeutung |
| b8 | Immer 0, reserviert für zukünftige Nutzung. |
| b7 | Zeigt die Übertragung des TC1 Bytes an (1 = TC1 vorhanden, 0 = TC1 nicht vorhanden) |
| b6 | Zeigt die Übertragung des TB1 Bytes an (1 = TB1 vorhanden, 0 = TB1 nicht vorhanden) |
| b5 | Zeigt die Übertragung des TA1 Bytes an (1 = TA1 vorhanden, 0 = TA1 nicht vorhanden) |
| b4 | FSCI (0 bis 8) |
| b3 | FSCI (0 bis 8) |
| b2 | FSCI (0 bis 8) |
| b1 | FSCI (0 bis 8) |
Die folgende Tabelle zeigt die Rahmengröße zum jeweiligen FSCI:
| FSCI | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 bis 15 |
| FSC | 16 | 24 | 32 | 40 | 48 | 64 | 96 | 128 | 256 | Für zukünftige Nutzung |

### Das Interface Byte TA1

Das Interface Byte TA1 enthält folgende Informationen:
* Bit b8 zeigt die Unterstützung unterschiedlicher Divisoren für die Datenübertragung von Karte zum Terminal und Terminal zur Karte an.
* Die Bits b7 bis b5 geben die Unterstützung der Divisoren 2, 4 und 8 beim Senden von Daten von der Karte zum Terminal.
* b4 ist immer 0 und reserviert für spätere Nutzung.
* Die Bits b3 bis b0 zeigen die Unterstützung der Divisoren 2, 4 und 8 beim Senden von Daten vom Terminal zur Karte.
| Bit | Bedeutung |
| b8 | Zeigt, ob unterschiedliche Divisoren D für die beiden Kommunikationsrichtungen unterstützt werden (0 = verschiedene Divisoren unterstützt, 1 = verschiedene Divisoren nicht unterstützt) |
| b7 | Unterstützung Divisor 8 für Kommunikation von Karte zu Terminal (1 = Divisor 8 wird unterstützt, 0 = Divisor 8 wird nicht unterstützt) |
| b6 | Unterstützung Divisor 4 für Kommunikation von Karte zu Terminal (1 = Divisor 4 wird unterstützt, 0 = Divisor 4 wird nicht unterstützt) |
| b5 | Unterstützung Divisor 2 für Kommunikation von Karte zu Terminal (1 = Divisor 2 wird unterstützt, 0 = Divisor 2 wird nicht unterstützt) |
| b4 | Immer 0, reserviert für zukünftige Nutzung. |
| b3 | Unterstützung Divisor 8 für Kommunikation von Terminal zu Karte (1 = Divisor 8 wird unterstützt, 0 = Divisor 8 wird nicht unterstützt) |
| b2 | Unterstützung Divisor 4 für Kommunikation von Terminal zu Karte (1 = Divisor 4 wird unterstützt, 0 = Divisor 4 wird nicht unterstützt) |
| b1 | Unterstützung Divisor 2 für Kommunikation von Terminal zu Karte (1 = Divisor 2 wird unterstützt, 0 = Divisor 2 wird nicht unterstützt) |

### Das Interface Byte TB1

Das obere Halbbyte von TB1 enthält die Rahmenwartezeit und im unteren Halbbyte Startrahmenschutzzeit.

### Das Interface Byte TC1

Bit b1 in TC1 zeigt die Unterstützung des Feldes NAD (Node Address), Bit b2 die Unterstützung des Feldes CID (Card Identifier) an.

### Die Historical Characters

Der Inhalt der Historical Characters ist nicht festgelegt. Sie werden für verschiedene Informationen verwendet, zum Beispiel die Version des Betriebssystems. Oft wird dazu die Zeichencodierung ASCII verwendet.