韦根协议#精选.docx

上传人:b****9 文档编号:25136105 上传时间:2023-06-05 格式:DOCX 页数:15 大小:128.65KB
下载 相关 举报
韦根协议#精选.docx_第1页
第1页 / 共15页
韦根协议#精选.docx_第2页
第2页 / 共15页
韦根协议#精选.docx_第3页
第3页 / 共15页
韦根协议#精选.docx_第4页
第4页 / 共15页
韦根协议#精选.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

韦根协议#精选.docx

《韦根协议#精选.docx》由会员分享,可在线阅读,更多相关《韦根协议#精选.docx(15页珍藏版)》请在冰豆网上搜索。

韦根协议#精选.docx

韦根协议#精选

韦根协议

Wiegand协议是国际上统一的标准,是由摩托罗拉公司制定的一种通讯协议。

它适用于涉及门禁控制系统的读卡器和卡片的许多特性。

它有很多格式,标准的26-bit应该是最常用

的格式。

此外,还有34-bit、37-bit等格式。

而标准26-bit格式是一个开放式的格式,这就意味着任何人都可以购买某一特定格式的HID卡,并且这些特定格式的种类是公开可选

的。

26-Bit格式就是一个广泛使用的工业标准,并且对所有HID的用户开放。

几乎所有的

门禁控制系统都接受标准的26-Bit格式。

简介

Wiegand协议是国际上统一的标准,有很多格式,标准的26-bit应该是最常用的格式。

此外,还有34-bit、37-bit等格式。

但是安防行业并不愿意把这些格式公开,而安防公司也常常变化这些格式来保证产品的保密性。

而标准26-bit格式是一个开放式的格式,这就

意味着任何人都可以购买某一特定格式的HID卡,并且这些特定格式的种类是公开可选的。

26-Bit格式就是一个广泛使用的工业标准,并且对所有HID的用户开放。

几乎所有的门禁

控制系统都接受标准的26-Bit格式。

Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制

系统的读卡器和卡片的许多特性;其协议并没有定义通讯的波特率、也没有定义数据长度韦

根格式主要定义是数据传输方式:

DataO和Datal两根数据线分别传输0和1.现在应用最多的是26bit,34bit,36bit,44bit等等。

韦根数据输出的基本概念

韦根数据输出由二根线组成,分别是DATA0和DATA1;二根线分别为‘或’输出。

输出‘时:

DATA0线上出现负脉冲;

输出‘时:

DATA1线上出现负脉冲;

负脉冲宽度TP=100微秒;周期TW=1600微秒;

具体时序如下:

例如:

数据‘01000勺时序如下:

 

二进制号诃

韦根26位输出格式

标准韦根输出是由

26位二进制数组成,每一位的含义如下:

129102526

XXXXXXXXXXXXXXXXXXXXXXXXXX

二进制

 

第1位为2—13位的偶校验位

第29位对应与电子卡

HID码的低8位

第10-25位对应电子卡的

PID号码

第26位为14-25位的奇校验位

这26位数据在读出器的韦根输出线DO,D1上输出。

韦根26位输出格式:

EXXXXXXXXXXXXXXXXXXXXXXXXO

前12BIT偶校验前12位后12位后12BIT奇校验

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

高位在前。

如果电卡的地区码位2个字符,即8位则可用那设置255个地区码((15x16)+15=255);电子卡的卡

号位4个字符,即16位则可设置65536个卡号

((15x16x16x16)+(15x16x16)+(15x16)+15=65,535)。

以电子卡为标准26位韦根格式为例,假设电子卡号码为:

地区码:

01卡号:

0001

韦根输出为:

10000000100000000000000010

前12BIT偶校验前12位后12位后12BIT奇校验

丨地区码卡号丨

标准韦根输出是由26位二进制数组成,每一位的含义如下:

12910132526

EXXXXXXXXXXXXXXXXXXXXXXXXO二进制

第1位为2-13位的偶校验位

第2-9位对应与电子卡HID码的低

8位

第10-25位对应电子卡的PID号码

第26位为14-25位的奇校验位

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

高位在前。

例如:

一只HID:

16385,PID:

00004的电子卡其26位韦根输出为:

10000000100000000000001000

检验位HID=16385(二进制的低8位)PID=4(二进制)检验位这26位数据在读出器的韦根输出线DATA0,DATA1上输出。

