嵌入式Linux物联网网关设计

嵌入式Linux物联网网关设计

嵌入式Linux在物联网网关设计中的应用

摘要

为了研究嵌入式平台在家庭物联网(IoT)中的发展趋势,设计了一种嵌入式Linux在物联网网关设计中的应用。采用ARM微处理器S3C2410、EM310射频(RF)模块和以太网DM9000A模块实现家庭网络信息处理平台。该平台利用现有网络设施、射频模块和网络接口模块,通过无线或有线链路实现家庭感知网络的互联互通。实验分析中,从物联网节点B对中央服务器(网关)进行两次Ping测试:第一次为 ttl = 255 time = 1.9 ms,第二次为ttl = 255 time = 2.4 ms。经应用验证,该系统具有低成本、小型化、低功耗和良好易用性的特点。它不仅可以集成家庭互联网与物联网网关,还能在物联网节点与互联网终端之间直接运行HTTP/MQTT等应用层通信协议。该设计支持多跳通信,在无需信号中继设备的情况下显著扩展了物联网节点的部署范围,从而降低了物联网组网的成本和网络架构的复杂性。

关键词 :实习生网关、嵌入式Linux、集成gateway

1 引言

在过去十年中,物联网(IoT)技术被正式提升至国家战略层面,并成为重点研究和实施的关键信息产业之一。农业物联网也借此机遇开启了发展之路[1,2]。在农业物联网中存在大量各种类型的传感器,存在多个异构网络,采集的数据需要通过农业物联网网关(以下简称网关)上传至数据中心,同时设备控制命令也通过网关转发至农业物联网中的控制设备[3]。农业物联网网关在智能系统杂志 2022年; 31: 1014–1023 农业物联网系统中,网关设计的质量将影响数据采集和设备控制的稳定性和准确性[4]。物联网技术一直被视为互联网的应用延伸,它利用射频识别、红外传感器、全球定位系统、激光扫描仪等信息传感设备,通过互联网进行信息交换,实现智能识别、定位、跟踪、监控和管理。物联网的概念于1999年提出,物联网网关是一个新术语,将在未来的物联网时代发挥重要作用,成为感知网络与传统通信网络之间的桥梁[5]。

随着家庭物联网、边缘计算、人工智能等新技术的融合,物联网迎来了大规模发展和跨行业整合的新时代。进一步降低物联网数据与互联网之间的交互门槛变得尤为必要。同时支持在物联网上运行多种应用层协议,如超文本传输协议/消息队列遥测传输 (HTTP/MQTT) 协(HTTP/MQTT)。为解决此类问题,提出了一种基于6LoWPAN和B.A.T.M.A.N. 高级协议的物联网集成网关设计。该过程从家庭网关服务器开始,通过物联网网关可避免繁琐的数据协议转换过程。它显著扩大了物联网节点的部署范围,无需依赖信号中继设备,从而降低了家庭物联网的组网成本和网络架构的复杂性。易和崔[6]通过开发Linux以太网驱动程序,提升了EtherCAT网络的周期时间性能。作者移除了Linux网络协议栈的参与,并开发了标准以太网驱动程序的新应用程序接口。该以太网驱动程序用于在嵌入式系统的主模块与以太网控制器之间建立直接接口。因此,耗时的内存复制操作得以减少,EtherCAT帧处理速度得到加快。为了验证开发以太网驱动程序的效果,搭建了一个由基于嵌入式Linux的主设备和商用现成从设备组成的EtherCAT网络[7]。实验结果表明,周期时间性能得到了显著提升。

本文的主要贡献如下:
i. 提出了物联网网关在家庭系统信息化与智能化中的重要作用。
ii. 利用射频(RF)模块和网络接口等现有设备,通过无线或有线链路分析家庭感知网络性能。
iii. 基于嵌入式系统实现了物联网网关的设计及其在家庭网络中的应用,采用ARM9微处理器S3C2410、EM310射频模块、DM9000A网络模块以及嵌入式Linux软硬件平台。

在本文的其余部分,第2节讨论了该领域的最新研究工作。第3节总结了系统框架和功能模块。第4节总结了仿真和测试平台实验结果。最后,第5节对本文进行了总结。

2 相关工作

目前关于物联网网关框架的设计与标准化方面的学术和研究工作较少[8]。国内外电信行业的不同运营商已推出了将无线传感器网络-与通信网络相结合的连接业务(WSN)和通信网络[9]。这些组织正根据工业用户的需求开展各种积极的探索。一些标准组织如3GPP和ETSI M2M技术委员会已制定了相关标准[10]。ETSI M2M技术委员会的主要目标是开展机器-到-机器 (M2M)标准化的研究。在ETSI和3GPP取得成果的基础上,该项工作已经取得进展。目前,ETSI M2M技术委员会的重点是定义M2M及其应用示例[11]。在此基础上,针对业务需求和标准化展开工作,但尚未倾向于任何特定技术。3GPP已成立一个研究小组,其基本思路是分析相关需求、可行性以及它们的应用[12]。随着传感器技术的进步和各种安全机制的设计,物联网已在大多数应用中广泛实施。郑等人 [13]提出了一种利用光纤传感器和模糊逻辑控制进行水位检测的系统。在另一项研究中,曾等人 [14]通过为农业应用设计基于区块链的模型,提出了一种安全的智能水资源管理系统。实验结果表明该模型的有效性,因为该设计实现了高精度和更好的安全性。在一项研究中,辛格和夏尔马 [15]提出了基于无线传感器网络和无人机的物联网框架用于农业应用。与现有其他方法相比,他们提出的模型在农业领域实现了更高的准确性。

从短期来看,家庭领域的相关努力也按照规定完成了设备的既定目标工作[16]。中国通信行业报告了用于WSN站点管理的MDMP协议,并确保在农业和家庭应用中展示实际应用效果-以促进实际理解-。[17]在规划与实施方面,一家电信研究院提出了一个家庭物联网方案,表明智能入口是数据汇聚与控制的核心组成部分[18]。Chen 等人[19]总结指出,入口系统的关键要素包括协议转换、状态控制、数据采集、终端寻址及其认证。在参考文献提出的物联网架构中,通过智能入口,真实物体可转化为可被现有系统集成的平滑资源,并能被外部HTTP直接访问。该智能入口通过蓝牙与传感器节点交互,为传感器节点分配 URL,并通过包含JSON数据段的HTTP数据包将采集到的感知信息转发至Web服务器。因此,传感器网络与传统媒体通信网络得以连接-。[21]目前与物联网相关的系统主要还是执行数据传输功能[22]。然而,对管理和控制问题的关注较少。

3 研究方法

3.1 系统框架和功能模块概述

目前,物联网应用广泛,接入方式多样。物联网网关需要集成多种接入方式,不仅要满足本地区域的短距离通信需求,还要实现与公共网络的连接,并完成数据包的处理、转发和控制。因此,作为物联网核心设备的物联网网关应具备以下功能。嵌入式家庭物联网网关系统可分为应用管理层、网络协议层和感知接入层,以实现物联网在家庭网络系统中全面感知、可靠传输和智能处理的功能需求。系统框架如表1所示。

系统轴 功能
Web浏览器终端设备(PC) 应用管理层通过最熟悉的Web浏览器实现对整个系统的监控和管理
逐层网络 功能齐全的网络服务器,如DHCP和Web
完整的网络协议簇,如IPv4和IPv6 网络协议层嵌入了完整的网络协议簇,如IPv4和IPv6,并在此基础上构建了动态主机配置协议(DHCP)服务器、Web服务器以及其他功能齐全的服务器
感知接入层 安全可靠的网络接口模块和射频模块

各层功能如下:
i. 应用管理层通过最熟悉的Web浏览器实现对整个系统的监控和管理。
ii. 网络协议层嵌入了完整的网络协议簇,如IPv4和IPv6,并在此基础上构建了动态主机配置协议(DHCP)服务器、Web服务器以及其他功能齐全的服务器。
iii. 感知接入层利用系统中的网络接口模块和射频模块,通过有线或无线方式实现广域网(WAN)的接入以及家庭内部感知网络的互联互通。

