IP Library Granted Patent US 8,447,004
Granted Patent B2
US 8,447,004 · App. 13/020,815 · Granted May 21, 2013

Estimation and compensation of clock variation in received signal

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 8,447,004
App. No.
13/020,815
Granted
May 21, 2013
Kind
B2
Abstract

A method and system for estimating and compensating for variation between a receiver clock and a transmitter clock, where a receiver utilizes a high frequency clock signal to generate a receiver clock and then adjusts the receiver clock to compensate for variations between the receiver and transmitter clocks. The adjusted receiver clock is used to sample nibble pulses in a received data frame. Counter based compensation of the receiver clock eliminates the need for the receiver to perform floating point calculations, improves the accuracy of nibble pulse sampling and also reduces area and power consumption of the device.

Claims (68)

1. A method for estimating and compensating for variation between a receiver clock and a transmitter clock, comprising the steps of:

receiving a data frame transmitted over a communication channel by a transmitter, the data frame including a calibration pulse and one or more nibble pulses;

receiving a high frequency (HF) clock signal;

generating a receiver clock using the HF clock signal by counting cycles of the HF clock signal, wherein a period of the receiver clock equals a predetermined prescaler value of the HF clock signal cycles;

generating a rollover signal when the HF clock signal cycle count reaches the predetermined prescaler value;

counting the rollover signals;

measuring a length of the calibration pulse in terms of the rollover signal count and the HF clock signal cycle count;

comparing the measured calibration pulse length with an ideal calibration pulse length to determine the variation between the transmitter and receiver clocks, wherein said variation is expressed as a number of HF clock signal cycles; and

generating an adjusted receiver clock by compensating for said variation.

2. The method of claim 1 , wherein compensating for said variation comprises:

distributing said variation over the ideal calibration pulse length to determine a variation in the number of HF clock signal cycles per transmitter clock cycle in the ideal calibration pulse length; and

generating an adjusted prescaler value from the predetermined prescaler value by,

adding the determined variation in the number of HF clock signal cycles per transmitter clock cycle if the ideal calibration pulse length is greater than the measured calibration pulse length; and

subtracting the determined variation in the number of HF clock signal cycles per transmitter clock cycle if the measured calibration pulse length is greater than the ideal calibration pulse length.

3. The method of claim 2 , wherein generating the adjusted receiver clock comprises:

subtracting one HF clock signal cycle from the adjusted prescaler value if the measured calibration pulse length is greater than the ideal calibration pulse length, and

subtracting two HF clock signal cycles from the adjusted prescaler value if the ideal calibration pulse length is greater than the measured calibration pulse length.

4. The method of claim 1 , wherein the ideal calibration pulse length is based on the transmitter clock.

5. The method of claim 1 , further comprising sampling the one or more nibble pulses in the data frame being received using the adjusted receiver clock.

6. The method of claim 5 , wherein sampling the one or more nibble pulses comprises:

measuring a nibble pulse length in terms of a number of adjusted receiver clock cycles and HF clock cycles; and

increasing the nibble pulse length by one receiver clock cycle if the number of HF clock signal cycles for a portion of the nibble pulse length not measured using the adjusted receiver clock cycles lies within an allowable range.

7. The method of claim 6 , wherein the allowable range is based on drift and jitter in the transmitter and receiver clocks.

8. The method of claim 6 , wherein a frequency of the HF clock signal is greater than a minimum predefined frequency based on a maximum permissible error in the measurement of the received nibble pulse length.

9. The method of claim 8 , wherein the maximum permissible error is ⅞ of an adjusted receiver clock period.

10. The method of claim 6 , wherein the allowable range is ⅛ of one adjusted receiver clock period.

11. The method of claim 1 , wherein the ideal calibration pulse length comprises fifty-six (56) transmitter clock cycles.

12. A receiver for receiving a data frame transmitted over a communication channel by a transmitter, the data frame including a calibration pulse and one or more nibble pulses, the receiver comprising:

an edge detection unit for detecting an edge of the calibration pulse and generating an edge detection signal;

a prescaler counter that receives a high frequency (HF) clock signal and counts cycles of the HF clock signal;

a comparator for generating a rollover signal when the HF clock signal cycle count reaches a predetermined prescaler value;

a rollover counter for measuring a length of the calibration pulse in terms of a count of the rollover signals;

a counter reset unit that generates a reset signal on assertion of at least one of the edge detection signal and the rollover signal, wherein the reset signal is used to reset the prescaler counter and the rollover counter;

a prescaler correction factor unit for generating an adjusted prescaler value, the prescaler correction factor unit including:

a subtractor that subtracts the measured calibration pulse length from an ideal calibration pulse length to generate a first variation, wherein the first variation is expressed as a number of HF clock cycles;

an adder-subtractor unit that performs at least one of:

adding a portion of the calibration pulse not measured by the rollover counter to the first variation to generate a second variation if the measured calibration pulse length is greater than the ideal calibration pulse length; and

