admin 管理员组

文章数量: 887021


2024年3月26日发(作者:代替超卓文本编辑器)

基于边缘计算的企业物联网网关

何铮

(成都极企科技有限公司,成都610000)

摘要院物联网网关是近年来物联网兴起后产生的新网络设备。不同于互联网时代的路由器网关,除

联通互联网络以外,还需要兼容各种物联网协议智能,组建一个设备互联的网络。但是有别于传统路

云端)去实现各种场景功能,因

由器类网关,它还面临更多协议的转化,并且不能完全依赖于互联网

为物联网是需要驱动很多本地设备,对网络的延迟比TCP/IP时代要求更加严格,所以需要很多本地计

算的能力,在企业级环境中更是如此,一个基于边缘计算的企业级物联网网关设计显得尤为重要。

关键词院企业物联网;边缘计算

1

1.1硬件选型

企业级物联网网关的设计要点

物联网网关首先基于一个硬件实体袁目前没有专门

而不是试图建立一个单一的尧静态的系统遥OpenWrt的

包管理提供了一个完全可写的文件系统袁从应用程序供

应商提供的选择和配置袁并允许自定义设备袁以适应任

何应用程序遥

对于开发人员袁OpenWrt是使用框架来构建应用程

序袁而无需建立一个完整的固件来支持曰对于用户来

说袁这意味着其拥有完全定制的能力袁可以用前所未有

的方式使用该设备遥

1.3接口

需要在MTK7621的PCB板上选择3种不同接口完

的物联网网关的硬件袁所以首先应该对硬件进行一个选

型袁然后再进行重新开发遥对于网关类产品需要7*24

小时不间断在普通环境温度-10度到+50度下工作袁所

以可以选择传统路由器硬件开发板作为基础遥

综合以上需求袁在路由器主板中应选择已经非常成

熟并且大量使用在路由产品中的MTK7621进行开发遥

MTK7621能以Gbps等级的局域网带宽袁传输高画质影

音及很多数据下载备份袁能满足企业级物联网要求曰此

外袁MT7621A还集成了全球抢先的2GbpsIPv4/6网络

地址变换技能渊NAT冤尧QoS功用渊QualityofService冤尧

SAMBA及虚拟专用网络渊VPN冤硬件加快器袁使得

无线热门尧VPN尧拜访操控尧安全网关尧NFC路由器

渊MT6605冤尧1-bay或2-baySATANAS等多种运用需

些渠道无需晋级CPU即可享受到802.11ac所带来的绝

佳网络体会曰选用联发科技的低功耗技能袁MT7621A

功耗仅为业界同类商品的一半遥

1.2操作系统

硬件选型为路由器芯片方案MTK7621袁需要适配

要曰此外还可供给100%iNIC形式的WiFi分流袁令这

MT7621A可以满足高速802.11ac尧LTEcat4/5尧edge尧

成Zigbee模块尧LoRa模块尧NB-iot模块遥在此硬件板

可以用3组GPIO通行接口进行扩展遥

用者由程控自由使用袁PIN脚依现实考量可作为通用

输入渊GPI冤或通用输出渊GPO冤或通用输入与输出

渊GPIO冤袁如当clkgenerator尧chipselect等遥

1.4物联模块

有了硬件接口GPIO袁分别选择Zigbee尧LoRa尧

GPIO袁功能类似8051的P0-P3袁其接脚可以供使

NB-iot3个独立模块接入袁将路由器网关扩展为物联网

网关袁接入是PCB线路需要分开袁避免干扰遥

1.5天线和频段

叠袁目前采用将WiFi的2.4Ghz阉割袁保留5Ghz频段袁

将2.4Ghz的天线留给Zigbee使用遥由于该网关不承担

作者简介:何铮渊1978-冤袁男袁本科袁研究方向院物联

网和智能办公遥

收稿日期:2019-06-17

2019.09

Zigbee频段在2.4GHz和路由器本身的WiFi频段重

一个ROM版本袁也就是操作系统袁在这个基础上可以

进行网关软件和边缘软件的研发遥因此基于Openwrt是

最佳的选择遥

版袁渊主流路由器固件有dd-wrt袁tomato袁openwrt3类冤

OpenWrt可以被描述为一个嵌入式的Linux发行

149

WiFi

口袁同时保留

的应用袁

POE

所以只需要

有线接口接入以太网络

5Ghz接入进行调试配置接

耗尧

LoRa

多节点

具备优良适配物联网的特性

尧低成本尧抗干扰袁同时LoRa

院远距离

低速率

尧低功

尧适

合小数据传输遥

