?? ic.txt
字號:
經試驗,FX2可用:
PC九針串口 PLC25針
2 RXD 經RS232轉RS422 2 RXD+ 15 RXD-
3 TXD 經RS232轉RS422 3 TXD+ 16TXD-
5 GND 7、8、20、21
8 CTS 經600歐電阻接 18 DTR
12、13、24、25短接(可提供+5V電源)
注意:經我試驗,工控網上的SC-09電纜圖不正確的,無法通訊。
TOP IC電話卡徹底解密
--------------------------------------------------------------------------------
聲明:本資料僅從技術的角度全面探討IC卡、IC電話卡及其安全性,由此引發的各種爭議或個人、集體利用本資料做任何不正當用途本人概不負責。
--------------------------------------------------------------------------------
目錄
Ⅰ)第一類卡(德國、西班牙、中國、香港、澳門等)
Ⅰ-1)介紹:
Ⅰ-2)引腳:
Ⅰ-3)主要特性:
Ⅰ-4)時序圖:
Ⅰ-5)內存數據:
Ⅱ)第二類卡(法國、墨西哥、捷克、瑞典、愛爾蘭等)
Ⅱ-1)介紹:
Ⅱ-2)引腳:
Ⅱ-3)主要特性:
Ⅱ-4)時序圖:
Ⅱ-5)內存數據:
Ⅱ-6)電氣參數:
Ⅰ) 第一類卡
Ⅰ-1)介紹
自從80年代中期出現IC電話卡后,基本已取代了原來流行的電話磁卡,磁卡存在存在嚴重的安全問題,已逐步淘汰。
即使IC電話卡,也不能算很安全,卡內所有數據只要有簡單的讀寫裝置并按時序操作都能讀取,事實上電話卡和信用卡一樣內部沒有什么秘密信息,僅僅是帶串行輸出的128位EPROM而已(對二類卡是256位PROM),不要以為弄懂了它是怎么工作你就有辦法重新對卡內數據重新填充,其開始的64位是帶寫保護的,在出廠時其熔絲位已被編程,你已無法對其更改,其后的40位計數單元受內部邏輯控制在寫時只能減少不能增加直至到0為止,因此你想用一般的IC電話卡打免費電話是不可能的,除非你能用單片機仿真它(如果你能讀懂本文介紹的所有內容)。IC電話卡是一種一次性使用的計數卡,以一次性的計數方式,從寫滿的計數器中減“1”,直至存儲單元減為空為止。
卡片每次消費計數的“單位價值”根據各種應用系統的實際需要而定。例如:對于中國IC電話卡,如30元卡對應內部計數值為300,每單位值對應0.1元,IC 卡電話機每分鐘產生一次扣費信號,扣費值由當地IC電話管理系統設定,一般是價值0.5元或1元,卡片被計數5次和10次。對于其它國家屬于第一類IC電話卡而言也是如此,只是內部初始計數值不同,每次扣除額度不一樣罷了。其他對于公用加油卡,IC卡計費加油機每一公升(或一加侖)產生一次扣費操作,卡片被操作一次扣2.5元等等,均屬于等同原理。事實上,這類卡內部為128位(16字節) NMOS存儲器,按如下規律分布:
64 位 EPPOM(8字節) 寫保護區(芯片數據代碼區、發行數據代碼區)
40 位 EEPROM(5字節)
24 位 為全“1”(3字節)
共16字節數據。
Ⅰ-2)引腳:
-------------+-------------
| 1 | 5 | 引 腳:
| | | -------
+-------\ | /-------+
| 2 +----+ + 6 | 1 : Vcc = 5V 5 : Gnd
| | | | 2 : Reset 6 : NC
+--------| |--------+ 3 : Clock 7 : I/O
| 3 | | 7 | 4 : NC 8 : NC
| +----+----+ |
+-------/ | \-------+ Vcc:電源 Gnd:地腳 Reset:復位
| 4 | 8 |
| | | Clock:時鐘 I/O:數據 NC: 空腳
-------------+-------------
因有三個腳為空腳,目前一般有采用8腳和6腳封裝的,6腳封裝的無最下一排兩個空腳
Ⅰ-3)主要特性:
-采用單一5V電源供電
-遵循ISO/IEC7816-3同步協議進行雙向數據傳輸
-低功耗
-NMOS技術
-高可靠性,抗靜電干擾能力>4KV
Ⅰ-4)時序圖
復位:
為使地址計數器復位到0,先讓Reset端變高。緊跟著一個Clock脈沖(從低到高再降到0),Reset重新變低,把Clock脈沖包住。隨著Reset端變低,地址0單元的數據從I/O上輸出。對應 Clock端的每個脈沖,其上升沿使地址計數器增加。其下降沿使被選通地址單元的數據從I/O上輸出。地址計數器增加到127后返回到0。
__________________
_____| |_____________________________________________ Reset
: :
: _____ : _____ _____ _____ _____
_____:_______| |____:_| |_____| |_____| |_____| |_ Clk
: : : : : : : : : : :
_____:_______:__________:_:_____:_____:_____:_____:_____:_____:_____:_
_____:___n___|_____0____:_|_____1_____|_____2_____|_____3_____|___4_:_ (Address)
: : : : : :
_____: :_______:___________:___________:___________:_
_____XXXXXXXXXXXXXXXXXXXX_______|___________|___________|___________|_ Data
Bit n Bit 0 Bit 1 Bit2 Bit3
寫位:
在Reset和Clk端均為低的情況下,如果某地址單元允許寫操作(64-103位,且該位必需為1),則Reset端上的一個脈沖(即從低到高再回低)將允許芯片進行位寫操作。在緊跟著的時鐘脈沖期間執行寫操作,調整寫操作維持時間至少10ms,在這個CLK脈沖期間,地址計數器不會增加,在CLK寫脈沖下降沿,數據0從I/O端輸出。從Reset脈沖的上升沿到CLK寫脈沖的下降沿期間,I/O端的數據是無效的。在下一個才CLK脈沖,且Reset為低時,地址計數器又增1,并在下降沿時,把選通的地址單元的數據送到I/O端。
_____ _____
_____________| |______________________________| |_______________ Reset
: :
___ : _____ ___ : _____
____| |____:__________| |_________| |_____:__________| |____ Clk
: : : : : : : : :
____:________:__________:_____:_________:___:_____:__________:_____:_____
n | n+1 | n+2 | : n+3 | : (Address)
----'--------:----------'-----:---------'---:-----:----------'-----:-----
: : : : : : :
_________ _: : : ____________: ___: : :
_________XXX_XXXXXXXXXXXXXXXXXXX____________ XX___XXXXXXXXXXXXXXXXXXXXXXX I/O
n n+1 : : n+1 n+2 : :
: : : :
write write
借位寫后的字節擦除:
對位地址72-103的字節單元來說,只要在每個字節的前面一位進行一次正常的寫操作,就可以對此字節后一字節進行字節擦除操作。也就是說,每向高一字節進行借位(即寫一位0),緊接著的擦除時序可以對后一字節按字節擦除(即整個字節寫1)。被擦除的字節總是比借位寫的字節低一字節。從以下時序圖可以看出,首先,完成一個“位寫”操作,在CLK的寫脈沖結束后,在CLK為低電平時,在發一個Reset脈沖即啟動字節擦除操作。在第二個CLK脈沖完成字節擦除,脈沖維持時間整定為擦除周期時間(至少1ms)。芯片邏輯控制電路驗證了借位寫確已完成從“1”寫“0”后,才擦除其低位字節。從Reset的上升沿到擦除操作的CLK脈沖的下降沿,I/O腳上的數據無效。地址計數器仍然停留在借位寫的地址上。
_____ _____
______| |____________________| |_________________________________ Rst
: :
: _______ : _______ ___
______:___________| |______:_____________| |______| |______ Clk
: : : : : : : :
: : : : : : : :
<------------------------- address n ------------------------>:<--- n+1 ------
: : : : : : :
: : : : : : :
______: : :______: : :__________: _____
______XXXXXXXXXXXXXXXXXXXXX______XXXXXXXXXXXXXXXXXXXXXXX__________XX_____ I/O
: : n : : n n+1
: : : :
Write Erase
計數方法:
在67-103地址單元中分為5個不可重置8單元計數器,芯片初始化時,72-103地址單元所對應的4個較低的8單元計數器中可以放0到8個“1”而67-71地址單元所對應的第5個計數器可以放0到5個“1”。所謂計數一次,就是將一個單元從“1”寫成“0”。一個計數器中8位全為“0”后,要計數,需借位操作,即將高位計數器的一位從“1”寫成“0”而相應其低位計數器整個字節從“0”擦除成“1”。可見4個8單元計數器如此逐一遞減,其最大計數為8的4次方=4096。第5個計數器中5個單元因處在最高位只能被寫“0”無法擦成“1”。因此只能計數5次。故芯片總計數為5X4096=20480。當全部計數單元(地址67-103)都被寫成“0”時,卡片就用完了,不過,芯片出廠初始化時,初置的計數值由國家不同和卡片面值不同而不同,如100元卡初置計數值為1000。
舉例: 100元(1000計數單元預置初始值).
--------
Byte9 Byte10 Byte11 Byte12 Byte13
--------------------------------------------------------------
000000 - 00000001 - 01111111 - 00011111 - 00000000
--------------------------------------------------------------
(3)octal (6)octal (7)octal (1)octal (2)octal
--------------------------------------------------------------
Value = 0*8^4 + 1*8^3 + 7*8^2 + 5*8^1 + 0*8^
--------------------------------------------------------------
總值 = 1000 Units
Ⅰ-5)內存數據:
字節 位 二進制 十六進制
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
2 9 --> 16 | 0010 1111 | $2F | ---> 德國
| 0011 0111 | $37 | ---> 西班牙
| 0011 1011 | $3B | ---> 希臘
+-----------+-----+
3 17 --> 24 | | |
4 25 --> 32 | | | ---> 出廠編號(寫保護)
5 33 --> 40 | | |
6 41 --> 48 | | |
7 49 --> 56 | | |
8 57 --> 64 | | |
+-----------+-----+
9 65 --> 72 | | | ---> c4096 )
10 73 --> 80 | | | ---> c512 )
11 81 --> 88 | | | ---> c64 ) 5個8進制計數區
12 89 --> 96 | | | ---> c8 )
13 97 --> 104 | | | ---> c0 )
+-----------+-----+
14 105 --> 112 | 1111 1111 | $FF |
15 113 --> 120 | 1111 1111 | $FF | ---> 所有位都為"1"
16 120 --> 128 | 1111 1111 | $FF |
+-----------+-----+
如需某一國家卡內數據詳細數據請與作者聯系。
Ⅱ)第二類卡
Ⅱ-1)介紹:
二類卡與一類卡的區別在于,二類卡為256位PROM卡,在計數方式上有區別,一類卡5個計數單元組成5位8進制遞減計數單元,有較大的計數范圍,而二類卡的計數單元每一位只能計數一次,在寫為“1”后該位即無效,另外在引腳設置、操作時序上也不相同。
Ⅱ-2)引腳:
-------------+-------------
| 1 | 5 |
| | |
+-------\ | /-------+
| 2 +----+ + 6 |
| | | |
+--------| |--------+
| 3 | | 7 |
| +----+----+ |
+-------/ | \-------+
| 4 | 8 |
| | |
-------------+-------------
1 : Vcc = 5V 5 : Gnd
2 : R/W 6 : Vpp = 21V
3 : Clock 7 : I/O
4 : Reset 8 : Fuse
1:電源腳 2:讀寫控制 3:時鐘 4:復位 5:接地 6:熔絲電壓 7:輸入輸出 8:熔絲控制
Ⅱ-3)主要特性:
-同步傳輸協議
-N-MOS技術
-256X1位
-96位帶寫保護
-低功率85mW
-21V熔絲電壓
-響應時間:500ns
-10年以上數據保持
Ⅱ-4)時序圖:
+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 :
卡復位 Bit 1 Bit2 Bit 3
讀 讀 Bit2 寫為1 讀
-5)內存數據:
法國和摩洛哥等:
字節 位 進制 十六進制
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
2 9 --> 16 | 0000 0011 | $03 | ---> 法國卡
+-----------+-----+
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 units card
| 0000 0110 | $06 | ---> 50 units card
| 0000 0101 | $05 | ---> 40 units card
+-----------+-----+
13-31 97 --> 248 | | | ---> 計數單元區: 每消耗一單位,該位被寫
| | | 為“1”,一般開始10為為工廠作熔絲
| | | 測試寫為“1”
| | |
| | |
| | |
| | |
+-----------+-----+
32 249 --> 256 | 1111 1111 | $FF | ---> 空卡指示
+-----------+-----+
其它國家:
字節 位 進制 十六進制
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -