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