IP Library Granted Patent US 7,657,668
Granted Patent B2
US 7,657,668 · App. 11/504,948 · Granted Feb 2, 2010

Clock synchronization of data streams

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,657,668
App. No.
11/504,948
Granted
Feb 2, 2010
Kind
B2
Abstract

A system synchronizes data flow between a first device and a second device. The system includes a data link that connects two or more devices that are capable of sending and receiving data through a bus. A capture device senses and transfer information through the bus. A ring buffer temporarily stores data transmitted through the bus. A read controller copies or reconstructs data in a length that is different from the length of the data received. A monitor detects underflow or overflow conditions into or out of the ring buffer and compensates for clock drift.

Claims (51)

1. A system that synchronizes data flow between a first device and a second device comprising:

a data link that couples two or more devices that are capable of sending and receiving data through a bus system;

a capture device in communication with the data link configured to sense and transfer information through the bus system;

a ring buffer in communication with the capture device that temporarily stores data received by the data link;

a write controller that writes data to the ring buffer;

a read controller in communication with the ring buffer that copies or reconstructs data in a second length that is different from a first length of data received by the capture device;

a playback device that transmits data to an output port; and

a monitor that detects an underflow or an overflow condition into or out of the ring buffer and compensates for a clock drift by transmitting a blocking call to the capture device when an overflow condition is detected and compensates for the clock drift by transmitting a blocking call to the playback device when an underflow condition is detected.

2. The system of claim 1 where the data link comprises an external bus.

3. The system of claim 1 further comprising a device driver in communication with the data link.

4. The system of claim 1 where the device driver comprises a translator that translates a data format into a different data format to ensure operative compatibility between two different devices.

5. The system of claim 1 where the ring buffer comprises a first-in, first out storage device.

6. The system of claim 1 where the monitor is configured to construct or parse data to be transmitted by the playback device.

7. The system of claim 1 where the capture device is configured to receive data processed at a different rate than the rate the data is transmitted by the playback device.

8. The system of claim 1 where the ring buffer comprises a contiguous block of memory.

9. The system of claim 1 where the ring buffer comprises a non-contiguous block of memory.

10. The system of claim 1 where the ring buffer comprises overflow logic that prevents an access pointer from moving out of a predetermined memory address range.

11. The system of claim 10 where the overflow logic is configured to be disabled through a software instruction.

12. The system of claim 1 where the monitor is configured to derive a compensation time through a windowing function.

13. The system of claim 1 where the monitor compensates for the clock drift at a synchronous basis.

14. The system of claim 1 where the monitor compensates for clock drift at a asynchronous basis.

15. A system that synchronizes data flow between a first device and a second device comprising:

a capture device in communication a data link configured to sense and transfer information;

a synchronizer in communication with the capture device that stores data received through the capture device;

a read controller in communication with a ring buffer that copies data in a second length that is different from a length received by the capture device; and

a monitor that detects an underflow or an overflow condition into or out of the synchronizer and compensates for a clock drift by transmitting a blocking call to the capture device when an overflow condition is detected and compensates for the clock drift by transmitting a blocking call to a playback device when an underflow condition is detected.

16. The system of claim 15 where the capture device is in communication with a device driver where the device driver comprises a translator that translates a data format into a different data format to ensure operative compatibility between two different devices.

17. The system of claim 15 where the monitor compensates for clock drift at a asynchronous interval.

18. The system of claim 15 where the synchronizer is coupled to a vehicle.

19. The system of claim 15 where the synchronizer is coupled to a publicly accessible network.

20. A system that synchronizes data flow between a first device and a second device comprising:

a capture device in communication with a data link configured to sense and transfer information;

a synchronizer in communication with the capture device that stores data received through the capture device;

a read controller in communication with the synchronizer that copies data in a second length that is different from a length received by the capture device; and

means that detects an underflow or an overflow condition into or out of the synchronizer and compensates for a clock drift by transmitting a blocking call to the capture device when an overflow condition is detected and compensates for the clock drift by transmitting a blocking call to a playback device when an underflow condition is detected.

21. The system of claim 20 where the capture device is in communication with a device driver where the device driver comprises a means that translates a data format into a different data format to ensure operative compatibility between two different devices.

22. The system of claim 20 where the means that detects the underflow or overflow condition compensates for clock drift at an asynchronous interval.

23. The system of claim 20 where the synchronizer is coupled to a vehicle.

24. The system of claim 20 where the synchronizer is in communication with a publicly accessible network.

25. A system that synchronizes data flow between a first device and a second device comprising:

a capture device in communication with a data link configured to sense and transfer information;

a synchronizer in communication with the capture device that stores data received through the capture device;

a read controller in communication with the synchronizer that copies data in a second length that is different from a length received by the capture device; and

a monitor that detects an underflow or an overflow condition into or out of the synchronizer and compensates for a clock drift by transmitting a blocking call to the capture device when an overflow condition is detected and compensates for the clock drift by transmitting a blocking call to a playback device when an underflow condition is detected;

where the monitor is configured to transmit the blocking call to the capture device to prevent the capture device from obtaining data from the first device, where the monitor is configured to transmit the blocking call to the playback device to prevent the playback device from transmitting data to the second device.

26. A data synchronization system, comprising:

a capture device that receives data from a first external device;

a playback device that sends data to a second external device;

a buffer in communication with the capture device and the playback device, where the buffer stores data received from the first external device and provides data to the playback device for transmission to the second external device; and

a buffer monitor configured to transmit a blocking call to the capture device to prevent the capture device from obtaining additional data from the first external device in a buffer overflow condition, where the buffer monitor is configured to transmit a blocking call to the playback device to prevent the playback device from transmitting additional data to the second external device in a buffer underflow condition;

where the capture device, playback device, buffer, and buffer monitor comprise portions of a unitary device that provides a data flow interface between the first external device and the second external device.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF NAME Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS CO.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0863 →
CONFIRMATORY ASSIGNMENT Recorded Jul 9, 2010
From: QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.
To: QNX SOFTWARE SYSTEMS CO.
Reel/Frame 024659/0370 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
CHANGE OF NAME Recorded Nov 14, 2006
From: HARMAN BECKER AUTOMOTIVE SYSTEMS - WAVEMAKERS, INC.
To: QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.
Reel/Frame 018515/0376 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2006
From: ESCOTT, ALEX
To: HARMAN BECKER AUTOMOTIVE SYSTEMS - WAVEMAKERS, INC.
Reel/Frame 018292/0846 →