基于ARM平台的智能网关设计
摘 要:智能网关作为物联网体系中传输信息的关键部件, 也是万物互联的枢纽。其主要特点是功能强大、结构复杂、开发成本高。本文以ARM Cortex-A8为硬件, 以Linux为系统平台, 以Python作为开发语言开发了一款物联网智能网关。该网关包含串口通信、Socket通信以及并发控制三个核心功能模块。测试结果显示, 该网关在实现感知层、智能网关、以太网层以及应用层之间数据的互联互通的同时, 解决了大量感知层及应用层设备并发通信的问题。通信性能具有较高地鲁棒性和高效性。
关键词:物联网;智能网关;ARM;Linux;并发通信
2.物联网网关应用架构分析与设计
2.1 物联网网关概述
物联网分为感知层、网络层、应用层。在传统的物联网体系结构中,感知层直接与网络层相连,即感知层的数据直接连接到网络层。为了接收不同感知网的数据,网络层需要留出许多的接口以供不同感知网中数据的接入,这显然是对公共网络资源极大的浪费[7]。因此,需要在感知层与网络层之间再添加一层,即汇聚层。将不同感知网的数据先全部汇聚并进行数据初步处理,再传输到网络层,达到减少对网络资源浪费的目的,同时大大的提高了有效数据的传输。此时的物联网体系结构如图1所示。
图1 物联网体系结构图
2.2 系统整体需求分析
物联网网关在物联网体系结构中位于汇聚层,所有感知层的数据都会在这里被处理并转发,是感知层与网络层之间的纽带。因此,它应当具备以下能力:
●广泛的接入能力,即解决感知层网络接入以及多种终端设备连接的问题。
●异构网络互通的能力,即能完成数据协议转换的问题。
●图形化界面管理能力,即解决智能人机交互的问题[8]。
2.2.1广泛的接入能力
物联网网关需要对感知层网络以及多种终端设备的接入提供接口支持。感知层网络主要有ZigBee自组织网络、蓝牙网络等感知网络[9]。多种终端设备主要包括串口屏、笔记本电脑、PAD、智能手机等智能终端。主要的接入方式包括RS232/485有线连接以及Wi-Fi无线连接。
2.2.2异构网络互通的能力
物联网网关必须对异构网络互通提供支持能完成感知层与多种终端设备之间的数据互通。
2.2.3图形化界面管理能力
物联网网关必须具有可视化管理能力。首先是对网关本身的管理。其次实现对子网内的节点的管理,如获取节点的唯一短地址addr、运行状态、感知信息等。
2.3系统整体设计方案
2.3.2系统整体框架设计
物联网网关作为汇聚层的重要组成部分,连接这感知层与网络层,有着非常重要的作用。根据本章前两节的讨论,网关将采用ARM+Linux作为软硬件开发平台,网关应具备广泛的接入能力、异构网络胡同以及图形化界面管理能力三个部分[10]。因此,网关框架图如图2所示。
图2 物联网网关架构图
4.软件系统详细设计
4.1软件系统需求分析
软件系统的需求如下:
1)对异构网络互通提供支持,主要包括解析不同层次设备数据的数据包;将数据统一封装;
2)对RS232/485与Ethernet的接口转换提供支持;
3)提供灵活的配置方法,设计基于串口屏的图形化界面管理模式。
5.2功能测试
功能测试主要包括Ping测试、远程连接测试和协议转换测试。
5.2.1 Ping测试
本测试主要用于测试物联网网关的连通性,采用Ping命令进行测试。选取的测试设备为4号设备。测试场景为:4号主机通过Ethernet网络与物联网网关连接,在该场景中,4号设备PC主机的IP地址为:192.168.1.100;3号设备物联网网关的IP地址为192.168.1.28.在4号设备PC主机命令行使用Ping命令连接3号设备物联网网关时,测试结果如图3所示。
图3 ping测试场景测试结果