韦根数据格式.docx

上传人:b****1 文档编号:1692575 上传时间:2023-05-01 格式:DOCX 页数:23 大小:16.36KB
下载 相关 举报
韦根数据格式.docx_第1页
第1页 / 共23页
韦根数据格式.docx_第2页
第2页 / 共23页
韦根数据格式.docx_第3页
第3页 / 共23页
韦根数据格式.docx_第4页
第4页 / 共23页
韦根数据格式.docx_第5页
第5页 / 共23页
韦根数据格式.docx_第6页
第6页 / 共23页
韦根数据格式.docx_第7页
第7页 / 共23页
韦根数据格式.docx_第8页
第8页 / 共23页
韦根数据格式.docx_第9页
第9页 / 共23页
韦根数据格式.docx_第10页
第10页 / 共23页
韦根数据格式.docx_第11页
第11页 / 共23页
韦根数据格式.docx_第12页
第12页 / 共23页
韦根数据格式.docx_第13页
第13页 / 共23页
韦根数据格式.docx_第14页
第14页 / 共23页
韦根数据格式.docx_第15页
第15页 / 共23页
韦根数据格式.docx_第16页
第16页 / 共23页
韦根数据格式.docx_第17页
第17页 / 共23页
韦根数据格式.docx_第18页
第18页 / 共23页
韦根数据格式.docx_第19页
第19页 / 共23页
韦根数据格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

韦根数据格式.docx

《韦根数据格式.docx》由会员分享,可在线阅读,更多相关《韦根数据格式.docx(23页珍藏版)》请在冰点文库上搜索。

韦根数据格式.docx

韦根数据格式

 

韦根数据输出格式

 

一、韦根数据输出的基本概念:

 

韦根数据输出由二根线组成,分别是

 

DATA0

 

 

DATA1

 

;二根线分别将‘

 

0’或

‘1’输出。

输出‘0’时:

DATA0线上出现负脉冲;

输出‘1’时:

DATA1线上出现负脉冲;

具体时序如下:

例如:

数据‘1011’时序如下:

 

DATA0

 

DATA1

 

TP

 

TW

 

负脉冲宽度TP=100us;周期TW=1000us

 

二、几种韦根输出格式:

 

韦根26位输出格式:

 

ECCCCCCCCCCCCCCCCCCCCCCCCO

 

12BIT偶校验12BIT奇校验

 

E/O:

偶/奇校验位。

C:

卡片ID号。

以上数据从左至右顺序发送。

 

韦根34位输出格式:

 

ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCO

 

16BIT偶校验16BIT奇校验

 

E/O:

偶/奇校验位。

C:

卡片ID号。

以上数据从左至右顺序发送。

 

韦根36位输出格式:

 

ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCIIO

 

17BIT偶校验17BIT奇校验

 

E/O:

偶/奇校验位。

C:

卡片ID号。

I:

2位卡片发行码。

以上数据从左至右顺序发送。

 

韦根44位输出格式:

 

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCIIIIIIIIXXXX

 

C:

卡片ID号。

I:

8位卡片发行码。

XXXX:

LRC校验。

以上数据从左至右顺序发送。

 

韦根26韦根34发送程序

 

WG26协议

 

Wiegand26格式:

 

各数据位的含义:

 

第1位:

为输出数据2—13位的偶校验位

 

第2—9位:

ID卡的HID码的低8位

 

第10-25位:

ID卡的PID号码

 

第26位:

为输出数据14-25位的奇校验位数据输出顺序:

 

HID码和PID码均为高位在前,低位在后

 

例:

一张ID卡内容为:

 

HID:

32769PID:

34953(卡面印:

2147584137001,34953)

 

相应的二进制为:

 

HID:

1000000000000001(只输出低8位)

 

PID:

1000100010001001

 

输出如下:

 

12

910

25

26

0

0000

0001

1000

1000

1000

1001

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协议

 

Wiegand34格式:

 

各数据位的含义:

 

第1位:

为输出第2—17位的偶校验位

 

第2-17位:

ID卡的HID码

 

第18-33位:

ID卡的PID号码

 

第34位:

为输出第18-33位的奇校验位数据输出顺序:

 

HID码和PID码均为高位在前,低位在后

 

例:

一张ID卡内容为:

 

HID:

32769PID:

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

时序:

 

图示:

 

(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字节卡号。

 

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*/

 

for(i=0;i<32;i++)

 

{

 

WG_DATA0=1;

 

WG_DATA1=1;

 

if(str[0]&080)×

 

{

 

WG_DATA1=0;

 

Delay_50us(8);

 

WG_DATA1=1;

 

}

 

else

 

{

 

WG_DATA0=0;

 

Delay_50us(8);

 

WG_DATA0=1;

 

}

 

(*(long*)&str[0])<<=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发送函数

 

*/

 

voidSend_Weigand26(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<4;i++)

 

{

 

if(check_temp&0

×80)

 

one_num++;

 

check_temp<<=1;

 

}

 

if(one_num%2)

 

even=1;

 

else

 

even=0;

 

one_num=0;

 

check_temp=*(str+1);

 

for(i=0;i<4;i++)

 

{

 

if(check_temp&0

×01)

 

one_num++;

 

check_temp>>=1;

 

}

 

check_temp=*(str+2);

 

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;

 

Delay_50us(8);

 

WG_DATA1=1;

 

}

 

else

 

{

 

WG_DATA0=0;

 

Delay_50us(8);

 

WG_DATA0=1;

 

/*偶校验位为1*/

 

/*偶校验位为0*/

 

}

 

Delay_1ms

(2);

 

/*

 

延时

 

2ms*/

 

 

for(i=0;i<24;i++)

 

{

 

WG_DATA0=1;

 

WG_DATA1=1;

 

if(str[0]&0

 

{

 

80)×

 

WG_DATA1=0;

 

Delay_50us(8);

 

WG_DATA1=1;

 

}

 

else

 

{

 

WG_DATA0=0;

 

Delay_50us(8);

 

WG_DATA0=1;

 

}

 

(*(long*)&str[0])<<=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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2