The present invention relates generally to wireless devices, and more specifically to time synchronization between wireless devices and access points.
Many low-power wireless devices conserve power by sleeping much of the time, and waking only occasionally to perform operations or send or receive data. In these situations, messages from a device node are conventionally buffered at wireless access points, and relayed to recipient wireless devices when those devices wake. IEEE 802.11 standard access points, for instance, typically transmit periodic beacon messages indicating whether buffered messages are waiting for a recipient wireless device.
Wireless devices intended to operate on minimal power commonly wake at a “heartbeat” interval to transmit and/or receive messages. This heartbeat interval can be several minutes long. Upon the elapse of each heartbeat interval, the wireless device transmits a heartbeat message to a device node such as a central server via the access point, then enters a short-term sleep mode until the next scheduled beacon transmission from the access point. The wireless device wakes in time to hear a beacon from the access point, requests and receives any buffered messages, and then sleeps for another heartbeat interval.
Wireless devices conventionally schedule wakeup times according to their own clocks. To receive a beacon, a transceiver of the wireless device must remain powered, consuming energy. Conventional systems usually use a constant heartbeat interval as determined by to a local clock of the wireless device, and provide a margin preset according to the maximum possible clock drift expected over the course of a heartbeat interval. The IEEE 802.11 standard allows a maximum clock discrepancy of 0.02%. Desynchronization of this magnitude can necessitate large energy expenditures for powering wireless device transceivers while waiting for a beacon transmission. A heartbeat interval of five minutes, for example, is conventionally allowed a maximum drift of 60 ms, such that the wireless device transceiver might remain powered for 60 ms every 5 minutes while waiting for a beacon, resulting in significant energy expenditure, and correspondingly shortening battery life when compared to a intelligent wake-up mechanism in which the transceiver is well synchronized and need remain powered for much lesser than 60 ms. Depending on the available battery capacity and the device activations, this might reduce battery life by up to several years. For wireless devices intended to operate for long periods on battery power, such battery depletion is not ideal.
Many IEEE 802.11 access points also monitor networked wireless devices for continued activity. If a predefined linkup interval elapses without activity from a networked wireless device, the wireless device is dissociated from the access point's network. By one common method, each wireless device periodically transmits linkup messages in order to remain associated with the access point. The length of the linkup interval—the period between linkup messages—is based on the device's local clock and is usually a constant.
Messages from wireless devices can be corrupted during transmission, sometimes necessitating retransmissions. A wireless device transmission made too close in time before a beacon transmission, where the wireless device transmission is followed immediately by going to sleep, may not allow sufficient time for recipient device nodes to respond before the wireless device wakes to listen for an expected response. When this occurs, the wireless device must either remain awake to receive two beacons, or enter short-term sleep and wake to listen to the second beacon, in either case expending additional power.
The present invention is directed toward a wireless device with a transceiver and a scheduling system. The transceiver transmits and receives messages to and from an access point, and has a sleep mode from which it occasionally wakes at wakeup times to listen for beacons from the access point. The scheduling system schedules wakeup times according to historical beacon synchronization data.
Wireless device 14 may perform any of a wide range of functions, including condition monitoring, process actuation, or data transducing, and may generally be any wireless device which experiences low-power sleep modes. Wireless device 14 may, for instance, be a device that operates on scavenged power or a limited battery power supply, and sleeps to conserve power between active duty periods.
Data transmitted from device nodes 16 is not received directly at wireless device 14. Instead, packets from device nodes 16 to wireless device 14 are buffered at access point 12. Access point 12 transmits timestamped beacon messages to all devices in its network, including wireless device 14. These beacons are sent at regular beacon intervals (e.g. 102.4 ms in an IEEE 802.11 network), and indicate whether buffered packets are waiting for any wireless devices in the network. If and when wireless device 14 receives a beacon from access point 12 indicating that packets are buffered for it at access point 12, wireless device 14 transmits a request to the access point 12 and the access point sends the buffered packet(s), which the wireless device 14 receives, as described in the IEEE 802.11 protocol.
If access point 12 detects no activity from wireless device 14 over the course of a predetermined linkup interval, access point 12 may dissociate wireless device 14 from its wireless network. This linkup interval is product-specific and may be infinite, indicating that access point 12 will never dissociate wireless device 14 from the wireless network. In conventional systems with finite linkup intervals, wireless device 14 periodically transmits packets (herein referred to as “linkup” packets or messages) to access point 12, to avoid being dissociated from the wireless network.
Wireless device 14 is capable of spending long periods in a low-power sleep mode in which it sends and receives no signals to or from access point 12. A scheduling system enables wireless device 14 to wake at optimal times for beacon reception and signal transmission, as described below.
Application specific hardware 108 may serve a variety of different functions, depending on the tasks to which wireless device 14 is devoted. Wireless device 14, may, for instance, be an alarm or process monitoring device, in which case application specific hardware 108 will include sensors which produce signals interpreted by processor 106. In another embodiment, wireless device 14 may be an actuator or actuator controller which regulates or controls some parameter or process according to instructions from device node 16. Regardless of the particular function of wireless device 14 or the nature of application specific hardware 108, application specific hardware 108 is logically distinct from the wakeup scheduling system of wireless device 14, which is described in detail below.
Antenna 102 and transceiver 104 are used to receive and transmit signals to and from access point 12, including linkup messages to access point 12, beacons from access point 12, and transmissions to device node 16 via access point 12. Processor 106 performs logic to schedule sleep and wakeup for wireless device 14, as well as performing logic for application specific hardware 108. Clock 110 is a continuous timekeeper which provides a time value to processor 106, which may contain timers that wake up all or part of the wireless device at specific time value of Clock 110. Memory 112 stores data from processor 106, including while wireless device 14 is in a sleep mode.
Antenna 102 and transceiver 104 are shut off or powered down during a low-power sleep mode of wireless device 14 to conserve power from power supply 100. In some embodiments, other components, such as portions of processor 106, are also shut down during sleep modes. Some, all, or none of application specific hardware may operate throughout both sleep and non-sleep modes, depending on the nature of the application to which wireless device 14 is devoted. Processor 106, clock 110, and memory 112 together provide a scheduling system, as described below, which minimizes energy expenditure by reducing the time wireless device 14 spends awake.
While in sleep mode, wireless device 14 will ordinarily miss many beacons from access point 12. Upon waking from sleep mode, wireless device 14 transmits packets (such as linkup packets) to local access point 12 or listens for a beacon from local access point 12. Wireless device 14 draws power from power supply 100 during both transmission and listening/receiving. Wakeup times for both transmission and listening are scheduled to minimize power consumption by wireless device 14.
Ideally, wireless device 14 wakes up, transmits a packet, and begins to listen for a beacon shortly before access point 12 transmits the beacon. In practice, however, clock 110 and the clock of access point 12 are never perfectly synchronized. Both clocks experience some degree of clock drift, producing a net clock drift equal to the difference between the drift of clock 110 of wireless device 14 and the drift of the clock of access point 12. The larger this net clock drift is, the greater the eventual desynchronization between wireless device 14 and access point 12. After a long period in sleep mode (e.g. several minutes), wireless device 14 may to be significantly desynchronized from access point 12. To handle this desynchronization, wireless device 14 schedules wakeup times according to predicted behavior of access point 12, and not simply according to the elapse of a beacon interval according to clock 110.
If wireless device 14 and access point 12 never experienced any relative clock drift, beacon reception wakeup time tbWakeup would always occur such a device-up period Δdu before ideal beacon time tbIdeal, such that tbWakeup=tbIdeal−Δdu. Device-up period Δdu is device dependent, and can be modeled as a constant. For real systems with clock drift, however, tbWakeup is offset by an additional synchronization error E, such that:
tbIdeal−tbWakeup=Δdu+E [Equation 1]
where E reflects the relative clock drift of wireless device 14 and access point 12. Synchronization correction X is applied to the next tbWakeup (for example in the next heartbeat wakeup), and is at least in part determined from a history of recent beacon arrival times tbActual or error terms Δerror and relative clock drift E, as described below with respect to
Prior art wakeup systems have scheduled wakeup times according to a static maximum IEEE allowed beacon desynchronization Δmax. This approach can result in significant energy drain, as antenna 102 and transceiver 104 remain powered while waiting for beacon transmissions. By contrast, the present invention determines tbWakeup based on a history of recent beacon reception times, as described with respect to
Wireless device 14 wakes from sleep mode at beacon reception wakeup times tbWakeup to listen for beacons from access point 12, and at transmission wakeup times ttWakeup to transmit messages to access point 12. Transmission wakeup times ttWakeup are separated from beacon reception wakeup time tbWakeup by wait periods Δwait. Messages transmitted to access point 12 include messages for which access point 12 is the final recipient, such as linkup messages, as well as messages intended for device nodes such as device node 16, which are received by access point 12 before being forwarded on. Responses may be expected to some messages, such as requests for instructions from device node 16, and not to others, such as linkup messages. Transmissions to which no response is expected may be transmitted at any time far enough from beacon reception wakeup times to avoid coincidence with beacons transmitted by access point 12. Accordingly, Δwait may be short for transmissions for which no response is requested, and no immediately subsequent tbWakeup is an planned. When scheduling transmissions to which a response is expected, however, Δwait may be extended to allow the transmission to be processed by device node 16, and a response buffered at access point 12 before the next beacon transmission. After such a transmission, wireless device 14 enters a short term sleep mode until beacon reception wakeup time tbWakeup, which is scheduled before the next beacon as described with respect to
Whereas a wireless device ideally wakes up for beacon reception immediately before access point 12 transmits a beacon, the opposite is true for transmission wakeup times in the present invention. Transmission wakeup times are ideally scheduled as far as possible from beacon times, and transmission wakeup times ttWakeup may accordingly be scheduled during the first half of each beacon interval Tb. Wait periods Δwait are selected to allow for delays and processing times, so that transmission wakeup times ttWakeup are scheduled as far as possible from beacon wakeup times tbWakeup. This reduces the probability of collision with the beacon when packet retransmission happens.
Next, wireless device 14 calculates a beacon reception wakeup time tbWakeup as described above with respect to
Wireless device 14 wakes when clock 110 indicates that beacon reception wakeup time tbWakeup has arrived. (Step 208). Wireless device 14 then listens for a beacon, and receives buffered packets from access point 12. When the beacon is received by antenna 102 and transceiver 104, the actual local beacon reception time is recorded, and error term Δerror and synchronization error E are calculated and stored, as described above with respect to
Although method 200 includes steps 202, 204, and 206 related to transmission, these steps may be omitted if no transmission is necessary prior to receiving a beacon. Accordingly, the wakeup timer may be set for a beacon reception wakeup time tbWakeup rather than a transmission wakeup time ttWakeup in step 214, such that step 208, rather than step 202, immediately follows step 216. Similarly, a response may or may not be expected following transmission of a message from antenna 102 of wireless device 14. If no response is expected, steps 204, 206, 208, 210, and 212 can be skipped, such that step 214 immediately follows step 202. In some instances, the next wakeup time scheduled in step 214 may be a wakeup for application-specific activity.
Method 200 calculates wakeup times in steps 204 and 214 based on beacon history from memory 112. Wakeup timers are set using a clock drift estimation, as described below with respect to
As previously described, clock 110 is a low-power timekeeper, transceiver 104 is a data transducer, and memory 112 is a sleep-survivable memory storage element. Error meter 114 is a logical component which performs arithmetic to determine error term Δerror and other information related to discrepancies between expected and actual beacon arrival times, such as information on accidental beacon reception during sending the linkup packet (described in further detail below). Clock drift estimator 116 is a logic component which estimates clock drift based on history recorded in memory 112 and the output of error meter 114, including error term Δerror. Scheduler 118 is a logic component which maps the clock drift estimate produced by clock drift estimator 116 onto wakeup times. This time is used to set wakeup timer 120. Wakeup timer 120 can be a reference timer compared with clock 110, a separate countdown clock, or any functionally analogous component capable of triggering a wakeup after a specified time.
Error meter 114 reads clock 110 and reports actual beacon reception time tbActual whenever a beacon is received. Error meter 114 compares actual beacon arrival time tbActual with beacon reception wakeup time tbWakeup (calculated during a previous iteration using measurement interval and/or error terms E and Δerror. These error terms reflect the desynchronization between access point 12 and wireless device 14. In some embodiments of the present invention, this beacon error value may be stored in memory 112). In addition, each beacon carries a timestamp indicating the time—according to access point 12—that the beacon was sent. This timestamp value is ordinarily an integer multiple of beacon interval Tb, but may sometimes be modified by a delay caused by busy channel, or by a static offset error due to implementation error at access point 12. Consecutive beacons timestamp values are ordinarily separated by beacon interval Tb. Under some circumstances, however, beacon signals may be lost. Error meter 114 recognizes when a beacon has been lost by comparing the timestamp value with an expected value, correcting error term Δerror for beacon loss.
Clock drift estimator 116 produces an estimate as to the net clock drift of access point 12 relative to wireless device 14. If the clock drift rates of access point 12 and wireless device 14 were constant, net clock drift over a period of time would simply be the net clock drift rate multiplied by the length of the period. In practice, however, the clocks of access point 12 and wireless device 14 (such as clock 110) keep time at rates which vary based on parameters such as temperature and component age. As a result, the net clock drift rate between access point 12 and wireless device 14 fluctuates with time. Net clock drift rate does not change arbitrarily quickly, however, and past clock drift rates are indicative of the likely drift rates and rates of change of drift rates, in the future.
Clock drift estimator 116 produces clock drift estimates based on the error term Δerror and other information provided by error meter 114, as well as history values retrieved from memory 112. This clock drift includes clock drift rate, synchronization correction X, and may include other values corresponding to the degree of relative clock drift between wireless device 14 and access point 12 as well as device-up period Δdu. History values can be previous beacon errors, previous clock drift estimates, or both. In some embodiments, clock drift estimator 116 produces a new clock drift estimate by updating a previous clock drift estimate according to the new beacon error, using a filter function such as an adaptive least mean squares (LMS) filter, a low pass filter, or other well known statistical estimator. In some embodiments, clock drift estimator 116 estimates drift from an average (or any other useful function such as linear extrapolation) of beacon error or average clock drift over the last N beacon errors or clock drift adjustments. The resulting new clock drift estimate may be stored in memory 112 for later use by clock drift estimator 116. Clock drift estimator 116 recognizes traffic-related delays and static error in the timestamp value from access point 12, and accommodates delays due to software or hardware at access point 12, wireless device 14, or device node 16 by subtracting an appropriate processing time from the next wakeup.
Wireless device 14 wakes up at heartbeat intervals, as described previously with respect to the prior art. Instead of using a constant heartbeat interval, wireless device 14 schedules heartbeat wakeup such that packet transmissions occurs as far away as possible from predicted beacon arrival times and corresponding beacon wakeup times tbWakeup. The same method can be applied to linkup messages. In one embodiment, each transmission wakeup time ttWakeup is scheduled to occur during the first half of beacon interval Tb. As described previously, wireless device 14 may return to a sleep mode immediately after transmitting a packet. Although transmission wakeup time ttWakeup is scheduled as far as possible from beacon reception wakeup time tbWakeup, it is possible for a beacon to be received during a transmission wakeup, for instance if a packet must be retransmitted due to packet corruption, or due to other system delays or erroneous implementations. Such unexpected beacon reception events can result in wireless device 14 resynchronizing unexpectedly with access point 12, resulting in an incorrect estimation of clock drift. Clock drift estimator 116 analyzes beacon timestamp values to compensate error terms E or Δerror for unintentional beacon reception by scaling a clock drift estimate according to the time between latest such event and the next predicted beacon reception wakeup time tbWakeup in relation with the last error measurement. Static offset errors to beacon timestamp values can be recognized and removed with, for instance, a digital filter.
The clock drift estimate produced by clock drift estimator 116 is used by scheduler 118 to set wakeup times (i.e. tbWakeup and ttWakeup) on wakeup timers 120. Wakeup times are determined using the clock drift estimate provided by clock drift estimator 116. In this way, wakeup of wireless device 14 is scheduled to minimize time spent listening or transmitting, and therefore conserves power from power supply 100.
Wireless device 14 uses a wakeup scheduling system which estimates beacon transmission times based on history data stored in sleep survivable memory. By using this system, wireless device 14 is able to schedule wakeup times for beacon reception very close to the actual times of beacon transmission, thereby limiting the energy expended to power wireless device 14. Similarly, this system allows wireless device 14 to schedule wakeup times for transmissions to avoid the beacon, thereby reducing the likelihood of delay or retransmission, and thereby conserving power. In one embodiment, wakeup and transmission can happen due to unplanned events, such that no scheduling can be done for such wakeups. In such a case, if packet reception is expected, according to the previous stored clock drift value, the next beacon arrival time can be predicted from the number of beacon intervals which passed during the period from the previous beacon reception time and the unplanned wakeup time.
While the invention has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment(s) disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4193118 | Nash et al. | Mar 1980 | A |
6161005 | Pinzon | Dec 2000 | A |
6337618 | Craig et al. | Jan 2002 | B1 |
6472973 | Harold et al. | Oct 2002 | B1 |
6720861 | Rodenbeck et al. | Apr 2004 | B1 |
7755480 | Aritsuka et al. | Jul 2010 | B2 |
8005515 | Chhabra et al. | Aug 2011 | B1 |
8159977 | Meier | Apr 2012 | B2 |
8488506 | Husted et al. | Jul 2013 | B2 |
20010050615 | Kucharczyk et al. | Dec 2001 | A1 |
20020099945 | McLintock et al. | Jul 2002 | A1 |
20020178385 | Dent et al. | Nov 2002 | A1 |
20030144020 | Challa et al. | Jul 2003 | A1 |
20030218383 | Milojicic et al. | Nov 2003 | A1 |
20040264477 | Repko et al. | Dec 2004 | A1 |
20050169233 | Kandala et al. | Aug 2005 | A1 |
20060139149 | Faro et al. | Jun 2006 | A1 |
20060164208 | Schaffzin et al. | Jul 2006 | A1 |
20060170533 | Chioiu et al. | Aug 2006 | A1 |
20070030120 | Gusse et al. | Feb 2007 | A1 |
20070131005 | Clare | Jun 2007 | A1 |
20070200666 | Howard | Aug 2007 | A1 |
20070259700 | Meier et al. | Nov 2007 | A1 |
20070266081 | Murchison, III et al. | Nov 2007 | A1 |
20070290793 | Tran | Dec 2007 | A1 |
20080036596 | Auerbach et al. | Feb 2008 | A1 |
20080084836 | Baird et al. | Apr 2008 | A1 |
20080117045 | Roberts et al. | May 2008 | A1 |
20080174403 | Wolpert et al. | Jul 2008 | A1 |
20080225768 | Wentink | Sep 2008 | A1 |
20090298555 | Matson et al. | Dec 2009 | A1 |
20100060414 | Im | Mar 2010 | A1 |
20100098204 | Ratiu et al. | Apr 2010 | A1 |
20100141381 | Bliding et al. | Jun 2010 | A1 |
20100148918 | Gerner et al. | Jun 2010 | A1 |
20100164720 | Kore | Jul 2010 | A1 |
20100201482 | Robertson et al. | Aug 2010 | A1 |
20110222421 | Jana et al. | Sep 2011 | A1 |
Number | Date | Country |
---|---|---|
9948221 | Sep 1999 | WO |
2009158181 | Dec 2009 | WO |
2010043947 | Apr 2010 | WO |
2010085781 | Jul 2010 | WO |
Entry |
---|
ANSI/IEEE Std. 802.11, 1999 Edition (R2003), IEEE LAN/MAN Standards Committee, Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements, Part 11. |
PCT International Preliminary Report on Patentability and Written Opinion of the International Searching Authority for International Application No. PCT/US2012/046515, Feb. 27, 2014, 7 pages. |
Number | Date | Country | |
---|---|---|---|
20130044658 A1 | Feb 2013 | US |