Packet acknowledgment for polled mesh network communications

A method, wireless mesh network and processor-readable storage medium for promoting successful end-to-end communication in a polled mesh network while improving system throughput are disclosed herein. Successful communications are acknowledged at each hop level to reduce the need to duplicate packets for redundancy. In this way, if a first bidirectional node transmits a packet to a second bidirectional node, the second bidirectional node acknowledges the packet, and the first bidirectional node receives the acknowledgement, then the first bidirectional node does not need to send a duplicate packet.

TECHNICAL BACKGROUND

The reading of electrical energy, water flow, and gas usage has historically been accomplished with human meter readers who came on-site and manually documented meter readings. Over time, this manual meter reading methodology has been enhanced with walk by or drive by reading systems that use radio communications to and from a mobile collector device in a vehicle. Recently, there has been a concerted effort to accomplish meter reading using fixed communication networks that allow data to flow from the meter to a host computer system without human intervention.

Fixed communication networks can operate using wire line or radio technology. For example, distribution line carrier systems are wire-based and use the utility lines themselves for communications. Radio technology has tended to be preferred due to higher data rates and independence from the distribution network. Radio technology in the 902-928 MHz frequency range can operate without an FCC license by restricting power output and by spreading the transmitted energy over a large portion of the available bandwidth.

Automated systems, such as Automatic Meter Reading (AMR) and Advanced Metering Infrastructure (AMI) systems, exist for collecting data from meters that measure usage of resources, such as gas, water and electricity. Such systems may employ a number of different infrastructures for collecting this meter data from the meters. For example, some automated systems obtain data from the meters using a fixed wireless network that includes, for example, a central node, e.g., a collection device, in communication with a number of endpoint nodes (e.g., meter reading devices (MRDs) connected to meters). At the endpoint nodes, the wireless communications circuitry may be incorporated into the meters themselves, such that each endpoint node in the wireless network comprises a meter connected to an MRD that has wireless communication circuitry that enables the MRD to transmit the meter data of the meter to which it is connected. The wireless communication circuitry may include a transponder that is uniquely identified by a transponder serial number. The endpoint nodes may either transmit their meter data directly to the central node, or indirectly though one or more intermediate bi-directional nodes which serve as repeaters for the meter data of the transmitting node.

Some networks may employ a mesh networking architecture. In such networks, known as “mesh networks,” endpoint nodes are connected to one another through wireless communication links such that each endpoint node has a wireless communication path to the central node. One characteristic of mesh networks is that the component nodes can all connect to one another via one or more “hops.” Due to this characteristic, mesh networks can continue to operate even if a node or a connection breaks down. Accordingly, mesh networks are self-configuring and self-healing, significantly reducing installation and maintenance efforts.

Some AMI or AMR systems use a mobile collection device, such as a handheld computer equipped with RF technology or a van based RF system, to collect meter data. Communications are conducted between the collection device through repeaters to endpoint nodes. Data can be extracted from mesh networks using a number of different communication protocols. Some examples include a one-way protocol (also known as a bubble up protocol), a one-and-a-half-way protocol (also known as a 1.5-way protocol or a wake up protocol), and a two way protocol. In the one-way or bubble up protocol, the transponder in each MRD broadcasts its meter read data in such a way that the mobile collection device only needs to listen to receive the data. In the 1.5-way or wake up protocol, the mobile collection device broadcasts a wake up tone on a designated frequency. Any MRD within receiving range of the wake up tone will respond with its meter read data. In the two-way protocol, the mobile collection device transmits commands that are directed to particular MRDs. For example, the mobile collection device may use commands that include the serial numbers of transponders of the MRDs to which the commands are directed. In the two-way protocol, each MRD only responds to commands that include its transponder's serial number and ignores other commands. In this way, the mobile collection device selectively targets certain MRDs for downloading meter read data.

The 1.5-way and two-way protocols described above involve using polling techniques to pull data from an endpoint node to the central node via a predefined path. The path from an endpoint node to the collection device can have a relatively large number of repeaters. When polled communications are attempted for endpoint nodes that are several hop levels away from the collection device, outbound and inbound packets have built in redundancy to improve the probability of successful end-to-end communication. For example, when an endpoint node is eight hop levels away from a collection device, some conventional polled communication techniques involve automatically retrying each outbound and inbound packet three times to increase the probability that the packet will be successfully transmitted. This “brute force” method is quite effective in ensuring successful end-to-end communication, but consumes available bandwidth.

Accordingly, a need exists for a technique for promoting successful end-to-end communication in a polled mesh network while improving system throughput.

SUMMARY OF THE DISCLOSURE

A method, wireless mesh network and processor-readable storage medium for promoting successful end-to-end communication in a polled mesh network while improving system throughput are disclosed herein. According to various embodiments, successful communications are acknowledged at each hop level to reduce the need to duplicate packets for redundancy. In this way, if a first bidirectional node transmits a packet to a second bidirectional node, the second bidirectional node acknowledges the packet, and the first bidirectional node receives the acknowledgement, then the first bidirectional node does not need to send a duplicate packet.

One embodiment is directed to a method of operating a wireless mesh network comprising a central node and a plurality of bidirectional nodes in bidirectional wireless communication with the central node. Each bidirectional node has a respective wireless communication path to the central node that is either a direct path or an indirect path through one or more intermediate bidirectional nodes serving as repeater nodes. Each bidirectional node is characterized by a number of intermediate bidirectional nodes forming a respective wireless communication path to the central node. A first data communication comprising a preamble is initiated from the central node to a first bidirectional node using a first frequency channel selected from a plurality of frequency channels. A receive frequency of the central node is set to a second frequency channel selected from the plurality of frequency channels. In response to the first bidirectional node receiving the first data communication, an acknowledgement message is transmitted from the first bidirectional node to the central node using the second frequency channel. In response to the central node failing to receive the acknowledgement message within a defined time limit, the first data communication is retransmitted from the central node to the first bidirectional node using the second frequency channel.

Another embodiment is directed to a wireless mesh network. The wireless mesh network includes a central node comprising a transceiver configured to transmit and receive data communications using selected frequency channels of a plurality of frequency channels. Bidirectional nodes are in bidirectional wireless communication with the central node. Each bidirectional node has a respective wireless communication path to the central node that is either a direct path or an indirect path through one or more intermediate bidirectional nodes serving as repeater nodes. Each bidirectional node is characterized by a number of intermediate bidirectional nodes forming a respective wireless communication path to the central node. The central node initiates a first data communication comprising a preamble from the central node to a first bidirectional node of the plurality of bidirectional nodes using a first frequency channel selected from the plurality of frequency channels and sets a receive frequency of the transceiver of the central node to a second frequency channel selected from the plurality of frequency channels. In response to the first bidirectional node receiving the first data communication, the first bidirectional node transmits an acknowledgement message to the central node using the second frequency channel. The central node retransmits the first data communication to the first bidirectional node using the second frequency channel in response to the central node failing to receive the acknowledgement message within a defined time limit.

According to yet another embodiment, a processor-readable storage medium is disclosed. The processor-readable medium stores processor-executable instructions that, when executed by a processor, cause the processor to operate a wireless mesh network comprising a central node and a plurality of bidirectional nodes in bidirectional wireless communication with the central node by selecting a first frequency channel from a plurality of frequency channels and initiating a first data communication comprising a preamble from the central node to a first bidirectional node using the first frequency channel. A second frequency channel is selected from the plurality of frequency channels, and a receive frequency of the central node is set to the second frequency channel. In response to the first bidirectional node receiving the first data communication, an acknowledgement message is transmitted from the first bidirectional node to the central node using the second frequency channel. In response to the central node failing to receive the acknowledgement message within a defined time limit, the first data communication is retransmitted from the central node to the first bidirectional node using the second frequency channel.

