Free-space optical communication system and methods for efficient data delivery

Communication systems and methods for high-data-rate, high-efficiency, free-space communications are described. High-speed optical modems and automatic repeat request can be employed to transmit large data files without data errors between remote devices, such as an earth-orbiting satellite and ground station. Data rates over 100 Gb/s can be achieved.

BACKGROUND

Earth-orbiting satellites have become more numerous and more technically advanced with state-of-the art monitoring equipment. Global positioning satellites may be distributed around the globe and linked in a communication network. Remote sensing satellites may include higher-resolution imaging apparatus and acquire larger amounts of imaging and/or sensing data than their predecessors.

As a result of technical advances in earth-orbiting satellites, communication links between ground stations and satellites are evolving to higher data rates so that fast data transfer of large data files can be achieved. Unlike ground-based communication links over optical fibers which have low loss and low signal disturbance, an optical communication link between a ground station and satellite must propagate through a considerable distance of atmosphere, which can be turbulent and lossy and may have temporary concentrations of particulates (e.g., vapor or smoke) that absorb an optical beam. Additionally, pointing jitter in tracking of a satellite's movement can contribute to signal loss and channel fading. Achieving high-data-rate, error-free communication through long distances of the atmosphere can be challenging.

SUMMARY

The described implementations relate to efficient, high-data-rate, free-space optical communication links. Such links may be used between a ground station and an earth-orbiting satellite or spacecraft, for example, though the links may also be used between two remote stations (one or both of which is ground-based, aeronautical, earth-orbiting, or in outer space). The communication system comprises at least one communication terminal having a large buffer, an automatic repeat request controller, and at least one high-speed optical modem that operates at data transmission speeds up to 100 gigabits/second (Gb/s). The communication terminal can be readily scaled using wavelength-division multiplexing (WDM) to operate with N high-speed optical modems, so that data transmission speeds up to N×100 Gb/s are possible. Adaptive optics can be included to mitigate channel fading due to atmospheric turbulence. High data-transmission efficiencies are possible.

Some implementations relate to a terminal for free-space communication. The terminal can include a data buffer to store data for transmission and an automatic repeat request controller adapted to: maintain a slot buffer to store a plurality of identifiers for a plurality of data blocks, the plurality of data blocks being a portion of the data stored in the data buffer; cycle through the slot buffer a plurality of times; retrieve each data block of the plurality of data blocks from the data buffer in succession according to the plurality of identifiers in the slot buffer in response to cycling through the slot buffer; forward each retrieved data block for transmission to a receiving terminal; receive feedback information from the receiving terminal for each cycle through the slot buffer indicating whether each data block identified in the slot buffer is requested to be retransmitted or is not requested to be retransmitted; replace, in the slot buffer, each identifier of the plurality of identifiers with a new identifier for a new data block that is stored in the data buffer, wherein the replaced identifier is an identifier for which the feedback information indicates that a corresponding data block is not requested to be retransmitted; and leave unchanged, in the slot buffer, each identifier of the plurality of identifiers for which the feedback information indicates that a corresponding data block is requested to be retransmitted. The terminal can further include a first optical transceiver to receive at least a portion of a first data block of the plurality of data blocks from the automatic repeat request controller and to encode the at least a portion of the first data block onto a first optical carrier wave and optics to transmit the first optical carrier wave encoded with the at least the portion of the first data block to the receiving terminal via a free space optical link.

Some implementations relate to a terminal for free-space communication. The terminal can include optics to receive from a transmitting terminal via a free-space optical link a first optical carrier wave encoding a plurality of data blocks in a communication signal, a first optical transceiver to receive a first optical signal from the optics and to decode from the first optical signal frames of data each containing payload data, wherein a data block of the plurality of data blocks comprises the payload data from at least one of the data frames, and a data buffer to store the payload data that are decoded without error from the first optical signal. The terminal can further include an automatic repeat request controller adapted to: maintain a state buffer having a plurality of entries corresponding to the plurality of data blocks; receive the frames of data from the first optical transceiver; extract from a first frame of the frames of data a first identifier for a first data block of the plurality of data blocks, wherein the first data block comprises first data from at least the payload data from the first frame; determine that the first data block is received correctly if the first data is decoded without error; determine that the first data block is received incorrectly if the first data is decoded with error; forward to the data buffer the first data if it is determined that the first data block is received correctly; provide in a first entry of the state buffer, corresponding to a first data block of the plurality of data blocks, a first value indicating that the first data block should be retransmitted if it is determined that the first data block is received incorrectly; provide in the first entry of the state buffer, corresponding to the first data block of the plurality of data blocks, a second value indicating that the first data block should not be retransmitted if it is determined that the first data block is received correctly; prepare feedback information based on the plurality of entries in the state buffer; and forward the feedback information for transmission to the transmitting terminal.

Some implementations relate to a method of free-space optical communication. The method can include acts of: writing, by an automatic repeat request controller, first entries in a slot buffer to identify a plurality of data blocks stored in a data buffer; cycling through the slot buffer a first time, by the automatic repeat request controller; retrieving in succession the plurality of data blocks from the data buffer that are identified by the first entries in the slot buffer; forwarding in succession, by the automatic repeat request controller, the plurality of data blocks to a first optical transceiver for transmission to a receiving terminal; indicating, by the automatic repeat request controller, with second entries of a state buffer transmission status of each data block of the plurality of data blocks; receiving, by the automatic repeat request controller from the receiving terminal, a feedback message containing a plurality of values that each indicate whether each data block of the plurality of data blocks is to be retransmitted to the receiving terminal or is not to be retransmitted to the receiving terminal; comparing, by the automatic repeat request controller, the plurality of values from the feedback message with the second entries in the state buffer; changing, by the automatic repeat request controller, a first entry of the first entries in the slot buffer to a new entry that identifies a new data block stored in the data buffer in response to the comparing indicating that a first data block of the plurality of data blocks identified by the first entry is not to be retransmitted to the receiving terminal; leaving unchanged, by the automatic repeat request controller, a second entry of the first entries in the slot buffer in response to the comparing indicating that a second data block of the plurality of data blocks is to be retransmitted to the receiving terminal; cycling through the slot buffer a second time in a round-robin protocol; forwarding again, by the automatic repeat request controller, the second data block to the first optical transceiver for re-transmission to the receiving terminal; encoding, by the first optical transceiver, data for each data block of the plurality of data blocks received from the automatic repeat request controller onto an optical carrier wave; and transmitting the optical carrier wave to the receiving terminal via a free-space optical link.

