1、韦根数据格式韦根数据输出格式一、 韦根数据输出的基本概念:韦根数据输出由二根线组成,分别是DATA0 和DATA1 ;二根线分别将0或1输出。输出0时:DATA0线上出现负脉冲;输出1时:DATA1线上出现负脉冲;具体时序如下:例如:数据1011时序如下:DATA0 DATA1 TP TW 负脉冲宽度TP=100 us;周期TW=1000 us二、 几种韦根输出格式:韦根26位输出格式:E CCCC CCCC CCCC CCCC CCCC CCCC O 12BIT偶校验 12BIT奇校验E/O:偶/奇校验位。C: 卡片ID号。以上数据从左至右顺序发送。韦根34位输出格式:E CCCC CCCC
2、 CCCC CCCC CCCC CCCC CCCC CCCC O16BIT偶校验 16BIT奇校验E/O:偶/奇校验位。C: 卡片ID号。以上数据从左至右顺序发送。韦根36位输出格式:E CCCC CCCC CCCC CCCC C CCCC CCCC CCCC CCCI I O17BIT偶校验 17BIT奇校验E/O:偶/奇校验位。C: 卡片ID号。I:2位卡片发行码。以上数据从左至右顺序发送。韦根44位输出格式:CCCC CCCC CCCC CCCC CCCC CCCC CCCC CCCC IIII IIII XXXXC: 卡片ID号。I:8位卡片发行码。XXXX:LRC校验。以上数据从左至
3、右顺序发送。韦根26韦根34发送程序WG26协议Wiegand 26格式:各数据位的含义:第 1 位: 为输出数据213位的偶校验位第 29 位: ID卡的HID码的低8位第10-25位: ID卡的PID号码第 26 位: 为输出数据14-25位的奇校验位数据输出顺序: HID码和PID码均为高位在前,低位在后例:一张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
4、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),然后释放为高电平;WG34协议Wiegand 34格式:各数据位的含义:第 1 位: 为输出第217位的偶校验
5、位第 2-17 位: ID卡的HID码第18-33位: ID卡的PID号码第 34 位: 为输出第18-33位的奇校验位数据输出顺序: HID码和PID码均为高位在前,低位在后例:一张ID卡内容为:HID:32769 PID:34953 ( 卡面印:2147584137 001, 34953 )相应的二进制为:000110000100001111110010HID:1000 0000 0000 0001PID:1000 1000 1000 1001输出如下:1 2 17 18 33 340 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0
6、0 0 1 0 0 1 0| HID_L | PID |输出端D0、D1时序:图示:(1)D0、D1在没有数据输出时均保持高电平;(2)输出数据位时间为420uS(TL),如输出为0,D0拉低420uS(TL)后为高电平,若输出为1,则D1拉低420uS(TL)后为高电平;(3)输出数据位之间的间隔时间为2mS(TL),如输出00:D0拉低420uS(TL)后为高电2mS(TL),再拉低为低电平420uS(TL),然后释放为高电平;发送程序如下:Str中存的是4字节卡号。void Send_Weigand34(unsigned char *str) unsigned char one_num
7、= 0; unsigned char even = 0; unsigned char odd = 0; unsigned char check_temp,i; check_temp = *str; for(i = 0;i = 1; check_temp = *(str + 1); for(i = 0;i = 1; if(one_num % 2 ) even = 1; else even = 0; one_num = 0; check_temp = *(str + 2); for(i = 0;i = 1; check_temp = *(str + 3); for(i = 0;i = 1; if(
8、one_num % 2 ) odd = 0; else odd = 1; one_num = 0; WG_DATA0 = 1; WG_DATA1 = 1; Delay_1ms(2); if(even) WG_DATA1 = 0; /*偶校验位为1*/ Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; /*偶校验位为0*/ Delay_50us(8); WG_DATA0 = 1; Delay_1ms(2); /*延时2ms*/ for(i = 0;i 32;i+) WG_DATA0 = 1; WG_DATA1 = 1; if(str0 & 080)
9、WG_DATA1 = 0; Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; Delay_50us(8); WG_DATA0 = 1; (*(long*)&str0) = 1; Delay_1ms(2); /*延时2ms*/ WG_DATA0 = 1; WG_DATA1 = 1; if(odd) WG_DATA1 = 0; Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; Delay_50us(8); WG_DATA0 = 1; Delay_1ms(2);/*韦根26发送函数*/void Send_We
10、igand26(unsigned char *str) unsigned char one_num = 0; unsigned char even = 0; unsigned char odd = 0; unsigned char check_temp,i; check_temp = *str; for(i = 0;i = 1; check_temp = *(str + 1); for(i = 0;i 4;i+) if(check_temp & 080) one_num+; check_temp = 1; if(one_num % 2 ) even = 1; else even = 0; on
11、e_num = 0; check_temp = *(str + 1); for(i = 0;i = 1; check_temp = *(str + 2); for(i = 0;i = 1; if(one_num % 2 ) odd = 0; else odd = 1; one_num = 0; WG_DATA0 = 1; WG_DATA1 = 1; Delay_1ms(2); if(even) WG_DATA1 = 0; /*偶校验位为1*/ Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; /*偶校验位为0*/ Delay_50us(8); WG
12、_DATA0 = 1; Delay_1ms(2); /*延时2ms*/ for(i = 0;i 24;i+) WG_DATA0 = 1; WG_DATA1 = 1; if(str0 & 080) WG_DATA1 = 0; Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; Delay_50us(8); WG_DATA0 = 1; (*(long*)&str0) = 1; Delay_1ms(2); /*延时2ms*/ WG_DATA0 = 1; WG_DATA1 = 1; if(odd) WG_DATA1 = 0; Delay_50us(8); WG_DATA1 = 1; else WG_DATA0 = 0; Delay_50us(8); WG_DATA0 = 1; Delay_1ms(2);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1