一种自动检测韦根输入的控制器接口及控制方法 【技术领域】
本发明涉及门禁控制系统, 尤其是一种自动检测韦根输入的控制器接口及控制方法。 背景技术 Wiegand 协议是国际上统一的标准, 是由摩托罗拉公司制定的一种通讯协议。 它适 用于涉及门禁控制系统的读卡器和卡片的许多特性。它有很多格式, 标准的 26-bit 应该是 最常用的格式。此外, 还有 34-bit、 37-bit 等格式。而标准 26-bit 格式是一个广泛使用的 工业标准, 并且对所有 HID(Human Interface Device 人机接口设备 ) 的用户开放。几乎所 有的门禁控制系统都接受标准的 26-Bit 格式。
韦根数据输出由二根线组成, 分别是 DATA0 和 DATA1 ; 二根线分别将 ‘0’ 或 ‘1’ 输 出。输出 ‘0’ 时: DATA0 线上出现负脉冲 ; 输出 ‘1’ 时: DATA1 线上出现负脉冲 ; 一个脉冲时 间 TL 在 20us 至 100us 之间, 脉冲的跳变时间 TW 在 200us 至 20ms 之间, 如图 2 所示。
现有的韦根接收信号方式有两种 : 查询方式和外部中断方式。 都各自存在着弊端。 1、 韦根的接收对时间的实时性要求比较高, 如果用查询的方法接收会出现丢帧的现象 : 假 设查询到 DATA0 为 0 时主程序正在指向其他任务, 等主程序执行完该任务时 DATA0 已经变 为 1 了, 那么这样就导致了一个 0bit 的丢失, 这样读出的卡号肯定奇偶校验通不过, 因此表 现出 CPU 接收不到 ID 模块发送的卡号。2、 采用外部中断的方式虽然不会出现丢数据的现 象, 但是中断次数太频繁, 例如韦根 26 要中断 26 次, 韦根 34 要中断 34 次, 这会导致用户的 进程常被打断, 影响程序进程的连贯性。
发明内容 本发明的目的正是要解决上述技术存在的不足, 而提供一种自动检测韦根输入的 控制器接口及控制方法。
本发明解决其技术问题采用的技术方案 : 这种自动检测韦根输入的控制器接口, 韦根模块挂接在总线桥上, 通过总线桥与内核 CPU 信号连接, 内核 CPU 通过总线桥传递一个 时钟模块给韦根模块, 通过 WGIN 预分频器分频出可供韦根模块工作的基准时钟 ; 用于接收 到外部信号的两个外接的 GPIO 口, 即 WGIN_DATA0、 WGIN_DATA1, 经采样时钟进行数据采样, 采集到与预设数据长度一致的数据, 即 WGIN 数据长度, 将其储存在寄存器 WGINH_RESULT 和 WGINL_RESULT 中, 此时产生一个中断, 此中断由中断使能控制是否传递给内核 CPU。
本发明所述的控制方法, 客户通过控制器接口接收韦根信号步骤如下 :
步骤 1 : 韦根 (WGIN) 初始化 :
①配置 WGIN 的工作时钟, 写寄存器 WGIN_CLKDIV ;
②设置数据接收长度, 写寄存器 WGIN_CTRL[7:1] ;
③清除 WGIN 中断查询标志, 写寄存器 WGIN_INTFLAG = 1 ;
④如果要配置 WGIN 中断使能, 写寄存器 WGIN_CTRL[0] = 1, 如果中断不使能则写
0; 步骤 2 : 韦根 (WGIN) 接收中断服务 :
①、 产 生 WGIN 中 断 后, 清 除 WGIN 中 断 标 志, 准 备 下 次 WGIN 中 断, 写寄存器 WGIN-INTFLAG = 1 ;
②、 读 WGIN 结果寄存器 WGINH_RESULT, WGINL_RESULT ; 此寄存器中存放着从读头 传过来的完整的韦根信号。
本发明有益的效果是 : 本发明针对韦根接受信号的特性很好的解决了以上两个弊 端: 本发明硬件自动接收韦根电平信号, 不再需要主程序去轮询 GPIO 口的电平状态, 从而 不会出现丢数据的现象, 解决了查询方式的弊端。 然硬件根据用户的配置, 只在接受完所有 的数据后产生一次中断, 从而不会中断频繁影响进程, 解决了采用中断方式的弊端。
附图说明
图 1 为门禁和读头的数据传输示意图 ; 图 2 为 WGIN 时序图 ; 图 3 为本发明中韦根接收信号功能框图 ; 图 4 为本发明中 WGIN 模块的挂接示意图 ; 图 5 为本发明中 WGIN 初始化流程图 ; 图 6 为本发明中 WGIN 接收中断服务子程序示意图。具体实施方式
下面结合附图和实施例对本发明作进一步说明 :
请参图 4 所示, 韦根模块挂接在总线桥上, 从而和内核 CPU 进行信号传递。内核 CPU 通过总线桥, 传递一个时钟模块给韦根模块, 经韦根分频器 (WGIN 预分频器 ) 分频出可 供韦根模块工作的基准时钟。两个外接的 GPIO 口 (WGIN_DATA0, WGIN_DATA1) 接收到外部 信号, 经采样时钟进行数据采样, 采集到与预设数据长度一致的数据 (WGIN 数据长度 ), 将 其储存在寄存器 WGINH_RESULT(WGIN 结果高 32 位寄存器 ) 和 WGINL_RESULT(WGIN 结果低 32 位寄存器 ) 中, 此时产生一个中断, 此中断由中断使能控制是否传递给内核 CPU。
用户可以通过配置一些简单的寄存器实现韦根信号的接收。寄存器描述如下 :
表 1 列出了这些寄存器名、 偏移地址、 访问方式及初始值等。
表 1WGIN 寄存器
寄存器名 WGIN_CLKDIV WGIN_CTRL WGIN_INTFLAG WGINH_RESULT 偏移地址 0x00 0X04 0x08 0x0c R/W r/w r/w r/w r/w 复位值 0x0a 0x00 0x00 0x00 描述 时钟采样分频寄存器 控制寄存器 中断标志 / 清零寄存器 转换结果高位寄存器4102323914 A CN 102323924WGINL_RESULT 0x10 r/w说0x00明书转换结果低位寄存器3/5 页
域名 -ClkDivWGIN 时钟采样分频寄存器 (WGIN_CLKDIV) : WGIN 时钟采样分频寄存器 (WGIN_CLKDIV), 确定采样频率, 其位定义见表 2。 表 2WGIN_CLKDIV位 31:16 15:0 R/W -r/w 复位值 -0x0a 描述 保留 WGIN 时钟分频数, 分频数为 (WGINClkDiv+1) * 2
域名 -Start Len IntEnWGIN 控制寄存器 (WGIN_CTRL) : WGIN_CTRL 用来配置 WGIN 的控制信号, 描述见表 3。 表 3WGIN_RSTDT位 31:9 8 7:1 0 R/W -r/w r/w r/w 复位值 -0x00 0x00 0x00 描述 保留 写 1 启动接收数据, 接收数据总长度 中断使能位, 写 1 使能中断WGIN 中断标志 / 清零寄存器 (WGIN_INTFLAG)
WGIN_INTFLAG, 见表 4, 用来读取 WGIN 的中断标志, 并清除 WGIN 中断标志, 该寄存 器写 1 清零。
表 4WGIN_INTFLAG
域名 -IntFlag 位 31:1 0 R/W -r/w 复位值 -0x00 描述 保留 Wiegand 中断标志 / 清零寄存器WGIN 转换结果寄存器高 32 位 (WGINH_RESULT)
WGINH_RESULT, 见表 5, 为 WGIN 转换结果寄存器。一旦用户检测或查询到中断, 用 户便可以读取该寄存器获取 Wiegand 的转换结果 ( 高 32 位 )。
表 5WGIN_RESULT
5102323914 A CN 102323924Name -ResultH Bits 31:10 9:0 R/W -r Reset -0x00说明书4/5 页Description Reserved WGIN conversion resultWGIN 转换结果寄存器低 32 位 (WGINL_RESULT)
WGINH_RESULT, 见表 6, 如果数据长度超过 32 位, 剩余的结果存在此寄存器中, 为 WGIN 转换结果寄存器。一旦用户检测或查询到中断, 用户便可以读取该寄存器获取 Wiegand 的转换结果 ( 低 32 位 )。
表 6WGIN_RESULT
Name -ResultL Bits 31:10 9:0 R/W -r Reset -0x00 Description Reserved WGIN conversion result
如图 5、 图 6 所示, 客户通过此接口接收韦根信号步骤如下 : 步骤 1 : 韦根 (WGIN) 初始化 : ①配置 WGIN 的工作时钟, 写寄存器 WGIN_CLKDIV ②设置数据接收长度, 写寄存器 WGIN_CTRL[7:1] ③清除 WGIN 中断查询标志, 写寄存器 WGIN_INTFLAG = 1 ④如果要配置 WGIN 中断使能, 写寄存器 WGIN_CTRL[0] = 1, 如果中断不使能则写0 步骤 2 : 韦根 (WGIN) 接收中断服务
①、 产 生 WGIN 中 断 后, 清 除 WGIN 中 断 标 志, 准 备 下 次 WGIN 中 断, 写寄存器 WGIN-INTFLAG = 1 ;
②、 读 WGIN 结果寄存器 WGINH_RESULT, WGINL_RESULT ; 此寄存器中存放着从读头 传过来的完整的韦根信号。
本发明的特点如下 :
1. 韦根输入可以通过寄存器配置, 以节省 MEMORY 空间, 降低系统资源 ; 2. 硬件方式确保接收数据的准确性 ; 3. 大大降低了中断频率, 解放了 MCU(Micro Control Unit 微控制单元资源 ) 资源; 4.IP 逻辑简单, 面积较小, 成本较低 ;
5. 可通过 IP, 兼容现已有的多种韦根输入方式。
术语解释 :
门禁系统 :
又称出入管理控制系统 (ACCESS CONTROL SYSTEM)。是一种管理人员进出的智能 化管理系统。概括就是 : 管理什么人什么时间可以进出那些门, 并提供事后的查询报表等
等, 常见的门禁系统有 : 密码门禁系统, 非接触卡门禁系统, 指纹虹膜掌型生物识别门禁系 统等的总称, 门禁系统近几年发展很快, 被广泛应用于管理控制系统中。
读头 :
读头就是读卡器, ( 又称读出装置、 扫描器、 阅读器、 通信器、 读写器 ), 是控制系统 中的读写模块。将读头芯片封装起来, 主要通过韦根或者串口、 IIC 等方式与控制器进行通 信, 这就形成了简单的控制系统。目前读头的种类很多, 主要包括键盘式、 感应式和生物识 别三种。
门控制器 :
门控制器是门的单向进出或门的双向进出, 按照工业级技术要求设计的高性能门 禁控制器。
MCU :
MCU(Micro Control Unit) 中文名称为微控制单元, 又称单片微型计算机 (Single Chip Microcomputer) 或者单片机, 是指随着大规模集成电路的出现及其发展, 将计算机的 CPU、 RAM、 ROM、 定时计数器和多种 I/O 接口集成在一片芯片上, 形成芯片级的计算机, 为不 同的应用场合做不同组合控制。 GPIO 口 :
本文指 MCU 的引脚。
外部中断方式 :
本文中的外部中断方式是指门控制器中的 MCU 的 GPIO 口接收到从读头发出的电 平信号所产生的终端, 然后控制器的 MCU 对此中断的电平进行读取。
外部查询方式 :
本文中的外部查询方式是指门控制器中的 MCU 不断轮询自身连接到读头的 GPIO 口信号, 如图 1 所示。
除上述实施例外, 本发明还可以有其他实施方式。凡采用等同替换或等效变换形 成的技术方案, 均落在本发明要求的保护范围。