嵌入式家庭物联网网关系统的功能模块可分为无线通信模块、无线通信模块接口、网络接口模块、信息处理模块和接口管理模块。系统的基本工作流程是:当嵌入式家庭物联网网关系统启动时,信息处理模块自动启动,它控制整个流程,并通过无线通信模块接口启动无线通信模块 (射频模块)以接入广域网和家庭无线通信设备。然后等待接口管理模块设置系统配置参数,或使用系统默认的配置参数来桥接家庭感知网络设备的互连,或将数据路由至广域网[23]。

在嵌入式家庭物联网网关系统中,无线通信模块通过无线方式连接到广域网。同时,它接收由信息处理模块转发的家庭内部感知网络设备数据。此外,该模块也是家庭感知网络中无线设备的连接接口。信息处理模块是嵌入式家庭物联网网关系统的中枢,上电后自动启动,并控制周边模块的安全启动,是整个系统的核心。同时,它接收来自外部网络的信息和内部网络设备的数据,完成最核心的功能,如将数据从内部网络路由并转发到外部网络,以及从外部网络到内部网络的路由与转发。接口管理模块允许用户修改和管理某些设备配置(如网络接口模块的IP地址、网关、子网掩码、内置服务器参数、无线通信模块连接状态等),以适应用户的使用习惯。

3.2 系统设计与实现

嵌入式家庭物联网网关系统是一个以S3C2410微处理器、DM9000A以太网模块和EM310射频模块为核心硬件平台的硬件平台。其中,S3C2410是带有内存管理单元的ARM9微处理器,支持实时控制。它是为整个系统设计的CPU,负责外围电路模块的控制,并承载整个嵌入式最小系统。DM9000A可以连接所有家庭电话线网络设备或其他提供媒体-独立接口功能的收发器。其自动协调功能将自动完成配置,以最适配其他线路带宽。它还支持IEEE802.3全双工流控以及即插即用等简单功能的实现。它还能实时处理和封装以太网帧,通过网络接口和双绞线传输,有效实现家庭感知网络的有线连接。EM310射频模块可轻松接入GPRS网络,实现网关系统的广域网接入。此外,它还具备语音消息等功能,便于接入手机网络,实现家庭感知网络的无线组网。系统硬件结构图如图1所示。

示意图0

微处理器S3C2410是整个硬件系统的核心,它在上电、关机、复位等情况下实时控制外围电路的启动,并实时监控外围电路模块的工作状态。整个硬件系统由微处理器S3C2410控制,将EM310射频模块连接到广域网和移动蜂窝网络。网络用于实现网关系统对外部网络的接入。家庭感知网络的无线组网由以太网控制器DM9000A控制,通过实时有线方式访问家庭感知网络[24]。此外,整个硬件系统还设计了复位模块,即硬件看门狗模块,可在实时场景中监控系统的稳定性,确保当软件复位系统失效时,整个系统能够被复位并重新启动。64M SDRAM和64M NAND Flash完全满足嵌入式系统的存储需求以及程序运行的需求。

3.3 软件设计

嵌入式家庭物联网网关系统的软件平台参考模型如图2所示。整个系统基于硬件平台,以嵌入式Linux操作系统为核心,实现了网络接口模块驱动和无线通信模块接口驱动的编写。网络部分实现了IPv4/IPv6协议簇、路由和转发,同时完成了防火墙移植,并实现了上层应用(PPP拨号器、DHCP服务器、Web服务器和网页)的开发与移植。

示意图1

底层硬件初始化程序、嵌入式操作系统和文件系统、应用层软件以及用户层软件,从下至上设计每个模块。这些模块并非孤立存在,而是基于较低层次的软件层程序。

3.3.1 引导加载程序移植