Various embodiments may realize certain advantages. For example, acknowledging successful communications obviates the need to send duplicate packets when a packet has been successfully sent from one node to another. Accordingly, the average number of packets transmitted per hop may be reduced, improving throughput of the system.

Other features and advantages of the described embodiments may become apparent from the following detailed description and accompanying drawings.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Exemplary systems and methods for gathering meter data are described below with reference toFIGS. 1-8. It will be appreciated by those of ordinary skill in the art that the description given herein with respect to those figures is for exemplary purposes only and is not intended in any way to limit the scope of potential embodiments.

Generally, a plurality of meter devices, which operate to track usage of a service or commodity such as, for example, electricity, water, and gas, are operable to wirelessly communicate. One or more devices, referred to herein as “collectors,” are provided that “collect” data transmitted by the other meter devices so that it can be accessed by other computer systems. The collectors receive and compile metering data from a plurality of meter devices via wireless communications. A data collection server may communicate with the collectors to retrieve the compiled meter data.

FIG. 1provides a diagram of one exemplary metering system110. System110comprises a plurality of meters114, which are operable to sense and record consumption or usage of a service or commodity such as, for example, electricity, water, or gas. Meters114may be located at customer premises such as, for example, a home or place of business. Meters114comprise circuitry for measuring the consumption of the service or commodity being consumed at their respective locations and for generating data reflecting the consumption, as well as other data related thereto. Meters114may also comprise circuitry for wirelessly transmitting data generated by the meter to a remote location. Meters114may further comprise circuitry for receiving data, commands or instructions wirelessly as well. Meters that are operable to both receive and transmit data may be referred to as “bi-directional” or “two-way” meters, while meters that are only capable of transmitting data may be referred to as “transmit-only” or “one-way” meters. In bi-directional meters, the circuitry for transmitting and receiving may comprise a transceiver. In an illustrative embodiment, meters114may be, for example, electricity meters manufactured by Elster Electricity, LLC and marketed under the tradename REX.

System110further comprises collectors116. In one embodiment, collectors116are also meters operable to detect and record usage of a service or commodity such as, for example, electricity, water, or gas. In addition, collectors116are operable to send data to and receive data from meters114. Thus, like the meters114, the collectors116may comprise both circuitry for measuring the consumption of a service or commodity and for generating data reflecting the consumption and circuitry for transmitting and receiving data. In one embodiment, collector116and meters114communicate with and amongst one another using any one of several wireless techniques such as, for example, frequency hopping spread spectrum (FHSS) and direct sequence spread spectrum (DSSS).

A collector116and the meters114with which it communicates define a subnet/LAN120of system110. As used herein, meters114and collectors116may be referred to as “nodes” in the subnet120. In each subnet/LAN120, each meter transmits data related to consumption of the commodity being metered at the meter's location. The collector116receives the data transmitted by each meter114, effectively “collecting” it, and then periodically transmits the data from all of the meters in the subnet/LAN120to a data collection server206. The data collection server206stores the data for analysis and preparation of bills, for example. The data collection server206may be a specially programmed general purpose computing system and may communicate with collectors116via a network112. The network112may comprise any form of network, including a wireless network or a fixed-wire network, such as a local area network (LAN), a wide area network, the Internet, an intranet, a telephone network, such as the public switched telephone network (PSTN), a Frequency Hopping Spread Spectrum (FHSS) radio network, a mesh network, a Wi-Fi (802.11) network, a Wi-Max (802.16) network, a land line (POTS) network, or any combination of the above.

Referring now toFIG. 2, further details of the metering system110are shown. Typically, the system will be operated by a utility company or a company providing information technology services to a utility company. As shown, the system110comprises a network management server202, a network management system (NMS)204and the data collection server206that together manage one or more subnets/LANs120and their constituent nodes. The NMS204tracks changes in network state, such as new nodes registering/unregistering with the system110, node communication paths changing, etc. This information is collected for each subnet/LAN120and is detected and forwarded to the network management server202and data collection server206.

Each of the meters114and collectors116is assigned an identifier (LAN ID) that uniquely identifies that meter or collector on its subnet/LAN120. In this embodiment, communication between nodes (i.e., the collectors and meters) and the system110is accomplished using the LAN ID. However, it is preferable for operators of a utility to query and communicate with the nodes using their own identifiers. To this end, a marriage file208may be used to correlate a utility's identifier for a node (e.g., a utility serial number) with both a manufacturer serial number (i.e., a serial number assigned by the manufacturer of the meter) and the LAN ID for each node in the subnet/LAN120. In this manner, the utility can refer to the meters and collectors by the utilities identifier, while the system can employ the LAN ID for the purpose of designating particular meters during system communications.

A device configuration database210stores configuration information regarding the nodes. For example, in the metering system200, the device configuration database may include data regarding time of use (TOU) switchpoints, etc. for the meters114and collectors116communicating in the system110. A data collection requirements database212contains information regarding the data to be collected on a per node basis. For example, a utility may specify that metering data such as load profile, demand, TOU, etc. is to be collected from particular meter(s)114a. Reports214containing information on the network configuration may be automatically generated or in accordance with a utility request.

The network management system (NMS)204maintains a database describing the current state of the global fixed network system (current network state220) and a database describing the historical state of the system (historical network state222). The current network state220contains data regarding current meter-to-collector assignments, etc. for each subnet/LAN120. The historical network state222is a database from which the state of the network at a particular point in the past can be reconstructed. The NMS204is responsible for, amongst other things, providing reports214about the state of the network. The NMS204may be accessed via an API220that is exposed to a user interface216and a Customer Information System (CIS)218. Other external interfaces may also be implemented. In addition, the data collection requirements stored in the database212may be set via the user interface216or CIS218.

The data collection server206collects data from the nodes (e.g., collectors116) and stores the data in a database224. The data includes metering information, such as energy consumption and may be used for billing purposes, etc. by a utility provider.

The network management server202, network management system204and data collection server206communicate with the nodes in each subnet/LAN120via network110.

FIG. 3Ais a block diagram illustrating further details of one embodiment of a collector116. Although certain components are designated and discussed with reference toFIG. 3A, it should be appreciated that the invention is not limited to such components. In fact, various other components typically found in an electronic meter may be a part of collector116, but have not been shown inFIG. 3Afor the purposes of clarity and brevity. Also, the invention may use other components to accomplish the operation of collector116. The components that are shown and the functionality described for collector116are provided as examples, and are not meant to be exclusive of other components or other functionality.

As shown inFIG. 3A, collector116may comprise metering circuitry304that performs measurement of consumption of a service or commodity and a processor305that controls the overall operation of the metering functions of the collector116. The collector116may further comprise a display310for displaying information such as measured quantities and meter status and a memory312for storing data. The collector116further comprises wireless LAN communications circuitry306for communicating wirelessly with the meters114in a subnet/LAN and a network interface308for communication over the network112.

In one embodiment, the metering circuitry304, processor305, display310and memory312are implemented using an A3 ALPHA meter available from Elster Electricity, Inc. In that embodiment, the wireless LAN communications circuitry306may be implemented by a LAN Option Board (e.g., a 900 MHz two-way radio) installed within the A3 ALPHA meter, and the network interface308may be implemented by a WAN Option Board (e.g., a telephone modem) also installed within the A3 ALPHA meter. In this embodiment, the WAN Option Board308routes messages from network112(via interface port302) to either the meter processor305or the LAN Option Board306. LAN Option Board306may use a transceiver (not shown), for example a 900 MHz radio, to communicate data to meters114. Also, LAN Option Board306may have sufficient memory to store data received from meters114. This data may include, but is not limited to the following: current billing data (e.g., the present values stored and displayed by meters114), previous billing period data, previous season data, and load profile data.

