X-Git-Url: https://hackdaworld.org/gitweb/?p=lectures%2Flatex.git;a=blobdiff_plain;f=rfid%2Frfid_talk_g.tex;h=741cc81c5cc01d50b33b2831128704757237fe4f;hp=36411ddc7412735410aaa301083b0bb9a4f50468;hb=528a2947b6ec35f076edf4b6a4e2d781f38d55bc;hpb=5be895ec55c5b1b5067e1df14ec7878aceaabd96 diff --git a/rfid/rfid_talk_g.tex b/rfid/rfid_talk_g.tex index 36411dd..741cc81 100644 --- a/rfid/rfid_talk_g.tex +++ b/rfid/rfid_talk_g.tex @@ -56,7 +56,7 @@ \begin{block}{Aufbau / Bestandteile} \begin{itemize} \item Plastikkarte mit eingebautem Mikrochip\\ - - {\bf I}ntegrated {\bf C}ircuit {\bf C}ard - + {\bf I}ntegrated {\bf C}ircuit {\bf C}ard (ICC) \begin{itemize} \item Hardwarelogik oder Mikroprozessor \item Speicher (ROM, EEPROM, RAM) @@ -438,7 +438,7 @@ \begin{frame} \frametitle{kontaktbehaftete Chipkarten} \framesubtitle{Betriebsablauf (ISO 7816-3)} - {\bf A}answer {\bf T}o {\bf R}equest + {\bf A}nswer {\bf T}o {\bf R}eset \begin{block}{Asynchrone "Ubertragung} \begin{itemize} \item Zeichen"ubertragung "uber den I/O-Kontakt @@ -461,8 +461,299 @@ 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} +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + ATR bei asynchroner "Ubertragung: 'historical \& check characters' + \begin{block}{'historical characters' - Information "uber} + \begin{itemize} + \item Hersteller der Karte + \item verwendeter Chip + \item ROM im Chip + \item Herstellungsdatum(?) + \end{itemize} + \end{block} + \begin{block}{'check character' $T_{ck}$} + \begin{itemize} + \item $T_1$ xor $T_2$ xor $\ldots$ xor $T_{ck}$ $=$ $0$ + \item kein $T_{ck}$ f"ur Protokoll $T=0$ + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + ATR bei {\bf synchroner} "Ubertragung + \begin{block}{Taktfrequenz und Bit-"Ubertragung} + \begin{itemize} + \item Frequenzen zwischen $7$ und $50 \, kHz$ + \item 'direct convention': + \begin{itemize} + \item 'high state' $\equiv 1$ + \item LSB zuerst + \end{itemize} + \item Bit-"Ubertragung: + \begin{itemize} + \item Bit anlegen + \item CLK auf 'high state' + \item CLK auf 'low state' + \end{itemize} + \end{itemize} + \end{block} + +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + ATR bei {\bf synchroner} "Ubertragung + \begin{block}{Struktur und "Ubertragung des ATR} + \begin{itemize} + \item maximal 32 Bit gro"s (mindestens 8) + \begin{itemize} + \item Byte H1: Protokolltyp + \item Byte H2: Protokollparameter + \item Byte H3,H4: 'historical bytes' + \end{itemize} + \item "Ubertragung in 32 Takten + \item Weiterer Takt f"ur Zustands"anderung von I/O auf 'high state' + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-10)} + ATR bei {\bf synchroner} "Ubertragung + \begin{block}{Protokolltypen: Byte H1} + \begin{tabular}{|l|l|l|l|} + \hline + MS HB & LS HB & hex & Protokoll\\ + \hline + 0 0 0 0 & 0 0 0 0 & 0x00 & unnbenutzt \\ + \hline + 1 1 1 1 & 1 1 1 1 & 0xff & unbenutzt \\ + \hline + 1 x x x & & & Industriespezifische Protokolle \\ + 1 0 0 0 & & 0x82 & Serial Data Access ($I^2C$) \\ + 1 0 0 1 & 0 0 1 0 & 0x92 & 3 Wire Bus \\ + 1 0 1 0 & & 0xa2 & 2 Wire Bus \\ + 1 0 1 1 & & 0xb2 & Function Code Bus\\ + 1 1 x x & & & reserviert \\ + \hline + andere & & & propriet"ar bzw. reserviert\\ + \hline + \end{tabular} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-10)} + ATR bei {\bf synchroner} "Ubertragung + \begin{block}{Protokollparameter: Byte H2} + \begin{itemize} + \item L"ange der Dateneinheiten: $2^{\textrm{(H2[2] H2[1] H2[0])}}$ in Bits + \item Gr"o"se des Datenspeichers: + \begin{tabular}{|l|l|l|l|l|} + \hline + H2[6] & H2[5] & H2[4] & H2[3] & Gr"o"se \\ + \hline + 0 & 0 & 0 & 0 & keine Angabe \\ + 0 & 0 & 0 & 1 & 128 \\ + 0 & 0 & 1 & 0 & 256 \\ + 0 & 0 & 1 & 1 & 512 \\ + 0 & 1 & 0 & 0 & 1024 \\ + 0 & 1 & 0 & 1 & 2048 \\ + 0 & 1 & 1 & 0 & 4096 \\ + \hline + \end{tabular} + \end{itemize} + \end{block} +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-4)} + ATR bei {\bf synchroner} "Ubertragung + \begin{block}{'historical bytes' H3, H4} + "Ahnlich den 'historical bytes' bei asynchronen Karten + \end{block} + +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + Auswahl des "Ubertragungsprotokolls + + +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + Protokolltyp $T=0$ - asynchrone halbduplex "Ubertragung + +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + Protokolltyp 2-WB - synchrone halbduplex "Ubertragung + +\end{frame} + +\begin{frame} + \frametitle{kontaktbehaftete Chipkarten} + \framesubtitle{Betriebsablauf (ISO 7816-3)} + Beispiel: Die Versichertenkarte (synchrones 2-WB) + +\end{frame} \subsection{Kontaktlose Chipkarten / RFID}