Patent Publication Number: US-11647431-B2

Title: Heterogeneous networks using two channel hopping protocols

Description:
RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 16/535,382, titled “Heterogeneous Networks Using Two Channel Hopping Protocols” and filed on Aug. 8, 2019 (Allowed), which is incorporated herein in its entirety. 
    
    
     TECHNICAL FIELD 
     This disclosure relates generally to networking and more particularly relates to facilitating communications in heterogeneous data networks. 
     BACKGROUND 
     Some data networks may include different networks implementing different network protocols due to various reasons. For example, utility companies and other resource providers may use a utility data network for communicating data collected, measured or otherwise obtained by various sensors or meters deployed in a resource distribution network, such as an electricity distribution network. Different utility data networks might be deployed for different resources, such as one utility data network deployed for an electricity distribution network and another utility data network deployed for a gas distribution network. Further, one resource distribution network might be associated with multiple different utility data networks. For example, different utility data networks might be deployed for the same electricity distribution network where the different data networks may use different types of network protocols. The different data networks may result from different stages of deployment or different geographical regions. 
     In order for the nodes in a heterogeneous data networks to communicate with each other, the heterogeneous data networks need to include devices having multiple radio transceivers that process separate messages from the separate networks. Using multiple radio transceivers on the same device increases the complexity of the design and manufacturing of the devices. Such an implementation is also susceptible to interference from these multiple radios on the same device. Accordingly, systems and methods are desirable for facilitating communications in heterogeneous data networks using devices with a single radio transceiver. 
     SUMMARY 
     Systems and methods are disclosed for facilitating communications in heterogeneous networks that include different data networks. For instance, a gateway device includes a single transceiver device configured to communicate with a first network using a time slotted channel hopping (TSCH) protocol and with a second network using a channel hopping CSMA protocol. The gateway device is configured for during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol, and determining that no message is received from the first network during the first part of the first timeslot. In response to determining that no message is received from the first network during the first part of the first timeslot, the gateway device is configured for performing operations including determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol. The operations further include switching to the second channel to listen on the second network during a second part of the first timeslot, determining that a message is received from the second network during the second part of the first timeslot. The operations further include in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network beyond the first timeslot. The operations further include at a beginning of a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching to the first network is satisfied. In response to determining that a condition for switching back to the first network has met, the operations include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, stopping receiving the message from the second network, and switching to the third channel to listen on the first network during a first part of the second timeslot. 
     In another example, a system includes a first network including a first set of nodes that communicate via a time slotted channel hopping (TSCH) protocol. The first set of nodes includes a gateway device. The system also includes a second network including a second set of nodes that communicate via a channel hopping CSMA protocol. The second set of nodes also include the gateway device. The gateway device includes a single transceiver device configured to communicate with the first network using the TSCH protocol and with the second network using the channel hopping CSMA protocol. The gateway device is configured for during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol. The gateway device is further configured for determining that no message is received from the first network during the first part of the first timeslot, and in response to determining that no message is received from the first network during the first part of the first timeslot, performing further operations. The operations include determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol, and switching to the second channel to listen on the second network during a second part of the first timeslot. The operations also include determining that a message is received from the second network during the second part of the first timeslot, and in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network during a remainder of the first timeslot. The operations further include during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching back to the first network has met. In response to determining a condition for switching back to the first network has met, the operations further include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications. 
     In an additional example, a method in which a gateway device performs operations includes during a first part of a first timeslot of a time slotted channel hopping (TSCH) protocol, listening on a first network using a first channel based on a hopping pattern for the first network. The first network is configured to use the TSCH protocol for communication. The method further includes determining that no message is received from the first network during the first part of the first timeslot. In response to determining that no message is received from the first network during the first part of the first timeslot, the method includes further operations. These operations include determining a second channel of a current dwell interval of a second network based on a hopping sequence for the second network. The second network is configured to use a channel hopping CSMA protocol for communication. These operations also include determining that a message is received from the second network during the second part of the first timeslot. In response to determining that a message is received from the second network during the second part of the first timeslot, the operations include continuing to receive the message from the second network during a remainder of the first timeslot. The operations also include during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching back to the first network has met. In response to determining that a condition for switching back to the first network has met, the operations include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications. 
     These illustrative aspects and features are mentioned not to limit or define the invention, but to provide examples to aid understanding of the inventive concepts disclosed in this application. Other aspects, advantages, and features of the present invention will become apparent after review of the entire application. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
       These and other features, aspects, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings, where: 
         FIG.  1    is a diagram illustrating an example of heterogeneous data networks where a gateway device with a single transceiver to communicate with nodes in the heterogeneous data networks; 
         FIG.  2    is a diagram illustrating an example of a gateway device configured to communicate with nodes in heterogeneous data networks. 
         FIG.  3    is a diagram of example protocol stacks for a single radio transceiver device configured to communicate with nodes in heterogeneous data networks; 
         FIG.  4    is a diagram illustrating an example of a timeslot in a time slotted channel hopping (TSCH) network; 
         FIG.  5    is a diagram illustrating an example of a sequence of timeslots in a TSCH network compared with a sequence of dwell intervals in a channel hopping CSMA network; 
         FIG.  6    is an example of a flowchart depicting a process for communicating with nodes in heterogeneous data networks including a TSCH network and a channel hopping CSMA network; 
         FIG.  7    is another example of a flowchart depicting a process for communicating with nodes in heterogeneous data networks including a TSCH network and a channel hopping CSMA network; and 
     
    
    
     DETAILED DESCRIPTION 
     Systems and methods are provided for facilitating communications in heterogeneous data networks that include multiple different data networks. Each of the data networks includes multiple nodes and the nodes in one network communicate with each other using a protocol different from the nodes in another network. In one example, the data networks can be associated with the same or different resource distribution networks, such as an electricity distribution network or a gas distribution network, to deliver measurement data obtained in the resource distribution network(s). 
     For example, nodes in one of the data networks might be configured to communicate via a time slotted channel hopping (TSCH) protocol, such as that defined by IEEE 802.15.4e. The TSCH protocol uses a series of timeslots and multiple channel frequencies for communication between nodes on the network. In the TSCH protocol, a timeslot includes an RX wait period which is used for listening on the network for communications. If the node receives communications within the RX wait period of the timeslot, the communications continue in the remaining portion of the timeslot. If a node in the TSCH network listening for communications does not receive communication within the RX wait period of the timeslot, the node may determine that no communication will be received during that timeslot, leaving the remaining portion of the timeslot unused. As such, it can be viewed that a TSCH timeslot includes two parts: the first part including the RX wait period and the second part including the portion that follows the RX wait period. The TSCH protocol also involves channel hopping. At the beginning of each timeslot, the node switches to a channel different from the channel for the previous time slot. The channel for each timeslot is determined by a hopping pattern that repeats for every L timeslots with L being the length of the hopping pattern. 
     The nodes in the other network might be configured to communicate with each other via a carrier-sense multiple access (CSMA) channel hopping protocol, such as that defined by IEEE 802.15.4e-2012. The channel hopping CSMA protocol associates a dwell interval with each node in the network. During a dwell interval, a node stays on one channel to listen to or transmit communications in the network. When a next dwell interval is up and if the node is in listening mode, the node switches to a different channel to listen for the communications. The channel for each dwell interval is determined based on a hopping sequence defined by the channel hopping CSMA protocol. The dwell intervals for different nodes might not be synchronized. In some examples, a parent node in the network might broadcast the schedule of the dwell intervals to its child nodes. In another example, the root node of the network may broadcast the dwell interval schedule and nodes that are synchronized to the broadcast channel can receive the schedule and synchronize their dwell intervals to the broadcast schedule. 
     A third data network might implement another communication protocol the same or different from the TSCH protocol and CSMA channel hopping protocol. For simplicity, the following discussion focuses on the communications within two heterogeneous networks and the same principles can be applied to heterogeneous networks having more than two networks. It should be noted that supporting more heterogeneous networks might decrease the performance of each network. Further, adding an additional TSCH-based network may achieve better performance than adding an additional CSMA-based network because the second TSCH-based network can be synchronized with the first TSCH-based network to use part of the timeslot where the first TSCH network is not active. 
     In an exemplary system, a gateway device is provided to include a single transceiver device configured to communicate with a network configured to communicate via the TSCH protocol, referred to as the first network, and with another network configured to communicate via the channel hopping CSMA protocol, referred to as the second network. As such, the gateway device can be considered as a node in the first network and also a node in the second network. Since a TSCH timeslot may have an unused part, the gateway device can communicate with both the first network and the second network by listening for communications from the first network during the first parts of the TSCH timeslots and listening for communications from the second network during unused parts of TSCH timeslots. This allows the gateway device to communicate with both the first network and the second network using a single radio transceiver. 
     In one example, the gateway device is configured to operate in the first network by switching to the channel associated with a TSCH timeslot and listening on the first network during a first part of the timeslot. The gateway device determines the channel of the timeslot based on the hopping pattern for the first network. If the gateway device receives a message from the first network during the first part of the timeslot, the gateway device continues to receive the message from the first network in the second part of the timeslot and even the following timeslots. If the gateway device determines that no message is received from the first network during the first part of the timeslot, the gateway device switches to the second network during the second part of the timeslot for communicating with other nodes on the second network. The gateway device determines the channel of the current dwell interval of the second network based on the hopping sequence for the second network. The gateway device switches to that channel and listens on the second network during the second part of the timeslot of the TSCH network. If a message is received from the second network during the second part of the timeslot, the gateway device may continue to receive the message from the second network even if the current timeslot has expired and a new timeslot has started. 
     In some scenarios, however, the receipt of the message in either the first network or the second network may be interrupted. For example, the heterogamous networks might be configured to ensure the performance or quality of a certain network, for example, according to Quality of Service (QoS) requirements associated with this network. In such a case, one network may be assigned a higher priority over the other network and one or more rules may be identified to ensure the performance of the high-priority network. For example, one of the rules can include that the number of timeslots that the gateway device continuously communicates with the low-priority network cannot be larger than a threshold number. Another rule can include that the gateway is to switch to the high-priority network if an important message is to be received or transmitted in the high-priority network, for example, in a scheduled GTS. Yet another rule can specify the priority of the networks on a packet-by-packet or message-by-message basis. For example, a priority can be assigned to a packet or message in the two networks. If a packet or message being received in one network has an indication that the packet or message has a higher priority such as a QoS value indicating low latency requirement for the packet or message, then the gateway device will preempt the other network and send the high-priority packet or message immediately. Based on these rules, one or more conditions can be established for the gateway device to switch from the low-priority network to the high-priority network or to receive or transmit a complete message on the high-priority network. 
     For example, if the first network has a higher priority than the second network and the gateway device is receiving a message in the second network, at the beginning of a new timeslot and even prior to the complete receipt of the message from the second network, the gateway device may determine that a condition for switching to the first network has met. In that case, the gateway device can stop receiving the message from the second network, determine the current channel of the first network based on the hopping pattern for the first network, and switch to that channel to listen on the first network for communications. Likewise, if the heterogeneous networks are configured to assign a higher priority to the second network than the first network, the gateway device may interrupt the receipt of messages in the first network and switch to the second network for communication in a subsequent timeslot when one or more conditions are met. 
     These illustrative examples are given to introduce the reader to the general subject matter discussed here and are not intended to limit the scope of the disclosed concepts. The following sections describe various additional aspects and examples with reference to the drawings in which like numerals indicate like elements. 
     The features discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provide a result conditioned on one or more inputs. Suitable computing devices include multipurpose microprocessor-based computer systems accessing stored software that programs or configures the computing system from a general-purpose computing apparatus to a specialized computing apparatus implementing one or more aspects of the present subject matter. Any suitable programming, scripting, or other type of language or combinations of languages may be used to implement the teachings contained herein in software to be used in programming or configuring a computing device. 
     Referring now to the drawings,  FIG.  1    is a network diagram illustrating an example heterogeneous network  100  that includes two data networks: the first network  110  and the second network  120 . The first network  110  includes multiple nodes  112 A- 112 F (which may be referred to herein individually as a node  112  or collectively as the nodes  112 ). The nodes  112  may include measuring nodes for collecting data from the respective deployed location of the nodes, processing nodes for processing data available to the nodes, router nodes for forwarding data received from one node to another node in the network  110 , or nodes that are configured to perform a combination of these functions. The nodes  112  are further configured to communicate with each other so that messages or data can be exchanged between nodes  112  for processing or further transmission. The second network  120  (and the nodes  122 A- 122 E contained therein) can be configured in a similar way as the first network  110 . 
     In one example, each of the two networks can be implemented as an Advanced Metering Infrastructure (AMI) mesh network and associated with a resource distribution network for distributing resources, such as power, water, natural gas to premises, such as dwellings, structures, or other geographical areas. The nodes in the respective network can be deployed to the various locations of the resource distribution network to deliver measurement data obtained in those locations, such as the consumption information of the resource, operational status of the distribution network, and so on. For example, nodes  112  of the first network  110  (or nodes  122  of the second network  120 ) can include meters such as electricity meters, gas meters, water meters, steam meters, etc. and be implemented to measure various operating characteristics of the resource distribution network and to transmit the collected data through the network  110  (or the network  120 ) to, for example, the root node  114  of the first network  110  (or the root node  124  of the second network  120 ). 
     The root node  114  (or the root node  124 ) may be configured for communicating with the nodes  112  in the first network  110  (or the nodes  122  in the second network  120 ) to perform operations such as managing the nodes  112  (or the nodes  122 ), collecting data from the nodes  112  (or the nodes  122 ) and forwarding data to the headend system  118  (or the headend system  128 ). The root node  114  (or the root node  124 ) can also be configured to function as a node to measure and process data itself. The root nodes  114  (or the root node  124 ) may be personal area network (PAN) coordinators, gateways, or any other devices capable of communicating with the headend system  118  of the first network  110  (or the headend system  128  of the second network  120 ). The headend system  118  (or the headend system  128 ) can function as a central processing system that receives streams of data or messages from the root node  114  (or the root node  124 ). The headend system  118  (or the headend system  128 ) can process the collected data or have the collected data be processed for various applications. Although  FIG.  1    shows the two networks have separate headend systems, a single headend system can be utilized for both networks. Further, a root node in the first and second networks may communicate with the respective headend system through another network  140  such as the Internet, an intranet, or any other data communication network. 
     The first network  110  and the second network  120  can thus provide a communication channel between the nodes in the networks and the headend systems. A communication channel can include any suitable means capable of communicating signals between the nodes and the headend systems. Examples of suitable communication media include (but are not limited to) Ethernet cable, wireless data communication, power cables for use in power line communication (“PLC”), etc. Power line communication can include communicating signals via cables used for providing electric power from a utility company to buildings in a geographic area. The first and second networks can be configured using any suitable network topology, such as (but not limited to) a mesh network (as mentioned above), a ring network, a star network, a bus network, etc. 
     In some configurations, the first network  110  and the second network  120  can be associated with the same resource distribution network or different resource distribution networks. For example, the first network  110  might be associated with an electricity distribution network and the second network  120  might be associated with the gas distribution network. In another example, the first network  110  and the second network  120  are both associated with the same resource distribution network but are deployed at different stages of the network or deployed to different geographical locations. As a result, the first network  110  and the second network  120  may be configured to use different network protocols for communications. For example, the nodes in network  110  may be configured to communicate with each other via a TSCH protocol whereas the nodes in the network  120  are configured to communicate with each other via a channel hopping CSMA protocol. 
     To enable the communications in the two different networks, a gateway device  102  can be included and configured to support both protocols of the two networks  110  and  120 . As such, the gateway device can be considered as a node in the first network  110  and also a node in the second network  120 . The gateway device  102  can thus communicate with nodes in the first network  110  and the nodes in the second network  120 . It can also facilitate the communications between the two networks by transmitting messages received from the first network  110  to the second network  120 , and vice versa. It should be understood that while  FIG.  1    shows one gateway device  102 , multiple gateway devices that are configured and function similarly to the gateway device  102  can be included in the heterogeneous network  100 . 
     In some implementations, the gateway device  102  is configured with a single radio transceiver that implements more than one MAC interfaces to facilitate the communications with the first network  110  and the second network  120  in the heterogeneous network  100 .  FIG.  2    is a block diagram illustrating an example of a gateway device  102  with a single transceiver device  220  implementing two MAC interfaces via network interfaces  208  and  210 . 
     The gateway device  102  can include a processor  202 . Non-limiting examples of the processor  202  include a microprocessor, an application-specific integrated circuit (ASIC), a state machine, a field programmable gate array (FPGA) or other suitable processing device. The processor  202  can include any number of processing devices, including one. The processor  202  can be communicatively coupled to non-transitory computer-readable media, such as memory device  204 . The processor  202  can execute computer-executable program instructions and/or access information stored in the memory device  204 . 
     The memory device  204  can store instructions that, when executed by the processor  202 , causes the processor  202  to perform operations described herein. The memory device  204  may be a computer-readable medium such as (but not limited to) an electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions. Non-limiting examples of such optical, magnetic, or other storage devices include read-only (“ROM”) device(s), random-access memory (“RAM”) device(s), magnetic disk(s), magnetic tape(s) or other magnetic storage, memory chip(s), an ASIC, configured processor(s), optical storage device(s), or any other medium from which a computer processor can read instructions. The instructions may comprise processor-specific instructions generated by a compiler and/or an interpreter from code written in any suitable computer-programming language. Non-limiting examples of suitable computer-programming languages include C, C++, C #, Visual Basic, Java, Python, Perl, JavaScript, ActionScript, and the like. 
     The gateway device  102  can also include a bus  206 . The bus  206  can communicatively couple one or more components of the gateway device  102 . Although the processor  202 , the memory device  204 , and the bus  206  are respectively depicted in  FIG.  2    as separate components in communication with one another, other implementations are possible. For example, the processor  202 , the memory device  204 , and the bus  206  can be respective components of respective printed circuit boards or other suitable devices that can be disposed in gateway device  104   a  to store and execute programming code. 
     The gateway device  102  can also include a transceiver device  220  communicatively coupled to the processor  202  and the memory device  204  via the bus  206 . Non-limiting examples of a transceiver device  220  include an RF transceiver and other transceivers for wirelessly transmitting and receiving signals. The transceiver device  220  is capable of implementing at least two MAC interfaces to communicate with the first network  110  and the second network  120  via antennas  208 ,  210 , respectively. While multiple antennas  208  and  210  are shown for illustrative purposes, other aspects include a transceiver device  220  that can communicate with the first network  110  and the second network  120  with a single antenna. 
     The gateway device  102  can communicate with the first network  110  and the second network  120  using a single transceiver device  220  via the same or differing network protocols. As discussed above, the gateway device  102  can communicate with the second network configured to use a channel hopping CSMA protocol (e.g., Wi-SUN protocol governed by IEEE 802.15.4e-2012) via antenna  210  while the gateway device  102  can communicate with the first network  110  using the TSCH protocol (e.g., network protocol governed by IEEE 802.15.4e) via antenna  208 . In some aspects, the gateway device  102  may communicate with both the first network  110  and the second network  120  even if the first network  110  and the second network  120  use different frequencies. For example, gateway device  102  may be configured to send and receive signals with the first data network  110  in a first frequency band while the gateway device  102  may be configured to send and receive signals with the second network  120  in a second frequency band. 
     As discussed above, the gateway device  102  is capable of implementing two MAC protocols using a single transceiver device  220  (e.g., a single radio).  FIG.  3    depicts an example of the protocol stacks for a single radio transceiver device  220  described herein, which includes two protocol stacks  300 A and  300 B. The two protocol stacks  300 A and  300 B can be independent except for a shared physical interface (PHY)  310 . The PHY  310  can define the specifications of the physical transmission medium, such as the transceiver device  220 . The next layers of the protocol stacks  300 A and  300 B for the gateway device  102  includes a MAC layer  320 A and a MAC layer  320 B, respectively. MAC layer  320 A, for example, defines the addressing and channel access protocols for a TSCH network, allowing the transceiver device  220  to communicate with the first network  110 . Similarly, MAC layer  320 B can define the addressing and channel access protocols for a channel hopping CSMA network, allowing the transceiver device  220  to communicate with the second network  120 . The traffic for MAC layer  320 A and MAC layer  320 B can be routed through their respective IP layer  330 A and  330 B. The data for the first network  110  and the data for the second network  120  can be communicated via separate transport layers such as UDP  340 A and  340 B. 
     As mentioned above, the first network  110  may be an AMI mesh network, which may follow a TSCH communication protocol to communicate wireless information within the network and outside the network. In the TSCH protocol, nodes within the network are synchronized on a current TSCH timeslot. To communicate with both the first network  110  and the second network  120  using a single transceiver  220 , the gateway device  102  can switch between the first network  110  and the second network  120  during TSCH timeslots to listen for communications on the two networks. Thus, the gateway device  102  can support both the first network  110  (operating a TSCH protocol) and the second network  120  (which operate using a non-TSCH protocol) via a single transceiver device  220 . 
     Each timeslot in the TSCH protocol is of a time duration of duration “T” which can be defined in milliseconds or other appropriate time unit. The TSCH protocol also uses multiple channel frequencies for communication between devices in the network. A hopping pattern defines the channel used to communicate during each timeslot for a node in the TSCH network. The hopping pattern defines a channel frequency or channel for each timeslot in the hopping pattern. For example, a hopping pattern may be determined that channel  4  is associated with timeslot  1  and channel  6  is associated with timeslot  2 . A node can thus determine, based on the hopping pattern, that it should switch to channel  4  during timeslot  1  and switch to channel  6  during timeslot  2 . The hopping pattern may have a hopping pattern length L and the hopping pattern repeats for every L timeslots. 
       FIG.  4    illustrates a typical TSCH timeslot structure for a timeslot  400 . In this example, the time periods shown are exemplary and other values may be used in other implementations (e.g., timeslot  400  is shown with a duration of 25 milliseconds, but other durations of a timeslot are also possible). In a TSCH timeslot structure, a node in the first network  110  listens on a channel determined by the TSCH hopping pattern during a first part  408  of the timeslot  400  for the first network  110 . As shown in  FIG.  4   , after an RF settle period  402 , the node can listen for receiving signals on a channel for a period of time (shown as receiver wait time  404 ). Typically, the duration of the receiver wait time  404  is dependent on an expected transmit time duration. The transmit time duration is defined by the IEEE 802.15.4e TSCH specification. If the node receives a message prior to the expiration of the receiver wait time  404 , then the node can proceed to receive the rest of the message and process the received message. However, if the node does not receive a message prior to the expiration of the receiver wait time  404 , then the node may determine that it will not receive a communication from another node on the first network  110  during the present timeslot. In a typical timeslot structure, the remainder of the timeslot  400  may be idle or unused. 
     In certain aspects, the gateway device  102  communicating in the first network  110  using the TSCH protocol can communicate in the second network  120  (e.g., a Wi-SUN network) during the unused time portion of a TSCH timeslot. As such, as shown in  FIG.  4   , in the second part of the timeslot  400 , the gateway device  102  may communicate in a channel of the first network  110  or a channel of the second network  120 . If the gateway device  102  receives the beginning portion of a message from a node on the first network  110  during the first part  408  of the timeslot  400 , the gateway device  102  can continue to receive the message in the first network  110  during the second part  410  of the timeslot  400  (e.g., for the duration of the timeslot  400 ). If the gateway device  102  does not receive a message from the first network  110  prior to the expiration of the first part  408  of the timeslot  400 , then the gateway device  102  may begin to listen for a communication from a node in the second network  120  using a channel determined by the hopping sequence specified by the second network  120 . If communication from the second network  120  is received during the second part of the timeslot  400 , the gateway device  102  can receive the message from the second network  120  for the remaining duration of the timeslot  400 . 
       FIG.  5    depicts examples of timing diagrams of a sequence of TSCH timeslots implemented in the first network  110  compared with sequences of dwell intervals in the channel hopping CSMA protocol implemented in the second network  120  at the gateway device  102 . The timing diagram  500 A illustrates a sequence of seven TSCH timeslots at the gateway device  102 . Note that in the TSCH protocol, the TSCH timeslots on different network nodes are synchronized, and thus other nodes in the first network also have the same sequence of TSCH timeslots. Each of the seven timeslots includes two parts. As discussed above, in the first part of a timeslot, the gateway device  102  can be configured to listen on the first network  110  for communications in the first network. The second part of the timeslot can be utilized for receiving messages in the first network  110  or communicating in the second network  120  depending on whether a message is received from the first network  110  during the first part of the timeslot. 
     The timing diagram  500 B shown in  FIG.  5    illustrates an example of a sequence of dwell intervals used in the channel hopping CSMA protocol of the second network  120  at the gateway device  102 . Note that the dwell intervals at other nodes in the second network  120  might not be synchronized with the dwell intervals of the gateway device  102 . The timing diagram  500 C illustrates another example of a sequence of dwell intervals of the second network  120  at the gateway device  102 . As will be discussed later, the dwell intervals shown in the timing diagram  500 C is coordinated or aligned with the timeslots shown in the timing diagram  500 A, whereas the dwell intervals shown in the timing diagram  500 B is uncoordinated. As used herein, the dwell intervals of the second network are “uncoordinated” or “unaligned” with the timeslots for the first network at the gateway device  102  if the durations and transitions between dwell intervals are determined independently of the durations and transition between timeslots. On the other hand, they are “coordinated” or “aligned” if the durations and transitions of dwell intervals of the second network is determined based on the durations and transitions of timeslots for the first network so that the number of channel switches after the gateway device  102  switches from one network to another network is reduced or even minimized. In each of the timing diagrams  500 B and  500 C, the gateway device  102  switches to a channel different from the current channel at the beginning of a next dwell interval based on a hopping sequence for the second network  120  when the gateway device  102  is listening on the second network  120 . 
     In the example shown in  FIG.  5   , the gateway device  102  listens and communicates in the first network  110  for the first three timeslots. For example, the gateway device  102  might have received a message from the first network in each of the first three timeslots. The gateway device  102  might also have received a message during the first part of timeslot  1  and continued to receive the message during timeslot  2  or even during timeslot  3 . In the fourth timeslot, the gateway device  102  did not receive a message from the first network  110  during the first part of this timeslot. As such, the gateway device  102  can determine that no message will be received from the first network  110  for the remainder of timeslot  4 . The gateway device  102  can thus switch to the second network  120  at the beginning of the second part of the timeslot  4 , i.e. at time T1, as shown by the dotted downward arrow in  FIG.  5   . 
     If the dwell intervals of the second network  120  is uncoordinated with the TSCH timeslots of the first network  110  at the gateway device  102 , i.e. the duration of dwell intervals for the second network  120  at the gateway device  102  are determined independently of the length of timeslots for the first network  110 , the dwell intervals might be scheduled as shown in the timing diagram  500 B. According to timing diagram  500 B, time T1, the time point when the gateway device  102  switches from the first network  110  to the second network  120 , is near the end of dwell interval  1 . As a result, after the gateway device  102  switches to the second network  120  at time T1, the gateway device  102  needs to perform another channel switch at time T2 based on the hopping sequence of the second network  120  at the gateway device  102  when a new dwell interval starts. 
     If the duration of dwell intervals at the gateway device  102  for the second network  120  is coordinated with the length of timeslots for the first network  110 , the number of channel switches performed by the gateway device  102  can be reduced. For example, the duration of dwell intervals shown in timing diagram  500 C is coordinated with the length of timeslots shown in timing diagram  500 A in that the duration of dwell intervals is set to be multiple of the length of timeslots. This allows the gateway device  102  to schedule the time of the channel switch between adjacent dwell intervals to be aligned with time T1 when the gateway device  102  switches from the first network  110  to the second network  120 , such as at or before time T1. As a result, the number of channel switches by the gateway device  102  can be reduced compared with that for the uncoordinated second network  120 . Because switching channels can cause the gateway device  102  to be unavailable for a brief period of time, e.g. around 1 millisecond, reducing the number of channel switches can reduce the unavailable time period of the gateway device  102  thereby improving the performance of the heterogeneous network  100 . 
     It should be understood that the coordinated dwell intervals shown in the timing diagram  500 C is for illustration only and should not be construed as limiting. Various other ways of coordinating the duration of the dwell intervals for the second network  120  with the length of timeslots for the first network  110  can be utilized. 
     After switching to the second network  120 , the gateway device  102  listens in the current channel of the second network  120  for communications. If during the second part of timeslot  4 , the gateway device  102  receives a message from a node in the second network  120 , the gateway device  102  may stay in the second network  120  to continue to receive the message beyond the current timeslot  4  until the message is completely received. At the beginning of a next timeslot, such as timeslot  7  shown in  FIG.  5   , the gateway device  102  can switch back to the first network  110 , indicated by the upward dotted arrow in  FIG.  5   , and listen on the channel associated with timeslot  7  for communications as discussed above. 
     In some configurations, one of the networks in the heterogeneous network  100  is prioritized. For example, the first network  110  can be prioritized over the second network  120  to ensure the performance of the first network  110 , such as to meet the QoS requirements. As such, the gateway device  102  gives a higher priority to the communications in the first network  110  than the second network  120 . The gateway device  102  can be configured with one or more conditions for switching from the second network  120  back to the first network  110  regardless of the status of the communication in the second network  120 . For example, one condition can specify that the gateway device  102  switches to the first network  110  if the number of timeslots that the gateway device  102  continuously communicates in the second network has reached a threshold number N. Under this condition, the gateway device  102  may drop a message that is being received in the second network  120 , even if the entire message has not been received, and switch back to the first network  110  if N timeslots have passed after it switches to the second network  120 . 
     Another condition can include a priority message is to be received in the first network  110  in the current timeslot. To ensure the performance of the prioritized network, the first network  110  in this example, certain messages need to be transmitted and received with high reliability, such as the control or configuration messages from the root node  114  or the headend system  118 . These messages can be assigned with a high priority and labeled as priority messages. When a priority message is being transmitted in the first network  110 , the gateway device  102  needs to operate in the first network  110  so that it can receive the priority message. In some configurations, the priority messages are transmitted in a time slot designated for priority messages, such as a guaranteed time slot (GTS). A GTS assigned to a node allows the node to transmit messages at any time within that time slot without using mechanisms as such CSMA/CA. The GTSs are assigned to a node according to a schedule or following a message announcing the schedule of the GTS. In either case, the gateway device  102  can estimate the timeslot(s) when the priority messages will be transmitted. If, at the beginning of a timeslot, the gateway device  102  determines that a priority message may be transmitted in the current timeslot, it switches to the first network  110  regardless of the communication status in the second network  120 . If the message in the second network  120  has not been completely received, the gateway device  102  drops the message in the second network  120 . 
     In the above example, the first network  110  is prioritized over the second network  120 . Likewise, the second network  120  can be prioritized over the first network  110 . In that case, the gateway device  102  can be configured to switch from the first network  110  to the second network  120  when one or more conditions are met, such as the number of the timeslots that the gateway device  102  continuously communicates in the first network  110  has met a threshold number, or a time for a dwell interval designated for transmitting prioritized packets has arrived in the second network  120 . Once the condition is met, the gateway device  102  will switch to the second network  120  regardless of the communication status in the first network  110 . That is, if the receipt or transmission of a message in the first network  110  is not complete, the message will be dropped and the gateway device  102  will switch to the prioritized second network  120 . In this way, the quality or performance of the prioritized network can be maintained at a certain level by sacrificing the quality of the other network. 
     The conditions for switching the gateway device  102  to the prioritized network described above can be derived from rules identified based on the performance requirements of the prioritized network. These conditions are for illustration only, and should not be construed as limiting. Various other conditions can be established based on the various other rules and configured in the gateway device  102  to force the gateway device  102  to switch to the prioritized network to ensure the quality of the prioritized network. For example, rules can be established based on QoS requirements. For example, packets can have various QoS levels specified. A packet could have a QoS level requiring low latency that requires the packet to be transmitted as soon as possible. If the packet was a packet for the first network, the gateway device  102  could stop a CSMA transmission or reception in the second network in order to transmit the low latency packet on the first network. Similarly, if the packet was a packet for the second network, the gateway device  102  could stop the communication in the first network in order to transmit the packet on the second network. In another example, for a packet for the first network (or the second network) with a QoS level indicating a low drop probability, the gateway device  102  could, after some retries, decide to skip the second network time (or the first network time) until it has successfully transmitted the packet, to ensure the delivery of the packet. 
       FIG.  6    is a flowchart depicting a process  600  for a gateway device  102  communicating with nodes in a heterogeneous data network  100  where the gateway device  102  prioritizes the first network  110 , TSCH network over the second network  120 , the channel hopping CSMA network. At block  602 , the process  600  involves, at the beginning of a timeslot, switching to the channel of the timeslot of the TSCH protocol to operate in the first network  110 . The channel of the timeslot can be determined based on the hopping pattern for the TSCH protocol. The gateway device  102  operates in the first network  110  by listening in the first part of the timeslot for communications on the first network  110 . 
     At block  604 , the process  600  involves determining whether a message is received during the first part of the timeslot. If so, the process  600  proceeds to block  606  where the gateway device  102  completes the receipt of the message in the first network  110 . If the entire message cannot be received during the current timeslot, the gateway device  102  may continue to receive the message in the subsequent timeslot(s). After receiving the message is complete, the gateway device  102  can enter the next timeslot at block  602  as described above. 
     If, at block  604 , the gateway device  102  determines that no message is received in the first part of the timeslot, the process  600  proceeds to block  608  where the gateway device  102  determines the current channel of the second network  120  and switches to that channel to operate in the second network  120 . While operating in the second network  120 , the gateway device  102  determines, at block  610 , if a message or a portion of a message is to be received from the second network  120  beyond the current timeslot. For example, if the gateway device  102  receives a message from the second network  120  during the second part of the timeslot, but doesn&#39;t finish receiving the entire message, then the remaining portion of the message is to be received beyond the current timeslot. On the other hand, if no message is received or the gateway device  102  receives a complete message during the second part of the timeslot, then there is no message to be received beyond the timeslot. If no message is to be received beyond the timeslot, the gateway device  102  switches to the first network  110  and enters the next timeslot at block  602 . 
     If, at block  610 , the gateway device  102  determines that a message is to be received from the second network  120  beyond the timeslot, the process  600  proceeds to block  612  where the gateway device  102  continues to receive the message in the second network  120  in the subsequent timeslot(s). At block  614 , the process  600  involves determining whether the gateway device  102  should switch to the first network  110 . The determination can be made, for example, at the beginning of a new timeslot but before the message in the second network  120  is completely received. 
     Because the first network  110  is prioritized over the second network  120 , sometimes the gateway device  102  needs to switch to the first network  110  even if the message in the second network  120  has not been completely received to ensure the performance or quality of the first network  110 . For example, the gateway device  102  can determine that it should switch to first network  110  by determining whether one or more conditions have met, such as whether the number of timeslots that the gateway device  102  continuously operates on the second network  120  has reached a threshold number or whether a time slot is designated for a priority message from the first network  110 . If one of the conditions is met, the process  600  proceeds to block  616  where the gateway device  102  drops the message in the second network  120  and switches to the first network  110  at block  602 . If the gateway device  102  determines that it does not need to switch to the first network  110  at block  614 , the process  600  proceeds to block  618  where the gateway device  102  can receive the complete message in the second network  120  before switching to the first network  110  at block  602 . 
       FIG.  7    is a flowchart depicting a process  700  for communicating with nodes in the heterogeneous data network  100  where the gateway device  102  prioritizes the second network  120 , such as a channel hopping CSMA network, over the first network  110 , such as a TSCH network. At block  702 , the process  700  involves, at the beginning of a timeslot, switching to the channel of the timeslot of the TSCH protocol to operate in the first network  110 . The channel of the timeslot can be determined based on the hopping pattern for the TSCH protocol. The gateway device  102  operates in the first network  110  by listening in the first part of the timeslot for communications on the first network  110 . 
     At block  704 , the process  700  involves determining whether a message is received during the first part of the timeslot. If so, the process  700  proceeds to block  706  where the gateway device  102  continues to receive the message in the first network  110  during the second part of the timeslot. If the entire message cannot be received during the current timeslot, the gateway device  102  may continue to receive the message in the subsequent timeslot(s). At block  712 , the process  700  involves determining if the gateway device  102  should switch to the second network  120 . 
     Because the second network  120  is prioritized over the first network  110 , sometimes the gateway device  102  needs to switch to the second network  120  even if the message in the first network  110  has not been completely received to ensure the performance or quality of the second network  120 . For example, the gateway device  102  can determine that it should switch to the second network  120  by determining whether one or more conditions have met, such as whether the number of timeslots that the gateway device  102  continuously operates on the first network  110  has reached a threshold number or whether a priority message is to be received from the second network  120 . If one of the conditions is met, the process  700  proceeds to block  716  where the gateway device  102  drops the message in the first network  110  and switches to the second network  120  and further proceeds to block  718  where the gateway device  102  receives complete messages in the second network  120 . If the gateway device  102  determines that it does not need to switch to the second network  120  at block  712 , the process  700  proceeds to block  714  where the gateway device  102  can receive the complete message in the first network  110  and then starts another timeslot on the first network  110  at block  702 . 
     If, at block  704 , the gateway device  102  determines that no message is received during the first part of the timeslot, the process  700  proceeds to block  708 . At block  708 , the gateway device  102  determines the current channel of the second network  120  and switch to the second network  120 . The current channel of the second network  120  can be determined based on a hopping sequence of the second network  120 . At block  710 , the process  700  involves determining whether a message is received from the second network  120  during the second part of the timeslot. If no message is received, the process  700  proceeds to block  702  where the gateway device  102  switches to the first network  110  as discussed above. If the gateway device  102  receives a message during the second part of the timeslot, process  700  proceeds to block  718  where the gateway device  102  continues to receive the message from the second network  120  until the entire message is received. The gateway device  102  may switch to first network  110  at the beginning of the next timeslot in block  702 . 
     While the present subject matter has been described in detail with respect to specific aspects thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing, may readily produce alterations to, variations of, and equivalents to such aspects. Accordingly, it should be understood that the present disclosure has been presented for purposes of example rather than limitation and does not preclude inclusion of such modifications, variations, and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art.