?? 單片機(jī)仿真ic電話卡.txt
字號:
C51編程:一個技術(shù)問題--單片機(jī)仿真IC電話卡 [eeunion] [138次] 01-7-20 19:46:00
各位大蝦,今天我在公司了作了一個單片機(jī)系統(tǒng),主要是驗(yàn)證我們設(shè)計的一種讀卡器,在驗(yàn)
證過程中,小弟我突然想到,按照道理來說,我也可以用單片機(jī)來仿真IC電話卡的工作,這
樣的話,我是不是可以盜打電話了?呵呵,不知道各位大蝦認(rèn)為這個方案在技術(shù)上,是不是
可行?要是可行的話,現(xiàn)在外面的電話卡可慘了。
你搜索 一下帖子,曾有人討論過這個問題,技術(shù)是行得通,但中國電信也不是那么容易那你得利的 [逆風(fēng)飛揚(yáng)] [4次] 01-7-20 19:50:52
你的CPU響應(yīng)得過來嗎?響應(yīng)前要先計算,好模擬卡中的信號。算不快。 [傲氣雄鷹] [39次] 01-7-20 19:52:38
你的CPU響應(yīng)得過來嗎?響應(yīng)前要先計算,好模擬卡中的信號。算不快。
很多人試過,但沒有成功,21ic有一次專門的討論。 [丁丁] [8次] 01-7-20 19:54:16
用AVR單片機(jī),設(shè)成快速啟動,8M晶振,應(yīng)可行。 [Xuedong] [6次] 01-7-20 20:35:00
21IC有討論嗎?不好意思我不知道,請告知具體位置,學(xué)習(xí)學(xué)習(xí)。 [JanesLee] [12次] 01-7-23 下午 06:42:21
成沒成功不要過早下結(jié)論,試一下嘛!
PIC、AVR都能應(yīng)付。 [JanesLee] [9次] 01-7-23 下午 06:56:23
ask a question [gdiso] [15次] 01-7-24 上午 10:12:52
電話機(jī)讀IC的CLK是多少Hz?
AT90s2343 有10M 主頻.
自己看同步IC卡的時序要求,電話機(jī)應(yīng)該遵守吧!CLK周期約20uS左右。 [JanesLee] [13次] 01-7-24 上午 10:21:24
看看這個2 [gdiso] [93次] 01-7-24 上午 10:33:59
計數(shù)方法:
在67-103地址單元中分為5個不可重置8單元計數(shù)器,芯片初始化時,72-103地址單元所對應(yīng)
的4個較低的8單元計數(shù)器中可以放0到8個“1”而67-71地址單元所對應(yīng)的第5個計數(shù)器可以
放0到5個“1”。所謂計數(shù)一次,就是將一個單元從“1”寫成“0”。一個計數(shù)器中8位全為
“0”后,要計數(shù),需借位操作,即將高位計數(shù)器的一位從“1”寫成“0”而相應(yīng)其低位計
數(shù)器整個字節(jié)從“0”擦除成“1”。可見4個8單元計數(shù)器如此逐一遞減,其最大計數(shù)為8的4
次方=4096。第5個計數(shù)器中5個單元因處在最高位只能被寫“0”無法擦成“1”。因此只能
計數(shù)5次。故芯片總計數(shù)為5X4096=20480。當(dāng)全部計數(shù)單元(地址67-103)都被寫成“0”
時,卡片就用完了,不過,芯片出廠初始化時,初置的計數(shù)值由國家不同和卡片面值不同而
不同,如100元卡初置計數(shù)值為1000。
舉例: 100元(1000計數(shù)單元預(yù)置初始值).
--------
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)內(nèi)存數(shù)據(jù):
字節(jié) 位 二進(jìn)制 十六進(jìn)制
+-----------+-----+
1 1 --> 8 | | |
+-----------+-----+
2 9 --> 16 | 0010 1111 | $2F | ---> 德國
| 0011 0111 | $37 | ---> 西班牙
| 0011 1011 | $3B | ---> 希臘
+-----------+-----+
3 17 --> 24 | | |
4 25 --> 32 | | | ---> 出廠編號(寫保護(hù))
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進(jìn)制計數(shù)區(qū)
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 [gdiso] [64次] 01-7-24 上午 10:35:26
Ⅰ-1)介紹
自從80年代中期出現(xiàn)IC電話卡后,基本已取代了原來流行的電話磁卡,磁卡存在存在嚴(yán)重的
安全問題,已逐步淘汰。
即使IC電話卡,也不能算很安全,卡內(nèi)所有數(shù)據(jù)只要有簡單的讀寫裝置并按時序操作都能讀
取,事實(shí)上電話卡和信用卡一樣內(nèi)部沒有什么秘密信息,僅僅是帶串行輸出的128位EPROM而
已(對二類卡是256位PROM),不要以為弄懂了它是怎么工作你就有辦法重新對卡內(nèi)數(shù)據(jù)重新
填充,其開始的64位是帶寫保護(hù)的,在出廠時其熔絲位已被編程,你已無法對其更改,其后
的40位計數(shù)單元受內(nèi)部邏輯控制在寫時只能減少不能增加直至到0為止,因此你想用一般的
IC電話卡打免費(fèi)電話是不可能的,除非你能用微控制器(單片機(jī))仿真它(如果你能讀懂本文
介紹的所有內(nèi)容)。IC電話卡是一種一次性使用的計數(shù)卡,以一次性的計數(shù)方式,從寫滿的
計數(shù)器中減“1”,直至存儲單元減為空為止。
卡片每次消費(fèi)計數(shù)的“單位價值”根據(jù)各種應(yīng)用系統(tǒng)的實(shí)際需要而定。例如:對于中國IC電
話卡,如30元卡對應(yīng)內(nèi)部計數(shù)值為300,每單位值對應(yīng)0.1元,IC 卡電話機(jī)每分鐘產(chǎn)生一次
扣費(fèi)信號,扣費(fèi)值由當(dāng)?shù)豂C電話管理系統(tǒng)設(shè)定,一般是價值0.5元或1元,卡片被計數(shù)5次和
10次。對于其它國家屬于第一類IC電話卡而言也是如此,只是內(nèi)部初始計數(shù)值不同,每次扣
除額度不一樣罷了。其他對于公用加油卡,IC卡計費(fèi)加油機(jī)每一公升(或一加侖)產(chǎn)生一次
扣費(fèi)操作,卡片被操作一次扣2.5元等等,均屬于等同原理。事實(shí)上,這類卡內(nèi)部為128位
(16字節(jié)) NMOS存儲器,按如下規(guī)律分布:
64 位 EPPOM(8字節(jié)) 寫保護(hù)區(qū)(芯片數(shù)據(jù)代碼區(qū)、發(fā)行數(shù)據(jù)代碼區(qū))
40 位 EEPROM(5字節(jié))
24 位 為全“1”(3字節(jié))
共16字節(jié)數(shù)據(jù)。
Ⅰ-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:復(fù)位
| 4 | 8 |
| | | Clock:時鐘 I/O:數(shù)據(jù) NC: 空腳
-------------+-------------
因有三個腳為空腳,目前一般有采用8腳和6腳封裝的,6腳封裝的無最下一排兩個空腳
Ⅰ-3)主要特性:
-采用單一5V電源供電
-遵循ISO/IEC7816-3同步協(xié)議進(jìn)行雙向數(shù)據(jù)傳輸
-低功耗
-NMOS技術(shù)
-高可靠性,抗靜電干擾能力>4KV
Ⅰ-4)時序圖
復(fù)位:
為使地址計數(shù)器復(fù)位到0,先讓Reset端變高。緊跟著一個Clock脈沖(從低到高再降到0),
Reset重新變低,把Clock脈沖包住。隨著Reset端變低,地址0單元的數(shù)據(jù)從I/O上輸出。對
應(yīng) Clock端的每個脈沖,其上升沿使地址計數(shù)器增加。其下降沿使被選通地址單元的數(shù)據(jù)從
I/O上輸出。地址計數(shù)器增加到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端上的一個脈沖(即從低到高再回低)將允許芯片進(jìn)行位寫操作。在緊跟著的
時鐘脈沖期間執(zhí)行寫操作,調(diào)整寫操作維持時間至少10ms,在這個CLK脈沖期間,地址計數(shù)器
不會增加,在CLK寫脈沖下降沿,數(shù)據(jù)0從I/O端輸出。從Reset脈沖的上升沿到CLK寫脈沖的
下降沿期間,I/O端的數(shù)據(jù)是無效的。在下一個才CLK脈沖,且Reset為低時,地址計數(shù)器又
增1,并在下降沿時,把選通的地址單元的數(shù)據(jù)送到I/O端。
_____ _____
_____________| |______________________________| |_______________ Reset
: :
___ : _____ ___ : _____
____| |____:__________| |_________| |_____:__________| |____ Clk
: : : : : : : : :
____:________:__________:_____:_________:___:_____:__________:_____:_____
n | n+1 | n+2 | : n+3 | :
(Address)
----'--------:----------'-----:---------'---:-----:----------'-----:-----
: : : : : : :
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -