基于Zigbee协议的OSGi无线家庭网关设计
扫描二维码
随时随地手机看文章
摘要:设计基于OSGi标准和Zigbee无线通信协议的分布式家庭网关.首先提出基于Zigbee家庭网络的无线组网方案 同时提出无线家庭网关的硬件实现方案,并给出基于OSGI标准的软件开发的步骤。最后分析了家庭网关的实际应用。
1 引言
随着internet的普及和数字家庭的深人人心.消费电子、计算机、通信3c一体化趋势日益明显,家庭网络化已经成为家庭现代化的潮流。家庭网络可看作当作一种分布式网络,普通家电通过嵌入网络接口和能实现本地控制的I/O口,成了网络用具(Internet Personal Appliances),通过家庭网关实现网络用具的远程控制.采用基于IEEE802.15.4标准的Zigbee协议,真正实现宽带网络家庭的最后一公尺延伸,使家庭组网更加便捷。
2 家庭网络总体设计
2.1家庭网络的结构
图1是家庭网络的总体结构。其中家庭网关是家庭网络的核心,是连接家庭中彼此孤立分散的子网或网络用具、实现信息的交互和共享,并将家庭内网和外部网连接,实现内外网络互通和鉴权的设备。
实现家庭内部组网方面,本系统采用Zigbee无线通信标准。网关采用GPRS无线方式连接外部网络,同时预留RJ45接口。网关全部采用无线通信方式,可以避免家庭布线的繁琐,方便了网关在家庭中的布置,同时使这种网关不仅能够应用于家庭,也能应用在车载等移动系统。
2.2 Zigbee协议概述
Zigbee是基于802.15.4标准开发的关于组网、安全和应用软件方面的技术标准。Zigbee协议包括高层应用规范(profile)、汇聚层、网络层、数据链路层和物理层。其中数据链路层和物理层标准由IEEE802.15.4负责制定,网络层以上由Zigbee联盟制定。
Zigbee技术一开始就是被设计用来构建包括恒温装置、安全装置、家用电表等小型设备的无线网络。作为家庭网络的组网节点,覆盖范围在10m~75m,具有低功耗特性,同时协议实现简单且免收专利费,工作频段为免执照频段等。Zigbee技术的这些特点弥补了低成本、低功耗和低速率无线通信市场的空缺,丰富和便捷的应用为家庭网络化提供了很好的实现手段。值得一提的是,低能耗和极低的时延是蓝牙等无线技术所不能比拟的。
2.3 网络用具
对于网络用具,目前还没有统一的标准,IETF草案中按功能把它分成胖网络用具(fat IPA)和瘦网络用具(thin IPA)。功能较复杂的胖网络用具定义为:IPA=[network interface][application control][I/O control],即具备网络接口和本地系统控制的I/O端口,同时具备嵌入式应用程序的家用设备.如网络冰箱、网络空调、家庭多媒体系统等需要实现复杂控制功能;如灯、门等实现相对简单的控制功能,需网络接口和I/O控制端口.属于瘦网络用具。网络用具和普通家用设备的区别主要在于有没有网络接口.能否实现网络控制。
3 家庭网关的设计
设计家庭网关是本系统的关键。特别地.作为家庭网络建设的核心.家庭网关的设计思路已经提了不少.本节将主要从j个方面作一些探讨。
3.1基于OSGi的分布式网关模型
开放服务网关起始(OSGi)是OSGi组织制定的一个面向网络开放服务的规范(specification).基于这个规范开发的OSGi框架(Framework)可以部署在嵌入式设备中.框架是具有管理服务和升级服务等功能的网关设备软件平台。它的实现是以java技术为基础.具备了java平台独立等各种优点,可以独立于不同的制造商.通过API整合不同的标准.具有跨平台和良好的兼容性,为实现不同通信技术并存和支持多种设备互连奠定基础。本系统网关系统构架设计部署如下图2:
OSGi框架是OSGi服务平台的核心.是通过java类和java API实现的一些功能集,它负责实现各种服务集(bundles)的实时部署、管理和维护工作.通过对服务集的控制来实现网关的各种功能。服务集是服务的实现载体,OSGi框架和其它所有的功能都是以服务集的方式通过java类和API实现。通过UPnP(Universal Plug and Play)技术可使网络用具的部署变得非常方便。当网络用具和家庭网关在物理层连接后,OSGi框架的设备管理器就会检测到设备服务注册,然后借助驱动定位器和驱动选择器从网络或本地下载能跟设备匹配的驱动程序。这样.当用户想在家里添置网络设备时,无需手动安装驱动程序就可以实现设备的“网络即插即用”把家庭网络设计成分布式,具有很多优势.外部网络只要访问家庭网关,就可以透明地访问不带IP的家庭网络用具,同时也解决了家庭网络用具之问互操作性问题。
3.2网关硬件实现方案
无线家庭网关由微控制器、GPRS模块和Zigbee射频通信模块三部分组成.硬件模块连接如下图3。
控制器采用三星公司的ARM9微处理器S3C2410X为主CPU.它是Samsung公司推出的基于ARM9TDMI核.精简指令系统的16/32位高速微处理器。以S3C2410X为核心.外围扩展一系列功能模块,GPRS模块采用Siemens公司的TC35终端,通过串口与CPU相连.实现与internet连接。外部网络可以通过web方式访问家庭网络.查询和控制家庭内部网,同时也通过RJ45网络有线连接外网:Zigbee射频收发模块采用Chipcon AS公司的CC2420芯片.控制家庭网内具备Zigbee标准接口的家庭用具。在家电控制器上加载Zigbee无线模块.通过UPnP技术.网络用具就成为家庭分布式网络的一个节点。
3.3软件平台软件开发步骤
S3C2410X集成了内存管理单元.可以嵌入多种主流操作系统。在这个系统中.家庭网关采用免费的嵌入式Linux操作系统。Linux源代码的开放性对程序开发者来说很容易实现系统的裁减和再开发.也方便java技术的移植,可以大大地提高系统开发的效率。
系统开发和部署如下:
(1)在主机上安装Linux嵌入式编译和开发环境.如安装交叉编译工具链.采用eclipse作为IDE;
(2)下载CDC及其profile.本系统采用Personal Profile;同时下载OSGi Framework.本系统选用基于OSGi R3的Oscar框架;
(3)裁减Linux嵌入式操作系统.并修改相应的配置文件.交叉编译Linux的内核和组件.生成操作系统镜像文件.通过bootloader把镜像文件下载到目标系统中;
(4)在PC上交叉编译CVM和OSGi Framework,然后通过ftp把编译文件移植到目标板;
(5)按照需求编写相应的bundle服务应用程序、图形用户管理程序等.编译并下载到目标系统。
当然.根据具体的应用还可以添加一些服务程序。总体来说.嵌入式系统的裁减移植和bundle的实现是重点和难点.在开发过程当中需要仔细的调试和分析测试。下面介绍一下http bundle的部分伪代码实现:
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
都是通过这个接口被动态注册和加载到OSGi
public abstract interface HttpService{
//定义servlet和资源注册处理方法和属性
……
}
在开发完成后,还应该对系统总体进行规划,去除不必要的程序模块,对硬件进行制板封装。
4 应用前景
家庭网关的应用将是大量的.它可以应用于家庭网、楼宇自动化、车载系统、小型办公室等,具有布置美观方便,无须专业人员维护等优点,必将在未来社会信息化进程中发挥独特的作用。有调查研究表明,一个家庭拥有几台电脑将会普遍存在,这样家庭网关将发挥不可替代的作用,家庭网关式的Internet的家庭宽带接人和家庭设备共享将成为主流。另外,家庭网关在车载系统等方面的应用前景也广阔的,它可以应用于车载导航、监控、多媒体等,例如BMW 公司的X5系列汽车采用OSGi实现了导航,MP3音乐下载等各种功能,驾驶者可透过无线通讯技术与PDA结合,可以享受上网浏览或是接收邮件等服务。
5 结束语
采用Zigbee协议组建无线局域网络具有很大的优势,利用CC2420芯片开发短距离射频传输模块成本低、功耗小,并配合基于Java技术的OSGi框架,使网络用具对家庭网络即插即用,同时家庭外部网络访问内部网络具有透明性。