APP下载

嵌入式智能家居物联网网关系统设计

2016-12-02张艳玲田军委柯成虎

物联网技术 2016年8期
关键词:网络协议嵌入式系统智能家居

张艳玲 田军委 柯成虎

摘 要:物联网网关在智能家居系统中具有十分重要的意义。文中设计了一种嵌入式家庭物联网网关系统,该系统在嵌入式Linux操作系统、IPv4和IPv6网络协议的基础上,采用ARM微处理器S3C2410、EM310射频模块和DM9000A模块实现了家庭内部网络信息处理平台。该平台利用现有的网络设施、射频模块以及网络接口模块,通过无线或有线链路实现家庭内部感知网络的互联互通。所设计的系统不仅具有体积小、成本低、功耗小的优点,还具有实时性好和安全性高的特点,适合应用于家庭物联网中。

关键词:物联网网关;智能家居;嵌入式系统;网络协议

中图分类号:TP316.2 文献标识码:A 文章编号:2095-1302(2016)08-0-03

0 引 言

物联网(Internet of Things,IoT)技术一直被视为互联网的应用扩展,它利用射频识别(RFID)、红外感应器、全球定位系统、激光扫描仪等信息传感设备与互联网连接起来进行信息交换,实现智能识别、定位、跟踪、监控和管理[1]。物联网的概念于1999年提出,而物联网网关更是一个新的名词,在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带[2]。

智能家居系统是物联网的一种重要应用。智能家居系统又称为智能家庭局域网,是以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。国外经济发达的国家和地区(美国、加拿大、欧洲、澳大利亚等)较早提出了智能家居系统的概念和方案,世界上第一幢智能建筑于1984年在美国State of Connecticut出现[3]。然而,国内家庭网络[4]尚处于萌芽状态,但数字家庭网络的蓬勃发展势必给家庭网关带来巨大的市场。目前,家庭网关的实现主要有PC机与嵌入式系统两种,与PC机相比,嵌入式系统具有体积小、成本低、可靠性高、稳定性好及功耗低等优点,更符合家庭网关的性能要求,因此,目前家庭网关的设计主要采用嵌入式系统。

本文基于物联网网关在家居系统的信息化、智能化的重要作用及嵌入式系统的众多优点,采用ARM9微处理器S3C2410、EM310射频模块、DM9000A网络模块及嵌入式Linux系统软硬件平台,实现物联网网关的设计及其在家庭网络中的应用。

1 系统框架及功能模块概述

嵌入式家庭物联网网关系统可以划分为应用管理层、网络协议层和感知接入层,实现物联网应用于家庭网络系统中可全面感知、可靠传递、智能处理的功能需求。系统框架架构图如图1所示。各层功能如下:

(1)应用管理层通过最为熟知的Web浏览器实现对整个系统的监控和管理;

(2)网络协议层中内嵌有IPv4、IPv6等完整的网络协议簇,并基于其搭建了动态主机设置协议(Dynamic Host Configuration Protocol,DHCP)服务器、Web服务器等功能健全的服务器;

(3)感知接入层利用系统中的网络接口模块及射频模块方便实现广域网的接入及家庭内部感知网络通过有线或无线的方式互联互通。

嵌入式家庭物联网网关系统功能模块可以划分为无线通信模块、无线通信模块接口、网络接口模块、信息处理模块和界面管理模块。系统的基本工作过程为:当嵌入式家庭物联网网关系统启动后,信息处理模块自动启动,通过无线通信模块接口控制启动无线通信模块(射频模块)接入广域网网络及家庭无线通信设备,然后等待界面管理模块设置系统配置参数,或者以系统默认配置参数将家庭内部感知网络设备桥接互联,或路由接入广域网。

在嵌入式家庭物联网网关系统中,无线通信模块将由无线方式接入广域网络,同时接受信息处理模块转发过来的家庭内部感知网络设备数据,此外该模块还是家庭内部感知网络中无线设备的连接接口;信息处理模块是嵌入式家庭物联网网关系统的大脑,上电自动启动,控制周围模块的安全启动。信息处理模块是整个系统的核心,同时接受来自外网信息及内网设备的数据,完成最核心的功能,内网到外网及外网到内网数据的路由转发;界面管理模块允许用户通过Web页面对设备的某些配置(网络接口模块IP、网关、子网掩码、所搭建服务器参数、无线通信模块连接状态等)进行修改和管理,以适应用户自己的使用习惯。

2 系统设计与实现

2.1 硬件设计