Some implementations relate to a method of free-space optical communication. The method can include acts of: receiving, by an optical assembly, an optical communication signal over a free-space optical link from a transmitting terminal, wherein the optical signal encodes a plurality of data blocks; providing, by the optical assembly, a first optical signal to a first optical transceiver; decoding, by the first optical transceiver, frames of data from the first optical signal, each frame of data containing payload data, wherein a data block of the plurality of data blocks comprises the payload data from at least one of the data frames; receiving, by an automatic repeat request controller, the frames of data from the first optical transceiver; maintaining, by the automatic repeat request controller, a state buffer having a plurality of entries corresponding to the plurality of data blocks; extracting, by the automatic repeat request controller, from a first frame of the frames of data a first identifier for a first data block of the plurality of data blocks, wherein the first data block comprises first data from at least the payload data from the first frame; determining, by the automatic repeat request controller, that the first data block is received correctly if the first data is decoded without error; determining, by the automatic repeat request controller, that the first data block is received incorrectly if the first data is decoded with error; forwarding to a data buffer, by the automatic repeat request controller, the first data if it is determined that the first data block is received correctly; providing, by the automatic repeat request controller, in a first entry of the state buffer, corresponding to a first data block of the plurality of data blocks, a first value indicating that the first data block should be retransmitted if it is determined that the first data block is received incorrectly; providing, by the automatic repeat request controller, in the first entry of the state buffer, corresponding to the first data block of the plurality of data blocks, a second value indicating that the first data block should not be retransmitted if it is determined that the first data block is received correctly; preparing, by the automatic repeat request controller, feedback information based on the plurality of entries in the state buffer; and forwarding, by the automatic repeat request controller, the feedback information for transmission to the transmitting terminal.

DETAILED DESCRIPTION

Efficient, high-data-rate, free-space optical communication is desirable for rapid transfer of large data files between two remote systems, such as an earth-orbiting spacecraft (e.g., a satellite) and a ground station, though other applications can be between two ground-based systems, between two airborne systems, or between two orbiting systems. In this context, high-data-rates mean at least 50 gigabits per second. A low-earth-orbiting (LEO) satellite may have a limited time available during its orbit to transfer large amounts of data acquired during its orbit to a ground station. In some cases, the data-transfer rates from the LEO satellite to the ground station may reach hundreds of Gb/s to offload the data from one orbit and free enough storage space for data acquisition in a subsequent orbit. Such high data-transfer rates may allow terabytes of data to be downloaded on a single pass with a base station. Described below are free-space optical communication systems capable of such high data transfer rates.

Free-space optical communication links are subject to physical channel dynamics such as pointing jitter and atmospheric fading that can result in significant signal power variation over time. Depending on the physical phenomenon present, the bandwidth of these power fluctuations may be as low as 10 Hz or as high as 1 kHz. The power variations can result in bursts of data corruption at the physical layer (bit errors) and/or link layer (dropped frames) that can last milliseconds or longer. Conversely, there can be intervals of error-free data transmission that can last at least two milliseconds and longer between the bursts of data corruption.

There are a number of physical and link layer error-control techniques that may provide reliable communication in the presence of such channel dynamics. Examples include physical-layer coding-and-interleaving, link-layer automatic repeat request (ARQ) protocols, and hybrid protocols that span both layers. These methods and their implementations vary in metrics such as throughput efficiency, complexity, and latency. They each can use one or more data buffers at the source and destination terminals. The size of the buffer (in bits) depends on the error-control method and the bandwidth of the power fluctuations and in general scales with data rate of the link. Thus, high data rate systems that use these techniques use large buffers to guarantee reliable data transfer.

For orbiting satellites, the channel fading characteristics can vary during a portion of the orbit during which the satellite communicates with a ground station. For example, atmospheric turbulence can be greater when the satellite is at low angles (nearer the horizon) than directly over the ground station (90 degrees). One approach to dealing with channel fading variations is to change to data transfer rate from a smaller rate when the satellite is near the horizon to a larger data rate when the satellite is directly overhead. However, a continual variation in data rate and synchronization of data rates can be hard to implement in practice when there are drop-outs in communications between transmitting and receiving terminals. Another approach is to wait until the satellite is in a low-error-rate region above the ground station and then transfer data at a highest data rate possible (e.g., up to a terabyte per second). However, doing so can result in an appreciable loss of transmission time where the satellite is in view of the ground station but in a region of space that incurs an unacceptably high bit error rate at the highest data transmission rate.

The communication systems described herein can overcome some limitations of the above described approaches. The systems use a flexible ARQ protocol in which transmission at a high data rate per channel is maintained throughout the portion of the orbit during which the satellite is in view of the ground station (an “in-view” window). The ARQ protocol tracks the success or failure of reception of each transmitted data block and retransmits a data block when it is not successfully received. To address variation in channel fading characteristics, the size of the data blocks can be flexibly adapted based on the timescale of channel fading characteristics. For example, when the satellite is nearer the horizon and atmospheric turbulence is larger, the size of the data block can be made smaller than when the satellite is directly over a ground station. When the data block size is smaller, a corrupted portion of the data block results in less total amount of data to be retransmitted than if the data block were larger. Further, because the communication systems can employ wavelength division multiplexing that is employed in optical communication systems, the total data transfer rate can be scaled by the number of channels (wavelengths) used to transfer data. In this manner, very high data rates with high throughput efficiency can be achieved throughout the satellite's in-view window. These aspects will become more apparent with the following description.

II. Communication Terminals

FIG.1Adepicts a free-space optical communication terminal100that is adapted to use a link-layer ARQ protocol. The communication terminal can be implemented with an addressable data buffer110, ARQ controller120, at least one high-speed optical transceiver modem130, and transmit and receive optics150. The terminal100can support reliable data delivery at very high data rates (e.g., up to 100 Gb/s and even higher) in a free-space optical downlink103. At such data rates, substantial cost benefits can be gained by adapting commercial modem technologies (e.g., from terrestrial fiber networks) to free-space optical links. Such data rates on a low-earth orbiting satellite can allow terabytes of data to be transferred on a single pass with a base station. The communication terminal100may receive data over a free-space optical uplink105at significantly lower data rates (e.g., less than 100 megabits/second or even less than 10 kilobits/second in some cases). The received data over the uplink can aid in providing uncorrupted data to a receiving communication terminal101, such as that depicted inFIG.1B. The communication terminal100depicted inFIG.1Acan be located on an earth-orbiting satellite while the communication terminal ofFIG.1Bcan be located at a ground station, for example.

The communication terminal100ofFIG.1Awill now be described in further detail, though relevant parts of the description can pertain to analogous components in the communication terminal101ofFIG.1Bso that the parts of the description need not be repeated for the analogous components. The data buffer110can comprise one or more addressable memory devices (such as random access memory (RAM) circuits) that can store large amounts of data. The data buffer110can include logic circuitry to store data to and readout data from memory elements in the data buffer. The amount of data stored by the data buffer110can be any value between 100 megabytes (MB) and 100 gigabytes (GB). In some cases, the amount of data stored by the data buffer110may be between 100 GB and 40 terabytes (TB). Unlike terrestrial fiber-based networks that avoid employing an ARQ protocol, the buffer110may have a significantly larger size than buffers used for terrestrial fiber-based networks. The data buffer110may be in communication with one or more data sources 90 (e.g., memory devices, sensors, imaging devices, etc.) that may have slower read and write speeds or data output rates than the speed at which data can be read from the data buffer110. In some cases, the buffer110can be implemented in a parallelized architecture that employs multiple memory modules and multiple read and/or write drives to attain high read and/or write speeds between the buffer110and ARQ controller120, as described further below in connection withFIG.4.