LAN Option Board306may be capable of synchronizing its time to a real time clock (not shown) in A3 ALPHA meter, thereby synchronizing the LAN reference time to the time in the meter. The processing necessary to carry out the communication functionality and the collection and storage of metering data of the collector116may be handled by the processor305and/or additional processors (not shown) in the LAN Option Board306and the WAN Option Board308.

The responsibility of a collector116is wide and varied. Generally, collector116is responsible for managing, processing and routing data communicated between the collector and network112and between the collector and meters114. Collector116may continually or intermittently read the current data from meters114and store the data in a database (not shown) in collector116. Such current data may include but is not limited to the total kWh usage, the Time-Of-Use (TOU) kWh usage, peak kW demand, and other energy consumption measurements and status information. Collector116also may read and store previous billing and previous season data from meters114and store the data in the database in collector116. The database may be implemented as one or more tables of data within the collector116.

FIG. 3Bis a block diagram of an exemplary embodiment of a meter114that may operate in the system110ofFIGS. 1 and 2. As shown, the meter114comprises metering circuitry304′ for measuring the amount of a service or commodity that is consumed, a processor305′ that controls the overall functions of the meter, a display310′ for displaying meter data and status information, and a memory312′ for storing data and program instructions. The meter114further comprises wireless communications circuitry306′ for transmitting and receiving data to/from other meters114or a collector116.

Referring again toFIG. 1, in the exemplary embodiment shown, a collector116directly communicates with only a subset of the plurality of meters114in its particular subnet/LAN. Meters114with which collector116directly communicates may be referred to as “level one” meters114a. The level one meters114aare said to be one “hop” from the collector116. Communications between collector116and meters114other than level one meters114aare relayed through the level one meters114a. Thus, the level one meters114aoperate as repeaters for communications between collector116and meters114located further away in subnet120.

Each level one meter114atypically will only be in range to directly communicate with only a subset of the remaining meters114in the subnet120. The meters114with which the level one meters114adirectly communicate may be referred to as level two meters114b. Level two meters114bare one “hop” from level one meters114a, and therefore two “hops” from collector116. Level two meters114boperate as repeaters for communications between the level one meters114aand meters114located further away from collector116in the subnet120.

While only three levels of meters are shown (collector116, first level114a, second level114b) inFIG. 1, a subnet120may comprise any number of levels of meters114. For example, a subnet120may comprise one level of meters but might also comprise eight or more levels of meters114. In an embodiment wherein a subnet comprises eight levels of meters114, as many as 1024 meters might be registered with a single collector116.

As mentioned above, each meter114and collector116that is installed in the system110has a unique identifier (LAN ID) stored thereon that uniquely identifies the device from all other devices in the system110. Additionally, meters114operating in a subnet120comprise information including the following: data identifying the collector with which the meter is registered; the level in the subnet at which the meter is located; the repeater meter at the prior level with which the meter communicates to send and receive data to/from the collector; an identifier indicating whether the meter is a repeater for other nodes in the subnet; and if the meter operates as a repeater, the identifier that uniquely identifies the repeater within the particular subnet, and the number of meters for which it is a repeater. Collectors116have stored thereon all of this same data for all meters114that are registered therewith. Thus, collector116comprises data identifying all nodes registered therewith as well as data identifying the registered path by which data is communicated from the collector to each node. Each meter114therefore has a designated communications path to the collector that is either a direct path (e.g., all level one nodes) or an indirect path through one or more intermediate nodes that serve as repeaters.

Information is transmitted in this embodiment in the form of packets. For most network tasks such as, for example, reading meter data, collector116communicates with meters114in the subnet120using point-to-point transmissions. For example, a message or instruction from collector116is routed through the designated set of repeaters to the desired meter114. Similarly, a meter114communicates with collector116through the same set of repeaters, but in reverse.

In some instances, however, collector116may need to quickly communicate information to all meters114located in its subnet120. Accordingly, collector116may issue a broadcast message that is meant to reach all nodes in the subnet120. The broadcast message may be referred to as a “flood broadcast message.” A flood broadcast originates at collector116and propagates through the entire subnet120one level at a time. For example, collector116may transmit a flood broadcast to all first level meters114a. The first level meters114athat receive the message pick a random time slot and retransmit the broadcast message to second level meters114b. Any second level meter114bcan accept the broadcast, thereby providing better coverage from the collector out to the end point meters. Similarly, the second level meters114bthat receive the broadcast message pick a random time slot and communicate the broadcast message to third level meters. This process continues out until the end nodes of the subnet. Thus, a broadcast message gradually propagates outward from the collector to the nodes of the subnet120.

The flood broadcast packet header contains information to prevent nodes from repeating the flood broadcast packet more than once per level. For example, within a flood broadcast message, a field might exist that indicates to meters/nodes which receive the message, the level of the subnet the message is located; only nodes at that particular level may re-broadcast the message to the next level. If the collector broadcasts a flood message with a level of 1, only level 1 nodes may respond. Prior to re-broadcasting the flood message, the level 1 nodes increment the field to 2 so that only level 2 nodes respond to the broadcast. Information within the flood broadcast packet header ensures that a flood broadcast will eventually die out.

Generally, a collector116issues a flood broadcast several times, e.g. five times, successively to increase the probability that all meters in the subnet120receive the broadcast. A delay is introduced before each new broadcast to allow the previous broadcast packet time to propagate through all levels of the subnet.

Meters114may have a clock formed therein. However, meters114often undergo power interruptions that can interfere with the operation of any clock therein. Accordingly, the clocks internal to meters114cannot be relied upon to provide an accurate time reading. Having the correct time is necessary, however, when time of use metering is being employed. Indeed, in an embodiment, time of use schedule data may also be comprised in the same broadcast message as the time. Accordingly, collector116periodically flood broadcasts the real time to meters114in subnet120. Meters114use the time broadcasts to stay synchronized with the rest of the subnet120. In an illustrative embodiment, collector116broadcasts the time every 15 minutes. The broadcasts may be made near the middle of 15 minute clock boundaries that are used in performing load profiling and time of use (TOU) schedules so as to minimize time changes near these boundaries. Maintaining time synchronization is important to the proper operation of the subnet120. Accordingly, lower priority tasks performed by collector116may be delayed while the time broadcasts are performed.

In an illustrative embodiment, the flood broadcasts transmitting time data may be repeated, for example, five times, so as to increase the probability that all nodes receive the time. Furthermore, where time of use schedule data is communicated in the same transmission as the timing data, the subsequent time transmissions allow a different piece of the time of use schedule to be transmitted to the nodes.

Exception messages are used in subnet120to transmit unexpected events that occur at meters114to collector116. In an embodiment, the first 4 seconds of every 32-second period are allocated as an exception window for meters114to transmit exception messages. Meters114transmit their exception messages early enough in the exception window so the message has time to propagate to collector116before the end of the exception window. Collector116may process the exceptions after the 4-second exception window. Generally, a collector116acknowledges exception messages, and collector116waits until the end of the exception window to send this acknowledgement.

In an illustrative embodiment, exception messages are configured as one of three different types of exception messages: local exceptions, which are handled directly by the collector116without intervention from data collection server206; an immediate exception, which is generally relayed to data collection server206under an expedited schedule; and a daily exception, which is communicated to the communication server122on a regular schedule.

Exceptions are processed as follows. When an exception is received at collector116, the collector116identifies the type of exception that has been received. If a local exception has been received, collector116takes an action to remedy the problem. For example, when collector116receives an exception requesting a “node scan request” such as discussed below, collector116transmits a command to initiate a scan procedure to the meter114from which the exception was received.

