Wiegand 26读卡器可以从NFC卡读取什么样的数据?

Adn*_*nan 4 rfid nfc raspberry-pi wiegand

我可以用手机的NFC读卡器读取13.56 MHz的NFC卡,我得到一个十六进制值,如:

1BF52327

这表示卡UID或序列号.

我可以从Wiegand读卡器中获得什么数据?它能读取相同的序列号吗?

由于Wiegand读卡器只能读取26位,它会读取哪些确切的数据?


更新

我能够测试上面的内容.我使用过HID SE r10阅读器和非品牌阅读器.

所以这是结果.

这是上述卡(1BF52327)的二进制值,通过我的手机NFC准备就绪:

11011111101010010001100100111

接下来是我从同一张卡的HID阅读器获得的值:

1101100011011100000010101110010000000000

这是我从同一张卡的非品牌读者那里得到的价值:

1101110000001010111001000

我可以很快找到HID和非品牌阅读器之间的相关性,最后它们几乎是一样的.

但我无法将Wiegand读者读取的值与NFC读取的原始值相关联.

关于我做错了什么的任何想法?我在RPI和arduino上使用了几个库Joan,Wiegand-Protocol-Library-for-Arduino,我从Wiegand读者那里得到了相同的值

Mic*_*and 6

Wiegand读者能够读取与手机相同的序列号吗?

13.56 MHz的Wiegand读卡器(更具体地说是ISO/IEC 14443 A型)通常读取卡/标签的防冲突标识符.手机似乎也会向您显示防冲突标识符(UID).所以,是的,两个设备都读取相同的数据元素.

但是,正如您所知,读取器仅在Wiegand接口上传输26位值(实际上只有24位,因为其中两个是奇偶校验位).由于UID有4个字节,7个字节或10个字节,因此需要将UID截断为3字节值,以便通过Wiegand接口进行传输.

我可以从Wiegand读卡器中获得什么数据?

Wiegand界面上的框架如下所示:

b0  b1  b2  b3  b4  b5  b6  b7  b8  b9  b10 b11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b21 b22 b23 b24 b25
PE  D23 D22 D21 D20 D19 D18 D17 D16 D15 D14 D13 D12 D11 D10 D9  D8  D7  D6  D5  D4  D3  D2  D1  D0  PO
Run Code Online (Sandbox Code Playgroud)

第一行是在Wiegand线上到达时编号的位.第二行是接收器解释的相同位,其中PE(b0)是D23..D12(b1..b12)上的偶校验位,PO(b25)是D11上的奇校验位. D0(b13..b24)和D23..D0是表示无符号整数的数据位(实际上是2,因为高8位是站点代码,低16位是标签ID).

尽管存在对站点代码和标记ID的逻辑拆分,但这些读取器通常仅使用标记ID的截断形式作为24位值.

此值如何映射到您在手机上收到的十六进制值,这很大程度上取决于该十六进制表示的创建方式(特别是其字节顺序).它可能就像取最后3个字节(F52327)一样简单,但它也可能是它1BF523(或任何字节反转(或甚至位反转)的变化).


更新:关于您为读者获得的价值观......

首先,您似乎从值中删除了前导零.例如,1BF52327是一个4字节的值,因此有32位:

   1    B     F    5     2    3     2    7
0001 1011  1111 0101  0010 0011  0010 0111
Run Code Online (Sandbox Code Playgroud)

从读取器接收到的值似乎也是如此(或者库或者库自动丢弃前导奇偶校验位或丢弃两个奇偶校验位并在值的末尾添加任意数量的(?)零).

所以你的价值是:1101 1000 1101 1100 0000 1010 1110 0100 0000 0000 1101 1100 0000 1010 1110 0100 0

正如您自己发现的那样,这些明显相关,因为开头缺少一个字节,而HID阅读器的值最后填充了更多的零.

仔细观察,这些值也与第一个二进制值相关.诀窍是首先反转值.因此,价值观

1101 1000  1101 1100  0000 1010  1110 0100  0000 0000
           1101 1100  0000 1010  1110 0100  0
Run Code Online (Sandbox Code Playgroud)

成为

0010 0111  0010 0011  1111 0101  0001 1011  1111 1111
           0010 0011  1111 0101  0001 1011  1
Run Code Online (Sandbox Code Playgroud)

对于来自Wiegand读取器的值,这也将修复尾随奇校验位(PO),因为现在有7'1'位(包括PO)(尽管这可能只是巧合).

您现在可以看到这些值恰好代表颠倒字节顺序中的第一个值.如果你颠倒了字节顺序

   1    B     F    5     2    3     2    7
0001 1011  1111 0101  0010 0011  0010 0111
Run Code Online (Sandbox Code Playgroud)

你得到

   2    7     2    3     F    5     1    B
0010 0111  0010 0011  1111 0101  0001 1011
Run Code Online (Sandbox Code Playgroud)

将其与其他两个值进行比较,您会发现它们匹配:

0010 0111  0010 0011  1111 0101  0001 1011
0010 0111  0010 0011  1111 0101  0001 1011  1111 1111
           0010 0011  1111 0101  0001 1011  1
Run Code Online (Sandbox Code Playgroud)

因此,您从HID阅读器2723F51B收到的值代表您从Wiegand阅读器收到的值23F51B.因此,该字节27被截断.