Abstract:
A method an apparatus for selecting a forward link and return link data rate for a constant power, variable data rate two-way, mobile satellite communications link. The forward link and return link signal strength (in the form of carrier power to noise power spectral density ratio) is measured, cataloged, and the values are used for the data rate selection. In addition, a ping can be sent by the network operation center to the mobile unit and the response to the ping is used for updating the information of both forward link and return link signal strength, so the chance of wrong data rate selection can be reduced. Multiple re-transmission attempts combined with gradually increased re-transmission margin ensures the proper data rate decision can be eventually achieved even with occasionally inaccurate signal strength information.

Description:
CLAIM OF PRIORITY UNDER 35 U.S.C. §119 
     The present Application for Patent claims priority to Provisional Application No. 60/839,506 entitled “A CONSTANT POWER, VARIABLE DATA RATE TWO-WAY, MOBILE SATELLITE COMMUNICATIONS LINK” filed Aug. 22, 2006, and to Provisional Application No. 60/846,121 entitled “A CONSTANT POWER, VARIABLE DATA RATE TWO-WAY, MOBILE SATELLITE COMMUNICATIONS LINK” filed Sep. 19, 2006, which were both assigned to the assignee hereof and hereby expressly incorporated by reference herein. 
    
    
     BACKGROUND 
     1. Field 
     The present invention relates generally to communication systems, and more specifically to a method and apparatus for selecting a forward link and return link data rate is a constant power, variable data rate two-way, mobile satellite communications link. 
     2. Background 
     There is therefore a need in the art for an efficient constant power, variable data rate two-way, mobile satellite communications link. Typical satellite communication links are designed with excess link margin in order to overcome occasional link degradations. The result is that during normal link conditions, the link is not efficiently used, i.e., power is wasted. 
     SUMMARY 
     The present system solves the shortcomings of the prior art. In the present system, the link margin is varied by adjusting the over the air data rate in order to limit the wasted power and at the same time to improve the over the air data rate useable by each mobile terminal. 
     A constant fixed power is transmitted by the earth station (both the fixed earth station network operation center and the mobile terminals). The modulation used in both links is such that the receiving terminal can accumulate the received power until enough energy is received to demodulate the signal correctly. The receiving terminal feeds back information to the transmitter including the signal strength it measures which determines at what data rate it can demodulate. The transmitter remembers this information so that next time it is to send data to the receiver, it uses this information to determine the data rate. In both links (network operations center to terminal and terminal to network operations center) the transmitters (and subsequently the receivers) are able to send (receive) multiple different data rates, thus minimizing the wasted link power while simultaneously keeping the transmitter power fixed. 
     The present invention contains novel features such as the network operations center and terminal measure the forward link (FL) and return link (RL) carrier power to noise power spectral density ratio (C/No), neither the network operations center nor terminal get constant feedback from the network operations center/terminal, the network operations center sends a short “ping message” to a terminal to get a current FL C/No reading if the terminal has not been heard from recently, the network operations center and terminal use data rate selection algorithms as a best guess to choose the packet data rate to minimize excess link margin for both the initial packet transmission and subsequent retransmissions and the network operations center and terminal change the modulation symbol rate (not the power level) to create the packet data rate. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a flow chart showing the FL message packet transmission; 
         FIG. 2  is a flow chart describing the method for determining the packet data rate; 
         FIG. 3  is an example of a table of FL data rates; 
         FIG. 4  is a flow chart of the preferred data rate determination for the RL message; and 
         FIG. 5  is an example of a RL data rate table. 
     
    
    
     DETAILED DESCRIPTION 
     The purpose of the presently disclosed embodiments, hereinafter referred to as the Millennium System, is to drastically increase bandwidth efficiency (and thereby drastically reduce transponder cost) and capacity of the communications link between a network operation center (NOC) or hub to a Millennium data module (MDM). The Millennium System will maintain compatibility with other systems, such as OmniTRACS®, and interfaces to the dispatch centers and resident applications. 
     The Millennium forward link consists of variable rate data frames that are directed to terminals based on their ability to receive. Terminals receiving a strong signal will be sent data frames at a higher rate, whereas terminals receiving a weaker signal will be sent frames at a lower data rate. The subsequent sections describe the rate selection algorithm. 
       FIG. 1  is a flow chart showing the FL message packet transmission. The NOC receives a customer originated message to be delivered  10  to a customer mobile terminal and segments it (if necessary) into one or more Protocol Data Units (PDUs). If the terminal has not been in communication with the NOC for T RP     —     PingThreshold  sees or longer and the message length is greater than or equal to L RP     —     PingThreshold  bytes, then the NOC sends a “Ping”  12  PDU to the mobile unit. If the Ping is sent  14  a Ping PDU is created, and prepared for transmission  16  to the mobile unit. The forward link data rate used to send the Ping PDU is determined  18  as is the return data rate to be used by the terminal for the reply. The last known RL C/No from that terminal is also computed and inserted into the PDU. After the Ping is transmitted, the NOC waits a predetermined time for a response from the terminal  20 . Next a determination is made whether the NOC has received the Ping response from the mobile terminal  22 . If the predetermined time lapses and there is no response  24  from the terminal, the NOC resends the Ping  26  if the maximum number of attempts has not been reached  28 . The data rate to send the Ping is recomputed  18  and the process repeats until either the maximum number of attempts is reached  28  in which case the message delivery is deemed foiled  30 , or the terminal responds. 
     When the NOC receives the Ping reply PDU  32 , it measures the RL C/No level of the received signal and stores it in its database for later use. The Ping reply PDU also contains the FL C/No level the terminal most recently measured. The NOC extracts that value and stores it in its database, also  34 . The NOC then prepares for transmission the original message PDU  36 . If a Ping is not necessary  40  or original message PDU in sent  36 , the NOC computes the FL data rate to use for transmitting the PDU using the most recently saved FL C/No levels. The NOC also computes the RL data rate to be used by the terminal for its acknowledgment reply  38 . The RL C/No to send to the terminal is also computed for it to use in its RL data rate selection algorithm. After the message PDU is transmitted, the NOC waits a predetermined time for a response from the terminal  42 . Next, the NOC determines whether an acknowledgement (Ack) has been received from the terminal  44 . If the predetermined time lapses and there is no response from the terminal  46 , the NOC resends the message PDU  48  if the maximum number of transmission attempts has not been reached  50 . If the maximum number of transmissions has been reached  52 , the message delivery is deemed a failed delivery  54 . The data rate used to retransmit the PDU is recomputed and the process repeats until either the maximum number of attempts is reached, or the terminal responds. If the NOC receives an acknowledgement from the terminal that it received the forward link message  56 , the NOC saves the measured RL C/No of that signal and the FL C/No that is contained in the received PDU  58 . After the acknowledgement is received, the NOC declares the message delivery to be successful and notifies the sender  60 . 
       FIG. 2  is a flow chart describing the method for determining the packet data rate procedure as indicated in steps  18  and  38  of  FIG. 1 . The first step is to initiate or enter into the system  62 . Using a look-up table with the transmission count as the index, the next step is to find the FL (M r     —     FL ) and RL (M r     —     RL ) retransmission margin value  64 . Calculate the total forward link (M total     —     FL ) and return link margin (M total     —     RL )  66  values as:
 
 M   total     —     FL   =M   r     —     FL   +M   p     —     FL   +M   m     —     FL   +M   b     —     FL  
 
     Where:
         M r     —     FL  is forward link re-transmission margin.   M p     —     FL  is forward link priority margin,   M m     —     FL  is forward link message type margin.   M m     —     FL  is forward link balance margin.
 
 M   total     —     RL   =M   r     —     RL   +M   p     —     RL   +M   m     —     RL   +M   b     —     RL  
       

     Where:
         M r     —     RL  is return link re-transmission margin.   M p     —     RL  is return link priority margin.   M m     —     RL  is return link message type margin.   M b     —     RL  is return link balance margin       

     Next a determination is made whether the terminal has been heard from  68 . If the NOC has never received any packets from the mobile terminal before  70 , the NOC uses pre-determined, configurable values for default FL and RL C/N 0  values  72 . If the NOC has received packets from the mobile terminal before  74 . The NOC uses the last saved values for the FL and RL C/N 0  values for that terminal  76 . The NOC then subtracts the total forward link margin (M total     —     FL ) and total return link margin (M total     —     RL ) from the FL and RL C/N 0  values  78  to get estimated FL and RL C/N 0  values, as defined by:
 