If an immediate exception type has been received, collector116makes a record of the exception. An immediate exception might identify, for example, that there has been a power outage. Collector116may log the receipt of the exception in one or more tables or files. In an illustrative example, a record of receipt of an immediate exception is made in a table referred to as the “Immediate Exception Log Table.” Collector116then waits a set period of time before taking further action with respect to the immediate exception. For example, collector116may wait 64 seconds. This delay period allows the exception to be corrected before communicating the exception to the data collection server206. For example, where a power outage was the cause of the immediate exception, collector116may wait a set period of time to allow for receipt of a message indicating the power outage has been corrected.

If the exception has not been corrected, collector116communicates the immediate exception to data collection server206. For example, collector116may initiate a dial-up connection with data collection server206and download the exception data. After reporting an immediate exception to data collection server206, collector116may delay reporting any additional immediate exceptions for a period of time such as ten minutes. This is to avoid reporting exceptions from other meters114that relate to, or have the same cause as, the exception that was just reported.

If a daily exception was received, the exception is recorded in a file or a database table. Generally, daily exceptions are occurrences in the subnet120that need to be reported to data collection server206, but are not so urgent that they need to be communicated immediately. For example, when collector116registers a new meter114in subnet120, collector116records a daily exception identifying that the registration has taken place. In an illustrative embodiment, the exception is recorded in a database table referred to as the “Daily Exception Log Table.” Collector116communicates the daily exceptions to data collection server206. Generally, collector116communicates the daily exceptions once every 24 hours.

In the present embodiment, a collector assigns designated communications paths to meters with bi-directional communication capability, and may change the communication paths for previously registered meters if conditions warrant. For example, when a collector116is initially brought into system110, it needs to identify and register meters in its subnet120. A “node scan” refers to a process of communication between a collector116and meters114whereby the collector may identify and register new nodes in a subnet120and allow previously registered nodes to switch paths. A collector116can implement a node scan on the entire subnet, referred to as a “full node scan,” or a node scan can be performed on specially identified nodes, referred to as a “node scan retry.”

A full node scan may be performed, for example, when a collector is first installed. The collector116must identify and register nodes from which it will collect usage data. The collector116initiates a node scan by broadcasting a request, which may be referred to as a Node Scan Procedure request. Generally, the Node Scan Procedure request directs that all unregistered meters114or nodes that receive the request respond to the collector116. The request may comprise information such as the unique address of the collector that initiated the procedure. The signal by which collector116transmits this request may have limited strength and therefore is detected only at meters114that are in proximity of collector116. Meters114that receive the Node Scan Procedure request respond by transmitting their unique identifier as well as other data.

For each meter from which the collector receives a response to the Node Scan Procedure request, the collector tries to qualify the communications path to that meter before registering the meter with the collector. That is, before registering a meter, the collector116attempts to determine whether data communications with the meter will be sufficiently reliable. In one embodiment, the collector116determines whether the communication path to a responding meter is sufficiently reliable by comparing a Received Signal Strength Indication (RSSI) value (i.e., a measurement of the received radio signal strength) measured with respect to the received response from the meter to a selected threshold value. For example, the threshold value may be −60 dBm. RSSI values above this threshold would be deemed sufficiently reliable. In another embodiment, qualification is performed by transmitting a predetermined number of additional packets to the meter, such as ten packets, and counting the number of acknowledgements received back from the meter. If the number of acknowledgments received is greater than or equal to a selected threshold (e.g., 8 out of 10), then the path is considered to be reliable. In other embodiments, a combination of the two qualification techniques may be employed.

If the qualification threshold is not met, the collector116may add an entry for the meter to a “Straggler Table.” The entry includes the meter's LAN ID, its qualification score (e.g., 5 out of 10; or its RSSI value), its level (in this case level one) and the unique ID of its parent (in this case the collector's ID).

If the qualification threshold is met or exceeded, the collector116registers the node. Registering a meter114comprises updating a list of the registered nodes at collector116. For example, the list may be updated to identify the meter's system-wide unique identifier and the communication path to the node. Collector116also records the meter's level in the subnet (i.e. whether the meter is a level one node, level two node, etc.), whether the node operates as a repeater, and if so, the number of meters for which it operates as a repeater. The registration process further comprises transmitting registration information to the meter114. For example, collector116forwards to meter114an indication that it is registered, the unique identifier of the collector with which it is registered, the level the meter exists at in the subnet, and the unique identifier of its parent meter that will server as a repeater for messages the meter may send to the collector. In the case of a level one node, the parent is the collector itself The meter stores this data and begins to operate as part of the subnet by responding to commands from its collector116.

Qualification and registration continues for each meter that responds to the collector's initial Node Scan Procedure request. The collector116may rebroadcast the Node Scan Procedure additional times so as to insure that all meters114that may receive the Node Scan Procedure have an opportunity for their response to be received and the meter qualified as a level one node at collector116.

The node scan process then continues by performing a similar process as that described above at each of the now registered level one nodes. This process results in the identification and registration of level two nodes. After the level two nodes are identified, a similar node scan process is performed at the level two nodes to identify level three nodes, and so on.

Specifically, to identify and register meters that will become level two meters, for each level one meter, in succession, the collector116transmits a command to the level one meter, which may be referred to as an “Initiate Node Scan Procedure” command This command instructs the level one meter to perform its own node scan process. The request comprises several data items that the receiving meter may use in completing the node scan. For example, the request may comprise the number of timeslots available for responding nodes, the unique address of the collector that initiated the request, and a measure of the reliability of the communications between the target node and the collector. As described below, the measure of reliability may be employed during a process for identifying more reliable paths for previously registered nodes.

The meter that receives the Initiate Node Scan Response request responds by performing a node scan process similar to that described above. More specifically, the meter broadcasts a request to which all unregistered nodes may respond. The request comprises the number of timeslots available for responding nodes (which is used to set the period for the node to wait for responses), the unique address of the collector that initiated the node scan procedure, a measure of the reliability of the communications between the sending node and the collector (which may be used in the process of determining whether a meter's path may be switched as described below), the level within the subnet of the node sending the request, and an RSSI threshold (which may also be used in the process of determining whether a registered meter's path may be switched). The meter issuing the node scan request then waits for and receives responses from unregistered nodes. For each response, the meter stores in memory the unique identifier of the responding meter. This information is then transmitted to the collector.

For each unregistered meter that responded to the node scan issued by the level one meter, the collector attempts again to determine the reliability of the communication path to that meter. In one embodiment, the collector sends a “Qualify Nodes Procedure” command to the level one node which instructs the level one node to transmit a predetermined number of additional packets to the potential level two node and to record the number of acknowledgements received back from the potential level two node. This qualification score (e.g., 8 out of 10) is then transmitted back to the collector, which again compares the score to a qualification threshold. In other embodiments, other measures of the communications reliability may be provided, such as an RSSI value.

If the qualification threshold is not met, then the collector adds an entry for the node in the Straggler Table, as discussed above. However, if there already is an entry in the Straggler Table for the node, the collector will update that entry only if the qualification score for this node scan procedure is better than the recorded qualification score from the prior node scan that resulted in an entry for the node.

If the qualification threshold is met or exceeded, the collector116registers the node. Again, registering a meter114at level two comprises updating a list of the registered nodes at collector116. For example, the list may be updated to identify the meter's unique identifier and the level of the meter in the subnet. Additionally, the collector's116registration information is updated to reflect that the meter114from which the scan process was initiated is identified as a repeater (or parent) for the newly registered node. The registration process further comprises transmitting information to the newly registered meter as well as the meter that will serve as a repeater for the newly added node. For example, the node that issued the node scan response request is updated to identify that it operates as a repeater and, if it was previously registered as a repeater, increments a data item identifying the number of nodes for which it serves as a repeater. Thereafter, collector116forwards to the newly registered meter an indication that it is registered, an identification of the collector116with which it is registered, the level the meter exists at in the subnet, and the unique identifier of the node that will serve as its parent, or repeater, when it communicates with the collector116.

