SYNCHRONIZING RADIO COMMUNICATIONS
20230070483 · 2023-03-09
Assignee
Inventors
Cpc classification
H04W64/00
ELECTRICITY
H04W16/26
ELECTRICITY
H04W56/0045
ELECTRICITY
International classification
Abstract
A system for synchronizing communications in a radio ranging process involves transmitting calibration signals according to a predetermined schedule of nominal transmission times. Timing offsets are determined. A start time is determined for a transmission of a ranging signal. The start time is earlier than a nominal start time of the ranging signal by at least the largest timing offset. Another system for synchronization involves a radio device transmitting a calibration signal to a second radio device and receiving a calibration response signal from the second radio device. A time-of-flight value is determined in dependence on a time of departure of the calibration signal and a time of arrival of the calibration response signal. A ranging signal is transmitted at a time determined in dependence on the determined time-of-flight value. A ranging response signal is received and processed to determine a range value.
Claims
1. A method for synchronizing communications in a radio ranging process, the method comprising: transmitting a succession of calibration signals to a first radio device from a second radio device according to a predetermined schedule of nominal transmission times; determining a set of timing offsets, wherein each timing offset is determined in dependence on i) a time of arrival at the first radio device of a respective calibration signal of the succession of calibration signals, and ii) the nominal transmission time for the calibration signal; determining a start time for a transmission of an unmodulated-carrier ranging signal by the first radio device, by processing the set of timing offsets and data representative of a nominal start time for the transmission of the unmodulated-carrier ranging signal to determine a start time for the transmission that is earlier than the nominal start time by at least a largest timing offset in the set of timing offsets; and transmitting the unmodulated-carrier ranging signal from the first radio device at the determined start time.
2. The method of claim 1, further comprising: determining an end time for the transmission of the unmodulated-carrier ranging signal by the first radio device, by processing the set of timing offsets and data representative of a nominal end time for the transmission of the unmodulated-carrier ranging signal to determine an end time for the transmission that is not earlier than the nominal end time by more than a smallest timing offset in the set of timing offsets; and ceasing transmitting the unmodulated-carrier ranging signal from the first radio device at the determined end time.
3. A radio device configured to: receive a succession of calibration signals transmitted to the radio device, according to a predetermined schedule of nominal transmission times, by a second radio device; determine a set of timing offsets, wherein each timing offset is determined in dependence on i) a time of arrival at the radio device of a respective calibration signal of the succession of calibration signals, and ii) the nominal transmission time for the calibration signal; determine a start time for a transmission of an unmodulated-carrier ranging signal by the radio device, by processing the set of timing offsets and data representative of a nominal start time for the transmission of the unmodulated-carrier ranging signal to determine a start time for the transmission that is earlier than the nominal start time by at least a largest timing offset in the set of timing offsets; and transmit the unmodulated-carrier ranging signal at the determined start time.
4. The radio device of claim 3, further configured to: determine an end time for the transmission of the unmodulated-carrier ranging signal by the first radio device, by processing the set of timing offsets and data representative of a nominal end time for the transmission of the unmodulated-carrier ranging signal to determine an end time for the transmission that is not earlier than the nominal end time by more than a smallest timing offset in the set of timing offsets; and cease transmitting the unmodulated-carrier ranging signal from the first radio device at the determined end time.
5. The radio device of claim 3, configured to compensate for an internal delay within radio transmission circuitry of the radio device when determining the start time for the transmission.
6. The radio device of claim 3, wherein the radio device comprises a correlator or symbol detector, and is configured to receive modulated calibration signals and to use the correlator or symbol detector to determine a time of arrival of each calibration signal.
7. The radio device of claim 3, configured to: determine a respective start time for each of a succession of transmissions of unmodulated-carrier ranging signals by the first radio device; and transmit the succession of unmodulated-carrier ranging signals at the determined start times.
8. The radio device of claim 3, configured to determine each timing offset at least in part by subtracting the nominal transmission time for each calibration signal of the succession of calibration signals from the time of arrival of the respective calibration signal.
9. The radio device of claim 3, configured to determine the start time as a predetermined function of at least the nominal start time and a largest timing offset in the set of timing offsets.
10. The radio device of claim 3, configured to subtract, from the nominal start time, a largest timing offset of the set of timing offsets plus a constant timing jitter value, when determining the start time.
11. The radio device of claim 3, configured to determine the start time in further dependence on a fractional-frequency-offset factor.
12. The radio device of claim 3, configured to determine a start time for receiving a ranging signal from the second radio device, by processing the set of timing offsets and data representative of data representative of a nominal start time for the reception of the ranging signal to determine a start time that is later than the predetermined nominal start time by at least the largest timing offset in the set of timing offsets.
13. The radio device of claim 12, further configured to determine an end time for receiving the ranging signal by processing data representative of a nominal end time for the reception of the ranging signal to determine an end time that is earlier than the nominal end time by at least the largest timing offset in the set of timing offsets.
14. A radio ranging system comprising a first radio device according to claim 3 and further comprising said second radio device.
15. The radio ranging system of claim 14, wherein the second radio device is configured to: receive a succession of unmodulated-carrier ranging signals from the first radio device; and use the succession of unmodulated-carrier ranging signals to determine a range value representative of a distance between the first radio device and the second radio device.
16. The radio ranging system of claim 14, wherein: the first radio device is configured to be a reflector device; the second radio device is configured to be an initiator device; and the first radio device is configured to transmit the unmodulated-carrier ranging signal as a ranging response signal in response to receiving a ranging signal from the second radio device.
17. The radio ranging system of claim 14, wherein: the first radio device is configured to be an initiator device; the second radio device is configured to be a reflector device; and the second radio device is configured to transmit a ranging response signal in response to receiving the unmodulated-carrier ranging signal from the first radio device.
18. A radio device configured to: transmit a calibration signal to a second radio device; receive a calibration response signal from the second radio device; determine a time-of-flight value in dependence on a time of departure of the calibration signal and a time of arrival of the calibration response signal; transmit a ranging signal to the second radio device at a time determined in dependence on the determined time-of-flight value; receive a ranging response signal from the second radio device; and process the ranging response signal to determine a range value representative of a distance between the first radio device and the second radio device.
19. The radio device of claim 18, wherein the ranging signal comprises an unmodulated carrier signals, and wherein the radio device is configured to determine the range value using phase-based ranging.
20. A radio ranging system comprising a first radio device according to claim 18, and further comprising said second radio device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0095] Certain preferred embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0096]
[0097]
[0098]
[0099]
[0100]
DETAILED DESCRIPTION
[0101]
[0102] The devices 1, 2 may be any radio-equipped devices, such as smartphones, wireless sensors, household appliances, land vehicles, satellites, etc. In one set of embodiments, the devices 1, 2 are consumer electronics products, and are configured to communicate over a Bluetooth™ Low Energy communication link.
[0103] The devices 1, 2 contain respective local oscillators that run independently between the two devices. The device 1, 2 are therefore configured to engage in a two-way ranging protocol that does not rely on having synchronized clocks.
[0104] The devices 1, 2 may use half-duplex communication, whereby one device is in a receiving state while the other device is transmitting. The devices 1, 2 may enter a power-saving state when not expecting to receive transmissions, in which their radio receive circuitry is inactive. It can be important that the devices 1, 2 synchronize their communications so that receive windows are started and ended appropriately, to ensure reliable and efficient communication. Approaches for doing this are disclosed in more detail below.
[0105] To measure the distance d using phase-based ranging, the initiator device 1 sends a first unmodulated radio signal—i.e. a pure continuous sine-wave carrier-of frequency ƒ.sub.1, for a predetermined duration. It may generate this signal directly by amplifying the output of a local oscillator, or it may pass a stream of constant bit values (e.g. all “1”s) through a frequency-shift-key modulator in the device 1. The radio signal is received by the reflector device 2 which measures the phase of the received signal relative to a signal generated using a local oscillator of the reflector 2. After a predetermined interval from receiving the radio signal from the initiator device 1, the reflector 2 transmits a second unmodulated radio signal, or tone, of frequency f.sub.R, to the initiator 1. The initiator 1 measures a second phase relative to the local oscillator of the initiator 1.
[0106] A succession of such two-way radio exchanges are performed across a plurality of different initiator carrier frequencies. One of the devices, e.g. the reflector 2, sends its phase measurements by radio to the other device, e.g. the initiator 1, which combines them with its own phase measurements in order to estimate the distance, d. By performing the exchanges over two or more initiator carrier frequencies, the distance can be determined unambiguously, rather than modulo a wavelength. Performing further exchanges, using different initiator frequencies, can provide redundancy that can help mitigate against interference and multipath fading.
[0107] Assuming no multipath interference, noise or other impairments, the sum 0 of the phase differences measured at each device 1, 2 for a particular carrier frequency, is related to the distance, d, between the devices 1, 2 by
where ƒ.sub.1, and ƒ.sub.R are the signal frequencies transmitted by the initiator 1 and reflector 2 respectively, and also used for determining the phase offset measurements. Tis the time between phase measurements, Δƒ is the offset between ƒ.sub.1 and ƒ.sub.R, and C is a constant.
[0108] If Δƒ=0, the time dependence disappears. Because the devices 1, 2 are not synchronous, it is desirable to minimize Δƒ so that the time dependence is sufficiently small that it can be disregarded while preserving a desired level of accuracy in the distance estimation.
[0109] This can be done by performing a calibration stage, before a main two-way ranging stage, in which the reflector 2 sends a succession of unmodulated calibration signals to the initiator 1. The initiator 1 calculates a fractional frequency offset (FFO) of the reflector 2 relative to its local oscillator in an initial state and then uses this to adjust its local oscillator so that the set of frequencies it transmits in the ranging stage more closely equal the frequencies that the reflector 2 will transmit in response. It also uses the adjusted local oscillator frequencies when down-mixing incoming signals received from the reflector 2.
[0110] In order to keep Δƒ as close to zero as possible during the ranging stage, it is desirable that both the initiator device 1 and the reflector device 2 to have good frequency stability, so that the fractional frequency offset value measured during the calibration stage remains accurate over the duration of the ranging stage. A round-trip timing (RTT) operation is another approach for estimating the distance d, based on times of flight. It may be used by the devices 1, 2 as alternative to phase-based ranging (e.g. if one of the devices does not support phase-based ranging). In some embodiments, RTT may be used in combination with a phase-based ranging operation—e.g. to obtain an initial, coarse estimate of the distance d, which can be used to synchronize the exchange of subsequent unmodulated ranging signals for reliably obtaining a more-accurate estimate of the distance d using phase-based ranging.
[0111] In a RTT operation, the initiator device 1 transmits a first data packet that is received by the reflector device 2. The reflector device 2 then transmits a second data packet that is received by the initiator 1. By measuring the transmission and reception times of these packets, one or both of the devices 1, 2 can estimate the distance, d, between them, making use of the known speed of light, c, at which the radio signals travel between the two devices 1, 2.
[0112]
[0113] The radio device 200 contains, within a housing 202, an integrated-circuit radio transceiver chip 204 that supports Bluetooth™ Low Energy communications. It may additionally support other radio protocols such as IEEE 802.11, 3GPP LTE Cat-M1, 3GPP LTE NB-loT, IEEE 802.15.4, Zigbee™, Thread™, ANT™, etc.
[0114] The radio chip 204 contains a baseband controller 206, which includes dedicated hardware logic, as well as memory for storing software, and a processor for executing the software, such as an Arm™ Cortex™ processor. It may include one or more DSPs or further processors. The baseband controller 206 is connected to one or more radio antennae 208 by a transmit path, for transmitting radio data, and by a receive path, for receiving incoming radio data. Some embodiments may transmit and receive over multiple antennae, e.g. to provide antenna diversity. The receive path includes a low-noise amplifier (LNA) 210, a quadrature mixer 212 for downmixing an incoming radio-frequency (e.g. 2.4 GHz) signal to an intermediate frequency (IF) or to baseband by mixing the RF signal with a periodic signal generated by a local oscillator 214, a set of analog receive filters 216, and an analog-to-digital converter (ADC) 218. The transmit path includes a digital-to-analog converter (DAC) 220, a set of analog transmit filters 222, a quadrature mixer 224 for up-mixing a baseband signal to a radio frequency (RF) signal using a periodic signal generated by the local oscillator 214, and a power amplifier (PA) 226. The transmit and receive paths may also including components, not shown in
[0115] The baseband controller 206 performs digital operations for the transmit and receive paths. On the receive path, it provides digital filtering and GFSK demodulation. On the transmit path, it provides GFSK modulation and digital filtering. It may also perform higher-level operations such as assembling and disassembling data packets, generating and verifying checksums, cryptographic operations, etc. In some embodiments it may implement a full Bluetooth™ Low Energy protocol stack.
[0116] When receiving a radio signal, the device 200 down-mixes the incoming RF signal to an intermediate frequency, or to baseband, using the receive mixer 212. It samples the down-mixed signal using the ADC 218 operating at a sampling rate, set by a sampling clock signal, in order to generate a digital representation of the signal. The sampled signal can be digitally filtered and GFSK-demodulated in the baseband controller 206.
[0117] When transmitting a radio signal, the baseband controller 206 outputs digital samples representing a GFSK-modulated signal to the DAC 220 at the same sampling rate, set by the sampling clock signal. These are then filtered by the transmission filters 222 and up-mixed by the mixer 224 for transmission.
[0118] The baseband controller 206 is able to set the frequency of the local oscillator 214 to different frequencies for transmitting at different carrier frequencies, and for down-mixing received signals using different mixing frequencies.
[0119] The chip 204 may optionally include further processors, volatile memory, non-volatile memory, peripherals, or other components, integrated on the same chip as the radio transceiver circuitry, for performing additional functions.
[0120] The radio device 200 in this example also contains-separate from the radio chip 204-a system processor 240, system memory 242 (which may include volatile memory (e.g., RAM) and/or non-volatile memory (e.g., flash)), peripherals 244 (such as a temperature sensor or 1/O modules), and a battery 246. The radio antennae 208 may be within the housing 202 or external to the housing 202, and may be connected to the radio chip 204 by appropriate components, or may be integrated on the radio chip 204.
[0121] The radio device 200 and/or radio chip 204 can contain other components, such as buses, crystals, digital logic, analog circuitry, discrete active components, discrete passive components, further processors, user interface components, etc. which are not shown in
[0122] In use, software is executed by the baseband controller 206 to perform a two-way ranging process, which may involve phase-based and/or round-trip timing (RTT) operations.
[0123] The radio devices 1, 2 contain complementary software and/or hard-wired logic for carrying out their respective parts of the ranging process. A resulting distance estimate, d, calculated by the initiator device 1 (or by the reflector device 2) may be output to the system processor 240 for further use, or it may be stored or further processed within the radio chip 204.
[0124] Each device 1, 2 may be configured for transmitting a respective modulated timing signal (e.g. a synchronization sequence) and/or an unmodulated carrier signal within a radio data packet. In some embodiments, the data packet is Gaussian frequency-shift-key (GFSK) encoded. The data packet may conform to a current or future Bluetooth™ specification. It may be a Bluetooth™ Low Energy (BLE) packet.
[0125] When transmitting an unmodulated tone, the unmodulated signal may occupy a portion of a larger packet—e.g. being preceded by a packet preamble and/or followed by further elements of the data packet, such as message data.
[0126] When transmitting a modulated timing signal, the timing signal may comprise a predetermined bit sequence that is modulated on the radio signal—e.g. a known 32 or 64 bit sequence. This synchronization sequence could be constant over repeated RTT operations between the devices 1, 2, and potentially constant over all time. Alternatively, it could be generated afresh by the initiator 1 and reflector 2, from some shared information, for each RTT process or session; for example, it may be a pseudo-random number sequence generated identically by both devices 1, 2 using a commonly-seeded engine, such as an AES cipher engine. The synchronization sequence may occupy an entire data packet, or it may be only a portion of the packet—e.g. being preceded and/or followed by further elements of the data packet, such as a preamble, message data and/or an unmodulated carrier signal.
[0127] In some embodiments, each device 1, 2 can determine a time of departure (transmission) of a timing signal that it is transmitting. It can also determine a time of reception of a timing signal that it receives.
[0128]
[0129] At a time t.sub.1,TX, the initiator 1 transmits a first radio timing signal 300, which is received by the reflector device 2 at a time t.sub.R,RX. The difference between t.sub.R,Rx and t.sub.i,TX corresponds to a first time-of-flight period TOF1.
[0130] After a dwell time, t.sub.dwell, at a time, t.sub.R,TX, the reflector device 2 transmits a second radio timing signal 302, which is received by the initiator device 1 at a time t.sub.I,RX. The difference between t.sub.I,Rx and t.sub.R,TX corresponds to a second time-of-flight period TOF2.
[0131] The total time, T, for the RTT communication exchange satisfies:
T=TOF1+t.sub.dwell+TOF2
and also
T=t.sub.I,RX −t.sub.I,TX.
[0132] An average time-of-flight, TOF, for the two timing signals 300, 302 can therefore be calculated as:
TOF=(t.sub.I,Rx −t.sub.1,Tx −t.sub.dwell)/2
If the dwell time, t.sub.dwell, is known to the initiator device 1, this TOF value can be calculated by the initiator 1 from tI,Rx and tI,TX without it requiring any knowledge of the times t.sub.R,RX and t.sub.R,TX.
[0133] By dividing this TOF value by a known speed of the radio signals 300, 302 between the two devices—e.g. the speed of light in air, c-the initiator 1 can, if required, obtain a measurement of the average separation distance between the two devices during the RTT operation. If the devices 1, 2 are stationary, or if the dwell time, t.sub.dwell, is sufficiently short as to be able to discount any relative motion between them, then TOF1=TOF2 and this average value will simply equal the separation distance.
[0134] The RTT exchange can be repeated a few times, and the resulting TOF values averaged, to reduce noise. Such averaging can also determine a final TOF value to a precision that is finer than the sampling clock. This can be possible even when the RTTs measured in clock cycles are constant, e.g. because the clock phases of the devices are locked through an event (if FFO is small enough). Sending many packets may also remove bias by exploiting clock phase offset drift and employing dithering techniques.
[0135] By using a constant predetermined dwell time, t.sub.dwe1, known in advance to the initiator 1, in the RTT process, the initiator 1 can obtain an estimate of the separation distance between the two devices without a need for the reflector 2 to send any timing data to the initiator 1. The dwell time, t.sub.dwell, could be negotiated in advance between the devices 1, 2, or it could be fixed, e.g. by an agreed standard or specification to which both devices 1, 2 conform.
[0136] Even when the separate distance, d, is relatively large (e.g. 100 metres or more), because the speed of the radio signals 300, 302 through air is so fast, it is not necessarily straightforward for the reflector 2 to implement a constant dwell time, t.sub.dwe1 of sufficient accuracy to enable accurate distance ranging. In particular, the receive and transmit paths of the reflector 2 are timed by a clock that is not synchronized to the initiator 1. In order to improve the accuracy, some embodiments may perform fractional-delay adjustments so that the precision of the dwell time, t.sub.dwell, is not limited by the sampling period of this clock, e.g. by adding or subtracting one or more clock cycles at the end of certain steps within a ranging event, or using fractional delay filters.
[0137] A RTT process may, in some embodiments, be combined with a phase-based ranging process, in a single ranging process, as explained in more detail below. First, however, the principles of phase-based ranging process will be explained.
[0138]
[0139] The process is divided into two phases: a calibration stage followed by a ranging stage. The calibration stage in this example involves three steps, while the ranging stage involves seventy-five steps. However, these numbers may of course be varied.
[0140] Each step involves a respective two-way signal exchange.
[0141] In each step of the calibration stage, the initiator device 1 sends a synchronization data packet, containing a modulated synchronization sequence (SYNC), to the reflector device 2. The reflector 2 responds after a predetermined delay by sending a data packet that includes a modulated synchronization sequence (SYNC) followed by an unmodulated carrier signal (represented in
[0142] The start and end times of the unmodulated carrier transmitted by the initiator 1 for each step may be denoted as t.sup.1[k] and t.sup.2 [k], and the start and end times of the unmodulated carrier transmitted by the reflector 2 for each step may be denoted tR [k]and t.sub.R.sup.2 [k]. The total duration of the calibration and ranging stages may be denoted T.sub.test , where the time t=0 corresponds to the start of the first transmission by the initiator 1 within the calibration stage of the ranging event.
[0143] In each step of the ranging stage, the initiator 1 sends an unmodulated carrier signal to the reflector 2, which responds, after a predetermined nominal delay, with an unmodulated carrier signal having the same nominal frequency as the signal transmitted by the initiator 1. The carrier frequencies sent by the initiator 1 vary across the steps according a schedule that is agreed in advance between the devices 1, 2.
[0144] These frequencies are here denoted fi(s.sub.1), fi(s.sub.2), . . . , f,(s.sub.75). Although the reflected frequencies, ƒ.sub.R(s1), ƒ.sub.R(s.sub.2), . . . , ƒ.sub.R(s.sub.75), are nominally the same, in practice they will differ due to frequency inaccuracy in both devices 1, 2 (e.g. due to production imperfections). In the ranging stage, each unmodulated carrier signal is transmitted for a respective duration which could be as short as 1 or 10 ps. This corresponds to a few thousand cycle periods for carriers in the 2.4 GHz band.
[0145] At each calibration step, the initiator 1 sets its local oscillator 214 based on the expected frequency ƒ.sub.R for that step and estimates a fractional frequency offset (FFO) (e.g. a value in parts per million) between the incoming signal from the reflector 2 and a local oscillator signal generated by the initiator 1. The local oscillator 214 of the initiator 1 could be set to exactly ƒ.sub.R (i.e. a zero-IF) or to frequency that is offset by a planned intermediate frequency (e.g. low-IF reception). The initiator 1 may select one of these FFO values, or may average them, to determine a frequency adjustment factor. At each ranging step, the initiator 1 uses the determined frequency adjustment factor to adjust its local oscillator 214 so that the frequency fl that the initiator 1 transmits will more closely match the response frequency ƒ.sub.R that the reflector 2 will output in response. The initiator 1 also uses the set FFO values to adjust its transmission timings, as explained in more detail below.
[0146] In the ranging steps, when receiving incoming unmodulated signals, each device 1, 2 sets its local oscillator 214 to the expected incoming frequency (adjusted by the frequency adjustment factor in the case of the initiator 1, and offset any non-zero intermediate frequency if additional downmixing is performed in the digital domain) and measures a phase offset between the incoming signal and the local-oscillator output. At the end of the ranging stage, the reflector 2 sends a data packet containing all of its phase measurements to the initiator 1, which may combine them with the phase measurements it made in order to calculate an estimate of the distance daccording to known principles.
[0147]
[0148] In some embodiments, the initiator 1 may be configured to align the timing of its transmissions based on the timings of the transmissions it receives from the reflector 2. The reflector 2, embodying the invention, is also preferably configured to adapt the timings of its transmissions and reception windows in order to reduce the likelihood of a ranging step failing due to a modulated or unmodulated signal not being received at all, or being insufficiently received, by a recipient device 1, 2. This can improve the reliability of ranging events, compared with reflector devices that use only a fixed, nominal timing schedule.
[0149] This approach may be especially beneficial when the devices 1, 2 are developed by different manufacturers using different components and tolerances, which might normally present a challenge to interoperability. It may also be beneficial when a ranging event is performed between one initiator device and a plurality of reflector devices simultaneously.
[0150] How the initiator 1 and/or reflector 2 may be configured to give improved reliability in some embodiments will now be described in more detail.
Principals of Operation
[0151] In an exemplary ranging event, the reflector 2 first responds to one or more calibration steps (e.g. as shown in
[0152] By analysing the responses from the reflector 2 in these calibration steps the initiator 1 calculates estimates for the [0153] fractional frequency offset (e.g. crystal offset ppm) between the devices; and [0154] the time-of-flight (ToF) between the devices.
[0155] The initiator 1 then adjusts the timing of its transmissions, based on these estimates, to ensure that it is available during a nominal receive window of the reflector 2, for any combination of these estimates of fractional frequency offset (FFO) and time-of-flight.
[0156] The reflector 2, also, measures the time-of-arrival of each calibration step, and processes these to offset the timing of its transmissions and reception windows. The reflector 2 does not, however, change the carrier frequencies of the unmodulated signals its transmits, but rather the initiator 1 adjusts its carrier frequencies to match those of the reflector 2.
[0157] To compensate for any fractional frequency offset (FFO) between the devices 1, 2, the initiator 1 ensures that the start and end of its transmit windows are adjusted, from times predetermined by an agreed nominal schedule, to align with the reflector 2. In practice, this can be achieved by adding/subtracting one or more clock cycles at the end of certain steps within an event. In addition, the initiator 1 can oversize its transmit windows to account for its own potential error, and the potential error of the reflector 2 device.
[0158] In addition, to compensate for a time-of-flight between devices, the initiator 1 places its receive window a factor of 2 x ToF later than the nominal timing. This implies a shortening of the time between transmit (TX) and receive (RX) windows.
[0159] The reflector 2 also generates estimates for the time-of-arrival (ToA) of the signals it receives from the initiator 1 during the plurality of calibration steps. This leads to a set of values for the time-of-arrival. The reflector 2 adjusts the size of its receive window based on the variation in these time-of-arrival values. This is done by choosing an “anchor” for determining the start of its receive windows, and an “anchor” for determining the end of its receive window. The period between the anchors is preferably no greater than the nominal time for the transmission window (i.e. the transmission duration as specified in a standardised transmission schedule).
[0160] The initiator 1 and reflector 2 also preferably compensate for potential inaccuracy in the estimation of FFO, ToF and the time-of-arrival (ToA). Some of this inaccuracy may be due to the respective device itself (e.g. phase noise limiting FFO estimation error, or sampling rate limiting ToA accuracy). Some of this inaccuracy may be due to the peer device (e.g. reflector dwell-time jitter, or peer crystal drift). Some may be due to environmental effects (e.g. group delay variation of the multipath channel, or interference during the FFO estimation step).
[0161] It will generally be desirable to try to limit the error sources in the devices so that the system 10 works efficiently, at least within certain environmental limits. However, correct operation may not be possible in all cases (e.g. pathological channel impulse responses which allow for large group delays at specific frequencies, or when experiencing very large amounts of interference). The timings given below are intended to allow the devices 1, 2 to work reliably even under a variation in the ToF across tones of up to 0.125ps and a drift of the fractional frequency offset across the duration of a ranging event of up to 1 ppm.
Terminology
[0162] Each exemplary ranging event contains M+K steps, that begin with M calibration steps followed by K ranging steps, indexed by k=1, . . . , M, M+1, . . . , M+K. The total duration of the ranging event is denoted T.sub.EVT, and in the following the time t=0 corresponds to the start of the first transmission within a ranging event. Each step may contain multiple transmission slots, each using a separate antenna or subset of antennas. The number of antenna slots within a specific step will herein be denoted as N.sub.A[k].
[0163] The nominal start and end times of the transmissions in each step may be determined according to a predetermined specification or standard, implemented by the system 10. This may also specify the duration and contents of each data packet.
[0164] The nominal start and end times of each unmodulated carrier transmitted by the reflector 2, relative to the start of the event (i.e. time t=0), for each antenna slot p=1, . . . ,N.sub.A[k], for each step, will herein be denoted as t.sub.R,TC,UC,nom.sup.1,p[k] and t.sub.R,T,C,UC,nom.sup.2,p[k]respectively.
[0165] The nominal start and end times of each unmodulated carrier transmitted by the initiator 1, relative to the start of the event, for each antenna slot=1, . . . ,N.sub.A[k], for each step, will herein be denoted as t.sub.1,TX,UC,nom.sup.1,p[k] and t.sub.1,TX,UC,nom[k] respectively.
[0166] The nominal start and end times of each modulated carrier transmitted by the reflector 2, relative to the start of the event, for each antenna slot p=1, . . . ,N.sub.A[k], for each step, will herein be denoted as t.sub.R,TX,MC,nom.sup.1,p[k] and t.sub.R,TX,MC,nom.sup.2,p[k] respectively.
[0167] The nominal start and end times of the modulated carrier transmitted by the initiator 1, relative to the start of the event, for each antenna slot p=1, . . . ,N.sub.A[k], for each step, will herein be denoted as t.sub.I,TC,MC,nom.sup.1,p [k] and t.sub.I,TC,MC,nom.sup.2,p [k]respectively. Consequently, the value of t.sub.I,TX,.Math.C,nom[k]=0.
[0168] The nominal transmit window (i.e. before any adjustment is applied) of the initiator 1 corresponds to the nominal receive window of the reflector 2 and vice versa—i.e. t.sub.I,TX,* C,nom.sup.1,p [k]=t.sub.R,TX,*C,nom.sup.1,p[k].
[0169] f.sub.0(k) herein denotes the nominal frequency of the ranging channel for step k. The nominal (i.e. specified) frequencies used at each step may be defined by a predetermined specification or standard, implemented by the system 10. Each ranging event begins with a number of calibration steps and therefore f.sub.0(m) denotes the nominal frequency of the ranging channel used in the calibration step m.
[0170] The average transmitted frequency of the reflector's unmodulated carrier, during any interval of a ranging step defined to use an unmodulated carrier, is herein denoted f.sub.R(k).
[0171] Details relating particularly (although not exclusively) to the configuration of exemplary reflectors 2 are given in the following section. Details relating particularly (although not exclusively) to the configuration of exemplary initiators 1 are given further below.
Reflector
[0172] The fractional frequency offset of the reflector 2, relative to a nominal perfect reference frequency source, f.sub.0, for a particular calibration step m=1, . . . , M, is herein denoted FFO.sub.R(m), and is given by
[0173] A nominal fractional frequency offset, FFO.sub.R.sup.nom, may be defined by any fractional frequency offset from the set
FFO.sub.R.sup.nom={FFO.sub.R(m)|m=1, . . . , M}.
[0174] The devices 1, 2 are preferably designed and manufactured so that, for all calibration steps, the absolute value of FFO.sub.R(m) will be less than 50 ppm, and the range of values of FFO.sub.R(m) within a ranging event does not exceed 1 ppm. However, different values may be set in alternative design specifications.
[0175] In operation, the reflector 2 estimates the time-of-arrival (ToA) at its antenna of each received SYNC packet within each calibration step. Denote the recorded value as ToA.sub.R[m].
[0176] From the calibration stage, the reflector 2 corrects ToA.sub.R [m] by the nominal time-of-arrival of each SYNC packet since the start of the event—i.e. by subtracting, from ToA.sub.R[m], the time at which the calibration SYNC packet should be received, according to the specified schedule, if there were no synchronization inaccuracies and a time-of-flight of zero-to generate an “anchor” tAnc.sub.R for the event. Each anchor value that is calculated by the reflector 2 represents the sum of a time-of-flight and a timing delay, and corresponds to a respective “timing offset” as disclosed herein. The set of nominal anchors is denoted as
tAnc.sub.R∈tAnc.sub.R.sup.nom={ToA.sub.R[m]−t.sub.I,TC,MC,nom.sup.1,p [m]|m=1, . . . ,M,p=1, . . . ,N.sub.A[m]}
[0177] The reflector 2 then adjusts the times of all its transmissions in the ranging stage to be consistent with this set of anchor points tAnc.sub.R.sup.nom, as described below.
[0178] The reflector 2 adjusts the transmission times of each ranging-stage data packet it sends, e.g. using an adjustment procedure explained below, so as to ensure that the latest start time of the transmission of each unmodulated carrier, measured at the antenna of the reflector 2, satisfies
[0179] This inequality results in each transmission starting cautiously early, based on a worst-case assumption of the largest fractional frequency offset in FFO.sub.R.sup.nom (which may be a constant parameter value, such as 50 ppm, determined from a design specification to which the reflector 2 is known to conform) and the longest transit delay represented in tAnc.sub.R.sup.anc,nom (which may be estimated from time-of-arrival measurements by the reflector 2).
[0180] The reflector 2 also adjusts the duration of each ranging-stage data packet that it transmits, e.g. using an adjustment procedure explained below, so as to ensure that the earliest end time of each transmission of an unmodulated carrier, measured at the antenna of the reflector 2, satisfies
[0181] This inequality results in each transmission ending cautiously late, based on a worst-case assumption of the largest negative fractional frequency offset from FFO.sub.R.sup.nom and the shortest transit delay represented in tAnc.sub.R.sup.anc,nom .
[0182] The inclusion of the ±1 ppm and 0.25ps terms is to account for an allowed initiator peer variation and a lower bound on the environmental tolerance, which in this example require that: [0183] the initiator estimates the reflector's FFO with an error of at most 1 ppm between calibration packets; [0184] the initiator has a time-of-departure (ToD) jitter of calibration packets of at most 0.125 μs; and [0185] the ToF variation across frequencies is at most 0.125 μs.
[0186] In other embodiments, these values may be specified differently.
[0187] The reflector 2 preferably over-sizes its transmission sufficiently, compared with a nominal specification, to provide enough margin for its own sources of error, arising from an expected FFO stability, and from an expected signal delay variation (e.g. antenna, match and radio group delay)—i.e. based on predetermined bounds on its FFO stability and signal delay variation.
[0188] Thus the reflector 2 may implement limits that are more cautious than those of the inequalities above, based on predetermined bounds on its own parameters. It may take account of bounds such as that, for example: [0189] the reflector 2 transmits a tone with at most 1 ppm offset compared to the rest of the ranging process, allowing a drift of at most 1 ppm across the ranging event; and [0190] the reflector 2 has a dwell time jitter of at most 0.125 μs.
[0191] Therefore, in this example, the reflector 2 may increase the magnitude of the factor to account for these further values, e.g. to satisfy
[0192] The reflector 2 may be configured to ensure its transmissions in the ranging stage satisfy these adjusted inequalities by starting and ending each transmission exactly on the limits allowed by these inequalities (or that lie within them by a further predetermined safety margin).
[0193] For example, it may calculate the start time of the k-th unmodulated-carrier transmission as:
and the end time as:
[0194] Thus the reflector 2 can oversize its transmission window so that the conditions in this section are always satisfied, including taking account of the expected error in the reflector's own ToA measurements and FFO. The reflector 2 maintains a constant system clock frequency during the ranging stage.
[0195] When receiving incoming transmissions from the initiator 1, the reflector 2 may be configured to undersize its sampling window. Based on the times-of-arrival of the calibration packets, the reflector 2 determines start times of its receive windows that are slightly after the nominal values, and end times that are slightly before the nominal values.
[0196] In this case, the reflector 2 can assume that the initiator 1 has appropriately shifted and oversized its transmissions, based on the calibration step (as explained in more detail below). However the reflector 2 may compensate for any further imperfections by correcting its receive times. For example, the start of the receive window for an unmodulated carrier by the reflector 2 may be set to satisfy:
where T.sub.R,RX,int,UL and T.sub.R,RX,int,LL represent predetermined upper and lower limits on the internal delay within the radio of the reflector 2.
[0197] It may, in some embodiments, be configured to meet these inequalities exactly, e.g. by calculating:
[0198] The reflector 2 may then control its radio transceiver so as to be active for receiving and sampling unmodulated carriers during the interval [t.sub.RRX,UC.sup.1,p[k], t.sub.R,RX,UC,nom.sup.2,p[k]]. The reflector 2 may assume that the signal is stable during this period, in the absence of interference.
[0199] The reflector 2 may also have an internal mechanism to judge the quality of the ToA measurements it makes. It may filter or weight its estimates accordingly. This can enable the reflector 2 to account for low signal level or interference that can lead to lower-quality FFO measurements.
[0200] The timing of transmission of each packet sent by the reflector 2 during a ranging step may be specified relative to the time of arrival of the packet within the same ranging step. The time between the reception of a packet from the initiator 1, as seen at the antenna of the reflector 2, and the transmission of the response packet from the antenna of the reflector 2, is denoted the “dwell time” and is given as T.sub.D [k]=ToD.sub.R[k]−ToA.sub.R [k], where ToA.sub.R[k] is the observed time-of-arrival of the initiator packet, and ToD.sub.R [k] is the observed time-of-departure of the reflector packet.
[0201] In some embodiments, the reflector 2 is designed and configured so that the dwell-time T.sub.D[k] does not deviate from a nominal (i.e. specified) dwell time for any step by more than 0.375 μs. This allows the initiator 1 to align its timing sufficiently within a calibration step. It also allows the initiator 1 to optionally implement a mechanism to adjust timing drift where the calibration-based mechanism fails, e.g. due to crystal frequency disturbance, or FFO estimation error due to interference.
[0202] However, in some embodiments, the initiator 1 and/or reflector 2 may also account for one or more other sources of dwell-time delay, which may potentially be variable. These may include generic jitter, known to one or both devices. They may include internal delays in the radio itself, which may vary in dependence on automatic gain control (AGC) settings, or delays in the antenna path. They may include estimates of quantization noise, such as a correction term having a higher temporal resolution than a sampling clock of the initiator 1 or reflector 2. They may include intentional variations in the dwell times between successive steps, introduced by the reflector 2 for security purposes (e.g. in accordance with a pseudo-random dither sequence known only to the initiator 1 and reflector 2).
Initiator
[0203] Within each ranging calibration step m=1, . . . ,M, the initiator 1 measures the average frequency, (m), of fractional frequency offset for the respective calibration step, by treating the initiator's oscillator as reference frequency, f.sub.0, such that:
[0204] If the initiator 1 has received a valid SYNC packet within any calibration step, with a received signal strength greater than −70 dBm, the initiator 1 measures the fractional frequency offset to within 1 ppm accuracy. So long as the reflector's FFO, with respect to an ideal time reference, does not vary by more than 1 ppm, then the values of .sub.R (m) should not vary more than 1 ppm.
[0205] The initiator 1 is configured to transmit a SYNC packet in each calibration step, having a time-of-departure of ToD.sub.I[m]. However, before each transmission, the initiator 1 adjusts each ToD.sub.I[m] based on the nominal times-of-arrival of each SYNC packet since the start of the event to generate an “anchor” tAnc.sub.I, for the event. This is done so that the SYNC packet is received at the reflector 2 at the nominal time. Each anchor value that is calculated by the initiator 1 represents a timing error within the initiator 1 itself. The set of nominal anchors is denoted as
tAnc.sub.I,TX∈tAnc.sub.i.sup.nom={ToD.sub.I[m]−t.sub.I,TX,MC,nom.sup.1,p[m][m],m=1, . . . ,M}
[0206] In preferred embodiments, the range of the set tAnc.sub.I.sup.nom should not exceed 0.125 μs.
[0207] The initiator 1 is configured to estimate times-of-arrival at its antenna of each received SYNC packet within each calibration step. Denote the recorded value as .sub.I[m]. From the M calibration steps, the initiator 1 calculates up to M coarse estimates of the round-trip time
(m). From these estimates of the round-trip time, the initiator 1 adjusts its future timing calculations to accommodate the time-of-flight between devices, as explained below. The time-of-flight is not necessarily constant for each frequency due to environmental effects (e.g. due to multipath, antenna group-delay variation).
[0208] For each calibration step, the initiator 1 is preferably configured to measure the round-trip time, relative to the start of the event, to an accuracy of 025 μs when the received signal power is >−70 dBm.
[0209] The reflector 2 may deviate from the ideal dwell-time due to quantization effects. However, the dwell-time is preferably within 0.25 μs of the nominal value. Thus, given that, on any frequency, the initiator 1 is preferably able to estimate the observed round-trip time to an accuracy of 0.25 μs and the reflector dwell-time is within 0.25 μs of the nominal value, the total error in the round-trip time measurement due to device inaccuracy is at most 0.5 μs. The round-trip time is given by RTT=2ToF+Dwell time and so the error in the ToF estimate due to device error should be at most 0.25 μs in such embodiments.
[0210] Note that the fractional frequency offset also affects the dwell-time. For example, for a 100 ppm offset with a 400 μs dwell-time the dwell-time is modified by 100.sup.−6*400.sup.−6=40 ns. However, the FFO is preferably known to within 2 ppm, and thus the dwell offset should be only 0.8 ns in this case and has negligible effect from a timing perspective.
[0211] Each ToA.sub.I[m] is corrected by the nominal time-of-arrival of the respective SYNC packet, and the round-trip time, since the start of the event, to generate an anchor tAnc.sub.I,Tx for the event. The set of nominal anchors is denoted as
tAnc.sub.I,TX∈tAnc.sub.I,TX={ToA.sub.I[m]−t.sub.R,TX,MC,nom.sup.1,p[m]−ToF[m],m=1, . . . ,M}
where
[0212] The initiator 1 adjusts the transmission times of each ranging-stage data packet it sends to ensure that the latest start time of the transmission of each unmodulated carrier, measured at the antenna of the initiator 1, satisfies
[0213] The set, FFO.sub.I, here represents the fractional frequency offsets of the reflector 2 over the steps m. The initiator 1 uses .sub.R(m), which are measured relative to its own oscillator, as estimates of FFO.sub.I, in order to calculate transmission times that satisfy this inequality.
[0214] This inequality results in each transmission starting cautiously early, based on a worst-case assumption of the largest relative fractional frequency offset and the longest transit delay represented in tAnc.sub.I.
[0215] In operation, the initiator 1 can calculate transmission times by: [0216] i) determining and storing a set of anchor values tAnc.sub.I,TX from the times of arrival of the calibration steps, m, and the coarse time-of-flight estimates, as above; [0217] ii) comparing the anchors values in tAnc.sub.I,TXto identify a maximum, tAnc.sub.I; [0218] iii) estimating .sub.R(m) over the calibration steps, m; [0219] iv) comparing the values
.sub.R(m) to identify a maximum, FFO; [0220] v) accessing data representing a transmission schedule to determine the nominal transmission time, t.sub.I,TX,UC,nom.sup.1,P[k], for each ranging step, k; [0221] vi) using these values to evaluate the right side of the inequality above for each ranging step, k; [0222] vii) selecting transmission times for the ranging steps that are equal to (or earlier) than these values.
[0223] The initiator 1 also similarly adjusts the duration of each ranging-stage data packet that it transmits to ensure that the earliest end time of each transmission of an unmodulated carrier, measured at the antenna of the initiator 1, satisfies
[0224] This inequality results in each transmission ending cautiously late, based on a worst-case assumption of the largest negative fractional frequency offset from FFO.sub.I and the shortest transit delay represented in tAnc.sub.I. The initiator 1 may implement this by ending the transmission at times exactly at (or later than) the times given by the right side of this inequality.
[0225] The value of t.sub.I.sup.anchor is internal to the initiator device 1 and does not need to be sent to the peer reflector device 2.
[0226] The inclusion of the ±1 ppm and 0.25 μs terms is to account for an allowed peer variation and a lower bound on the environmental tolerance, which in this example require that: [0227] the reflector's FFO has a stability within 1 ppm between calibration packets; [0228] the reflector's dwell-time jitter in the calibration packets is at most 0.375 μs; and [0229] the ToF variation across frequencies is at most 0.125 μs.
[0230] In other embodiments, these values may be specified differently.
[0231] The initiator 1 thus preferably over-sizes its transmission sufficiently, compared with a nominal specification, to provide enough margin for its own sources of error, arising from: [0232] FFO estimation error, e.g. 1 ppm [0233] ToA estimation error, e.g. 0.125 μs [0234] resolution of step timing adjustment to account for FFO offset (e.g. 1 μs) [0235] signal delay variation (e.g. antenna, match and radio group delay).
[0236] To compensate for this the initiator 1 may increase the bounds accordingly, so that:
where T.sub.I,RX,int,UL and T.sub.I,RX,int,LL represent predetermined upper and lower limits on the internal delay within the initiator's radio.
[0237] The initiator 1 may further be configured so that the latest start time of the transmission of a modulated carrier, measured at the antenna, of all modulated carriers, satisfies
where ToD.sub.1,dith[k] is a predetermined dither term, e.g. implemented for security purposes, that may be known and corrected for in the round-trip-time measurement. The absolute value of ToD.sub.1,dith[k] may, in some embodiments, be 0.5 μs.
[0238] For systems 10 that use a multiple antenna system, the reflector 2 and initiator 1 may be configured to provide a guard period between unmodulated carriers to ensure that the oversized unmodulated carriers do not overlap. This guard period may also include sufficient time for an antenna to switch between ports. It may also include sufficient time to ramp up and down the power of the transmitted signal, if spurious emissions were to be caused by switching.
[0239] For systems 10 that support the initiator 1 performing ranging event with multiple reflector devices 2 simultaneously, the transmission between initiator-reflector pairs may be interleaved (i.e. time-multiplexed), or the initiator 1 may broadcast to multiple reflectors. In such systems 10, it may be challenging for the initiator 1 to match the timing frequency of multiple reflector devices 2 having varying fractional frequency offsets. Thus, in some embodiments, each reflector 2 may be configured to synchronize with the initiator 1. This may be done by adapting the approach above accordingly.
[0240] It will be appreciated by those skilled in the art that the invention has been illustrated by describing various specific embodiments thereof, but is not limited to these embodiments; many variations and modifications are possible, within the scope of the accompanying claims.