Estimated FL  C/N   0 =(Last Known FL  C/N   0 )− M   total     —     FL  
 
Estimated RL  C/N   0 =(Last Known RL  C/N   0 )− M   total     —     RL  
 
     Finally, the estimated FL and RL C/N 0  values are used to look-up FL and RL data rates to use for the packet. The RL data rate is used by the mobile terminal for the packet response. The NOC measured R/L C/N 0  is also sent to the terminal in the packet  80 , so that the terminal can make subsequent R/L data rate determinations wherein the systems returns  82  to the appropriate steps of  FIG. 1 . 
     An example of FL data rates for selection is shown in the table of  FIG. 3 . In this particular embodiment, the data rate table is configurable and can be expanded up to 31 FL data rates. This limitation is based on the available number of Walsh Codes, which are identified by the receiver to identify the data rates. 
       FIG. 4  is a flow chart showing the return link message packet transmission. As shown in  FIG. 4 , the mobile terminal receives a customer originated message to be sent or delivered to NOC  100  and segments it (if necessary) into one or more Protocol Data Units (PDUs). The terminal calculates the margin  102  to use when determining the RL data rate as:
 
PDU Margin= M   p   +M   m   +M   b   +M ( i ) retx  
 
     Where:
         M p =PDU priority margin   M m =PDU type margin   M b =Balance margin   M(i) retx =The ith retransmit schedule margin       

     Depending on whether the terminal has received a PDU from the NOCl since it powered on  104 , the terminal takes one of two actions. 
     If the terminal has not received  106  any PDUs from the NOC since it powered on, the terminal uses the system default value of FL_to_RL_CNo_Difference it has received from the NOC in the broadcasted System Parameters message  108  in its next calculation. If the terminal has received  110  a PDU from the NOC since it powered on, the terminal uses the latest value of FL_to_RL_CNo_Difference  112  that it has previously computed using the RL_CNo feedback in the last PDU from the NOC in its next calculation. 
     The terminal then calculates an estimated RL C/No level  114  as:
 
