智能門禁控制系統是保安監控系統的一個重要組成部分. 在機關單位、工廠、公司等多種場所,為了工作、生活的安全,需要進行封閉式管理. 傳統的方法是 由警衛人員對進出口進行驗證或登記后才放行,這種方法效率低,而且占用人力. 本文介紹一種智能門禁控制器的軟件設計. 1 系統組成 門禁控制系統是在建筑物內的主要管理區的出入口、電梯廳、主要設備控制中心機房、貴重物品庫房等重要部位的通道口安裝門磁開門、電控鎖、讀卡器等控制裝置,系統框圖如圖1 所示. 由中心控制室監控,系統采用計算機多重任務的處理,能夠對各通道口的位置、通過對象及通過時間等進行實時控制,以適應小區、辦公樓的公共安全管理. 2 控制器軟件的設計 門禁系統的主要工作過程是:先從讀卡器讀取卡號,并獲得讀卡器號,接著根據卡號和讀卡器號到持卡人信息表、讀卡器表、群組表里去檢索信息,然后根據門屏蔽字查門的時段表,再查門的時段屬性,最后根據所得信息發送命令并保存事件信息. 為此,門禁系統可劃分為五個表: (以一個能容納20 000 人,1 000 個組,32 個門,每門64 個時段的控制器來設計) . (1) 持卡人信息表: 其中,卡號為一個6 位的十進制數,卡類型包括卡片種類和卡片狀態[2 ] . 卡片種類(級別) 分為四種: 普通卡———受時限(日期或次數) 、時段限制的卡片; 巡更卡———只記錄讀卡時間無其它功能的卡片; 超級卡———受時限(日期或次數) 限制,不受時段限制的卡片; 維護卡———除具有普通卡的功能,還能用于解除控制器防拆報警使之恢復正常工作狀態的卡片. 卡片狀態有5 種: 正常卡片———具有正常功效的卡片; 掛失卡片———聲明遺失的卡片;禁用卡片———被停止使用的卡片;失效卡片———超過使用時限的卡片;待用卡片——— 未到啟用日期的卡片. 群組號表示該持卡人屬于哪個群組. 時限有限天、限次和既限天又限次3 種. 其中時限中的限次和持卡人當前位置在程序中動態變化,其它項在程序中固定不變. 以上每個持卡人信息占用16 個字節,按10 000人計算,共占用160 K字節. (2) 群組表: (平均10 人為1 組,共2 000 組) 群組表主要是用于確定每一個組所能出入的有效門和有效時段. 包括以下幾個部分: 門屏蔽字節:每1bit 代表1 個門的屏蔽位,1 代表此門有效,表示本群組能使用此門. 0 表示無效,本群組不能使用此門. 共4 字節. 時段屏蔽字節:同上,每1bit 代表1 個時段有效或無效,每個門最大有64 個時段,占用8 字節. 最多32個門,占用256 字節. 以上每個組占用260 字節,1 000 個組共占用260K字節. (3) 時段表: (每天8 個時段,8 天(1 周7 天+ 節假日1 天) ) 時段表用于記錄具體的每一時段的起始時間和終止時間,以及每一時段的屬性. 包括以下部分: 以上每個時段占用6 個字節,每天8 個時段,8天,32 個門,共用12 K字節. (4) 讀卡器表: (最大64 個讀卡器) 讀卡器號用于讀卡器地址和門號的對照;物理源地址表示持卡人所在區的區號;目的地址表示持卡人要前往區的區號;邏輯源地址是在要防反傳時用的,表示持卡人可直接從這些區到該讀卡器讀卡. 每1bit 表示一個區,為1 時表示有效,為0 表示無效,最多可表示64 個區. (5) 事件表: 事件表用于存放每一條事件信息. 包括以下幾部分: 卡號(3 個字節) 門地址(1 個字節) 事件種類(1 個字節) 讀卡時刻 其中,門地址一個字節可表示250 個門(只用32個門) ; 事件種類可表示32 種事件,現已定義的事件如下: 讀卡引發事件:1. 介質出門;2. 介質開門;3. 維護;4. 超時限;5. 巡更;6. 掛失 非讀卡引發事件:7. 非法開門;8. 遙控開門;9. 機箱打開;10. 機箱關閉;11. 讀卡器防拆; 12. 讀卡器恢復;13. 設防;14. 撤防;15. 電池失效;16. 電池投入;17.市電掉電;18. 進入常開;19. 退出常開;20. 超時未關;21. 關門. 每條事件消息將占用6 個字節(不超過4 min) ,或12 個字節(超過4 min) ; 讀卡時刻的表示方法如下: 讀卡時刻字節存儲的是本次讀卡時刻和上一次讀卡時刻的差值,若差值大于254 (4. 2 min) ,則將此字節置為255 (FF) ,同時在下一個連續的6 個字節存放本次讀卡的絕對時刻(年月日時分秒) . 3 軟件的實現 門禁系統的軟件主要由管理中心計算機上的軟件和門禁控制器上的軟件組成. 為敘述方便,以下門禁控制器簡稱為門控器. 在門禁系統中,門控器上的軟件所執行的主要功能有建表,添加、更改和刪除表內容,對讀卡事件做判斷處理和存儲各種事件. 與門禁系統有關的任務有門禁系統任務(也就是讀卡事件處理任務) 、網絡數據接收任務、數據存儲任務、系統間聯動任務,還有數據采集的中斷服務程序. 另外,還有個根任務,它執行硬件設備的初始化,定義幾個表的結構數組,創建各任務、信號量、消息隊列、實時數據緩沖池. 根任務完成這些事情后把自己刪除掉,使當前優先級最高的就緒任務進入運行態。 3. 1 讀卡事件處理任務 讀卡事件處理任務的過程:首先,采集數據的中斷服務程序發來的事件標志激活該任務,從緩沖池中讀取卡號和讀卡器號,或者還有密碼;其次,根據卡號、讀卡器號和當前的讀卡時間,到持卡人信息表、讀卡器表、群組表里去檢索信息;然后,根據群組表里的門屏蔽字去查門的時段表、門的時段屬性;最后,根據所得信息執行命令并保存事件內容、修改使用次數和人員位置數據等. 該任務的優先級為200 ,用獲取信號量的辦法與網絡接收數據任務互斥開. 因為該任務涉及到幾個表,數據量比較大,所以堆棧空間較大,為500 K.通過發巡更事件與巡更任務通信[3 ] . 超級卡程序比普通卡的程序少一項時段判斷的過程,其它的與普通卡程序一樣;維護卡程序實現解除門控器防拆報警使之恢復正常工作狀態;巡更卡程序發送巡更標志給巡更任務. 關于是否違反防反傳規定,要視具體工程和客戶的要求而定. 3. 2 巡更任務 操作員在監控管理中心設置巡更路線和巡更時間表,而后下傳到門控器上. 巡更任務通過接收讀卡事件處理任務發來的巡更事件標志,根據當前時間和巡更時間表,判斷巡更是否到位,并向監控管理中心計算機發送信息,決定是否報警. 巡更站就是讀卡機,在規定的時刻和誤差范圍內讀卡,表示巡更到位,否則表示巡更不到位. 巡更任務的優先級較低, 取100 , 堆棧取6 000 ,該任務可搶占,時間片為50 ns. 3. 3 網絡數據接收任務 網絡數據接收任務的功能為接收管理中心計算機或其它門控器發來的數據和命令,根據這些命令和數據,執行相應的建表、添加、更改、刪除、維護和讀事件等操作. 該任務的優先級取190 ,堆棧設為600 K,可搶占. 采用客戶/ 服務器的通信模式,接受數據的門控器為服務器,發送數據的管理中心計算機為客戶.為了通信方便,我們自己定義了一套數據傳輸的格式,具體格式如下: 因為不能對flash 存儲器進行單個字節的擦除和改寫,只能一個一個模塊整塊擦除,再重新寫,所以門禁控制器上的數據表只采用新建和重建兩個命令(flash 的擦除次數可達100 萬次) . 3. 4 數據存儲任務和系統間聯動任務 數據存儲任務的主要功能是定期把SDRAM 里的事件數據保存到flash 存儲器和管理計算機上. 系統間聯動任務主要是響應其它系統的要求,比如火災報警系統報警時要求把有關的門打開,而安全防范系統在遇盜時,需把有關的門關閉. 該任務的優先級要求比較高,取230. 持卡人信息表、群組表、時段屬性表和讀卡器表的數據結構定義的程序清單如下 4 結語 本文主要闡述了門禁控制器軟件的設計及實現.詳細說明了門禁控制系統的組成、基本結構、工作方式及功能功述;系統分析了門禁控制系統的工作原理. 門禁控制器系統應用于出入口管理系統,提供了較高的安防保障,并日益被推廣. |