US10595300B2 - Channel hopping sequence generation with variable channel width - Google Patents

Channel hopping sequence generation with variable channel width Download PDF

Info

Publication number
US10595300B2
US10595300B2 US16/009,930 US201816009930A US10595300B2 US 10595300 B2 US10595300 B2 US 10595300B2 US 201816009930 A US201816009930 A US 201816009930A US 10595300 B2 US10595300 B2 US 10595300B2
Authority
US
United States
Prior art keywords
channel
additional
hopping sequence
channels
transmission mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US16/009,930
Other versions
US20190387499A1 (en
Inventor
Justin Clifford Matthews
Matthew Donald Karlgaard
Govind Kharangate
Michael Sean Holcombe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Landis and Gyr Technology Inc
Original Assignee
Landis and Gyr Innovations Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Landis and Gyr Innovations Inc filed Critical Landis and Gyr Innovations Inc
Assigned to LANDIS+GYR INNOVATIONS, INC. reassignment LANDIS+GYR INNOVATIONS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KHARANGATE, Govind, KARLGAARD, MATTHEW DONALD, MATTHEWS, Justin Clifford, HOLCOMBE, Michael Sean
Priority to US16/009,930 priority Critical patent/US10595300B2/en
Priority to JP2020569871A priority patent/JP7155298B2/en
Priority to CN201980053626.XA priority patent/CN112534729B/en
Priority to CN202210955449.8A priority patent/CN115314076A/en
Priority to CA3103829A priority patent/CA3103829A1/en
Priority to EP19730645.9A priority patent/EP3808002B1/en
Priority to EP22152956.3A priority patent/EP4087146B1/en
Priority to PCT/US2019/034091 priority patent/WO2019240936A1/en
Publication of US20190387499A1 publication Critical patent/US20190387499A1/en
Priority to US16/751,526 priority patent/US11153850B2/en
Publication of US10595300B2 publication Critical patent/US10595300B2/en
Application granted granted Critical
Priority to US17/481,009 priority patent/US11770803B2/en
Assigned to LANDIS+GYR TECHNOLOGY, INC. reassignment LANDIS+GYR TECHNOLOGY, INC. MERGER (SEE DOCUMENT FOR DETAILS). Assignors: LANDIS+GYR INNOVATIONS, INC.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/02Selection of wireless resources by user or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/713Spread spectrum techniques using frequency hopping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/713Spread spectrum techniques using frequency hopping
    • H04B1/7136Arrangements for generation of hop frequencies, e.g. using a bank of frequency sources, using continuous tuning or using a transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0446Resources in time domain, e.g. slots or frames
    • H04W72/085
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/54Allocation or scheduling criteria for wireless resources based on quality criteria
    • H04W72/542Allocation or scheduling criteria for wireless resources based on quality criteria using measured or perceived quality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/713Frequency hopping
    • H04B2201/71384Look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • This disclosure relates generally to the field of wireless data transmission, and more specifically relates to determining a channel hopping sequence for multiple rates of data transmission.
  • Components in a wireless mesh network may exchange data via at least one radio frequency (RF).
  • a component on the mesh network may transmit data to another component via a channel that includes a range of one or more frequencies, or a channel “width.”
  • the component may select an additional channel, or “hop” to the additional channel.
  • the mesh network component may hop to the additional channel if the component is transmitting data.
  • another component on the mesh network may hop to the additional channel, and begin transmitting data via the additional channel.
  • the mesh network may experience a “collision” if multiple components hop to a particular channel and begin transmitting data. For example, the data on the particular channel may become corrupted or unintelligible to a receiving device, based on the collision.
  • the wireless mesh network may generate a channel hopping sequence.
  • the hopping sequence may indicate an order in which components on the mesh network select channels for data transmission. In some cases, adherence to the hopping sequence may allow multiple components on the mesh network to transmit data using respective multiple channels without causing collisions.
  • the RF mesh network may determine a channel hopping sequence based on a technical standard related to operation of a wireless personal area network. However, the channel hopping sequence may be determined based on a given number of channels each having a given width. In such cases, a component on the mesh network may transmit data based on the width of the next available channel in the hopping sequence. The component may be prohibited from using adjacent channels (e.g., channels with adjacent ranges of frequencies) to prevent potential collisions, even if the adjacent channels are not occupied by other transmission from other components.
  • adjacent channels e.g., channels with adjacent ranges of frequencies
  • a sequence generation module may receive an indication of a group of channels, and an indication of a number from a pseudo-random number generator or a pseudo-random sequence of numbers.
  • the sequence generation module may assign a first channel, from the group of channels, to a hopping sequence at a first position. The assignment may be based on the number from the pseudo-random number generator or the pseudo-random sequence.
  • the sequence generation module may select an additional channel based on the first channel, such as an additional channel that is adjacent to the first channel. In some cases, frequencies included in a width of the first channel may be available at the first time slot for a first transmission mode.
  • frequencies included in a combined width of the first and additional channels may be available at the first position for a second transmission mode.
  • the sequence generation module may determine a whitelist subset of the group of channels, where the whitelist subset omits the first and additional channels.
  • the sequence generation module may assign a second channel, from the whitelist subset, to the hopping sequence at a second position, based on another number from the pseudo-random number generator or in the pseudo-random sequence.
  • FIG. 1 is a block diagram depicting an example of a mesh network including a collector node and metering nodes
  • FIG. 2 is a diagram depicting an example of a conventional low-bandwidth transmitted signal
  • FIG. 3 is a diagram depicting an example of a mixed-signal environment
  • FIG. 4 is a diagram depicting a mixed-signal environment in which a collision event occurs
  • FIG. 5 is a flow chart depicting an example of a process for generating a hopping sequence
  • FIG. 6 is a flow chart depicting an example of a process 600 for updating a whitelist subset of channels from a group of channels in a channel hopping sequence
  • FIG. 7 is a diagram depicting a mixed signal environment according to aspects of the present disclosure.
  • FIG. 8 is a diagram depicting an example of a reserved transmission block for transmission of a high- or low-bandwidth signal
  • FIG. 9 is a diagram depicting an example of a computing system for generating a channel hopping sequence.
  • the subset of channels may omit a channel that is assigned to the hopping sequence.
  • the subset of channels may omit another channel that is adjacent to the assigned channel in the hopping sequence.
  • the generated hopping sequence may include, at a first position, an assigned channel that is available for transmissions on a mesh network.
  • An additional channel may be selected based on the assigned channel, such as an additional channel that is adjacent to the assigned channel.
  • a blacklist subset that includes the assigned and additional channels may be determined.
  • a whitelist subset that omits the assigned and additional channels may be determined.
  • a second channel may be assigned to the hopping sequence at a second position, such as a second channel selected from the whitelist subset.
  • a node on the mesh network may select a channel based on the hopping sequence. For example, the node may select a first channel at a first time slot, as indicated by a first position in the hopping sequence, to use for a transmission of data.
  • the node may determine, such as based on a link quality indicator, that a signal strength between the node and a recipient (e.g., another node on the mesh network) is above a threshold signal level.
  • the link quality is determined by a link quality assessment module. Responsive to determining that the signal strength is above the threshold signal level, the node may select a high-bandwidth transmission mode, and transmit the data via the first channel and an additional channel adjacent to the first channel.
  • the node may transmit the data using a combination of the frequencies included in the first channel and the additional channel.
  • an additional node may select a second channel at a second time slot, as indicated by a second position in the hopping sequence.
  • the hopping sequence was generated based on a whitelist that omitted the first and additional channels
  • data transmitted via first and additional channels may have a reduced likelihood of collisions with data transmitted via the second channel.
  • FIG. 1 is a block diagram depicting an example of a mesh network 100 including a collector node and metering nodes communicatively coupled to a head-end system.
  • a head-end system 101 may have bidirectional communication with a collector, such as collector 102 .
  • collector 102 may communicate to head-end system 101 via one or more networks, such as a private network, a local area network, a wide area network, the Internet, or any other suitable network.
  • the collector 102 may communicate with multiple metering nodes, such as metering nodes 103 a , 103 b , 103 c , and 103 d (collectively referred to herein as metering nodes 103 ).
  • the collector 102 may receive data describing utility metering information from one or more of the metering nodes 103 (e.g., consumption information), or from the head-end system 101 (e.g., pricing information). In addition, the collector 102 may provide data to the head-end system 101 , to one or more of the metering nodes 103 .
  • data describing utility metering information from one or more of the metering nodes 103 (e.g., consumption information), or from the head-end system 101 (e.g., pricing information).
  • the collector 102 may provide data to the head-end system 101 , to one or more of the metering nodes 103 .
  • one or more of the metering nodes 103 may communicate with one or more of the other metering nodes.
  • the metering node 103 a may communicate with the metering node 103 b .
  • Additional metering nodes may or may not communicate with metering node 103 a .
  • the metering node 103 c may communicate with the metering node 103 d , but not with metering node 103 a .
  • the collector 102 may receive communications from one or more of the metering nodes 103 .
  • metering node 103 a may communicate to the collector 102 information from metering node 103 a and metering node 103 b .
  • a configuration of the mesh network 100 may change, such as based on a weak or strong signal strength detected from the collector 102 or one or more of the metering nodes 103 .
  • metering node 103 b may establish a communication with metering node 103 c .
  • the signal strength between nodes may be determined by a link quality assessment module that is included in the metering node 103 b .
  • Additional signal strengths between nodes may be determined by addition link quality assessment modules, included respectively in one or more of the metering nodes 103 , the collector 102 , or the head-end system 101 .
  • nodes on the mesh network 100 may transmit data via channels, based on a channel hopping sequence.
  • one or more of the nodes on the mesh network 100 generate the channel hopping sequence, such as via a sequence generation module that is included in one or more of the metering nodes 103 , to collector 102 , or the head-end system 101 .
  • the sequence generation module may generate the channel hopping sequence based on information received from a pseudo-random number generator, such as a pseudo-random number or sequence of pseudo-random numbers.
  • the sequence generation module may assign at least the next channel in the generated sequence, or it may assign multiple channels in the sequence.
  • a node on the mesh network 100 may select a communication channel based on the hopping sequence.
  • metering node 103 a may select a first channel for transmitting data to the collector 102 .
  • the metering node 103 a may select the channel based in part on a signal strength between the metering node 103 a and the collector 102 .
  • each node of the mesh network 100 may store data indicating a list of communication channels capable of transmitting data, such as a channel list indicating communication channels, center frequencies, or frequency ranges associated with the channels.
  • FIG. 2 is a diagram depicting an example of a transmission environment 200 in which a signal having a channel width and a transmission time may be transmitted.
  • the transmission environment 200 may have multiple timeslots 201 a - 201 s , collectively referred to herein as timeslots 201 , and multiple communication channels 202 a - 202 i , collectively referred to herein as communication channels 202 .
  • Each of the channels 202 may include one or both of a center frequency or a range of frequencies.
  • the communication channel 202 a may include a center frequency of about 902.2 MHz, or a range of frequencies from about 902 MHz to about 902.4 MHz.
  • a communication such as a group of one or more data packets, is transmitted via one or more of the frequencies included in the communication channel 202 a .
  • the communication may be transmitted via a signal that is carried on one or more of the channel frequencies.
  • the transmission environment 200 may be associated with a hopping sequence, such as a frequency hopping spread spectrum (FHSS) environment.
  • FHSS is a method of transmitting radio communications by switching carrier frequencies among multiple channels using a pseudo-random number (or pseudo-random sequence of numbers), that is known by both the transmitting node and the receiving node.
  • the FHSS environment, or communications transmitted in the FHSS environment may conform to local or global criteria.
  • the FHSS environment and/or transmitted communications may conform to standards set by the Federal Communications Commission (FCC), such as C.F.R. 47 ⁇ 15.247.
  • FCC Federal Communications Commission
  • a low-speed communication 203 may be transmitted on a communication channel 202 d during time slots 201 a - 201 g .
  • the low-speed communication 203 may have a bandwidth.
  • the bandwidth may be associated with a channel width (e.g., of channel 202 d ) and a transmission time associated with the time slots 201 required to transmit the low-speed communication 203 .
  • low-speed communication 203 is illustrated as being transmitted during seven of the time slots 201 , such as the time slots 201 - 201 g .
  • other low-speed communications could require a larger or smaller number of the time slots 201 .
  • FIG. 3 is a diagram depicting an example of a mixed-signal transmission environment 300 , in which communications associated with various bandwidths may be transmitted.
  • the mixed-signal environment 300 may have multiple time slots 301 a - 301 s , collectively referred to herein as time slots 301 , and multiple communication channels 302 a - 302 i , collectively referred to herein as communication channels 302 .
  • the mixed-signal environment 300 could be a transmission environment with at least two signals with different transmission channel widths.
  • the mixed-signal transmission environment could include a frequency hopping spread spectrum environment with a total bandwidth of about 26 Megahertz (MHz) of operating bandwidth and about 65 channels. Other combinations of total bandwidth and number of channels are possible.
  • the mixed-signal transmission environment is capable of transmission of a low-speed communication 303 and high-speed communication 304 .
  • low-speed communication 303 may be transmitted via a low-power signal capable of being transmitted long distances, such as a signal characterized by a channel width of about 400 kilohertz (kHz), a minimum datarate of about 50 kilobits per second (kbps), a maximum physical layer (PHY) payload of about 1500 bytes, and a transmission time of about seven of the time slots 301 (e.g., time slots 301 a - 301 g ).
  • kHz kilohertz
  • PHY maximum physical layer
  • the low-power signal may be capable of being transmitted long distances, such that the low-speed communication 303 may be received by a node that is relatively far away.
  • a channel width of 400 kHz may be represented by a particular one of the communication channels 302 , such as communication channel 302 d including a center frequency of about 903.4 MHz or range of frequencies from about 903.2 MHz to about 903.6 MHz.
  • the high-speed communication 304 may be transmitted via a high-power signal capable of being transmitted intermediate distances, such as a signal characterized by a channel width of about 1200 kilohertz (kHz), a minimum datarate of about 400 kilobits per second (kbps), a maximum physical layer (PHY) payload of about 1500 bytes, and a transmission time of about two of the time slots 301 (e.g., time slots 301 d - 301 e ).
  • a channel width of 1200 kHz may be represented by adjacent 400 kHz channels, such as the adjacent channels 302 f , 302 g , and 302 h .
  • Other combinations of signal channel widths, datarates, PHY payloads, and transmission times are, however, possible.
  • communications that are transmitted in the mixed-signal transmission environment 300 are transmitted at a bandwidth that is based on an available number of the communication channels 302 .
  • the low-speed communication 303 may be transmitted via the channel 302 d at a relatively low bandwidth.
  • the high-speed communication 304 may be transmitted via the combined channels 302 f - 302 h at a relatively high bandwidth.
  • the maximum datarate of a channel may be calculated using the Shannon Theorem, which indicates that a maximum datarate is dependent on channel bandwidth (in Hz) and a logarithm related to the signal to noise ratio.
  • a higher channel bandwidth (e.g., a greater range of frequencies) may generally enable a higher maximum datarate to be transmitted via the channel.
  • a lower channel bandwidth (e.g., a narrower range of frequencies) may generally enable a lower maximum datarate to be transmitted via the channel.
  • a communication that is transmitted via multiple adjacent channels may be transmitted at a higher datarate, such as a datarate that is based on the combined frequency range of the adjacent channels.
  • FIG. 4 is a diagram depicting an example of a mixed-signal transmission environment 400 , in which communications associated with various bandwidths may be transmitted.
  • the mixed-signal environment 400 may have multiple time slots 401 a - 401 s , collectively referred to herein as time slots 401 , and multiple communication channels 402 a - 402 i , collectively referred to herein as communication channels 402 .
  • the mixed-signal environment 400 could include at least two signals with different communication channel widths.
  • the mixed-signal environment 400 can also include an FHSS generated based on a pseudo-random sequence.
  • communications transmitted in the mixed-signal environment 400 may be transmitted according to a channel hopping sequence that is determined for the mixed-signal environment 400 .
  • the channel hopping sequence may be determined based on multiple types of communications or transmission modes.
  • low-speed communication 404 may be a first communication transmitted in the transmission environment 400 .
  • a first position in the channel hopping sequence may be associated with one or more of a time slot 401 a or a channel 402 f .
  • a first node such as a metering node included in a mesh network, may begin communicating according to the first position in the channel hopping sequence, such as by transmitting via the first channel 402 f at time slot 401 a .
  • an additional communication is not begun (e.g., no nodes in the mesh network begin any additional communications).
  • high-speed communication 403 may be a second communication transmitted in the transmission environment 400 .
  • the high-speed communication 403 may be transmitted at a higher bandwidth via additional channels, such as the channels 402 b , 402 c , and 402 d .
  • a second position in the channel hopping sequence may be associated with one or more of a second time slot 401 c , a channel 402 c , and one or more additional channels 402 d or 402 b .
  • the hopping sequence may indicate at least the center channel 402 c .
  • a second node may begin communicating according to the second position in the channel hopping sequence, such as by transmitting the high-speed communication 403 via the channel 402 c .
  • the second node may access channels adjacent to the indicated center channel 402 c , such as channels 402 b and 402 d , for transmission of the high-speed communication 403 .
  • an additional node begins transmitting high-speed communication 405 .
  • the hopping sequence includes an additional position indicating that channel 402 g is available at time slot 401 e .
  • the additional node may access the adjacent channels 402 f and 402 h for transmission of the high-speed communication 405 .
  • the resulting access of the adjacent channels creates collision event 406 .
  • a collision event can be where the low-speed communication 404 and the high-speed communication 405 are transmitted at one or more same time slots on one or more same channels (e.g., the time slots 401 e and 401 f on channel 402 f ).
  • it can be where multiple high-speed communications or multiple low-speed communications are transmitted at a same time slot on a same channel.
  • the result of a collision event is communication loss at a receiving node.
  • a component that is transmitting on a particular channel may inadvertently transmit on an adjacent channel. For example, if the component is transmitting at a relatively higher power, the transmission may be detectable at frequencies that are not included in the particular channel, but which are nearby (i.e., in the frequency spectrum) to frequencies in the particular channel. Although the adjacent channel is not assigned to the component for the transmission, power related to the transmission may be detectable on one or more adjacent channels (e.g., “power leakage”). Such “leakage” of power related to the transmission may cause interference on the adjacent channels.
  • assigning a variety of available channels to the hopping sequence from across the spectrum of available channels may improve transmissions on the mesh network. For example, spreading the hopping sequence across the available spectrum may decrease a likelihood of collision events, such as a collision event on an adjacent channel used for separate communications by separate network components. In addition, spreading the hopping sequence across the available spectrum may decrease a likelihood of interference, such as interference from power leakage onto frequencies in a channel that is adjacent to an assigned channel.
  • a guard channel may be selected from the communication channels 402 , such as to provide a buffer between a particular communication channel (or group of channels) and other communication channels.
  • the channel 402 e may be selected as a guard channel 402 e adjacent to communication channel 402 f
  • the guard channel 402 e may be reserved to provide a buffer between communication channel 402 f and other channels, such as communication channel 402 d .
  • the guard channel 402 e may include a range of frequencies that are adjacent to the frequency range of the communication channel 402 f , but on which little or no data is transmitted.
  • a guard channel may be reserved for a time duration, such as a duration based on time slots associated with the communication channel being guarded.
  • the guard channel 402 e may be reserved for time slots 401 a - 401 g , based on a duration of the low-speed communication 404 transmitted on the communication channel 402 f
  • a guard channel may provide a buffer from other communication channels, such that transmissions on the other communication channels are unlikely to interfere with transmissions on the particular communication channel.
  • channels may be included in a blacklist or omitted from a whitelist in addition to the channel selected for the hopping sequence.
  • the channel hopping sequence may be generated based on at least one pseudo-random number corresponding to at least the next channel, such that the channel is assigned to a particular position in the hopping sequence. Additional channels, such as guard channels or adjacent channels associated with various transmission modes, may be also associated with the particular position.
  • the blacklist may be updated to include the assigned channel and the additional channels, or the whitelist may be updated to omit the assigned channel and the additional channels.
  • the blacklist may include, for example, a data object that includes a list (or other indication) of channels that are not available for assignment to a particular position in the hopping sequence.
  • the whitelist may include, for example, a data object that includes a list (or other indication) of channels that are available for assignment to the particular position.
  • FIG. 5 is a flow chart depicting an example of a process 500 for creating a multi-bandwidth transmission environment that minimizes signal collisions, by determining a blacklist subset of channels and a whitelist subset of channels.
  • a computing device executing a sequence generation module implements operations described in FIG. 5 , by executing suitable program code.
  • the process 500 is described with reference to the examples depicted in FIGS. 1-4 . Other implementations, however, are possible.
  • the process 500 involves receiving an indication of a group of channels, each channel including a respective frequency range available for transmission on a mesh network, such as, for example, mesh network 100 .
  • the mesh network may communicate using a frequency band defined by IEEE 802.15.4 where the total available bandwidth may be defined by authorized licensed or unlicensed communication bands.
  • an authorized communication band may be bounded by 902 MHz and 928 MHz.
  • the total available bandwidth may be 26 MHz, and the number of channels may be defined by the quotient of total available bandwidth and desired channel width.
  • the desired channel width may be designed to support a desired datarate, such as described by the Shannon Theorem.
  • the process 500 involves receiving an indication of a pseudo-random number, for example a pseudo-random number that may be used in a frequency hopping spread spectrum environment.
  • the pseudo-random number may be generated by a 9-bit pseudo-random number (PN9) generator.
  • PN9 pseudo-random number
  • other random or pseudo-random number generators may be used.
  • operations related to block 504 may be performed at various points in the process 500 . For example, a first number from the pseudo-random number generator may be received subsequent to operations related to block 502 , and a second number from the pseudo-random number generator may be received subsequent to operations related to another block, such as one of blocks 510 or 512 .
  • the process 500 involves assigning a first channel, from the group of channels, to the hopping sequence at a first position, based on a first number from the pseudo-random number generator.
  • the first position may be associated with the first channel, or a first time slot, or both, based on the first number from the PN9 generator at block 504 .
  • the group of channels may be a list of all available channels for communication, such as available channels as received at block 502 .
  • the process 500 involves selecting an additional channel from the group of channels, based on the first channel, such as an additional channel that is adjacent to the first channel.
  • the adjacent channel may have a range of frequencies (e.g., about 902.8 MHz to about 903.2 MHz) that are contiguous with the range of frequencies of the first channel (e.g., about 903.2 MHz to about 903.6 MHz), such that the combined width of the first and additional channel includes a range of adjacent frequencies (e.g., about 902.8 MHz to about 903.6 MHz).
  • selecting an additional channel from the group of channels may include selecting multiple additional channels, for example, a guard channel adjacent to the selected additional channel.
  • guard channel is a channel reserved to provide a buffer to the communication channel (or channels).
  • an additional channel may be selected from the group of channels as the next higher adjacent channel to the first channel and a guard channel may be the next higher adjacent channel to the additional channel.
  • multiple additional channels may be selected based on the channel width desired for a high-speed communication or a low-speed communication.
  • the one or more additional channels may be associated with the first position in the hopping sequence.
  • the process 500 involves determining a blacklist subset of the group of channels, wherein the blacklist subset includes the first channel and additional channel, such as the first channel assigned at block 506 , and the one or more additional channels selected at block 508 .
  • a blacklist subset of channels includes previously assigned channels, such as the first channel assigned and one or more selected additional channels. For example, if a first channel, such as channel 402 f is assigned and an additional channel 402 g is selected from the communication channels 402 , the blacklist subset of the group of channels may include channels 402 f and 402 g . In some cases, other channels may also be added to the blacklist subset based on proximity to the assigned and selected channels, for example a guard channel. In some aspects, operations related to the block 510 may be omitted from the process 500 .
  • the process 500 involves determining a whitelist subset of the group of channels, wherein the whitelist subset omits the first channel and the additional channel.
  • the whitelist subset may be an inverse set of the blacklist subset. For example, if the first channel and the additional channel are omitted from the whitelist subset, the first channel and the additional channel may be included in the blacklist subset.
  • the whitelist subset may include all available communication channels in the group of channels excepting the first channel and the additional channel.
  • the whitelist subset may include all available channels of the group of channels excepting channels that are members of the blacklist subset.
  • operations related to the block 512 may be omitted from the process 500 .
  • the process 500 involves assigning a second channel, from the whitelist subset to the hopping sequence at a second position, based on a second number from the pseudo-random number generator.
  • the whitelist subset may include all available channels of the group of channels omitting previously assigned channels, which may be members of the blacklist subset.
  • a second channel is assigned to the hopping sequence from a pseudo-random selection of a channel in the whitelist subset.
  • the second channel, or a second time slot, or both may be assigned to the second time slot.
  • a high-speed communication or low-speed communication can be initiated on the second channel at the second time slot.
  • the second position may be associated with the second channel, or the second time slot, or both, based on the second number from the pseudo-random number generator at block 504 .
  • channels in the whitelist may be weighted to adjust a probability of being selected (or not selected). For example, if the first channel and the additional channel(s) are included in the blacklist, channels in the whitelist subset may be weighted based on how close their frequencies are to the blacklisted channels. The weighting may, for example, adjust a probability of a channel being selected as a next channel in the hopping sequence. Channels that include frequencies nearby (on the frequency spectrum) to frequencies in the blacklisted channels may be weighted to have a lower probability of selection, and channels with frequencies distant from the blacklisted channels may be weighted to have a higher probability of selection. In some cases, weighting the probability of selection may improve a spread of the hopping sequence across the available spectrum. In addition, weighting the probability of selection may decrease a likelihood of collision events or other interference occurring in the mesh network.
  • a channel hopping sequence may be determined during use of a multi-bandwidth transmission environment, such as by assigning a channel to a position in the hopping sequence based on one or more communications currently being transmitted in the environment.
  • the channel may be assigned to the hopping sequence based on a determination that the channel is not in use by the one or more current communications (including high-bandwidth and low-bandwidth current communications).
  • Such implementations are deemed to be within the scope of the disclosed innovations.
  • a channel hopping sequence may be generated prior to use of the sequence.
  • a channel hopping sequence may be generated for a mesh network (e.g., by a node on the network, by a head-end system) for the mesh network to use for subsequent communications.
  • a channel hopping sequence may be generated during use of the sequence, such as by assigning the next channel in the hopping sequence at each time slot. For example, during the first time slot the second channel in the sequence could be assigned to the second time slot, and during the second time slot the third channel in the sequence could be assigned to the third time slot.
  • a channel hopping sequence may be repeated in part or in whole. For example, once a time slot associated with a final position in a repeating hopping sequence passes, the next time slot may be associated with the first position in the repeating hopping sequence.
  • one or more final channels (e.g., in positions at the end of the repeating sequence) are assigned based on one or more of the initial channels (e.g., at the beginning positions).
  • a node generating a hopping sequence may determine the final positions in the sequence based on a blacklist that includes channels assigned to the initial positions. Using a blacklist with the initial assigned channels may reduce the likelihood of a particular channel being assigned to both the final position and the initial position in the hopping sequence.
  • one or more initial channels are assigned based on one or more of the final channels in the sequence. For example, the node generating the hopping sequence may determine the initial positions based on a blacklist that includes channels assigned to the final positions.
  • a subsequent channel hopping sequence may be generated, for use after completion of a previous hopping sequence. For example, once the time slot associated with the final position in the previous hopping sequence passes, the subsequent hopping sequence may be generated based on additional data received from the pseudo-random number generator. The subsequent hopping sequence may be generated based on the blacklist or whitelist, or both, from the previous hopping sequence (e.g., the blacklist or whitelist may “wrap” with the hopping sequence).
  • the first position in the additional hopping sequence may be assigned based on the whitelist of available channels (e.g., omitting the particular channel).
  • a first channel may be omitted from the whitelist, or included in the blacklist, for a first time duration associated with a first transmission mode, for example, a low-speed transmission mode.
  • the whitelist or blacklist
  • the whitelist may be updated to include (or omit) the first channel, such that the first channel is available to be assigned to the hopping sequence at an additional position that is after the first time duration.
  • FIG. 3 illustrates that channel 302 d may be excluded from the whitelist (or included on the blacklist) for a time duration of seven time slots, which corresponds to up to seven positions in the hopping sequence.
  • additional channels may be omitted from the whitelist, or included in the blacklist, for a second time duration associated with a second transmission mode, for example, a high-speed transmission mode.
  • the whitelist (or blacklist) may be modified to include (or omit) the additional channels, such that the additional channels may be reassigned to the hopping sequence at an additional position that is after the second time duration.
  • the whitelist may be updated to include the additional channels and omit the first channel, such as if the additional position is subsequent to the second time duration and prior to the first time duration. For example, FIG.
  • channel 302 d may be added to the whitelist after a time duration of seven time slots
  • channel 302 f may be added to the whitelist after a time duration of two time slots.
  • the blacklist may be updated to omit the additional channels and include the first channel.
  • Other combinations of transmission modes, channel assignments, and time durations are possible, including channels associated with multiple transmission modes, and longer or shorter time durations.
  • FIG. 6 is a flow chart depicting an example of a process 600 for modifying a whitelist of channels, such as a whitelist associated with a channel hopping sequence.
  • a computing device executing a sequence generation module implements operations described in FIG. 6 , by executing suitable program code.
  • the process 600 is described with reference to the examples depicted in FIGS. 1-5 and 7-9 . Other implementations, however, are possible.
  • the whitelist, blacklist, or both may be updated based on time durations associated with various modes of transmission for a communication, as described elsewhere herein.
  • the process 600 involves receiving a channel hopping sequence, such as a channel hopping sequence generated as described in regards to FIG. 5 .
  • the channel hopping sequence is associated with a whitelist, such as a whitelist subset of channels available for use in the channel hopping sequence.
  • Channels included in the hopping sequence may be associated with respective time slots or positions.
  • the hopping sequence may include a first channel associated with a first time slot, where the first channel is at a first position in the hopping sequence.
  • the first channel may be assigned based on a first pseudo-random number from a pseudo-random number generator.
  • the channel hopping sequence may be based on an output (or a modified output) of a PN9 generator.
  • a PN9 generator may generate a pseudo-random number or sequence of pseudo-random numbers that may be modified based on communications characterized by a channel width and transmission time, such as described elsewhere herein.
  • the whitelist associated with the channel hopping sequence may omit the first channel.
  • the process 600 involves calculating a reserved time duration of the first channel associated with the first time slot.
  • the reserved time duration is based on a sum of the first time slot and a quantity of time slots associated with a transmission mode, or with a communication that is transmitted via the first channel.
  • the low-speed communication 303 may be transmitted via the communication channel 302 d , as described in regards to FIG. 3 .
  • the low-speed communication 303 is transmitted during a quantity of time slots 301 a - 301 g .
  • the communication channel 302 d may have a reserved time duration of seven time slots, based on the time slots 301 a - 301 g associated with the low-speed communication 303 .
  • the process 600 involves assigning a second channel to the hopping sequence at a second position, the second channel associated with a second time slot.
  • the second channel is assigned to the hopping sequence based on an additional output (or modified output) from the PN9 pseudo-random number generator, such as an additional pseudo-random number.
  • the process 600 involves comparing the reserved time duration (e.g., of the first channel) with the second time slot associated with the second channel.
  • the second channel may be associated with time slot 301 j .
  • Operations related to block 606 may compare the reserved time duration of the communication channel 302 d (e.g., time slots 301 a - 301 g associated with the low-speed communication 303 ) to the second time slot 301 j.
  • the process 600 involves determining whether the second time slot is subsequent to the reserved time duration of the first channel. For example, a determination may be made whether the second time slot 301 j is subsequent to a final time slot (e.g., time slot 301 g ) that is associated with the low-speed communication 303 .
  • a final time slot e.g., time slot 301 g
  • process 600 may proceed to another block, such as block 602 or 604 .
  • a whitelist that omits the first channel such as communication channel 302 d , may remain unmodified, such that the first channel remains omitted from the whitelist.
  • process 600 may proceed to another block, such as block 610 .
  • the process 600 involves modifying the whitelist associated with the channel hopping sequence.
  • the whitelist may be updated to include the first channel. For example, responsive to determining that the second time slot 301 j is subsequent to the reserved time duration of the communication channel 302 d (e.g., subsequent to time slot 301 g ), a whitelist associated with a channel hopping sequence of the mixed-signal transmission environment 300 may be modified, such as to include the communication channel 302 d.
  • operations related to the process 600 may release communication channels that were assigned to a hopping sequence at previous positions, such as to reuse the released communication channels in additional positions, or for additional communications. Furthermore, operations related to the process 600 may release various channels that are assigned to a particular position based on respective transmission modes that are associated with respective ones of the various channels. For example, in a hopping sequence associated with a mixed-signal transmission environment 700 , as described in regards to FIG. 7 , channels 702 c , 702 d , and 702 e may each be assigned to the hopping sequence at a first position at a first time slot (e.g., time slot 701 a ).
  • the channel 702 d may be associated with a first transmission mode (e.g., a low-bandwidth mode), and may have a reserved time duration of seven time slots (e.g., time slots 701 a - 701 g ).
  • the channels 702 c and 702 e may each be associated with a second transmission mode (e.g., a high-bandwidth mode), and may have a reserved time duration of two time slots (e.g., time slots 701 a - 701 b ).
  • a whitelist (or blacklist) associated with the mixed-signal transmission environment 700 may be updated based on the respective transmission modes associated with various channels.
  • a sequence generation module implementing operations related to process 600 may assign at least channel 702 f to a second position in the hopping sequence, such as at time slot 701 g .
  • the sequence generation module may determine that the second time slot of the second position (e.g., time slot 701 g ) is subsequent to the time slot of the first position (e.g., time slot 701 a ).
  • the sequence generation module may compare the reserved time durations of each of channels 702 c , 702 d , and 702 e to the second time slot.
  • the whitelist for environment 700 may be modified to include channels 702 c and 702 e and omit (or continue to omit) channel 702 d .
  • channels associated with a particular transmission mode e.g., a high-bandwidth mode
  • channels associated with another transmission mode e.g., a low-bandwidth mode
  • updating the whitelist may allow a sequence generation module to update a blacklist.
  • a blacklist associated with a channel hopping sequence may indicate that one or more channels are unavailable for assignment to the channel hopping sequence (e.g., are already assigned, or might cause collisions with transmission on other channels already assigned).
  • a blacklist is determined as an inverse of a whitelist.
  • the whitelist may be determined as an inverse of the blacklist.
  • both the whitelist and the blacklist may be determined based on the channel hopping sequence (e.g., based on channels already assigned).
  • FIG. 7 is a diagram depicting a mixed-signal transmission environment 700 , according to the methods of the present disclosure.
  • mixed-signal environment 700 may have multiple time slots 701 a - 701 s , collectively referred to herein as time slots 701 , and multiple communication channels 702 a - 702 i , collectively referred to herein as communication channels 702 .
  • the mixed-signal environment 700 could include at least two signals with different communication channel widths.
  • the mixed-signal environment 700 can also allow implementation of FHSS, such as a channel hopping sequence generated based on a pseudo-random sequence. In some cases, certain aspects of FIG. 7 may be better understood when considered in view of FIG. 8 .
  • one or more nodes included in a mesh network may transmit communications in the mixed-signal environment 700 based on the generated channel hopping sequence.
  • a node communication 703 may be initiated at time slot 701 a .
  • the channel hopping sequence includes channel 702 d at time slot 701 a .
  • the node communication 703 can be transmitted in a low-bandwidth mode or a high-bandwidth mode.
  • the transmission mode may be selected based on a link quality indicator or other factors, such as an indicator determined by a link quality assessment module. Additional aspects of the transmission mode are discussed related to FIG. 8 .
  • multiple node communications such as node communications 703 , 704 , 705 , 706 , and 707 may be respectively transmitted in a high-bandwidth or low-bandwidth mode.
  • node communication 703 may be transmitted in a low-bandwidth mode
  • node communication 704 may be transmitted in a high-bandwidth mode.
  • the particular channels may be removed from the channel hopping sequence for the duration of the communication.
  • the channels associated with the communication 703 may be removed from the hopping sequence for the duration of the transmission (e.g., during time slots 701 a - 701 b for a high-bandwidth communication, during time slots 701 a - 701 g for a low-bandwidth communication).
  • a node may transmit a communication on a channel indicated by the channel hopping sequence, during a reserved time associated with the indicated channel. For example, a node may transmit the node communication 703 as a high-bandwidth communication on channels 702 c - 702 e during time slots 701 a - 701 b . In addition or alternative aspects, the node may transmit the node communication 703 as a low-bandwidth communication on channel 701 d during time slots 701 a - 701 g . In one aspect, the channel reservation may expire at or after the maximum transmission time that is reserved for the transmission mode.
  • the node communication 704 may be transmitted on channel 702 e , which was reserved by node communication 703 for high-bandwidth communication (e.g., during time slots 701 a - 701 b ). Conversely, node communication 704 might not be transmitted on channel 702 d , which is reserved for node communication 703 for low-bandwidth communication (e.g., during the time slot 701 g ).
  • guard channels may be used, and could include an additional channel reservation adjacent to the high- or low-bandwidth communication channels as described herein.
  • a guard channel can be implemented on the a higher adjacent channel (e.g., having adjacent frequencies higher than the communication channel), a lower adjacent channel (e.g., having adjacent frequencies lower than the communication channel), or both.
  • FIG. 8 is a diagram depicting an example of a reserved transmission block for transmission of a high- or low-bandwidth signal used for transmitting communications in mixed-signal transmission environment 800 .
  • the mixed-signal transmission environment 800 has multiple time slots 801 a - 801 s , collectively referred to as time slots 801 , and multiple communication channels 802 a - 802 i , collectively referred to as communication channels 802 .
  • the mixed-signal environment 800 is suitable for multiple communications carried on transmission signals of different channel widths. While FIG. 8 is described in regards to a single communication transmitted between two nodes, it should be appreciated that such aspects may also apply to multiple communications transmitted between multiple nodes.
  • a metering node may have data available for transmission to the collector node, such as described in relation to FIG. 1 .
  • the metering node is capable of transmitting in a low-bandwidth mode or high-bandwidth mode.
  • the metering node selects the low-bandwidth mode or high-bandwidth mode based at least in part on a link quality indicator.
  • a link quality indicator could be a signal strength metric, or another metric which relates to the capability of a transmitting node and a receiving node to have a successful communication transmission.
  • the transmitting node may transmit using high-bandwidth mode communication, such as illustrated high-bandwidth mode communication 804 .
  • the transmitting node may transmit using low-bandwidth mode communication, such as illustrated low-bandwidth mode communication 803 .
  • a reserved transmission block 805 can be assigned for a particular communication, such that the reserved transmission block 805 would reserve channels and time slots for both a high-bandwidth mode communication, and a low-bandwidth mode communication.
  • reserved transmission block 805 includes channel 802 f for time slots 801 g - 8011 , such as a reservation for a low-bandwidth mode communication 803 .
  • the reserved transmission block 805 includes channels 802 e - g for time slots 801 g - h , such as a reservation for a high-bandwidth mode communication 804 .
  • both a high-bandwidth communication mode and a low-bandwidth communication mode may be associated with any given reserved transmission block 805 .
  • a transmitting node can determine, based at least in part on a link quality indicator, which mode of transmission is optimal to achieve a successful transmission using the channels and time slots included in the reserved transmission block 805 .
  • FIG. 9 is a block diagram depicting a computing environment capable of generating a channel hopping sequence for a mesh network as described herein, according to certain aspects.
  • a node 901 may be a network component on a mesh network, such as described in regards to FIG. 1 .
  • the depicted example of a node 901 includes one or more processors 902 communicatively coupled to one or more memory devices 904 .
  • the processor 902 executes computer-executable program code or accesses information stored in the memory device 904 .
  • Examples of processor 902 include a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other suitable processing device.
  • the processor 902 may include any number of processing devices, including one.
  • the memory device 904 includes any suitable non-transitory computer-readable medium for storing a sequence generation module 905 , a link quality assessment module 913 , a pseudo-random number generator 915 , a communication channel list 917 , and other parameters or data relating to generating the channel hopping sequence.
  • the computer-readable medium may include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code.
  • Non-limiting examples of a computer-readable medium include a magnetic disk, a memory chip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device may read instructions.
  • the instructions may include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C #, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
  • the node 901 may also include a number of external or internal devices such as input or output devices.
  • the node 901 is shown with an input/output (I/O) interface 908 that may receive input from input devices or provide output to output devices.
  • I/O input/output
  • a bus 906 may also be included in the node 901 .
  • the bus 906 may communicatively couple one or more components of the node 901 .
  • the node 901 may execute program code that configures the processor 902 to perform one or more of the operations described above with respect to FIGS. 1-8 .
  • the program code includes operations related to, for example, one or more of sequence generation module 905 , the link quality assessment module 913 , the pseudo-random number generator 915 , the communication channel list 917 , or other suitable applications or memory structures that perform one or more operations described herein.
  • the program code may be resident in the memory device 904 or any suitable computer-readable medium and may be executed by the processor 902 or any other suitable processor.
  • sequence generation module 905 the link quality assessment module 913 , the pseudo-random number generator 915 , the communication channel list 917 , and other parameters or data relating to communicating on communication channels are stored in the memory device 904 , as depicted in FIG. 9 .
  • one or more of sequence generation module 905 , the link quality assessment module 913 , the pseudo-random number generator 915 , the communication channel list 917 , and the program code described above are stored in one or more memory devices accessible via a data network, such as a memory device accessible via a cloud service.
  • the node 901 depicted in FIG. 9 also includes at least one network interface 910 .
  • the network interface 910 includes any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks 912 .
  • Non-limiting examples of the network interface 910 include an Ethernet network adapter, a modem, radio transmitter and/or the like.
  • the group of metering nodes 103 , head-end system 101 , and collector 102 are connected to the node 901 via network 912 .
  • the network 912 may include a mesh network, such as described herein. In some cases, the network 912 may include additional networks, such as (without limitation) the Internet, a private network (including a virtual private network), or any other suitable network.
  • the group of metering nodes 103 , the head end system 101 , or the collector 102 may perform some of the operations described herein, such as generating the hopping sequence.
  • the node 901 may be able to communicate with one or more of the metering nodes 103 , head-end system 101 , and collector 102 using the network interface 910 .
  • a computing device can include any suitable arrangement of components that provides 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 implementations 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.
  • Implementations of the methods disclosed herein may be performed in the operation of such computing devices.
  • the order of the blocks presented in the examples above can be varied—for example, blocks can be re-ordered, combined, and/or broken into sub-blocks. Certain blocks or processes can be performed in parallel.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

In some aspects, a channel hopping sequence for communication on a mesh network is generated. The hopping sequence may include multiple channels assigned to respective positions in the hopping sequence. In some cases, a first channel is assigned to a first position such that the first channel may transmit communications in a first transmission mode, such as a low-bandwidth transmission mode. In addition, an additional channels adjacent to the first channel is also assigned to the first position such that the combination of the first channel and additional channel may transmit communications in a second transmission mode, such as a high-bandwidth transmission mode. In some cases, a whitelist is determined based on the assigned channels. The whitelist may indicate channels that do not conflict with the assigned channels during transmission of a communication. In addition, channels may be assigned to the hopping sequence based on the whitelist.

Description

FIELD OF THE INVENTION
This disclosure relates generally to the field of wireless data transmission, and more specifically relates to determining a channel hopping sequence for multiple rates of data transmission.
BACKGROUND
Components in a wireless mesh network may exchange data via at least one radio frequency (RF). A component on the mesh network may transmit data to another component via a channel that includes a range of one or more frequencies, or a channel “width.” In addition, the component may select an additional channel, or “hop” to the additional channel. For example, the mesh network component may hop to the additional channel if the component is transmitting data. Also, another component on the mesh network may hop to the additional channel, and begin transmitting data via the additional channel. The mesh network may experience a “collision” if multiple components hop to a particular channel and begin transmitting data. For example, the data on the particular channel may become corrupted or unintelligible to a receiving device, based on the collision.
In some aspects, the wireless mesh network may generate a channel hopping sequence. The hopping sequence may indicate an order in which components on the mesh network select channels for data transmission. In some cases, adherence to the hopping sequence may allow multiple components on the mesh network to transmit data using respective multiple channels without causing collisions. In addition, the RF mesh network may determine a channel hopping sequence based on a technical standard related to operation of a wireless personal area network. However, the channel hopping sequence may be determined based on a given number of channels each having a given width. In such cases, a component on the mesh network may transmit data based on the width of the next available channel in the hopping sequence. The component may be prohibited from using adjacent channels (e.g., channels with adjacent ranges of frequencies) to prevent potential collisions, even if the adjacent channels are not occupied by other transmission from other components.
It is desirable to develop techniques to generate a channel hopping sequence that allows a component of a mesh network to transmit on adjacent channels to the selected channel. It is also desirable to generate a hopping sequence that reduces potential collisions on the adjacent channels if multiple components of the mesh network are transmitting.
SUMMARY
According to certain implementations, a sequence generation module may receive an indication of a group of channels, and an indication of a number from a pseudo-random number generator or a pseudo-random sequence of numbers. The sequence generation module may assign a first channel, from the group of channels, to a hopping sequence at a first position. The assignment may be based on the number from the pseudo-random number generator or the pseudo-random sequence. In addition, the sequence generation module may select an additional channel based on the first channel, such as an additional channel that is adjacent to the first channel. In some cases, frequencies included in a width of the first channel may be available at the first time slot for a first transmission mode. In addition, frequencies included in a combined width of the first and additional channels may be available at the first position for a second transmission mode. The sequence generation module may determine a whitelist subset of the group of channels, where the whitelist subset omits the first and additional channels. In addition, the sequence generation module may assign a second channel, from the whitelist subset, to the hopping sequence at a second position, based on another number from the pseudo-random number generator or in the pseudo-random sequence.
These illustrative implementations are mentioned not to limit or define the disclosure, but to provide examples to aid understanding thereof. Additional implementations are discussed in the Detailed Description, and further description is provided there.
BRIEF DESCRIPTION OF THE DRAWINGS
Features, implementations, 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 block diagram depicting an example of a mesh network including a collector node and metering nodes,
FIG. 2 is a diagram depicting an example of a conventional low-bandwidth transmitted signal,
FIG. 3 is a diagram depicting an example of a mixed-signal environment,
FIG. 4 is a diagram depicting a mixed-signal environment in which a collision event occurs,
FIG. 5 is a flow chart depicting an example of a process for generating a hopping sequence,
FIG. 6 is a flow chart depicting an example of a process 600 for updating a whitelist subset of channels from a group of channels in a channel hopping sequence,
FIG. 7 is a diagram depicting a mixed signal environment according to aspects of the present disclosure,
FIG. 8 is a diagram depicting an example of a reserved transmission block for transmission of a high- or low-bandwidth signal, and
FIG. 9 is a diagram depicting an example of a computing system for generating a channel hopping sequence.
DETAILED DESCRIPTION
As discussed above, prior techniques for generating channel hopping sequences do not allow network components to transmit on adjacent channels while reducing potential collisions. Certain implementations described herein provide for generating a hopping sequence based on a subset of channels. In some aspects, the subset of channels may omit a channel that is assigned to the hopping sequence. In addition, the subset of channels may omit another channel that is adjacent to the assigned channel in the hopping sequence. For example, the generated hopping sequence may include, at a first position, an assigned channel that is available for transmissions on a mesh network. An additional channel may be selected based on the assigned channel, such as an additional channel that is adjacent to the assigned channel. A blacklist subset that includes the assigned and additional channels may be determined. A whitelist subset that omits the assigned and additional channels may be determined. A second channel may be assigned to the hopping sequence at a second position, such as a second channel selected from the whitelist subset.
In some aspects, a node on the mesh network may select a channel based on the hopping sequence. For example, the node may select a first channel at a first time slot, as indicated by a first position in the hopping sequence, to use for a transmission of data. The node may determine, such as based on a link quality indicator, that a signal strength between the node and a recipient (e.g., another node on the mesh network) is above a threshold signal level. In some cases, the link quality is determined by a link quality assessment module. Responsive to determining that the signal strength is above the threshold signal level, the node may select a high-bandwidth transmission mode, and transmit the data via the first channel and an additional channel adjacent to the first channel. For example, the node may transmit the data using a combination of the frequencies included in the first channel and the additional channel. During the transmission by the node, an additional node may select a second channel at a second time slot, as indicated by a second position in the hopping sequence. In such cases, as the hopping sequence was generated based on a whitelist that omitted the first and additional channels, data transmitted via first and additional channels may have a reduced likelihood of collisions with data transmitted via the second channel.
Referring now to the drawings, FIG. 1 is a block diagram depicting an example of a mesh network 100 including a collector node and metering nodes communicatively coupled to a head-end system. For instance, a head-end system 101 may have bidirectional communication with a collector, such as collector 102. In some cases, collector 102 may communicate to head-end system 101 via one or more networks, such as a private network, a local area network, a wide area network, the Internet, or any other suitable network. In some aspects, the collector 102 may communicate with multiple metering nodes, such as metering nodes 103 a, 103 b, 103 c, and 103 d (collectively referred to herein as metering nodes 103). For example, the collector 102 may receive data describing utility metering information from one or more of the metering nodes 103 (e.g., consumption information), or from the head-end system 101 (e.g., pricing information). In addition, the collector 102 may provide data to the head-end system 101, to one or more of the metering nodes 103.
In some aspects, one or more of the metering nodes 103 may communicate with one or more of the other metering nodes. For example, the metering node 103 a may communicate with the metering node 103 b. Additional metering nodes may or may not communicate with metering node 103 a. For example, the metering node 103 c may communicate with the metering node 103 d, but not with metering node 103 a. The collector 102 may receive communications from one or more of the metering nodes 103. In addition, metering node 103 a may communicate to the collector 102 information from metering node 103 a and metering node 103 b. In some cases, a configuration of the mesh network 100 may change, such as based on a weak or strong signal strength detected from the collector 102 or one or more of the metering nodes 103. For example, based on a weak signal strength detected between metering nodes 103 a and 103 b, metering node 103 b may establish a communication with metering node 103 c. The signal strength between nodes may be determined by a link quality assessment module that is included in the metering node 103 b. Additional signal strengths between nodes may be determined by addition link quality assessment modules, included respectively in one or more of the metering nodes 103, the collector 102, or the head-end system 101.
In some implementations, nodes on the mesh network 100 may transmit data via channels, based on a channel hopping sequence. In addition, one or more of the nodes on the mesh network 100 generate the channel hopping sequence, such as via a sequence generation module that is included in one or more of the metering nodes 103, to collector 102, or the head-end system 101. The sequence generation module may generate the channel hopping sequence based on information received from a pseudo-random number generator, such as a pseudo-random number or sequence of pseudo-random numbers. In one aspect, the sequence generation module may assign at least the next channel in the generated sequence, or it may assign multiple channels in the sequence. In some aspects, a node on the mesh network 100 may select a communication channel based on the hopping sequence. For example, metering node 103 a may select a first channel for transmitting data to the collector 102. In some aspects, the metering node 103 a may select the channel based in part on a signal strength between the metering node 103 a and the collector 102. In addition, each node of the mesh network 100 may store data indicating a list of communication channels capable of transmitting data, such as a channel list indicating communication channels, center frequencies, or frequency ranges associated with the channels.
FIG. 2 is a diagram depicting an example of a transmission environment 200 in which a signal having a channel width and a transmission time may be transmitted. For example, the transmission environment 200 may have multiple timeslots 201 a-201 s, collectively referred to herein as timeslots 201, and multiple communication channels 202 a-202 i, collectively referred to herein as communication channels 202. Each of the channels 202 may include one or both of a center frequency or a range of frequencies. For example, the communication channel 202 a may include a center frequency of about 902.2 MHz, or a range of frequencies from about 902 MHz to about 902.4 MHz. In some cases, a communication, such as a group of one or more data packets, is transmitted via one or more of the frequencies included in the communication channel 202 a. The communication may be transmitted via a signal that is carried on one or more of the channel frequencies.
In some aspects, the transmission environment 200 may be associated with a hopping sequence, such as a frequency hopping spread spectrum (FHSS) environment. FHSS is a method of transmitting radio communications by switching carrier frequencies among multiple channels using a pseudo-random number (or pseudo-random sequence of numbers), that is known by both the transmitting node and the receiving node. In some implementations, the FHSS environment, or communications transmitted in the FHSS environment, may conform to local or global criteria. For example, and not by way of limitation, the FHSS environment and/or transmitted communications may conform to standards set by the Federal Communications Commission (FCC), such as C.F.R. 47 § 15.247.
In an aspect, a low-speed communication 203 may be transmitted on a communication channel 202 d during time slots 201 a-201 g. The low-speed communication 203 may have a bandwidth. In some cases, the bandwidth may be associated with a channel width (e.g., of channel 202 d) and a transmission time associated with the time slots 201 required to transmit the low-speed communication 203. For example, low-speed communication 203 is illustrated as being transmitted during seven of the time slots 201, such as the time slots 201-201 g. In addition, other low-speed communications could require a larger or smaller number of the time slots 201.
FIG. 3 is a diagram depicting an example of a mixed-signal transmission environment 300, in which communications associated with various bandwidths may be transmitted. For example, the mixed-signal environment 300 may have multiple time slots 301 a-301 s, collectively referred to herein as time slots 301, and multiple communication channels 302 a-302 i, collectively referred to herein as communication channels 302. In some cases, the mixed-signal environment 300 could be a transmission environment with at least two signals with different transmission channel widths. In addition, the mixed-signal transmission environment could include a frequency hopping spread spectrum environment with a total bandwidth of about 26 Megahertz (MHz) of operating bandwidth and about 65 channels. Other combinations of total bandwidth and number of channels are possible.
In one aspect, the mixed-signal transmission environment is capable of transmission of a low-speed communication 303 and high-speed communication 304. For example, low-speed communication 303 may be transmitted via a low-power signal capable of being transmitted long distances, such as a signal characterized by a channel width of about 400 kilohertz (kHz), a minimum datarate of about 50 kilobits per second (kbps), a maximum physical layer (PHY) payload of about 1500 bytes, and a transmission time of about seven of the time slots 301 (e.g., time slots 301 a-301 g). In addition, the low-power signal may be capable of being transmitted long distances, such that the low-speed communication 303 may be received by a node that is relatively far away. In some aspects, a channel width of 400 kHz may be represented by a particular one of the communication channels 302, such as communication channel 302 d including a center frequency of about 903.4 MHz or range of frequencies from about 903.2 MHz to about 903.6 MHz.
In addition, the high-speed communication 304 may be transmitted via a high-power signal capable of being transmitted intermediate distances, such as a signal characterized by a channel width of about 1200 kilohertz (kHz), a minimum datarate of about 400 kilobits per second (kbps), a maximum physical layer (PHY) payload of about 1500 bytes, and a transmission time of about two of the time slots 301 (e.g., time slots 301 d-301 e). In some aspects a channel width of 1200 kHz may be represented by adjacent 400 kHz channels, such as the adjacent channels 302 f, 302 g, and 302 h. Other combinations of signal channel widths, datarates, PHY payloads, and transmission times are, however, possible.
In some aspects, communications that are transmitted in the mixed-signal transmission environment 300 are transmitted at a bandwidth that is based on an available number of the communication channels 302. For example, the low-speed communication 303 may be transmitted via the channel 302 d at a relatively low bandwidth. In addition, the high-speed communication 304 may be transmitted via the combined channels 302 f-302 h at a relatively high bandwidth. The maximum datarate of a channel may be calculated using the Shannon Theorem, which indicates that a maximum datarate is dependent on channel bandwidth (in Hz) and a logarithm related to the signal to noise ratio. In some aspects, a higher channel bandwidth (e.g., a greater range of frequencies) may generally enable a higher maximum datarate to be transmitted via the channel. In addition, a lower channel bandwidth (e.g., a narrower range of frequencies) may generally enable a lower maximum datarate to be transmitted via the channel. In some aspects, a communication that is transmitted via multiple adjacent channels may be transmitted at a higher datarate, such as a datarate that is based on the combined frequency range of the adjacent channels.
FIG. 4 is a diagram depicting an example of a mixed-signal transmission environment 400, in which communications associated with various bandwidths may be transmitted. For example, the mixed-signal environment 400 may have multiple time slots 401 a-401 s, collectively referred to herein as time slots 401, and multiple communication channels 402 a-402 i, collectively referred to herein as communication channels 402. In some cases, the mixed-signal environment 400 could include at least two signals with different communication channel widths. The mixed-signal environment 400 can also include an FHSS generated based on a pseudo-random sequence.
In some aspects, communications transmitted in the mixed-signal environment 400 may be transmitted according to a channel hopping sequence that is determined for the mixed-signal environment 400. In addition, the channel hopping sequence may be determined based on multiple types of communications or transmission modes. For example, low-speed communication 404 may be a first communication transmitted in the transmission environment 400. In this non-limiting example, a first position in the channel hopping sequence may be associated with one or more of a time slot 401 a or a channel 402 f. A first node, such as a metering node included in a mesh network, may begin communicating according to the first position in the channel hopping sequence, such as by transmitting via the first channel 402 f at time slot 401 a. In the next time slot 401 b, an additional communication is not begun (e.g., no nodes in the mesh network begin any additional communications).
In time slot 401 c, high-speed communication 403 may be a second communication transmitted in the transmission environment 400. In this non-limiting example, the high-speed communication 403 may be transmitted at a higher bandwidth via additional channels, such as the channels 402 b, 402 c, and 402 d. For example, a second position in the channel hopping sequence may be associated with one or more of a second time slot 401 c, a channel 402 c, and one or more additional channels 402 d or 402 b. In this case, the hopping sequence may indicate at least the center channel 402 c. A second node may begin communicating according to the second position in the channel hopping sequence, such as by transmitting the high-speed communication 403 via the channel 402 c. In addition, the second node may access channels adjacent to the indicated center channel 402 c, such as channels 402 b and 402 d, for transmission of the high-speed communication 403.
In another aspect, at time slot 401 e, an additional node begins transmitting high-speed communication 405. In this case, the hopping sequence includes an additional position indicating that channel 402 g is available at time slot 401 e. In addition, the additional node may access the adjacent channels 402 f and 402 h for transmission of the high-speed communication 405. The resulting access of the adjacent channels creates collision event 406. For example, a collision event can be where the low-speed communication 404 and the high-speed communication 405 are transmitted at one or more same time slots on one or more same channels (e.g., the time slots 401 e and 401 f on channel 402 f). Alternatively, it can be where multiple high-speed communications or multiple low-speed communications are transmitted at a same time slot on a same channel. In some cases, the result of a collision event is communication loss at a receiving node.
In addition, a component that is transmitting on a particular channel may inadvertently transmit on an adjacent channel. For example, if the component is transmitting at a relatively higher power, the transmission may be detectable at frequencies that are not included in the particular channel, but which are nearby (i.e., in the frequency spectrum) to frequencies in the particular channel. Although the adjacent channel is not assigned to the component for the transmission, power related to the transmission may be detectable on one or more adjacent channels (e.g., “power leakage”). Such “leakage” of power related to the transmission may cause interference on the adjacent channels.
In some aspects, assigning a variety of available channels to the hopping sequence from across the spectrum of available channels (e.g., “spreading” the hopping sequence across the available channels) may improve transmissions on the mesh network. For example, spreading the hopping sequence across the available spectrum may decrease a likelihood of collision events, such as a collision event on an adjacent channel used for separate communications by separate network components. In addition, spreading the hopping sequence across the available spectrum may decrease a likelihood of interference, such as interference from power leakage onto frequencies in a channel that is adjacent to an assigned channel.
In some aspects, a guard channel may be selected from the communication channels 402, such as to provide a buffer between a particular communication channel (or group of channels) and other communication channels. For example, the channel 402 e may be selected as a guard channel 402 e adjacent to communication channel 402 f The guard channel 402 e may be reserved to provide a buffer between communication channel 402 f and other channels, such as communication channel 402 d. For example, the guard channel 402 e may include a range of frequencies that are adjacent to the frequency range of the communication channel 402 f, but on which little or no data is transmitted. In addition, a guard channel may be reserved for a time duration, such as a duration based on time slots associated with the communication channel being guarded. For example, the guard channel 402 e may be reserved for time slots 401 a-401 g, based on a duration of the low-speed communication 404 transmitted on the communication channel 402 f In some cases, a guard channel may provide a buffer from other communication channels, such that transmissions on the other communication channels are unlikely to interfere with transmissions on the particular communication channel.
In some implementations, channels may be included in a blacklist or omitted from a whitelist in addition to the channel selected for the hopping sequence. For example, the channel hopping sequence may be generated based on at least one pseudo-random number corresponding to at least the next channel, such that the channel is assigned to a particular position in the hopping sequence. Additional channels, such as guard channels or adjacent channels associated with various transmission modes, may be also associated with the particular position. The blacklist may be updated to include the assigned channel and the additional channels, or the whitelist may be updated to omit the assigned channel and the additional channels. The blacklist may include, for example, a data object that includes a list (or other indication) of channels that are not available for assignment to a particular position in the hopping sequence. In addition, the whitelist may include, for example, a data object that includes a list (or other indication) of channels that are available for assignment to the particular position.
FIG. 5 is a flow chart depicting an example of a process 500 for creating a multi-bandwidth transmission environment that minimizes signal collisions, by determining a blacklist subset of channels and a whitelist subset of channels. In some implementations, such as described in regards to FIGS. 1-4, a computing device executing a sequence generation module implements operations described in FIG. 5, by executing suitable program code. For illustrative purposes, the process 500 is described with reference to the examples depicted in FIGS. 1-4. Other implementations, however, are possible.
At block 502, the process 500 involves receiving an indication of a group of channels, each channel including a respective frequency range available for transmission on a mesh network, such as, for example, mesh network 100. In some cases, the mesh network may communicate using a frequency band defined by IEEE 802.15.4 where the total available bandwidth may be defined by authorized licensed or unlicensed communication bands. In a non-limiting example, an authorized communication band may be bounded by 902 MHz and 928 MHz. In this example, the total available bandwidth may be 26 MHz, and the number of channels may be defined by the quotient of total available bandwidth and desired channel width. For example, to obtain a channel width of 400 kHz with a total available bandwidth of 26 MHz, then there would be 65 available channels (e.g., 400 kHz×65=26 MHz). In one aspect the desired channel width may be designed to support a desired datarate, such as described by the Shannon Theorem.
At block 504, the process 500 involves receiving an indication of a pseudo-random number, for example a pseudo-random number that may be used in a frequency hopping spread spectrum environment. In some cases, the pseudo-random number may be generated by a 9-bit pseudo-random number (PN9) generator. In another aspect, other random or pseudo-random number generators may be used. In certain implementations, operations related to block 504 may be performed at various points in the process 500. For example, a first number from the pseudo-random number generator may be received subsequent to operations related to block 502, and a second number from the pseudo-random number generator may be received subsequent to operations related to another block, such as one of blocks 510 or 512.
At block 506, the process 500 involves assigning a first channel, from the group of channels, to the hopping sequence at a first position, based on a first number from the pseudo-random number generator. For example, the first position may be associated with the first channel, or a first time slot, or both, based on the first number from the PN9 generator at block 504. In some cases, the group of channels may be a list of all available channels for communication, such as available channels as received at block 502.
At block 508, the process 500 involves selecting an additional channel from the group of channels, based on the first channel, such as an additional channel that is adjacent to the first channel. For example, the adjacent channel may have a range of frequencies (e.g., about 902.8 MHz to about 903.2 MHz) that are contiguous with the range of frequencies of the first channel (e.g., about 903.2 MHz to about 903.6 MHz), such that the combined width of the first and additional channel includes a range of adjacent frequencies (e.g., about 902.8 MHz to about 903.6 MHz). In one aspect, selecting an additional channel from the group of channels may include selecting multiple additional channels, for example, a guard channel adjacent to the selected additional channel. An example of a guard channel is a channel reserved to provide a buffer to the communication channel (or channels). As a non-limiting example, an additional channel may be selected from the group of channels as the next higher adjacent channel to the first channel and a guard channel may be the next higher adjacent channel to the additional channel. In another aspect, multiple additional channels may be selected based on the channel width desired for a high-speed communication or a low-speed communication. In some cases, the one or more additional channels (including any guard channels) may be associated with the first position in the hopping sequence.
At block 510, the process 500 involves determining a blacklist subset of the group of channels, wherein the blacklist subset includes the first channel and additional channel, such as the first channel assigned at block 506, and the one or more additional channels selected at block 508. In some cases, a blacklist subset of channels includes previously assigned channels, such as the first channel assigned and one or more selected additional channels. For example, if a first channel, such as channel 402 f is assigned and an additional channel 402 g is selected from the communication channels 402, the blacklist subset of the group of channels may include channels 402 f and 402 g. In some cases, other channels may also be added to the blacklist subset based on proximity to the assigned and selected channels, for example a guard channel. In some aspects, operations related to the block 510 may be omitted from the process 500.
At block 512, the process 500 involves determining a whitelist subset of the group of channels, wherein the whitelist subset omits the first channel and the additional channel. In some cases, the whitelist subset may be an inverse set of the blacklist subset. For example, if the first channel and the additional channel are omitted from the whitelist subset, the first channel and the additional channel may be included in the blacklist subset. In some cases, the whitelist subset may include all available communication channels in the group of channels excepting the first channel and the additional channel. In other aspects, the whitelist subset may include all available channels of the group of channels excepting channels that are members of the blacklist subset. In some aspects, operations related to the block 512 may be omitted from the process 500.
At block 514, the process 500 involves assigning a second channel, from the whitelist subset to the hopping sequence at a second position, based on a second number from the pseudo-random number generator. For example, the whitelist subset may include all available channels of the group of channels omitting previously assigned channels, which may be members of the blacklist subset. In one aspect, a second channel is assigned to the hopping sequence from a pseudo-random selection of a channel in the whitelist subset. For instance, the second channel, or a second time slot, or both, may be assigned to the second time slot. In addition, a high-speed communication or low-speed communication can be initiated on the second channel at the second time slot. In some aspects, the second position may be associated with the second channel, or the second time slot, or both, based on the second number from the pseudo-random number generator at block 504.
In some aspects, channels in the whitelist (or blacklist) may be weighted to adjust a probability of being selected (or not selected). For example, if the first channel and the additional channel(s) are included in the blacklist, channels in the whitelist subset may be weighted based on how close their frequencies are to the blacklisted channels. The weighting may, for example, adjust a probability of a channel being selected as a next channel in the hopping sequence. Channels that include frequencies nearby (on the frequency spectrum) to frequencies in the blacklisted channels may be weighted to have a lower probability of selection, and channels with frequencies distant from the blacklisted channels may be weighted to have a higher probability of selection. In some cases, weighting the probability of selection may improve a spread of the hopping sequence across the available spectrum. In addition, weighting the probability of selection may decrease a likelihood of collision events or other interference occurring in the mesh network.
Although the process 500 describes creating a multi-bandwidth transmission environment by determining blacklist and whitelist subsets of channels, other implementations are possible. For example, a channel hopping sequence may be determined during use of a multi-bandwidth transmission environment, such as by assigning a channel to a position in the hopping sequence based on one or more communications currently being transmitted in the environment. The channel may be assigned to the hopping sequence based on a determination that the channel is not in use by the one or more current communications (including high-bandwidth and low-bandwidth current communications). Such implementations are deemed to be within the scope of the disclosed innovations.
In some implementations, a channel hopping sequence may be generated prior to use of the sequence. For example, a channel hopping sequence may be generated for a mesh network (e.g., by a node on the network, by a head-end system) for the mesh network to use for subsequent communications. Additionally or alternatively, a channel hopping sequence may be generated during use of the sequence, such as by assigning the next channel in the hopping sequence at each time slot. For example, during the first time slot the second channel in the sequence could be assigned to the second time slot, and during the second time slot the third channel in the sequence could be assigned to the third time slot.
In some implementations, a channel hopping sequence may be repeated in part or in whole. For example, once a time slot associated with a final position in a repeating hopping sequence passes, the next time slot may be associated with the first position in the repeating hopping sequence. In some cases, one or more final channels (e.g., in positions at the end of the repeating sequence) are assigned based on one or more of the initial channels (e.g., at the beginning positions). For example, a node generating a hopping sequence may determine the final positions in the sequence based on a blacklist that includes channels assigned to the initial positions. Using a blacklist with the initial assigned channels may reduce the likelihood of a particular channel being assigned to both the final position and the initial position in the hopping sequence. Additionally or alternatively, one or more initial channels are assigned based on one or more of the final channels in the sequence. For example, the node generating the hopping sequence may determine the initial positions based on a blacklist that includes channels assigned to the final positions.
In some cases, a subsequent channel hopping sequence may be generated, for use after completion of a previous hopping sequence. For example, once the time slot associated with the final position in the previous hopping sequence passes, the subsequent hopping sequence may be generated based on additional data received from the pseudo-random number generator. The subsequent hopping sequence may be generated based on the blacklist or whitelist, or both, from the previous hopping sequence (e.g., the blacklist or whitelist may “wrap” with the hopping sequence). For example, if the blacklist associated with the previous hopping sequence indicates that a particular channel is unavailable, such as because it was assigned to the final position in the previous hopping sequence, the first position in the additional hopping sequence may be assigned based on the whitelist of available channels (e.g., omitting the particular channel).
In some cases, a first channel may be omitted from the whitelist, or included in the blacklist, for a first time duration associated with a first transmission mode, for example, a low-speed transmission mode. When a channel is assigned to the hopping sequence at a position after the first time duration, the whitelist (or blacklist) may be updated to include (or omit) the first channel, such that the first channel is available to be assigned to the hopping sequence at an additional position that is after the first time duration. For example, FIG. 3 illustrates that channel 302 d may be excluded from the whitelist (or included on the blacklist) for a time duration of seven time slots, which corresponds to up to seven positions in the hopping sequence.
Furthermore, additional channels (e.g., guard channels and/or communication channels adjacent to the first channel) may be omitted from the whitelist, or included in the blacklist, for a second time duration associated with a second transmission mode, for example, a high-speed transmission mode. When a channel is assigned to the hopping sequence at a position after the second time duration, the whitelist (or blacklist) may be modified to include (or omit) the additional channels, such that the additional channels may be reassigned to the hopping sequence at an additional position that is after the second time duration. In some cases, the whitelist may be updated to include the additional channels and omit the first channel, such as if the additional position is subsequent to the second time duration and prior to the first time duration. For example, FIG. 3 illustrates that channel 302 d may added to the whitelist after a time duration of seven time slots, whereas channel 302 f may be added to the whitelist after a time duration of two time slots. In addition, the blacklist may be updated to omit the additional channels and include the first channel. Other combinations of transmission modes, channel assignments, and time durations are possible, including channels associated with multiple transmission modes, and longer or shorter time durations.
FIG. 6 is a flow chart depicting an example of a process 600 for modifying a whitelist of channels, such as a whitelist associated with a channel hopping sequence. In some implementations, such as described in regards to FIGS. 1-5, a computing device executing a sequence generation module implements operations described in FIG. 6, by executing suitable program code. For illustrative purposes, the process 600 is described with reference to the examples depicted in FIGS. 1-5 and 7-9. Other implementations, however, are possible. In some implementations, the whitelist, blacklist, or both may be updated based on time durations associated with various modes of transmission for a communication, as described elsewhere herein.
At block 602, the process 600 involves receiving a channel hopping sequence, such as a channel hopping sequence generated as described in regards to FIG. 5. In one aspect, the channel hopping sequence is associated with a whitelist, such as a whitelist subset of channels available for use in the channel hopping sequence. Channels included in the hopping sequence may be associated with respective time slots or positions. For example, the hopping sequence may include a first channel associated with a first time slot, where the first channel is at a first position in the hopping sequence. The first channel may be assigned based on a first pseudo-random number from a pseudo-random number generator. In some implementations, the channel hopping sequence may be based on an output (or a modified output) of a PN9 generator. For example, a PN9 generator may generate a pseudo-random number or sequence of pseudo-random numbers that may be modified based on communications characterized by a channel width and transmission time, such as described elsewhere herein. The whitelist associated with the channel hopping sequence may omit the first channel.
At block 604, the process 600 involves calculating a reserved time duration of the first channel associated with the first time slot. In some aspects, the reserved time duration is based on a sum of the first time slot and a quantity of time slots associated with a transmission mode, or with a communication that is transmitted via the first channel. For example, the low-speed communication 303 may be transmitted via the communication channel 302 d, as described in regards to FIG. 3. In some cases, the low-speed communication 303 is transmitted during a quantity of time slots 301 a-301 g. In addition, the communication channel 302 d may have a reserved time duration of seven time slots, based on the time slots 301 a-301 g associated with the low-speed communication 303.
At block 605, the process 600 involves assigning a second channel to the hopping sequence at a second position, the second channel associated with a second time slot. In some cases, the second channel is assigned to the hopping sequence based on an additional output (or modified output) from the PN9 pseudo-random number generator, such as an additional pseudo-random number.
At block 606, the process 600 involves comparing the reserved time duration (e.g., of the first channel) with the second time slot associated with the second channel. For example, the second channel may be associated with time slot 301 j. Operations related to block 606 may compare the reserved time duration of the communication channel 302 d (e.g., time slots 301 a-301 g associated with the low-speed communication 303) to the second time slot 301 j.
At block 608, the process 600 involves determining whether the second time slot is subsequent to the reserved time duration of the first channel. For example, a determination may be made whether the second time slot 301 j is subsequent to a final time slot (e.g., time slot 301 g) that is associated with the low-speed communication 303.
If operations related to block 608 determine that the second time slot is not subsequent to the reserved time duration (e.g., the second time slot occurs prior to the end of the reserved time duration), process 600 may proceed to another block, such as block 602 or 604. For example, a whitelist that omits the first channel, such as communication channel 302 d, may remain unmodified, such that the first channel remains omitted from the whitelist.
If operations related to block 608 determine that the second time slot is subsequent to the reserved time duration (e.g., the second time slot occurs after the end of the reserved time duration), process 600 may proceed to another block, such as block 610. At block 610 the process 600 involves modifying the whitelist associated with the channel hopping sequence. In some aspects, the whitelist may be updated to include the first channel. For example, responsive to determining that the second time slot 301 j is subsequent to the reserved time duration of the communication channel 302 d (e.g., subsequent to time slot 301 g), a whitelist associated with a channel hopping sequence of the mixed-signal transmission environment 300 may be modified, such as to include the communication channel 302 d.
In some aspects, operations related to the process 600 may release communication channels that were assigned to a hopping sequence at previous positions, such as to reuse the released communication channels in additional positions, or for additional communications. Furthermore, operations related to the process 600 may release various channels that are assigned to a particular position based on respective transmission modes that are associated with respective ones of the various channels. For example, in a hopping sequence associated with a mixed-signal transmission environment 700, as described in regards to FIG. 7, channels 702 c, 702 d, and 702 e may each be assigned to the hopping sequence at a first position at a first time slot (e.g., time slot 701 a). The channel 702 d may be associated with a first transmission mode (e.g., a low-bandwidth mode), and may have a reserved time duration of seven time slots (e.g., time slots 701 a-701 g). The channels 702 c and 702 e may each be associated with a second transmission mode (e.g., a high-bandwidth mode), and may have a reserved time duration of two time slots (e.g., time slots 701 a-701 b). In some implementations, a whitelist (or blacklist) associated with the mixed-signal transmission environment 700 may be updated based on the respective transmission modes associated with various channels. For example, a sequence generation module implementing operations related to process 600 may assign at least channel 702 f to a second position in the hopping sequence, such as at time slot 701 g. The sequence generation module may determine that the second time slot of the second position (e.g., time slot 701 g) is subsequent to the time slot of the first position (e.g., time slot 701 a). In addition, the sequence generation module may compare the reserved time durations of each of channels 702 c, 702 d, and 702 e to the second time slot. Responsive to determining that the second time slot (e.g., time slot 701 g) is prior to reserved time duration of channel 702 d and is subsequent to the reserved time durations of channels 702 c and 702 e, the whitelist for environment 700 may be modified to include channels 702 c and 702 e and omit (or continue to omit) channel 702 d. In some cases, channels associated with a particular transmission mode (e.g., a high-bandwidth mode) are released for reuse at hopping sequence positions prior to channels associated with another transmission mode (e.g., a low-bandwidth mode).
In addition, updating the whitelist may allow a sequence generation module to update a blacklist. For example, a blacklist associated with a channel hopping sequence may indicate that one or more channels are unavailable for assignment to the channel hopping sequence (e.g., are already assigned, or might cause collisions with transmission on other channels already assigned). In some cases, a blacklist is determined as an inverse of a whitelist. In addition, the whitelist may be determined as an inverse of the blacklist. Furthermore, both the whitelist and the blacklist may be determined based on the channel hopping sequence (e.g., based on channels already assigned).
FIG. 7 is a diagram depicting a mixed-signal transmission environment 700, according to the methods of the present disclosure. For example, mixed-signal environment 700 may have multiple time slots 701 a-701 s, collectively referred to herein as time slots 701, and multiple communication channels 702 a-702 i, collectively referred to herein as communication channels 702. In some cases, the mixed-signal environment 700 could include at least two signals with different communication channel widths. The mixed-signal environment 700 can also allow implementation of FHSS, such as a channel hopping sequence generated based on a pseudo-random sequence. In some cases, certain aspects of FIG. 7 may be better understood when considered in view of FIG. 8.
In some aspects, one or more nodes included in a mesh network may transmit communications in the mixed-signal environment 700 based on the generated channel hopping sequence. For example, a node communication 703 may be initiated at time slot 701 a. In this example, the channel hopping sequence includes channel 702 d at time slot 701 a. The node communication 703 can be transmitted in a low-bandwidth mode or a high-bandwidth mode. In one aspect, the transmission mode may be selected based on a link quality indicator or other factors, such as an indicator determined by a link quality assessment module. Additional aspects of the transmission mode are discussed related to FIG. 8. In mixed-signal environment 700, multiple node communications, such as node communications 703, 704, 705, 706, and 707 may be respectively transmitted in a high-bandwidth or low-bandwidth mode. In a non-limiting example, node communication 703 may be transmitted in a low-bandwidth mode, while node communication 704 may be transmitted in a high-bandwidth mode. In one aspect, when a node is communicating on one or more particular channels, the particular channels may be removed from the channel hopping sequence for the duration of the communication. For example, if a node is transmitting the communication 703, the channels associated with the communication 703 (e.g., channels 702 c-702 e) may be removed from the hopping sequence for the duration of the transmission (e.g., during time slots 701 a-701 b for a high-bandwidth communication, during time slots 701 a-701 g for a low-bandwidth communication).
In some cases, a node may transmit a communication on a channel indicated by the channel hopping sequence, during a reserved time associated with the indicated channel. For example, a node may transmit the node communication 703 as a high-bandwidth communication on channels 702 c-702 e during time slots 701 a-701 b. In addition or alternative aspects, the node may transmit the node communication 703 as a low-bandwidth communication on channel 701 d during time slots 701 a-701 g. In one aspect, the channel reservation may expire at or after the maximum transmission time that is reserved for the transmission mode. For example, at time slot 701 g, the node communication 704 may be transmitted on channel 702 e, which was reserved by node communication 703 for high-bandwidth communication (e.g., during time slots 701 a-701 b). Conversely, node communication 704 might not be transmitted on channel 702 d, which is reserved for node communication 703 for low-bandwidth communication (e.g., during the time slot 701 g). In some cases, guard channels may be used, and could include an additional channel reservation adjacent to the high- or low-bandwidth communication channels as described herein. In some aspects, a guard channel can be implemented on the a higher adjacent channel (e.g., having adjacent frequencies higher than the communication channel), a lower adjacent channel (e.g., having adjacent frequencies lower than the communication channel), or both.
FIG. 8 is a diagram depicting an example of a reserved transmission block for transmission of a high- or low-bandwidth signal used for transmitting communications in mixed-signal transmission environment 800. In some cases, the mixed-signal transmission environment 800 has multiple time slots 801 a-801 s, collectively referred to as time slots 801, and multiple communication channels 802 a-802 i, collectively referred to as communication channels 802. In some cases, the mixed-signal environment 800 is suitable for multiple communications carried on transmission signals of different channel widths. While FIG. 8 is described in regards to a single communication transmitted between two nodes, it should be appreciated that such aspects may also apply to multiple communications transmitted between multiple nodes.
For example, a metering node may have data available for transmission to the collector node, such as described in relation to FIG. 1. In some cases, the metering node is capable of transmitting in a low-bandwidth mode or high-bandwidth mode. In one aspect, the metering node selects the low-bandwidth mode or high-bandwidth mode based at least in part on a link quality indicator. An example of a link quality indicator could be a signal strength metric, or another metric which relates to the capability of a transmitting node and a receiving node to have a successful communication transmission. For instance, if the link quality indicator is above a threshold signal quality, the transmitting node may transmit using high-bandwidth mode communication, such as illustrated high-bandwidth mode communication 804. In another aspect, if the link quality indicator is below a threshold signal quality, the transmitting node may transmit using low-bandwidth mode communication, such as illustrated low-bandwidth mode communication 803.
According to one aspect, a reserved transmission block 805 can be assigned for a particular communication, such that the reserved transmission block 805 would reserve channels and time slots for both a high-bandwidth mode communication, and a low-bandwidth mode communication. For example, reserved transmission block 805 includes channel 802 f for time slots 801 g-8011, such as a reservation for a low-bandwidth mode communication 803. In addition, the reserved transmission block 805 includes channels 802 e-g for time slots 801 g-h, such as a reservation for a high-bandwidth mode communication 804. In some cases, both a high-bandwidth communication mode and a low-bandwidth communication mode may be associated with any given reserved transmission block 805. For example, a transmitting node can determine, based at least in part on a link quality indicator, which mode of transmission is optimal to achieve a successful transmission using the channels and time slots included in the reserved transmission block 805.
Any suitable computing system or group of computing systems can be used for performing the operations described herein. For example, FIG. 9 is a block diagram depicting a computing environment capable of generating a channel hopping sequence for a mesh network as described herein, according to certain aspects.
A node 901 may be a network component on a mesh network, such as described in regards to FIG. 1. The depicted example of a node 901 includes one or more processors 902 communicatively coupled to one or more memory devices 904. The processor 902 executes computer-executable program code or accesses information stored in the memory device 904. Examples of processor 902 include a microprocessor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other suitable processing device. The processor 902 may include any number of processing devices, including one.
The memory device 904 includes any suitable non-transitory computer-readable medium for storing a sequence generation module 905, a link quality assessment module 913, a pseudo-random number generator 915, a communication channel list 917, and other parameters or data relating to generating the channel hopping sequence. The computer-readable medium may include any electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions or other program code. Non-limiting examples of a computer-readable medium include a magnetic disk, a memory chip, a ROM, a RAM, an ASIC, optical storage, magnetic tape or other magnetic storage, or any other medium from which a processing device may read instructions. The instructions may include processor-specific instructions generated by a compiler or an interpreter from code written in any suitable computer-programming language, including, for example, C, C++, C #, Visual Basic, Java, Python, Perl, JavaScript, and ActionScript.
The node 901 may also include a number of external or internal devices such as input or output devices. For example, the node 901 is shown with an input/output (I/O) interface 908 that may receive input from input devices or provide output to output devices. A bus 906 may also be included in the node 901. The bus 906 may communicatively couple one or more components of the node 901.
The node 901 may execute program code that configures the processor 902 to perform one or more of the operations described above with respect to FIGS. 1-8. The program code includes operations related to, for example, one or more of sequence generation module 905, the link quality assessment module 913, the pseudo-random number generator 915, the communication channel list 917, or other suitable applications or memory structures that perform one or more operations described herein. The program code may be resident in the memory device 904 or any suitable computer-readable medium and may be executed by the processor 902 or any other suitable processor. In some aspects, the program code described above, sequence generation module 905, the link quality assessment module 913, the pseudo-random number generator 915, the communication channel list 917, and other parameters or data relating to communicating on communication channels are stored in the memory device 904, as depicted in FIG. 9. In additional or alternative aspects, one or more of sequence generation module 905, the link quality assessment module 913, the pseudo-random number generator 915, the communication channel list 917, and the program code described above are stored in one or more memory devices accessible via a data network, such as a memory device accessible via a cloud service.
The node 901 depicted in FIG. 9 also includes at least one network interface 910. The network interface 910 includes any device or group of devices suitable for establishing a wired or wireless data connection to one or more data networks 912. Non-limiting examples of the network interface 910 include an Ethernet network adapter, a modem, radio transmitter and/or the like. The group of metering nodes 103, head-end system 101, and collector 102 are connected to the node 901 via network 912. The network 912 may include a mesh network, such as described herein. In some cases, the network 912 may include additional networks, such as (without limitation) the Internet, a private network (including a virtual private network), or any other suitable network. In some implementations, the group of metering nodes 103, the head end system 101, or the collector 102 may perform some of the operations described herein, such as generating the hopping sequence. The node 901 may be able to communicate with one or more of the metering nodes 103, head-end system 101, and collector 102 using the network interface 910.
General Considerations
Numerous specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter may be practiced without these specific details. In other instances, methods, apparatuses, or systems that would be known by one of ordinary skill have not been described in detail so as not to obscure claimed subject matter.
Unless specifically stated otherwise, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining,” and “identifying” or the like refer to actions or processes of a computing device, such as one or more computers or a similar electronic computing device or devices, that manipulate or transform data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or di splay devices of the computing platform.
The system or systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provides 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 implementations 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.
Implementations of the methods disclosed herein may be performed in the operation of such computing devices. The order of the blocks presented in the examples above can be varied—for example, blocks can be re-ordered, combined, and/or broken into sub-blocks. Certain blocks or processes can be performed in parallel.
The use of “adapted to” or “configured to” herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. Additionally, the use of “based on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based on” one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.
While the present subject matter has been described in detail with respect to specific implementations 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 implementations. 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.

Claims (20)

What is claimed is:
1. A method of generating a channel hopping sequence for communicating across a wireless mesh network, the method comprising:
receiving an indication of a group of channels, each channel including a respective frequency range for communicating on the wireless mesh network and available for use in the channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning multiple time slots;
receiving, from a pseudo-random number generator, an indication of a first number;
assigning a first channel, from the group of channels, to the channel hopping sequence at a first position in the channel hopping sequence, based on the first number;
selecting an additional channel, from the group of channels, wherein the additional channel is adjacent to the first channel,
wherein frequencies included in a first width of the first channel are available at a first time slot for a first transmission mode,
wherein frequencies included in a combined width of the first channel and the additional channel are available at the first time slot for a second transmission mode;
determining a whitelist subset of the group of channels, wherein the whitelist subset omits the first channel and the additional channel; and
assigning a second channel, from the whitelist subset, to the channel hopping sequence at a second position in the channel hopping sequence, based on a second number received from the pseudo-random number generator.
2. The method of claim 1, further comprising determining a blacklist subset of the group of channels, wherein the blacklist subset includes the first channel and the additional channel, wherein:
the blacklist subset indicates that the first channel is unavailable for a first quantity of time slots that is based on a maximum transmission time of the first transmission mode, and
the blacklist subset indicates that the additional channel is unavailable for an additional quantity of time slots that is based on a maximum transmission time of the second transmission mode.
3. The method of claim 1, further comprising:
calculating a reserved time duration of the first channel, wherein the reserved time duration is based on a sum of the first time slot and a quantity of time slots associated with a maximum transmission time of the first transmission mode;
assigning a third channel, from the group of channels, to the channel hopping sequence at a third position, based on a third number received from the pseudo-random number generator, wherein the third position is associated with a third time slot;
based on a comparison of the reserved time duration and the third time slot, determining that the third time slot is subsequent to the reserved time duration; and
responsive to determining that the third time slot is subsequent to the reserved time duration, updating the whitelist subset to include the first channel.
4. The method of claim 3, further comprising:
calculating an additional reserved time duration of the additional channel, wherein the additional reserved time duration is based on an additional sum of the first time slot and an additional quantity of time slots associated with an additional maximum transmission time of the second transmission mode; and
responsive to determining that the third time slot is subsequent to the additional reserved time duration, updating the whitelist subset to include the additional channel.
5. The method of claim 1, wherein a communication that is transmitted via the second transmission mode is transmitted via a combination of frequencies included in the respective frequency ranges of the first channel and the additional channel.
6. The method of claim 1, wherein:
the first transmission mode is a low-bandwidth transmission mode, and
the second transmission mode is a high-bandwidth transmission mode.
7. The method of claim 1, further comprising:
selecting another channel from the group of channels based on the first channel,
wherein frequencies included in a combined width of the first channel and at least the another channel are available at the first time slot for a third transmission mode,
wherein the whitelist subset further omits the another channel.
8. The method of claim 1, wherein a node device on the mesh network:
selects the first position in the channel hopping sequence for a communication with an additional node on the mesh network;
determines the first channel and the first time slot based on the first position in the channel hopping sequence;
determines a signal quality associated with the additional node; and
based on the signal quality, selects the first transmission mode or the second transmission mode for the communication,
wherein the first transmission mode is selected responsive to determining that the signal quality is below a threshold signal quality,
wherein the second transmission mode is selected responsive to determining that the signal quality is above the threshold signal quality.
9. A node capable of generating a channel hopping sequence for communicating on a wireless mesh network, the node comprising a processor configured with code to perform operations comprising:
receiving an indication of a group of channels, each channel including a respective frequency range for communicating on the wireless mesh network and available for use in the channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning multiple time slots;
receiving, from a pseudo-random number generator, an indication of a first number;
assigning a first channel, from the group of channels, to the channel hopping sequence at a first position in the channel hopping sequence, based on the first number;
selecting an additional channel, from the group of channels, wherein the additional channel is adjacent to the first channel,
wherein frequencies included in a first width of the first channel are available at a first time slot for a first transmission mode,
wherein frequencies included in a combined width of the first channel and the additional channel are available at the first time slot for a second transmission mode;
determining a whitelist subset of the group of channels, wherein the whitelist subset omits the first channel and the additional channel; and
assigning a second channel, from the whitelist subset, to the channel hopping sequence at a second position in the channel hopping sequence, based on a second number received from the pseudo-random number generator.
10. The node of claim 9, the operations further comprising:
calculating a reserved time duration of the first channel, wherein the reserved time duration is based on a sum of the first time slot and a quantity of time slots associated with a communication transmitted via the first channel;
assigning another channel, from the group of channels, to the channel hopping sequence at another position, based on another number received from the pseudo-random number generator, wherein the another position is associated with another time slot;
based on a comparison of the reserved time duration and the another time slot, determining that the another time slot is subsequent to the reserved time duration; and
responsive to determining that the another time slot is subsequent to the reserved time duration, updating the whitelist subset to include the first channel.
11. The node of claim 10, the operations further comprising:
calculating an additional reserved time duration of the additional channel, wherein the additional reserved time duration is based on an additional sum of the first time slot and an additional quantity of time slots associated with an additional maximum transmission time of the second transmission mode; and
responsive to determining that the another time slot is subsequent to the additional reserved time duration, updating the whitelist subset to include the additional channel.
12. The node of claim 9, wherein a communication that is transmitted via the second transmission mode is transmitted via a combination of frequencies included in the respective frequency ranges of the first channel and the additional channel.
13. The node of claim 9, the operations further comprising:
selecting the first position in the channel hopping sequence for a communication with an additional node on the mesh network;
determining the first channel and the first time slot based on the selected first position in the channel hopping sequence;
determining a signal quality associated with the additional node; and
based on the signal quality, selecting the first transmission mode or the second transmission mode for the communication,
wherein the first transmission mode is selected responsive to determining that the signal quality is below a threshold signal quality,
wherein the second transmission mode is selected responsive to determining that the signal quality is above the threshold signal quality.
14. The node of claim 13, wherein:
the first channel is associated with the first transmission mode and the additional channel is associated with the second transmission mode;
responsive to selecting the first transmission mode, the node transmits the communication via the respective frequency range included in the first channel; and
responsive to selecting the second transmission mode, the node transmits the communication via a combination of the respective frequency ranges of the first channel and the additional channel.
15. A wireless mesh network comprising multiple nodes,
wherein at least one node of the multiple nodes is capable of generating a channel hopping sequence, such that each of the multiple nodes communicates on the wireless mesh network according to the generated channel hopping sequence,
wherein the at least one node comprises a processor configured with code to perform operations comprising:
receiving an indication of a group of channels, each channel including a respective frequency range for communicating on the wireless mesh network and available for use in the channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning multiple time slots;
receiving, from a pseudo-random number generator, an indication of a first number;
assigning a first channel, from the group of channels, to the channel hopping sequence at a first position in the channel hopping sequence, based on the first number;
selecting an additional channel, from the group of channels, wherein the additional channel is adjacent to the first channel,
wherein frequencies included in a first width of the first channel are available at a first time slot for a first transmission mode,
wherein frequencies included in a combined width of the first channel and the additional channel are available at the first time slot for a second transmission mode;
determining a whitelist subset of the group of channels, wherein the whitelist subset omits the first channel and the additional channel; and
assigning a second channel, from the whitelist subset, to the channel hopping sequence at a second position in the channel hopping sequence, based on a second number received from the pseudo-random number generator.
16. The wireless mesh network of claim 15, the operations further comprising determining a blacklist subset of the group of channels, wherein the blacklist subset includes the first channel and the additional channel, wherein:
the blacklist subset indicates that the first channel is unavailable for a first quantity of time slots that is based on a maximum transmission time of the first transmission mode, and
the blacklist subset indicates that the additional channel is unavailable for an additional quantity of time slots that is based on a maximum transmission time of the second transmission mode.
17. The wireless mesh network of claim 15, the operations further comprising:
calculating a reserved time duration of the first channel, wherein the reserved time duration is based on a sum of the first time slot and a quantity of time slots associated with a communication transmitted via the first channel;
assigning another channel, from the group of channels, to the channel hopping sequence at another position, based on another number received from the pseudo-random number generator, wherein the another position is associated with another time slot;
based on a comparison of the reserved time duration and the another time slot, determining that the another time slot is subsequent to the reserved time duration; and
responsive to determining that the another time slot is subsequent to the reserved time duration, updating the whitelist subset to include the first channel.
18. The wireless mesh network of claim 15, wherein a communication that is transmitted via the second transmission mode is transmitted via a combination of frequencies included in the respective frequency ranges of the first channel and the additional channel.
19. The wireless mesh network of claim 15, wherein a particular node of the multiple nodes:
selects the first position in the channel hopping sequence for a communication with an additional one of the multiple nodes;
determines the first channel and the first time slot based on the first position in the channel hopping sequence;
determines a signal quality associated with the additional one of the multiple nodes; and
based on the signal quality, selects the first transmission mode or the second transmission mode for the communication,
wherein the first transmission mode is selected responsive to determining that the signal quality is below a threshold signal quality,
wherein the second transmission mode is selected responsive to determining that the signal quality is above the threshold signal quality.
20. The wireless mesh network of claim 19, wherein:
the first channel is associated with the first transmission mode and the additional channel is associated with the second transmission mode;
responsive to selecting the first transmission mode, the particular node transmits the communication via the respective frequency range included in the first channel; and
responsive to selecting the second transmission mode, the particular node transmits the communication via a combination of the respective frequency ranges of the first channel and the additional channel.
US16/009,930 2018-06-15 2018-06-15 Channel hopping sequence generation with variable channel width Active 2038-08-07 US10595300B2 (en)

Priority Applications (10)

Application Number Priority Date Filing Date Title
US16/009,930 US10595300B2 (en) 2018-06-15 2018-06-15 Channel hopping sequence generation with variable channel width
EP19730645.9A EP3808002B1 (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
PCT/US2019/034091 WO2019240936A1 (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
CN201980053626.XA CN112534729B (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
CN202210955449.8A CN115314076A (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
CA3103829A CA3103829A1 (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
JP2020569871A JP7155298B2 (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
EP22152956.3A EP4087146B1 (en) 2018-06-15 2019-05-28 Channel hopping sequence generation with variable channel width
US16/751,526 US11153850B2 (en) 2018-06-15 2020-01-24 Channel hopping sequence generation with variable channel width
US17/481,009 US11770803B2 (en) 2018-06-15 2021-09-21 Channel hopping sequence generation with variable channel width

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/009,930 US10595300B2 (en) 2018-06-15 2018-06-15 Channel hopping sequence generation with variable channel width

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/751,526 Continuation US11153850B2 (en) 2018-06-15 2020-01-24 Channel hopping sequence generation with variable channel width

Publications (2)

Publication Number Publication Date
US20190387499A1 US20190387499A1 (en) 2019-12-19
US10595300B2 true US10595300B2 (en) 2020-03-17

Family

ID=66858035

Family Applications (3)

Application Number Title Priority Date Filing Date
US16/009,930 Active 2038-08-07 US10595300B2 (en) 2018-06-15 2018-06-15 Channel hopping sequence generation with variable channel width
US16/751,526 Active 2038-09-15 US11153850B2 (en) 2018-06-15 2020-01-24 Channel hopping sequence generation with variable channel width
US17/481,009 Active 2038-10-05 US11770803B2 (en) 2018-06-15 2021-09-21 Channel hopping sequence generation with variable channel width

Family Applications After (2)

Application Number Title Priority Date Filing Date
US16/751,526 Active 2038-09-15 US11153850B2 (en) 2018-06-15 2020-01-24 Channel hopping sequence generation with variable channel width
US17/481,009 Active 2038-10-05 US11770803B2 (en) 2018-06-15 2021-09-21 Channel hopping sequence generation with variable channel width

Country Status (6)

Country Link
US (3) US10595300B2 (en)
EP (2) EP3808002B1 (en)
JP (1) JP7155298B2 (en)
CN (2) CN115314076A (en)
CA (1) CA3103829A1 (en)
WO (1) WO2019240936A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153850B2 (en) * 2018-06-15 2021-10-19 Landis+Gyr Innovations, Inc. Channel hopping sequence generation with variable channel width

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020031514A1 (en) * 2018-08-07 2020-02-13 日本電信電話株式会社 Optical transport system and transport mode selection method
JP7037512B2 (en) * 2019-01-08 2022-03-16 株式会社東芝 Wireless communication equipment, wireless communication methods, and programs
CN115885241A (en) * 2020-06-25 2023-03-31 雷蛇(亚太)私人有限公司 Wireless data communication method, computer peripheral device and receiver device
CN112866963B (en) * 2020-12-31 2023-01-20 锐迪科微电子科技(上海)有限公司 Concentrator and node using method and device
CN112788630B (en) * 2021-01-26 2023-04-07 北京升哲科技有限公司 Channel determination method, device, communication equipment and storage medium
JP2022185211A (en) * 2021-06-02 2022-12-14 Smc株式会社 Pattern generation device, pattern generation method, and radio communication system

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586120A (en) 1995-07-05 1996-12-17 Motorola, Inc. Method for a channel hopping communication system with variable transmission bandwidth
US6112094A (en) * 1998-04-06 2000-08-29 Ericsson Inc. Orthogonal frequency hopping pattern re-use scheme
US20100189032A1 (en) * 2009-01-28 2010-07-29 Qualcomm Incorporated Frequency hopping in a wireless communication network
US8412758B2 (en) * 2005-12-12 2013-04-02 Telefonaktiebolaget Lm Ericsson (Publ) System and method for implementing a random number generator
US20160254839A1 (en) 2007-08-08 2016-09-01 Telefonaktiebolaget L M Ericsson (Publ) Multicarrier Communication System Employing Explicit Frequency Hopping
US20170223743A1 (en) * 2016-01-29 2017-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Frequency Hopping for Random Access
US20190052308A1 (en) * 2017-10-18 2019-02-14 Huaning Niu Design of frequency hopping pattern for unlicensed internet-of-things system
US20190149190A1 (en) * 2017-11-14 2019-05-16 Qualcomm Incorporated Logical channel hopping sequence design
US20190158139A1 (en) * 2018-01-30 2019-05-23 Intel Corporation Frequency hopping pattern for narrowband internet-of-things in unlicensed spectrum
US20190181995A1 (en) * 2017-12-08 2019-06-13 Qualcomm Incorporated Narrowband physical broadcast channel design on multiple anchor channels
US20190238177A1 (en) * 2018-01-30 2019-08-01 Qualcomm Incorporated Nested frequency hopping for data transmission

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020021745A1 (en) * 2000-04-07 2002-02-21 Negus Kevin J. Multi-channel-bandwidth frequency-hopping system
US7254158B2 (en) 2003-05-12 2007-08-07 Qualcomm Incorporated Soft handoff with interference cancellation in a wireless frequency hopping communication system
US7684464B2 (en) * 2004-12-21 2010-03-23 Qualcomm Incorporated Method and apparatus for performing channel assessment in a wireless communication system
WO2008036756A2 (en) * 2006-09-19 2008-03-27 Firetide, Inc. A multi-channel assignment method for multi-radio multi-hop wireless mesh networks
US9496918B2 (en) * 2007-08-08 2016-11-15 Telefonaktiebolaget Lm Ericsson (Publ) Multicarrier communication system employing explicit frequency hopping
US7849216B2 (en) * 2007-10-31 2010-12-07 Cisco Technology, Inc. Channel assignment for a multi-channel dual-radio mesh backhaul
US8331282B2 (en) * 2007-12-28 2012-12-11 Synapsense Corporation Apparatus and method for adaptive channel hopping in mesh networks
KR101021803B1 (en) * 2008-06-23 2011-03-22 가부시키가이샤 엔티티 도코모 Base station equipment, user equipment and communication control method
US8248989B2 (en) * 2008-11-05 2012-08-21 Electronics And Telecommunications Research Institute Wireless network system using cyclic frame
US8363693B2 (en) * 2010-04-16 2013-01-29 Hitachi, Ltd. Adaptive frequency hopping in time-slotted based wireless network
US8554141B2 (en) * 2010-06-24 2013-10-08 Broadcom Corporation Method and system for multi-stage device filtering in a bluetooth low energy device
US8948229B2 (en) * 2011-10-13 2015-02-03 Cisco Technology, Inc. Dynamic hopping sequence computation in channel hopping communication networks
EP2738948A1 (en) * 2012-11-28 2014-06-04 Sercel Method for setting frequency channels in a multi-hop wireless mesh network.
US9191063B2 (en) 2013-03-12 2015-11-17 Rosemount Inc. Channel grey listing
CA2921216C (en) 2013-10-18 2018-09-11 Elster Solutions, Llc Synchronous frequency hopping spread spectrum communications
US10644746B2 (en) 2016-04-29 2020-05-05 Texas Instruments Incorporated Pseudo channel hopping using scan dwell times in mesh networks without time synchronization
CN105979599B (en) * 2016-05-09 2019-03-22 重庆邮电大学 A kind of adaptive hop channel method of wireless sensor network based on channel quality prediction
CN107786244B (en) * 2016-08-31 2020-04-03 北京华为数字技术有限公司 Method and device for transmitting information
US9793949B1 (en) * 2016-10-07 2017-10-17 Trellisware Technologies, Inc. Methods and systems for secure and efficient flexible frequency hopping access
US11039382B2 (en) * 2017-06-07 2021-06-15 Apple Inc. EMTC-U measurement
US10595300B2 (en) * 2018-06-15 2020-03-17 Landis+Gyr Innovations, Inc. Channel hopping sequence generation with variable channel width

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586120A (en) 1995-07-05 1996-12-17 Motorola, Inc. Method for a channel hopping communication system with variable transmission bandwidth
US6112094A (en) * 1998-04-06 2000-08-29 Ericsson Inc. Orthogonal frequency hopping pattern re-use scheme
US8412758B2 (en) * 2005-12-12 2013-04-02 Telefonaktiebolaget Lm Ericsson (Publ) System and method for implementing a random number generator
US20160254839A1 (en) 2007-08-08 2016-09-01 Telefonaktiebolaget L M Ericsson (Publ) Multicarrier Communication System Employing Explicit Frequency Hopping
US20100189032A1 (en) * 2009-01-28 2010-07-29 Qualcomm Incorporated Frequency hopping in a wireless communication network
US20170223743A1 (en) * 2016-01-29 2017-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Frequency Hopping for Random Access
US20190052308A1 (en) * 2017-10-18 2019-02-14 Huaning Niu Design of frequency hopping pattern for unlicensed internet-of-things system
US20190149190A1 (en) * 2017-11-14 2019-05-16 Qualcomm Incorporated Logical channel hopping sequence design
US20190181995A1 (en) * 2017-12-08 2019-06-13 Qualcomm Incorporated Narrowband physical broadcast channel design on multiple anchor channels
US20190158139A1 (en) * 2018-01-30 2019-05-23 Intel Corporation Frequency hopping pattern for narrowband internet-of-things in unlicensed spectrum
US20190238177A1 (en) * 2018-01-30 2019-08-01 Qualcomm Incorporated Nested frequency hopping for data transmission

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PCT Patent Application No. PCT/US2019/034091, International Search Report and Written Opinion, dated Oct. 4, 2019, 11 pages.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11153850B2 (en) * 2018-06-15 2021-10-19 Landis+Gyr Innovations, Inc. Channel hopping sequence generation with variable channel width
US20220007341A1 (en) * 2018-06-15 2022-01-06 Landis+Gyr Innovations, Inc. Channel hopping sequence generation with variable channel width
US11770803B2 (en) * 2018-06-15 2023-09-26 Landis+Gyr Technology, Inc. Channel hopping sequence generation with variable channel width

Also Published As

Publication number Publication date
EP3808002B1 (en) 2022-01-26
US11153850B2 (en) 2021-10-19
EP4087146A1 (en) 2022-11-09
JP2021527363A (en) 2021-10-11
JP7155298B2 (en) 2022-10-18
US20200163055A1 (en) 2020-05-21
WO2019240936A1 (en) 2019-12-19
US20190387499A1 (en) 2019-12-19
CN115314076A (en) 2022-11-08
EP3808002A1 (en) 2021-04-21
EP4087146B1 (en) 2024-08-28
CN112534729A (en) 2021-03-19
CN112534729B (en) 2022-08-30
US11770803B2 (en) 2023-09-26
CA3103829A1 (en) 2019-12-19
US20220007341A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US11770803B2 (en) Channel hopping sequence generation with variable channel width
US9906266B2 (en) Frequency hopping processing method and apparatus
US9918313B2 (en) Spectrum allocation for base station
EP3618553A1 (en) Method, device and system for resource allocation, and computer-readable storage medium
US8594066B2 (en) Apparatus and method for managing channel resource in beacon-enabled wireless personal area network (WPAN)
US11368187B2 (en) Data transmission method and apparatus
CN106455110B (en) A kind of channel access method and device
CN105813087A (en) Data transmission method and frequency spectrum resource sharing method and device
US20160242197A1 (en) Resource scheduling method and apparatus and communication system
US12120642B2 (en) Method for demodulating shared reference signal, terminal device, and network device
CN105264828A (en) Channel scan method and apparatus
Gu et al. A real time testbed for the evaluation of cognitive radio mac
CN115694756A (en) Positioning reference signal processing method, terminal and network side equipment
Singh et al. Dynamic spectrum cognitive MAC (DySCO-MAC) for wireless mesh & ad hoc networks
JP3057189B2 (en) Wireless channel assignment method
CN111479322B (en) Resource allocation method and device
CN106851729A (en) The distribution method and device of a kind of carrier wave maximum transmit power
WO2019056332A1 (en) Method and device for transmitting data on unlicensed spectrum
Whitaker et al. Improving the accuracy of interference models for channel assignment
JP2015056897A (en) Parallel resource management in white space band using transmit power control and channel set assignment

Legal Events

Date Code Title Description
AS Assignment

Owner name: LANDIS+GYR INNOVATIONS, INC., GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MATTHEWS, JUSTIN CLIFFORD;KARLGAARD, MATTHEW DONALD;KHARANGATE, GOVIND;AND OTHERS;SIGNING DATES FROM 20180524 TO 20180615;REEL/FRAME:046102/0565

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: LANDIS+GYR TECHNOLOGY, INC., GEORGIA

Free format text: MERGER;ASSIGNOR:LANDIS+GYR INNOVATIONS, INC.;REEL/FRAME:065369/0461

Effective date: 20230109