Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

SIM karta pod lupou: jak SIM karta komunikuje?

aktualizováno 
Jako Golem bez šému, i telefon je vám bez SIM karty k ničemu. Proč má některá karta více místa v telefonním seznamu než jiná? Jak je to s místem pro SMSky? Má ještě jiné funkce než ty, které jsou na první pohled zřejmé? Podívejte se na SIM kartu podrobněji.
Už jsme si řekli, že mimo napájecí vodiče vedou do karty ještě další tři, DATA, CLK a RESET. Po připojení napájecího napětí mezi vývody Vcc a GND karta očekává událost RESET. Ta nastane definováním logické hodnoty 0 nebo 1 na vývodu RESET. Jaká tato hodnota skutečně je, záleží na typu použitého procesoru. Některé reagují na 0, některé na 1, je to záležitost čistě hardwarová a norma s oběma eventualitami počítá. Telefon podle ní obvykle nejprve nastaví RESET do stavu 0 a vyšle do karty 40 000 hodinových cyklů přes vývod CLK a očekává reakci karty. Když karta neodpoví, udělá totéž ještě s RESETem ve stavu 1. Karta na událost RESET reaguje vysláním tzv. ATR sekvence (Answer To Reset). To je sled bytů, které jsou sériově vyslány na vývod DATA. Některé telefony se o to pokusí i několikrát. Neohlásí-li se karta, telefon ji odmítne. Jestliže karta reaguje, je nadále na vývodu RESET ustálena ta hodnota, při které nastala událost ATR. Data přitom karta vysílá asynchronně. Přenos jednoho byte je vidět na následujícím obrázku:

komunikacesim

Obr.3 Komunikace se SIM kartou a ošetřená paritní chyba

Rychlost komunikace na datovém rozhraní je 9600 bitů za vteřinu pro karty s vnitřním zdrojem hodin, nebo CLK/372 u karet, které vyžadují externí zdroj hodin. Když tedy použijeme externí zdroj hodin 3.58 MHz, bude karta s vnitřním zdrojem komunikovat stejnou rychlostí jako karta se zdrojem vnějším.

Data jsou přenášena sériově, po START-bitu v pořadí od nejnižšího do nejvyššího. Přenos je zabezpečen sudou paritou a následuje STOP-bit. Ten je dvojnásobné délky oproti ostatním a v jeho druhé polovině časového průběhu umožňuje hlášení chyb na straně příjemce. Případná chyba je ohlášena vysílajícímu stržením úrovně na vývodu DATA z 1 do hodnoty 0. Vysílající pak zopakuje tento špatně přijatý byte ještě jednou. Chyba se určí pomocí paritního bitu. Co se skrývá v ATR? Prvním bytem po události RESET, který SIM karta vyšle, je byte TS. Ten definuje způsob kódování následujících byte. Začíná vždy posloupností bitů "0110". Následující tři bity jsou buď 111 nebo 000 a rozlišuje se pomocí nich konvence, podle níž probíhá další komunikace s kartou. Stav 000 označuje inverzní konvenci, stav 111 konvenci přímou. Jaký je mezi nimi rozdíl? Přímá konvence má bity ve vyslaném byte seřazeny stejně jako při ATR - od nejnižšího k nejvyššímu - a logická 1 na vývodu DATA vyjadřuje stav 1, inverzní konvence je skutečně inverzní: datové bity jsou váhově otočeny, přenášejí se v opačném pořadí a logická 1 na vývodu DATA značí stav 0.

Další byte, který karta při ATR vyšle, je T0. Definuje strukturu ATR. Když má pátý bit v byte T0 nastaven do jedničky, je vysílán byte TA1, šestý bit v jedničce znamená vysílání TB1, sedmý TC1 a osmý TD1. Stejnou informaci pak ve své horní polovině nese byte TD1, takže se tyto znaky mohou v ATR několikrát opakovat. Ukončení vysílání těchto byte poznáme podle toho, že v TDn nejsou příslušné bity nastaveny do hodnoty jedna (jsou nulové), nebo není byte TDn vůbec vyslán. čtyři spodní bity byte T0 a TDn. V těch je v případě protokolu T0 (což je i případ SIM karty) počet byte T1...Tk, které se označují jako historářové. Zde by měly být uloženy informace o výrobci čipu, operačním systému a další služební data.

atrstruktura

Obr.4 Struktura ATR

