《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于HT46RU232單片機(jī)的智能家居電話 遠(yuǎn)程控制系統(tǒng)
基于HT46RU232單片機(jī)的智能家居電話 遠(yuǎn)程控制系統(tǒng)
來源:電子技術(shù)應(yīng)用2011年第4期
謝 輝, 王體見, 黃俊森
(重慶三峽學(xué)院 應(yīng)用技術(shù)學(xué)院, 重慶404100)
摘要: 以HT46RU232單片機(jī)為核心,,配接DTMF的MT8870解碼芯片和ISD2560語音芯片,使用電話通信網(wǎng)絡(luò),,設(shè)計(jì)一個(gè)智能家居電話遠(yuǎn)程控制系統(tǒng)。用于校驗(yàn)用戶身份、遠(yuǎn)程控制家用電器,、語音提示引導(dǎo)操作,、家電狀態(tài)查詢等。可使操作者根據(jù)各種提示音及時(shí)了解受控對(duì)象的有關(guān)信息,,并通過電話遠(yuǎn)程控制多個(gè)受控對(duì)象,,實(shí)現(xiàn)家電的遠(yuǎn)程智能化控制。具有推廣價(jià)值,。
Abstract:
Key words :

摘   要:HT46RU232單片機(jī)為核心,,配接DTMF的MT8870解碼芯片和ISD2560語音芯片,使用電話通信網(wǎng)絡(luò),,設(shè)計(jì)一個(gè)智能家居電話遠(yuǎn)程控制系統(tǒng),。用于校驗(yàn)用戶身份、遠(yuǎn)程控制家用電器,、語音提示引導(dǎo)操作,、家電狀態(tài)查詢等??墒共僮髡吒鶕?jù)各種提示音及時(shí)了解受控對(duì)象的有關(guān)信息,,并通過電話遠(yuǎn)程控制多個(gè)受控對(duì)象,實(shí)現(xiàn)家電的遠(yuǎn)程智能化控制,。具有推廣價(jià)值,。
關(guān)鍵詞: 單片機(jī);電話網(wǎng)絡(luò),;智能家居,;遠(yuǎn)程控制

    利用現(xiàn)有的個(gè)人通信終端,實(shí)現(xiàn)基于陸基移動(dòng)通信網(wǎng)(PLMN)和公用電話交換網(wǎng)(PSTN)的電話遠(yuǎn)程控制系統(tǒng),,將傳統(tǒng)的個(gè)體電器進(jìn)行智能化的統(tǒng)一管理和控制,,如家用電器的定時(shí)開啟、家居環(huán)境的監(jiān)聽等,,可使人們盡情享受高科技帶來的簡便而時(shí)尚的現(xiàn)代生活[1],。
1 電話遠(yuǎn)程控制系統(tǒng)的功能與體系結(jié)構(gòu)
1.1 功能

    (1)遠(yuǎn)程家電控制功能。通過電話終端通信設(shè)備對(duì)家中電器實(shí)現(xiàn)遠(yuǎn)程控制,,如控制電飯煲煮飯,、空調(diào)開機(jī)等。
    (2)自動(dòng)模擬摘掛機(jī),。在規(guī)定的振鈴次數(shù)內(nèi),,認(rèn)為是正常來電,可正常通話,;超過規(guī)定振鈴計(jì)數(shù),,系統(tǒng)自動(dòng)模擬摘機(jī)。
    (3)主人身份校驗(yàn),。密碼操作,。
    (4)語音提示,。按提示音操作。
    (5)聲音監(jiān)聽,。通過電話遙控家中座機(jī)模擬摘機(jī),,監(jiān)聽家居環(huán)境聲音,隨時(shí)了解家中情況,。
    (6)電器延時(shí)開,、關(guān)??刂萍译婇_關(guān)機(jī)的定時(shí)時(shí)間,,更好地服務(wù)主人。
    (7)狀態(tài)查詢,。隨時(shí)查詢家用電器的工作狀態(tài),。
