物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊

一種智能門禁控制器的軟件設(shè)計(jì)

作者:張愛華,丁淑敏
來源:RFID世界網(wǎng)
日期:2007-03-08 17:04:08
摘要: 本文介紹了智能門禁控制器的工作原理和軟件設(shè)計(jì),該系統(tǒng)采用自識別技術(shù)識別用戶身份和權(quán)限,依此控制門的開啟或關(guān)閉,同時形成事件上傳到上位機(jī),實(shí)現(xiàn)管理中心對各門的實(shí)時管理,并具有異常情況報警功能. 本系統(tǒng)已在北京某小區(qū)穩(wěn)定運(yùn)行.

 智能門禁控制系統(tǒng)是保安監(jiān)控系統(tǒng)的一個重要組成部分. 在機(jī)關(guān)單位、工廠、公司等多種場所,為了工作、生活的安全,需要進(jìn)行封閉式管理. 傳統(tǒng)的方法是
由警衛(wèi)人員對進(jìn)出口進(jìn)行驗(yàn)證或登記后才放行,這種方法效率低,而且占用人力[1 ] . 本文介紹一種智能門禁控制器的軟件設(shè)計(jì).

1  系統(tǒng)組成
門禁控制系統(tǒng)是在建筑物內(nèi)的主要管理區(qū)的出入口、電梯廳、主要設(shè)備控制中心機(jī)房、貴重物品庫房等重要部位的通道口安裝門磁開門、電控鎖、讀卡器等控制裝置,系統(tǒng)框圖如圖1 所示. 由中心控制室監(jiān)控,系統(tǒng)采用計(jì)算機(jī)多重任務(wù)的處理,能夠?qū)Ω魍ǖ揽诘奈恢?、通過對象及通過時間等進(jìn)行實(shí)時控制,以適應(yīng)小區(qū)、辦公樓的公共安全管理.

2  控制器軟件的設(shè)計(jì)
門禁系統(tǒng)的主要工作過程是:先從讀卡器讀取卡號,并獲得讀卡器號,接著根據(jù)卡號和讀卡器號到持卡人信息表、讀卡器表、群組表里去檢索信息,然后根據(jù)門屏蔽字查門的時段表,再查門的時段屬性,最后根據(jù)所得信息發(fā)送命令并保存事件信息. 為此,門禁系統(tǒng)可劃分為五個表: (以一個能容納20 000 人,1 000 個組,32 個門,每門64 個時段的控制器來設(shè)計(jì)) .

(1) 持卡人信息表:



其中,卡號為一個6 位的十進(jìn)制數(shù),卡類型包括卡片種類和卡片狀態(tài)[2 ] . 卡片種類(級別) 分為四種:

普通卡———受時限(日期或次數(shù)) 、時段限制的卡片;

巡更卡———只記錄讀卡時間無其它功能的卡片;

超級卡———受時限(日期或次數(shù)) 限制,不受時段限制的卡片;

維護(hù)卡———除具有普通卡的功能,還能用于解除控制器防拆報警使之恢復(fù)正常工作狀態(tài)的卡片.

卡片狀態(tài)有5 種:

正??ㄆ哂姓9πУ目ㄆ? 掛失卡片———聲明遺失的卡片;禁用卡片———被停止使用的卡片;失效卡片———超過使用時限的卡片;待用卡片———
未到啟用日期的卡片.

群組號表示該持卡人屬于哪個群組. 時限有限天、限次和既限天又限次3 種. 其中時限中的限次和持卡人當(dāng)前位置在程序中動態(tài)變化,其它項(xiàng)在程序中固定不變. 以上每個持卡人信息占用16 個字節(jié),按10 000人計(jì)算,共占用160 K字節(jié).

 (2) 群組表: (平均10 人為1 組,共2 000 組)



群組表主要是用于確定每一個組所能出入的有效門和有效時段. 包括以下幾個部分:

門屏蔽字節(jié):每1bit 代表1 個門的屏蔽位,1 代表此門有效,表示本群組能使用此門. 0 表示無效,本群組不能使用此門. 共4 字節(jié). 時段屏蔽字節(jié):同上,每1bit 代表1 個時段有效或無效,每個門最大有64 個時段,占用8 字節(jié). 最多32個門,占用256 字節(jié).

