全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
韦根协议 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全作风宣教课件
- 2025河北保定市博物馆招聘讲解员2名考试笔试参考题库附答案解析
- 2026中国支付清算协会招聘4人考试备考题库及答案解析
- 2025杭州师范大学下半年(冬季)招聘教学科研人员65人模拟笔试试题及答案解析
- 2026年浙江省湖州市事业单位招聘紧缺人才80人备考笔试题库及答案解析
- 2025贵州万山宏鑫环保科技有限责任公司招聘备考笔试题库及答案解析
- 2025海南省医学科学院实验动物科学部招聘3人备考考试试题及答案解析
- 2025江西江新造船有限公司招聘70人模拟笔试试题及答案解析
- 2025重庆市万州区第一人民医院招聘医师2人备考考试试题及答案解析
- 2026年福建省三明市公开招聘紧缺急需专业新任教师模拟笔试试题及答案解析
- 住院医师规范化培训急诊科模拟试题及答案
- 铝锭贸易专业知识培训课件
- 2025国考国资委申论高分笔记
- 2025年高级经济师《人力资源》考试真题及答案
- 矿山项目经理岗位职责与考核标准
- 2025年乡村旅游民宿业发展现状与前景可行性研究报告
- 国家安全生产公众号
- 2025年中国多深度土壤水分传感器行业市场全景分析及前景机遇研判报告
- 2025档案管理职称考试题库及答案
- 眼科护理读书报告
- 大国兵器(中北大学)学习通网课章节测试答案
评论
0/150
提交评论