無需PC機控制的離線電話自動通知系統(tǒng)設計
1 系統(tǒng)總體設計
本系統(tǒng)由上位機自動通知控制軟件和下位機離線電話自動通知裝置構成。其中,上位機自動通知控制軟件主要完成電話號碼和通知信息的管理,它只是一個信息管理系統(tǒng),而具體電話通知的工作是由離線電話自動通知裝置獨立自動完成的。
如圖1所示,離線電話自動通知裝置主要由通知信息存儲模塊、語音數(shù)據(jù)存儲與播放電路、電話呼叫及狀態(tài)檢測模塊、DTMF信號檢測模塊、串口通信及系統(tǒng)控制模塊等組成。其中,通知信息存儲模塊用來完成通知信息(包括被通知的電話號碼、通知語音和提示音的存儲以及本次通知狀態(tài)信息)的存儲,硬件上主要使用串口閃存芯片實現(xiàn);語音數(shù)據(jù)存儲與播放電路用來完成語音信息的D/A轉換,再通過語音信號耦合電路將音頻信號與電話線路進行信號耦合輸出;電話呼叫及狀態(tài)檢測模塊用來完成電話號碼的撥叫和呼叫狀態(tài)的檢測,用于判斷接聽狀態(tài),其中包括DTMF信號生成與呼叫及狀態(tài)檢測電路(使用DTMF編解碼芯片完成)、模擬摘掛機電路及摘掛機檢測電路;DTMF信號檢測模塊用來檢測電話撥通之后,播放通知語音過程中接聽方是否按下確認鍵(使用另外一片DTMF編解碼芯片完成);串口通信及系統(tǒng)控制模塊,由串口電平轉換電路和由MCS51系列MCU(AT89S52)構成的控制單元組成,用來完成通知過程的控制和數(shù)據(jù)通信。
圖1 離線電話自動通知裝置結構框圖
2 語音數(shù)據(jù)存儲與播放電路
電話通知信息主要由電話號碼數(shù)據(jù)和語音信息編碼數(shù)據(jù)構成。其中,電話號碼數(shù)據(jù)為ASCII碼,信息量不多;語音信息編碼數(shù)據(jù)則使用PCM編碼格式,也可以使用其他的壓縮編碼形式。如果使用壓縮編碼,單片機程序還要設計相應的解碼程序,會加重單片機的執(zhí)行負擔,因此建議使用PCM編碼格式。
圖2 語音數(shù)據(jù)存儲與播放電路
語音數(shù)據(jù)存儲與播放電路如圖2所示。針對電話系統(tǒng)的語音質(zhì)量要求不高的特點[2],本文使用了8位的量化位數(shù)和8 kHz的采樣頻率,因此其數(shù)據(jù)量不大,2分鐘的語音數(shù)據(jù)量為1×8000×120=960000 B,再加上電話號碼信息所用的1 MB閃存,系統(tǒng)使用16 Mb(2 MB)的閃存就能夠很好地滿足電話通知的要求。這里采用SPI接口的閃存芯片W25X16 [3],由于AT89S52沒有SPI接口,所以使用P1口,通過軟件方式來模擬SPI口實現(xiàn)與W25X16的通信。
MCU將閃存W25X16中的語音數(shù)據(jù)通過P1口線讀出后,以8000 Hz的頻率通過P0口發(fā)送給D/A轉換器DAC0832,進行語音還原輸出;模擬語音經(jīng)過放大器LM393AH進行電流電壓轉換后,送至語音信號耦合電路輸入線TONE,將語音信號耦合到電話線路上,從而實現(xiàn)電話通知的語音播放。
3 DTMF信號生成與呼叫及狀態(tài)檢測電路
DTMF信號生成與呼叫及狀態(tài)檢測電路如圖3所示。上位機將要撥打的電話號碼和需要播報的電話語音通過串口發(fā)送給MCU,并存儲到Flash芯片W25X16中后,MCU將啟動電話自動通知過程。從W25X16中讀取要撥打的電話號碼,系統(tǒng)置P3.4為高電平,進行模擬摘機。當系統(tǒng)通過P3.7 檢測到摘機狀態(tài)有效后,將每位電話號碼數(shù)據(jù)的BCD碼送至MT8888的D0~D3數(shù)據(jù)線,同時使WR和CS信號有效,即可寫入MT8888的DTMF編碼電路。MT8888根據(jù)MCU連續(xù)寫入的BCD碼,通過TONE引腳連續(xù)發(fā)出相應的DTMF信號,再經(jīng)由Q1、Q2構成的語音信號耦合電路[4]將音頻信號耦合到電話線上,從而發(fā)送
評論