一种嵌入式无线智能家居网关系统的设计方案

发布者:RainbowPromise最新更新时间:2013-02-25 来源: dzsc关键字:无线智能家居  网关系统  S3C2440 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  智能家居系统是为适应现代化家庭生活而形成的一个形式多样化的网络系统。它是现代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所示。[page]

网关总体架构

图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请求。[page]

网关系统的软件架构

图4 网关系统的软件架构

  程序设计思路如图5所示:网关程序启动,完成参数初始化,解析XML文件夹下的所有传感器配置文件,创建3个类的实例。4个任务队列。Serialcomm类创建两条线程用读串口和写串口,这样可以保证数据的实时性。基于同样的道理,XMLParser类和XMLComm类也是双线程并行工作。这样就组成了从WSN和Internet的上行通道(图5中的虚线表示),以及Internet到WSN的下行通道(图5中的粗线表示)。

网关应用设计思路图

图5 网关应用设计思路图

  4.4 人机接口模块的设计

  人机接口使用的是项目中使用的触摸屏是240×320 TFT彩屏LCD。该模块主要设计以下4个菜单供用户操作:文件菜单,查询菜单,报警菜单和管理菜单。这部分的设计使用Qt设计。Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司开发,目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速开发工具Qt Designer以及国际化工具Qt Linguist等。Qt的良好封装机制使其模块化程度非常高,可重用性较好,对于用户来说非常的方便。Qt API和开发工具对所有支持平台都是一致的,从而可以进行独立于平台的程序开发和配置。它使得跨平台软件编程直观、简易和方便。

  本文所有的可视化界面都是通过Qt自带的工具Qt designer设计,它是一个可视化的界面设计工具,对于其每个组件内部的关系通过编写代码来实现。

  网关登陆界面主要用于用户登陆信息的输入,包括用户名和密码。用户正确输入用户名和密码之后,就可以进入网关的主界面,如图6所示,可以看到,这里有4个菜单,当点击每一个菜单分别进入相应的功能界面,例如点击文件菜单,可进入配置文件的编辑界面。在此界面上可以修改网关系统的配置文件。这个界面具有一般文件界面的所有功能。这几个界面都比较简单,比较容易实现。在此重点介绍监控界面的设计。[page]

网关主界面

图6 网关主界面

  监控界面是该系统用户界面的主要部分。它主要是查看目前家里的环境信息。和这相关的文件有query.ui,ui_query.h,query.h,query.cpp等,其中query.ui是Qt Designer设计的主界面函数,如图7所示。Ui_query.h是moc编译器产生的函数。本文中需要的函数一般都在query.h,query.cpp中得到体现和实现,主要包括信息的查询,这里既可以查看一段时间内家庭内的环境信息,也可以输入查询日期,查询某天的数据信息。根据需求,设计的主要实现函数为:

网关的查询界面

图7 网关的查询界面

  这些槽函数是根据按钮要实现的具体功能而设计的。具体实现在query.cpp中。

  通过这部分的设计,实现了网关的人机界面部分。可以对通过此网关系统对家庭信息进行查询。

  4.5 报警功能

  该网关的报警功能主要是网关主控制器通过操作串口来操作GSM模块,使用AT指令来完成。在该网关中,报警功能实现当家庭网络中的信息超过某一阈值时,发送报警信息。

  5 结语

  本文立足于WSN和Internet,GSM异构互联研究,针对WSN与Internet,GSM互联的网络接入要求,完成了基于ARM9的家庭网关系统的研究与设计。从硬件平台上来说,提供了丰富的接口以便不同网络的接入,从软件平台来说,实现了用户对家庭网关的访问,通过用户可操作的人机界面来对家庭内的环境信息进行查询。当家庭内某一项环境信息超标时,通过使用AT指令控制GSM模块来向用户发送报警短信。

关键字:无线智能家居  网关系统  S3C2440 引用地址:一种嵌入式无线智能家居网关系统的设计方案

上一篇:公交车载GPS智能报站系统设计
下一篇:简论Wi-Fi在EPON中的应用

推荐阅读最新更新时间:2024-03-16 13:19

S3C2440裸机------LCD_LCD设置
1.lcd_4.3.c 首先我们根据芯片手册对LCD所需要的参数赋初值。 #define LCD_FB_BASE 0x33c00000 lcd_params lcd_4_3_params = { .name = lcd_4.3 .pins_polarity = { .de = NORMAL, /* normal: 高电平时可以传输数据 */ .pwren = NORMAL, /* normal: 高电平有效 */ .vclk = NORMAL, /* normal: 在下降沿获取数据 */ .rgb = NORMAL, /* normal: 高电平表示1 */ .hsync = INVERT, /*
[单片机]
<font color='red'>S3C2440</font>裸机------LCD_LCD设置
基于ARM9处理器S3C2440的GPS导航终端机的设计
0 引言 随着汽车等各种车辆交通工具的普及,车辆导航设备的需求也变得日益旺盛。作为车载设备.不仅要有可靠的性能,而且需要具有便携、低功耗和低价格等特点。而采用基于ARM微处理器的嵌入式系统与GPS模块相配合的GPS导航终端机的设计方案,可以很好的满足这一系统需求。为此,本文介绍了一种利用ARM9开发板和GPS模块实现GPS导航功能的终端机的软硬件结构和设计方法。 1 GPS导航系统结构 本文所介绍的GPS全球定位导航系统按功能可分为嵌入式主控模块、GPS模块、显示模块、扩展模块及供电模块等五大部分。 嵌入式主控模块基于S3C2440处理器,主要负责对GPS导航模块数据的响应、处理和控制。在硬件上,主控模块就是一个嵌入式
[单片机]
基于ARM9处理器<font color='red'>S3C2440</font>的GPS导航终端机的设计
s3c2440栈分配情况(fl2440裸机 stack)
//2440INIT.S ;The location of stacks UserStack EQU (_STACK_BASEADDRESS-0x3800) ;0x33ff4800 ~ SVCStack EQU (_STACK_BASEADDRESS-0x2800) ;0x33ff5800 ~ UndefStack EQU (_STACK_BASEADDRESS-0x2400) ;0x33ff5c00 ~ AbortStack EQU (_STACK_BASEADDRESS-0x2000) ;0x33ff6000 ~ IRQStack EQU (_STACK_BASEADDRESS-0x1000)
[单片机]
智能家居红外遥控无线接收电路设计
   1 红外遥控接收电路设计   所有红外遥控器的输出都是用编码后的串行数据对38kHz~40kHz的方波进行脉冲幅度调制而产生的。如果直接对已调波进行测量,而其脉宽只有20多微秒,由于单片机的指令周期是微秒级,会产生很大的误差。因此,先要对已调波进行解调,对解调后的波形进行测量。将CX20106或一体化红外接收头解调出的遥控编码脉冲直接连入SM8952AC25P单片机的INT0和T0脚,定时器T0和T1都初始化为定时工作方式1,T0的GATE位置位。每次外部中断首先停止定时,记录T0、T1的计数值,然后将T0、T1的计数值清零,并重新启动定时。T0的值即为高电平脉宽,T1~T0的值为低电平脉宽。T0、T1与红外编码信号脉宽的
[电源管理]
<font color='red'>智能家居</font>红外遥控<font color='red'>无线</font>接收电路设计
S3C2440开发板利用外部中断实现按钮切换不同功能
#include def.h #include option.h #include 2440addr.h #include mmu.h #include stdio.h /*中断处理函数按下不同按钮进入该中断处理,并根据按下的不同按钮启动不同功能,实现功能控制面板的按钮功能*/ void __irq Eint_Isr(void) { switch(rEINTPEND) { case 1 13: //功能1启动,同时关闭功能2 rGPBDAT=0 6|1 7; rEINTPEND=1 13; //等待下一个自己的中断进入 break; case 1 14: //功能2启动,同时
[单片机]
S3C2440的RAM和启动过程!
2440自带的RAM是:16K Instruction cache + 16K data cache + 4K Boot Internal SRAM。但是我们能用到的只有4K Boot Internal SRAM;2440不自带ROM。 2440的启动方式有两种,norflash和nandflash,怎么选择? OM = 01,10为norflash启动,分别对应16bit和32bit,OM = 00为nandflash启动。 两种启动方式:先贴张图。 可以观察到,s3c2440总共有8个内存banks,6个内存bank可以当作ROM或者SRAM来使用,留下的2个bank除了当作ROM 或者SRAM,还可以用SDRAM
[单片机]
<font color='red'>S3C2440</font>的RAM和启动过程!
关于S3C2440NAND操作中s3c2440_write_addr_lp函数地址变换说明
源程序 static void s3c2440_write_addr_lp(unsigned int addr) { int i; volatile unsigned char *p = (volatile unsigned char *)&s3c2440nand- NFADDR; int col, page; col = addr & NAND_BLOCK_MASK_LP; page = addr / NAND_SECTOR_SIZE_LP; *p = col & 0xff; /* Column Address A0~A7 */ for(i=0; i 10; i++); *p = (col 8)
[单片机]
关于S3C2440NAND操作中s3c2440_write_addr_lp函数地址变换说明
基于S3C2440的电视发射机控制单元设计
0 引言 随着广播电视事业的发展,电视发射机技术的应用越来越广泛。为了能有效保证电视信号的质量,对电视发射机监测的重要性更加突出。本文通过对电视发射机信号的监测,给出了利用S3C2440来对电视发射机进行智能控制的设计方法,该方法还可通过与上位机的连接,并利用PC监控计算机来实现遥测遥控。 1 系统组成   本控制器以基于ARM9系列高性能嵌入式 处理器 S3C2440为核心来控制 LCD 触摸 显示屏 、局域网、 RS232 C 接口 ,同时控制模拟输入量接口、数字状态量输入接口和控制输出接口,其系统组成原理框图如图1所示。 为了减小发射机对控制器的干扰,应对控制器的模拟输入量、数字状态量输入和控制
[家用电子]
基于<font color='red'>S3C2440</font>的电视发射机控制单元设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved