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