V ATR je ale zakleto více informací. Týkají se maximálního proudu Vpp, programovacího napětí a dalších záležitostí týkajících se hardware karty. Pro bližší informace odkazujeme na normu ISO7816. A jak se se SIMkou komunikuje dál? Dodržuje se příslušná konvence, která byla definovaná v ATR sekvenci. Protokol T0 staví SIM kartu jednoznačně do pasivní role, příkazy vždy zadává telefon (a jemu zas GSM síť nebo uživatel). Příkaz do karty se skládá z hlavičky, datové části a dvojice byte SW1 a SW2, které určují, jaký je stav operace po jejím provedení (indikace chyb). Hlavička má strukturu: CLA, INS, P1, P2, P3 CLA je třída instrukce, v případě GSM má vždy hodnotu A0. INS je instrukční kód, nejnižší bit tohoto byte je je vždy nulový, vyšší polovina nesmí obsahovat hodnotu šest nebo devět. P1, P2 závisí na typu instrukce a slouží k adresování. P3 určuje počet datových byte, které se budou přenášet. Zde je malá záludnost v tom, že při přenosu dat ze SIMky do telefonu nulová hodnota tohoto byte znamená přenos 256ti byte. V opačném směru pak nejsou přeášena žádná data (P3=0).

Příkaz
INS
P1
P2
P3
směr přenosu dat
SELECT

00
00
02
I/O
STATUS
F2
00
00
délka
O
READ BINARY
B0
offset vyšší
offset nižší
délka
O
UPDATE BINARY
D6
offset vyšší
offset nižší
délka
I
READ RECORD
B2
číslo záznamu
mód
délka
O
UPDATE RECORD
DC
číslo záznamu
mód
délka
I
SEEK
A2
00
typ/mód
délka
I/O
INCREASE
32
00
00
03
I/O
VERIFY CHV
20
00
CHV1/2
08
I
CHANGE CHV
24
00
CHV1/2
10
I
DISABLE CHV
26
00
01
08
I
ENABLE CHV
28
00
01
08
I
UNBLOCK CHV
2C
00
*
10
I
INVALIDATE
04
00
00
00

REHABILITATE
44
00
00
00

RUN GSM ALGORITHM
88
00
00
10
I/O
SLEEP
FA
00
00
00

GET RESPONSE
C0
00
00
délka
O
TERMINAL PROFILE
10
00
00
délka
I
ENVELOPE
C2
00
00
délka
I/O
FETCH
12
00
00
délka
O
TERMINAL RESPONSE
14
00
00
délka
I

*) Pro CHV1=00; pro CHV2=02

Tabulka 1. Kódování příkazů pro SIM kartu

Nadřízený tedy pošle do karty hlavičku. Ta mu odpoví bytem ACK,NULL nebo SW1. Význam těchto byte je v tabulce:

Odpověď

Hodnota byte

Význam

ACK

INS

 

INS+1

 

NOT( INS)

NOT(INS+1)

Vpp neaktivní, následuje přenos všech dat (podle P3)

Vpp aktivní, následuje přenos všech dat (podle P3)

Vpp neaktivní, přenáší se 1 byte dat

Vpp aktivní, následuje přenos 1 byte dat

NULL

60

bez přenosu dat, Vpp beze změn

SW1

SW1

Vpp neaktivní, následuje přenos SW2

Tabulka 2. Odpověď karty, hodnoty byte ACK

Byte, který je přijat jako odpověď má význam pro telefon, který se podle jeho hodnoty a významu v daném okamžiku zachová (zapne nebo vypne programovací napětí, vyšle příslušný počet byte do karty ap.). Jak je vidět z tabulky, SIM karta si může říci o čas, jestliže je její procesor zaměstnán zpracováním dat. Už samotný zápis do paměti EEPROM totiž trvá nějakých 10ms, což může při zápisu do většího počtu buněk trvat poměrně dlouho. Dělá to tak, že odpoví bytem s hodnotou not (INS) nebo not (INS+1); telefon (nadřízený) pak může do karty poslat jen jeden byte. Ten karta kvituje opět tímto bytem. Má-li opět stejnou hodnotu, přenese se po datové lince opět jen jeden byte, a procesor v kartě tak získává čas. Když ale dojde v průběhu této komunikace ke změně ACK byte na hodnotu INS nebo (INS+1), dojde k přenosu všech zbylých dat (podle parametru P3).