DATA0,DATA1在没有数据输出时都保持+5V高电平。

若输出为0,贝UDATA0拉低一段时间,若输出为1,则DATA1拉低一段时间。

两个电子卡韦根输出之间的最小间隔为0.25秒。

韦根26接收

韦根的接收对时间的实时性要求比较高,如果用查询的方法接收会出现丢帧的现象:

设查询到DATA0为0时主程序正在指向其他任务,等主程序执行完该任务时DATA0已经

变为1了,那么这样就导致了一个0bit丢了,这样读出的卡号肯定奇偶校验通不过,所以

表现出CPU接收不到ID模块发送的卡号了。

唯一的办法是在外部中断里接收每个bit。

仅仅在中断里获得开始接收wiegand数据还

不行,因为这是尽管给开始接收wiegand数据标志位置位了,但是主程序还在执行其他代

码而没有到达查询开始接收wiegand数据标志位这条指令)。

五•韦根接口定义:

Wiegand接口界面由三条导线组成:

数据0(Data0),数据1(Data1)和Datareturn。

这3条线负责传输Wiegand信号。

D0,D1在没有数据输出时都保持+5V高电平。

若输出为0,则D0拉低一段时间,若输出为1,则D1拉低一段时间。

如图:

两个电子卡韦根输出之间的最小间隔为

0.25秒。

DATA0:

暂定,兰色,

P2.5

(通常为绿色)。

DATA1:

暂定,白色,

P2.6

(通常为白色)。

GND:

(通常为黑色),暂定信号地。

当安装商拿到读卡器时,他们希望在读卡器和门禁控制面板的连接点(终端)上都能够

看到这三个名称。

目前所有的标准型读卡器都提供可选择的Wiegand接口。

这三条线负责传送Wiegand

数据,也被称为Wiegand信号。

六.发送程序:

//

//功能:

把数组封包成韦根26的格式,并发送出去

//原理是把每个字节的低4位取出,来计算这个字节的值

//入口:

str=要封包的数组,

//出口:

DATAO=P3.0;DATA仁P3.1

//设计:

大鹏,大鹏艾迪,2006/4/11

//

voidsend_wiegand26(uchar*str)

{

//|wiegand[0]|wiegand[1]|wiegand[2]|

//|*str*(str+1)|*(str+2)*(str+3)|*(str+4)*(str+5)|

uchardatai;

staticuchardataonenum;//计算1的个数

uchardatacheck_temp;//韦根包奇偶效验中间暂存

bitdataeven;//韦根包前12位偶效验

bitdataodd;//韦根包后12位齐效验

staticuchardatawiegand[3];//韦根包数据24位

//端口方向定义

P3M0=0x00;//普通I/O口

P3M1=0x00;

//================================数组到韦根包的转化

wiegand[0]=wiegand[0]|((*str)<<4);〃原理是把每个字节的低4位取出,来计算这个字

节的值

wiegand[0]=wiegand[0]|(*(str+1)&0x0f);

//计算前8位1的个数,为偶效验用

checktemp=wiegand[0];

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

{

if(checktemp&0x01)〃(checktemp&0x01)

one_num++;

}

check_temp>>=1;

wiegand[1]=wiegand[1]|(*(str+2)<<4);

//计算接下来的4位1的个数,为偶效验用

checktemp=wiegand[1];

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

{

if(check_temp&0x80)

}

checktemp<<=1;

}

one_num++;

//判断1的个数

one_num%2==0?

(even=0):

(even=1);one_num=0;

wiegand[1]=wiegand[1]|(*(str+3)&0x0f);

//计算接下来的4位1的个数,

为奇效验用

checktemp=wiegand[1];

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

{

if(check_temp&0x01)

{

one_num++;

—}

checktemp>>=1;

}

wiegand[2]=wiegand[2]|(*(str+4)<<4);

wiegand[2]=wiegand[2]|(*(str+5)&0x0f);

//计算接下来的8位1的个数,

check_temp=wiegand[2];

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

{

if(checktemp&0x01)

{

onenum++;

}

check_temp>>=1;

为奇效验用

}

//判断1的个数

onenum%2==0?

(odd=1):

(odd=0);

onenum=0;

//================================启动发送,

//韦根输出端初始化

WGDATA0=1;

用定时器做时间延时

WG_DATA1=1;

 

//•

发送偶效验

 

if(even)

