Method, node and network for generating channel hopping sequence
By using a sequence generation module in a wireless mesh network to receive indications of the channel group from the pseudo-random number generator, dispatching channels and selecting additional channels to generate a hopping sequence, the problem of difficulty in transmission on adjacent channels in the prior art is solved, and the effect of reducing conflict risk and improving data transmission reliability is achieved.
Patent Information
- Application Number
- CN202210955449.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-06-15
- Filing Date
- 2019-05-28
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2039-05-28
AI Technical Summary
The prior art is difficult to generate a channel hopping sequence in a wireless mesh network that allows components to transmit on adjacent channels while reducing potential conflicts on adjacent channels.
The sequence generation module receives an indication of the channel group from the pseudo-random number generator, dispatches the channel and selects an additional channel, determines a subset of the whitelist of the channel group, thereby generating a hopping sequence. This module distributes channels to locations in the hopping sequence based on the numbers of the pseudo-random number generator and reduces conflicts by omitting certain channels.
Generating a channel hopping sequence that allows components to transmit on adjacent channels in a wireless mesh network is realized, reducing the risk of conflict on adjacent channels and improving the reliability and efficiency of data transmission.
Smart Images

Figure CN115314076B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to the field of wireless data transmission, and more particularly to determining a channel hopping sequence for multi-rate data transmission. Background Art
[0002] Components in a wireless mesh network can exchange data via at least one radio frequency (RF). A component on a mesh network can 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 can select an additional channel, or "hop" to the additional channel. For example, if a component is transmitting data, the mesh network component can hop to the additional channel. In addition, another component on the mesh network can hop to the additional channel and begin transmitting data via the additional channel. If multiple components hop to a particular channel and begin transmitting data, the mesh network may experience "collisions." For example, based on the collision, the data on the particular channel may become corrupted or incomprehensible to the receiving device.
[0003] In some aspects, a wireless mesh network may generate a channel hopping sequence. The hopping sequence may indicate the order in which components on the mesh network select channels for data transmission. In some cases, compliance with the hopping sequence may allow multiple components on the mesh network to transmit data using corresponding multiple channels without causing conflicts. In addition, the RF mesh network may determine the channel hopping sequence based on technical standards related to the operation of wireless personal area networks. However, the channel hopping sequence may be determined based on a given number of channels, each having a given width. In such a case, components on the mesh network may transmit data based on the width of the next available channel in the hopping sequence. Components may be prohibited from using adjacent channels (e.g., channels with adjacent frequency ranges) to prevent potential conflicts, even if the adjacent channels are not occupied by other transmissions from other components.
[0004] It is desirable to develop techniques to generate channel hopping sequences that allow components of a mesh network to transmit on channels adjacent to a selected channel. It is also desirable to generate hopping sequences that reduce potential collisions on adjacent channels if multiple components of a mesh network are transmitting. Summary of the invention
[0005] According to some implementations, the sequence generation module may receive an indication of the channel group and an indication of the 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 channel group to a hopping sequence at a first position. The assignment may be based on a number from a pseudo-random number generator or a pseudo-random sequence. In addition, the sequence generation module may select an additional channel based on the first channel, such as an additional channel adjacent to the first channel. In some cases, for a first transmission mode, a frequency included in the width of the first channel may be available at a first time slot. In addition, for a second transmission mode, a frequency included in the combined width of the first and additional channels may be available at a first position. The sequence generation module may determine a whitelist subset of the channel group, wherein 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 a hopping sequence at a second position based on another number from a pseudo-random number generator or in a pseudo-random sequence.
[0006] These illustrative implementations are mentioned not to limit or define the present disclosure, but to provide examples to aid understanding of the present disclosure. Additional implementations are discussed in the Detailed Description, and further description is provided there. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The features, implementations and advantages of the present disclosure will be better understood when the following detailed description is read with reference to the accompanying drawings, in which:
[0008] Figure 1 is a block diagram depicting an example of a mesh network including collector nodes and metering nodes,
[0009] Figure 2 is a diagram depicting an example of a conventional low bandwidth transmission signal,
[0010] Figure 3 is a diagram depicting an example of a mixed signal environment,
[0011] Figure 4 is a diagram depicting a mixed signal environment in which a conflicting event occurs,
[0012] Figure 5 is a flowchart depicting an example of a process for generating a hopping sequence,
[0013] Figure 6 is a flow chart depicting an example of a process 600 for updating a subset of whitelist channels from a group of channels in a channel hopping sequence,
[0014] Figure 7 is a diagram depicting a mixed signal environment according to aspects of the present disclosure,
[0015] Figure 8is a diagram depicting an example of reserved transport blocks for transmitting high or low bandwidth signals, and
[0016] Fig. 9 is a diagram illustrating an example of a computing system for generating a channel hopping sequence. DETAILED DESCRIPTION
[0017] As discussed above, the prior art for generating channel hopping sequences does not allow network components to transmit on adjacent channels while reducing potential conflicts. Certain implementations described herein provide for generating hopping sequences based on channel subsets. In some aspects, the channel subset may omit the channel assigned to the hopping sequence. In addition, the channel subset may omit another channel adjacent to the assigned channel in the hopping sequence. For example, the generated hopping sequence may include the assigned channel that can be used for transmission on the mesh network at a first position. Additional channels may be selected based on the assigned channels, such as additional channels adjacent to the assigned channels. A blacklist subset including the assigned and additional channels may be determined. A whitelist subset omitting 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.
[0018] In some aspects, a node on a mesh network can select a channel based on a hopping sequence. For example, a node can select a first channel for data transmission at a first time slot, as indicated by a first position in a hopping sequence. The node can determine that the signal strength between the node and the receiver (e.g., another node on the mesh network) is above a threshold signal level, such as based on a link quality indicator. In some cases, the link quality is determined by a link quality assessment module. In response to determining that the signal strength is above a threshold signal level, the node can select a high-bandwidth transmission mode and transmit data via a first channel and an additional channel adjacent to the first channel. For example, a node can transmit data using a combination of frequencies included in the first channel and the additional channel. During the transmission of the node, the additional node can select a second channel at a second time slot, as indicated by a second position in a hopping sequence. In such a case, since the hopping sequence is generated based on a whitelist that omits the first and additional channels, the possibility of data transmitted via the first and additional channels colliding with data transmitted via the second channel can be reduced.
[0019] Now referring to the accompanying drawings, Figure 11 is a block diagram depicting an example of a mesh network 100 including collector nodes and metering nodes communicatively coupled to a headend system. For example, the headend system 101 can communicate bidirectionally with a collector, such as collector 102. In some cases, the collector 102 can communicate with the headend 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 can communicate with a plurality of metering nodes, such as metering nodes 103a, 103b, 103c, and 103d (collectively referred to herein as metering nodes 103). For example, the collector 102 can receive data describing utility metering information from one or more of the metering nodes 103 (e.g., consumption information), or from the headend system 101 (e.g., pricing information). In addition, the collector 102 can provide data to the headend system 101, to one or more metering nodes 103.
[0020] 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 103a may communicate with the metering node 103b. The additional metering nodes may or may not communicate with the metering node 103a. For example, the metering node 103c may communicate with the metering node 103d, but not with the metering node 103a. The collector 102 may receive communications from one or more of the metering nodes 103. In addition, the metering node 103a may transmit information from the metering node 103a and the metering node 103b to the collector 102. In some cases, the configuration of the mesh network 100 may change, such as based on weak or strong signal strength detected from the collector 102 or one or more of the metering nodes 103. For example, based on the weak signal strength detected between the metering nodes 103a and 103b, the metering node 103b may establish communication with the metering node 103c. The signal strength between the nodes may be determined by a link quality assessment module included in the metering node 103b. Additional signal strengths between nodes may be determined by additional link quality assessment modules included in one or more of the metering nodes 103, the collector 102, or the headend system 101, respectively.
[0021] In some implementations, nodes on the mesh network 100 may transmit data via a channel based on a channel hopping sequence. In addition, one or more of the nodes on the mesh network 100 generate a channel hopping sequence to the collector 102 or the front-end system 101, such as via a sequence generation module included in one or more of the metering nodes 103. The sequence generation module may generate a channel hopping sequence based on information received from a pseudo-random number generator, such as a pseudo-random number or a pseudo-random number sequence. 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, nodes on the mesh network 100 may select a communication channel based on the hopping sequence. For example, the metering node 103a may select a first channel for transmitting data to the collector 102. In some aspects, the metering node 103a may select a channel based in part on the signal strength between the metering node 103a 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 a communication channel, a center frequency, or a frequency range associated with a channel.
[0022] Figure 2 2 is a diagram depicting an example of a transmission environment 200 in which a signal having a channel width and a transmission time can be transmitted. For example, the transmission environment 200 can have a plurality of time slots 201a-201s, collectively referred to herein as time slots 201, and a plurality of communication channels 202a-202i, collectively referred to herein as communication channels 202. Each of the channels 202 can include one or both of a center frequency or a frequency range. For example, the communication channel 202a can include a center frequency of approximately 902.2 MHz, or a frequency range from approximately 902 MHz to approximately 902.4 MHz. In some cases, communications, such as groups of one or more data packets, are transmitted via one or more of the frequencies included in the communication channel 202a. Communications can be transmitted via signals carried on one or more of the channel frequencies.
[0023] In some aspects, the transmission environment 200 can 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 between multiple channels using pseudo-random numbers (or pseudo-random number sequences) known to both the transmitting node and the receiving node. In some implementations, the FHSS environment or communications transmitted in the FHSS environment can comply with local or global guidelines. For example and not by way of limitation, the FHSS environment and / or the communications transmitted can comply with standards established by the Federal Communications Commission (FCC), such as CFR47§15.247.
[0024] In one aspect, low-speed communication 203 can be transmitted on communication channel 202d during time slots 201a-201g. Low-speed communication 203 can have a bandwidth. In some cases, the bandwidth can be associated with the channel width (e.g., of channel 202d), and the transmission time can be associated with the time slot 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 time slots 201-201g. In addition, other low-speed communications may require a larger or smaller number of time slots 201.
[0025] Figure 3 300 is a diagram depicting an example of a mixed signal transmission environment 300, wherein communications associated with various bandwidths can be transmitted. For example, the mixed signal environment 300 can have multiple time slots 301a-301s, collectively referred to as time slots 301 herein, and multiple communication channels 302a-302i, collectively referred to as communication channels 302 herein. In some cases, the mixed signal environment 300 can be a transmission environment including at least two signals with different transmission channel widths. In addition, the mixed signal transmission environment can include a frequency hopping spread spectrum environment with a total bandwidth of about 26 megahertz (MHz) operating bandwidth and about 65 channels. Other combinations of total bandwidth and number of channels are possible.
[0026] In one aspect, the mixed signal transmission environment is capable of transmitting low-speed communication 303 and high-speed communication 304. For example, low-speed communication 303 can be transmitted via a low-power signal capable of long-distance transmission, such as a signal characterized by: a channel width of about 400 kilohertz (kHz), a minimum data rate 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 301a-301g). In addition, the low-power signal can be capable of long-distance transmission, so that the low-speed communication 303 can be received by relatively distant nodes. In some aspects, the channel width of 400kHz can be represented by a specific one of the communication channels 302, such as a communication channel 302d including a center frequency of about 903.4MHz or a frequency range from about 903.2MHz to about 903.6MHz.
[0027] In addition, high-speed communications 304 can be transmitted via high-power signals capable of being transmitted over intermediate distances, such as signals characterized by a channel width of approximately 1200 kilohertz (kHz), a minimum data rate of approximately 400 kilobits per second (kbps), a maximum physical layer (PHY) payload of approximately 1500 bytes, and a transmission time of approximately two of the time slots 301 (e.g., time slots 301d-301e). In some aspects, a channel width of 1200 kHz can be represented by adjacent 400 kHz channels, such as adjacent channels 302f, 302g, and 302h. However, other combinations of signal channel widths, data rates, PHY payloads, and transmission times are possible.
[0028] In some aspects, the communication transmitted in the mixed signal transmission environment 300 is transmitted with a bandwidth based on the available number of communication channels 302. For example, low-speed communication 303 can be transmitted with a relatively low bandwidth via channel 302d. In addition, high-speed communication 304 can be transmitted with a relatively high bandwidth via combined channels 302f-302h. The maximum data rate of a channel can be calculated using Shannon's theorem, which indicates that the maximum data rate depends on the channel bandwidth (in Hz) and the logarithm associated with the signal-to-noise ratio. In some aspects, a higher channel bandwidth (e.g., a larger frequency range) can generally enable a higher maximum data rate via channel transmission. In addition, a lower channel bandwidth (e.g., a narrower frequency range) can generally enable a lower maximum data rate via channel transmission. In some aspects, the communication transmitted via multiple adjacent channels can be transmitted with a higher data rate, such as a data rate based on the combined frequency range of adjacent channels.
[0029] Figure 4 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 a plurality of time slots 401a-401s, collectively referred to herein as time slots 401, and a plurality of communication channels 402a-402i, collectively referred to herein as communication channels 402. In some cases, the mixed signal environment 400 may include at least two signals having different communication channel widths. The mixed signal environment 400 may also include a FHSS generated based on a pseudo-random sequence.
[0030] In some aspects, communications transmitted in the mixed signal environment 400 may be transmitted according to a channel hopping sequence 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, the low-speed communication 404 may be the first communication transmitted in the transmission environment 400. In this non-limiting example, the first position in the channel hopping sequence may be associated with one or more of the time slots 401a or channels 402f. A first node, such as a metering node included in a mesh network, may begin communication according to the first position in the channel hopping sequence, such as by transmitting via the first channel 402f at the time slot 401a. In the next time slot 401b, no additional communication is started (e.g., no node in the mesh network starts any additional communication).
[0031] In time slot 401c, high-speed communication 403 may be a second communication transmitted in transmission environment 400. In this non-limiting example, high-speed communication 403 may be transmitted with a higher bandwidth via additional channels, such as channels 402b, 402c, and 402d. For example, the second position in the channel hopping sequence may be associated with the second time slot 401c, channel 402c, and one or more of the one or more additional channels 402d or 402b. In this case, the hopping sequence may at least indicate the center channel 402c. The second node may start communication according to the second position in the channel hopping sequence, such as by transmitting the high-speed communication 403 via channel 402c. In addition, the second node may access channels adjacent to the indicated center channel 402c, such as channels 402b and 402d, for transmission of the high-speed communication 403.
[0032] In another aspect, at time slot 401e, the additional node begins to transmit high-speed communication 405. In this case, the hopping sequence includes an additional position indicating that channel 402g is available at time slot 401e. In addition, the additional node can access adjacent channels 402f and 402h for transmission of high-speed communication 405. The access of the resulting adjacent channels creates a collision event 406. For example, a collision event can be one in which low-speed communication 404 and high-speed communication 405 are transmitted at one or more same time slots (e.g., time slots 401e and 401f on channel 402f) on one or more same channels. Alternatively, it can be one in which multiple high-speed communications or multiple low-speed communications are transmitted at the same time slot on the same channel. In some cases, the result of the collision event is a communication loss at the receiving node.
[0033] In addition, a component transmitting on a particular channel may inadvertently transmit on an adjacent channel. For example, if the component transmits at a relatively high power, the transmission may be detectable at a frequency that is not included in the particular channel but is near (i.e., in the spectrum) the frequency in the particular channel. Although the adjacent channel is not assigned to the component for transmission, the power associated with the transmission (e.g., "power leakage") may be detectable on one or more adjacent channels. Such power "leakage" associated with the transmission may cause interference on the adjacent channel.
[0034] In some aspects, assigning multiple available channels to hopping sequences from across a spectrum of available channels (e.g., "spreading" the hopping sequence across the available channels) can improve transmissions on a mesh network. For example, spreading the hopping sequence across the available spectrum can reduce the likelihood of collision events, such as collision events on adjacent channels used by separate network components for separate communications. Additionally, spreading the hopping sequence across the available spectrum can reduce the likelihood of interference, such as interference from power leakage into frequencies in channels adjacent to the assigned channels.
[0035] In some aspects, a protection channel can be selected from communication channel 402, such as to provide buffering between a specific communication channel (or channel group) and other communication channels. For example, channel 402e can be selected as a protection channel 402e adjacent to communication channel 402f. Protection channel 402e can be reserved to provide buffering between communication channel 402f and other channels such as communication channel 402d. For example, protection channel 402e can include a frequency range adjacent to the frequency range of communication channel 402f, but little or no data is transmitted on this frequency range. In addition, the protection channel can be reserved for a duration, such as the duration of a time slot associated with the protected communication channel. For example, based on the duration of the low-speed communication 404 transmitted on communication channel 402f, protection channel 402e can be reserved in time slots 401a-401g. In some cases, the protection channel can provide buffering with other communication channels so that the transmission on the other communication channels is unlikely to interfere with the transmission on a specific communication channel.
[0036] In some implementations, channels other than the channels selected for the hopping sequence may be included in the blacklist or omitted from the whitelist. For example, a channel hopping sequence may be generated based on at least one pseudo-random number corresponding to at least the next channel so that the channel is assigned to a specific position in the hopping sequence. Additional channels, such as protection channels or adjacent channels associated with various transmission modes, may also be associated with specific positions. The blacklist may be updated to include the assigned channels and additional channels, or the whitelist may be updated to omit the assigned channels and additional channels. The blacklist may include, for example, a data object including a list (or other indication) of channels that are not available for assignment to a specific position in the hopping sequence. In addition, the whitelist may include, for example, a data object including a list (or other indication) of channels that are available for assignment to a specific position.
[0037] Figure 5 is a flow chart depicting an example of a process 500 for creating a multi-bandwidth transmission environment that minimizes signal conflicts by determining a subset of channel blacklists and a subset of channel whitelists. Figure 1-4 As described, the computing device executing the sequence generation module implements Figure 5 For illustrative purposes, process 500 refers to Figure 1-4 However, other implementations are possible.
[0038] At block 502, process 500 involves receiving an indication of a channel group, each channel including a corresponding frequency range that can be used for transmission on a mesh network (such as, for example, mesh network 100). In some cases, the mesh network can communicate using a frequency band defined by IEEE 802.15.4, where the total available bandwidth can be defined by an authorized licensed or unlicensed communication band. In a non-limiting example, the authorized communication band can be bounded by 902 MHz and 928 MHz. In this example, the total available bandwidth can be 26 MHz, and the number of channels can be defined by the quotient of the total available bandwidth and the desired channel width. For example, to obtain a channel width of 400 kHz and a total available bandwidth of 26 MHz, there will be 65 available channels (e.g., 400 kHz×65=26 MHz). In one aspect, the desired channel width can be designed to support a desired data rate, such as described by Shannon's theorem.
[0039] At block 504, processing 500 involves receiving an indication of a pseudo-random number, such as a pseudo-random number that can be used in a frequency hopping spread spectrum environment. In some cases, the pseudo-random number can be generated by a 9-bit pseudo-random number (PN9) generator. On the other hand, other random or pseudo-random number generators can be used. In some implementations, operations associated with block 504 can be performed at different points in processing 500. For example, a first number from a pseudo-random number generator can be received after operations associated with block 502, and a second number from a pseudo-random number generator can be received after operations associated with another block (such as one of blocks 510 or 512).
[0040] At block 506, process 500 involves assigning a first channel from the channel group to a hopping sequence at a first position based on a first number from a pseudo-random number generator. For example, at block 504, the first position may be associated with a first channel or a first time slot or both based on a first number from a PN9 generator. In some cases, the channel group may be a list of all available channels for communication, such as the available channels received at block 502.
[0041] At block 508, processing 500 involves selecting an additional channel from a channel group based on the first channel, such as an additional channel adjacent to the first channel. For example, an adjacent channel may have a range of frequencies (e.g., about 902.8 MHz to about 903.2 MHz) that is adjacent to the frequency range of the first channel (e.g., about 903.2 MHz to about 903.6 MHz), so that the combined width of the first and additional channels 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 a channel group may include selecting a plurality of additional channels, e.g., a protection channel adjacent to the selected additional channel. An example of a protection channel is a channel reserved for providing buffering to a communication channel (or a plurality of communication channels). As a non-limiting example, an additional channel may be selected from a channel group as the next higher adjacent channel of the first channel, and the protection channel may be the next higher adjacent channel of the additional channel. On the other hand, a plurality of additional channels may be selected based on the channel width desired for high-speed communication or low-speed communication. In some cases, one or more additional channels (including any protection channels) may be associated with the first position in the hopping sequence.
[0042] At block 510, the process 500 involves determining a blacklist subset of the channel group, wherein the blacklist subset includes a first channel and additional channels, such as the first channel assigned at block 506, and one or more additional channels selected at block 508. In some cases, the blacklist subset of channels includes previously assigned channels, such as the assigned first channel and one or more selected additional channels. For example, if a first channel, such as channel 402f, is assigned, and additional channel 402g is selected from communication channels 402, the blacklist subset of the channel group may include channels 402f and 402g. In some cases, other channels may also be added to the blacklist subset, such as protection channels, based on proximity to the assigned and selected channels. In some aspects, operations associated with block 510 may be omitted from the process 500.
[0043] At block 512, process 500 involves determining a whitelist subset of the channel group, wherein the whitelist subset omits the first channel and the additional channel. In some cases, the whitelist subset may be the 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 channel group except the first channel and the additional channel. In other aspects, the whitelist subset may include all available channels of the channel group except the channels that are members of the blacklist subset. In some aspects, operations associated with block 512 may be omitted from process 500.
[0044] At block 514, process 500 involves assigning a second channel from the whitelist subset to a hopping sequence at a second position based on a second number from a pseudo-random number generator. For example, the whitelist subset may include all available channels of a channel group omitting a previously assigned channel, which may be a member of a blacklist subset. In one aspect, the second channel is assigned to the hopping sequence from a pseudo-random selection of channels in the whitelist subset. For example, the second channel or the second time slot, or both, may be assigned to the second time slot. In addition, high-speed communication or low-speed communication may be initiated on the second channel at the second time slot. In some aspects, at block 504, 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.
[0045] In some aspects, the channels in the whitelist (or blacklist) can be weighted to adjust the probability of being selected (or not selected). For example, if the first channel and (multiple) additional channels are included in the blacklist, the channels in the whitelist subset can be weighted based on how close their frequencies are to the channels listed as blacklisted. The weighting can, for example, adjust the probability that the channel is selected as the next channel in the hopping sequence. Channels with frequencies near (on the spectrum) the frequencies included in the channels listed as blacklisted can be weighted to have a lower probability of selection, and channels with frequencies far away from the channels listed as blacklisted can be weighted to have a higher probability of selection. In some cases, weighting the selection probability can improve the expansion of the hopping sequence across the available spectrum. In addition, weighting the selection probability can reduce the possibility of conflict events or other interference in the mesh network.
[0046] Although process 500 describes creating a multi-bandwidth transmission environment by determining a blacklist and a whitelist subset of channels, other implementations are possible. For example, a channel hopping sequence can be determined during use of the multi-bandwidth transmission environment, such as by assigning channels to positions in the hopping sequence based on one or more communications currently being transmitted in the environment. A channel can be assigned to a hopping sequence based on a determination that the channel is not being used by one or more current communications (including high-bandwidth and low-bandwidth current communications). Such implementations are considered to be within the scope of the disclosed innovation.
[0047] In some implementations, a channel hopping sequence may be generated prior to using 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 headend system) so that the mesh network is used 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 a first time slot, a second channel in the sequence may be assigned to a second time slot, and during a second time slot, a third channel in the sequence may be assigned to a third time slot.
[0048] In some implementations, the channel hopping sequence may be partially or completely repeated. For example, once the time slot associated with the final position in the repeating hopping sequence has passed, 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., at the position at the end of the repeating sequence) are assigned based on one or more of the initial channels (e.g., at the starting position). For example, a node generating a hopping sequence may determine the final position in the sequence based on a blacklist, which includes channels assigned to the initial position. Using a blacklist together with the initially assigned channels may reduce the possibility that a particular channel is assigned to both the final position and the initial position in the hopping sequence. Additionally or alternatively, one or more initial channels may be assigned based on one or more of the final channels in the sequence. For example, a node generating a hopping sequence may determine the initial position based on a blacklist, which includes channels assigned to the final position.
[0049] In some cases, a subsequent channel hopping sequence may be generated for use after a previous hopping sequence is completed. For example, once a time slot associated with a final position in a previous hopping sequence has elapsed, a subsequent hopping sequence may be generated based on additional data received from a pseudo-random number generator. A subsequent hopping sequence may be generated from a previous hopping sequence based on a blacklist or a whitelist, or both (e.g., the blacklist or the whitelist may be "wrapped" with a hopping sequence). For example, if a blacklist associated with a previous hopping sequence indicates that a particular channel is not available, such as because it was assigned to the final position in the previous hopping sequence, a first position in an additional hopping sequence may be assigned based on a whitelist of available channels (e.g., omitting the particular channel).
[0050] In some cases, during a first duration associated with a first transmission mode (e.g., a low-speed transmission mode), a first channel may be omitted from a whitelist or included in a blacklist. When a channel is assigned to a hopping sequence at a position after the first duration, the whitelist (or blacklist) may be updated to include (or omit) the first channel so that the first channel is available for assignment to a hopping sequence at an additional position after the first duration. For example, Figure 3 It is illustrated that channel 302d may be excluded from the whitelist (or included in the blacklist) for a duration of seven time slots, corresponding to up to seven positions in the hopping sequence.
[0051] Further, additional channels (e.g., protection channels and / or communication channels adjacent to the first channel) may be omitted from the whitelist or included in the blacklist during a second duration associated with a second transmission mode (e.g., a high-speed transmission mode). When the channel is assigned to a hopping sequence at a position after the second duration, the whitelist (or blacklist) may be modified to include (or omit) the additional channel so that the additional channel may be reassigned to the hopping sequence at an additional position after the second duration. In some cases, such as if the additional position is after the second duration and before the first duration, the whitelist may be updated to include the additional channel and omit the first channel. For example, Figure 3 It is illustrated that channel 302d may be added to the whitelist after a duration of seven time slots, while channel 302f may be added to the whitelist after a duration of two time slots. Additionally, the blacklist may be updated to omit the additional channels and include the first channel. Other combinations of transmission modes, channel assignments, and durations are also possible, including channels associated with multiple transmission modes, and longer or shorter durations.
[0052] Figure 6 6 is a flow chart depicting an example of a process 600 for modifying a channel whitelist, such as a whitelist associated with a channel hopping sequence. Figure 1-5 As described, the computing device executing the sequence generation module implements Figure 6 For illustrative purposes, process 600 refers to Figure 1-5 and Figure 7-9 However, other implementations are possible. In some implementations, the whitelist, the blacklist, or both can be updated based on the durations associated with the various transmission modes of communication, as described elsewhere herein.
[0053] At block 602, process 600 involves receiving a channel hopping sequence, such as Figure 5The generated channel hopping sequence. In one aspect, the channel hopping sequence is associated with a whitelist, such as a whitelist subset of channels that can be used in the channel hopping sequence. The channels included in the hopping sequence can be associated with corresponding time slots or positions. For example, the hopping sequence may include a first channel associated with a first time slot, wherein the first channel is located at a first position in the hopping sequence. The first channel can be assigned based on a first pseudo-random number from a pseudo-random number generator. In some implementations, the channel hopping sequence can be based on the output (or modified output) of a PN9 generator. For example, the PN9 generator can generate a pseudo-random number or a pseudo-random number sequence, which can be modified based on a communication characterized by a channel width and a transmission time, such as described elsewhere herein. The whitelist associated with the channel hopping sequence can omit the first channel.
[0054] At block 604, process 600 involves calculating a reserved duration of the first channel associated with the first time slot. In some aspects, the reserved duration is based on the sum of the first time slot and the number of time slots associated with the transmission mode or the communication transmitted via the first channel. For example, low-speed communication 303 may be transmitted via communication channel 302d, as described with respect to FIG. Figure 3 In some cases, the low-speed communication 303 is transmitted during a certain number of time slots 301a-301g. In addition, based on the time slots 301a-301g associated with the low-speed communication 303, the communication channel 302d can have a reserved duration of seven time slots.
[0055] At block 605, process 600 involves assigning a second channel to a hopping sequence at a second position, the second channel being 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 a PN9 pseudo-random number generator, such as an additional pseudo-random number.
[0056] At block 606, process 600 involves comparing the reservation duration (e.g., of the first channel) with a second time slot associated with the second channel. For example, the second channel may be associated with time slot 301j. Operations associated with block 606 may compare the reservation duration of communication channel 302d (e.g., time slots 301a-301g associated with low-speed communication 303) with the second time slot 301j.
[0057] At block 608, process 600 involves determining whether the second time slot is after the reserved duration of the first channel. For example, a determination may be made whether the second time slot 301j is after the last time slot associated with the low speed communication 303 (eg, time slot 301g).
[0058] If operations associated with block 608 determine that the second time slot is not after the reserved duration (e.g., the second time slot occurs before the end of the reserved duration), process 600 may proceed to another block, such as block 602 or 604. For example, the whitelist omitting the first channel (such as communication channel 302d) may remain unmodified such that the first channel remains omitted from the whitelist.
[0059] If the operations associated with block 608 determine that the second time slot is after the reservation duration (e.g., the second time slot occurs after the end of the reservation duration), the process 600 can proceed to another block, such as block 610. At block 610, the process 600 involves modifying a whitelist associated with the channel hopping sequence. In some aspects, the whitelist can be updated to include the first channel. For example, in response to determining that the second time slot 301j is after the reservation duration of the communication channel 302d (e.g., after the time slot 301g), the whitelist associated with the channel hopping sequence of the mixed signal transmission environment 300 can be modified, such as to include the communication channel 302d.
[0060] In some aspects, operations associated with process 600 may release a communication channel assigned to a hopping sequence at a previous location, such as to reuse the released communication channel at an additional location or for additional communications. Further, operations associated with process 600 may release individual channels assigned to specific locations based on respective transmission modes associated with respective ones of the channels. For example, in a hopping sequence associated with mixed signal transmission environment 700, such as with respect to Figure 7As described, channels 702c, 702d, and 702e may each be assigned to a hopping sequence at a first position at a first time slot (e.g., time slot 701a). Channel 702d may be associated with a first transmission mode (e.g., a low bandwidth mode) and may have a retention duration of seven time slots (e.g., time slots 701a-701g). Channels 702c and 702e may each be associated with a second transmission mode (e.g., a high bandwidth mode) and may have a retention duration of two time slots (e.g., time slots 701a-701b). In some implementations, a whitelist (or blacklist) associated with the mixed signal transmission environment 700 may be updated based on the corresponding transmission modes associated with the various channels. For example, a sequence generation module implementing operations associated with processing 600 may assign at least channel 702f to a second position in the hopping sequence, such as at time slot 701g. The sequence generation module may determine that the second time slot (e.g., time slot 701g) of the second position is after the time slot (e.g., time slot 701a) of the first position. In addition, the sequence generation module may compare the reservation duration of each of channels 702c, 702d, and 702e with the second time slot. In response to determining that the second time slot (e.g., time slot 701g) is before the reservation duration of channel 702d and after the reservation durations of channels 702c and 702e, the whitelist of environment 700 may be modified to include channels 702c and 702e, and to omit (or continue to omit) channel 702d. In some cases, a channel associated with a particular transmission mode (e.g., high bandwidth mode) is released to be reused at a hopping sequence position before a channel associated with another transmission mode (e.g., low bandwidth mode).
[0061] In addition, updating the whitelist may allow the sequence generation module to update the blacklist. For example, a blacklist associated with a channel hopping sequence may indicate that one or more channels are not available for assignment to the channel hopping sequence (e.g., have been assigned, or may cause a conflict with transmissions on other channels that have been assigned). In some cases, the blacklist is determined to be an inverse list of the whitelist. Further, the whitelist may be determined to be an inverse list of the blacklist. In addition, both the whitelist and the blacklist may be determined based on the channel hopping sequence (e.g., based on the channels that have been assigned).
[0062] Figure 7is a diagram depicting a mixed signal transmission environment 700 according to a method of the present disclosure. For example, the mixed signal environment 700 may have a plurality of time slots 701a-701s, collectively referred to herein as time slots 701, and a plurality of communication channels 702a-702i, collectively referred to herein as communication channels 702. In some cases, the mixed signal environment 700 may include at least two signals with different communication channel widths. The mixed signal environment 700 may also allow for the implementation of FHSS, such as a channel hopping sequence generated based on a pseudo-random sequence. In some cases, when considering Figure 8 It can be better understood when considering Figure 7 certain aspects of .
[0063] In some aspects, one or more nodes included in the mesh network can transmit communications in the mixed signal environment 700 based on the generated channel hopping sequence. For example, node communication 703 can be initiated at time slot 701a. In this example, the channel hopping sequence includes channel 702d at time slot 701a. Node communication 703 can be transmitted in a low bandwidth mode or a high bandwidth mode. In one aspect, the transmission mode can be selected based on a link quality indicator or other factors, such as an indicator determined by a link quality assessment module. Figure 8 Additional aspects of transmission modes are discussed. In mixed signal environment 700, multi-node communications such as node communications 703, 704, 705, 706, and 707 can be transmitted in high bandwidth or low bandwidth mode, respectively. In a non-limiting example, node communication 703 can be transmitted in low bandwidth mode, and node communication 704 can be transmitted in high bandwidth mode. In one aspect, when a node communicates on one or more specific channels, the specific channels can be removed from the channel hopping sequence within the duration of the communication. For example, if a node is transmitting communication 703, the channel associated with communication 703 (e.g., channels 702c-702e) can be removed from the hopping sequence within the duration of the transmission (e.g., during time slots 701a-701b for high bandwidth communication, during time slots 701a-701g for low bandwidth communication).
[0064] In some cases, a node may transmit a communication on a channel indicated by a channel hopping sequence during a retention time associated with the indicated channel. For example, a node may transmit node communication 703 as high-bandwidth communication on channels 702c-702e during time slots 701a-701b. In additional or alternative aspects, a node may transmit node communication 703 as low-bandwidth communication on channel 701d during time slots 701a-701g. In one aspect, channel reservation may expire at or after the maximum transmission time reserved for the transmission mode. For example, at time slot 701g, node communication 704 may be transmitted on channel 702e, which is reserved for high-bandwidth communication by node communication 703 (e.g., during time slots 701a-701b). On the contrary, node communication 704 may not be transmitted on channel 702d, which is reserved for node communication 703 for low-bandwidth communication (e.g., during time slots 701g). In some cases, a guard channel may be used and may include an additional channel reservation adjacent to a high or low bandwidth communication channel as described herein. In some aspects, the guard channel may be implemented on a higher adjacent channel (e.g., having an adjacent frequency higher than the communication channel), a lower adjacent channel (e.g., having an adjacent frequency lower than the communication channel), or both.
[0065] Figure 8 8 is a diagram depicting an example of a reserved transmission frame for transmission of high or low bandwidth signals for transmitting communications in a mixed signal transmission environment 800. In some cases, the mixed signal transmission environment 800 has a plurality of time slots 801a-801s, collectively referred to as time slots 801, and a plurality of communication channels 802a-802i, 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. Although Figure 8 It is described with respect to a single communication transmitted between two nodes, but it should be appreciated that such aspects may also be applied to multiple communications transmitted between multiple nodes.
[0066] For example, a metering node may have data available for transmission to a collector node, such as information about Figure 1As described. In some cases, the metering node is capable of transmitting in a low bandwidth mode or a high bandwidth mode. In one aspect, the metering node selects the low bandwidth mode or the high bandwidth mode based at least in part on a link quality indicator. An example of a link quality indicator may be a signal strength metric, or another metric related to the ability of a transmitting node and a receiving node to successfully communicate a transmission. For example, if the link quality indicator is above a threshold signal quality, the transmitting node may transmit using a high bandwidth mode communication, such as the 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 a low bandwidth mode communication, such as the illustrated low bandwidth mode communication 803.
[0067] According to one aspect, a reserved transmission box 805 can be assigned for a particular communication such that the reserved transmission box 805 will reserve channels and time slots for both high-bandwidth mode communications and low-bandwidth mode communications. For example, the reserved transmission box 805 includes a channel 802f for time slots 801g-801l, such as a reservation for low-bandwidth mode communications 803. In addition, the reserved transmission box 805 includes channels 802e-g for time slots 801g-h, such as a reservation for high-bandwidth mode communications 804. In some cases, both a high-bandwidth communication mode and a low-bandwidth communication mode can be associated with any given reserved transmission box 805. For example, the transmitting node can determine which transmission mode is best for achieving successful transmission using the channels and time slots included in the reserved transmission box 805 based at least in part on the link quality indicator.
[0068] Any suitable computing system or group of computing systems may be used to perform the operations described herein. For example, Fig. 9 is a block diagram illustrating a computing environment capable of generating a channel hopping sequence for a mesh network as described herein, according to certain aspects.
[0069] Node 901 may be a network component on a mesh network, such as Figure 1 The depicted example of node 901 includes one or more processors 902 communicatively coupled to one or more memory devices 904. Processor 902 executes computer executable program code or accesses information stored in 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. Processor 902 may include any number (including one) of processing devices.
[0070] The memory device 904 includes any suitable non-transitory computer-readable medium for storing the 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 related to the generation of the channel hopping sequence. The computer-readable medium may include any electronic, optical, magnetic or other storage device capable of providing computer-readable instructions or other program codes to the processor. Non-limiting examples of computer-readable media include disks, memory chips, ROMs, RAMs, ASICs, optical storage devices, tapes or other magnetic storage devices, or any other medium from which a processing device can read instructions. The instructions may include processor-specific instructions generated by a compiler or interpreter from code written in any suitable computer programming language, including, for example, C, C++, C#, VisualBasic, Java, Python, Perl, JavaScript, and ActionScript.
[0071] Node 901 may also include multiple external or internal devices, such as input or output devices. For example, node 901 is shown as having an input / output (I / O) interface 908, which may receive input from an input device or provide output to an output device. Node 901 may also include a bus 906. Bus 906 may communicatively couple one or more components of node 901.
[0072] The node 901 may configure the processor 902 to execute the above Figure 1-8 The program code includes operations related to, for example, one or more of the 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 reside 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 above-mentioned program code, sequence generation module 905, link quality assessment module 913, pseudo-random number generator 915, communication channel list 917, and other parameters or data related to communication on the communication channel are stored in the memory device 904, such as Fig. 9 In additional or alternative aspects, one or more of the sequence generation module 905, link quality assessment module 913, pseudo-random number generator 915, communication channel list 917, and 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.
[0073] Fig. 9 The node 901 depicted in also includes at least one network interface 910. The network interface 910 includes any device or device group 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 adapter, a modem, and / or a radio transmitter, etc. The metering node group 103, the front-end system 101, and the collector 102 are connected to the node 901 via the 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 (but not limited to) the Internet, a private network (including a virtual private network), or any other suitable network. In some implementations, the metering node group 103, the front-end system 101, or the collector 102 may perform some of the operations described herein, such as generating a hopping sequence. The node 901 may be able to communicate with one or more of the metering node 103, the front-end system 101, and the collector 102 using the network interface 910.
[0074] General considerations
[0075] Numerous specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, it will be appreciated by those skilled in the art that the claimed subject matter may be practiced without these specific details. In other cases, methods, devices, or systems that should be known to a person of ordinary skill in the art are not described in detail in order to avoid obscuring the claimed subject matter.
[0076] Unless specifically stated otherwise, it should be appreciated that throughout this specification, discussions utilizing terms such as "processing," "computing," "calculating," "determining," and "identifying" refer to the actions or processes of a computing device, such as one or more computers or similar electronic computing devices, that manipulate or transform data represented as physical electronic or magnetic quantities in a computing platform's memory, registers, or other information storage device, transmission device, or display device.
[0077] The one or more systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device may include any suitable arrangement of components that provide results conditioned on one or more inputs. Suitable computing devices include multi-purpose microprocessor-based computer systems that access stored software that programs or configures the computing system from a general-purpose computing device to a dedicated computing device that implements one or more implementations of the present subject matter. Any suitable programming, scripting, or other type of language or combination of languages may be used to implement the teachings contained herein in software used in programming or configuring a computing device.
[0078] Implementations of the methods disclosed herein may be performed in the operation of such a computing device. The order of the blocks presented in the above examples may be changed—for example, the blocks may be reordered, combined, and / or decomposed into sub-blocks. Certain blocks or processes may be executed in parallel.
[0079] The use of "adapted to" or "configured to" herein is intended to be open and inclusive language that does not exclude devices adapted to or configured to perform additional tasks or steps. Additionally, the use of "based on" is intended to be open and inclusive, as a process, step, calculation, or other action "based on" one or more listed conditions or values may actually be based on additional conditions or values beyond those listed conditions or values. The headings, lists, and numbering included herein are for ease of explanation only and are not intended to be limiting.
[0080] Although the subject matter has been described in detail with respect to a specific implementation of the subject matter, it should be appreciated that those skilled in the art, upon realizing an understanding of the foregoing, may readily produce variations, changes, and equivalents of such implementations. Therefore, it should be understood that the present disclosure is presented for purposes of illustration and not limitation, and does not exclude such modifications, changes, and / or additions to the subject matter as should be apparent to one of ordinary skill in the art.
Claims
1. A method for 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 comprising a respective frequency range for communicating on the wireless mesh network and available for use in a channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning a plurality of time slots, assigning a first channel from the channel group to the channel hopping sequence at a first position in the channel hopping sequence; selecting an additional channel from the channel group, wherein the additional channel is adjacent to the first channel, wherein a frequency included in the combined width of the first channel and the additional channel is available for transmission at a first time slot at a first location; wherein a frequency included in the first width of the first channel is available for transmission at a second time slot at the first location; A second channel from the channel group is assigned to the channel hopping sequence at a second position in the channel hopping sequence, wherein the second channel is different from the first channel and the additional channel.
2. The method of claim 1, further comprising determining a blacklist subset of the channel group, 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 number of time slots 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 number of time slots based on the maximum transmission time of the second transmission mode.
3. The method of claim 1, wherein the communication transmitted at the first time slot at the first location is transmitted via a combination of frequencies included in the frequency range of the first channel and the additional channel.
4. The method according to claim 1, wherein: A frequency included in the first width of the first channel is available for a low bandwidth transmission mode at a first time slot, or Frequencies included in the combined width of the first channel and the additional channel are available for the high bandwidth transmission mode at the first time slot.
5. The method according to claim 1, further comprising: selecting another channel from the channel group based on the first channel, determining a whitelist subset of the channel group, wherein the whitelist subset omits the first channel, the additional channel, and the other channel, Therein, frequencies included in the combined width of the first channel and at least one further channel are available for transmission at the first time slot.
6. 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 comprising a respective frequency range for communicating on the wireless mesh network and available for use in a channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning a plurality of time slots, assigning a first channel from the channel group to a channel hopping sequence at a first position in the channel hopping sequence; selecting an additional channel from the channel group, wherein the additional channel is adjacent to the first channel, wherein a frequency included in a combined width of the first channel and the additional channel is available for transmission at a first location; as well as A second channel from the channel group is assigned to the channel hopping sequence at a second position in the channel hopping sequence, wherein the second channel is different from the first channel and the additional channel.
7. The node of claim 6, wherein communications transmitted at the first location are transmitted via a combination of frequencies included in a frequency range of the first channel and the additional channel.
8. A wireless mesh network comprising a plurality of nodes, wherein at least one of the plurality of nodes is capable of generating a channel hopping sequence, so that each of the plurality of nodes communicates on the wireless mesh network according to the generated channel hopping sequence, The at least one node capable of generating a channel hopping sequence comprises a processor, wherein the processor is configured with code to perform operations, the operations comprising: receiving an indication of a group of channels, each channel comprising a respective frequency range for communicating on the wireless mesh network and available for use in a channel hopping sequence, wherein the channel hopping sequence defines an ordered sequence of channel numbers spanning a plurality of time slots, assigning a first channel from the channel group to a channel hopping sequence at a first position in the channel hopping sequence; selecting an additional channel from the channel group, wherein the additional channel is adjacent to the first channel, wherein a frequency included in a combined width of the first channel and the additional channel is available for transmission at a first location; as well as A second channel from the channel group is assigned to the channel hopping sequence at a second position in the channel hopping sequence, wherein the second channel is different from the first channel and the additional channel.
9. The wireless mesh network of claim 8, the operations further comprising determining a blacklist subset of the channel group, 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 number of time slots 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 number of time slots based on the maximum transmission time of the second transmission mode.
10. The wireless mesh network of claim 8, wherein communications transmitted at the first location are transmitted via a combination of frequencies included in a frequency range of the first channel and the additional channel.
Citation Information
Patent Citations
Method and apparatus for performing channel assessment in a wireless communication system
CN101142739A
Base station device, user equipment, and communication control method
CN101940051A