极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14827|回复: 12

[抛砖]RFID继续研究

[复制链接]
发表于 2013-4-8 14:49:47 | 显示全部楼层 |阅读模式
本帖最后由 瘦网虫 于 2013-4-9 09:21 编辑

【注】此帖有片面性,仅做入门学习,针对频率为125Khz的卡。
原帖在这里,试试看翻译成能看懂的。。。
http://www.instructables.com/id/A-Universal-RFID-Key/step2/Whats-stored-on-the-card/

好奇下图中的数据是怎么传输的?请继续阅读。


一般我们手上的卡都是这种卡,上面印有数字,这是这个卡的身份。

图中卡上印了  0007820706  119,21922,传输的时候是下面这样:
1111111110010111000000000000001111011110101001010101000010101100

不着急,慢慢来解释:

第一个111111111是开始传输的信号,告诉读卡器“后面跟着来的数据是卡的id,睁大钛合金狗眼看好了”。
数据每4位(bits)一组(上面的黄绿色字),传输一次,每组后面跟着一个校验位(上面加粗体的字)。

忽略上面的校验位(粗体字)和前面的传输信号,我们就能得到下面的序列:

0010    1100    0000    0000    0111    0111    0101   0101  1010   0010    0110              0
     2          C        0           0            7          7          5          5           A          2     CHECKSUM   STOP
快了,数据就要出来了:

如果把上面的数据分成3组,我们就得到了 2c 0077 55a2。 先是2c, 后面的是 0077 (十进制的119!抓到你了!), 后面的 55A2, 十进制的 21922。对应了卡上的 119,21922.

那前面的奇怪数字呢?
把刚得到的7755A2转成10进制看看,是不是0007820706?

这下我们知道卡片上的数字是什么意思了!

好奇那个2C是什么?2C可不是2B的升级,2C是一个常量,所有的卡都是2C,可以算作RFID系统的识别码吧。
修改:2C是厂家识别码。

扩展阅读:
校验码怎么生成的?
简单的说,是把传输的数据中的1凑成双数(偶校验,对应的还有奇校验,自己琢磨)。
举例:
传输2,要发送0010,中间只有1个“1”,不能让它“单着”,校验位凑个1上去,传输内容变成00101
传输C,要发送1100,中间2个“1”,已经是成双入对了,校验位不是小三,传输内容变成11000


00101 2
11000 C
00000 0
00000 0
01111 7
01111 7
01010 5
01010 5
10100 A
00101 2

0110 checksum    + 0 停止位

最后的校验位是纵向校验,看看纵向有没有1单着。上面加粗的凑凑已经是双的了,所以校验位为0。

如果校验失败,读卡器会怎么做,你懂的。

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-4-8 16:03:42 | 显示全部楼层
好文章
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-8 16:11:16 | 显示全部楼层
本帖最后由 瘦网虫 于 2013-4-8 16:19 编辑

怎么传输0和1呢?这里引入 曼彻斯特编码 供参考:

曼彻斯特编码_百度百科
http://baike.baidu.com/view/489804.htm

为什么用这样的编码方式,留给读者思考吧。

简单的来说,
传输1,电平由高->低
传输0,电平由低->高

对比下面的图:

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2013-4-8 17:16:29 | 显示全部楼层
这是针对125K的卡吧
回复 支持 反对

使用道具 举报

发表于 2013-4-8 17:29:43 | 显示全部楼层
好奇那个2C是什么?2C可不是2B的升级,2C是一个常量,所有的卡都是2C,可以算作RFID系统的识别码吧。

其实那8位是厂家ID, LZ翻译有点不准确
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-9 09:10:24 | 显示全部楼层
histamine 发表于 2013-4-8 17:29
其实那8位是厂家ID, LZ翻译有点不准确

呵呵,新手入门,内容已修改。

看到这篇文章写的不错,就转过来,试着翻译一下,给其他新手学习,共同进步。
回复 支持 反对

使用道具 举报

发表于 2013-4-9 09:18:25 | 显示全部楼层
支持楼主,这个是好文章!
回复 支持 反对

使用道具 举报

发表于 2013-4-9 22:01:30 | 显示全部楼层
好文章啊

有时间了

就是要弄这个呢

顶一个
回复 支持 反对

使用道具 举报

发表于 2013-4-9 23:49:37 | 显示全部楼层
很感兴趣
回复 支持 反对

使用道具 举报

发表于 2013-4-16 13:31:05 | 显示全部楼层


国内有人做出来了,有介绍和视频,请查看此网页:


http://www.blogjava.net/baicker/archive/2011/11/06/363014.html
回复 支持 反对

使用道具 举报

发表于 2013-6-1 13:59:15 | 显示全部楼层
写的很深入浅出,不错的文章,哈哈~~~~好东西~~~~
另外 可以大致的教一下新手如何进行进制转换(很多新手不知道呢)毕竟这个算是计算机或者相关专业基础课的一个章节(我现在基本都快忘记了 只记得2转16 2转10   比如BCD神马的 8进制的都快忘记了)

还有就是有个基本的小工具 ,就是 WINDOWS自带的计算器 转换起来很方便~~~
回复 支持 反对

使用道具 举报

发表于 2013-6-1 14:02:51 | 显示全部楼层
mjgzdnw 发表于 2013-4-16 13:31
国内有人做出来了,有介绍和视频,请查看此网页:

破解神器啊

小区门禁 楼宇门禁(没有采取复杂加密 仅仅是读取串号后放行的)的杀手啊
只要能近距离接触到,就能读到对方卡的串号。再模拟出来。。。。简直神器了~~
回复 支持 反对

使用道具 举报

发表于 2014-1-10 01:55:41 | 显示全部楼层
想问一下,这个读卡的原理是什么?
我看了网上好多的说明,也看了源代码,说实话,除了官方那个全英文,看不懂!

但是对于理解,好像还是迷迷糊糊,能详细教我一下吗?

当卡接近rc522 rfid 模块时,模块做了哪些工作?
然后arduino应该做什么工作,才能读到数据或者再写数据
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 20:03 , Processed in 0.046702 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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