射频卡为13.56M和125K两种,又叫IC和ID卡,在这里先把ID卡说明白,因为ID卡(125K)的卡号会写在白卡卡面上,因为ID卡是一次写入的,不能被改,IC卡的存储内容就比ID卡多的多,这里不展开。
ID卡的读卡是读卡器发出125K的信号,这个信号读卡器可以用驱动电路加线圈组成,然后再加上一套接收电路,接收电路有对信号进行解调。电路可以参考我的另外博客,这里也不展开
我拿到了一张白卡 卡的右下角标注的内容为0008354611 127,31539
查看下面这个图,也就是ID卡存放的信息 其中前面8bit是厂家的标志码,32位是卡号。
0008354611
十六进制:7F7B33
二进制:011111110111101100110011,其实后面会发现这个二进制并不是真正的卡号。
把十六进制拆开 7F 7B83
就是对应于127,31539
7F的二进制位0111 1111
31539的二进制位0111 1011 0011 0011
读卡器用韦根信号,韦根从硬件上读取很简单,D0被拉低就是数据0,D1被拉低就是数据1,
我自己测试了一个读卡器的韦根26(韦根34同理)输出信号
上图示波器翻译过来就是00111111101111011001100110 共26位,好了,将数据进行整理
0 0111 1111 0111 1011 0011 0011 0,没错,将这个数据和上面的卡号做比对,一目了然了,至于我为什么要用这个首尾分开的格式拍这个数据,见以下:
这里我借用一个大神的一篇博客来讲解https://www.cnblogs.com/icedog/p/3281074.html
例:一张ID卡内容为:
HID:32769 PID:34953 ( 卡面印:2147584137 001, 34953 )
相应的二进制为:
HID:1000 0000 0000 0001 ( 只输出低8位 )
PID:1000 1000 1000 1001
输出如下:
1 2 9 10 25 26
0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1
| HID_L | PID |
输出端D0、D1时序:
图示:
(1) D0、D1在没有数据输出时均保持高电平;
(2) 输出数据位时间为420uS(TL),如输出为0,D0拉低420uS(TL)后为高电平,若输出为1,则D1拉低420uS(TL)后为高电平;
输出数据位之间的间隔时间为2mS(TL),如输出00:D0拉低420uS(TL)后为高电2mS(TL),再拉低为低电平420uS(TL),然后释放为高电平;