U.S. provisional application No. 60/540,119 entitled "combination of information and a knowledge channel communication system", filed on 28.1.2004;
U.S. provisional application No. 60/590,112 entitled "erasegnaturestuckyassignments" filed on 21/7/2004;
a U.S. provisional application entitled "FlexibleOFDMTransmissionFormatsviaNCChannel" filed on 23/7/2004 under application number 60/590,538;
all three of these applications have been assigned to the assignee of the present application and are hereby expressly incorporated by reference.
This application is related to the following co-pending U.S. patent applications:
U.S. application No. 10/340,507 filed on 10/1/2003;
U.S. application No. 10/726,944 filed on 3.12.2003;
both of these applications have been assigned to the assignee of the present application and are hereby expressly incorporated by reference.
Detailed Description
The word "exemplary" is used herein to mean "serving as an example, instance, or illustration. Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The term "listening" as used herein means that the electronic device is receiving data and processing data received over a given channel.
Fig. 1 shows a wireless multiple-access communication system 100 employing multi-carrier modulation. For example, the system 100 includes multiple access points 110a and 110b that communicate with multiple access terminals 120a-120 g. For simplicity, only two access points 110a and 110b and only seven access terminals 120a-120g are shown in fig. 1. For ease of discussion, 120x will be used when referring to a single Access Terminal (AT), and 110x will be used when referring to a single Access Point (AP) (access terminal 120x and access point 110x are described below in fig. 2).
Access point 110x is an electronic device used for communicating with one or more user access terminals and may also be referred to as a base station, a base terminal, a fixed station, a base station controller, a transmitter, or some other terminology. In the following description, an access point, a base terminal, and a base station are used interchangeably. An access point may be a general purpose computer, a standard laptop, a fixed terminal, an electronic device that transmits, receives, and processes data according to the air interface methods defined by OFDMA, CDMA, GSM, WCDMA, etc. systems, or an electronic module that includes one or more computer chips controlled by a controller or processor to transmit, receive, and process data according to the air interface methods defined by OFDMA, CDMA, GSM, WCDMA, etc.
Access terminal 120x is an electronic device that communicates with the access point over a communication link. An access terminal may also be called a terminal, a user terminal, a remote station, a mobile station, a wireless communication device, a receiving station, or other terminology. In the following description, access terminals, mobile terminals, user terminals, terminals are used interchangeably. Each access terminal 120x may communicate with one or more access points via the downlink and/or uplink at any given moment. The downlink (i.e., forward link) refers to transmission from the access point to access terminal 120x, and the uplink (i.e., reverse link) refers to transmission from access terminal 120x to the access point. The access terminal 120x may be any standard laptop computer, personal electronic organizer or assistant, mobile phone, cellular phone, electronic device that transmits, receives and processes data according to the air interface methods defined by OFDMA, CDMA, GSM, WCDMA, etc. systems, or an electronic module that includes one or more computer chips controlled by a controller or processor to transmit, receive and process data according to the air interface methods defined by OFDMA, CDMA, GSM, WCDMA, etc. systems.
The system controller 130 is coupled to the access points and may be further coupled to other systems/networks (e.g., packet data networks). The system controller 130 coordinates and controls the access points to which it is connected. Through the access points, the system controller 130 also controls the routing of data between access terminals and other users connected to other systems/networks.
The techniques described herein for optimizing portions of a frame may be implemented in various wireless multiple-access multi-carrier communication systems. For example, system 100 may be an OFDMA, CDMA, GSM, WCDMA, or like system that utilizes data transmission.
Fig. 2 is a block diagram illustrating an embodiment of one access point 110x and two access terminals 120x and 120y (or user terminals) in a multiple access multi-carrier communication system 100. In access point 110x, a Transmit (TX) data processor 214 receives traffic data (i.e., information bits) from a data source 212, signaling and other information from access point 110x, and a schedule from a scheduler 230. For example, access point 110x may provide Power Control (PC) commands for adjusting the transmit power of the active access terminals, and scheduler 230 may provide carrier allocation information for the access terminals. These different types of data may be sent on different transport channels. Access point 110x may be configured to perform flow 500 to combine the ACK message with other communication messages, as discussed below. TX data processor 214 encodes and modulates the received data using multi-carrier modulation (e.g., OFDM) to provide modulated data (e.g., OFDM symbols). A transmitter unit (TMTR)216 then processes the modulated data to generate a downlink modulated signal that is transmitted from an antenna 218.
In each access terminal 120x and 120y, a transmitted signal is received by an antenna 252 and provided to a receiver unit (RCVR) 254. Receiver unit 254 processes and digitizes the received signal to provide samples. A Receive (RX) data processor 256 then demodulates and decodes the samples to provide decoded data, which may include recovered traffic data, messages, signaling, and so on. Traffic data may be provided to data sink 258 and carrier assignment information and PC commands sent for access terminal 120x may be provided to controller 260.
The controller 260 performs a process 600 described below to process a message received on a single channel with an ACK combined with other communication information and extracts ACK information from the received message to determine whether its own ACK is received.
Controller 260 also controls data transmission on the uplink using the particular carrier that has been assigned to access terminal 120x and that is indicated in the received carrier assignment information. The controller 260 further adjusts the transmit power used for uplink transmissions based on the received PC commands.
For each active access terminal 120x, TX data processor 274 receives traffic data from data source 272 and signaling and other information from controller 260. For example, controller 260 may provide information indicating a desired transmit power, a maximum transmit power, or a difference between the maximum and desired transmit powers for access terminal 120 x. TX data processor 274 encodes and modulates various types of data using the assigned carriers and further processes them by a transmitter unit 276 to generate an uplink modulated signal that is then transmitted from antenna 252.
In access point 110x, the transmitted and modulated signals are received by an antenna 218 from the access terminals, processed by a receiver unit 232, and demodulated and decoded by an RX data processor 234. Receiver unit 232 may estimate received signal quality (e.g., received signal-to-noise ratio (SNR)) for each access terminal 120x and provide this information to access point 110 x. Access point 110x may then derive the PC commands for each access terminal 120x to maintain the received signal quality for access terminal 120x within an acceptable range. RX data processor 234 provides the recovered feedback information (e.g., the required transmit power) for each access terminal 120x to controller 220 and scheduler 230.
The scheduler 230 uses the feedback information to perform a number of functions, such as: (1) selecting a set of access terminals for data transmission on a reverse link; (2) carriers are assigned to the selected access terminals. The carrier assignment for the scheduled access terminals is then sent to the access terminals on the forward link.
The techniques described herein may be implemented in various wireless multiple-access multi-carrier communication systems that combine an ACK message with another message sent on a shared channel to provide an Acknowledgement (ACK) of successful receipt of a data packet on the forward link without having to use a dedicated channel. For example, system 100 may be an OFDMA, CDMA, GSM, WCDMA, or like system that utilizes data transmission. For clarity, the techniques described herein are directed to an OFDMA system using Orthogonal Frequency Division Multiplexing (OFDM).
In an exemplary OFDMA communication system, a forward link superframe includes a superframe preamble portion followed by 6 physical frame portions. The superframe preamble portion includes a plurality of channels: acquisition channel (ACQCH), primary broadcast channel (pBCH) (also known as SYNC channel), Quick Paging Channel (QPCH), and Other Sector Interference Channel (OSICH). Each physical frame portion includes a plurality of physical channels, one or more pilot channels (e.g., a common pilot channel (CPICH) and, if present, a secondary pilot channel (AuxPICH)), a Shared Signaling Channel (SSCH) for transmitting information for processing by all access terminals receiving the channel, a Data Channel (DCH), a secondary broadcast channel (sBCH), a Shared Data Channel (SDCH), and a Power Control Channel (PCCH).
In one embodiment, access point 110x provides the acknowledgement message and the one or more assignment messages using a single channel, e.g., the F-SSCH, on the forward link. All access terminals communicating with access point 110x process the F-SSCH channel. The access terminal samples or estimates one or more portions of the data received on the F-SSCH and processes only the data intended for it.
Fig. 3A and 3B show the structure of a physical frame 300 and the structure of a sub-segment 301, respectively. At the beginning of each physical frame, one or more OFDM symbols (N) are allocated for the F-SSCH channelSSCH). The controller determines N based on system requirementsSSCH. The F-SSCH includes a plurality of sub-segments 302i through 302N, as shown in FIG. 3B. Each sub-segment 302i-N includes a coded data packet 330*. In one embodiment, each packet 330 includes multiple message parts, packets of whichAn inclusive information portion 340, an ACK message portion 342, a traffic-to-pilot transmit power ratio (T2P) message portion 344, a communication message portion 346, and a CRC portion 348.
The T2P message part 344 is a 6-bit field (T2P) that specifies the offset of the transmit power density of the non-constant modulus modulation format relative to the power density of a portion of the ACQCH transmission in the same sector. This offset is converted to a dB value as follows: offset (T2P-31)*0.2dB, where T2P is interpreted as an unsigned integer.
Communication message portion 346 includes a plurality of communication messages of varying lengths. Each message of the communication message section 346 includes a 3-bit header, a channel id section, a MACID section, and more than one packet format section.
Communication message portion 346 may also include an access grant message sent in response to a detected access sequence transmission that assigns a MACID to access terminal 120x and assigns an initial ChID for use by access terminal 120 x. In addition, an access sequence ID is provided that is sent to access point 110x, thereby causing access terminal 120x to discard access grant messages that do not include the sequence sent by the message. In addition, a timing adjust sub-segment is provided to inform the access terminal 120x of the time offset for subsequent RL transmissions. Access terminal 120x advances its transmission opportunity by an amount: offset (TimingAdjust-31)*8 chips, where TimingAdjust is interpreted as an unsigned integer.
Communication message portion 346 may also include a Forward Link Assignment Message (FLAM). This message informs the access terminal 120x of the specific MACID that an FLChID has been assigned to the access terminal 120x, and informs the access terminal 120x of the PFs that should be used on that channel. The AN sets the Supplemental (Supplemental) field in the assignment message to "1" if it should be added to the existing access terminal 120x assignment message on the interlace, and to "0" if it should replace any assignment message on the interlace.
The communication message portion 346 may also include a reverse link assignment message RLAM. This message informs the access terminal 120x of the specific MACID that an rlch id has been assigned to the access terminal 120x and informs the access terminal 120x of the PF that should be used on that channel. Access point 110x sets the supplemental field in the assignment message to "1" if the assignment message should be added to the existing access terminal 120x assignment information on the interlace, and to "0" if the assignment message should replace any assignment message on the interlace.
The communication message portion 346 may also include a multi-codeword MIMO forward link assignment message MCWFLAM. This message informs the access terminal 120x that owns a particular MACID, a FLChID has been assigned to the access terminal 120x, and will go up to N for that channelFL_CHIDThe PF that should be used on the MIMO layer informs the access terminal 120 x. Access point 110x sets the supplemental field in the assignment message to "1" if the assignment message should be added to an existing access terminal 120x assignment message on the interlace, and to "0" if the assignment message should replace any existing assignment message.
The communication message portion 346 may also include a single codeword MIMO forward link assignment message SCWFLAM. This message informs the access terminal 120x that holds a particular MACID, that an FLChID has been assigned to the access terminal 120x, and informs the access terminal 120x of the number of MIMO layers and PFs that should be sent with the assignment message. The AN sets the supplemental field in the assignment message to "1" if the assignment message should be added to AN existing access terminal 120x assignment message on the interlace, and to "0" if the assignment message should replace any existing assignment message.
The communication message section 346 may also include a message indicating AN RL packet decoding failure CRC check (explicit NACK) in the AN. This is an alternative to an ACK message for sending acknowledgement information to access terminal 120x, as discussed below. The MACID field in the message indicates the access terminal 120x to which the message is targeted. The timing relationship between the explicit NACK and the last demodulated correlation frame before the CRC check is the same as the ACK information contained in the ACK message.
The CRC portion 348 includes a CRC of all bits (except the CRC) in the sub-segment packet. Access point 110x sets this field if the number of information bits in the sub-segment is less than or equal to 60 bits, and the number of CRC bits in packet 330 will then be equal to 8. Otherwise, the CRC should be 12 bits.
The ACK message portion 342 includes an ACK message having a first portion 360 for an ACK indicator and a second portion 362 for an ACK information data pattern. The ACK indicator portion indicates whether there is an ACK message to process. Typically, the ACK indicator is a 1-bit message. The ACK information data pattern is composed of a plurality of information bits. The number of information bits may depend on the number of users on the RL that need to send an ACK for the packet. Thus, the length of the ACK message may be 0-n bits, where n is a threshold set by the system operator and varies based on the number of ACKs provided in a given frame. An ACK information data pattern may be generated using a first scheme in which the information bits represent a series of bit packets, each bit packet identifying an access terminal 120x that received an ACK. The ACK information data pattern may also be generated using other schemes, wherein the ACK information data pattern may be generated using an ACK compression scheme as discussed below.
Fig. 4 illustrates a channel tree 400 for use in an ACK compression scheme according to one embodiment. Channel tree 400 is used to indicate a channel identification number (ChID) and a set of hop-ports 420 associated with each ChID. One set of hop-ports "maps to one node" and one node "maps to one set of hop-ports. Hop-port (hop-port) is the basic unit of channel allocation. Each hop-port is mapped to a unique subcarrier. The mapping of hop-ports to subcarriers varies over time. One node corresponds to one ChID. The child node and the grandchild node map the hop port subset mapped by one node. The father node and the ancestor node map a hop port superset mapped by one node. A base node is a node with no children. The base node is allocated a specific resource, e.g., a hop-port.
For the sake of illustration, the 7 nodes 402, 404, 406, 408, 410, 412, and 414 are at the node level 0 to NNODE-LEVELS-1 grouping, wherein each stage comprises at least one node. In one node level, the nodes are arranged in ascending order of ChIDs. Thus, an ordered list of ChIDs is created. Here, three node levels are used, a first node level 422 having nodes 402, 404, 406, 408 corresponding to ChID0-3, a second node level 424 having nodes 410 and 412 corresponding to ChID4-5, and a third node level 426 having node 414 corresponding to ChID 6. It should be noted that a node may have multiple child nodes and hop assignment information 420 may change such that a node may map to a single hop port (e.g., node 408). Further, a ChID may also be associated with a rising format, where the highest node represents a ChID0, and the ChID increases from left to right or from right to left for each level. To implement the embodiment employing the channel tree structure, how the nodes are associated may depend on the system operator, as long as the sender and receiver of the ACK information data pattern know the scheme used in the generation of the ACK information data pattern. Thus, various mechanisms derived from the channel tree structure may be employed.
According to one example, the channel tree has 7 nodes, numbered from 0 to 6, and 18 hop ports, numbered 0-17. The primary node is ChID 1-3. Consider a node associated with ChID 5. The node has a parent ChID6 and child ChIDs 2, 3. The node maps 5 hop-ports, hop-ports 13-17. Access point 110x determines the number of node levels and communicates them to each access terminal 120x in communication with access point 110 x. According to this example, three stages are used. For example, first mobile access terminal 120b is assigned a ChID1 and is considered to map to node 404, hop ports 4-12, and node 410 is the highest node. Second mobile access terminal 102d is assigned a ChID3 and is considered mapped to node 408, hop port 17, and node 412 is the highest node. Because multiple nodes define orthogonal channel assignments, using one node in the tree may limit the use of other nodes. Thus, if a node is in use, all child and ancestor nodes of the node are unavailable and are referred to as "restricted" nodes. Thus, according to this example, node 414 in this example cannot be assigned to any other terminal, but only to a terminal having a ChID 6.
In one embodiment, a one-to-one ascending order scheme is used to associate each bit to one access terminal. The value of each bit is 0 or 1, indicating NACK or ACK, respectively. Each bit is part of an ACK information data pattern received by an access terminal in communication with the receiving point. Access point 110x constructs an ACK information data pattern based on packets received from one or more terminals, each terminal having an assigned channel ID. Various methods may be employed to generate the ACK information data pattern that identifies the target terminal to which the ACK is directed. Here, the ACK message would have 7 bits, each mapped to a ChID0-6, incrementing from left to right. Thus, if access point 110x sends an ACK for RL traffic to the first terminal 102b having a ChID1 (also referred to as an ACK requesting entity) and to the second terminal 10d having a ChID3, the access point 110x will generate an ACK information data pattern of "0101000" for the ACK message.
The RL traffic acknowledgement sent in RL physical frame i is encoded in encoded data packet 330 and sent out within the SSCH in FL physical frame i + 2. For each SSCH sub-segment 302 that passes the CRC, the terminal checks the ACK indicator 360, which is typically a 1-bit field. If ACK indicator 360 is set (e.g., to 1), then each terminal processes ACK information data pattern 362.
All access terminals receiving the ACK message evaluate the ACK information data pattern provided in the ACK message and determine whether it is a ChID or other identifier indicated in the ACK information data pattern. For example, access terminal 102b with ChID of 1 will estimate the second bit from the left after decoding the message and extracting the ACK message {0101000 }. If the bit value is 1, the terminal assumes that an explicit ACK is received, and thus, normal processing is continued. Otherwise, the terminal assumes that an implicit NACK is provided, and either retransmits the data or indicates an error or a loss of resources.
Fig. 5 illustrates a flow 500 for combining an assignment message and an ACK message in accordance with one embodiment. AP110x performs the steps of flow 500 using at least one of the components shown in fig. 2, e.g., controller 220, scheduler 230, memory 222, TX data processor 214, RX data processor 234, etc. In step 502, it is determined whether RX data processor 234 receives a packet from access terminal 120x in communication with access point 110x and then determines whether the received packet was decoded successfully. If so, then in step 504, a database stored in memory 222 is updated that stores information about each terminal that transmitted data to access point 110 x. The access point 110x may employ various techniques, such as the first scheme described above (e.g., a one-to-one ascending scheme), to collect and manage ACKs. In step 506, access point 110x constructs ACK message portion 342 of sub-segment packet 330. And if at least one ACK needs to be sent, setting a bit corresponding to the ACK indicator to be 1. In step 506, construction of the ACK information data packet is started or the existing ACK information data packet is adjusted to increase information about the access terminal that sent the packet in step 502.
Typically, in communication systems such as OFDMA, an access terminal allocates resources using reverse link requests. If granted the requested resource, the resource allocation information is sent over the forward link. In addition, one or more shared channels are used to transmit data to the access terminals over the forward link. To receive information on the shared channel, the access terminal needs to receive allocation information for data on the shared channel. All access terminals communicating with access point 110x will process the information received over these shared channels. In a multicast/broadcast system, these channels are used to provide data, e.g., new data or advertisements, directed to all access terminals. The use of shared channels may reduce overhead and save valuable bandwidth available to the system.
In one embodiment, the allocation request may be processed concurrently with the establishment of the ACK message. Returning to flow 500, in step 508, an allocation request from one or more access terminals is received at TX data processor 214 and processed. In step 510, access point 110x adjusts the channel allocation. Access point 110x determines the resource allocation using scheduler 230. In step 512, the channel assignment information is added to communication message portion 346. In one embodiment, access point 110x uses information about the ACK message generated in step 506 to determine whether there is a channel assignment that needs to be adjusted. If the size of the ACK information data pattern 362 exceeds a predetermined threshold, access point 110x can use a resilient (stuck) allocation scheme to maintain system efficiency. In step 514, the ACK message constructed in step 506 and the communication message with the new allocation information constructed in step 512 are combined to generate the encoded data packet 330. As described above, the encoded data packet 330 includes an ACK message, a communication portion 346 having one or more assignment portions, and a CRC portion for encoding. In step 516, the entire coded data pattern 330 containing the ACK is encoded, using the CRC for encoding. In step 518, the coded data pattern 330 is transmitted over the forward link, e.g., the F-SSCH described above.
Fig. 6 shows a flow 600 performed by various terminals (e.g., 120x) in communication with access point 110 x. Controller 260 performs the steps of flow 600 using various components of access terminal 120x, e.g., scheduler 260, memory 262, TX data processor 274, RX data processor 256, etc. In step 602, encoded data packet 330 is received from access point 110 x. In step 604, the controller 260 decodes the received data packet 330 and then determines whether a correct packet has been received. In step 606, the ACK message portion 342 is extracted from the successfully decoded data packet 330. This may be accomplished by allocating a portion of the received data packet 330 as part of the ACK message. Thereafter, the controller 260 determines whether the bit value indicated in the first portion 360 is 1. If so, the controller 260 concludes that ACK information is available in the second portion 362 of the encoded data packet 330 and then proceeds to step 608. In step 608, the required information is extracted from the second portion 342 to form an ACK information data pattern. As described above, the number of bits that make up the ACK information data pattern varies based on the number of ACKs provided in the encoded data packet and the method by which access point 110x generates the message. In step 610, the controller 260 determines whether the ACK information data pattern indicates a desired ACK. According to the above example, the ACK information data pattern would be {0101000 }. For example, access terminal 110x with ChID1 will evaluate ACK information data pattern 362 and determine that the ACK information data pattern contains an ACK that is targeted for itself. In step 610, the ACK information data pattern is evaluated to determine if there is an ACK provided to access terminal 110 x.
All access terminals communicating with the access point are aware of the rules associated with the scheme used by access point 110x (e.g., the rules for constructing an ACK information data pattern for the first scheme). These rules may be stored in memory 262 and accessed by controller 260 to determine whether an ACK is received for itself. If, in step 612, it is determined that an ACK is received, then in step 614, the next data packet is sent, if any, on the RL. Otherwise, the controller 260 retransmits the data packet in step 616, or if the maximum allowed retransmission of the data packet for each HARQ scheme is exhausted, the controller 260 generates an error message to indicate an error in the transmission.
The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination of hardware and software. For a hardware implementation, the processing units (e.g., controllers 220 and 260, TX processors 214 and 274, RX processors 234 and 256, etc.) used for these techniques may be implemented within one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
For a software implementation, the techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. These software codes may be stored in a memory unit (e.g., memory 222 in fig. 2) and executed by a processor (e.g., controller 220). The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.
Headings are included herein for reference and to facilitate locating particular sections. These headings do not limit the scope of their concepts described below, which concepts may be applied to other portions of the entire specification.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.