The collector then performs the same qualification procedure for each other potential level two node that responded to the level one node's node scan request. Once that process is completed for the first level one node, the collector initiates the same procedure at each other level one node until the process of qualifying and registering level two nodes has been completed at each level one node. Once the node scan procedure has been performed by each level one node, resulting in a number of level two nodes being registered with the collector, the collector will then send the Initiate Node Scan Response command to each level two node, in turn. Each level two node will then perform the same node scan procedure as performed by the level one nodes, potentially resulting in the registration of a number of level three nodes. The process is then performed at each successive node, until a maximum number of levels is reached (e.g., seven levels) or no unregistered nodes are left in the subnet.

It will be appreciated that in the present embodiment, during the qualification process for a given node at a given level, the collector qualifies the last “hop” only. For example, if an unregistered node responds to a node scan request from a level four node, and therefore, becomes a potential level five node, the qualification score for that node is based on the reliability of communications between the level four node and the potential level five node (i.e., packets transmitted by the level four node versus acknowledgments received from the potential level five node), not based on any measure of the reliability of the communications over the full path from the collector to the potential level five node. In other embodiments, of course, the qualification score could be based on the full communication path.

At some point, each meter will have an established communication path to the collector which will be either a direct path (i.e., level one nodes) or an indirect path through one or more intermediate nodes that serve as repeaters. If during operation of the network, a meter registered in this manner fails to perform adequately, it may be assigned a different path or possibly to a different collector as described below.

As previously mentioned, a full node scan may be performed when a collector116is first introduced to a network. At the conclusion of the full node scan, a collector116will have registered a set of meters114with which it communicates and reads metering data. Full node scans might be periodically performed by an installed collector to identify new meters114that have been brought on-line since the last node scan and to allow registered meters to switch to a different path.

In addition to the full node scan, collector116may also perform a process of scanning specific meters114in the subnet120, which is referred to as a “node scan retry.” For example, collector116may issue a specific request to a meter114to perform a node scan outside of a full node scan when on a previous attempt to scan the node, the collector116was unable to confirm that the particular meter114received the node scan request. Also, a collector116may request a node scan retry of a meter114when during the course of a full node scan the collector116was unable to read the node scan data from the meter114. Similarly, a node scan retry will be performed when an exception procedure requesting an immediate node scan is received from a meter114.

The system110also automatically reconfigures to accommodate a new meter114that may be added. More particularly, the system identifies that the new meter has begun operating and identifies a path to a collector116that will become responsible for collecting the metering data. Specifically, the new meter will broadcast an indication that it is unregistered. In one embodiment, this broadcast might be, for example, embedded in, or relayed as part of a request for an update of the real time as described above. The broadcast will be received at one of the registered meters114in proximity to the meter that is attempting to register. The registered meter114forwards the time to the meter that is attempting to register. The registered node also transmits an exception request to its collector116requesting that the collector116implement a node scan, which presumably will locate and register the new meter. The collector116then transmits a request that the registered node perform a node scan. The registered node will perform the node scan, during which it requests that all unregistered nodes respond. Presumably, the newly added, unregistered meter will respond to the node scan. When it does, the collector will then attempt to qualify and then register the new node in the same manner as described above.

Once a communication path between the collector and a meter is established, the meter can begin transmitting its meter data to the collector and the collector can transmit data and instructions to the meter. As mentioned above, data is transmitted in packets. “Outbound” packets are packets transmitted from the collector to a meter at a given level. In one embodiment, outbound packets contain the following fields, but other fields may also be included:

Length—the length of the packet;

SrcAddr—source address—in this case, the ID of the collector;

DestAddr—the LAN ID of the meter to which the packet addressed;

RptPath—the communication path to the destination meter (i.e., the list of identifiers of each repeater in the path from the collector to the destination node); andData—the payload of the packet.
The packet may also include integrity check information (e.g., CRC), a pad to fill-out unused portions of the packet and other control information. When the packet is transmitted from the collector, it will only be forwarded on to the destination meter by those repeater meters whose identifiers appear in the RptPath field. Other meters that may receive the packet, but that are not listed in the path identified in the RptPath field will not repeat the packet.

“Inbound” packets are packets transmitted from a meter at a given level to the collector. In one embodiment, inbound packets contain the following fields, but other fields may also be included:

Length—the length of the packet;

SrcAddr—source address—the address of the meter that initiated the packet;

DestAddr—the ID of the collector to which the packet is to be transmitted;

RptAddr—the ID of the parent node that serves as the next repeater for the sending node;Data—the payload of the packet;
Because each meter knows the identifier of its parent node (i.e., the node in the next lower level that serves as a repeater for the present node), an inbound packet need only identify who is the next parent. When a node receives an inbound packet, it checks to see if the RptAddr matches its own identifier. If not, it discards the packet. If so, it knows that it is supposed to forward the packet on toward the collector. The node will then replace the RptAddr field with the identifier of its own parent and will then transmit the packet so that its parent will receive it. This process will continue through each repeater at each successive level until the packet reaches the collector.

For example, suppose a meter at level three initiates transmission of a packet destined for its collector. The level three node will insert in the RptAddr field of the inbound packet the identifier of the level two node that serves as a repeater for the level three node. The level three node will then transmit the packet. Several level two nodes may receive the packet, but only the level two node having an identifier that matches the identifier in the RptAddr field of the packet will acknowledge it. The other will discard it. When the level two node with the matching identifier receives the packet, it will replace the RptAddr field of the packet with the identifier of the level one packet that serves as a repeater for that level two packet, and the level two packet will then transmit the packet. This time, the level one node having the identifier that matches the RptAddr field will receive the packet. The level one node will insert the identifier of the collector in the RptAddr field and will transmit the packet. The collector will then receive the packet to complete the transmission.

A collector116periodically retrieves meter data from the meters that are registered with it. For example, meter data may be retrieved from a meter every 4 hours. Where there is a problem with reading the meter data on the regularly scheduled interval, the collector will try to read the data again before the next regularly scheduled interval. Nevertheless, there may be instances wherein the collector116is unable to read metering data from a particular meter114for a prolonged period of time. The meters114store an indication of when they are read by their collector116and keep track of the time since their data has last been collected by the collector116. If the length of time since the last reading exceeds a defined threshold, such as for example, 18 hours, presumably a problem has arisen in the communication path between the particular meter114and the collector116. Accordingly, the meter114changes its status to that of an unregistered meter and attempts to locate a new path to a collector116via the process described above for a new node. Thus, the exemplary system is operable to reconfigure itself to address inadequacies in the system.

In some instances, while a collector116may be able to retrieve data from a registered meter114occasionally, the level of success in reading the meter may be inadequate. For example, if a collector116attempts to read meter data from a meter114every 4 hours but is able to read the data, for example, only 70 percent of the time or less, it may be desirable to find a more reliable path for reading the data from that particular meter. Where the frequency of reading data from a meter114falls below a desired success level, the collector116transmits a message to the meter114to respond to node scans going forward. The meter114remains registered but will respond to node scans in the same manner as an unregistered node as described above. In other embodiments, all registered meters may be permitted to respond to node scans, but a meter will only respond to a node scan if the path to the collector through the meter that issued the node scan is shorter (i.e., less hops) than the meter's current path to the collector. A lesser number of hops are assumed to provide a more reliable communication path than a longer path. A node scan request always identifies the level of the node that transmits the request, and using that information, an already registered node that is permitted to respond to node scans can determine if a potential new path to the collector through the node that issued the node scan is shorter than the node's current path to the collector.

If an already registered meter114responds to a node scan procedure, the collector116recognizes the response as originating from a registered meter but that by re-registering the meter with the node that issued the node scan, the collector may be able to switch the meter to a new, more reliable path. The collector116may verify that the RSSI value of the node scan response exceeds an established threshold. If it does not, the potential new path will be rejected. However, if the RSSI threshold is met, the collector116will request that the node that issued the node scan perform the qualification process described above (i.e., send a predetermined number of packets to the node and count the number of acknowledgements received). If the resulting qualification score satisfies a threshold, then the collector will register the node with the new path. The registration process comprises updating the collector116and meter114with data identifying the new repeater (i.e. the node that issued the node scan) with which the updated node will now communicate. Additionally, if the repeater has not previously performed the operation of a repeater, the repeater would need to be updated to identify that it is a repeater. Likewise, the repeater with which the meter previously communicated is updated to identify that it is no longer a repeater for the particular meter114. In other embodiments, the threshold determination with respect to the RSSI value may be omitted. In such embodiments, only the qualification of the last “hop” (i.e., sending a predetermined number of packets to the node and counting the number of acknowledgements received) will be performed to determine whether to accept or reject the new path.

In some instances, a more reliable communication path for a meter may exist through a collector other than that with which the meter is registered. A meter may automatically recognize the existence of the more reliable communication path, switch collectors, and notify the previous collector that the change has taken place. The process of switching the registration of a meter from a first collector to a second collector begins when a registered meter114receives a node scan request from a collector116other than the one with which the meter is presently registered. Typically, a registered meter114does not respond to node scan requests. However, if the request is likely to result in a more reliable transmission path, even a registered meter may respond. Accordingly, the meter determines if the new collector offers a potentially more reliable transmission path. For example, the meter114may determine if the path to the potential new collector116comprises fewer hops than the path to the collector with which the meter is registered. If not, the path may not be more reliable and the meter114will not respond to the node scan. The meter114might also determine if the RSSI of the node scan packet exceeds an RSSI threshold identified in the node scan information. If so, the new collector may offer a more reliable transmission path for meter data. If not, the transmission path may not be acceptable and the meter may not respond. Additionally, if the reliability of communication between the potential new collector and the repeater that would service the meter meets a threshold established when the repeater was registered with its existing collector, the communication path to the new collector may be more reliable. If the reliability does not exceed this threshold, however, the meter114does not respond to the node scan.

If it is determined that the path to the new collector may be better than the path to its existing collector, the meter114responds to the node scan. Included in the response is information regarding any nodes for which the particular meter may operate as a repeater. For example, the response might identify the number of nodes for which the meter serves as a repeater.

The collector116then determines if it has the capacity to service the meter and any meters for which it operates as a repeater. If not, the collector116does not respond to the meter that is attempting to change collectors. If, however, the collector116determines that it has capacity to service the meter114, the collector116stores registration information about the meter114. The collector116then transmits a registration command to meter114. The meter114updates its registration data to identify that it is now registered with the new collector. The collector116then communicates instructions to the meter114to initiate a node scan request. Nodes that are unregistered, or that had previously used meter114as a repeater respond to the request to identify themselves to collector116. The collector registers these nodes as is described above in connection with registering new meters/nodes.

Under some circumstances it may be necessary to change a collector. For example, a collector may be malfunctioning and need to be taken off-line. Accordingly, a new communication path must be provided for collecting meter data from the meters serviced by the particular collector. The process of replacing a collector is performed by broadcasting a message to unregister, usually from a replacement collector, to all of the meters that are registered with the collector that is being removed from service. In one embodiment, registered meters may be programmed to only respond to commands from the collector with which they are registered. Accordingly, the command to unregister may comprise the unique identifier of the collector that is being replaced. In response to the command to unregister, the meters begin to operate as unregistered meters and respond to node scan requests. To allow the unregistered command to propagate through the subnet, when a node receives the command it will not unregister immediately, but rather remain registered for a defined period, which may be referred to as the “Time to Live”. During this time to live period, the nodes continue to respond to application layer and immediate retries allowing the unregistration command to propagate to all nodes in the subnet. Ultimately, the meters register with the replacement collector using the procedure described above.

One of collector's116main responsibilities within subnet120is to retrieve metering data from meters114. In one embodiment, collector116has as a goal to obtain at least one successful read of the metering data per day from each node in its subnet. Collector116attempts to retrieve the data from all nodes in its subnet120at a configurable periodicity. For example, collector116may be configured to attempt to retrieve metering data from meters114in its subnet120once every 4 hours. In greater detail, in one embodiment, the data collection process begins with the collector116identifying one of the meters114in its subnet120. For example, collector116may review a list of registered nodes and identify one for reading. The collector116then communicates a command to the particular meter114that it forward its metering data to the collector116. If the meter reading is successful and the data is received at collector116, the collector116determines if there are other meters that have not been read during the present reading session. If so, processing continues. However, if all of the meters114in subnet120have been read, the collector waits a defined length of time, such as, for example, 4 hours, before attempting another read.

If during a read of a particular meter, the meter data is not received at collector116, the collector116begins a retry procedure wherein it attempts to retry the data read from the particular meter. Collector116continues to attempt to read the data from the node until either the data is read or the next subnet reading takes place. In an embodiment, collector116attempts to read the data every 60 minutes. Thus, wherein a subnet reading is taken every 4 hours, collector116may issue three retries between subnet readings.

Meters114are often two-way meters—i.e. they are operable to both receive and transmit data. However, one-way meters that are operable only to transmit and not receive data may also be deployed.FIG. 4is a block diagram illustrating a subnet401that includes a number of one-way meters451-456. As shown, meters114a-kare two-way devices. In this example, the two-way meters114a-koperate in the exemplary manner described above, such that each meter has a communication path to the collector116that is either a direct path (e.g., meters114aand114bhave a direct path to the collector116) or an indirect path through one or more intermediate meters that serve as repeaters. For example, meter114hhas a path to the collector through, in sequence, intermediate meters114dand114b. In this example embodiment, when a one-way meter (e.g., meter451) broadcasts its usage data, the data may be received at one or more two-way meters that are in proximity to the one-way meter (e.g., two-way meters114fand114g). In one embodiment, the data from the one-way meter is stored in each two-way meter that receives it, and the data is designated in those two-way meters as having been received from the one-way meter. At some point, the data from the one-way meter is communicated, by each two-way meter that received it, to the collector116. For example, when the collector reads the two-way meter data, it recognizes the existence of meter data from the one-way meter and reads it as well. After the data from the one-way meter has been read, it is removed from memory.

While the collection of data from one-way meters by the collector has been described above in the context of a network of two-way meters114that operate in the manner described in connection with the embodiments described above, it is understood that the present invention is not limited to the particular form of network established and utilized by the meters114to transmit data to the collector. Rather, the present invention may be used in the context of any network topology in which a plurality of two-way communication nodes are capable of transmitting data and of having that data propagated through the network of nodes to the collector.

According to various embodiments, successful communications are acknowledged at each hop level to reduce the need to duplicate packets for redundancy. In this way, if a first bidirectional node transmits a packet to a second bidirectional node, the second bidirectional node acknowledges the packet, and the first bidirectional node receives the acknowledgement, then the first bidirectional node does not need to send a duplicate packet. Various embodiments may realize certain advantages. For example, acknowledging successful communications obviates the need to send duplicate packets when a packet has been successfully sent from one node to another. Accordingly, the average number of packets transmitted per hop may be reduced, improving throughput of the system. As a particular example, in a mesh network in which each hop level has been qualified to a performance level of 80%—i.e., each bidirectional node can be expected to transmit successfully 80% of the time—a wireless communication path having eight hop levels might require as many as three immediate retries at each hop level in a conventional system to develop a satisfactory end to end performance value. Using acknowledgements at each hop level may decrease the average number of packets transmitted per hop level in such a network from three to approximately one, resulting in an improvement of the throughput of the network by a factor of approximately four.

