Some embodiments of the invention may be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
References to “one embodiment”, “an embodiment”, “example embodiment”, “various embodiments”, etc., indicate that the embodiment(s) of the invention so described may include particular features, structures, or characteristics, but not every embodiment necessarily includes the particular features, structures, or characteristics. Further, some embodiments may have some, all, or none of the features described for other embodiments.
In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements co-operate or interact with each other, but they may or may not be in direct physical or electrical contact.
The term “wireless” and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a non-solid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not.
As used in the claims, unless otherwise specified the use of the ordinal adjectives “first”, “second”, “third”, etc., to describe a common object, merely indicate that different instances of like elements are being referred to, and are not intended to imply that the elements so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
Various embodiments of the invention may be implemented in one or any combination of hardware, firmware, and software. The invention may also be implemented as instructions contained in or on a machine-readable medium, which may be read and executed by one or more processors to enable performance of the operations described herein. A machine-readable medium may include any mechanism for storing, transmitting, and/or receiving information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium may include a storage medium, such as but not limited to read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; a flash memory device, etc. A machine-readable medium may also include a propagated signal which has been modulated to encode the instructions, such as but not limited to electromagnetic, optical, or acoustical carrier wave signals.
Various embodiments of the invention let an unsynchronized node in a wireless sensor network go into a low-power sleep mode for much of the time until the next network discovery period starts. When the network discovery period starts, the node may then begin communicating wirelessly with other nodes in the network. An unsynchronized node, sometimes referred to as an ‘orphan’ node, is a node that doesn't know when the next network discovery period starts and therefore doesn't initially know how long it can go into a sleep mode and still be assured of waking up for that next discovery period. In one embodiment the unsynchronized node may alternate between periods of sleep and periods of monitoring for the discovery period, with the duration of these cycles being shorter than a discovery period so that the node will be assured of being awake during at least part of a discovery period. In another embodiment a cluster controller (or other network coordinator) may periodically send out broadcast messages during a network sleep period, the broadcast messages indicating when the next discovery period will begin. An unsynchronized node may monitor until it receives one of these broadcast messages. After receipt of the broadcast message, the node knows when the next discovery period begins, so the node may go into a sleep mode and wake up at the indicated time. The discovery period may, by necessity, include transmissions in both directions between the cluster controller and the sensor nodes. But in some embodiments, the cluster controller may refrain from monitoring for signals from the sensor nodes during the network sleep period.
Wireless sensor node 140 may also contain various components, such as a transceiver 142, a sensor 144, a battery 145 to power operations of the sensor node, logic 143 to control the various operations of the sensor node, and one or more timers 141 to measure specific time intervals, also to be described later in more detail. The sensor node may be capable of entering a low power sleep mode, in which it is unable to process incoming wireless signals because its receive circuitry is unpowered. In some embodiments, the receive circuitry may be powered but the transmit circuitry unpowered during an operational mode if the node is only monitoring signals, but both the transmit and receive circuitry may be powered for two-way communication. Both the cluster controller 110 and the sensor node 140 may also include other elements as needed, such as but not limited to a digital signal processor, a general-purpose processor, memory, a battery charge indicator, etc.
During a network sleep period, the synchronized nodes 120 may each be in a low-power sleep mode that doesn't permit them to transmit or receive. In a low power sleep mode, some embodiments turn off the power to most or all of the circuitry in the sensor node, except for a sleep clock that tells the node when to wake up and become operational so that it may then communicate. These sleep/wake periods may be synchronized within the network so that the nodes each wake up at approximately the same time—hence the term ‘synchronized’ for those nodes that know when the next operational period is to start, and thereby know when to wake up. If a node does not know when the next network operational period is to start, it is an ‘unsynchronized’ node. Within the context of this document, this may be the only meaningful distinction between synchronized and unsynchronized nodes. However, in other ways the sensor nodes may be alike or may represent a variety of types, sizes, model numbers, etc.—the synchronized and unsynchronized label applies only to whether they are aware, at a given point during a network sleep period, of the timing of the next network operational period.
In some embodiments, the sleep period may be many times longer that the awake period. For example, a network of temperature sensing nodes may wake up once per hour, spend a few seconds taking temperature measurements and communicating those measurements to the cluster controller, and then go back into sleep mode for another hour.
The potential configuration of the network may change during a sleep period. For example, new sensor nodes may be turned on or added to the area, existing sensor nodes may be turned off or removed from the area, existing sensor nodes may be moved to another location, etc. But with the network in a sleep mode, this change might not be apparent to the cluster controller or to the sensor nodes. For this reason, the beginning of each network operational period may be devoted to determining what nodes are present, and how they should configure communications links so that they can all communicate (directly or indirectly) with the cluster controller. In some embodiments this is termed the discovery period, although various embodiments of the invention are intended to cover devices that use other terminology for this period. The lines shown between various nodes in
After the discovery period, the network may have a period of querying and data collection (e.g., the cluster controller may request specific information such as sensor readings, and the sensor nodes may report their sensor information back to the cluster controller). The discovery period and the querying and data collection period may be separate periods of time, or they may overlap in time. The discovery period and the querying and data collection period collectively may be referred to as a network operational period, while a period in which the synchronized sensor nodes are in a sleep mode may be referred to as a network sleep period.
At or near the end of a network operational period, the cluster controller 110 may communicate (directly or indirectly) to each node 120 the time at which the next discovery period is to start. In some embodiments this may be communicated by a single broadcast message directed to all nodes, but other embodiments may differ (i.e., a separate message may be directed to each node or to groups of nodes). In some embodiments, each sensor node may rebroadcast the message, allowing it to reach nodes that cannot directly receive messages from the cluster controller 110. The indicated time may be expressed in any of various ways (e.g, a count-down clock value, a time-of-day value, etc.). Using this information, each sensor node 120 may set its sleep clock so that it will wake up at the indicated time. Each node 120 may then go into a sleep mode, knowing that it is synchronized with the other nodes 120, so that they will all wake up for the next discovery period. In some embodiments, nodes may wait for a short period before sleeping, allowing them to receive and forward any messages that are still being repeated among the nodes.
Node 140 is shown as an unsynchronized sensor node, that is, it does not know when the next awake period is to start. A sensor node may be unsynchronized for various reasons (e.g., it was placed into the area during a network sleep period, its batteries were replaced during a sleep period, it was reset or restarted for some reason, etc.). However, unsynchronized node 140 may still be able be spend most of the current network sleep period in a low power sleep mode of its own, and still wake up during the next discovery period, through the techniques described herein.
Note: for simplicity
To achieve a balance between reliable detection and significant power savings, the duration of the monitoring period may be long enough to assure accurate detection if a discovery period is in progress, but not much longer than that. The duration of the orphan node's sleep period between monitoring operations should be shorter than the discovery period, to assure that the orphan node does not miss the discovery period by sleeping through it.
Once the orphan node detects that the network is in a discovery period, the node may remain active so it may participate in the discovery and the querying and data collection activities of the network. Before the network enters another network sleep period, the node may receive data from the cluster controller indicating when the next network operational period will begin. At that point, the sensor node will no longer be considered unsynchronized, and may sleep throughout the next network sleep period without further monitoring.
Lines C1 and C2 show a second embodiment. In this embodiment, during the network sleep period the cluster controller may periodically transmit a message containing an indicator of when the next network operational period will start. When a sensor node is activated during the network sleep period, it only needs to monitor until the next such transmission from the cluster controller. After receiving that transmission, the sensor node knows how long to sleep until the next operational period, and can enter a sleep mode for that period of time.
If discovery activity is not detected at 440, the sensor node will continue to monitor until such activity is detected, or until the monitoring clock expires at 460. When the monitoring clock expires, the node may set a sleep clock at 470 to a time period the node is to sleep before beginning to monitor again. The node may then put itself into a low power sleep mode until the sleep clock expires, as indicated at 480 and 490. At the expiration of the sleep clock, the node may become activated at 410 and the entire cycle may repeat itself until discovery activity is finally detected and the node enters the discovery phase at 450. In normal operation, discovery should be detected within a determinable number of cycles. In abnormal operation (for example, the node is activated when there is no network within communications range), in some embodiments the node may try to preserve battery power by shutting down after a predetermined number of cycles with no detection of discovery activity, but other embodiments may use other techniques.
In normal operation, either a discovery time message or the discovery period itself should be detected at 530 within a predetermined time. In abnormal operation (for example, the node is activated when there is no network within communications range), in some embodiments the node may try to preserve battery power by shutting down if neither condition is detected within a certain time period, but other embodiments may use other techniques.
During the network sleep period, the cluster controller may periodically broadcast a message indicating when the start of the next discovery period will occur. In preparation for this, the cluster controller may set an interval timer at 650. During the network sleep period, if the interval timer expires at 670, the cluster controller may broadcast, at 680, the message that indicates when the next discovery period will start, and then reset the interval timer at 650 to begin another interval. This broadcast message might be transmitted many times during a single network sleep period, depending on how the various timing parameters are set. At some point the network sleep period will end, as detected at 660, and the next discovery period will actually start. As previously described for
The previous paragraphs describe two types of processes, each of which takes place mostly during a network sleep period. In the first type, an orphan node goes through multiple cycles of monitoring/sleeping, until it detects the network is in the discovery phase of a network operational period. Such a process may work without any special support from the cluster controller. In the second type, the cluster controller periodically broadcasts a message indicating when the next network operational period will begin. The orphan node can simply monitor until it detects such a message, and then go into a sleep mode until the indicated time. However, some embodiments may combine these two processes in a single hybrid sensor node. In such an embodiment, a sensor node may go through the cycles of monitoring/sleeping as in the first type. If it detects a message during one of the brief monitoring periods that indicates when the next network operational period will begin, it may then go into a sleep mode until such time. If it does not detect such a message, it may keep cycling until it either: 1) does detect such a message, or 2) detects the actual network operational period. A separate flow diagram for this hybrid approach has not been provided because the simplicity of understanding such a combination from the other drawings precludes the need for it.
The foregoing description is intended to be illustrative and not limiting. Variations will occur to those of skill in the art. Those variations are intened to be included in the various embodiments of the invention, which are limited only by the spirit and scope of the following claims.