《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 智能家居通訊協(xié)議xPL的應用

智能家居通訊協(xié)議xPL的應用

2008-07-17
作者:陸圣軒, 徐 安, 郭凱杰

??? 摘 要: 介紹了xPL協(xié)議的基本內(nèi)容、工作過程和使用方法;并以電話遠程遙控" title="遠程遙控">遠程遙控系統(tǒng)運用xPL與上位機" title="上位機">上位機、下位機" title="下位機">下位機完成數(shù)據(jù)通信,最終實現(xiàn)對家居設施的遠程控制" title="遠程控制">遠程控制。
??? 關鍵詞: xPL協(xié)議? 遠程控制? 智能家居

?

??? 智能家居控制系統(tǒng)的出現(xiàn)使得人們可以通過電話、手機或者互聯(lián)網(wǎng)在任何時候、任意地點對家中的任意電器,如燈光、電源和家庭環(huán)境等進行遠程控制。然而,為了協(xié)調(diào)家居各子系統(tǒng)能順利工作,控制系統(tǒng)必須使用具有強大兼容性的協(xié)議對各個子系統(tǒng)進行控制。xPL協(xié)議[1](eXtremely simPle protocoL)就是這樣一個具有強大兼容性的協(xié)議,是一種新穎的智能家居控制系統(tǒng)中的通信協(xié)議,2003年1月由英國的兩名工程師 Ian Lowe和Tony Tofts發(fā)起,并于2003年上半年得到完善。運用xPL協(xié)議,可以根據(jù)用戶自身的需要,編寫出相應的個性化程序,將使智能家居系統(tǒng)的開發(fā)變得簡單,并能完成對多種家電的控制。開發(fā)的系統(tǒng)將具有可靠性、兼容性和安全性。
1 xPL協(xié)議的指令信息格式
??? xPL信息有三種類型,分別為xpl-cmnd、xpl-stat 和xpl-trig,它們使得xPL網(wǎng)絡中各設備之間的相互通信過程變得簡單。
??? xPL程序以行為單位,每行以一個換行符作為結束。一個完整的xPL信息應該由以下四部分組成:
??? (1) 信息類型(xpl-cmnd、xpl-stat 或者xpl-trig);
??? (2) 一個大小可以變(但須在限定范圍內(nèi))的頭文件;
??? (3) schema.version 格式的信息樣式表;
??? (4) 一個單一信息“體”,包含 name=value。
??? 信息格式(Schema)標識符是為了使來自不同廠商的設備和程序能夠在開放的環(huán)境下通信,schema定義了傳輸信息的格式內(nèi)容。這樣,每條信息將屬于一個特定的類。
??? 命令、狀態(tài)和其他信息是以一系列名稱/值對組成的xPL信息表達的。一個xPL信息可能包含很多這樣的對。信息包含的特定內(nèi)容以及這些內(nèi)容的順序由所用信息的schema規(guī)定。開發(fā)者可以在其中加入更多的信息,但由信息schema規(guī)定的基本要素必須總是以正確的順序羅列出。
1.1 xpl-cmnd指令
??? xpl-cmnd指令是用來使一個裝置執(zhí)行一個動作的,分為兩種:定向命令信息和廣播命令信息。
1.1.1? 定向命令信息
??? 如果想對家居環(huán)境中的一個特定的裝置進行控制,如休息室里的窗簾控制器,或者中央供暖系統(tǒng)的加熱器,信息可以通過目標定向傳達到受控裝置或程序。只有信息中指定的目標定向裝置或程序才會對收到的定向命令信息進行響應。
1.1.2? 廣播命令信息
??? 廣播命令信息向xPL網(wǎng)絡中所有裝置和應用程序" title="應用程序">應用程序發(fā)送一個xPL命令,一旦此信息發(fā)出,xPL網(wǎng)絡中所有裝置和應用程序都會對此信息進行響應。
1.2 xpl-stat指令
??? xpl-stat指令是用來獲取xPL網(wǎng)絡中的裝置或程序的實際狀態(tài)信息的。所有的裝置和應用程序都應該定時發(fā)送一個“heartbeat”(心跳)狀態(tài)信息,并且可以隨意地對詢問當前狀態(tài)的請求作出回應。
1.2.1 Heartbeat心跳信息
??? 一個xPL網(wǎng)絡中的所有裝置都應該發(fā)送heartbeat信息(Hub除外)。Heartbeat中囊括了配置信息、正常監(jiān)視、故障診斷和事件日志。Heartbeat的時間間隔由開發(fā)者定義,可以是5~30分鐘內(nèi)的任何時間長度。請求所有設備識別它們自身,程序可發(fā)送一個廣播命令。格式是一個schema類hbeat.request類型和command=request單一體元素。當一個xPL設備接收到這樣的信息時,它應當發(fā)送一個標準的heartbeat信息作為回復。
1.2.2 狀態(tài)請求
??? 與采用通常的heartbeat一樣,在xPL網(wǎng)絡中的設備要想知道另一個設備的當前狀態(tài),可以啟用狀態(tài)請求機制。
1.3? xpl-trig指令
??? 在xPL網(wǎng)絡中,無論何時,當出現(xiàn)一個裝置的狀態(tài)改變、響應一個xPL命令、一個人的直接的行為(如按下一個開關)等情況時,不論這種變化是否由一個外部事件(按下一個按鈕,IR探測,達到溫度,或者一個設備啟動)引起,觸發(fā)信息都會被發(fā)送。
2 xPL設備配置
2.1 Group(組)

