# 02 | 通信技术:设备接入网络的方式有哪些? 你好,我是郭朝斌。 在上一讲的讨论中,我们得到一个结论,物联网是互联网的发展和延伸,是由设备和人作为主体共同组成的互联网。而在设备、人和信息之间搭建联系的物联网,可以分为设备层、网络层和应用层三个层面。 今天这一讲,我们先来看看物联网数据流的第一站,设备层。 物联网设备和单机设备最大的区别在哪儿呢?就在于它们**接入了网络**,所以这些设备才能将传感器采集的数据(生产信息)上传到云平台,然后根据平台对数据的分析做出反应(消费信息)。 因此,接入网络的技术,也就是通信技术,是你在做物联网设备设计时需要重点关注的。 想一想你的手机,刷票进地铁站会用到**NFC**,追剧会用到**Wi-Fi**或者**4G**,连无线耳机听音乐会用到**蓝牙**。正是因为集成了这么多的通信技术,它才可以满足你不同使用场景下的使用需求。 那么在物联网领域,我们有哪些通信技术可以选择呢?手机上使用的这些技术,可以用于其他物联网设备吗? 当然可以。除了刚才提到的这些,智能手机上已经不流行的2G、3G网络技术,在某些不需要高速率的物联网场景仍会使用到。另外,物联网行业也有一些自己专有的通信技术,比如[LoRa](https://www.semtech.com/lora/what-is-lora) 和 [SigFox](https://build.sigfox.com/sigfox)。 当然,设备接入网络不仅可以通过无线通信技术,还可以通过有线通信的方式,比如工厂中广泛应用的 **PLC** (Power Line Communication,电力载波通信)接入技术。但是,无线通信无疑是物联网应用的主流。 这一方面是因为有线技术的部署成本很高;另一方面,物联网是亿级数量设备的接入,如果每个设备都需要像古老的座机电话一样,连线接入,那么就对便利性构成了挑战,对网络中继设备来说更是灾难。 在这一讲中,我会介绍几种最重要的无线通信技术的特性。在后面的实战中,我们将基于这些特性来设计产品的通信方式。同时,我也会说一说在实践中需要关注的一些知识点。 ## 无线通信技术的4个重要参数 在学习具体的无线通信技术之前,我们得先熟悉无线通信技术的4个重要参数: 1. 频段 2. 信道 3. 信道带宽 4. 传输速率 你可以把它们作为了解和分析其他通信技术的工具,指导日后的实践。 ### 频段 我们先来看频段。无线通信当然用的是电磁波,在实际应用中,电磁波是按照频段来使用的。 频段是指电磁波频率的一个范围,对应到频谱中就像是一段一段切割开。你看“频段”这个名词,是不是很形象? ![](https://static001.geekbang.org/resource/image/0a/c0/0af3db9580eaf20523783fa0262067c0.png "整个频谱的频段分布(图片引自光通信百科)") 上面这张图展示了整个[频谱](http://news.moore.ren/industry/113320.htm)的[频段分布](http://www.c-fol.net/baike/content/3/1712.html)。图中的分段基于电磁波不同的特性,而通信技术则需要考虑不同的使用需求和管理,对无线电波做更进一步的分段。 在这个频谱图中,Wi-Fi 的频段是2.412GHz-2.484GHz。这是一个**非授权频段**,其他的通信技术也可以使用,所以在后面你会看到蓝牙技术也基本是这个频率范围。理解了这一点,也许你就能明白,为什么Wi-Fi 路由器和蓝牙耳机、键鼠,在某些情况下会相互干扰了。 有没有什么办法能解决通信干扰呢?答案是肯定的,其中一种有效的方法是基于信道的跳频技术。 ### 信道 说到这,你可能会问:信道是什么? 它是信息通过无线电波传送的具体通道介质。每种通信技术的频段会被划分、规划成多个[信道](https://en.wikipedia.org/wiki/List_of_WLAN_channels)来使用。 比如,Wi-Fi 的频段被分为14个信道(中国可用的是13个信道,信道14排除在外)。这里需要注意的是,相邻信道的频段是存在重叠的。比如,Wi-Fi 的信道 1 频段是2.401GHz~2.423GHz,信道 2 频段是2.406GHz~2.428GHz。 ### 信道带宽 信道频段的最大值和最小值之差,就是信道覆盖的范围大小,也叫信道带宽。比如,Wi-Fi 信道1 的带宽是22MHz,它是由2.423GHz减去2.401GHz得到的。 需要注意的是,22MHz是信道1的实际带宽,而它的有效带宽只有20MHz,因为其中有2MHz是**隔离频带**。隔离频带主要是起保护作用的,就像高速公路上的隔离带。 ### 传输速率 上高速公路的时候,我们会注意当前路段对车速的要求。而在选择通信技术的时候,传输速率就是我们需要关注的重要指标。它是指数据传输的快慢,单位是比特/秒(bit per second,简记为bps)。 不同的传输速率可以支撑不同的应用场景。比如,5G 峰值 20Gbps 的传输速率为移动 VR/AR 应用提供了技术可能。在4G时代,这种应用就会受到限制,我们只能在室内拖根线来感受 VR/AR 的魅力。 传输速率受很多因素的影响,比如信道带宽和频率。一般来说,带宽越大,传输速率就越大,就像路面越宽可以承载的通行车辆越多一样;频率比较高时,电磁环境相对比较干净、干扰少,传输速率会更高,就像道路更平坦自然可以通行更多车辆一样。 另外,为了提高传输速率,越来越多的提高频段利用率的技术也被开发出来并投入使用,比如**正交频分复用**。也许你对这个技术比较陌生,我再举一个更为人熟知的例子好了,**MIMO**(Multiple-Input Multiple-Output)技术,你可能在Wi-Fi路由器上或者手机宣传资料中见到过它,它是通过使用多重天线收发信号来提高传输速率的。 好了,频段、信道、信道带宽和传输速率,这4个无线通信技术的关键概念,咱们就讲完了。我再用一张图来表现它们的关系,帮你加深一下印象。 ![](https://static001.geekbang.org/resource/image/98/d1/9868d9f1c42a880d09c06053d437bdd1.jpg "无线通信技术的4个概念") 针对图中的信道个数,我补充说明一下,这里的 12 个信道只是举例。实际应用中,不同的通信技术有不同的信道个数;同一种技术,不同的版本也会对信道做不同的划分。 接下来,我们继续学习几种无线通信技术,包括Wi-Fi、BLE、2G(GPRS)、LTE-Cat1&NB-IoT。因为目前家庭和办公空间等局域网中,应用最广泛的无线通信技术就是 Wi-Fi ,所以咱们就从Wi-Fi学起吧。 ## Wi-Fi Wi-Fi 是 IEEE 802.11 无线网络标准的商品名。所以,支持 Wi-Fi 功能的设备上,都会标注 “兼容 IEEE 802.11b/g/n 2.4GHz” 之类的说明。其中,802.11b、802.11g、802.11n 就是 Wi-Fi 的不同版本。 这种版本命名方式当然不够直观,所以 Wi-Fi 联盟从2018年开始推进数字版本号,比如,Wi-Fi 5、Wi-Fi 6。我在这里放了一张[表格](https://en.wikipedia.org/wiki/Wi-Fi#Versions),展示了新旧版本号的对应关系。 ![](https://static001.geekbang.org/resource/image/9f/a6/9fcae5d803478e968f9afbdd4586b5a6.jpg) 没错,你可能也发现了,蓝牙早就这样定义版本号了。数字版本号的好处是,可以让开发人员避免使用错误版本的模组或者芯片,也方便了他们与用户沟通使用中的问题。 Wi-Fi 网络分布广泛,在家里、在办公场所,包括很多公共区域都有覆盖。所以,它自然也成了很多智能设备的选择,尤其是连接电源线、不需要关心功耗的设备,往往优先考虑 Wi-Fi。 不过,实践中有一个事情需要注意,那就是 **Wi-Fi 的配网**。 配网失败,是Wi-Fi 智能硬件被用户投诉和退货的非常重要的原因。据我了解,有厂家使用2016年的微信硬件AirKiss2.0配网,退货率达到了15%,是不是非常吓人? 之所以需要“Wi-Fi 配网绑定”这个操作流程,根本原因是,物联网设备不像手机、电脑,没有便利的信息输入手段,也没有完备的信息显示器件。因此,我们无法像在手机上一样,帮设备搜索、连接上 Wi-Fi 热点。相反,我们需要借助其他手段来完成两件事情: 1. Wi-Fi 设备需要连接上路由器(Wi-Fi热点或者AP)实现数据上传和远程控制,即获取到 Wi-Fi 热点的名称(称为 SSID)和密码。 2. 获取到 Wi-Fi 设备的 MAC 地址,或者设备生产时预存的信息,并与用户账号一起上传服务器完成绑定。 完成这两步之后,设备才可以联网使用。 ### 一键配网技术 万事开头难,当你拿到一个 Wi-Fi 智能设备时,第一件麻烦的事情就是 Wi-Fi 配网绑定,所以很多物联网平台、模组厂家就推出了**一键配网技术**(SmartConfig)。 顾名思义,一键配网技术就是你只要在手机 App 上按一个按键,就可以自动完成配网的一系列操作。 然而愿望很美好,现实却很打脸。一度覆盖市面上90% 以上 Wi-Fi 设备的一键配网技术,竟然成了导致配网失败率高的罪魁祸首。这又是为什么呢? 原来,一键配网技术的工作原理,是通过手机或 Wi-Fi 路由器发送 UDP 广播包的形式,将 Wi-Fi 的 SSID 和密码广播出去。Wi-Fi 设备在进入配网模式后,会将接收到的广播包进行解析,从而获取到 Wi-Fi 的 SSID 和密码,然后连接上路由器。同样地,Wi-Fi 设备连接上路由器后,也会广播自己的 MAC 地址,这样手机 App 就可以接收到设备的 MAC 地址完成绑定。 这个原理看着不复杂,但却有几个容易出错的地方: 1. 很多路由器不支持 UDP 广播,例如 Wi-Fi 放大器或者关闭 UDP 广播的路由器,会导致在发广播包这步就失败了。 2. 目前很多路由器已经支持 2.4GHz 和 5GHz 两个频段(Wi-Fi 4之后),这两个频段的网络是相互隔离的。手机很可能连接的是 5GHz 频段,那包含 SSID 和密码的广播包也在 5GHz 频段,而目前所有 Wi-Fi 智能设备都只支持 2.4GHz 频段,这就导致无法收到广播包。 3. 2018年之前的 Wi-Fi 产品(比如微信 AirKiss 2.0)存在广播包解析错误的问题,很可能发生解析的密码不正确的情况,导致无法连接路由器。 4. 路由器不支持局域网通信(比如路由器的访客网络),或者空间中有几个 SSID 相同的 Wi-Fi 热点,手机和 Wi-Fi 设备分别在不同的路由器下面,会导致设备即使连接上了路由器,但是手机无法获取设备信息的广播包的情况。 用户路由器或者设备的 Wi-Fi 模组引起的问题很难改变。遇到这类问题时,你可以让用户把手机热点打开,并且把热点的 SSID 和密码设置成与配网的 Wi-Fi 路由器一样的,然后拿到离路由器很远的地方,使用手机的 Wi-Fi 网络配置成功后,再回到路由器的环境下使用。 如果是 2.4GHz 和 5GHz 两个频段的问题,那么可以切换手机的 Wi-Fi 连接到 2.4GHz 的频段后再配置网络。 当然,这些操作的要求不低,很多用户很难独立完成,所以选择其他配网方式或者为一键配网的设备预备其他配网技术是一定要考虑的。小米米家的物联网平台的设备热点配网技术,就是一个值得借鉴的方式。它可以在不增加成本的情况下,保证基本 100% 的成功率。 **设备热点配网技术**是让 Wi-Fi 设备先进入 Wi-Fi AP的模式,也就是说,由设备创建出一个 Wi-Fi 热点,然后让手机连接到这个热点,接着把路由器 Wi-Fi 的SSID 和密码发送给 Wi-Fi 设备,同时手机也可以直接获取到设备的 MAC 地址。 这种方式的麻烦之处在于,你需要手动输入路由器 Wi-Fi 的密码。在苹果手机上,你还需要进入设置界面,手动选择连接智能设备的 Wi-Fi 热点。 其他 Wi-Fi 配网技术还有零配置配网、蓝牙配网、手机热点配网和路由器配网等技术方式,有兴趣的话,你可以单独再查询了解一下。[下图](https://help.aliyun.com/document_detail/97570.html)展示了各种配网技术中角色之间的关系,供你参考。 ![](https://static001.geekbang.org/resource/image/de/08/de36ca9d86a5c962d0f84c4e1dd11308.png "各种配网技术中角色之间的关系(图片引自阿里云)") ## BLE 刚才我提到,连接电源线、不需要关心功耗的设备往往优先考虑Wi-Fi,那么功耗要求严格的设备要怎么办呢? BLE是一个不错的选择。它的频段是非授权的2.400GHz-2.4835GHz,采用40个带宽2MHz的通道。 听到BLE,你也许会觉得有些陌生。其实它是**Bluetooth Low Energy**的缩写,也叫**低功耗蓝牙**,是对 Bluetooth 4.0 / 4.1 / 4.2 的统称。现在它已经成为低功耗物联网设备的首选,仅仅依靠一颗纽扣电池供电就可以工作数年。 而蓝牙 5 更是针对物联网增加了很多特性,比如 Mesh 组网、更远的通信距离、更快传输速率(BLE 4.2 的2倍)和更大数据承载量的广播包(BLE 4.2 的8倍),此外还有厘米级精度的定位功能。 除了这些,蓝牙技术还有一个优势,那就是应用实践非常广泛,是智能手机等设备的标配。因此,无论是从芯片模组的价格考虑,还是从生态的丰富度考虑,它都是电池供电的智能设备的理想选择。 虽然蓝牙 5 有许多很好的特性,但是它还在普及中,目前 BLE 仍然是主流,所以我们的目光还是先回到 BLE 身上吧。 BLE 的数据通信主要基于**广播包**和 **GATT 协议**。如果你对它们还不是很了解,在从事开发工作之前,最好先补充一下这方面的基础知识。我在这里提供了一份[资料](https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt)给你参考。 连接参数的调节对于 BLE 设备的扫描和连接等影响很大。这些参数包括广播间隔、最大连接间隔、最小连接间隔和连接监听时间等,它们都可以在设备的固件开发中进行调整。比如广播间隔会影响扫描的响应速度,也会对设备的功耗有影响,所以需要平衡功耗和响应速度的不同需求,选择一个合适的值。 如果扫描连接体验需要非常流畅迅速,你可以选择20ms的间隔,但是这会增加设备的功耗,减少待机时间;如果你能够容忍一定的扫描等待时间,那么可以选择 1-2 秒的广播间隔来降低功耗。 另外,如果你在 Android 手机上开发 BLE 相关的应用,还有两点是我想提醒你的。 一是不同品牌 Android 手机的芯片解决方案往往是不同的,它们的蓝牙协议栈实现也存在很大的差异。所以开发者需要针对不同的手机进行充分的测试,保证开发的应用在不同的手机上都可以正常运行。 二是因为基于 BLE 可以进行地理位置定位,所以从 Android 6.0 开始,进行 BLE 开发时需要请求位置权限。这一点经常被忽略,也是需要注意的。 ## 2G 在Wi-Fi流行之前,智能手机进行数据通信的主要方式是**蜂窝通信技术**,也就是我们常说的**“ x G”**。 2G是相对早期的蜂窝通信技术,你可能觉得这个词听起来都已经有些年代感了。不过,在一些传输数据量不大的场景中,采用 2G 技术的联网设备还有不少,比如路灯控制器、冷链运输监测设备等。 但是,你在新产品的设计中要尽量避免使用 2G 模组,因为 2G 的退网已经不可避免。 联通已经率先推进,移动也开始逐步实施,腾出的频段会用于发展 5G 网络通信。如果新产品仍然采用 2G 模组,未来无网可用时会非常麻烦,甚至在那之前你就会遇到很多因网络引起的产品体验问题。 ## LTE-Cat1 & NB-IoT 那么,2G 的替代选择是什么呢?从目前国内通信产业的发展看,[LTE-Cat1 和 NB-IoT](http://www.gov.cn/zhengce/zhengceku/2020-05/08/content_5509672.htm) 是你值得关注的选项。NB-IoT 模组的价格已经和 2G 模组基本持平;LTE-Cat1 的模组相比要贵一些,但是也要远低于 4G 模组的价格。 LTE-Cat1 有一个独特优势是网络覆盖,它属于 4G 网络的低速类别,可以直接使用我们国家完善的 4G 的网络设施。而NB-IoT 虽然已经发展多年,但是目前网络覆盖仍然不够理想,这也限制了这些年 NB-IoT 的广泛应用。 不过,NB-IoT 大概率会成为 5G 的重要组成部分。随着 5G 产业的发展,我相信 NB-IoT 仍然会广泛应用在低速率、广域网络的场景中。 那么,LTE-Cat1 和 NB-IoT 分别适合哪些应用场景呢?我们可以根据它们各自的特性来分析。 LTE-Cat1 的带宽是 20MHz,上行速率 5Mbps,下行速率 10Mbps。它有良好的移动特性,功耗比 NB-IoT 大些,但是低于传统的 2G/3G 设备。所以它适合可穿戴设备、ATM机、自助售货机和无人机等场景。这些场景对数据传输速率有一定要求,但是又不需要达到 4G 的水平。 NB-IoT 的带宽是 180KHz,上行速率 16.9Kbps,下行速率是 26Kbps,功耗很低。所以它不适合移动环境,但却很适合智能抄表、智能灯杆和烟感报警器等低数据速率的场景。 ![](https://static001.geekbang.org/resource/image/9f/99/9feab317fdb5yy2048dbbeeb978b0599.jpg) 我想,说到蜂窝网络,你最感兴趣的肯定是5G。不过,关于5G,值得说的东西太多了。所以今天我们先学到这里,我会在后续的加餐中跟你详细聊聊5G这个话题。 如果你对前面提到的 LoRa 和 SigFox 技术同样感兴趣,我也很乐意在加餐中跟你分享。 ## 小结 现在,我们总结、回顾一下对这一讲的重点内容。 1. 无线通信技术有 4 个重要的参数:频段、信道、带宽和传输速率。当遇到新的无线技术时,你可以把它们作为了解、分析的一个角度,进而更好地指导实践。 2. Wi-Fi 和 BLE 在移动互联网时代应用广泛,未来仍是理想的技术选择。连接电源线、不怎么关心功耗的设备往往优先考虑Wi-Fi,而依靠电池供电、比较关心功耗的设备则更加适合BLE。 3. 对于Wi-Fi 智能设备来说,Wi-Fi 配网绑定是比较麻烦的事情,所以很多物联网平台和模组厂家推出了一键配网技术。但是因为其不能保证100%的成功率,设备热点配网技术可以作为备选方案一起提供,甚至也可以作为主选方案。 4. 2G 的退网已是趋势,在实践中可以考虑 LTE-Cat1 和 NB-IoT 两种蜂窝通信技术。对于非移动的、传输数据量很小的设备可以选择 NB-IoT;传输数据量更大,又不需要达到 4G 能力的设备可以考虑模组越来越成熟的 LTE-Cat1 技术。 总之,物联网场景丰富,设备的工作环境和传输的数据量差别很大,你在应用中要合理地评估和选择通信技术。我画了一张对比图,供你参考。 当然,关于物联网的设备层,你需要了解的远远不止这些。更多核心技术,比如组网技术,等我们到了进阶篇再逐一剖析吧。 ![](https://static001.geekbang.org/resource/image/a0/19/a074bb163611636443dbdf916281f919.jpg) ## 思考题 最后,我再给你留一个思考题。 5G 技术已经逐渐走到我们的生活中,而且围绕它的应用场景,行业讨论热烈。除了高速率,我也提到过 5G 还有两个重要的特性,你还记得是什么吗?这些特性的实现原理你了解多少呢? 欢迎在留言区写下你的思考,我们一起交流学习;也欢迎你把这一讲分享给更多的朋友,一起阅读讨论。