关于如何降低wifi 功耗
最近在调试wifi,以前都是基于Linux Android之下调试,要么是做的相对完善,只是了解一个大概情况,要么就是对功耗要求不高,直接用就可以了。现在用在一个非标的系统上,并且电池较小,对功耗要求挺高,于是就花了点时间看了一下802.11 协议,现在把wifi 降低功耗办法总结一下。1、在wifi 没有连接AP的时候,休眠时候可以直接给wifi 下电,唤醒重连和是否下电时间没什么差距,这种wi
最近在调试wifi,以前都是基于Linux Android之下调试,要么是做的相对完善,只是了解一个大概情况,要么就是对功耗要求不高,直接用就可以了。现在用在一个非标的系统上,并且电池较小,对功耗要求挺高,于是就花了点时间看了一下802.11 协议,现在把wifi 降低功耗办法总结一下。
1、在wifi 没有连接AP的时候,休眠时候可以直接给wifi 下电,唤醒重连和是否下电时间没什么差距,这种wifi 休眠模式最低,但是连接时间最长;
2、进入深度休眠,断开AP,但是不对wifi进行下电,这种wifi休眠模式功耗也较低,但是wifi 重新连接时间也较长;
3、不断开AP,让wifi 间歇性休眠,IEEE 802.11就设计出一种机制,让无线网卡可以定期切换至暂时休眠的状态,以节约电力的消耗,这种方式依赖Beacon 广播来实现。Beacon讯框中包含了一组名为Traffic Indication Map「流量指示图」。当使用端设备与AP连结之后,AP就赋予每一个用户端一组连结编号(Association ID),简称AID。当AP收到属于某一个AID的流量时,假设该端点恰好在休眠,就会再下一次发出Beacon时,将有缓冲资料等待领取的AID清单透过TIM传出去。用户端设备苏醒时,他自然会发现自己名列TIM的招领清单中,于是乎赶紧传一个Poll的讯息给AP,表示自己已经ready了,可以领回属于自己的资料了。此外,为了消化瞬间大量的广播,AP就做了一个规定,每隔几个TIM,就有一个DTIM(Delivery Traffic Indication Message),当DTIM的时候到了,所有用户端无论如何都必须清醒,因为AP会利用这个时间,一股脑儿的将所有广播或群播讯框倒给所有用户端,为了争取时效,用户端甚至不需要利用Poll告诉AP他已经清醒。
更多推荐
所有评论(0)