Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Raspberry pi Wiegand 26读卡器可以从NFC卡读取什么样的数据?_Raspberry Pi_Nfc_Rfid_Wiegand - Fatal编程技术网

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

Raspberry pi Wiegand 26读卡器可以从NFC卡读取什么样的数据?,raspberry-pi,nfc,rfid,wiegand,Raspberry Pi,Nfc,Rfid,Wiegand,我可以用手机的NFC读卡器读取13.56 MHz的NFC卡,并得到如下十六进制值: 1BF52327 这表示卡的UID或序列号 我能从Wiegand阅读器中得到什么数据?它能读取相同的序列号吗 由于Wiegand阅读器只能读取26位,它将读取什么样的精确数据 更新 我能够测试以上内容。我使用了HID SE r10阅读器和非品牌阅读器 下面是结果 这是上述卡(1BF52327)的二进制值,已由我的手机的NFC准备就绪: 11011111101010010001100100111 接下来,这是我从

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

1BF52327

这表示卡的UID或序列号

我能从Wiegand阅读器中得到什么数据?它能读取相同的序列号吗

由于Wiegand阅读器只能读取26位,它将读取什么样的精确数据


更新

我能够测试以上内容。我使用了HID SE r10阅读器和非品牌阅读器

下面是结果

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

11011111101010010001100100111

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

1101100011110000010111001000000000

这是我从同一张卡的非品牌读卡器中获得的值:

1101110000001010111100000

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

但我无法将维冈读者阅读的价值观与NFC阅读的原始价值观联系起来

你知道我做错了什么吗?我在RPI和arduino上使用了多个库,我从Wiegand阅读器获得了相同的值

Wiegand阅读器是否能够读取与手机相同的序列号? 13.56 MHz(更具体地说是ISO/IEC 14443 A类)的Wiegand读卡器通常读取卡/标签的防碰撞标识符。手机似乎还会向您显示防碰撞标识(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
第一行是通过韦根导线到达时编号的位。第二行是接收机解释的相同位,其中PE(b0)是D23..D12(b1..b12)上的偶数奇偶校验位,PO(b25)是D11..D0(b13..b24)上的奇数奇偶校验位,D23..D0是表示无符号整数的数据位(实际上是两位,因为上面的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
从读卡器接收到的值似乎也是如此(读卡器或库自动删除前导奇偶校验位,或删除两个奇偶校验位,并在值的末尾添加任意数量的零(?)

因此,你的价值观是: 1101 1000 1101 1100 0000 1010 1110 0100 0000 0000 1101100 0000 1010 1110 0100

正如您自己发现的,这些明显的关联在于,一个字节在开始时丢失,而来自HID读取器的值在结束时被更多的零填充

更仔细地看,这些值也与第一个二进制值相关。诀窍是首先反转这些值。因此,值

1101 1000  1101 1100  0000 1010  1110 0100  0000 0000
           1101 1100  0000 1010  1110 0100  0
变成

0010 0111  0010 0011  1111 0101  0001 1011  1111 1111
           0010 0011  1111 0101  0001 1011  1
对于来自Wiegand读取器的值,这还将修复尾随奇偶校验位(PO),因为现在有7'1'位(包括PO)(尽管这可能只是巧合)

您现在可以看到,这些值正是以反向字节顺序表示的第一个值

   1    B     F    5     2    3     2    7
0001 1011  1111 0101  0010 0011  0010 0111
你得到

   2    7     2    3     F    5     1    B
0010 0111  0010 0011  1111 0101  0001 1011
将其与其他两个值进行比较,可以看到它们匹配:

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

因此,您从HID读卡器接收的值表示
2723F51B
,从Wiegand读卡器接收的值表示
23F51B
。因此,字节
27
被截断。

Hello@Michael Roland感谢您的回答,我已经测试了上述内容,并更新了问题。答案是我现在要说的是,我找不到与维冈读者和NFC阅读的价值观之间的关联。关于我做错了什么,有什么想法吗?谢谢你的时间。非常感谢你的详细解释。这对我来说是一个宝贵的教训。再次感谢。