### 韦根门禁通讯协议详解 #### 一、前言 Wiegand(韦根)协议是一种专用于门禁控制系统中读卡器与卡片间通信的标准协议,由摩托罗拉公司制定。该协议主要关注于数据传输方式,而非具体的通信速率或数据长度。 #### 二、韦根数据输出的基本概念 韦根数据输出通过两条线实现,分别是DATA0和DATA1,这两条线分别用于传输数字“0”和“1”。 - **传输“0”**:DATA0线上会产生一个负脉冲。 - **传输“1”**:DATA1线上会产生一个负脉冲。 - **脉冲参数**:负脉冲宽度TP为100微妙,周期TW为1600微妙。 #### 三、韦根26位输出格式 韦根26位输出格式是当前应用最为广泛的一种格式,具体结构如下: ``` EXXXXXXXXXXXXXXXXXXXXXXXXO ``` - **格式解释**:前12位为偶校验,接下来12位为实际数据(地区码和卡号),最后12位为奇校验。 - **地区码**:如果地区码为2个字符(8位),则可以设置255个不同的地区码。 - **卡号**:如果卡号为4个字符(16位),则可以设置65536个不同的卡号。 以电子卡为例,假设地区码为01,卡号为0001,则韦根输出为: ``` 10000000100000000000000010 ``` #### 四、韦根26接收 由于韦根协议对接收时间的实时性有较高要求,因此简单的查询方法容易导致数据丢失。为了避免这种情况,推荐使用中断的方式进行接收: - 当DATA0线上检测到0时,应立即触发中断处理程序,以避免因主程序执行其他任务而导致的数据丢失。 - 中断处理程序应在接收到数据后立即更新接收标志位,以便主程序能够及时响应并正确处理数据。 #### 五、韦根接口定义 Wiegand接口通常包含以下三个组成部分: - **DATA0**:通常为绿色线,负责传输数字“0”。 - **DATA1**:通常为白色线,负责传输数字“1”。 - **GND**:通常为黑色线,作为信号地。 安装商在连接读卡器和门禁控制面板时,需要确保这些接口清晰可见。 #### 六、发送程序示例 以下是一个将数组封装成韦根26格式的发送程序示例: ```c void send_wiegand26(uchar *str) { // 数组到韦根包的转换逻辑 uchar datai; static uchar dataone_num; // 计算1的个数 uchar datacheck_temp; // 奇偶校验中间暂存 bit even; // 前12位偶校验 bit odd; // 后12位奇校验 static uchar datawiegand[3]; // 韦根包数据24位 // 端口方向定义 P3M0 = 0x00; // 普通I/O口 P3M1 = 0x00; // 数组到韦根包的转化 wiegand[0] = wiegand[0] | ((*str << 4)); wiegand[0] = wiegand[0] | (*(str + 1) & 0x0f); // 计算前8位1的个数,为偶校验使用 check_temp = 0; for (datai = 0; datai < 8; datai++) { if ((wiegand[0] >> datai) & 0x01) { check_temp++; } } even = (check_temp % 2 == 0); // ...后续的奇校验计算和数据发送过程省略... } ``` 通过上述内容,我们可以了解到韦根门禁通讯协议的基本原理及其在门禁系统中的应用。此外,还提供了韦根26位格式的具体结构及数据传输细节,以及如何通过编程实现数据的发送与接收,为开发人员提供了实用的技术指导。
2025-12-23 10:31:19 161KB 门禁通讯
1
用PIC平台编写的韦根接受代码,wiegand26,34可通用,采用中断接收
2023-07-07 18:20:33 2KB 韦根
1
本文介绍了一种新的韦根26信号的采集方法,采用STM32为MCU接收4路韦根26信号数据,根据接收到的数据判断门禁系统是否进行开门处理。本文详细描述了信号采集的硬件电路设计和软件设计流程。
2022-10-31 22:35:31 85KB STM32 韦根26信号 门禁系统 文章
1
韦根协议的了解,通过单片机的读取并存储ID卡号的数据,并通过串口调试助手在上位机上显示出来。。
2022-06-01 16:40:48 1KB 中断
1
智能家居 这是我的智能家居解决方案。 该服务器部署在openwrt路由器上。 该项目尚未完成。 欢迎您贡献它。 文件正在更新。 您可以进行二次开发以应用于您的家具。 演示版 家具实现 冷气 名称:小米互联网空调X(1.5匹|变频|新一级能效) 类型:urn:miot-spec-v2:device:空调:0000A004:xiaomi-mt2:1 通过miio协议实现 门 访问控制器:微耕门禁控制器(WG2051) 由wiegand SDK实施 开始 您需要一台服务器来释放智能家居 这是我的例子 我在路由器上取消了智能家庭服务器的配置: 型号:NETGEAR WNDR4300 固件版本:OpenWrt 19.07.5 r11257-5090152ae3 设定参数 顺便说一句,直接将参数设置为源代码不是一个好主意。 稍后我将对其进行优化。 转到smart-home-ser
2022-03-01 08:44:47 3.45MB mihome miio-protocol miio miio-device
1
最近在做门禁系统,第一次听说韦根协议。我第一阶段要做的事情就是用韦根读卡器将ID卡的卡号读出来,当我拿到读卡器和ID卡的时候感觉无从下手。不过做好之后觉得也蛮简单的。
2022-01-05 11:01:45 91KB 韦根协议 韦根读卡器示例程序
1
Linux中断驱动,中断接收韦根,26码,全部使用驱动默认,默认GPIO中断默认接收26码韦根信号,可以方便集成进Linux驱动里面,可以对接市面上的RFID,方便修改成34码,66码的韦根
2021-12-12 17:08:24 8KB Linux 韦根 26码
1
STC、51单片机韦根34协议读取程序,能读取韦根34协议发过来的内容
2021-12-04 21:02:58 62KB 韦根34 STC 51单片机
1
STC单片机、51单片机、韦根26协议读取程序,能够读取韦根26协议数据,通过串口1输出
2021-12-04 21:02:57 62KB STC单片机 51单片机 韦根26协议
1
韦根门禁,读取两个数据线的数据,从而得出卡号。
2021-11-22 15:27:41 4KB 韦根 卡号 程序
1