但是在中国选择具体的频段有一些要求袁最终可以

选择的是院CN470_80_87院486.3Hz-508.1Hz遥

1.6

企业级物联网网关所发射的无线射频信号都是公开

安全设计

标准的Zigbee尧LoRa协议袁存在抓包风险袁并且和传

统网络不通袁抓包后如果直接透明传输袁可能面临被直

接攻破的危险袁并且就会直接操控物联网设备袁这个是非

常严重的事故遥所以在物联网网关的设计上要考虑多重安

全机制袁除去软件上的常规加密以外袁还需要在硬件协议

层进行加密算法袁并且根据物联网Zigbee和LoRa的特

点院低频尧多次发起尧无中心节点等袁设计一个分包发送

的策略袁就是说同一个指令袁将其分解成多个小包袁然

后全面发送到物联网中袁没有一个单独的包是完整的袁

需要经过多次转发合并到终端再进行组合才能够形成一

条指令遥不过这个设计需要配合包丢弃策略袁就是一旦

组合成功袁多余的包要丢弃袁保证网络干净和畅通遥

1.7

企业级物联网网关由于其

运维设计

野使命冶更加重要袁它往

往管理了空间中的门禁尧照明尧能源袁如果网关出现故

障所造成的影响比互联网网关要严重得多袁互联网网关

世界

路由器

遥所以运维设计需要一开始就要注意

冤出现故障最多就是无法上网袁无法影响物理

袁运维设计的

目的就是可以安全地进行日常巡检和运维袁包括智能报

警和预警院

日常巡检院网关设计定时向组网内设备发送运维巡

检包袁获取反馈后记录状态袁并形成日志供工程师查看遥

日常运维院可以提供独立打洞穿透的能力袁可以

在远端SSH进入系统进行升级和维护袁SSH密码需要

每日动态随机生成袁并且登录账号权限可控制在有效

范围内遥

智能报警院在物联网网络故障袁互联网络故障袁组

网设备故障等情况下网关智能报警袁有不同颜色LED

灯显示遥

智能预警院当向组网设备发送检测数据包的时候袁

返回速度达到一定阈值将自动启动预警袁记录日志发出

150

2019.09

通知遥

1.8

停电保护措施是防止停电后网关损坏以及恢复用电

停电保护

的时候所有组网设备恢复之前状态的一个机制袁由于企

业级物联网网关有负责的数据库IO运算袁所以瞬时掉

电可能会造成部分数据没有及时写入存储袁这样会造成

整个物联网络混乱袁甚至瘫痪遥所以有别于传统网关袁

需要增加电池进行断电瞬时存储功能袁简单来说给网关

增加一个UPS电源袁只是这个电源可以非常小袁一个

大电容即可袁它在断电的瞬间袁电容给网关可以持续供

电1s袁这1s时间完成所有的存储和正常快速关机动作遥

这样就可以有效防止断电或者电涌照成的影响遥

1.9

物联网网关还有个非常特殊的设计

断电使用

袁就是在网关断

电渊或者硬件损坏冤的情况下袁不能影响整个物联网组

网设备的使用遥比如说袁组网设备有门禁控制袁照明控

制袁空调控制这些设备不能因为网关问题导致无法使

用袁它们必须可以独立工作袁可以和开关独立配对袁保

证每个开关可以脱离网关控制组网设备遥当网关恢复后

自动同步数据袁完成系统恢复遥

1.10

选择传统路由器网关芯片

非IoT协议支持

MTK7621还有一个好处

就是袁它本身就是一个天然的TCP/IP的传输网关遥所

以在非IoT协议支持的情况下袁只要符合基本的TCP/IP

协议就可以接入到这个网关中遥这样就可以将IoT和非

IoT

2

的设备进行统一管理和控制

边缘计算的设计要点

首先要对边缘计算做一个定义袁在物联网世界中袁

诸多前端设备是低功耗的电子设备袁不具备大量计算能

力袁所以通常的做法是将计算和应用通过物联网网关发

向云端进行计算遥

所以出现了一种新型的设计构架就是将很多计算和

应用实现在网关上遥这个特别像WLAN时代的服务器

结构袁本地服务器就是用来做本地计算和应用袁只不过

这里所设计的是在嵌入式设备和OS中实现的计算和应

用才能叫边缘计算遥所以具备边缘计算能力是一个物联

网网关必须的特性遥

2.1

边缘计算的基本环境是嵌入式设备和

边缘计算的运行环境

OS袁本设计

中具体就是MTK7621和Openwrt遥这样的硬件环境是双

核MIPS1004K渊880MHz冤袁内存128M袁Linux环境遥并

