在
門禁控制系統中,門控器上的軟件所執行的主要功能有建表,添加、更改和刪除表內容,對讀卡事件做判斷處理和存儲各種事件。與門禁系統有關的任務有門禁系統任務(也就是讀卡事件處理任務)、網絡數據接收任務、數據存儲任務、系統間聯動任務,還有數據采集的中斷服務程序。另外,還有個根任務,它執行硬件設備的初始化,定義幾個表的結構數組,創建各任務、信號量、消息隊列、實時數據緩沖池。根任務完成這些事情后把自己刪除掉,使當前優先級最高的就緒任務進入運行態。
1讀卡事件處理任務
讀卡事件處理任務的過程:首先,采集數據的中斷服務程序發來的事件標志激活該任務,從緩沖池中讀取卡號和讀卡器號,或者還有密碼;其次,根據卡號、讀卡器號和當前的讀卡時間,到持卡人信息表、讀卡器表、群組表里去檢索信息;然后,根據群組表里的門屏蔽字去查門的時段表、門的時段屬性;最后,根據所得信息執行命令并保存事件內容、修改使用次數和人員位置數據等。該任務的優先級為200,用獲取信號量的辦法與網絡接收數據任務互斥開。因為該任務涉及到幾個表,數據量比較大,所以堆??臻g較大,為500K.通過發巡更事件與巡更任務通信[3]。超級卡程序比普通卡的程序少一項時段判斷的過程,其它的與普通卡程序一樣;維護卡程序實現解除門控器防拆報警使之恢復正常工作狀態;巡更卡程序發送巡更標志給巡更任務。關于是否違反防反傳規定,要視具體工程和客戶的要求而定。
2巡更任務
操作員在監控管理中心設置巡更路線和巡更時間表,而后下傳到門控器上。巡更任務通過接收讀卡事件處理任務發來的巡更事件標志,根據當前時間和巡更時間表,判斷巡更是否到位,并向監控管理中心計算機發送信息,決定是否報警。巡更站就是讀卡機,在規定的時刻和誤差范圍內讀卡,表示巡更到位,否則表示巡更不到位。巡更任務的優先級較低,取100,堆棧取6000,該任務可搶占,時間片為50ns.
3網絡數據接收任務
網絡數據接收任務的功能為接收管理中心計算機或其它門控器發來的數據和命令,根據這些命令和數據,執行相應的建表、添加、更改、刪除、維護和讀事件等操作。該任務的優先級取190,堆棧設為600K,可搶占。采用客戶/服務器的通信模式,接受數據的門控器為服務器,發送數據的管理中心計算機為客戶。為了通信方便,我們自己定義了一套數據傳輸的格式,具體格式如下:
因為不能對flash存儲器進行單個字節的擦除和改寫,只能一個一個模塊整塊擦除,再重新寫,所以門禁控制器上的數據表只采用新建和重建兩個命令(flash的擦除次數可達100萬次)。
4數據存儲任務和系統間聯動任務
數據存儲任務的主要功能是定期把SDRAM里的事件數據保存到flash存儲器和管理計算機上。
門禁控制系統間聯動任務主要是響應其它系統的要求,比如火災報警系統報警時要求把有關的門打開,而安全防范系統在遇盜時,需把有關的門關閉。