1.2 體系結(jié)構(gòu)
    本系統(tǒng)以單片機(jī)為核心,加上振鈴檢測(cè)與模擬摘機(jī)電路,、聲音監(jiān)聽與語音提示電路,、雙音多頻信號(hào)DTMF(Dual Tone Multi Frequency)解碼電路、密碼存儲(chǔ)及家電控制電路等構(gòu)成,,系統(tǒng)總體框圖如圖1所示,。根據(jù)電話機(jī)和交換機(jī)發(fā)出的不同信號(hào)音以及電話線各種狀態(tài)的不同要求,結(jié)合實(shí)際情況對(duì)具體的單元功能模塊作出軟件或硬件上的不同分工,。其中,,信號(hào)音檢測(cè)、自動(dòng)摘掛機(jī),、控制電器,、DTMF解碼及密碼存儲(chǔ)等功能模塊使用硬件電路實(shí)現(xiàn),而信號(hào)音計(jì)數(shù),、密碼校驗(yàn),、信息分析、電器狀態(tài)查詢,、密碼修改等功能模塊使用軟件編程完成,。

2 硬件系統(tǒng)設(shè)計(jì)
2.1 單片機(jī)系統(tǒng)設(shè)計(jì)

    本系統(tǒng)的一大特點(diǎn)是采用了盛群公司的HT46RU232單片機(jī)[2]。HT46RU232是一款8 bit的精簡指令集單片機(jī),,有4 096×16 bit程序存儲(chǔ)器 ROM,、192×8 bit數(shù)據(jù)存儲(chǔ)器RAM、 1個(gè)8 bit和2個(gè)16 bit的具有溢出中斷的可編程定時(shí)/計(jì)數(shù)器,、八層硬件堆棧,、有可降低功耗的HALT和喚醒功能等。不但運(yùn)算速度快,,集成功能強(qiáng)大,,而且價(jià)格更便宜,非常適合于家用電器及工業(yè)控制,。HT46RU232有28腳和48腳DIP兩種封裝形式(主要是I/O引腳數(shù)目不同),,本系統(tǒng)根據(jù)實(shí)際需要選用28腳封裝,使硬件裝置體積大為縮小,,系統(tǒng)性價(jià)比更高,。本文主要給出應(yīng)用電路設(shè)計(jì),其芯片介紹可參閱參考文獻(xiàn)[3],。
    設(shè)計(jì)系統(tǒng)采用單片機(jī)最小系統(tǒng)方式工作,,如圖2所示。單片機(jī)外接晶振和復(fù)位電路,,PA,、PB、PC,、PD 4個(gè)口全部用作外接電路的輸入/輸出,。其中,PC0,、PC1和PC2用于振鈴檢測(cè)和模擬摘機(jī),,PB口和PA4、PA6,、PA7用于語音提示及聲音監(jiān)聽,,PA0~PA3及PA5用于DTMF檢測(cè);PC3和PC4用于密碼存儲(chǔ),,PD0和PD1用于電器控制,。需要注意的是,HT46RU232單片機(jī)晶振頻率采用的是4 MHz或8 MHz,而復(fù)位采用的是低電壓復(fù)位方式,,與80C51單片機(jī)系統(tǒng)不同,。

