維根碼概述 ---維根碼(Wiegand)是一種數(shù)據(jù)傳輸協(xié)議,它是由美國安全工業(yè)協(xié)會(huì)SIA(Security Industry Association)規(guī)定的讀寫接口控制協(xié)議。在門禁、安防、考勤以及與之相關(guān)的其他行業(yè)中,維根碼作為一種讀卡設(shè)備與上位機(jī)之間的通信介質(zhì),其應(yīng)用領(lǐng)域非常廣泛。根據(jù)美國安全工業(yè)協(xié)會(huì)頒布的《以26位維根碼讀卡器為界面的門禁控制標(biāo)準(zhǔn)草案》,26位維根碼長(zhǎng)度為26位,數(shù)據(jù)結(jié)構(gòu)見表1。 ---如表1所示,26位維根碼由8位設(shè)備的家族碼以及16位的設(shè)備ID號(hào)組成。從數(shù)學(xué)意義上說,8位家族碼只能容納256個(gè)設(shè)備種類編號(hào)(0~255)。而16位的設(shè)備ID碼在同一個(gè)設(shè)備種類之下只能容納65536個(gè)不同的設(shè)備號(hào)(0~65535)。由于26位維根碼本身的這種容量限制,在數(shù)據(jù)處理過程中可能會(huì)出現(xiàn)編碼的重復(fù)。 ---正是基于以上這種原因,在26位維根碼的基礎(chǔ)上,又建立了錐形維根碼格式(Pyramid Wiegand Format)以及自定義的維根碼格式(Custom Wiegand Format)等擴(kuò)展的維根碼格式。這些維根碼格式的具體定義如表2和表3所示。 ---維根碼數(shù)據(jù)輸出由兩條數(shù)據(jù)線構(gòu)成,分別是Data 0和Data 1線。圖1給出了《以26位維根碼讀取設(shè)備為界面的門禁控制標(biāo)準(zhǔn)草案》所規(guī)定的傳輸數(shù)據(jù)0和1的時(shí)序。如圖1所示,Data 0和Data 1線在發(fā)送數(shù)據(jù)之前都被置為邏輯高電平(高于Voh)。在這兩條數(shù)據(jù)線出現(xiàn)不同步的低電平的時(shí)候,讀取設(shè)備(通常為單片機(jī))會(huì)分別向上位機(jī)傳送數(shù)據(jù)0和1。 ---數(shù)據(jù)線Data 0和Data 1上的脈沖不能重疊或是同步。圖中Tpw是脈沖寬度時(shí)間(≤100μs),Tpi是脈沖間隔時(shí)間(≥1ms)。 ---作為一種數(shù)據(jù)傳輸格式,維根碼具有廣闊的應(yīng)用前景。依據(jù)維根碼格式輸出的信息可以應(yīng)用于身份識(shí)別、設(shè)備管理等多種領(lǐng)域。  以維根碼格式輸出信息鈕序列號(hào) ---維根碼格式在射頻卡領(lǐng)域有廣泛的應(yīng)用。將對(duì)射頻卡或和TM卡序列號(hào)的讀取制成特定的模塊,既能簡(jiǎn)化系統(tǒng)設(shè)計(jì),又能保證讀取序列號(hào)的正確性,提高了身份識(shí)別系統(tǒng)的通用性和可移植性。 ---目前在采用射頻卡方式工作的門禁控制中,卡號(hào)多以維根碼數(shù)據(jù)形式輸出到控制器部分。為了不改變?cè)虚T禁控制系統(tǒng)的基本結(jié)構(gòu),設(shè)計(jì)了一種采用維根碼格式輸出TM卡序列號(hào)的方法。 ---Dallas公司生產(chǎn)的信息鈕(I-Button)是一種單總線器件,包括ID碼信息鈕DS1990、密碼信息鈕DS1991、溫度信息鈕DS1920、時(shí)鐘信息鈕DS1994等器件。這些器件都采用Φ16mm的不銹鋼封裝,無暴露的易損部件或易腐部件。數(shù)據(jù)傳輸時(shí)采用單總線協(xié)議,即和外部連接時(shí)只需要一根數(shù)據(jù)線和一根地線。每一個(gè)信息鈕都有一個(gè)64位長(zhǎng)的注冊(cè)碼,包括8位家族碼、48位序列號(hào)和8位CRC校驗(yàn)碼。其中48位序列號(hào)是每個(gè)信息鈕所獨(dú)有的,通過讀取8位家族碼可以對(duì)不同的信息鈕加以區(qū)分。其獨(dú)特的機(jī)械外形設(shè)計(jì)和設(shè)計(jì)理念,使其抗撞擊、防水漬、耐腐蝕、抗磁擾、防折疊,存儲(chǔ)于其中的數(shù)據(jù)信息具有相當(dāng)高的安全可靠性,而且便于隨身攜帶。 ---如前所述,Dallas信息鈕的序列號(hào)有48位,根據(jù)這一特點(diǎn),采用擴(kuò)展的50位維根碼輸出序列號(hào),具體定義表4所示。  硬件設(shè)計(jì) ---采用PIC系列的16X711單片機(jī)實(shí)現(xiàn)維根碼的輸出,工作電壓為2.5~5.5V,一般情況下的工作電流小于1μA,只在讀信息鈕瞬間電流增大,非常適合在要求低功率的系統(tǒng)中使用。具體工作過程如下。 ---(1)當(dāng)信息鈕與信息鈕讀卡頭相接觸時(shí),單片機(jī)的INT0端有電平變化,產(chǎn)生中斷,把單片機(jī)從睡眠狀態(tài)中喚醒過來。 ---(2)單片機(jī)執(zhí)行讀序列號(hào)程序,讀卡過程操作時(shí)序通過PORTA端口的RA1端控制。若讀卡中序列號(hào)正確,蜂鳴器發(fā)出提示,同時(shí)信息鈕序列號(hào)以50位維根碼數(shù)據(jù)格式由DATA0和DATA1數(shù)據(jù)線輸出。 ---(3)輸出信息鈕序列號(hào)結(jié)束后,整個(gè)電路重新進(jìn)入睡眠狀態(tài)。 ---硬件電路如圖2所示。圖中1_WIRE表示連接信息鈕讀卡頭的地方,即信息鈕的1_wire數(shù)據(jù)端同時(shí)連接到PIC單片機(jī)INT0中斷端和PORTA端口的RA1端;DATA0是維根碼的“0”數(shù)據(jù)線,DATA1是維根碼的“1”數(shù)據(jù)線;B1是蜂鳴器。  軟件實(shí)現(xiàn) ---以維根碼格式輸出Dallas信息鈕的序列號(hào)的軟件流程圖見圖3。 計(jì)算校驗(yàn)碼程序如下。 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 ;計(jì)算bit2-25的偶校驗(yàn),并儲(chǔ)存在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 ;計(jì)算26~49位的奇校驗(yàn)與前面程序類似 ... RETURN 結(jié)束語 ---本文具體講述了維根碼的數(shù)據(jù)傳輸過程以及時(shí)序。在此基礎(chǔ)上,針對(duì)Dallas信息鈕序列號(hào)的特點(diǎn),提出了一種50位的擴(kuò)展型維根碼格式,并給出了相應(yīng)的硬件電路以及軟件程序。以維根碼格式輸出Dallas信息鈕的序列號(hào)保證了序列號(hào)傳輸?shù)臏?zhǔn)確性,為進(jìn)一步處理序列號(hào)提供了基礎(chǔ)。 參考文獻(xiàn) 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 |