In some embodiments described in this disclosure, it is assumed that at least three immediate retries are programmed into the messaging protocol for communicating between bidirectional nodes or between a central node and a bidirectional node. It will be appreciated that the number of retries can be configured for each message.

In some embodiments, an originating device, either a central node or a bidirectional node, sends a packet outbound on a frequency channel Fn. The frequency channel is selected from a number of defined frequency channels. For example, in a frequency hopping wireless mesh network operating in the 902-928 MHz frequency range, communications can be conducted using different frequency channels as described in the FCC controlling guidelines for Part 15.247, as specified at 47 CFR 15.247. These guidelines direct the use of 25 frequency channels when the transmit power is less than 0.25 watts.

A receiving device, e.g., another bidirectional node, scans the full spectrum of potential channels and finds the packet on the frequency channel Fn. This self-coherency allows for all endpoint devices to be unsynchronized for the majority of their communications. To achieve self-coherency, an extended preamble is transmitted in all messages in which the frequency channel is not known a priori by the receiving device. This extended preamble may cause the normal packet length to be longer than desired.

After the originating device completes the transmission of the packet, a number of possible outcomes may result. First, the communication may be successful, in which case the receiving device transmits an acknowledgement to the originating device and the originating device receives the acknowledgement. Second, the receiving device may not receive the packet, in which case the receiving device does not transmit an acknowledgement to the originating device. Third, the receiving device may receive the packet and transmit an acknowledgement to the originating device, but the originating device may not receive the acknowledgement.FIGS. 5-7are process flow diagrams illustrating example methods of operating a mesh network in each of these scenarios.

FIG. 5is a process flow diagram illustrating an example method500for operating a wireless mesh network in a scenario in which the communication is successful. First, at a step502, an originating device, such as a collector116ofFIG. 1, sets its transmit frequency channel to a frequency channel Fn. At a step504, the collector116transmits the outbound packet on the frequency channel Fn. At a step506, a receiving device, such as a bidirectional node located one hop level away from the collector116(i.e., a “first hop device”), scans the range of potential frequency channels, finds the packet at frequency channel Fn, and proceeds to decode the packet at a step508. Meanwhile, after the collector116transmits the outbound packet, it sets its receive frequency channel to frequency channel Fn+1 for a short delay at a step510to listen for an acknowledgement, or “ACK,” from the first hop device. It will be appreciated that frequency channel Fn+1 denotes another frequency channel in the frequency hopping sequence that follows frequency channel Fn. Frequency channel Fn+1 may be either a higher or a lower frequency channel than Fn.

After receiving the packet at step506, the first hop device sets its transmitter to frequency channel Fn+1 at a step512and sends a short acknowledgement, or “ACK,” to the collector116at a step514, which the collector116receives at a step516. It will be appreciated that, whileFIG. 5depicts steps512and514as occurring after step508, they may be performed before step508in some embodiments.

After sending the acknowledgement to the collector116at step514, the first hop device sets its receiver to frequency channel Fn+1for a short delay at a step518to listen for a preamble from the collector116. Had the collector116not received the acknowledgement from the first hop device, the collector116would have retransmitted the outbound packet on frequency channel Fn+1. However, because in the scenario depicted inFIG. 5the collector116did receive the acknowledgement from the first hop device, the collector116does not retransmit the outbound packet on frequency channel Fn+1. Accordingly, when the first hop device listens for the preamble from the collector116on frequency channel Fn+1, the first hop device will not detect a preamble on frequency channel Fn+1.

After not receiving the preamble during this delay, the first hop device sets its transmit frequency to a frequency channel Fn+2 at a step520. At a step522, the first hop device transmits the outbound packet on frequency channel Fn+2 toward a second hop device that is addressed. While not shown inFIG. 5, the second hop device scans the range of potential frequency channels, finds the packet at frequency channel Fn+2, and proceeds to decode the packet, just as the first hop device did previously. The second hop device then repeats the message or responds as required.

Accordingly, it can be appreciated that by using acknowledgements, the method of operating the wireless mesh network shown inFIG. 5may eliminate the retries that are characteristic of certain conventional approaches to operating wireless mesh networks. As a result, successful communications can be maintained while improving throughput.

In some cases, the receiving device, e.g., the first hop device or the second hop device in the above example, may not receive the outbound packet from the originating device.FIG. 6is a process flow diagram illustrating another example method600for operating a wireless mesh network in a scenario in which the receiving device does not receive the packet. First, at a step602, an originating device, such as a collector116ofFIG. 1, sets its transmitting frequency channel to a frequency channel Fn. At a step604, the collector116transmits the outbound packet on the frequency channel Fn. These steps602and604are similar to steps502and504ofFIG. 5.

At a step606, a receiving device, such as a bidirectional node located one hop level away from the collector116(i.e., a “first hop device”), scans the range of potential frequency channels. Unlike the scenario illustrated inFIG. 5, however, the first hop device does not detect a valid message or packet and therefore does not transmit an acknowledgement to the collector116.

Meanwhile at a step608, similarly to the scenario illustrated inFIG. 5, after the collector116transmits the outbound packet, it sets its receive frequency channel to frequency channel Fn+1 for a short delay to listen for an acknowledgement, or “ACK,” from the first hop device. It will be appreciated that frequency channel Fn+1 denotes another frequency channel in the frequency hopping sequence that follows frequency channel Fn. Frequency channel Fn+1 may be either a higher or a lower frequency channel than Fn. Because the first hop device did not receive the outbound packet, however, it does not transmit an acknowledgement to the collector116. Accordingly, the collector116does not detect an acknowledgement on frequency channel Fn+1.

Having failed to receive an acknowledgement, the collector116determines whether the maximum number of retries, e.g., three retries, has been exceeded at a step610. If so, the process ends, and a communication failure may be noted. If the maximum number of retries has not been exceeded, however, the collector116then sets transmit frequency channel to a new frequency channel, e.g., frequency channel Fn+1, at a step612. The collector116then transmits the outbound packet using the newly selected frequency channel at a step614. Because the first hop device is at this point scanning the range of potential frequency channels in connection with step606, the first hop device may receive the outbound packet on frequency channel Fn+1 if it did not receive the outbound packet on frequency channel Fn.

The process then returns to step608, with the collector116selecting a new receive frequency channel (e.g., frequency channel Fn+2) at each successive iteration of step608. This iterative process may continue until either the collector116receives an acknowledgement from the first hop device or the maximum number of retries is exceeded. If, during any iteration, the first hop device receives the outbound packet, the first hop device decodes the packet at a step616, sets its transmit frequency to a new frequency channel (e.g., frequency channel Fn+2) at a step618, and transmits an acknowledgement to the collector116at a step620. Preferably, the first hop device sets its transmit frequency to the next frequency channel in the frequency hopping sequence after the frequency channel on which it received the outbound packet. In this way, the collector116is likely to receive the acknowledgement. Operation of the wireless mesh network may then continue similarly to steps520and522of the process ofFIG. 5. In particular, at a step622, the first hop device sets its transmit frequency to a new frequency channel, such as a frequency channel Fn+3. At a step624, the first hop device transmits the outbound packet on frequency channel Fn+3 toward a second hop device that is addressed. While not shown inFIG. 5, the second hop device scans the range of potential frequency channels, finds the packet at frequency channel Fn+3, and proceeds to decode the packet, just as the first hop device did previously. The second hop device then repeats the message or responds as required.

