The present disclosure relates generally to telecommunications, and specifically to low-latency wireless local area networks.
The deployment of wireless local area networks (WLANs) in the home, the office, and various public facilities is commonplace today. Such networks typically employ a wireless access point (AP) that connects a number of wireless stations (STAs) in a specific locality (e.g., home, office, public facility, etc.) to another network, such as the Internet or the like. A set of STAs can communicate with each other through a common AP in what is referred to as a basic service set (BSS). Nearby BSSs may have overlapping coverage areas and such BSSs may be referred to as overlapping BSSs or OBSSs.
For some applications, the latency of existing WLANs may be too high. For example, industrial applications involving sensors and/or robotic controls may have a need to transmit control data with very low latency. Existing media access control (MAC) protocols, however, may be optimized to maximize throughput at the expense of latency. Accordingly, control data, which may be relatively small in size, may be delayed by buffering, overhead, and other characteristics of existing MAC protocols. Further, some low-latency applications may incorporate numerous wireless stations. Existing MAC protocols may permit collisions between transmissions between different stations. As more stations are added, the number of collisions increases and results in greater latency. Accordingly, it may be desirable to provide a WLAN that supports reliable low-latency applications for numerous wireless stations.
Various aspects are provided for low-latency wireless local area networks. An access point (AP) may select, from a plurality of wireless stations associated with the AP, a wireless station for the AP to poll. Each of the plurality of wireless stations may be configured to transmit on a channel in response to being polled by the AP. The AP may transmit, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel, the polling information including a permitted duration for the wireless station to access the channel. The AP may monitor during the permitted duration for the AP to receive an uplink transmission from the wireless station on the channel, the uplink transmission from the wireless station being in response to the polling information received by the wireless station.
In an aspect, the disclosure provides a method for wireless communications. The method may include selecting, from a plurality of wireless stations associated with an access point AP, a wireless station for the AP to poll, wherein each of the plurality of wireless stations is configured to transmit on a channel in response to being polled by the AP. The method may further include transmitting, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel, the polling information including a permitted duration for the wireless station to access the channel. The method may also include monitoring the channel, during the permitted duration, for the AP to receive an uplink transmission from the wireless station, the uplink transmission from the wireless station being in response to the polling information received by the wireless station.
In an aspect, the disclosure provides a method of wireless communications. The method may include monitoring, by a wireless station, a wireless channel for a first downlink transmission from a first AP. The method may further include determining that the first downlink transmission includes polling information identifying the wireless station and a permitted duration for the wireless station to access the channel. The method may also include transmitting an uplink transmission on the wireless channel within the permitted duration based on the polling information.
In an aspect, the disclosure provides an apparatus for wireless communications. The apparatus may include a transceiver, a memory that stores instructions, and a processor communicatively coupled to the transceiver and the memory. The processor may be configured to execute the instructions to select, from a plurality of wireless stations associated with an AP, a wireless station for the AP to poll. Each of the plurality of wireless stations may be configured to transmit on a channel in response to being polled by the AP. The processor may also be configured to execute the instructions to transmit, via the transceiver, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel. The polling information may include a permitted duration for the wireless station to access the channel. The processor may also be configured to execute the instructions to monitor the channel, during the permitted duration, for the AP to receive an uplink transmission from the wireless station on the channel. The uplink transmission from the wireless station may be in response to the polling information received by the wireless station.
In an aspect, the disclosure provides another apparatus for wireless communications. The apparatus may include means for selecting, from a plurality of wireless stations associated with an AP, a wireless station for the AP to poll, wherein each of the plurality of wireless stations is configured to transmit on a channel in response to being polled by the AP. The apparatus may also include means for transmitting, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel, the polling information including a permitted duration for the wireless station to access the channel. The apparatus may further include means for monitoring the channel, during the permitted duration, for the AP to receive an uplink transmission from the wireless station, the uplink transmission from the wireless station being in response to the polling information received by the wireless station.
In an aspect, the disclosure provides a computer-readable medium storing computer executable code for wireless communications. The computer-readable medium may include code for selecting, from a plurality of wireless stations associated with an AP, a wireless station for the AP to poll, wherein each of the plurality of wireless stations is configured to transmit on a channel in response to being polled by the AP. The computer-readable medium may also include code for transmitting, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel, the polling information including a permitted duration for the wireless station to access the channel. The computer-readable medium may further include code for monitoring the channel, during the permitted duration, for the AP to receive an uplink transmission from the wireless station, the uplink transmission from the wireless station being in response to the polling information received by the wireless station.
In an aspect, the disclosure provides an apparatus for wireless communications. The apparatus may include a transceiver configured to monitor a wireless channel for a first downlink transmission from a first AP to a wireless station. The apparatus may also include a memory that stores instructions and a processor communicatively coupled to the memory. The processor may be configured to execute the instructions to determine that the first downlink transmission includes polling information identifying the wireless station and a permitted duration for the wireless station to access the wireless channel. The processor may also be configured to execute the instructions to transmit an uplink transmission on the wireless channel within the permitted duration based on the polling information.
In an aspect, the disclosure provides an apparatus for wireless communications. The apparatus may include means for monitoring, by a wireless station, a wireless channel for a first downlink transmission from a first AP. The apparatus may further include means for determining that the first downlink transmission includes polling information identifying the wireless station and a permitted duration for the wireless station to access the channel. The apparatus may also include means for transmitting an uplink transmission on the wireless channel within the permitted duration based on the polling information.
In an aspect, the disclosure provides a computer-readable medium storing computer-executable code for wireless communications. The computer-readable medium may include code for monitoring, by a wireless station, a wireless channel for a first downlink transmission from a first AP. The computer-readable medium may include code for determining that the first downlink transmission includes polling information identifying the wireless station and a permitted duration for the wireless station to access the channel. The computer-readable medium may include code for transmitting an uplink transmission on the wireless channel within the permitted duration based on the polling information.
It is understood that other aspects of apparatuses and methods will become readily apparent to those skilled in the art from the following detailed description, wherein various aspects of apparatuses and methods are shown and described by way of illustration. As will be realized, these aspects may be implemented in other and different forms and its several details are capable of modification in various other respects. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not as restrictive
Various aspects of apparatuses and methods will now be presented in the detailed description by way of example, and not by way of limitation, with reference to the accompanying drawings, wherein:
Various concepts will be described more fully hereinafter with reference to the accompanying drawings. These concepts may, however, be embodied in many different forms by those skilled in the art and should not be construed as limited to any specific structure or function presented herein. Rather, these concepts are provided so that this disclosure will be thorough and complete, and will fully convey the scope of these concepts to those skilled in the art. The detailed description may include specific details. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well known structures and components are shown in block diagram form in order to avoid obscuring the various concepts presented throughout this disclosure.
The present disclosure describes various aspects for providing a WLAN that supports low-latency applications. In an aspect, a network that supports low-latency applications may have a goal of providing wireless communications with a round-trip time of, for example, less than 2 milliseconds. For comparison, a Wi-Fi network with a single wireless station may have a round-trip time of at least 1.5 milliseconds. As the number of Wi-Fi stations grows, the number of collisions may grow quickly and further increase the round-trip time. For simplicity, a WLAN or network that supports low-latency applications may be referred to as a low-latency WLAN or a low-latency network, respectively.
The aspects provided in the present disclosure for providing a low-latency WLAN may include multiple methods that can be used to reduce or minimize latency associated with wireless communications. In one of these methods, an asynchronous media access control protocol may be used for both uplink and downlink communications over a wireless channel (e.g., a frequency band). An AP may schedule all transmissions on the channel using polling to reduce latency by avoiding collisions between transmissions from different stations. The AP may flexibly schedule transmissions of various lengths depending on the needs of the system. When transmissions are completed early, the AP may immediately schedule another transmission. Wireless stations may be configured to transmit on the channel only when polled by the AP. The AP may rapidly poll each station to allow each station to transmit data in the uplink direction. The polling message may also include downlink data, or downlink data may be sent in separate messages scheduled by the AP.
The APs (e.g., AP1105-a, AP2105-b, AP3105-c) shown in
The STAs (e.g., STA1115-a, STA2115-b, STA3115-c, and STA4115-d) shown in
In an aspect, one or more of the APs (e.g., AP1105-a) may be an authorization AP used to grant access to the low-latency WLAN. For example, an authorization AP may communicate with STAs using a traditional IEEE 802.11 (Wi-Fi) protocol on a dedicated boot-up wireless channel. An STA (e.g., STA1115-a) may access the authorization AP by performing a random access procedure on the boot-up wireless channel. The authorization AP 105-a may perform authentication and authorization procedures with the STA to ensure the STA is allowed to access the low-latency WLAN. The authorization AP 105-a may then handover the STA to a serving AP (e.g., AP2105-b, AP3105-c) for low-latency communications on a low-latency serving channel. A low-latency serving channel may be a frequency band dedicated to a low-latency MAC protocol. In an aspect, each serving AP may be configured to use a different low-latency serving channel from neighboring APs with which the coverage areas overlaps.
Each of STA1115-a, STA2115-b, STA3115-c, and STA4115-d may be implemented with a protocol stack. The protocol stack can include a physical layer for transmitting and receiving data in accordance with the physical and electrical specifications of the wireless channel, a media access control (MAC) layer for managing access to the wireless channel, a network layer for managing source to destination data transfer, a transport layer for managing transparent transfer of data between end users, and any other layers necessary or desirable for establishing or supporting a connection to a network.
Each of AP1105-a, AP2105-b, and AP3105-c can include software applications and/or circuitry to enable associated STAs to connect to a network via communication links 125. The APs can send frames to their respective STAs and receive frames from their respective STAs to communicate data and/or control information (e.g., signaling).
Each of AP1105-a, AP2105-b, and AP3105-c can establish a communication link 125 with an STA that is within the coverage area of the AP. Communication links 125 can comprise communications channels that can enable both uplink and downlink communications. When a STA has been handed over to a serving AP, the STA may be associated with the serving AP. Once associated, a communication link 125 can be established between the AP and the STA such that the AP and the associated STA can exchange frames or messages through a direct communications channel. The communication channel for each AP may be shared among any STAs associated with the AP. Neighbor APs that have overlapping coverage area with an AP may be configured to use different channels. For example, each of AP1105-a, AP2105-b, and AP3105-c may each use a different channel. In an aspect where a low-latency network includes additional APs that do not have overlapping coverage areas with AP1105-a, AP2105-b, and AP3105-c, the additional AP may reuse a channel of an AP when the respective coverage areas of the APs do not overlap.
A serving AP (e.g., AP2105-b) may provide for wireless communications. The AP2105-b may select, from a plurality of STAs 115 associated with AP2105-b, a STA 115 (e.g., STA2115-b) for the AP2105-b to poll, wherein each of the plurality of STAs is configured to transmit on a communication link 125 only when polled. AP2105-b may transmit a downlink frame including polling information to the STA2115-b on the communication link 125. AP2105-b may receive an acknowledgment that the polling information was received by the STA2115-b. AP2105-b may start a timer for the AP2105-b to receive an uplink transmission from STA2115-b on the communication link 125, the uplink transmission from the STA2115-b being in response to the polling information received by the STA2115-b.
The STA2115-b may perform wireless communications according to a low-latency MAC protocol. The STA2115-b may monitor a communication link 125 for a downlink transmission from AP2105-b. The STA2115-b may determine that the downlink transmission includes polling information identifying STA2115-b. STA2115-b may transmit an acknowledgment of the downlink transmission on the communication link. STA2115-b may transmit an uplink transmission on the communication link 125 based on the polling information.
While aspects for providing a low-latency network are described in connection with a WLAN deployment or the use of IEEE 802.11-compliant networks and related terminology, those skilled in the art will readily appreciate, the various aspects described throughout this disclosure may be extended to other networks employing various standards or protocols including, by way of example, BLUETOOTH® (Bluetooth), HiperLAN (a set of wireless standards, comparable to the IEEE 802.11 standards, used primarily in Europe), and other technologies used in wide area networks (WAN)s, WLANs, personal area networks (PAN)s, or other suitable networks now known or later developed. Thus, the various aspects presented throughout this disclosure for protecting the reception of response frames or messages from interference or similar effects resulting from transmissions by nearby devices may be applicable to any suitable wireless network regardless of the coverage range and the wireless access protocols utilized.
A polling message 220 may be transmitted by the serving AP2105-b to an STA 115. The polling message 220 may be transmitted at a time determined by the serving AP2105-b. For example, the serving AP2105-b may determine to transmit a polling message at any time when an uplink transmission is not expected. In an aspect, the polling message 220 may be broadcast or otherwise transmitted, and may include a destination address as the address of the polled station. In an aspect, the polling message 220 may include both polling information and data. For example, the polling information may be a flag or other indication in the header that the STA 115 is allowed to transmit following the polling message 220. The polling information may also include a permitted duration in which the STA 115 is allowed to access the channel. The permitted duration may also be selected by the serving AP2105-b for each polling message 220. For example, the serving AP2105-b may select a permitted duration based on the transmission pattern of the STA 115, channel conditions, amount of data waiting (e.g., buffered) for transmission by the STA 115, or priority of the STA 115. The polling message 220 may include data or may be an empty frame including only a header but no data. In an example of polling message 220, polling message 220-a may include polling information and data, while polling messages 220-b, 220-c, and 220-d do not include data. The data may include, for example, control data or measurements that may be used to control a robot, drone, or other autonomous or semi-autonomous machine in an industrial setting.
A STA 115 may respond to a polling message 220 by transmitting an acknowledgment (ACK) 225 indicating that the polling message 220 was correctly received or a negative acknowledgment (NAK) indicating that a transmission was incorrectly received 230. In an aspect, the ACK 225 or the NAK 230 may refer to the entire polling message 220. Accordingly, the serving AP2105-b may determine that the polling information and/or the data are correctly received when an ACK 225 is received. When a NAK 230 is received, the serving AP2105-b may determine that the corresponding polling message 220 was not correctly received and retransmit the polling message 220. The AP2105-b may also determine that the polling message 220 was not correctly received when no ACK 225 or NAK 230 is received in response to the polling message 220 within a set time. For example, the polling message 220-c may be incorrectly received, and the third polled station may transmit a NAK 230 (or transmit nothing within the set time). The AP2105-b may then transmit polling message 220-d, which may be a retransmission of the polling message 220-c. In an aspect, the serving AP2105-b may transmit a polling message a limited number of times (e.g., 2 or 3) before determining to poll a different STA 115. The serving AP2105-b may also use a timer to determine when to poll a different STA 115 when no ACK 225 is received. In another aspect, an STA 115 may begin transmitting a data frame 240 without transmitting an ACK 225, in which case the data frame 240 may indicate to the serving AP2105-b that the polling message 220 was received.
Following an ACK 225 for a polling message 220, the polled STA 115 may transmit a data frame 240. The serving AP2105-b may monitor for an expected data frame 240 upon receiving an ACK 225. In an aspect, a timer 250 may measure a time period based on the permitted duration in the polling information in which the serving AP2105-b may expect to receive the data frame 240. The STA 115 may determine what to transmit in the data frame 240. For example, the data frame 240 may carry uplink data and/or signaling from the STA 115. If the serving AP2105-b successfully receives the data frame 240, the serving AP2105-b may determine that the remainder of the permitted duration is not needed. The serving AP2105-b may then cancel the timer 250 and transmit an ACK 260. Cancelling a timer may include deleting, stopping, and/or resetting the timer. For example, for the first polled STA 115, serving AP2105-b may cancel timer 250-a upon receiving the ACK 260-a. In an aspect, if the data frame 240 includes a more-data indication, the AP2105-b may determine that the permitted duration is still needed and expect another data frame 240.
As another example, for the second polled STA 115, the serving AP2105-b may not receive the data frame 240-b within an expected time period or determine that the received data frame 240-b cannot be decoded correctly. Therefore, the serving AP2105-b may transmit a NAK 270-a and let the timer 250-b continue to run. When the second STA 115 receives the NAK 270-a, the STA 115 may retransmit the data frame 240-b as a retransmission 280-a. If the retransmission 280-a is successfully received, the serving AP may transmit an ACK 260-b and cancel the timer 250-b.
If, on the other hand, the serving AP2105-b does not successfully receive a retransmission 280-c after a first NAK 270-b, the serving AP2105-b may transmit another NAK 270-c. The timer 250 may expire if the retransmission is unsuccessful. For example, in the case of the third polled STA 115, the timer 250-c may expire after two NAKs 270-b and 270-c.
In an aspect, a retransmission 280 may use a different modulation and coding scheme (MCS) than the data frame 240. For example, the retransmission 280 may retransmit the data of the data frame 240 with a lower MCS for a more reliable transmission. In an aspect, the number of retransmissions may be limited to help reduce latency, so the lower MCS of the retransmission may provide some additional level of reliability. On the other hand, a lower MCS for the same data may consume more time. Accordingly, by transmitting the data frame 240 with a relatively high MCS followed by a retransmission 280 with a lower MCS only when needed, the STA 115 may transmit uplink data with a low-latency for most data frames while still ensuring high reliability. In an aspect, the MCS for the data frame 240 and the retransmission 280 may be selected such that they meet an expected frame error rate (FER) threshold, which may be low. For example, a target frame error rate of 10−5 may be expected using a first MCS for the data frame 240 having an expected FER of 10−2 and a second MCS for the retransmission 280 having an expected FER of 10−3. The expected FER for an uplink transmission and the expected error rate for an uplink retransmission may be estimated based on the respective selected MCS. In the above example, the first MCS and the second MCS may be selected such that a product of the estimated frame error rate of the uplink transmission and an estimated frame error rate of the uplink retransmission is less than the target frame error rate. In an aspect, the permitted duration in the polling information and/or the duration of the timer 250 may be based on an MCS used for transmissions.
The modem component 320 may be may be or may include one or more processors (e.g., processor 1604 in
The LBT component 322 may include hardware and/or software code executable by a processor for determining whether a wireless channel is free by using, for example, CCA or other channel sensing mechanism. In an aspect, for example, the LBT component 322 may listen, via the transceiver 370, to the wireless channel for a configured time period to see if any other devices are transmitting on the wireless channel. If the channel is busy, the LBT component 322 may determine a back-off time period to wait before starting a transmission.
The polling component 324 may include hardware and/or software code executable by a processor for selecting a STA 115 for polling to initiate an uplink transmission. The polling component 324 may determine polling based on latency and throughput needs of the low-latency network. For example, in an aspect, the polling component 324 may use a round-robin approach to periodically poll each STA of a plurality of STAs associated with the access point 310. In another aspect, each STA may be assigned a priority (e.g., based on traffic duty cycle or delay budget) and be polled according to the priority. The polling component 324 may also determine polling based on downlink traffic load. For example, the polling component 324 may determine that a downlink transmission may be sent without polling information when there is a need to quickly send downlink data. In another aspect, the polling component 324 may predict a type of uplink data to be transmitted by a STA 115. For example, the polling component 324 may determine whether a STA 115 is likely to transmit low-latency data or regular data, or determine whether the uplink data is likely to be a management or control message. The prediction may be based on, for example, an uplink transmission pattern associated with the STA 115 and/or an indication (e.g. a more-data field) in a previous uplink transmission. The polling component 324 may indicate polling by setting fields of a header for a downlink frame to create a polling message 220. For example, the polling component 324 may set a poll trigger field 514 (
The acknowledgment component 326 may include hardware and/or software code executable by a processor for transmitting an acknowledgment when an uplink transmission is successfully received. The acknowledgment component 326 may generate a downlink frame to acknowledge the uplink transmission. The acknowledgment component 326 may transmit the downlink frame via the transceiver 370. The acknowledgment component 326 may also transmit a NAK 270 when an uplink transmission is incorrectly received.
The timer 328 may include hardware and/or software code executable by a processor for determining whether the permitted duration of an uplink transmission has expired. The timer 328 may implement each of the timers 250-a, 250-b, and 250-c in
The PHY layer component 340 may handle physical layer transmission properties such as modulation rate and decoding. In an aspect, the PHY layer component 340 may include a decoder 342 and a rate control component 344. The decoder 342 may receive a signal from the transceiver 370 and determine a MAC protocol data unit (PDU). In an aspect, the decoder 342 may be a soft-decision Viterbi decoder that may be configured to provide a likelihood ratio for a most likely decoding path and also for one or more alternative decoding paths. The decoder 342 may also estimate a signal-to-noise ratio (SNR) for a received transmission.
The rate control component 344 may include hardware and/or software code executable by a processor for determining a modulation and coding scheme to use for transmissions. In an aspect, the rate control component 344 may be in communication with a rate control component 460 (
The handover component 350 may include hardware and/or software code executable by a processor for managing a handover between the access point 310 and a neighbor AP. The handover component 350 may communicate with associated STAs using in-band messages. For example, the handover component 350 may provide handover signaling as downlink data for the polling component 324 to schedule. The handover component 350 may include an STA list 352 for storing information regarding each of the STAs associated with the access point 310. For example, the STA list 352 may receive channel quality measurements from each STA. The handover component 350 may determine whether to hand over an STA based on the channel quality measurements. The handover component 350 may add an STA to the STA list 352 when an STA is handed over to the access point 310 and remove an STA when the AP 310 hands over the STA to a neighbor AP. The handover component 350 may also include a neighbor list 354 for storing information regarding each neighbor AP. For example, the neighbor list 354 may include properties of the neighbor APs such as channels, timing, or other information an STA may use to connect to the neighbor AP.
The access point 310 may also include a backhaul interface 360 for sending and receiving various messages with the neighbor APs. The backhaul interface 360 may be a wired or wireless network interface. The backhaul interface 360 may be used by modem component 320 or one of its sub-components. For example, the handover component 350 may use the backhaul interface 360 to send a transfer request identifying an STA the access point 310 would like to handover and receive a transfer response indicating whether the neighbor AP has accepted a handover of the STA. The backhaul interface 360 may also transmit a handover update message indicating that a STA has acknowledged a handover command and should now be associated with the neighbor AP.
The transceiver 370 may include a radio frequency (RF) transmitter and/or RF receiver for transmitting a scheduled transmission. In an aspect, the transceiver 370 may include one or more transmit chain components and/or antennas. Further, the transceiver 370 may include one or more amplifiers. A transmission power may be adjusted by adjusting the gain applied to the one or more amplifiers. Further, the transceiver 370 may include an RF receiver for receiving RF signals from one or more STAs 115.
The application layer 415 may include hardware and/or software executable by a processor for running one or more applications. In an aspect, the application may be a low-latency application requiring low-latency communications. For example, the application may be a control application for a robot or drone. The application layer 415 may include or be running on a host processor (e.g. processor 1604 in
The modem component 420 may include hardware and/or software executable by a processor (e.g., processor 1604 in
The monitoring component 430 may include hardware and/or software code executable by a processor for determining whether a polling message has been received. The monitoring component 430 may monitor a wireless channel of the serving AP2105-b, via the transceiver 490. In particular, the monitoring component 430 may monitor for downlink frames including a header indicating the wireless station 410 as the destination address and having a poll field set. In an aspect, the wireless channel may be asynchronous and the monitoring component 430 may constantly monitor the wireless channel. In another aspect, the monitoring component 430 may be able to determine a time period when a polling message is unlikely to be received. For example, a polling message may be unlikely following a polling message for another station that includes a large downlink transmission or a long duration for an uplink transmission. Accordingly, the monitoring component 430 may indicate that other actions may be performed before the next polling message is expected. For example, the wireless station 410 may perform measurements on another wireless channel to determine a signal strength of a neighbor AP.
The poll receiving component 432 may include hardware and/or software code executable by a processor for determining uplink transmission properties based on a received polling message. In an aspect, the polling message may include an allowed transmission duration and/or a MCS to use for the transmission. The poll receiving component 432 may extract such uplink transmission properties from the received polling message.
The acknowledgment component 434 may include hardware and/or software code executable by a processor for acknowledging downlink frames. For example, the acknowledgment component 434 may acknowledge a polling message 220 by generating an ACK 225 and transmitting the ACK 225 via the transceiver 490. The acknowledgment component 434 may also negatively acknowledge a polling message 220 by generating a NAK 230. The acknowledgment component 434 may also generate an ACK/NAK for downlink frames that do not include polling information.
The uplink component 436 may include hardware and/or software code executable by a processor for determining uplink transmissions of the wireless station 410. For example, the uplink component 436 may include a memory for storing uplink data. The uplink component 440 may receive uplink data from the application layer 415 and temporarily store the uplink data. The uplink component 440 may determine which data to transmit during a time period based on the duration assigned to the wireless station 410 in the polling message 220 and a MCS determined by the rate control component 460. The uplink component 440 may provide the uplink transmission data to the transceiver 490.
The downlink component 450 may include hardware and/or software code executable by a processor for receiving downlink transmissions from an AP 105. The downlink transmissions may be received in a downlink frame, which may be a polling message 220. The downlink component 450 may include a decoder 452. The decoder 452 may first decode a header portion of a downlink frame to determine whether the downlink frame is for the wireless station 410. If a destination address of the downlink frame matches the address of the wireless station 410, the decoder 452 may decode the downlink frame for the wireless station 410.
The rate control component 460 may include hardware and/or software code executable by a processor for determining a modulation rate and/or a MCS for the wireless station 410. In an aspect, the rate control component 460 may be in communication with the rate control component 344. For example, the rate control component 460 may determine a desired MCS for downlink frames based on previously received downlink frames and provide an MCS index to the rate control component 344. The rate control component 460 may also receive MCS information in the polling information to use for an uplink transmission. The rate control component 460 may receive an MCS in the header of a downlink frame to use for decoding the downlink frame. The rate control component 460 may provide the MCS information to the application layer 415 (e.g., via an application programming interface (API)) so that the application layer may generate MAC layer frames.
The boot-up component 470 may include hardware and/or software code executable by a processor for connecting the wireless station 410 to an authentication AP 105-a to join a low-latency network. The boot-up component 470 may perform a random access procedure on a dedicated boot-up channel to connect to the authentication AP 105-a. The boot-up component 470 may then perform an authentication procedure to ensure that the wireless station 410 is allowed to access the low-latency network. The authentication AP 105-a may then hand the wireless station 410 over to a serving AP2105-b. If wireless station 410 ever becomes disconnected from the serving AP2105-b, or another serving AP, the boot-up component 470 may reconnect to the low-latency network via the authentication AP 105-a.
The handover component 480 may include hardware and/or software code executable by a processor for managing mobility of the wireless station 410 within a low-latency network. The handover component 480 may be configured to measure the channel quality or signal strength of neighbor APs. The handover component 480 may determine when a handover to one of the neighbor APs should occur, or the handover component 480 may report the channel quality to the current serving AP2105-b. In an aspect, the handover component 480 may include a dedicated transceiver for performing measurements. The dedicated transceiver may be tuned to wireless channels used by neighbor APs without interrupting communications between the wireless station 410 and the serving AP2105-b via the transceiver 490.
The transceiver 490 may include an RF transmitter for transmitting a scheduled transmission. In an aspect, the transceiver 370 may include one or more transmit chain components and/or antennas. Further, the transceiver 370 may include one or more amplifiers. A transmission power may be adjusted by adjusting the gain applied to the one or more amplifiers. Further, the transceiver 490 may include an RF receiver for receiving RF signals from one or more APs 105.
At block 610, the method 600 may include selecting, from a plurality of wireless stations associated with an access point (AP), a wireless station for the AP to poll, wherein each of the plurality of wireless stations is configured to transmit on a channel in response to being polled by the AP. In an aspect, for example, the polling component 324 may select, from a plurality of wireless stations associated with the AP, the wireless station for the AP to poll. In an aspect, the plurality of wireless stations may be configured to transmit on the channel only in response to being polled by the AP.
At block 620, the method 600 may optionally include determining that the channel is free before transmitting a downlink frame. In an aspect, for example, the LBT component 322 may determine whether the channel is free before transmitting a downlink frame.
At block 630, the method 600 may include transmitting, at a time selected by the AP, the downlink frame including polling information to the wireless station on the channel, the polling information including a permitted duration for the wireless station to access the channel. In an aspect, for example, the transceiver 370 may transmit the downlink frame including polling information to the wireless station on the channel at a time selected by the AP. In an aspect, because the AP may select any time for transmitting the polling information, the polling may be aperiodic. For example, the time between a first polling message and a second polling message may be different than a time between the second polling message and a third polling message. The permitted duration may also be selected by the polling component 324. Other implementations may use periodic polling instead of aperiodic polling, or may switch between periodic portions of time and aperiodic portions of time.
At block 640, the method 600 may optionally include receiving an acknowledgment that the polling information was received by the wireless station. In an aspect, for example, the acknowledgment component 326 may receive an acknowledgment (e.g., ACK 225-a in
At block 650, the method 600 may include monitoring, during the permitted duration, for the AP to receive an uplink transmission from the wireless station on the channel, the uplink transmission from the wireless station being in response to the polling information received by the wireless station. In an aspect, for example, the transceiver 370 may monitor the channel during the permitted duration as measured by the timer 328. The timer 328 may start when an ACK 225 is received from the wireless station in response to a polling message 220.
At block 710, the method 700 may include receiving uplink data in the uplink transmission from the wireless station on the channel. In an aspect, for example, transceiver 370 may receive uplink data in the uplink transmission from the wireless station on the channel.
At block 720, the method 700 may optionally include determining that the uplink data in the uplink transmission cannot be decoded. In an aspect, for example, the decoder 342 may determine that the uplink data in the uplink transmission cannot be decoded. The decoder 342 may also determine that the uplink data cannot be decoded when no uplink transmission is received during an expected time period for the uplink transmission.
At block 730, the method 700 may optionally include transmitting a negative acknowledgment to the wireless station. In an aspect, for example, the acknowledgment component 326 may transmit a negative acknowledgment (e.g., NAK 270-a in
At block 740, the method 700 may optionally include receiving the uplink data in a second uplink transmission from the wireless station on the channel. In an aspect, for example, the transceiver 370 may receive the uplink data in a second uplink transmission from the wireless station on the channel.
At block 750, the method 700 may optionally include cancelling the timer based on receiving the uplink data. In an aspect, for example, the timer 328 may be cancelled by the decoder 342 or acknowledgment component 326 based on receiving the uplink data. Cancelling the timer may include resetting the timer to a default value (e.g., 0), disabling the timer, or taking no action if the timer expires.
At block 760, the method 700 may include transmitting an acknowledgment to the wireless station that the uplink data has been received. In an aspect, for example, the acknowledgment component 326 may transmit an acknowledgment to the wireless station that the uplink data has been received.
At block 770, the method 700 may include selecting a next wireless station from the plurality of wireless stations associated with the AP for the AP to poll before the end of the permitted duration. In an aspect, for example, the polling component 324 may select a next wireless station from the plurality of wireless stations associated with the AP for the AP to poll before the end of the permitted duration. Accordingly, a remaining portion of the permitted duration may be used for polling the next wireless station.
At block 810, the method 800 may include determining that the permitted duration has expired before an uplink transmission being received. In an aspect, for example, the timer 328 may determine and/or indicate that the permitted duration has expired before the uplink transmission being received.
At block 820, the method 800 may include selecting, in response to the permitted duration expiring, a next wireless station from the plurality of wireless stations associated with the AP for the AP to poll. In an aspect, for example, the polling component 324 may select, in response to the permitted duration expiring, a next wireless station from the plurality of wireless stations associated with the AP for the AP to poll.
At block 910, the method 900 may include monitoring, by a wireless station, a wireless channel for a first downlink transmission from a first access point (AP). In an aspect, for example, the monitoring component 430 may monitor the wireless channel for a first downlink transmission from the first AP.
At block 920, the method 900 may include determining that the downlink transmission includes polling information identifying the wireless station. In an aspect, for example, the poll receiving component 432 may determine that the downlink transmission includes polling information identifying the wireless station.
At block 930, the method 900 may optionally include transmitting an acknowledgment of the downlink transmission on the wireless channel. In an aspect, for example, the acknowledgment component 434 may transmit the acknowledgment (e.g., ACK 225-a in
At block 940, the method 900 may include transmitting an uplink transmission on the wireless channel within the permitted duration based on the polling information. In an aspect, for example, the uplink component 436 may transmit an uplink transmission on the wireless channel based on the polling information.
At block 950, the method 900 may optionally include monitoring for an acknowledgment of the uplink transmission. In an aspect, for example, the monitoring component 430 may monitor for an acknowledgment of the uplink transmission. The monitoring component 430 may determine that the uplink transmission was received if an ACK 260 is received. If no ACK 260 is received, or a NAK 270 is received, the monitoring component 430 may determine that the uplink transmission was not correctly received.
At block 960, the method 900 may optionally include retransmitting the uplink transmission when an acknowledgement is not received within a time period. In an aspect, for example, the uplink component 436 may retransmit the uplink transmission when an acknowledgment is not received within a time period. Referring back to
The SNR determining component 1020 may be configured to determine a signal-to-noise ratio of a received signal. In an aspect, for example, the SNR determining component 1020 may perform measurements of a received signal, or may acquire measurements from a decoder 342, 452.
The FER estimating component 1030 may be configured to estimate a frame error rate (FER) based on a received frame. In an aspect, the FER estimating component 1030 may estimate the FER based on a single frame. In a low-latency application, a desired FER may be extremely low (e.g., 10−4). Accordingly, determining a FER based on a number of actually erroneously received frames may take a relatively long time because the erroneously received frames may be uncommon. The FER estimating component 1030 may estimate a FER for a single frame using likelihood ratios provided by a decoder. For example, a soft-decision Viterbi decoder may provide a likelihood ratio of a most likely path, which may be chosen as the decoded frame. The soft-decision Viterbi decoder may also provide a likelihood ratio of one or more alternative paths that were not chosen as the decoded frame. The FER estimating component 1030 may determine a ratio of the likelihood ratio of the chosen path to the sum of likelihood ratios of other likely paths for the frame. For example, the FER may be estimated according to the following equation:
C may be the decoded code word, and ĉ may be the transmitted code word. {right arrow over (y)} may be a vector of the received signal for the decoded path. Pr{{right arrow over (y)}|path i} may be a function of a likelihood ratio of a decoded path, i. For example, for a Gaussian white noise channel,
may be a signal to noise measurement for the channel and di may be the Hamming distance between the received signal and its corresponding constellation point.
The FER estimating component 1030 may update historic FER and SNR information 1050 based on the estimated FER for each frame. For example, the FER estimating component 1030 may recalculate an FER/SNR curve based on the estimated FER.
The MCS selection component 1040 may select a modulation rate or MCS based on historical FER and SNR information 1050 for each of a plurality of modulation and coding schemes. In aspect, the MCS selection component 1040 may store FER and SNR information 1050 for each MCS.
At block 1210, the method 1200 may include receiving a first packet encoded with a first modulation and coding scheme from a transmitting node. In an aspect, for example, the rate control component 1010 may receive the first packet encoded with a first modulation and coding scheme from a transmitting node via a transceiver.
At block 1220, the method 1200 may include estimating a signal-to-noise ratio (SNR) based on the first packet. In an aspect, for example, the decoder 342 may estimate the SNR based on the first packet.
At block 1230, the method 1200 may optionally include decoding the first packet by determining a most likely decoded path having a first likelihood ratio. In an aspect, for example, a decoder 342, 452 may decode the first packet by determining the most likely decoded path having the first likelihood ratio. In an aspect, the decoding may be unsuccessful. For example, a cyclic redundancy check (CRC) of the packet may not pass.
At block 1240, the method 1200 may optionally include estimating a FER for the first modulation and coding scheme based on the first likelihood ratio and at least one other likelihood ratio of an alternative decoded path for the first packet. In an aspect, for example, the FER estimating component 1030 may estimate the FER for the first modulation and coding scheme based on the first likelihood ratio and at least one other likelihood ratio of an alternative decoded path for the first packet.
At block 1250, the method 1200 may optionally include updating historical FER and SNR information based on the estimated SNR and the estimated FER for the first packet. In an aspect, for example, the FER estimating component 1030 may update historical FER and SNR information 1050 based on the estimated SNR and the estimated FER for the first packet. For example, the FER estimating component 1030 may update historical FER and SNR information 1050 for the first modulation and coding scheme.
At block 1260, the method 1200 may include determining a FER target for a next packet based on whether the first packet was successfully decoded. In an aspect, for example, the rate control component 1010, the acknowledgment component 326, or the acknowledgment component 434 may determine the FER target. In an aspect, the FER target may be determined by adjusting a current FER target (e.g. the FER target used to determine the first modulation and coding scheme). For example, the FER target for the next packet may be determined by decreasing the current FER target when the first packet is decoded incorrectly. Accordingly, a FER target for a retransmission may have a lower FER target. Therefore, the FER target for a retransmission may be an estimated frame error rate for the uplink transmission that is different than an FER target for an original uplink transmission. If the first packet is decoded correctly, the FER target may remain the same, or may be reset to a default level in the case that the first packet was a retransmission.
At block 1270, the method 1200 may include computing an SNR threshold for each of a plurality of modulation and coding schemes including the first modulation and coding scheme to achieve the FER target. In an aspect, for example, the MCS selection component 1040 may compute the SNR threshold for each of a plurality of modulation and coding schemes including the first modulation and coding scheme to achieve the FER. The MCS selection component 1040 may compute the SNR threshold for each of a plurality of modulation and coding schemes to achieve the FER based on the historical FER and SNR information 1050. In an aspect, the historical FER and SNR information 1050 for the first modulation and coding scheme may be the updated historical FER and SNR information.
At block 1280, the method 1200 may include selecting a second modulation and coding scheme that is associated with a SNR threshold that is less than or equal to the estimated SNR, In an aspect, for example, the MCS selection component 1040 may select the second modulation and coding scheme that is associated with the SNR threshold that is less than or equal to the estimated SNR.
At block 1290, the method 1200 may include providing an indication of the second modulation and coding scheme to the transmitting node. In an aspect, for example, a transceiver 370, 490 may provide the second modulation and coding scheme to the transmitting node. In an aspect, the second modulation and coding scheme may be provided within a scheduled in-band transmission.
The processing system 1614 may be coupled to a transceiver 1610 via an interface 1608. The transceiver 1610 is coupled to one or more antennas 1620. The transceiver 1610 may provide a means for communicating with various other apparatus or devices over a transmission medium. The transceiver 1610 may receive a signal from the one or more antennas 1620, may extract information from the received signal, and may provide the extracted information to the processing system 1614, specifically the processor 1604. In addition, the transceiver 1610 may receive information from the processing system 1614, and based on the received information, may generate a signal to be applied to the one or more antennas 1620. In an aspect, the transceiver 1610 may be an example of the transceiver 370 (
For example, when the processing system 1614 is acting as an AP, the processor 1604 executing software stored in the computer-readable medium/memory 1606 may select a wireless station for the AP to poll and generate, at a time selected by the AP, a downlink frame including polling information to the wireless station on the channel. The transceiver 1610 may transmit the downlink frame. The processor 1604 executing software stored in the computer-readable medium/memory 1606 may then monitor the channel, during the permitted duration, for the AP to receive an uplink transmission from the wireless station via the transceiver 1610.
As another example, when the processing system 1614 is acting as an STA, the processor 1604 executing software stored in the computer-readable medium/memory 1606 may monitor a wireless channel for a first downlink transmission from a first AP. The processor 1604 executing software stored in the computer-readable medium/memory 1606 may determine that the first downlink transmission includes polling information identifying the wireless station and a permitted duration for the wireless station to access the channel. The transceiver 1610 may transmit an uplink transmission on the wireless channel within the permitted duration based on the polling information.
The apparatus and methods have been described in the detailed description and illustrated in the accompanying drawings by various elements comprising blocks, modules, components, circuits, steps, processes, algorithms, and the like. These elements, or any portion thereof, either alone or in combinations with other elements and/or functions, may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. In an aspect, the term “component” as used herein may be one of the parts that make up a system and may be divided into other components.
By way of example, an element, or any portion of an element, or any combination of elements may be implemented with a “processing system” that includes one or more processors. A processor may include a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic component, discrete gate or transistor logic, discrete hardware components, or any combination thereof, or any other suitable component designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP, or any other such configuration.
One or more processors in the processing system may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside on a non-transitory computer-readable medium. A non-transitory computer-readable medium may include, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip), an optical disk (e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, a flash memory device (e.g., card, stick, key drive), random access memory (RAM), static RAM (SRAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM); double date rate RAM (DDRAM), read only memory (ROM), programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), a general register, or any other suitable non-transitory medium for storing software.
The various interconnections within a processing system may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of a myriad of physical or logical mechanisms for communication between elements. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses.
The various aspects of this disclosure are provided to enable one of ordinary skill in the art to practice the present invention. Various modifications to examples of implementations presented throughout this disclosure will be readily apparent to those skilled in the art, and the concepts disclosed herein may be extended to other magnetic storage devices. Thus, the claims are not intended to be limited to the various aspects of this disclosure, but are to be accorded the full scope consistent with the language of the claims. All structural and functional equivalents to the various components of the examples of implementations described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112 (f), unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.”
This application claims priority from U.S. Provisional Application No. 62/133,152 entitled “LOW-LATENCY TIME-SHARING MEDIA ACCESS CONTROL,” filed on Mar. 13, 2015, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62133152 | Mar 2015 | US |