⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 单片机仿真ic电话卡.txt

📁 51开发的源程序。希望对大家学习单片机有帮助。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
C51编程:一个技术问题--单片机仿真IC电话卡 [eeunion] [138次] 01-7-20 19:46:00
各位大虾,今天我在公司了作了一个单片机系统,主要是验证我们设计的一种读卡器,在验
证过程中,小弟我突然想到,按照道理来说,我也可以用单片机来仿真IC电话卡的工作,这
样的话,我是不是可以盗打电话了?呵呵,不知道各位大虾认为这个方案在技术上,是不是
可行?要是可行的话,现在外面的电话卡可惨了。 

你搜索 一下帖子,曾有人讨论过这个问题,技术是行得通,但中国电信也不是那么容易那你得利的 [逆风飞扬] [4次] 01-7-20 19:50:52 

你的CPU响应得过来吗?响应前要先计算,好模拟卡中的信号。算不快。 [傲气雄鹰] [39次] 01-7-20 19:52:38 
你的CPU响应得过来吗?响应前要先计算,好模拟卡中的信号。算不快。 

很多人试过,但没有成功,21ic有一次专门的讨论。 [丁丁] [8次] 01-7-20 19:54:16 

用AVR单片机,设成快速启动,8M晶振,应可行。 [Xuedong] [6次] 01-7-20 20:35:00 

21IC有讨论吗?不好意思我不知道,请告知具体位置,学习学习。 [JanesLee] [12次] 01-7-23 下午 06:42:21 
成没成功不要过早下结论,试一下嘛! 

PIC、AVR都能应付。 [JanesLee] [9次] 01-7-23 下午 06:56:23 

ask a question [gdiso] [15次] 01-7-24 上午 10:12:52 
电话机读IC的CLK是多少Hz?
AT90s2343 有10M 主频. 

自己看同步IC卡的时序要求,电话机应该遵守吧!CLK周期约20uS左右。 [JanesLee] [13次] 01-7-24 上午 10:21:24 

看看这个2 [gdiso] [93次] 01-7-24 上午 10:33:59 
计数方法:
在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 [gdiso] [64次] 01-7-24 上午 10:35:26 
Ⅰ-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)
----'--------:----------'-----:---------'---:-----:----------'-----:-----
             :          :     :             :     :          :     :

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -