《CodesCode 编写:构建低功耗网络可达的物联网设备》
平衡设备限制和基础设施限制带来挑战,但也带来创新解决方案希望和机遇
建造一个以电池为动力的IOT设备是一个非常有趣的挑战。技术的进步使得IOT模块芯片可以比以往更多地执行功能。现在有一些芯片可用,大小不到一分钱,但它们配备有GPS、Wi-Fi、蜂窝连接和应用处理能力。有了这些发展,现在是创造与云连接并在所有领域解决有趣问题的小型IoT设备的好时机。
在许多应用中,IOT设备需要通过应用程序从外部进行访问,以请求执行特定任务。想象一下一个智能家居锁设备,它需要通过移动应用程序来打开和关闭门锁。或者一个资产追踪设备,在请求时必须开始记录其位置。基本思想是能够向这些设备发出命令并使其执行动作。
问题陈述
乍一看,似乎实现这一点相当简单。将IoT设备连接到网络,与服务器配对,并让它等待命令。有什么大不了的,你可能会问?要使其在低功耗电池驱动的设置中工作,还有一些障碍。
蜂窝通信对电池而言代价高昂。将设备始终连接到网络会非常快地耗尽电池。保持持续的网络连接可能会消耗大量电力,使电池的使用寿命缩短到对于大多数电池供电应用而言是不能接受的。这样的设备必须被设计成尽可能节省电力以延长其有效使用寿命。
对于由蜂窝连接引起的高功耗问题,我们可以运用首要原则思考:设备是否有必要一直保持连接到网络?在大多数情况下,设备可能不需要传输或接收任何数据,并且保持连接到网络可能是没有意义的。如果我们可以让它保持在“睡眠”模式,并定期唤醒以检查是否有任何传入的命令呢?这意味着设备仅在需要时连接到网络,从而节省电力。这是LTE-M省电模式背后的基本思想。LTE-M提供了两种省电模式:PSM和eDRX。让我们详细看看它们。
PSM模式
在PSM模式下,IoT设备可以请求进入休眠状态(RRC空闲),持续时间最长可达413天。这种模式特别适用于需要定期通过网络传输数据然后进入睡眠状态的设备。需要注意的是,在设备处于休眠状态时,设备是完全无法访问的。
这是PSM模式下设备的功耗曲线。
[图1:PSM功耗曲线]
设备在休眠状态下保持了很长时间,直到它唤醒以传输数据。此外,在设备可达的短暂寻呼窗口之后,它又返回到睡眠模式。请求更长的休眠时间可以节省更多电力,但可能需要牺牲数据传输频率。最终,根据应用需求,由开发者来决定睡眠时间和所需数据分辨率之间的理想权衡。一个智能能源计量仪每天发送一次更新可能完全没问题,但一个需要发送更频繁更新的GPS跟踪器则需要较短的休眠时间。
eDRX模式
eDRX代表“扩展不连续接收”。它与PSM模式类似,设备进入RRC空闲状态,但与PSM模式不同,在eDRX中,设备周期性地唤醒并与网络“签入”每个eDRX周期一次。
使用LTE-M的设备的最长休眠时间为43分钟。
[图2:eDRX功耗曲线]
与eDRX相比,PSM设备需要更长时间从睡眠模式唤醒并保持活动状态,因为它在接收应用数据之前必须与网络建立连接。使用eDRX时,设备只需要唤醒并监听1毫秒,而使用PSM时,设备必须唤醒、接收和传输控制消息约100至200毫秒,才能接收来自云应用的消息,这造成了100倍的差异。[1]
虽然这些电源模式对于低功耗网络物联网设备似乎很有前景,但建立一个可达设备即可在网络上发送外部消息数据包的设备仍然具有挑战性。我们将介绍在TCP、短信(SMS)和基于UDP的通信协议中遇到的挑战的细节。
通信协议的考虑因素
有各种各样的物联网通信协议可供不同类型的物联网应用使用,但在本文中,我们将将它们分为两种类型。
- 基于连接:基于TCP的MQTT,Websockets,HTTP
- 无连接:基于UDP的MQTT-SN,CoAP,LWM2M和短信(SMS)
基于连接的协议
这些通信协议要求在网络上建立一个主动连接以进行数据传输。连接是通过三次握手建立的,过程如下所示:
[图3:三次握手示意图]
请注意,要传输任何实际有效载荷数据(显示为绿色),需要发送三个网络有效载荷来回交换。这种额外开销对于数据消耗或电池寿命不是问题的系统来说可能很小,但在我们的情况下,这将消耗大量的宝贵电池资源,有时会消耗比实际有效载荷更多的数据来初始化连接。
其次,请注意图中的客户端是发起连接的一方;这是有意为之的,也是基于连接的(如TCP、MQTT等)协议在网络可达设备的应用中存在的一个重大限制,该设备需要对服务器的请求进行响应。
可以让客户端发起第一个连接并保持连接打开,但为了保持连接活动,需要在预定的时间间隔内发送保持活动的数据包,这将再次消耗大量电池电量,使这些类型的协议对于低功耗网络可达设备来说无法使用且不切实际。
[图4:基于TCP的通信协议功耗分析]
无连接协议
无连接协议不需要与服务器进行主动连接以进行数据传输。这些协议为网络可达物联网设备的应用提供了更具前景的前景。其中一些例子是MQTT-SN,CoAP和LWM2M,它们是基于UDP实现的。
这些协议轻巧且对功率和资源消耗进行了优化,有利于它们所设计用于的资源受限制平台。然而,对于这些网络,与设备网络可达性相关的一个后勤问题仍然存在。
尽管这些协议本身是无连接的,但底层网络仍然需要定期进行数据传输以保持活动NAT转换。NAT(网络地址转换)设备常用于家庭和企业网络中,它们的表项会有超时时间。如果使用无连接协议的设备保持休眠状态超过一段时间,超过NAT超时时间,相应的转换表项就会被清除,从而使原始客户端无法被网络访问。为解决这个问题,必须实施定期发送保持活动的消息或其他机制,以维护NAT转换,并确保使用无连接协议的物联网设备能够持续进行网络访问,但这会导致电池的极大损耗,不适合电池是稀缺资源的物联网设备。
结论
正如本文所探讨的,从设备约束到基础设施限制,构建一个网络可达设备在各个层面都是一个挑战。基于UDP的通信协议为低功耗网络可达设备提供了有前景的未来,因为从根本上可以通过使用私有网络并绕过NAT的方式消除上述提到的后勤挑战。随着对网络可达设备需求的兴趣越来越大,我们应该会看到专门为这些挑战提供现成解决方案的商业网络基础设施的出现。
Leave a Reply