IP Library Granted Patent US 9,602,270
Granted Patent B2
US 9,602,270 · App. 14/272,582 · Granted Mar 21, 2017

Clock drift compensation in a time synchronous channel hopping network

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 9,602,270
App. No.
14/272,582
Granted
Mar 21, 2017
Kind
B2
Abstract

Disclosed are various embodiments for compensating for clock drift between nodes in a time synchronous network. A node receives time synchronization information from a parent node in the network. A drift between a clock of the node and a clock of the parent node is determined based upon the time synchronization information. The node identifies a number of time slots of the network since making a last time synchronization based on previous time synchronization information transmitted from the parent node. A compensation interval is calculated that represents a number of the time slots over which the clock of the node deviated, with respect to the parent node, by a predefined compensation value. The node compensates, by the compensation value, one of the time slots according to the compensation interval.

Claims (44)

1. A method for clock drift compensation by a processor of a node in a network, comprising:

receiving time synchronization information from a parent node in the network;

determining a drift between a clock of the node and a clock of the parent node based upon the time synchronization information;

determining a number of time slots of the network that have elapsed since making a last time adjustment based on previous time synchronization information received from the parent node;

calculating a number of clock ticks in the drift;

calculating a number of elapsed time slots that resulted in one clock tick of drift by dividing the number of time slots by the number of clock ticks to obtain a compensation interval;

using the compensation interval to compensate a selected time slot by one clock tick, wherein the selected time slot corresponds to one time slot within the compensation interval; and

repeating said compensating using a same value for the compensation interval until a subsequent drift, based on subsequent time synchronization information, meets or exceeds a predefined drift threshold, wherein the subsequent drift meeting or exceeding the predefined drift threshold triggers calculating a new value for the compensation interval.

2. The method of claim 1 , wherein the steps of determining the number of time slots, calculating, and using are performed when the drift meets or exceeds the predefined drift threshold.

3. The method of claim 1 , wherein when the subsequent drift meets or exceeds the predefined drift threshold, further comprising:

identifying a subsequent number of time slots of the network since said synchronizing the clock of the node;

calculating a subsequent compensation interval representing a subsequent number of the time slots over which the clock of the node deviated by one clock tick with respect to the parent node; and

compensating, by one clock tick, one of the time slots according to the subsequent compensation interval.

4. The method of claim 1 , wherein the network is defined by Institute of Electrical and Electronics Engineers (IEEE) 802.15.4e.

5. The method of claim 4 , wherein the time synchronization information is transmitted in a beacon on the network.

6. The method of claim 1 , wherein the node is also a parent node to another node in the network.

7. A non-transitory computer-readable medium embodying a program executable in a node device of a network, comprising:

code that receives time synchronization information, via the network, from a parent node of the node;

code that determines a drift between a clock of the node and a clock of the parent node based upon the time synchronization information; and

code that compensates for the drift when the drift meets or exceeds a predefined drift threshold, comprising:

code that identifies a number of time slots of the network that have elapsed since making a last time adjustment based on previous time synchronization information received from the parent node;

code that determines a compensation interval for a predetermined compensation value by calculating a number of the time slots over which the clock of the node deviated, with respect to the parent node, by the compensation value;

code that uses the compensation interval and the compensation value to adjust a selected time slot within the compensation interval so that a duration of the selected time slot is adjusted by the compensation value and the selected time slot is one time slot within the compensation interval; and

code that repeats said adjusting using a same value for the compensation interval until a subsequent drift, based on subsequent time synchronization information, meets or exceeds the predefined drift threshold, wherein the subsequent drift meeting or exceeding the predefined drift threshold triggers calculating a new value for the compensation interval.

8. The non-transitory computer-readable medium of claim 7 , wherein the network is a mesh network defined by Institute of Electrical and Electronics Engineers (IEEE) 802.15.4e.

9. The non-transitory computer-readable medium of claim 7 , wherein the compensation value is equal to a clock tick of the clock of the node.

10. The non-transitory computer-readable medium of claim 7 , wherein the node is also a parent node to another node in the network.

11. A node, comprising:

a processor;

a network interface for communicating on a network; and

a memory configured by a drift compensation application executed in the node, the drift compensation application causing the node to:

receive time synchronization information, via the network, from a parent node of the node;

determine a drift between a clock of the node and a clock of the parent node based upon the time synchronization information;

when the drift meets or exceeds a predefined threshold, the drift compensation application further causes the node to:

identify a number of time slots of the network since making a last time synchronization based on previous time synchronization information transmitted from the parent node;

calculate a compensation interval representing a number of the time slots over which the clock of the node deviated, with respect to the parent node, by a predefined compensation value; and

compensate, by the compensation value, ones of the time slots according to the compensation interval, until a subsequent drift, based on subsequent time synchronization information, meets or exceeds the threshold, wherein the subsequent drift meeting or exceeding the threshold triggers calculating a new value for the compensation interval.

12. The node of claim 11 , wherein the node is also a parent node to another node in the network.

13. The node of claim 12 , wherein an adjustment to the clock of the node affects a drift between the clock of the node and a clock of the other node.

14. The node of claim 11 , wherein when the subsequent drift meets or exceeds the threshold, further comprising:

identifying a subsequent number of time slots of the network since said synchronizing the clock of the node;

calculating a subsequent compensation interval representing a subsequent number of the time slots over which the clock of the node deviated by the compensation value with respect to the parent node; and

compensating, by the compensation value, one of the time slots according to the subsequent compensation interval.

15. The node of claim 11 , wherein the network is a time synchronous channel hopping (TSCH) network.

Assignments (2)
MERGER Recorded Oct 27, 2023
From: LANDIS+GYR INNOVATIONS, INC.
To: LANDIS+GYR TECHNOLOGY, INC.
Reel/Frame 065383/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2014
From: HARTMAN, JAMES
To: LANDIS+GYR INNOVATIONS, INC.
Reel/Frame 032846/0758 →