Clock synchronization in mesh networks
By receiving beacons and adjusting transmission rates, the method maintains time synchronization in TSCH mesh networks, addressing oscillator drift and reducing network traffic, thus ensuring long-term stability.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- LANDIS GYR TECH INC
- Filing Date
- 2022-02-22
- Publication Date
- 2026-06-08
AI Technical Summary
The accuracy of local oscillators in Time Slotted Channel Hopping (TSCH) mesh networks deteriorates over time, necessitating frequent beacon messages for time synchronization, which increases network traffic load and causes performance issues.
A method and apparatus for maintaining time synchronization in mesh networks by receiving primary and secondary beacons, adjusting beacon transmission rates based on synchronization errors, and switching to backup parent nodes when necessary, thereby reducing network-wide traffic load.
This approach maintains accurate time synchronization while minimizing network performance degradation by dynamically adjusting beacon rates and parent node associations, ensuring long-term network stability.
Smart Images

Figure 0007871281000001 
Figure 0007871281000002 
Figure 0007871281000003
Abstract
Description
Technical Field
[0001] This disclosure relates to clock synchronization in a mesh network.
Background Art
[0002] Unless otherwise stated in this specification, the content described in this section is not prior art to the claims of this application and is not admitted to be prior art by inclusion in this section.
[0003] Wireless nodes in a Time Slotted Channel Hopping (TSCH) mesh network track time with high precision so that the node recognizes when to switch channels and when to transmit or receive, as if the destination node were listening. Network nodes maintain more accurate time synchronization by receiving beacons from neighboring nodes in the mesh network. Each network node includes a local oscillator that maintains local time synchronization for the node during beacon reception.
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, the accuracy of the local oscillator for a certain node may deteriorate over time, and it may be necessary to receive beacons more frequently to maintain time synchronization. A high density of beacon messages may be selected to adapt to oscillator drift over time, but increasing the number of beacon messages causes a large traffic load on the entire mesh network, which may cause performance problems.
[0005] An apparatus and method for maintaining time synchronization of nodes in a mesh network are provided.
Means for Solving the Problems
[0006] According to various embodiments, methods for maintaining node synchronization in a mesh network are provided. In some embodiments, the method may include a receiving node receiving a plurality of primary beacons from a first transmitting node during a predetermined time interval. Each primary beacon contains time information indicating the time when each primary beacon was transmitted. The receiving node has a primary association with the first transmitting node, This method, The time difference is determined by comparing the time each primary beacon was transmitted with the time each primary beacon was received, as indicated by the clock at the receiving node. The first time synchronization error is generated by accumulating the time difference for each primary beacon received from the first transmitting node within a predetermined time interval, Comparing the first time synchronization error with a first threshold, This may include sending a first request to a first transmitting node to increase the rate of beacon transmission for a specified time period in response to determining that a first time synchronization error exceeds a first threshold. Accumulating time differences may include adding each determined time difference as a signed integer value.
[0007] This method, After the specified time period for receiving beacons at the increased rate has expired, the receiving node determines a second time synchronization error, The method may further include sending a second request to the first transmitting node to increase the rate of beacon transmission in response to determining that the second time synchronization error exceeds the first threshold. The receiving node may be prohibited from sending additional requests during a specified time period.
[0008] This method, Comparing the first time synchronization error with a second threshold, This may further include sending a notification to a central system in response to determining that a first time synchronization error exceeds a second threshold.
[0009] This method may further include the receiving node receiving multiple secondary beacons from a second transmitting node during a predetermined time interval. Each secondary beacon contains time information indicating the time when each secondary beacon was transmitted. The receiving node has a secondary association with the second transmitting node. This method, The time difference is determined by comparing the time each secondary beacon was transmitted with the time each secondary beacon was received, as indicated by the clock. A second time synchronization error is generated by accumulating the time differences for each secondary beacon received from the second transmitting node within a predetermined time interval, Comparing the second time synchronization error with the first time synchronization error, The method may further include, 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.
[0010] Network devices are provided according to various embodiments. In some embodiments, the network device, A clock configured to maintain local time, A memory configured to store data and instructions, A wireless device configured to communicate with a mesh network, It may also include a clock, memory, and a processor for communicating with wireless devices. The processor may be configured to receive multiple primary beacons from a first transmitting node via a wireless device during a predetermined time interval. Each primary beacon contains time information indicating the time when each primary beacon was transmitted. The network device has a primary association with the first transmitting node, The processor is, The time difference is determined by comparing the time each primary beacon was transmitted with the time each primary beacon was received, as indicated by the clock. A first time synchronization error is generated by accumulating the time differences for each primary beacon received from the first transmitting node during a predetermined time interval. The first time synchronization error is compared against the first threshold, In response to determining that a first time synchronization error exceeds a first threshold, the radio device may be configured to send a first request to the first transmitting node via the radio device to increase the rate of beacon transmission.
[0011] The network device may further include a first counter configured to accumulate time differences for a primary beacon by adding each determined time difference as a signed integer value.
[0012] The processor may be further configured to receive primary beacons from a first transmitting node via a radio device, having an increased beacon transmission rate over a specified time period based on a first request. The increased beacon transmission rate will end when the specified time period expires. The processor may further be configured to send a second request to the first transmitting node to increase the rate of beacon transmission in response to determining that a first time synchronization error exceeds a first threshold after a specified time period has expired. The processor may be further configured to prevent network devices from sending additional requests during a specified time period.
[0013] The processor is, The first time synchronization error is compared against the second threshold, In response to determining that the first time synchronization error exceeds a second threshold, it may be further configured to send a notification to a central system.
[0014] The processor may be further configured to receive a plurality of secondary beacons from a second transmitting node during a predetermined time interval, Each of the secondary beacons includes time information indicating the time at which each secondary beacon was transmitted, The network device has a secondary association with the second transmitting node, The processor is, For each of the secondary beacons, determine a time difference by comparing the time at which each secondary beacon was transmitted with the time at which each secondary beacon was received as indicated by the clock, Generate a second time synchronization error by accumulating the time differences for each of the secondary beacons received from the second transmitting node during a predetermined time interval, and Compare the second time synchronization error with the first time synchronization error, and In response to determining that the first time synchronization error exceeds the second time synchronization error, it may be further configured to change the primary association of the network device from the first transmitting node to the second transmitting node.
[0015] The network device may further include a second counter configured to accumulate the time differences for the secondary beacons by adding each determined time difference as a signed integer value.
[0016] According to various aspects, a non - transitory computer - readable medium is provided. In some aspects, the non - transitory computer - readable medium may include instructions that cause one or more processors of a receiving node to perform the following operations, The operations include receiving a plurality of primary beacons from a first transmitting node during a predetermined time interval, Each of the primary beacons includes time information indicating the time at which each primary beacon was transmitted, The receiving node has a primary association with the first transmitting node, This operation is, The time difference is determined by comparing the time each primary beacon was transmitted with the time each primary beacon was received, which is determined by the local clock. The first time synchronization error is generated by accumulating the time differences for each primary beacon received from the first transmitting node within a predetermined time interval, Comparing the first time synchronization error with a first threshold, The process includes sending a first request to a first transmitting node to increase the rate of beacon transmission in response to determining that a first time synchronization error exceeds a first threshold.
[0017] This operation may further include receiving a primary beacon at an increased beacon transmission rate over a specified time period based on the first request, The increased beacon transmission rate will end when the specified time period expires.
[0018] This operation may further include sending a second request to the first transmitting node to increase the rate of beacon transmission in response to determining that a first time synchronization error exceeds a first threshold after a specified time period has expired. It may be prohibited to submit additional requests during a specified time period.
[0019] This operation is, Comparing the first time synchronization error with a second threshold, This may further include sending a notification to a central system in response to determining that a first time synchronization error exceeds a second threshold.
[0020] This operation may further include receiving multiple secondary beacons from a second transmitting node during a predetermined time interval. Each secondary beacon contains time information indicating the time when each secondary beacon was transmitted. The receiving node has a secondary association with the second transmitting node. This operation is, The time difference is determined by comparing the time each secondary beacon was transmitted with the time each secondary beacon was received. A second time synchronization error is generated by accumulating the time differences for each secondary beacon received from the second transmitting node within a predetermined time interval, Comparing the second time synchronization error with the first time synchronization error, The method may further include changing the primary association from the first transmitting node to the second transmitting node in order to receive the beacon, in response to determining that the first time synchronization error exceeds the second time synchronization error.
[0021] Various embodiments achieve numerous advantages over the prior art. For example, various embodiments provide devices and methods for pre-identifying nodes in a mesh network that may lose synchronization with the network. In some embodiments, a node may determine whether the synchronization problem is caused by a preferred parent node or by the node itself. Notifications regarding the synchronization problem may be periodically sent by the node to a central system. These and other embodiments, along with many of their advantages and features, will be described in further detail in relation to the following text and accompanying drawings. [Brief explanation of the drawing]
[0022] [Figure 1] This figure shows examples of channel hopping protocols according to some aspects of this disclosure. [Figure 2] This figure shows examples of parent and child nodes in a mesh network according to some aspects of this disclosure. [Figure 3] This block diagram shows examples of nodes in a mesh network according to some aspects of this disclosure. [Figure 4] This flowchart shows an example of a method for maintaining node synchronization in a mesh network according to some aspects of this disclosure. [Figure 5] This flowchart shows examples of methods for adjusting the beacon transmission rate according to some aspects of this disclosure. [Figure 6] This figure shows a utility management system relating to several aspects of this disclosure. [Modes for carrying out the invention]
[0023] The aspects and features of various embodiments will become clearer by describing the examples with reference to the attached drawings.
[0024] While certain embodiments are described, these embodiments are presented only as examples and are not intended to limit the scope of protection. The apparatus, methods, and systems described herein may be implemented in various other forms. Furthermore, various omissions, substitutions, and modifications may be made to the exemplary methods and systems described herein without excluding the scope of protection.
[0025] For example, a time-slotted channel hopping (TSCH) network, as defined in 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 may use the TSCH network to communicate between TSCH nodes (e.g., power meters, routers, etc.) or endpoints (EPs) and low-energy (LE) devices or LE endpoints (LEEPs) used to monitor or manage the consumption of resources (e.g., power, heat, water, etc.). In some cases, the nodes may be devices that enable Internet of Things (IoT) functionality, which is available in smart power grids and smart home technologies. TSCH uses a set of time slots and multiple channel frequencies for communication between devices. While embodiments of TSCH networks are illustrated and described, aspects of this disclosure may be applied to other time-synchronized networks without departing from the scope of protection.
[0026] Figure 1 shows an example of a channel hopping protocol according to some aspects of the present disclosure. The channel hopping protocol defines a channel frequency or channel for each time slot in the hopping pattern. Each node communicating in the network may perform channel hopping according to the channel hopping protocol. Referring to Figure 1, the hopping pattern for the channel hopping protocol 110 corresponding to time slot 120 may be channels 4, 6, 3, 5, and 7, that is, it may 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. The time slots may be, for example, 25 milliseconds, in which case there would be 40 time slots per second. Other time slot lengths may be used. As shown in Figure 1, the first iteration 125a of the hopping pattern includes time slots 1-5 (122a-122e), the second iteration 125b of the hopping pattern includes time slots 6-10 (123a-123e), and the third iteration 125c of the hopping pattern includes time slots 11-15 (124a-124e).
[0027] The radio nodes of a TSCH mesh network track time with high precision to synchronize channel switching and transmission so that the destination node is listening. Each network device may include an oscillator, such as a Temperature Controlled Crystal Oscillator (TCXO), to maintain a local clock for time synchronization with the network. To maintain time synchronization with a precision higher than that provided by the oscillator, beacon messages (also referred to here as "beacons") are transmitted from parent nodes (devices) to child nodes (devices) in the mesh network in progress.
[0028] Figure 2 shows examples of parent and child nodes in a mesh network 200 according to some aspects of the present disclosure. As used herein, the terms “node,” “network node,” and “network device” may be used interchangeably to mean a device capable of communicating in a mesh network. Beacons may be transmitted periodically by a parent node, for example, two to three times every seven minutes. Other time periods and / or a number of beacons per time period may be used. Figure 2 shows that a child node 210 may have a primary association with a preferred parent node 220 and receive a beacon 222 for time synchronization from the preferred parent node 220. The child node 210 may transmit data packets, such as resource usage information (e.g., electricity, water, gas, etc.), notifications, etc., to a central system (e.g., a utility provider’s headend system) via the preferred parent node 220. If child node 210 determines that its local time is too far off from the time provided by beacon 222, for example, as a result of TCXO drift, child node 210 may send an enhanced beacon request (EBR) 212 to preferred parent node 220. The preferred parent node 220 may then increase the number of beacons 222 it transmits.
[0029] In some cases, child node 210 may optionally have a secondary association with a backup parent node 230 and receive a beacon 232 for time synchronization from the backup parent node 230. The backup parent node 230 may be any other neighbor node in the mesh network 200. Child node 210 may use the beacon 232 optionally received from the backup parent node 230 for time comparison with a beacon 222 received from a preferred parent node 220. By comparing the times received from the two beacons, child node 210 may determine whether the time drift is due to drift in its own internal oscillator or to a time inaccuracy in the beacon 222 provided by the preferred parent 220. If child node 210 determines that the time drift is due to an inaccuracy in the beacon 222 provided by the preferred parent 220, child node 210 may make the backup parent node 230 its preferred parent node.
[0030] Figure 2 shows a network node having a TCXO, but other types of oscillators may be used without departing from the scope of this disclosure. Furthermore, Figure 2 shows a parent node communicating with one child node, but a parent node may communicate with more than one child node, for example, a parent node may communicate with 20 to 30 or more child nodes. The parent node may maintain a neighbor table containing the addresses of the child nodes with which it communicates.
[0031] Oscillators can drift over time, which can affect the time synchronization of network equipment. For example, when network equipment first comes into service, the oscillator may have a nominal short-term drift of 1.5 ppm (parts-per-million). This short-term drift rate can allow network equipment to maintain synchronization with the network for approximately 30 minutes. TSCH network equipment used in AMI (Advanced Metering Initiative) applications can have an operating life of more than 10 years. Over time, the accuracy of the oscillator degrades to approach 10 ppm, thereby reducing the short-term synchronization time of the network equipment to approximately 5 minutes.
[0032] According to aspects 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 the node's preferred parent and optionally a backup parent. The processor of each node in the mesh network may be operable to perform this method. Figure 3 is a block diagram showing an example of node 300 in a mesh network according to some aspects of this disclosure.
[0033] Referring to Figure 3, node 300 may include a processor 310, memory 320, clock 330, oscillator 340, wireless device 350, optional metering device 360, and parent change selection logic circuit 370. The 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. The processor 310 may execute instructions that control the overall operation of node 300. The processor 310 may receive data generated by the metering device 360, including but not limited to energy usage, voltage, and current, and may perform actions on or process this data.
[0034] The memory 320 may be a storage device such as a solid-state memory device or other storage devices, and may be a combination of volatile and non-volatile storage devices or memories. In some embodiments, part of the memory may be included in the processor 310. The memory 320 may be configured to store instructions that can be executed by the processor 310, data generated by the weighing device 360, and other applications that can be executed by the processor 310. The memory 320 may store a neighbor table containing the addresses of child nodes with which the node 300 communicates.
[0035] The clock 330 may be implemented by the processor 310 or may be a separate circuit from the processor 310. The clock 330 may provide a time reference for time synchronization of the node 300 while receiving a beacon containing time information from the parent node. The oscillator 340 may be a temperature-compensated crystal oscillator (TCXO), or may be other types of oscillators, such as a voltage-controlled crystal oscillator (VCXO), an oven-controlled crystal oscillator (OCXO), a ceramic resonator, etc. The oscillator 340 may provide a frequency reference for the clock 330, the processor 310, the radio device 350, and / or other components of the node.
[0036] The radio device 350 may be a wired or wireless transceiver capable of operating to communicate over various wired or wireless protocols known in the art, including but not limited to the AMI protocol. The radio device 350 may enable node 300 to communicate with other nodes in a mesh network (e.g., an AMI network) to receive beacons and transmit EBRs, parent change selection messages, etc. The radio device 350 may also transmit data and notification signals to a utility provider (e.g., a headend system) and receive any of the following: updated program instructions, firmware updates, updates to other configurations, or other communications. The oscillator 340 may provide a time reference for the radio device 350.
[0037] The metering device 360 may include various sensors, such as, but is not limited to, voltage measuring devices (e.g., instrument transformers) and current measuring devices (e.g., current transformers), and may also monitor and / or record energy usage within the customer's premises. The metering device 360 may be controlled by a processor, for example, by processor 310, or by other processors included in node 300. The 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 a processor.
[0038] The metering device 360 may notify the headend system of energy usage information via the processor 310 and / or wireless device 350. For example, the metering device 360 may continuously monitor and record the total energy usage at the customer premises 130. According to various aspects of this disclosure, the metering device 360 may monitor and / or record the day of the week and time of energy usage at the customer premises and notify the headend system of this information. Furthermore, the metering device 360 may operate as a detecting sensor and / or record abnormal measurements and / or events. Other information, including but not limited to, average power consumption and peak power, may be monitored and communicated by the metering device 360.
[0039] The parent change selection logic circuit 370 may determine whether node 300 should continue to receive time-synchronization beacons from the current preferred parent node. If it determines that the time-synchronization error with respect to the preferred parent node is excessive, the parent change selection logic circuit 370 may select a new preferred parent node, such as a backup parent node, and may send a message indicating the change to both the current and new preferred parent nodes. The parent change selection logic circuit 370 may further configure the node to receive beacons from the new preferred parent node. The parent change selection logic circuit 370 may determine that node 300 should select a different preferred parent node for additional or alternative reasons, including, but not limited to, weak received signal strength as determined by the Received Signal Strength Intensity (RSSI).
[0040] According to aspects of this disclosure, a child node may 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 may determine the synchronization error as the cumulative time difference between its local clock time and the transmission time information contained in each received beacon over a specified time period. If the synchronization error exceeds a threshold, the child node may send a message to the preferred parent node that increases the beacon density (e.g., reduces the time interval between beacon transmissions) with respect to beacons transmitted by the parent node. This can generate a single radio hop with an increased beacon rate (e.g., only during the transmission time period for the child node). Other parent nodes in the network may continue to transmit beacons at their nominal transmission rate. Thus, network performance problems caused by increasing the beacon rate of all nodes across the entire mesh network can be avoided.
[0041] A preferred parent may continue transmitting beacons at an increased beacon rate for a specified period of time. Alternatively, a preferred parent node may continue transmitting beacons at an increased beacon rate until the child node changes to a different parent, such as a backup parent node.
[0042] To determine the synchronization error, the child node may 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. The child node may implement one or more counters for accumulating the time difference. The counters may be implemented by the processor (e.g., processor 310) or by circuitry separate from the processor.
[0043] The time difference may be measured in microseconds (μs) or may be a signed integer. The accumulated time difference may provide a cumulative time difference (e.g., time synchronization error) in microseconds. The child node's processor (e.g., processor 310) may convert the cumulative time difference into a time synchronization error in ppm. The specified time period may be shorter than the time period equivalent to a time synchronization drift rate of approximately 10 ppm. For example, with a drift rate of 10 ppm, if the specified time period is shorter than approximately 5 minutes, the acceptable time difference may be approximately 3000 μs.
[0044] Given a nominal beacon transmission rate of approximately 2-3 beacons every 7 minutes, a child node may receive 2 or 3 beacons within a specified 5-minute time period. As an example of determining the time synchronization error, assume that a child node receives 3 beacons from a preferred parent node within a specified 5-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, as determined by the child node's processor (e.g., processor 310), may 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 may 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 may be 900 μs.
[0045] The processor of the child node (e.g., processor 310) may determine a cumulative time difference of 800 μs + 700 μs + 900 μs = 2400 μs over a specified 5-minute time period as the time synchronization error. The time synchronization error in microseconds may be converted by the processor to a time synchronization error in ppm. For example, a time synchronization error of 2400 μs is equivalent to a time synchronization error of 8 ppm. The cumulative time difference may be a signed integer value. In this embodiment, the time synchronization error (e.g., cumulative time difference) should remain less than 3000 μs and within a specified drift rate of 10 ppm over the specified 5-minute time period. If the time synchronization error is small, for example, about 0.5 to 1.0 ppm, the child node may adjust its local clock accordingly. If the time synchronization error is smaller than about 0.5 to 1.0 ppm, the child node does not need to adjust its local clock. Individual time differences and time synchronization errors related to beacons received from a preferred parent node may be stored in the child node's memory (e.g., memory 320).
[0046] In some cases, a child node may receive beacons from a backup parent node, for example, the backup parent node 230 shown in Figure 2. The backup parent node may be a neighbor node in a mesh network. If a backup parent node is available, the child node may determine and accumulate the time synchronization error between the beacons received from the backup parent and the child node's local clock over a specified time period, in the same manner as described above for the preferred parent node. Individual time differences and time synchronization errors for beacons received from the backup parent node may be stored in the child node's memory (e.g., memory 320).
[0047] A child node may determine the actions to be taken based on the time synchronization error. If the child node determines that the time synchronization error exceeds an upper threshold, for example, about 3 ppm or another value, the child node may send an Extended Beacon Request (EBR) to the preferred parent node that increases the rate at which beacons are transmitted (for example, by decreasing the time interval). For example, the preferred parent node may increase the beacon transmission rate from two or three beacons per 5-minute interval to four or five beacons per 5-minute interval. Other beacon transmission rates may be used. The upper threshold may be configurable as a programmable value.
[0048] A preferred parent node may transmit beacons at an increased rate over a specified time period, for example, 4 hours or other time periods. Other parent nodes in the network that have not received an EBR from a child node may continue to transmit beacons at the nominal transmission rate. After a specified time period, a parent node may resume transmitting beacons at the nominal beacon transmission rate (e.g., two or three beacons in a five-minute period). The child node may continue to accumulate time synchronization errors during the EBR time period. After the specified time period has expired, if the child node again determines that the time synchronization error exceeds an upper threshold, the child node may send another EBR to the preferred parent node, again increasing the beacon transmission rate. The child node may be prevented from sending additional EBRs during the specified time period.
[0049] When an EBR is received, the preferred parent node may update a list, such as a neighborhood table, containing the network addresses of child nodes requesting shorter beacon intervals and a time limit for the request. The preferred parent node may receive EBRs from more than one child node, and each of them may be included in the list. The preferred parent node may then adjust the beacon interval to transmit beacons at an increased transmission rate for a specified time period for each received EBR. If an EBR is received from another child node during the specified time period, the preferred parent node may extend the time period for transmitting beacons at the increased transmission rate. For example, if the specified time period for transmitting beacons at the increased rate is 4 hours, and an EBR is received from another child node after transmitting beacons at the increased transmission rate for 2 hours, the preferred parent node may continue transmitting beacons at the increased rate for 6 hours.
[0050] A counter may be implemented by the preferred parent node to track a specified time period for each child node during which the preferred parent node received an EBR. The counter may be implemented by the preferred parent node's processor or by circuitry separate from the processor. The preferred parent node may periodically check a list to determine whether the time limit has expired for any child node or whether the child node has moved to a different preferred parent. If there are no longer any child nodes with unprocessed EBRs, the preferred parent node may revert the beacon interval to the nominal beacon interval.
[0051] The child node may also compare the time synchronization error with respect to the preferred parent node against the warning threshold. The warning threshold may be greater than the upper threshold, for example, 10 ppm or another value. The warning threshold may be configurable as a programmable value. If a child node determines that the time synchronization error exceeds the warning threshold, the child node may send a notification to the network administrator (e.g., the headend system) indicating that the node is experiencing excessive time drift and may lose synchronization with the mesh network. For example, if the time synchronization error exceeds the warning threshold during an EBR period, the child node may send a notification indicating that it may need repair or replacement.
[0052] In some cases, the child node may also receive a beacon from the backup parent node and determine the time synchronization error with respect to the backup parent node in the same manner as for the preferred parent node. In such cases, the child node's processor may compare the time synchronization error of the preferred parent node to the time synchronization error of the backup parent node. If the time synchronization errors of the preferred and backup parent nodes are within a specified range of each other, for example, 20% or other programmable value, the time drift may be primarily attributable to the child node itself. The child node may send a notification to the headend system indicating that the time drift is caused by the child node.
[0053] If the child node's processor determines that the time synchronization error between the child node and the preferred parent node is greater than the time synchronization error between the child node and the backup parent node, the processor may send a signal to the parent change selection logic circuit (e.g., parent change selection logic circuit 370) indicating that the time synchronization error with respect to the preferred parent node is excessive. The parent change selection logic circuit may determine that the child node should synchronize to a different preferred parent node. The parent change selection logic circuit may send a message to the backup parent node indicating that it has become the preferred parent node, and a message to the previous preferred parent node indicating that it is no longer the preferred parent node with respect to the child node. The parent change selection logic circuit may also configure the child node to receive a beacon from the previous backup node as the current preferred parent node.
[0054] Figure 4 is a flowchart illustrating an example of a method 400 for maintaining node synchronization in a mesh network according to some aspects of the present disclosure. Referring to Figure 4, in block 410, a child node may determine a time synchronization error with respect to a preferred parent node. The child node may determine a cumulative time synchronization error by accumulating the time difference between the transmission time information provided by a beacon received from the preferred parent node and the child node's local clock over a specified time period.
[0055] The time difference and cumulative time synchronization error may be measured in microseconds (μs) and may be signed integer values. The accumulated time difference may be provided as a cumulative time difference (e.g., time synchronization error) in units of microseconds. The child node's processor (e.g., processor 310) may convert the cumulative time difference into a time synchronization error in units of ppm. The specified time period may be shorter than the time period equivalent to a time synchronization drift rate of approximately 10 ppm. The time difference and cumulative time synchronization error may be stored in the child node's memory.
[0056] In block 415, the child node may optionally determine the time synchronization error with respect to the backup parent node. If the backup parent node is available, the child node may determine the cumulative time synchronization error by accumulating 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. The time difference and time synchronization error may be stored in the child node's memory.
[0057] In block 420, the cumulative time synchronization error with respect to the preferred parent node may be compared against a first threshold. The processor of the child node may compare the time synchronization error with respect to the preferred parent node against a first threshold. The first threshold may be an upper threshold for time synchronization error, for example, about 3 ppm or another value.
[0058] In block 425, it may be determined whether the time synchronization error exceeds a first threshold. In response to the determination that the time synchronization error does not exceed the first threshold (425-N), the method may proceed to block 410 to determine the time synchronization error for the preferred parent node. In response to the determination that the time synchronization error exceeds the first threshold (425-Y), in block 430, the child node may send an Enhanced Beacon Request (EBR) to the preferred parent node. The EBR may cause the preferred parent node to increase the rate at which beacons are transmitted over a specified time period (e.g., by decreasing the time interval).
[0059] In block 435, the cumulative time synchronization error for the preferred parent node may be compared against a second threshold. The second threshold may be an alert threshold for time synchronization error, and may be greater than an upper threshold, e.g., about 10 ppm or other values. A time synchronization error exceeding the alert threshold may be an indication that a child node may lose time synchronization with the mesh network.
[0060] In block 440, it may be determined whether the time synchronization error exceeds a second threshold. In response to the determination that the time synchronization error does not exceed the second threshold (440-N), the method may proceed to block 410 to determine the time synchronization error for the preferred parent node. In response to the determination that the time synchronization error exceeds the second threshold (440-Y), in block 445, a notification may be generated for a central system, such as a headend system or other external system. The child node's processor may send a notification to the headend system via a wireless device (e.g., wireless device 350) indicating that the time synchronization error could cause the node to lose time synchronization with the mesh network. To address the time synchronization issue, a system administrator (e.g., a utility provider) may take corrective action, such as repairing or replacing the node.
[0061] In block 450, it may be determined whether the backup parent node is available. In response to determining that the backup parent node is not available (450-N), the method may proceed to block 410 to determine the time synchronization error for the preferred parent node. In response to determining that the backup parent node is available (450-Y), in block 455, the time synchronization error for the preferred parent node may be compared to the time synchronization error for the backup parent node. The child node processor may compare the time synchronization error for the preferred parent to the synchronization error for the backup parent.
[0062] In block 460, it may be determined whether the time synchronization errors of the preferred parent and the backup parent are within a specified range of each other, for example, 20% or other programmable value. In response to determining that the time synchronization errors are similar to each other (460-Y), the method may proceed to block 410 to determine the time synchronization error of the preferred parent node. Similar time synchronization errors for the preferred parent and the backup parent may indicate that the time synchronization error is primarily caused by the child node. The system administrator (e.g., utility provider) may take action to address the time synchronization error, for example, by repairing or replacing the node.
[0063] In response to determining that the time synchronization errors are not similar to each other (460-N), in block 465, the child node may change the backup node to become the preferred parent node. Determining that the time synchronization error with respect to the preferred parent node is greater than the time synchronization error with respect to the backup parent node may indicate that the preferred parent node is the main source of time drift. The child node's processor may send a signal to a parent change selection logic circuit (e.g., parent change selection logic circuit 370) indicating that the time synchronization error with respect to the preferred parent node is not within an acceptable range for maintaining time synchronization to the network. The parent change selection logic circuit may select a different preferred parent node, e.g., the backup parent node, and may send a message indicating the change to the current preferred parent node and the selected preferred parent node. The parent change selection logic circuit 370 may further configure the node to receive beacons from the selected preferred parent node. The method may proceed to block 410 to determine the time synchronization error with respect to the newly selected preferred parent node.
[0064] The specific operation shown in Figure 4 provides a particular method for maintaining node synchronization in a mesh network according to an embodiment of this disclosure. According to alternative embodiments, other sequences of operations may be performed. For example, alternative embodiments of this disclosure may perform the operations outlined above in a different order. Furthermore, each operation shown in Figure 4 may include multiple substeps that can be appropriately performed in various sequences. Additionally, depending on the specific application, additional operations may be added or removed.
[0065] Method 400 may be embodied in a non-temporary computer-readable medium, such as memory 320, or other non-temporary computer-readable medium known to those skilled in the art, which includes, but is not limited to, a program containing computer-executable instructions for causing a processor, computer, or other programmable device to perform the operations of Method.
[0066] Figure 5 is a flowchart illustrating an example of a method 500 for adjusting the beacon transmission rate according to some aspects of the present disclosure. Referring to Figure 5, in block 510, a node may transmit beacons at a nominal transmission rate. For example, a preferred parent node may periodically transmit beacons to be received by its child nodes. The beacons may be transmitted 3 to 5 times within a predetermined time period, which includes, but is not limited to, a 7-minute time period. Other transmission rates and time periods may be used.
[0067] In block 520, a node may receive an Enhanced Beacon Request (EBR). The node may be a preferred parent node and may receive EBRs from child nodes. The EBR may indicate the address of a 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 child nodes that originated the received EBRs and the time periods for each request.
[0068] In block 530, beacons may be transmitted at an increased rate. A preferred parent node may increase the beacon transmission rate at which the EBR is received over a specified time period, for example, 4 hours or other time periods.
[0069] In block 540, the duration of the increased beacon transmission rate may be monitored. The preferred parent node may monitor a specified duration during which child nodes receive the increased transmission. A counter may be implemented by the preferred parent node to track a specified duration for each child node during which the preferred parent node receives the EBR. The counter may be implemented by the processor of the preferred parent node or by circuitry separate from the processor.
[0070] In block 550, a node may determine whether a predetermined time period for the EBR has expired. A preferred parent node may periodically check a list of child node addresses to determine whether a predetermined time period has expired for any child node, or whether a child node has moved to a different preferred parent. In response to determining that a predetermined time period has not expired (550-N), the method may proceed to block 530 and continue transmitting beacons at an increased rate. In response to a preferred parent node determining that a predetermined time period has expired for all child nodes that have received an EBR (550-Y), the method may proceed to block 510 and transmit beacons at a nominal rate.
[0071] The specific operation shown in Figure 5 provides a specific method for adjusting the beacon transmission rate according to an embodiment of the present disclosure. According to alternative embodiments, other sequences of operations may be performed. For example, alternative embodiments of the present disclosure may perform the operations outlined above in a different order. Furthermore, each operation shown in Figure 5 may include multiple substeps that can be appropriately performed in various sequences for each operation. Additionally, depending on the specific application, additional operations may be added or removed.
[0072] Method 500 may be embodied in a non-temporary computer-readable medium, such as memory or other non-temporary computer-readable medium known to those skilled in the art, which stores a program containing computer-executable instructions for causing a processor, computer, or other programmable device to perform the operations of Method.
[0073] Figure 6 shows a utility management system 600 according to some aspects of the present disclosure. Referring to Figure 6, the utility management system 600 may include a node 605, a headend system 610, and a storage device 620. The headend system 610 and node 605 may be connected to a power distribution grid 140. Node 605 may be a power meter connected to a wireless mesh network, such as an AMI network. Node 605 may monitor and / or record energy usage in the customer premises 630 and notify the headend system 610 of information regarding energy usage. Node 605 may transmit status notifications and other information to the headend system 610.
[0074] Figure 6 shows one node 605 for simplicity of explanation, but multiple nodes 605 may be included in the utility management system 600. Not all nodes are power meters. Furthermore, multiple networks may exist between the meter and the headend system or other external systems, and notifications may be transmitted through these networks.
[0075] The examples and embodiments described herein are for illustrative purposes only. In this regard, various modifications and variations will become apparent to those skilled in the art. These should be included within the spirit and scope of this application and the attached claims.
Claims
1. A method for maintaining node synchronization in a mesh network, The above method includes the receiving node receiving multiple primary beacons from a first transmitting node during a predetermined time interval, Each of the above primary beacons includes time information indicating the time when each primary beacon was transmitted. The receiving node has a first association with the first transmitting node. The above method, The time difference is determined by comparing the time each of the above primary beacons was transmitted with the time each of the above primary beacons was received, as indicated by the clock at the above receiving node. The first time synchronization error is generated by accumulating the time differences for each primary beacon received from the first transmitting node during the predetermined time interval described above. The above first time synchronization error is compared with a first threshold, In response to determining that the first time synchronization error exceeds the first threshold, the first transmitting node sends a first request to increase the rate of beacon transmission for a specified time period. method.
2. Accumulating the above time differences includes adding each determined time difference as a signed integer value. The method according to claim 1.
3. After the specified time period for receiving beacons at the increased rate has expired, the receiving node determines a second time synchronization error. In response to determining that the second time synchronization error exceeds the first threshold, the first transmitting node sends a second request to increase the rate of beacon transmission. The method according to claim 1.
4. The receiving node is prohibited from sending a third request during the specified time period. The method according to claim 3.
5. The above first time synchronization error is compared with a second threshold, This includes sending a notification to the central system in response to determining that the first time synchronization error exceeds the second threshold. The method according to claim 1.
6. The above method includes the receiving node receiving multiple secondary beacons from a second transmitting node during the predetermined time interval, Each of the above secondary beacons includes time information indicating the time when each secondary beacon was transmitted. The receiving node has a second association with the second transmitting node. The above method, The time difference is determined by comparing the time each of the above secondary beacons was transmitted with the time each of the above secondary beacons was received, as indicated by the clock at the above receiving node. A second time synchronization error is generated by accumulating the time differences for each secondary beacon received from the second transmitting node during the predetermined time interval described above. The second time synchronization error described above is compared with the first time synchronization error described above. In response to determining that the first time synchronization error is greater than the second time synchronization error, the receiving node causes the first association to be changed from the first transmitting node to the second transmitting node, The method according to claim 1.
7. A clock configured to maintain local time, A memory configured to store data and instructions, A wireless device configured to communicate with a mesh network, A network device comprising the above-mentioned clock, the above-mentioned memory, and a processor that communicates with the above-mentioned wireless device, The above processor is configured to receive multiple primary beacons from a first transmitting node via the above wireless device during a predetermined time interval. Each of the above primary beacons includes time information indicating the time when each primary beacon was transmitted. The above network device has a first association with the above first transmitting node, The above processor is The time difference is determined by comparing the time each of the above primary beacons was transmitted with the time each of the above primary beacons was received, as indicated by the above clock. A first time synchronization error is generated by accumulating the time differences for each primary beacon received from the first transmitting node during the predetermined time interval described above. The above first time synchronization error is compared with the first threshold, In response to determining that the first time synchronization error exceeds the first threshold, the wireless device is configured to send a first request to the first transmitting node to increase the rate of beacon transmission. Network device.
8. The above network device further comprises a first counter, The first counter described above is configured to accumulate the time differences related to the primary beacon by adding each determined time difference as a signed integer value. The network device according to claim 7.
9. The processor is further configured to receive primary beacons from the first transmitting node via the wireless device, having an increased beacon transmission rate over a specified time period based on the first request. The increased beacon transmission rate mentioned above will end when the specified time period expires. The network device according to claim 7.
10. The processor is further configured to send a second request to the first transmitting node to increase the rate of beacon transmission in response to determining that the first time synchronization error exceeds the first threshold after the specified time period has expired. The network device according to claim 9.
11. The processor is further configured to prevent the network device from transmitting a third request during the specified time period. The network device according to claim 10.
12. The above processor is The above first time synchronization error is compared with the second threshold, Further configured to send a notification to the central system in response to determining that the first time synchronization error exceeds the second threshold, The network device according to claim 7.
13. The above processor is further configured to receive multiple secondary beacons from a second transmitting node during the above predetermined time interval. Each of the above secondary beacons includes time information indicating the time when each secondary beacon was transmitted. The above network device has a second association with the second transmitting node, The above processor is The time difference is determined by comparing the time each of the above secondary beacons was transmitted with the time each of the above secondary beacons was received, as indicated by the above clock. A second time synchronization error is generated by accumulating the time differences for each secondary beacon received from the second transmitting node during the predetermined time interval described above. The second time synchronization error described above is compared with the first time synchronization error described above. In response to the determination that the first time synchronization error exceeds the second time synchronization error, the network device is further configured to change the first association from the first transmitting node to the second transmitting node. The network device according to claim 7.
14. The above network device further comprises a second counter, The second counter described above is configured to accumulate the time differences related to the secondary beacon by adding each determined time difference as a signed integer value. The network device according to claim 13.
15. A non-temporary computer-readable medium storing instructions for causing one or more processors of a receiving node to execute a method for maintaining node synchronization in a mesh network, The instructions that can be executed by the above processor include instructions for performing the following operations: The above operation includes receiving multiple primary beacons from a first transmitting node during a predetermined time interval. Each of the above primary beacons includes time information indicating the time when each primary beacon was transmitted. The receiving node has a first association with the first transmitting node. The above operation is, The time difference is determined by comparing the time each of the above primary beacons was transmitted with the time each of the above primary beacons was received, which is determined by the local clock. The first time synchronization error is generated by accumulating the time differences for each primary beacon received from the first transmitting node during the predetermined time interval described above. The above first time synchronization error is compared with a first threshold, The process includes sending a first request to the first transmitting node to increase the rate of beacon transmission in response to determining that the first time synchronization error exceeds the first threshold, Non-temporary computer-readable media.
16. The non-temporary computer-readable medium further includes instructions for performing an operation which includes receiving the primary beacon at an increased beacon transmission rate over a specified time period based on the first request, The increased beacon transmission rate mentioned above will end when the specified time period expires. The non-temporary computer-readable medium according to claim 15.
17. The non-temporary computer-readable medium further includes instructions for performing an operation that includes sending a second request to the first transmitting node to increase the rate of beacon transmission in response to determining that the first time synchronization error exceeds the first threshold after the expiration of the specified time period. The non-temporary computer-readable medium according to claim 16.
18. The transmission of a third request is prohibited during the specified time period. The non-temporary computer-readable medium according to claim 17.
19. The above first time synchronization error is compared with a second threshold, The instruction further includes, in response to determining that the first time synchronization error exceeds the second threshold, the instruction to perform an action including sending a notification to a central system. The non-temporary computer-readable medium according to claim 15.
20. The above non-temporary computer-readable medium further includes instructions for performing an operation which includes receiving a plurality of secondary beacons from a second transmitting node during the above predetermined time interval, Each of the above secondary beacons includes time information indicating the time when each secondary beacon was transmitted. The receiving node has a second association with the second transmitting node. The above non-temporary computer-readable media is, The time difference is determined by comparing the time each of the above secondary beacons was transmitted with the time each of the above secondary beacons was received. A second time synchronization error is generated by accumulating the time differences for each secondary beacon received from the second transmitting node during the predetermined time interval described above. The second time synchronization error described above is compared with the first time synchronization error described above. The instructions further include, in response to determining that the first time synchronization error exceeds the second time synchronization error, instructions for performing an operation that includes changing the first association from the first transmitting node to the second transmitting node in order to receive a beacon, The non-temporary computer-readable medium according to claim 15.