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