磁卡門禁控制器的如何進行設(shè)計
文章出處:http://www.fang1.net 作者:高澤涵,黃嵐 人氣: 發(fā)表時間:2010年08月05日
隨著“金融電子化”的高速發(fā)展,尤其“金卡工程”的實施,使卡基應(yīng)用系統(tǒng)越來越深入到各種管理控制系統(tǒng)。其中“卡基門禁管理控制系統(tǒng)”已成為銀行、商店、停車場、游樂場、圖書館、實驗室、倉庫等需要對出入進行控制管理的部門和機構(gòu)、出入管理(即門禁)控制系統(tǒng)的重要方式。本文介紹的門禁控制器具有以下基本功能:
(1)可通過磁卡閱讀器(也可以是任何具有RS232接口的條碼閱讀器或Ic卡讀寫器)讀取磁卡第二、第三磁道前18位信息,當(dāng)磁卡信息與控制器準(zhǔn)人密碼符合時,自動開啟門控系統(tǒng)。
(2)可自動存儲最后900條開鎖記錄,記錄內(nèi)容為開鎖時間和表示進入者身份的l8位磁卡信息。
(3)對每天24小時以1O分鐘為單位,可任意將門禁狀態(tài)劃分為“常開”、“常關(guān)”和 自動”三個時區(qū)。
(4)可任意修改100條長度為18位的準(zhǔn)人密碼,并可設(shè)置三條主人密碼(允許持主人卡者開鎖不受時區(qū)限制)。準(zhǔn)人密碼由0~9十個數(shù)字和通兌符“*”組成。
(5)允許以秒為單位對開鎖時間、關(guān)門到位延時時間、開門超時時間、門故障報警時間實現(xiàn)編程控制(控制范圍1~99秒)。
(6)能通過標(biāo)準(zhǔn)RS232接口,接受PC機或?qū)S镁幊唐鲗刂破鬟M行編程控制和管理信息提取。并可由PC機對多個控制器組成的網(wǎng)絡(luò)型門禁控制進行系統(tǒng)管理。
圖1 硬件框圖
2 控制器硬件設(shè)計
門禁控制器硬件結(jié)構(gòu)框圖如圖l所示。由單片機、門鎖驅(qū)動、門狀態(tài)接口、讀卡器接口、編程器接口、RS232擴展、密碼存儲、開鎖記錄、地址譯碼等單元電路組成。門禁控制器電路原理如圖2所示。
門禁控制器主要有“讀卡”和“編程”兩個基本工作模式,當(dāng)模式選擇開關(guān)K2斷開時控制器為讀卡工作模式,讀卡模式下可編程門禁控制器與相應(yīng)的卡閱讀器(磁條閱讀器或條碼閱讀器)和電動門鎖配合,可實現(xiàn)門禁控制管理。當(dāng)模式選擇開關(guān)K2閉合時控制器工作在編程模式下,此時控制器能接受PC機或?qū)S镁幊唐鲗ζ溥M行編程控制和管理信息提取。單元電路基本工作原理如下:
圖2 門禁控制器電路原理圖
單片機選用低功耗的CMOS器件AT89C51,它具有4K字節(jié)ROM、128字節(jié)RAM、32條I/O接口(P0、Pl、P2、P3)、2個16位定時/汁數(shù)器、一個全雙工串行接口、一個包含5個中斷源的兩級中斷系統(tǒng)以及片內(nèi)振蕩器和時鐘電路。
密碼存儲、開鎖記錄、地址譯碼部分,采用兩片可讀寫EzPROM存儲器28C64和一片數(shù)據(jù)鎖存器573在讀/寫線和地址譯碼電路控制下,通過數(shù)據(jù)口P0和擴展的地址口P0、P2使控制器具有可任意編寫100條長度l8位的許人密碼,可自動存儲最后900條長度22位的開鎖記錄的功能。密碼區(qū)起始地址為#2000H,開鎖信息記錄區(qū)起始地址為#2800H。
RS232擴展、讀卡器接口和編程器接口組成控制器的串行口驅(qū)動電路,由于AT89C51只有一個串行接口,但門禁控制器要求與兩個設(shè)備實現(xiàn)通訊,即在讀卡模式下控制器應(yīng)與磁條閱讀器通訊,而在編程模式下控制器應(yīng)與PC機或?qū)S镁幊唐魍ㄓ崱榇?,電路采用模式選擇開關(guān)K2、RS232傳輸驅(qū)動芯片ICL232和多路電子開關(guān)CD4066組成串行口擴展電路.模式選擇開關(guān)K2決定P3、2口的電平。以軟件查詢P3.2口(P3.2=1為讀卡模式P3.2=0為編程模式)的方式,并通過控制P3.3口選通與讀卡器或編程器進行數(shù)據(jù)通訊。且設(shè)置AT89C51串行口在讀卡模式時為低級中斷方式,串行口工作方式1。波特率由定時計數(shù)器T1工作方式2和晶振頻率決定,取T1為八位自動裝入常數(shù)#00E6H晶振6MI-IZ時,串口波特率為1200bit/s。每當(dāng)發(fā)生讀卡操作,程序即轉(zhuǎn)去執(zhí)行讀卡中斷程序。
門鎖驅(qū)動和門狀態(tài)接口組成門禁控制器基本接口電路,門禁控制器有J1-J18共l8個對外接121。其中,J1、J2為DC12V輸入電源接121。J17、J18為D v輸出電源接口。J3、J4、J5為門鎖控制繼電器輸出接121,由P1.0輸出低電平有效控制門鎖開啟。J6允許進入、J7出門有效、J8門故障報警是三個TrL電平輸出接口,高電平有效.分別由P1.1、P1.2、P1.3低有效控制。J9門鎖到位信號、J10出門開關(guān)是兩個光隔輸入接口,可輸入DCSV~12V開關(guān)信號,并分別使P1.5、P1.6低有效。Jll開門輔助輸出接口,TrL信號低有效,由P1.7輸出低電平有效門控制。J12、J13為劇卡器RS232接口。J14、J15為PC機或?qū)S镁幊唐鱎S232接口。J16為信號公用地線。
控制器其他電路:電路中采用4_8v后備電池對單片機89C51單獨供電,正常時后備電源開關(guān)K1接通,外接電源對系統(tǒng)供電且向后備電池充電,當(dāng)外接電源臨時掉電時電池僅對單片機供電,以保證實時時鐘正常運行和保存用戶基本參數(shù),使控制器在外接電源恢復(fù)正常時無需重新編程即可正常開始工作。
3 控制器軟件設(shè)計
控制器軟件的主要功能有兩部分,一是讀取磁卡器的信息與準(zhǔn)人密碼進行比較,當(dāng)符合條件時開啟門鎖。二是與PC機或?qū)S镁幊唐魍ㄐ?,完成修改?zhǔn)人者信息、更改管理時區(qū)、更改門控狀態(tài)、確定當(dāng)前時間等編程工作??刂破鬈浖鞒倘鐖D3所示。
圖3 控制器軟件流程圈
(1)主程序:主程序包括系統(tǒng)初始化、工作模式選擇和時區(qū)劃分三個模塊。
初始化模塊完成對系統(tǒng)的各種參數(shù)設(shè)置。如實時時鐘定時計數(shù)器工作方式設(shè)置、串行ISl工作方式和波特率設(shè)置、數(shù)據(jù)緩沖區(qū)設(shè)置和單片機各種工作參數(shù)的設(shè)置等。工作模式選擇模塊.根據(jù)有關(guān)輸人ISl信息確定控制器工作在“出門狀態(tài)”、“讀卡模式”或“編程模式”狀態(tài)。出門狀態(tài)由出門按鈕選定,此時控制器轉(zhuǎn)去執(zhí)行開門和關(guān)門子程序,發(fā)出開門信號并禁止讀卡和編程響應(yīng),直至門恢復(fù)關(guān)閉為止。
讀卡模式由模式選擇開關(guān)K2斷開選定,讀卡模式下控制器RS232接ISl與讀卡器連接,軟件允許系統(tǒng)響應(yīng)讀卡中斷,并執(zhí)行讀卡中斷程序。編程模式由模式選擇開關(guān)K2接通選定,編程模式下控制器RS232接VI與PC機或?qū)S镁幊唐鬟B接,軟件轉(zhuǎn)去運行編程子程序,并禁止讀卡和不響應(yīng)出門信號,直至按照PC機或?qū)S镁幊唐髦噶钔顺鼍幊虪顟B(tài)為止。
時區(qū)劃分模塊,將每周分為星期一~星期五、星期六和星期日三個工作時間段,并且通過編程將每天24小時以10分鐘為單位,可任意設(shè)置為“常開”、“常關(guān)”和“自動”三個工作時區(qū)。在常開時區(qū)內(nèi)門鎖始終開啟,在常關(guān)時區(qū)內(nèi)只允許符合三條主人密碼的磁卡開啟門鎖.在自動時區(qū)內(nèi)允許符合準(zhǔn)人密碼的磁卡開啟門鎖。
(2)實時時鐘中斷程序:設(shè)置AT'89C51的定時計數(shù)器TO.工作方式1為高級中斷,當(dāng)晶振頻率為6MHZ,定時常數(shù)為#3CBOH,將產(chǎn)生0.1秒定時中斷。在實時時鐘中斷程序中對0、1秒、秒、分、時、星期和月份進行計時并存人相應(yīng)單元。
(3)讀卡中斷程序:讀卡中斷程序包括讀卡、數(shù)據(jù)處理和糾錯處理三個模塊。讀卡模塊的功能是當(dāng)程序響應(yīng)讀卡器中斷后,即將讀卡器發(fā)來的磁卡中第二磁道和第三磁道前l(fā)8位主賬號數(shù)據(jù)信息分別讀人相應(yīng)的緩沖區(qū)。
數(shù)據(jù)處理模塊中,分別將 、三磁道數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)逐個取出,并與密碼區(qū)中各條準(zhǔn)^密碼信息逐位進行比較,全部相符時即將當(dāng)前時間和進^者18位主帳號寫^開鎖信息區(qū),同時轉(zhuǎn)向門狀態(tài)控制子程序。
糾錯模塊的功能是,當(dāng)發(fā)現(xiàn)無論是硬件或軟件故障造成通訊信號丟失時,都將退出讀卡中斷程序,返回主程序以免程序陷^死循環(huán)。
(4)門狀態(tài)控制程序:包括自動開門、關(guān)門兩個子程序。在開門子程序中給出開門驅(qū)動信號,并按照編程給定的開門時間,維持開門驅(qū)動信號。
在關(guān)門子程序中首先檢測門鎖到位信號,確認(rèn)門鎖到位后發(fā)出關(guān)閉開門驅(qū)動信號,否則將保持開門驅(qū)動信號。當(dāng)開門時間超過編程給定的開門超時時間時,控制器將按編程給定的報警時間長短發(fā)出門故障報警信號,直至門鎖到位信號得到確認(rèn)。
(5)編程通訊程序:當(dāng)模式選擇開關(guān)K2接通,主程序查詢到P3.2=0時,控制器進人編程工作模式。在編程模式下控制器與PC機或?qū)S镁幊唐魍ㄟ^RS232接VI通訊可完成設(shè)置準(zhǔn)人密碼,設(shè)置當(dāng)前時間,設(shè)置門狀態(tài)參數(shù),設(shè)置編程密碼,設(shè)置工作時區(qū),讀取開鎖記錄等工作??刂破餍栌蒔C機或?qū)S镁幊唐鞯闹噶钔顺鼍幊棠J健?/P>