且CPU不带浮点运算遥为了保证7*24小时工作袁就必

须低功耗袁所以嵌入式设备的硬件计算能力还是有限袁

只有通过设计来规避性功能问题遥

2.2

在嵌入式设备中有很多开发环境和开发语言可以选

边缘计算的开发环境

择袁但是由于要进行应用开发袁所以要兼顾开发工程师

的属性袁不能选择嵌入式语言如C尧LUA遥这类语言掌

握的人少袁并且不适合开发现代Web已经移动端的系

统袁所以采用精简版的PHP作为开发语言袁一方面可

以方便地和底层驱动通过C语言集成袁另一方面也可以

无缝衔接应该系统开发工程师遥

在数据库方面选择SQLite袁SQLite是专为嵌入式设

备设计的数据库系统袁兼容大部分SQL标准袁只要不

做大规模表关联在100万级数据量上是有卓越的性能

表现遥

同时尽量配合文件操作袁普通的IO操作是可以大

大提升性能遥

选择Lighthttpd作为轻量级Web容器袁提供Web

应用的最终接口袁并且在Web应用中大量使用LUA和

前端缓存袁将大量数据计算放到web端完成遥

这样的开发环境才基本适应边缘计算的要求遥

2.3

物联网设备是和万级的前端组网设备进行互联互

心跳和长连接

通袁所以需要有心跳机制和长连接机制保证获取状态遥

心跳院所谓的心跳包就是客户端定时发送简单的信

息给服务器端告诉它我还在而已遥代码就是每隔几分钟

发送一个固定信息给服务端袁服务端收到后回复一个固

定信息如果服务端几分钟内没有收到客户端信息则视客

户端断开遥在物联网中不需要采用Socket来发送心跳袁

只需要通过Zigbee和LoRa包就可以模拟实现袁在实际

测试中1分钟发送一次心跳频率是一个兼顾性能和状态

回显好的时间间隔遥

长连接院长连接多用于操作频繁袁点对点的通信袁

而且连接数不能太多情况遥每个TCP连接都需要3步

握手袁这需要时间袁如果每个操作都是短连接袁再操作

的话那么处理速度会降低很多袁所以每个操作完后都不

断开袁下次处理时直接发送数据包就OK了袁不用建立

TCP

接频繁的通信会造成

连接遥例如:数据库的连接用长连接

Socket错误袁而且频繁的

袁如果用短连

Socket

创建也是对资源的浪费遥这个主要用于前端Web系统

的大数据展现等应用遥所以可以采用Socket长连接的

标准模式遥

2.4

虽然有了心跳

状态机

袁能够实时获得万级组网设备的状

态袁但是有断网尧停电尧停机等情况出现遥所以需要设

计一个状态机来记录最后一次获取状态的情况袁保证系

统恢复后能够迅速开始工作遥状态机由状态寄存器和组

合逻辑电路构成袁能够根据控制信号按照预先设定的状

态进行状态转移袁是协调相关信号动作袁完成特定操作

的控制中心遥状态机分为摩尔渊Moore冤型状态机和米

莉渊Mealy冤型状态机遥在物联网网关中采用Moore状

态模型遥

2.5

基于

OTA升级

Linux的环境袁需要设计一个OTA升级机制袁

可以参考Linux的DEB包部署结构遥

及包内容

Debian

袁经过

包是

gzip

Unixar

和tar

的标准归档

打包而成遥

袁将包文件信息以

处理这些包的经典程序是dpkg袁经常是通过De鄄

bian的

通过

apt-get

Alien

来运作

工具袁

可以将deb包转换成rpm尧

格式遥

件包

deb

渊exe)袁

包在

几乎不需要什么复杂的编译即可通过鼠标

Linux操作系统中类似于Windows中的软

点击安装使用遥此外deb广泛应用于越狱后iOS软件及

MeeGo

最后通过

渊含Maemo

Get命令来实现自动的

软件冤中遥

OTA升级遥

2.6

由于需要和各种异构系统集成

简单接口API

袁再基于网关性能偏

低袁所以不选择高级的接口模式如EJB尧WebService袁

采用简单的基于HTTP的Restful接口模式遥

架构样式的网络系统

REST渊Representational

袁比如

State

Web

Transfer冤

应用程序遥

描述了一个

它首次出

现在2000年RoyFielding的博士论文中袁RoyFielding

是HTTP规范的主要编写者之一遥在目前主流的3种

Web

ject

RPC

Access

服务交互方案中

protocol袁

简单对象访问协议

REST相比于SOAP渊SimpleOb鄄

load的编码

更加简单明了

