電子門鎖是現(xiàn)代星級酒店管理電子化、智能化的重要電子設(shè)備。相較于傳統(tǒng)的機械鎖,基于RFID技術(shù)的電子門鎖使用方便,易于管理,安全性高,可實現(xiàn)對開鎖用戶的分優(yōu)先級自動管理,對房間入住信息實現(xiàn)自動統(tǒng)計與報表輸出。
1 系統(tǒng)整體分析
MF1 S50和S70卡是遵守ISO14443A國際標準的非接觸式邏輯加密卡,S50卡內(nèi)共有1024字節(jié)非易失性存儲空間,分為16個扇區(qū),每個扇區(qū)包含4個數(shù)據(jù)塊,每個扇區(qū)都有一組獨立的密碼A和B,扇區(qū)內(nèi)的每個數(shù)據(jù)塊都可單獨設(shè)置存取條件。S70存儲結(jié)構(gòu)與S50類似,存儲空間為4096字節(jié),分為40個扇區(qū)。
旅客入住酒店時,酒店前臺將旅客的入住時間、退房時間、房間號等信息寫入已授權(quán)卡片指定扇區(qū)的數(shù)據(jù)塊。客人在選定的房間門鎖前刷卡,門鎖射頻讀卡模塊使用定時紅外線掃描,當探測到卡片后啟動讀卡程序,讀出卡片的全球唯一序列號和卡內(nèi)的旅客入住信息,并比對房間號和入住與退房時間,決定是否開門,并將事件記錄在門鎖的E2PROM中。
卡內(nèi)使用一個字節(jié)作為卡類型標識,除了客人卡、還可識別管理卡、清潔卡、樓層卡、報警卡、時鐘卡等不同功能的卡片,并設(shè)置不同的權(quán)限??▋?nèi)的門鎖操作記錄可以使用MF1 S70卡片采集,以便定期導(dǎo)出進行匯總統(tǒng)計。
2 系統(tǒng)硬件設(shè)計
如圖1所示,整個系統(tǒng)以ATMEGA88V為核心,外圍電路包括RC522讀卡操作模塊、門鎖電機驅(qū)動控制模塊、紅外探測模塊、E2PROM存儲模塊以及電源、時鐘、聲光指示等功能模塊。ATMEGA88V進行紅外線探測,當探測到紅外線有遮擋時啟動RC522進行讀卡操作,根據(jù)卡內(nèi)信息決定是否進行開門操作,并通過實時時鐘獲得時間信息,最后將事件記入E2PROM中;如果是設(shè)置卡,則對系統(tǒng)進行參數(shù)設(shè)置。蜂鳴器和LED燈可以在卡片和門鎖操作的過程中指示不同的狀態(tài),ISP接口實現(xiàn)應(yīng)用程序的下載和更新。
2.1 主控芯片電路
由于門鎖工作時對能耗指標的要求非??量?,所以選取主控芯片的原則是運行速度快,耗電少,內(nèi)部資源夠用即可,盡量減少閑置不用的資源。因此綜合考慮選用美國ATMEL公司的高性能、低功耗的 AVR 8位微處理器ATMEGA88V作為本系統(tǒng)的核心。
該微控制器特點如下:
◆ 先進的 RISC 結(jié)構(gòu)(工作于16 MHz 時性能高達16 MIPS)。
◆ 23個可編程的I/O口,8路10位ADC通道。
◆ 1K字節(jié)內(nèi)部數(shù)據(jù)RAM,8K字節(jié)FLASH存儲器,可以在系統(tǒng)編程。
◆ 3個通用計數(shù)器、定時器陣列, SPI串口。
◆ 多種節(jié)電休眠和停機方式,掉電模式下最低僅需0.5μA。
2.2 RC522讀卡接口電路
讀卡電路讀取卡片信息供單片機用于控制門鎖或進行參數(shù)設(shè)置,并在導(dǎo)出記錄時將記錄信息寫入S70卡。射頻接口芯片選用了體積小、低電壓、低功耗的RC522芯片,以滿足門鎖控制模塊對體積和能耗的要求。RC522支持ISO14443 TYPEA及MIFARE CRYPTO1加密協(xié)議,最大讀寫距離6cm,具備硬件掉電、軟件掉電和發(fā)送器掉電等多種節(jié)電工作模式[2]。RC522讀卡接口電路如圖2所示。
RC522與單片機之間的通訊可以使用UART、I2C、SPI接口,此處我們選用SPI接口。硬件上電路板分為兩個部分,天線和紅外探測以及LED顯示組成PCB前板,其它元件作為硬件底板,TX1和TX2連接PCB前板上的天線。Q1控制RC522的電源,在單片機休眠時RC522完全斷電,以節(jié)省能量延長更換模塊電池的間隔時間。
2.3 門鎖電機控制電路與紅外探測電路
門鎖電機控制電路選用一片BA6287作為驅(qū)動。BA6287的供電電壓范圍4.5-15V,最大輸出驅(qū)動電流可達1A。M+和M-分別接門鎖直流電機的正負極,F(xiàn)IN和RIN接單片機的I/O口。BA6287可以實現(xiàn)電機的正轉(zhuǎn)、反轉(zhuǎn)、剎車以及芯片本身的掉電休眠模式,非常適合于門鎖電機的驅(qū)動控制。
紅外探測電路用于探測天線區(qū)域內(nèi)是否有卡片存在。探測時,單片機將IR_E_D置高電平,Q21導(dǎo)通,二極管IR_E向模塊正前方區(qū)域發(fā)射紅外線,同時置位IR_R_D電壓,并通過ADC通道讀取IR_R的電壓值。當射頻場內(nèi)有卡片時,發(fā)射的紅外線通過卡片反射回來被Q22接收,Q22導(dǎo)通, IR_R的電壓高于基準值,單片機據(jù)此啟動RC522讀卡電路。反之當沒有卡片時,紅外線沒有反射,Q22不導(dǎo)通,此時IR_R電壓為基準值。
3 軟件設(shè)計
射頻卡門鎖電路的軟件主要由射頻卡探測與讀寫程序、門鎖驅(qū)動與狀態(tài)指示程序以及門開關(guān)記錄保存與導(dǎo)出程序三部分組成。射頻卡探測與讀寫程序?qū)崿F(xiàn)了卡片探測與卡片操作,門鎖驅(qū)動與狀態(tài)指示根據(jù)讀取的卡片信息對電機進行驅(qū)動,并顯示門的當前狀態(tài)信息,這兩部分是軟件程序的重點。開關(guān)記錄保存與導(dǎo)出程序?qū)㈤_關(guān)記錄記入模塊的E2PROM并可導(dǎo)出到S70卡片,供PC主機采集與分析使用。門鎖電路軟件總框圖如圖4所示。
3.1 RC522卡操作程序
紅外探測到射頻場內(nèi)有卡片后,單片機啟動RC522進行讀卡操作。由于模塊每間隔250ms探測一次卡片,在間歇期內(nèi)RC522處于掉電休眠狀態(tài),因此讀卡的第一步是先給RC522上電復(fù)位,然后進行端口和RC522寄存器配置,之后開啟天線進行卡呼叫、卡防沖突、卡選擇和卡認證。只有獲得授權(quán)的卡片才能通過卡認證一步,之后單片機根據(jù)卡類型進行判斷,如果是MIFARE S50卡,則讀取兩個BLOCK的卡內(nèi)配置信息,并根據(jù)這些信息調(diào)用門鎖驅(qū)動程序執(zhí)行開、關(guān)門操作或進行系統(tǒng)參數(shù)設(shè)置;如果是S70卡,則調(diào)用開關(guān)門記錄導(dǎo)出程序,將模塊內(nèi)存儲的開關(guān)門記錄寫入S70卡片。
如果紅外探測到場內(nèi)有卡片,但卡呼叫未成功,則可能是有其他物體遮擋紅外線或可見光干擾,此時單片機將啟動ADC基準值的動態(tài)平滑機制,將本次采樣值加入樣本,同時剔除最老的樣本并計算樣本平均值作為下次ADC采樣比較的基準。經(jīng)過較短時間的采樣平滑后,基準值實現(xiàn)跟隨外部干擾變化動態(tài)調(diào)整,從而消除干擾的影響。
3.2 門鎖驅(qū)動與狀態(tài)指示程序
門鎖驅(qū)動程序根據(jù)讀取的MF1 S50卡片配置信息進行各種操作??ㄆ瑑?nèi)的配置信息使用卡片的兩個BLOCK共32字節(jié),第一個BLOCK的16個字節(jié)格式固定,第二個BLOCK的內(nèi)容根據(jù)不同的卡類型所存儲的信息有差別。其結(jié)構(gòu)如下:
00 01 02 06 07 0B 0C 0D 0E 0F 10 11 16 17 1C 1D 1E 1F
卡型:一個字節(jié)的卡類型標識不同功能類型的卡片。常見的卡片類型可以分為兩大類,開門卡和設(shè)置卡。開門卡可以實現(xiàn)開關(guān)門,如客人卡、樓層卡、清潔卡、樓號卡、應(yīng)急卡、常開卡等;設(shè)置卡用來設(shè)置模塊參數(shù),不能開門,如退房卡、管理卡、房號設(shè)置卡、時鐘設(shè)置卡、勿擾卡、報警卡等。
FLAG:標志字節(jié),可以設(shè)置8個標志,比如是否允許開反鎖,是否比較開門時間,是否比較房號等。
BEGIN和END:開始時間和結(jié)束時間,格式為年、月、日、時、分,只有在這個時間區(qū)間內(nèi),才能開門。當卡片為時鐘設(shè)置卡時,使用BEGIN來設(shè)置系統(tǒng)時鐘。
樓號、樓層和房號:用來比較房間是否正確。房號有兩個字節(jié),第一個字節(jié)為主房間號,第二個字節(jié)為子房間號。有些高級套房內(nèi)部有子房間,并具有獨立的門鎖控制。沒有子房間的客房在比較時忽略子房間號。
第二個BLOCK的內(nèi)容根據(jù)不同的卡類型,其意義有所不同,比如清潔卡可用來設(shè)置清潔區(qū)域號和清潔時間段,設(shè)置卡用來存放模塊的授權(quán)碼等。
門鎖驅(qū)動程序根據(jù)上述卡片信息對門鎖電機驅(qū)動或?qū)⒃O(shè)置卡的設(shè)置參數(shù)寫入模塊內(nèi)的E2PROM。
門鎖狀態(tài)指示程序用來顯示門鎖的當前狀態(tài)。門鎖狀態(tài)使用一個蜂鳴器和一個雙色LED來表示。正常開門蜂鳴器和綠燈同時動作0.5秒;發(fā)生錯誤時蜂鳴器和紅燈同時動作0.2秒;設(shè)置卡設(shè)置成功后蜂鳴器和綠燈同時動作0.2秒;賓客在房間內(nèi)將門反鎖,綠燈每隔5秒閃爍一次;正常開門卡開門后5秒門未正常關(guān)閉,則蜂鳴器和紅燈每隔1秒動作一次;電池電壓低則蜂鳴器發(fā)出旋律可變的報警聲。
3.3 開關(guān)門記錄存儲與采集程序
系統(tǒng)擴展了一片AT24C64 E2PROM芯片用來存儲系統(tǒng)參數(shù)和開關(guān)門記錄。AT24C64的容量為8K字節(jié),其中前256字節(jié)(地址00H~FFH)用來存儲系統(tǒng)參數(shù),包括卡片密碼、樓號、樓層號、房間號等。AT24C64剩余的存儲空間(100H-1FFFH)用來存儲開門記錄,每條記錄的長度為16個字節(jié),其結(jié)構(gòu)如下:
00 01 04 05 0 A 0B 0C 0F
卡型占用一個字節(jié),記錄所刷卡片的類型;卡序列號記錄卡片的全球唯一4字節(jié)序列號;操作時間記錄刷卡的年、月、日、時、分、秒,占用6個字節(jié);操作類型記錄開關(guān)門的類型,包括正常開門、常開卡開門、常開卡關(guān)門、機械鑰匙開門等。一片AT24C64共可以存儲496條記錄。
門鎖中的記錄使用MF1 S70卡導(dǎo)出。S70卡的容量為4K字節(jié),除去制造商塊和每個區(qū)的區(qū)尾塊,每張S70卡可以記錄215條記錄,導(dǎo)出全部模塊中的記錄共需要3張S70卡。當用授權(quán)的S70卡刷卡時,門鎖控制模塊自動將E2PROM中記錄讀出,然后依次寫入S70卡的BLOCK中,每一條記錄對應(yīng)一個BLOCK。寫完第一張卡片后,模塊自動等待第二張卡片進入射頻場,直到寫完第三張卡片。如果等待超過10秒鐘未檢測到卡片,程序?qū)⒊瑫r退出。
審核編輯:湯梓紅
-
射頻
+關(guān)注
關(guān)注
104文章
5534瀏覽量
167459 -
RFID
+關(guān)注
關(guān)注
387文章
6090瀏覽量
237209 -
射頻識別技術(shù)
+關(guān)注
關(guān)注
0文章
95瀏覽量
16730 -
門鎖
+關(guān)注
關(guān)注
0文章
47瀏覽量
11903
發(fā)布評論請先 登錄
相關(guān)推薦
評論