??? 當智能家居環(huán)境中的同類設備不止一個、用戶想同時控制它們的打開或者關閉時,可將此類設備設置為同一個組。xPL為此提供了一個強大的機制,它的形式為:“group=”的配置標簽。配置信息中的 “group=”標簽將清空已經(jīng)存在的組。因此,當一個設備的組將要發(fā)生改變時,所有想要包含此設備的組必須在配置信息中全部被設定。
2.2 Filter(過濾器)
??? 在xPL網(wǎng)絡中,有大量的xPL信息,但其中的設備并不是每條信息都需要接收,這樣,就需要一個過濾器filter將與其無關的信息過濾掉,而只接收與自身匹配的信息。信息過濾器可以通過一個配置信息指定使用。過濾器是在一個配置信息中用“filter=tag”來定義。一個配置信息中的“filter=tag”將會清空已有的過濾器,因此,當要改變一個過濾器時,所有期望的過濾器必須在配置信息中設定。過濾器只應用于廣播信息,為的是減少設備所使用信息的數(shù)量。如果多個過濾器同時存在,只要其中的一個與將要處理的信息匹配就可以了。
3 xPL服務器配置
3.1 xPL Hub
??? 因為TCP/IP協(xié)議一次只允許一個應用程序占用一個特定的端口,因此,用一個“Hub”機制來實現(xiàn)多個xPL應用程序在同一個主機上運行。一個應用程序如果要偵聽xPL通信,應該與一個動態(tài)UDP端口進行綁定,并且在心跳信息或者設置信息中將程序偵聽的端口發(fā)送出去。Hub接收到這些心跳信息后將應用程序添加到它的客戶機名單中。當進來的xPL信息在一個xPL端口被接收到時,Hub會把它們轉(zhuǎn)發(fā)給所有注冊的客戶機。在以太網(wǎng)上傳輸?shù)膞PL信息支持最大為1 500字節(jié)的信息長度。
3.2 xPLHal
3.2.1 xPLHal的概念
??? xPLHal是一個沒有圖形用戶界面的服務程序。在沒有xPL設備接入網(wǎng)絡的情況下,它也會一直在后臺運行。xPLHal Manager是一個xPLHal的控制臺程序,它使用XHCP(而不是xPL)對底層服務進行配置,它可以在網(wǎng)絡中的任何PC機上運行,而不一定是在xPL的服務器上。xPLHal完全可以在沒有Manager的情況下運行。
3.2.2? xPLHal 中的參數(shù)設置
??? (1) Modes(狀態(tài))
Modes被用來反映一個房間可以處于的不同狀態(tài)。例如,“繁忙”、“空閑”和“休息”。它可以通過xPLHal屬性對話框的相關標簽進行設定。
??? 房間處于不同狀態(tài)時,其Modes也不相同。因此,用戶可以利用Modes編程來制定智能家居系統(tǒng)的行為。例如,可以使一個xPL指令信息在房間“空閑”模式下觸發(fā),而在房間“繁忙”時,這個行為卻不發(fā)生。
??? (2) Periods(時段)
??? Periods用來代表一天中不同的時段。默認情況下可以有兩個備選值:Day(白天)和Night(黑夜)。同樣可以利用Periods編程來制定家居系統(tǒng)的行為。
??? 究竟Periods是“白天”還是“黑夜”可以通過許多方法判斷,下面給出其中的一些方法:
??? ①通過安裝xPL的DawnDusk服務程序。它可以在“黎明”和“黃昏”時分別發(fā)出xPL信息,原理是它可以根據(jù)所在地計算出日出和日落的時間。
??? ②在PC機上直接接入光傳感器,例如通過串行口接入。
??? 在家居系統(tǒng)中,程序可以將Modes與Period聯(lián)合使用,從而實現(xiàn)一個比較復雜的邏輯環(huán)境。
??? (3) Global variables全局變量
??? 全局變量由xPLHal支持并由用戶自己定義的變量。如果用戶需要保存程序中的狀態(tài)信息,則可以將它保存在全局變量集合中。全局變量是不可變的,它將被寫入磁盤,確保即使系統(tǒng)重啟時它的值仍然存在。全局變量也將被復制給其他xPLHal從服務器。
??? Mode和Periods值將以全局變量的形式存儲在xPLHal中,而VB程序員可以通過xPL開發(fā)者提供的ActiveX控件在VB程序中方便地找到這些全局變量,同時也可以得到各個設備的當前狀態(tài)和當前時段。
4 電話遠程遙控系統(tǒng)設計
4.1電話遠程遙控系統(tǒng)設計方案
[2]
??? 在xPL協(xié)議的幫助下,只要將家中固定電話、PC機和單片機相連接,就可以利用手機完成對家中家居設施的遠程控制。當電話打入時,xPL協(xié)議從調(diào)制解調(diào)器上收到用戶的控制命令,并將信息傳遞給上位PC機,由上位機對信息處理后,將指令傳達給單片機,單片機將直接控制家中所有的被控設備。本實驗系統(tǒng)中,單片機的控制對象分為開關量對象和紅外遙控對象。由單片機控制的紅外發(fā)射器可以對一切具有紅外接收功能的家電諸如空調(diào)、電視機、DVD播放機等進行控制。系統(tǒng)設計方案如圖1所示。