According to another scenario, the receiving device may receive the outbound packet and transmit an acknowledgement to the originating device, but the originating device may not receive the acknowledgement.FIG. 7is a process flow diagram illustrating yet another example method700for operating a wireless mesh network in this scenario. First, at a step702, an originating device, such as a collector116ofFIG. 1, sets its transmit frequency channel to a frequency channel Fn. At a step704, the collector116transmits the outbound packet on the frequency channel Fn. At a step706, a receiving device, such as a bidirectional node located one hop level away from the collector116(i.e., a “first hop device”), scans the range of potential frequency channels, finds the packet at frequency channel Fn, and proceeds to decode the packet at a step708. Meanwhile, after the collector116transmits the outbound packet, it sets its receive frequency channel to frequency channel Fn+1 for a short delay at a step710to listen for an acknowledgement, or “ACK,” from the first hop device. It will be appreciated that frequency channel Fn+1 denotes another frequency channel in the frequency hopping sequence that follows frequency channel Fn. Frequency channel Fn+1 may be either a higher or a lower frequency channel than Fn.

After receiving the packet at step706, the first hop device sets its transmitter to frequency channel Fn+1 at a step712and sends a short acknowledgement, or “ACK,” to the collector116at a step714. It will be appreciated that, whileFIG. 5depicts steps712and714as occurring after step708, they may be performed before step708in some embodiments.

After sending the acknowledgement to the collector116at step714, the first hop device sets its receiver to frequency channel Fn+1 for a short delay at a step716to listen for a preamble from the collector116. Meanwhile, at a step718, because the collector116did not receive the acknowledgement from the first hop device, the collector determines whether the maximum number of retries, e.g., three retries, has been exceeded. If so, the process ends. If not, however, the collector116then sets transmit frequency channel to a new frequency channel, e.g., frequency channel Fn+1, at a step720and transmits the outbound packet, including its preamble, using the newly selected frequency channel at a step722.

Accordingly, when the first hop device listens for the preamble from the collector116on frequency channel Fn+1 at step716, the first hop device will detect the preamble on frequency channel Fn+1. At a step724, when the first hop device receives preamble characters in the sample window (e.g., the period during which the first hop device has set its receive frequency channel to frequency channel Fn+1), the first hop device continues to decode the outbound message to completion. In this case, even if the outbound message were to drop out, the first hop device could send an acknowledgement again on frequency channel Fn+2 because the first hop device has already received the valid outbound message at step706.

On the originating device side of the process, the process returns to step710, at which the collector116sets its receive frequency channel to a new frequency channel, e.g., frequency channel Fn+2, to listen for an acknowledgement. Steps710,718,720, and722on the originating device side of the process may be repeated until either the collector116receives the acknowledgement from the first hop device or the maximum number of retries has been exceeded. If the maximum number of retries is exceeded, the process stops and a communication failure may be noted. If, on the other hand, the collector116receives the acknowledgement from the first hop device, the first hop device can then transmit the outbound packet toward a second hop device that is addressed, using another frequency channel, such as the next frequency channel in the frequency hopping sequence. While not shown inFIG. 7, the second hop device scans the range of potential frequency channels, finds the packet, and proceeds to decode the packet, just as the first hop device did previously. The second hop device then repeats the message or responds as required.

FIG. 8is a process flow diagram illustrating still another example method800for operating a wireless mesh network according to still another embodiment. First, at a step802, an originating device, such as a collector116ofFIG. 1, sets its transmitting frequency channel to a frequency channel Fn. At a step804, the collector116transmits the outbound packet on the frequency channel Fn.

At a step806, a receiving device, such as a bidirectional node located one hop level away from the collector116(i.e., a “first hop device”), scans the range of potential frequency channels. Like the scenario illustrated inFIG. 6, the first hop device does not detect a valid message or packet and therefore does not transmit an acknowledgement to the collector116.

At a step808, the collector116sets its receive frequency channel to the next frequency channel in the frequency hopping sequence after the frequency channel that it most recently used to transmit the outbound packet. In this case, the collector116sets its receive frequency channel to frequency channel Fn+1 to listen for an acknowledgement from the first hop device. However, because the first hop device did not receive the outbound packet on frequency channel Fn, the first hop device did not transmit an acknowledgement, and therefore the collector116does not receive an acknowledgement.

Having failed to receive an acknowledgement, the collector116determines whether the maximum number of retries, e.g., three retries, has been exceeded at a step810. If so, the process ends, and a communication failure may be noted. If the maximum number of retries has not been exceeded, however, the collector116then sets transmit frequency channel to a new frequency channel, e.g., frequency channel Fn+1, at a step812. The collector116then transmits the outbound packet using the newly selected frequency channel at a step814. Because the first hop device is at this point scanning the range of potential frequency channels in connection with step806, the first hop device may receive the outbound packet on frequency channel Fn+1 if it did not receive the outbound packet on frequency channel Fn.

When the first hop device receives the outbound packet, the first hop device decodes the packet at a step816, sets its transmit frequency to a new frequency channel (e.g., frequency channel Fn+2) at a step818, and transmits an acknowledgement to the collector116at a step820. Preferably, the first hop device sets its transmit frequency to the next frequency channel in the frequency hopping sequence after the frequency channel on which it received the outbound packet. In this way, the collector116is likely to receive the acknowledgement.

On the originating device side of the process, after the collector116transmits the outbound packet on frequency channel Fn+1 at step814, the process returns to step808, at which the collector116sets its receive frequency channel to the next frequency channel in the frequency hopping sequence. In this iteration, the collector116sets its receive frequency channel to frequency channel Fn+2. The collector116can generally be expected to receive the acknowledgement, but in some cases, the collector116may not receive the acknowledgement despite being set to receive on the same frequency channel that the first hop device is using to transmit the acknowledgement. Having failed to receive the acknowledgement, the collector116sets its transmit frequency channel to the next frequency channel in the frequency hopping sequence after the frequency channel that it most recently used to transmit the outbound packet, i.e., frequency channel Fn+2, at step812. The collector116then resends the outbound packet at step814.

Meanwhile, at a step822, the first hop device sets its receive frequency channel to the next frequency channel in the frequency hopping sequence after the frequency channel it most recently used to transmit the acknowledgement, e.g., frequency channel Fn+2, and listens for a preamble during a sampling window. Assuming that the first hop device receives and decodes the outbound packet at a step824, the first hop device sets its transmit frequency channel to the next frequency channel in the frequency hopping sequence, i.e., frequency channel Fn+3, and sends an acknowledgement to the collector116at a step828. Assuming that the collector116receives the acknowledgement on frequency channel Fn+3, the collector116does not resend the outbound packet. After listening on frequency channel Fn+3 for a short sampling window and not receiving a preamble, the first hop device sets its transmit frequency channel to the next frequency channel in the frequency hopping sequence, i.e., frequency channel Fn+4, at a step830. The first hop device then transmits the outbound packet toward the second hop device using frequency channel Fn+4 at a step832. While not shown inFIG. 8, the second hop device scans the range of potential frequency channels, finds the packet, and proceeds to decode the packet, just as the first hop device did previously. The second hop device then repeats the message or responds as required.

While systems and methods have been described and illustrated with reference to specific embodiments, those skilled in the art will recognize that modification and variations may be made without departing from the principles described above and set forth in the following claims. For example, although in the embodiments described above, the systems and methods of the present invention are described in the context of a network of metering devices, such as electricity, gas, or water meters, it is understood that the present invention can be implemented in any kind of network in which it is necessary to obtain information from or to provide information to end devices in the system, including without limitation, networks comprising meters, in-home displays, in-home thermostats, load control devices, or any combination of such devices. Accordingly, reference should be made to the following claims as describing the scope of the present invention.