Patent Publication Number: US-8526346-B1

Title: Power save communication mechanism for wireless communication systems

Description:
BACKGROUND 
     Embodiments of the inventive subject matter generally relate to the field of wireless communication systems and, more particularly, to a power save communication mechanism for wireless communication systems. 
     Unscheduled automatic power save delivery (U-APSD) can be implemented on a wireless local area network (WLAN) device to ensure quality of service (QoS) by prioritizing traffic (e.g., voice, video, etc.) exchanged between the WLAN device and an access point. In U-APSD, a data frame transmitted from the WLAN device to the access point (an uplink data frame) is used to trigger the access point. When the access point receives the uplink data frame, the access point starts an unscheduled service period and transmits buffered downlink data frames (if available) to the WLAN device. At the end of the service period, the access point transmits an end of service period (EOSP) notification to indicate that the access point has no buffered downlink data to transmit. 
     SUMMARY 
     Various embodiments of a power save communication mechanism for wireless communication systems are disclosed. In one embodiment, it is determined, at an access point in a wireless communication system, that a plurality of wireless network devices of the wireless communication system are connected to the access point. A number of power save intervals to be implemented in each beacon interval during a power save communication mode of the wireless communication system is determined. The number of power save intervals is determined based, at least in part, on a number of wireless network devices that are connected to the access point. A trigger frame transmission sequence is determined for each of the power save intervals. The trigger frame transmission sequence indicates an order according to which the access point communicates with each of the plurality of wireless network devices connected to the access point during each of the power save intervals. A beacon frame, that comprises an indication of a duration of each of the power save intervals, is transmitted to initiate a beacon interval. In accordance with the trigger frame transmission sequence, a trigger frame is transmitted to a first wireless network device of the plurality of wireless network devices to request transmission of uplink data frames from the first wireless network device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. 
         FIG. 1  is a conceptual diagram illustrating example operations for a power saving communication mechanism implemented by an access point in a wireless network; 
         FIG. 2A  illustrates an example format of a beacon frame; 
         FIG. 2B  depicts an example format of a trigger frame; 
         FIG. 3  is a flow diagram illustrating example operations for an association process between a WLAN device and an access point; 
         FIG. 4  depicts an example sequence diagram illustrating an association process between an access point and WLAN devices; 
         FIG. 5  depicts a flow diagram illustrating example operations of an access point communicating with one or more connected WLAN devices during a power save communication mode; 
         FIG. 6  depicts the flow diagram illustrating example operations of the access point communicating with the one or more connected WLAN devices during the power save communication mode; 
         FIG. 7  depicts a flow diagram illustrating example operations of a WLAN device communicating with an access point during a power save communication mode; 
         FIG. 8  depicts the flow diagram illustrating example operations of the WLAN device communicating with the access point during a power save communication mode; 
         FIG. 9  is a sequence diagram illustrating exchange of data frames during two power save intervals; 
         FIG. 10  is a sequence diagram illustrating a retransmission time-out for a trigger frame transmitted by the access point; 
         FIG. 11  is a sequence diagram illustrating a retransmission time-out for an uplink data frame transmitted by a WLAN device; and 
         FIG. 12  is a block diagram of one embodiment of an electronic device including a power save communication mechanism 
     
    
    
     DESCRIPTION OF EMBODIMENT(S) 
     The description that follows includes exemplary systems, methods, techniques, instruction sequences, and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to data communication techniques for power conservation in a WLAN device, data communication techniques for power conservation as described below may be implemented for other wireless standards and devices, e.g., WiMAX, ZigBee®, Wireless USB devices, etc. In other instances, well-known instruction instances, protocols, structures, and techniques have not been shown in detail in order not to obfuscate the description. 
     Existing techniques for implementing APSD for power conservation on a WLAN device generally results in additional overhead and requires the access point to transmit downlink data frames in response to uplink data frames from the WLAN device. The existing techniques for implementing APSD can incur a large overhead as a result of the access point creating a service period on receiving the uplink data frame, transmitting an end of service period (EOSP) notification to indicate the end of the service period, the WLAN device transmitting an acknowledgement, and the access point retransmitting the EOSP notification if the acknowledgement is not received. The large overhead can limit the performance of the WLAN device, because the WLAN device may not achieve its maximum throughput. 
     A power save communication mechanism for efficient transmission of uplink data frames can be implemented on both the WLAN device and the access point. In some embodiments, the power save communication mechanism can be configured so that the WLAN device connected to the access point (“connected WLAN device”) transmits the uplink data frames in response to receiving a trigger frame from the access point. In one example, the connected WLAN device can buffer the uplink data frames. On receiving the trigger frame from the access point, the connected WLAN device can transmit the buffered uplink data frames to the access point. At the start of each power save interval, the connected WLAN device can enter an active power state (i.e., a normal power state or a normal power range depending on power requirements of the connected WLAN device). During each power save interval, the connected WLAN device can receive downlink data frames (if any) from the access point, and receive the trigger frame from the access point requesting transmission of the uplink data frames. The connected WLAN device can enter an inactive power state (i.e., a sleep state or a low powered state) after the WLAN device responds to the trigger frame. When multiple WLAN devices are connected to the access point, the power save communication mechanism can help ensure that each connected WLAN device is allotted time to transmit the uplink data frames. To attempt to achieve approximately uniform power consumption across the connected WLAN devices, the access point can vary a trigger frame transmission sequence across the connected WLAN devices at each power save interval. In other words, varying the order in which the connected WLAN devices receive the trigger frame and transmit the uplink data frames can help ensure that all the connected WLAN devices remain in the active power state for an approximately constant time interval and that the connected WLAN devices consume an approximately constant amount of power. The power save communication mechanism can therefore improve throughput, facilitate conservation of radio resources, and reduce power consumption. 
       FIG. 1  is a conceptual diagram illustrating example operations for a power saving communication mechanism implemented by the access point in a wireless network  100 .  FIG. 1  depicts an access point  102 , a WLAN device  110 , and a WLAN device  120 . The WLAN device  110  and the WLAN device  120  are wirelessly connected to communicate with the access point  102 . In the example shown in  FIG. 1 , the access point  102  comprises a power saving unit  104  coupled to a data communication unit  106 . The WLAN device  110  comprises a power management unit  112  coupled to a data communication unit  114 . Also, the WLAN device  120  comprises a power management unit  122  coupled to a data communication unit  124 . 
     In some implementations, at stage A, the data communication unit  106  in the access point  102  transmits a beacon frame including power save parameters. The data communication unit  106  can transmit the beacon frame at the start of each beacon interval to the WLAN devices of the network  100 . In the example of in  FIG. 1 , the WLAN devices  110  and  120  receive the beacon frame from the access point  102 . Other WLAN devices that are not connected to the access point  102  may also receive the beacon frame and determine whether to connect to the access point  102 .  FIG. 2A  illustrates an example format of a beacon frame  200 . The beacon frame  200  comprises control fields  202  and power save parameters  204 . In one example, the control fields  202  may indicate an element identifier, a frame length, a communication protocol version number, and other information describing transmission capabilities of the access point  102 . The power save parameters  204  may comprise a status field  206 , reserved fields  208 , and a power save interval field  210 . The power save parameters  204  provide information to support power saving in communications between the access point  102  and the WLAN devices  110  and  120 . In one example, the status field  206  may be a 1-bit field. A value of “0” in the status field  206  can indicate that a power save communication mode is disabled in the access point  102 , while a value of “1” in the status field  206  can indicate that the power save communication mode is enabled in the access point  102 . The reserved field  208  may be a 7-bit field reserved for future use. The power save interval field  210  may be a 1-byte (8-bit) field. The power save interval field  210  can indicate a power save interval, which is a time interval during each beacon interval when the access point  102  and the WLAN devices  110  and  120  will execute power saving operations for communication, as will be further described below. In some implementations, the power save interval may be represented in milliseconds. It should be noted, however, that in other embodiments the beacon frame  200  and the power save parameters  204  could comprise any suitable number of fields, with any suitable length (i.e., number of bits assigned to each of the fields). 
     In some embodiments, the access point  102  can divide each beacon interval into multiple power save intervals. The power save interval may be calculated so that the beacon interval is a multiple of the power save interval. For example, if the beacon interval is 200 ms, the power save interval may be set to 50 ms. Thus, in this example, each beacon interval comprises four power save intervals. In one implementation, the number of power save intervals that constitute each beacon interval can depend on the number of WLAN devices connected to the access point  102 . In the example of  FIG. 1 , two WLAN devices  110  and  120  are connected to the access point  102 . Therefore, in this example, the beacon interval can comprise two power save intervals. It is noted, however, that in other implementations, the beacon interval can constitute any suitable number of power save intervals (e.g., determined based on the amount time associated with the beacon interval). For example, if the duration of the beacon interval does not allow the number of power save intervals to be equal to the number of connected WLAN devices to the access point  102  (e.g., the beacon interval is not a multiple of the number of connected WLAN devices), the access point  102  may implement as many power save intervals as possible within the beacon interval. In these embodiments, the access point  102  can determine the maximum number of power save intervals that can be implemented within the beacon interval based on the number of connected WLAN devices, a time to transmit an uplink frame, a maximum allowable uplink frame length, a communication protocol implemented by the connected WLAN devices, etc. For example, the access point  102  may determine that there are four connected WLAN devices and that a maximum of three power save intervals can be implemented within the beacon interval. Thus, the access point  102  may implement three power save intervals within the beacon interval. As another example, if the access point  102  determines that there are ten connected WLAN devices and that a maximum of six power save intervals can be implemented within the beacon interval, the access point  102  may implement only six power save intervals within the beacon interval. In yet another embodiment, the access point  102  may vary the duration of the beacon interval so that the number of power save intervals equals the number of connected WLAN devices. In one implementation, in each power save interval of a beacon interval, the access point  102  may vary the sequence in which the access point  102  sends trigger frames to the connected WLAN devices, as will be further described below with reference to  FIG. 5  and  FIG. 9 . 
     At stage B, after transmitting the beacon frame, the data communication unit  106  determines that a downlink data frame is available for the WLAN device  110 . The data communication unit  106  may access a transmit data buffer (not shown) and determine that the downlink data frame is available for the WLAN device  110 . The data communication unit  106  transmits the downlink data frame to the WLAN device  110 . 
     At stage C, the data communication unit  106  determines that no downlink data frames are available for the WLAN device  120 . The data communication unit  106  may access the transmit data buffer and determine that the downlink data frames are not available for the WLAN device  120 . In some implementations, the data communication unit  106  may transmit a notification (e.g., a NULL data frame) to the WLAN device  120  indicating that no downlink data frames are available for the WLAN device  120 . In another implementation, the data communication unit  106  may not transmit the notification to the WLAN device  120  if the data communication unit  106  determines that there are no downlink data frames for the WLAN device  120 . 
     At stage D, during a first power save interval, the data communication unit  106  transmits a trigger frame to the WLAN device  110  to request uplink data frames from the WLAN device  110 .  FIG. 2B  depicts an example format of a trigger frame  250 . As illustrated, in one example, the trigger frame  250  comprises control fields  252 , address fields  254 , and a maximum transmission duration field  260 . The control fields  252  can indicate an element identifier, a frame length, a version number, a type of frame being transmitted, a duration for which the communication medium will be in use, etc. The address fields  254  can indicate the address of a destination WLAN device and the address of the access point. In one example, the data communication unit  102  can transmit a value of 1000 as part of the control fields  252  to indicate that the transmitted frame is a trigger frame. In some implementations, the order in which the address of the destination WLAN device and the address of the access point  102  are transmitted can indicate that the trigger frame  250  is being transmitted from the access point  102  to the WLAN device  110 . The maximum transmission duration field  264  can indicate a maximum time interval available to the WLAN device (that receives the trigger frame  250 ) for transmitting uplink data frame(s) to the access point  102  during the associated power save interval. The maximum transmission duration field  264  can indicate the maximum time interval available to the WLAN device for responding to the trigger frame  250  (e.g., transmitting an acknowledgement, transmitting a data frame or NULL data frame, etc.). The data communication unit  106  can determine the maximum transmission duration that should be allocated to the WLAN device  110  based on the number of WLAN devices connected to the access point  102 , based on the maximum length of an uplink data packet that can be transmitted by the WLAN device  110 , etc., as will be further described below. It is noted that the trigger frame  250  depicted in  FIG. 2B  is an example. In other implementations, the trigger frame  250  could comprise additional data fields or fewer data fields. The data fields may comprise any suitable number of bits. Moreover, the data communication unit  106  can transmit other suitable predefined values to indicate the transmission of the trigger frame to the WLAN devices. 
     At stage E, the data communication unit  114  in the WLAN device  110  determines that there are no available uplink data frames for the access point  102 . The data communication unit  114  can transmit a NULL data frame and set a “more bit” in the header of the NULL frame to indicate to the access point that the WLAN device  110  does not have uplink data frames. In some implementations, prior to transmitting the NULL data frame, the data communication unit  114  may determine whether the NULL data frame can be transmitted within the maximum transmission duration  260  (indicated in the trigger frame  250 ) allotted to the WLAN device  110  (as will be further described below with reference to  FIGS. 7 and 8 ). If so, the data communication unit  114  can transmit the NULL data frame to the access point  102 . Otherwise, the data communication unit  114  may not transmit any frames to the access point  102 . 
     At stage F, the power management unit  112  in the WLAN device  110  causes the WLAN device  110  to enter an inactive power state. In one example, the power management unit  112  can transmit a notification to the data communication unit  114  and to other processing components of the WLAN device  110  indicating that the WLAN device  110  should enter an inactive power state. In one example, the WLAN device  110  may enter the active power state at a next power save interval (or other predefined time interval) to receive downlink data frames from the access point  102 , to transmit uplink data frames to the access point  102 , etc. 
     At stage G, the data communication unit  106  transmits a trigger frame to the WLAN device  120  to request uplink data frames from the WLAN device  120 . Similarly as described above (with reference to stage D), the data communication unit  106  may transmit a value of 1000 as part of the control fields  252  to indicate that the transmitted frame is a trigger frame. The data communication unit  106  may also transmit the address of the destination WLAN device  120  and the address of the access point  102  in the address fields  254  to indicate that the trigger frame is being transmitted from the access point  102  to the WLAN device  120 . In the maximum transmission duration field  264 , the data communication unit  106  can indicate a maximum time interval available to the WLAN device  120  for transmitting uplink data frame(s) or for responding to the trigger frame  250 . 
     At stage H, the data communication unit  124  in the WLAN device  120  determines that an uplink data frame is available for transmission to the access point  102 . The data communication unit  124  then transmits the uplink data frame to the access point  102 . The data communication unit  124  can set a “more bit” in a header of the uplink data frame to a first value to indicate that there are no additional uplink data frames for the access point  102 . For example, the data communication unit  124  may set the “more bit” to zero (i.e., more bit=0) to indicate that there are no additional uplink data frames for the access point  102 . Alternately, the data communication unit  124  may set the “more bit” to one (i.e., more bit=1) if the data communication unit  124  determines that there are additional uplink data frames that are scheduled to be transmitted to the access point  102 . It is noted that in some implementations, prior to transmitting the uplink data frame, the data communication unit  124  may determine whether the uplink data frame(s) can be transmitted within the maximum transmission duration  260  (indicated in the trigger frame  250 ) allotted to the WLAN device  120  for uplink data transmissions. If so, the data communication unit  124  can determine a number of uplink data frames that can be transmitted within the maximum transmission duration  260  and transmit the uplink data frames to the access point  102 . Otherwise, the data communication unit  124  may transmit a NULL data frame or may not transmit any frames to the access point  102 . 
     At stage I, the power management unit  122  causes the WLAN device  120  to enter an inactive power state. In one example, the power management unit  122  can transmit a notification to the data communication unit  124  and to other processing components of the WLAN device  120  indicating that the WLAN device  120  should enter an inactive power state. The WLAN device  120  may enter the active power state at a next power save interval (or after another suitable predefined time interval) to receive downlink data frames from the access point  102 , transmit uplink data frames to the access point  102 , etc. 
     It should be noted that although  FIG. 1  describes the access point  102  transmitting available downlink data frames to all the connected WLAN devices (e.g., the WLAN devices  110  and  120 ) prior to transmitting the trigger frames, embodiments are not so limited. In some implementations, the access point  102  may transmit the trigger frame to the WLAN device  110  (at stage D) after the access point  102  transmits the downlink data frame(s) for the WLAN device  110 . Then, after the access point  102  receives the uplink data frames (or receives an indication that there are no uplink data frames) from the WLAN device  110 , the access point may transmit (if available) downlink data frames to the WLAN device  120  and may then transmit the trigger frame to the WLAN device  120 . 
       FIG. 3  is a flow diagram (“flow”)  300  illustrating example operations for an association process between a WLAN device and an access point. The flow  300  begins at block  302 . 
     At block  302 , a beacon frame including power save parameters associated with a power save communication mode is transmitted. For example, in  FIG. 1 , the data communication unit  106  in the access point  102  creates a beacon frame (e.g., the beacon frame  200  of  FIG. 2A ) comprising the power save parameters  204 . At the start of each beacon interval, the power saving unit  104  in the access point  102  can cause the data communication unit  106  and other processing components of the access point  102  to enter an active power state. The data communication unit  106  can transmit the beacon frame at the start of each beacon interval after the access point  102  enters the active power state. The flow continues at block  304 . 
     At block  304 , it is determined whether an association request frame was received from a WLAN device. In one example, a WLAN device may transmit the association request frame to the access point  102  to connect to the access point  102 , to indicate communication parameters associated with the WLAN device, etc. The association request frame may also comprise power save parameters associated with the WLAN device. It should be noted that, in some implementations, prior to transmitting the association request frame, the WLAN device that is attempting to connect to the access point  102  may transmit a probe request frame and may receive a probe response frame from the access point  102 . If it is determined that the association frame was received from the WLAN device, the flow continues at block  306 . Otherwise, the flow ends. 
     At block  306 , it is determined whether the power save parameters included in the association request frame match the power save parameters associated with the access point. For example, the power saving unit  104  may read the power save parameters included in the association request frame. The power saving unit  104  may compare the power save parameters included in the association request frame with the power save parameters associated with the access point  102 . For example, the power saving unit  104  may determine whether the power save communication mode is enabled in the access point  102  and in the WLAN device that transmitted the association request frame. If it is determined that the power save parameters included in the association request frame match the power save parameters associated with the access point, the flow continues at block  308 . Otherwise, the flow continues at block  310 . 
     At block  308 , an association response frame that indicates a successful association process is transmitted. For example, the data communication unit  106  transmits the association response frame to indicate the WLAN device that transmitted the association request frame is successfully connected to the access point  102 . The data communication unit  106  may also transmit, as part of the association response frame, a first value of a status code to indicate success of the association process. As one example, the data communication unit  106  may transmit a status code of 0x00 to indicate that the association process is successful. In other embodiments, the data communication unit  106  may transmit other suitable predefined status codes to indicate success of the association process. From block  308 , the flow ends. 
     At block  310 , an association response frame that indicates a failed association process is transmitted. For example, the data communication unit  106  transmits the association response frame to indicate the WLAN device that transmitted the association request frame is not connected to the access point  102 . The data communication unit  106  may also transmit, as part of the association response frame, a second value of the status code to indicate failure of the association process. As one example, the data communication unit  106  may transmit a status code of 0x40 to indicate that the failure of the association process. In other embodiments, the data communication unit  106  may transmit any suitable predefined status code to indicate that the failure of the association process. From block  310 , the flow ends. 
     It should be noted that, after the flow  300  ends (i.e., after the access point  102  determines that association request frame was not received, or after the access point  102  transmits the association response frame indicating success/failure of the association process), the access point  102  may transmit downlink data frames and trigger frames to connected WLAN devices (if any), as described below with reference to  FIG. 5  and  FIG. 6 . 
       FIG. 4  depicts an example sequence diagram illustrating an association process between an access point and the WLAN devices connected to the access point (“connected WLAN devices”).  FIG. 4  depicts an access point  402 , a WLAN device  404 , and a WLAN device  406 . In the example shown in  FIG. 4 , the access point  402  transmits a beacon frame  408  comprising power save parameters to the WLAN device  404  and the WLAN device  406 . The WLAN devices  404  and  406  may not be connected to the access point  402  but may receive the beacon frame  408  and may attempt to establish a connection with the access point  402 . The WLAN device  404  transmits an association request frame  410  comprising power save parameters to the access point  402 . The access point  402  transmits an acknowledgement frame  412  to indicate that the access point  402  received the association request frame  410 . The access point  402  analyses parameters associated with the association request frame  410  (e.g., compares the power save parameters transmitted by the WLAN device  404  with the power save parameters associated with the access point  402 ). Based, at least in part, on determining that the power save parameters associated with the WLAN device  404  match the power save parameters associated with the access point  402  (e.g., both have the power save communication mode enabled), the access point  402  transmits an association success frame  414 . In response to receiving the association success frame  414 , the WLAN device  404  transmits an acknowledgement frame  416 . 
     The WLAN device  406  transmits an association request frame  418  comprising power save parameters that are different from the power save parameters transmitted by the access point  402  in the beacon frame  408 . The access point  402  transmits an acknowledgement frame  420  to confirm receipt of the association request frame  418 . Based, at least in part, on determining that the power save parameters associated with the WLAN device  406  do not match the power save parameters associated with the access point  402 , the access point  402  transmits an association failed frame  422 . In response to receiving the association failed frame  422 , the WLAN device  406  transmits an acknowledgement frame  424 . In other words, the access point  402  only successfully associates with WLAN devices that have matching power save parameters as the access point  402  (e.g., both have the power save communication mode enabled). 
     Although  FIG. 3  and  FIG. 4  illustrate operations for an association process between the access point and WLAN devices, the above-described operations can also be extended to a reassociation process between the access point and the WLAN devices. For example, a WLAN device can transmit a reassociation request frame (comprising the power save parameters) to the access point. The access point can compare the power save parameters included in the reassociation request with the power save parameters associated with the access point. Accordingly, the access point can transmit a reassociation response frame to the WLAN device indicating a successful (status code=0x00) or a failed (status code=0x40) reassociation process. 
     The access point  102  can also use a reason code field to indicate a reason that the access point  102  transmits a rejection to a management frame (e.g., a disassociation request, an authentication frame, etc.) from the WLAN device. In one example, the access point  102  may transmit a reason code of 0x40 in a disassociation response frame to indicate that the WLAN device was disassociated because the power save parameters associated with the WLAN device do not match the power save parameters associated with the access point  102 . It should be noted that in other embodiments, any suitable predefined reason code might be transmitted to indicate rejection of the WLAN device because of a mismatch in power save parameters. 
       FIG. 5  and  FIG. 6  depict a flow diagram  500  illustrating example operations of an access point communicating with one or more connected WLAN device during a power save communication mode. The flow  500  begins at block  502  in  FIG. 5 . 
     At block  502 , the WLAN devices connected to the access point are determined. For example, the data communication unit  106  in the access point  102  can determine that the WLAN devices  110  and  120  are connected to the access point  102 . The data communication unit  106  may identify the connected WLAN devices based on previously exchanged association request/response frames. In some implementations, the data communication unit  106  may also access a data structure maintained by the access point  102  for the connected WLAN devices, and determine a number of connected WLAN devices, an address (e.g., a medium access control (MAC) address or other device identifier) for each connected WLAN device, etc. The flow continues at block  504 . 
     At block  504 , it is determined whether downlink data frames are available for at least one connected WLAN device. For example, the data communication unit  106  can access a transmit data buffer and determine whether downlink data frames are scheduled to be transmitted for at least one connected WLAN device. The data communication unit  106  can determine that there are no downlink data frames to be transmitted if the transmit data buffer is empty. If it is determined that downlink data frames are available for at least one connected WLAN device, the flow continues at block  506 . Otherwise, the flow continues at block  508 . 
     At block  506 , the downlink data frames are transmitted to the WLAN device(s). For example, the data communication unit  106  can transmit the downlink data frames to the WLAN device(s). The data communication unit  106  can access the transmit data buffer and/or read a header of the downlink data frame and determine that the downlink data frame should be transmitted to the WLAN device  110 . In some implementations, the data communication unit  106  may wait for a predefined time interval to receive an acknowledgement frame for the transmission of the downlink data frames. The data communication unit  106  can retransmit the downlink data frames if the WLAN device  110  does not transmit the acknowledgement frame. In other implementations, the data communication unit  106  may not require the WLAN device  110  to transmit the acknowledgement frame. After the data communication unit  106  transmits the downlink data frames to the WLAN device(s), the flow continues at block  508 . 
     At block  508 , a sequence according to which trigger frames should be transmitted (“trigger frame transmission sequence”) to the connected WLAN devices is determined. For example, the power saving unit  104  in the access point  102  can determine the trigger frame transmission sequence for the connected WLAN devices. As described above, each beacon interval can comprise multiple power save intervals. As described with reference to  FIG. 1 , the number of power save intervals that constitute the beacon interval can depend on the number of connected WLAN devices. In one implementation, the number of power save intervals can equal the number of connected WLAN devices. In another implementation, if the duration of the beacon interval does not allow the number of power save intervals to be equal to the number of connected WLAN devices, any suitable number of power save intervals may be implemented within the beacon interval. The duration of the power save interval and consequently the number of power save intervals within the beacon interval may be determined based on an uplink data frame size, a transmission time for transmitting the uplink data frame, etc. The access point  102  may also be configured to vary the length of the beacon interval to accommodate a requisite number of power save intervals. 
     During each power save interval, the access point  102  can prompt (by transmitting trigger frames) the connected WLAN devices to transmit buffered uplink data frames. All the connected WLAN devices enter an active power state at the beginning of each power save interval. The connected WLAN devices can revert back to an inactive power state after they receive the trigger frame and transmit the uplink data frames. Therefore, while one of the connected WLAN devices is transmitting uplink data frames, other connected WLAN devices remain in the active power state as they wait for the trigger frame from the access point  102 . This can result in some WLAN devices remaining in the active state (or a high-powered state) for much longer as compared to other WLAN devices. 
     To ensure that all the connected WLAN devices are in the active power state for approximately the same amount of time each beacon interval (e.g., to consume an approximately equal amount of power), the access point  102  varies the trigger frame transmission sequence at each power save interval. For example, three WLAN devices (e.g., WLAN devices A, B, and C) may be connected to the access point  102 . As described above, in one embodiment, since three WLAN devices are connected to the access point  102 , the beacon interval can comprise three power save intervals. During a first power save interval, the first trigger frame transmission sequence for the connected WLAN devices may be: (1) WLAN device A, (2) WLAN device B, and (3) WLAN device C. In other words, during the first power save interval, the access point  102  first transmits a trigger frame to, and receives uplink data frames from, the WLAN device A. The WLAN device A then enters the inactive power state. The access point  102  transmits a second trigger frame to, and receives uplink data frames from, the WLAN device B. The WLAN device B then enters the inactive power state. Lastly, the access point  102  transmits a third trigger frame to, and receives uplink data frames from, the WLAN device C. The WLAN device C then enters the inactive power state. At the start of the second power save interval, the WLAN devices A, B, and C enter the active power state. The access point  102  transmits triggers frames to, and receives uplink data frames from, the WLAN devices according to a second trigger frame transmission sequence: (1) WLAN device B, (2) WLAN device C, and (3) WLAN device A. At the start of the third power save interval, the access point  102  transmits triggers frames to, and receives uplink data frames from, the WLAN devices according to a third trigger frame transmission sequence: (1) WLAN device C, (2) WLAN device A, and (3) WLAN device B. An initial sequence according to which each connected WLAN device should be accessed may be determined based on arranging the WLAN devices in an order in which the WLAN devices connected to the access point  102 , in ascending order of the WLAN device&#39;s identifiers, in descending order of the WLAN device&#39;s identifiers, etc. The flow continues at block  510 . 
     At block  510 , a loop begins to perform a set of operations (described in blocks  512 - 526  of  FIG. 6 ) on each connected WLAN device. The flow continues at block  512  in  FIG. 6 . 
     At block  512  in  FIG. 6 , a trigger frame is transmitted to one of the connected WLAN devices during the first power save interval. For example, the data communication unit  106  transmits the trigger frame to the WLAN device  110 . The data communication unit  106  can determine the WLAN device to which to trigger frame should be transmitted based on the trigger frame transmission sequence (determined at block  508 ) for the first power save interval. The trigger frame serves as an indication, to the WLAN device  110 , that the WLAN device  110  may begin transmitting uplink data frames (if any) to the access point  102 . As depicted in  FIG. 2B , the trigger frame  250  can indicate a maximum transmission duration that is allotted to the WLAN device  110  for transmitting the uplink data frames. As one example, the data communication unit  106  can determine the maximum transmission duration based on a number of WLAN devices connected to the access point  102  and based on the power save interval. For example, if the power save interval is 50 msec and two WLAN devices are connected to the access point  102 , the data communication unit  106  may determine that each WLAN device should be allotted a maximum transmission duration of 25 msec. As another example, the data communication unit  106  can determine the maximum transmission duration based on a maximum length of an uplink data frame that can be transmitted by the WLAN device  110 . The WLAN device  110  may communicate the maximum length of the uplink data frame during an association process, or during another communication. As another example, the data communication unit  106  may determine the maximum transmission duration based on knowledge of a communication protocol implemented by the WLAN device  110 . For example, based on knowledge that the WLAN device  110  implements a TCP/IP protocol, the data communication unit  106  can determine that the size of the uplink data frame cannot exceed a predefined number of bytes (e.g., 1500 bytes). Accordingly, in this example, the data communication unit  106  can calculate the maximum transmission duration so that the WLAN device  110  can transmit at least one uplink data frame during the maximum transmission duration. The flow continues at block  514 . 
     At block  514 , it is determined whether an acknowledgement frame for the trigger frame was received from the WLAN device. For example, the data communication unit  106  determines whether the acknowledgement frame was received from the WLAN device  110 . The data communication unit  106  may wait for a predefined time interval to receive the acknowledgement frame from the WLAN device  110 . If it is determined that the acknowledgement frame for the trigger frame was not received from the WLAN device, the flow continues at block  516 . Otherwise, the flow continues at block  518 . 
     At block  516 , it is determined whether the trigger frame should be retransmitted to the WLAN device. For example, the data communication unit  106  may determine whether the trigger frame should be retransmitted to the WLAN device  110 . In determining whether the trigger frame should be retransmitted to the WLAN device  110 , the data communication unit  106  may determine whether the maximum transmission duration has expired. As indicated above, the maximum transmission duration may be a predefined time interval allotted to the WLAN device  110  for responding to the trigger from the access point  102 . The data communication unit  106  may not attempt to communicate with the WLAN device  110  after the maximum transmission duration expires. In another implementation, the data communication unit  106  may retransmit the trigger frame only a specified number of times. For example, the data communication unit  106  may be configured to retransmit the trigger frame a maximum of 5 times. The data communication unit  106  may not attempt to communicate with the WLAN device  110  if the acknowledgement frame is not received after the fifth retransmission of the trigger frame. If it is determined that the trigger frame should not be retransmitted to the WLAN device, the flow continues at block  526 . Otherwise, the flow loops back to block  512  where the trigger frame is retransmitted to the WLAN device. 
     At block  518 , it is determined whether an uplink data frame is received from the WLAN device. For example, the data communication unit  106  can determine whether the uplink data frame was received from the WLAN device  110 . The flow  500  moves from block  514  to block  518  if the data communication unit  106  determines that the acknowledgement frame for the trigger frame was received. The uplink data frame may comprise information to be communicated to another WLAN device  120  connected to the access point  102 . Alternately, the uplink data frame may be a NULL data frame that indicates absence of uplink data frames from the WLAN device  110 . If it is determined that the uplink data frame was received from the WLAN device, the flow continues at block  522 . Otherwise, the flow continues at block  520 . 
     At block  520 , it is determined whether the maximum transmission duration has expired. For example, the data communication unit  106  can determine whether the maximum transmission duration has expired. As described above, the maximum transmission duration can indicate a time interval allotted to the WLAN device  110  for transmitting uplink data frames to the access point  102 . If it is determined that the maximum transmission duration has expired, the flow continues at block  526 . If it is determined that the maximum transmission duration has not expired, the flow loops back to block  518  where the data communication unit  106  waits to receive the uplink data frame from the WLAN device. 
     At block  522 , an acknowledgement is transmitted to the WLAN device for the received uplink data frame. The flow  500  moves from block  518  to block  522  on determining that the uplink data frame was received from the WLAN device  110 . For example, the data communication unit  106  transmits the acknowledgement for the received uplink data frame to the WLAN device  110 . The flow continues at block  524 . 
     At block  524 , it is determined whether all uplink data frames have been received from the WLAN device. For example, the data communication unit  106  can determine whether the WLAN device  110  will transmit additional uplink data frames. The data communication unit  106  can read a “more bit” in the header of the received uplink data frame and determine whether the WLAN device  110  will transmit additional uplink data frames. In one implementation, the “more bit” being set to “1” can indicate that the WLAN device  110  will transmit one or more additional uplink data frames to the access point  102 . The “more bit” being set to “0” can indicate that the WLAN device  110  will not transmit another uplink data frame to the access point  102 . If it is determined that all the uplink data frames have been received from the WLAN device, the flow continues at block  526 . Otherwise, the flow loops back to block  518 , where the access point waits to receive a next uplink data frame. 
     At block  526 , it is determined whether a next connected WLAN device in the trigger frame transmission sequence can be identified. The flow  500  moves from block  524  to block  526  if the data communication unit  106  determines that it has received all the uplink data frames from the WLAN device  110 . The flow  500  also moves form block  516  to block  526  if the data communication unit  106  determines that the trigger frame should not be retransmitted to the WLAN device  110 . Additionally, the flow  500  moves from block  520  to block  526  if the data communication unit  106  determines that the maximum transmission duration for receiving uplink data frames from the WLAN device  110  has expired. If it is determined that the next connected WLAN device in the trigger frame transmission sequence can be identified, the flow continues at block  510  in  FIG. 5  where the next connected WLAN device is identified and a trigger frame requesting transmission of uplink data frames is transmitted to the next connected WLAN device. If it is determined that the access point  102  has transmitted a trigger frame to the last WLAN device in the trigger frame transmission sequence, the flow continues to block  528 , where the operations for the first power save interval are completed and the second trigger frame transmission sequence associated with a second power save interval is determined. 
     At block  528 , operations for a next trigger frame transmission sequence are initiated. The operations described above beginning at block  510  are repeated for the second trigger frame transmission sequence associated with the second power save interval. As described above, the access point  102  can divide each beacon interval into multiple power save intervals and in each power save interval the access point can transmit trigger frames to WLAN devices in a different trigger frame transmission sequence. The operations described above in blocks  510  to  526  of  FIG. 5  and  FIG. 6 , which are performed during the first power save interval, are similarly performed during the second power save interval and all subsequent power save intervals of the current beacon interval. 
     In some implementations, after the data communication unit  106  in the access point  102  determines that there are no additional WLAN devices to which trigger frames should be transmitted (at block  526 ), the power saving unit  104  in the access point  102  can cause processing components of the access point  102  to enter the inactive power state. At the start of a next power save interval, the power saving unit  104  can cause the processing components of the access point  102  to enter the active power state. Additionally, the data communication unit  106  can transmit downlink data frames (if any), determine a new trigger frame transmission sequence, transmit trigger frames in accordance with the new trigger frame transmission sequence, and receive uplink data frames (if any) as was described with reference to  FIGS. 5 and 6 . 
       FIG. 7  and  FIG. 8  depict a flow diagram  700  illustrating example operations of a WLAN device communicating with an access point during a power save communication mode. The flow  700  begins at block  704  in  FIG. 7 . 
     A block  704 , it is determined whether a trigger frame was received from an access point. For example, in  FIG. 1 , the data communication unit  114  in the WLAN device  110  can determine whether the trigger frame was received from the access point  102 . The trigger frame (e.g., the trigger frame  250  of  FIG. 2B ) serves as an indication that the WLAN device  110  should begin transmitting available uplink data frames to the access point  102 . If it is determined that the trigger frame was received from the access point, the flow continues at block  706 . Otherwise, the flow ends. 
     At block  706 , a maximum transmission duration for transmitting the uplink data frames is determined from the trigger frame. For example, the data communication unit  114  can read the maximum duration field  260  in the trigger frame  250  and can determine the maximum transmission duration for transmitting the uplink data frames to the access point  102 . The access point  102  can determine the maximum transmission duration based on a number of connected WLAN devices, based on the length of the beacon interval, based on the length of the power save interval, and/or other factors (as described above with reference to  FIG. 6 ). The flow continues at block  708 . 
     At block  708 , it is determined whether uplink data frames are available for transmission to the access point. For example, the data communication unit  114  may access a transmit data buffer and determine whether uplink data frames are available for transmission to the access point  102 . If it is determined that uplink data frames are available for transmission to the access point, the flow continues at block  710 . Otherwise, the flow continues at block  712 . 
     At block  710 , it is determined whether a time to transmit the uplink data frames (“transmission time”) is greater than the maximum transmission duration. For example, the data communication unit  114  may determine whether the transmission time is greater than the maximum transmission duration for transmitting the uplink data frames. The data communication unit  114  can determine the transmission time based on knowledge of a number of uplink data frames to be transmitted, a length of the uplink data frames, a data frame transmit rate, etc. In calculating the transmission time, the data communication unit  114  may also take into consideration a time required for receiving acknowledgement frames from the access point  102 . If it is determined that the transmission time is greater than the maximum transmission duration for transmitting the uplink data frames, the flow continues at block  712 . Otherwise, the flow continues at block  718  in  FIG. 8 . 
     At block  712 , it is determined whether a time to transmit a NULL data frame is greater than the maximum transmission duration. For example, the data communication unit  114  may determine whether the time to transmit the NULL data frame is greater than the maximum transmission duration. The data communication unit  114  may determine the time to transmit the NULL data frame based on the length of the NULL data frame, a time required to receive an acknowledgement for the NULL data frame, etc. The NULL data frame may be transmitted to indicate, to the access point  102 , that the WLAN device  110  will not transmit any uplink data frames to the access point  102 . If it is determined that the time to transmit the NULL data frame is greater than the maximum transmission duration, the flow continues at block  716 . Otherwise, the flow continues at block  714 . 
     At block  714 , the NULL data frame that indicates absence of the uplink data frames is transmitted to the access point. For example, the data communication unit  114  transmits the NULL data frame to indicate that uplink data frames will not be transmitted to the access point  102 . In one example, the data communication unit  114  can transmit a first predefined value in a header of the NULL data frame to indicate that the uplink data frames will not be transmitted. For example, the data communication unit  114  can set a “more bit” in the frame control field of the header to “0” (i.e., more bit=0) to indicate the uplink data frames will not be transmitted. The data communication unit  114  may also transmit a NULL data frame if it is determined that the transmission time associated with transmitting an uplink data frame is greater than the maximum transmission duration. In some implementations, the data communication unit  114  may indicate a maximum length of the uplink data frame (or a requisite maximum transmission duration), to the access point  102 , as part of transmitting the NULL data frame. From block  714 , the flow ends. The power management unit  112  in the WLAN device  110  may cause the WLAN device  110  to enter an inactive power state after the data communication unit  114  receives an acknowledgement for the NULL data frame. 
     At block  716 , transmission of data frames to the access point is prevented. The flow  700  moves from block  712  to block  716  on determining that the time to transmit the NULL data frame and the time to transmit the uplink data frame are greater than the maximum transmission duration. In one implementation, the data communication unit  114  can prevent transmission of the data frames (e.g., uplink data frames, NULL data frame, etc.) to the access point  102 . In one implementation, if the NULL data frame cannot be transmitted, the data communication unit  114  may not transmit a notification to the access point  102  to indicate that no uplink data frames will be transmitted. It is noted, however, that in other implementations, the data communication unit  114  may send a notification (i.e., different from the NULL data frame) as long as it can be transmitted before the maximum transmission duration expires. In some implementations, on determining that no data frames should be transmitted to the access point  102 , the power management unit  112  may cause the WLAN device  110  to enter the inactive power state. In another implementation, the power management unit  112  may cause the WLAN device  110  to enter the inactive power state after the maximum transmission duration expires. From block  716 , the flow ends. 
     At block  718  in  FIG. 8 , a number of uplink data frames that can be transmitted within the maximum transmission duration is determined. The flow  700  moves from the “no” path of block  710  in  FIG. 7  to block  718  in  FIG. 8  if it is determined that the transmission time is less than the maximum transmission duration. In one implementation, the data communication unit  114  can determine the number of uplink data frames that can be transmitted within the maximum transmission duration based on knowledge of the length of the uplink data frames, a data transmission rate, the maximum transmission duration, and the time required to receive acknowledgement frames from the access point  102 . The flow continues at block  720 . 
     At block  720 , it is determined whether there exists more than one uplink data frame to be transmitted to the access point. For example, the data communication unit  114  determines whether more than one uplink data frame are scheduled to be transmitted to the access point  102 . If it is determined that more than one uplink data frame are scheduled to be transmitted to the access point, the flow continues at block  722 . Otherwise, the flow continues at block  730 . 
     At block  722 , the uplink data frame is transmitted to the access point with an indication that there exist additional uplink data frames scheduled to be transmitted. For example, the data communication unit  114  transmits the uplink data frame with the indication that the data communication unit  114  will transmit additional uplink data frames to the access point  102 . In one example, the data communication unit  114  can transmit a second predefined value in the header of the uplink data frame to indicate that additional uplink data frames are scheduled to be transmitted to the access point  102 . For example, the data communication unit  114  can set a “more bit” in a frame control field of the header to “1” (i.e., more bit=1) to indicate that additional uplink data frames will be transmitted to the access point  102 . The flow continues at block  724 . 
     At block  724 , it is determined whether an acknowledgement for the uplink data frame was received. For example, the data communication unit  114  can determine whether the acknowledgement from the uplink data frame was received from the access point  102 . The data communication unit  114  can wait for a predefined time interval to receive the acknowledgement from the access point  102 . If it is determined that acknowledgement for the uplink data frame was received, the flow continues at block  726 . Otherwise, the flow continues at block  728 . 
     At block  726 , a next uplink data frame scheduled to be transmitted to the access point is identified. For example, the data communication unit  114  identifies the next uplink data frame to be transmitted to the access point  102 . The data communication unit  114  may access the transmit data buffer and may retrieve the next uplink data frame to be transmitted to the access point  102 . The flow continues at block  720 , where it is determined whether the next uplink data frame is the last frame to be transmitted to the access point. 
     At block  728 , it is determined whether the uplink data frame should be retransmitted. For example, the data communication unit  114  can determine whether the uplink data frame should be retransmitted to the access point  102 . The flow  700  moves from block  724  to block  728  if the data communication unit  114  determines that the acknowledgement for the uplink data frame was not received from the access point  102 . For example, the data communication unit  114  may determine whether the uplink data frame can be retransmitted to the access point  102  without exceeding the maximum transmission duration. As another example, the data communication unit  114  may also determine whether a maximum number of retransmission attempts have been attempted. If it is determined that the uplink data frame cannot be retransmitted to the access point  102 , the flow continues at block  732 , where the WLAN device  110  enters the inactive power state. Otherwise, the flow continues at block  710  in  FIG. 7 , where it is determined whether the uplink data frame can be retransmitted without exceeding the maximum transmission duration. 
     At block  730 , the uplink data frame is transmitted with an indication that there are no additional uplink data frames to be transmitted. For example, the data communication unit  114  can transmit the uplink data frame with the indication that no additional uplink data frames will be transmitted to the access point  102 . The flow  700  moves from block  720  to block  730  if it determined that the uplink data frame is the last frame to be transmitted to the access point  102 . To indicate that no additional uplink data frames will be transmitted to the access point  102 , the data communication unit  114  can transmit the first predefined value in the header of the uplink data frame. For example, the data communication unit  114  can set the “more bit” in the frame control field of the header to “0” (i.e., more bit=0) to indicate the absence of additional uplink data frames. Although not depicted in  FIG. 8 , it is noted that after the data communication unit  114  transmits the uplink data frame, the data communication unit  114  may determine whether an acknowledgement frame for the uplink data frame was received from the access point  102 , similarly as described with reference to blocks  724  and  728 . The flow continues at block  732 . 
     At block  732 , the WLAN device enters the inactive power state. For example, the power management unit  112  in the WLAN device  110  may cause processing components (e.g., the data communication unit  114 ) of the WLAN device  110  to enter the inactive power state. The power management unit  112  can transmit a notification to the processing components indicating that the WLAN device  110  will enter the inactive power state (e.g., a low powered state, a sleep mode, etc.). From block  732 , the flow ends. 
     It is noted that although not depicted in  FIG. 7 , the power management unit  114  in the WLAN device  110  can cause processing components of the WLAN device  110  (e.g., the data communication unit  114 ) to enter the active power state at the beginning of a power save interval. In some embodiments, the data communication unit  114  can receive downlink data frames (if any) from the access point  102 . The data communication unit  114  can also receive the trigger frame (at block  702 ) in accordance with a trigger frame transmission sequence, after the access point  102  transmits all its buffered downlink data frames. 
       FIG. 9  is a sequence diagram illustrating exchange of data frames during two power save intervals.  FIG. 9  depicts an access point  902  and two WLAN devices—a WLAN device  904  and a WLAN device  906 . The access point  902  transmits a beacon frame  908  to the WLAN devices  904  and  906 . The beacon frame  908  can comprise power save parameters that indicate whether a power save communication mode is enabled, a power save interval, etc. as described with reference to  FIG. 2A . At the start of a first power save interval  980 , the access point  902  transmits downlink data frame(s)  910  to the WLAN device  904 . The access point  902  also transmits downlink data frame(s)  912  to the WLAN device  906 . The downlink data frames  910  and  912  transmitted to the WLAN devices  904  and  906 , respectively, may be buffered data frames received from other connected WLAN devices, other access points, management and control frames from the access point  902 , etc. After the access point  902  transmits the downlink data frames to the WLAN devices  904  and  906 , the access point  902  transmits a trigger frame  914  to the WLAN device  904 . The WLAN device  904  transmits an acknowledgement frame  916  to indicate that the WLAN device  904  received the trigger frame  914 . The WLAN device  904  transmits, to the access point  902 , an uplink data frame  918  with a “more bit” (MB) set to zero (MB=0) to indicate that the WLAN device  904  will not transmit additional uplink data frames to the access point  902 . The access point  902  transmits an acknowledgement frame  920  to indicate that the access point  902  received the uplink data frame  918  from the WLAN device  904 . After the WLAN device  904  receives the acknowledgement frame  920 , the WLAN device  904  enters the inactive power state as depicted by the arrow  922 . The access point  902  then transmits a trigger frame  924  to the WLAN device  906 . The WLAN device  906  transmits an acknowledgement frame  926  to indicate that the WLAN device  906  received the trigger frame  924 . The WLAN device  906  transmits, to the access point  902 , an uplink data frame  928  with MB=0 to indicate that the WLAN device  906  will not transmit additional uplink data frames to the access point  902 . The access point  902  transmits an acknowledgement frame  930  to indicate that the access point  902  received the uplink data frame  928  from the WLAN device  906 . After the WLAN device  906  receives the acknowledgement frame  930 , the WLAN device  906  enters the inactive power state as depicted by the arrow  932 . The access point  902  may also enter the inactive power state as depicted by the arrow  934 . 
     At a second power save interval  990 , the access point  902 , the WLAN device  904 , and the WLAN device  906  enter the active power state. During the second power save interval  990 , the access point  902  determines that downlink data frames are not available for the WLAN devices  904  and  906 . Therefore, the access point  902  does not transmit downlink data frames. However, in the second power save interval  990 , the access point  902  changes a trigger frame transmission sequence (as described with reference to block  508  in  FIG. 5 ). The access point  902  changes the trigger frame transmission sequence in an effort to maintain uniform power consumption across the WLAN devices  904  and  906 . As depicted in the first power save interval  980 , the access point  1002  first transmits the trigger frame  914  to the WLAN device  904  and then transmits the trigger frame  924  to the WLAN device  906 . Therefore, during the second power save interval  990 , the access point  902  first transmits the trigger frame  940  to the WLAN device  906  and then transmits the trigger frame  948  to the WLAN device  904 . 
     The access point  902  transmits the trigger frame  940  to the WLAN device  906 . The WLAN device  906  then transmits an acknowledgement frame  942  to indicate that the WLAN device  906  received the trigger frame  940 . The WLAN device  904  transmits, to the access point  902 , an uplink data frame  944  with MB=0 indicating that the WLAN device  906  will not transmit additional uplink data frames to the access point  902 . The access point  902  transmits an acknowledgement frame  946  to indicate that the access point  902  received the uplink data frame  944 . After the WLAN device  906  receives the acknowledgement frame  946 , the WLAN device  906  enters the inactive power state as depicted by the arrow  956 . The access point  902  then transmits a trigger frame  948  to the WLAN device  904  in accordance with the trigger frame transmission sequence. The WLAN device  904  transmits an acknowledgement frame  950  to indicate reception of the trigger frame  948 . The WLAN device  904  transmits an uplink data frame  952  with MB=0 to indicate that the WLAN device  904  will not transmit additional uplink data frames to the access point  902 . The access point  902  transmits an acknowledgement frame  954  in response to receiving the uplink data frame  952 . The WLAN device  904  then enters the inactive power state as depicted by the arrow  960 . Likewise, the access point  902  may also enter the inactive power state as depicted by the arrow  958 . 
       FIG. 10  is a sequence diagram illustrating a retransmission time-out for a trigger frame transmitted by an access point.  FIG. 10  depicts the access point  1002 , the WLAN device  1004 , and the WLAN device  1006 . The access point  1002  transmits a beacon frame  1008  to the WLAN devices  1004  and  1006 . The access point  1002  transmits downlink data frame(s)  1010  to the WLAN device  1004  and downlink data frame(s)  1012  to the WLAN device  1006 . After the access point  1002  transmits the downlink data frames, the access point  1002  transmits a trigger frame  1014  to the WLAN device  1004 . In the trigger frame  1014 , the access point  1002  indicates a maximum transmission duration  1040  allotted to the WLAN device  1004  for transmission of uplink data frames. Because the access point  1002  does not receive an acknowledgement for the trigger frame  1014  from the WLAN device  1004 , the access point retransmits the trigger frames as depicted by trigger frames  1014 B,  1014 C, and  1014 D. 
     After the maximum transmission duration  1040  expires, the access point  1002  transmits a trigger frame  1018  to the WLAN device  1006 . The WLAN device  1006  transmits an acknowledgement frame  1020  to indicate that the WLAN device  1006  received the trigger frame  1018 . The WLAN device  1006  transmits, to the access point  1002 , an uplink data frame  1022  with MB=1 to indicate that the WLAN device  1006  will transmit additional uplink data frames to the access point  1002 . The access point  1002  transmits an acknowledgement frame  1024  to indicate that the access point  1002  received the uplink data frame  1022  from the WLAN device  1006 . The WLAN device  1006  transmits an uplink data frame  1026  with MB=0 to indicate that the WLAN device  1006  will not transmit additional uplink data frames to the access point  1002 . The access point  1002  transmits an acknowledgement frame  1028  to indicate that the access point  1002  received the uplink data frame  1026  from the WLAN device  1006 . After the WLAN device  1006  receives the acknowledgement frame  1028 , the WLAN device  1006  enters the inactive power state as depicted by the arrow  1032 . The access point  1002  can also enter the inactive power state as depicted by the arrow  1030 . The WLAN device  1004 , however, does not enter the inactive power state because the WLAN device  1004  did not receive the trigger frame  1014  from the access point  1002 . It is noted, however, that in other implementations, the WLAN device  1004  may enter the inactive state if the WLAN device  1004  does not receive the trigger frame after a predetermined time interval (e.g., after a time interval equal to the duration of the power save interval). 
       FIG. 11  is a sequence diagram illustrating a retransmission time-out for an uplink data frame transmitted by a WLAN device.  FIG. 11  depicts the access point  1102 , the WLAN device  1104 , and the WLAN device  1106 . The access point  1102  transmits a beacon frame  1108  to the WLAN devices  1104  and  1106 . The access point  1102  transmits downlink data frames  1110  to the WLAN device  1104  and downlink data frames  1112  to the WLAN device  1106 . The access point  1102  then transmits a trigger frame  1114  to the WLAN device  1104 . In response to receiving the trigger frame  1114 , the WLAN device  1104  transmits an acknowledgement frame  1115  to the access point  1102 . The WLAN device  1104  transmits an uplink data frame  1116  with MB=0 to the access point  1102  to indicate that the WLAN device  1104  will not transmit additional uplink data frames to the access point  1102 . Because the WLAN device  1104  does not receive an acknowledgement frame from the access point  1102 , the WLAN device  1104  retransmits the uplink data frame as indicated by the uplink data frames  1116 B,  1116 C, and  1116 D. As described above, the access point  1102  allots a maximum transmission duration  1140  to the WLAN device  1104  for transmission of the uplink data frames. After the maximum transmission duration  1140  expires, the WLAN device  1104  enters the inactive power state as depicted by the arrow  1118 . 
     Also, after the maximum transmission duration  1140  allotted to the WLAN device  1104  expires, the access point  1102  transmits a trigger frame  1120  to the WLAN device  1106 . The WLAN device  1106  transmits an acknowledgement frame  1122  to indicate that the WLAN device  1106  received the trigger frame  1120 . The WLAN device  1106  transmits a NULL data frame  1124  with MB=0 to indicate that the WLAN device  1106  does not have any uplink data frames for the access point  1102 . The access point  1102  transmits an acknowledgement frame  1126  to indicate that the access point  1102  received the NULL data frame  1124  from the WLAN device  1106 . After the WLAN device  1106  receives the acknowledgement frame  1124 , the WLAN device  1106  enters the inactive power state as depicted by the arrow  1128 . The access point  1102  may also enter the inactive power state as depicted by the arrow  1130 . 
     It should be understood that  FIGS. 1-11  are examples meant to aid in understanding embodiments and should not be used to limit embodiments or limit scope of the claims. Embodiments may perform additional operations, fewer operations, operations in a different order, operations in parallel, and some operations differently. For example, although  FIG. 1  indicates the access point  102  transmitting the power save parameters as part of the beacon frame, the access point  102  and/or the WLAN devices  104  and  106  may also transmit the power save parameters in other suitable frames. For example, the access point  102  can also transmit the power save parameters in an enhanced distributed channel access (EDCA) frame, a probe response frame, an association response frame, a reassociation response frame, etc. to indicate that the access point  102  supports a power save communication mode, as described above with reference to  FIGS. 1-11  and to indicate the power save parameters to the WLAN devices  104  and  106 . Additionally, the WLAN devices  104  and  106  can transmit the power save parameters in an association request frame, a reassociation request frame, etc. to indicate that the WLAN devices support the power save communication mode and to indicate the power save parameters to the access point  102 . 
     Although  FIGS. 1 and 5  describe the access point dividing the beacon interval into multiple power save intervals based on the number of connected WLAN devices, embodiments are not so limited. In other embodiments, each beacon interval may constitute one power save interval. The trigger frame transmission sequence according to which the connected WLAN devices are accessed may be varied from one beacon interval to another to try to achieve approximately uniform power consumption across the connected WLAN devices. With reference to  FIG. 1 , during a first beacon interval, the access point  102  may first access (e.g., transmit the trigger frame to and receive uplink data frames from) the WLAN device  110 , followed by the WLAN device  120 . During a second beacon interval, the access point  102  may first access the WLAN device  120 , followed by the WLAN device  110 , and so on. 
     Although  FIGS. 5-6  depicts the access point transmitting all the buffered downlink data frames to the connected WLAN devices prior to requesting uplink data frames from each of the connected WLAN devices, embodiments are not so limited. In other embodiments, the access point may not transmit all the buffered downlink data frames prior to requesting uplink data frames from each of the connected WLAN devices. For example, the access point  102  may transmit downlink data frames to a first WLAN device  110 , transmit the trigger frame, and receive uplink data frames from the WLAN device  110 . After receiving uplink data frames, the access point  102  may then transmit downlink data frames to a second WLAN device  120 , transmit the trigger frame to and receive uplink data frames from the second WLAN device  120 , and so on. 
     It is noted that although  FIG. 1  describes the access point dividing a beacon interval into multiple power save intervals, embodiments are not so limited. For example, in some implementations, the beacon interval may not be divided into multiple power save intervals. The access point may successively request uplink data frames from each of the connected WLAN devices. Additionally, although  FIG. 1  describes the access point  102  dividing the beacon interval into power save intervals depending on the number of connected WLAN devices, embodiments are not so limited. The access point may take into consideration the amount of time required for other transmissions when determining the power save interval. For example, if the beacon interval is 200 ms, the access point may allocate 20 ms for responding to management request frames (e.g., transmitting probe responses, association responses, etc.). The access point may divide the remaining time (i.e., 180 ms) by the number of connected WLAN devices, to yield a power save interval of 45 ms. 
     Lastly, it is noted that although  FIGS. 1 ,  7 , and  8  depict the WLAN device transmitting a NULL data frame or not transmitting any data frames to the access point  102 , if it is determined that the uplink data frame cannot be transmitted within the maximum transmission duration, embodiments are not so limited. In other implementations, on determining that the uplink data frame cannot be transmitted within the maximum transmission duration, the WLAN device may fragment the uplink data frame into multiple smaller uplink data frames (if possible). The WLAN device may transmit as many fragments of the uplink data frame as can be transmitted within the maximum transmission duration. The access point  102  can buffer the received fragments of the uplink data frame and route the data frame to the appropriate destination WLAN device after all the fragments of the uplink data frame are received. 
     Embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments of the inventive subject matter may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments, whether presently described or not, since every conceivable variation is not enumerated herein. A machine-readable medium includes any mechanism for storing or transmitting information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). A machine-readable medium may be a non-transitory machine-readable storage medium, or a transitory machine-readable signal medium. A machine-readable storage medium may include, for example, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of tangible medium suitable for storing electronic instructions. A machine-readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, an electrical, optical, acoustical or other form of propagated signal (e.g., carrier waves, infrared signals, digital signals, etc.). Program code embodied on a machine-readable medium may be transmitted using any suitable medium, including, but not limited to, wireline, wireless, optical fiber cable, RF, or other communications medium. 
     Computer program code for carrying out operations of the embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through any type of network, including a local area network (LAN), a personal area network (PAN), or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
       FIG. 12  is a block diagram of one embodiment of an electronic device  1200  including a power save communication mechanism. In some implementations, the electronic device  1200  may be one of a personal computer (PC), a laptop, a netbook, a mobile phone, a personal digital assistant (PDA), or other electronic systems comprising a WLAN device. The electronic device  1200  includes a processor device  1202  (possibly including multiple processors, multiple cores, multiple nodes, and/or implementing multi-threading, etc.). The electronic device  1200  includes a memory unit  1206 . The memory unit  1206  may be system memory (e.g., one or more of cache, SRAM, DRAM, zero capacitor RAM, Twin Transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM, etc.) or any one or more of the above already described possible realizations of machine-readable media. The electronic device  1200  also includes a bus  1210  (e.g., PCI, ISA, PCI-Express, HyperTransport®, InfiniBand®, NuBus, etc.), and network interfaces  1204  that include at least one wireless network interface (e.g., a WLAN interface, a Bluetooth® interface, a WiMAX interface, a ZigBee® interface, a Wireless USB interface, etc.). 
     The electronic device  1200  also includes a WLAN device  1208 . The WLAN device  1208  comprises power management unit  1220  coupled to a data communication unit  1222 . The data communication unit  1222  implements functionality to transmit uplink data frames (if available) to an access point (not shown) in response to receiving a trigger frame from the access point, as described with reference to  FIGS. 1-11 . The power management unit  1220  implements functionality to cause processing components of the WLAN device  1208  to enter an inactive power state after the data communication unit  1222  receives and/or responds to the trigger frame from the access point. The power management unit  1220  also implements functionality to cause processing components of the WLAN device  1208  to enter an active power state at the start of each power save interval to receive downlink data frames and the trigger frame from the access point, as described with reference to  FIGS. 1-11 . It should be noted that any one of the above-described functionalities might be partially (or entirely) implemented in hardware and/or on the processor device  1202 . For example, the functionality may be implemented with an application specific integrated circuit, in logic implemented in the processor device  1202 , in a co-processor on a peripheral device or card, etc. Further, realizations may include fewer or additional components not illustrated in  FIG. 12  (e.g., additional network interfaces, peripheral devices, etc.). The processor device  1202  and the network interfaces  1204  are coupled to the bus  1210 . Although illustrated as being coupled to the bus  1210 , the memory unit  1206  may be coupled to the processor unit  1202 . 
     While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, a power save communication mechanism for wireless communication systems as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible. 
     Plural instances may be provided for components, operations, or structures described herein as a single instance. Finally, boundaries between various components, operations, and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.