Software-assisted wireless coordination of audio playback
First Claim
1. An electronic device, comprising:
- a system clock circuit configured to provide a system clock in the electronic device;
a processor, coupled to the system clock, configured to execute software;
one or more antennas;
an interface clock circuit that is configured to provide an interface clock; and
an interface circuit communicatively coupled to the one or more antennas, the interface clock circuit and the processor, wherein the interface circuit is configured to;
receive, from the one or more antennas, packets associated with a second electronic device, wherein a given packet includes a transmit time, based on a second interface clock in the second electronic device when the second electronic device transmitted the given packet;
store receive times when the packets were received, wherein the receive times are based on the interface clock; and
receive, from the one or more antennas, information associated with the second electronic device specifying a future time when the electronic device is to perform a playback operation; and
wherein the processor is configured to;
maintain coordination between the system clock and the interface clock, wherein the interface clock has a higher frequency than the system clock;
calculate, based on differences between the transmit times and the receive times, relative drift as a function of time between the interface clock and the second interface clock;
adjust, based on the relative drift, the system clock circuit to eliminate the relative drift, wherein the relative drift, which is based on the interface clock, provides higher resolution than the system clock;
determine a remaining time offset between the interface clock and the second interface clock;
modify the future time based on the remaining time offset to determine a corrected future time; and
perform the playback operation at the corrected future time.
11 Assignments
0 Petitions
Accused Products
Abstract
A processor in an electronic device maintains coordination between a system clock provided by a system clock circuit and an interface clock provided by a clock circuit. Then, the processor may calculate, based on differences between transmit times when packets were transmitted by a second electronic device and receive times of the packets, relative drift as a function of time between the interface clock and a second interface clock in the second electronic device. Moreover, the processor adjusts, based on the relative drift, the system clock circuit to eliminate the relative drift. Next, the processor may determine a remaining time offset between the interface clock and the second interface clock. Furthermore, the processor modifies a future time when the electronic device is to perform the playback operation based on the remaining time offset to determine a corrected future time, and may perform the playback operation at the corrected future time.
59 Citations
22 Claims
-
1. An electronic device, comprising:
-
a system clock circuit configured to provide a system clock in the electronic device; a processor, coupled to the system clock, configured to execute software; one or more antennas; an interface clock circuit that is configured to provide an interface clock; and an interface circuit communicatively coupled to the one or more antennas, the interface clock circuit and the processor, wherein the interface circuit is configured to; receive, from the one or more antennas, packets associated with a second electronic device, wherein a given packet includes a transmit time, based on a second interface clock in the second electronic device when the second electronic device transmitted the given packet; store receive times when the packets were received, wherein the receive times are based on the interface clock; and receive, from the one or more antennas, information associated with the second electronic device specifying a future time when the electronic device is to perform a playback operation; and wherein the processor is configured to; maintain coordination between the system clock and the interface clock, wherein the interface clock has a higher frequency than the system clock; calculate, based on differences between the transmit times and the receive times, relative drift as a function of time between the interface clock and the second interface clock; adjust, based on the relative drift, the system clock circuit to eliminate the relative drift, wherein the relative drift, which is based on the interface clock, provides higher resolution than the system clock; determine a remaining time offset between the interface clock and the second interface clock; modify the future time based on the remaining time offset to determine a corrected future time; and perform the playback operation at the corrected future time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer-readable storage medium for use with an electronic device, the computer-readable storage medium storing a program module that, when executed by the electronic device, coordinates a playback operation by causing the electronic device to perform one or more operations comprising:
-
maintaining coordination between a system clock provided by a system clock circuit in the electronic device and an interface clock provided by an interface clock circuit in the electronic device, wherein the interface clock has a higher frequency than the system clock; calculating, based on differences between receive times when an interface circuit in the electronic device received packets associated with a second electronic device and transmit times, included in the packets, when the second electronic device transmitted the packets, relative drift as a function of time between the interface clock and a second interface clock in the second electronic device, wherein a given packet includes a transmit time, based on the second interface clock, when the second electronic device transmitted the given packet; adjusting, based on the relative drift, the system clock circuit to eliminate the relative drift, wherein the relative drift, which is based on the interface clock, provides higher resolution than the system clock; determining a remaining time offset between the interface clock and the second interface clock; modifying, based on the remaining time offset, a future time, which was received from the interface circuit, when the electronic device is to perform the playback operation to determine a corrected future time; and performing the playback operation at the corrected future time. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method for coordinating a playback operation, comprising:
by a processor in an electronic device; maintaining coordination between a system clock provided by a system clock circuit in the electronic device and an interface clock provided by an interface clock circuit in the electronic device, wherein the interface clock has a higher frequency than the system clock; calculating, based on differences between receive times when an interface circuit in the electronic device received packets associated with the second electronic device and transmit times, included in the packets, when the second electronic device transmitted the packets, relative drift as a function of time between the interface clock and a second interface clock in the second electronic device, wherein a given packet includes a transmit time, based on the second interface clock, when the second electronic device transmitted the given packet; adjusting, based on the relative drift, the system clock circuit to eliminate the relative drift, wherein the relative drift, which is based on the interface clock, provides higher resolution than the system clock; determining a remaining time offset between the interface clock and the second interface clock; modifying, based on the remaining time offset, a future time, which was received from the interface circuit, when the electronic device is to perform the playback operation to determine a corrected future time; and performing the playback operation at the corrected future time. - View Dependent Claims (19, 20, 21, 22)
Specification