USB读卡器与韦根34读卡器读同一ID卡时,软件中显示数据不一致,怎么回事,请专家解答!

2025-03-09 21:33:27
推荐回答(2个)
回答1:

  1. ID卡的卡号都是固定,一般是用四个字节的卡号,其他WG26或者或者你说的WG34都是根据这个卡号来做转换的

  2. USB读卡器跟韦根34读头格式不一样,也就是读卡器不是读WG34格式的,是根据ID卡内码转换成其他格式的了。

  3. 至于在WG34读头上刷卡,控制板没有工作,只要还是要看下软件上要使用哪种格式的卡号,可以手动输入WG26卡号试下,就是一般ID卡上印刷中的最后8位。或者输入前十位中的后八位试下。

回答2:

可能数据协议转10进制的问题。
ID、IC卡都有一个卡号,卡号一般不变,固定为4个字节,有些卡是7字节。例如,一张ID卡的卡号为:0DE5 150F,卡面印:0233116943 229, 05391。
数据存在卡内(无论磁条卡、ID卡、IC卡、CPU卡等),读卡器从IC卡内将数据读取出来,但读卡器本身并不分析数据的内容和权限,因此读卡器需要将读到的数据位传输给其它的专门处理、分析数据的设备,而读卡器将数据传输给其它设备就涉及到传输协议。
说到读卡器的传输协议就涉及到多种协议类型了:如韦根、串口(RS232和RS485)等,其中这里重点介绍韦根协议。
目前几乎所有的门禁控制系统都采用韦根协议,尤其是韦根26协议。韦根之所以能够被广泛接受,主要是由于其开放性,另外就是协议简单,没什么太多厂家自定义的内容。韦根协议最常用的还是韦根26、韦根34,一般了解这两个协议就行。
WG26协议
韦根26顾名思义,该协议每次传输26bit数据,除去首尾校验位2bit,真正传输的有效数据只有24bit,共3个字节,而典型的IC卡的卡号一共4个字节,所以韦根26无法传输完整的卡号。针对这一问题,门禁行业一般采取从4个字节的卡号中传输HID码的低8位(即HID_L)和全部的PID码的方式传输数据。例如,卡号为:0DE5 150F,韦根26传输的是“E5 150F”对应的数据位,即“1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 ”。
Wiegand 26格式各数据位的含义:
第1 位: 为输出数据2—13位的偶校验位
第2—9 位:卡的HID码的低8位
第10-25位:卡的PID码
第26 位: 为输出数据14-25位的奇校验位
奇偶校验规则:
偶校验:偶数个1输出0,奇数个1输出1
奇校验:奇数个1输出0,偶数个1输出1
以卡号0DE5 150F为例,
HID_L:1110 0101(只输出0000 1101 1110 0101的低8位)
PID: 0001 0101 0000 1111
韦根26输出如下:
1(偶校验位) 2 …… 9 10 …… 25 26(奇校验位)
0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1
韦根26数据的10进制转换
韦根26协议只负责将对应的数据串(即0,1数据)传输出来,而应用系统要将0/1数据串转换为人们熟悉的10进制数据以方便使用。门禁行业,针对韦根26协议传输出来的数据,一般采用分段转成8位10进制的数据方便用户查看和使用。转换规则为HID_L码转10进制,10进制数据不足3位的高位补0;PID转10进制,10进制数据不足5位的高位补0。例如韦根传输出来的有些数据 “1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1”中,HID_L“1 1 1 0 0 1 0 1”转10进制为:229,PID“0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1”转10进制为:05391,二者首位相连接,最终得到8位10进制的结果:22905391。
WG34协议
韦根34顾名思义,该协议每次传输34bit数据,除去首尾校验位2bit,真正传输的有效数据只有32bit,共4个字节,而典型的IC卡的卡号一共4个字节,所以韦根34可以传输完整的卡号。传输完整的HID和PID码。例如,卡号为:0DE5 150F,韦根34传输的是完整的0DE5 150F数据位,即“0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 ”
Wiegand 34格式各数据位的含义:
第1 位:为输出第2—17位的偶校验位
第2-17 位:卡的HID码
第18-33位:卡的PID号码
第34 位:为输出第18-33位的奇校验位
奇偶校验规则:
偶校验:偶数个1输出0,奇数个1输出1
奇校验:奇数个1输出0,偶数个1输出1
以卡号为:0DE5 150F为例,
HID:0000 1101 1110 0101
PID:0001 0101 0000 1111
韦根34输出如下:
1(偶校验位) 2 …… 17 18 …… 33 34(奇校验位)
0 0 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0
韦根34数据的10进制转换
门禁行业,针对韦根34协议传输出来的数据转10进制采用的规则和韦根26不一样,一般直接直接将32bit的0/1数据转为10位10进制的数据,转换后10进制数据不足10位的高位补0;例如韦根34传输出来的数据 “0 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1”中,转10进制为:0233116943。
至此,我们了解了一张ID卡的卡号为:0DE5 150F,卡面右下角印:0233116943 229, 05391的原由了。当然以上只是标准的韦根26、韦根34传输和10进制转换的方法,实际上国内遇到过各种奇怪的处理,只能细细摸索,一般都有规律可循。