以上每個組占用260 字節(jié),1 000 個組共占用260K字節(jié).

(3) 時段表: (每天8 個時段,8 天(1 周7 天+ 節(jié)假日1 天) )

時段表用于記錄具體的每一時段的起始時間和終止時間,以及每一時段的屬性. 包括以下部分:



以上每個時段占用6 個字節(jié),每天8 個時段,8天,32 個門,共用12 K字節(jié).



(4) 讀卡器表: (最大64 個讀卡器)

讀卡器號用于讀卡器地址和門號的對照;物理源地址表示持卡人所在區(qū)的區(qū)號;目的地址表示持卡人要前往區(qū)的區(qū)號;邏輯源地址是在要防反傳時用的,表示持卡人可直接從這些區(qū)到該讀卡器讀卡. 每1bit 表示一個區(qū),為1 時表示有效,為0 表示無效,最多可表示64 個區(qū).

(5) 事件表:

事件表用于存放每一條事件信息. 包括以下幾部分:

卡號(3 個字節(jié))  門地址(1 個字節(jié))  事件種類(1 個字節(jié))  讀卡時刻

其中,門地址一個字節(jié)可表示250 個門(只用32個門) ;

事件種類可表示32 種事件,現(xiàn)已定義的事件如下:

讀卡引發(fā)事件:1. 介質(zhì)出門;2. 介質(zhì)開門;3. 維護(hù);4. 超時限;5. 巡更;6. 掛失

非讀卡引發(fā)事件:7. 非法開門;8. 遙控開門;9. 機(jī)箱打開;10. 機(jī)箱關(guān)閉;11. 讀卡器防拆; 12. 讀卡器恢復(fù);13. 設(shè)防;14. 撤防;15. 電池失效;16. 電池投入;17.市電掉電;18. 進(jìn)入常開;19. 退出常開;20. 超時未關(guān);21. 關(guān)門.

每條事件消息將占用6 個字節(jié)(不超過4 min) ,或12 個字節(jié)(超過4 min) ;

讀卡時刻的表示方法如下:

讀卡時刻字節(jié)存儲的是本次讀卡時刻和上一次讀卡時刻的差值,若差值大于254 (4. 2 min) ,則將此字節(jié)置為255 (FF) ,同時在下一個連續(xù)的6 個字節(jié)存放本次讀卡的絕對時刻(年月日時分秒) .

3  軟件的實(shí)現(xiàn)

門禁系統(tǒng)的軟件主要由管理中心計(jì)算機(jī)上的軟件和門禁控制器上的軟件組成. 為敘述方便,以下門禁控制器簡稱為門控器.

在門禁系統(tǒng)中,門控器上的軟件所執(zhí)行的主要功能有建表,添加、更改和刪除表內(nèi)容,對讀卡事件做判斷處理和存儲各種事件. 與門禁系統(tǒng)有關(guān)的任務(wù)有門禁系統(tǒng)任務(wù)(也就是讀卡事件處理任務(wù)) 、網(wǎng)絡(luò)數(shù)據(jù)接收任務(wù)、數(shù)據(jù)存儲任務(wù)、系統(tǒng)間聯(lián)動任務(wù),還有數(shù)據(jù)采集的中斷服務(wù)程序. 另外,還有個根任務(wù),它執(zhí)行硬件設(shè)備的初始化,定義幾個表的結(jié)構(gòu)數(shù)組,創(chuàng)建各任務(wù)、信號量、消息隊(duì)列、實(shí)時數(shù)據(jù)緩沖池. 根任務(wù)完成這些事情后把自己刪除掉,使當(dāng)前優(yōu)先級最高的就緒任務(wù)進(jìn)入運(yùn)行態(tài)[3 ] .