The ARQ controller120implements an ARQ protocol, which involves interfacing with the data buffer110and with the physical-layer modem (transceiver(s)130). The ARQ controller120may comprise at least one processor125(e.g., digital signal processor, field-programmable gate array, microprocessor, application-specific integrated chip, or some combination thereof) that is adapted with code to communicate with the data buffer110, control reading data from and optionally writing data to the data buffer110, prepare the data for transmission, and forward the data at least once to a transceiver130for transmission over a free-space optical link103. The ARQ controller may maintain and update buffers relating to blocks of data, or sub-blocks in some cases, that are transmitted over the optical link103, as described further below. The ARQ controller120may control readout of data from the buffer110, prepare the data for transmission, and send the data to the transceiver(s) at data rates as high as or higher than those achieved with each transceiver130.

Each transceiver130may comprise a high-speed optical transceiver that can encode data received from the ARQ controller120onto an optical carrier wave for transmission of the data over the free-space optical link103. Although two transceivers are shown inFIG.1A, a free-space optical communication terminal100may have N transceivers130, where N is an integer having a value from 1 to 10. In some cases, more transceivers130may be used. An example of a coherent optical transceiver is a commercial 100 Gb/s coherent optical transceiver that may be used in terrestrial fiber-based networks, such as the CFP-100G-LR4 coherent transceiver available from Cisco Systems, Inc. of San Jose, Calif.

FIG.1Bdepicts a second communication terminal101that can communicate with the first communication terminal100over free-space optical links103,105. An advantageous feature of the communication terminals100,101is that they may use identical components. For example, the transceivers130,132and data buffers110,112may be identical hardware components. The transmit and receive optics150,152may be similar, though in some cases the transmit and receive optics152may include adaptive optics and adaptive optic control circuitry whereas the transmit and receive optics150may not. The inclusion of adaptive optics and adaptive optics control circuitry on the receiving terminal101can make it possible to use the transmitting terminal100without adaptive optics on a satellite, for example. The ARQ controllers may comprise similar or identical hardware but may be programmed to operate differently. For example, the ARQ controller120may be programmed to retrieve data from the data buffer110and determine when to send and resend the data to the transceivers130for transmission at high data rates over the free-space optical link103(functionality suitable for transmitting data at a high data rate), whereas the ARQ controller122may be programmed to receive data from the transceivers132at high data rates, determine whether the received data is corrupted, and send uncorrupted data to the buffer112for storage (functionality suitable for receiving data error-free at a high data rate). The second communication terminal101may be located on a ground station, spacecraft, or aircraft.

FIG.1Cdepicts a free-space optical communication system that employs wavelength division multiplexing and optical amplification. The transmitting communication terminal100can include a wavelength-division multiplexer140that combines optical outputs from two or more transceivers130onto a common optical path, such as a single optical fiber. Outputs from the transceivers130can be at different optical wavelengths. The transmitting communication terminal100can also include an optical amplifier (such as an erbium-doped fiber amplifier) to boost the optical signal(s) before launching into free space by the transmit and receive optics150. The transmitting communication terminal100can include a lower data rate optical tracker/receiver160to receive an uplink optical signal and to aid in a pointing, acquisition, and tracking process described below.

The receiving communication terminal101can include a wavelength-division multiplexer142to demultiplex two or more optical signals at different wavelengths from a common optical path onto separate optical paths that connect to two or more transceivers132. The receiving communication terminal101can also include an optical amplifier145to increase the strength of the optical signals received via the downlink103. The transmit and receive optics152can include at least one 40-cm-diameter lens153(seeFIG.1D) that receives the optical carrier wave(s) of the optical downlink103. The transmit and receive optics can further include at least one adaptive optic155to compensate for wavefront distortions in the received optical beam(s). The wavefront distortions can be due to atmospheric turbulence and create intensity variations across the beam(s).

Such intensity variations can manifest as multiple spatial modes and adversely affect power coupling of the received optical beams (e.g., power coupled into an optical fiber159for subsequent signal decoding and processing). The wavefront distortions can vary in time and lead to increased coupling loss, causing channel fading which is plotted in the graph ofFIG.1E. In some cases, the loss is large enough to drop the signal power below a forward error correction threshold (indicated by the dashed line). When this happens, the data cannot be received without error and frames of data can be dropped, as depicted inFIG.1E. By keeping the frame time short (e.g., on the order of or less than the time scale for which power drops below the forward error correction (FEC) threshold), then the amount of data that must be retransmitted due to a dropped frame can be reduced compared to a case where the frame time is significantly longer than the power drop-out time.

For the implementation ofFIG.1C, the transmitter162and receiver160for the uplink105can be different apparatus from the transceivers130,132for the downlink103. This is possible since the uplink data rate can be significantly lower (by orders of magnitude) than the downlink data rate. Whether or not the transmitters and receivers differ for the uplink105and downlink103, the uplink105can be in band with or out-of-band from the downlink103. When out of band, the uplink105can use an optical carrier wave having a different wavelength than the wavelength(s) used in the downlink103. In some cases for an implementation like that shown inFIG.1C, the uplink105can use an RF carrier wave whereas the downlink utilizes one or more optical carrier waves.

FIG.1Cdepicts the automatic repeat request controllers120,122as integrated with the data buffers110,112. Implementing the ARQ logic on a same board as the data buffer can improve the speed of data transmission. Advantageously, the transmitting communication terminals100ofFIG.1AandFIG.1Ccan be assembled into a small package. For example, this package can be no larger than a 3-unit payload size for a satellite.

Example components of a high-speed optical transceiver130that can be used with the transmitting communication terminals100ofFIG.1AandFIG.1Care shown inFIG.2. First data input/output ports132of the transceiver130may comprise multiple wired data links (e.g., Ethernet cable data links) that connect to read/write circuitry of the buffer110. Second data input/output ports (transmit port133and receive port134) of the transceiver130may each comprise a fiber-optic link (e.g., a single-mode optical fiber). The transmit port133can carry at least one optical carrier wave (from at least one laser210) that is modulated with data from the buffer. The receive port134can also carry at least one optical carrier wave from a received optical signal.

The transceiver130can include electronic and optical components (e.g., a processor125which is a digital signal processor (DSP) in the illustrated implementation, digital-to-analog converters (DACs)220, analog-to-digital converters (ADCs)225, line drivers or amplifiers230, at least one integrated optical modulator240, at least one integrated optical receiver250, and photodetectors and transimpedance amplifiers260) to encode data read from the buffer onto at least one carrier wave and to decode received data that has been encoded onto at least one carrier wave from the laser210. In some implementations, the integrated optical modulator240is configured to perform quadrature phase-shift keying to encode data from the buffer110onto an optical carrier wave. The integrated optical receiver250can comprise a 90-degree optical hybrid for receiving and demodulating incoming optical signals. The transceivers130,132may further execute instructions on the processor125that are stored in memory to implement at least forward error correction (FEC). A transmit (Tx) port133and receive (Rx) port134at the transceiver130are indicated inFIG.2and may connect to single mode optical fibers running between the transceiver(s)130and the transmit and receive optics150.

