隨著人們生活水平的提高和安防意識(shí)的增強(qiáng), 急需開發(fā)面向大眾、價(jià)格低廉、運(yùn)行可靠的自動(dòng)報(bào)警系統(tǒng)。鑒于住宅電話和移動(dòng)通信設(shè)備的普及, 以及電話語音報(bào)警的快捷、有效及價(jià)格低廉等優(yōu)點(diǎn), 公共通信網(wǎng)成了報(bào)警系統(tǒng)的最佳傳輸媒介。本文介紹的報(bào)警系統(tǒng)就是在此基礎(chǔ)上發(fā)展起來的一種智能語音撥號(hào)報(bào)警系統(tǒng), 該系統(tǒng)可廣泛用于各種對(duì)安防要求較高的場合, 如智能樓宇、商場、銀行和工廠等。
電話自動(dòng)報(bào)警的主要功能為: 用戶根據(jù)需要把自己的手機(jī)號(hào)碼、辦公室電話或報(bào)警監(jiān)控中心的電話預(yù)存入報(bào)警主機(jī)。報(bào)警主機(jī)不斷地對(duì)所監(jiān)控的設(shè)備( 門禁、煙霧探測器、窗磁、攝像頭等) 狀況進(jìn)行巡檢, 當(dāng)有不安全情況( 如火災(zāi)、非法入室、視頻丟失等) 發(fā)生時(shí), 報(bào)警主機(jī)撥通預(yù)先存入的電話號(hào)碼, 播放相應(yīng)的警情語音。若電話占線或者無人接聽,可撥下一個(gè)預(yù)存的電話號(hào)碼, 如果所有預(yù)存的電話都占線或者無人接聽, 則會(huì)自動(dòng)把所有的預(yù)存電話重?fù)芤槐椋?保證了報(bào)警的有效性和可靠性。
1 系統(tǒng)組成和工作原理
系統(tǒng)組成框圖如圖1 所示。采用AT89C51 單片機(jī)作為控制核心, 外接E2PROM 用于存儲(chǔ)電話號(hào)碼、設(shè)置參數(shù)( 定時(shí)布/撤防、聯(lián)動(dòng)、視頻等) 以及警情信息等。當(dāng)AT89C51單片機(jī)實(shí)時(shí)巡檢到新的警情信號(hào)( 防區(qū)故障、視頻丟失、主電斷電或上位機(jī)死機(jī)) 時(shí), 報(bào)警主機(jī)就會(huì)自動(dòng)進(jìn)行警情處理( 聲光報(bào)警、啟動(dòng)相應(yīng)聯(lián)動(dòng)、記錄警情以及撥號(hào)報(bào)警等) 。
撥號(hào)報(bào)警的工作原理如下:
系統(tǒng)自動(dòng)地控制摘/掛機(jī)電路模擬摘機(jī), 同時(shí)AT89C51 單片機(jī)通過可編程并行接口8255 將MT8880 置為呼叫模式, 檢測是否有撥號(hào)音。若有撥號(hào)音, 則將MT8880 設(shè)為突發(fā)方式, 并按用戶預(yù)設(shè)的電話號(hào)碼自動(dòng)撥號(hào)。撥完電話號(hào)碼以后立即檢測對(duì)方是否摘機(jī), 一旦檢測到對(duì)方摘機(jī), 就啟動(dòng)語音提示電路發(fā)送與警情相一致的語音信息, 完成自動(dòng)撥號(hào)報(bào)警。
2 硬件設(shè)計(jì)
2.1 警情采集電路
信號(hào)采集電路由16 路防區(qū)輸入信號(hào)采集電路和16路視頻丟失檢測采集電路組成。16 路防區(qū)輸入信號(hào)采集電路如圖2 所示。采集電路通過一片可編程并行接口芯片8255 與AT89C51 單片機(jī)的P0 口接口, 而16 路防區(qū)輸入信號(hào)則通過光電隔離后與8255 的PA 口和PB 口相接。PA 口和PB 口均設(shè)為輸入口, 這16 個(gè)輸入口分別對(duì)應(yīng)16 路探測器的輸入。系統(tǒng)通過采集8255 的PA、PB口的數(shù)據(jù)來判斷是否有警情產(chǎn)生。
16 路視頻丟失檢測采集電路如圖3 所示。該電路首先通過一片16 路模擬開關(guān)芯片CD4067 進(jìn)行視頻通路選擇, 隨后經(jīng)過視頻信號(hào)檢測電路, 最后再與AT89C51 單片機(jī)的P1.3 口相接。系統(tǒng)首先將視頻通路號(hào)送給模擬開關(guān)CD4067, 然后將采集的數(shù)據(jù)送給P1.3口, 來判斷視頻是否丟失。
2.2 DTMF 發(fā)送接收電路MT8880 與AT89C51 及語音電路的接口
MT8880 是MITEL 公司推出的專門用于處理DTMF 信號(hào)的專用集成電路芯片, 不僅具有接收和發(fā)送DTMF信號(hào)的自動(dòng)撥號(hào)功能, 還可以檢測電話干線上撥號(hào)音、回鈴音和忙音等信號(hào)音。適合與單片機(jī)接口, 外圍電路簡單。
MT8880 內(nèi)部有五個(gè)寄存器, 分別為接收數(shù)據(jù)寄存器、發(fā)送數(shù)據(jù)寄存器、收發(fā)控制寄存器CRA 和CRB 以及收發(fā)狀態(tài)寄存器。在本設(shè)計(jì)中, 由于僅采用發(fā)送數(shù)據(jù)寄存器、收發(fā)控制寄存器CRA 和CRB 發(fā)送DTMF 信號(hào)實(shí)現(xiàn)自動(dòng)撥號(hào)功能, 因此在此僅介紹這三個(gè)寄存器。發(fā)送數(shù)據(jù)寄存器中的數(shù)據(jù)決定要發(fā)送的雙音頻信號(hào)的頻率, 因此只能向發(fā)送數(shù)據(jù)寄存器寫入數(shù)據(jù)。兩個(gè)收發(fā)控制寄存器占用同一個(gè)地址, 因此根據(jù)CRA 中的寄存器選擇位的值決定是否對(duì)CRB 進(jìn)行操作。其接口電路如圖4 所示。
ISD1420 語音芯片采用直接模擬存儲(chǔ)技術(shù), 且錄放音質(zhì)極好, 并有一定的混響效果; 它的外圍元件簡單, 僅需簡單的阻、容器件即可組成簡單的錄、放音電路; 無需后備電源, 信息存儲(chǔ)時(shí)間長, 不需要專用的編程器及語音開發(fā)器; 具有較強(qiáng)的選址能力, 可把存儲(chǔ)器分成160段來管理, 形成最小的錄放時(shí)間為125ms。其接口電路圖如圖4 所示。
語音分段方法: 地址輸入端A0~A7 由低位向高位排列, 每位地址代表125ms 的尋址, 160 個(gè)地址覆蓋20s 的語音范圍( 160×0.125s=20s ) , 錄音及放音功能均從設(shè)定的起始地址開始, 錄音結(jié)束由停止操作決定, 芯片內(nèi)部在該段的結(jié)束位置自動(dòng)插入結(jié)束標(biāo)志( EOM) ; 而放音時(shí)遇到EOM 標(biāo)志即自動(dòng)停止放音。在本設(shè)計(jì)中, 因需要四段報(bào)警提示語音, 因此在設(shè)計(jì)時(shí)均將每段語音設(shè)為5s,其起始地址分別為00000000B、00101000B、01010000B、01111000B, 由這四段起始地址可以看出A7、A2、A1 和A0 均為0, 因此將其接地。
3 軟件設(shè)計(jì)
3.1 信號(hào)音的識(shí)別方法
系統(tǒng)在巡檢到警情信號(hào)后就模擬摘機(jī)。為了識(shí)別模擬摘機(jī)后電話系統(tǒng)是否處于可撥號(hào)的狀態(tài)、電話撥完號(hào)碼后電話是否接通以及對(duì)方是否摘機(jī)接聽電話等幾種狀態(tài), 系統(tǒng)必須進(jìn)行信號(hào)音的識(shí)別。為了識(shí)別信號(hào)音, 必須知道各種信號(hào)音的特性。各種信號(hào)音特性如下:
撥號(hào)音: 450±25Hz 連續(xù)蜂音;
忙音: 0.35s 斷0.35s 通的450±25Hz 蜂音, 音斷周期為0.7s ;
回鈴音: 4s 斷1s 通的450±25Hz 蜂音, 音斷周期為5s。
這些電話信號(hào)均是模擬信號(hào), 然而單片機(jī)是無法識(shí)別模擬信號(hào)的, 故必須先將模擬信號(hào)轉(zhuǎn)換為脈沖信號(hào),然后再根據(jù)脈沖信號(hào)的脈沖個(gè)數(shù)進(jìn)行識(shí)別。這些電話音頻信號(hào)的脈沖個(gè)數(shù)可用下式計(jì)算:
N=tm/T
式中, N 為每音段周期的脈沖個(gè)數(shù); T 為電話音頻信號(hào)的音頻周期, 單位為s ; tm 為信號(hào)音斷周期的通時(shí)間, 單位為s。
在實(shí)際使用中, 主要需要識(shí)別撥號(hào)音、忙音和回鈴音。分析這三種信號(hào)的特性可以看出, 在一定的計(jì)數(shù)時(shí)間內(nèi), 其脈沖個(gè)數(shù)是不一樣的。在設(shè)計(jì)之初, 考慮采用5s 為一個(gè)計(jì)數(shù)單位來判斷這三種信號(hào)音, 但通過實(shí)際的調(diào)試發(fā)現(xiàn): 當(dāng)對(duì)方摘機(jī)時(shí), 要等待一段時(shí)間才能聽到報(bào)警語音。通過反復(fù)研究及調(diào)試, 最終采用2s 計(jì)數(shù)判斷撥號(hào)音, 采用2.8s ( 即4 個(gè)忙音周期) 判斷是否為忙音, 若否則代表電話撥通了。隨后采用1s 為一個(gè)計(jì)數(shù)單元, 采用計(jì)五次后的累加脈沖數(shù)來判斷對(duì)方是否接聽電話。若有, 則放相應(yīng)的報(bào)警提示語音; 否則再計(jì)1s , 然后計(jì)算最后5s 內(nèi)的脈沖數(shù), 再次判斷對(duì)方是否摘機(jī)。如此反復(fù), 直到超過等待時(shí)間仍沒有人接聽電話就掛機(jī)。由于干擾和一些其他因素的存在, 難免會(huì)有誤判的現(xiàn)象而導(dǎo)致漏報(bào)警情。因此采取在所有預(yù)先設(shè)定的電話至少有一個(gè)撥通就只撥一遍, 如果全部沒撥通或者沒人接聽則把所有預(yù)存電話重?fù)芤贿叄?這樣漏報(bào)報(bào)警的概率就非常低以致可忽略不計(jì)。
3.2 軟件設(shè)置
自動(dòng)撥號(hào)程序的流程圖如圖5 所示。下面是自動(dòng)撥號(hào)的部分程序 。
AUTOCALL: CLR P1.2 ;模擬摘機(jī)
MOV A,#5DH ;允許信號(hào)音輸出, 下一次為寫控制寄存器CRB
MOVX @DPTR,A ;寫控制寄存器CRA
MOV A,#51H ;MT8880 置為突發(fā)模式
MOVX @DPTR,A ;寫控制寄存器CRB
MOV A,#56H ;MT8880 置為呼叫模式
MOVX @DPTR,A ;寫控制寄存器CRA
LCALL DELAY
LCALL AUTOY ;調(diào)用信號(hào)音判別子程序, 看是否有撥號(hào)音
MOV A,#5DH ;允許信號(hào)音輸出, 下一次為寫控制寄存器CRB
MOVX @DPTR,A ;寫控制寄存器CRA
MOV A,#50H ;MT8880 置為突發(fā)模式
MOVX @DPTR,A ;寫控制寄存器CRB
…… ;撥電話號(hào)碼
MOV A,#56H ;MT8880 置為呼叫模式
MOVX @DPTR,A ;寫控制寄存器CRA
LCALL AUTOY ;調(diào)用信號(hào)音判別子程序, 看是否有回鈴音
LCALL AUTOY ;調(diào)用信號(hào)音判別子程序, 看對(duì)方是否摘機(jī)
SETB P1.2 ;模擬掛機(jī)
3.3 編程過程中應(yīng)注意的幾點(diǎn)
首先, MT8880 的DTMF 產(chǎn)生器是發(fā)送部分的主體,它產(chǎn)生全部十六種失真小、精度高的標(biāo)準(zhǔn)雙音頻信號(hào),這些頻率均由3.579545MHz 晶體振蕩器分頻產(chǎn)生。電路由數(shù)字頻率合成器、行/ 列可編程分頻器、開關(guān)電容式D/A變換器組成。行和列單音正弦波經(jīng)混合、濾波后產(chǎn)生雙音頻信號(hào)。通過DTMF 編解碼表把編碼數(shù)據(jù)寫入MT8880 發(fā)送寄存器產(chǎn)生單獨(dú)的fLOW 和fHIGH, 一旦編碼錯(cuò)誤就會(huì)導(dǎo)致?lián)芴?hào)失敗, 故在編程過程中要十分小心。其編解碼表見MT8880 的Datasheet 。
其次, 在摘機(jī)后應(yīng)延時(shí)一段時(shí)間再去判斷摘機(jī)音,因?yàn)楸鞠到y(tǒng)采用機(jī)械繼電器實(shí)現(xiàn)自動(dòng)摘機(jī), 故應(yīng)考慮繼電器的響應(yīng)時(shí)間。
最后, 一個(gè)電話號(hào)碼撥完后不能立即撥下一個(gè)電話號(hào)碼, 應(yīng)保證掛機(jī)的最短有效時(shí)間以確保前一電話號(hào)碼確實(shí)已掛機(jī), 否則撥下一個(gè)電話號(hào)碼時(shí)會(huì)沒有撥號(hào)音。
本系統(tǒng)配置靈活, 可以有效、快速地應(yīng)用于對(duì)安防要求比較高的場合。例如: 對(duì)不需要監(jiān)視視頻丟失的場合, 可以不配置視頻監(jiān)測盒; 而對(duì)智能小區(qū)、醫(yī)院等, 可以通過RS485 總線將一臺(tái)DVR ( Digital Video Recorder )主機(jī)、一套報(bào)警監(jiān)控軟件和多臺(tái)報(bào)警主機(jī)組合到一起,構(gòu)成一個(gè)網(wǎng)絡(luò)型智能監(jiān)控系統(tǒng)。
本報(bào)警系統(tǒng)具有價(jià)格低廉、操作簡便、通訊速度快、可靠性高和誤報(bào)率低的優(yōu)點(diǎn)。