3. 1  讀卡事件處理任務(wù)
讀卡事件處理任務(wù)的過程:首先,采集數(shù)據(jù)的中斷服務(wù)程序發(fā)來的事件標(biāo)志激活該任務(wù),從緩沖池中讀取卡號和讀卡器號,或者還有密碼;其次,根據(jù)卡號、讀卡器號和當(dāng)前的讀卡時間,到持卡人信息表、讀卡器表、群組表里去檢索信息;然后,根據(jù)群組表里的門屏蔽字去查門的時段表、門的時段屬性;最后,根據(jù)所得信息執(zhí)行命令并保存事件內(nèi)容、修改使用次數(shù)和人員位置數(shù)據(jù)等. 該任務(wù)的優(yōu)先級為200 ,用獲取信號量的辦法與網(wǎng)絡(luò)接收數(shù)據(jù)任務(wù)互斥開. 因?yàn)樵撊蝿?wù)涉及到幾個表,數(shù)據(jù)量比較大,所以堆棧空間較大,為500 K.通過發(fā)巡更事件與巡更任務(wù)通信[3 ] . 超級卡程序比普通卡的程序少一項(xiàng)時段判斷的過程,其它的與普通卡程序一樣;維護(hù)卡程序?qū)崿F(xiàn)解除門控器防拆報警使之恢復(fù)正常工作狀態(tài);巡更卡程序發(fā)送巡更標(biāo)志給巡更任務(wù). 關(guān)于是否違反防反傳規(guī)定,要視具體工程和客戶的要求而定.

3. 2  巡更任務(wù)
操作員在監(jiān)控管理中心設(shè)置巡更路線和巡更時間表,而后下傳到門控器上. 巡更任務(wù)通過接收讀卡事件處理任務(wù)發(fā)來的巡更事件標(biāo)志,根據(jù)當(dāng)前時間和巡更時間表,判斷巡更是否到位,并向監(jiān)控管理中心計(jì)算機(jī)發(fā)送信息,決定是否報警. 巡更站就是讀卡機(jī),在規(guī)定的時刻和誤差范圍內(nèi)讀卡,表示巡更到位,否則表示巡更不到位. 巡更任務(wù)的優(yōu)先級較低, 取100 , 堆棧取6 000 ,該任務(wù)可搶占,時間片為50 ns.

3. 3  網(wǎng)絡(luò)數(shù)據(jù)接收任務(wù)
網(wǎng)絡(luò)數(shù)據(jù)接收任務(wù)的功能為接收管理中心計(jì)算機(jī)或其它門控器發(fā)來的數(shù)據(jù)和命令,根據(jù)這些命令和數(shù)據(jù),執(zhí)行相應(yīng)的建表、添加、更改、刪除、維護(hù)和讀事件等操作. 該任務(wù)的優(yōu)先級取190 ,堆棧設(shè)為600 K,可搶占. 采用客戶/ 服務(wù)器的通信模式,接受數(shù)據(jù)的門控器為服務(wù)器,發(fā)送數(shù)據(jù)的管理中心計(jì)算機(jī)為客戶.為了通信方便,我們自己定義了一套數(shù)據(jù)傳輸?shù)母袷?具體格式如下:



因?yàn)椴荒軐lash 存儲器進(jìn)行單個字節(jié)的擦除和改寫,只能一個一個模塊整塊擦除,再重新寫,所以門禁控制器上的數(shù)據(jù)表只采用新建和重建兩個命令(flash 的擦除次數(shù)可達(dá)100 萬次) .

3. 4  數(shù)據(jù)存儲任務(wù)和系統(tǒng)間聯(lián)動任務(wù)
數(shù)據(jù)存儲任務(wù)的主要功能是定期把SDRAM 里的事件數(shù)據(jù)保存到flash 存儲器和管理計(jì)算機(jī)上. 系統(tǒng)間聯(lián)動任務(wù)主要是響應(yīng)其它系統(tǒng)的要求,比如火災(zāi)報警系統(tǒng)報警時要求把有關(guān)的門打開,而安全防范系統(tǒng)在遇盜時,需把有關(guān)的門關(guān)閉. 該任務(wù)的優(yōu)先級要求比較高,取230.

持卡人信息表、群組表、時段屬性表和讀卡器表的數(shù)據(jù)結(jié)構(gòu)定義的程序清單如下

4  結(jié) 語
本文主要闡述了門禁控制器軟件的設(shè)計(jì)及實(shí)現(xiàn).詳細(xì)說明了門禁控制系統(tǒng)的組成、基本結(jié)構(gòu)、工作方式及功能功述;系統(tǒng)分析了門禁控制系統(tǒng)的工作原理. 門禁控制器系統(tǒng)應(yīng)用于出入口管理系統(tǒng),提供了較高的安防保障,并日益被推廣.