1 引言
隨著工業(yè)環(huán)境的日益復(fù)雜化,有效且價(jià)格低廉的監(jiān)控系統(tǒng)對(duì)工業(yè)的發(fā)展來說正變得越來越重要。對(duì)開發(fā)者來說,開發(fā)界面友好的、更經(jīng)濟(jì)的、有著最少硬件需求的監(jiān)控系統(tǒng),無疑是面臨的一場(chǎng)新的挑戰(zhàn)。計(jì)算機(jī)是一個(gè)真正令人稱奇的機(jī)器,它可以幫助我們?cè)诒姸嗟念I(lǐng)域執(zhí)行多個(gè)任務(wù),它是現(xiàn)代社會(huì)的信息基礎(chǔ)設(shè)施。計(jì)算機(jī)的多任務(wù)特性對(duì)用戶來說有著更大的吸引力,一個(gè)單獨(dú)的計(jì)算機(jī)既能夠做日常工作,同時(shí)也能夠被用作監(jiān)控系統(tǒng)。本監(jiān)控系統(tǒng)是一個(gè)以Windows 軟件為基礎(chǔ)的系統(tǒng),采用Delphi 設(shè)計(jì)用于向用戶提供圖形用戶界面。使用Windows 環(huán)境的一個(gè)好處是,軟件可以在網(wǎng)絡(luò)上共享,監(jiān)控系統(tǒng)對(duì)所有用戶是透明的,因而可以被許多計(jì)算機(jī)使用。這個(gè)系統(tǒng)可以實(shí)現(xiàn)全天候監(jiān)控,并且可以打印24 小時(shí)內(nèi)的所有監(jiān)控記錄。硬盤能夠保存3 個(gè)月的監(jiān)控?cái)?shù)據(jù)。
這個(gè)系統(tǒng)的安裝非常的靈活,可以適應(yīng)不同的工作環(huán)境,并且具有極小的安裝空間。該監(jiān)控系統(tǒng)有著不同的應(yīng)用。它可被用于產(chǎn)品輸送和車輛速度感知,辦公室、體育館、電影院以及大型超市的路口監(jiān)控。
2 系統(tǒng)設(shè)計(jì)
2.1 基本系統(tǒng)設(shè)計(jì)
這個(gè)系統(tǒng)是實(shí)現(xiàn)一個(gè)入口監(jiān)控系統(tǒng),由兩個(gè)傳感器、一個(gè)可自動(dòng)開關(guān)的門和一臺(tái)計(jì)算機(jī)組成,門在計(jì)算機(jī)發(fā)出的控制信號(hào)的作用下自動(dòng)開啟和關(guān)閉。計(jì)算機(jī)根據(jù)傳感器提供的數(shù)據(jù)向控制門的電機(jī)發(fā)出開或關(guān)的控制信號(hào)。當(dāng)?shù)谝粋€(gè)傳感器被激活的時(shí)候,就向計(jì)算機(jī)發(fā)出一個(gè)信號(hào),計(jì)算機(jī)對(duì)入口進(jìn)行錄像并命令門打開,人進(jìn)入后觸發(fā)第二個(gè)傳感器。第二個(gè)傳感器安裝在門的另一側(cè)。第二個(gè)傳感器亦發(fā)出一個(gè)信號(hào)給計(jì)算機(jī),這時(shí)計(jì)算機(jī)向門發(fā)出關(guān)閉命令。
如果人經(jīng)過第一個(gè)傳感器后未經(jīng)過第二個(gè)傳感器而是從第一個(gè)處返回,則系統(tǒng)不保存這個(gè)人的進(jìn)入記錄。
2.2 控制系統(tǒng)的設(shè)計(jì)
這個(gè)系統(tǒng)主要是用來控制進(jìn)入的人數(shù)。計(jì)算機(jī)軟件隨時(shí)保留著已進(jìn)入的人的數(shù)目,被允許進(jìn)入的人的總數(shù)由用戶事先設(shè)定。如果進(jìn)入的人的數(shù)目超出設(shè)定范圍,計(jì)算機(jī)將不再發(fā)出開門指令并在屏幕上顯示警告信息,門的關(guān)閉狀態(tài)將會(huì)被自動(dòng)保持。如果一個(gè)里面的人想要出去,門將為他打開并且里面產(chǎn)生一個(gè)空位,這時(shí)門就能夠?yàn)槿魏蜗脒M(jìn)入的人打開。所有這些決策和處理由計(jì)算機(jī)自動(dòng)完成,計(jì)算機(jī)基于已有的記錄數(shù),給門發(fā)送適當(dāng)?shù)闹噶钜钥刂迫藛T的進(jìn)出。控制系統(tǒng)的結(jié)構(gòu)如圖1 所示。
圖 1 控制系統(tǒng)結(jié)構(gòu)
3.紅外感知系統(tǒng)的設(shè)計(jì)
感知器采用紅外射線(IR)傳感器來實(shí)現(xiàn)。IR 發(fā)射器產(chǎn)生IR 波束,波束被IR 接收器連續(xù)地接收。IR 接收器放在與IR 發(fā)送器相同的高度上,其中間無障礙物遮擋。當(dāng)侵入者干擾了光束時(shí)就會(huì)為計(jì)算機(jī)產(chǎn)生一個(gè)中斷,如圖2 所示。
圖 2 傳感器安裝
3.1 IR 發(fā)射器
本文中使用的 IR 發(fā)射器是一個(gè)簡(jiǎn)單的IR LED。由于IR 發(fā)出的IR 紅外線由于光的干涉現(xiàn)象會(huì)在空氣中被吸收,所以為了使IR 的光束不被干擾,這里使用了一個(gè)40KHz 的調(diào)制方案解決這個(gè)問題,如圖3 所示。通過一個(gè)40KHz 信號(hào)的控制,發(fā)送器發(fā)出光脈沖。這個(gè)40KHz的信號(hào)由一個(gè)555 定時(shí)器產(chǎn)生,信號(hào)輸出幅度為為0V 和5V。
圖 3 紅外發(fā)射器模塊圖
3.2 IR 接收器
IR 接收器通過使用一個(gè)光電晶體管實(shí)現(xiàn)。光電晶體管通過位于基底的接收器以適當(dāng)?shù)墓ぷ髂J浇邮誌R 紅外線。然而在接收站需要一個(gè)帶通濾波器,因?yàn)榘l(fā)送器發(fā)出的IR 紅外線是以40KHz 被調(diào)制的。為防止傳輸中的干擾,需要在光電晶體管后面加一個(gè)濾波器,濾波器輸出5V 信號(hào)。光電晶體管和濾波器電路合并在一起形成一個(gè)可重復(fù)使用的模塊,稱為IR 接收模塊。模塊化可使IR 接收器提高工作的可靠性并降低價(jià)格。IR 接收模塊的輸出被傳送至計(jì)算機(jī)。
4 計(jì)算機(jī)接口連接
4.1 并行接口連接
計(jì)算機(jī)通過并行口與 IR 接收模塊連接。并行口對(duì)外圍電路的控制具有功能強(qiáng)大、造價(jià)低的特點(diǎn)。并行口的主要應(yīng)用是連接打印機(jī)和計(jì)算機(jī),因?yàn)椴⑿锌谕ǔS糜谶@種目的,所以它又常被稱為打印機(jī)并行口。它是一個(gè)25 針的母口連接器(DB25)。DB25 連接器的針腳如圖4 所示。
圖 4 并行口引腳排列和分組
DB25 連接器的針腳可以分成三種類型:數(shù)據(jù)線(數(shù)據(jù)總線)、控制線和狀態(tài)線。數(shù)據(jù)、控制和狀態(tài)線被連接到計(jì)算機(jī)中的三個(gè)相應(yīng)的觸發(fā)器上。所以通過在程序中操作這些觸發(fā)器,我們可以容易地用程序語言編程讀寫并行口。
寫一個(gè)并行口讀寫程序在 DOS 系統(tǒng)下是非常容易簡(jiǎn)單的。但是進(jìn)入Windows 系統(tǒng)后,象Windows2000,XP 等,所有這些簡(jiǎn)單性將不復(fù)存在。作為一個(gè)非常安全的操作系統(tǒng),Windows 分配一些權(quán)限和限制到運(yùn)行在它上面的各種不同類型的程序。我們通常編寫的程序都是用戶模式的,用戶模式的應(yīng)用程序被限制使用某些指令如IN,OUT 等。無論什么時(shí)候操作系統(tǒng)發(fā)現(xiàn)一個(gè)用戶模式的程序試圖執(zhí)行這種指令,操作系統(tǒng)將停止這些用戶程序的執(zhí)行并顯示一個(gè)錯(cuò)誤信息。但是內(nèi)核模式的程序不在限制執(zhí)行這類指令之列。設(shè)備驅(qū)動(dòng)程序能夠以內(nèi)核模式運(yùn)行。所以解決上述的問題的一個(gè)好的方案就是編寫一個(gè)內(nèi)核模式的驅(qū)動(dòng)程序,該驅(qū)動(dòng)能夠向并行口讀寫數(shù)據(jù),并且使用戶模式的應(yīng)用程序能夠與驅(qū)動(dòng)程序通信。
本系統(tǒng)的并行口驅(qū)動(dòng)程序以動(dòng)態(tài)連接庫文件 DrivDb25.dll 的形式提供。它能夠在不改變用戶代碼或DLL 本身的情況下在任何Windows 版本下工作。當(dāng)函數(shù)被調(diào)用的時(shí)候驅(qū)動(dòng)程序?qū)z測(cè)操作系統(tǒng)版本,當(dāng)操作系統(tǒng)是Win9X 時(shí),驅(qū)動(dòng)程序使用_inp()和_outp 函數(shù)讀寫并行口;當(dāng)操作系統(tǒng)是Windows NT, 2000 或XP 時(shí),它將安裝一個(gè)內(nèi)核模式的驅(qū)動(dòng),然后通過這個(gè)驅(qū)動(dòng)和并行*互。這樣用戶代碼就無需關(guān)心操作系統(tǒng)的版本。程序流程圖如圖5 所示。
圖5 并行口驅(qū)動(dòng)流程圖
4.2 硬件接口中的問題及解決方法
并行口從傳感器中讀取數(shù)據(jù)后,計(jì)算機(jī)將按照算法執(zhí)行相應(yīng)的動(dòng)作。但由于信號(hào)的波動(dòng),計(jì)算機(jī)執(zhí)行的結(jié)果可能并不象預(yù)料的那樣。在正常的程序操作下,計(jì)算機(jī)大約每1 個(gè)微秒從傳感器中抽樣一次數(shù)據(jù)。這個(gè)微妙級(jí)的抽樣將導(dǎo)致計(jì)算機(jī)接收甚至是傳感器輸出的最輕微的信號(hào)波動(dòng)。由于功率波動(dòng),環(huán)境條件,輕微的自然震動(dòng)等,導(dǎo)致傳感器輸出有許多波動(dòng),這些波動(dòng)會(huì)對(duì)計(jì)算機(jī)產(chǎn)生錯(cuò)誤的中斷,導(dǎo)致算法將被不期望地觸發(fā),最終導(dǎo)致錯(cuò)誤動(dòng)作。
信號(hào)波動(dòng)在傳感器觸發(fā)期間會(huì)變得更加明顯。當(dāng)入侵者經(jīng)過觀測(cè)區(qū),IR 束被擾亂并給出一個(gè)信號(hào),由于明顯的身體上的原因,波束將被大約以毫秒級(jí)擾亂好幾次。這將會(huì)對(duì)計(jì)算機(jī)產(chǎn)生多個(gè)虛假的中斷。
這個(gè)問題可以通過改變抽樣時(shí)間解決,也可以通過采用適當(dāng)?shù)乃惴ń鉀Q。算法程序被設(shè)計(jì)成可以識(shí)別出傳感器發(fā)出的是真實(shí)的信號(hào)還是虛假的信號(hào)。在本系統(tǒng)中使用的方法是只接收傳感器觸發(fā)產(chǎn)生的第一次中斷,其他所有傳感器產(chǎn)生的跟隨中斷被拋棄,如果它們發(fā)生的非常快的話,這可以通過在程序代碼中放置一個(gè)有條件的跳轉(zhuǎn)實(shí)現(xiàn)。當(dāng)來自傳感器的第一個(gè)中斷被計(jì)算機(jī)接收時(shí),程序流將跳轉(zhuǎn)到一個(gè)等待狀態(tài)中,等待下一個(gè)傳感器的中斷。
5 軟件設(shè)計(jì)
監(jiān)控系統(tǒng)的軟件用 Delphi6 開發(fā)。Delphi 一種面向?qū)ο蟮?、可視化的快速?yīng)用開發(fā)工具,提供了容易使用的圖形用戶界面(GUI),能夠運(yùn)行在各種Windows 操作系統(tǒng)版本上。軟件使用了Delphi6 中通常的組件,如按紐、文本框、對(duì)話框、標(biāo)簽等。控制并行口的命令由DrivDb25.dll 驅(qū)動(dòng)程序提供。軟件的主界面如圖6 所示,軟件流程圖如圖7 所示。
圖 6 監(jiān)控軟主界面
圖7 監(jiān)控軟件流程圖
6.自動(dòng)門的設(shè)計(jì)
自動(dòng)門根據(jù)計(jì)算機(jī)發(fā)出的信號(hào)執(zhí)行開啟和關(guān)閉的動(dòng)作。門的自動(dòng)開和關(guān)通過在適當(dāng)位置使用一個(gè)直流電機(jī)實(shí)現(xiàn)。一個(gè)傳動(dòng)裝置連接到電機(jī)的軸上,傳動(dòng)裝置的齒輪壓著門框,當(dāng)軸轉(zhuǎn)動(dòng)時(shí),門邊沿著它的軌跡轉(zhuǎn)動(dòng),門的開和關(guān)由電機(jī)軸的轉(zhuǎn)動(dòng)方向所控制。當(dāng)電機(jī)軸順時(shí)針方向轉(zhuǎn)動(dòng)時(shí)為開,逆時(shí)針方向轉(zhuǎn)動(dòng)時(shí)為關(guān)。電機(jī)是順時(shí)針還是逆時(shí)針方向轉(zhuǎn)動(dòng)由提供給電機(jī)的電壓的極性決定。
計(jì)算機(jī)通過繼電器與電機(jī)連接。繼電器有這樣的好處,它能夠使大電機(jī)與計(jì)算機(jī)安全地相連。繼電器應(yīng)當(dāng)安裝在容易更換的位置,以便在燒毀或粘連時(shí)方便更換。
7 實(shí)驗(yàn)及結(jié)論
模擬實(shí)驗(yàn)顯示,在模擬進(jìn)出 1400 次時(shí),系統(tǒng)只有1 次誤動(dòng)作,經(jīng)分析與繼電器疲勞有關(guān),排除繼電器壽命的影響,該系統(tǒng)有著非常高的可靠性。將該系統(tǒng)進(jìn)行簡(jiǎn)單的改造,即可用于移動(dòng)物體的計(jì)數(shù)和速度的監(jiān)測(cè),因此該系統(tǒng)有著廣泛的用途。