Clock synchronization in mesh networks
By accumulating time differences and adjusting beacon transmission rates in the TSCH mesh network, and selecting preferred or backup parent nodes, the synchronization error caused by node time drift is resolved, thereby improving network stability and efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- LANDIS GYR TECH INC
- Filing Date
- 2022-02-22
- Publication Date
- 2026-06-23
AI Technical Summary
In Time Slotted Channel Hopping (TSCH) mesh networks, the local oscillator of a node drifts over time, causing time synchronization errors. Frequent reception of beacon messages increases network traffic burden and affects network performance.
By accumulating time differences among receiving nodes, the beacon transmission rate is compared and adjusted, and a preferred or backup parent node is selected to maintain time synchronization, thereby reducing network load.
It effectively maintains the time synchronization of network nodes, avoids network performance problems caused by frequent beacon transmissions, and improves network stability and efficiency.
Smart Images

Figure CN117501760B_ABST
Abstract
Description
Background Technology
[0001] Unless otherwise stated herein, the materials described in this section are not prior art to the claims of this application and are not acknowledged as prior art simply because they are included in this section.
[0002] Time-slotted channel hopping (TSCH) in mesh network radio nodes allows for high-accuracy time tracking, enabling nodes to know when to switch channels and when to transmit or receive, so that destination nodes can listen in. Network nodes receive beacons from neighboring nodes in the mesh to maintain more accurate time synchronization. Each network node includes a local oscillator that maintains local time synchronization between beacon receptions. However, the accuracy of a node's local oscillator can degrade over time, requiring more frequent beacon reception to maintain synchronization. High beacon message density can be chosen to accommodate oscillator drift over time; however, increasing the number of beacon messages places a significant traffic burden on the entire mesh network, leading to performance issues. Summary of the Invention
[0003] Apparatus and methods are provided for maintaining time synchronization of nodes in a mesh network.
[0004] According to various aspects, a method for maintaining synchronization of nodes in a mesh network is provided. In some aspects, the method may include: receiving master beacons from a first transmitting node during a predetermined time interval, each master beacon including time information indicating when the corresponding master beacon was transmitted, the receiving node having a primary association with the first transmitting node; comparing the time when each master beacon was transmitted with the time when each master beacon was received as indicated by a clock in the receiving node to determine a time difference; accumulating the time differences of each master beacon received from the first transmitting node during the predetermined time interval to generate a first time synchronization error; comparing the first time synchronization error with the first threshold; and in response to determining that the first time synchronization error exceeds the first threshold, sending a first request to the first transmitting node to increase the beacon transmission rate for a specified time period. Accumulating the time differences may include adding each determined time difference as signed integer values.
[0005] The method may further include, after the specified time period for receiving the beacon at an increased rate has expired, the receiving node determining a second time synchronization error. In response to determining that the second time synchronization error exceeds a first threshold, a second request is sent to the first sending node to increase the beacon transmission rate. The receiving node may be prohibited from sending additional requests during the specified time period.
[0006] The method may further include comparing a first time synchronization error with a second threshold; and sending a notification to a central system in response to determining that the first time synchronization error exceeds the second threshold.
[0007] The method may further include receiving secondary beacons from a second transmitting node during a predetermined time interval, each secondary beacon including time information indicating when the corresponding secondary beacon was transmitted, the receiving node having a secondary association with the second transmitting node; comparing the time when each secondary beacon was transmitted with the time when each secondary beacon was received as indicated by a clock in the receiving node to determine a time difference; accumulating the time difference of each secondary beacon received from the second transmitting node during the predetermined time interval to generate a second time synchronization error; comparing the second time synchronization error with a first time synchronization error; and in response to determining that the first time synchronization error is greater than the second time synchronization error, causing the receiving node to change its primary association from the first transmitting node to the second transmitting node.
[0008] According to various aspects, a network device is provided. In some aspects, the network device may include: a clock configured to maintain local time; a memory configured to store data and instructions; a radio device configured to communicate with a mesh network; and a processor communicating with the clock, the memory, and the radio device. The processor may be configured to: receive master beacons from a first transmitting node via the radio device during a predetermined time interval, each master beacon including time information indicating when the corresponding master beacon was transmitted, the network device having a primary association with the first transmitting node; compare the time when each master beacon was transmitted with the time when each master beacon was received as indicated by the clock to determine a time difference; accumulate the time difference of each master beacon received from the first transmitting node during the predetermined time interval to generate a first time synchronization error; compare the first time synchronization error with the first threshold; and in response to determining that the first time synchronization error exceeds the first threshold, send a first request to the first transmitting node via the radio device to increase the beacon transmission rate.
[0009] The network device further includes a first counter configured to accumulate the time difference of the primary beacon by adding each determined time difference as a signed integer value.
[0010] The processor may be further configured to receive a master beacon from a first transmitting node via a radio device at an increased beacon transmission rate within a specified time period, based on a first request, wherein the increased beacon transmission rate ends when the specified time period expires. In response to determining that a first time synchronization error exceeds a first threshold after the specified time period expires, the processor may be further configured to send a second request to the first transmitting node to increase the beacon transmission rate. The processor may be further configured to prevent network devices from sending additional requests during the specified time period.
[0011] The processor may be further configured to compare a first time synchronization error with a second threshold; and to send a notification to the central system in response to determining that the first time synchronization error exceeds the second threshold.
[0012] The processor may be further configured to receive secondary beacons from a second transmitting node during a predetermined time interval, each secondary beacon including time information indicating when the corresponding secondary beacon was transmitted, and the network device having a secondary association with the second transmitting node; compare the time when each secondary beacon was transmitted with the time when each secondary beacon was received as indicated by a clock to determine a time difference; accumulate the time difference of each secondary beacon received from the second transmitting node during the predetermined time interval to generate a second time synchronization error; compare the second time synchronization error with a first time synchronization error; and, in response to determining that the first time synchronization error exceeds the second time synchronization error, change the primary association of the network device from the first transmitting node to the second transmitting node.
[0013] The network device may further include a second counter configured to accumulate the sub-beacon time difference by adding each determined time difference as a signed integer value.
[0014] According to various aspects, a non-transitory computer-readable medium is provided. In some aspects, the non-transitory computer-readable medium may include instructions for causing one or more processors of a receiving node to perform operations including: receiving master beacons from a first transmitting node during a predetermined time interval, each master beacon including time information indicating when the corresponding master beacon was transmitted, the receiving node having a primary association with the first transmitting node; comparing the time when each master beacon was transmitted with the time when each master beacon was received as determined by a local clock to determine a time difference; accumulating the time difference of each master beacon received from the first transmitting node during the predetermined time interval to generate a first time synchronization error; comparing the first time synchronization error with the first threshold; and in response to determining that the first time synchronization error exceeds the first threshold, sending a first request to the first transmitting node to increase the beacon transmission rate.
[0015] The operation may further include receiving a master beacon at an increased beacon transmission rate for a specified time period based on a first request, wherein the increased beacon transmission rate ends when the specified time period expires.
[0016] The operation may further include, in response to determining that a first time synchronization error exceeds a first threshold after a specified time period has expired, sending a second request to the first sending node to increase the beacon transmission rate. Sending additional requests during the specified time period may be prohibited.
[0017] The operation may further include comparing a first time synchronization error with a second threshold; and in response to determining that the first time synchronization error exceeds the second threshold, sending a notification to the central system.
[0018] The operation may further include receiving secondary beacons from a second transmitting node during a predetermined time interval, each secondary beacon including time information indicating when the corresponding secondary beacon was transmitted, and the receiving node having a secondary association with the second transmitting node; comparing the time when each secondary beacon was transmitted with the time when each secondary beacon was received to determine a time difference; accumulating the time difference of each secondary beacon received from the second transmitting node during the predetermined time interval to generate a second time synchronization error; comparing the second time synchronization error with a first time synchronization error; and in response to determining that the first time synchronization error exceeds the second time synchronization error, changing the primary association from the first transmitting node to the second transmitting node to receive the beacon.
[0019] Compared to conventional technologies, various embodiments offer numerous advantages. For example, various embodiments provide apparatus and methods for proactively identifying nodes in a mesh network that may have lost synchronization with the network. In some embodiments, a node can determine whether the synchronization problem is caused by a preferred parent node or whether the synchronization problem is caused by the node itself. Notifications about synchronization problems can be periodically sent by the node to a central system. These and other embodiments, along with their many advantages and features, are described in more detail below and in conjunction with the accompanying drawings. Attached Figure Description
[0020] Aspects and features of various embodiments will become more apparent from the examples described with reference to the accompanying drawings, in which:
[0021] Figure 1 This is a diagram illustrating an example of a channel hopping protocol according to some aspects of this disclosure;
[0022] Figure 2 This is a diagram illustrating examples of parent and child nodes in a mesh network according to some aspects of this disclosure;
[0023] Figure 3 This is a block diagram illustrating an example of nodes in a mesh network according to some aspects of this disclosure.
[0024] Figure 4 This is a flowchart illustrating an example of a method for maintaining synchronization of nodes in a mesh network according to some aspects of this disclosure;
[0025] Figure 5 This is a flowchart illustrating an example of a method for adjusting a beacon transmission rate according to some aspects of this disclosure; and
[0026] Figure 6This is a diagram illustrating a utility management system according to some aspects of this disclosure. Detailed Implementation
[0027] While certain embodiments have been described, these embodiments are presented by way of example only and are not intended to limit the scope of protection. The apparatuses, methods, and systems described herein can be embodied in various other forms. Furthermore, various omissions, substitutions, and modifications can be made to the form of the exemplary methods and systems described herein without departing from the scope of protection.
[0028] For example, a Time Slotted Channel Hopping (TSCH) network, as defined by IEEE 802.15.4, can provide a communication network for resource providers (e.g., utility companies, home automation providers, industrial automation providers, etc.). Resource providers can use TSCH networks to communicate between TSCH nodes (e.g., meters, routers, etc.) or endpoints (EPs) and low-energy (LE) devices or LE endpoints (LEEPs) to monitor or manage the consumption of resources (e.g., electricity, heat, water, etc.). In some cases, nodes can be Internet of Things (IoT) enabled devices, which can be used in smart grid and smart home technologies. TSCH uses a series of time slots and multiple channel frequencies for communication between devices. While examples of TSCH networks have been shown and described, aspects of this disclosure can be applied to other time synchronization networks without departing from the scope of protection.
[0029] Figure 1 This is a diagram illustrating an example of a channel hopping protocol according to some aspects of this disclosure. The channel hopping protocol defines a channel frequency or channel for each time slot in a hopping pattern. Each node communicating on the network can hop channels according to the channel hopping protocol. Reference Figure 1 The hopping mode of the channel hopping protocol 110 corresponding to time slot 120 can be channel 4, channel 6, channel 3, channel 5, and channel 7. That is, it can associate channel 4 with time slot 1, channel 6 with time slot 2, channel 3 with time slot 3, channel 5 with time slot 4, and channel 7 with time slot 5. A time slot can be, for example, 25 milliseconds, resulting in 40 time slots per second. Other time slot lengths can be used. Figure 1 As shown, the first iteration 125a of the skip mode contains time slots 1-5 (122a-122e), the second iteration 125b of the skip mode contains time slots 6-10 (123a-123e), and the third iteration 125c of the skip mode contains time slots 11-15 (124a-124e).
[0030] TSCH mesh network radio device nodes track time with high accuracy to synchronize channel switching and transmission, allowing destination nodes to listen. Each network device may include an oscillator, such as a temperature-controlled crystal oscillator (TCXO), to keep the local clock synchronized with the network time. Beacon messages, also referred to herein as “beacons,” are continuously sent from parent nodes (devices) to child nodes (devices) in the mesh network to maintain time synchronization to a higher accuracy than that provided by the oscillator.
[0031] Figure 2 This is a diagram illustrating examples of parent and child nodes in a mesh network 200 according to some aspects of this disclosure. As used herein, the terms "node," "network node," and "network device" are used interchangeably to refer to devices capable of communicating on a mesh network. Beacons may be sent periodically by the parent node, for example, 2 to 3 times every 7 minutes. Other time periods and / or the number of beacons per time period may be used. Figure 2 The diagram illustrates that child node 210 can have a primary association with preferred parent node 220 to receive beacons 222 for time synchronization from preferred parent node 220. Child node 210 can send data packets, such as resource (e.g., electricity, water, gas, etc.) usage information, notifications, etc., to a central system (e.g., a utility provider's front-end system) via preferred parent node 220. When child node 210 determines that its local time deviates too far from the time provided by beacon 222 (e.g., due to TCXO drift), child node 210 can send an enhanced beacon request (EBR) 212 to preferred parent node 220. EBR 212 can cause preferred parent node 220 to increase the number of beacons 222 it sends.
[0032] In some cases, child node 210 may selectively have a secondary association with backup parent node 230 to also receive beacon 232 for time synchronization from backup parent node 230. Backup parent node 230 may be another neighbor node in mesh network 200. Child node 210 may use the beacon 232 received optionally from backup parent node 230 to compare its time with that received from preferred parent node 222. By comparing the times received from the two beacons, child node 210 can determine whether the time drift is due to drift of its own internal oscillator or time inaccuracy in beacon 222 provided by preferred parent node 220. If child node 210 determines that the time drift is due to inaccuracy in beacon 222 provided by preferred parent node 220, child node 210 may make backup parent node 230 its preferred parent node.
[0033] Although Figure 2 A network node with a TCXO is shown, but other types of oscillators can be used without departing from the scope of the invention. Furthermore, although Figure 2The diagram shows a parent node communicating with one child node, but a parent node can communicate with more than one child node; for example, a parent node can communicate with 20-30 or more child nodes. The parent node can maintain a neighbor table containing the addresses of the child nodes it communicates with.
[0034] Oscillators can drift over time, affecting the time synchronization of network devices. For example, when network devices are first put into use, the oscillator may have a nominal short-term drift of 1.5 parts per million (ppm). This short-term drift rate can keep network devices synchronized with the network for about 30 minutes. TSCH network devices used in Advanced Metering Initiative (AMI) applications may have an operational lifespan of over 10 years. Over time, the accuracy of the oscillator may decrease to close to 10 ppm, reducing the short-term synchronization time of network devices to about 5 minutes.
[0035] According to an aspect of this disclosure, a method is provided for measuring and tracking the time drift of each node in a TSCH network based on time information in beacon messages received from a node's preferred parent node and optional backup parent nodes. The processor of each node in the mesh network is operable to perform the method. Figure 3 This is a block diagram illustrating an example of node 300 of a mesh network according to some aspects of this disclosure.
[0036] refer to Figure 3 Node 300 may include a processor 310, a memory 320, a clock 330, an oscillator 340, a radio device 350, an optional metering device 360, and parent change selection logic 370. Processor 310 may be a microprocessor, microcomputer, computer, microcontroller, programmable controller, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or other programmable device. Processor 310 can execute instructions to control the overall operation of node 300. Processor 310 can receive data generated by metering device 360, including but not limited to energy usage, voltage, current, etc., and can perform operations or data processing on the data.
[0037] Memory 320 may be a storage device, such as a solid-state storage device or other storage device, and may be a combination of volatile and non-volatile storage devices or memories. In some embodiments, a portion of the memory may be included in processor 310. Memory 320 may be configured to store instructions executable by processor 310, data generated by metering device 360, and other applications executable by processor 310. Memory 320 may also store a neighbor table containing addresses of child nodes with which node 300 communicates.
[0038] Clock 330 is implemented by processor 310, or may be a circuit separate from processor 310. Clock 330 provides a time base for time synchronization between nodes 300 receiving beacons containing time information from their parent nodes. Oscillator 340 may be a temperature-controlled crystal oscillator (TCXO) or other types of oscillators, such as, but not limited to, voltage-controlled crystal oscillators (VCXO), oven-controlled crystal oscillators (OCXO), ceramic oscillators, etc. Oscillator 340 can provide a frequency reference for clock 330, processor 310, radio device 350, and / or other components of the node.
[0039] Radio device 350 may be a wired or wireless transceiver, operable to communicate via various wired or wireless protocols known in the art, such as, but not limited to, the AMI protocol. Radio device 350 enables node 300 to communicate with other nodes in a mesh network (e.g., an AMI network) to receive beacons, send EBRs, parent change selection messages, etc. Radio device 350 may also send data and notification signals to utility providers (e.g., front-end systems), and receive any updated program instructions, firmware updates, updates to other settings, or other communications. Oscillator 340 can provide a time base for radio device 350.
[0040] Metering device 360 may include various sensors, such as, but not limited to, voltage measuring devices (e.g., voltage transformers), current measuring devices (e.g., current transformers), etc., and may monitor and / or record energy usage at a user's residence. Metering device 360 may be controlled by a processor, such as by processor 310 or another processor included in node 300. Metering device 360 may include an analog-to-digital (A / D) converter configured to convert signals received from various sensors into digital values that can be processed by the processor.
[0041] The metering device 360 can communicate information about energy use to the front-end system via the processor 310 and / or the radio device 350. For example, the metering device 360 can continuously monitor and record the total energy use at a user's residence. According to various aspects of this disclosure, the metering device 360 can monitor and / or record several days of the week and several periods of the day related to energy use at a user's residence, and communicate this information to the front-end system. Furthermore, the metering device 360 can act as a sensor to detect and / or record abnormal measurements and / or events. Other information, such as, but not limited to, average power consumption, peak power, etc., can be monitored and communicated by the metering device 360.
[0042] The parent change selection logic 370 determines whether node 300 should continue receiving time synchronization beacons from the current preferred parent node. When the time synchronization error with the preferred parent node is determined to be too large, the parent change selection logic 370 can select a new preferred parent node, such as a backup parent node, and can cause a message to be sent to both the current preferred parent node and the new preferred parent node to indicate the change. The parent change selection logic 370 can further configure the node to receive beacons from the new preferred parent node. The parent change selection logic 370 can determine that node 300 should select a different preferred parent node for additional or alternative reasons, such as, but not limited to, weak received signal strength determined by the Received Signal Strength Indicator (RSSI).
[0043] According to aspects of this disclosure, a child node can determine a synchronization error (e.g., time drift) between its local clock time and the time received from a preferred parent node via a synchronization beacon. For example, the child node can determine the synchronization error as the cumulative time difference between its local clock time and the transmission time information included in each received beacon within a specified time period. When the synchronization error exceeds a threshold, the child node can send a message to the preferred parent node to increase the beacon density of the beacons transmitted by the parent node (e.g., reduce the time interval between beacon transmissions). This can create a single radio hop with an increased beacon rate (e.g., only during the child node's transmission time period). Other parent nodes in the network can continue to transmit beacons at the nominal transmission rate. Therefore, network performance problems caused by increasing the beacon rate of each node throughout the mesh network can be avoided.
[0044] The preferred parent node can continue sending beacons at an increased beacon rate for a specified period of time. Alternatively, the preferred parent node can continue sending beacons at an increased beacon rate until the child node changes to a different parent node, such as a backup parent node.
[0045] To determine synchronization errors, a child node can accumulate the time difference between the transmission time information received from the preferred parent node's beacon and the child node's local clock over a specified time period. The child node can implement one or more counters to accumulate the time difference. These counters can be implemented by a processor (e.g., processor 310) or by circuitry separate from the processor.
[0046] Time difference can be measured in microseconds (μs) and can be a signed integer value. Cumulative time difference can provide a cumulative time difference in microseconds (e.g., time synchronization error). The processor of the child node (e.g., processor 310) can convert the cumulative time difference into a time synchronization error in parts per million (ppm). The specified time period can be a time period less than the time period equivalent to a time synchronization drift rate of approximately ten parts per million (10 ppm). For example, for a drift rate of 10 ppm, the allowed time difference could be approximately 3000 μs, and the specified time period could be less than approximately five minutes.
[0047] For a nominal beacon transmission rate of approximately two to three beacons every seven minutes, a child node can receive two to three beacons within a specified five-minute time period. As an example of determining time synchronization error, assume the child node receives three beacons from a preferred parent node within the specified five-minute time period. The time difference between the time information provided by the first received beacon and the first time indicated by the child node's local clock, determined by the processor (e.g., processor 310), can be 800 μs. The time difference between the time information provided by the second received beacon and the second time indicated by the child node's local clock can be 700 μs. The time difference between the time information provided by the third received beacon and the third time indicated by the child node's local clock can be 900 μs.
[0048] The processor of the child node (e.g., processor 310) can determine the cumulative time difference of 800μs + 700μs + 900μs = 2400μs over a specified five-minute time period as the time synchronization error. The time synchronization error, in microseconds, can be converted by the processor to a time synchronization error in parts per million. For example, a 2400μs time synchronization error is equivalent to an 8ppm time synchronization error. The cumulative time difference can be a signed integer value. For the current example, the time synchronization error (e.g., the cumulative time difference) should be less than 3000μs over the specified five-minute time period to remain within a specified 10ppm drift rate. When the time synchronization error is low, such as approximately 0.5–1.0ppm, the child node can adjust its local clock accordingly. For time synchronization errors below approximately 0.5–1.0ppm, the child node may not adjust its local clock. The individual time difference and time synchronization error relative to the beacon received from the preferred parent node can be stored in the child node's memory (e.g., memory 320).
[0049] In some cases, child nodes can also be backed up from a parent node, for example... Figure 2The backup parent node 230 shown receives beacons. The backup parent node can be a nearby node in the mesh network. If the backup parent node is available, the child nodes can determine and accumulate the time synchronization error between the beacons received from the backup parent node and the child node's local clock over a specified time period, in the same manner explained above for the preferred parent node. The individual time differences and time synchronization errors relative to the beacons received from the backup parent node can be stored in the child node's memory (e.g., memory 320).
[0050] Child nodes can determine the action to take based on time synchronization errors. When a child node determines that the time synchronization error exceeds an upper limit threshold, for example, approximately 3 ppm or another value, the child node can send an Enhanced Beacon Request (EBR) to its preferred parent node to increase the rate of beacon transmission (e.g., reduce the time interval). For example, the preferred parent node can increase the beacon transmission rate from two to three beacons every five minutes to four to five beacons every five minutes. Other beacon transmission rates can be used. The upper limit threshold can be configured as a programmable value.
[0051] The preferred parent node can send beacons at an increased rate for a specified time period (e.g., four hours or another time period). Other parent nodes in the network that have not received an EBR from a child node can continue sending beacons at the nominal transmission rate. After the specified time period, the parent node can return to sending beacons at the nominal beacon transmission rate (e.g., sending two or three beacons in a five-minute time period). During the EBR time period, the child node can continue to accumulate time synchronization errors. If the child node determines again that the time synchronization error exceeds the upper limit threshold after the specified time period expires, the child node can send another EBR to the preferred parent node to increase the beacon transmission rate again. The child node can be prevented from sending additional EBRs during the specified time period.
[0052] Upon receiving an EBR, the preferred parent node can update its list, such as a neighbor table, containing the network addresses of the child nodes requesting a shorter beacon interval and the time limit for that request. The preferred parent node can receive EBRs from more than one child node and can include each EBR in its list. The preferred parent node can then adjust the beacon interval so that for each received EBR, it sends beacons at an increased transmission rate for a specified time period. When an EBR is received from another child node during the specified time period, the preferred parent node can extend the period for sending beacons at the increased transmission rate. For example, if the specified time period for sending beacons at the increased rate is four hours, and an EBR is received from another child node two hours after sending beacons at the increased rate, the preferred parent node will continue sending beacons at the increased rate for six hours.
[0053] A counter can be implemented by the preferred parent node to track a specified time period for each child node receiving an EBR. The counter can be implemented by the preferred parent node's processor or by circuitry separate from the processor. The preferred parent node can periodically check the list to determine if any child node's time limit has expired or if a child node has moved to a different preferred parent node. When there are no longer any child nodes with pending EBRs, the preferred parent node can return to the nominal beacon interval.
[0054] Child nodes can also compare the time synchronization error of their preferred parent node with a warning limit threshold. The warning limit threshold can be greater than an upper limit threshold, such as 10 ppm or another value. The warning limit threshold can be configured as a programmable value. If a child node determines that the time synchronization error exceeds the warning limit threshold, it can send a notification to the network administrator (e.g., a front-end system) informing them that the node is experiencing a large time drift and may lose synchronization with the mesh network. For example, if the time synchronization error exceeds the warning limit threshold during an EBR period, the child node can send a notification indicating that repair or replacement may be necessary.
[0055] In some cases, child nodes may also receive beacons from backup parent nodes and can determine the time synchronization error with the backup parent node in the same way as the preferred parent node. In this case, the child node's processor can compare the time synchronization error of the preferred parent node with that of the backup parent node. If the time synchronization errors of the preferred and backup parent nodes are within each other's specified values, such as 20% or another programmable value, the time drift is likely primarily due to the child node itself. The child node can then send a notification to the front-end system indicating that the time drift was caused by the child node.
[0056] If the processor of a child node determines that the time synchronization error between the child node and its preferred parent node is greater than the time synchronization error between the child node and its backup parent node, the processor can signal the parent change selection logic (e.g., parent change selection logic 370) to indicate that the time synchronization error with the preferred parent node is too large. The parent change selection logic can determine that the child node should synchronize to a different preferred parent node. The parent change selection logic can cause a message to be sent to the backup parent node indicating that it is now the preferred parent node, and can also send a message to the previous preferred parent node indicating that it is no longer the preferred parent node of the child node. The parent change selection logic can also configure the child node to receive beacons from the previous backup node, which is now the preferred parent node.
[0057] Figure 4 This is a flowchart illustrating an example of a method 400 for maintaining synchronization of nodes in a mesh network according to some aspects of this disclosure. (See also:) Figure 4In box 410, a child node can determine the time synchronization error of its preferred parent node. The child node can accumulate the time difference between the transmission time information provided by the beacon received from the preferred parent node and the child node's local clock over a specified time period to determine the accumulated time synchronization error.
[0058] The time difference and cumulative time synchronization error can be measured in microseconds (μs) and can be signed integer values. The cumulative time difference can be provided as a cumulative time difference (e.g., time synchronization error) in microseconds. The processor of the child node (e.g., processor 310) can convert the cumulative time difference into a time synchronization error in parts per million (ppm). The specified time period can be a time period less than the time period equivalent to a time synchronization drift rate of approximately ten parts per million (10 ppm). The time difference and cumulative time synchronization error can be stored in the memory of the child node.
[0059] In block 415, the child node may optionally determine the time synchronization error of the backup parent node. When the backup parent node is available, the child node may accumulate the time difference between the transmission time information provided by the beacon received from the backup parent node and the child node's local clock over a specified time period to determine the accumulated time synchronization error. The time difference and the time synchronization error may be stored in the child node's memory.
[0060] In box 420, the cumulative time synchronization error with the preferred parent node can be compared to a first threshold. The processor of the child node can compare the time synchronization error of the preferred parent node with the first threshold. The first threshold can be an upper limit threshold for the time synchronization error, such as approximately 3 ppm or another value.
[0061] In block 425, it can be determined whether the time synchronization error exceeds a first threshold. In response to determining that the time synchronization error does not exceed the first threshold (425 - No), the method can continue in block 410 to determine the time synchronization error with the preferred parent node. In response to determining that the time synchronization error exceeds the first threshold (425 - Yes), in block 430, the child node can send an Enhanced Beacon Request (EBR) to the preferred parent node. The EBR can cause the preferred parent node to increase the rate at which it sends beacons within a specified time period (e.g., reduce the time interval).
[0062] In box 435, the time synchronization error with the preferred parent node can be compared to a second threshold. The second threshold can be a warning limit threshold for the time synchronization error and can be greater than an upper limit threshold, such as approximately 10 ppm or another value. A time synchronization error exceeding the warning limit threshold can be an indication that a child node may lose time synchronization with the mesh network.
[0063] In block 440, it can be determined whether the time synchronization error exceeds a second threshold. In response to determining that the time synchronization error does not exceed the second threshold (440 - No), the method can continue in block 410 to determine the time synchronization error with the preferred parent node. In response to determining that the time synchronization error exceeds the second threshold (440 - Yes), in block 445, a notification can be generated to a central system (e.g., a front-end system or another external system). The processor of the child node can cause the notification to be sent to the front-end system via a radio device (e.g., radio device 350) to indicate that the time synchronization error may have caused the node to lose time synchronization with the mesh network. Corrective actions, such as repairing or replacing the node, can be taken by a system administrator (e.g., a utility provider) to resolve the time synchronization problem.
[0064] In block 450, it can be determined whether the backup parent node is available. In response to determining that the backup parent node is unavailable (450-No), the method can continue in block 410 to determine the time synchronization error with the preferred parent node. In response to determining that the backup parent node is available (450-Yes), in block 455, the time synchronization error of the preferred parent node can be compared with the time synchronization error of the backup parent node. The processor of the child node can compare the time synchronization error of the preferred parent node with the synchronization error of the backup parent node.
[0065] In block 460, it can be determined whether the time synchronization errors of the preferred parent node and the backup parent node are within each other's specified values, such as 20% or another programmable value. In response to determining that the time synchronization error is similar (460-yes), the method can continue in block 410 to determine the time synchronization error of the preferred parent node. Similar time synchronization errors of the preferred parent node and the backup parent node can indicate that the time synchronization error is primarily caused by the child node. Actions can be taken by a system administrator (e.g., a utility provider), such as repairing or replacing the node, to resolve the time synchronization error problem.
[0066] In response to determining that the time synchronization error is dissimilar (460-No), at block 465, the child node may change the backup node to the preferred parent node. Determining that the preferred parent node's time synchronization error is greater than the backup parent node's time synchronization error may indicate that the preferred parent node is the primary cause of time drift. The child node's processor may signal to the parent change selection logic (e.g., parent change selection logic 370) that the preferred parent node's time synchronization error is no longer within acceptable limits for maintaining time synchronization with the network. The parent change selection logic may select a different preferred parent node, such as the backup parent node, and may cause a message to be sent to both the current preferred parent node and the selected preferred parent node to indicate the change. Parent change selection logic 370 may further configure the node to receive beacons from the selected preferred parent node. The method may continue at block 410 to determine the time synchronization error with the newly selected preferred parent node.
[0067] Figure 4 The specific operations illustrated provide a concrete method for maintaining synchronization of nodes in a mesh network according to embodiments of this disclosure. According to alternative embodiments, other sequences of operations may also be performed. For example, alternative embodiments of this disclosure may perform the above operations in a different order. Furthermore, Figure 4 Each operation shown can include multiple sub-operations, which can be executed in various orders suitable for the individual operations. Furthermore, additional operations can be added or removed depending on the specific application.
[0068] Method 400 may be implemented on a non-transitory computer-readable medium, such as, but not limited to, memory 320 or other non-transitory computer-readable media known to those skilled in the art, wherein a program is stored, including computer-executable instructions for causing a processor, computer or other programmable device to perform the method operations.
[0069] Figure 5 This is a flowchart illustrating an example of a method 500 for adjusting a beacon transmission rate according to some aspects of this disclosure. (Reference) Figure 5 In box 510, nodes can send beacons at a nominal transmission rate. For example, a preferred parent node can periodically send beacons for its child nodes to receive. Beacons can be sent three to five times during a predetermined time period (e.g., but not limited to a seven-minute period). Other transmission rates and time periods can be used.
[0070] In box 520, a node may receive an Enhanced Beacon Request (EBR). This node may be a preferred parent node and may receive EBRs from its child nodes. The EBR may indicate the address of the child node requesting an increased beacon transmission rate. The preferred parent node may maintain a list (e.g., a neighbor table) of the addresses of its child nodes from which it receives EBRs, along with the time period for each request.
[0071] In box 530, beacons can be sent at an increased rate. Preferred parent nodes can increase the rate at which they receive beacon transmissions from the EBR during a specified time period (e.g., four hours or another time period).
[0072] In block 540, the duration of the increased beacon transmission rate can be monitored. The preferred parent node can monitor the specified time period during which child nodes will receive the increased transmissions. A counter can be implemented by the preferred parent node to track the specified time period for each child node receiving the EBR. The counter can be implemented by the preferred parent node's processor or by circuitry separate from the processor.
[0073] In block 550, a node can determine whether the scheduled time period of the EBR has expired. The preferred parent node can periodically check the list of child node addresses to determine whether the scheduled time period of any child node has expired, or whether a child node has moved to a different preferred parent node. In response to determining that the scheduled time period has not expired (550 - No), the method can continue in block 530 to continue sending beacons at an increased rate. In response to determining that the scheduled time period has expired for all child nodes for which the preferred parent node has received the EBR (550 - Yes), the method can continue sending beacons at the nominal rate in block 510.
[0074] Figure 5 The specific operations illustrated provide a specific method for adjusting the beacon transmission rate according to embodiments of this disclosure. According to alternative embodiments, other sequences of operations may also be performed. For example, alternative embodiments of this disclosure may perform the above operations in a different order. Furthermore, Figure 5 Each operation shown can include multiple sub-operations, which can be executed in various orders suitable for the individual operations. Furthermore, additional operations can be added or removed depending on the specific application.
[0075] Method 500 may be implemented on a non-transitory computer-readable medium, such as, but not limited to, memory or other non-transitory computer-readable media known to those skilled in the art, wherein a program is stored, including computer-executable instructions for causing a processor, computer or other programmable device to perform the method operations.
[0076] Figure 6 This is a diagram illustrating a utility management system 600 according to some aspects of this disclosure. (Reference) Figure 6 The utility management system 600 may include a node 605, a front-end system 610, and a storage device 620. The front-end system 610 and node 605 may be connected to the distribution network 140. Node 605 may be an electricity meter connected to a wireless mesh network (e.g., an AMI network). Node 605 may monitor and / or record energy usage at a customer's home 630 and communicate information about energy usage to the front-end system 610. Node 605 may also communicate status notifications and other information to the front-end system 610.
[0077] Although for ease of explanation, Figure 6 A single node 605 is shown, but the utility management system 600 may include multiple nodes 605. Not all nodes are meters. Furthermore, multiple networks may exist between meters and front-end systems or other external systems, through which notifications can be sent.
[0078] The examples and embodiments described herein are for illustrative purposes only. Various modifications or variations according to the invention will be apparent to those skilled in the art. These modifications and variations will be included within the spirit and scope of this application, as well as the scope of the appended claims.
Claims
1. A method for maintaining synchronization of nodes in a mesh network, the method comprising: receiving, by a receiving node, primary beacons from a first transmitting node during a predetermined time interval, each of the primary beacons including time information indicative of a time at which the respective primary beacon was transmitted, the receiving node having a primary association with the first transmitting node; comparing the time at which each of the primary beacons was transmitted with a time at which each of the primary beacons was received as indicated by a clock in the receiving node to determine a time difference; accumulating the time differences for each primary beacon received from the first transmitting node during the predetermined time interval to generate a first time synchronization error; comparing the first time synchronization error to a first threshold; and in response to determining that the first time synchronization error exceeds the first threshold, transmitting a first request to the first transmitting node to increase a beacon transmission rate for a specified time period. accumulating the time differences includes adding each determined time difference as a signed integer value.
2. The method of claim 1, wherein, 3. The method of claim 1, further comprising: determining, by the receiving node, a second time synchronization error after the specified time period for receiving beacons at the increased rate expires; and in response to determining that the second time synchronization error exceeds the first threshold, transmitting a second request to the first transmitting node to increase the beacon transmission rate. the receiving node is prohibited from transmitting additional requests during the specified time period.
4. The method of claim 3, wherein, 5. The method of claim 1, further comprising: comparing the first time synchronization error to a second threshold; and in response to determining that the first time synchronization error exceeds the second threshold, transmitting a notification to a central system.
6. The method of claim 1, further comprising: receiving, by the receiving node, secondary beacons from a second transmitting node during the predetermined time interval, each of the secondary beacons including time information indicative of a time at which the respective secondary beacon was transmitted, the receiving node having a secondary association with the second transmitting node; comparing the time at which each of the secondary beacons was transmitted with a time at which each of the secondary beacons was received as indicated by the clock in the receiving node to determine a time difference; accumulating the time differences for each secondary beacon received from the second transmitting node during the predetermined time interval to generate a second time synchronization error; comparing the second time synchronization error to the first time synchronization error; and in response to determining that the first time synchronization error is greater than the second time synchronization error, causing the receiving node to change the primary association from the first transmitting node to the second transmitting node.
7. A network device comprising: a clock configured to maintain a local time; a memory configured to store data and instructions; a radio configured to communicate with a mesh network; and a processor in communication with the clock, the memory, and the radio, the processor configured to: The network device receives master beacons from a first transmitting node at predetermined time intervals via the radio device, each master beacon including time information indicating when the corresponding master beacon was transmitted, and the network device has a primary association with the first transmitting node; The time when each of the master beacons is sent is compared with the time when each of the master beacons is received, as indicated by the clock, to determine the time difference; The time difference of each primary beacon received from the first transmitting node during the predetermined time interval is accumulated to generate a first time synchronization error; The first time synchronization error is compared with the first threshold. as well as In response to determining that the first time synchronization error exceeds the first threshold, a first request is sent to the first transmitting node via the radio device to increase the beacon transmission rate.
8. The network device of claim 7, further comprising a first counter, wherein, The first counter is configured to accumulate the time difference of the master beacon by adding each determined time difference as a signed integer value.
9. The network device of claim 7, wherein, The processor is further configured to: Based on the first request, the master beacon is received from the first transmitting node via the radio device at an increased beacon transmission rate within a specified time period, wherein the increased beacon transmission rate ends when the specified time period expires.
10. The network device of claim 9, wherein, The processor is further configured to: In response to determining that the first time synchronization error exceeds the first threshold after the specified time period expires, a second request is sent to the first sending node to increase the beacon transmission rate.
11. The network device of claim 10, wherein, The processor is further configured to: The network device is prohibited from sending additional requests during the specified time period.
12. The network device of claim 7, wherein, The processor is further configured to: Compare the first time synchronization error with the second threshold; and In response to determining that the first time synchronization error exceeds the second threshold, a notification is sent to the central system.
13. The network device of claim 7, wherein, The processor is further configured to: During the predetermined time interval, a secondary beacon is received from the second transmitting node, each secondary beacon including time information indicating when the corresponding secondary beacon was transmitted, and the network device has a secondary association with the second transmitting node; The time when each of the sub-beacons is transmitted is compared with the time when each of the sub-beacons is received, as indicated by the clock, to determine the time difference; The time difference of each beacon received from the second transmitting node during the predetermined time interval is accumulated to generate a second time synchronization error; Compare the second time synchronization error with the first time synchronization error; as well as In response to determining that the first time synchronization error exceeds the second time synchronization error, the primary association of the network device is changed from the first sending node to the second sending node.
14. The network device of claim 13, further comprising a second counter, wherein, The second counter is configured to accumulate the time difference of the sub-beacon by adding each determined time difference as a signed integer value.
15. A non-transitory computer-readable medium storing instructions for causing one or more processors of a receiving node to perform a method for maintaining synchronization of nodes in a mesh network, the processor-executable instructions including instructions for performing operations, the operations including: During a predetermined time interval, a master beacon is received from a first transmitting node, each master beacon including time information indicating when the corresponding master beacon was sent, and the receiving node has a primary association with the first transmitting node; The time when each of the master beacons is sent is compared with the time when each of the master beacons is received, as determined by the local clock, to determine the time difference; The time difference of each primary beacon received from the first transmitting node during the predetermined time interval is accumulated to generate a first time synchronization error; The first time synchronization error is compared with the first threshold. as well as In response to determining that the first time synchronization error exceeds the first threshold, a first request is sent to the first sending node to increase the beacon transmission rate.
16. The non-transitory computer-readable medium of claim 15, further comprising instructions for performing operations, the operations including: Based on the first request, the primary beacon is received at an increased beacon transmission rate within a specified time period, wherein the increased beacon transmission rate ends when the specified time period expires.
17. The non-transitory computer-readable medium of claim 16, further comprising instructions for performing operations, the operations including: In response to determining that the first time synchronization error exceeds the first threshold after the specified time period expires, a second request is sent to the first sending node to increase the beacon transmission rate.
18. The non-transitory computer-readable medium of claim 17, wherein, Additional requests are prohibited during the specified time period.
19. The non-transitory computer-readable medium of claim 15, further comprising instructions for performing operations, the operations including: Compare the first time synchronization error with the second threshold; as well as In response to determining that the first time synchronization error exceeds the second threshold, a notification is sent to the central system.
20. The non-transitory computer-readable medium of claim 15, further comprising instructions for performing operations, the operations including: During the predetermined time interval, a secondary beacon is received from the second transmitting node, each secondary beacon including time information indicating when the corresponding secondary beacon was transmitted, and the receiving node has a secondary association with the second transmitting node; The time when each of the sub-beacons is sent is compared with the time when each of the sub-beacons is received to determine the time difference; The time difference of each beacon received from the second transmitting node during the predetermined time interval is accumulated to generate a second time synchronization error; Compare the second time synchronization error with the first time synchronization error; as well as In response to determining that the first time synchronization error exceeds the second time synchronization error, the primary association is changed from the first transmitting node to the second transmitting node to receive the beacon.