[转载] ID卡复制教程(使用T5577卡复制4100卡)

[转载] ID卡复制教程(使用T5577卡复制4100卡)
转载自:https://blog.csdn.net/TonnyBrown/article/details/75200601

ID卡的常见类型与区别

国内常见的普通ID卡多为EM 4100 或 EM 4102卡,其特点是不可修改ID号。为了复制普通ID卡,通常采用T5577 或 EM4305卡(俗称ID白卡),其特点是内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的。

本文以T5577卡复制普通EM4100卡。读者需具备基本的电子DIY能力。

多说一句,ID卡和IC卡是不一样的哦,本文只针对ID卡,绝大多数ID卡卡面会有一串数字,如果没有数字可能是IC卡哦,本文就不适用了。

2 硬件准备

A. ID卡读卡模块,用于读取待复制ID卡的卡号,某宝售价10元左右。

 

 

B. T5577卡读写模块,用于读取或写入ID号到T5577卡,某宝低于20元。

 

C.T5577空白卡

 

 

D.USB转串口TTL模块(10元以下)(懒得放图了)

 

3 ID卡号介绍

标准EM ID卡号(曼彻斯特内码)由10位16进制数组成,例如:

 

7200944C78

其中7为版本代码,2为客户代码,00944C78ID代码

 

曼彻斯特内码 不在卡面标注,卡面常见标注为以下两种形式:

而此卡面所标注的卡号分别为ABA码(0009718904) 和 wiegand26码(148,19576):

如图所示的ABA码由ID代码转换为10进制所得,即:

00944C78)16 →(0009718904)10

如图所示的wiegand26码由ID代码倒数5、6位和后4位分别换算成10进制组成,即:

94,4C78)16 →(148,19576)10

 

综上所述:只有曼彻斯特内码(7200944C78)包含了完整的ID卡号信息,因此下文中所述的卡号、ID号如无特别说明均为10位16进制曼彻斯特内码

4 使用ID卡读卡模块读取ID号

由第3节可知:虽然ID卡卡面会包含"ID号",但其信息并不完整,只有通过ID读卡器才能读出完整的曼彻斯特内码。

通过USB转串口TTL模块连接电脑和ID卡读卡模块,注意连接TXD和RXD交叉,使用串口调试助手读取ID号。读取ID的过程比较简单,详情可以参考模块手册。

 

 

 

 

(这里如果有时间的话会放一张硬件连接图)

 

 

 

 

 

5 向T5577空白卡写入ID号(原创内容)

ID号码只是一串16进制数,而T5577卡可以储存大量的数据,只有将ID号码按照指定格式写入T5577后,T5577才能起到原卡的作用。

5.1普通ID卡中的ID号

EM4100卡能够存储64bits数据,只可读不可写,其数据格式如下:

EM4100卡与RFID读卡器的交互过程中,按照以上数据格式循环传输,连续9个1表示一次传输的开始,每组5位中最后一位(P0~P9)是偶校验(每组5位中1的个数为偶数个),在进行数据校验的同时,确保了不会出现连续9个1与传输开始标志冲突。PC0~PC3位为列校验位,S0位停止位。

以下为一次传输的数据情况,该卡的卡号(曼彻斯特内码)为:

06001259E3

如果我们能像4100卡一样向读卡器发送上面64bit数据,即可达到复制ID卡的目的。

 

5.2 T5577空白卡

英文原文:http://www.priority1design.com.au/t5557_rfid_transponder.html

T5577能够储存330bits的数据,可读可写,其数据格式如下:

Block 0为配置块:

The configuration block bits are described in detail in Atmel's T5557 datasheet, see T5557 datasheet. Here is a description of some of the more important configuration bit details.

Bits 16 - 20: Determine the Encoding protocol upon start up. A bit pattern of 10000 selects Manchester Encoding. When data is transmitted from tag to reader the data is encoding using this selected scheme. See Data modulation

Bits 12 - 14: Determine the Bit rate of the data transmitted by the transponder to the reader. A bit pattern of 101 selects a bit rate of 64 Field Cycles per bit.

Bits 25 - 27: Determine the maximum block address transmitted in standard read mode. For the T5557 RFID transponder this value can be from 0 to 7.

Bit 28: When Set this bit activates the Password mode. In Password mode all blocks need a password to be sent before they can be read or written. The password required is stored in block 7.

