- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
。
在物联网(IoT)领域,设备可以使用以太网和无线网进行网络连接.
常见的低功耗WiFi设备有:可视门铃,可视猫眼,智能门锁等设备.
他们的特点是: 设备依赖锂电池供电,电池容量一般较低,对设备功耗非常敏感.
正常工作的时候,设备是处于休眠保活的低功耗状态,它可以通过两种方式唤醒设备:
通过上面介绍,我们可以知道该类设备主要的功耗消耗在于两个方面:
最理想的功耗控制方案是: 设备休眠保活时的功耗非常低,设备事件触发正常工作的频率非常低,每次唤醒工作的时间非常短.
我们可以看下面360可视门铃对功耗和续航的描述:
低功耗保活技术,实际上也就是低功耗设备在休眠的时候,设备端与IoT平台保持一个网络上的连接,这样做有两个目的:
为了降低设备端的功耗,设备端一般是设置60秒或是更加长的时间周期往IoT平台发送一个心跳包,以保持设备在线状态.
如果IoT平台超时没有收到设备端的心跳,会判定设备以及离线.
正常保活功耗图如下:
对于上面介绍的这类通过WiFi进行休眠保活的设备,在实际应用中会出现各种问题,比如:
为什么会出现这些差异?其根本原因是什么?又可以通过什么方式进行规避呢?
这里主要是跟路由器的beacon有关系,beacon是路由器定期广播的一种管理帧,它携带了关键的网络信息,比如SSID,Rates,DSPS等信息。下面是使用抓包工具抓得一个beacon帧信息 。
路由器一般是100ms广播一次,同样的,设备端的WiFi模块也会以相同的周期去接受路由器的beacon,这里有两个目的:
那为什么设备连接不同的路由器,设备端休眠保活的功耗会不一样呢? 主要原因是: 路由器的beacon包规律性存在差异 。
同一个设备,连接到同一个路由器功耗会存在差异,主要原因有:
距离与障碍物遮挡,这类问题还是比较容易被发现,但无线干扰这个就比较难定位,无线干扰主要是指同频段的电磁波干扰.
因为有干扰源的存在,路由器发出的beacon广播包,设备端可能会接收不到,所以设备端会超时接收,导致功耗变大.
如何查看环境的干扰情况呢?
下图是使用抓包工具去抓路由器 beacon 广播包的情况, FAST_EA06 是路由器名 。
通过分析抓取到的beacon包,可以知道功耗偏高问题,是当前环境干扰引起的,还是设备端自身的问题.
其它的一些问题,比如: 同时生产的一批设备,在国内没问题,在国外使用就会出现只能用几天的问题,或者是连接到某些路由器时就会出现电量消耗很快的情况 .
这类问题的原因可能会比较多,主要是跟路由器的设置有关系,比如路由器的租期时间长短,路由器ARP缓存表更新策略等 。
这里分析一下路由器ARP缓存表更新引起的功耗变大问题 。
路由器和主机都会维护一个ARP缓存表,目的是为了解析IP地址与MAC地址之间的关系.
如果设备刚连接上设备,路由器ARP缓存表上没有该设备IP和MAC地址信息,那么路由器会广播,“谁拥有这个IP地址对应的MAC地址?”,该IP的设备收到该广播后,正常应该将自己的MAC地址告知路由器.
如果设备端没有应答该路由器的ARP请求,或者是说该应答机制有问题,那么,有些路由器有可能会断开该IP的所有连接,导致的结果就是设备端与IoT的保活连接被断开 。
如果保活链路被断开了,那么设备端需要被唤醒,重新建立保活连接,这样一来,设备端的功耗就会变得很高.
如果一直没有ARP应答,那么设备可能间隔一小段时间,就会被唤醒去重新建立网络。最终的结果就是设备使用几天就没电了.
要优化嵌入式WiFi保活功耗,主要的方式有:
功耗控制是一个综合性问题,与设备结构,硬件,软件都有关系。在电池技术没有突破性进展的前提下,要想做到超时长续航,在产品功能上势必需要做一些取舍.
最后此篇关于嵌入式低功耗WiFi设备保活功耗分析的文章就讲到这里了,如果你想了解更多关于嵌入式低功耗WiFi设备保活功耗分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 卷积神经网络(CNN)通过从原始数据中自动学习层次特征表示,在图像识别任务中取得了巨大成功。虽然
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 血压的测量和预测是心脏病患者和有心脏问题的人的一个重要条件,应该保持持续的控制。在这项研究中,基
具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI人工智能 心血管疾病是最严重的死亡原因之一,每年在全世界造成严重的生命损失。持续监测血压似乎是最可行的选择
大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是 恩智浦MCX系列MCU的新品MCXN947 。 自 2015 年恩智浦和飞思卡尔合并成新恩智浦之后,关于它们各
我正在开发一个应用程序,该应用程序接受语音输入,并将该输入与 list 中的已知项目进行匹配。 list 中的每个项目都有一个别名列表,以便长标题的项目可以与较短的名称相匹配。 例如: class P
两个双模蓝牙设备连接时,必须使用EDR,不能并联使用LE。然后必须通过 EDR 链路传输 BT 低功耗 GATT 配置文件。这是我从规范中读到的内容。 但是 iOS EDR 堆栈(在没有 MFi 许可
我正在尝试为 S3 开发蓝牙 4.0 应用程序。问题是,手机的行为就像它甚至没有蓝牙 4.0。它不会发现 4.0 设备,并且无法通过 4.0 设备发现。我在手机设置和应用程序中都尝试过,使用 Broa
我正在寻找一种与 Adafruit bluefruit LE(nRF8001 芯片组)板进行交互的方法,在 Windows 桌面应用程序中使用 c#(据我所知,我无法使用 Windows.Device
我是一名优秀的程序员,十分优秀!