摘 要:针对传统智能家居系统不足之处,提出了基于ARM的智能家居远程监控系统设计方案,并对该方案进行了具体设计。该系统由智能家居终端、智能家居控制中心、客户端三部分组成,智能家居控制中心与终端之间是基于蓝牙无线连接方式,与客户端之间是基于GPRS和Internet连接方式。本系统基于B/S结构,具有软硬件资源丰富,成本低,功耗小,便于扩展,升级及维护等优点,具有一定实用价值。
关键词:ARM;智能家居;远程监控;GPRS;蓝牙;Linux
随着计算机、通信及微电子技术的飞速发展和人民生活水平的提高,人们对居住环境的要求,也向着追求精神内涵、安全舒适、便捷智能化和自动化为理想目标,智能化的家居环境也逐渐备受人们的关注。目前,在智能家居系统设计中,智能家居控制中心与终端(家电设备、安防设备、三表等)之间多采用基于总线的有线连接方式(RS 485,CAN,LonWorks等),这种连接方式具有布线复杂、线路易腐蚀、维护不方便、影响室内美观等缺点;远程用户与智能家居控制中心之间的通信多采用电话线和网线的通信方式,未能将目前日益成熟的移动通信技术应用其中,给用户带来极大的不便;智能家居控制中心多采用单片机作为控制核心,随着用户功能需求的增加,由于单片机软硬件资源有限,给系统的升级、维护及调试带来极大困难。鉴于此,本文提出了基于ARM的智能家居远程监控系统设计方案,并对该方案进行了具体设计。
l 智能家居无线技术概述
1.1 GPRS技术简介
通用分组无线业务(Geneval Packet Radio Serv-ice,GPRS)以分组交换技术为基础,采用IP数据网络协议,使现有GSM网的数据业务突破了最高速率为9.6 Kb/s的限制,最高数据速率可达171.2 Kb/s。GPRS具有永远在线、高速传输、按流量计费、减少无线资源浪费及通信成本低等优点。
1.2 蓝牙技术简介
蓝牙技术是一项新兴的技术,它的主要目的是在全世界建立一个短距离的无线通信标准。它使用2.4~2.5 GHz的ISM(Industry Scientific Medical)频段传送语音和数据。运用成熟、实用、先进的无线技术来代替电缆,它提供了低成本、低功耗的无线接口,使所有固定和移动设备通过微微网PAN(Per2sonal Area Network)连接起来。这样,人们可以通过手机或者互联网在任何时候、任意地点对家中的任意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制。
2 系统的主要功能和总体结构设计
2.1 主要功能
用户通过手机或Internet实现对家电、灯光、窗帘、门禁、安防等基础设施及室内环境的远程实时监视与控制,同时还可自动完成三表(水、电、气)的抄表工作。
2.2 总体结构设计
智能家居系统远程监控系统的核心部分是一个嵌入式Web服务器,系统集有线与无线两种通信方式于一体,用户可以通过手机或PC机登陆家中的嵌入式Web服务器,通过用户名和密码验证之后,便可以查看或控制家用电器、灯光、窗帘、门禁、安防等基础设施;系统带有LCD和键盘,具有良好的人机界面;用户可以通过键盘设定系统所需要的参数;系统具有丰富的可扩展接口,如A/D转换接口、无线蓝牙接口、RS 485接口、GPRS接口、以太网接口。系统的总体结构设计如图1所示。
3 系统硬件设计
3.1 硬件结构设计
系统的硬件结构设计如图2,图3所示。由图2可知,智能终端以MCU为控制核心,外扩蓝牙从模块及其他外设接口;由图3可知,智能家居控制中心硬件由嵌入式微处理器、外部存储器、数据通信接口、人机接口及调试接口五大部分组成。
3.2 系统控制中心硬件设计
3.2.1 嵌入式微处理器
本系统选用韩国三星电子的基于ARM920T内核的32位嵌入式微处理器S3C2410作为系统的控制核心,该芯片本身集成了包括存储器接口、通信接口(USB,RS 232),A/D,JTAG等在内的丰富的硬件资源,可简化外围设备与微处理器的硬件连接程度,提高系统的稳定性、可靠性。
3.2.2 系统存储器
由于S3C2410的存储控制器提供了外部存储器访问所需要的控制信号,用户只需要选择合适的外部FLASH和SDRAM与其相连,即可实现系统的存储功能。本系统选用SAMSUNG公司的具有512 MB容量的K9F1208作为系统外部的NAND FLASH存储器,用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。选用2片容量为32 MB的SAM-SUNG的K4S56163作为系统外部的SDRAM,用作程序的运行空间、数据及堆栈区。
3.2.3 以太网控制模块
由于S3C2410本身没有集成以太网控制模块,所以需要一个与之相匹配的控制芯片来实现以太网扩展接口。本系统选用CIRRUS LOGIC公司的CS8900A作为系统的以太网控制芯片。CS8900A是一个单芯片全双工的以太网解决方案,所有的数字和模拟电路合成了完整的以太网电路。主要结构包括ISA总线接口、802.3 MAC引擎、BUFFER、串行E2PROM接口和带10BASE-T和AUI的模拟前端。CS8900A的10BASE-T接口通过变压器HR601627与RJ 45网口连接。
3.2.4 GPRS通信模块
GPRS通信模块采用西门子公司的无线数据传输模块MC235i,支持数据、短信、语音和传真业务。MC35i是新一代GSM/GPRS双模模块,完全兼容上一代的MC35,TC35i;采用紧凑型设计,为用户提供了简单、内嵌式的无线GPRS连接。MC35i与控制中心是通过UART接口1进行硬件连接的。
3.2.5 蓝牙模块
系统设计中蓝牙模块选用爱立信公司的ROK 101 007。该模块是一款适合短距离无线通信的射频/基带模块,且集成度高、功耗小,完全兼容蓝牙协议Versionl.1,可嵌入任何需要蓝牙功能的设备中。ROK 101 007包含5个功能块:无线收发器、基带控制器、闪存、电源管理模块、时钟,可提供高至HCI(主机控制接口)层的功能。ROK 101 007的UART口符合工业标准16C450,支持以下波特率:300 b/s,600 b/s,900 b/s,1 200 b/s,1 800 b/s,2 400 b/s,4 800 b/s,9 600 b/s,19 200 b/s,38 400 b/s等。与该接口有关的管脚有4个:TxD(B5),RxD(A5),RTS(A6),CTS(B6)。在本系统设计中,ARM微处理器S3C2410通过UART接口2与ROK 101 007模块连接。
4 系统软件设计
系统软件设计包括智能家居控制中心软件设计和智能终端应用软件设计两大部分。智能家居控制中心是以ARM微处理器为控制核心,其软件设计包括系统软件(嵌入式操作系统、硬件设备驱动程序、嵌入式数据库、嵌入式Web服务器)设计和应用软件(网页设计及CGI应用程序)设计;智能终端的控制核心为单片机,其应用软件设计是一个循环控制程序。
4.1 系统控制中心的软件设计
4.1.1 系统软件设计
(1)嵌入式操作系统的选择及移植本系统采用Linux作为操作系统,并选用Linux2.6内核在嵌入式微处理器S3C2410上移植,具体移植方法如下:
①准备Linux 2.6内核移植所必需的文件(内核压缩包linux-2.6.tar.bz2及交叉编译器arm-linux-gcc-3.4.1.tar.bz2),这些文件可到LinUX官方网站免费下载。
②利用Linux命令(mkdir,tar,mv及export)安装交叉编译器arm-linux-gcc-3.4.1。
③修改Makefile文件及相关硬件文件。由于内核的编译是根据:Makefile文件的指示进行的,Makefile文件来组织内核的各模块之间的关系,记录了各个模块之间的相互联系和依赖关系。所以,开发人员要首先修改Linux 2.6根目录下的Makfile文件,修改的主要内容是目标代码的类型和为编译内核指定一个编译器。
④运用Make命令编译内核生成内核镜像文件zImage文件,通过相应的固化软件把这个文件固化在系统相应的存储器中,完成Linux 2.6内核在ARM微处理器上的移植。
(2)驱动程序的移植及设计
智能家居控制中心需要多个设备驱动程序,而对于嵌入式系统而言很少有通用的外设驱动程序可以使用。在本系统中,除了GPRS模块和蓝牙主模块分别通过第一、第二个串口与S3C2410相连,可以直接使用标准的串口驱动程序外,其余的如家电控制接口、传感器接口及以太网接口等属于非标准外设,需要专门设计其驱动程序。在驱动程序的设计中,由于嵌入式Linux系统中设备驱动程序有一个标准的框架,虽然这些接口工作原理不同,但其设计方法基本类似,即根据硬件结构来“填写”框架中的函数。主要的函数包括open(),read(),write(),ioctl(),release(),module_init()和module exit()等。
以太网接口驱动程序的设计虽然可以按照上述方法进行,但是实现起来却有一定的难度,本系统在设计中使用一种更简单的方法,即通过移植的方法实现CS8900以太网驱动程序在S3C2410上运行。具体移植方法如下:
①利用网络工具从网上下载CS8900.C和CS8900.H,并把它们拷贝到内核下的DRIVERS/NET目录。
②修改配菜单,增加CS8900配置选项,使系统在配置ARCH SMDK2410时,可使用CS8900的配置选项。
③对网卡进行初始化及相关文件(smdk2410.h,mach-smdk24 10.c,makefile)进行修改工作。
④通过Make命令重新编译,即可实现CS8900以太网驱动程序的移植。
(3)嵌入式Web服务器的选择及移植
在ARM+Linux开发平台下,可以使用的web服务器主要有三个:Httpd,Thttpd和Boa。Httpd是较简单的一个Web服务器,但其功能较弱,不支持认证、CGI。Thttpd和Boa都支持认证、CGI等,功能比较强。为了实现动态Web技术,本系统在设计中选择了即支持CGI又较适合于嵌入式系统的Boa web服务器,并将其移植在该系统中,使系统实现嵌人式Web服务器的功能。具体移植实现方法如下:
①下载Boa服务器源代码boa-O.94.13.tar.gz,并将其解缩在/boa src/目录下。
②编译Boa源代码,生成执行文件Boa(大小约60 KB)。
③创建相关工作目录。在/etc目录下建立一个boa目录,里面放人boa的主要配置文件boa.conf。还需要创建日志文件所在目录/var/Iog/boa,创建HTML文档的主目录/var/www,创建CGI脚本所在目录/var/www/cgi-bin/。
④对Boa作配置和修改。主要通过对defines.h,boa.eonf和mime.types文件进行修改来实现。修改defines.h指定Web服务器的根目录路径(SERVER_ROOT)。boa.conf文件由一些规则组成,用于配置Boa服务器,指定相应端口,服务器名称,一些相关文件的路径等。Boa服务器要想正确运行,必须保证该文件是正确配置的,而且该文件和某些静态网页,CGI可执行程序等都放于某特定目录下。
⑥重新编译内核根文件系统。把该文件系统重新下载到控制中心硬件电路板,启动Boa Web Server,就可以通过IE访问系统所设计的网页。
(4)嵌入式数据库的选择及移植
本系统在设计中选用SQLite数据库,该数据库具有功能强大、接口简单、速度快、占用空间小的优点,使其比较适合应用在嵌入式系统中。系统在设计中实现了SQLire3在ARM微处理器上的移植。具体移植方法如下:
①在http://www.sqlite.org/下载最新的源代码包sqlite一3.3.8.tar.gz,并将其解压后将生成SQLite目录。
②安装交叉编译工具arm-linux-gcc。
③修改Makefile文件。Makefile的修改主要包括两个方面:首先是将编译器、归档工具等换成交叉工具链中的对应工具,比如,gcc换成arm-linux-gcc,ar换成ar-linux-ar,ranlib换成arm-linux-ranlib等;其次是去掉与TCL相关的编译选项,因为默认情况下,将会编译SQLite3的Tcl语言绑定,但是在移植到ARM-Linux的时候并不需要,因此将两个与TCL有关的行注释掉。
④利用Make命令编译生成目标文件SQLite3。嵌入式数据库SQLite的应用开发主要是利用它所提供的C语言API函数来开发的,其核心的三个函数如下:
4.1.2 应用软件设计
智能家居控制中心的核心是一个嵌入式Web服务器,其应用软件的设计包括网页设计和CGI应用程序设计两部分。网页设计采用设计工具Dreamweaver,FrongtPage,Photoshop,Flash来实现。应用程序设计中考虑到系统硬件资源有限,故采用了CGI技术实现浏览器与嵌入式Web服务器的动态数据交互。把CGI程序保存在服务器端,当Web页面打开时,客户端调用CGI应用程序来实现用户的功能需求。在系统设计中,CGI应用程序的编写采用C语言,实现外部实时数据采样、与外部设备的通信与控制等。本系统控制中心的应用软件工作流程如图4所示。
4.2 智能终端应用软件设计
由于每一个独立的智能家居终端实现的功能不同,所以针对不同的智能家居终端需要编写不同的应用软件,实现家电实时状态采样及控制、三表实时数据采样及安防设备实时状态采样等功能。此外,由于本系统设计中智能家居终端的控制核心为MCU,所以其应用软件设计相对主控中心来说要简单些。设计中应用程序按照软件设计流程图进行编写,编写完毕之后,对软件进行仿真、调试,最终固化应用程序。下面以智能家电终端为例,说明智能终端应用软件设计。智能家电终端的软件工作流程如图5和图6所示。
5 结 语
与传统智能家居系统相比,该系统控制中心硬件采用ARM微处理器作为控制核心,软件采用Linux 2.6内核作为系统的嵌入式操作系统,采用Boa为嵌入式Web服务器,采用SQLite为系统嵌入式数据库,使控制中心具有丰富的软硬件资源和可扩展接口,便于系统的开发、调试、维护、升级及扩展,同时也提高了系统的稳定性、可靠性。该系统控制中心与智能终端之间采用蓝牙无线传输方式,避免了有线连接方式布线复杂、线路易腐蚀、维护不方便、影响室内美观等缺点。因此,该系统设计在实际应用中具有一定的借鉴意义。