唐凱
【摘要】隨著現(xiàn)代科技的發(fā)展,門禁控制系統(tǒng)在安全技術(shù)防范領(lǐng)域扮演著越來(lái)越重要的角色。其軟件系統(tǒng)的開(kāi)發(fā)和設(shè)計(jì)起著重要的作用。
1、前言
隨著現(xiàn)代科技的發(fā)展,門禁控制系統(tǒng)在安全技術(shù)防范領(lǐng)域扮演著越來(lái)越重要的角色,這是建立在先進(jìn)的計(jì)算機(jī)技術(shù),通信技術(shù)各非接觸的射頻識(shí)別技術(shù)之上,通過(guò)持有非接觸式IC卡來(lái)對(duì)人的進(jìn)出實(shí)施放行,拒絕和記錄等操作的智能化控制系統(tǒng)。非接觸式IC卡的核心技術(shù)為射頻識(shí)別,其環(huán)境適應(yīng)性強(qiáng),可全天候,無(wú)接觸地完成自動(dòng)識(shí)別功能。
本系統(tǒng)以89C51系列單片機(jī)STC89C52為控制核心,利用非接觸式射頻卡模塊讀取用戶手中的IC卡信息,識(shí)別成功后與系統(tǒng)存儲(chǔ)的IC卡庫(kù)數(shù)據(jù)進(jìn)行比對(duì)校驗(yàn),如果IC卡數(shù)據(jù)庫(kù)中有IC卡則證明IC卡合法,單片機(jī)通過(guò)控制繼電器控制電子鎖門禁開(kāi)啟和關(guān)閉。同時(shí)采用鍵盤(pán)作為IC卡錄入和刪除,LCD1602液晶作為人機(jī)交互顯示,讓系統(tǒng)具備更大的實(shí)用價(jià)值。
2、系統(tǒng)總程序設(shè)計(jì)
系統(tǒng)上電后首先進(jìn)行初始化,完成液晶、鍵盤(pán)等初始化任務(wù)。然后進(jìn)入死循環(huán),單片機(jī)控制IC卡模塊時(shí)時(shí)掃描判斷是否有IC靠近,當(dāng)靠近時(shí),啟動(dòng)IC卡讀取程序,識(shí)別IC卡卡片信息后,與AT24C02芯片內(nèi)存儲(chǔ)的IC卡數(shù)據(jù)庫(kù)信息進(jìn)行比對(duì),如果校驗(yàn)成功則控制門禁開(kāi),反之則不開(kāi)門禁。整個(gè)過(guò)程LCD1602液晶顯示操作過(guò)程及數(shù)據(jù)信息。
3、IC卡讀寫(xiě)子程序設(shè)計(jì)
3.1 Mifare射頻卡技術(shù)參數(shù)
(1)容量為8K位(bits)1K字節(jié)(bytes)EEPROM
(2)分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位
(3)每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問(wèn)控制
(4)每張卡有唯一序列號(hào),為32位
(5)具有防沖突機(jī)制,支持多卡操作
(6)無(wú)電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路
(7)數(shù)據(jù)保存期為10年,可改寫(xiě)10萬(wàn)次,讀無(wú)限次
(8)工作溫度:-20℃~50℃(濕度為90%)
(9)工作頻率:13.56MHZ
(10)通信速率:106 KBPS
(11)讀寫(xiě)距離:10 cm以內(nèi)(與讀寫(xiě)器有關(guān))
3.2 IC卡讀寫(xiě)卡的過(guò)程一般包含如下幾個(gè)步驟:
(1)復(fù)位應(yīng)答(Answer to request)
射頻卡的通訊協(xié)議和通訊波特率是定義好的,當(dāng)有卡片進(jìn)入讀寫(xiě)器的操作范圍時(shí),讀寫(xiě)器以特定的協(xié)議與它通訊,從而確定該卡是否為M1射頻卡,即驗(yàn)證卡片的卡型。
(2)防沖突機(jī)制(Anticollision Loop)
當(dāng)有多張卡進(jìn)入讀寫(xiě)器操作范圍時(shí),防沖突機(jī)制會(huì)從其中選擇一張進(jìn)行操作,未選中的則處于空閑模式等待下一次選卡,該過(guò)程會(huì)返回被選卡的序列號(hào)。
(3)選擇卡片(Select Tag)
選擇被選中的卡的序列號(hào),并同時(shí)返回卡的容量代碼。
(4)三次互相確認(rèn)(3 Pass Authentication)
選定要處理的卡片之后,讀寫(xiě)器就確定要訪問(wèn)的扇區(qū)號(hào),并對(duì)該扇區(qū)密碼進(jìn)行密碼校驗(yàn),在三次相互認(rèn)證之后就可以通過(guò)加密流進(jìn)行通訊。(在選擇另一扇區(qū)時(shí),則必須進(jìn)行另一扇區(qū)密碼校驗(yàn)。)
IC卡讀寫(xiě)流程圖如圖所示
3.3 IC卡讀寫(xiě)操作流程圖
4.按鍵程序的設(shè)計(jì)
按鍵作為人機(jī)交互的方式,在該設(shè)計(jì)中起著至關(guān)重要的作用。實(shí)現(xiàn)IC卡的錄入與刪除。當(dāng)讀卡模塊檢測(cè)到該IC卡時(shí),如果該IC卡沒(méi)有被錄入,當(dāng)有鍵按下時(shí),則該卡被記錄,擁有進(jìn)出該門禁的權(quán)限;如果該IC卡被錄入了,當(dāng)有鍵按下時(shí),則該卡被刪除,被取消進(jìn)出權(quán)限。
圖4.3 鍵盤(pán)子程序流程圖
本系統(tǒng)用到了5個(gè)按鍵,它們的功能分別是:調(diào)節(jié)時(shí)間的時(shí)鐘加、時(shí)鐘減、分鐘加、分鐘減和添加/刪除用用戶卡。它們采用的是獨(dú)立按鍵的連接方式,一端連接地,一端連在單片機(jī)的P1.0到P1.4口上。它們的程序?qū)崿F(xiàn)是:首先給P1.0到P1.4口高電平,然后掃描這些I/O口上是否有電平變化,當(dāng)它們有變化是說(shuō)明有鍵被按下,最后根據(jù)是哪個(gè)I/O口的電平變化了判斷是哪個(gè)鍵被按下。它的程序流程圖如圖4.3所示
5. LCD1602液晶顯示子程序
1602液晶是字符型液晶,它的內(nèi)部自帶字符庫(kù),它可以寫(xiě)兩行的字符,同時(shí)每行可以顯示16個(gè)字符。在這里要顯示的是實(shí)時(shí)時(shí)間,IC的編號(hào)和權(quán)限以及一些提示信息。
LCD1602的操作步驟:初始化;寫(xiě)命令(RS=L)設(shè)置顯示坐標(biāo);寫(xiě)數(shù)據(jù)(RS=H)。根據(jù)其操作步驟設(shè)計(jì)LCD1602液晶顯示程序流程圖如圖4.4。
從此流程圖我們得出:LCD液晶顯示屏在寫(xiě)顯示程序的時(shí)候,我們要先寫(xiě)命令,再設(shè)定字符顯示和漢字的位置,最后寫(xiě)數(shù)據(jù),在每寫(xiě)一次命令或數(shù)據(jù)都需要判斷液晶是否忙。打開(kāi)液晶顯示屏進(jìn)入初始化狀態(tài),開(kāi)始寫(xiě)命令,首先判斷LCD是否忙,如果是P0.7=0,那么進(jìn)入下一步寫(xiě)命令,如果不是P0.7=0,返回LCD是否忙。
6 電子鎖門禁開(kāi)關(guān)子程序設(shè)計(jì)
本系統(tǒng)的電子鎖門禁開(kāi)關(guān),單片機(jī)只需要輸出高低電平即可。當(dāng)輸出高電平時(shí)門禁關(guān)、低電平門禁開(kāi)。程序流程如圖4.5所示。
7 報(bào)警子程序設(shè)計(jì)
本系統(tǒng)的報(bào)警提示是通過(guò)蜂鳴器和LED來(lái)實(shí)現(xiàn)的,系統(tǒng)中用的是無(wú)源蜂鳴器。無(wú)涯蜂鳴器要給脈沖信號(hào)才能實(shí)現(xiàn)鳴叫,在程序的設(shè)計(jì)中,通過(guò)定時(shí)器產(chǎn)生脈沖信號(hào)來(lái)控制蜂鳴器報(bào)警。根據(jù)報(bào)警電路原理,當(dāng)讀卡模塊檢測(cè)到有非法卡進(jìn)入,單片機(jī)輸出一個(gè)報(bào)警信號(hào),開(kāi)啟定時(shí)器產(chǎn)生脈沖信號(hào)給蜂鳴器報(bào)警。
報(bào)警子程序的流程圖如圖4.6所示。
8小結(jié)
在進(jìn)行程序設(shè)計(jì)的時(shí)候,各個(gè)模塊的子程序是比較好書(shū)寫(xiě)的,但是各個(gè)模塊之間的數(shù)據(jù)傳輸,什么時(shí)候該模塊工作,調(diào)用該模塊的函數(shù),需要對(duì)系統(tǒng)有一個(gè)總的了解和把握,這是軟件設(shè)計(jì)中的最大的一個(gè)問(wèn)題。