Estimated RL  C/N   0 =FL  C /No−FL_to_RL —   C No_Difference−PDU Margin
 
     Where:
         FL C/No=The FL C/No the terminal is currently measuring       

     The terminal converts the estimated RL C/No to a data rate  116  to use when transmitting the PDU through a table look-up. The terminal creates the RL PDU and inserts the recently measured FL C/No into the PDU header  118  for the NOC to use in its FL data rate determination calculations. The PDU is transmitted and the terminal waits for a response from the NOC  120 . The terminal also saves the recently measured FL C/No. The terminal waits a predetermined time for the NOC response  122 . Depending on whether a response is received, the terminal performs one of two actions. If the terminal does not receive  124  a response from the terminal and if the maximum number of transmit attempts has not been reached  126 , the terminal re-transmits or resends the PDU  128  after computing a new estimated RL C/No and PDU data rate. If the maximum number of transmission attempts has been reached  128 , the terminal drops the message  130 . 
     If the terminal has received the NOC&#39;s response  132 , it extracts the last RL C/No level  134  the NOC measured from the response message. The terminal uses that RL C/No level and the previously saved FL C/No to compute a new value of FL_to_RL_CNo_Difference. The terminal drops the message and considers it successfully delivered  136 . 
     An example of RL data rates for selection is shown in the table of  FIG. 5 . In this particular embodiment, the data rate table is configurable and can be expanded up to 16 RL data rates. 
     Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof. 
     Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention. 
     The various illustrative logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with 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 device, discrete gate or transistor logic, discrete hardware components, or any combination thereof 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 devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. 
     The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal. 
     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.