物联网(IoT)已经成为了我们日常生活中不可或缺的一部分,无法想象如果不能在快到家的时候从手机上打开热水器的生活会是什么样子。如果想要实现上面提到的这个功能或者其他更重要的功能,就需要一个由许多组件构成并且无缝协作的生态系统。IoT架构(图1)可以根据功能分为多个层:
设备层(也称为终端层)一般包含三种元素:传感器用于测量实际数据、执行器用于执行相应的功能、收发器用于传输传感器的数据并接收执行器的指令。
IoT网关层是物联网生态系统中的一个重要组成部分,是传感器、执行器和云之间的媒介,用于处理本地传感器和远程用户之间的通信,并完成其他的相关功能。
云层用于整个物联网系统的监控和管理,它与多个网关相连接,对收集和存储的数据进行分析。
应用层是最终用户的接口,用于访问和控制物联网产品和服务。
图1 IoT生态系统可以被分成多个层,它们共同完成数据的测量、分发和分析,并且执行相应的动作。
网关设计的关键
虽然每个物联网系统是不同的,但网关的主要作用是聚合多个低速终端节点的数据,并将数据通过高速链路发送到云。
聚合数据所涉及到的可能不仅仅是向上层发送数据。例如,对于像ZigBee或LoRa这样的网格拓扑结构,网关所接收到的可能是相同消息的多个副本。在这种情况下,网关必须选择哪个消息像上层发送,哪一个消息发送到下层的终端节点。
随着物联网的功能越来越复杂,设计人员正在将部分数据处理功能转移到接近传感器/设备层的位置,也就是所谓的“雾计算”。以这种方式来划分IoT任务,不再需将对数据分析没有作用的数据发送到服务器,这样不仅减少了响应时间,而且降低了网络负载。
按照这种方式,网关设备所在的位置是最合适的选择,因为将响应合并到单个模块中的多个终端点,而不是在多个单元中进行划分,通常是比较便宜的。在大规模的物联网系统中每一层有明显的物理区分。然而,在一些小型系统中,可以将多个层组合到一个单元中。例如,自动售货机中的网关包括了用户界面、输入、输出和无线或有线接口。在这种情况下,IoT只包含了云和网关。
考虑到选择的多样性,哪些是IoT网关硬件和软件所必须的呢?
硬件的考虑
下面是网关硬件的一些需求:
CPU:
不同IoT应用程序对网关的CPU及其相关模块的需求差异很大。有些应用程序可能对计算能力要求很高,这就需要一个具有浮点计算能力的强大处理器;有些应用程序可能对安全性敏感,这就需要一个带有硬件增强功能的CPU,以满足TPM规范。许多供应商提供了兼容小型网关的CPU,例如,英特尔Atom E3800在物联网网关中很流行。该处理器具有从1个到八个核多个系列;内存从512kB到2MB;操作频率从1.33 GHz到1.91 GHz。
存储:
使用闪存存储数据的固态硬盘(SDD)是很流行的选择,因为他们没有移动的磁头,性能可靠,且与硬盘驱动器(HDD)相比性价比更高。英特尔E 6000p系列是SSD是一个很好的例子:容量分为128GB和256GB版本,带有功能标准的PCIe Gen 3接口,并提供了AES 256位的数据加密。
连接:
硬件必须支持各种有线和无线通信接口。互联网与云的连接很可能是通过Wi-Fi或以太网连接到路由器,但考虑到物联网用例的多样性,与终端节点的连接具有很强的专用性。
环境考虑:
在硬件的选择上也要考虑到实际的操作环境。IoT网关设备将被安置在办公室、安置在工厂的地板上,还是以某种方式暴露阳光下?并且功耗要求是多少?
软件的考虑
IoT网关的软件也需要多点考量。主要有以下几点:
操作系统用于管理处理器、内存和其他资源,并为应用程序提供底层硬件的抽象。IoT网关的操作系统有多种选择,包括专用系统,如微软的Windows IoT Enterprise或Windows IoT Core,还有其他的很多开源系统,如Ubuntu或Ubuntu Core,他们都是Linux的衍生产品。
与终端节点的连接和通信可以通过USB、RS-485、IEEE 802.11/b/g/n (WiFi)、LoRa或低功耗蓝牙 (BLE)等协议。与云的通信可以使用以太网、wi - fi或蜂窝协议。
网关位于终端设备层和公共互联网之间,对保证数据的安全起着重要的作用,同时网关也是黑客攻击的首要目标。任何健壮的软件栈都必须包括层的安全,包括通信的加密和设备的认证。安全设计通常包括硬件和软件组件之间的紧密交互。
网关设计实例
为了满足不同物联网应用的需要,IoT网关设备形状各异和大小不同。下面是针对不同应用的网关设备的例子——工业物联网,多媒体信息站。
工业物联网
工业物联网(IIoT)的应用包括自动化制造、HVAC、智能物流、过程控制和智能农业等。IIoT所使用的范围是广泛的,因此IIoT网关必须能够兼容各种通信协议,能够进行近距离的处理,具有灵活的安装选项,并能够工作于工厂的环境中。
图2 戴尔EM3001网关基于Intel的双核Atom E3805处理器,广泛的适用于各种工业应用,如自动化汽车装配线。
戴尔EM3001主要面向工业物联网应用,它是基于Intel的Atom E3805处理器的,具有1MB RAM,运行频率1.33 GHz。EM3001属Edge Gateway 3000系列,无风扇设计,兼容各种操作系统,包括Ubuntu、Windows Embedded Standard,或Intel Wind River Linux。
EM3001既支持有线网络也支持无线网络,支持的无线协议包括IEEE 802.11b/g/n (Wi-Fi),蜂窝网络和BLE,支持的有线协议如USB、10/100以太网和PoE。此外,它也包含了传统的工业接口标准,如RS-232, RS-422和RS-485。为了提高灵活性,EM3001包含一个GPIO端口,该端口具有8个通道,可以独立编程为数字I/O,DAC、ADC接口。它还集成了加速度传感器、压力、温度湿度传感器和GPS。EM3001是针对在移动和制造环境下使用而设计的,他功耗低,IP50的防护等级,具有一个工业级的micro-SD卡以及TPM 2.0安全规范。
交互式多媒体信息站
交互式多媒体信息站,也可以称为销售点的POS终端,是一个小型IoT的应用实例。它需要一个网关,终端通过网关与云服务器进行数据交互来完成预定的任务。终端需要包括一个热敏打印机、显示器以及麦克风、扬声器、触摸屏等人机接口(HMI)。
Intel为小型应用提供了NUC(下一代单元计算)系列设备。例如,Intel NUC Kit NUC5CPYH将终端节点和网络功能集合到了一个单独的设备中。
对于小型应用,数据全部在远程服务器进行处理,对远程服务器依赖严重,因此网关可以使用性能较低且成本便宜的CPU。NUC的CPU采用Intel Celeron系列的双核CPU N3050,它包含2 MB的cache,运行频率1.6GHz。与应用程序相匹配的是,NUC网关还包含了Intel HS显卡并提供了VGA、HDMI和eDP触屏显示屏接口,此外它还具有音频功能,有耳机/麦克风插孔和内置扬声器。
IoT网关设计需考虑哪些问题
Intel NUC设备是一个单板计算机,它可以用作一个优秀的IoT网关来连接终端节点和云。
网络吞吐量越来越大,因此NUC还具有千兆以太网接口。与前面所讨论的IIoT网关不同的是,一个典型的小型应用网关不需要各种I/O接口。尽管如此,NUC还是包含了一个PCIe插槽,并提供了一个可用的插头,可以通过它访问USB、SMBus以及电源和地。