Linux平台智能家居的本地监控与远程监控
摘要:针对智能家居的应用需求和特点,对智能家居系统进行分析和研究,提出了一种智能家居系统的整体设计方案。以Cortex—A8为核心处理器,Linux嵌入式系统为智能家居控制系统,利用Android提供的各种资源建立智能家居远程控制软件,实现了家用电器的远程监控和本地监控相结合。
关键词:Linux智能家居;嵌入式系统;Android
引言
随着社会电子信息化的不断发展,人们在家居中使用的电器也越来越多,由此带来的安全隐患也有了明显的增多。在这些电器中,一旦出现一些异常,便会给人们带来很大的损失。为了降低电器的不合理使用带来的异常情况,就要求在异常发生时用户能及时得到信息,并通过实时监控,采取一定的操作排除异常。因此,智能家居系统的作用是非常巨大的。
在智能家居控制系统中,核心设备是家居智能控制终端。综合目前的研究现状,主要有以下几种方案:第一种是采用键盘、红外遥控器、触摸屏和LCD显示器等设备对家电进行控制。当前智能家居控制系统大都采用此种控制终端,使用此种方式需要分别对控制终端的软件与硬件进行设计,设计复杂,成本高。此外,使用此种控制终端只能进行本地控制,不能实现远程控制。第二种是采用家庭或者办公电脑作为智能家居控制系统的控制终端。使用这种控制方式的缺点是,只能用固定点对家居进行控制,控制终端不能移动,不够方便。第三种是采用手机作为控制终端,使用手机通过无线网络(WiFi、蓝牙、GSM等)对家居系统进行控制,可以真正做到方便、快捷、触手可及。但目前采用这种方式的智能家居系统还不是很多,而且大部分操作繁琐,没有良好的用户体验。
本文解决了嵌入式智能家居系统、ZigBee无线通信、家居控制协议等相关技术难点,分析了各自的基本特点和所要实现的基本功能,并在此基础上提出了基于Linux平台的嵌入式智能家居系统的整体设计方案。
1 系统整体结构概述
根据全面感知、可靠传递和智能处理的功能需求,可将智能家居系统划分为感知层(家电信息采集终端)、网络层(家庭网关)和应用层(包括PC机网页和手机客户端)3个部分,其整体框架结构如图1所示。
其中,感知层的核心功能是实现数据的采集,主要通过各类传感器来完成数据的获取,最终将获取到的数据通过无线网络打包发送到网络层的家庭网关中。网络层需要实现一个基于嵌入式Web服务器的家庭网关,一方面,用来作为连接家庭内网与Internet外网的接口,实现家庭内网和Internet的数据通信功能;另一方面,用来统筹来自感知层的数据和来自应用层的命令。应用层则需要实现一个网页客户端和手机客户端界面,一方面用来加工处理来自服务器端的数据;另一方面,用来实现人机交互,通过客户端界面向服务器端发送控制命令。
1.1 硬件构成
智能家居系统的硬件系统主要包括S5PC100平台(以下简称A8)、11C14平台(以下简称M0)和ZigBee模块3个部分。其中,S5PC100开发平台是基于三星公司Cortex—A8内核的S5PC100处理器设计而成的,支持多种格式的硬件编解码,如:MPEG-1/2/4、H.263/H.264等,该平台主要通过开发的系统软件实现对M0平台的控制。11C14平台基于LPC11C14微控制器(ARM Cortex—M0内核),具有低功耗、低成本等优点。同时,该平台具有丰富的硬件资源,集成了传感器模块(包括三轴加速度传感器、光敏传感器、温度传感器、湿度传感器等)、RFID设备模块、ZigBee无线通信模块和OLED显示模块等。该平台主要用于模拟家庭中的信息采集和执行单元。ZigBee模块采用的是CEL公司的ZICM2410,带有USB转串口芯片,可以方便地连接PC机或其他带有USB主机接口的设备,实现组网通信。
1.2 软件环境
(1)U—Boot移植
U—Boot的功能是把内核放到DRAM(Dynamic Random Access Memory)中运行。网上下载的U—Boot对开发平台只有通用性代码,不支持和识别特定开发平台上的一些硬件和功能。因此,需要添加对这些硬件的识别、初始化及其相应功能的实现。
U—Boot的移植过程可以分为两个阶段,其中,第一阶段主要完成基本的硬件设备初始化,准备RAM(Randtom Access Memory,随机存储器)空间加载第二阶段代码,复制第二阶段代码到RAM中,设置堆栈指针SP,跳转到第二阶段代码的C入口点;第二阶段主要完成汇编语言跳转到main()入口函数,初始化本阶段将要使用的硬件设备,检测系统的内存映射,加载内核映像文件和根文件系统映像文件,设置内核启动参数和调用内核。
(2)Linux内核移植
Linux内核是一种源码开放的操作系统,采用模块化的设计。在此只保留了必需的功能模块,删除了冗余的功能模块,并对内核重新编译,从而使系统运行所需的硬件资源显著减少。本设计中内核的移植主要包括:网卡驱动的添加、NAND Flash驱动的添加、添加对YAFFS2文件系统的支持、添加USB设备驱动、添加LCD设备驱动、添加SD卡设备驱动。
(3)根文件系统制作
如果没有根文件系统,其他的文件系统就不能进行加载。根文件系统包括Linux启动时所必须的目录和关键性文件,以及使其他文件系统得以挂载的必要文件。制作根文件系统主要包括:添加内核菜单选项、建立目录结构、添加命令程序、拷贝C库、编写系统启动文件、配置主机的NFS。
2 系统功能模块设计
本系统是在A8、M0及PC等设备的基础上,基于互联网、物联网、传感器等技术并结合物联网新型概念设计的,使用户能够对家庭内部情况进行实时地掌握和控制。本系统主要由前端数据中心(A8)、远程监控终端(M0)和服务器端(PC)组成。
首先,数据接收模块接收M0通过ZigBee传输上来的实时环境参数(如温度、湿度、光感数据等),并通过接收端的ZigBee经USB转串口操作,把采集到的环境参数发送给A8,由M0的接收请求线程从串口读取消息,并交给数据处理模块。数据处理模块解码接收到信息后,激活数据库线程以保存数据,激活内存数据刷新线程以更新实时环境信息,并对环境参数进行判断处理,决定是否进行报警。另外,在构建的嵌入式Web服务器上,用户可以通过网络,利用PC机对家居信息进行监控;通过Web页面上的控制按钮,监控设备可以识别出用户指令并进行相应的动作。系统各模块进程间关系如图2所示。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)