摘 要:介紹一種主動紅外探測式智能報警系統的設計原理,給出該系統的軟硬件設計方法,實現系統的現場報警遠程監控的目的。該系統主要通過AT89C2051單片機編程發出PWM載波以控制紅外光發射管TSAL6200的發射,同時接收來自接收模塊HS0038A2的觸發信號,以達到主動探測報警的目的。結合VC++網絡編程,從而達到遠程監控的目的。
關鍵詞:紅外光發射檢測;單片機;串口通訊;VC++網絡編程
中圖分類號:TN215 文獻標識碼:B
文章編號:1004373X(2008)0314303
Design for an Initiative Infrared Detecting Alarming System
LI Junwei1,ZHAN Zhibiao2
(1.Yingtan Vocational Technical Institute,Yingtan,335001,China;2.Computer Engineering College,Wenzhou University,Wenzhou,325035,China)
Abstract:Active infrared detecting intelligent alarming system design principle is introduced,the system is the hardware and software design methods,realizes the scene alarming system remote monitoring purposes.The system primarily through the issue of programming AT89C2051 to control PWM carrier infrared light—emitting tube TSAL6200 the launch simultaneous reception from the receiver module HS0038A2 the trigger signal to achieve the initiative alarming purposes.VC++ network programming so as to reach remote monitoring purposes.
Keywords:infrared ray′s transmission detection;single chip computer;serial communication;VC++ network programming
隨著生活水平的不斷提高,人們對生活環境的要求也越來越高,對居住、出行的安全也非常重視。人們對價廉可靠方便的報警系統的需求也越來越大,本文介紹的主動紅外探測報警系統是基于紅外光發射、紅外光檢測、單片機控制語音報警、PC監控的完整系統,適合那些IT上班族對自家的遠程監控。
1 主動紅外探測報警系統的介紹
本系統屬主動紅外入侵探測類系統,主動式紅外探測器是由發射、接收裝置兩部分組成。為降低成本,簡化安裝,系統底層由一片AT89C2051擔任紅外光發射和接收處理任務,其紅外光發射器與紅外光接收器均安裝在同一PCB板中。眾所周知,紅外光是一種不可見的光波,他具有光的直線傳播特性,紅外光發射器發出紅外光后,若遇阻礙物阻擋,將會產生紅外光漫反射,當反射足夠強時,紅外光接收器能夠接收并解調出該紅外光信號。換言之,當紅外光接收器接收到紅外光發射器所發射的信號后,說明在有效探測區中有阻礙物存在。經實際測試,本系統有效探測區半徑為2 m,適合安裝在家居門窗外面,能有效探測異常物體的入侵。
主動紅外探測報警的優點是顯而易見的,因為紅外光屬于非可見光源,入侵者難以發覺與躲避,系統防御界線非常明確,當探測到有阻礙物時,紅外光接收器將觸發語音報警,并啟動單片機串行發送程序,通過RS 232與PC串口相接,將報警信號傳向PC,再由PC自動轉發給異地的用戶PC,從而實現真正的遠程監控目的。
2 主動紅外探測報警系統的整體設計
整個系統包括硬件設計及軟件設計兩大部分,其中硬件由上下位機組成,上位機是PC,下位機由紅外光發射電路、紅外光檢測電路、單片機控制電路、語音報警電路、單片機—PC串口電路等部分組成,如圖1所示,其中語音報警模塊為可選組件,可根據需要自由選配;軟件設計包括單片機下位機程序及PC機C/S監控程序兩大部分,其中單片機程序主要負責紅外光微波信號的產生、紅外光接收中斷信號的處理、報警信號的傳輸,PC機C/S監控程序主要負責報警信號的接收、異地傳送處理等。下面重點敘述紅外光發射接收解調的硬件和軟件設計。
圖1 主動紅外探測式硬件設計框圖
3 紅外光發射、接收解調電路的設計
紅外光通訊以紅外光作為通訊載體,通過紅外光在空中的傳播來傳輸數據,從而實現無線傳輸,硬件部分主要由紅外光發射器和紅外光接收器來完成。在紅外光發射器電路中,通過單片機軟件編程,可以實現AT89C2051的P3.7輸出38 kHz PWM紅外光載波信號,然后經9013驅動紅外光發射管TSAL6200[1]發射出紅外光。圖2是紅外光接收電路,其中接收模塊HS0038A2[2]專門負責接收由阻礙物反射回來的紅外光載波,并解調輸出報警中斷信號到AT89C2051的INT0輸入端,從而引發單片機INT0中斷。
在PCB設計時,由于發射管TSAL6200與接收模塊HS0038A2共處同一PCB,考慮到周圍元器件的存在,接收模塊極易接收到來自周圍元器件漫反射的紅外光,引起中斷觸發造成誤報,為避免發射與接收之間的相互干擾,發射管與接收模塊應盡量分開布置,并做好中間隔離,必要時還要為發射管和接收模塊增加套管外殼,同時還要注意接收模塊的光敏面應與發射管的發射面處于同一方向,保證能夠探測有效區中的阻礙物反射。在調試時,以前方無阻礙物時不產生INT0中斷信號為合格作為前提。
圖2 紅外光接收電路
4 紅外光發射接收原理
在發送數據時,是用一系列待發送的二進制數據去調制38 kHz載波信號(如圖3),經過調制的載波信號將通過外圍紅外光發射電路即AT89C2051的P3.7端口、9013及TSAL6200發射出去。接收模塊HS0038A2負責接收并解調紅外光信號,圖3是經過解調后輸入INT0的調制信號。要實現紅外光波頻率為38 kHz,并采用PWM脈寬調制方式發送[3],可以由單片機內部定時器編程實現。在本設計中,發射和接收共用一個單片機AT89C2051,一般情況下,單片機定時程序會不斷地啟動發射程序,當HS0038A2接收到有效紅外光反射時,其輸出信號作為報警信號將觸發單片機的INT0中斷。
圖3 調制過的紅外光發射信號及接收解調信號
為保證觸發報警的靈敏度,系統檢測阻礙反射的最短時間應控制在ms級,所以二進制調制信號周期不宜過大,本系統的二進制調制周期為1 200 μs,能滿足紅外探測靈敏度要求。
5 單片機程序設計
上面提到過本系統僅采用一塊單片機,其紅外光發射與接收任務均由一塊單片機完成,這完全得益于靈活的軟件編寫。圖4是單片機主程序流程圖,其中單片機初始化程序將完成對定時器T0,T1,外部中斷口以及串行口中斷等初始化設置,然后進入對R6標志的檢測,R6是紅外光接收中斷標志,當有紅外光接收中斷時,將啟動INT0中斷處理程序,INT0中斷處理程序將關斷定時發送程序,并修改中斷標志R6為2,在結束INT0中斷處理程序返回主程序后,主程序通過對R6值的檢測,來判斷是否有中斷產生。如果R6值為2,將被判定有中斷產生,然后恢復R6值為1,并啟動語音報警和串口發送處理程序,最后經適當延時重新啟動T0并進入主程序循環。如果主程序檢測R6值不為2,則將繼續檢測R6。
圖4 單片機主程序流程圖
6 紅外光發射程序設計
紅外光發射程序是本系統單片機程序的關鍵程序,他的正確編寫直接關系到接收模塊HS0038A2是否能正確解調出紅外光。AT89C2051定時器T0負責紅外光發射,其軟件編寫必須根據HS0038A2的接收解調特性來編寫,HS0038A2是個標準的紅外光接收模塊,環氧包裝,帶紅外過濾器,抗干擾能力強,與TTL和CMOS兼容,適合與AT89C2051單片機直接相接,他能接收解調載波頻率為38 kHz的紅外光方波。所以編程的關鍵之一是要能夠正確產生38 kHz的載波,二是用適當的二進制0和1去調制38 kHz載波[4],最終輸出經調制過的38 kHz載波信號。我們可以利用單片機定時器的脈寬調制PWM特性來做,本系統T0設定為方式1,以便能重裝初值,確保正確調制要求。T0定時中斷程序控制發射600 μs 38 kHz載波紅外光脈沖,要求一個載波周期約為1/38 kHz=26 μs,則在P3.7要輸出600/26=23個高低電平,系統Fosc若以20 MHz計算,一個系統機器周期為12/20 MHz =0.6 μs,每個高電平或低電平需要執行26/(2*0.6)=22個機器周期,T0的計數初值由定時600 μs確定,TC=216-600/0.6=0FC18H,在T0計數期間,P3.7一直輸出低電平。從調制角度上來說,T0中斷時將發射由二進制1調制的載波,在T0定時計數時,將發射由二進制0調制的載波。因此T0定時發射程序編寫如下:
T0: CLRTR0;Fosc=20 MHz
TIAO1:MOVR0,#23 ;載波600 μs需調用子程序23次
TIAO11:LCALLH;調用高低電平約44個機器周期子程序
DJNZR0,TIAO11;2個機器周期
T0EXIT:MOVTL0,#18H ;延時600 μs的時間常數
MOVTH0,#0FCH
SETBTR0
RETI
H:SETBP3.7 ;執行時P3.7仍為低電平,執行后為高,1個機器周期
H1:MOVR1,#10 ;1個機器周期
DJNZR1,$;20個機器周期
CLRP3.7;執行時P3.7仍為高電平,執行后為低,1 個
MOVR1,#9;1個
DJNZR1,$;18個
H2:RET;1個
當單片機系統Fosc為20 MHz時,為保證單片機與PC能可靠地進行串行通訊[5],定時器T1設定為方式2,定時初值定為0F5H,此時串口波特率為4 800 b/s。PC端串口通訊可基于VC++的MSComm控件編程,實踐證明通訊良好,未出現誤報情況。
7 其他設計
PC端對報警信號處理,我們可以通過VC++網絡編程自行設計,報警信號送至服務器PC后[6],利用Internet網絡將報警信號傳送到異地的客戶端PC。本系統還包括單片機控制、串口發送、語音播放、電源等其他軟硬件設計,限于篇幅,在此就不一一介紹了。
8 結 語
上述設計方案已進入實際應用,整個系統小巧方便,抗干擾能力強,調試制作簡單,性能可靠??紤]到系統方案的更新擴展,還可以利用手機短信模塊,將報警信號直接發送到客戶手機當中,以增加異地接收報警的可靠性,從而彌補Internet網絡即時性差的缺點。
參考文獻
[1]VISHY.TSAL6200 GaAs/GaAIAs IR Emitting Diode Specification[EB/OL].http://www.vishay.com,1999.
[2]VISHY.HS0038A2 Photo Modules for PCM Remote Control Systems Specification[EB/OL].http://www.vishay.com,2000.
[3]麥山,皮佑國.基于單片機的協議紅外遙控系統[J].電子技術,1998(5):22—24.
[4]段萍.單片微機紅外報警系統的研制[J].光電子技術與信息,2005,18(3):20—23.
[5]李輝.VC++串行通信編程方法研究[J].微處理機,2005,26(3):36—39.
[6]劉光蓉.運用Visual C++構建基于Socket的C/S模式通信[J].武漢工業學院學報,2004,23(3):29—31.
作者簡介 李峻薇 女,1970年出生,湖南長沙人,工程師,學士。
占志彪 男,1966年出生,江西上饒人,實驗師,學土。研究方向為人工智能。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。