基于WIFI智能家居控制系统的设计
2014-04-29朱欣颖陈曦
朱欣颖 陈曦
摘 要:针对人们对智能家居的要求,对智能家居控制系统进行分析和研究,提出一种低成本、易扩展、方便实用的家居控制系统。采用Android智能手机作为家居控制终端,并利用FPGA构建NIOS II软核,建立智能家居硬件控制平台。该系统可用于普通的住宅家庭用户,实现了家用电器的WIFI无线控制。
关键词:Android;FPGA;智能家居;WIFI
中图分类号: TP39 文献标识码:A 文章编号:2095-2163(2014)06-
Abstract: For peoples requirement of intelligent household, the paper make an analysis and research to the control system of smart home, and puts forward a kind of low cost, easy extension, convenient and practical home control system. Android smartphones as household control terminal, and by using FPGA build NIOS II soft core, intelligent household hardware control platform is established. The system can be used for ordinary residential home users, and has realized the WIFI control of household appliances.
Key Words:Android; FPGA; Smart Home; WIFI
0引 言
随着社会的不断进步和信息技术的迅猛发展,自动控制技术和信息家电相结合的智能家居系统正悄然走进人们的日常生活。智能家居主要是通过物联网技术将各种家电连接到一起,可对家庭照明、窗帘、暖通进行遥控,同时还具有防盗报警、环境状况监测和定时控制等高端功能[1]。近年来WIFI技术的日趋成熟,决定了基于Android平台的智能手机获得了大规模的普及与推广[2],这就使得通过智能手机作为控制终端对家电进行无线控制进入了现实可行阶段,而且在相当程度上还可使智能家居系统更加方便灵活。与此同时,SOPC片上系统也因其具有的较高设计效率和较强灵活性,而被业界称为“半导体产业的未来”。若利用FPGA构建SOPC片上系统,鉴于FPGA具有的较强复杂逻辑控制能力和强大的并行执行优势[3],利用FPGA构建嵌入式硬件平台进行系统设计也随之表现了良好的应用前景和广阔的市场价值。
本文即以Android智能手机作为家居控制终端,在FPGA发板上设计基于NIOS II的片上系统作为网络互联接口,并在其基础上通过WIFI无线通信方式实现了智能家居终端与家电的成功互联[4]。
1 系统整体设计
本课题以Cyclone III系列芯片为核心的FPGA硬件控制平台开展研发和设计,其中包括了按键、蜂鸣器、数码管等基本外设。实现过程是:通过在FPGA芯片内部嵌入NIOS II软核作为通信和控制核心,从而构建SOPC片上系统。同时,又利用Eclipse开发平台设计基于Android的客户端软件,手机客户端则通过Socket套接字向处于同一WIFI网络下的硬件控制平台发送信息,硬件平台将根据接受的信息对家电进行控制。另外,控制平台还可以监测家电的工作状态及室内的环境条件,而且将相关信息传递给手机客户端,使用户对室内状况保持良好的信息透明度。
2 系统硬件平台设计
硬件平台是系统具有良好稳定性的基础和前提。考虑到现实的实际需求,硬件需由FPGA控制平台、WIFI模块、继电器模块组成,具体如图1所示。
下面将对硬件设计中各构成模块的功能实现给出详细解析和阐述。
2.1 FPGA控制平台
FPGA控制平台是硬件系统的核心,主要负责接收和处理控制指令、控制动作电路、监测及反馈状态信息等。兼顾设计需求及系统成本,FPGA选择了Cyclone III系列中性价比更为优越的EP3C5E144C8N,该款芯片内部包含5 136个逻辑单元、95个标准用户I/O口、46个九位嵌入式乘法器以及两个锁相环,可以流畅运行NIOS II软核[5]。存储芯片则选择了三星公司的K4S561632E-UC75动态存储芯片,容量为256Mb,位宽16bits。为了使用方便,核心板上还设计了一款容量为16Mb的FPGA专用配置芯片EPCS16[6]。同时,考虑到控制平台的通用性、可移植性及可扩展性,平台上又进一步设计了四个LED、两位共阴极数码管、一个蜂鸣器、四个拨码开关和八个按键开关等基本外设。而且,电源芯片选用了ASM1117-2.5、ASM1117-3.3和LM317,这三款芯片可分别为FPGA提供2.5V、3.3V、和1.25V电压。另外,FPGA所有用户I/O口都已引出,以便扩展。
2.2 无线WIFI模块
无线模块采用的是深圳市海凌科电子有限公司的HLK-RM04,该模块是基于通用串行接口且符合网络标准的嵌入式模块,内置TCP/IP 协议栈,能够实现用户串口、以太网、无线网(WIFI)三个接口之间的转换。在本次研发设计中,该模块的主要作用是将WIFI无线信号通过串口与FPGA控制中心实现相互通信。
2.3 继电器模块
由于智能家居系统的控制对象是普通家电,都属于强电用电器,因此使用控制平台发挥操控作用时就需要通过继电器来实现间接控制。继电器采用的松乐继电器。为保证继电器能够顺利闭合,本模块采用了达林顿晶体管ULN2003L来增加FPGA的驱动能力,实现原理如图2所示。
在FPGA内部进行NIOS II片上系统设计主要包括两个方面:(1) 在FPGA芯片内部进行硬件电路设计, (2)编写基于NIOS II的软件程序。下面将分别展开详细论述。
3.1 硬件电路设计
硬件系统由时钟、NIOS II软核、音效模块组成。NIOS II软核以及音效模块所需要的时钟频率均不相同,因此就需要利用FPGA内部的一个嵌入式锁相环对时钟进行分频和倍频,这样可使整个系统达到频率同步。在此基础上,配置NIOS II软核,由其完成指令的下达,数据的输入输出。而音效模块则是家庭音响,主要由Android客户端实现控制。
3.2 基于NIOS II的软件设计
NIOS II支持C语言开发程序代码,并且提供强大的硬件抽象层系统库(HAL)。NIOS II处理器的外围器件允许用户通过HAL的API接口对底层硬件进行直接访问[7-8]。同时,HAL系统库定义了一组基本功能,使设计者可以对常用器件直接进行初始化和访问,而不再需要考虑底层硬件,如此就大大简化了程序的设计流程。程序运行烧写至FPGA内部的NIOS II软核中,主要功能除了接收WIFI无线模块传来的串口信息、译码并控制电路产生相应动作外,还包括接收和处理各模块的状态信息、以及反馈给WIFI无线模块。
4 Android客户端设计
本客户端是在Windows 7 操作系统下完成构建的。Android 的客户端是用户与控制系统进行信息沟通的交互界面。客户端的功能体现就是要设计用户界面和Socket 之间的成功通信。通过Socket 通信,即打开网络套接字,由 WIFI网络传递信息。Android客户端安装用户手机,手机和系统的WIFI模块连接到同一个AP热点。Android客户端通过“套接字”向网络(WIFI模块)提供发送请求或者应答请求,触发后台应用程序,应用程序对操作指令进行分析后发送相应的控制信息并通过路由器传递给WIFI模块,WIFI模块再将接收到的信息转换为串口信息,又传递给FPGA内部的NIOS II软核,NIOS II软核对接收到的信息进行处理后则控制相应的引脚动作,进而由引脚控制继电器的吸合和断开,由此而实现对普通家电的完整控制过程。开发后的客户端界面如图3所示。
Android客户端的用户界面文件包含了若干个TextView(文本框)控件和一个Button(按钮)控件,用户可以通过界面中的按键产生相应的操作。功能清单文件AndroidManifest.xml是对应用程序的全局描述,也是应用程序不可或缺的一个重要文件,所有应用程序所使用到的组件均存在于AndroidManifest.xml文件中,并且发表而与其有关的特性和要求声明。程序代码由JAVA语言编写,交互界面之间的切换与显示则由TabHost控件实现与维护。Android软件通过“套接字”向网络(WIFI模块)提出发送请求或者应答请求,程序设计时,对Socket通信将必需给予着重和相当的考虑。
5 结束语
本设计实现了用Android智能手机对普通家电的终端控制。将Android客户端应用软件成功安装,经反复实验测试,本系统性能稳定。而且,可以通过家庭内部网络实现对家居设备的无线控制。本控制系统使用智能手机软件与无线网络相结合的方法, 并采用SOPC系统进行设计,使得设计的效率和灵活性大大提高。同时,这种方式还实现了良好的通用性,且易于移植和扩展。因此本设计就具有很强的实用性和良好的普适性。
参考文献:
[1] 张语涵.基于WIFI网络智能家居系统的设计与实现[D]. 天津:天津工业大学,2012.
[2] 王朝华,陈德艳,黄国宏,等.基于Android的智能家居系统的研究与实现[J]. 计算机技术与发展,2012,22(6),225-228.
[3] 吴厚航.爱上FPGA开发[M]. 北京:北京航空航天大学出版社,2011:13-40.
[4] 申庆华.基于WIFI的嵌入式家庭无线网的研究与设计[D]. 桂林:桂林理工大学,2010:2-10.
[5] ALTERA Corporation.Cyclone III Device Handbook[M].2008.
[6] ALTERA Corporation.Cyclone III EP3C10 Device Pin-Out[M].2008.
[7] 袁海林.基于Nios II的嵌入式智能网络家居系统的设计[J]. 湖北民族学院学报,2007,25(1),57-60.
[8] 赫建国,倪德克,郑燕.基于Nios II内核的FPGA电路系统设计[M]. 北京:电子工业出版社,2010.