嵌入式家庭物联网网关系统的引导加载程序采用小型公司为ARM专门开发的轻量级vivi。可实现启动加载和下载两种工作模式,通过修改/Vivi/Makefile文件中的设置信息,并在编译前删除“ .o”和“ .o.flag”文件,以确保编译有效。最终编译生成的Vivi可执行文件可烧写到NAND闪存中,从而实现系统的启动。

3.3.2 嵌入式Linux内核移植

Linux 2.4.18 内核可在ARM920T处理器上高速运行。其文件系统支持cramfs、yaffs、ext2和NFS等功能。内核移植需要通过内核裁剪和内核编译来完成。通过对内核文件进行编译生成镜像文件,即为内核镜像文件。引导加载程序在加载开发板后,可启动嵌入式Linux操作系统。

3.3.3 根文件系统迁移

嵌入式Linux系统支持多种文件系统,大多数在内核构建时包含ext2、NFS等文件系统。本文中将yaffs文件系统上传到嵌入式Linux系统,该系统为可读可写的文件系统,便于后续应用程序的开发。使用 busybox1.0版本的文件系统制作工具,该工具被称为嵌入式文件系统的瑞士军刀,操作方便,非常适合嵌入式文件系统的制作。制作文件系统的步骤包括:配置Makefile、裁剪文件系统、构建根文件系统目录以及编译。通过编译可生成root_china.yaffs镜像文件,然后将其烧录到开发板中,启动硬件系统后即可在终端看到shell交互界面,便于后续的应用开发。

3.3.4 Iptables移植(网络地址转换(NAT)实现)

Iptables 是与最新 2.4.x 版本 Linux 内核集成的 IP 数据包过滤系统。如果 Linux 系统连接到互联网或局域网,或者作为连接局域网和互联网的服务器或代理服务器,该系统有助于更好地控制 Linux 系统上的 IP 数据包过滤和防火墙配置。Netfilter/Iptables 在 Linux 2.4 内核中提供了一系列表。每个表由若干链组成,每条链可以包含一条或多条规则[25]。内核模块可以注册一个新的规则表,并要求数据包流经指定的规则表,用于实现数据包过滤(Filter 表)、网络地址转换(NAT 表)以及数据包处理(Mangle 表)。NAT 表包含 PREROUTING 链、POSTROUTING 链和 OUTPUT 链。Netfilter 监视钩子函数 NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING 和 NF_IP_LOCAL_OUT,并根据 NAT 表中的规则对数据包进行地址转换处理。NAT 仅对新连接的第一个数据包查询 NAT 表,之后同一连接的其他数据包将按照第一个数据包的处理结果执行相同的转换过程。Iptables 由内核模块和用户界面应用程序组成。Iptables 内核模块能够过滤和管理输入输出 IP 数据包,是 Linux 内核中 Netfilter 框架的重要组成部分。Linux 2.4内核;Iptables用户界面程序可以向内核表中添加、插入或删除规则,使用Iptables工具,并通过“-t nat”选项来创建和修改NAT表。

3.3.5 DHCP服务软件

DHCP主要用于完成局域网中终端设备的IP地址动态分配,同时通过直接访问网络来设置客户端的子网掩码,而无需手动设置子网掩码和IP地址。DHCP服务软件不仅实现了IP地址的动态分配,还通过协议帮助管理网络中的多个用户,例如停止向租约已过期的用户分配IP地址。

3.3.6 点对点协议拨号服务

PPP是一种链路-层协议,用于在点-对-点链路上承载网络-层数据包。PPP拨-号上网服务用于控制EM310射频模块接入无线网络,物理层使用标准RS232与微-控制单元[26]通信。网络控制协议负责将待处理的数据发送到网络层,链路控制协议(LCP)用于在链路建立阶段交换配置信息数据包,当配置完成后,LCP被激活并进入认证阶段[27]。认证是可选的,通过认证的用户将通过IP控制协议获得由PPPD动态分配的IP地址,并最终实现接入互联网[28]。

3.3.7 Web服务软件