2.2 振鈴檢測(cè)及模擬摘機(jī)電路
    振鈴檢測(cè)及模擬摘機(jī)電路主要包括振鈴檢測(cè)、模擬摘機(jī)和摘機(jī)監(jiān)測(cè)三個(gè)功能[4],,如圖3所示,。

    (1)振鈴檢測(cè):檢測(cè)有無鈴流。在電話線路未來鈴流前,,電話線路由電話交換機(jī)提供約48 V的直流電壓,直流信號(hào)不能通過電容C4,、C9,所以光耦U3不起作用,,振鈴信號(hào)檢測(cè)端PC2輸出高電平,。當(dāng)用戶被呼叫時(shí),電話交換機(jī)發(fā)來振鈴信號(hào),振鈴為25±3 Hz 的正弦波,,以5 s為周期,,(1 s送,,4 s斷),振鈴電壓有效值為90±15 V,。振鈴信號(hào)通過C4,、C9,再經(jīng)過光耦U3的隔離轉(zhuǎn)換,,輸出很標(biāo)準(zhǔn)的方波,。方波信號(hào)由PC2端口輸入單片機(jī)進(jìn)行計(jì)數(shù),完成振鈴音次數(shù)的檢測(cè),。
    (2)模擬摘機(jī):當(dāng)單片機(jī)的振鈴計(jì)數(shù)達(dá)到預(yù)定的次數(shù)(振鈴計(jì)數(shù)可以由軟件設(shè)定)仍無人摘機(jī)時(shí),,系統(tǒng)即認(rèn)為不是進(jìn)行正常通話,而是要進(jìn)行家電的遠(yuǎn)程控制,。則單片機(jī)通過輸出口PC0發(fā)出一個(gè)低電平,光耦U2工作,,Q2基極得到一個(gè)高電平,Q2,、Q1導(dǎo)通,,平時(shí)48 V的高電壓通過Q1、發(fā)光二極管D4和R27后降為7 V~8 V的低電壓,,從而實(shí)現(xiàn)了模擬摘機(jī)功能,。
    (3)摘機(jī)監(jiān)測(cè):電路中的DW1、R7,、R26,、C13、U6 組成電話線路摘機(jī)監(jiān)測(cè),,平時(shí)電話線路的48 V電壓使得DW1擊穿,,光耦U6工作,PC1輸出低電平,。當(dāng)系統(tǒng)接收到振鈴信號(hào)且達(dá)到規(guī)定的振鈴次數(shù)后模擬摘機(jī)時(shí),,電話線路上電壓由原來的48 V下降到7 V~8 V,此時(shí)DW1 截止,,U6停止工作,,PC1輸出高電平。即單片機(jī)測(cè)試到PC1腳的高電平,,就可確定系統(tǒng)已經(jīng)模擬摘機(jī),,從而進(jìn)行下一步的語音提示功能操作及DTMF解碼工作。
  需要注意的是,,振鈴檢測(cè)與模擬摘機(jī)部分是電話網(wǎng)絡(luò)的48 V高電壓,,與系統(tǒng)其他部分的5 V電壓不同,必須隔離。單片機(jī)與本部分電路連接所用的I/O口都采用了光電耦合,,語音電路輸出給本部分電路的音頻信號(hào)采用變壓器耦合才能正確傳輸,。
2.3 語音提示及聲音監(jiān)聽電路
  語音提示是系統(tǒng)的重要組成部分,能為用戶提供直觀的反饋信息,,引導(dǎo)用戶更好地進(jìn)行系統(tǒng)的操作,。語音芯片能將需要的操作規(guī)則事先存于芯片中,根據(jù)不同的DTMF信號(hào)產(chǎn)生不同的提示信息,,從而完成控制整個(gè)系統(tǒng)的目的。由于需要存儲(chǔ)的信息容量比較大,本系統(tǒng)選用了ISD2560語音芯片,,其電路如圖4所示,。

    聲音監(jiān)聽和語音提示都由PA4進(jìn)行控制,監(jiān)測(cè)家居環(huán)境的聲音信號(hào)由安置在房間內(nèi)的MIC 話筒產(chǎn)生,,而語音信號(hào)由ISD2560語音芯片輸出,。當(dāng)PA4為高電平時(shí),三極管Q7截止,,對(duì)聲音信號(hào)和語音信號(hào)沒有放大功能,;當(dāng)PA4為低電平時(shí),三極管Q6,、Q12導(dǎo)通,,繼電器K3動(dòng)作,K3觸頭控制ISD2560 Q7的SP-接地,,三極管Q7 導(dǎo)通,,對(duì)信號(hào)有放大作用。通過電話線傳輸,,此時(shí)用戶在遠(yuǎn)處通過電話或手機(jī)就可實(shí)現(xiàn)對(duì)家居環(huán)境的監(jiān)聽或者自動(dòng)語音提示,。
    ISD2560是高度集成的語音芯片,可錄60 s的語音信息,只需外接少量的阻容元件即可進(jìn)行錄放音操作[5],。本系統(tǒng)采用了硬件方式錄音,,錄音前先給A0~A9賦值,然后再開相應(yīng)的端口就可以實(shí)現(xiàn)錄音功能,,錄音結(jié)束芯片內(nèi)部自動(dòng)在該段的結(jié)束位置插入結(jié)束標(biāo)志(EOM),。在系統(tǒng)運(yùn)行過程中根據(jù)需要,從相應(yīng)的錄音地址中取出對(duì)應(yīng)的語音信號(hào)進(jìn)行播放,遇到EOM 標(biāo)志即自動(dòng)停止放音,,從而引導(dǎo)用戶進(jìn)行下一步的操作,。
    需要注意的是,本程序中涉及的放音地址不是語音輸入地址而是PB口給語音芯片送的地址,。
