STA的两���的功耗工作模�
总的�说,STA包�有两���的功耗工作模�:
Active Mode:在这ç§�状æ€�下,WiFiçš„æ— çº¿ä¿¡å�·æŽ¥æ”¶ç”µè·¯RX始终处于打开状æ€�ï¼Œå› æ¤å�¯ä»¥åœ¨ä»»ä½•时间接收APå�‘过æ�¥çš„æ•°æ�®å¸§ã€‚
å› ä¸ºSTAçš„RXè¦�ä¿�æŒ�打开状æ€�,这ç§�模å¼�下自然功耗较大;
PS(Power Saving) Mode:这ç§�状æ€�下,STAçš„RX大多数时间ä¿�å˜å…³é—状æ€�,å�ªéœ€è¦�定时å�Œæ¥æ‰“å¼€RX并监å�¬APå�‘出的Beacon Frame,以æ¤è¾¾åˆ°å°½å�¯èƒ½èŠ‚çº¦èƒ½è€—çš„ç›®çš„ï¼›
注æ„�:å�ªæœ‰STAæ‰�有低功耗模å¼�,对于APè€Œè¨€å› ä¸ºè¦�实时的对所连接的STA设备进行状æ€�管ç�†å’ŒåŒ…转å�‘ï¼Œå› æ¤ä¸€å®šæ˜¯å¤„于Active Mode下;
连接在å�Œä¸€ä¸ªAP上的STAæ—¢å�¯ä»¥å¤„于active mode下,也å�¯ä»¥å¤„于PS mode下,AP需è¦�对æ¯�一个STA是在Active mode还是PS mode有清晰的管ç�†ï¼Œè¿™æ ·æ‰�知é�“是å�¦éœ€è¦�为æŸ�个特定的STAç¼“å˜æ•°æ�®ï¼ˆPS mode)还是直接å�‘é€�出去(Active Mode);
STA处于Active Mode:
当STA处于Active Mode的情况下,STAçš„RX会始终ä¿�æŒ�打开状æ€�ï¼Œæ¤æ—¶APå�¯ä»¥éš�时把需è¦�å�‘给这个STA的数æ�®åŒ…直接å�‘é€�ç»™STAï¼›
当STA处于Active Mode的情况下,STAå�‘APå�‘é€�的所有数æ�®åŒ…çš„MAC Header Frame Controlä¸çš„Power Management bit应ä¿�æŒ�为0ï¼›
STA进入PS低功耗模�:
当STA需è¦�进入低功耗è¿�行模å¼�的时候,STA通过设置MAC Header Frame Controlä¸çš„Power Management bit为1,æ�¥é€šçŸ¥AP自己将è¦�进入低功耗待机模å¼�ï¼›
当STA处于低功耗模��行时,其�出的所有包的Power Management bit�应该��设置为1;
当AP接收到STAå�‘出的数æ�®åŒ…çš„MAC Header Frame Controlä¸çš„Power Management bit为1,表示这个STA将会进入低功耗è¿�行模å¼�,æ¤å�ŽAP在收到å�‘给这个STA的数æ�®åŒ…时,就会把这个数æ�®åŒ…暂时缓å˜èµ·æ�¥ï¼›
STA低功耗模�的�行逻辑
AP会以固定的Beacon Interval周期(一般为100ms或者200ms)å�‘外å�‘出自己的Beacon Frame,在这个Beacon Frameä¸åŒ…å�«æœ‰TIM Field,这个Tim Field以bitmap(å�³è¿žæŽ¥åˆ°APçš„æ¯�个STA对应于其ä¸çš„一个bit)的形å¼�包å�«æœ‰AP是å�¦ä¸ºè¿™ä¸ªSTAç¼“å˜æ•°æ�®çš„æ ‡è®°ï¼›
当AP有为æŸ�个处于PS modeçš„STAç¼“å˜æ•°æ�®çš„æƒ…况下,bitmapä¸ä¸Žè¯¥STA对应的bit会被设置为1ï¼›å�¦åˆ™ä¸º0ï¼›
当æŸ�个STA进入低功耗模å¼�以å�Žï¼Œåœ¨AP收到其他(外部)设备å�‘给这个STA的包å�Žï¼Œå°±ä¼šæš‚时为这个STA缓å˜è¿™ä¸ªæ•°æ�®ï¼Œç„¶å�Žé€šè¿‡Beacon Frameçš„TIMä¿¡æ�¯ä¸çš„bitmapæ�¥é€šçŸ¥STA有缓冲数æ�®ï¼›
当STA处于低功耗模å¼�è¿�行时,STAçš„RXç»�大多数时间处于关é—状æ€�,以Listen Interval(æ¯�个STAå�¯ä»¥å�•独设置自己的listen interval,以beacon interval为å�•ä½�)为周期唤醒,ç‰å¾…接收æ�¥è‡ªAPå�‘出的Beacon Frameï¼›
Listen Interval越大,STA越�电,但是STA接收到外部数�的延迟越大;
Listen Intervalè¶Šå°�,STA接收到外部数æ�®çš„延迟越å°�ï¼Œä½†æ˜¯å› ä¸ºè¦�频ç¹�醒æ�¥ç›‘å�¬Beacon Frameï¼Œå› æ¤æ›´è€—电;
当STA处于低功耗模å¼�è¿�行时,STA按照预先设定的Listen interval周期性唤醒接收到Beacon Frame,对其ä¸çš„TIMä¿¡æ�¯è¿›è¡Œè§£æž�,了解到AP䏿œ‰è‡ªå·±çš„ç¼“å˜æ•°æ�®ï¼›
如果AP䏿²¡æœ‰è‡ªå·±çš„ç¼“å˜æ•°æ�®ï¼ŒSTAå…³é—RXç»§ç»ä¼‘çœ ï¼Œç‰å¾…Listen Intervalå�Žé‡�新唤醒检查,å��å¤�执行以上è¿�行逻辑;
如果AP䏿œ‰è‡ªå·±çš„ç¼“å˜æ•°æ�®ï¼ŒSTA会主动通过以下PS-Poll的机制æ�¥èŽ·å�–这个数æ�®ï¼›
STAå�‘APå�‘出一个PS-Poll Frame,请求APå�‘å›žè‡ªå·±çš„ç¼“å˜æ•°æ�®åŒ…ï¼›
AP收到PS-Poll Frame以å�Žï¼Œä¼šæŠŠè¿™ä¸ªSTA缓å˜çš„一个数æ�®å¸§å�‘ç»™STAï¼›
如果AP上有针对这个STA的多个数æ�®å¸§ï¼Œé‚£ä¹ˆä¼šæŠŠè¿”回的数æ�®å¸§çš„MAC Headerä¸çš„more data bit设置为1ï¼Œè¿™æ ·STA就知é�“AP上还有它的缓冲帧;然å�ŽSTA回继ç»ä»¥ä¸Šè¿‡ç¨‹ï¼Œé‡�å¤�å�‘APå�‘出PS-Poll Frame,直到把所有的数æ�®å¸§å…¨éƒ¨æŽ¥æ”¶å®Œæ¯•ï¼›
STA退出PS低功耗模�
当STA需è¦�退出低功耗è¿�行模å¼�的时候,STA通过设置MAC Header Frame Controlä¸çš„Power Management bit为0,æ�¥é€šçŸ¥AP自己将è¦�退出低功耗待机模å¼�,进入Active modeï¼›
当STA处于Active模��行时,其�出的所有包的Power Management bit�应该��设置为0;
当AP接收到STAå�‘出的数æ�®åŒ…çš„MAC Header Frame Controlä¸çš„Power Management bit为0,表示这个STA退出低功耗è¿�行模å¼�进入Active mode,æ¤å�ŽAP在收到å�‘给这个STA的数æ�®åŒ…时,就会把这个数æ�®åŒ…直接转å�‘ç»™STAï¼›
当æŸ�个STA退出PS mode时,AP会检查自己当å‰�是å�¦æœ‰ä¸ºè¿™ä¸ªSTAç¼“å˜æ•°æ�®åŒ…,如果有的è¯�就立å�³æŠŠè¿™äº›ç¼“å˜çš„æ•°æ�®å…¨éƒ¨å�‘给这个STAï¼›
�考资料
Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, 2007ï¼›