用户-级交互式Web服务软件将Web服务器安装在嵌入式Linux系统中。它是一个小巧、简单且功能完整的Boa嵌入式Web服务器,通过编写相应的通用网关接口(CGI)程序,实现用户Web界面数据与Web服务器之间的交互,从而实现用户对系统的控制。网页的实现采用基于构建引擎的C语言变体-C语言服务页面 (CSP),类似于其他 CGI(ASP,JSP)。CSP将 C语言代码插入HTML模板中,最终通过编译生成“*.cgi”文件,并在加载到开发板后,用户可通过IE浏览器直观地实现对系统的监控与管理[29]。

4 结果分析

4.1 节点间数据交换通畅性测试

通过设备间发送Ping包来检查数据交换的通畅性。具体的Ping方案如下所示,如图3所示。为实现此过程,可直接在服务器-端和物联网节点上使用Ping命令。

集线器服务器(网关)(94:A7:8E:32:2D:7B)向另外两个物联网节点发送Ping包,物联网节点 A(C4:8E:3B:23:82:7D)向物联网节点B(E3:4D:A2:83:D4:42)发送一个Ping包,返回数据的延迟如图4[30]所示。

示意图2

示意图3

根据该数据,确定在拓扑结构下无线Mesh网络的数据交互正常,且模块的硬件部分工作正常。

4.2 B.A.T.M.A.N. adv路由协议的多跳通信

多-跳通信意味着物联网节点使用一个或多个固定的或其他移动的物联网节点,将数据传输到中央服务器网关或目标物联网节点。因此,本测试的关键是阻断某个物联网节点(A或B)与中央服务器的直接连接,并测试其是否能够通过另一个物联网节点实现多‐跳通信。有两种方法可以阻断物联网节点与中央服务器之间的直接通信:一种是将被阻断的物联网节点放置在无法接收到中央服务器发送的802.11协议信号的位置;第二种是集线器服务器使用netfil‐terliptables IP包过滤系统,屏蔽与该物联网节点MAC地址通信的所有数据包。由于前者存在信号衰减导致丢包或节点被部分阻断,仍可能捕获到中央服务器的802.11信号,因而相关变量难以良好控制,因此测试采用第二种方法[31]。

将物联网节点和集线器服务器设置为使物联网节点B无法直接与集线器服务器通信:首先关闭物联网节点A的IEEE802.11模块,然后使用ipotables用于阻止数据包通信。图5和图6 显示了集线器服务器-端和物联网节点B的命令。

完成阻断工作后,确保物联网节点B与集线器服务器无法实现单跳通信。接下来,打开物联网节点A的IEEE 802.11模块,并连接到无线Mesh网络,查看物联网节点A的路由表,发现节点已检测到其余两个设备。

从物联网节点B向中央服务器(网关)发送ping命令,共执行两次:第一次ttl = 255 time =1.9 ms,第二次ttl = 255 time = 2.4ms。这证明了物联网的节点B能够与中央服务器(网关)进行交互,且B.A.T.M.A.N. 高级协议的多跳通信验证通过。生成了一个测试环境用于测试物联网网关的各项功能。结果表明,基于嵌入式Linux开发的物联网网关系统能够满足设计要求。

5 结论

本文介绍了物联网网关的研究背景和研究现状,分析了当前物联网网关的不足之处及改进措施。本工作完成了Iptables程序在嵌入式Linux操作系统核心上的完美移植与匹配。所提出的方法通过丰富的规则设置实现了整个系统的防火墙机制和NAT机制,使系统数据传输更加可靠。它使得外部网络和家庭内部感知网络设备的数据包能够依据规则顺利转发到相应接口。用户层采用继承了C语言优点的CSP语言对CGI程序进行优化,实现了更佳的人机界面。该系统具有良好的实时性和高安全性,适用于家庭物联网的应用。在未来家电物联网中嵌入式平台的更多发展趋势下,可设计基于嵌入式Linux的物联网网关应用。

利益冲突 :作者声明不存在利益冲突。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值