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