logo资料库

论文研究-基于S3C2440A的智能家居网关设计 .pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
中国科技论文在线 http://www.paper.edu.cn 基于 S3C2440A 的智能家居网关设计 冯军* (北京邮电大学网络与交换技术国家重点实验室,北京,100876) 摘要:智能家居网关集成了协议转换、自动控制以及安全验证等服务,是一种功能强大的服 务平台,对智能家居的发展起着重要的促进作用。本文主要是对智能家居网关的功能进行了 介绍,并提出了一种可行的智能家居网关设计方案。基于低功耗环保的理念,以及对数据处 理的要求,本文选择当前流行的 Samsung S3C2440A(ARM920T)处理器、开源且便于移植 的嵌入式 Linux 操作系统作为网关的软硬件平台。网关与家庭内部的摄像头、传感器及单片 机等硬件设备相连,外部通过 RJ-45 接口与以太网连接,以此来实现家庭内部设备与以太网 的互联。 关键词:网关;ARM9;嵌入式 Linux;智能家居 中图分类号:TP393.05 The design of smart home gateway based on S3C2440A FENG Jun (State Key Laboratory of Networking and Switching Technology, BUPT, Beijing 100876) Abstract: Smart home gateway is a powerful protocol conversion, automatic control, and security authentication platform, which plays a important role in prompting the development of smart home. This paper mainly introduces the function of smart home gateway, and proposes a feasible design scheme of smart home gateway. Based on the concept of low power consumption and the requirements of data processing, the popular Samsung S3C2440A (ARM920T) arm processor is chosen as the hardware platform, open source and easy to port embedded Linux operating system is chosen as the software platform of the gateway. The family camera, sensors, microcontrollers and other hardware devices are connected internally to the gateway which is externally connected to Ethernet via RJ-45 Ethernet interface, enabling the smart home devices connect to Ethernet. Key words: Gateway; ARM9; Embeded Linux; Smart Home 5 10 15 20 25 30 0 引言 智能家居[1]网络的主要目的是使家庭内部设备能够安全的接入互联网,和传统的计算机 网络存在一定的区别。对应的,智能家居网关[2]也和传统的网关存在着一定的区别。传统网 关主要用于连接不同网络中的设备,经常在家庭或企业中使用,用于局域网和互联网的互通。 35 而智能家居网关正从简单的网关发展成为复杂的服务提供者,集成了协议转换、运行控制, 以及安全监控等相关服务。 智能家居网关架起了家庭内部网络和互联网的桥梁,使用户可以通过互联网平台实现对 家庭设备的控制。此外,和传统的网关存在的区别是,智能家居网关作为家庭内部设备进行 数据交换与互控的枢纽,需能够解析来自家庭内部设备的不同数据传输协议,并进行转换, 40 使得家庭内部采用不同数据传输协议的设备也能够进行通信。 智能家居网关的运行控制功能主要体现在采集家庭内部的数据,并且将采集到的数据传 递至远端的服务器。同时也能接收来自网络以及家庭内部设备的命令,实现通过服务器对家 作者简介:冯军(1991-),男,硕士研究生,主要研究方向:未来网络技术与创新应用. E-mail: fengjunfym@163.com - 1 -
中国科技论文在线 庭内部设备、以及家庭内部设备之间的控制。 http://www.paper.edu.cn 由于家庭内部网络中包含了较多的用户隐私信息,智能家居网关作为家庭内部网络和互 45 联网之间的通信枢纽,为防止攻击者窃取用户的隐私提供了重要的保障。因此,智能家居网 关需要提供安全验证相关的服务,例如对隐私数据进行加密传输,以及对用户的身份进行验 证等。 智能家居网关提供了协议解析、自动控制和安全验证等相关服务,使得智能家居内部设 备之间、以及家庭内部的设备与互联网服务器之间能够实现互通,是智能家居发展的重要基 50 础,因此,对智能家居网关的研究显得十分重要。 1 智能家居网关软硬件平台的选择 1.1 智能家居网关硬件平台的选择 考虑到智能家居网关需处于长期运行的状态,因此网关的能耗是在设计智能家居网关 时,需要重点考虑问题,低功耗的网关更加有利于网络的部署,为用户带去舒适的体验。此 55 外,由于网关集成了协议转换以及安全验证等服务,网关的计算能力也是在设计网关时需要 重点考虑的因素。因此,选择一款高性价比的核心控制器是设计网关的首要任务。 ARM 处理器是一款精简指令集(RISC, Reduced Instruction Set Computer)微处理 器。以其体积小、低功耗、高性能等优势广泛用于消费类电子、自动化、工业、网络等嵌入 式设备中,占据了庞大的市场。对于开发人员来说,ARM 处理器开发环境较成熟,能够为 60 开发者提供较好的技术支持,极大的缩短开发周期与难度,因此广受青睐。 ARM 处理器多被集成在片上系统(SoC, System on a Chip)芯片中,整体架构精简。考 虑到智能家居网关对处理器能耗、稳定性以及计算能力的要求,本文选择硬件系统成熟的三 星 S3C2440A 平台作为硬件开发平台,以说明智能家居网关的设计问题。S3C2440A[3]的核 心处理器为 ARM920T,采用 32 位 RISC 和 5 级流水线结构,集成指令和数据缓存以及一个 65 32 位 AMBA 接口,具有内存管理单元(MMU),能够支持 Symbian OS,Palm OS,Linux 和 Wince 等嵌入式操作系统。 1.2 智能家居网关软件平台的选择 由于智能家居网关功能较复杂,对稳定性、安全性的要求较高,因此,在实现智能家居 网关所能提供的服务时,需基于嵌入式操作系统开发网关软件[4]。 70 嵌入式设备常用的操作系统中,μC/OS-II 是一个为了实现高度可移植性所设计的实时操 作系统。它由 C 语言编写,具有抢占调度和多任务特性,但是没有动态代码加载功能, μC/OS-II 源码开放并且可作为免费的教学使用。eCos[13]开源实时操作系统提供了高度可配 置功能,但是对开发人员的技术支持有限。FreeRTOS 是另外一种开源的实时操作系统,它 的特性类似于 μC/OS-II,但是没有 μC/OS-II 成熟,并且支持的平台也没有 μC/OS-II 多。而 75 在商业领域,VxWorks 是一个成熟且具有丰富特性的操作系统,适用于作为智能家居网关 的操作系统。嵌入式 Linux 操作系统是对标准的 Linux 进行裁减之后得到的操作系统,特性 - 2 -
中国科技论文在线 http://www.paper.edu.cn 优良,和标准的 Linux 一样,嵌入式 Linux[5]支持各种各样的硬件平台,花费不高、拥有卓 越的性能,而且对网络功能有很好的支撑。 嵌入式 Linux 属于微内核的体系结构,只提供最基本的操作系统功能,如内存管理、中 80 断处理和任务管理等。文件系统等功能可由用户自选,内核的体积大大减小,移植起来也更 加方便。和其他的嵌入式操作系统比起来,嵌入式 Linux 具有较大的优势,因此,本文将以 嵌入式 Linux 为例,以说明如何基于嵌入式 Linux 操作系统来设计和开发智能家居网关的软 件。 2 智能家居网关设计 85 2.1 网关硬件设计 在智能家居的背景下,通常需要通过互联网实现对智能家居设备节点的控制,同时,家 庭内部的设备之间也需要实现通信于互控。本文所设计的智能家居网关的硬件框图如图 1 90 图 1 智能家居网关硬件框图 Fig. 1 Smart home gateway hardware diagram 所示。一般,家庭内部可能存在多种硬件设备,智能家居网关需要通过不同的接口和这些设 备建立连接。如通过通用 I/O 端口控制显示屏、传感器等硬件设备,通过不同的工业总线标 准(RS232、I2C)接口来控制外部设备,以及通过高速总线来访问主存以及网卡设备等。 此外,在本文所设计的智能家居网关硬件框图中,网关处理器还能和 MCU 等智能节点建立 95 了连接,使得 MCU 能够通过网关实现对家庭内部其他设备的控制。AX88180 等网卡芯片使 得网关能够接入互联网络,用户可通过网络服务器实现对网关的远程访问,从而实现对家庭 内部设备的远程控制。 2.2 网关软件设计 本文所设计的网关软件框图如图 2 所示,整个软件框图主要分两部分,网关应用模块和 100 嵌入式 Linux 操作系统模块。嵌入式 Linux 操作系统模块主要包含了嵌入式 Linux 内核、驱 动程序以及 Yaffs2 文件系统。驱动程序实现了对家庭内部设备的控制,如智能节点、传感 - 3 - ...S3C2440A设备1设备n通用I/O端口显示屏传感器DRAMFlashMCU智能节点…… 串口高速总线RS232I2CAX88180RJ-45网络出口
中国科技论文在线 http://www.paper.edu.cn 器等字符设备,以及网卡等块设备,Yaffs2 文件系统为智能家居网关存储数据提供了支持, 而嵌入式 Linux 内核则是对标准的 Linux 内核进行裁剪所得到的。嵌入式 Linux 操作系统为 网关应用提供了 API,使得网关应用能够对家庭内部的设备进行控制,是网关应用开发的基 础。 105 图 2 智能家居网关软件框图 Fig. 2 Smart home gateway software diagram 网关应用则主要包含了传输控制、协议解析、安全验证以及功能逻辑单元四个模块。传 110 输控制模块主要用于接收家庭内部设备的数据,并且能够根据上层应用给出的指令实现对家 庭内部设备的控制。 由图 1 可知,智能家居网关作为家庭内部设备的沟通桥梁,汇集了不同协议格式的数据。 为了实现家庭内部设备的互通与控制,本文在智能家居网关应用中包含了一个协议解析模 块,用于解析来自家庭内部以及互联网中的不同协议格式的数据。此外,协议解析模块还能 115 够实现不同协议间的转换,使得家庭内部的设备间能够相互传递数据。 网关应用中的功能逻辑单元主要用于逻辑控制功能。来自互联网或者家庭内部的设备需 要和网关应用进行通信,以传输控制命令等。功能逻辑单元主要负责控制命令的解析,并对 解析后的命令做适当的处理,例如调用协议解析模块进行数据的封装,之后再通过传输控制 模块将数据传递至特定的家庭内部设备,实现对家庭内部设备的访问和控制。 120 此外,由于智能家居网关实现了家庭内部网络和因特网的互联,而家庭内部网络传输的 数据大多涉及到用户隐私,因此,在本文所设计的网关软件架构中,添加了安全认证模块。 安全认证模块应该实现数据的加密传输和保存功能,同时应该对网关接收到的控制请求命令 进行验证,以防止非法的数据获取、以及控制请求等操作。 - 4 - 嵌入式Linux内核设备驱动Yaffs2文件系统智能节点(MCU)字符设备(传感器)块设备(网卡)嵌入式Linux协议解析传输控制功能逻辑单元网关应用安全认证
中国科技论文在线 http://www.paper.edu.cn 3 智能家居网关软件平台的实现 125 3.1 嵌入式 Linux 的移植 实现网关应用的第一步是将嵌入式 Linux 移植到 S3C2440A 平台上,而在移植嵌入式 Linux 时,第一步要做的就是移植交叉编译环境。交叉编译环境主要包含了交叉编译器、交 叉调试器等工具,主要用于在宿主机上编译得到目标平台上的可执行应用程序以及嵌入式 Linux 内核镜像,关于交叉编译器的工作流程,可参考图 3。交叉编译环境的搭建一般较简 130 单,只需要下载 ARM 交叉编译工具的源码,按照给定的教程来操作即可。 图 3 交叉编译器工作流程 Fig. 3 Cross compiler work flow 交叉编译环境制作完成之后,便是对嵌入式 Linux 进行移植操作。移植嵌入式 Linux 操 135 作系统的主要步骤是对嵌入式 Linux 内核的配置和编译。接下来,本文主要以 GT2440 开发 版为例,说明如何对嵌入式 Linux 操作系统进行移植。 内核的配置主要分三种:make config、make menuconfig,以及 make xconfig,本文采用 make menuconfig 的配置方式,也就是采用图形化的方式实现对 Linux 内核的配置。进入嵌 入式 Linux 源码跟目录之后,输入: 140 $ make menuconfig 启动内核配置菜单,首先是处理器的配置,要对处理器进行配置,需选择 System Type 选项,进入 System Type 之后,如图 4 所示。 145 图 4 ARM 处理器配置菜单 Fig. 4 Configuration menu for ARM processor 在选择正确的处理器之后,需继续选择对应的开发板型号,如图 5 所示。配置完处理器之后, - 5 - 编辑器ARM交叉编译器交叉链接器标准库可执行程序目标文件源代码
中国科技论文在线 http://www.paper.edu.cn 可按照同样的步骤实现对 LCD、SDRAM 以及 Flash 等硬件模块的配置。 内核配置完之后,输入一些命令,进入内核编译阶段: $ make zImage 150 编译之后得到内核文件 zImage,之后,可以将内核文件下载至开发板,以启动运 行。但是在启动移植后的嵌入式 Linux 之前,还需要为嵌入式 Linux 制作对应的文件系统。 本文所选择的文件系统为 YAFFS(Yet Another Flash File System),由 Aleph One 为 NAND flash,以页(page)为最小存储单位,每页 512 bytes。此外,为了能够正常的启动嵌入式 Linux,还需要为开发板制作 Boot Loader。由于 U-Boot 性能好,能支持多种操作系统,如 155 VxWorks、QNX、Linux 等,因此,本文主要是对 U-Boot 进行了移植。 图 5 选择目标开发板 Fig. 5 Selecting target development board 3.2 网关应用开发流程 160 在为 S3C2440A 移植了嵌入式 Linux 之后,便是对网关应用进行开发。本节以远端服务 器对家庭内部的电灯控制为例,以说明远端服务器如何通过智能家居网关实现对家庭内部设 备的控制。首先是为电灯编写驱动程序,驱动程序的注册和卸载流程如图 6 所示。 165 170 图 6 驱动程序开发流程 Fig. 6 Driver development procedure 在编写好电灯的驱动程序之后,由于电灯通过通用 IO 和 S3C2440A 相连接,属于字符 设备,因此,电灯使用以下结构体来表示,在编写驱动程序的时候,需要对结构体中的各字 段赋适当的值。 struct miscdevice { int minor; const char *name; - 6 - 模块 内核 用户程序 init_module() 设备功能 cleanup_module() 设备注册 卸载设备
中国科技论文在线 http://www.paper.edu.cn 175 const struct file_operations *fops; struct list_head list; struct device *parent; struct device *this_device; const char *nodename; mode_t mode; }; 之后使用函数 int misc_register(struct miscdevice * misc)实现对电灯驱动程序的注册。注 180 册好驱动程序之后,用户便可以将电灯视为文件,对其写入特定的数据,以控制电灯的亮灭。 为了使服务器能够控制电灯,服务器和智能家居网关之间的通信需要采用一定的协议,使得 网关能够解析来自服务器的命令,并对电灯进行控制。本文所设计的远端服务器控制家庭内 部电灯设备的整体流程如图 7 所示,服务器通过网关控制其他设备的流程和控制字符设备 (电灯)的流程类似。 185 图 7 服务器通过智能网关控制家庭内部电灯 Fig. 7 Server controls the home bulb via smart home gateway 4 结论 本文主要是对智能家居网关的设计进行了研究。首先对智能家居网关进行了介绍,将智 190 能家居网关和传统的网关进行了区分和对比,说明了智能家居网关应兼具协议解析、自动控 制以及安全验证等功能。之后对智能家居网关的软硬件平台的选择、设计以及部分实现进行 了说明,并以远端服务器控制家庭内部电灯为例,说明了智能家居网关的工作流程。以本文 的工作为基础,可以对智能家居网关的设计和实现进行深入的研究,从而对智能家居的发展 起到促进作用,因此,本文对智能家居网关的研究存在着重要的意义。 195 [参考文献] (References) - 7 - 开始监听接受连接请求接收服务器命令命令解析成功控制电灯亮灭结束
中国科技论文在线 http://www.paper.edu.cn [1] 朱敏玲,李宁. 智能家居发展现状及未来浅析[J]. 电视技术, 2015,39 (4):82-85. [2] 满莎,杨恢先. 基于 ARM9 的嵌入式无线智能家居网关设计[J]. 计算机应用,2010,30 (9) :2541-2544. [3] Samsung Corporation. S3C2440A 32-bit RISC microprocessor user's manual[OL]. [2009-10-12]. http://ww w.samsung.com [4] 林建民. 嵌入式操作系统技术发展趋势[J]. 计算机工程,2001,27(10):1-4. [5] 哲,树林,红征,房. 嵌入式操作系统基础 μ C/OS-II 和 Linux[M]. 北京:北京航空航天大学出版社, 2006. 5 - 8 -
分享到:
收藏