| Przejdz do strony glownej |

>> Phreak It > strona glowna > newsy > o serwisie >> Automaty > mapy i spisy > niebieski [TSP91] > srebrny [TPE97] > jajko [CTP] > żółty [eXANTO] > Netia > Dialog > karty chipowe > klucze >> W eterze > GSM > tranking >> Stuff > teksty (FAQ) > narzędzia > elektronika > nagrywarki > strony Variego >> Inne > multimedia > phreak-muzeum > hacked > linki
|
[=][=][=] [=][=][=] [=][=][=] [=] [=] [=][=][=] [=][=][=]
[=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
[=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
[=][=][=] [=][=][=] [=][=][=] [=] [=] [=][=][=] [=] [=]
[=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
[=] [=] [=] [=] [=] [=] [=] [=] [=] [=] [=]
[=] [=] [=][=][=] [=] [=][=][=] [=] [=] [=] [=]
[=][=][=] [=][=][=] [=][=][=]
[=] [=] [=] [=] [=]
[=] [=] [=] [=] [=]
[=][=] [=][=][=] [=] [=]
[=] [=] [=] [=] [=]
[=] [=] [=] [=] [=]
[=] [=] [=] [=][=][=]
[=]
[=][=]
TELEKARTY
==========================================================================
|| Wszystko co tu znajdziecie mozecie wykorzystywac jak wam sie podoba. ||
|| Nie interesuje mnie zupelnie czy powstana przez to jakies (czyjes) ||
|| szkody czy nie. Chce zerwac z maniera wrzucania takich tekstow na ||
|| poczatku faqow, bo uwazam to za smieszne. W takich przypadkach traca ||
|| zwykle monopolisci i/lub lameria wiec po co sie o nich martwic? A o ||
|| siebie sie nie bojcie jak maja was zlapac to i tak zlapia, zeby nie ||
|| wiem co - a i tak nikogo jeszcze za teksty nie wsadzili (no w koncu ||
|| jest demokracja) ;) Moja dywiza to: Im wiekszy dym tym ciekawiej ;-) ||
==========================================================================
1. Wstep do faqu
2. Szczegoly techniczne
Czesc A. Wszystko co trzeba wiedziec o telekartach (podstawy)
Sekcja I. Karty Gemplus, Solaic, Schlumberger, Oberthur (francuskie)
a) wprowadzenie
b) schemat chipu
c) opis stykow zlacza
d) podstawowe paramtery
e) diagramy czasowe (timingi)
f) mapa pamieci kart z Francji i Monako
g) mapa pamieci kart z innych krajow
Sekcja II. Karty ODS, Giesecke & Devrient, ORGA Karten systeme, Uniqua,
Gemplus, Schlumberger i Oldenbourg Kartensysteme
a) wprowadzenie
b) styki
c) podstawowe paramtery
d) diagramy czasowe (timingi)
e) mapa pamieci
f) parametry elektryczne
Sekcja III. Schemat czytnikow
a) czytnik 1
b) czytnik 2
Czesc B. Jak zrobic wlasna telekarte?
Sekcja I. Teoria
a) szczegoly i podstawowy program
- telecard.asm
- picreg.equ
b) system zabezpieczen
c) niezbedne czesci
d) jak to budowac
Sekcja II. Niezbedny software
a) czesc UUEnecode
- plik UUEncode
b) standardowy program do odczytu karty na PC
3. Linki zwiazane z tematem i "bibiografia"
4. Na koniec (podziekowania, etc...)
[ 1. Wstep do faqu ]
==================
Jak widzicie to moj pierwszy faq. Nie mam zamiary pisac rzeczach typu:
jak podpiac sie do sasiada, jak znukowac lamera czy jak zdobyc haslo
roota. Zajmuje sie tu KARTAMI CHIPOWYMI, zwanymi z angielska telecard,
phonecard lub (najrzadziej) chipcard. Wiem ze dla nas to temat nowy i
raczej malo przydatny bo TPSA nie kwapi sie z wprowadzeniem automatow
na takie karty. Poki co mamy i pewnie dlugo miec bedziemy Urmety na
karty magnetyczne Telefonica. Mimo to zdecydowalem sie napisac o tym
faq poniewaz czesto bywam za granica i tam te wiadomosci sie moga
przydac. Poza tym nigdy nic nie wiadomo i moze pewnego dnia TPSA
uszczesliwi nas automatami na karty chipowe. Dodatkowo warto wiedziec,
ze schemat takich kart jest uniwersalny (zgodnie z normami ISO) i nie sa
one wykorzystywane tylko do telefonow, ale takze do odkodowywania
programow TV, jako karty identyfikacyjne, itp. Oczywiscie, wiadomo ze
sam temat kart chipowych (tak jak kart magnetycznych) to rzeka i mozna
by o tym napisac 1 GB tekstu (sama dokumentacja to kilkanascie tysiecy
stron). Poniewaz jest to niemozliwe, omowie tu podstawowe rzeczy, ktore
trzeba widziec zajmujac sie ta tematyka. W rodziale "Linki" podalem
kilkanascie IMO najlepszych adresow URL z informacjami na ten temat dla
dociekliwych. A tak na koniec wstepu: sorry ze ten faq jest troche
"sztywny" ale denerwuje mnie wypisywanie glupot bez zadnej tresci, jak
to coraz czesciej widze w roznych faqach. Z gory przepraszam, jesli
jakies informacje nie sa 100% aktualne. Stan, ktory opisuje dotyczyl
przelomu lat 1997/1998 ale w czerwcu 1998 na pewno wszystko jeszcze
dzialalo. Dzis moze sie okazac, ze sa niezbedne pewne korekty, ale
jestem na 100% pewien, ze generalne zalorzenia sa takie jak byly.
[ 2. Szczegoly techniczne ]
=======================
*************
* U W A G A *
*************
Ponizej znajduje sie szereg schematow. Oznaczenia niektorych elementow
sa miedzynarodowe (w jezyku angielskim), dlatego podaje tu do nich
"slownik". Nie zdecydowalem sie na przetlumaczenie ich na jezyk polski
w celu praktycznym. Latwiej na tej podstawie znalezc wszelkie informacje
w Internecie, dotyczace wlasnie tych wybranych elementow.
Address - adres
Clk - (Clock) sygnal zegarowy (zegar)
Data - Dane
Gnd - (Ground) masa
R/W - (Read/Write) zapis/odczyt
Fuse - bezpiecznik
I/O - (Input/Output) Wejscie/Wyjscie
xMOS - (Metal Oxide Semiconductor) - polprzewodnik w technologii
metalowo tlenkowej.
PCB - (printed circuit board) plytka drukowana
Reset - zerowanie systemu (lub reset ;) )
Vpp - napiecie programujace
Vcc - napiecie zasilania
Mnznnz - Mam nadzieje, ze nic nie zapomnialem
+----------------------------------------------------------------------+
| CZESC A. Wszystko co trzeba wiedziec o telekartach (podstawy) |
+----------------------------------------------------------------------+
Sekcja I. Karty Gemplus, Solaic, Schlumberger, Oberthur (francuskie):
------------------------------------------------------------------------
a) wprowadzenie
W polowie lat 80-tych pojawily sie karty nowej generacji (zwane kartami
sprytnymi - "smart-cards" lub kartami chipowymi - "chip cards"). Karty
te zastapily wiekszosc kart magnetycznych uzywanych w znacznej mierze
przez firmy telekomunikacyjne a takze korporacje zajmujace sie kartami
kredytowymi od strony produkcyjnej. Karty chipowe sa w wiele skuteczniej
zabezpieczone niz tradycyjne karty magnetyczne. Jest kilka typow takich
kart chipowych majacych rozne zastosowanie. Najprostsze to karty typu
"Prosta Pamiec". One sa wlasnie najczesciej uzywane jako karty do
dzwonienia z automatow publicznych. Ogolnie mozna powiedziec, ze cala
zawartosc pamieci jest przeznaczona do odczytu w tych kartach. Dodatkowo
jest tam specjalna czesc, ktora jest nie niezapisywalna a wiec nie moze
byc takze w zaden sposob kasowana przez czytnik.
Poza tym sa bardziej skomplikowana karty, np. "Karta z Pamiecia" (lepszy
rodzaj karty "Prosta Pamiec") posiada specjalny obszar z roznymi danymi
zabezpieczony szyfrowanym kluczem. Takie karty moga zawierac jakies
prywatne informacje w tej zabezpieczonej czesci.
I wreszcie na koncu, sa tzw. "Karty z Mikroprocesorem" (pracujace na
podstawie protokolu ISO-7816). Te karty sa najbezpieczniejsze poniewaz
posiadaja wlasny sytem operacyjny, ktory zabezpiecza wszelkie operacje
wejscia/wyjscia (I/O), o ile wczesniej nie zostal wprowadzony specjalny
kod PIN. Najczesciej uzywa sie tych kart kiedy niezbedna jest poufnosc
danych: karty bankowe, karty kodowe platnych telewizji (Canal+), karty
zdrowia (na Zachodzie Europy a podobno i u nas niedlugo po reformie ;)).
Co do kart chipowych uzywanych do dzwonienia (zwanych dalej telekartami)
to nawet gdy naleza one do tych slabiej zabezpieczonych (a tak jest w
rzeczywistosci), bardzo trudno jest dzwonic za darmo przy ich pomocy. W
rzeczy samej nie da sie, ale sa przeciez sposoby ominiecia wszelkich
trudnosci technicznych, prawda? Wracajac do telekart to wszystkie dane
sa czytelne bez zadnych ograniczen, poniewaz nie ma wewnatrz zadnych
poufnych informacji. Jednak sa na tyle dobrze zrobione, ze zabezpieczaja
interesy firm telekomunikacyjnych (za granica tez sa wielkie i pazerne
twory TPSA-podobne).
A wiec czym sa dokladnie telekarty? W rzeczywistosci sa to: 256 bitowy
EPROM (karty francuskie) lub 128 bitowy EEPROM (karty niemieckie) z
szeregowym wyjsciem i kilkoma innymi kontrolnymi stykami. Karty innych
panstw to tylko powielenie technologii francuskiej lub niemieckiej (ale
dotyczy to tylko Europy w USA jest troche inaczej). Oczywiscie kazdy
kraj ma wlasna specyfike, ale roznice sa w bitach - bedzie o tym duzo w
czesci ze schematami.
Powstaje pytanie: dlaczego nie mozna (teoretycznie) telekarty "napelnic"
(uzupelnic) po raz drugi (i kolejny)? Otoz zeby uzupelnic po raz drugi
telekarte trzeba by skasowac zapis przy pomocy promieni UV (ultra
fioletowych). Mozna tego dokonac jedynie na EPROMie a nie dziala to na
EEPROMie (taka jest jego specyfika elektroniczna). Karty sa pokryte, w
technologii UV, nieprzezroczysta zywica a to powoduje, ze UV nie moze
dotrzec do krzemowego chipu. A wiec nastepna przeszkoda po EEPROMie. Ale
nawet gdyby byl to EPROM i jakby sie udalo zamazac chip trzeba by teraz
zaprogramowac tzw. przetworczy obszar karty a wiec wyrugowac bezpiecznik
bedacy specjalnie ustawiony po zaprogramowaniu karty w fabryce, tak aby
uniemozliwial zapis. Krotko mowiac ta czesc karty jest zabezpieczona
przed zapisem i aby to zmienic trzeba by dysponowac takim sprzetem oraz
technologia jak w fabryce robiacej te karty.
Pomimo tego, warto dokladnie poznac jak te karty dzialaja, zeby zobaczyc
jakie rodzaje danych sa wewnatrz i w jaki sposob dane te sa mapowane. Z
drugiej strony BEZ DOKLADNEGO POZNANIA BUDOWY TYCH KART nie da sie nic
pozniej zrobic w zwiazku z ich "samodzielnym tworzeniem" ;). W tym celu
trzeba wreszcie zobaczyc ile modulow (jednostek) jest pozostawianych po
wydzwonieniu. Poza tym karty te maja bardzo duzo innych zastosowan, poza
dzwonieniem, np. kiedy mozna ich uzyc jako klucz do otwarcia drzwi lub
jako klucz do zabezpieczenia programu (na podstawie ich kodowania). Oba
przypadki sa jak najbardziej prawdziwe, ale nie bede sie tu nimi
zajmowal (to raczej drugorzedna rzecz) ;).
Jesli idzie o historie i ciaglosc technologiczna to telekarty francuskie
zostaly stworzone w 1984. Konstruktorzy zdecydowali sie robic je w
technologii NMOS, ale teraz uzywaja juz technologii CMOS (od okolo roku
1994 chociaz zdarzaja sie jeszcze w tej poprzedniej wersji). Czytniki w
automatach publicznych zostaly juz niemal wszystkie zastapione na CMOS,
poza jednostkowymi przypadkami. Jednoczesnie uzywa sie EEPROMu zarowno
do zabezpieczania kart jak i dodania do nich wielu uzytecznych (z punktu
widzenia klienta i producenta), informacji. To nazywa sie "Telekarty
drugiej generacji", chociaz moim zdaniem duzo tu halasu (dumna nazwa) a
zmian niewiele. Poza lepszym zabezpieczeniem, tzw. "obszarem producenta"
i zmiana wygladu nie ma tam nic wiecej.
b) schemat chipu
.-------------------.
| |
--|> Clk |
| _ |
--| R/W |
| |
--| Reset |
| |
--| Fuse |
| |
--| Vpp |
| |
| |
'-. .-'
| |
.-------------------.
| Out |-- wyjscie szeregowe
'-------------------'
c) opis stykow zlacza
AFNOR CHIP ISO CHIP
---------- --------
-------------+------------- -------------+-------------
| 8 | 4 | | 1 | 5 |
| | | | | |
+-------\ | /-------+ +-------\ | /-------+
| 7 +----+----+ 3 | | 2 +----+ + 6 |
| | | | | | | |
+--------| |--------+ +--------| |--------+
| 6 | | 2 | | 3 | | 7 |
| + +----+ | | +----+----+ |
+-------/ | \-------+ +-------/ | \-------+
| 5 | 1 | | 4 | 8 |
| | | | | |
-------------+------------- -------------+-------------
NB: tylko pozycja chipu jest
ustandaryzowana wedlug ISO. Nie
dotyczy to jednak stykow.
Styki: 1 : Vcc = 5V 5 : Gnd
----- 2 : R/W 6 : Vpp = 21V
3 : Clock 7 : I/O
4 : Reset 8 : Fuse
d) podstawowe paramtery
- Protokol Synchroniczny.
- Technologia N-MOS.
- Organizacja wedlug schematu 256x1 bit .
- 96 zapisan zabezpieczonych przez wyrzucenie bezpiecznika.
- Niska moc 85mW w trybie odczytu.
- 21 V programujacego napiecia.
- Czas dostepu: 500ns
- Zakres temperatury: -10C + 70C
- 10 lat przetrzymania danych.
e) diagramy czasowe (timingi)
+21V _____________
+5V ____________________________________| |_______________ Vpp
: :
+5V ___________________:_____________:_______________ Reset
0V ________________| : :
: : :
+5V ____ : ____ : ______:______
0V ___| |_______:_____| |________:______| : |________ Clock
: : : : : : : : :
+5V : : : : : :______:______: : _
0V ___:____:_______:_____:____:________| : |______:________ R/W
: : : : : : : : :
+5V : : :_____: :________: : : :________
0V XXXXXXXXXXXXXXXXX_____XXXXXX________XXXXXXXXXXXXXXXXXXXXXX________ Out
: : : : : :<-----><---->: :
: : : : : :10 to 10 to :
: : : : : :50 ms 50ms :
Reset Bit 1 Bit2 Bit 3
karty odczyt odczyt Bit2 zapisywany do 1 odczyt
f) mapa pamieci kart z Francji i Monako
Bajty Bity Binarnie Szesnastkowo
+-----------+-----+
1 1 --> 8 | | | ---> kod konstrukcyjny
+-----------+-----+
2 9 --> 16 | 0000 0011 | $03 | ---> telekarta francuska
+-----------+-----+
3 17 --> 24 | | |
+-----------+-----+
4 25 --> 32 | | |
+-----------+-----+
5 33 --> 40 | | |
+-----------+-----+
6 41 --> 48 | | |
+-----------+-----+
7 49 --> 56 | | |
+-----------+-----+
8 57 --> 64 | | |
+-----------+-----+
9 65 --> 72 | | |
+-----------+-----+
10 73 --> 80 | | |
+-----------+-----+
11 81 --> 88 | | |
+-----------+-----+
12 33 --> 40 | 0001 0011 | $13 | ---> 120 jednostkowa karta
| 0000 0110 | $06 | ---> 50 jednostkowa karta
| 0000 0101 | $05 | ---> 40 jednostkowa karta
+-----------+-----+
13-31 97 --> 248 | | | ---> Obszar jednostek: za kazdym
| | | razem gdy jednostka jest
| | | uzywana, bit ustawia sie na
| | | wartosc "1";
| | | Ogolnie, pierwsze 10
| | | jednostek jest spalanych w
| | | fabryce na probe.
+-----------+-----+
32 249 --> 256 | 1111 1111 | $FF | ---> karta jest pusta
+-----------+-----+
g) mapa pamieci kart z innych krajow
Bajty Bity Binarnie Szesnastkowo
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
2 9 --> 16 | 1000 0011 | $83 | ---> telekarta
+-----------+-----+-----------+-----+
3-4 17 --> 32 | 1000 0000 | $80 | 0001 0010 | $12 | ---> 10 jednostkowa karta
| | | 0010 0100 | $24 | ---> 22 jednostkowa karta
| | | 0010 0111 | $27 | ---> 25 jednostkowa karta
| | | 0011 0010 | $32 | ---> 30 jednostkowa karta
| | | 0101 0010 | $52 | ---> 50 jednostkowa karta
| | | 0110 0010 | $62 | ---> 60 jednostkowa karta
| | | 1000 0010 | $82 | ---> 80 jednostkowa karta
| 1000 0001 | $81 | 0000 0010 | $02 | ---> 100 jednostkowa karta
| | | 0010 0010 | $22 | ---> 120 jednostkowa karta
| | | 0101 0010 | $52 | ---> 150 jednostkowa karta
+-----------+-----+-----------+-----+
5 33 --> 40 | | | ---> $00 dla Szwecji.
+-----------+-----+
6 41 --> 48 | | |
+-----------+-----+
7 49 --> 56 | | |
+-----------+-----+
8 57 --> 64 | | |
+-----------+-----+
9 65 --> 72 | | |
+-----------+-----+
10 73 --> 80 | | |
+-----------+-----+
11 81 --> 88 | | | ---> $11 dla Szwecji
+-----------+-----+
12 89 --> 96 | 0001 1110 | $1E | ---> Szwecja
| 0010 0010 | $22 | ---> Hiszpania
| 0011 0000 | $30 | ---> Norwegia
| 0011 0011 | $33 | ---> Andora
| 0011 1100 | $3C | ---> Irlandia
| 0100 0111 | $47 | ---> Portugalia
| 0101 0101 | $55 | ---> Czechy
| 0101 1111 | $5F | ---> Gabon
| 0110 0101 | $65 | ---> Finlandia
+-----------+-----+
13-31 97 --> 248 | | | ---> Obszar jednostek: za
| | | kazdym razem gdy jednostka
| | | jest uzywana, bit ustawiany
| | | jest na "1";
| | | Ogolnie pierwsze 10
| | | jednostek jest spalanych w
| | | fabryce na probe.
+-----------+-----+
32 249 --> 256 | 0000 0000 | $00 |
+-----------+-----+
Sekcja II. Karty ODS, Giesecke & Devrient, ORGA Karten systeme, Uniqua,
Gemplus, Schlumberger i Oldenbourg Kartensysteme:
------------------------------------------------------------------------
a) wprowadzenie
Specyfika tych kart to 128 bitowa pamiec w technologii NMOS. Ponizej
mapa pamieci tych kart:
64 bitowy EPROM zapis zabezpieczony (obszar przetworczy).
40 bitowy EEPROM (5x8 bitow).
24 bity ustawione na "1".
b) styki
ISO 7816-2
-------------+-------------
| 1 | 5 | Styki
| | | -----
+-------\ | /-------+
| 2 +----+ + 6 | 1 : Vcc = 5V 5 : Gnd
| | | | 2 : Reset 6 : n.c.
+--------| |--------+ 3 : Clock 7 : I/O
| 3 | | 7 | 4 : n.c. 8 : n.c.
| +----+----+ |
+-------/ | \-------+ n.c. : nie polaczony
| 4 | 8 |
| | |
-------------+-------------
c) podstawowe parametry
- ISO 7816 - kompatybilne w 1/2.
- uzywane pojedyncze (5V) napiecie zasilania.
- zuzycie niskiej mocy.
- technologia NMOS.
d) diagramy czasowe (timingi)
reset
-----
Adres licznika jest resetowany na 0 kiedy zegar, linia CLK, podnosi sie
dopoki linia kontrolna R jest wysoka. Zauwazyc nalezy takze, ze licznik
adresowy nie moze byc zresetowany gdy znajduje sie on w zakresie od
0 do 7.
__________________
_____| |_____________________________________________ Reset
: :
: _____ : _____ _____ _____ _____
_____:_______| |____:_| |_____| |_____| |_____| |_ Clk
: : : : : : : : : : :
_____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_
_____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Address)
: : : : : : :
_____:_______ ____:_______:___________:___________:___________:_
_____: |_____| :_______|___________|___________|___________|_ Data
Bit n Bit 0 Bit 1 Bit2 Bit3
Licznik adresowy jest zwiekszany o 1 na kazdym zboczu narastajacym
zegara - sygnal CLK, tak dlugo az linia kontrolna R jest szczatkowo mala
(istotne!!). Dane bedace w kazdym zaadresowanym bicie sa wysylane na I/O
za kazdym taktem zegara. Mozliwe jest tu zmniejszenie licznika adresow a
wiec adresowanie wczesniejszego bitu. Licznik adresowy musi byc jednak
wyzerowany, a pozniej zwiekszony do wymaganej wartosci.
zapis
-----
Wszystkie niezapisane lub zamazane bity w obrebie adresu 64-104, moga
pozostac dalej niezapisane. Kiedy komroka pamieci nie jest zapisywana to
ustawiana jest na 0.
Zaadresowana komorka jest niezapisana az do ponizszej sekwencji:
1 - R podnosi sie dopoki wartosc zegara jest niska. Trwa to az do
wylaczenie licznika adresowego poprzez zwiekszenie go o jeden takt
zegara.
2 - Wartosc zegara jest wtedy podnoszona do minimum 10ms az do zapisania
bitu adresu. Gdy operacja zapisu sie konczy, wartosc zegara spada,
licznik adresowy jest odblokowany a zawartosc zapisanej komorki, ktora
wynosi teraz 0, jest wysylana na I/O, jesli operacja przebiegla
pomyslnie. Nastepny takt zegara zwiekszy adres o jeden, nastepnie
zapisana sekwencja bedzie mogla byc powtorzona do zapisania nastepnego
bitu.
Wiem ze troche to skaplikowane (lub nawet bardzo ;) ), takze dla osob
znajacych elektronike, ale schematy wyjasniaja to lepiej niz moj opis ;)
Mam nadzieje, ze sobie poradzicie z tym.
_____ _____
_____________| |______________________________| |_______________ Reset
: :
___ : _____ ___ : _____
____| |____:__________| |_________| |_____:__________| |____ Clk
: : : : : : : : :
____:________:__________:_____:_________:___:_____:__________:_____:_____
n | n+1 | n+2 | : n+3 | : (Address)
----'--------:----------'-----:---------'---:-----:----------'-----:-----
: : : : : : :
________ ____:_____ __________:_____________:_____:_____ __________:____
________|____| |__________|_____________|_____| |__________|____ I/O
n n+1 : : n+1 n+2 : :
: : : :
zapis zapis
Nosnik Zapisu
-------------
Licznik jest zamazywany przez wykonanie sekwencji Nosnika Zapisu. Dzieje
sie to podczas nastepnego, najwazniejszejszego jego dzialania (najwyzszy
priorytet), powodujacego zamazywanie licznika.
Sekwencja Nosnika Zapisu jest nastepujaca:
1 - Licznik adresowy jest ustawiany na niezapisany bit, ktory jest tez
zamazywany, w nastepnym najwazniejszym etapie pracy licznika.
2 - Zwiekszanie jest wylaczone na nastepnym zboczu narastajacym R gdzie
wartosc zegara jest szczatkowo niska.
3 - Wartosc zegara jest wtedy zwiekszana do minimum 10ms, dopoki R jest
male, zeby zapisac nastepny zaadresowany bit.
4 - R podnosi sie znowu dopoki wartosc zegara pozostaje szczatkowo mala,
zeby wylaczyc zwiekszanie po raz drugi.
5 - Wartosci zegara podnosi sie do minimum 1ms, dopoki R jest male, zeby
zapisac zaadresowany bit po raz drugi, wymazujac poziom licznika
bezposrednio ponizej zaadresowanego bitu.
_____ _____
______| |____________________| |_________________________________ Rst
: :
: _______ : _______ ___
______:___________| |______:_____________| |______| |______ Clk
: : : : : : : :
: : : : : : : :
<------------------------- address n ------------------------>:<--- n+1 ------
: : : : : : :
: : : : : : :
______:_____ _____________:______:_____ _______________:__________:______
______| |_____________|______| |_______________|__________|______ I/O
: : n : : n n+1
: : : :
Zapis Kasowanie
e) Mapa pamieci
Bajty Bity Binarnie Szesnastkowo
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
2 9 --> 16 | 0010 1111 | $2F | ---> Niemcy
| 0011 0111 | $37 | ---> Holandia
| 0011 1011 | $3B | ---> Grecja
+-----------+-----+
3 17 --> 24 | | |
4 25 --> 32 | | | ---> obszar wydawcy
5 33 --> 40 | | | (zapis niedozwolony)
6 41 --> 48 | | |
7 49 --> 56 | | |
8 57 --> 64 | | |
+-----------+-----+
9 65 --> 72 | | | ---> c4096 )
10 73 --> 80 | | | ---> c512 )
11 81 --> 88 | | | ---> c64 ) * 5 faza licznika
12 89 --> 96 | | | ---> c8 ) osemkowego
13 97 --> 104 | | | ---> c0 )
+-----------+-----+
14 105 --> 112 | 1111 1111 | $FF |
15 113 --> 120 | 1111 1111 | $FF | ---> obszar bitow ustawiony na
16 120 --> 128 | 1111 1111 | $FF | "1"
+-----------+-----+
Obszar wydawcy
--------------
Obszar wydawcy zawiera 40 bitow. Tresc jego jest wyspecyfikowana przez
wydawce karty, i jest ustalona w procesie produkcji. Tresc obszaru
wydawcy bedzie zawierala dane takie jak numery seryjne, daty czy centra
dystrybucyjne. Ten obszar jest przenaczony tylko do odczytu.
Obszar licznika
---------------
Obszar licznika przechowuje jednostki karty. Jego wartosc poczatkowa
jest wyspecyfikowana w obszarze zastrzezonym przez wydawce karty i
ustawiona w procesie produkcji. Obszar licznika jest podzielony na 5 faz
liczydla. Wartosc osemkowa kazdej fazy jest zdefiniowana przez liczbe
bitow ustawionych na "1". Wartosc tej fazy musi byc wielekrotnoscia
wspolczynnika 8^n (gdzie n miesci sie w obrebie [4..0] ).
przyklad: dla karty gdzie pozostalo 15818 jednostek zwyklych (lub
pienieznych).
Bajt9 Bajt10 Bajt11 Bajt12 Bajt13
------------------------------------------------------------------
00000111 - 00111111 - 01111111 - 00000001 - 00000011
------------------------------------------------------------------
(3)osemkowo (6)osemkowo (7)osemkowo (1)osemkowo (2)osemkowo
------------------------------------------------------------------
Wartosc = 3*8^4 + 6*8^3 + 7*8^2 + 1*8^1 + 2*8^
--------------------------------------------------------------
Suma = 15818 jednostek
Zauwazyc nalezy, ze gdy sie zmniejszy licznik to wtedy nie ma on
pozwolenia na zapis wartosci wiekszej niz poprzednia.
f) Parametry elektryczne
maksymalne wartosci
-------------------
+--------+------+------+------+---+
| Symbol | Min | Max |Jednostka |
+----------------------------+--------+------+------+----------+
| napiecie zasilania | Vcc | -0.3 | 6 | V |
+----------------------------+--------+------+------+----------+
| napiecie wejsciowe | Vss | -0.3 | 6 | V |
+----------------------------+--------+------+------+----------+
| temperatura przechowywania | Tstg | -20 | +55 | C |
+----------------------------+--------+------+------+----------+
| moc rozpraszana | Pd | - | 50 | mW |
+----------------------------+--------+------+------+----------+
charakterystyka stalopradowa
----------------------------
+--------+-----+-----+-----+-----------+
| Symbol | Min.| Typ.| Max.| Jednostka |
+------------------------------+--------+-----+-----+-----+-----------+
| prad pobierany | Icc | - | - | 5 | mA |
+------------------------------+--------+-----+-----+-----+-----------+
| napiecie wejsciowe (niskie) | Vl | 0 | - | 0.8 | V |
+------------------------------+--------+-----+-----+-----+-----------+
| napiecie wejsciowe (wysokie) | Vh | 3.5 | - | Vcc | V |
+------------------------------+--------+-----+-----+-----+-----------+
| wartosc wejscia R | Ih | - | - | 100 | uA |
+------------------------------+--------+-----+-----+-----+-----------+
| wartosc wejscia Clk | Il | - | - | 100 | uA |
+------------------------------+--------+-----+-----+-----+-----------+
| wartosc wyjscia (Vol=0.5V) | Iol | - | - | 10 | uA |
+------------------------------+--------+-----+-----+-----+-----------+
| wartosc wyjscia (Voh=5V) | Ioh | - | - | 0.5 | mA |
+------------------------------+--------+-----+-----+-----+-----------+
charakterystyka zmiennopradowa
------------------------------
+--------+------+------+------+
| Symbol | Min. | Max. | Jedn.|
+----------------------+--------+------+------+------+
| szerokosc impulsu | tr | 50 | - | us |
| R adres zerowany | | | | |
+----------------------+--------+------+------+------+
| szerokosc impulsu | ts | 10 | - | us |
| R zapis | | | | |
+----------------------+--------+------+------+------+
| wysoki poziom Clk | th | 8 | - | us |
+----------------------+--------+------+------+------+
| niski poziom Clk | tl | 12 | - | us |
+----------------------+--------+------+------+------+
| strob zapisu | Twrite | 10 | - | ms |
+----------------------+--------+------+------+------+
| strob kasowania | Terase | 10 | - | ms |
+----------------------+--------+------+------+------+
| | tv1 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv2 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv3 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv4 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv5 | 3.5 | - | us |
+----------------------+--------+------+------+------+
| | tv6 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv7 | 5 | - | us |
+----------------------+--------+------+------+------+
| | tv8 | 10 | - | us |
+----------------------+--------+------+------+------+
SEKCJA III. Schemat czytnika
----------------------------
a) czytnik 1
Zewnetrznie 5V (Opcjonalnie)
5V o------,
| / T2 PNP d13 r7 10
0V o--, | / BC 177 |\ | _____
| | ,-------o/ o--*------. E C .--| >+-[_____]--------,
__+__ | | | \ / |/ | |
\\\\\ | __|__ Bateria | \ / |
| - 22.5V | --------- |
....... | | | _____ | _____ |
: | __+__ +--[_____]--*--[_____]--, |
D2 : | \\\\\ r6 150k r5 15k | |
4 o-------|---------------------------*------------------|-------------, |
: | | r3 220k / C | |
Ack : | | _____ |/ T1 - NPN | |
10 o------|--------. '--[_____]-*---| BC107 | |
: | | _____ | |\ | |
: ,-, ,-, +--[_____]-' \ E | |
: | |r2 | |r1 | r4 390k | | |
: | |220 | |22k __+__ __+__ | |
: |_| |_| \\\\\ \\\\\ | |
: | |\ | | | |
: *--| >+--|----------------*----------------------------------|--*
: | |/ | | ,-----|-----------------------------, | |
: | d1 | | | ,----------,----------, | | |
: | | | *---|--* Fuse | Reset *--|---' | |
: | | | | |----------|----------| | |
D0 : | | | ,-|---|--* I/O | Clk *--|---, | |
2 o-------|--------|----------' | | |----------|----------| | | |
: | | | '---|--* Vpp | R/W *--|---|----' |
Busy : | | | |----------|----------| | |
11 o------|--------|--------------' ,---|--* Gnd | 5V * | | |
: | | | '----------'-------|--' | |
D1 : | | __+__ Zlacze chipu | | |
3 o-------|--------|--------, \\\\\ | | |
: | | '------------------------------|------' |
Str : | |\ | | | |
1 o-------*--| >+--*----*----*----*----*-------------------' |
: d2|/ | |d3 |d4 |d5 |d6 |d7 |
: -+- -+- -+- -+- -+- |
: /_\ /_\ /_\ /_\ /_\ |
D3 : | | | | | |\ | d8 |
5 o----------------*----|----|----|----|---| >+-------*-------------------'
: | | | | |/ | |
: | | | | |
D4 : | | | | |\ | d9 |
6 o---------------------*----|----|----|---| >+-------*
: | | | |/ | |
: | | | |
D5 : | | | |\ | d10 |
7 o--------------------------*----|----|---| >+-------*
: | | |/ | |
: | | |
D6 : | | |\ | d11 |
8 o-------------------------------*----|---| >+-------*
: | |/ | |
: | |
D7 : | |\ | d12 |
9 o------------------------------------*---| >+-------'
: |/ |
:
:
25 o------.
: |
.......: | d1 do d13: 1N4148
__+__
\\\\\
Port rownolegly
b) czytnik 2
dioda Zenera 3.3V
2x1N4001 ________ 150
|\ | |\ | | | _____ | /| (6)
o----, ,--+ >+--*--+ >+--*---+ 7824 +----*--o o-|_____|-+< +-*----o Vpp
| | |/ | | |/ | | |________| | | \| |
)||( 220F | 220F | | ===== 0.22F _+_
220V )||( 25V | + 40V | + | | / \ 1N4148
)||( ===== ===== __+__ __+__ '-+-'
~ )||( | - | - \\\\\ \\\\\ ,+,
| | ___ | | | | 12
o----' '--o o-* __+__ | |
obecnosc | \\\\\ ________ '+' 12
karty | |\ | | | | _____ (1)
'--+ >+------+ 7805 +------*-------------------*--|_____|-o Vcc
|/ | |________| | |
1N4001 | _+_ |
| \ / ---> ,+,
__+__ -+- ---> | |
\\\\\ | | | 4.7k
,+, '+'
| | | (7)
| | 680 *----------o I/O
'+' |
| Zajete (11) o
| (4)
__+__ D0 (2) o-----*----o Raz
\\\\\ |
4.7nF =====
|
__+__
\\\\\ (3)
D1 (3) o----------o Clk
(2)
D2 (4) o----------o W
Gnd (25) o
| fuse (8)
*--~~~~~---o Fus
__+__
\\\\\
+----------------------------------------------------------------------+
| CZESC B. Jak zrobic wlasna telekarte? |
+----------------------------------------------------------------------+
SEKCJA I. Teoria
----------------
a) szczegoly i podstawowy program
Tak naprawde system stosowany w kartach chipowych mozna dosyc prosto
obejsc, poniewaz wcale nie jest tak dobrze zabezpieczony, jak moglo by
sie wydawac po przeczytaniu CZESCI A. Ponizej przedstawione jest dosyc
specyficzne oprogramowanie dla mikrokomputera jednoukladowego PIC 16C84
RISC, wyprodukowanego przez Microchip. Umozliwia on emulacje kart
Schlumberger i innych. System ten funkcjonuje w Skandynawii (Szwecja,
Norwegia i Finladnia), Hiszpanii, Francji, Monako i w wielu innych
krajach. W przypadku Francji (ewentualnie innych krajow) oprogramowanie
to wymaga sladowych modyfikacji dla poprawnego dzialania, ale jest to
rzecz na poziomie juz banalnym (przy zalozeniu, ze rozumie sie cala
tresc przedstawiona do tej pory). A wiec co do przedstawianego tu tematu
niezbedne jest posiadanie dostepu do programatora (PROMu), mogacego
poradzic sobie z ukladem PIC 16C84. Mozna rowniez zbudowac cos takiego
samemu jak to pokazane jest na dolaczonych schematach ponizej.
Po pierwsze, trzeba wczytac pierwsze 12 bajtow danych z poprawnie
dzialajacej karty z kraju, w ktorym emulator ma dzialac. Warunek ten
jest niezbedny do spelnienia. Ma to byc karta aktualnie funkcjonujaca, a
nie jakas sprzed 10 lat (lub nawet sprzed 2). Nastepnie wystarczy tylko
wprowadzic te 12 bajtow danych we wlasciwe miejsce w ponizszym programie
i to skompilowac. To wszystko ;-) Proste, prawda? Poniewaz zdecydowanie
przypadkowo wybralem wersje ukladu PIC z zewnetrznymi danymi EEPROMu,
oznacza to, ze pierwsze 12 pozycji danych EEPROMu powinno zawierac
identyfikator (ID) karty. Do dzisiaj kod ten powinien (!) dzialac bez
zadnych problemow. Jesli cos jest nie tak w niektorych przypadkach,
wystarczy zmodyfikowac odpowiednio ten program (jesli sie samemu nie
umie poprosic kolege codera ;) ). Poniewaz PIC jest bardzo szybkim i
"mocnym" mikrokomputerem jednoukladowym, moze byc to stosunkowo trudne
dla firm robiacych telekarty rozwiazanie problemu (a dla nas to
oczywiscie lepiej ;) ). Aha i jeszcze jedna sprawa co do oprogramowania:
zauwazyc nalezy, ze biezaca wersja pakietu PICSTART 16B Microchip'u jest
niemozliwa do programowania tablicy danych EEPROMu w ukladzie 16C84,
wiec jesli zamierzacie tego uzywac, uzyjcie innej wersji kodu, ktory
znajdziecie w dodatkach.
|