韦根接口.doc_第1页
韦根接口.doc_第2页
韦根接口.doc_第3页
韦根接口.doc_第4页
韦根接口.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Wiegand协议是国际上统一的标准,有很多格式,标准的26-bit 应该是最常用的格式。此外,还有34-bit 、37-bit 等格式。格式的含义如下:当给出这一串数字02888888888,用户并不知道这串数字的含义,但如果说这是一个电话号码的时候,那么你可能就会说:哦,028是成都的区号,而88888888是电话号码。呵呵,不错,这正是四川航空的服务热线。但是安防行业并不愿意把这些格式公开,而安防公司也常常变化这些格式来保证产品的保密性。而标准26-bit 格式是一个开放式的格式,这就意味着任何人都可以购买某一特定格式的HID卡,并且这些特定格式的种类是公开可选的。26-Bit格式就是一个广泛使用的工业标准,并且对所有HID的用户开放。几乎所有的门禁控制系统都接受标准的26-Bit格式。Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性;其协议并没有定义通讯的波特率、也没有定义数据长度韦根格式主要定义是数据传输方式:Data0和Data1两根数据线分别传输0和1.现在应用最多的是26bit,34bit,36bit,44bit等等。 二、韦根数据输出的基本概念: 韦根数据输出由二根线组成,分别是DATA0 和 DATA1 ;二根线分别将0或1输出。 输出0时:DATA0线上出现负脉冲; 输出1时:DATA1线上出现负脉冲; 负脉冲宽度TP=100微妙;周期TW=1600微妙 具体时序如下: 例如:数据01000的时序如下: 三、韦根26位输出格式: 韦根26位输出格式: E XXXX XXXX XXXX XXXX XXXX XXXX O 前12BIT偶校验 前12位 后12位 后12BIT奇校验 以上数据从左至右顺序发送。高位在前。 如果电卡的地区码位2个字符,即8位则可用那设置255个地区码((15x16)+15=255);电子卡的卡号位4个字符,即16位则可设置65536个卡号((15x16x16x16)+(15x16x16)+(15x16)+15= 65,535)。 以电子卡为标准26位韦根格式为例,假设电子卡号码为: 地区码 :01 卡号:0001 韦根输出为: 1 0000 0001 0000 0000 0000 0001 0 前12BIT偶校验 前12位 后12位 后12BIT奇校验 地区码 卡号 四、韦根26接收: 韦根的接收对时间的实时性要求比较高,如果用查询的方法接收会出现丢帧的现象:假设查询到DATA0为0时主程序正在指向其他任务,等主程序执行完该任务时DATA0已经变为1了,那么这样就导致了一个0 bit丢了,这样读出的卡号肯定奇偶校验通不过,所以表现出CPU接收不到ID模块发送的卡号了。唯一的办法是在外部中断里接收每个bit。 (仅仅在中断里获得开始接收wiegand数据还不行,因为这是尽管给开始接收wiegand数据标志位置位了,但是主程序还在执行其他代码而没有到达查询开始接收wiegand数据标志位这条指令)。 五韦根 接口定义: Wiegand接口界面由三条导线组成: DATA0:暂定,兰色,P2.5 (通常为绿色)。 DATA1:暂定,白色,P2.6 (通常为白色)。 GND: (通常为黑色), 暂定信号地。 当安装商拿到读卡器时,他们希望在读卡器和门禁控制面板的连接点(终端)上都能够看到这三个名称。目前所有的标准型读卡器都提供可选择的Wiegand接口。这三条线负责传送Wiegand数据,也被称为Wiegand信号。 六发送程序: /- /功能:把数组封包成韦根26的格式,并发送出去 / 原理是把每个字节的低4位取出,来计算这个字节的值 /入口:str要封包的数组, /出口:DATA0P3.0;DATA1=P3.1 /设计:大鹏,大鹏艾迪,2006/4/11 /- void send_wiegand26(uchar *str) /| wiegand0 | wiegand1 | wiegand2 | /| *str *(str + 1) | *(str + 2) *(str + 3)| *(str + 4) *(str + 5)| uchar data i; static uchar data one_num; /计算1的个数 uchar data check_temp; /韦根包奇偶效验中间暂存 bit data even; /韦根包前12位偶效验 bit data odd; /韦根包后12位齐效验 static uchar data wiegand3; /韦根包数据24位 /-端口方向定义 P3M0 = 0x00; /普通I/O口 P3M1 = 0x00; /=数组到韦根包的转化 wiegand0 = wiegand0|(*str)4);/原理是把每个字节的低4位取出,来计算这个字节的值 wiegand0 = wiegand0|(*(str+1)&0x0f); /-计算前8位1的个数,为偶效验用 check_temp = wiegand0; for(i = 0;i= 1; wiegand1 = wiegand1|(*(str+2)4); /-计算接下来的4位1的个数,为偶效验用 check_temp = wiegand1; for(i = 0;i4;i+) if(check_temp&0x80) one_num+; check_temp=1; /-判断1的个数 one_num%2 = 0 ? (even = 0):( even = 1); one_num = 0; wiegand1 = wiegand1|(*(str+3)&0x0f); /-计算接下来的4位1的个数,为奇效验用 check_temp = wiegand1; for(i = 0;i=1; wiegand2 = wiegand2|(*(str+4)4); wiegand2 = wiegand2|(*(str+5)&0x0f); /-计算接下来的8位1的个数,为奇效验用 check_temp = wiegand2; for(i = 0;i= 1; /-判断1的个数 one_num%2 = 0 ? (odd = 1):( odd = 0); one_num = 0; /=启动发送,用定时器做时间延时 /-韦根 输出端初始化 WG_DATA0 = 1; WG_DATA1 = 1; /-发送偶效验 if(even) WG_DATA1 = 0; /-延时100us TR0 = 0; TH0 = (65536 - 78)/256; /定时100us TL0 = (65536 - 78)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; WG_DATA1 = 1; else WG_DATA0 = 0; /-延时100us TR0 = 0; TH0 = (65536 - 78)/256; /定时100us TL0 = (65536 - 78)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; WG_DATA0 = 1; /-延时一个发送周期 TR0 = 0; TH0 = (65536 - 1382)/256; /定时1500us TL0 = (65536 - 1382)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; /-发送24位数据 for(i = 0;i24;i+) /-韦根 输出端初始化 WG_DATA0 = 1; WG_DATA1 = 1; if(wiegand0)&0x80) WG_DATA1 = 0; /-延时100us TR0 = 0; TH0 = (65536 - 78)/256; /定时100us TL0 = (65536 - 78)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; WG_DATA1 = 1; else WG_DATA0 = 0; /-延时100us TR0 = 0; TH0 = (65536 - 78)/256; /定时100us TL0 = (65536 - 78)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; WG_DATA0 = 1; (*(long*)&wiegand0) = 1; /-延时一个发送周期 TR0 = 0; TH0 = (65536 - 1382)/256; /定时1500us TL0 = (65536 - 1382)%256; TF0 = 0; ET0 = 0; TR0 = 1; while (!TF0) ; TF0 = 0; /=发送奇效验位 /-韦根 输出端初始化 WG_DATA0 = 1; WG_DATA1 = 1; if(odd) WG_DATA1 = 0; /-延时100us TR0 = 0; TH0 = (65536 - 78)/256; /定时100us TL0 = (65536 - 78)%256; TF0 = 0; ET0 = 0; TR0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论