The transmit and receive optics150can include optics to receive, from the transceiver(s), one or more single-mode beams output from one or more optical fibers of the transceiver130, combine multiple beams (if present) onto a common optical path, enlarge the beam waist(s), and output a collimated or diverging beam for transmitting the data over the free-space optical downlink103. The optics150may include one or more fiber couplers (e.g., lens(es), graded-refractive index lens(es), and/or tapered core fiber(s)), wavelength-division multiplexors (e.g., integrated optical multimode interference couplers, resonant cavities, gratings, ring resonators, waveguide couplers, etc.), polarization combiners, beam expanders, optical amplifiers, adaptive optics, adaptive optic control circuitry, mirrors and/or actuators for beam steering, control circuitry for beam steering, or some combination of the foregoing components. The output beam from the transmit and receive optics150may comprise one or more wavelengths of radiation (e.g., infrared wavelengths between 1100 nm and 1600 nm) for wavelength division multiplexing. In some cases, the optical beam(s) of the optical downlink103may have different wavelengths than the optical beam(s) of the optical uplink105for an out-of-band return signal, so that a common optical path can be used for transmitted and received optical beams and so that the received optical beam for the uplink105can be separated onto a receive optical path for the transceiver(s)130.

As indicated above, the communication terminal100can be compatible with standardized link-layer technologies, such as Ethernet that employs coherent optical transceivers. This compatibility can allow the ARQ system to be paired with physical-layer modem technologies that use standardized link-layer interfaces and high data rates. Communication terminals100,101can be used for data delivery over point-to-point links as well as more general data networks that may include multiple sources and destinations and multiple hops between source and destination.

III. Terminal Operation

An example operation of the communication terminals100,101can be as follows:1. One or more sensors and/or one or more imaging devices associated with the first communication terminal100ofFIG.1Acollects data and sends it to the ARQ controller120and/or to the data buffer110for storage in the data buffer110. The data may be stored in one or more data files in the data buffer110.2. The file(s) can be parsed by the ARQ controller120(e.g., by processor125or logic circuitry of the buffer110) into blocks and possibly sub-blocks that are uniquely identified with one or more identifiers for transmission.3. When a free-space optical link is established with a second communication terminal101, reliable transfer of the file(s) to the second communication terminal101can begin using an ARQ protocol that is described in further detail below.4. The ARQ controller120prepares a slot buffer310that contains identifiers (ID1, ID2, . . . IDK) for the blocks and/or sub-blocks in the data buffer110to be transmitted and a state buffer320that includes corresponding information (S1, S2, . . . SK) about the success and/or failure of data transfer, as depicted inFIG.3. The ARQ controller120may or may not prepare a slot index buffer305to store indexing information to the associated entries in the slot buffer310and state buffer320.5. The ARQ controller120cycles through the slot buffer310in round robin to retrieve data identified by each identifier in the slot buffer310and prepares frames that include the retrieved data with header information and sends the frames to the transceiver(s)130for high data-rate transmission over the optical link1036. The ARQ controller122analyzes received frames and data from the optical link103and determines whether the data is corrupted (lost bits due to power fluctuations, incorrect bits determined from a cyclic redundancy check, for example).7. If the received data is not corrupted or can be repaired using FEC, the ARQ controller122forwards the data for storage in data buffer112and prepares and sends a feedback message over the optical link105indicating the data was received successfully without any data errors. Any feedback messages can be in-band or out-of-band with regard to the optical link103.8. If the received data is corrupted, the ARQ controller122prepares and sends a feedback message over the optical link105that results in a request for retransmission of the data by ARQ controller120.9. As feedback messages are received, the ARQ controller120processes them to determine whether successful or unsuccessful reception of data frames has occurred. The ARQ controller120continues cycling through the slot buffer310and state buffer320in round robin manner.10. When the ARQ controller120determines that unsuccessful reception of a data block or sub-block occurred, the ARQ controller120re-retrieves the data from the buffer110and sends the data back to the transceiver(s) for re-transmission to the second communication terminal101.11. When the ARQ controller120determines that successful reception of the data occurred, the ARQ controller120updates entries in the slot buffer310and state buffer320with new information to identify a new data block or sub-block that can be retrieved from the data buffer110.12. The operations of the two ARQ controllers120,122continue until all data blocks for the file(s) are transferred or the optical links103,105can no longer be maintained (e.g., because the satellite has moved out of range).13. The file(s) stored in buffer112can then be retrieved by a data sink92(e.g., a computing or data-processing system of an end user) at any data rate and at any time. For example, this transfer could begin during the space-to-ground transfer, or it could occur after the space-to-ground transfer is complete. It could also occur using equivalently high-data-rate communications over a terrestrial fiber optic network.

FIG.3depicts examples of a slot index buffer305, a slot buffer310, and a state buffer320that may be created in memory and maintained by the transmitting ARQ controller120during transmission of data from the data buffer110. Each buffer can comprise read/write memory elements. The ARQ controller120may create and maintain only a slot buffer310in some cases, or it may create and maintain the slot buffer310in combination with at least one of the other buffers in some cases. The slot buffer310can include a plurality of entries storing identifiers (ID1, ID2, . . . ) that each identify, for example, the starting location in the data buffer110of one of the plurality of data blocks410stored in the data buffer. Each buffer305,310,320can have a same number of entries (K in the illustrated example, where K is an integer greater than 1). The value of K can be selected based on transmission characteristics as described below. The entries that correspond to a data block (e.g., entries “2” and “S2” for data block “ID2”) can be stored in association with each other (e.g., using predetermined offsets in memory address from each other, or by cross-referencing memory addresses in each entry) so that the corresponding entries can be readily retrieved together.

The above example can provide a file store-and-transfer service for latency-tolerant users. The ARQ protocol can provide high throughput efficiency and low complexity at the potential expense of latency. An example latency-tolerant application is the storage and transfer of data from a low-earth-orbiting satellite to a ground station, which can have a delay due to the limited link availability (e.g., a limited available time slot for data transfer during each orbit).

Further details of the ARQ protocol and ARQ controller actions will now be described. An objective of the communication terminals100,101and ARQ protocol is high-speed, high-efficiency, error-free link-layer transfer of signals and/or data files from one communication terminal100to another communication terminal101. In this regard, high-speed can be at least 100 Gb/s, high link-layer throughput efficiency can be at least 80%, and low-data-rate feedback can be less than 10 kilobits per second (kb/s). High speed data rates are possible using the transceivers130and terminal designs described above. High throughput efficiency and low-data-rate feedback are possible by selecting appropriately sized data blocks410as described herein and feeding back information from the receiving terminal's state buffer322(e.g., one bit for each data block) that indicates whether or not the data block was received successfully. Efficiency of data transfer can also be improved using adaptive optics to compensate for atmospheric turbulence and FEC.

