【原创】使用AVR和电感模拟125k射频卡
【背景】前阵子折腾 125kHz 射频卡(RFID)读写,先向坛子里的前辈们致敬!
现有开源的 M8 读卡器已经非常成熟,可以很方便的读取曼彻斯特编码的 EM4100 卡。
折腾期间入手了简易的拷贝器,但只支持实物卡(ID)到实物卡(5577)的拷贝,无法从数据创建新卡。
本帖从另一个角度折腾125k射频卡:使用AVR和常规电感,模拟任意序列号125k-RFID。
【原理】
大致说下 125k 射频卡读取(Card->Reader)原理,如有不对大家指正:
a. 读卡器(Reader)发送125k载波,射频卡(Card)收到载波首先整流供电;
b. 射频卡内部控制器启动,控制一个阻性负载通通断断,向外汇报信息;
c. 读卡器检测到负载变化,采样后获得曼彻斯特码,解码得ID号。
这里贴一张 T5577 手册上的曼彻斯特码载波图,大致示意下负载引起的载波包络变化:
理论上若能控制一个电感+阻性负载通断,模拟该射频卡是可行的。
实际后文的测试证实了这个猜想,并且连谐振匹配都不需要,只要电感不封闭磁感线(例如环形)就能工作。
【实现】
硬件除了系统板只剩个电感,直接贴原理图:
软件上用 GPIO 的 N 管作双向阻性负载:IO输出低电平=重负载(逻辑1),IO悬空=轻负载(逻辑0);
只要感应电压<0.6V,N管的双向通断特性还是可以的。
64bit 曼彻斯特码间隔为 512us/bit,使用 TIMER0 产生时间基准,系统时钟为 UNO 标配 16MHz.
顺手贴来固件(M328,16MHz):
以及自制序列号生成器(PC):
编译环境分别是 ICCAVR 以及 VS2005-MFC.
【测试】
我用了一块带电源的 Arduino UNO (ATMEGA328P) 做主控,电感为 10mH 工字型。
序列号用自制工具(上文附件2)生成,烧录后直接对着读卡器刷出了期望的结果。
实测电感不需要谐振匹配,几百uH到几十mH都可以工作,关键直流电阻不大即可。
顺手测试了 M8 读卡器用的方形线圈(~500uH),一样工作正常。
【后记】
以上,用 AVR 和常规电感模拟了 125k 射频卡,无需谐振匹配即可正常工作。
特发来分享,如有问题还请大家指正:)
最后祝大家身体健康,远离瘟疫!
只是固件啊模拟的代码能不能看看啊 amazing030 发表于 2020-6-15 17:39
只是固件啊模拟的代码能不能看看啊
压缩包已含源码 关键是距离不行。 搭车咨询一下楼主:
某宝上的125KID卡,卡号在0扇区0块,是固化了,不能修改卡号吗? 本帖最后由 iamseer 于 2020-6-16 10:52 编辑
其实用tiny13配合汇编,模拟id卡,连电源都不需要。
https://scanlime.org/2008/09/using-an-avr-as-an-rfid-tag/
大概十年前我测试过这种方案,能用。当时好像是使用attiny13V测试。标称工作电压1.8V。在1.2V下还能工作,在更低的电压下时钟就无法起振了,但是有外置时钟源还可以再苟到0.9V~1V。 iamseer 发表于 2020-6-16 10:41
其实用tiny13配合汇编,模拟id卡,连电源都不需要。
https://scanlime.org/2008/09/using-an-avr-as-an-rf ...
这个挺好玩的 我当年(10多年前)在一张RFID125K读写卡可以写入(3组密码),这样就可以用一张卡开启三个地方密码啦。 mega88 不用电池供电也可以 zhifeng 发表于 2020-6-16 09:29
关键是距离不行。
不做无线供电的话,距离和普通钥匙扣差不多 ldj7501 发表于 2020-6-16 09:56
搭车咨询一下楼主:
某宝上的125KID卡,卡号在0扇区0块,是固化了,不能修改卡号吗? ...
4100卡是固化了的,5200或者5577是可以修改的 iamseer 发表于 2020-6-16 10:41
其实用tiny13配合汇编,模拟id卡,连电源都不需要。
https://scanlime.org/2008/09/using-an-avr-as-an-rf ...
看来 AVR 的低压不是盖的,前人折腾的更彻底 andy 发表于 2020-6-16 21:02
我当年(10多年前)在一张RFID125K读写卡可以写入(3组密码),这样就可以用一张卡开启三个地方密码啦。 ...
标准的 ID 是 64bit 循环发码,这要写成 3*64bit 循环吗? 技术折腾无止境啊,精简到了极致 t3486784401 发表于 2020-6-17 11:58
标准的 ID 是 64bit 循环发码,这要写成 3*64bit 循环吗?
在64bit写上3组密码就可以了。 谢谢,可惜只有固件没有代码 感谢楼主共享,收藏备用。
页:
[1]