subtracting the portion of the calibration pulse not measured by the rollover counter from the first variation to generate the second variation if the ideal calibration pulse length is greater than the measured calibration pulse length,

 wherein the portion of the calibration pulse not measured by the rollover counter is received from the prescaler counter, and wherein the second variation represents the total variation over the calibration pulse length between the transmitter and receiver clocks in terms of HF clock signal cycles;

a distributing unit that distributes the second variation over the ideal calibration pulse length to determine the number of HF clock signal cycles of the second variation per transmitter clock cycle in the ideal calibration pulse length;

means for adjusting the predetermined prescaler value by the determined number of HF clock cycles of the second variation per transmitter clock cycle to obtain the adjusted prescaler value; and

an adjusted receiver clock generation unit that generates an adjusted receiver clock signal.

13. The receiver of claim 12 , wherein the adjusted receiver clock generation unit adjusts the receiver clock so that an adjusted receiver clock period is one HF clock cycle less than the adjusted prescaler value if the measured length of the calibration pulse is greater than the ideal calibration pulse length and two HF clock cycles less than the adjusted prescaler value if the ideal calibration pulse length is greater than the measured length of the calibration pulse.

14. The receiver of claim 12 , further comprising a nibble pulse sampling unit that receives the data frame and samples the one or more nibble pulses using the adjusted receiver clock signal.

15. The receiver of claim 14 , wherein the nibble pulse sampling unit comprises:

a nibble pulse length counter for counting a nibble pulse length in terms of a number of adjusted receiver clock cycles and generating a nibble pulse length count; and

an allowable range enable block, connected to the nibble pulse length counter, for increasing the nibble pulse length count by one adjusted receiver clock cycle if the number of HF clock signal cycles for a portion of the nibble pulse length not measured by the adjusted receiver clock cycles lies within an allowable range.

16. The receiver of claim 15 , wherein the allowable range comprises ⅛ of adjusted receiver clock period.

17. The receiver of claim 15 , further comprising an adjusted nibble pulse length calculation unit connected to the nibble pulse length counter for adjusting the nibble pulse length in accordance with a predefined standard.

18. The receiver of claim 12 , wherein the prescaler counter is a 14-bit counter.

19. The receiver of claim 12 , wherein the adjusted receiver clock generation unit includes a 15-bit prescaler counter that includes a sign bit for counting a sign offset of the second variation.

20. In a receiver that has a receiver clock, a method for sampling nibble pulses using an adjusted receiver clock, wherein the nibble pulses are part of a data frame transmitted over a communication channel by a transmitter that operates using a transmitter clock, the method comprising:

receiving the data frame transmitted over the communication channel, the data frame including a calibration pulse and one or more nibble pulses;

receiving a high frequency (HF) clock signal;

generating a receiver clock using the HF clock signal by counting cycles of the HF clock signal, wherein a period of the receiver clock equals a predetermined prescaler value of the HF clock signal cycles;

generating a rollover signal when the HF clock signal cycle count reaches the predetermined prescaler value;

counting the generated rollover signals;

measuring a length of the calibration pulse in terms of the rollover signal count and the HF clock signal cycle count;

comparing the measured calibration pulse length with an ideal calibration pulse length to determine a variation between the transmitter and receiver clocks, wherein said variation is expressed as a number of HF clock signal cycles;

distributing said variation over the ideal calibration pulse length to determine the number of HF clock cycles per transmitter clock cycle in the ideal calibration pulse length;

adjusting the predetermined prescaler value by the determined number of HF clock signal cycles per transmitter clock cycle to obtain the adjusted prescaler value by,

adding the determined number of HF clock signal cycles to the receiver clock if the ideal calibration pulse length is greater than the measured calibration pulse length; and

subtracting the determined number of HF clock signal cycles from the receiver clock if the measured calibration pulse length is greater than the ideal calibration pulse length;

generating an adjusted receiver clock by counting cycles of the HF clock signal and adjusting a period of the adjusted receiver clock by,

removing one HF clock signal cycle from the adjusted prescaler value if the measured calibration pulse length is greater than the ideal calibration pulse length; and

removing two HF clock signal cycles from the adjusted prescaler value if the ideal calibration pulse length is greater than the measured calibration pulse length;

measuring a nibble pulse length using the adjusted receiver clock; and

increasing the nibble pulse length by one receiver clock cycle if the number of HF clock signal cycles for a portion of the nibble pulse length not measured by the adjusted receiver clock lies within an allowable range, wherein the allowable range is ⅛ of one adjusted receiver clock period.

Assignments (30)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0285 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0387 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0334 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0477 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027622/0075 →
SECURITY AGREEMENT Recorded Jan 31, 2012
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 027621/0928 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2011
From: TOMAR, ROHIT; BHARGAVA, PRASHANT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 025743/0187 →