(一)嵌入式低功耗设备介绍

在物联网(IoT)领域,设备可以使用以太网和无线网进行网络连接。

  • 以太网: 网络稳定,带宽高,延迟低,但是以太网需要拉网布线,设备安装邻活便利性能差。
  • 无线网络:安装位置灵活,便利,但是网络信号容易受到干扰,带宽和速度有限。

常见的低功耗WiFi设备有:可视门铃,可视猫眼,智能门锁等设备。

他们的特点是:设备依赖锂电池供电,电池容量一般较低,对设备功耗非常敏感。

正常工作的时候,设备是处于休眠保活的低功耗状态,它可以通过两种方式唤醒设备:

  • 通过IoT平台远程网络唤醒设备,IoT平台退出后,设备又进入到休眠保活状态
  • 设备自身事件触发设备唤醒(PIR,防拆,按键等触发),事件处理完后,设备重新进入休眠

通过上面介绍,我们可以知道该类设备主要的功耗消耗在于两个方面:

  • 设备最长时间是处于休眠保活状态,设备休眠保活功耗占比高
  • 设备事件唤醒正常工作时,一般需要进行图像等处理,消耗的功耗大

最理想的功耗控制方案是:设备休眠保活时的功耗非常低,设备事件触发正常工作的频率非常低,每次唤醒工作的时间非常短。

我们可以看下面360可视门铃对功耗和续航的描述:

(二)低功耗保活技术分析

低功耗保活技术,实际上也就是低功耗设备在休眠的时候,设备端与IoT平台保持一个网络上的连接,这样做有两个目的:

  • IoT平台可以知道设备的在线状态,并且可以远程网络唤醒设备
  • 设备端的WiFi模块是处于低功耗休眠状态,如果有事件唤醒,可以很快就建立起新的网络连接。

为了降低设备端的功耗,设备端一般是设置60秒或是更加长的时间周期往IoT平台发送一个心跳包,以保持设备在线状态。

如果IoT平台超时没有收到设备端的心跳,会判定设备以及离线。

正常保活功耗图如下:

(三)实际问题分析

对于上面介绍的这类通过WiFi进行休眠保活的设备,在实际应用中会出现各种问题,比如:

  1. 同一个设备,连接不同的路由器,其休眠保活的功耗会存在很大的差异
  2. 同一设备,连接同一路由器,在不同环境的不同时间,功耗也会存在差异
  3. 同时生产的同一批设备,在国内没问题,在国外使用就会出现只能用几天的问题

为什么会出现这些差异?其根本原因是什么?又可以通过什么方式进行规避呢?

1.同一设备,连接不同路由器功耗会有差异

这里主要是跟路由器的beacon有关系,beacon是路由器定期广播的一种管理帧,它携带了关键的网络信息,比如SSID,Rates,DSPS等信息。下面是使用抓包工具抓得一个beacon帧信息

路由器一般是100ms广播一次,同样的,设备端的WiFi模块也会以相同的周期去接受路由器的beacon,这里有两个目的:

  • 接收路由器的beacon包,以检查是否有IoT网络唤醒请求
  • 通过路由器beacon包进行时间同步

那为什么设备连接不同的路由器,设备端休眠保活的功耗会不一样呢?

主要原因是:路由器的beacon包规律性存在差异

  • 路由器本身的定时器不准,100ms的定时存在偏差,导致设备端WiFi长时间的等待接收beacon包
  • 路由器负载高的时候,可能优先进行数据传输,导致beacon包延后发送,这个时候设备端的WiFi处于等待状态,会比休眠的时候功耗高

2.同一设备,连接同一个路由器功耗也会有差异

同一个设备,连接到同一个路由器功耗会存在差异,主要原因有:

  • 路由器同信道有无线干扰
  • 路由器与设备距离远
  • 路由器与设备中间有障碍物阻挡

距离与障碍物遮挡,这类问题还是比较容易被发现,但无线干扰这个就比较难定位,无线干扰主要是指同频段的电磁波干扰。

因为有干扰源的存在,路由器发出的beacon广播包,设备端可能会接收不到,所以设备端会超时接收,导致功耗变大。