Když karta zpracovává data, nebyl dokončen příkaz a všechna potřebná data byla již přenesena, signalizuje to vysíláním byte NULL. O průběhu zpracování příkazu vyšle karta návratový kód složený z byte SW1 a SW2. Obecně platí, že správně vykonaná instrukce vrátí tento kód s hodnotou 90 00. GSM11.11 pak definuje pro dobrý průběh ještě návratový kód 9F XX. V tomto případě je navíc k dispozici ještě odpověď, kterou lze získat instrukcí GET RESPONSE s délkou dat XX. Některé jiné hodnoty SW1 a SW2 a jejich významy jsou v tabulce níže:

hodnota SW1

hodnota SW2

Význam

92

0X

příkaz správně proveden, ale až po použití vnitřní UPDATE RETRY rutiny, která byla Xkrát spuštěna. (problémy při zápisu do EEPROM)

92

40

problém s pamětí

94

00

nebyl vybrán soubor EF

94

02

špatná adresa (adresa mimo rozsah)

94

04

nenalezen identifikátor souboru

94

08

soubor nekonzistentní s příkazem

98

02

neinicializovaný CHV (nebyl zadán příslušný PIN)

98

04

- nespněná přístupová podmínka

- neúspěšná verifikace CHVpři posledním pokusu

- neúspěšná verifikace UNBLOCK CHVpři posledním pokusu

- chyba autentizace

98

08

v rozporu se stavem CHV

98

10

v rozporu se stavem IVALIDATE

98

40

 

- neúspěšná verifikace CHV, nezbývá žádný pokus

- neúspěšný pokus o UNBLOCK CHV, nezbývá žádný pokus

- CHV zablokován

- UNBLOCK CHV zablokován

98

50

INCREASE nemůže být provedena, Max. hodnota překročena

67

XX

nekorektní parametr P3 (špatná délka)

6B

XX #

nekorektní parametr P1 nebo P2 ##

6D

XX #

neznámý instrukční kód v příkazu

6E

XX #

špatná třída instrukce v příkazu

6F

XX #

technický problém bez bližší specifikace

# Tyto hodnoty „XX“ jsou specifikovány v ISO/IEC; jejich hodnota je předdefinovaná a je vždy „00“.

 

## Pokud nastane chyba v P1 nebo P2 v případě adresování záznamu (mimo rozsah), je vyslán návratový kód 94 02.

Tabulka 3. význam návratových kódů SW1, SW2



Témata: gsm, Reset, s-karta

Nejčtenější

Tak bude vypadat letošní nejlevnější iPhone, zepředu připomíná desítku

Render chystaného LCD iPhonu s 6,1palcovým panelem ve společnosti menšího...

Uvedení nových iPhonů se blíží, jejich oficiální odhalení proběhne už za dva měsíce. Víme, že budou tři a alespoň z...

Blesková krádež. Zloději za 30 sekund vybílili obchod Applu

Blesková krádež v kalifornském Apple Storu

Skupina mužů za méně než minutu vykradla před očima zákazníků i personálu obchod Apple Store v kalifornském Fresnu....



Xiaomi pokračuje v dumpingových akcích. Redmi S2 bude za 300 korun

Nová prodejna mobilů v Olomouci přilákala stovky lidí

Agresivní marketing čínské značky v Česku pokračuje. Xiaomi otevírá třetí obchod a tradičně první den nabízí produkty s...

Novinka za 975 korun nahradí smartphone a nepotřebuje dotykový displej

JioPhone 2

Obyčejné mobily nejsou mrtvé. Právě naopak. Jestliže prodeje smartphonů stagnují, nebo na některých trzích dokonce...

Nový supersmartphone vysune kameru a nahrává uživatele bez jeho vědomí

Vivo NEX

V rámci právě skončeného mistrovství světa ve fotbalu byla hrací plocha obklopena panely s reklamami na nový čínský...

Další z rubriky

Chtějí víc prodávat, tak se zamaskují značkou Pocophone

Xiaomi Mi 8

Čínský výrobce Xiaomi se snaží proniknout na nové trhy, spadeno má zejména na ten v Severní Americe. Pomoci by mu měla...

Módní doplněk budoucnosti? Smartphone se připne do držáku na kotníku

Kotníkový držák na smartphone na módní přehlídce v Paříží

Novým přírůstkem ke smartphonovým doplňkům je držák mobilu na kotník, který ukázal pařížský módní dům Maison Margiela....

Češi stále kupují tlačítkové mobily, nejčastěji nokie

Nokia 8110 4G na premiéře v Barceloně

Téměř polovinou z 27 tisíc prodaných tlačítkových mobilů za první letošní pololetí byly telefony značky Nokia. Vyplývá...

Akční letáky
Akční letáky

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Najdete na iDNES.cz