當(dāng)外線信號(hào)經(jīng)過二極管組成的橋路降壓整形后,可由0.1μF的電容進(jìn)行隔直并由100kΩ的電阻進(jìn)行衰減,然后便可以將其進(jìn)入雙音頻譯碼芯片MT8870的輸入端。
3.3 語音電路
本系統(tǒng)選用美國ISO公司的ISD4003單片語音錄放集成電路作為語音提示電路的核心部分。ISD4003采用E2PROM存儲(chǔ)器,可永久保存信息,并可零功能存儲(chǔ);該存儲(chǔ)器同時(shí)采用D/A直接模擬量存儲(chǔ)技術(shù),因而能較好地保留語音信息中的有效成分,提高錄放音的清晰度。ISD4003可以存儲(chǔ)長達(dá)8分鐘的語音,并能實(shí)現(xiàn)分段語音錄放,每段錄放音均有一個(gè)起始地址,該起始地址及其控制信號(hào)均可由單片機(jī)通過其SPI通信口給定。ISD4003的外圍電路非常簡(jiǎn)單,只需少許阻容元件即可。由ISD4003構(gòu)成的系統(tǒng)與用戶的語音交互界面單元電路如圖3所示。
3.4 串行通訊電路和CPU單元
本系統(tǒng)中的串行通訊電路由專用的MAX202組成,主要用于系統(tǒng)與PC機(jī)的串行通信。CPU電路由AT89C52作為中央處理器并配以簡(jiǎn)單的外圍電路組成,同時(shí)選用22μF的電容和1kΩ的電阻構(gòu)成系統(tǒng)自動(dòng)上電復(fù)位電路。11.0592MHz晶振和兩個(gè)30pF的電容組成了系統(tǒng)的時(shí)鐘基準(zhǔn)電路。由于CPU內(nèi)部就有存儲(chǔ)器,所以本系統(tǒng)未對(duì)其進(jìn)行存儲(chǔ)擴(kuò)展。
圖3 語音單元電路
4 軟件設(shè)計(jì)
4.1 下位機(jī)通訊軟件設(shè)計(jì)
通過receive()函數(shù)可實(shí)現(xiàn)下位機(jī)與上位機(jī)的數(shù)據(jù)接收,而send()函數(shù)則用于實(shí)現(xiàn)下拉機(jī)與位機(jī)的數(shù)據(jù)發(fā)送,bote()函數(shù)的作用是實(shí)現(xiàn)串行通訊口初始化和9600波特率的產(chǎn)生。
4.2 雙音頻識(shí)別部分軟件的設(shè)計(jì)
雙音頻信號(hào)由雙音頻譯碼單元電路檢測(cè),當(dāng)有信號(hào)將譯碼輸出到數(shù)據(jù)總線后,系統(tǒng)將產(chǎn)生中斷請(qǐng)求,并送到T0計(jì)數(shù)器以產(chǎn)生中斷,同時(shí)由CPU執(zhí)行T0中斷服務(wù)程序。T0中斷服務(wù)程序由firstdetect()函數(shù)和seconddetect()函數(shù)組成。Firsdetect()函數(shù)用于完成對(duì)總線(P1.0~P1.3)數(shù)據(jù)的第一層菜單值進(jìn)行讀入識(shí)別;seconddetect()函數(shù)用于完成對(duì)總線數(shù)據(jù)第二層菜單值的讀入識(shí)別。由于本系統(tǒng)目前只設(shè)有兩層菜單,所以第二層也同時(shí)用作控制命令的觸發(fā)。
4.3 語音控制部分的通信軟件設(shè)計(jì)
以下的SPI通信程序是用C51語言的16位命令格式編寫的。使用時(shí),將其高8位地址和低8位地址正確給定,即可將控制信息(包含在高8位地址的高5位)通過ISD4003的SPI口進(jìn)行傳輸。詳細(xì)的SPI接口指令見ISD4003系列芯片手冊(cè)。下面給出部分語音控制部分的通信程序。
Void SPI_COM(uchar address-high,uchar address-low
{
uchar i,Bit-temp;
SCLK=0;
SS=0; /*chip selected signal*/
for(i=0;i<8;i++) /*write low eight bits address */
{
SCLK=0;
Bit-temp=address-low & 0x01;
/*0x01 equals to 0000 0001B;get the first bit from the right in this way */
if(Bit-temp==0)
MOSI=0; /*if it doesn''t work,some nops may be needed */
Else
MOSI=1; /*if it doesn''t work,some nops be needed*/
SCLK=1;
Address-low=address-low>>1;
}
for(i=0;i<8;i++) /*write high eight bits address*/
{
SCLK=0;
Bit-temp=address-high&0x01; /*0x01 equals to 0000 0001B;get the first bit from the right in this way*/
if(Bit-temp= =0)
MOSI=0; /*if it doesn''t work,some nops may be needed*/
Else
MOSI=1; /*if it doesn''t work,some nops may be needed*/
SCLK=1;
address-high=address-high>>1;
}
SS=1;
4.4 通訊軟件的設(shè)備與實(shí)現(xiàn)
通訊軟件主要由Internet網(wǎng)絡(luò)通訊軟件和本地上、下位機(jī)通訊軟件組成。Internet網(wǎng)絡(luò)通訊主要完成網(wǎng)絡(luò)控制。該部分主要由客戶端軟件和服務(wù)器軟件組成,網(wǎng)絡(luò)通訊軟件可在windows環(huán)境下用Visual C++開發(fā)完成。而上位機(jī)通訊軟件則用于完成服務(wù)器(微型計(jì)算機(jī))和下位機(jī)的通訊。該網(wǎng)絡(luò)通訊的結(jié)構(gòu)原理如圖4所示。網(wǎng)絡(luò)通訊軟件可用Visual C++為基礎(chǔ)為設(shè)計(jì)。它通?捎煽蛻舳塑浖头⻊(wù)器軟件來組成。
服務(wù)器作為上位機(jī)和系統(tǒng)中央控制器,通常通過串行通訊口相連接。由于本系統(tǒng)上、下位機(jī)的傳輸數(shù)據(jù)不多,所以沒有設(shè)置專門的數(shù)據(jù)庫。所得的信息只供控制用,而不必存儲(chǔ)成文件。上、下位機(jī)通訊時(shí),本系統(tǒng)規(guī)定了以下協(xié)議:上位機(jī)對(duì)下位機(jī)發(fā)送字母‘A’表示空調(diào)器打開,發(fā)送''a''表示空調(diào)器關(guān)閉,下位機(jī)對(duì)上位機(jī)是同樣的對(duì)應(yīng)關(guān)系;發(fā)送‘B’表示熱水器打開,發(fā)送''b''表示熱水器關(guān)閉;發(fā)送‘C’表示電飯煲打開,發(fā)送‘c’表示電飯煲關(guān)閉?蛻舳塑浖亲鳛檫h(yuǎn)程Internet網(wǎng)絡(luò)控制的終端軟件,系統(tǒng)通訊應(yīng)采用文本形式,命令由文本字符串組成。例如:當(dāng)按下開熱水器按鈕時(shí),客戶端軟件向服務(wù)器軟件發(fā)出命令字符串“Water Heater Is Opened”,服務(wù)器軟件端顯示:“CMD from client:Water Heater Is Opened”并在內(nèi)部解釋該字符串命令,即發(fā)送‘B’給下位機(jī)。而當(dāng)中央控制器通過電話遠(yuǎn)程控制電路來打開熱水器后,下位機(jī)將發(fā)送給上位機(jī)(服務(wù)器)一個(gè)‘A’,以表示熱水器已經(jīng)打開;當(dāng)電話遠(yuǎn)程控制關(guān)閉熱水器后,下位機(jī)則發(fā)給上位機(jī)(服務(wù)器)一個(gè)‘a(chǎn)’,以表示空調(diào)器已經(jīng)關(guān)閉。同時(shí)客戶端軟件會(huì)有相應(yīng)的提示語音,以表明家里電器的狀態(tài),以此實(shí)現(xiàn)兩種控制方式之間的信息交互。
5 系統(tǒng)聯(lián)機(jī)調(diào)試
本系統(tǒng)聯(lián)機(jī)調(diào)試所用到的設(shè)備如下:
(1)MCS-51仿真機(jī)一臺(tái);
(2)HA6138(18)P/T雙音多頻電話機(jī)一部;
(3)微機(jī)二臺(tái);
(4)示波器一臺(tái);
(5)數(shù)字萬用表一臺(tái);
本系統(tǒng)上電即可自動(dòng)復(fù)位。它可采用5V蓄電池供電,實(shí)際上,該產(chǎn)品也可以由電話線饋電提供電壓。本系統(tǒng)需要一臺(tái)電話來完成其輔助功能,即語音留言和收聽留言。電話的聽筒要和本系統(tǒng)的語音錄音輸入互相連接,話筒和本系統(tǒng)的語音輸出相連接。實(shí)際產(chǎn)品可以將電話功能集成。當(dāng)準(zhǔn)備使用網(wǎng)絡(luò)功能時(shí),用戶應(yīng)將本系統(tǒng)通過串行通訊口連接到家中的聯(lián)網(wǎng)計(jì)算機(jī)上面,然后運(yùn)行本系統(tǒng)的服務(wù)器端軟件,同時(shí)指定服務(wù)器計(jì)算機(jī)的端口號(hào)。這樣,使用者在外地就可以通過客戶端軟件來訪問家中的服務(wù)器并發(fā)送控制信息。
當(dāng)用戶以電話網(wǎng)絡(luò)來實(shí)現(xiàn)控制時(shí),本的工作方式為:檢測(cè)三次振鈴信號(hào),如無人接聽則自動(dòng)摘機(jī),同時(shí)播放語音提示:“這里是某某家中央控制系統(tǒng),請(qǐng)按鍵選擇功能,1繼續(xù)唿叫,2語音留言,3遠(yuǎn)程控制……”。用戶根據(jù)語音提示選擇功能,最后按“!辨I結(jié)束本次控制過程并掛斷。特別的是,當(dāng)用戶進(jìn)入遠(yuǎn)程控制功能時(shí),要接著輸入四位密碼否則不能完成控制,密碼正確后會(huì)有語音提示:“請(qǐng)選擇:1打開空調(diào)器,2關(guān)閉空調(diào)器,3打開熱水器,4關(guān)閉熱水器,5打開電飯煲,6關(guān)閉電飯煲……”。
當(dāng)用戶以Internet互聯(lián)網(wǎng)來實(shí)現(xiàn)控制時(shí),本系統(tǒng)客戶端軟件界面將十分友好。用戶可先連接到家中的服務(wù)器,然后用鼠標(biāo)點(diǎn)擊來實(shí)現(xiàn)相應(yīng)的功能。由于進(jìn)入客戶端軟件和服務(wù)器軟件都需要用戶的授權(quán)密碼,因此,該系統(tǒng)使用時(shí)非常安全。
6 結(jié)論
通過將本系統(tǒng)在實(shí)際電話網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)中的運(yùn)行表明,該系統(tǒng)達(dá)到了設(shè)計(jì)初期的各項(xiàng)要求。相信在未來的信息家電、智能小區(qū)、工業(yè)遠(yuǎn)程控制等方向得到廣泛的應(yīng)用。為了突出本系統(tǒng)的多網(wǎng)絡(luò)遙控信息反饋功能,本系統(tǒng)采用對(duì)現(xiàn)有電話功能進(jìn)行擴(kuò)展的方案,而且所使用的集成電路和其它元器件都盡量選擇高性價(jià)比的。這樣,在各路終端上接上傳感器即可實(shí)現(xiàn)對(duì)環(huán)境的實(shí)時(shí)監(jiān)測(cè);同時(shí)將系統(tǒng)上自動(dòng)撥碼電路還可將預(yù)定信息轉(zhuǎn)至主人手機(jī)或某個(gè)特定電話,從而達(dá)到定時(shí)提醒主人或家庭防盜報(bào)警的目的。此外,本系統(tǒng)還可以應(yīng)用于工礦企業(yè)的遠(yuǎn)程自動(dòng)化控制等領(lǐng)域。