The throughput efficiency is determined as a ratio of realized data transfer rate to transceiver transmission data rate. The realized data transfer rate is computed by dividing an amount of correct data received by the total time taken to send the data one or more times to yield the amount of correct data. Since some data frames may be dropped, they will be sent more than once, reducing the realized data transfer rate.

Once optical links103,105have been established between two communication terminals100,101, the ARQ controller120can partition the address space and corresponding data to be transferred into smaller sized data blocks410, which also may be referred to as “ARQ blocks.” The data blocks can be portions of the total amount of data in the buffer110that is to be transferred. In some cases, a data block410can be a portion of a data file that is stored in the buffer410(e.g., a portion of a digital high-resolution image). One way to partition the data in a buffer110into data blocks410is depicted inFIG.4. For the implementation ofFIG.4, the buffer110comprises multiple memory devices420(e.g., memory drives) configured to output data in parallel at high data rates over multiple cables to the ARQ controller120.

A data block410can be striped or divided across the multiple memory devices420having separate data drivers that each operate at a high data readout and/or write speed (e.g., 25 Gb/s in the illustrated implementation). By dividing the data for a data block across the multiple memory devices420, the data for a data block410can be read out of the buffer110in preparation for transmission at a data rate of N×R where N is the number of memory devices420and R is the readout rate for each memory device. For the illustrated example, 100 Gb/s read-out of the data from the buffer110for a data block410is possible. Each memory device420may comprise memory sub-blocks405(sometimes referred to as “atoms”) that can be the smallest unit of data read out by the memory device's read-out circuitry. As one example, the size of the sub-block405can be 2 kB, though other sizes can be used in other implementations. There can be many sub-blocks in a data block410.

AlthoughFIG.4indicates that the buffer110contains four similar memory devices420with identical read-out speeds and an equal number of sub-blocks405from each memory device in a data block410, the invention is not so limited. The buffer110may comprise fewer or more than four memory devices420. The read-out speeds of the memory devices420may differ between at least two of the memory devices. The size of the sub-blocks405may differ between at least two of the memory devices420.

In some implementations, the size of a data block410can be determined by a user of the system and is not limited to a fixed size. In some cases, the size of the data block410can be selected based upon fading characteristics in a communication channel (e.g., average time scale of power fluctuations which may be based on a dominant frequency of the power fluctuations, average duration over which data is received correctly, average duration of signal drop-outs, or some combination of these factors). Selecting a larger data block size can reduce the uplink data rate, though may reduce the efficiency of downlink data transfer if large amounts of data are requested to be retransmitted. Selecting a smaller data block size can increase the uplink data rate and can improve the efficiency of downlink data transfer.

For example, if the average duration over which data is correctly received is Taseconds (e.g., an average interval between times when the received signal power falls below the forward-error correction limit as inFIG.1E), then the data block size may be selected to be approximately Ta×R, or less than this value, where R is the total data read-out rate from the buffer110. With the example ofFIG.4and a 0.5 millisecond average error-free received signal duration, then the data block size may be selected to be approximately 100 Gb/s×0.5 ms, e.g., 5 megabytes (MB). As another example, if the average duration of signal drop-outs is Tbseconds (e.g., an average time interval during which the received power is below the FEC limit), then the data block size may be selected to be approximately Tb×R or less than this value.

In some implementations, the data block size can be selected automatically by the ARQ controller (e.g., on the fly during data transmission) based upon one or more of the above factors (power fluctuations which may be measured by the receiving ARQ controller122and fed back over the uplink105to the transmitting ARQ controller120, average duration of error-free data transmission, average duration of signal drop-out) that are determined by the ARQ controller120during the data transmission. For example, if signal fading and signal drop-outs become more frequent during a transmission, the ARQ controller120may reduce the size of the data block. If signal fading and signal drop-outs become less frequent during a transmission, the ARQ controller120may increase the size of the data block. The signal fading and signal drop-out characteristics can be determined from feedback signals from the second communication terminal101(e.g., the returned data from the state buffer322described below) that indicate whether data blocks were received successfully or unsuccessfully.

The ARQ controller120can associate a sequence number or a first unique identifier (numeric or alpha-numeric code) with each data block410(coming from the buffer110) that identifies where the data block is ordered in relation to other data blocks retrieved from the buffer110. The sequence number or first unique identifier can be used by the receiving ARQ controller122to reassemble data blocks410for storage. The sequence number or the first unique identifier can also be used by the transmitting ARQ controller120to re-retrieve data from the buffer110when transmission of the data block410was unsuccessful.

FIG.5AandFIG.5Bshow examples of a data transmission frames500,501that can be sent during communication between communication terminals100,101. Multiple frames500,501can be transmitted in sequence over the optical link103during the communication. Each data block410(if small enough) or a sub-block of a data block410that has been extracted by the ARQ controller120can be loaded into a corresponding frame500,501for transmission as the data payload560of the frame. In some implementations, the frame500,501can be prepared according to, and be compatible with, Ethernet protocols or other standardized protocols. The frame500,501can include a header portion or metadata that may include one or more of the following items: an error check value510(e.g., a cyclic redundancy check (CRC) value), a block identifier520, a sub-block identifier530, a slot index value540(FIG.5B), and a state value550.

In an example implementation that is adapted for Ethernet protocols, the size of a data block410may be significantly larger than the size of a standard Ethernet payload (e.g., at least two times larger than a standard Ethernet payload). In some cases, tens, hundreds, or thousands of Ethernet frames may carry the data of one data block410. Accordingly, the ARQ controller120can further partition data blocks410received from the buffer110into smaller sub-blocks that are the same size or smaller than the payload560of the packet or frame500,501. Any unused space in a payload may be designated as null or padded with null identifiers. The sub-blocks can be assigned a second identifier (numeric or alpha-numeric code that may be used as the sub-block identifier530) that identifies their relative ordering within the data block410to which it belongs. In some cases, the size of a data block410can be selected by the ARQ controller120to fit within a standard Ethernet payload, for example, in which case the ARQ controller120may not partition the data blocks410into smaller sub-blocks.

The block identifier520of a frame500,501can identify to which data block410the data payload560belongs. In some cases, the block identifier may have a same value as the entry (e.g., ID1) in the slot buffer310that is used to identify the data block410retrieved from the buffer110. The sub-block identifier530(if used) can identify to which data sub-block the data payload560belongs and may further identify a relative position or location for the payload data within other data transmitted by the transmitting communication terminal100for a data block410. For example, a data block410parsed into three sub-blocks can have the following block identifiers (first number in pair) and sub-blocks identifiers (second number in pair): (001,01), (001,02), (001,03). These identifier combinations can be used by the receiving communication terminal's ARQ controller122to determine the order of sub-blocks in the corresponding data block410and to reassemble the data in an intelligible order.

