IoT -- (九) IoT通讯技术选型与模型设计
IoT时代的无线通讯技术
“世界上最遥远的距离就是没有网络”,网络通讯是IoT的基础,常见的无线网络通讯技术有:WiFi、NFC、ZigBee、Bluetooth、WWAN(Wireless Wide Area Network,包括GPRS、3G、4G、5G等)、NB-IoT、Sub-1GHz等。它们在组网、功耗、通讯距离、安全性等方面各有差别,因此拥有不同的适用场景。WiFi、Bluetooth、WWAN是现阶段物联网的主力,占所有应用的95%以上。ZigBee主要用在全屋智能领域,NB-IoT是针对IoT设计的下一代网络。
那么如何在众多无线通讯技术中找到适合自己的呢?下面根据我的经验做一下简单总结,供大家参考。
为什么选WiFi
WiFi最大的优点是连接快速、持久、稳定,它是IoT设备端连接的首选方案,唯一需要考虑的是智能设备对WiFi覆盖范围的依赖导致smart devices的活动范围比较小,不适合随时携带和户外场景。
举例:各种智能家电可以通过WiFi被远程控制。
为什么选Bluetooth
Bluetooth最大的优点是不依赖于外部网络、便携、低功耗。只要有手机和智能设备,就能保持稳定的连接,走到哪连到哪。所以大部分运动和户外使用的设备都会优先考虑Bluetooth。它的主要不足是:不能直接连接云端,传输速度比较慢,组网能力比较弱。
举例:智能手环,共享单车的智能蓝牙锁,iBeacon定位。
为什么选WWAN
WiFi的不足是智能设备移动范围小,蓝牙的短板是设备不能直连云端和组网能力弱,而WWAN既可以随时移动,也可以随时联网,完美弥补了WiFi和Bluetooth的不足。但实际上它也存在二个短板:一是它在使用的过程中会产生费用,二是网络状况不稳定,常常遇到无网或弱网的环境。
举例:车载智能设备,*的城市公共自行车。
无线模块选型分析
前面介绍了主流的三种无线技术,下面是一些特殊场景用到的无线技术选型。
ZigBee的使用
在全屋智能(精装修智能房屋)的场景中,从交付开始,家中就已存在大量IoT设备,如果使用WiFi方案,每个设备配网会非常麻烦,并且WiFi每次做移动或修改密码,智能设备都要做相应的调整。如果使用蓝牙方案,以目前的BLE 4.2标准来说,蓝牙的组网只能一个Central连接7个外设(部分芯片会有能力扩充,因为比较少见,所以这里忽略),蓝牙组网能力弱,也满足不了需求。所以在全屋智能场景中,经常会使用ZigBee+WiFi的二合一网关。ZigBee和蓝牙一样都是近距离低功耗的通讯技术,但它相比蓝牙最大的优势就是强大的组网能力,ZigBee和WiFi的二合一网关通过ZigBee连接IoT设备,通过WiFi将数据同步到云端。
Sub-1GHz的使用
飞行器常常在没有WiFi,山上等GPRS无信号或弱网的环境中使用,而且通常有较远的飞行距离,这样WiFi、Bluetooth、ZigBee和WWAN这种单一的无线模块不能很好的解决飞行器的通讯需求,所以需要多种无线模块的组合使用。通过Bluetooth让遥控器和手机连接,通过Sub-1GHz处理长距离飞行时飞行器和遥控器的通讯,通过其他波长处理中距离或短距离飞行中的数据通信。这种组合既能满足手机操控,又能在中距离有高质量的图像数据,在远距离还能继续控制。
同样功能的设备不一定选相同的通讯模块
例如补水仪,统一的功能,都是从设备喷出水汽到皮肤,给皮肤补水,但有便携式和固定式两种,便携式体积小,便于携带,随时使用,可以选择Bluetooth;固定式功能多,可以冷热交替补水,一般在家中使用,选WiFi没错。
总结和整理
上表对前面介绍的无线通讯技术做了个总结,方便大家了解其中的差别,选到适合自己的方案。
IoT物联模型
应用侧的架构,根据接入设备的种类和数量,复杂度会相差很大,其中物联平台的架构最为复杂,例如阿里智能、微信物联、米家、百度物联这类平台级的系统。不过能做平台级物联系统的公司还很少,大部分还是针对特定设备类型或共同特征的智能设备的载体,它们的结构相对简单些,也是本文重点介绍的部分。
以智能手机、智能设备,智能云三者交互为例,主要涉及的无线通讯方式就是WiFi、WWAN、Bluetooth,其中WiFi和WWAN的场景几乎一致,Bluetooth架构多一层媒介层,本文主要介绍这三种场景。
WWAN/WiFi和Bluetooth在应用架构设计上最重要的区别是WWAN的智能设备可以直接和云端交互,而Bluetooth智能设备需要一个中转媒介,大部分时候,这个媒介指的是智能手机,偶尔也可能是其他的形态,比如蓝牙网关,或是一台装有操作系统的智能冰箱。
WWAN和WiFi物联模型的主要区别在于WWAN设备只要插上上网卡,就可以上网,而WiFi设备需要多一步配网的过程。
WWAN/WiFi物联模式
WWAN/WiFi物联模型如图1所示。
WiFi在设备初次使用时,首先需要配网操作。通过WiFi在手机和智能设备之间建立点对点连接,手机把WiFi的SSID和密码传递到智能设备,然后再断开手机与智能设备的直连,把智能设备连接的WiFi网络切换至用于连接的WiFi设备(在家的场景,通常指的是家中的路由器)。WiFi smart device在联网成功后,会向云端发送设备**的消息,此后设备端和云端就建立了一个稳定,长期的连接,保证了数据上行和命令下发。
Bluetooth物联模式
蓝牙设备一般都作为外设,和智能手机建立一对一的连接之后,通过智能手机作为媒介,间接与云端进行数据同步。通常情况,BLE 智能手机设备和智能手机的通讯非常重要(通道1),设备操控和数据同步都是通过这层连接完成的,相比之下通道2经常只是智能手机的普通API请求,用做Bluetooth 智能手机设备的数据持久层使用。
IoT模型优化
上一节介绍了WWAN/WiFi和Bluetooth的物联模型,IoT模型在设计的时候,有很多需要考虑的地方,常见的有:通道的安全、物联协议、动态化等。
通道的安全
通道安全往往是通过对连接通道认证和数据对称/非对称加密这两件事情保障的。对于安全性较高的设备,一定要在建立连接通道时,确保通道的安全性,在数据和命令上下行时,尽可能不要使用明文传输。安全通道的建立可以使用一些成熟的方案或者成熟的加密算法去实现,选择算法时要考虑到设备端的计算能力。设备端因为成本和体积,计算能力较弱,如果算法过于复杂会严重影响到设备端的处理能力和稳定性。
物联协议
物联协议是大型IoT平台必须考虑的问题,因为接入的设备类型多,很多场景需要多个设备互联互动,良好的物联协议设计可以减低设备接入的成本,提高稳定性和处理能力。现在每个物联平台都有自己的物联协议。
物联协议可以细分为通用协议和领域定制协议。通用协议可以做物联通道的兜底方案,对设备有一个统一的收口,而具体领域定制协议可以根据品类和业务深入定制行业解决方案,优化领域和领域设备的接入速度,优化业务流程和场景质量。一个优秀的领域协议需要综合平台、方案商、设备制造商多方经验才能制定,忌讳由平台制定后强推。
下面用蓝牙来举例说明一下平台的物联协议和业务协议。
微信物联的蓝牙协议要求:广播包中包含ServiceUUID:FEE7作为统一标识,FEA1为数据出口,FEA2为数据入口,把蓝牙协议扁平化形成一种请求,相应的数据模式。这是一个通道的固定,并没有涉及业务。
业务协议举例:蓝牙体重秤,协议如图3。
业务协议根据具体的通道,规定了二进制流中每一位数据的含义、数据长度、单位、大小端模式等。业务协议和智能设备具体的功能和要做的业务紧密相关。
动态化
物联平台因为接入的设备各种各样,芯片有各种不同的方案,如果要兼容多种设备和方案,就必须要求这个架构有着非常好的灵活性,而动态化可以极大提高灵活性。
客户端通过HTML5、React-Native等动态化渲染技术,解决业务层的动态化;数据协议的动态化可以在客户端或者服务端,通过动态化脚本方案实现;设备端的动态化可以考虑OTA固件升级实现。
上面只是动态化的一些具体实现方向,对于大型的物联平台,往往是通过一整套架构和模型去解决的,阿里IoT平台就有自己的一整套解决方案,因为会涉及到商业机密,这里不再详述。
总结
本文浅尝辄止地介绍了IoT方向的一些无线通信技术以及IoT模型选择的思考,欢迎大家入坑。这些方案是近年来的主流方案,而随着IoT的飞速发展,也许几年后就会出现一些杀手级的方案完全改变IoT的现状和格局。也有许多已知技术正在孕育当中,比如Bluetooth5和NB-IoT,Bluetooth5相比4.2,在组网和传输距离上有了很大提升,连接范围扩大了4倍,速度提高了2倍,无连接数据广播能力提高了8倍,同时提升了组网能力。笔者和TI,Nordic工程师有聊到过,设备厂商的5.0芯片都已经开发完成,等待生产。量产后,预计会对ZigBee有很大的冲击。
而NB-IoT的提出就是针对IoT的使用场景,其最大特色是覆盖面广,价格便宜。NB-IoT现在联盟的力量很强大,大部分芯片商、通讯商、电信运营商都参与其中,积极推进NB-IoT的公共网络建设,预计就在这一年两内NB-IoT的网络会覆盖国内很多地区,未来潜力非常值得关注。