嵌入式家庭物联网网关系统是以S3C2410微处理器[5]、DM9000A以太网模块和EM310射频模块为核心的硬件平台,系统硬件整体结构如图2所示。其中,S3C2410是一个具有内存管理单元,支持实时控制的ARM9微处理器,是整个系统设计的CPU,负责对周围电路模块的控制,并且要承载整个嵌入式最小系统;DM9000A能够连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器,其自动协调功能将自动完成配置以最大限度地适合其他线路带宽,还支持IEEE802.3全双工流量控制,简单实现即插即用等特性,能处理封装好以太网帧并通过网络接口和双绞线传输,能实时有效的实现家庭内部感知网络的有线连接;EM310射频模块可以方便的接入GPRS网络实现网关系统的广域网接入,并且具有语音短信等功能可以方便接入手机网络,实现家庭内部感知网络的无线组网。系统硬件结构图如图2所示。

微处理器S3C2410是整个硬件系统的核心,它上电实时控制周围电路的启动、关闭和复位等工作,实时监控周围电路模块的工作状态。整个硬件系统由微处理器S3C2410控制EM310射频模块接入广域网及移动蜂窝网,实现网关系统对外网的接入和家庭内部感知网络的无线组网;并控制以太网控制器DM9000A读写及复位,实现实时有线接入家庭内部感知网络。

此外,整个硬件系统还设计了RESET模块即硬件看门狗模块,可实时监控系统的稳定性,以保证当软件复位系统无法工作时整个系统的复位重启。64 M的SDRAM及64 M的NAND Flash完全满足嵌入式系统的存储需要和程序运行的需要。

2.2 软件设计

嵌入式家庭物联网网关系统软件平台参考模型如图3所示,整个系统在硬件平台的基础上,以嵌入式Linux操作系统为核心[6],实现网络接口模块驱动、无线通信模块接口驱动编写;实现IPv4/IPv6协议簇、路由转发及防火墙移植;实现上层应用程序(PPP拨号程序、DHCP服务器、Web服务器、Web页面)的编写和移植。

底层硬件初始化程序、嵌入式操作系统及文件系统、应用层软件和用户层软件,自下而上各成模块的进行设计。这些模块都不是孤立存在的,都以更底层的软件层程序为基础。

2.2.1 BootLoader移植

嵌入式家庭物联网网关系统的BootLoader采用mizi公司专门为arm开发的一款轻量级vivi。可实现启动加载和下载两种工作模式,修改/vivi/Makefile文件里的设置信息,编译之前删除“*.o”和“*.o.flag”文件以保证编译有效,将最终编译生成的vivi可执行文件烧写到NAND Flash就可实现对系统的引导。

2.2.2 嵌入式Linux内核移植

Linux2.4.18内核可高速运行在ARM920T[7]处理器上,其文件系统支持cramfs、yaffs、ext2和NFS等文件格式或功能,内核移植需进行:内核裁剪和内核编译,通过编译内核文件生成zImage文件,该文件即为内核镜像文件,载入板内由BootLoader引导即可启动嵌入式Linux操作系统。

2.2.3 根文件系统移植

嵌入式Linux系统支持多种文件系统,在内核制作时大多已包含ext2、NFS等文件系统。这里在嵌入式Linux系统上移植yaffs文件系统,它是可读写的文件系统,方便后续应用程序的制作。

使用busybox1.0版本的文件系统制作工具,它被誉为嵌入式文件系统的瑞士军刀,其小巧、方便、快速的特点非常适合嵌入式文件系统的制作。文件系统制作的步骤为:配置Makefile、剪裁文件系统、构建根文件系统目录、编译。通过编译可生成root_china.yaffs镜像文件,载入板内,启动硬件系统即可在终端看到shell交互界面,方便后续应用程序开发。

2.2.4 Iptables移植(NAT实现)

Iptables 是与最新的 2.4.x 版本 Linux 内核集成的 IP 信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。

Netfilte/Iptables在Linux 2.4内核中提供了一系列表,每个表由若干链组成,而每个链中可以由一条或数条规则组成。内核模块可以注册一个新的规则表,并要求数据包流经指定的规则表,用于实现数据包过滤(Filter表),网络地址转换(NAT表)及数据包处理(Mangle表)。在NAT表中包含PREROUTING链、POSTROUTING链和OUTPUT链。进行NAT时Netfilter监听钩子函数NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING及NF_IP_LOCAL_OUT,并根据NAT表中的规则对数据包进行地址转换处理。NAT只对新连接的第一个数据包查询NAT表,随后同一个连接的数据包将根据第一个数据包的结果进行同样的转换处理[8]。

Iptables由内核模块和用户接口应用程序组成。Iptables内核模块能够对输入、输出的IP包进行过滤和管理,它是Linux 2.4内核中Netfilter框架的一个组成部分;Iptables用户接口程序可以添加、插入或删除内核表中的规则,利用Iptables工具,并用选项“-t nat”来创建、修改NAT表。

2.2.5 DHCP服务软件

DHCP[9]是动态主机配置协议,主要用来完成对局域网终端设备IP地址的动态分配,同时实现客户端子网掩码的设置,客户端设备无需手动设置子网掩码就可直接接入网络。DHCP服务软件不仅实现了动态分配IP地址,还实现了对网内用户的管理,如停止对租用到期用户的IP地址分配等。