During transmission of data files, the transmitting ARQ controller120and the receiving ARQ controller122can coordinate with each other to ensure that the transmitting ARQ controller120re-transmits data blocks410that were not successfully received by the receiving ARQ controller122. The coordination can be accomplished by means of header data in a transmission frame500,501and feedback messages returned to the transmitting ARQ controller120in the optical uplink105. Aspects of the coordination and ARQ protocol include the following features:1. The transmitting ARQ controller120continuously retrieves data blocks410from the data buffer110, placing the data into one or more frames500,501with header information, and passing the frames to one or more transceivers130for transmission over the optical link103. There can be no wait time or idling between frame assembly and subsequent transmission of the data frame, so that the data is output at high data rates (e.g., 100 Gb/s for the illustrated example ofFIG.4).2. If the feedback messages received from the receiving ARQ controller122indicate error-free transmission of the data blocks, then the ARQ controller120continues working its way through the data in the buffer110.3. The transmitting ARQ controller120only re-transmits data blocks410(and/or sub-blocks) that were not successfully received by the receiving ARQ controller122, and does not have to retransmit an entire data file, for example.4. The data in the buffer110can be successfully transferred from the transmitting terminal100to the receiving terminal's buffer112(with some portions of the data being retransmitted), even though there may be initial transmission errors detected and reported back on the optical uplink105.5. The sub-blocks of a data block410may be transmitted out-of-order without compromising the ARQ protocol.
Features 1-3 can result in a high link-layer throughput efficiency.

To transfer a data file, the ARQ controller120retrieves data blocks410from the buffer110, as determined by the ARQ protocol. Initially, the data blocks410may be retrieved in a sequential or non-sequential order as the ARQ controller120reads out data values from the memory devices420and works its way through data stored in each memory device. If the ARQ controller120subsequently learns from a feedback signal transmitted by the receiving ARQ controller122that a data block410, or sub-block thereof, was not received successfully, the ARQ controller120may repeat a request to retrieve data from a previously read portion of at least one of the memory devices420, temporarily interrupting its order of retrieving data from the memory devices420, and prepare the re-retrieved data that was not received successfully into one or more frames500,501for retransmission. The retransmitted frames can be transmitted again with the same block ID520and/or sub-block ID530values that were transmitted with the original frames.

When preparing data for transmission, the ARQ controller120can load a data block410(if small enough) or one of its sub-blocks into a transmission frame's data payload560as described above. The ARQ controller120can also create corresponding entries in its slot buffer310and state buffer320(shown inFIG.3) before or after retrieval of data from the buffer110to keep track of the data payloads560and/or data blocks410sent in successive frames500,501and to monitor the status of transmission of the data payloads560and/or data blocks410.

According to one implementation, the ARQ controller120can write an identifier (e.g., ID1) in the slot buffer310for a data block410that is to be retrieved from the buffer110and transmitted to the other terminal. In some cases, the identifier written into the slot buffer310can be a memory address, index value of a look-up table, a pointer value, or other value that identifies a desired data block410in the buffer110. In some cases, the identifier written into the slot buffer can be used by the ARQ controller and/or read-out circuitry of the buffer110to identify the location(s) in memory of the data block410. The slot buffer310can include a plurality of identifiers (ID1, ID2, ID3, . . . ) corresponding to a plurality of data blocks410that are transmitted. By cycling through the slot buffer310, data blocks can be retrieved from the buffer110and prepared for transmission. The slot buffer310can have a length of K entries, where K is an integer value.

IV. Data Transmission

To track which data blocks410have not yet been transmitted, the transmitting ARQ controller120can maintain a variable N that identifies or is used to identify the minimum sequence number (or memory address) for a data block410that has not yet been retrieved by the ARQ controller120for transmission. Prior to the file transfer, N can be initialized to a value that identifies or is used to identify the first data block410in the file (or its location in memory) to be transferred. The value N can be incremented by 1 (or the size of a data block410) as data blocks410are read from the buffer110by the transmitting ARQ controller120. Once the end of the slot buffer310has been reached (e.g., N=K, where K is the length of the slot buffer), N can only be incremented upon receipt of a feedback message indicating successful reception of a data block410by the receiving ARQ controller122.

FIG.6AthroughFIG.6GandFIG.7depict example data transmission and reception by the transmitting communication terminal100ofFIG.1Aand receiving communication terminal101ofFIG.1B.FIG.6AthroughFIG.6Gdepicts how data blocks can be tracked using values in the slot buffer310.FIG.7illustrates aspects of timing associated with transmissions.

For data transmission, the ARQ controller120can write values (e.g., binary values) into the state buffer320(also having a length of K entries) that reflect the transmission status of the data blocks410identified in corresponding entries of the slot buffer310. At time t0, before transmission begins, the state buffer320may include at least one entry (e.g., 0, though other values may be used) for each data block to indicate that the data block has not been received successfully by a receiving communication terminal101. An example slot buffer310and state buffer320prior to data transmission is shown inFIG.6A.

When an optical link is established between the transmitting communication terminal100and the receiving communication terminal101, transmission of data blocks410can begin. The transmitting ARQ controller120begins cycling through the slot buffer310(indicated by the arrow inFIG.6A) and retrieving the data blocks identified by entries (ID1, ID2, . . . ) in the slot buffer. As each data block is retrieved, the ARQ prepares a data frame500,501containing the data block (or sub-block portion thereof) and transmits the data frame. The data frames are transmitted in rapid succession with little or no delay between transmission of the frames. For example the delay between transmission of data frames may be 1/10thor less the amount of time it takes to transmit a data frame. Preferably, the delay between transmission of the frames is less than 1/1000ththe amount of time it takes to transmit a data frame. The transmission process continues as the ARQ controller120cycles through all entries in the slot buffer310in round robin manner.

FIG.7illustrates an example of timing of data frame transmission and low-data-rate feedback signaling that can be implemented with the automatic repeat request (ARQ) transmission protocol. InFIG.7, each shaded rectangle on the transmitting controller timeline represents a corresponding transmission interval710,711,712, . . . , or716for retrieval, preparation, and transmission of a data frame500,501. As the ARQ controller120accesses the first entry in the slot buffer310, the data block identified as ID1in the example is retrieved and prepared in a data frame500,501for transmission to the receiving communication terminal101. The data frame is transmitted during a first transmission interval710. Subsequent data frames are transmitted during subsequent transmission intervals711,712as data blocks are retrieved by the ARQ controller120according to the entries in the slot buffer310.

The receiving ARQ controller122can prepare and maintain a receiving state buffer322, shown inFIG.6B, that indicates the status of received data blocks410(or sub-block portions of data blocks). The receiving state buffer322can have a same length K as the transmitting state buffer320. Each entry in the receiving state buffer322can comprise one or more bits that indicate the status of a received data payload in a received data frame500,501. InFIG.6B, no data frames have yet been received and the status indicators are all “0” bits for this example.

