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