如何查看环境的干扰情况呢?

  • 使用频谱仪搜索环境信号
  • 使用WiFi魔盒查看WiFi干扰情况(只能看出大概情况)
  • 使用无线抓包工具,查看丢包情况

下图是使用抓包工具去抓路由器 beacon 广播包的情况,FAST_EA06 是路由器名

通过分析抓取到的beacon包,可以知道功耗偏高问题,是当前环境干扰引起的,还是设备端自身的问题。

3.其它问题

其它的一些问题,比如:同时生产的一批设备,在国内没问题,在国外使用就会出现只能用几天的问题,或者是连接到某些路由器时就会出现电量消耗很快的情况

这类问题的原因可能会比较多,主要是跟路由器的设置有关系,比如路由器的租期时间长短,路由器ARP缓存表更新策略等

这里分析一下路由器ARP缓存表更新引起的功耗变大问题

路由器和主机都会维护一个ARP缓存表,目的是为了解析IP地址与MAC地址之间的关系。

如果设备刚连接上设备,路由器ARP缓存表上没有该设备IP和MAC地址信息,那么路由器会广播,“谁拥有这个IP地址对应的MAC地址?”,该IP的设备收到该广播后,正常应该将自己的MAC地址告知路由器。

如果设备端没有应答该路由器的ARP请求,或者是说该应答机制有问题,那么,有些路由器有可能会断开该IP的所有连接,导致的结果就是设备端与IoT的保活连接被断开

如果保活链路被断开了,那么设备端需要被唤醒,重新建立保活连接,这样一来,设备端的功耗就会变得很高。

如果一直没有ARP应答,那么设备可能间隔一小段时间,就会被唤醒去重新建立网络。最终的结果就是设备使用几天就没电了。

(四)如何优化保活功耗

要优化嵌入式WiFi保活功耗,主要的方式有:

  • 选择干扰较少的无线频段
  • 避免物理障碍以及缩短路由器与设备间的距离
  • 增强路由器与设备端的信号强度
  • 控制路由器的负载,使其beacon包按规律稳定发送

功耗控制是一个综合性问题,与设备结构,硬件,软件都有关系。在电池技术没有突破性进展的前提下,要想做到超时长续航,在产品功能上势必需要做一些取舍。

---------------------------End---------------------------
如需获取更多内容
请关注 liwen01 公众号

嵌入式低功耗WiFi设备保活功耗分析的更多相关文章

  1. 保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事

    保护嵌入式802.11 Wi-Fi设备时需要考虑的10件事 10 things to consider when securing an embedded 802.11 Wi-Fi device 随着 ...

  2. QCA4002/QCA4004 为主流家电和消费电子产品推出低功耗Wi-Fi平台

    美国高通公司日前宣布,其子公司高通创锐讯推出全新芯片系列,这是低功耗Wi-Fi解决方案系列的一部分,可连接组成物联网的各种设备.QCA4002和QCA4004网络平台在芯片上纳入IP堆栈及完整的网络服 ...

  3. (数字IC)低功耗设计入门(一)——低功耗设计目的与功耗的类型

    低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...

  4. LwIP协议栈开发嵌入式网络的三种方法分析

    LwIP协议栈开发嵌入式网络的三种方法分析   摘要  轻量级的TCP/IP协议栈LwIP,提供了三种应用程序设计方法,且很容易被移植到多任务的操作系统中.本文结合μC/OS-II这一实时操作系统,以 ...

  5. WIFI万能钥匙协议分析

    WIFI万能钥匙协议分析 需求: 上android 市场下载任意一款,wifi万能钥匙 软件,对其进行 协议分析和逆向,达成如下结果:通过对软件的分析,完成自动化爬虫,爬wifi万能钥匙的wifi库, ...

  6. 跑PIN码破解无线网络WIFI密码的原理分析(转)

    你们家用的无线路由器安全吗?有人蹭网吗?无线路由器的漏洞在哪里?这么避免蹭网? 想要了解这些,必须要了解加密以及破解原理. 工具/原料 电脑 足够多足够好的wifi信号源 usb无线网卡(非必需) 一 ...

  7. Wifi设备接入流程

    这是硬件平台下文档结构图,详细了解戳这里具体了解这里. 什么意思呢?要想实现控制wifi设备,基本流程是: 咱自己的wifi设备----------自己的服务器(指图中的厂商服务器)-------微信 ...

  8. stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置;分析其原因并赋予解决办法

    stp域中两台switch互联接口出现两口均为root口 并且在现有stp区域中无法确定根桥设备位置:分析其原因并赋予解决办法 1.于上图描述了案例中当前组网环境的各交换机位置与stp状态情况  : ...

  9. 功耗优化之Sensor功耗分析

    功耗优化之Sensor功耗分析 一.Sensor功耗问题分类 二.Sensor功耗问题分析方法 SSC子系统引起系统无法进入AOSD问题分析: SSC子系统频繁唤醒AP问题分析方法 SSC子系统的GP ...

  10. 物联网(莹石云)WIFI一键配置原理分析(zz)

    最近打算做一款自己的无线传输模块用来实现光伏电站的数据接入,希望可以尽量简化接入流程,其中wifi密码的配置就是一个比较麻烦的事情,想到最近使用萤石摄像头时,wifi密码配置似乎很简单,他们是怎么做到 ...