As a data frame is received, the receiving ARQ controller122can check the integrity of the received data (e.g., by performing a CRC algorithm and comparing the result with the CRC error check value510received in the data frame). If the data is correctly received (has not been corrupted during transmission), then the receiving controller122can update the corresponding entry in its state buffer322with a different data value, as indicated inFIG.6C. If the data was corrupted during transmission, then the receiving controller122may not change the value of the entry in its state buffer322. The receiving ARQ controller can cycle through its state buffer322in round robin manner also, stepping to the next entry after receipt and processing of a data frame and updating the current entry of the state buffer322.

The receiving ARQ controller122can transmit the receiving state buffer322(a feedback message) in a small data frame over the uplink to the transmitting communication terminal. Because the receiving state buffer322can be small in size (e.g., K bits), the return or uplink transmitting intervals720,721(indicated on the receiving controller timeline inFIG.7) can use a small amount of time in comparison the downlink transmitting intervals710,711and yield a significantly lower data rate in the uplink105compared to the downlink103, as described above.

A copy of the updated receiving state buffer322can be transmitted in an uplink data frame according to at least two methods. In a first method, updated copies of the receiving state buffer322can be transmitted after processing each received data frame500,502and updating each entry in the state buffer322. In a second method, a copy of the receiving state buffer322can be transmitted after processing the Kthdata block410received from the transmitting communication terminal100and updating the Kthentry in the state buffer322. In this second method, the uplink transmission of the state buffer322occurs once for each round-robin cycle of the slot buffer310by the ARQ controller, resulting in a significantly lower uplink data rate than the first method. However, the second method may incur a null downlink transmission time between each round-robin cycle of the slot buffer310to allow for receipt and processing of the feedback information before cycling back through the slot buffer. In the first method, the transmission intervals710,711, . . .716may continue at evenly-spaced start times throughout cycling of the slot buffer310.

The ARQ controller120can receive the data from the state buffer322produced by the receiving ARQ controller122and transmitted in a feedback data frame over the uplink105and determine from this feedback information whether any payload data of the transmitted frames500,501are requested to be retransmitted. For example, the transmitting ARQ controller120can perform a bitwise comparison of its current state buffer320with the received state buffer322to determine whether the corresponding entries differ or are the same. For the illustrated example, a difference in entries would mean that the data block (or sub-block portion thereof) was successfully received. A same value in corresponding entries of the two buffers can indicate that the data block was not received successfully, indicating that the corresponding data block is requested to be retransmitted.

Because the amount of data in the uplink105and the data rate can both be orders of magnitude lower than the amount of data transferred and the data rate of the downlink103, the data transmitted in the uplink can be received (mostly) without error. Further, the uplink105may have an optical beam at higher power than the downlink optical beam since a ground-based transmitter is not as constrained by power limitations as a satellite. Nevertheless, FEC, CRCs, and repeat requests can be employed for uplink105transmissions. For example, a CRC value for the data of the state buffer322can be included in an uplink transmission frame and checked by the ARQ controller120.

When the ARQ controller120determines from the received state buffer information that the data payload560in a data frame was received correctly, the ARQ controller may or may not update the corresponding entry in the state buffer320to reflect successful reception (e.g., write a 1 or other value to replace the 0 value as depicted inFIG.6E). Any indication of successful transmission of the data can allow the ARQ controller120to write new identifiers (e.g., IDK+1, IDK+2) in the slot buffer310, as depicted inFIG.6F, to replace identifiers of data blocks that have been successfully received by the receiving communication terminal101. After a new identifier is entered in the slot buffer, the corresponding entry in the state buffer320can be reset. When the ARQ controller120cycles again through the slot buffer, as depicted by the arrow inFIG.6F, it can retrieve and prepare new data from the buffer110that is identified by new identifiers for transmission.

In response to receiving a feedback message indicating unsuccessful reception of the data, the ARQ controller120may leave the state buffer at its current value, or it may write another value to the state buffer320to indicate the failed reception. When the ARQ controller120cycles again to the entry in the slot buffer, as depicted by the arrow inFIG.6G, it can retrieve the data block again (since the identifier in the slot buffer310has not been changed) and re-transmit the data block.

For an implementation where the data of a data block410is divided into multiple data payloads560that are transmitted in multiple frames500,501, the ARQ controller120may indicate to the receiving ARQ controller122that the data block410is divided into multiple data frames. This can be done using an entry in the sub-block ID field530of the data frame500,501. For example, a zero or null value in the sub-block ID field530can indicate that all the data of a data block420is included in the data frame. A bit sequence of [0111] in the sub-block ID field530could be used to indicate that the data frame is a first frame (indicated by the [01] bit pair) of three frames (indicated by the [11] bit pair) that contain all the data of a data block410. The receiving ARQ controller122can then process all received data frames for a data block410and determine (from the CRC values) whether the data was received correctly for each of the frames. If the data payload in any one of the data frames was not received correctly, then the receiving ARQ controller122may not change the value in the receiving state buffer322for the data block to indicate unsuccessful reception of the data block. If the data payloads560in all frames500,501for the data block are received successfully, then the receiving ARQ controller can update the corresponding entry in the state buffer322for the data block.

In some cases, the ARQ controller120may further write values to a slot index buffer305that are used to index to corresponding values in the slot buffer310and state buffer320, as depicted inFIG.5B, such that the data in the slot buffer310and state buffer320can be accessed in a look-up table manner using the slot index value to locate corresponding entries in the table. An index value from the slot index buffer305may be written to one or more frames500as the slot index value540for transmission of a data block410or sub-block. Alternatively, the value in the slot buffer310for a current data block410or sub-block may be written in a data frame500as the slot index value540, and the slot index buffer305may not be implemented. Once a data frame500is prepared, it can be sent to the transceiver(s)130for transmission.

The receiving communication terminal101can receive transmitted frames500over a free-space optical link103. In some implementations, the transceiver(s)132can examine the frames500,501and/or payloads560for data errors (using the CRC values, for example) and deliver non-dropped frames to the receiving ARQ controller122and indicate any dropped frames. In some cases, the ARQ controller122may examine the frames for data errors instead of the transceiver(s). The ARQ controller122can unpack the payloads from the frames and write data that has been received without error to a data buffer112. The block identifier520and sub-block identifier530can be used to write the data in a suitable, intelligible order in the data buffer112. In some cases, when all of the sub-blocks of a given data block410have been written to the data buffer112, that data block410is deemed successfully received. When all of the data blocks410that constitute the one or more files in the data buffer110of the transmitting communication terminal100have been written to the data buffer112, the file transfer is complete.

The slot buffer310and state buffer320can be of length K (an integer greater than 1) and selected manually or automatically on the fly. The length K of the slot buffer can be chosen such that a round-trip communication time is shorter than the time it takes to transmit K data blocks410identified in the slot buffer310. The round-trip communication time TRcan be the time it takes from start of transmission of a data block410to reception and interpretation of a feedback message that indicates the success or failure of reception of that data block by the receiving ARQ controller122.FIG.7depicts an example of a round-trip communication time TR=tR−t0. Because of data processing delay at the receiving communication terminal101, the data of the receiving state buffer322may not be transmitted immediately after receipt of a data frame500,501.

