This application is a national stage entry of and related to PCT Application Serial No. PCT/EP2018/055983 (“PCT Application”), and is related to United Kingdom Application Serial No. 1703796.1.

This application claims priority to the PCT Application, and hereby claims benefit of the filing dates thereof pursuant to 37 CFR § 1.78(a)(4). This application further claims priority to United Kingdom Application Serial No. 1703796.1.

The subject matter of the PCT Application and United Kingdom Application Serial No. 1703796.1, in their entireties, are expressly incorporated herein by reference.

The present invention relates to systems and methods for synchronization between a master device and one or more slave devices.

Improvements in wireless communication technology have led to a proliferation of wirelessly connected devices. Rather than merely connecting (e.g. via wireless access points) to the Internet, new products, services and functionalities can be provided by allowing efficient communication between such devices (for example in home automation). Computing devices such as games consoles or virtual reality systems often rely on wireless communication between the master device and wireless input devices and display devices (e.g. VR headsets). Such systems provide real-time experiences that often require precise coordination between components. There is therefore an increasing need for effective synchronization methods for wirelessly connected devices.

Accordingly, in a first aspect of the invention, there is provided a method of synchronizing signals, comprising: using a clock tracking system to convert a future event target time specified in a time base of a master device into the local unsynchronized time bases of one or more slave devices; and generating, by the or each slave device, an event signal at the converted time, preferably such that a coordinated delivery of synchronized signals is achieved.

A time base is preferably a timing context in which time information is expressed. The time base of a device may be defined by a clock (or other time signal source) of the device, which the device uses to measure and record time values, and thus times expressed in a given time base are expressed in relation to the device's clock (or other time signal source). For example, times in the master time base are times that are measured and expressed in relation to the master clock and times in the slave time base are times measured and expressed in relation to the slave clock. Thus, the concepts of times expressed in a particular time base, or expressed relative to a particular clock, are generally used interchangeably herein.

The time bases (i.e. clocks) of the slave devices are preferably unsynchronized with respect to each other and/or with respect to the master time base.

Preferably, the method comprises converting the future event target time into the local unsynchronized time bases of a plurality of slave devices, the generating step performed by each slave device. The conversion is preferably performed using the clock tracking system at each slave device based on a respective local clock of the slave device.

The clock tracking system may comprise a Kalman filter, digital phase-locked loop (PLL) or linear interpolation.

The method may comprise taking into account the individual propagation times (e.g. time of flight) between the master device and the slave devices. The propagation times may be measured frequently to correct for their variation as conditions change. Two-way ranging techniques may be used to measure the propagation times.

Preferably, the method comprises receiving a clock calibration message at a slave device from the master device, the clock calibration message comprising a transmission timestamp indicating a transmission time of the clock calibration message in the time base of the master device (expressed in relation to the master clock).

