一种嵌入式无线智能家居网关系统的设计方案
引言
智能家居系统是为适应现代化家庭生活而形成的一个形式多样化的网络系统。它是现代3C技术(计算机技术,通信技术,控制技术)与传统家居系统相结合的产物,是家居信息化未来的发展方向。智能家居网络通常包括智能家居网关,外部网,安防设备等。智能家居网关与其他4个部分连接,交互信息,对它们进行统一的管理。此外,智能家居网关还接入外部网络,使用户能够远程实时控制管理家庭内部网络。
在本文中,智能家居网络是指应用于家庭环境的无线传感器网络。在家庭中,部署各种传感器,例如红外传感器,烟雾传感器,RFID门磁传感器来监测家庭的一些环境信息,这些传感器通过自组织方式就构建了智能家居网络。所以本文设计的智能家居网关主要是实现WSN网络与Internet以及GSM网的互连。显然,智能家居网关是整个家庭网络的核心,主要实现Internet网,GSM网的接入,远程控制,以及实现协议转换连接家庭内部异构网络的功能。目前基于PC方案的家庭网关不仅成本高,而且要求计算机一直处于开机状态,因此,对于普通的用户,家庭网关应采用廉价的嵌入式CPU,若单是采用8位或者16位的单片机,由于速度慢且资源有限,不能实现复杂的控制,效果不理想。
因此,以ARM920T核处理器S3C2440为主处理器,家庭内部通过JENNIC 5139射频模块自组织无线网络。GSM模块选用Wavecom GSM模块。此外,本文用Qt设计了用户可操作的触摸屏界面。
1 网关需求分析
网关系统的主要功能是在现场及远程终端监控家庭各个传感器的工作状态,并在异常时报警。各个传感器将各自采集的信息,经过JEN-NIC射频模块的无线传输,传送到网关系统上,通过嵌入式微处理器操作系统,将信息通过有线或者无线方式传送到远程终端上或者用户手机上。网关部署如图1所示。
图1 网关部署结构图
本文要实现的目标有以下3个:
(1)实现用户在任何时间,任何地点通过远程无线的方式对家庭内的环境信息查询;
(2)对家庭内部的环境信息进行实时监控,当其中某一项参数超过一定指标时,以远程无线方式通知用户,发送报警信息;
(3)*远程终端的连接请求,当有远程Socket连接时网关发送数据。
2 网关总体设计
现阶段大部分的家庭网关联网方式主要为有线接入,本文提出了一种基于ARM处理器和GSM网络,以linux为操作系统的家庭网关无线接入方案,目的是能通过手机短信或者远程终端对控制节点进行远程控制。并使用JENNIC无线射频模块实现家庭内部子网采集数据的无线传输。
网关系统的总体结构图可以简化为硬件层和软件层。硬件层由高性能的微处理器和多个功能模块组成。软件层由嵌入式操作系统以及应用软件构成,其具体结构如图2所示。
图2 网关总体架构
3 家庭网关硬件设计
本次网关设计的硬件层主要采用嵌入式的ARM9开发平台。嵌入式ARM处理器具有体积小,功耗低,成本低,性能高等特点,是十分优秀的RISC处理器。其中三星公司的S3C2440是一款优秀的ARM9核心处理器,具有400 MHz的主频,内部集成多个功能模块,支持NAND-flash启动等特点,是目前市场上最常见的嵌入式处理器芯片。因此,本系统拟采用S3C2440处理器为核心处理器。
考虑主控制器扩展出来的串行接口数量有线,程序的调试,烧写,传感器节点等都需要串行接口。所以,选择了AU9254这款USB PUB芯片来实现USB串行口的扩展。以太网控制器和配合扩展的RJ 45接口主要用于与Internet网络互联。射频收发模块和GSM无线模块拟采用标准的串口集成到网关上。人机接口打算使用LCD触摸屏,可以方便地观察节点的配置以及检测环境的变化。JTAG接口将引导加载程序烧写在网关中。具体的硬件架构图如图3所示。
图3 网关硬件架构图
4 家庭网关软件设计
4.1 构建网关嵌入式Linux操作系统
网关系统硬件平台与功能应用之间,需要专门的负责管理存储器分配,中断处理以及任务调度等功能的软件模块,这就是嵌入式操作系统。嵌入式操作系统是用来支持嵌入式应用的系统的软件,包括硬件相关的底层驱动,系统内核,通信协议,图形用户界面等。
本文的网关系统是面向WSN和Internet,GSM互联的通信应用,主要完成异构网络之间的通信和控制,因此需要选择实时的操作系统。在众多的嵌入式实时操作系统中,从开发成本,软件支持和代码开放的角度考虑,本文将采用Linux操作系统作为网关的系统的操作系统。
4.2 建立交叉编译环境
交叉编译就是在一个平台上生成另一个平台上可以执行的代码。这里的平台包括体系结构和操作系统。同一体系结构上可以运行不同操作系统。同样,同一个操作系统也可以在不同的体系结构上运行。
本文是在装有Ubuntu 9.10(基于X86架构的Linux操作系统)的PC机上为网关系统建立了基于ARM9的交叉编译环境。建立之后,就可以在PC机上对将在网关系统上运行的应用程序进行编译,从而生成可以在网关系统上运行的可执行代码,最后下到网关系统上。这也就是目前嵌入式程序开发的宿主机/目标机(HOST/TARGET)模式。
Linux交叉编译环境的内容,主要分为4个部分:GCC编译器(C语言编译器),二进制工具包(Binutils),标准C库(Glibc)和Linux内核头文件。Glibc和GCC都有很多版本,需要根据实际需要选择合适的版本。
4.3 网关应用程序设计
本次网关系统的应用软件架构图4所示。其主要功能是依据传感器配置文件,分类解析WSN中的数据,为用户提供Socket数据服务和XML-RPC远程调用服务。其工作流程是:网关程序启动以后,从XML文件夹中解析所有的传感器配置文件;*串口数据,利用传感器配置文件解析数据生成XML数据流;创建Socket服务器,等待客户端数据请求,提供XML格式的Socket服务;创建XML-Socket远程调用服务器,完成用户的XML请求。
- 基于ZigBee的家庭智能系统设计(08-09)
- 基于MC9S08QG8低端微控制器的无线控制器设计(08-29)
- 基于ZigBee与红外的家居监控系统(09-29)
- 基于ZigBee技术的无线传感器网络节点的设计(06-07)
- 基于ARM9处理器的ZigBee工业以太网网关设计(07-24)
- 基于嵌入式ARM-Linux无线ZigBee协调器驱动设计(11-02)