基于ZLG500的智能卡門禁系統(tǒng)設(shè)計
首先,在發(fā)卡系統(tǒng)(中央控制PC機(jī))里把用戶的卡號及個人信息輸入系統(tǒng)數(shù)據(jù)庫,并將該卡號作為合法卡號下載給所有門禁機(jī)。當(dāng)有1張M1卡在門禁機(jī)的有效工作范圍內(nèi)時,系統(tǒng)會自動向卡發(fā)出命令,卡接收到命令后向門禁機(jī)反饋其SN。門禁機(jī)判斷收到的卡號是否合法,合法則驅(qū)動電磁門鎖開門,并實時上傳其開門記錄;如果是非法卡(未經(jīng)授權(quán)或已掛失的卡)則拒絕開門并上傳報警信息。只有最高授權(quán)者(掌握授權(quán)密碼)才可以發(fā)管理員卡,管理員必須用管理員卡方可登錄發(fā)卡系統(tǒng)進(jìn)行發(fā)卡及下傳合法卡號、掛失、解掛、下傳黑名單等操作。
通過AT89C52對ZLG500的控制完成對卡的讀寫。系統(tǒng)外圍配有RS232轉(zhuǎn)RS485接口能與PC機(jī)互連成網(wǎng)絡(luò),可以完成讀卡、顯示卡號和出入時間、身份識別、開鎖以及保存和上傳出入記錄、下載黑名單、設(shè)置開門權(quán)限等功能。
門禁機(jī)模塊的主控軟件主要完成門禁機(jī)模塊的初始化、卡的識別、開啟門鎖及保存有關(guān)數(shù)據(jù)和數(shù)據(jù)傳輸?shù)任宕蠊δ?。其總體工作流程如圖4所示。
2.2 主控模塊
由圖3可以看出,智能卡門禁系統(tǒng)中主控模塊主要由MCU(AT89C52)、ZLG500、復(fù)位電路、時鐘電路、數(shù)據(jù)存儲接口電路、鍵盤與顯示接口電路及電鎖等幾部分組成。可以看出MCU除了完成對ZLG500讀寫模塊的控制外,還要承擔(dān)其他功能的控制,主要包括4部分:數(shù)據(jù)存儲和數(shù)據(jù)傳輸部分、實時時鐘和掉電保護(hù)部分、鍵盤和顯示部分、驅(qū)動控制部分。
2.2.1 數(shù)據(jù)存儲和數(shù)據(jù)傳輸模塊
各門禁點的出入記錄可采用實時上傳或定時采集的方式從門禁機(jī)傳輸給中央數(shù)據(jù)庫,前者對系統(tǒng)網(wǎng)絡(luò)速度要求較高,當(dāng)網(wǎng)絡(luò)堵塞時有丟失數(shù)據(jù)的可能。本系統(tǒng)采用出入記錄暫時存儲在門禁機(jī)中,每隔一段時間(例如每周一次)上傳給中央數(shù)據(jù)庫的方式。為此要求門禁機(jī)具備一定容量的存儲器,用于暫存門禁數(shù)據(jù)以及由中央數(shù)據(jù)庫下載的授權(quán)卡號。門禁機(jī)存儲器的容量取決于一個門禁記錄的長度、系統(tǒng)的卡容量以及定時上傳周期內(nèi)最大的刷卡次數(shù)等,通常應(yīng)留有一定的余量以免由于超出存儲容量而丟失數(shù)據(jù)。本系統(tǒng)采用AT24c256作為門禁機(jī)的存儲器,其存儲容量達(dá)64 KB,劃分成2個區(qū):一個區(qū)用來存儲所讀取的記錄,另一個區(qū)用來存儲上位機(jī)下載的授權(quán)卡號。門禁機(jī)存儲器模塊的電路原理如圖5所示。
AT24C256是Atmel公司的具有I2C總線結(jié)構(gòu),可電擦寫與編程的只讀存儲芯片(EEPROM)。MCU對AT24C256的讀寫必須遵循I2C總線傳輸?shù)臅r序要求,與AT24C01基本一致,在此不再贅述。
對于1個單一的讀寫器來講,自身的數(shù)據(jù)存儲是有限的。讀寫器外帶的數(shù)據(jù)存儲器主要作為數(shù)據(jù)的臨時存儲,對于大量的、需要長期保存的數(shù)據(jù),一般是通過有線或無線,甚至是網(wǎng)絡(luò)系統(tǒng)傳輸?shù)街骺赜嬎銠C(jī)中進(jìn)行保存。
2.2.2主模塊的軟接口
下面以主模塊中ZLG500與MCU(AT89C52)的通信為例來介紹智能卡門禁系統(tǒng)中主模塊的軟接口。ZLG500初始化的子程序如下:
上述程序中CONFIG子程序為RC500的復(fù)位和配置子程序,是由MCU向ZLG500發(fā)出的不帶數(shù)據(jù)的命令程序;REQUEST子程序是MCU向ZLG500發(fā)出的帶1個字節(jié)數(shù)據(jù)的命令程序,主要是檢查有效范圍內(nèi)是否有卡存在;ANTICOLL子程序是防沖突操作,必須在執(zhí)行RE―QUEST命令后立即執(zhí)行。
評論