The method may comprise determining, at the slave device, a reception timestamp in the slave device's time base (expressed in relation to the slave clock) indicating a time of reception of the calibration message. The method preferably comprises using the transmission timestamp and the reception timestamp to determine a conversion between the time base of the master device and the time base of the slave device and using the determined conversion to convert the future event target time. The determined conversion may comprise any information or algorithm defining a mapping between times expressed in one time base (in relation one device's clock) to times expressed in another time base (in relation to another device's clock). For example the conversion may comprise a timing offset which can be added to/subtracted from time values in one time base to convert them to another time base, or the conversion may comprise a state of an estimator such as a Kalman filter as described further below.

A plurality of clock calibration messages with respective transmission timestamps may be received, with the method determining respective reception timestamps for each clock calibration message, and determining the conversion using the plurality of transmission timestamps and reception timestamps.

Preferably, the method further comprises determining the conversion based on a time-of-flight, TOF, value indicating a time for the clock calibration message to travel from the master device to the slave device (propagation time). The method may comprise correcting transmission or reception timestamps based on the TOF value, e.g. subtracting the TOF value from the reception timestamp or adding the TOF value to the transmission timestamp, and analysing the resulting timestamps to determine a conversion or mapping which maps time values between the master and slave time bases.

The conversion may be based on an estimation algorithm, preferably a Kalman filter, the method comprising determining the conversion by providing one or more transmission timestamps in the master time base and one or more corresponding reception timestamps in the slave time base as input to the estimation algorithm, preferably after modifying either the transmission timestamp(s) or the reception timestamp(s) based on a TOF value. Converting the future event target time may then comprise providing the future event target time as input to the estimation algorithm, the estimation algorithm calculating a corresponding event target time in the time base of the slave device.

The TOF value may be determined based on a ranging exchange between the master device and the slave device. The clock calibration message may be embedded in a message transmitted as part of the ranging exchange.

The method may comprise computing the future event target time based on a predetermined target time delay, TTD, value, wherein the TTD value specifies a time offset relative to the transmission timestamp of a clock calibration message, the computing preferably comprising adding the TTD value to the transmission timestamp to determine the future event target time; and converting the computed future event target time to the slave device's time base. The future event target time may alternatively comprise a predetermined absolute time value in the master device's time base. The future event target time or TTD value may be pre-configured at the slave device and/or communicated to the slave device by the master device.

The event signal may be generated periodically at the slave device(s), the future event target time determined based on the signal period and/or a previous signal output time.

The master clock may update at a given frequency determining a time interval between successive clock increments, the method comprising providing to the slave device(s) additional timing information at greater time resolution (e.g. as a set of least-significant bits for a timing signal), indicating an offset with respect to values of the master clock, and determining the future event target time and/or the converted time using the additional timing information. The offset may be added before or after conversion.

The method may comprise configuring, in advance of the converted future time, a signal interface at the slave node to generate the event signal at the converted future time.

The method may comprise determining respective different future event target times at each of a plurality of slave devices, optionally as time offsets relative to a single future target time value, and performing the conversion and generating steps at each slave device based on the respective future event target time for the slave device to generate event signals at respective different converted event times.

The method may also comprise performing an action or generating a local event signal at the master device at the future event target time, whereby the action or signal is synchronized with the generation of event signals at the slave device(s).

The method may comprise, by a slave device (or each slave device), outputting the event signal to a processor of the slave device.

The master device is preferably remote from, and/or connected wirelessly to, the slave devices. The method may be used in a wireless system, optionally using ultra-wideband (UWB) radio.

In a further aspect of the invention (which may be combined with the above aspect), there is provided a method performed at a slave device comprising: receiving, at the slave device, a synchronization message from a master device, the synchronization message comprising a transmission timestamp indicating time of transmission of the message from the master device, wherein the transmission timestamp is generated at the master device based on a master clock at the master device; determining a reception timestamp indicating a reception time of the synchronization message at the slave device, the reception time measured with respect to a slave clock of the slave device; determining a conversion between time values expressed relative to the master clock and time values expressed relative to the slave clock based on the transmission and reception timestamps; converting a future event target time specified relative to the master clock to a target time value relative to the slave clock using the determined conversion; and performing an action at the slave device at the event target time based on the converted target time value.

Preferably, performing an action comprises generating a predetermined output signal at the event target time.

The determining and conversion steps preferably utilise a parameter estimation algorithm, preferably a Kalman filter. The conversion may be determined further based on a message propagation time between the master device and the slave device.

The future event target time may be based on a target time delay value and the transmission timestamp of the synchronization message. The converting step may determine a time value at a first time resolution, the method comprising adding a time offset at a second, greater time resolution to the time value to determine the target event time.

The method may comprise configuring, in advance of the converted event target time, an output interface at the slave node to generate an output signal at the converted event target time.

The method according to this aspect may include performing any method as set out above in relation to the first aspect of the invention.

In a further aspect (which may be combined with any of the above aspects), the invention provides a slave device adapted to communicate with a master device, the slave device comprising: a slave device clock providing a time signal defining a slave time base; a receiver configured to: receive a synchronization message from the master device, the synchronization message comprising a transmission timestamp indicating time of transmission of the message from the master device, wherein the transmission timestamp is generated at the master device based on a master device clock defining a master time base of the master device; and determine a reception timestamp indicating a reception time of the synchronization message at the slave device, the reception time measured with respect to the slave device clock; the slave device further comprising processing means configured to: determine a conversion between the time bases of the master device and slave device based on the transmission and reception timestamps; and convert a future event target time specified in a time base of the master device to a target time value in the time base of the slave device using the determined conversion; the slave device configured to perform a predetermined action at the event target time in accordance with the converted target time value. The receiver may be in the form of a transceiver as described further below. The slave device preferably comprises means for performing or participating in any method as set out above.

The invention further provides a computer readable medium comprising software code adapted when executed on a data processing device to perform any method as set out above or as described below, and a device, system or apparatus having means, preferably in the form of a processor with associated memory and/or a transceiver, for performing any method as set out above or as described below.

Any feature in one aspect of the invention may be applied to other aspects of the invention, in any appropriate combination. In particular, method aspects may be applied to apparatus and computer program aspects, and vice versa.

Furthermore, features implemented in hardware may generally be implemented in software, and vice versa. Any reference to software and hardware features herein should be construed accordingly.