袁无论是对URL的处理还是对

冤以及XML-

Pay鄄

(下转第159页

REST

)

都倾向于用更加简单轻量的方法设

2019.09

151

升级流程后袁仍然会搜索出上次安装失败的补丁袁此时

将有两种可能情况袁一种是其所依赖的补丁经上次安装

并重启后已生效袁此次将成功安装曰另一种是其安装失

败并不是有依赖的补丁未安装袁而是其它特殊原因袁若

得不到排查解决袁本次将再次安装失败并重启服务器后

重新进入工作流循环遥为避免这一意外情况发生袁需要

在脚本中对服务器重启次数作限制袁根据经验本文将重

启次数限制为4袁即若重启4次后仍无法进入步骤

渊7冤袁则输出报错信息开始排查原因遥

补丁安装失败存在多种原因袁如杀毒软件尧系统防

就自动化程度而言袁所述方法由步骤渊6冤重启服

务器后袁仍需要手动调起脚本进入步骤渊1冤搜索补丁遥

该调用虽然通过服务器管理平台统一发起袁但还是降低

了整个升级流程的自动化程度遥可以探索通过定制任务

计划程序的方式袁将任务计划设置为系统启动时运行特

定指令来判断是否要调用补丁升级脚本遥

除了VBScript以外袁也可以探索使用PowerShell尧

Perl或设计程序来实现补丁升级自动化遥业界服务提供

士尧腾讯电脑管家等遥各企业可结合自身特点和使用习

惯选择合适的系统运维工具进行个性化开发遥

参考文献

[1]徐彤,赵桂莲,付涛.利用WSUS搭建补丁升级服

务器[J].新疆钢铁,2007,1:37-39.

[2]修玮,郑立文.Windows系统补丁升级原理剖析[J].

辽宁师专学报:自然科学版,2010,4:27-29.

12:36-39.

[3]纯红.善于向补丁升级要安全[J].个人电脑,2017,

商也有针对家庭电脑的补丁升级工具袁如360安全卫

护软件尧补丁库文件损坏尧系统完整性损坏等袁需要结

合尧以及系统日志信息进行

详细分析遥

3自动化补丁升级技术应用展望

目前袁所述的自动化补丁升级技术已在中国农业银

行数据中心生产环境中全面启用袁很好地满足了系统日

常运维需求袁极大地降低了Windows平台补丁升级的

人力投入袁同时缩短了升级的时间袁最终提高了升级

的效率遥

(上接第151页)

计和实现遥值得注意的是REST并没有一个明确的标

准袁而更像是一种设计的风格遥

2.7嵌入式数据库

本系统可采用嵌入式数据库系统SQLite遥

SQLite是一款轻型的数据库袁是遵守ACID的关系

身)都在宿主主机上存储在一个单一的文件中遥它的简

单的设计是通过在开始一个事务的时候锁定整个数据文

件而完成的遥

3结语

基于边缘计算的企业级物联网网关设计是既有物联

网协议的支持袁又要边缘计算的要求袁是一个崭新的系

统构架遥需要在不断的实践中进行调整和优化袁成为未

来物联网不可或缺的一个部分遥

参考文献

[1]王诗莹,滕海坤,李伦彬.物联网网关技术发展现

状探析[J].科技与创新,2018,(22):69+73.

[J].信息系统工程,2018,(01):44.

[2]赵小凤.基于嵌入式系统的物联网网关的设计分析

[3]李海威.基于云计算的物联网数据网关的建设研究

190+194.

型数据库管理系统袁它包含在一个相对小的C库中遥它

是dHipp建立的公有领域项目遥它的设计目标

是嵌入式的袁而且目前已经在很多嵌入式产品中使用了

它袁它占用资源非常的低袁在嵌入式设备中袁可能只需

要几百K的内存就够了遥它能够支持Windows/Linux/U鄄

nix等主流的操作系统袁同时能够跟很多程序语言相结

合袁比如Tcl尧C#尧PHP尧Java等袁还有ODBC接口袁

同样比起MySQL尧PostgreSQL这两款开源的世界著名数

据库管理系统来讲袁它的处理速度比他们都快遥

像常见的客户-服务器范例袁SQLite引擎不是个程

序与之通信的独立进程袁而是连接到程序中成为它的一

个主要部分遥所以主要的通信协议是在编程语言内的直

接API调用遥这在消耗总量尧延迟时间和整体简单性上

有积极的作用遥整个数据库(定义尧表尧索引和数据本

[J].计算机技术与发展,2018,28(01):188-

2019.09

159


本文标签: 网关 需要 设备 进行 设计