2.4密碼存儲(chǔ)電路
    本系統(tǒng)采用EEPROM存儲(chǔ)密碼,。為了減小電路的體積及單片機(jī)I/O口,存儲(chǔ)器采用了AT24C02串行EEPROM芯片,。該芯片有2 KB的存儲(chǔ)空間,當(dāng)系統(tǒng)掉電后密碼也不會(huì)丟失,。密碼存儲(chǔ)電路如圖5所示,。

    AT24C02 的1、2,、3 腳是三條地址線,,用于確定芯片的硬件地址。在與HT46RU232連接時(shí)全部接地,,第8腳和第4 腳分別為正,、負(fù)電源。第5腳DATA為串行數(shù)據(jù)輸入/輸出,,數(shù)據(jù)通過這條雙向I2C串行總線與單片機(jī)的PC4進(jìn)行數(shù)據(jù)傳送,。第6腳CLK為串行時(shí)鐘輸入線,與單片機(jī)的PC3連接,。DATA 和CLK都需外接一個(gè)10 k?贅的上拉電阻才能正常工作,。可通過軟件編程對(duì)密碼進(jìn)行存儲(chǔ)和修改[6],。
2.5 DTMF 檢測(cè)電路
     DTMF檢測(cè)電路是整個(gè)系統(tǒng)的關(guān)鍵部分,,其工作情況直接決定了系統(tǒng)的可靠性。DTMF編解碼方式在電話撥號(hào)系統(tǒng)中應(yīng)用非常廣泛,,其突出的優(yōu)點(diǎn)是抗干擾能力很強(qiáng),。本系統(tǒng)采用專用的雙音頻解碼集成芯片MT8870[7],其電路如圖6所示,。圖中,,PA5 為單片機(jī)的中斷引腳,當(dāng)MT8870 接收來自電話線的雙音多頻信號(hào)并準(zhǔn)備好輸出時(shí),,產(chǎn)生中斷信號(hào),。MT8870的2、3 腳接收來自電話機(jī)的雙音多頻脈沖信號(hào),,該信號(hào)先經(jīng)其內(nèi)部的撥號(hào)音濾波器和濾除撥號(hào)音信號(hào),,然后經(jīng)前置放大后送入雙音頻濾波器,將雙音頻信號(hào)按高,、低音頻信號(hào)分開,,再經(jīng)高、低群濾波器,,幅度檢測(cè)器送入輸出譯碼電路,,經(jīng)過數(shù)字運(yùn)算后,在其數(shù)據(jù)輸出端(11~14腳)輸出相對(duì)應(yīng)的8421 碼,。MT8870 的數(shù)據(jù)輸出端Q1~Q4連到單片機(jī)的PA0~PA3口線上,,由單片機(jī)識(shí)別出4 位代碼。

    需要注意,為了使單片機(jī)獲取有效數(shù)據(jù),,MT8870 的STD 有效端經(jīng)反相后接CPU 的引腳INT,。當(dāng)MT8870獲取有效雙音多頻信號(hào)后,STD 電平由低變高,,再反相為低,,CPU 檢測(cè)后,指示PA 口從Q1~Q4接收有效二進(jìn)制代碼,。而無效的雙音頻信號(hào)(電話線路雜音,、人們的語音信號(hào)等)是不會(huì)引起MT8870的STD端變化的。
2.6 繼電器控制電路
    本系統(tǒng)采用繼電器來控制家用電器的開關(guān),。單片機(jī)的PD0和PD1輸出低電平控制兩路繼電器,,從而控制兩路家電,如空調(diào)和電飯煲,。根據(jù)需要,還可設(shè)定延時(shí)開,、延時(shí)關(guān)的功能,。電器控制電路如圖7所示。若采用譯碼器進(jìn)行擴(kuò)展,,可控制更多路的家電,。

3 軟件設(shè)計(jì)
    為提高控制系統(tǒng)的可靠性、可維護(hù)性和編程效率性,,控制系統(tǒng)的軟件采用模塊化結(jié)構(gòu),,用C語言編寫。在硬件的基礎(chǔ)上,,智能型電話遙控器的所有功能都由軟件實(shí)現(xiàn),,通過軟件編程可以控制電器的開關(guān)、延時(shí)開關(guān),、聲音監(jiān)聽及語音提示等,。軟件模塊包括振鈴檢測(cè)、模擬摘機(jī),、語音提示,、密碼存儲(chǔ)、MT8870中斷等[8],。圖8為系統(tǒng)軟件流程圖,。由于篇幅所限,下面只給出MT8870中斷程序部分,。