2.2.6 pppd拨号服务

PPP(Point to Point Protocol)协议是点到点链路上承载网络层数据包的一种链路层协议[10]。pppd拨号服务用来控制EM310射频模块接入无线网络,物理层使用标准RS 232与微控制单元(Micro-Control Unit,MCU)通信。

网络控制协议(Network Control Protocol,NCP)负责将要处理的数据送到网络层,链路控制协议 (Link Control Protocol,LCP)在链路建立阶段用于交换配置信息包,当完成配置后开启LCP,进入认证阶段[11]。认证是可选择的,认证通过的用户将获得pppd通过IP控制协议(IP Control Protocol,IPCP)动态分配的一个IP地址,最终实现接入Internet。

2.2.7 Web服务软件

用户层用户交互式Web服务软件,在嵌入式Linux系统中安装Web服务器,这里移植的是小型、简单、全面的Boa嵌入式Web服务器,然后编写相应的通用网关接口 (Common Gateway Interface,CGI)程序实现用户Web界面数据与Web服务器的交互,从而实现用户对系统的控制[12]。

Web页面的实现采用基于eybuild引擎的C语言变种——CSP(C Language Service Page,CSP),类似于其他的CGI(ASP、JSP),CSP将C语言插入到HTML模板中,通过编译最终生成“*.cgi”文件,载入板内用户可直观的借助IE浏览器实现对系统的监控管理。

根据上文对硬件系统和软件系统的分析,本文设计了一种家庭物联网网关设备,其实物图如图4所示。

3 结 语

本文采用S3C2410、DM9000A和EM310射频模块设计了便携、低成本的家庭物联网网关设备。它在PCB板面积较小、板层较少的前提下,较好的完成了关键部分SDRAM的布线,保证了信号的完整性。在硬件资源有限的嵌入式平台上,通过对嵌入式Linux内核的剪裁、编译、移植,制作了完善的嵌入式根文件系统,在此基础上利用嵌入式Linux内完善的IPv4/IPv6协议簇,流畅运行Web服务器和DHCP服务器。pppd拨号程序能够智能打通无线通信设备,接入广域网及内网无线组网。在嵌入式Linux操作系统的核心完成Iptables程序的完美移植和匹配,利用其内容丰富的规则设置,实现整个系统的防火墙机制和NAT机制,使得系统数据传输具有较高的可靠性,并且使得外网和家庭内部感知网络设备的数据包能够完全按照规则顺利转发至相应接口。用户层面采用继承C语言优点的CSP语言精炼的完成了CGI程序的编写,实现了较好的人机界面。随着物联网的迅速发展,这种低成本的嵌入式家庭网关将在家庭物联网网络系统中得到推广,其价值也将明显体现。此外,该设备在加入更加丰富的数据接口后,其应用价值也会有很大的提升空间。

参考文献

[1] Internet Reports 2005: The Internet of Things[R].Interna-tional Telecommunication Union(ITU),2005.

[2]黄海昆,邓佳佳.物联网网关技术与应用[J].电信科学,2010,26(4):20-24.

[3] Steve Suehring, Robert L. Ziegler.Linux防火墙[M].何泾沙,译.北京:机械工业出版社,2006:51-189.

[4]黄克强,吴明光.基于家庭总线的智能住宅[J].浙江大学学报(工学版),2002,36(6):616-620.

[5]穆施瑶,朱琦.家庭基站系统中的联合信道与功率控制算法[J].通信学报,2014,35(4):141-147.

[6]张天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发指南[M].北京:电子工业出版社,2005:6-100.

[7]杜伟龙,曹江涛.基于ARM-Linux无线视频监控系统的设计[J].测控技术,2015,34(3):109-112.

[8]邵志鹏,王双保,李学青,等.基于ARM-Linux的便携式红外测油仪的设计[J].仪表技术与传感器,2015(5):46-49,52.

[9] Wang Guofang, Wang Wei.The Design of Interface Circuit Based on S3C2410 Data Acquisition System[J].Second International Conference on Computer Modeling and Simulation, 2010,3(1):1–10.

[10] Deng Yiquan.Linux Network Security Technology[C].Control, International Conference on Automation and Systems Engineering (CASE) ,2011:1-3.

[11] Yongxiang Guo. Design of network device driver in embedded Linux[C]. International Conference on Computer Application and System Modeling (ICCASM), 2010(12):45-48.

[12] Hamblen J.O., van Bekkum G.M.E. An Embedded Systems Laboratory to Support Rapid Prototyping of Robotics and the Internet of Things[J]. IEEE Transactions on Education, 2012, 56(1):121-128.

猜你喜欢

网络协议嵌入式系统智能家居
一种蓝牙多跳网络协议的设计与研究
基于Zigbee的无线通信技术在智能家居中的应用
基于载波技术的多点温度测量系统设计
基于DPI技术的语音视频流量监控系统设计与实现
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
基于LD3320的智能家居控制