基于单片机的标准韦根网络通讯协议的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

技术应用
64
摘 要 :
介绍射频卡中标准的韦根( Wiegand )26接口协议,重点介绍在单片机中对这种通讯协议的实现的软硬件设计方法。

关键词:单片机 Wiegand HID PID 射频卡Wiegand传输协议,是国际标准的射频卡数据传输协议,
Motorola,HID,EM等国际知名电子厂商都遵从该协议,在国内又称”韦根” “维庚” “维根” 协议。

W i e g a n d 协议有很多格式,在常见的射频卡中,标准的26-bit 是被广泛采用的一个工业标准,门禁控制系统中基本上都采用这种格式。

Wiegand 基本格式
标准韦根输出是由26位二进制数组成,每一位的含义如图
1所示:
其中:
BIT1: 第2—13位的偶校验位BIT2-9: 对应与电子卡HID码的低8位BIT10-25: 应电子卡的PID号码BIT26: 第14-25位的奇校验位以图1为例,H I D 的16进制数为0x 1A ,对应于十进制数为26。

HID的16进制数为0x8484,对应于十进制数为33924。

即这个卡的编码通常写为:26.33924。

传输协议中提到的HID号码即Hidden ID code 隐含码,PID号码即Public ID code 公开码。

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

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

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

因此,在上述标准26位韦根格式中,只包含了电子卡HID 码的低8位,即对应于韦根输出的第1位到第8位,实际上电子卡的HID码为16位。

在上述标准26位韦根格式中,最高位和最低位为奇/偶校验。

奇/偶校验(E C C )是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种,其原理如下:如果是采用奇校验,在传送每一个字节的时候另外附加一位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则,这个校验位就是“0”,这样就可以保证传
送的数据满足奇校验的要求。

在接收方收到数据时,将按照奇
校验的要求检测数据中“1”的个数,如果为奇数,表示传送正确,反之,表示传送错误。

偶校验的过程和奇校验一样,只不过是检测数据中的“1”的个数为偶数。

 
在本例中,BIT1为第2—13位的偶校验位,而2-13位共有4个“1”,因此校验位为“0”。

B I T 26为第14—25位的奇校验位,而14-25位共有3个“1”,因此校验位为“0”。

Wiegand 硬件接口
Wiegand接口通常由2根线组成,它们是:数据0(Data0),数据1(D a t a 1)。

这2条线负责传输W i e g a n d 信号。

D 0,D 1在没有数据输出时都保持+5V 高电平。

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

如图2:
一个电子卡的Wiegand输出为26位,输出之间的最小间
隔为0.25秒。

单片机与Wiegand接口硬件设计
单片机与W i e g a n d 接口的连接比较简单,将D a t a 0和Data1两个输出接到单片机的两个IO脚上,
便可采用查询的方式接收数据。

如图3所示:
基于单片机的
标准韦根网络通讯协议的实现
文/朱力宏 颜丽莎
65
需要注意的是,如果采用中断的方式接收数据,可将单片机的I/O换成外部中断输入端口即可。

同时,与不同的单片机通信注意电平的匹配。

软件程序设计:
软件设计时,可采用查询和中断两种方式。

不同的单片机中断的设置也不相同,在本次IC门禁系统的设计过程中,采用了89E58单片机的查询工作方式,源程序采用C语言,单片机的晶振采用11.0592M。

程序在89E58单片机中测试通过,具体如下:
//读取射频卡函数,返回值32位的无符号数ID号(只用到后26位)
unsigned long getid(){ unsigned long id=0; //定义了长型,32位的无符号数id
unsigned char i; unsigned int y;
if((IC0==0)|(IC1==0)) //如果数据线有数则执行{ for(i=0,y=800;i<26;i++)
{ while(((IC0==1)&(IC1==1))&(y!=0)) y--;//数据线均为1与y不为0时,等待
if(IC0==0) //如果Data0为“0” { id=id<<1; while(IC0==0); //等待Data0为“1” }
<Description>This part is used within the frap assembly</Description>
<Specification xlink:href=”/PartsList/00345/specification”/>
<UnitCost currency=”USD”>0.10</UnitCost><Quantity>10</Quantity></p:Part>
从以上返回的数据看,这个数据又链接到更多的数据。

客户可继续选择这些链接以获得更详细的数据,这正是REST的关键所在。

提交一个采购清单(OP),这个服务利用一个指向PO提交的U R L 。

客户依照零件仓库预先定义的P O 格式创建一个P O 实例文档。

客户将PO.xml作为HTTP POST承载的内容提交上来。

P O 服务响应此P O 提交请求,从而客户可以随时检索、更新、编辑这个PO。

PO 于是成为客户端与服务器端共享的一段信息。

共享信息(PO)由服务器端指定的URL访问,并暴露为一个Web服务。

4.REST Web服务设计原则
(1) 以REST构建Web服务的关键是要正确识别作为服务
的资源。

(2) 为每个资源提供URL,资源应该是名词,不是动词。

(3) 根据客户处理资源的方式分类,可以分为客户仅接收资源的表现性和客户能够修改(增加)资源。

对于前者,提供HTTP GET 方法访问,对于后者,提供HTTP POST,PUT和DELETE。

(4) 所有通过HTTP CET访问的资源应该是不可更改的。


else if(IC1==0) //如果Data1为“0”
{ id=id<<1; id++; while(IC1==0); //等待Data1为“1” } }
i=i++; msec(10); }
return id;}
在本程序中,I C 0和I C 1分别对应于D a t a 0和D a t a 1的两个I/O口。

msec()为延时函数。

结束语
W i e g a n d 通讯协议,连线较少,使用方便编程简单,也很容易与不同的单片机之间的通信。

在实际应用中,工作稳定,效果很好。

参考文献:
[1] 王幸之,等.AT89系列单片机原理与接口技术[M].北京:北京 航空航天大学出版社,2003
[2] 马忠梅,等.单片机的C 语言应用程序设计[M].北京:北京航 空航天大学出版社,2003.4.
作者简介:
朱力宏 郑州铁路职业技术学院实验师。

从事电子实验教学。

颜丽莎 郑州铁路职业技术学院实验师。

从事多媒体实验教学。

是说,这些资源仅仅向客户返回一个资源的表现性,客户调用他们不能更改它们。

(5) 没有孤立的表现性。

换言之,在资源的表现性中提供链接,让客户能更深人的获取更多的信息,或者相关信息。

(6) 逐步的提供数据,不应该在一个文档里提供所有的内容,可以为更详细的信息提供链接。

因为REST是对当今Web体系结构设计原则的一种描述,所以REST的目标和原则是对当今Web中已经成功应用的要素的总结。

5.总结
本文描述了基于R E S T 的W e b 服务设计原则和特点,以及构建基于R E S T 的W e b 服务的思想。

通过对R E S T 的理解,REST必然会对Web服务的体系结构产生重要的影响基于REST 的Web服务必将推进当前Web服务技术的大规模应用和进一步发展。

参考文献:
[1] Fielding R T.架构风格与基于网络的软件架构设计.李锟, 廖志刚,刘丹,杨光,译.2007
[2] John Cowan.RESTful Web Services.2005. /~cowan/restws.pdf
[3] 蔡月茹,柳西玲.Web Service 基础教程.北京:清华大学出版社, 2005.6,6-7
[4] Ray Lai.J2EE 平台Web Service.周斌,刘亚萍,冯艳玲,译. 北京:电子工业出版社,2005.6作者单位:唐山学院
(上接63页)。

相关文档
最新文档