劉靜靜
(蘇州高等職業(yè)技術(shù)學(xué)校,蘇州215009)
最近幾年,隨著感應(yīng)卡技術(shù)的發(fā)展,門禁系統(tǒng)得到了飛躍式的發(fā)展。各類射頻卡通過讀卡器讀取后,轉(zhuǎn)化為二進制數(shù)據(jù),通常通過韋根信號接口與控制設(shè)備相連。韋根信號傳輸距離遠、處理方便,一個處理器可以對多路韋根信號進行處理,從而達到控制多路門的目的。本文從實際應(yīng)用出發(fā),探討一種新的韋根信號采集方法。
STM32系列是專為要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計的ARM Cortex-M3內(nèi)核的處理器。將STM32與門禁系統(tǒng)結(jié)合,是中低端智能門禁系統(tǒng)的較好選擇。
韋根協(xié)議是摩托羅拉公司制定的一種通信協(xié)議。該協(xié)議適用于涉及門禁控制系統(tǒng)的讀卡器以及卡片的多種特性,具有多種格式,其中標準的26位是最常用的格式。
韋根26位輸出格式:E XXXX XXXX XXXX XXXX XXXX XXXX O
其中E表示前12位偶校驗,X表示24位數(shù)據(jù),O表示后12位奇校驗,以上數(shù)據(jù)高位在前,從左至右順序發(fā)送。24位數(shù)據(jù)中前8位為ID卡的HID(隱含碼)低8位,后16位為ID卡PID(公開碼)。韋根數(shù)據(jù)輸出由兩根數(shù)據(jù)線組成,分別為DATA0和DATA1,兩根線輸出為“0”或“1”。輸出0時,DATA0線上出現(xiàn)負脈沖;輸出1時,DATA1線上出現(xiàn)負脈沖;無信號時,兩根線都為+5 V高電平。負脈沖寬度為100μs左右,脈沖間隔為1 600μs左右。示波器上看到的韋根26信號如圖1所示。
圖1 韋根26數(shù)據(jù)波形
ID卡(Identification Card)即身份識別卡,是一種不可寫入感應(yīng)卡。數(shù)據(jù)存儲采用EEPROM,存儲容量共64位,包括制造商、發(fā)行商以及用戶代碼??ㄌ栐诜饪ㄇ皩懭?,之后不可再更改,確??ㄌ柕奈ㄒ恍院桶踩?。ID卡的載 波 頻 率 為 125 k Hz(THRC12)或 13.56 MHz(THRC13),本設(shè)計使用的是常用的125 k Hz ID卡。
卡內(nèi)固化了64位數(shù)據(jù),由5個區(qū)組成:9個引導(dǎo)位、10個行偶校驗位P0~P9、4個列偶校驗位PC0~PC3、40個數(shù)據(jù)位D00~D39和1個停止位S0。9個引導(dǎo)位是出廠時已經(jīng)掩膜在芯片內(nèi)的,其值為“111111111”。當它輸出數(shù)據(jù)時,先輸出9個引導(dǎo)位,然后是10組由4個數(shù)據(jù)位及1個行偶校驗位組成的數(shù)據(jù)串,其次是4個列偶校驗位,最后是停止位“0”。D00~D13是一個8位晶體版本號或ID識別碼。D20~D93為卡號,是8組32位的芯片信息。通常,一張白卡上有兩段數(shù)據(jù),前段數(shù)據(jù)為韋根34的卡號,后段數(shù)據(jù)為韋根26的卡號。后段數(shù)據(jù)常用逗號隔開,逗號前為一個字節(jié)的ID卡的HID碼,逗號后為兩個字節(jié)的ID卡的PID碼。
CLRC632是NXP公司生產(chǎn)的應(yīng)用于13.56 MHz的非接觸式射頻讀卡芯片,本設(shè)計中采用4個CLRC632來讀取4個門的刷卡數(shù)據(jù),并送入韋根信號采集電路的相應(yīng)通道中。4個讀卡器所輸出的數(shù)據(jù)對應(yīng)為:1DATA0和1DATA1、2DATA0和2DATA1、3DATA0和3DATA1、4DATA0和4DATA1。1號門所對應(yīng)的的讀卡器電路如圖2所示。
圖2 1號門讀卡器電路
其他3個門對應(yīng)的讀卡器電路與此類似,各門所輸出的數(shù)據(jù)送入對應(yīng)的韋根信號采集通道。通常,韋根信號傳輸?shù)木嚯x比較遠,有很多干擾,若韋根信號線上出現(xiàn)低電平脈沖時受到干擾,電壓可能會被抬高,因此,在本設(shè)計中,在韋根信號采集電路的設(shè)計上采用了比較器。在比較器的反相輸入端接一個2 V左右的參考電壓,比較器同相輸入端接韋根信號。為了更好地得到韋根信號波形,在比較器的同相輸入端輸入信號前面,加入RC濾波電路以及TVS瞬態(tài)抑制二極管,韋根信號的脈沖寬度在100μs左右,所以在實際設(shè)計中,R和C的取值分別為10 kΩ和1000 p F,t=RC=10μs,濾去10μs左右的毛刺。
在沒有韋根數(shù)據(jù)到達前,韋根信號線上為高電平+5 V,比較器輸出高電平;當有韋根脈沖數(shù)據(jù)到達時,韋根信號線上為低電平,比較器輸出為低電平。將STM32的GPIO引腳設(shè)置為內(nèi)部上拉輸入,與比較器的輸出端相連,每路韋根信號有兩個輸出,4路共8個信號分別接在STM32的GPIO的PB8~PB15引腳上。同時,所有輸出端通過二極管線與的方式接入STM32的一個GPIO引腳PC3上,這樣,只要有一路信號為低電平,該GPIO引腳上就會讀到低電平,在軟件中將該引腳設(shè)置為外部中斷輸入,采用二極管線與的方式,可以節(jié)省一個與門芯片,節(jié)約了成本。二極管選用雙共陽極二級管BAW56,供兩路信號共用。只要處理器的GPIO端口夠用,使用該方式就可以擴展出更多路的韋根信號。4路韋根信號采集電路如圖3所示。
該采集電路中,比較器選用內(nèi)有4個比較器的LM339,使用兩片就可以滿足4路韋根信號的數(shù)據(jù)采集。LM339的輸出為集電極開路型,必須外加上拉電阻。LM339供電為+3.3 V,韋根信號為+5 V,但LM339內(nèi)部有鉗位電路,不會影響韋根信號的采集。
STM32的主頻為72 MHz,中斷響應(yīng)很快,為μs級,而韋根信號的兩個脈沖之間的時間間隔為1~2 ms。因此,在程序設(shè)計時,完全可以在每一個脈沖到來時就中斷一次,并進入中斷響應(yīng)函數(shù)。中斷響應(yīng)函數(shù)所要完成的任務(wù)是:依次掃描STM32的GPIO口PB8~PB15,判斷哪個GPIO口為低電平,PB8~PB15依次對應(yīng)讀卡器1~4的DATA0、DATA1。對8個GPIO端口依次查詢是否為低電平,當DATA0數(shù)據(jù)線上出現(xiàn)低電平脈沖時,將相應(yīng)的DATA[i](i代表讀卡器號,取值范圍為0~3)數(shù)組變量右移1位,同時將計數(shù)變量數(shù)據(jù)I[i]的值加1;當DATA1數(shù)據(jù)線上出現(xiàn)低電平脈沖時,將相應(yīng)的DATA[i]數(shù)組或者0x01再右移1位,同時將計數(shù)變量數(shù)組I[i]的值加1;當計數(shù)變量數(shù)組I[i]的值等于26時,對數(shù)據(jù)進行存儲。將DATA[i]數(shù)組的值向右移18位,存儲在PID[i]數(shù)組中,右移兩位存儲在UID[i]數(shù)組中,同時將I[i]和 DATA[i]數(shù)組清零。
圖3 4路韋根信號采集電路
從以上4路韋根信號采集的分析中可以得出,利用上述的中斷查詢方法可以準確地采集各路數(shù)據(jù),并且4個通道互不干擾,邏輯清晰。其中,中斷響應(yīng)函數(shù)的設(shè)計流程如圖4所示。其中,4個通道依次進行采集。
圖4 韋根信號采集軟件流程圖
在本設(shè)計中,已經(jīng)注冊過的用戶信息都保存在STM32的Flash中。STM32F103RET6的Flash地址從0x 0800 0000到0x 0808 0000(共512 KB),該系統(tǒng)全部程序為60 KB左右,程序設(shè)計時,從0x 0801 f800(第126K)處開始存儲ID卡的數(shù)據(jù),從0x 0801 f800開始的4個字節(jié)存儲注冊卡記錄總數(shù),從0x 0801 f804處開始正式存儲記錄數(shù)據(jù),每4個字節(jié)為一條記錄;第一個字節(jié)為門號,共4個門,門號從01~04;第二個字節(jié)為ID卡的PID碼;第三和第四個字節(jié)為ID卡的UID碼。
當采集到的韋根數(shù)據(jù)到達時,從Flash地址0x 0801 f800中讀出注冊卡的總數(shù)num,根據(jù)num依次循環(huán)檢查各門的數(shù)據(jù),如果該卡已經(jīng)在該門注冊過,則控制電磁鎖開門,同時保存當前韋根數(shù)據(jù)和系統(tǒng)時間,便于向上位機上傳數(shù)據(jù)。處理1號門韋根數(shù)據(jù)的程序流程圖略——編者注。其余各門的操作與之類似。
韋根信號采集的方法在現(xiàn)實門禁控制器中得到了很好的運用,該方法能準確無誤地獲得多路刷卡信息。該方法簡便實用、容易實現(xiàn),且穩(wěn)定可靠,也便于擴展更多路的韋根信號采集,降低整個門禁控制器成本。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站 www.mesnet.com.cn。
[1]黎國鋒.近距離無線加密傳輸韋根信號的實現(xiàn)[J].無線通訊技術(shù),2009(1).
[2]張炯.基于ARM7的多路韋根信號采集與處理[J].單片機與嵌入式系統(tǒng)應(yīng)用,2008(2).
[3]譚周文.讀寫器中485與韋根信號采集系統(tǒng)的設(shè)計[J].微計算機信息,2008(20).
[4]柴卉.韋根協(xié)議在門禁系統(tǒng)中的應(yīng)用[J].儀器儀表用戶,2007(5).
[5]陳聰.基于STM32的網(wǎng)絡(luò)門禁控制系統(tǒng)設(shè)計[D].蘇州:蘇州大學(xué),2012.
[6]張潔.基于RFID技術(shù)的行智能門禁系統(tǒng)設(shè)計[D].石家莊:河北科技大學(xué),2010.