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

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

ID:51503077

大小:1.07 MB

页数:2页

时间:2020-03-25

基于单片机的标准韦根网络通讯协议的实现.pdf_第1页
基于单片机的标准韦根网络通讯协议的实现.pdf_第2页
资源描述:

《基于单片机的标准韦根网络通讯协议的实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、技术应用基于单片机的标准韦根网络通讯协议的实现文/朱力宏 颜丽莎摘 要:介绍射频卡中标准的韦根(Wiegand)26接口协送的数据满足奇校验的要求。在接收方收到数据时,将按照奇议,重点介绍在单片机中对这种通讯协议的实现的软硬件设计校验的要求检测数据中“1”的个数,如果为奇数,表示传送方法。正确,反之,表示传送错误。关键词:单片机 WiegandHIDPID 射频卡偶校验的过程和奇校验一样,只不过是检测数据中的“1”的个数为偶数。Wiegand传输协议,是国际标准的射频卡数据传输协议,在本例中,BIT1为第2—13位的偶校验位,而2

2、-13位共Motorola,HID,EM等国际知名电子厂商都遵从该协议,在国有4个“1”,因此校验位为“0”。BIT26为第14—25位的内又称”韦根”“维庚”“维根”协议。Wiegand协议奇校验位,而14-25位共有3个“1”,因此校验位为“0”。有很多格式,在常见的射频卡中,标准的26-bit是被广泛采用的一个工业标准,门禁控制系统中基本上都采用这种格式。Wiegand硬件接口Wiegand基本格式Wiegand接口通常由2根线组成,它们是:数据0(Data0),数据1(Data1)。这2条线负责传输Wiegand信号。D0

3、,D1标准韦根输出是由26位二进制数组成,每一位的含义如图在没有数据输出时都保持+5V高电平。若输出为0,则D0拉1所示:低一段时间,若输出为1,则D1拉低一段时间。如图2:其中:BIT1: 第2—13位的偶校验位BIT2-9:对应与电子卡HID码的低8位BIT10-25:应电子卡的PID号码BIT26:第14-25位的奇校验位以图1为例,HID的16进制数为0x1A,对应于十进制数为26。HID的16进制数为0x8484,对应于十进制数为33924。一个电子卡的Wiegand输出为26位,输出之间的最小间即这个卡的编码通常写为:

4、26.33924。隔为0.25秒。传输协议中提到的HID号码即HiddenIDcode隐含码,单片机与Wiegand接口硬件设计PID号码即PublicIDcode公开码。PID很容易在读出器的输单片机与Wiegand接口的连接比较简单,将Data0和出结果中找到,但HID在读出器的输出结果中部分或者全部隐Data1两个输出接到单片机的两个IO脚上,便可采用查询的方掉。HID是一个非常重要的号码,它不仅存在于卡中,也存在式接收数据。如图3所示:于读卡器中。如果卡中的HID与读卡器中的HID不同的话,那么这张卡就无法在这个读卡器上正

5、常工作。因此,在上述标准26位韦根格式中,只包含了电子卡HID码的低8位,即对应于韦根输出的第1位到第8位,实际上电子卡的HID码为16位。在上述标准26位韦根格式中,最高位和最低位为奇/偶校验。奇/偶校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种,其原理如下:如果是采用奇校验,在传送每一个字节的时候另外附加一位作为校验位,当实际数据中“1”的个数为偶数的时候,这个校验位就是“1”,否则,这个校验位就是“0”,这样就可以保证传64需要注意的是,如果采用中断的方式接收数据,可将单片elseif(I

6、C1==0)//如果Data1为“0”机的I/O换成外部中断输入端口即可。同时,与不同的单片机{id=id<<1; id++;通信注意电平的匹配。while(IC1==0);//等待Data1为“1”}软件程序设计:}i=i++;  msec(10);软件设计时,可采用查询和中断两种方式。不同的单片机}中断的设置也不相同,在本次IC门禁系统的设计过程中,采用returnid;了89E58单片机的查询工作方式,源程序采用C语言,单片机}的晶振采用11.0592M。程序在89E58单片机中测试通过,具在本程序中,IC0和IC1分别对应

7、于Data0和Data1的体如下:两个I/O口。msec()为延时函数。//读取射频卡函数,返回值32位的无符号数ID号(只用到后26位)结束语unsignedlonggetid(){unsignedlongid=0;//定义了长型,32位的Wiegand通讯协议,连线较少,使用方便编程简单,也无符号数id很容易与不同的单片机之间的通信。在实际应用中,工作稳定,unsignedchari;效果很好。unsignedinty;if((IC0==0)

8、(IC1==0))//如果数据线有数则执行参考文献:{for(i=0,y=800;i

9、<26;i++)[1]王幸之,等.AT89系列单片机原理与接口技术[M].北京:北京{while(((IC0==1)&(IC1==1))&(y!=0))y--;//数据线均为航空航天大学出版社,2003[2]马忠梅,等.单片机的C语言应用程序设计[

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。