维根码概述 ---维根码(Wiegand)是一种数据传输协议,它是由美国安全工业协会SIA(Security Industry Association)规定的读写接口控制协议。在门禁、安防、考勤以及与之相关的其他行业中,维根码作为一种读卡设备与上位机之间的通信介质,其应用领域非常广泛。根据美国安全工业协会颁布的《以26位维根码读卡器为界面的门禁控制标准草案》,26位维根码长度为26位,数据结构见表1。 ---如表1所示,26位维根码由8位设备的家族码以及16位的设备ID号组成。从数学意义上说,8位家族码只能容纳256个设备种类编号(0~255)。而16位的设备ID码在同一个设备种类之下只能容纳65536个不同的设备号(0~65535)。由于26位维根码本身的这种容量限制,在数据处理过程中可能会出现编码的重复。 ---正是基于以上这种原因,在26位维根码的基础上,又建立了锥形维根码格式(Pyramid Wiegand Format)以及自定义的维根码格式(Custom Wiegand Format)等扩展的维根码格式。这些维根码格式的具体定义如表2和表3所示。 ---维根码数据输出由两条数据线构成,分别是Data 0和Data 1线。图1给出了《以26位维根码读取设备为界面的门禁控制标准草案》所规定的传输数据0和1的时序。如图1所示,Data 0和Data 1线在发送数据之前都被置为逻辑高电平(高于Voh)。在这两条数据线出现不同步的低电平的时候,读取设备(通常为单片机)会分别向上位机传送数据0和1。 ---数据线Data 0和Data 1上的脉冲不能重叠或是同步。图中Tpw是脉冲宽度时间(≤100μs),Tpi是脉冲间隔时间(≥1ms)。 ---作为一种数据传输格式,维根码具有广阔的应用前景。依据维根码格式输出的信息可以应用于身份识别、设备管理等多种领域。  以维根码格式输出信息钮序列号 ---维根码格式在射频卡领域有广泛的应用。将对射频卡或和TM卡序列号的读取制成特定的模块,既能简化系统设计,又能保证读取序列号的正确性,提高了身份识别系统的通用性和可移植性。 ---目前在采用射频卡方式工作的门禁控制中,卡号多以维根码数据形式输出到控制器部分。为了不改变原有门禁控制系统的基本结构,设计了一种采用维根码格式输出TM卡序列号的方法。 ---Dallas公司生产的信息钮(I-Button)是一种单总线器件,包括ID码信息钮DS1990、密码信息钮DS1991、温度信息钮DS1920、时钟信息钮DS1994等器件。这些器件都采用Φ16mm的不锈钢封装,无暴露的易损部件或易腐部件。数据传输时采用单总线协议,即和外部连接时只需要一根数据线和一根地线。每一个信息钮都有一个64位长的注册码,包括8位家族码、48位序列号和8位CRC校验码。其中48位序列号是每个信息钮所独有的,通过读取8位家族码可以对不同的信息钮加以区分。其独特的机械外形设计和设计理念,使其抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠,存储于其中的数据信息具有相当高的安全可靠性,而且便于随身携带。 ---如前所述,Dallas信息钮的序列号有48位,根据这一特点,采用扩展的50位维根码输出序列号,具体定义表4所示。  硬件设计 ---采用PIC系列的16X711单片机实现维根码的输出,工作电压为2.5~5.5V,一般情况下的工作电流小于1μA,只在读信息钮瞬间电流增大,非常适合在要求低功率的系统中使用。具体工作过程如下。 ---(1)当信息钮与信息钮读卡头相接触时,单片机的INT0端有电平变化,产生中断,把单片机从睡眠状态中唤醒过来。 ---(2)单片机执行读序列号程序,读卡过程操作时序通过PORTA端口的RA1端控制。若读卡中序列号正确,蜂鸣器发出提示,同时信息钮序列号以50位维根码数据格式由DATA0和DATA1数据线输出。 ---(3)输出信息钮序列号结束后,整个电路重新进入睡眠状态。 ---硬件电路如图2所示。图中1_WIRE表示连接信息钮读卡头的地方,即信息钮的1_wire数据端同时连接到PIC单片机INT0中断端和PORTA端口的RA1端;DATA0是维根码的“0”数据线,DATA1是维根码的“1”数据线;B1是蜂鸣器。  软件实现 ---以维根码格式输出Dallas信息钮的序列号的软件流程图见图3。 计算校验码程序如下。 EVEN EQU 30H ODD EQU 31H ZH1 EQU 2BH NUMB EQU 2CH WIEGAND: CLRF EVEN CLRF ODD MOVLW 3 MOVWF NUMB MOVLW 46H MOVWF FSR ;计算bit2-25的偶校验,并储存在EVEN中 EVEN7: MOVF 0,W MOVWF 39H BTFSS 39H, 7 GOTO EVEN6 INCF EVEN EVEN6: BTFSS 39H, 6 GOTO EVEN5 INCF EVEN EVEN5: BTFSS 39H, 5 GOTO EVEN4 INCF EVEN EVEN4: BTFSS 39H,4 GOTO EVEN3 INCF EVEN EVEN3: BTFSS 39H, 3 GOTO EVEN2 INCF EVEN EVEN2: BTFSS 39H, 2 GOTO EVEN1 INCF EVEN EVEN1: BTFSS 39H,1 GOTO EVEN0 INCF EVEN EVEN0: BTFSS 39H,0 GOTO EVEN8 INCF EVEN EVEN8: DECF FSR DECFSZ NUMB GOTO EVEN7 ;计算26~49位的奇校验与前面程序类似 ... RETURN 结束语 ---本文具体讲述了维根码的数据传输过程以及时序。在此基础上,针对Dallas信息钮序列号的特点,提出了一种50位的扩展型维根码格式,并给出了相应的硬件电路以及软件程序。以维根码格式输出Dallas信息钮的序列号保证了序列号传输的准确性,为进一步处理序列号提供了基础。 参考文献 1 Dallas Semiconductor Corporation. http://www.dalsemi.com 2 Microchip pic16c7xx data sheet. http://www.microchip.com 3 Halevi, S. Krawczyk, H., Public key cryptography and password protocols[J].Proceedings of 5th ACM Conference on Computer and Communications Security, 1998 4 2 Botting, J.Security on the Internet: Authenticating the User[J]. Telecommunications, 1997 |