这部分就是说"配置块"每一位的含义,有点类似于51单片机配置寄存器的感觉……

当卡片被放入读卡器时,卡片会读取保存在配置块的数据按照配置要求发送数据。然后进入标准读模式。在标准读模式中,卡片从Block1开始发送数据到配置块25到27位定义的Max Block结束,整个发送过程重复进行。

配置块Block 0的默认配置为:000880E8

比特率:RF/32 调制方式:Manchester 最大块:7     PSKCF:RF/2     ST:1

这个默认配置是不正确的,EM4100卡的比特率是RF/64,且不使用ST(ST:0)

因此,Page0 Block0应当配置为:001480E0有同学配置成 00148041成功了,懒得分析了,只要能用就OK,感谢评论区@hahahwokao

5.3 T5577写入ID号(核心+原创)

普通ID卡(4100卡)在工作时,会循环发送自身全部64bit数据,这些数据中包含引导帧,ID卡号,行校验,列校验。以ID号:06001259E3写入4100卡为例(4100卡不可写,这里只是分析ID号在卡内的储存形式,进而推出应该写入T5577卡的数据)

第一步:写入引导序列和ID卡号

0→0000        6→0110        E→1110        1→0001

1

1

1

1

1

1

1

1

1

 

0

0

0

0

 

0

1

1

0

 

0

0

0

0

 

0

0

0

0

 

0

0

0

1

 

0

0

1

0

 

0

1

0

1

 

1

0

0

1

 

1

1

1

0

 

0

0

1

1

 
    

0

第二步:写入列校验和行校验,最后一个固定为0

1

1

1

1

1

1

1

1

1

 

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

1

1

0

0

1

0

0

0

 

列校验和行校验均为偶校验:每行或每列中"1"的个数为偶数的时候,这个校验位就是"0",否则这个校验位就是"1"

将上表按数据发送顺序展开,则4100卡最终发送的数据就是:

111111111    00000011000000000000000 (FF818000)

110010101    01010010111010011001000     (CAA974C8)

只要把这64位数据写入T5577的EEPROM中,即可实现ID卡的复制。

 

 

使用T5577读写模块和配套软件,首先在Block1中写入FF818000,在Block2中写入CAA974C8即完成了ID号的写入,最后在配置块Block0中写入001480E0有同学配置成 00148041成功了,懒得分析了,只要能用就OK,感谢评论区@hahahwokao。此时,T5577卡即可替代原ID卡。

读写模块配套软件:

  1. 链接:https://pan.baidu.com/s/1Dxyq9kzN1gC3jAtIuTkwhg

  2. 提取码:x5xx

 

转载自:https://blog.csdn.net/TonnyBrown/article/details/75200601

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
检测方法:检测上次接收数据的结束位与下次接收数据的起始位(半个周期的低电平 与一个周期的高电平),但是,此时INPORT输入脚电平已变为低电平信号。 之后再连续检测16个半周期电平翻转,到达第9个1的前半周期(高电平), 之后INPORT变为低电平,再通过定时器0来模拟同步时钟,对曼彻斯特码进行解码。 注意:号发送顺序:先发校验位,紧接着是最高位、次高位····连发5位数据。 如本号是11100 00110 00000 00000 11100 10101 10100 00010 01011 01010 10010 最先接收到是第一个五位的校验位0,然后才是1110,依次类推。 下降沿为 1 上升沿为 0 整个程序的思想:每次采样完成,判断一次所采到的数据是否为1 ,若为1,继续采样,直到采完9个1, 若为0,丢掉数据,重新采样。从而实现是否有的判断。 ***********************************************************************************/ #include #include #include //增加部分:由于改版,读输入和蜂鸣器输入的io口有所更改 //----------------------------------------------------------------------------- // 16-bit SFR Definitions for 'F34x sfr16 SBRL1 = 0xB4; // Global CONSTANTS #define SYSCLK 12000000 // SYSCLK frequency in Hz #define BAUDRATE0 115200 // Baud rate of UART0 in bps #define BAUDRATE1 115200 // Baud rate of UART1 in bps #define BIT5 0x20 sbit SPK = P3^5; //蜂鸣器 sbit INPORT = P0^3; //解码输入 sbit wave = P1^7;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值