基于Zigbee協(xié)議的OSGi無線家庭網(wǎng)關設計
摘要:設計基于OSGi標準和Zigbee無線通信協(xié)議的分布式家庭網(wǎng)關.首先提出基于Zigbee家庭網(wǎng)絡的無線組網(wǎng)方案 同時提出無線家庭網(wǎng)關的硬件實現(xiàn)方案,并給出基于OSGI標準的軟件開發(fā)的步驟。最后分析了家庭網(wǎng)關的實際應用。
1 引言
隨著internet的普及和數(shù)字家庭的深人人心.消費電子、計算機、通信3c一體化趨勢日益明顯,家庭網(wǎng)絡化已經(jīng)成為家庭現(xiàn)代化的潮流。家庭網(wǎng)絡可看作當作一種分布式網(wǎng)絡,普通家電通過嵌入網(wǎng)絡接口和能實現(xiàn)本地控制的I/O口,成了網(wǎng)絡用具(Internet Personal Appliances),通過家庭網(wǎng)關實現(xiàn)網(wǎng)絡用具的遠程控制.采用基于IEEE802.15.4標準的Zigbee協(xié)議,真正實現(xiàn)寬帶網(wǎng)絡家庭的最后一公尺延伸,使家庭組網(wǎng)更加便捷。
2 家庭網(wǎng)絡總體設計
2.1家庭網(wǎng)絡的結(jié)構(gòu)
圖1是家庭網(wǎng)絡的總體結(jié)構(gòu)。其中家庭網(wǎng)關是家庭網(wǎng)絡的核心,是連接家庭中彼此孤立分散的子網(wǎng)或網(wǎng)絡用具、實現(xiàn)信息的交互和共享,并將家庭內(nèi)網(wǎng)和外部網(wǎng)連接,實現(xiàn)內(nèi)外網(wǎng)絡互通和鑒權(quán)的設備。
實現(xiàn)家庭內(nèi)部組網(wǎng)方面,本系統(tǒng)采用Zigbee無線通信標準。網(wǎng)關采用GPRS無線方式連接外部網(wǎng)絡,同時預留RJ45接口。網(wǎng)關全部采用無線通信方式,可以避免家庭布線的繁瑣,方便了網(wǎng)關在家庭中的布置,同時使這種網(wǎng)關不僅能夠應用于家庭,也能應用在車載等移動系統(tǒng)。
2.2 Zigbee協(xié)議概述
Zigbee是基于802.15.4標準開發(fā)的關于組網(wǎng)、安全和應用軟件方面的技術標準。Zigbee協(xié)議包括高層應用規(guī)范(profile)、匯聚層、網(wǎng)絡層、數(shù)據(jù)鏈路層和物理層。其中數(shù)據(jù)鏈路層和物理層標準由IEEE802.15.4負責制定,網(wǎng)絡層以上由Zigbee聯(lián)盟制定。
Zigbee技術一開始就是被設計用來構(gòu)建包括恒溫裝置、安全裝置、家用電表等小型設備的無線網(wǎng)絡。作為家庭網(wǎng)絡的組網(wǎng)節(jié)點,覆蓋范圍在10m~75m,具有低功耗特性,同時協(xié)議實現(xiàn)簡單且免收專利費,工作頻段為免執(zhí)照頻段等。Zigbee技術的這些特點彌補了低成本、低功耗和低速率無線通信市場的空缺,豐富和便捷的應用為家庭網(wǎng)絡化提供了很好的實現(xiàn)手段。值得一提的是,低能耗和極低的時延是藍牙等無線技術所不能比擬的。
2.3 網(wǎng)絡用具
對于網(wǎng)絡用具,目前還沒有統(tǒng)一的標準,IETF草案中按功能把它分成胖網(wǎng)絡用具(fat IPA)和瘦網(wǎng)絡用具(thin IPA)。功能較復雜的胖網(wǎng)絡用具定義為:IPA=[network interface][application control][I/O control],即具備網(wǎng)絡接口和本地系統(tǒng)控制的I/O端口,同時具備嵌入式應用程序的家用設備.如網(wǎng)絡冰箱、網(wǎng)絡空調(diào)、家庭多媒體系統(tǒng)等需要實現(xiàn)復雜控制功能;如燈、門等實現(xiàn)相對簡單的控制功能,需網(wǎng)絡接口和I/O控制端口.屬于瘦網(wǎng)絡用具。網(wǎng)絡用具和普通家用設備的區(qū)別主要在于有沒有網(wǎng)絡接口.能否實現(xiàn)網(wǎng)絡控制。
3 家庭網(wǎng)關的設計
設計家庭網(wǎng)關是本系統(tǒng)的關鍵。特別地.作為家庭網(wǎng)絡建設的核心.家庭網(wǎng)關的設計思路已經(jīng)提了不少.本節(jié)將主要從j個方面作一些探討。
3.1基于OSGi的分布式網(wǎng)關模型
開放服務網(wǎng)關起始(OSGi)是OSGi組織制定的一個面向網(wǎng)絡開放服務的規(guī)范(specification).基于這個規(guī)范開發(fā)的OSGi框架(Framework)可以部署在嵌入式設備中.框架是具有管理服務和升級服務等功能的網(wǎng)關設備軟件平臺。它的實現(xiàn)是以java技術為基礎.具備了java平臺獨立等各種優(yōu)點,可以獨立于不同的制造商.通過API整合不同的標準.具有跨平臺和良好的兼容性,為實現(xiàn)不同通信技術并存和支持多種設備互連奠定基礎。本系統(tǒng)網(wǎng)關系統(tǒng)構(gòu)架設計部署如下圖2:
OSGi框架是OSGi服務平臺的核心.是通過java類和java API實現(xiàn)的一些功能集,它負責實現(xiàn)各種服務集(bundles)的實時部署、管理和維護工作.通過對服務集的控制來實現(xiàn)網(wǎng)關的各種功能。服務集是服務的實現(xiàn)載體,OSGi框架和其它所有的功能都是以服務集的方式通過java類和API實現(xiàn)。通過UPnP(Universal Plug and Play)技術可使網(wǎng)絡用具的部署變得非常方便。當網(wǎng)絡用具和家庭網(wǎng)關在物理層連接后,OSGi框架的設備管理器就會檢測到設備服務注冊,然后借助驅(qū)動定位器和驅(qū)動選擇器從網(wǎng)絡或本地下載能跟設備匹配的驅(qū)動程序。這樣.當用戶想在家里添置網(wǎng)絡設備時,無需手動安裝驅(qū)動程序就可以實現(xiàn)設備的“網(wǎng)絡即插即用”把家庭網(wǎng)絡設計成分布式,具有很多優(yōu)勢.外部網(wǎng)絡只要訪問家庭網(wǎng)關,就可以透明地訪問不帶IP的家庭網(wǎng)絡用具,同時也解決了家庭網(wǎng)絡用具之問互操作性問題。
3.2網(wǎng)關硬件實現(xiàn)方案
無線家庭網(wǎng)關由微控制器、GPRS模塊和Zigbee射頻通信模塊三部分組成.硬件模塊連接如下圖3。
控制器采用三星公司的ARM9微處理器S3C2410X為主CPU.它是Samsung公司推出的基于ARM9TDMI核.精簡指令系統(tǒng)的16/32位高速微處理器。以S3C2410X為核心.外圍擴展一系列功能模塊,GPRS模塊采用Siemens公司的TC35終端,通過串口與CPU相連.實現(xiàn)與internet連接。外部網(wǎng)絡可以通過web方式訪問家庭網(wǎng)絡.查詢和控制家庭內(nèi)部網(wǎng),同時也通過RJ45網(wǎng)絡有線連接外網(wǎng):Zigbee射頻收發(fā)模塊采用Chipcon AS公司的CC2420芯片.控制家庭網(wǎng)內(nèi)具備Zigbee標準接口的家庭用具。在家電控制器上加載Zigbee無線模塊.通過UPnP技術.網(wǎng)絡用具就成為家庭分布式網(wǎng)絡的一個節(jié)點。
3.3軟件平臺軟件開發(fā)步驟
S3C2410X集成了內(nèi)存管理單元.可以嵌入多種主流操作系統(tǒng)。在這個系統(tǒng)中.家庭網(wǎng)關采用免費的嵌入式Linux操作系統(tǒng)。Linux源代碼的開放性對程序開發(fā)者來說很容易實現(xiàn)系統(tǒng)的裁減和再開發(fā).也方便java技術的移植,可以大大地提高系統(tǒng)開發(fā)的效率。
系統(tǒng)開發(fā)和部署如下:
(1)在主機上安裝Linux嵌入式編譯和開發(fā)環(huán)境.如安裝交叉編譯工具鏈.采用eclipse作為IDE;
(2)下載CDC及其profile.本系統(tǒng)采用Personal Profile;同時下載OSGi Framework.本系統(tǒng)選用基于OSGi R3的Oscar框架;
(3)裁減Linux嵌入式操作系統(tǒng).并修改相應的配置文件.交叉編譯Linux的內(nèi)核和組件.生成操作系統(tǒng)鏡像文件.通過bootloader把鏡像文件下載到目標系統(tǒng)中;
(4)在PC上交叉編譯CVM和OSGi Framework,然后通過ftp把編譯文件移植到目標板;
(5)按照需求編寫相應的bundle服務應用程序、圖形用戶管理程序等.編譯并下載到目標系統(tǒng)。
當然.根據(jù)具體的應用還可以添加一些服務程序??傮w來說.嵌入式系統(tǒng)的裁減移植和bundle的實現(xiàn)是重點和難點.在開發(fā)過程當中需要仔細的調(diào)試和分析測試。下面介紹一下http bundle的部分偽代碼實現(xiàn):
package org.osgi.service.http;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse
……
//定義HttpContext接口,servlet和資源通過這個接口進行注冊
public abstract interface HttpContext{
public abstract boolean handleSecurity(HttpServletRequest
request,HttpServletResponse response)
throws IOException;
//定義接口方法和屬性等
}
//定義HttpService,其它bundle的資源和servlet
都是通過這個接口被動態(tài)注冊和加載到OSGi
public abstract interface HttpService{
//定義servlet和資源注冊處理方法和屬性
……
}
在開發(fā)完成后,還應該對系統(tǒng)總體進行規(guī)劃,去除不必要的程序模塊,對硬件進行制板封裝。
4 應用前景
家庭網(wǎng)關的應用將是大量的.它可以應用于家庭網(wǎng)、樓宇自動化、車載系統(tǒng)、小型辦公室等,具有布置美觀方便,無須專業(yè)人員維護等優(yōu)點,必將在未來社會信息化進程中發(fā)揮獨特的作用。有調(diào)查研究表明,一個家庭擁有幾臺電腦將會普遍存在,這樣家庭網(wǎng)關將發(fā)揮不可替代的作用,家庭網(wǎng)關式的Internet的家庭寬帶接人和家庭設備共享將成為主流。另外,家庭網(wǎng)關在車載系統(tǒng)等方面的應用前景也廣闊的,它可以應用于車載導航、監(jiān)控、多媒體等,例如BMW 公司的X5系列汽車采用OSGi實現(xiàn)了導航,MP3音樂下載等各種功能,駕駛者可透過無線通訊技術與PDA結(jié)合,可以享受上網(wǎng)瀏覽或是接收郵件等服務。
5 結(jié)束語
采用Zigbee協(xié)議組建無線局域網(wǎng)絡具有很大的優(yōu)勢,利用CC2420芯片開發(fā)短距離射頻傳輸模塊成本低、功耗小,并配合基于Java技術的OSGi框架,使網(wǎng)絡用具對家庭網(wǎng)絡即插即用,同時家庭外部網(wǎng)絡訪問內(nèi)部網(wǎng)絡具有透明性。