In some implementations, the receiving ARQ controller122may maintain a slot buffer like that of the transmitting ARQ controller120and update its values as data blocks are received. For example, the values in the slot buffer can identify where data for a data block is to be written in the data buffer112of the receiving communication terminal101. The values in the state buffer322may be fed back to the transmitting ARQ controller120individually (e.g., after processing each data frame500,501). Alternatively, the values in the state buffer322can be fed back as a vector R or array of data values that is representative of the receiving ARQ controller's state buffer. In some cases, corresponding slot value(s) may also be fed back.

The receiving ARQ controller122can use the optical uplink105to regularly communicate state values from its state buffer322to the transmitting ARQ controller120as depicted inFIG.7. These feedback transmissions may occur synchronously or asynchronously with the reception of data blocks410. The optical uplink105may not be guaranteed to achieve error-free transmission of R. In this case, an error-detecting code (e.g., CRC value) can be included in a data frame that includes R. If the transmitting ARQ controller120detects that a newly received R contains errors, no further actions are taken until an error-free R is received.

There are several notable features of the ARQ protocol and above-described transmitting and receiving terminals. The protocol is suitable for latency-tolerant data-downloading service such as satellite communications. The data communications can implement data buffering and burst data transmission from point A to point B. The same data buffer hardware can be used for both transmitting memory in the transmitting communication terminal100and receiving memory in the receiving communication terminal101for large-volume storage and ARQ buffer. The ARQ protocol implements a link-layer solution for reliable data transmission. The receiving communication terminal101can interface with physical-layer modem via standardized framing (e.g., Ethernet). the protocol is efficient for regimes of interest (where, e.g., TCP would perform poorly). The protocol uses a low-data-rate feedback channel, which can be in-band or out-of-band.

V. Pointing, Acquisition and Tracking

FIG.8Adepicts an application for the above-described ARQ protocol and communication systems relating to communication between a spacecraft700(e.g., a satellite) and a ground station710. Such applications can include accurate tracking of the ground station by the spacecraft and accurate tracking of the spacecraft by the ground station to maintain adequate optical signals on the optical downlink103and optical uplink105. The optical downlink103can be established using a first optical beam705that is modulated to encode data frames and the optical uplink105can be established using a second optical beam715that is modulated to encode feedback data frames.

Accurate tracking of the ground station and of the satellite can implement a process referred to as pointing, acquisition and tracking (PAT). Some steps of the PAT process are depicted inFIG.8B. The process can begin with a ground station that illuminates (act810) a spacecraft. The ground station710may point a light source (e.g., a laser) at the spacecraft700using open-loop pointing based on prior knowledge of the spacecraft's orbit. The spacecraft700can include at least one sensor in its payload that detects (act820) the illumination. Output from the sensor(s) can be provided (act830) to the spacecraft's attitude control system. The attitude control system can adjust (act840) the spacecraft's attitude and/or orientation of an on-board light source based, at least in part, on the sensor(s) output, so that the spacecraft can point its light source at the ground station (which can be detected as the brightest spot in the spacecraft's field of view. The spacecraft can then illuminate (act850) the ground station. With two light beams illuminating the spacecraft700and ground station710, as depicted inFIG.8A, a free-space optical communication link can be established (act860) between the spacecraft700and ground station710.

A PAT system for free space optical communications systems may point to within a fraction of the optical beam width (at the receiver) used to establish a communication link. For example, the ground station710may point accurately to within a fraction of the width of its uplink optical beam715at the spacecraft and the spacecraft700may point accurately to within a fraction of the width of its downlink optical beam705at the ground station710.

For an optical system, the pointing can be achieved by one or more movable mirrors or lenses in the transmitting and receiving optics150,152. A number of actuation strategies to move the mirror(s) and/or lens(es) can be employed. For example, electromagnetically-driven gimbals may be used for coarse pointing and piezoelectric actuators or galvanometers may be used for fast steering and fine tracking.

FIG.8CandFIG.8Ddepict PAT systems in which high pointing accuracy can be achieved by combining attitude control with feedback from an accurate sensor or sensors at the receiving device. For example, the sensor(s) used to receive an optical uplink beam715can also be used to provide highly accurate pointing feedback information to the ground station710. The example control architecture depicted inFIG.8Cmay be implemented at the spacecraft700to control the spacecraft's attitude. The example control architecture depicted inFIG.8Dmay be implemented at the spacecraft700to control the spacecraft's quarternion. At least one sensor on the spacecraft700that detects the uplink beam from the ground station may comprise, for example, a quad detector than can detect an angle of arrival of the uplink beam. The detected angle may be compared to a reference angle to produce one or more error signals that are fed to the spacecraft's attitude controller. The attitude controller may actuate reaction wheels and/or magnetorquers on the spacecraft700to change an orientation and pointing of the spacecraft so that the communication link is improved. The reaction wheels can adjust the pointing angle of the spacecraft by exchanging momentum with the spacecraft body. The magnetorquers can adjust the pointing angle of the spacecraft by activating electromagnets that interact with the Earth's magnetic field to exert an external torque on the spacecraft.

Additionally or alternatively, other attitude sensors may be used to detect an orientation of the spacecraft700. Examples of other attitude sensors include, but are not limited to, star trackers that match a star field image to known star patterns stored in a database, sun sensors that measure the vector to the sun, magnetometers that measure the local magnetic field, and gyroscopes that measure angular rates. An attitude filter may synthesize (e.g., weight and combine) information from multiple attitude sensors on board the spacecraft to determine, at least in part, an amount of error signal provided to the attitude controller that will control the attitude and angular rate of the spacecraft700.

The control architectures shown inFIG.8CandFIG.8Dmay be implemented without any additional actuation systems in the transmitting and receiving optics150,152. The resulting PAT systems can encompass both the response of the ground station actuation systems and the error calculation within the transmitting or receiving communication terminal. These PAT systems can enable more efficient delivery of data (by reducing the number of dropped frames due to low signal strength) and may avoid potentially large size/weight/power/cost additions to the respective optical systems.

CONCLUSION

The phrase “and/or,” as used herein in the specification and in the claims, should be understood to mean “either or both” of the components so conjoined, i.e., components that are conjunctively present in some cases and disjunctively present in other cases. Multiple components listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the components so conjoined. Other components may optionally be present other than the components specifically identified by the “and/or” clause, whether related or unrelated to those components specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including components other than B); in another embodiment, to B only (optionally including components other than A); in yet another embodiment, to both A and B (optionally including other components); etc.

As used herein in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more components, should be understood to mean at least one component selected from any one or more of the components in the list of components, but not necessarily including at least one of each and every component specifically listed within the list of components and not excluding any combinations of components in the list of components. This definition also allows that components may optionally be present other than the components specifically identified within the list of components to which the phrase “at least one” refers, whether related or unrelated to those components specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including components other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including components other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other components); etc.