随机推荐

  1. linux防火墙开放1521端口

    问题描述:使用plsql连接数据库发现TNS报错,登录服务器发现防火墙开放,如果直接关闭防火墙,所有的端口都可以连接,但是实际中可能会遇到开启防火墙的库,这时候需要开放单一端口对某一服务器或者某一网段 ...

  2. socket 到底是个啥

    哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...

  3. MQTT-发布与订阅的报文

    MQTT发布订阅流程 在MQTT发布/订阅模式中,一个客户端既可以是发布者,也可以是订阅者,也可以同时具备这两个身份.当客户端发布一条消息时,它会被发送到代理,然后代理将消息路由到该主题的所有订阅者. ...

  4. chrome Dev Tools 性能分析 performance

    chrome 的performance用来分析性能优化性能非常好用,下面以一个页面来举例 性能分析 性能分析最好使用隐私无痕模式,以保证干净的环境下,避免chrome插件对性能分析结果的影响 Perf ...

  5. Vue+echarts实现中国地图射线效果

    效果图如上 前提是安装Echarts并引入 并且配置中国地图json文件这些都在同账号另一篇博客上有说明,查看请自行移步 下展示代码 <template> <div class=&q ...

  6. 想打印k8s资源YAML结果搞懂了Client-Side & Server-Side Apply

    前言 由于查看k8s资源YAML时常看到沉长的YAML与手写的格式,相差甚远不利于阅读,经过探索官方文档,才理解什么是Client-Side & Server-Side Apply. 先看一下 ...

  7. Node + Express 后台开发 —— 上传、下载和发布

    上传.下载和发布 前面我们已经完成了数据库的增删改查,在弄一个上传图片.下载 csv,一个最简单的后台开发就已完成,最后部署即可. 上传图片 需求 需求:做一个个人简介的表单提交,有昵称.简介和头像. ...

  8. 2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大。返回这个最大结果。时间复杂度O(N),额外空间复杂度O(1)。

    2021-05-19:给定一个非负数组成的数组,长度一定大于1,想知道数组中哪两个数&的结果最大.返回这个最大结果.时间复杂度O(N),额外空间复杂度O(1). 福大大 答案2021-05-1 ...

  9. lec-1-Deep Reinforcement Learning, Decision Making, and Control

    What is RL 基于学习的决策的数学形式 从经验中学习决策和控制的方法 Why should we study this now 深度神经网络特征方法 强化学习的提升 计算能力的提升 我们还需要 ...

  10. IntelliJ IDEA上手这一篇就够了,从入门到上瘾

    前言 每次换电脑,最最最头疼的事情莫过于安装各种软件和搭建开发环境.这算是不想换电脑的一个原因吧(最主要还是穷).除非是电脑坏了开不了机或者点一下卡一下,真不想换电脑.每次换电脑都得折腾好久. 趁着这 ...