/************MT8870中斷**************/    
#pragma vector isr_int @ 0x004    
void isr_int(void)
{  
    uchar i,k;
    k=0;
    j=0;
        dat=_pa;
        dat=dat&0x0f;
        if (allow == 1)
        {
        function();
    }
     if (allow == 0)
     {
        GRingCount++;
          if (GRingCount < 7)
          {
            if (dat == 10)
            {
                data1[GRingCount-1] = 0;
            } else
              {
                data1[GRingCount-1] = dat;
              }
          } else {
            if (dat == 0x0c)
            {
                for (i = 0; i < 6; i++)
                {
                    if (ucGpassward[i] == data1[i])
                     {
                        k++;
                        _nop();
                    }
                }
                if (k==6)
                 {
                allow=1;
                GRingCount=0;
                i=0;
                k=0;                        //密碼輸入正確
                     ISDPlay(5);
               //調(diào)第6段放音程序,,提示進(jìn)行下一步操作
                } else
                   {
                allow=0;
                     i=0;
                     k=0;
                     GRingCount=0;
                     j++;
                     if (j<3)
                       {
                    ISDPlay(1);
                          //調(diào)第2段放音程序,提示密碼輸入錯(cuò)誤
                  }
                     if (j >= 3)
                       {
                    Holdon=1;                        
                    j=0;
             }                      //密碼輸入錯(cuò)誤三次則掛機(jī)
            }
    }
    測(cè)試結(jié)果表明,本系統(tǒng)能夠通過任一部電話、手機(jī)對(duì)家用電器進(jìn)行遠(yuǎn)程遙控,,實(shí)現(xiàn)了密碼存儲(chǔ),、修改及家居環(huán)境聲音監(jiān)聽等功能,系統(tǒng)工作正常,。
    本文介紹的智能家居控制系統(tǒng),,充分利用現(xiàn)有電話網(wǎng)絡(luò)的特點(diǎn),不需專門布線,,不占用無線電頻率資源,,不受距離和環(huán)境影響,節(jié)約了成本,。采用了高性價(jià)比的HT46RU232單片機(jī),,與傳統(tǒng)的80C51單片機(jī)相比,更具有競(jìng)爭(zhēng)優(yōu)勢(shì),;系統(tǒng)具有遠(yuǎn)程家電控制,、工作狀態(tài)查詢、環(huán)境聲音監(jiān)聽等多項(xiàng)功能,,操作過程需要驗(yàn)證密碼,,較好地避免了電話正常使用時(shí)對(duì)家用電器的誤操作,可以讓家居生活更加舒適,、安全,、高效。系統(tǒng)略作改進(jìn),,也可適用于生活小區(qū),、工業(yè)企業(yè)等不同環(huán)境的監(jiān)控管理,因此具有較高的實(shí)用性和推廣價(jià)值,。
參考文獻(xiàn)
[1] 蔣昊,,李哲英,蔣大明.基于電話交換機(jī)的遠(yuǎn)程家電控制系統(tǒng)[J].微計(jì)算機(jī)信息,2007,23(8-2):267-269.
[2] 鐘啟仁.HT46XX單片機(jī)原理與實(shí)踐[M]. 北京:北京航空航天大學(xué)出版社,,2008.
[3] HT46RU232八位單片機(jī). http://www.holtek.com.cn/china/docum/uc/46x232.htm,,2009-12-05.
[4] 劉芬,楊繼生.智能電話網(wǎng)遠(yuǎn)程家電控制系統(tǒng)的設(shè)計(jì)[J]. 微型機(jī)與應(yīng)用,2010(1):34-36.
[5] 程廣才,,蔣小松.ISD系列語音芯片的特性及應(yīng)用[M].北京:電子工業(yè)出版社,,2006.
[6] 張鵬. HOLTEK HT46系列單片機(jī)C語言實(shí)例教程[M].北京:北京郵電大學(xué)出版社,2010.
[7] 張慶龍. 單片機(jī)控制與網(wǎng)絡(luò)傳輸應(yīng)用[M]. 北京:中國電力出版社,,2007.
[8] 王明秋.智能家居控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[D].武漢:華中師范大學(xué),,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。