



边缘网关和边缘服务器在很多情况下并没有严格的区分,但是本书在概念的层面还是需要做一下区分。边缘网关的作用主要是用于边缘网络和边缘设备同云端进行通信和交互,而边缘服务器则是用于边缘端的数据处理和各种边缘应用程序的执行。在很多情况下,边缘网关和边缘服务器的功能是合并在同一个设备完成的,称为边缘一体机。由ECC与绿色计算产业联盟(Green Computing Consortium,GCC)联合发布的《边缘计算IT基础设施白皮书1.0》指出,根据不同的部署位置和应用场景,边缘计算的硬件形态有所不同,常见的三种形态是边缘服务器、边缘一体机和边缘网关。
边缘网关是部署在垂直行业现场的接入设备,主要实现网络接入、协议转换、数据采集与分析处理。对于边缘网关的要求通常是能够连接各种工业和民用的设备,工业边缘网关需要能够支持多种类型的工业总线协议。通用型的边缘网关通常要求支持各种无线传输协议,比如蓝牙、远距离无线电(LoRa)等;除连接各种设备外,边缘网关还需要将采集到的数据实时传输到云端;能够支持4G、5G、Wi-Fi等无线通信协议及常用的MQTT消息传输协议等。总之,边缘网关的功能就是在边缘端和云端起到承上启下的作用。
边缘网关还有一个比较重要的作用是数据传输前的预处理和过滤,这对于依赖云端计算能力的边缘计算应用非常重要。在实际的应用中,我们通常要对采集的数据进行一定的过滤,去除噪声信号和无价值的数据,并且对数据做一些聚合处理,而不是全部传输到云端,避免浪费有限的云计算资源,节省成本。边缘网关的技术要求通常比传统的企业级网络设备,如企业级的交换机和路由器的技术指标要求低很多,但是对于稳定性、环境适应性和耐久性的要求却要高很多。
边缘网关不但要能够稳定传输数据,而且要能够工作在各种工况环境中,有时甚至需要长期在比较恶劣的户外环境使用,而且要求有较长的寿命,部署的网关要求能够稳定工作数年。目前有很多的物联网项目采用一些普通的嵌入式硬件,虽然刚刚部署完成后系统能够工作,但是如果经过长时间的运行,很有可能出现故障,这对整个系统的运行会造成重大的风险。
对于边缘计算场景,我们可以粗略地分为关键业务边缘计算和普通业务边缘计算。对于关键业务边缘计算,要求整个系统能够7×24小时不间断运行,同时必须保证系统运行稳定,没有严重错误。普通业务边缘计算通常不需要非常严格的可用性,但是仍然需要达到一定的标准。
下面是某型号边缘网关的硬件参数。
(1)CPU:Cortex-A8 AM335x。
(2)2×LAN:10/100Mb/s自适应。
(3)4×RS232/RS485。
(4)2×CAN。
(5)2×USB-Host。
(6)支持4G、Wi-Fi、以太网通信。
(7)内存:1×256MB DDR3。
(8)电源要求:9~30V DC,推荐12V DC。
(9)可扩展存储:32GB(TF卡)。
(10)工作温度:-40~85℃。
(11)工作湿度:5%~95%无凝露。
与传统的IT网络设备相比,这样的硬件配置在性能上其实并不高。但我们可以看到,对于工作温度、工作湿度和电源这几个方面,边缘网关的参数要求是比较苛刻的,需要在比较广泛的工作温度、工作湿度和电源范围内都能够保持正常工作。
边缘网关通常是基于物联网架构设计的工业级嵌入式软硬件一体化设备,可实现工业现场各种设备的数据采集、存储、转发、系统维护、域名管理等功能。用户可在PC、手机上通过工业互联网平台,使用浏览器或App进行数据监控和参数配置。边缘网关具备对下(自动化系统、民用设备等)的协议解析能力(通信协议,如Modbus、DL/T645、CJ/T188等;总线协议,如OPC UA、BACnet IP、KNX、PROFINET、CAN等);对上(云平台和物联网平台)的协议对接能力(如MQTT、TCP、UDP、HTTP等)及通信能力(如以太网、Wi-Fi、4G、ZigBee、蓝牙等)。
在边缘网关这个具体的分类上,由于技术门槛不高,加上巨大的市场需求,造成了厂商众多,但是真正能够提供有特色并且非常稳定的设备的厂商并不多的情况。在边缘网关领域中,尤其是在工业物联网领域中,其实最大的问题是通信协议众多,但不能进行互通,这其实是整个行业的一大痛点。传统的自动化设备商,比如西门子、通用和施耐德等,他们都有自己的一套软硬件平台解决方案,能够在一定程度上实现设备间的互联互通。但是,由于整个自动化产业的分散性,不同的国家、组织和企业都有自己的标准,通过一家企业来做统一的平台或简洁的跨协议通信其实并不现实。实际上,每家企业往往只能保证支持企业自己产品间的互联互通,无法形成一个全行业通用的跨协议工业即插即用通信标准。
在进行工业物联网和边缘计算改造时,其实很多时候都是在做协议的配置和各个系统间通信的协调和匹配,这大大降低了边缘计算系统部署的效率并增加了部署成本。如果能够在设备的互联互通上形成一个比较通用的,就像现在PC机上的USB接口技术,那么对整个边缘计算领域将会是一个巨大的推动力。
常见的边缘网络设备和边缘运算设备都可以归结到边缘服务器这一类。当然,目前并没有非常明确的分类界限,不同名称只是为了在物联网和边缘计算项目中容易描述和理解。本小节会介绍几种非常常见的边缘服务器设备,这些通用设备都非常流行,学习和使用者众多,很有可能成为未来的标准边缘设备。
1.树莓派
树莓派(Raspberry Pi,RPi)可以说是当今最流行的单片机系统了,最初是为了进行学校里的单片机编程教学设计的。其主板只有信用卡大小,但是功能齐全,可以作为一台独立的微型计算机使用。如今,树莓派由注册于英国的非营利机构“Raspberry Pi基金会”开发和管理。2012年3月,在剑桥大学任教的Eben Upton开发并正式发售号称世界上最小的台式机,又被称为卡片式计算机,外形只有信用卡大小,却具有计算机的所有基本功能,这就是Raspberry Pi的第一代产品,中文译为“树莓派”。
树莓派本身是一个超微型的PC,拥有一台计算机的所有功能及各种输入/输出接口。树莓派至今已经发布了4代,性能越来越强,每一代都分为A、B型,也有比较特殊的型号,如去掉大部分接口的树莓派Zero、去掉所有接口的树莓派计算型CM(Compute Module)、B型的增强型B+等。而A、B型的区别也只在于尺寸和接口不同,SoC基本都是一致的。
最新的树莓派4B(图2-12)采用了ARM Cortex-A72 1.5GHz 4核的SoC,内存最高可以选择8GB,支持Wi-Fi、蓝牙5.0、4K视频输出、千兆以太网卡。由于其核心运算硬件只是一个低功耗ARM SoC,所以计算性能并不突出,但是作为一个入门的边缘服务程序或边缘网关的系统,已经足够了。
图2-12 树莓派4B单片机
由于树莓派设计精巧,性价比很高,在DIY群体中有相当多的粉丝,开源项目也非常多,开发者用树莓派开发出了非常多的应用。在边缘应用中,树莓派可以作为软路由、设备控制器、简易SCADA系统、轻量级的视频处理模块等。对于普通的51单片机和MCU电路来说,树莓派在硬件层面集成了不同的输入/输出接口,而且可以安装通用的Linux系统。这样发烧友们就能够使用自己熟悉的编程语言和工具来开发各种应用,大大简化了开发的流程和使用的门槛。
虽然树莓派最初被用于编程学习和嵌入式发烧友的个人项目中,但是如今已经越来越多地被用于实际的项目中。一些主流厂商也开发了以树莓派为基础的边缘网关产品,例如,研华科技的UNO-220-P4N2(图2-13)就是基于树莓派4开发的嵌入式边缘网关产品。其加强了在工业环境下的特别设计,比如支持通过以太网口供电的方式,提供了备用电源,以确保在电源突然中断的情况下仍然可以工作,加入了硬件级的可信平台模块(TPM)安全芯片等工业边缘网关的功能。
图2-13 研华UNO-220-P4N2树莓派边缘网关
2.Arduino
Arduino是一个不同学科碰撞而产生的产品。在2005年的冬天,意大利米兰互动设计学院的师生们设计出一款控制主板,创始人Massimo Banzi是该学院的教师,他们在做一些互动设计时经常需要用到单片机或控制板来实现一些非常简单的功能,比如让LED灯按某种顺序闪烁、控制小车的行驶方向等。但是,该校的师生很难找到一款价格便宜又非常易用的微控制器产品。因此,Massimo Banzi和硬件工程师David Cuartielles一同设计并开发了这个电路板,并找来学生David Mellis编写了最初的控制程序。整个过程仅仅用了几天时间,但这个简单易用的控制板却很快流行起来,成为热销产品,订单纷至沓来。
如今,Arduino是一款便捷灵活、方便上手的开源电子原型平台。硬件和软件完全开源,提供了Arduino IDE进行简单功能的开发,任何学科和背景的人都能够非常容易地学会和使用Arduino完成一些控制程序。Arduino可以连接并接收传感器,输出各种控制信号,也可以作为简单的机器人和机械控制系统使用,甚至还可以和Adobe Flash、Processing、Max/MSP、Pure Data、VVVV等软件交互,输出互动作品。其简洁性、易用性加上完全开源的设计,使得这款电路板成为如今最流行的微型单板。图2-14所示是通用版本的Arduino开发板。
图2-14 Arduino UNO R3单片机
树莓派和Arduino都在一定程度上采用了开源协议。我们目前看到的树莓派硬件还不是开源的,主要原因是,树莓派采用的SoC是博通的BCM2835、BCM2711,这些芯片都是专门为树莓派定制的,在市场上无法采购到。这就导致了其他第三方厂家或个人实际上无法生产树莓派单片机。另外,这两款芯片的DataSheet并不公开,厂商要使用,就必须和博通签订协议才能够获得。
树莓派基金会也并不能公开所有的数据,只是部分公开了相关的DataSheet,这种情况使我们不可能通过完整的DataSheet设计一个兼容的SoC来制作第三方的树莓派产品。因此,目前如果要使用树莓派,必须从官方途径获得。Arduino虽然还不是一个功能完整的单片机系统,但是在开源的程度上非常高,所有的设计和文档都是开放的。第三方完全能够复制出一模一样的控制板而不需要支付任何费用或签订任何协议,除非第三方希望采用Arduino的商标来销售产品,才需要缴纳一定的商标使用费。
3.NVIDIA Jetson系列
NVIDIA是目前GPU领域的领导厂商,在边缘计算领域中也投入了力量进行研发和制造边缘设备,而且依托GPU上的优势,继承了CUDA核心。这样就使Jetson系列具备了其他单片机边缘网关没有的优势——能够支持机器学习或其他并行处理算法的加速,在边缘端卸载掉一定的计算任务。这种能力在现在的联邦学习、视觉识别等方面有非常重要的意义。
NVIDIA Jetson产品线有四个产品,分别是Jetson Nano、Jetson TX2、Jetson Xavier NX和Jetson AGX Xavier,性能从弱到强,CUDA数量从128个CUDA核到512个CUDA核不等。图2-15所示是Jetson AGX Xavier模组,在规格上,其配备512个NVIDIA CUDA核心和64个Tensor核心,总算力达到22TOPS (INT8)。Jetson AGX Xavier模组包含两个NVDLA 10TOPS (INT8)计算能力的深度学习加速单元、2×7通道VLIW视觉加速处理器、32GB 256位LPDDR4x显存和32GB存储,功耗则不超过40W。
图2-15 NVIDIA Jetson AGX Xavier模组
由于采用了内存和显存共享的架构,可以省去cudaMemcpy的步骤,这使得Jetson AGX Xavier可以支持高达20GB/s的数据采集速度,同时可以通过GPU和深度学习加速模块进行处理。在普通的PC或服务器上,由于PCI-E本身的速度的限制(10GB/s),肯定无法达到这样的高速数据采集和处理的吞吐量。总体来看,这是一款定位于需要一定的并行计算能力的边缘计算场景下的设备。
Jetson系列的产品都提供了开发者套件,即普通模组及加强了耐久性和能够适应苛刻工作环境的工业模组。这个不仅仅是一个发烧友级别的套件,而是可以在真正的工业环境部署的成熟产品。对于不同的场景和行业,NVIDIA公司提供了不同的软件开发套件(SDK),以支持不同行业的应用。对于企业和政府项目来说,采用这些成熟的产品和解决方案,可以大大加快智能制造、智慧城市、智能驾驶等需要高强度边缘计算能力的项目进度,以及提高实施后的质量和可维护性。
当然,其价格也不低,每块售价达到1000美元左右,超过了绝大多数边缘网关或服务器的价格。如果是以解决方案的方式进行咨询、实施和部署,通常只有政府或规模比较大的企业才能够承担。
不只是NVIDIA,市场上主流的硬件设备供应商如Intel、AMD等,都根据自身的优势推出了自己的边缘计算的组件或完整产品。这个领域随着物联网和边缘计算技术的进一步发展,会有更多差异化的产品推出。