智能家居控制系統(tǒng)的設(shè)計與實現(xiàn)
摘要:介紹了以PC(個人計算機(jī))、MCU(單片機(jī)AT89C52)、雙音多頻編解碼集成電路MT8880C、語音錄放芯片ISD4004和無線數(shù)據(jù)收發(fā)芯片nRF401為核心,通過現(xiàn)有的電話網(wǎng)絡(luò)終端或者互聯(lián)網(wǎng)網(wǎng)絡(luò)終端實現(xiàn)遠(yuǎn)程控制的智能家居系統(tǒng),給出了該系統(tǒng)的電路原理和辦硬件設(shè)計與實現(xiàn)方法。 關(guān)鍵詞:遠(yuǎn)程控制 雙音多頻 網(wǎng)絡(luò)通訊 無線通訊 家庭自動化 21世紀(jì)是信息化的世紀(jì),各種電信和互聯(lián)網(wǎng)新技術(shù)推動了人類文明的巨大進(jìn)步。數(shù)字化家居控制系統(tǒng)的出現(xiàn)使得人們可以通過手機(jī)或者互聯(lián)網(wǎng)在任何時候、任意地點對家中的任意電器(空調(diào)、熱水器、電飯煲、燈光、音響、DVD錄像機(jī))進(jìn)行遠(yuǎn)程控制;也可以在下班途中,預(yù)先將家中的空調(diào)打開、讓熱水器提前燒好熱水、電飯煲煮好香噴噴的米飯……;而這一切的實現(xiàn)都僅僅是輕輕的點幾下鼠標(biāo),或者打一個簡單的電話。此外,該系統(tǒng)還可使家庭具有多途徑報警、遠(yuǎn)程監(jiān)聽、數(shù)字留言等多種功能,如果不幸出現(xiàn)某種險情,您和110可以在第一時間獲得通知以便進(jìn)一步采取行動。舒適、時尚的家居生活是社會進(jìn)步的標(biāo)志,智能家居系統(tǒng)能夠在不改變家中任何家電的情況下,對家里的電器、燈光、電源、家庭環(huán)境進(jìn)行方便地控制,使人們盡享高科技帶來的簡便而時尚的現(xiàn)代生活。 智能家居系統(tǒng)由系統(tǒng)主機(jī)、系統(tǒng)分機(jī)、Internet服務(wù)器和網(wǎng)絡(luò)接口等部分組成。其中系統(tǒng)主機(jī)通過服務(wù)器(個人計算機(jī))連入Internet,并通過自己的PSTN?公用電話交換網(wǎng)?接口電路連入PSTN。其結(jié)構(gòu)圖如圖1所示。主機(jī)與分機(jī)通過無線傳輸組成星形拓?fù)浣Y(jié)構(gòu)。系統(tǒng)主機(jī)通過本地?zé)o線傳輸網(wǎng)絡(luò)同系統(tǒng)分機(jī)進(jìn)行通訊、傳輸控制命令和反饋信息。 該系統(tǒng)正常工作時,用戶可以通過Internet和PSTN兩種網(wǎng)絡(luò)進(jìn)行訪問,當(dāng)通過Internet訪問時,本系統(tǒng)可提供一個界面友好的終端軟件,用戶只需登陸到運行在家中的服務(wù)器即可對家中的設(shè)備進(jìn)行遠(yuǎn)程控制;當(dāng)通過PSTN訪問時,本系統(tǒng)將為用戶提供語音操作界面。其工作流程如圖2所示。 2 系統(tǒng)的硬件構(gòu)成 本系統(tǒng)的硬件主要有系統(tǒng)主機(jī)與系統(tǒng)分機(jī)兩大部分。系統(tǒng)主機(jī)由單片機(jī)AT89C52和各種接口電路組成,如圖3所示。系統(tǒng)分機(jī)由單片機(jī)AT89C52和各種接口電路、傳感器單元電路、固態(tài)繼電器控制電路組成,并由固態(tài)繼電器控制具體設(shè)備,具體硬件組成框圖如圖4所示。 通過系統(tǒng)主機(jī)的各種接口電路可將主機(jī)CPU從繁忙的計算中解脫出來,以便把主要精力運用在控制和信息傳遞上。系統(tǒng)主機(jī)主要依照各個功能電路的輸出結(jié)果進(jìn)行邏輯判斷和控制命令的輸出。系統(tǒng)分機(jī)的各種接口電路和主機(jī)相似,只是根據(jù)設(shè)備的不同(傳感器單元)有著細(xì)節(jié)上的變化。下面主要介紹系統(tǒng)主機(jī)的各種接口電路。 2.1 nRF401 無線數(shù)據(jù)傳輸電路 無線數(shù)據(jù)傳輸電路由Nordic公司的單片UHF無線數(shù)據(jù)收發(fā)芯片nRF401及其外圍電路構(gòu)成。nRF401采用FSK調(diào)制解調(diào)技術(shù),其工作效率可達(dá)20kbit/s,且有兩個頻率通道供選擇,并且支持低功耗和待機(jī)模式。它不用對數(shù)據(jù)進(jìn)行曼徹斯特編碼,其天線接口設(shè)計為差分天線,因而很容易用PCB來實現(xiàn)。 看門狗電路由MAX813L及其外圍元件組成。通常,在單片機(jī)的工作現(xiàn)場,可能有各種干擾源。這些干擾源可能導(dǎo)致程序跑飛、造成死機(jī)或者程序不能正常運行。如果不及時恢復(fù)或使系統(tǒng)復(fù)位,就容易造成損失??撮T狗電路的作用就是在程序跑飛或者死機(jī)時,能有效地使系統(tǒng)復(fù)位以使系統(tǒng)恢復(fù)正常運轉(zhuǎn)。因此,在程序中定期給P1.5送入看門狗信號,就可以保證在程序運行異常時,由MAX813L使單片機(jī)復(fù)位。 2.3 DS1307時鐘接口電路 DS1307時鐘芯片是美國DALLAS公司生產(chǎn)的I2C總線接口實時時鐘芯片。DS1307可以獨立于CPU工作,它不受晶振和電容等的影響,并且計時準(zhǔn)確,月積累誤差一般小于10秒。此芯片還具有掉電時鐘保護(hù)功能,可自動切換到后備電源供電。同時還具有閏年自動調(diào)整功能,可以產(chǎn)生秒、分、時、日、月、年等數(shù)據(jù),并將其保存在具有掉電保護(hù)功能的時間寄存器內(nèi),以便CPU根據(jù)需要對其進(jìn)行讀出或?qū)懭?。由于單片機(jī)AT89C52沒有I2C總線接口,因此,要驅(qū)動DS1307,就必須采用單主機(jī)方式下的I2C總線虛擬技術(shù)。在此方式下,以單片機(jī)為主節(jié)點(主器件),主器件永遠(yuǎn)占有總線而不出現(xiàn)總線競爭,且可以用兩根I/O口線來虛擬I2C總線接口。I2C總線上的主器件(單片機(jī))可在時鐘線(SDL)上產(chǎn)生時鐘脈沖,在數(shù)據(jù)線(SDA)上產(chǎn)生尋址信號、開始條件、停止條件以及建立數(shù)據(jù)傳輸?shù)钠骷H魏伪贿x中的器件都將被主器件看成是從器件。在這里,DS1307作為I2C總線的從器件。I2C總線為同步串行數(shù)據(jù)傳輸總線,其內(nèi)部為雙向傳輸電路,端口輸出為開漏結(jié)構(gòu),因此,需加上拉電阻。 2.4 MT8880C雙音頻編解碼電路 由于單片機(jī)是通過MT8880C芯片得到PSTN網(wǎng)絡(luò)的雙音頻信號解碼輸出,也就是說,單片機(jī)可以識別來自PSTN網(wǎng)絡(luò)的控制信號,用戶可以根據(jù)系統(tǒng)的語音提示進(jìn)行按鍵選擇以實現(xiàn)用戶身份的識別與遠(yuǎn)程控制。因此,利用MT8880C的雙音頻編碼功能,系統(tǒng)可以在緊急時刻將用戶預(yù)置的緊急電話打到PSTN網(wǎng)絡(luò),從而把損失減少到最低。 2.5 ISD4004語音錄放電路 ISD4004是美國ISD公司生產(chǎn)的一種語音錄放芯片。它可錄制8~16分鐘的語音信號。該芯片可提供SPI標(biāo)準(zhǔn)接口和單片機(jī)進(jìn)行接口,其語音的錄放控制均通過單片機(jī)來實現(xiàn)。該芯片的一個最大特點是可以按地址編程錄放,因而可由ISD4004和單片機(jī)編程控制來構(gòu)成本系統(tǒng)與PSTN網(wǎng)絡(luò)用戶的語音平臺。由于ISD4004的INT和RAC腳輸出為開漏結(jié)構(gòu),因此需要加上拉電阻。 2.6 MAX202串行通訊電路 通訊電路可由串行通訊專用芯片MAX202組成,通過此電路可以方便地與PC機(jī)進(jìn)行串行通訊。 2.7 鈴流檢測與摘掛機(jī)控制電路 當(dāng)系統(tǒng)被呼叫時,電話交換機(jī)發(fā)出鈴流信號。振鈴為253V的正弦波,失真小于10%,電壓有效值為9015V。振鈴信號以5秒為周期,即1秒送,4秒斷。由于振鈴信號電壓比較高,所以先要通過高壓穩(wěn)壓二極管進(jìn)行降壓,然后輸入至光耦。再經(jīng)光耦隔離轉(zhuǎn)換后,從光耦輸出時通時斷的正弦波,最后經(jīng)RC回路進(jìn)行濾波以輸出標(biāo)準(zhǔn)的方波。該方波信號可以直接輸出至單片機(jī)的定時器1進(jìn)行計數(shù),以實現(xiàn)對鈴流的檢測。 由于程控電話交換機(jī)在電話摘機(jī)時電話線回路電流會突然變大(約30mA),因此,交換機(jī)檢測到回路電流變大就認(rèn)為電話機(jī)已經(jīng)摘機(jī)。自動摘掛機(jī)電路可以通過單片機(jī)的P1.7來控制一個固態(tài)繼電器,固態(tài)繼電器的控制端應(yīng)連接一個大約300Ω的電阻后再接入電話線兩端,從而完成模擬摘掛機(jī)。 本系統(tǒng)軟件主要由系統(tǒng)主機(jī)和系統(tǒng)分機(jī)的C51程序和系統(tǒng)與Internet網(wǎng)絡(luò)通訊程序組成。 3.1 系統(tǒng)主機(jī)程序的編制 系統(tǒng)主機(jī)程序主要用于實現(xiàn)系統(tǒng)的總體功能。包括無線數(shù)據(jù)傳輸程序、看門狗程序、時間戳程序、雙音頻編解碼程序、語音錄放程序、串行通訊程序、鈴流檢測與摘掛機(jī)控制程序、系統(tǒng)初始化程序、意外事件處理程序等。程序編制以消息驅(qū)動為主導(dǎo)思想。消息由計數(shù)器中斷1、外部中斷0和串行中斷產(chǎn)生,在中斷服務(wù)程序中,應(yīng)將相應(yīng)的狀態(tài)位置位,而在消息循環(huán)中則應(yīng)按相應(yīng)的狀態(tài)位調(diào)用功能函數(shù),然后由功能函數(shù)將相應(yīng)的狀態(tài)位清0并完成所需功能,并最后返回到消息循環(huán)中。其程序流程如圖5所示。該系統(tǒng)的分機(jī)程序和主機(jī)類似,故此不再詳述。 3.2 系統(tǒng)與Internet網(wǎng)絡(luò)通訊程序的編制 這部分通訊程序分為服務(wù)器和客戶端兩個程序,主要通過Internet網(wǎng)絡(luò)完成用戶的控制功能。 服務(wù)器程序主要完成客戶端與系統(tǒng)主機(jī)通訊的中轉(zhuǎn),即將客戶端發(fā)來的控制或者查詢命令翻譯成系統(tǒng)主機(jī)能識別的格式,或者將系統(tǒng)主機(jī)收到的報警等信息上傳到客戶端。服務(wù)器程序使用Socket與客戶端進(jìn)行Internet通訊。 客戶端程序是運行在遠(yuǎn)端用戶的控制界面,主要用于完成家居內(nèi)狀態(tài)的顯示以及對家居內(nèi)電器的遠(yuǎn)程控制,同時使客戶端直接連接到服務(wù)器。 4 結(jié)論 本系統(tǒng)充分利用了現(xiàn)有的網(wǎng)絡(luò)資源。通過在實際電話網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)中的試運行證明:該系統(tǒng)能夠達(dá)到設(shè)計初期的各項要求。相信將在信息家電、智能小區(qū)等方面得到廣泛應(yīng)用。 | |
評論