WLAN power save

WLAN 功率协议

    802.11 STA会定期关闭射频传输并进入休眠状态, 用以增加待机时长。 休眠期间, AP会缓存单播帧, 随后通过beacon帧告诉STA这些缓存帧的存在。 唤醒后的STA使用PS-poll包或Qos空包,去取回这些缓存帧。接下来发生的事件序列如下:

1. AP立即响应PS-poll。 PS-poll帧包含association ID和duration ID,使得AP确认哪些缓存帧。

2. STA发送PS-poll信号时, PS-poll一次获取一个数据包。

3. Qos pull帧告诉AP, STA正在退出power-save状态,并取回AP缓存的数据包。

4. STA发送PM置为1的数据(或空包)使能power-save协议, AP会缓存下行单播帧并且为STA广播MPDU(MPDU: MAC Protocol Data Unit:).

5. AP通过TIM IE Beacon帧中广播缓存帧的存在。 STA有以下三种方式取回单播缓存数据:

    a. Poll:取回一个可缓冲单元, 也就是, MPDU,(A)MSDU.  不允许使用多于一个MPDU的A-MPDU响应。

    b. 使用置PM=0的上行帧完全退出power-save模式, 也称为具有不活动PS超时(ITO)的legacy-PS。

    c.  UAPSD触发器帧:最接近于modem语音呼叫。触发和delivery-enabled ACs具有可配置的服务间隔。一些数据帧发送trigger-enabled AC启动一个服务周期(如果一个尚未激活)。

    d.  AP传输一个或多个MPDU在delivery-enabled AC并在最后一个MPDU设置EOSP。最大服务周期长度,连同每个AC触发器和递送设置,在静态关联期间被配置;或者通过显式技术谈判传输动态地进行。

6.  如果相关联的STA中的任何一个处于省电状态,则在AP处对group Addressed frames进行缓冲。在TIM IE中也有广播通知,不需要任何来自STA的显式触发来传递。所有缓冲group addressed frames在DTIM Beacon 帧之后被传送到STA。

NOTE:WCN39xx uses uAPSD for certification only and does not apply uAPSD in normal operations.

MPDU: MAC Protocol Data Unit, MAC协议数据单元
MSDU: MAC Service Date Unit, MAC服务数据单元. 在无线网络安全中,MSDU是Ethernet报文,经过添加完整性校验MIC、分帧、省电模 式下报文缓存、加密、序列号赋值、CRC校验、MAC头之后成为MPDU,MPDU就是 指的经过802.11协议封装过的数据帧.

A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷。通常,当AP或STA从协议栈收到报文(MSDU)时,会打上Ethernet报文头,称之为AMSDUSubframe,而A-MSDU技术旨在将若干个A-MSDUSubframe按照802.11协议格式,封装成一个MPDU报文单元,即是A_MPDUSubframe,见下图:

A-MPDU技术是指的按照802.11协议封装后的若干个A_MPDUSubframe报文的聚合。通过一次性发送若干个MPDU,减少了发送每个802.11报文所需的PLCPPreamble、 PLCPHeader,从而提高系统吞吐量,见下图:

APSD(Automatic Power Save Delivery) WiFi联盟的WMM省电认证协议,能够加长Wi-Fi设备的电池寿命。
U-APSD(Unscheduled-Automatic Power Save Delivery)

1、TIM(traffic indication message)
    每一个Beacon的帧中都有一个TIM信息 ,它主要用来由AP通告它管辖下的哪个STA有信息现在缓存在AP中,而在TIM中包含一个Bitmap control字段,它最大是251个字节,每一位映射一个STA,当为1时表示该位对应的STA在AP的缓存中有信息。

2、DTIM(Delivery Traffic Indication Message )
   DTIM用于AP传统节电模式中,多点的应用,即由AP通过设置DTIM的间隔(缺省是一个beacon时间,100ms),根据这个间隔发送组播流量。
   这个值不会影响单播的流量传递,如果没有开启PS的用户使用组播也不会收到影响,但是会影响开启了PS的用户接收多播数据的传递,如果设置的太小,起不到节电作用,太大又可能会影响组播通讯的质量,这个过程是一个trial-error的调整过程,只能一个一个测试调整,以达到最佳,即既可以达到最佳节电效果又不影响应用。
    调整方法如下:
               1.设置DTIM为1,然后记录应用效果,作为基线
               2.然后提高间隔,使应用效果可以接受为止。
               DTIM=1表示每个beacon中都包含DTIM, DTIM=2表示每两个beacon中包含一个DTIM,以此类推。
        设置一个合适的DTIM间隔有点麻烦。

3、Beacon-Interval(信标间隔)
    这个值变大,有助于client端省电。
    这个值变小,有助于提高client端连接速度。降低了基地台的buffer frame负载。
    一般预设为100mS。
    以Beacons 封包发送SSID的速率是1Mbit/S.

4、Listen-Interval, (STA即Client接收Beacon 的周期)
    AP 广播Beacon 的周期为Beacon-Interval,STA 可以自由选择Beacon-Interval的整数倍作为自己的Listen-Interval,比如10。
    STA 每隔Listen-Interval 接收Beacon并解码其中的TIM,如果TIM 指示没有数据缓存,STA 就可以立刻转入Doze 状态,如果TIM 指示其有数据缓存,STA 就要向AP 发一个竞选控制包Poll,AP 在收到Poll 后就可以向该Poll 的源STA 发送一个为它缓存的数据包。

5、wifi电源模块源码(STATION)
    对应驱动中的pm.c文件,可以自行分析,不是很复杂;
    设置应该是在early_suspend阶段进行的,即驱动注册的early_suspend.suspend指向的函数里面。
    wma_power.c in Qcom WCN39XX

影响wlan功耗的外部因素:

1. 信号强度

1.1 连接ap的信号强度弱时,会增大TX/RX功率.

1.2 网络状况差时,会增大数据重传率, 增大功耗。(可以通过空口log判断某个帧是否是重传帧。)

猜你喜欢

转载自blog.csdn.net/h784707460/article/details/81701361
今日推荐