?????????????????????????????
??? 雖然xPL軟件本身提供了強大的功能,但要實現(xiàn)用戶要求的復雜控制功能,還需要編寫控制程序。xPL軟件是基于Visual Basic語言開發(fā)的,同時xPL開發(fā)者提供了ActiveX控件,使得Visual Basic編程者很容易將xPL功能加入到程序中。加之Visual Basic用于制作界面強大又易于操作的優(yōu)勢,因此,本實驗系統(tǒng)的上位機程序采用VB編寫控制程序??刂瞥绦?qū)⒇撠熃邮誼PL指令信息,做出判斷和處理后,向單片機下達指令完成控制動作。
4.2 程序介紹
4.2.1 xPLPhone
??? 若要實現(xiàn)電話對家中家居設施的控制,則需要安裝xPLPhone軟件。xPLPhone是一款xPL官方網(wǎng)站提供的免費軟件。它能使調(diào)制解調(diào)器成為一個完全支持xPL的設備,使得PC機能夠接聽電話,可以通過對xPLPhone編寫基于xPL指令信息與協(xié)議規(guī)則的腳本語言實現(xiàn)既定的功能。
??? 電話遠程遙控系統(tǒng)包括兩大功能:一是主人不在家時的訪客留言錄音功能;二是主人對智能控制系統(tǒng)中的設備的電話遠程遙控功能。圖2是電話遠程遙控流程示意圖。

???????????????????????????????
4.2.2 控制界面設計
??? 系統(tǒng)的控制界面如圖3所示。xPL指令信息和當前狀態(tài)經(jīng)由ActiveX控件從xPLHal傳遞到控制軟件??刂栖浖鶕?jù)指令信息,經(jīng)過判斷和處理,由串口向下位機發(fā)送命令??刂栖浖挠脩艚缑嬉矊崟r反映各個設備的當前狀態(tài)。

???????????????????????????????
??? 控制軟件的工作方式與特點:
??? (1)xPL提供的ActiveX控件使得Visual Basic程序可以方便地接收到xPL指令信息和設備的當前狀態(tài)信息。軟件由xPLHal接收到xPL信息,經(jīng)過解析和判斷后,便可以向下位機發(fā)送命令了。
??? (2)在xPL網(wǎng)絡中,有大量的xPL信息,但其中的設備并不是每條信息都需要接收。這樣,就需要一個過濾器Filter, 將與其無關的信息過濾掉,而只接收與自身匹配的信息。本實驗系統(tǒng)定義了一個Schema:iHouse.Basic。Filter將自動過濾掉與iHouse.Basic無關的信息。
??? (3)遙控系統(tǒng)可以經(jīng)過ActiveX控件由 xPLHal 得到當前時段和xPL設備的當前狀態(tài)。在接收到xPL指令信息后,通過對這些狀態(tài)和時段的判斷,決定單片機應該產(chǎn)生哪些控制動作。
4.2.3 下位機程序設計
??? 本系統(tǒng)采用LPC932單片機對各個被控設備進行控制。單片機通過RS232與上位機相連接,從上位機接收控制數(shù)據(jù),然后通過特定電路與被控設備相連接,實現(xiàn)開關量控制或紅外信號控制[4]。
??? xPL作為一個專門為智能家居控制設計的協(xié)議,它是一個統(tǒng)一的、具有極其簡單和容易使用的特點的開放協(xié)議。它具有以下特點:
??? (1)提供了一個豐富的特征和功能集,同時,有一個較完善的、但并不復雜的信息結構。
??? (2)具有強大的自動發(fā)現(xiàn)和配置的能力,完全支持“即插即用”體系結構。
??? (3)特定信息結構確保了來自不同生產(chǎn)商的支持xPL的設備能夠相互通信,而沒有不兼容的危險。
??? 本文通過電話遠程遙控系統(tǒng)的設計與實現(xiàn),說明了用xPL協(xié)議實現(xiàn)智能家居將大大降低設計難度,同時保證了網(wǎng)絡設備的兼容性、可靠性。xPL協(xié)議在智能家居領域?qū)⒕哂袕V闊的市場前景。
參考文獻
[1] JACOBSON J. Understanding home automatic. Electronic?House, 2001: 48-50.
[2] ?SCHONGA B.VBScript揭秘.高長劍,譯.北京:電子工業(yè)出版社,1998:70-147.
[3]?徐安.微型計算機控制技術.北京:科技出版社,2004.
[4]?LEWISD W L. Fundamentals of embedded software:where?C and assembly meet. 北京: 高等教育出版社,2005.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。