{

TL0=(65536-78)%256;

WGDATA1=0;

//

延时100us

TR0=0;

THO=(65536-78)/256;//定时1OOus

 

WG_DATA1=1;

}

else

—{

WGDATA0=0;

//延时100us

TR0=0;

TH0=(65536-78)/256;//定时100us

 

TF0=0;

ET0=0;

TR0=1;

while(!

TF0){;}

TF0=0;

}

//延时一个发送周期

TR0=0;

TH0=(65536-1382)/256;//定时1500us

TL0=(65536-1382)%256;

//•

发送24位数据

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

{

//韦根输出端初始化

WG_DATAO=1;

WG_DATA1=1;

if((wiegand[O])&0x80)

{

WG_DATA1=0;

//延时100us

TR0=0;

TH0=(65536-78)/256;//定时100us

TL0=(65536-78)%256;

 

WG_DATA1=1;

}

else

{

WG_DATA0=0;

//

延时100us

TR0=0;

TH0=(65536-78)/256;//

定时100us

TL0=(65536-78)%256;

WG_DATA0=1;

}

(*(long*)&wiegand[0])<<=1;

//

延时一个发送周期

TR0=0;

TH0=(65536-1382)/256;//定时1500us

TLO=(65536-1382)%256;

TFO=0;

ET0=0;

TR0=1;

while(!

TF0){;}

TF0=0;

}

//==============================发送奇效验位

//韦根输出端初始化

WGDATA0=1;

WGDATA1=1;

if(odd)

{

WG_DATA1=0;

//延时100us

TR0=0;

TH0=(65536-78)/256;//定时100us

TL0=(65536-78)%256;

WGDATA1=1;

else

{

WGDATA0=0;

//延时100us

TR0=0;

TH0=(65536-78)/256;//定时100us

TL0=(65536-78)%256;

WG_DATA0=1;

}

}

Wiegand(韦根)接口

Wiegand接口通常由3根线组成,它们是:

数据0(DataO),数据1(Datal)和Datareturn。

这3条线负责传输Wiegand信号。

DO,D1在没有数据输出时都保持+5V高电平。

若输出为0,则DO拉低一段时间,若输出为1,则D1拉低一段时间。

两个电子卡韦根输出之间的最小间隔为0.25秒。

编辑本段标准26位Wiegand通讯协议

标准韦根输出是由26位二进制数组成,每一位的含义如下:

129102526

XXXXXXXXXXXXXXXXXXXXXXXXXX二进制

第1位为2—13位的偶校验位

第29位对应与电子卡

HID码的低8位

第10-25位对应电子卡的

PID号码

第26位为14-25位的奇校验位

这26位数据在读出器的韦根输出线D0,D1上输出。

HID和PID

HID号码即HiddenIDcode隐含码,PID号码即PublicIDcode公开码。

PID很容易在读出器的输出结果中找到,但HID在读出器的输出结果中部分或者全部隐掉。

HID是

一个非常重要的号码,它不仅存在于卡中,也存在于读卡器中。

如果卡中的HID与读卡器

中的HID不同的话,那么这张卡就无法在这个读卡器上正常工作。

Wiegand接口硬件设计

可以将Wiegand接口的Data0和Data1两个输出接到MCU的两个10脚上,采用查

询的方式接收数据,但这样接收并不可靠。

比较好的方法是将Data0和Data1接到MCU

的两个中断引脚上,采用中断的方式接收数据。

什么是韦根26

韦根26是一种通讯协议,象485、232、TCP/IP等通讯协议一样.

韦根传感器是由一根双稳态磁敏感功能合金丝和缠绕其外的感应线圈组成的。

它的

工作原理是:

在交变磁场中,当平行于敏感丝的某极性(例如n极)磁场达到触发磁感应

强度时,敏感丝中的磁畴受到激励会发生运动,磁化方向瞬间转向同一方向,同时在敏感丝

周围空间磁场也发生瞬间变化,由此在感应线圈中感生出一个电脉冲。

此后若该磁场减弱,敏感丝磁化方向将保持稳定不变,感应线圈也无电脉冲输出;但当相反极性(s极)磁场增

强触发磁感应强度时,敏感丝磁化方向又瞬间发生翻转,并在感应线圈中感生出一个方向相

反的电脉冲。

如此反复,韦根传感器便将交变磁场的磁信号转换成交变电信号

 

最新文件仅供参考已改成word文本

方便更改

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1