全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
韦根协议 ID 卡号读取 2010 03 31 20 52 最近在做门禁系统 第一次听说韦根协议 我第一阶段要做的事情就是用韦根 读卡器将 ID 卡的卡号读出来 当我拿到读卡器和 ID 卡的时候感觉无从下手 可当我把韦根协议都研究透之后想想也不过如此而已 下面简单的介绍一下韦 根协议 韦根协议是国际上统一的标准 它也是一种数据传输协议 标准的 26 bit 应该 是最常用的格式 此外 还有 34 bit 37 bit 等格式 格式的含义如下 当 给出这一串数字 02888888888 用户并不知道这串数字的含义 但如果说这是一 个电话号码的时候 那么你可能就会说 哦 028 是成都的区号 而 88888888 是电话号码 呵呵 不错 这正是四川航空的服务热线 但是安防行业并不愿 意把这些格式公开 而安防公司也常常变化这些格式来保证产品的保密性 而标准 26 bit 格式是一个开放式的格式 这就意味着任何人都可以购买某一特 定格式的 HID 卡 并且这些特定格式的种类是公开可选的 26 Bit 格式就是一 个广泛使用的工业标准 并且对所有 HID 的用户开放 几乎所有的门禁控制系 统都接受标准的 26 Bit 格式 一 Wiegand 韦根 接口 Wiegand 接口通常由 3 根线组成 它们是 数据 0 Data0 数据 1 Data1 和 Data return 这 3 条线负责传输 Wiegand 信号 D0 D1 在没有数据输出时 都保持 5V 高电平 若输出为 0 则 D0 拉低一段时间 若输出为 1 则 D1 拉低 一段时间 如图 二 标准 26 位 Wiegand 通讯协议 标准韦根输出是由 26 位二进制数组成 每一位的含义如下 1 2 9 10 25 26 X X X X X X X X X X X X X X X X X X X X X X X X X X 二进制 第 1 位为 2 13 位的偶校验位 第 2 9 位对应与电子卡 HID 码 的低 8 位 第 10 25 位对应电子卡的 PID 号码 第 26 位为 14 25 位的奇校验位 这 26 位数据在读出器的韦根输出线 D0 D1 上输出 三 HID 和 PID HID 号码即 Hidden ID code 隐含码 PID 号码即 Public ID code 公开码 PID 很容易在读出器的输出结果中找到 但 HID 在读出器的输出结果中部分或者 全部隐掉 HID 是一个非常重要的号码 它不仅存在于卡中 也存在于读卡器中 如果卡中的 HID 与读卡器中的 HID 不同的话 那么这张卡就无法在这个读卡器 上正常工作 四 Wiegand 接口硬件设计 可以将 Wiegand 接口的 Data0 和 Data1 两个输出接到 MCU 的两个 IO 脚上 采用 查询的方式接收数据 但这样接收并不可靠 比较好的方法是将 Data0 和 Data1 接到 MCU 的两个中断引脚上 采用中断的方式接收数据 如图 示例程序 include include include define DELAY TIME 60 经实验 不要小于 50 否则可能造成时序混乱 define TRUE 1 define FALSE 0 define uchar unsigned char define uint unsigned int sbit DATA1 P3 2 韦根读卡器的 DATA1 接单片机的 P3 2 sbit DATA0 P3 3 韦根读卡器的 DATA0 接单片机的 P3 3 bit Even 偶检验位 bit Odd 奇检验位 bit CheakEven 0 偶检验 bit CheakOdd 1 奇检验 uchar Cnt 0 uchar WG 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 接收韦根数据 26 位 uchar WGstr 3 0 0 0 存韦根 ID 卡卡号的 HID 和 PID 码 其中 HID 码为 8 位即一字节 PID 码 16 位两字节 uchar i uchar j 0 void Init EA 0 TMOD 0 x20 TL1 0 xfd TH1 0 xfd 设置波特率为 9600 的定时器 1 为方式 2 以及初始值 PCON 0 x00 SCON 0 xd8 设置串口方式 IT0 1 设置外部中断 0 为下降沿触发方式 IT1 1 设置外部中断 1 为下降沿触发方式 EX0 1 开外部中断 0 EX1 1 开外部中断 1 TR1 1 开定时器 1 EA 1 开所有中断 void Weigand uchar str 把 26 位韦根数据转换为 3 字节数据存储 uchar k for k 0 k 26 k if k 25 读奇检验位 if str k 0 Odd 0 else Odd 1 if k 8 读 HID 码低 8 位 if str k 0 x00 WGstr 0 0 x00 else WGstr 0 0 x01 CheakEven CheakEven 根据 HID 码低 8 位 1 的个数来确定 偶检验位是 1 还是 0 if k 8 WGstr 0 WGstr 0 1 if k 16 读 PID 码高 8 位 if str k 0 x00 WGstr 1 0 x00 else WGstr 1 0 x01 CheakOdd CheakOdd 根据 PID 码高 8 位 1 的个数来确定奇检 验位是 1 还是 0 if k 16 WGstr 1 WGstr 1 1 else 读 PID 码的低 8 位 if str k 0 x00 WGstr 2 0 x00 else WGstr 2 0 x01 CheakOdd CheakOdd 根据 PID 码低 8 位 1 的个数来确定奇检 验位是 1 还是 0 if k 24 WGstr 2 WGstr 2 26 EA 0 关中断以免外部中断的干扰 Weigand WG 将读到的 26 位韦根数据转换位 3 字节格式 EA 1 for j 0 j 3 j 用串口调试工具显示读到的卡号 SBUF WGstr j while TI 0 TI 0 WGstr j 0 Cnt 0 void DATA0 Interrupt void i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行贷款委托代理合同(2篇)
- 巴西课件 湘教版
- 人教版南辕北辙课件
- 苏教版江苏省扬州市扬州中学教育集团树人学校2023-2024学年高一上学期期中数学试题
- 老舍《茶馆》课件
- 外科护理课件
- 基层教育 课件
- 西京学院《中华才艺》2023-2024学年第一学期期末试卷
- 西京学院《外国文学》2021-2022学年第一学期期末试卷
- 西华师范大学《中外电影史》2021-2022学年期末试卷
- 初三化学半期考试总结(实用十五篇)
- 认识飞机(课堂PPT)
- 江苏省南通市海门四校2023-2024学年八年级上学期期中生物试题
- 疼痛评估:准确评估病人疼痛的方法
- 桥式起重机安全操作培训
- 建筑施工规范大全
- 幼儿园好习惯好性格养成绘本:排队喽
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置保证食品安全的规章制度
- 抗高血压药物-课件
- 英语四级单词4500
- 神经病学课件:癫痫
评论
0/150
提交评论