搜索
bottom↓
回复: 16

【原创】使用AVR和电感模拟125k射频卡

[复制链接]

出200入2554汤圆

发表于 2020-6-15 17:30:43 | 显示全部楼层 |阅读模式
【背景】

前阵子折腾 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 射频卡,无需谐振匹配即可正常工作。
特发来分享,如有问题还请大家指正:)

最后祝大家身体健康,远离瘟疫!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2020-6-15 17:39:09 | 显示全部楼层
只是固件啊  模拟的代码能不能看看啊

出200入2554汤圆

 楼主| 发表于 2020-6-15 18:17:39 来自手机 | 显示全部楼层
amazing030 发表于 2020-6-15 17:39
只是固件啊  模拟的代码能不能看看啊

压缩包已含源码

出0入0汤圆

发表于 2020-6-16 09:29:18 | 显示全部楼层
关键是距离不行。

出0入0汤圆

发表于 2020-6-16 09:56:26 | 显示全部楼层
搭车咨询一下楼主:
某宝上的125K  ID卡,卡号在0扇区0块,是固化了,不能修改卡号吗?

出0入309汤圆

发表于 2020-6-16 10:41:37 来自手机 | 显示全部楼层
本帖最后由 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。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-6-16 12:03:53 | 显示全部楼层
iamseer 发表于 2020-6-16 10:41
其实用tiny13配合汇编,模拟id卡,连电源都不需要。

https://scanlime.org/2008/09/using-an-avr-as-an-rf ...

这个挺好玩的

出0入104汤圆

发表于 2020-6-16 21:02:29 来自手机 | 显示全部楼层
我当年(10多年前)在一张RFID125K读写卡可以写入(3组密码),这样就可以用一张卡开启三个地方密码啦。

出0入0汤圆

发表于 2020-6-17 09:22:04 | 显示全部楼层
mega88 不用电池供电也可以

出200入2554汤圆

 楼主| 发表于 2020-6-17 11:54:36 | 显示全部楼层
zhifeng 发表于 2020-6-16 09:29
关键是距离不行。

不做无线供电的话,距离和普通钥匙扣差不多

出200入2554汤圆

 楼主| 发表于 2020-6-17 11:55:19 | 显示全部楼层
ldj7501 发表于 2020-6-16 09:56
搭车咨询一下楼主:
某宝上的125K  ID卡,卡号在0扇区0块,是固化了,不能修改卡号吗? ...

4100卡是固化了的,5200或者5577是可以修改的

出200入2554汤圆

 楼主| 发表于 2020-6-17 11:57:15 | 显示全部楼层
iamseer 发表于 2020-6-16 10:41
其实用tiny13配合汇编,模拟id卡,连电源都不需要。

https://scanlime.org/2008/09/using-an-avr-as-an-rf ...

看来 AVR 的低压不是盖的,前人折腾的更彻底

出200入2554汤圆

 楼主| 发表于 2020-6-17 11:58:22 | 显示全部楼层
andy 发表于 2020-6-16 21:02
我当年(10多年前)在一张RFID125K读写卡可以写入(3组密码),这样就可以用一张卡开启三个地方密码啦。 ...

标准的 ID 是 64bit 循环发码,这要写成 3*64bit 循环吗?

出0入0汤圆

发表于 2020-6-17 14:57:20 | 显示全部楼层
技术折腾无止境啊,精简到了极致

出0入104汤圆

发表于 2020-6-17 15:47:00 来自手机 | 显示全部楼层
t3486784401 发表于 2020-6-17 11:58
标准的 ID 是 64bit 循环发码,这要写成 3*64bit 循环吗?

在64bit写上3组密码就可以了。

出0入0汤圆

发表于 2020-8-6 15:01:00 | 显示全部楼层
谢谢,可惜只有固件没有代码

出0入0汤圆

发表于 2020-8-23 20:34:47 | 显示全部楼层
感谢楼主共享,收藏备用。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 13:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表