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