新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT89C51單片機(jī)智能語音撥號報(bào)警系統(tǒng)

AT89C51單片機(jī)智能語音撥號報(bào)警系統(tǒng)

作者: 時(shí)間:2012-11-03 來源:網(wǎng)絡(luò) 收藏

AT89C51單片機(jī)智能語音撥號報(bào)警系統(tǒng)
語音分段方法: 地址輸入端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 信號音的識別方法
系統(tǒng)在巡檢到警情信號后就模擬摘機(jī)。為了識別模擬摘機(jī)后電話系統(tǒng)是否處于可撥號的狀態(tài)、電話撥完號碼后電話是否接通以及對方是否摘機(jī)接聽電話等幾種狀態(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ù)脈沖信號的脈沖個(gè)數(shù)進(jìn)行識別。這些電話音頻信號的脈沖個(gè)數(shù)可用下式計(jì)算:
N=tm/T
式中, N 為每音段周期的脈沖個(gè)數(shù); T 為電話音頻信號的音頻周期, 單位為s ; tm 為信號音斷周期的通時(shí)間, 單位為s。
在實(shí)際使用中, 主要需要識別撥號音、忙音和回鈴音。分析這三種信號的特性可以看出, 在一定的計(jì)數(shù)時(shí)間內(nèi), 其脈沖個(gè)數(shù)是不一樣的。在設(shè)計(jì)之初, 考慮采用5s 為一個(gè)計(jì)數(shù)單位來判斷這三種信號音, 但通過實(shí)際的調(diào)試發(fā)現(xiàn): 當(dāng)對方摘機(jī)時(shí), 要等待一段時(shí)間才能聽到報(bào)警語音。通過反復(fù)研究及調(diào)試, 最終采用2s 計(jì)數(shù)判斷撥號音, 采用2.8s ( 即4 個(gè)忙音周期) 判斷是否為忙音, 若否則代表電話撥通了。隨后采用1s 為一個(gè)計(jì)數(shù)單元, 采用計(jì)五次后的累加脈沖數(shù)來判斷對方是否接聽電話。若有, 則放相應(yīng)的報(bào)警提示語音; 否則再計(jì)1s , 然后計(jì)算最后5s 內(nèi)的脈沖數(shù), 再次判斷對方是否摘機(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)撥號程序的流程圖如圖5 所示。下面是自動(dòng)撥號的部分程序 。
AUTOCALL: CLR P1.2 ;模擬摘機(jī)
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)用信號音判別子程序, 看對方是否摘機(jī)
SETB P1.2 ;模擬掛機(jī)

3.3 編程過程中應(yīng)注意的幾點(diǎn)
首先, 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)生單獨(dú)的fLOW 和fHIGH, 一旦編碼錯(cuò)誤就會(huì)導(dǎo)致?lián)芴柺? 故在編程過程中要十分小心。其編解碼表見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è)電話號碼撥完后不能立即撥下一個(gè)電話號碼, 應(yīng)保證掛機(jī)的最短有效時(shí)間以確保前一電話號碼確實(shí)已掛機(jī), 否則撥下一個(gè)電話號碼時(shí)會(huì)沒有撥號音。
本系統(tǒng)配置靈活, 可以有效、快速地應(yīng)用于對安防要求比較高的場合。例如: 對不需要監(jiān)視視頻丟失的場合, 可以不配置視頻監(jiān)測盒; 而對智能小區(qū)、醫(yī)院等, 可以通過RS485 總線將一臺DVR ( Digital Video Recorder )主機(jī)、一套報(bào)警監(jiān)控軟件和多臺報(bào)警主機(jī)組合到一起,構(gòu)成一個(gè)網(wǎng)絡(luò)型智能監(jiān)控系統(tǒng)。
具有價(jià)格低廉、操作簡便、通訊速度快、可靠性高和誤報(bào)率低的優(yōu)點(diǎn)。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