.
韦根数据输出格式
一、韦根数据输出的基本概念:
韦根数据输出由二根线组成,分别是DATA0和DATA1;二根线分别将‘0’或
‘1’输出。
输出‘0’时:DATA69PID:34953(卡面印:2147584137001,34953)
相应的二进制为:000110000100001111110010
HID:1000000000000001
PID:1000100010001001
输出如下:
12
1718
33
34
0
1000
0000
0000
0001
1000
1000
1000
1001
0
|
HID_L
|
PID
|
输出端D0
、D1
时序:
图示:
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字节卡号。
voidSend_Weigand34(unsignedchar*str)
{
unsignedcharone_num=0;
unsignedchareven=0;
unsignedcharodd=0;
unsignedcharcheck_temp,i;
check_temp=*str;
for(i=0;i<8;i++)
{
if(check_temp&0
×01)
one_num++;
check_temp>>=1;
}
check_temp=*(str+1);
for(i=0;i<8;i++)
{
if(check_temp&0
×01)
one_num++;
check_temp>>=1;
.
.
}
if(one_num%2)
even=1;
else
even=0;
one_num=0;
check_temp=*(str+2);
for(i=0;i<8;i++)
{
if(check_temp&0
×01)
one_num++;
check_temp>>=1;
}
check_temp=*(str+3);
for(i=0;i<8;i++)
{
if(check_temp&0
×01)
one_num++;
check_temp>>=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_DATA0=1;
}
Delay_1ms(2);/*延时2ms*/
f
韦根数据格式 来自淘豆网m.daumloan.com转载请标明出处.