引言
20世紀80年代末,隨著通信與信息技術的發(fā)展,出現(xiàn)了通過總線技術對住宅或辦公室中各種通信、電器、安防設備進行監(jiān)控與管理的商用系統(tǒng)。近幾年來,隨著市場上智能化樓宇的不斷升溫,智能化辦公室亦得到空前的發(fā)展,應用日漸增多,特別是在專業(yè)的寫字樓。
隨著科學技術的發(fā)展和網絡的普及,物聯(lián)網與互聯(lián)網的結合是必然的趨勢。ZigBee是基于IEEE802.15.4標準的低功耗個域網協(xié)議。根據(jù)這個協(xié)議規(guī)定的技術是一種短距離、低功耗的無線通信技術。其特點是近距離、低復雜度、自組織、低功耗、高數(shù)據(jù)速率、低成本。主要適合用于自動控制和遠程控制領域,可以嵌入各種設備。微軟提出的通用即插即用協(xié)議UPnP(UniversalPlugandPlay)是由UPnPForum提出的一種標準化協(xié)議,其分布式的開放網絡架構可以根據(jù)不同的應用場景完成不同的智能框架。將UPnP協(xié)議與ZigBee相結合,是未來智能辦公室發(fā)展的一大趨勢,旨在打造一個安全舒適、節(jié)能環(huán)保的智能辦公室。
1系統(tǒng)設計
現(xiàn)在許多智能辦公室使用了總線技術,如X10、LonWorks、CAN等或者使用無線組網技術來控制和監(jiān)控整個辦公環(huán)境,比如燈光、安防和其他設備等。目前,總線技術之間的開放性和互操作性還難以統(tǒng)一。使用UPnP設備可以橋接這些網絡成為一個網絡,并提供用戶更多設備存取家庭網絡中的設備。在實現(xiàn)時也無須對像X10網絡中的現(xiàn)有布線和設備進行昂貴的升級,只需要將設備變成UPnP設備并能夠與控制點通訊并接受控制點的控制命令。除此之外,使用UPnP可以對這布在不同PC端上的音樂庫進行統(tǒng)一管理。這些設備能被發(fā)現(xiàn)然后被其他控制點(比如個人電腦、UPnP接收器)控制。同時這些控制點也可以控制辦公室中的任何一個揚聲器。圖片庫可以自己作為一個設備存在,并自動在網絡上聲明。這使得一個圖片庫可能臨時為多個應用程序使用,例如可以進行幻燈片顯示的同時,在電子像框、機頂盒和電視上進行顯示。
為了實現(xiàn)以上功能特點,本文設計的智能辦公室是基于UPnP網絡與ZigBee技術。系統(tǒng)總體框架如圖1所示。
該系統(tǒng)將智能辦公室中的設備分為兩大類,一類是具有讀寫功能的設備,這些設備不僅能夠讀取反饋自身實時狀態(tài),還能接收外部控制指令進行控制,比如智能空調、智能電燈、智能電視等;另一類就是具備只讀功能的設備,它無法從外部寫入,只讀自身感知元件數(shù)據(jù),像溫度傳感器、照度傳感器、濕度傳感器等。
將各類計算機、智能辦公設備、智能照明、安全報警設備等相連接構成UPnP網絡,以實現(xiàn)設備自動發(fā)現(xiàn)、動態(tài)組網、資源內同共享和協(xié)同服務控制,形成一個多層次統(tǒng)一的辦公網絡,解決設備間互聯(lián)、互通、互操作性問題。
在UPnP網絡中,凡是具備IP地址的設備都必須直接使用網絡的IP地址,但有些設備可能并不具備直接使用網絡IP地址的能力,例如,電燈開關的控制就是這樣,這是非IP設備。這類非IP設備可利用ZigBee技術通過網橋來與控制指針交換信息,同樣也可達到預期控制效果。
2系統(tǒng)網橋設計
目前傳統(tǒng)辦公設備,大多都不具有網絡接口,要使其成為UPnP設備,不僅需要為其添加網絡接口,若是通過有線局域網還需要重新鋪設網絡線路,具有較大難度且費用高。但若要是傳統(tǒng)辦公設備成為ZigBee節(jié)點,則相對比較容易,只需為其加上ZigBee模塊即可實現(xiàn)對設備的無線控制
若將ZigBee技術融入UPnP網絡中,讓每個ZigBee節(jié)點都成為UPnP設備,構成混合型智能辦公網絡,則既能發(fā)揮ZigBee設備的靈活、無線傳輸?shù)奶匦?,又能實現(xiàn)設備的即插即用和網絡遠程控制的功能。
ZigBee/UPnP網橋主要的作用有兩點:一是將ZigBee節(jié)點信息提供給UPnP網絡,并建立與UPnP的連接;二是當ZigBee網絡建立后,則通過網橋來進行相關控制。網橋架構如圖2所示。
圖2ZigBee/UPnP網橋架構
ZigBee/UPnP網橋通過網口連接UPnP網絡,并通過串口通信來連接ZigBee協(xié)調器,通過ZigBee協(xié)調器來獲取信息并對ZigBee終端節(jié)點進行控制。網橋中運行UPnP協(xié)議的設備部分,為ZigBee網絡的每一個節(jié)點創(chuàng)建一個虛擬UPnP設備,實現(xiàn)信息的準確傳輸。這樣一來,ZigBee節(jié)點均實現(xiàn)了UPnP功能。
為實現(xiàn)其功能,ZigBee/UPnP網橋工作流程大致為以下幾步:
注冊:當接收到ZigBee網絡送來的信息時,必須執(zhí)行一連串的注冊程序,并將該設備的相關信息寫入XML文件中。
配對:當任一裝置加入UPnP網絡之后,必須針對設備的行為與功能做配對才能讓才能讓相同性質的設備進行通信,UPnP網絡雖然提供了自動配對功能,但為了符合ZigBee網絡的靈活性,需增加手動配對功能。
控制:在配對成功后,由UPnP的控制點發(fā)出控制命令必須經過轉換,才能對ZigBee節(jié)點進行控制,相對地,由ZigBee節(jié)點發(fā)出的控制命令也必須經過轉換才能對UPnP的控制點進行控制。
3系統(tǒng)軟件設計
3.1UPnP網絡建立
UPnP網絡的建立如圖3所示,分為設備尋址、設備發(fā)現(xiàn)、設備描述、設備控制、設備事件和設備表達這6個環(huán)節(jié)叫其中,設備尋址、設備發(fā)現(xiàn)和設備描述這3個環(huán)節(jié)是所有設備必須實現(xiàn)的部分,而設備控制、設備事件和設備表示這3個環(huán)節(jié)則根據(jù)設備自身特點選擇是否實現(xiàn)該功能。例如,多媒體服務器就不需要實現(xiàn)設備表達,其只向外提供本地資源。圖3UPnP網絡建立流程圖
設備尋址是指當一個設備接入網絡時,通過動態(tài)主機配置協(xié)議DHCP(DynamicHostConfigurationProtocol)服務器,或者通過AutoIP取得設備唯一的IP地址。一旦設備連接到網上并且分配了地址,設備就根據(jù)簡單服務發(fā)現(xiàn)協(xié)議SSDP(SimpleServiceDiscoveryProtocol)來發(fā)現(xiàn)。在設備發(fā)現(xiàn)操作之后,控制點可以發(fā)現(xiàn)感興趣的設備,并使得控制點獲得設備能力的描述,同時控制點也可以向設備發(fā)送命令,偵聽設備狀態(tài)的改變,并將設備展示給用戶。對于一個設備的UPnP描述一般分成兩個部分:描述設備和描述設備提供的服務。UPnP對某一設備的描述以XML形式表示出來,設備描述包括制造商信息,包括模塊名稱和編號、序列號、制造商名稱、制造商網站的URL等。在獲取了設備以及其服務的信息后,控制點可以向這些服務發(fā)出動作,并且接收動作回饋響應。最后,設備表示則采用HTML頁的形式進行表示,使控制點能做瀏覽器中打開,用來瀏覽設備狀態(tài)或控制設備図。
目前比較常用的UPnP軟件開發(fā)工具SDK有Intel的libUPnP-1.2.1C語言)、Cyberlink的cybergarag(Java語言)等。本文選擇了Intel的libUPnP-1.2.1作為原型開發(fā)用的SDK。
UPnP設備端程序流程圖如圖4所示。
其中,初始化內容包括初始化SDK、設置根目錄、注冊設備描述文件、執(zhí)行設備相關初始化和向網絡發(fā)出宣告消息。處理異步請求是,設備有訂閱請求、獲取服務狀態(tài)當前值的請求和改變服務狀態(tài)值這三種不同類型的請求。節(jié)點發(fā)出事件消息,保持控制點信息的更新。當發(fā)出SSDP”bye-bye”消息時,先從SDK取消設備注冊,隨后關閉SDK網。UPnP控制點端程序流程圖如圖5所示。
與設備類似,控制點也需初始化SDK,同時注冊控制點的回調函數(shù)。初始化完成后,就可以在UPnP網絡上捜索感興趣的設備。對于網絡電視而言,捜索目標定義為
charTVDeviceType[]="urn:schemas-cyoffice-org:NetworkTV:1";
控制點對感興趣的設備進行訂閱服務,每當設備中的狀態(tài)列表改變時,設備會向訂閱過這些事件的控制點發(fā)出事件消息??刂泣c根據(jù)這些信息來控制設備狀態(tài)。
3.2網橋設備端實現(xiàn)
網橋設備端的運行流程如圖6所示。
啟動用戶命令線程,持續(xù)等待接受用戶輸入的命令,并執(zhí)行相應的動作。啟動UPnP框架包括初始化線程池,以及創(chuàng)建相關處理機和注冊表。啟動Webserver獨立線程,開始接受用戶Web訪問。啟動串口獨立線程,開始接收來自串口(ZigBee網絡)的消息,并對信息做出相應處理。當完成以上環(huán)節(jié)后,設備進入正常運行狀態(tài),對各種命令、消息做出處理和響應。
根據(jù)本文網橋設計方案,網橋設備端需要為每個連上網橋的的ZigBee設備創(chuàng)建一個虛擬UPnP設備節(jié)點,現(xiàn)將虛擬設備節(jié)點結構定義如下:
structdev_Info
{
char*UDN;
char*DevType;
char*ServiceType[SERVICE_NUM];char*ServiceId[SERVICE_NUM];char*EventURL[SERVICE_NUM];char*CtrlURL[SERVICE_NUM];char*SCPDURL[SERVICE_NUM];structServiceContentSeeviceTable[SERVICE_NUM];intServiceCount;
unsignedcharDevKind;
unsignedcharDevId;
intDeviceHandle;
};
其中,服務列表節(jié)點結構定義如下:
structServiceContent
{
char*VarName[VAR_NUM];char*VarValStr[VAR_NUM];char*ActionName[ACTION_NUM];
upnp_actionAction[ACTION_NUM];
unsignedintVarCount;
unsignedintActionCount;
};
3.3XML文檔設計
設備所具備的功能是設備服務描述的主體部分。例如,支持UPnP的空調設備包含溫度調節(jié)、模式調節(jié)、風力方向等服務;支持UPnP的照明系統(tǒng)包含電燈的開關調節(jié)和亮度調節(jié)?;赬ML的UPnP設備/服務描述是實現(xiàn)服務發(fā)現(xiàn)、資源共享的基礎,UPnP論壇制定了如下設備XML描述模板[2]:
<?xmlversion=”1.0”?>
<rootxmlns="…">
<specVersion>
<device>
<serviceList>
<service>
</servise>
</serviceList>
</device>
</root>
下面以網絡電視機為例,詳細介紹基于上述模板開發(fā)的XML描述文檔:
首先,進行設備類型描述設計為:
<deviceType>urn:schemas-cyoffice-org:NetworkTV:1
</deviceType>
接下來需設計唯一設備名字(UDN)。遵循唯一性原則,這里我們取設備名與該設備的MAC地址組合而成。設該設備的MAC地址為8888888888888。因此,UDN元素可表達為:
<UDN>uuid:Upnp-Net_TV-1_0-8888888888888</UDN>
至此,便完成了設備描述文檔第一部分的設計,如下所示:
<?xmlversion=”1.0”?>
<rootxmlns="urn:schemas-cyoffice-org:NetworkTV-1-0”>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-cyoffice-org:NetworkTV:1</deviceType>
<UDN>uuid:Upnp-Net_TV-1_0-8888888888888</UDN>
<serviceList>
</serviceList>
<presentationURL>/NetTVpres.html</presentationURL>
</device>
</root>
本文所選擇的網絡電視設備包含音量調節(jié)、亮度調節(jié)、頻道選擇等服務。服務描述文檔定義了這些服務動作的調用接口。所以必須做出進一步的XML文檔設計。
例如,可把音量當前值的狀態(tài)變量定義為VolAdjust,默認值名定義為DefaultVolAdjust,數(shù)據(jù)類型為整型。對于VolAdjust來說,定義minimum=1,maximum=100,step=l。當其sendEventAttribute(事件發(fā)生屬性)的屬性值為真時,將發(fā)出事件通知。于是,網絡電視音量變量的定義如下所示:
<stateVariable>
<name>VolAdjust</name>
<sendEventAttribute>yes
</sendEventAttribute>
<dataType>int</dataType>
<allowedValueRange>
<minimum>1</minimum><maximum>100</maximum>
<step>1</step>
</allowedValueRange>
</stateVariable>
<stateVariable>
<name></name>
<sendEventAttribute>no</sendEventAttribute>
<dataType>int</dataType>
<allowedValueRange>
<minimum>1</minimum>
<maximum>100</maximum>
<step>1</step>
</allowedValueRange>
</stateVariable>
可設計與音量的相關動作:GetVolAdjust、SetVolAdjust、GetDefaultVolAdjust、SetDefaultVolAdjust。
網絡電視的其他功能的狀態(tài)變量與動作設計與此類似,具體設計不再贅述。
總結上述過程,我們首先確定服務所包含的功能類型,然后為每一個功能設計兩個狀態(tài)變量(當前值和默認值);然后為每一個狀態(tài)變量設計查詢動作和設置動作。設計過程符合規(guī)范且擴充方便。
4結語
本文所研究的基于UPnP網絡與ZigBee技術智能辦公室系統(tǒng),使用低成本、低功耗、高靈活性的ZigBee無線網絡來構建相關感應節(jié)點,通過ZigBee/UPnP網橋,即可實現(xiàn)ZigBee設備到虛擬UPnP的映射。利用UPnP網絡是即插即用性,是各智能終端不需要任何設定就可以操作。在系統(tǒng)啟動后,不管在辦公室內,或在外,均可通過瀏覽器連接到本系統(tǒng)進而達到遠程監(jiān)控的目的。
20211223_61c34c7eebc59__基于UPnP與ZigBee的智能辦公室研究





