離線電話自動(dòng)通知系統(tǒng)設(shè)計(jì)
語(yǔ)音數(shù)據(jù)存儲(chǔ)與播放電路如圖2所示。針對(duì)電話系統(tǒng)的語(yǔ)音質(zhì)量要求不高的特點(diǎn),本文使用了8位的量化位數(shù)和8 kHz的采樣頻率,因此其數(shù)據(jù)量不大,2分鐘的語(yǔ)音數(shù)據(jù)量為1×8 000×120=960000 B,再加上電話號(hào)碼信息所用的1 MB閃存,系統(tǒng)使用16 Mb(2 MB)的閃存就能夠很好地滿足電話通知的要求。這里采用SPI接口的閃存芯片W25X16,由于AT89S52沒(méi)有SPI接口,所以使用P1口,通過(guò)軟件方式來(lái)模擬SPI口實(shí)現(xiàn)與W25x16的通信。
MCU將閃存W25X16中的語(yǔ)音數(shù)據(jù)通過(guò)P1口線讀出后,以8000 Hz的頻率通過(guò)PO口發(fā)送給D/A轉(zhuǎn)換器DAC0832,進(jìn)行語(yǔ)音還原輸出;模擬語(yǔ)音經(jīng)過(guò)放大器LM393AH進(jìn)行電流電壓轉(zhuǎn)換后,送至語(yǔ)音信號(hào)耦合電路輸入線TONE,將語(yǔ)音信號(hào)耦合到電話線路上,從而實(shí)現(xiàn)電話通知的語(yǔ)音播放。
3 DTMF信號(hào)生成與呼叫及狀態(tài)檢測(cè)電路
DTMF信號(hào)生成與呼叫及狀態(tài)檢測(cè)電路如圖3所示。上位機(jī)將要撥打的電話號(hào)碼和需要播報(bào)的電話語(yǔ)音通過(guò)串口發(fā)送給MCU,并存儲(chǔ)到Flash芯片 W25X16中后,MCU將啟動(dòng)電話自動(dòng)通知過(guò)程。從W25X16中讀取要撥打的電話號(hào)碼,系統(tǒng)置P3.4為高電平,進(jìn)行模擬摘機(jī)。當(dāng)系統(tǒng)通過(guò)P3.7檢測(cè)到摘機(jī)狀態(tài)有效后,將每位電話號(hào)碼數(shù)據(jù)的BCD碼送至MT8888的D0~D3數(shù)據(jù)線,同時(shí)使信號(hào)有效,即可寫(xiě)入MT8888的DTMF編碼電路。MT8888根據(jù)MCU連續(xù)寫(xiě)入的BCD碼,通過(guò)TONE引腳連續(xù)發(fā)出相應(yīng)的DTMF信號(hào),再經(jīng)由Q1、Q2構(gòu)成的語(yǔ)音信號(hào)耦合電路將音頻信號(hào)耦合到電話線上,從而發(fā)送給程控交換機(jī)實(shí)現(xiàn)軟件撥號(hào)。
撥號(hào)完成后,MCU設(shè)置MT8888工作在呼叫監(jiān)聽(tīng)模式,進(jìn)行呼叫狀態(tài)監(jiān)聽(tīng)。MT8888通過(guò)2引腳檢測(cè)電話線上傳輸信號(hào),MCU通過(guò)讀取MT8888的引腳輸出的脈沖頻率和脈沖個(gè)數(shù)即可分析出呼叫狀態(tài)。若線路上傳輸?shù)氖?50 Hz的音頻信號(hào),而且是持續(xù)1 s后4 s無(wú)的循環(huán)信號(hào),則為回鈴音信號(hào),即處于振鈴狀態(tài);如果線路上傳輸?shù)氖?50 Hz的音頻信號(hào),而且O.35 s通O.35 s斷的循環(huán)信號(hào),則為忙音信號(hào),即處于線路忙或掛機(jī)狀態(tài)。
在語(yǔ)音播報(bào)過(guò)程中,系統(tǒng)同樣使用另一塊MT8888芯片構(gòu)成的DTMF檢測(cè)電路,檢測(cè)當(dāng)前電話接聽(tīng)者的按鍵動(dòng)作,以判斷其是否按下確認(rèn)按鍵。系統(tǒng)根據(jù)按鍵狀態(tài)保存本次通話或通知的狀態(tài)。
評(píng)論