韦根门禁通讯协议.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
韦根门禁通讯协议.pdf

韦根门禁通讯协议 一、前言: 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) { //| wiegand[0] | wiegand[1] | wiegand[2] | //| *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 wiegand[3]; //韦根包数据24 位 //端口方向定义 P3M0 = 0x00; //普通I/O 口 P3M1 = 0x00; //================================数组到韦根包的转化 wiegand[0] = wiegan

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档