# US 8,571,005 B1 · Method and apparatus for synchronization of a master timebase with one or more slave timebases using indirect signalling of timing information

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,571,005 B1
- Document ID: US8571005B1
- Status: Granted
- Kind: B1
- Application number: 11/423,657
- Filed: 2006-06-12
- Granted: 2013-10-29
- Earliest claimed: 2005-10-11
- Assignees: Atmel Corporation
- Applicants: Katelijn Vleugels; Barry Thompson; Nils Bunger; Ilya Minkin
- Inventors: Katelijn Vleugels; Barry Thompson; Nils Bunger; Ilya Minkin
- Web page: https://patentgrep.com/patent/US8571005B1

## CPC

- H04W 56/002: {Mutual synchronization}
- G06F 5/16: Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers
- H04J 3/06: Synchronising arrangements {(for television systems H04N5/04; bit-synchronisation H04L7/00)}
- H04J 3/0664: {unidirectional timestamps}
- H04W 56/00: Synchronisation arrangements
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04J: MULTIPLEX COMMUNICATION (transmission in general H04B; peculiar to transmission of digital information H04L5/00; systems for the simultaneous or sequential transmission of more than one television signal H04N7/08; in exchanges H04Q11/00; stereophonic systems H04S)

## Abstract

In a communication system comprising one master device and one or more slave devices, the slave devices synchronize to a common timebase maintained at the master device without requiring transmission of accurate and real time master timer information from the master device. In one approach, a slave device sends timing information to the master device, the timing information representing the slave device timebase, and the master device sends back correction information to the slave device, the correction information representing a difference between the slave device timebase and the master device timebase, the correction information being usable independent of the timing of sending back the correction information.

## Claims

### Claim 1

A method of synchronization in a communication system comprising:
determining, at a master device, whether a transmission from the master device to one or more slave devices can include a transmission time representing a time, using a common timebase, of the transmission from the master device to the one or more slave devices, such that a value of the transmission time is available to the one or more slave devices;
if the transmission time is not includable such that the value of the transmission time is available to the one or more slave devices, synchronizing the master device and the one or more slave devices to a common timebase without requiring access to the transmission time from the master device.

### Claim 2

A method of synchronizing a slave device timebase to a master device timebase, comprising:
determining whether the master device can send an indication of master transmission time representing a time of a transmission from the master device to the slave device such that the slave device can use the indication to determine the time of the transmission from the master device;
if the indication is unavailable to the slave device, sending timing information from the slave device to the master device, the timing information representing the slave device timebase; and
sending correction information from the master device to the slave device, the correction information representing a difference between the slave device timebase and the master device timebase, wherein the correction information is independent of a transmission time of a packet from the master device containing the correction information and independent of a transmission time of other packets from the master device to the slave device.

### Claim 3 (depends on 2)

The method of claim 2, wherein the master device is a station in a first wireless network and a coordinator in a second wireless network, the method further comprising:
synchronizing the master device to the first wireless network using a wireless module; and
reusing the wireless module to communicate with devices in the second wireless network, wherein the slave device is one of the devices in the second wireless network and the master device synchronizes to a common timebase without requiring transmission of accurate and real time master timer information to achieve synchronization in the second wireless network.

### Claim 4 (depends on 2)

The method of claim 2, wherein including correction information comprises including correction information in a multicast or a broadcast packet.

### Claim 5 (depends on 2)

The method of claim 2, wherein including correction information comprises sending correction information from the master device to the one or more slave device serially, one slave device at a time.

### Claim 6 (depends on 2)

The method of claim 2, further comprising autonomously sending, from the slave device, timing information to the master device.

### Claim 7 (depends on 6)

The method of claim 6, further comprising sending, from the master device, correction information to the slave device during a synchronization event in which the master device receives timing information from the slave device.

### Claim 8 (depends on 6)

The method of claim 6, further comprising sending, from the master device, correction information to the slave device following a synchronization event in which the master device receives timing information from the slave device.

### Claim 9 (depends on 2)

The method of claim 2, wherein sending timing information from a slave device comprises sending timing information in response to a signal from the master device.

### Claim 10 (depends on 2)

The method of claim 2, wherein at least one of the steps of sending comprise exchanging synchronization information using synchronization-specific packets.

### Claim 11 (depends on 2)

The method of claim 2, wherein sending comprises exchanging synchronization information using packets that are not specific to synchronization, thereby allowing for data and/or additional control/management information.

### Claim 12 (depends on 2)

The method of claim 2, further comprising computing the correction information by comparing timing information from the slave device to timing information of the master device when the timing information from the slave device is received at the master device.

### Claim 13 (depends on 2)

The method of claim 2, wherein the communication system is a wireless communication system.

### Claim 14 (depends on 13)

The method of claim 13, wherein the wireless communication system uses, at least in part, 802.11 protocols.

### Claim 15 (depends on 2)

