+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ \begin{block}{Ablaufschema}
+ \begin{enumerate}
+ \item Aktivierung der Kontakte durch das Terminal
+ \item Reset der Karte durch das Terminal
+ \item ATR der Karte
+ \item Abfolge von Datentransferen zwischen Karte und Terminal
+ \item Deaktivierung der Kontakte durch das Terminal
+ \end{enumerate}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ \onslide<1->{Aktivierung der Kontakte}
+ \onslide<7->{/ Reset / ATR}
+ \begin{columns}
+ \column{6cm}
+ \begin{pgfpicture}{0cm}{0cm}{6cm}{6cm}
+ % print contacts
+ \onslide<1->{
+ \pgfputat{\pgfxy(0,5)}{\pgfbox[left,base]{RST}}
+ \pgfputat{\pgfxy(0,4)}{\pgfbox[left,base]{VCC}}
+ \pgfputat{\pgfxy(0,3)}{\pgfbox[left,base]{VPP}}
+ \pgfputat{\pgfxy(0,2)}{\pgfbox[left,base]{CLK}}
+ \pgfputat{\pgfxy(0,1)}{\pgfbox[left,base]{$I/O_{sync}$}}
+ \pgfputat{\pgfxy(0,0)}{\pgfbox[left,base]{$I/O_{async}$}}
+ }
+ % rst low
+ \onslide<2->{
+ \pgfmoveto{\pgfxy(1.6,5)}
+ \pgflineto{\pgfxy(2,5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(1.6,4)}
+ \pgflineto{\pgfxy(2,4)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(1.6,3)}
+ \pgflineto{\pgfxy(2,3)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(1.6,2)}
+ \pgflineto{\pgfxy(2,2)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(1.6,1)}
+ \pgflineto{\pgfxy(2,1)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(1.6,0)}
+ \pgflineto{\pgfxy(2,0)}
+ \pgfstroke
+ }
+ % rst low & vcc high
+ \onslide<3->{
+ \pgfmoveto{\pgfxy(2,5)}
+ \pgflineto{\pgfxy(2.5,5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(2,4)}
+ \pgflineto{\pgfxy(2,4.5)}
+ \pgflineto{\pgfxy(2.5,4.5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(2,3)}
+ \pgflineto{\pgfxy(2.5,3)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2,2)}
+ \pgflineto{\pgfxy(2.5,2)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2,1)}
+ \pgflineto{\pgfxy(2.5,1)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2,0)}
+ \pgflineto{\pgfxy(2.5,0)}
+ \pgfstroke
+ }
+ % rst low & vcc high & i/o high
+ \onslide<4->{
+ \pgfmoveto{\pgfxy(2.5,5)}
+ \pgflineto{\pgfxy(3,5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2.5,4.5)}
+ \pgflineto{\pgfxy(3,4.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2.5,3)}
+ \pgflineto{\pgfxy(3,3)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2.5,2)}
+ \pgflineto{\pgfxy(3,2)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(2.5,1)}
+ \pgflineto{\pgfxy(2.5,1.5)}
+ \pgflineto{\pgfxy(3,1.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(2.5,0)}
+ \pgflineto{\pgfxy(2.5,0.5)}
+ \pgflineto{\pgfxy(3,0.5)}
+ \pgfstroke
+ }
+ % rst low & vcc high & i/o high & vpp high
+ \onslide<5->{
+ \pgfmoveto{\pgfxy(3,5)}
+ \pgflineto{\pgfxy(3.5,5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3,4.5)}
+ \pgflineto{\pgfxy(3.5,4.5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(3,3)}
+ \pgflineto{\pgfxy(3,3.5)}
+ \pgflineto{\pgfxy(3.5,3.5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(3,2)}
+ \pgflineto{\pgfxy(3.5,2)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3,1.5)}
+ \pgflineto{\pgfxy(3.5,1.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3,0.5)}
+ \pgflineto{\pgfxy(3.5,0.5)}
+ \pgfstroke
+ }
+ % rst low & vcc high & i/o high & vpp high & activate clock
+ \onslide<6->{
+ \pgfmoveto{\pgfxy(3.5,5)}
+ \pgflineto{\pgfxy(4,5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3.5,4.5)}
+ \pgflineto{\pgfxy(4,4.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3.5,3.5)}
+ \pgflineto{\pgfxy(4,3.5)}
+ \pgfstroke
+
+ \pgfrect[fill]{\pgfxy(3.5,2)}{\pgfxy(0.5,0.5)}
+
+ \pgfmoveto{\pgfxy(3.5,1.5)}
+ \pgflineto{\pgfxy(4,1.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(3.5,0.5)}
+ \pgflineto{\pgfxy(4,0.5)}
+ \pgfstroke
+ }
+ % rst low & vcc high & i/o high & vpp high & activate clock
+ % reset & io_sync atr
+ \onslide<7->{
+ \pgfmoveto{\pgfxy(4,5)}
+ \pgflineto{\pgfxy(4,5.5)}
+ \pgflineto{\pgfxy(4.5,5.5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(4,4.5)}
+ \pgflineto{\pgfxy(4.5,4.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(4,3.5)}
+ \pgflineto{\pgfxy(4.5,3.5)}
+ \pgfstroke
+ \pgfrect[fill]{\pgfxy(4,2)}{\pgfxy(0.5,0.5)}
+ \pgfmoveto{\pgfxy(4,1.5)}
+ \pgflineto{\pgfxy(4.5,1.5)}
+ \pgfstroke
+
+ \color{blue}
+ \pgfrect[fill]{\pgfxy(4,1)}{\pgfxy(0.5,0.5)}
+ \color{black}
+
+ \pgfmoveto{\pgfxy(4,0.5)}
+ \pgflineto{\pgfxy(4.5,0.5)}
+ \pgfstroke
+ }
+ % rst low & vcc high & i/o high & vpp high & activate clock
+ % reset & io_sync atr & io_async atr
+ \onslide<8->{
+ \pgfmoveto{\pgfxy(4.5,5.5)}
+ \pgflineto{\pgfxy(6,5.5)}
+ \pgfstroke
+
+ \pgfmoveto{\pgfxy(4.5,4.5)}
+ \pgflineto{\pgfxy(6,4.5)}
+ \pgfstroke
+ \pgfmoveto{\pgfxy(4.5,3.5)}
+ \pgflineto{\pgfxy(6,3.5)}
+ \pgfstroke
+ \pgfrect[fill]{\pgfxy(4.5,2)}{\pgfxy(1.5,0.5)}
+ \pgfmoveto{\pgfxy(4.5,1.5)}
+ \pgflineto{\pgfxy(6,1.5)}
+ \pgfstroke
+
+ \color{blue}
+ \pgfrect[fill]{\pgfxy(4.5,1)}{\pgfxy(1.5,0.5)}
+ \color{red}
+ \pgfrect[fill]{\pgfxy(4.5,0)}{\pgfxy(1.5,0.5)}
+ \color{black}
+ }
+ \end{pgfpicture}
+ \column{6cm}
+ \begin{enumerate}
+ \pause
+ \item RST auf 'low state'
+ \pause
+ \item VCC anlegen
+ \pause
+ \item I/O auf 'high state'
+ \pause
+ \item VPP 'idle state' anlegen
+ \pause
+ \item CLK anlegen
+ \pause
+ \item RST auf 'high state'\\
+ ATR auf $I/O_{sync}$
+ \pause
+ \item ATR auf $I/O_{async}$
+ \end{enumerate}
+ \end{columns}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ {\bf A}nswer {\bf T}o {\bf R}eset
+ \begin{block}{Asynchrone "Ubertragung}
+ \begin{itemize}
+ \item Zeichen"ubertragung "uber den I/O-Kontakt
+ \item Zeichen $\equiv$ 1 Byte (8 Bit)
+ \end{itemize}
+ \end{block}
+ \begin{block}{Synchrone "Ubertragung}
+ \begin{itemize}
+ \item "Ubertragung einer Serie von Bits via I/O
+ \item Synchron mit CLK-Signal
+ \end{itemize}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ ATR bei asynchroner "Ubertragung: Bit-Dauer
+ \begin{definition}
+ Die Zeitdauer f"ur die Darstellung eines Bits am I/O-Kontakt ist definiert als $1 \, etu$
+ ({\bf e}lementary {\bf t}ime {\bf u}nit).
+ \end{definition}
+ \begin{itemize}
+ \item Karten mit interner CLK:\\
+ $1 \, etu = 1/9600 \, s$
+ \item Karten mit externer CLK:\\
+ $1 etu = \frac{372}{f_i}$ ($1 \, MHz < f_i < 5 \, MHz$)\\
+ Bsp.: $f_i = 3.5712 \, MHz \Rightarrow$ 9600 baud
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ \begin{block}{Aufbau eines Zeichens}
+ \begin{itemize}
+ \item Startbit im 'low state'
+ \item 8 Datenbits ($b_0$ bis $b_7$)\\
+ \begin{itemize}
+ \item 'direct convention': $b_0$ (LSB) ... $b_7$ (MSB)\\
+ 'low state' $\equiv$ 0, 'high state' $\equiv 1$
+ \item 'inverse convention': $b_0$ (MSB) ... $b_7$ (LSB)\\
+ 'low state' $\equiv$ 1, 'high state' $\equiv 0$
+ \end{itemize}
+ \item Parit"atsbit $b_p$ (gerade Anzahl von Einsen in $b_0, \ldots,b_7,b_p$)
+ \end{itemize}
+ \end{block}
+ \begin{center}
+ \includegraphics[width=11cm]{char-frame.eps}
+ \end{center}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ \begin{block}{ATR bei asynchroner "Ubertragung: Struktur und Inhalt}
+ \begin{tabular}{|l|l|l|}
+ \hline
+ 1 & 'initial character' & $T_s$ \\
+ \hline
+ 2 & 'format character' & $T_0$ \\
+ \hline
+ 3 & 'interface characters' & $TA_i,TB_i,TC_i,TD_i$ \\
+ \hline
+ 4 & 'historical characters' & $T_1,\ldots,T_k$ \\
+ \hline
+ 5 & 'check character' & $T_{ck}$ \\
+ \hline
+ \end{tabular}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ ATR bei asynchroner "Ubertragung: 'initial character' $T_s$
+ \begin{block}{'direct convention'}
+ \includegraphics[width=11cm]{direct-conv.eps}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ ATR bei asynchroner "Ubertragung: 'initial character' $T_s$
+ \begin{block}{'inverse convention'}
+ \includegraphics[width=11cm]{inverse-conv.eps}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ ATR bei asynchroner "Ubertragung: 'format character' $T_0$
+ \begin{block}{MS Halfbyte - Vorhandensein von 'interface characters'}
+ \begin{tabular}{|l|l|}
+ \hline
+ $T_0[4]$ & $TA_1$ wird gesendet \\
+ \hline
+ $T_0[5]$ & $TB_1$ wird gesendet \\
+ \hline
+ $T_0[6]$ & $TC_1$ wird gesendet \\
+ \hline
+ $T_0[7]$ & $TD_1$ wird gesendet \\
+ \hline
+ \end{tabular}
+ \end{block}
+ \begin{block}{LS Halfbyte - 'historical characters'}
+ Anzahl der 'historical characters': $0000_2 - 1111_2 \, (0-15)$
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ ATR bei asynchroner "Ubertragung: 'interface characters'
+ \begin{block}{MS Halfbyte von $TD_i$}
+ \begin{tabular}{|l|l|}
+ \hline
+ $TD_i[4]$ & $TA_{i+1}$ wird gesendet \\
+ \hline
+ $TD_i[5]$ & $TB_{i+1}$ wird gesendet \\
+ \hline
+ $TD_i[6]$ & $TC_{i+1}$ wird gesendet \\
+ \hline
+ $TD_i[7]$ & $TD_{i+1}$ wird gesendet \\
+ \hline
+ \end{tabular}
+ wobei $TD_0 \equiv T_0$
+ \end{block}
+ \begin{block}{LS Halfbyte von $TD_i$}
+ Protokolltyp: $0000_2 - 1111_2 \, (0-15)$
+ \end{block}
+ $TA_i,TB_i,TC_i$: Protokollparameter
+\end{frame}
+
+\begin{frame}
+ \frametitle{kontaktbehaftete Chipkarten}
+ \framesubtitle{Betriebsablauf (ISO 7816-3)}
+ %ATR bei asynchroner "Ubertragung: 'interface characters'
+ \begin{block}{Protokolltypen ($TD_1$)}
+ \begin{itemize}
+ \item $T=0$ asynchrones, halbduplex Zeichen-"Ubertragungsprotokoll
+ \item $T=1$ asynchrones, halbduplex Block-"Ubertragungsprotokoll
+ \item $T=2-15$ reserviert f"ur zuk"unftige Standardisierungen
+ \end{itemize}
+ \end{block}
+ \begin{block}{Protokollparameter ($TA_i,TB_i,TC_i$)}
+ \begin{columns}
+ \column{5cm}
+ \begin{itemize}
+ \item Frequenz und Bit-Dauer
+ \item extra Guardtime
+ \item Zeichen/Block Wartezeit
+ \item T=1 Fehlererkennung durch LRC bzw. CRC
+ \end{itemize}
+ \column{5cm}
+ \begin{itemize}
+ \item L"ange eines T=1 Block Informationsfeldes
+ \item Programmierspannung und Strom
+ \end{itemize}
+ \end{columns}
+ \end{block}