Timing synchronization using broadcast synchronization packets
Granted 14 Oct 2014 · 1 office action
Current assignee: MARVELL ASIA PTE, LTD. · originally Marvell Technology Group Ltd.
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Raja Banerjea, Josselin de la Broise · Examiner: Charles C Jiang · AU 2412 · TC 2400
Life of the application
13 dated eventsAbstract
Systems, methods, and other embodiments associated with timing synchronization using broadcast synchronization packets are described. According to one embodiment, an apparatus a synchronization signal generator configured to generate a synchronization signal based, at least in part, on a first timing signal associated with a first device. The apparatus includes a synchronization packet generator configured to generate a synchronization packet that includes the synchronization signal and an offset time. The offset time corresponds to a delay between i) a time of receipt of the synchronization signal, and ii) a broadcast time of the synchronization packet. An RF synchronization packet emitter is configured to broadcast the synchronization packet, at the broadcast time, for use in synchronizing a second timing signal associated with a second device with the first timing signal.
Description
7 parts›CROSS REFERENCE TO RELATED APPLICATIONS
This patent disclosure claims the benefit of U.S. Provisional Application No. 61/530,211 filed on Sep. 1, 2011, which is hereby wholly incorporated by reference.
›BACKGROUND
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
It is sometimes desirable to synchronize a non finite number of wireless devices with a single timing signal. One instance in which many wireless devices are synchronized with a single timing signal is three dimensional (3D) movie viewing systems that utilize actively shuttered viewing glasses. 3D movies that are intended for viewing by shuttered viewing glasses are simultaneously filmed with two cameras. A “right eye” camera films from the perspective of a viewer's right eye while a “left eye” camera films from the perspective of a viewer's left eye.
When the movie is presented, right eye frames are interleaved with left eye frames. Right and left lenses of the glasses are separately shuttered in synchronization with a timing sequence of the interleaved right and left perspective movie frames. A left shutter of the glasses is opened (and a right shutter is closed) when left “eye” frames are presented, and vice versa. The timing sequence of the shutters in each pair of glasses is separately synchronized with the movie's timing sequence. To optimize the viewing experience, the synchronization of the shutters must remain in close synchronization throughout operation of the viewing glasses.
›SUMMARY
In one aspect, this patent disclosure describes an apparatus that, in one embodiment, includes a synchronization signal generator, a synchronization packet generator, and an RF synchronization packet emitter. The synchronization signal generator is configured to generate a synchronization signal based, at least in part, on a first timing signal associated with a first device. The synchronization packet generator is configured to generate a synchronization packet having a synchronization packet data field. The synchronization packet data field includes the synchronization signal and an offset time. The offset time corresponds to a delay between i) a time of receipt by the synchronization packet generator of the synchronization signal, and ii) a broadcast time of the synchronization packet. The RF synchronization packet emitter is configured to broadcast the synchronization packet, at the broadcast time, to a second device for use in synchronizing a second timing signal associated with the second device with the first timing signal.
In another aspect, this patent disclosure describes a method that, in one embodiment, includes capturing a first timing signal that is associated with a first device and generating a synchronization signal based, at least in part, on the first timing signal. The method includes, in response to the synchronization signal, generating a synchronization packet having a synchronization packet data field. The synchronization packet data filed includes the synchronization signal and offset time. The offset time corresponds to a delay between i) a time of receipt of the synchronization signal and ii) a broadcast time of the synchronization packet. The method includes broadcasting, to a second device, the synchronization packet at the broadcast time for use in synchronizing a second timing signal associated with the second device with the first timing signal.
›BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate various systems, methods, and other embodiments of the disclosure. It will be appreciated that the illustrated element boundaries (e.g., boxes, groups of boxes, or other shapes) in the figures represent one example of the boundaries. One of ordinary skill in the art will appreciate that in some examples one element may be designed as multiple elements or that multiple elements may be designed as one element. In some examples, an element shown as an internal component of another element may be implemented as an external component and vice versa. Furthermore, elements may not be drawn to scale.
FIG. 1 illustrates one embodiment of an apparatus associated with timing synchronization using broadcast synchronization packets.
FIGS. 2A and 2B illustrate one embodiment of a protocol for broadcasting synchronization packets.
FIG. 3 illustrates one embodiment of a broadcast synchronization packet payload.
FIG. 4 illustrates one embodiment of a method associated with timing synchronization using broadcast synchronization packets.
FIG. 5 illustrates one embodiment of a method associated with timing synchronization using broadcast synchronization packets.
›DETAILED DESCRIPTION · 1 of 3
One way to synchronize a number of wireless devices with a single timing signal is to produce an infrared timing pulse that is detected by the wireless devices. Infrared pulses may suffer from a limited range and line of sight difficulties. Thus, it may be desirable to perform a radio frequency (RF) broadcast of the timing signal to the wireless devices. Broadcasting a synchronization signal over radio frequencies can provide extended range and improved reception when line of sight is not guaranteed.
Described herein are methods and apparatus that employ a wireless communication protocol to broadcast synchronization packets containing information about a timing signal to a non finite number of wireless devices. For the purposes of this description, a Bluetooth protocol is selected as the communication protocol. Bluetooth is a communication protocol employed by many types of wireless personal devices to create a short range network between devices using radio transmissions. Other communication protocols and/or synchronization packet structures may also be used to achieve timing synchronization using broadcast synchronization packets.
With reference to FIG. 1 , one embodiment of a wireless network 100 that includes a source device 110 and a non finite number n of wireless devices 120 a - 120 n . The source device 110 operates according to a source timing signal. The wireless devices 120 a - 120 n operate according to internal timing signals that are synchronized with the source timing signal. In the 3D movie example above, the device displaying the movie would be the source device 110 . The right and left frames would be synchronized according to the source timing signal. The shuttered glasses would be the wireless devices 120 a - 120 n.
In order to maintain synchronization of the wireless devices internal timing signals with the source signal, the source device 110 transmits a synchronization packet. The synchronization packet includes, in various data fields (e.g., payload), information used by the wireless devices to synchronize their internal timing signal with the source signal. The synchronization packet includes a synchronization signal that contains a time of an occurrence of a predetermined source signal timing event (e.g., a number of pulses of the source timing signal) and an offset time that specifies a time difference between when the event occurred and when the synchronization packet is broadcast by the source device 110 .
The offset time may be a constant value that the source device 110 waits prior to sending the synchronization packet. Waiting a predetermined offset allows for the source device 110 to compensate for differences in speed with which the synchronization packet can be prepared and broadcasted in different operating conditions. With the synchronization signal and the offset time, the wireless devices 120 a - 120 n can synchronize their internal timing signal with the source timing signal.
To generate and emit synchronization packets, the source device 110 includes a synchronization signal generator 130 , a synchronization packet generator 140 , and a synchronization packet emitter 150 . The synchronization signal generator 130 generates a synchronization signal based, at least in part, on the source timing signal. In one embodiment, the synchronization signal generator generates the synchronization signal every M th pulse of the source timing signal. The value of M can be selected based on how often the wireless devices should be synched with the source timing signal, taking into consideration a processing cost of scanning for the synchronization packet. In one embodiment M is 150 .
The synchronization packet generator 140 receives the synchronization signal and generates a synchronization packet that includes the synchronization signal and the offset time. In some embodiments, the synchronization packet includes additional information as will be described in more detail below. The synchronization packet emitter 150 broadcasts the synchronization packet on radio frequency to the wireless devices 120 a - 120 n.
The wireless devices 120 a - 120 n each includes a scanner 160 a - 160 n , respectively, configured to perform a radio frequency scan to receive the synchronization packet. The scanners 160 a - 160 n may be configured to scan for synchronization packets during a limited scanning window. The synchronization packet may include information that is used by the wireless device to determine when to scan for a next synchronization packet. The wireless devices also include a synch unit 150 a 150 n , respectively, configured to synchronize the wireless device's timing signal with the source timing signal, based, at least in part on the synchronization signal and the offset time found in the synchronization packet.
In the described embodiment, the wireless devices 120 a - 120 n are Bluetooth enabled and the synchronization packet is a Bluetooth Low Energy (BLE) advertising protocol data unit (PDU). Other protocols may be used to broadcast the synchronization signal and offset time to the wireless devices 120 a - 120 n . The BLE advertising PDU is a non-connectable undirected packet that is used in advertising events. Packets of this type are used in broadcasting information to unspecified Bluetooth enabled devices and provide robust transmission even when channels are blocked.
FIG. 2A is a timeline that illustrates how synchronization packets may be delivered according to a BLE advertising protocol. A series of advertising “events” 210 , 220 , 230 that are used to broadcast successive synchronization packets are shown on the timeline. Each advertising event occurs at a time T_advEvent after a prior advertising event. To provide a more robust transmission, a time of broadcast for successive advertising events is nota fixed interval, but rather is perturbed in time. The time T_advEvent is defined as a fixed time interval advInterval delayed by a pseudo-random time advDelay. The BLE protocol requires that the time T_advInterval be an integer multiple of 0.625 milliseconds in a range of 100 milliseconds to 10.24 seconds. The BLE protocol requires that the time advDelay be a pseudo-random value with a range of 0 milliseconds to 10 milliseconds generated by a Link Layer for each advertising event.
›DETAILED DESCRIPTION · 2 of 3
FIG. 2B illustrates components of the advertising event 210 as specified by the BLE protocol. Each advertising event includes three sequential transmissions of the same synchronization packet on three different frequency channels. Broadcasting on three channels avoids interference issues that may arise depending on a broadcast environment. The time between broadcasts of a first and second packet 210 a , 210 b is equal to the time between broadcasts of a second and third packet. The time between packets, Tadv, is required by the BLE protocol to be less than or equal to 10 milliseconds.
A Bluetooth enabled wireless device is configured to receive BLE advertising PDUs. Thus, when a synchronization packet is broadcast using the BLE advertising packet protocol, the wireless device is configured to process packets according to a communicated value for Tadv, frequency, and so on.
FIG. 3 illustrates an example embodiment of a synchronization packet payload 300 . The payload 300 includes several data fields. The value for M is the synchronization signal and corresponds to a number of timing signal pulses that elapsed since the last synchronization signal was generated. If the source timing signal and the wireless device timing signal is clocked at the same speed, M pulses of the source timing signal corresponds to the same time duration as M pulses of the wireless device timing signal.
Another payload data field stores a value for the offset time, which is a time that elapsed since the M th source timing signal pulse and broadcast of the packet. With the offset time and the synchronization signal, the wireless device can synchronize its timing signal with the source device timing signal. If the clock used for the source timing signal is the same as or is in sync with the clock used to send advertising events, to determine the offset, a first clock value when the M th pulse is detected may be read. The first clock value is subtracted from a second clock value when the synchronization packet is sent.
In some embodiments, a payload data field includes a value for the frequency on which the packet is broadcast as well as an interval time corresponding to the value for Tadv (e.g., the time between the packets in an advertising event). When the wireless devices are configured to scan during a limited scan window for the synchronization packet, a packet payload data field may store a value for a random event delay corresponding to the value for advDelay for the next synchronization packet's broadcast. Values for advDelay may be read from a stored list of pseudo-random values.
The wireless device can use advDelay to determine when the next synchronization packet will be broadcast, and begin scanning at the determined time. In some embodiments, the offset value and the value for advDelay may be combined. In this case, the offset value is the time difference between the M th source timing signal pulse and the broadcast time of a subsequent advertising event.
FIG. 4 illustrates one embodiment of a method 400 for broadcasting synchronization packets. The method includes, at 410 , capturing a source timing signal that is associated with a source device. At 420 , the method includes generating a synchronization signal based, at least in part, on the source timing signal. In one embodiment, generating the synchronization signal is performed by signaling that a predetermined number of timing pulses has occurred. At 430 , the method includes generating a synchronization packet having a synchronization packet data field that includes the synchronization signal and an offset time. The offset time corresponds to a delay between a time of receipt of the synchronization signal and a broadcast time of the synchronization packet. The method includes, at 440 , waiting the offset time and then at 450 , broadcasting the synchronization packet to a wireless device for use in synchronizing an internal timing signal of the wireless device with the source timing signal.
In some embodiments, the method 400 includes broadcasting the synchronization packet during a first time interval on a first frequency, during a second time interval on a second frequency, and during a third time interval on a third frequency. The first, second, and third time intervals have substantially the same duration. The method 400 generates a synchronization packet that includes a duration of the first time interval in a synchronization packet data field.
In some embodiments, the method 400 includes generating successive synchronization signals periodically based on the first timing signal and generating successive synchronization packets for each successive synchronization signal. Successive synchronization packets are broadcast at successive broadcast times. A time between successive broadcast times corresponds to a broadcast interval increased by a pseudo-random time value. The method 400 generates a synchronization packet that includes the pseudo-random time value associated with the broadcast time of a next synchronization packet in a synchronization packet data field.
FIG. 5 illustrates one embodiment of a method 500 for synchronizing a wireless device using a received broadcast synchronization packet. The method includes, at 510 , receiving an internal timing signal for a wireless device and, at 520 , operating according to the internal timing signal. At 530 , the method includes determining if it is time to scan for a new synchronization packet. In one embodiment, this determination is made by counting internal timing signal pulses up to a predetermined number (e.g., M, as found in a prior synchronization packet). When it is time to scan for a new synchronization packet, the method includes, at 440 , waiting the offset time and, optionally, a broadcast interval time (e.g., advDelay) as specified by an immediately prior synchronization packet.
At 450 , after waiting the appropriate amount of time, the method includes performing a radio frequency scan for a synchronization packet. At 470 , if no synchronization packet is received, the method returns to 410 and the wireless device operates according to the original internal timing signal. Optionally, the internal timing signal may be adjusted for drift. If a synchronization packet is received, at 480 the method includes adjusting the internal timing signal of the wireless device with the source timing signal, based, at least in part on the synchronization signal and the offset time. The internal timing signal may also be adjusted for drift.
›DETAILED DESCRIPTION · 3 of 3
The following includes definitions of selected terms employed herein. The definitions include various examples and/or forms of components that fall within the scope of a term and that may be used for implementation. The examples are not intended to be limiting. Both singular and plural forms of terms may be within the definitions.
References to “one embodiment”, “an embodiment”, “one example”, “an example”, and so on, indicate that the embodiment(s) or example(s) so described may include a particular feature, structure, characteristic, property, element, or limitation, but that not every embodiment or example necessarily includes that particular feature, structure, characteristic, property, element or limitation. Furthermore, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, though it may.
“Logic”, as used herein, includes but is not limited to hardware, firmware, instructions stored on a non-transitory medium or in execution on a machine, and/or combinations of each to perform a function(s) or an action(s), and/or to cause a function or action from another logic, method, and/or system. Logic may include a software controlled microprocessor, a discrete logic (e.g., ASIC), an analog circuit, a digital circuit, a programmed logic device, a memory device containing instructions, and so on. Logic may include one or more gates, combinations of gates, or other circuit components. Where multiple logics are described, it may be possible to incorporate the multiple logics into one physical logic. Similarly, where a single logic is described, it may be possible to distribute that single logic between multiple physical logics. One or more of the components and functions described herein may be implemented using one or more of the logic elements.
While for purposes of simplicity of explanation, illustrated methodologies are shown and described as a series of blocks. The methodologies are not limited by the order of the blocks as some blocks can occur in different orders and/or concurrently with other blocks from that shown and described. Moreover, less than all the illustrated blocks may be used to implement an example methodology. Blocks may be combined or separated into multiple components. Furthermore, additional and/or alternative methodologies can employ additional, not illustrated blocks.
To the extent that the term “includes” or “including” is employed in the detailed description or the claims, it is intended to be inclusive in a manner similar to the term “comprising” as that term is interpreted when employed as a transitional word in a claim.
While example systems, methods, and so on have been illustrated by describing examples, and while the examples have been described in considerable detail, it is not the intention of the applicants to restrict or in any way limit the scope of the appended claims to such detail. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the systems, methods, and so on described herein. Therefore, the disclosure is not limited to the specific details, the representative apparatus, and illustrative examples shown and described. Thus, this application is intended to embrace alterations, modifications, and variations that fall within the scope of the appended claims.
Claims as granted
18 claimsLog in to read the claims of this application.
Log in to unlockClassifications
6 codes- H04J3/06
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock