多網(wǎng)絡(luò )智能遠程遙控系統的設計與實(shí)現
關(guān)鍵詞:遠程控制 雙音頻解碼 計算機控制 網(wǎng)絡(luò )通訊
遙控技術(shù)是通過(guò)一定的手段對被控物體實(shí)施一定距離控制的一種技術(shù),常用的方式有無(wú)線(xiàn)電遙控、有線(xiàn)遙控、紅外線(xiàn)和超聲波遙控等。
而多網(wǎng)絡(luò )遙控則是一種新型智能控制技術(shù),它與常規的遙控方式相比,具有無(wú)需進(jìn)行專(zhuān)門(mén)的布線(xiàn),不占用無(wú)線(xiàn)電頻率資源,避免電磁污染等優(yōu)勢。同時(shí),由于電信線(xiàn)路各地聯(lián)網(wǎng),互聯(lián)網(wǎng)遍布世界各地,因此,可以充分利用現有的網(wǎng)絡(luò )資源跨省市,甚至跨越國家無(wú)限長(cháng)度地進(jìn)行智能遙控。多網(wǎng)絡(luò )遙控這一課題目前已有涉足者,但是還只限于實(shí)驗室階段,距實(shí)際應用,尤其是對于日常生活尚有一定的距離,并不能完全體現出網(wǎng)絡(luò )遙控方式的雙工通信特點(diǎn)。本文基于這一點(diǎn)進(jìn)行了較大改進(jìn)。該方法采用單片機進(jìn)行智能控制,并利用不同的語(yǔ)音提示及計算機軟件來(lái)達到對于不同操作的提示及對受控方狀態(tài)信息的反饋,從而實(shí)現友好的人機交互界面,使操作者能夠實(shí)時(shí)了解受控方信息,并最終使產(chǎn)品達到交互式與智能化的水平。本系統以CCITT及中國的部分標準程控交換信令(DTMF雙音多頻信號,振鈴信號以及Internet互聯(lián)網(wǎng)的TCP/IP通信標準等)作為系統控制命令及其數據傳輸標準,因而可為以后的產(chǎn)品化提供良好的基礎。
2 總體設計方案
多網(wǎng)絡(luò )智能遙控器的主控部分(即下位機工作部分)由單片機構成,主要進(jìn)行信息處理;如接收外部操作指令以形成各種控制信號,完成各種信息的記錄和信號檢測并為識別控制電路提供單片機與電話(huà)外線(xiàn)和計算機的接口等。同時(shí)還包括鈴流及其摘掛機檢測、摘掛機控制、雙音頻DTMF識別、串行通訊口控制電路和語(yǔ)音提示等電路。此外還有上位機程序編制和網(wǎng)絡(luò )通訊程序編制等(即上位機工作的互聯(lián)網(wǎng)通信部分)。圖1所示是其系統原理方框圖。
本系統中的語(yǔ)音提示電路受單片機的控制,能產(chǎn)生相應的提示語(yǔ)音,可通過(guò)反饋電路反饋至電話(huà)外線(xiàn),從而使操作者對電器的操作達到交互式,以便即時(shí)了解有關(guān)信息,并為用戶(hù)提供友好的操作界面(對電話(huà)網(wǎng)絡(luò )用戶(hù))。該系統可通過(guò)串行通訊口與上位機相連接后接入Internet互聯(lián)網(wǎng),上位機的網(wǎng)絡(luò )控制程序中也設置了語(yǔ)音提示并且具有更加友好的控制界面以方便用戶(hù)操作(對互聯(lián)網(wǎng)用戶(hù))。
本系統的每一個(gè)接口電路(振鈴檢測、模擬摘掛機、語(yǔ)音提示、雙音頻解碼等)都已經(jīng)過(guò)實(shí)際的交換機在線(xiàn)實(shí)驗,實(shí)用性很強。此外,本系統還有許多可以添加的功能。由于本裝置是并聯(lián)于電話(huà)機的兩端,因而不會(huì )影響電話(huà)機的正常使用。用戶(hù)通過(guò)異地的電話(huà)機撥通本裝置所連接外線(xiàn)的電話(huà)號碼時(shí),便可通過(guò)市局交換機向電話(huà)機發(fā)出振鈴信號。本裝置如果檢測到三次振鈴,即三次響鈴后無(wú)人接聽(tīng),則自動(dòng)摘機,進(jìn)入控制環(huán)境,同時(shí)根據語(yǔ)音提示在用戶(hù)完成操作后退出本系統。用戶(hù)也可以通過(guò)互聯(lián)網(wǎng)登陸目標主機服務(wù)器來(lái)進(jìn)行遠程控制。本系統采用Visual C++編程來(lái)實(shí)現上位機控制與Internet遠程遙控。它可將現有的電話(huà)功能加以擴展,其中公用管理部分包括繼續唿叫功能、來(lái)訪(fǎng)語(yǔ)音留言功能(可自動(dòng)記錄時(shí)間和日期)等;而私用管理部分則包括收聽(tīng)來(lái)訪(fǎng)的語(yǔ)音留言、控制電器、查詢(xún)電器工作狀態(tài)等。
3 設計與實(shí)踐
本系統所設計的電路主要包括一個(gè)語(yǔ)音錄放電路,一個(gè)雙音頻譯碼電路,一個(gè)鈴流檢測電路,CPU電路,串行通訊電路和繼電器控制電路。
3.1 鈴流檢測單元電路
當用戶(hù)被唿叫時(shí),程控電話(huà)交換機發(fā)出鈴流出號。振鈴信號為253V的正弦波,揩鈴失真不大于10%,電壓有效值為9015V。振鈴為5秒為周期,即1秒送,4秒斷。因振鈴信號電壓比較高,故應使之降壓后再輸入至光電耦合器,以通過(guò)光耦進(jìn)行隔離轉換。因而光電耦合器輸出的是時(shí)通時(shí)斷的脈沖,信號可直接輸出至單片機的計數器輸入口,從而完成整個(gè)振鈴音檢測和計數的過(guò)程。電話(huà)外線(xiàn)信號通過(guò)0.47μF電容器的隔直和5.1kΩ電阻器的衰減加到光電耦合器的發(fā)光二極管端。與之并聯(lián)的反相二極管的作用是保護發(fā)光二極管,以免其反相電壓過(guò)高而損害發(fā)光二極管。通過(guò)試驗,最終確定選50kΩ電阻可起到拉高光耦引腳電壓的作用。
3.2 雙音頻解碼單元電路
雙音頻解碼電路由專(zhuān)用芯片MT8870組成。圖2所示是其外部電路,譯碼結果由數據總線(xiàn)提供給CPU的P1.0~P1.3口,譯碼結束后產(chǎn)生的中斷請求信號可通過(guò)T0(組成加1計數器)請求中斷,以告訴CPU轉換結束,數據等待讀入。讀入信號為四位二進(jìn)制碼,碼值民電話(huà)按鍵的對應關(guān)系如表1所列。
表1 碼值與電話(huà)按鍵的對應關(guān)系
FLOW | FHIGH | DIGIT | D3 | D2 | D1 | D0 |
697 | 1209 | 1 | 0 | 0 | 0 | 1 |
697 | 1336 | 2 | 0 | 0 | 1 | 0 |
697 | 1477 | 3 | 0 | 0 | 1 | 1 |
770 | 1209 | 4 | 0 | 1 | 0 | 0 |
770 | 1336 | 5 | 0 | 1 | 0 | 1 |
770 | 1477 | 6 | 0 | 1 | 11 | 0 |
852 | 1209 | 7 | 0 | 1 | 1 | 1 |
852 | 1336 | 8 | 1 | 0 | 0 | 0 |
852 | 1477 | 9 | 1 | 0 | 0 | 1 |
941 | 1336 | 0 | 1 | 0 | 1 | 0 |
941 | 1209 | * | 1 | 0 | 1 | 1 |
941 | 1477 | # | 1 | 1 | 0 | 0 |
697 | 1633 | A | 1 | 1 | 0 | 1 |
770 | 1633 | B | 1 | 1 | 1 | 0 |
852 | 1633 | C | 1 | 1 | 1 | 1 |
941 | 1633 | D | 0 | 0 | 0 | 0 |
當外線(xiàn)信號經(jīng)過(guò)二極管組成的橋路降壓整形后,可由0.1μF的電容進(jìn)行隔直并由100kΩ的電阻進(jìn)行衰減,然后便可以將其進(jìn)入雙音頻譯碼芯片MT8870的輸入端。
3.3 語(yǔ)音電路
本系統選用美國ISO公司的ISD4003單片語(yǔ)音錄放集成電路作為語(yǔ)音提示電路的核心部分。ISD4003采用E2PROM存儲器,可永久保存信息,并可零功能存儲;該存儲器同時(shí)采用D/A直接模擬量存儲技術(shù),因而能較好地保留語(yǔ)音信息中的有效成分,提高錄放音的清晰度。ISD4003可以存儲長(cháng)達8分鐘的語(yǔ)音,并能實(shí)現分段語(yǔ)音錄放,每段錄放音均有一個(gè)起始地址,該起始地址及其控制信號均可由單片機通過(guò)其SPI通信口給定。ISD4003的外圍電路非常簡(jiǎn)單,只需少許阻容元件即可。由ISD4003構成的系統與用戶(hù)的語(yǔ)音交互界面單元電路如圖3所示。
3.4 串行通訊電路和CPU單元
本系統中的串行通訊電路由專(zhuān)用的MAX202組成,主要用于系統與PC機的串行通信。CPU電路由AT89C52作為中央處理器并配以簡(jiǎn)單的外圍電路組成,同時(shí)選用22μF的電容和1kΩ的電阻構成系統自動(dòng)上電復位電路。11.0592MHz晶振和兩個(gè)30pF的電容組成了系統的時(shí)鐘基準電路。由于CPU內部就有存儲器,所以本系統未對其進(jìn)行存儲擴展。
圖3 語(yǔ)音單元電路
4 軟件設計
4.1 下位機通訊軟件設計
通過(guò)receive()函數可實(shí)現下位機與上位機的數據接收,而send()函數則用于實(shí)現下拉機與位機的數據發(fā)送,bote()函數的作用是實(shí)現串行通訊口初始化和9600波特率的產(chǎn)生。
4.2 雙音頻識別部分軟件的設計
雙音頻信號由雙音頻譯碼單元電路檢測,當有信號將譯碼輸出到數據總線(xiàn)后,系統將產(chǎn)生中斷請求,并送到T0計數器以產(chǎn)生中斷,同時(shí)由CPU執行T0中斷服務(wù)程序。T0中斷服務(wù)程序由firstdetect()函數和seconddetect()函數組成。Firsdetect()函數用于完成對總線(xiàn)(P1.0~P1.3)數據的第一層菜單值進(jìn)行讀入識別;seconddetect()函數用于完成對總線(xiàn)數據第二層菜單值的讀入識別。由于本系統目前只設有兩層菜單,所以第二層也同時(shí)用作控制命令的觸發(fā)。
4.3 語(yǔ)音控制部分的通信軟件設計
以下的SPI通信程序是用C51語(yǔ)言的16位命令格式編寫(xiě)的。使用時(shí),將其高8位地址和低8位地址正確給定,即可將控制信息(包含在高8位地址的高5位)通過(guò)ISD4003的SPI口進(jìn)行傳輸。詳細的SPI接口指令見(jiàn)ISD4003系列芯片手冊。下面給出部分語(yǔ)音控制部分的通信程序。
Void SPI_COM(uchar address-high,uchar address-low
{
uchar i,Bit-temp;
SCLK=0;
SS=0; /*chip selected signal*/
for(i=0;i8;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;i8;i++) /*write high eight bits address*/
{
SCLK=0;
Bit-temp=address-high0x01; /*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í)現
通訊軟件主要由Internet網(wǎng)絡(luò )通訊軟件和本地上、下位機通訊軟件組成。Internet網(wǎng)絡(luò )通訊主要完成網(wǎng)絡(luò )控制。該部分主要由客戶(hù)端軟件和服務(wù)器軟件組成,網(wǎng)絡(luò )通訊軟件可在windows環(huán)境下用Visual C++開(kāi)發(fā)完成。而上位機通訊軟件則用于完成服務(wù)器(微型計算機)和下位機的通訊。該網(wǎng)絡(luò )通訊的結構原理如圖4所示。網(wǎng)絡(luò )通訊軟件可用Visual C++為基礎為設計。它通??捎煽蛻?hù)端軟件和服務(wù)器軟件來(lái)組成。
服務(wù)器作為上位機和系統中央控制器,通常通過(guò)串行通訊口相連接。由于本系統上、下位機的傳輸數據不多,所以沒(méi)有設置專(zhuān)門(mén)的數據庫。所得的信息只供控制用,而不必存儲成文件。上、下位機通訊時(shí),本系統規定了以下協(xié)議:上位機對下位機發(fā)送字母‘A’表示空調器打開(kāi),發(fā)送'a'表示空調器關(guān)閉,下位機對上位機是同樣的對應關(guān)系;發(fā)送‘B’表示熱水器打開(kāi),發(fā)送'b'表示熱水器關(guān)閉;發(fā)送‘C’表示電飯煲打開(kāi),發(fā)送‘c’表示電飯煲關(guān)閉??蛻?hù)端軟件是作為遠程Internet網(wǎng)絡(luò )控制的終端軟件,系統通訊應采用文本形式,命令由文本字符串組成。例如:當按下開(kāi)熱水器按鈕時(shí),客戶(hù)端軟件向服務(wù)器軟件發(fā)出命令字符串“Water Heater Is Opened”,服務(wù)器軟件端顯示:“CMD from client:Water Heater Is Opened”并在內部解釋該字符串命令,即發(fā)送‘B’給下位機。而當中央控制器通過(guò)電話(huà)遠程控制電路來(lái)打開(kāi)熱水器后,下位機將發(fā)送給上位機(服務(wù)器)一個(gè)‘A’,以表示熱水器已經(jīng)打開(kāi);當電話(huà)遠程控制關(guān)閉熱水器后,下位機則發(fā)給上位機(服務(wù)器)一個(gè)‘a(chǎn)’,以表示空調器已經(jīng)關(guān)閉。同時(shí)客戶(hù)端軟件會(huì )有相應的提示語(yǔ)音,以表明家里電器的狀態(tài),以此實(shí)現兩種控制方式之間的信息交互。
5 系統聯(lián)機調試
本系統聯(lián)機調試所用到的設備如下:
(1)MCS-51仿真機一臺;
(2)HA6138(18)P/T雙音多頻電話(huà)機一部;
(3)微機二臺;
(4)示波器一臺;
(5)數字萬(wàn)用表一臺;
本系統上電即可自動(dòng)復位。它可采用5V蓄電池供電,實(shí)際上,該產(chǎn)品也可以由電話(huà)線(xiàn)饋電提供電壓。本系統需要一臺電話(huà)來(lái)完成其輔助功能,即語(yǔ)音留言和收聽(tīng)留言。電話(huà)的聽(tīng)筒要和本系統的語(yǔ)音錄音輸入互相連接,話(huà)筒和本系統的語(yǔ)音輸出相連接。實(shí)際產(chǎn)品可以將電話(huà)功能集成。當準備使用網(wǎng)絡(luò )功能時(shí),用戶(hù)應將本系統通過(guò)串行通訊口連接到家中的聯(lián)網(wǎng)計算機上面,然后運行本系統的服務(wù)器端軟件,同時(shí)指定服務(wù)器計算機的端口號。這樣,使用者在外地就可以通過(guò)客戶(hù)端軟件來(lái)訪(fǎng)問(wèn)家中的服務(wù)器并發(fā)送控制信息。
當用戶(hù)以電話(huà)網(wǎng)絡(luò )來(lái)實(shí)現控制時(shí),本的工作方式為:檢測三次振鈴信號,如無(wú)人接聽(tīng)則自動(dòng)摘機,同時(shí)播放語(yǔ)音提示:“這里是某某家中央控制系統,請按鍵選擇功能,1繼續唿叫,2語(yǔ)音留言,3遠程控制……”。用戶(hù)根據語(yǔ)音提示選擇功能,最后按“?!辨I結束本次控制過(guò)程并掛斷。特別的是,當用戶(hù)進(jìn)入遠程控制功能時(shí),要接著(zhù)輸入四位密碼否則不能完成控制,密碼正確后會(huì )有語(yǔ)音提示:“請選擇:1打開(kāi)空調器,2關(guān)閉空調器,3打開(kāi)熱水器,4關(guān)閉熱水器,5打開(kāi)電飯煲,6關(guān)閉電飯煲……”。
當用戶(hù)以Internet互聯(lián)網(wǎng)來(lái)實(shí)現控制時(shí),本系統客戶(hù)端軟件界面將十分友好。用戶(hù)可先連接到家中的服務(wù)器,然后用鼠標點(diǎn)擊來(lái)實(shí)現相應的功能。由于進(jìn)入客戶(hù)端軟件和服務(wù)器軟件都需要用戶(hù)的授權密碼,因此,該系統使用時(shí)非常安全。
6 結論
通過(guò)將本系統在實(shí)際電話(huà)網(wǎng)絡(luò )和Internet網(wǎng)絡(luò )中的運行表明,該系統達到了設計初期的各項要求。相信在未來(lái)的信息家電、智能小區、工業(yè)遠程控制等方向得到廣泛的應用。為了突出本系統的多網(wǎng)絡(luò )遙控信息反饋功能,本系統采用對現有電話(huà)功能進(jìn)行擴展的方案,而且所使用的集成電路和其它元器件都盡量選擇高性?xún)r(jià)比的。這樣,在各路終端上接上傳感器即可實(shí)現對環(huán)境的實(shí)時(shí)監測;同時(shí)將系統上自動(dòng)撥碼電路還可將預定信息轉至主人手機或某個(gè)特定電話(huà),從而達到定時(shí)提醒主人或家庭防盜報警的目的。此外,本系統還可以應用于工礦企業(yè)的遠程自動(dòng)化控制等領(lǐng)域。
評論