The method of claim 2, further comprising:
calculating, at the master device, a difference between a timebase of the slave device as determined from the sent timing information and a timebase of the master device, after the timing information from the slave device is received at the master device;
computing correction information from the difference; and
sending correction information based on the results of computing.

### Claim 16 (depends on 15)

The method of claim 15, wherein computing correction information is performed partially inside the master device and partially inside the slave device.

### Claim 17 (depends on 15)

The method of claim 15, wherein computing correction information includes one or more of low pass filtering, clipping the correction information when it exceeds a predetermined value, applying a static offset, applying a dynamic offset, and/or applying an adaptive offset.

### Claim 18 (depends on 15)

The method of claim 15, wherein the method is performed to synchronize a plurality of slave devices to the master device and computing correction information is performed separately per slave device.

### Claim 19 (depends on 15)

The method of claim 15, wherein the method is performed to synchronize a plurality of slave devices to the master device and computing correction information is performed in common for two or more slave devices.

### Claim 20 (depends on 15)

The method of claim 15, wherein the method is performed to synchronize a plurality of slave devices to the master device and computing correction information is performed in part in common for two or more slave devices and in part performed separately per slave device.

### Claim 21 (depends on 2)

The method of claim 2, wherein the master device is a bridge device is a device usable with a first wireless network and a second wireless network, the method further comprising:
synchronizing the bridge device to the first wireless network, wherein synchronizing comprises sending multiple timing correction signals, spread over multiple synchronization events, to the bridge device.

### Claim 22 (depends on 21)

The method of claim 21, further comprising:
accumulating timing correction signals over the multiple synchronization events; and
applying an accumulated value as a timer offset.

### Claim 23 (depends on 22)

The method of claim 22, further comprising:
determining when a sufficient number of synchronization events has occurred to achieve a lock, and then applying the accumulated value as the timer offset.

### Claim 24 (depends on 2)

The method of claim 2, further comprising:
signalling to a wireless module an indication of when a synchronization event is expected to occur.

### Claim 25 (depends on 2)

The method of claim 2, wherein the master device timebase is a timebase of a wireless module used to interface the master device with a medium over which timing information is sent and received.

### Claim 26 (depends on 2)

The method of claim 2, wherein the slave device timebase is a timebase of a wireless module used to interface the slave device with a medium over which timing information is sent and received.

### Claim 27

A slave device that synchronizes a slave device timebase to a master device, having a master device timebase, using communications between the slave device and the master device, wherein the master device is such that it does not transmit an indication of master transmission time representing a time of a transmission from the master device to the slave device in a form usable by the slave device to determine the time of the transmission from the master device, the slave device comprising:
circuitry to calculate an offset between the slave device timebase and the master device timebase using correction information from the master device that is independent of a time-of-sending time of a packet from the master device containing the correction information and independent of a time-of-sending time of other packets from the master device to the slave device; and
circuitry to adjust a slave device timebase based on the calculated offset, independent of the indication of master transmission time.

### Claim 28 (depends on 27)

The slave device of claim 27, further comprising:
logic for sending timing information to a network channel, addressed to the master device, wherein the timing information represents the slave device timebase; and
logic for receiving and processing returned correction information received the master device, the correction information representing a difference between the slave device timebase and the master device timebase.

### Claim 29

A method of synchronizing a slave device timebase of a slave device to a master device timebase of a master device, wherein the master device is a device configured such that application-level programs interacting with the master device are unable to include accurate time-of-sending information in packets directed to the slave device, and thus the master device is such that it does not transmit the time-of-sending information to the slave device in a form usable by the slave device to determine the time of the transmission from the master device, the method comprising:
sending timing information from the slave device to the master device in a packet created by the slave device, the timing information representing the slave device timebase;
receiving the packet at the master device;
associating a received timestamp with the packet, the received timestamp corresponding to a time of receipt of the packet at the master device;
comparing the received timestamp and the timing information to determine correction information representing a difference between the slave device timebase and the master device timebase; and
providing the correction information to logic at the slave device for adjusting the slave device timebase, wherein the correction information is independent of the time-of-sending information.

### Claim 30 (depends on 29)

The method of claim 29, wherein comparing is done at the master device and providing comprises transmitting the correction information to the slave device.

### Claim 31 (depends on 29)

The method of claim 29, wherein comparing is done at the slave device.

### Claim 32 (depends on 29)

The method of claim 29, further comprising adjusting the slave device timebase using the provided correction information.

### Claim 33 (depends on 29)

The method of claim 29, wherein the timing information sent from the slave device to the master device in the packet is the time-of-sending time of the packet according to the slave device timebase.

### Claim 34 (depends on 29)

The method of claim 29, wherein packets sent by application-level programs at the master device are queued and sent at transmission times that are unknown to the application-level programs at the time of packet creation.

### Claim 35 (depends on 29)

The method of claim 29, wherein the timing information from the slave device is a representation of a timestamp of the time-of-sending time from the slave device according to the slave device timebase.
