韋根26協(xié)議以及示例程序_第1頁
韋根26協(xié)議以及示例程序_第2頁
韋根26協(xié)議以及示例程序_第3頁
韋根26協(xié)議以及示例程序_第4頁
韋根26協(xié)議以及示例程序_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上韋根協(xié)議ID卡號讀取2010-03-31 20:52最近在做門禁系統(tǒng),第一次聽說韋根協(xié)議。我第一階段要做的事情就是用韋根讀卡器將ID卡的卡號讀出來,當(dāng)我拿到讀卡器和ID卡的時候感覺無從下手??僧?dāng)我把韋根協(xié)議都研究透之后想想也不過如此而已,下面簡單的介紹一下韋根協(xié)議。韋根協(xié)議是國際上統(tǒng)一的標(biāo)準(zhǔn),它也是一種數(shù)據(jù)傳輸協(xié)議。標(biāo)準(zhǔn)的26-bit 應(yīng)該是最常用的格式。此外,還有34-bit 、37-bit 等格式。格式的含義如下:當(dāng)給出這一串?dāng)?shù)字,用戶并不知道這串?dāng)?shù)字的含義,但如果說這是一個電話號碼的時候,那么你可能就會說:哦,028是成都的區(qū)號,而是電話號碼。呵呵,不錯,這正是

2、四川航空的服務(wù)熱線。但是安防行業(yè)并不愿意把這些格式公開,而安防公司也常常變化這些格式來保證產(chǎn)品的保密性。而標(biāo)準(zhǔn)26-bit 格式是一個開放式的格式,這就意味著任何人都可以購買某一特定格式的HID卡,并且這些特定格式的種類是公開可選的。26-Bit格式就是一個廣泛使用的工業(yè)標(biāo)準(zhǔn),并且對所有HID的用戶開放。幾乎所有的門禁控制系統(tǒng)都接受標(biāo)準(zhǔn)的26-Bit格式。一、Wiegand(韋根)接口Wiegand接口通常由3根線組成,它們是:數(shù)據(jù)0(Data0),數(shù)據(jù)1(Data1)和 Data return。這3條線負(fù)責(zé)傳輸Wiegand信號。D0,D1在沒有數(shù)據(jù)輸出時都保持+5V高電平。若輸出為0,則D

3、0拉低一段時間,若輸出為1,則D1拉低一段時間。如圖: 二、標(biāo)準(zhǔn)26位Wiegand通訊協(xié)議標(biāo)準(zhǔn)韋根輸出是由26位二進制數(shù)組成,每一位的含義如下:1 2                   9 10                  

4、60;                      25 26X 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位為213位的偶校驗位第29位對

5、應(yīng)與電子卡HID碼的低8位第10-25位對應(yīng)電子卡的PID號碼第26位為14-25位的奇校驗位這26位數(shù)據(jù)在讀出器的韋根輸出線D0,D1上輸出。三、HID和PIDHID號碼即Hidden ID code 隱含碼,PID號碼即Public ID code 公開碼。 PID很容易在讀出器的輸出結(jié)果中找到,但HID在讀出器的輸出結(jié)果中部分或者全部隱掉。HID是一個非常重要的號碼,它不僅存在于卡中,也存在于讀卡器中。如果卡中的HID與讀卡器中的HID不同的話,那么這張卡就無法在這個讀卡器上正常工作。四、Wiegand接口硬件設(shè)計可以將Wiegand接口的Data0和Data1兩個輸出接到MCU的兩個I

6、O腳上,采用查詢的方式接收數(shù)據(jù),但這樣接收并不可靠。比較好的方法是將Data0和Data1接到MCU的兩個中斷引腳上,采用中斷的方式接收數(shù)據(jù)。如圖:示例程序: #include<string.h> #include<reg52.h> #include<intrins.h> #define DELAY_TIME 60 /*經(jīng)實驗,不要小于50!否則可能造成時序混亂*/ #define TRUE 1 #define FALSE 0#define uchar unsigned char #define uint unsigned int sbit DATA1=P3

7、2; /韋根讀卡器的DATA1接單片機的P32sbit DATA0=P33; /韋根讀卡器的DATA0接單片機的P33bit Even; / 偶檢驗位bit Odd; / 奇檢驗位bit CheakEven=0;/偶檢驗 bit CheakOdd=1;/奇檢驗uchar Cnt=0;/uchar WG26=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;/接收韋根數(shù)據(jù)26位uchar WGstr3=0,0,0;/存韋根ID卡卡號的HID和PID碼,其中HID碼為8位即一字節(jié),PID碼16位兩字節(jié)uchar i;uchar j=0; voi

8、d Init() EA=0;TMOD=0x20;TL1=0xfd;TH1=0xfd;/設(shè)置波特率為9600的定時器1為方式2以及初始值PCON=0x00;SCON=0xd8;/設(shè)置串口方式IT0=1; /設(shè)置外部中斷0為下降沿觸發(fā)方式IT1=1; /設(shè)置外部中斷1為下降沿觸發(fā)方式EX0=1; /開外部中斷0EX1=1; /開外部中斷1TR1=1; /開定時器1EA=1; /開所有中斷 void Weigand(uchar *str) /把26位韋根數(shù)據(jù)轉(zhuǎn)換為3字節(jié)數(shù)據(jù)存儲uchar k;for(k=0;k<26;k+)if(k<=0) /讀偶檢驗位if(strk=0)Even=0;

9、elseEven=1;if(k>=25) /讀奇檢驗位if(strk=0)Odd=0;elseOdd=1;if(k<=8) /讀HID碼低8位if(strk=0x00)WGstr0|=0x00;elseWGstr0|=0x01;CheakEven=CheakEven; /根據(jù)HID碼低8位1的個數(shù)來確定偶檢驗位是1還是0if(k<8)WGstr0=WGstr0<<1;if(k<=16) /讀PID碼高8位if(strk=0x00)WGstr1|=0x00;elseWGstr1|=0x01;CheakOdd=CheakOdd;/根據(jù)PID碼高8位1的個數(shù)來確定

10、奇檢驗位是1還是0if(k<16)WGstr1=WGstr1<<1;else /讀PID碼的低8位if(strk=0x00)WGstr2|=0x00;elseWGstr2|=0x01;CheakOdd=CheakOdd; /根據(jù)PID碼低8位1的個數(shù)來確定奇檢驗位是1還是0if(k<24)WGstr2=WGstr2<<1; void main() /P1=0x55;Init();/調(diào)用初始化函數(shù)Cnt=0;while(1)if(Cnt>=26)EA=0;/關(guān)中斷以免外部中斷的干擾Weigand(WG);/將讀到的26位韋根數(shù)據(jù)轉(zhuǎn)換位3字節(jié)格式EA=1;for(j=0;j<3;j+) /用串口調(diào)試工具顯示讀到的卡號SBUF=WGstrj;while(TI=0);TI=0;WGstrj=0;Cnt=0; void DAT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論