# Patent

## Title
Power efficient communications

## Abstract

A method, system, and device provide power-efficient communications within the context of available power. Transmission and receipt data rates are scalable in accordance with output power available from a power source. Data is transmitted at a data rate determined, at least in part, by the available output power.

## Background
PRIORITY CLAIM
This application is a continuation of the application entitled “Power Efficient Communications,” U.S. application Ser. No. 13/649,785 filed on Oct. 11, 2012, now U.S. Pat. No. 9,461,689, which is a continuation of the application entitled “Power Efficient Communications,” U.S. application Ser. No. 13/045,915 filed on Mar. 11, 2011, which claims priority to the provisional application entitled “Power Efficient Communications,” U.S. Provisional Application No. 61/313,319 filed on Mar. 12, 2010. These prior applications, including the entire written description and drawing figures, are hereby incorporated into the present application by reference.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to the following co-pending U.S. patent applications: application Ser. No. 13/045,882 filed on Mar. 11, 2011, now U.S. Pat. No. 9,237,526; application Ser. No. 13/649,697 filed on Oct. 11, 2012, now U.S. Pat. No. 9,241,315; application Ser. No. 13/045,896 filed on Mar. 11, 2011, now U.S. Pat. No. 9,544,004; application Ser. No. 13/649,757 filed on Oct. 11, 2012, now U.S. Pat. No. 9,553,626; application Ser. No. 13/045,932 filed on Mar. 11, 2011, now U.S. Pat. No. 9,198,133; application Ser. No. 13/649,816 filed on Oct. 11, 2012, now U.S. Pat. No. 9,198,134; application Ser. No. 14/945,580 filed on Nov. 19, 2015; application Ser. No. 13/045,950 filed on Mar. 11, 2011, now U.S. Pat. No. 9,461,688; application Ser. No. 13/649,853 filed on Oct. 11, 2012, now U.S. Pat. No. 9,548,783. These applications, including the entire written description and drawing figures, are hereby incorporated into the present application by reference.


BACKGROUND
Compared to a battery, an energy harvesting (EH) power source, a type of electrical power source, has fundamentally different energy- and power-related behavior. A battery has a finite amount of energy stored in it, but can (in principle) source an arbitrarily high peak power—limited only by the non-idealities of the cell (e.g., its internal resistance). An EH source, on the other hand, can source energy for an indefinitely long time, but has a finite peak power capability. Compared to a load powered by a battery, a load powered by an EH source therefore has fundamentally different requirements placed on it.
A load powered by a battery must be energy-efficient. Since the battery's stored energy is limited, while its peak power sourcing ability is (substantially) not limited, the relevant performance metric of the load is the energy consumed per unit of work performed. A well-designed load therefore operates in burst mode, using a low duty cycle to maximize sleep time and, therefore, minimize the amount of energy consumed per activity performed. Its peak power consumption will be much higher than that of the equivalent EH-sourced design.
A load powered by an EH, conversely, must be power-efficient. Since the peak power sourcing ability of the EH is limited, while the amount of energy it can source is indefinitely large, the relevant performance metric of the load is its peak power consumption. A well-designed load therefore operates in a continuous mode, eschewing sleep modes and, therefore, minimizing its peak power consumption. Its energy consumption will be much higher than that of the equivalent battery-sourced design.
Given the foregoing, it can be appreciated that an optimally-designed load powered by an EH power source, therefore, behaves quite differently from an optimally-designed load powered by a battery.



BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings provide visual representations which will be used to more fully describe various representative embodiments and can be used by those skilled in the art to better understand the representative embodiments disclosed and their inherent advantages. In these drawings, like reference numerals identify corresponding elements.
FIG. 1 is a block diagram of a system, in accordance with various representative embodiments.
FIG. 2 is a wireless network system arranged in a STAR topology, in accordance with various representative embodiments.
FIG. 3 is a wireless network system arranged in a Peer-to-Peer topology, in accordance with various representative embodiments.
FIG. 4 illustrates RF power output versus available harvester power, in accordance with various representative embodiments.
FIG. 5 is a block diagram of an ASH receiver, in accordance with various representative embodiments.
FIG. 6 is a block diagram of a superheterodyne receiver, in accordance with various representative embodiments.
FIG. 7 is a flowchart of synthesizer stopping, in accordance with various representative embodiments.
FIGS. 8A and 8B are timing diagrams of sequencer control signals, in accordance with various representative embodiments.
FIG. 9 is a block diagram of a transmitter capable of synthesizer stopping, in accordance with various representative embodiments.
FIG. 10 is a block diagram that illustrations communication buffering, in accordance with various representative embodiments.
FIG. 11 is a flowchart that illustrates communication buffering for a transmitter, in accordance with various representative embodiments.
FIG. 12 is a flowchart that illustrates communication buffering for a receiver, in accordance with various representative embodiments.
FIG. 13 is a graph of an example of linear extrapolation as a predictive algorithm, in accordance with various representative embodiments.
FIG. 14 is a flowchart that illustrates an exemplary predictive algorithm, in accordance with various representative embodiments.
FIG. 15 is a flowchart that illustrates an adaptive data rate algorithm, in accordance with various representative embodiments.



DETAILED DESCRIPTION
The various methods, systems, and devices described herein provide power-efficient communications within the context of available power. Transmission and receipt data rates are scalable in accordance with output power available from a power source. Data may be transmitted at a data rate determined, at least in part by the available output power.
In accordance with certain embodiments of the present disclosure, there are provided various methodologies, devices, and systems that employ power-efficient transmit communications comprising: determining an available output power of an electrical power source; and transmitting data at a data rate determined, at least in part, by the available output power. This may further comprise minimizing the ratio of peak to average power consumed in transmitting the data in order to maximize a portion of the available output power usable to transmit data. Minimizing the ratio of peak to average power may provide for the transmitted data rate to be increased, a transmission range to be increased, and/or reducing the power used by a transmitter to transmit the data. Reducing the power used by a transmitter to transmit data may be effected by synthesizer stopping and/or communications buffering as will be described. Moreover, optimizing the data rate at which data is transmitted over a communication link may be accomplished by an adaptive data rate methodology described herein.
Further, in accordance with certain embodiments of the present disclosure, there are provided various methodologies, devices, and systems that employ power-efficient receive communications comprising: determining available output power of an electrical power source, and receiving data at a data rate determined, at least in part, by the available output power. The ratio of peak to average power consumed in receiving the data may be minimized in order to maximize a portion of the available output power usable to receive data. Minimizing the ratio of peak to average power allows reception at a higher data rate, an increase in reception range, and/or a reduction in power consumed by a receiver to receive the data. For example, with a reduced peak-to-average power ratio, more of the available power may be allocated to a low noise amplifier (LNA) to enable reception at a higher data rate or an increase in reception range. As will be described, selectively turning on a low noise amplifier (LNA) of the receiver increases the reception range of the receiver.
While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure is to be considered as an example of the principles of the invention and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.
In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element preceded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
Reference throughout this document to “one embodiment”, “certain embodiments”, “an embodiment” or similar terms means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of such phrases or in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments without limitation.
The term “or” as used herein is to be interpreted as an inclusive or meaning any one or any combination. Therefore, “A, B or C” means “any of the following: A; B; C; A and B; A and C; B and C; A, B and C”. An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive.
For simplicity and clarity of illustration, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. Numerous details are set forth to provide an understanding of the embodiments described herein. The embodiments may be practiced without these details. In other instances, well-known methods, procedures, and components have not been described in detail to avoid obscuring the embodiments described. The description is not to be considered as limited to the scope of the embodiments described herein.
Referring now to FIG. 1, a system functional block diagram 100 In accordance with various embodiments is illustrated. In this system, electrical power source 110 is coupled to electrical power monitoring circuit 120 via power line 155. Electrical power monitoring circuit 120 is coupled to transmitter 140 via power line 160, to receiver 150 via power line 165, and to controller 130 via signal line 170. Controller 130 is coupled to transmitter 140 via signal line 175 and to receiver 150 via signal line 180. Transmitter 140 is coupled to antenna 185 via coupling 145, and receiver 150 is coupled to antenna 190 via coupling 195 as shown. Controller 130 may be a processor, programmed processor, microcomputer such as a MCU, or the like.
In operation, electrical power from electrical power source 110 (for example, an energy-harvesting electrical power source) is drawn by transmitter 140 and receiver 150 via power line 155, electrical power monitoring circuit 120, and power lines 160 and 165, respectively. Electrical power monitoring circuit 120 sends information on the power drawn through power line 155 to controller 130 through signal line 170. Based at least in part on the information received through signal line 170, controller 130 controls transmitter 140 via signal line 175 to keep the power drawn through power line 155 below the power available from electrical power source 110. In response to the control on signal line 175, transmitter 140 may, e.g., reduce power available to an internal high-power circuit such as a power amplifier (and thereby reduce its power output to antenna 185 via coupling 145), so that the power drawn from power line 160 and, therefore, power line 155, is reduced.
Similarly, controller 130 also controls receiver 150 via signal line 180 to keep the power drawn through power line 155 below the power available from electrical power source 110. In response to the control on signal line 180, receiver 150 may, e.g., reduce power available to an internal high-power circuit such a low-noise amplifier (and thereby reduce its sensitivity to signals from antenna 190 via coupling 195), so that the power drawn from power line 165 and, therefore, power line 155, is reduced. Therefore, in accordance with various embodiments, a receive method comprises: determining available output power of an electrical power source, and adjusting the sensitivity of a receiver in accordance with the determined available output power. Adjusting the sensitivity of the receiver may further comprise adjusting the power consumption of the receiver. Further, the reception range of the receiver can be controlled by selectively turning on a low noise amplifier (LNA) of the receiver to increase the power consumption of the receiver and to increase the reception range of the receiver.
Those of ordinary skill in the art will recognize that one of transmitter 140 and receiver 150 may be deleted; that transmitter 140 and receiver 150 may share common circuitry, forming a transceiver; and that transmitter 140 and receiver 150 may share a single antenna, without departing from the spirit and scope of the disclosed embodiment. In accordance with various embodiments, then, a system may be scaled to have any desired number of devices, such as wireless EH transmitters, receivers, transceivers, and the like.
Those of ordinary skill in the art will further recognize that the functionality represented by electrical power monitoring circuit 120 in the system may be provided a number of ways. The electrical power source 110 may be self-monitoring in the sense that it can communicate its present power sourcing ability to other devices in the system, particularly helpful if the ability of the electrical power source 110 to provide power lessens; in such an implementation, the electrical power monitoring circuit need not be physically separate from the electrical power source 110. Alternately, the functionality of electrical power monitoring circuit 120 may be satisfied by a knowledge by a device, such as a receiver, transmitter, or transceiver of the power rating of the electrical power source 110; the device would then know that the available output power can be no greater than the power rating of the electrical power source 110. For example, a transmitter 140 or a receiver 150 would know to draw no more than 150 mW if power source is rated at 150 mW. Moreover, electrical power monitoring circuit 120 may reside on the wireless device itself and so could be part of the functionality of the transmitter 140 and the receiver 150, for example.
Referring now to FIG. 2, a wireless network system 200 having a number of slave devices 220, 230, 240, 250, capable of being in exclusive communication with master device 210 over communication channels or links 255, 260, 265, 270, respectively, is shown in accordance with various embodiments. The slave devices 220, 230, 240, 250 are arranged in a star topology about master device 210. The devices 210-250 may be wireless receivers, transmitters, receivers, including EH devices, of the type illustrated and described herein. In FIG. 3, a wireless network system 300 having a number of devices 310, 320, 330, 340, 350 arranged in a peer-to-peer topology in accordance with various embodiments is illustrated. In network 300, each device 310-350 may communicate with any other device within range via their respective communication links or channels 355, 360, 365, 370, 375, 380, 385. The devices 310-350 may be wireless receivers, transmitters, receivers, including EH devices, of the type illustrated and described herein. As used herein, the term channel encompasses channel of varying types such as frequency, time, coding and any other channelization schemes.
In accordance with various embodiments provided herein, the transmission data rate of such systems is scaled in accordance with the available output power available from an electrical power source.
The EH-Optimum Device
Moving more specifically to wireless systems, there are certain characteristics of interest of an EH-optimum wireless device. Again, as will be apparent, an optimum wireless device may encompass wireless receivers, transmitters, receivers, including EH devices, of the type illustrated and described herein.
When there is no data to send, the receiver may be constantly on, drawing any power up to the maximum the source can supply. In this way, data may be “pulled” from the device, on demand.
The transmitted RF power may be set to a value such that the transmitter's peak DC power consumed is at or below the maximum the source can supply. Since nothing is gained by going below the maximum, except that range is reduced, in the optimum device it is set to maximum. To increase range, rather than increase the transmitted RF power the transmitted data rate is reduced, instead—either by lengthening the bit duration, or by including redundancy through coding (either of which increases the energy per information bit, for a constant RF power).
In digital communication systems, receiver sensitivity refers to the received signal power needed to correctly detect and decode a signal. Improving the sensitivity allows the receiver to recover weaker signals, which in turn allows the signal transmission range between transmitter and receiver to be increased.
Consider the receiver sensitivity equation, which relates sensitivity to Boltzmann's constant (k, Joules/Kelvin), operating temperature (T, Kelvin), system noise figure (NF), detector sensitivity (Eb/N0), and data rate (Rb, bits/s):

Psens(dBm)=kT+NFdB+(Eb/N0)dB+10 log(Rb)  (1)

The first two terms, kT and NF, are fixed characteristics of the receiver. However, the transmitted data rate can be adjusted, and its value directly influences sensitivity of a receiver. Each halving of the data rate reduces the required signal power by half, which for free-space propagation would increase the transmission range by about 40%.

The third term in Equation (1) is called detector sensitivity, and it is a measure of signal-to-noise ratio needed by the detector to achieve a certain performance level (e.g., 1% probability of bit error). For digital communication applications, detector sensitivity is primarily determined by the type of modulation and forward error correction (FEC) used to encode the transmitted signal. Both modulation and FEC can be adjusted by the transmitter in order to vary receiver sensitivity. An example of an adjustable modulation is M-FSK (M-ary frequency shift key), in which groups of B bits are encoded as one of M=2B different modulation tones. Larger values of M are more efficient and result in improved detector sensitivity.
Linear block codes are a class of FEC codes that improve detector sensitivity through the addition of parity bits to a message. The parity bits are produced using a linear operation on the message bits, and the added structure allows the receiver to correct bit errors occur during message reception and thereby improve sensitivity. A common block code example is the BCH(31,16) block code that adds 15 parity bits to a 16-bit message to create a 31-bit coded message. This particular code will correct up to three bit errors in a block, resulting in a sensitivity improvement of 2 dB in this example.
Each of the examples above illustrates how transmission range can be increased without increasing the transmitted RF power. Alternatively, the transmission range can be maintained at a desired level as the available transmission power varies.
The data is typically transmitted at the maximum rate supported by the channel (to minimize channel occupancy and be a good “RF neighbor” by improving coexistence with other denizens of the band), then the transmitter turns off and the receiver turns on—and remains on, until a request for data is received or more data to transmit is generated. As discussed herein, the term channel or link encompasses channels of varying types such as frequency, time, coding and any other channelization schemes.
The receiver must be capable of receiving a wide range of data rates: Since the typical battery-powered transmitter today has its transmit RF power variable over a 30 dB (1000×) range, the EH-powered transmitter must be capable of data rates covering the same 1000× range (e.g., bit times varying from 1 ms to 1 s). The receiver must be similarly capable of demodulating this range.
If the power sourced by the EH device varies over time, the transmitted RF power (and, to keep a constant range, the associated data rate) must vary as well. Predictive algorithms (including heuristics, neural networks, and averaging techniques) can assist here and are discussed more fully below.
The transmitter implementation can benefit from low “overhead” power consumption, so that the device converts DC power from the EH to RF power as efficiently as possible. There is no benefit for either the transmitter or the receiver to draw anything less than the maximum available power. Note that this implies that the power consumption of the two circuits should be substantially the same. From a marketing standpoint, however, it should be possible to vary the peak power consumption of both the transmitter and receiver by specific amounts, so that the capabilities of customers' different EH devices can be accommodated. In the transmitter this can be done by adjusting RF output power; in the receiver this can be done by adjusting current into a low noise amplifier (LNA) and, therefore, system noise figure (sensitivity). The LNA usually has the largest power consumption of any single block in the receiver (often 40% or more of the total power consumed). An illustration of the RF power output versus available harvester power is illustrated in FIG. 4 and discussed below.
One receiver architecture that minimizes peak power consumption is the amplifier-sequenced-hybrid, or ASH, receiver, illustrated in FIG. 5 and discussed more fully below. This architecture is a tuned-radio-frequency (TRF) receiver, except that the stages of RF amplification are separated by delay lines. To avoid instability, each amplifier is strobed active in sequence down the receiver chain. At the end of the chain the demodulator, also strobed, demodulates. In the ASH receiver, all but one stage of the receiver is on at a time, so its peak power is low. However, one has to implement delay lines ( ̃500 ns), which typically are expensive surface-acoustic-wave (SAW) devices. Related techniques for transmitters, such as locking and latching synthesizers before transmitting, and buffering data so that an MCU can turn off before the PA turns on, are valuable, as will be described.
With the receiver always on, it is now possible to characterize one's RF environment (and one's neighboring devices) for identifying features and patterns useful for future operation. For example, neighbors can be identified by their frequency drift (chirp), interference can be avoided, etc. One can also use very long integration times to get very accurate ranging and, using these ranges, develop location estimates using, for example, the trilateration method, discussed in the following IEEE Industrial Electronics Conference Proceedings, which is hereby incorporated by reference: Luis Peneda, Abilio Azenha, and Adriano Carvalho, “Trilateration for Indoors Positioning Within the Framework of Wireless Communications,” Proceedings, 35th Annual Conference of IEEE Industrial Electronics, 2009, pp. 2732-2737. For example, a received data rate of data transmitted by a first network device to a second network device can be determined, and a range between the two network devices estimated from the received data rate. The range can further be determined from an estimated transmit power of the first network device. The explicit transmission of an RSSI value is not needed to estimate the range, as will be described.
If device A has transmitted, and device B is to reply, device B can either (a) use the rate used by device A (“rate (a)”), or (b) use a rate determined by an RSSI value it develops for device A (“rate (b)”). A significant difference between rates (a) and (b) can be caused by three things:

    
    
        1. A difference in transmitted power
        2. A difference in receiver sensitivity, due either to a difference in implementation (conducted sensitivity), the noise floor, or an interference level at the two locations
        3. A difference in total antenna gain between the B-to-A and A-to-B paths. (This last can only occur in the unlikely event that one or both of the devices has separate transmit and receive antennas.)
    
    


The variable data rate in effect provides ranging information, useful for determining distances between devices. Once the received data rate is determined, the range between the devices can be estimated—especially if the transmitted power is known—without the explicit transmission of a received RSSI value. This is, of course, useful in applications requiring location determination.
Without a priori knowledge of the transmit power of device A, device B can make a transmit power estimate of device A by assuming that any difference between rates (a) and (b) are due solely to a difference in transmit power. This apparently rash assumption can be justified by noting that in most implementations transmit power can vary greatly (30 dB or more), while equivalent variations in receiver sensitivity (even due to interference) over the long term are almost unknown. Device B can then make a ranging estimate based on rate (a), the estimated transmit power of device A just determined, and an assumed propagation model (as is known in the art). For example, one may look up the range for a received data rate stored in a table.
Device B can also check its noise and interference floor by determining an RSSI value when device A is not transmitting, or even on nearby, unused frequencies. An unusually high level may indicate nearby interference that could then be taken into the calculations.
One example of a ranging algorithm that may be employed by device B involves a characterization of its own receiver; specifically, the quality of its recovered information (e.g., bit error rate of the demodulated output) as the input signal strength is varied, for various data rates.
When multiple transmissions are made to a single device, it is useful to occasionally test the channel to see if a faster rate is possible. Since the rates are assumed to be arranged in octaves, much is to be gained by moving to a higher rate and, should the transmission fail, relatively little is to be lost (since the test transmission was sent at twice the previous rate, the failure takes half the time). Adaptive data rate algorithms for accomplishing this are discussed more fully below.
Overhead Power of Wireless Devices Powered by Energy Harvesters
The transmitter implementation can benefit from low “overhead” power consumption, so that the device converts DC power from the EH to RF power as efficiently as possible. As the RF power out is reduced, the power consumed by these circuits (e.g., frequency synthesizers, voltage regulators, etc.) becomes a larger and larger fraction of the total power consumed by the device until, at zero power output, this fraction reaches 100%.
Since overhead power must still be supplied by the energy harvester, but does not produce any power output, it should be minimized. As illustrated in FIG. 4, both devices A and B have the same transmit power amplifier, but the overhead power of Device B, POH,B, is lower than the overhead power of Device A, POH,A. If Pharv is the power available from a particular energy harvester, Device B has at least two advantages over Device A:

    
    
        1. At any given available harvester power above POH,B, the RF power output of Device B is greater than that of Device A, implying that it will have greater range; and
        2. There exists a range of available harvester powers, between POH,B and POH,A, in which Device B will have a nonzero RF power output, but Device A will not. Values of Pharv in this range may be due to a particular market application or harvesting technology; for these situations Device B would be the practical device to use.

A Receiver Implementation (ASH Receiver)

    
    


A block diagram 500 for the ASH receiver, a receiver architecture especially suitable for low peak power applications, is shown in FIG. 5. In this receiver 500, the received signal passes through a band pass filter (BPF) 510, and then into an RF amplifier 515. The signal then passes through a delay element 520, which may be 500 ns, for example, then a second RF amplifier 525 before being detected by detector 540. To avoid instabilities due to the amount of RF gain present (such as more than 80 dB), the amplifiers 515 and 525 are not enabled at the same time; the pulse generator 530 sends an enable signal Q to the first amplifier 515 at the same time that it sends a disable signal !Q to the second amplifier 525. After a time substantially the same as the delay time of the delay element, the pulse generator 530 sends a disable signal to the first amplifier 515 and simultaneously sends an enable signal to the second amplifier 525. After a similar time, the process then repeats. In this way, by the use of the delay element 520 it is possible to have all of the receiver gain at RF, while maintaining stability since only a portion of the gain is enabled at any given time.
A heretofore underappreciated feature of the ASH receiver, however, is that sequencing the amplifiers of the ASH receiver also reduces the peak power used by the receiver—the two gain stages are not active simultaneously. The ASH receiver in accordance with this embodiment therefore has the gain of a two-stage amplifier while having the peak power of a one-stage amplifier. This feature makes it particularly advantageous for EH-powered systems.
Synthesizer Stopping
Another technique useful to minimize a peak-to-average power ratio in receivers and transmitters and thus lower overhead power consumption, is synthesizer stopping disclosed in accordance with various embodiments. A peak-to-average power ratio used by a transmitter to transmit data, for example, may be reduced by selectively controlling operation of the transmitter such that a synthesizer and a transmit signal path of the transmitter do not simultaneously operate during a transmit period of the transmitter. The transmitter may comprise a synthesizer, a controlled oscillator, such as a voltage-controlled, numerically-controlled, current-controlled oscillator or the like, and a sequencer operable to generate a plurality of enable signals that control operation of the synthesizer, the controlled oscillator, and a transmit signal path of the transmitter. The sequencer is operable to selectively control operation of the transmitter to prevent simultaneous operation of the synthesizer and the transmit signal path during a transmit period of the transmitter. In certain embodiments, the sequencer is operable to generate a first enable signal that enables the synthesizer, a second enable signal that enables the controlled oscillator, and a third enable signal that enables the transmit signal path of the transmitter. During a warm-up period of the transmitter the sequencer is operable to activate the first enable signal to enable the synthesizer and the second enable signal to enable the controlled oscillator, wait until the synthesizer is locked, and deactivate the first enable signal and activate the third enable signal to enable the transmit signal path during the transmit period of the transmitter, and deactivate the second enable signal and the third enable signal following the transmit period of the transmitter, as will be described.
Similarly, the power used by a receiver to receive data may be reduced by selectively controlling operation of the receiver such that a synthesizer and a transmit signal path of the receiver do not simultaneously operate during a receive period of the receiver. A receive may comprise a synthesizer, a controlled oscillator, and a sequencer operable to generate a plurality of enable signals that control operation of the synthesizer, the controlled oscillator, and a receiver signal path of the receiver. The sequencer is operable to selectively control operation of the receiver to prevent simultaneous operation of the synthesizer and the receiver signal path during a receive period of the receiver. In certain more specific embodiments, the sequencer is operable to generate a first enable signal that enables the synthesizer, a second enable signal that enables the controlled oscillator, and a third enable signal that enables the receiver signal path of the receiver. During a warm-up period of the receiver, the sequencer is operable to activate the first enable signal to enable the synthesizer and the second enable signal to enable the controlled oscillator, wait until the synthesizer is locked, and deactivate the first enable signal and activate the third enable signal to enable the receiver signal path during the receive period of the receiver, and deactivate the second enable signal and the third enable signal following the receive period of the receiver.
In the exemplary receiver 600 shown in FIG. 6, a phase-locked-loop synthesized, single-conversion superheterodyne receiver is shown. A sequencer generates three enable signals, one for the synthesizer, one for the controlled oscillator, and one for the rest of the receiver. The receiver 600 has a band-pass filter (BPF) 620, amplifiers 625, 640, mixer 630, channel filter 635, detector 645, synthesizer 650, voltage controlled oscillator (VCO) 655, storage element 660, and sequencer 665. Storage element 660 may be, for example, a capacitor or a data memory such as a digital register.
At the beginning of the warm-up period of receiver 600, the sequencer activates the Enable A and Enable B signals, enabling the synthesizer 650 and the VCO 655. Once the phase-locked loop comprised of synthesizer 650, storage element 660 and VCO 655 is locked, and just before the desired signal is expected, the sequencer 665 activates the Enable C signal, which enables the receiver signal path, including amplifiers 625, 640, mixer 630 and detector 645. In a conventional design, the synthesizer 650 would remain enabled through the entire receive period, only being disabled when the receiver goes back to sleep. However (and especially when the receiver is only to be activated for brief periods), it is frequently possible to turn off the synthesizer 650 after the loop is locked, by deactivating the Enable A signal. The VCO control voltage is then maintained throughout the reception period on storage element 660. In this “synthesizer stopping” technique the synthesizer 650 and the receiver signal path 670 are never simultaneously active, so the peak power consumed by the system is reduced. Since the synthesizer can draw a significant amount of power, this reduction also can be significant. It is noted that the phase-locked loop is just one type of synthesizer that may be used and the use of a phase-locked loop in this embodiment is meant for purposes of illustration and not limitation.
An exemplary synthesizer stopping algorithm in accordance with various embodiments is illustrated in flow 700 of FIG. 7. At Block 710, the Enable A and Enable B signals are activated, enabling the synthesizer 650 and VCO 655. At Block 720, the system waits until the synthesizer, which may comprised of a phase-locked loop as previously discussed, locks. At Block 730, the Enable A signal is deactivated, disabling the synthesizer 650. At Block 740, the Enable C signal is activated, enabling the signal path of the receiver (or transmitter). At Block 750, the message is received (or transmitted), and at Block 760, the Enable B and Enable C signals are deactivated, disabling the VCO 655 and the signal path 670 and putting the device to sleep. This algorithm may then be repeated indefinitely.
The timing diagrams of FIG. 8A and FIG. 8B illustrate the behavior of the sequencer control signals in a conventional design (FIG. 8A), and in a design in accordance with embodiments described herein that use synthesizer stopping (FIG. 8B). This synthesizer stopping technique is not limited to superheterodyne receivers; it may be used in all types of receivers, and also in transmitters.
A transmitter with synthesizer stopping is illustrated in block diagram 900 of FIG. 9. Transmitter 900 comprises antenna 910, BPF 920, amplifier 930, VCO 940, modulator 950, synthesizer 960, storage element 970, and sequencer 980 as shown. Operation is very similar to the receiver described in connection with FIG. 6; the synthesizer 960 and VCO 940 are enabled first, then, just before the transmit signal path 990 including amplifier 930 and modulator 950, is enabled, the synthesizer 960 is disabled and the VCO 940 remains controlled by the value stored on storage element 970.
Communication Buffering
Another way in which a peak-to-average power ratio may be reduced is by ensuring that the system microcomputer or Micro Controller Unit (MCU) is not active when the transceiver is active. This may be accomplished through the use of communication buffering, in accordance with yet other embodiments described herein. As used herein, the terms buffer, buffering, receive buffers, transmit buffers, and the like, refer to the buffering of data, such as data packets, in storage, which may a buffer register of the transceiver, any suitable memory technology such as a random access memory (RAM), Read Only Memory (ROM), Flash memory, Electrically Erasable Programmable Read Only Memory (EEPROM), mass storage such as a hard disc drive, floppy disc drive, optical disc drive or may accommodate other electronic storage media, and non-volatile memory (NVM). The memory may be active memory or may permanently reside in ROM, EEPROM or Flash memory, for example.
In accordance with certain embodiments, a peak-to-average power ratio used by the transmitter to transmit the data may be reduced by selectively controlling operation of a microcomputer and the transmitter such that the microcomputer and the transmitter do not simultaneously operate. In certain embodiments, this may be accomplished by the microcomputer placing a prepared data packet in a transmit buffer of the transmitter while the transmitter is in a lower-power mode such as a transmitter sleep mode, the microcomputer going into a lower-power mode such as a microcomputer sleep mode, the transmitter waking up and transmitting the prepared data packet in the transmit buffer, and following transmittal of the prepared data packet, the transmitter going into the transmitter lower-power mode. The transmit buffer may be a transmit buffer register of the transmitter, a random access memory, and a non-volatile memory, for example.
Similarly, communication buffering may be employed to reduce a peak-to-average power ratio used by the receiver to receive the data by selective control of the operation of a microcomputer and the receiver to prevent simultaneous operation of the microcomputer and the receiver during a receive period of the receiver. In more specific embodiments, the receiver may wake up to receive a data packet while the microcomputer is in a lower-power mode such as a microcomputer sleep mode, place the received data packet in a receive buffer of the receiver, and go into a lower-power mode such as a receiver sleep mode after placement of the received data packet in the receive buffer. The microcomputer wakes up to process the received data packet and then returns to the lower-power microcomputer mode following processing of the received data packet, as will be described. The receive buffer may be a receive buffer register of the receiver, a random access memory, and a non-volatile memory, for example.
One way of accomplishing communication buffering is the use of buffer registers, as illustrated in block diagram 1000 of FIG. 10. Block diagram 1000 comprises two antennas, 1010, 1040, a transmitter 1020, a buffer register 1030 coupled to transmitter 1020, a receiver 1050, a buffer register 1060 coupled to receiver 1050, and MCU 1070 coupled to buffer registers 1030, 1060. The MCU 1070 prepares the data packet to be transmitted, places it in the transmit buffer register 1030, then goes to sleep. The transmitter 1020 then wakes up, takes the packet from the buffer register 1030, and transmits it. Similarly, when the receiver 1050 receives a packet, it places it in the receive buffer register 1060, then goes to sleep. The MCU 1070 then wakes up, takes the packet from the buffer register 1060, and processes it. In this way, neither the transmitter 1020 nor the receiver 1050 is active (operational) when the MCU 1070 is active, reducing peak currents and therefore power used.
An exemplary flow 1100 for transmission is illustrated in FIG. 11 in accordance with various embodiments. At Block 1110, the MCU wakes up and prepares a packet for transmission. At Block 1120, the MCU places the prepared packet in the transmit buffer register, then goes to sleep at Block 1130. At Block 1140, the transmitter wakes up and transmits the packet, then goes to sleep at Block 1150. This flow may then be repeated indefinitely.
Control of each block (e.g., ensuring that Block 1130 ends before Block 1140 begins) may be achieved by a simple state machine, by dedicated control lines (e.g., an active-low “wake up” control line from the MCU to the transmitter, normally driven high, with a pull-down resistor so that it becomes active when the MCU goes to sleep), by a timer (e.g., a ripple counter, with an output control line for each block), or by other means.
An exemplary flow 1200 for communication buffering for reception is illustrated in FIG. 12 in accordance with various embodiments. At Block 1210, the receiver wakes up and receives a data packet. At Block 1220, the receiver places the received packet in the receive buffer register, then goes to sleep at Block 1230. At Block 1240, the MCU wakes up and processes the packet, then goes to sleep at Block 1250. This flow may then be repeated indefinitely.
Control of each block (e.g., ensuring that Block 1230 ends before Block 1240 begins) may be achieved by a simple state machine, by dedicated control lines (e.g., an active-low “wake up” interrupt signal from the receiver to the MCU, normally driven high, with a pull-down resistor so that it becomes active when the receiver goes to sleep), by a timer (e.g., a ripple counter, with an output control line for each block), or by other means.
Communication buffering may be most practical when there is a known upper bound on the size of the packets (so that the buffers can be sized so that they cannot overflow), and when the latency associated with the serial handling of the packets can be tolerated.
Predictive Algorithms
If the power sourced by the EH device varies over time, to avoid interruptions of service the transmitter must be able to predict decreases in available power in advance. In this way it may reduce its transmitted RF power (and its data rate) before the transmission of a packet begins. Ideally, it should be able to predict these decreases far enough in advance that it has time to inform a receiving device of the incipient data rate change, so that the receiving device is not surprised by the data rate change and suffer a loss of data (which may last until it reacquires the new data rate).
Also ideally, the EH device would be able to inform the transmitter of impending changes to its available power, but that is often not the case in practical systems, which often lack a communications link between the EH device and the load it powers. In these cases, the wireless device must employ some type of predictive algorithm to estimate future power availability.
One algorithm that may be used is a simple heuristic: If the supplied voltage falls below a predetermined threshold, the wireless device may conclude that the outlook for future power is bleak, and respond accordingly. This may happen, for example, when the engine supplying a vibration-based EH system is shut down at the end of a working shift. Another approach would be to monitor and record the available power over time, and make diurnal correlations. If the time is 4:59 PM, and the average power available for the last ten days during the 5 PM minute is significantly lower than that in the 4:59 minute, the device may reduce its transmitted data rate (perhaps after first announcing the change to its receiving device) in expectation of the same reduction today.
Therefore, in accordance with various embodiments disclosed herein a predictive methodology may be employed to determine the available output power of an electrical power source by predicting a future value of the available output power of the electrical power source. This may include prior to transmitting data, changing the transmit power of a transmitter and/or a data rate of the transmitter in accordance with the predicted future value of the available output power of the electrical power source. A receive may be notified of the changed data rate of the transmitter. As mentioned, predicting a future value of the available output power of the electrical power source further may comprise the use of a plurality of prior values of the available output power of the electrical power source or the use of a predictive algorithm. As will be described, the predictive algorithm may use at least one curve-fitting technique, a linear extrapolation, or the use of a heuristic.
Consider, the example of a predictive algorithm using linear extrapolation as shown in FIG. 13, in accordance with various embodiments. In this case, the history of available power is linearly extrapolated to estimate its future value.
The device determines the power available from its source from time to time. For example, at time T−1 the available power P−1 W, and at time T0 the available power is P0 W.
The available power is seen to be linearly decreasing with time, at a rate of




  
    
      
        m
        =
        
          
            
              (
              
                
                  P
                  0
                
                -
                
                  P
                  
                    -
                    1
                  
                
              
              )
            
            
              (
              
                
                  T
                  0
                
                -
                
                  T
                  
                    -
                    1
                  
                
              
              )
            
          
          ⁢
          W
          ⁢
          
            /
          
          ⁢
          
            s
            .
          
        
      
    
    
      
        (
        2
        )
      
    
  




At time T0, a prediction (estimate) of the power available at time T1 can be made by (3) extrapolating the line:P1=m(T1-T0)+P0 W.

Those of ordinary skill in the art will recognize that standard curve-fitting techniques including, but not limited to, averaging, smoothing, and the method of least squares, may be used to fit a line or other curve to the measured available power data, and to estimate m, P1, and perhaps other curve-fitting parameters.

An exemplary predictive flow 1400 is illustrated in FIG. 14 in accordance with various embodiments. At Block 1410, the device collects an available power value at at least two different times. At Block 1420, m is determined, using Equation (2). Next a time T1, for which the available power estimate is to be made, is selected at Block 1430. This can be, for example, a time at which a message is to be sent. Finally, the estimate P1 is made at Block 1440, using Equation (3) above. This algorithm may then be repeated indefinitely.
Other predictive techniques could include the use of artificial neural networks (ANNs) to consider more input variables. Such variables could include the types, amounts, origins, and destinations of message traffic handled; environmental factors; and qualities of the power accepted from the EH device (variability, noise, etc.), as well as temporal factors. ANNs are adaptive, non-linear systems that learn to perform a desired function without external programming. During the training phase, the system parameters (typically connections and gains between the ANN's processing elements) of an ANN are changed to optimally align its behavior to a “learning rule” (e.g., to predict EH available power changes). Following this, the ANN is placed into service. The wireless device may then use the output of the ANN to determine the power of its next transmission.
Note that predictions of power increases are also useful: If a device can predict that its available power may soon increase, it may wish to delay the start of a transmission that would otherwise be made at a low output power (and, therefore, at a low data rate). It is possible that the message transmission will be completed sooner if the device waits until more power is available, and the message can be sent at a higher rate.
Non-linear, or polynomial, extrapolation, is also useful to predict future values of available power; in particular, the method of Lagrange polynomials (i.e., selection of the polynomial of least order that coincides with the historical values of available power) may be used for near-term predictions. As in most uses of polynomial extrapolation, however, caution must be exercised when making long-term predictions to avoid significant error.
Adaptive Data Rate
As previously mentioned, when multiple transmissions are made to a single device, it is useful to occasionally test the channel to see if a faster rate is possible. Since the rates are assumed to be arranged in octaves, much is to be gained by moving to a higher rate and, should the transmission fail, relatively little is to be lost (since the test transmission was sent at twice the previous rate, the failure takes half the time).
One task to be performed by a wireless device powered by an energy-harvesting source is to optimize its transmitted data rate over a given communication link or channel. It is advantageous to send or transmit at the maximum attainable rate, consistent with the device's power source and the quality of the transmission path or channel. The approaches disclosed herein that may be undertaken by a device to determine this rate, however, consistent with various embodiments, are not obvious. As discussed herein, the term channel encompasses channel of varying types such as frequency, time, coding and any other channelization schemes.
An adaptive data rate approach in accordance with an embodiment employs a variation of the Paging “20 page” sensitivity test method, such as that described in IEC 60489-6, Annex E, in which the transmitted power is reduced after some number of consecutive successful pages, and increased after one is missed. For EH-powered devices, the rule might be, “Start at the fastest possible rate. Decrement the rate with every missed acknowledgement message (ACK), until an ACK is received. Then attempt to send d consecutive packets, such as three consecutive packets, at the present rate. If successful (i.e., ACKs are received for all three), move to the next higher rate and attempt again. If unsuccessful with any one of the three (i.e., if an ACK is not received), immediately move to the next lower rate and attempt again.” Thus, an adaptive data rate algorithm may be similar to an algorithm used to determine selective call sensitivity, modified so that the data rate of transmission is varied instead of the signal strength used to transmit.
Referring now to flow 1500 of FIG. 15, the methodology employed by the algorithm has two parts—a “fast” loop to quickly find a range of successful data rates, followed by a “slow” loop that adapts to environmental changes and the probabilistic nature of wireless reception, and during which the great majority of the packets sent are expected to be transmitted.
The algorithm starts when a set of packets appears in the transmit queue. At Block 1510, the transmitter sets its data rate R to its maximum value and, at Decision Block 1520, attempts to successfully send (i.e., receive the associated ACK from) d consecutive packets at this rate and determine if an ACK was received for each transmitted packet. If an ACK is not received after one of these transmissions, however, R is reduced to R/4 at Block 1530, the present packet is resent, and the count restarts.
If d consecutive packets are successfully sent (i.e., the ACKs were received), R is doubled to 2R (unless it is already at its maximum value, of course, in which case it remains unchanged) at Block 1540 and, at Block 1550, the transmitter again attempts to successfully send d consecutive packets at this rate. If it is determined at Decision Block 1550 that an ACK is not received after one of these transmissions, R is reduced to R/2 at Block 1560, the present packet is resent, and the count restarts.
If, however, it is determined at Decision Block 1550 that d consecutive packets are successfully sent (i.e., the ACKs were received), R is doubled to 2R (unless it is already at its maximum value, of course, in which case it remains unchanged) at Block 1570. At Decision Block 1580, the packet queue is checked; if it is not empty the flow returns to Decision Block 1550. If the queue is empty, the flow stops. In fact, the flow stops at any Block if the queue becomes empty.
The “speed” of the adaptive data rate flow 1500 of FIG. 15 is determined by the factor by which R is divided in Blocks 1540 and 1570. If the divisor is too great, however, the algorithm may skip over the “slow” range, and may take a relatively long time to recover. A “fast” value, such as 4 in Block 1530 ensures that the flow cannot skip the “slow” range.
Adaptive Data Rate, d=3
In accordance with an adaptive data rate algorithm, with d=3, the probability of transmitting at data rate n−1 is:

Pn−1=Pn·[1−(Pn(call))3]+Pn−2·(Pn−2(call))3,  (4)

where

    
    
        Pn, Pn−1, and Pn−2 are the probabilities of transmitting at data rates n, n−1, and n−2, respectively, and
        Pn(call) and Pn−2(call) are the probabilities of successfully receiving one packet, out of one transmitted, at data rates n and n−2, respectively.

In this analysis we make the simplifying assumption that acknowledgements (ACKs) are always received when sent. This can be justified by noting that ACKs are significantly shorter than most, if not all, data packets; should a data packet be received it is therefore likely that an ACK would also be received. A more detailed analysis, however, would have to consider the effect of probabilistic ACK reception.

    
    


We initially assume that the data rates are arranged in octaves, so that data rate n−1 is:




  
    
      R
      
        n
        -
        1
      
    
    =
    
      
        2
        ·
        
          R
          
            n
            -
            2
          
        
      
      =
      
        
          R
          n
        
        2
      
    
  
  ,




where Rn, Rn−1, and Rn−2 are the data rates n, n−1, and n−2, respectively, in bits/s, and Rn>Rn−1.

The probabilities of individual packet reception form a relatively steep curve: As the data rates are doubled each time, the probability of reception quickly moves from substantially 100% to substantially 0%. An example of this behavior is shown in Table 1.







TABLE 1







Typical call probabilities for octaves of data rate.










Rate
Pi(call)







Rn−3
1.000000000000000



Rn−2
0.999999952462873



Rn−1
0.987243370972121



Rn
0.005177104881681



Rn+1
0.000000000000000










The fact that rates less than Rn−2 have P(call)≈1.0 and those greater than Rn have P(call)≈0.0 can be used to simplify the probabilities:

Pn=Pn+1+Pn−1·(Pn−1(call))3 

Pn+1=Pn+2·[1−(Pn+2(call))3]+Pn·(Pn(call))3 

Pn+2=Pn+3·[1−(Pn+3(call))3]+Pn+1·(Pn+1(call))3 

But Pn+1(call) and Pn+3(call) are both ≈0, so Pn+2=Pn+3. Since this argument applies for all R>Rn+2, and the sum of all the probabilities cannot exceed 1, Pn+2=Pn+3 must be zero. Similarly,

Pn−4=Pn−3·[1−(Pn−3(call))3]+Pn−5·(Pn−5(call))3.

But Pn−3(call) and Pn−5(call) are both ≈1, so Pn−4=Pn−5. Since this argument also applies for all R<Rn−4, and the sum of all the probabilities cannot exceed 1, Pn+2=Pn+3 must be zero, too.

Starting from Equation (4), we can deduce that

Pn−3=Pn−2·[1−(Pn−2(call))3]+Pn−4·(Pn−4(call))3.

But, since Pn−4(call)=0, this simplifies to

Pn−3=Pn−2·[1−(Pn−2(call))3].  (5)

Starting again from Equation (4), we can also deduce that

Pn−2=Pn−1·[1−(Pn−1(call))3]+Pn−3·(Pn−3(call))3,

After some simplification, and using Equation (5),





  
    
      
        
          P
          
            n
            -
            2
          
        
        =
        
          
            
              
                P
                
                  n
                  -
                  1
                
              
              ·
              
                [
                
                  1
                  -
                  
                    
                      (
                      
                        
                          P
                          n
                        
                        ⁡
                        
                          (
                          call
                          )
                        
                      
                      )
                    
                    3
                  
                
                ]
              
            
            
              
                (
                
                  
                    P
                    
                      n
                      -
                      2
                    
                  
                  ⁡
                  
                    (
                    call
                    )
                  
                
                )
              
              3
            
          
          .
        
      
    
    
      
        (
        6
        )
      
    
  




Similarly, and using Equation (6), we can determine that




  
    
      
        
          P
          
            n
            -
            1
          
        
        =
        
          
            
              
                P
                n
              
              ·
              
                [
                
                  1
                  -
                  
                    
                      (
                      
                        
                          P
                          n
                        
                        ⁡
                        
                          (
                          call
                          )
                        
                      
                      )
                    
                    3
                  
                
                ]
              
            
            
              
                (
                
                  
                    P
                    
                      n
                      -
                      1
                    
                  
                  ⁡
                  
                    (
                    call
                    )
                  
                
                )
              
              3
            
          
          .
        
      
    
    
      
        (
        7
        )
      
    
  




Starting once again with Equation (4), we see that

Pn=Pn+1·[1−(Pn+1(call))3]+Pn−1·(Pn−1(call))3.

However, from Table 1, we see that Pn+1(call)=0. Combining this with Equation (7), we derive





  
    
      
        
          P
          n
        
        =
        
          
            
              P
              
                n
                +
                1
              
            
            
              
                (
                
                  
                    P
                    n
                  
                  ⁡
                  
                    (
                    call
                    )
                  
                
                )
              
              3
            
          
          .
        
      
    
    
      
        (
        8
        )
      
    
  




To determine a value for Pn+1, we need to use the other boundary condition on the probabilities, i.e., that they must sum to 1. Since we know that Pn−4, Pn−5 . . . are all zero, and that Pn+2, Pn+3 . . . are all zero, it is sufficient to sum Pn−3, Pn−2, Pn−1, Pn, and Pn+1.

Pn−3+Pn−2+Pn−1+Pn+Pn+1=1  (9)

After some manipulation, we conclude that





  
    
      
        
          P
          
            n
            +
            1
          
        
        =
        
          
            
              B
              n
            
            ⁢
            
              B
              
                n
                -
                1
              
            
            ⁢
            
              B
              
                n
                -
                2
              
            
          
          
            
              
                A
                n
              
              ⁢
              
                A
                
                  n
                  -
                  1
                
              
              ⁢
              
                A
                
                  n
                  -
                  2
                
              
            
            +
            
              
                A
                n
              
              ⁢
              
                A
                
                  n
                  -
                  1
                
              
            
            +
            
              
                A
                n
              
              ⁢
              
                B
                
                  n
                  -
                  2
                
              
            
            +
            
              
                B
                
                  n
                  -
                  1
                
              
              ⁢
              
                B
                
                  n
                  -
                  2
                
              
            
            +
            
              
                B
                n
              
              ⁢
              
                B
                
                  n
                  -
                  1
                
              
              ⁢
              
                B
                
                  n
                  -
                  2
                
              
            
          
        
      
    
    
      
        (
        10
        )
      
    
  




where the notation has been simplified by defining

Ai=[1−(Pi(call))3]

and

Bi=(Pi(call))3.

Using this value for Pn+1, and substituting back into Equations (8), (7), (6), and (5), in order (Table 2), we can determine the numerical values of Pn through Pn−3. These values are summarized in Table 3. Note that the sum of the Pis is unity, a comforting confirmation. The probability of reception of a packet at a given Ri is then Pi×Pi(call), and is shown in the final column of Table 3.







TABLE 2







Summary of the Pis (original, cubic case).








Pi
Value





≧Pn+2
0


 


Pn+1




  
    
      B
      n
    
    ⁢
    
      B
      
        n
        -
        1
      
    
    ⁢
    
      B
      
        n
        -
        2
      
    
  
  
    
      
        A
        n
      
      ⁢
      
        A
        
          n
          -
          1
        
      
      ⁢
      
        A
        
          n
          -
          2
        
      
    
    +
    
      
        A
        n
      
      ⁢
      
        A
        
          n
          -
          1
        
      
    
    +
    
      
        A
        n
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
    +
    
      
        B
        
          n
          -
          1
        
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
    +
    
      
        B
        n
      
      ⁢
      
        B
        
          n
          -
          1
        
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
  






 


Pn




  
    P
    
      n
      +
      1
    
  
  
    
      (
      
        
          P
          n
        
        ⁡
        
          (
          call
          )
        
      
      )
    
    3
  






 


Pn−1




  
    
      P
      n
    
    ·
    
      [
      
        1
        -
        
          
            (
            
              
                P
                n
              
              ⁡
              
                (
                call
                )
              
            
            )
          
          3
        
      
      ]
    
  
  
    
      (
      
        
          P
          
            n
            -
            1
          
        
        ⁡
        
          (
          call
          )
        
      
      )
    
    3
  






 


Pn−2




  
    
      P
      
        n
        -
        1
      
    
    ·
    
      [
      
        1
        -
        
          
            (
            
              
                P
                
                  n
                  -
                  1
                
              
              ⁡
              
                (
                call
                )
              
            
            )
          
          3
        
      
      ]
    
  
  
    
      (
      
        
          P
          
            n
            -
            2
          
        
        ⁡
        
          (
          call
          )
        
      
      )
    
    3
  






 


Pn−3
Pn−2 · [1 − (Pn−2(call))3]


≦Pn−4
0
















TABLE 3







Probability Pi that a packet will be sent at a given data rate, and probability


Pi × Pi(call) that a packet will be received at a given data rate.












Rate
Pi(call)
Bi
Ai
Pi
Pi × Pi(call)















Rn−3
1.000000000000000
1
0
2.6942E−09
2.6942E−09


Rn−2
0.999999952462873
1
1.43E−07
0.018891884
0.018891883


Rn−1
0.987243370972121
0.962216
0.037784
0.499999931
0.493621617


Rn
0.005177104881681
1.39E−07
1
0.481108116
0.002490747


Rn+1
0.000000000000000
0
1
6.6758E−08
0









By inspection of Table 3, we can see that approximately one-half of the packets sent by the device are sent at rate Rn−1, and that the remaining packets are almost all sent at Rn.
We emphasize that the Pis represent the fraction of packets sent at the various data rates, not the fraction of time spent at each data rate. Thus, if one assumes that all packets sent have an equal number of bits, since the rates Ri are arranged in octaves the device spends twice as much time sending a packet at rate Rn−1 than it does at rate Rn, and four times as much when at rate Rn−2.
Similarly, the Pi×Pi(call) values represent the fraction of packets received at the various data rates.
The overall received data rate (throughput) Roa is then the fraction of time transmissions are received at each Ri, multiplied by the value of the relevant Ri, then summed over all the rates:




  
    R
    oa
  
  =
  
    
      ∑
      i
    
    ⁢
    
      
        
          P
          i
        
        ⁢
        
          T
          i
        
        ⁢
        
          R
          i
        
        ⁢
        
          
            P
            i
          
          ⁡
          
            (
            call
            )
          
        
      
      
        
          ∑
          i
        
        ⁢
        
          (
          
            
              P
              i
            
            ⁢
            
              T
              i
            
            ⁢
            
              
                P
                i
              
              ⁡
              
                (
                call
                )
              
            
          
          )
        
      
    
  




. . . where Ti is the transmission duration of a packet at rate Ri. This calculation is shown in Table 4.








TABLE 4







The overall data rate Roa.













Packet
Fraction of





Duration
Reception


Rate Ri
Pi × Pi(call)
Ti
Time Using Ri
Overall bits/s





0.125 Rn   
2.6942E−09
8 Tn
2.02324E−08
 2.529E−09 Rn


0.25 Rn  
0.018891883
4 Tn
0.070935346
0.01773384 Rn


0.5 Rn 
0.493621617
2 Tn
0.926726566
0.46336328 Rn


1 Rn
0.002490747
1 Tn
0.002338068
0.00233807 Rn


2 Rn
0
0.5 Tn 
0
     0 Rn





Overall Rate
0.48343519 Rn





Roa:









The overall data rate of the protocol, Roa, using the original parameters, is 48.3% that of the base rate Rn.
Adaptive Data Rate, d=1
Further optimization of this protocol for throughput is possible; for example, in Equation (4) the exponents of Pn(call) and Pn−2(call) may be decreased to bias the protocol to the higher data rates. This would have the effect of reducing the number of packets at rate Rn−1 that needed to be received before increasing the rate to Rn.
If we reduce the exponents of Pn(call) and Pn−2(call) to unity (i.e., set d=1), the algorithm rule would be simple: If a packet were correctly received, move to a higher rate; if not, move to a lower rate. To analyze this “linear” case, we can proceed in a manner similar to the cubic exponent case. Like (1),

Pn−1=Pn·[1−Pn(call)]+Pn−2·Pn−2(call)),  (11)

From (4),

Pn−3=Pn−2·[1−Pn−2(call)].  (12)

From (5),





  
    
      
        
          P
          
            n
            -
            2
          
        
        =
        
          
            
              
                P
                
                  n
                  -
                  1
                
              
              ·
              
                [
                
                  1
                  -
                  
                    
                      P
                      
                        n
                        -
                        1
                      
                    
                    ⁡
                    
                      (
                      call
                      )
                    
                  
                
                ]
              
            
            
              
                P
                
                  n
                  -
                  2
                
              
              ⁡
              
                (
                call
                )
              
            
          
          .
        
      
    
    
      
        (
        13
        )
      
    
  




From (6),





  
    
      
        
          P
          
            n
            -
            1
          
        
        =
        
          
            
              
                P
                n
              
              ·
              
                [
                
                  1
                  -
                  
                    
                      P
                      n
                    
                    ⁡
                    
                      (
                      call
                      )
                    
                  
                
                ]
              
            
            
              
                P
                
                  n
                  -
                  1
                
              
              ⁡
              
                (
                call
                )
              
            
          
          .
        
      
    
    
      
        (
        14
        )
      
    
  




From (7),





  
    
      
        
          P
          n
        
        =
        
          
            
              P
              
                n
                +
                1
              
            
            
              
                P
                n
              
              ⁡
              
                (
                call
                )
              
            
          
          .
        
      
    
    
      
        (
        15
        )
      
    
  




To determine the value of Pn+1, we can use Equation (10) without modification, if we redefine

Ai=[1−Pi(call)]

and

Bi=Pi(call).

The new values of the Pis are shown in Table 5. Using the call probabilities of Table 1, the Pis and the Pi×Pi(call) numerical values then can be calculated as was done for Table 3; these are shown in Table 6.








TABLE 5







Summary of the Pis (linear case).








Pi
Value





≧Pn+2
0


 


Pn+1




  
    
      B
      n
    
    ⁢
    
      B
      
        n
        -
        1
      
    
    ⁢
    
      B
      
        n
        -
        2
      
    
  
  
    
      
        A
        n
      
      ⁢
      
        A
        
          n
          -
          1
        
      
      ⁢
      
        A
        
          n
          -
          2
        
      
    
    +
    
      
        A
        n
      
      ⁢
      
        A
        
          n
          -
          1
        
      
    
    +
    
      
        A
        n
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
    +
    
      
        B
        
          n
          -
          1
        
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
    +
    
      
        B
        n
      
      ⁢
      
        B
        
          n
          -
          1
        
      
      ⁢
      
        B
        
          n
          -
          2
        
      
    
  






 


Pn




  
    P
    
      n
      +
      1
    
  
  
    
      P
      n
    
    ⁡
    
      (
      call
      )
    
  






 


Pn−1




  
    
      P
      n
    
    ·
    
      [
      
        1
        -
        
          
            P
            n
          
          ⁡
          
            (
            call
            )
          
        
      
      ]
    
  
  
    
      P
      
        n
        -
        1
      
    
    ⁡
    
      (
      call
      )
    
  






 


Pn−2




  
    
      P
      
        n
        -
        1
      
    
    ·
    
      [
      
        1
        -
        
          
            P
            
              n
              -
              1
            
          
          ⁡
          
            (
            call
            )
          
        
      
      ]
    
  
  
    
      P
      
        n
        -
        2
      
    
    ⁡
    
      (
      call
      )
    
  






 


Pn−3
Pn−2 · [1 − Pn−2(call)]


≦Pn−4
0
















TABLE 6







Probability Pi that a packet will be sent at a given data rate, and probability


Pi × Pi(call) that a packet will be received at a given data rate (linear case).












Rate
Pi(call)
Bi
Ai
Pi
Pi × Pi(call)















Rn−3
1.000000000000000
1
0
3.01657E−10
3.01657E−10


Rn−2
0.999999952462873
1
4.75E−08
0.006345713
0.006345712


Rn−1
0.987243370972121
0.987243
0.012757
0.4974443
0.491098587


Rn
0.005177104881681
0.005177
0.994823
0.493654287
0.0025557


Rn+1
0.000000000000000
0
1
0.0025557
0









Finally, the overall data rate for the linear case, Roa, can be calculated as was done in Table 4; these are shown in Table 7.








TABLE 7







Calculation of the overall data rate (linear case).













Packet
Fraction of





Duration
Reception


Rate Ri
Pi × Pi(call)
Ti
Time Using Ri
Overall bits/s





0.125 Rn   
3.01657E−10
8 Tn
 2.389E−09 Tn
2.9863E−10 Rn 


0.25 Rn  
0.006345712
4 Tn
0.02512816 Tn
0.00628204 Rn


0.5 Rn 
0.491098587
2 Tn
0.97234178 Tn
0.48617089 Rn


1 Rn
0.0025557
1 Tn
0.00253006 Tn
0.00253006 Rn


2 Rn
0
0.5 Tn 
     0 Tn
     0 Rn





Overall Rate
0.49498299 Rn





Roa:









The overall data rate has improved slightly, to 0.495 Rn. Looking at the Pis, we note that in both Table 3 and Table 6 the algorithm attempts almost the same number of packet transmissions at Rn−1 and Rn but, because Pn−1(call) is 0.987 and Pn(call) is only 0.005, the majority of the transmissions at Rn fail.
Adaptive Data Rate, Blind Transmission
It is noted that if one packet were transmitted at each of the five data rates Ri in Table 3 without requiring acknowledgement (as may occur in a beaconing network when the ranges vary or are unknown), the overall data rate Roa would be:



  
    
      1
      
        R
        oa
      
    
    =
    
      
        1
        5
      
      ⁡
      
        [
        
          
            1
            
              R
              
                n
                -
                3
              
            
          
          +
          
            1
            
              R
              
                n
                -
                2
              
            
          
          +
          
            1
            
              R
              
                
                  n
                  -
                  1
                
                ⁢
                
                  
                
              
            
          
          +
          
            1
            
              R
              n
            
          
          +
          
            1
            
              R
              
                n
                +
                1
              
            
          
        
        ]
      
    
  




  
    
      1
      
        R
        oa
      
    
    =
    
      
        1
        5
      
      ⁡
      
        [
        
          
            8
            
              R
              n
            
          
          +
          
            4
            
              R
              n
            
          
          +
          
            2
            
              R
              n
            
          
          +
          
            1
            
              R
              n
            
          
          +
          
            1
            
              2
              ⁢
              
                R
                n
              
            
          
        
        ]
      
    
  




  
    
      1
      
        R
        oa
      
    
    =
    
      31
      
        10
        ⁢
        
          R
          n
        
      
    
  




  
    
      R
      oa
    
    =
    
      
        10
        ⁢
        
          R
          n
        
      
      31
    
  



. . . or just under one-third (0.323) of the base rate Rn. The proposed algorithm has an overall data rate superior to this—0.483Rn for d=3 and 0.495Rn for d=1—and guarantees reception due to the receipt of the ACKs.

It is noted that although many of the embodiments discussed herein focus on energy harvesting power sources, it is recognized that other electrical power sources can also be characterized as power-limited and would similarly benefit from scaling transmission data rate according to the available power from the power source. An example is a battery that is near end-of-life (i.e., largely but not completely discharged). Batteries in this state are characterized by lower open-circuit voltage and higher series resistance than fresh, fully charged cells of the same type, and therefore can provide less power to a load. In this case, it would be desirable to lower the data rate in order to maintain communication range while satisfying the battery's available power limitation.
Therefore, in accordance with various embodiments, when the electrical power source is a battery, the available output power of the battery is below a threshold, and a transmitter that transmits the data has a transmission range, a methodology for power-efficient communications may additionally comprise lowering a transmit power of the transmitter and lowering the data rate to a new lower data rate to maintain the transmission range of the transmitter. Lowering the data rate to the new lower data rate may occur prior to lowering the transmit power of the transmitter. Furthermore, prior to lowering the transmit power but after lowering the data rate, the transmission range of the transmitter may be increased.
It will be appreciated that embodiments of the invention described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions described herein. The non-processor circuits may include, but are not limited to, a receiver, a transmitter, a radio, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as a method to perform functions in accordance with certain embodiments consistent with the present invention. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. Thus, methods and means for these functions have been described herein. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
Those skilled in the art will recognize that the present invention has been described in terms of exemplary embodiments based upon use of a programmed processor. However, the invention should not be so limited, since the present invention could be implemented using hardware component equivalents such as special purpose hardware and/or dedicated processors which are equivalents to the invention as described and claimed. Similarly, general purpose computers, microprocessor based computers, micro-controllers, optical computers, analog computers, dedicated processors and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments of the present invention.
Those skilled in the art will appreciate that a program flow and associated data used to implement the embodiments described above can be implemented using various forms of storage such as Read Only Memory (ROM), Random Access Memory (RAM), Electrically Erasable Programmable Read Only Memory (EEPROM); non-volatile memory (NVM); mass storage such as a hard disc drive, floppy disc drive, optical disc drive; optical storage elements, magnetic storage elements, magneto-optical storage elements, flash memory, core memory and/or other equivalent storage technologies without departing from the present invention. Such alternative storage devices should be considered equivalents.
Various embodiments described herein are implemented using programmed processors executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic storage medium or transmitted over any suitable electronic communication medium. However, those skilled in the art will appreciate that the processes described above can be implemented in any number of variations and in many suitable programming languages without departing from the present invention. For example, the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from the invention. Error trapping can be added and/or enhanced and variations can be made in user interface and information presentation without departing from the present invention. Such variations are contemplated and considered equivalent.
In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
The representative embodiments, which have been described in detail herein, have been presented by way of example and not by way of limitation. It will be understood by those skilled in the art that various changes may be made in the form and details of the described embodiments resulting in equivalent embodiments that remain within the scope of the appended claims.

## Claims

1. A method of power-efficient communications, comprising:
determining available output power of an energy harvesting electrical power source;
drawing power using a data processing apparatus from the energy harvesting electrical power source and performing by the data processing apparatus one or more of:
transmitting data at a data transmission rate determined, at least in part, by the available output power of the energy harvesting electrical power source, the transmitting data configured to enable a ratio of peak-to-average power consumption of available output power from the energy harvesting electrical power source used in transmitting data to be minimized and to enable energy consumption of the available output power from the energy harvesting electrical power source to be maximized per unit time; and
receiving data at a data reception rate determined, at least in part, by the available output power, the receiving data configured to enable a ratio of peak-to-average power consumption of the available output power from the energy harvesting electrical power source used in receiving data to be minimized and to enable energy consumption of the available output power of the energy harvesting electrical power source to be maximized per unit time.

2. The method of claim 1, further comprising:
minimizing a ratio of peak-to-average power consumed in transmitting the data in order to maximize a portion of the available output power usable to transmit data.

3. The method of claim 2, where minimizing the ratio of peak-to-average power provides for one or more of:
increasing one or more of the data transmission rate and a transmission range;
increasing one or more of the data reception rate and a reception range; and
reducing power consumption of a transmitter of the data processing apparatus that transmits the data.

4. The method of claim 3, further comprising one or more of:
increasing the data transmission rate of a transmitter; and
increasing a transmission range of the transmitter.

5. The method of claim 3, where minimizing the ratio of peak-to-average power provides for increasing a reception range of a receiver that receives the data and further comprising:
reducing power consumption of the receiver.

6. The method of claim 5, further comprising:
controlling a reception range of the receiver by selectively turning on a low noise amplifier (LNA) of the receiver to increase the reception range of the receiver.

7. The method of claim 3, where minimizing the ratio of peak-to-average power further comprises reducing power used by a receiver to receive the data.

8. The method of claim 7, further comprising one or more of:
increasing the data reception rate of receiver, and
increasing a reception range of the receiver.

9. The method of claim 8, further comprising:
selectively turning on a low noise amplifier (LNA) of the receiver to increase the reception range of the receiver.

10. The method of claim 7, where reducing power used by the receiver to receive the data further comprises one or more of:
selectively controlling operation of the receiver to minimize the ratio of peak-to-average power used by a synthesizer and a transmit signal path of the receiver during a receive period of the receiver; and
selectively controlling operation of a microcomputer and the receiver to minimize the ratio of peak-to-average power used by the microcomputer and the receiver.

11. The method of claim 10, the method further comprising:
the receiver waking up from a receiver sleep mode and receiving a data packet while
the microcomputer is in a microcomputer sleep mode;
the receiver placing the received data packet in a receive buffer of the receiver;
the receiver going into a receiver sleep mode;
the microcomputer waking up and processing the received data packet; and
the microcomputer going into the microcomputer sleep mode.

12. The method of claim 3, where reducing the power consumption of the transmitter to transmit the data further comprises one or more of:
selectively controlling operation of the transmitter to minimize the ratio of peak-to-average power used by a synthesizer and a transmit signal path of the transmitter during a transmit period of the transmitter; and
selectively controlling operation of a microcomputer and the transmitter to minimize the ratio of peak-to-average power used by the microcomputer and the transmitter.

13. The method of claim 12, further comprising:
the microcomputer placing a prepared data packet in a transmit buffer of the transmitter while the transmitter is in a transmitter sleep mode;
the microcomputer going into a microcomputer sleep mode;
the transmitter waking up and transmitting the prepared data packet in the transmit buffer; and
following transmittal of the prepared data packet, the transmitter going into the transmitter sleep mode.

14. The method of claim 1, further comprising:
determining the data reception rate of data transmitted by a first network device and received by a second network device; and
estimating a range between said first and second network devices from the data reception rate.

15. The method of claim 14, further comprising:
determining the range between said first and second network devices from an estimated transmit power of the first network device.

16. The method of claim 14, where an RSSI value is not needed to estimate the range.

17. The method of claim 1, where determining available output power of the energy harvesting electrical power source comprises predicting a future value of the available output power of the electrical power source.

18. The method of claim 17, further comprising prior to transmitting data:
changing one or more of the transmit power of a transmitter and a data transmission rate of the transmitter in accordance with the predicted future value of the available output power of the energy harvesting electrical power source.

19. The method of claim 18, further comprising:
notifying a receiver of the data processing apparatus of the changed data transmission rate of the transmitter.

20. The method of claim 17, where predicting a future value of the available output power of the energy harvesting electrical power source further comprises one or more of:
using a plurality of prior values of the available output power of the energy harvesting electrical power source; and
using a predictive algorithm having one or more of a curve-fitting technique, a linear extrapolation, a non-linear extrapolation, and a heuristic.

21. The method of claim 20, where in accordance with the predictive algorithm, further comprising:
a transmitter of the data processing apparatus collecting at a plurality of times T-n the available output power P-n of the energy harvesting electrical power source;
determining a linear rate of change m of the available output power in accordance with





  
    
      
        m
        =
        
          
            
              (
              
                
                  P
                  0
                
                -
                
                  P
                  
                    -
                    1
                  
                
              
              )
            
            
              (
              
                
                  T
                  0
                
                -
                
                  T
                  
                    -
                    1
                  
                
              
              )
            
          
          ⁢
          W
          ⁢
          
            /
          
          ⁢
          s
        
      
    
    
      
        (
        1
        )
      
    
  



selecting a time T1 to determine a predicted change in the available output power; and
estimating at time T0 the available output power P1 available at time T1 in accordance with


P1=m(T1−T0)+P0W.

22. The method of claim 1, further comprising optimizing the data transmission rate over a communication link, comprising:
transmitting a plurality of consecutive data packets over the communication link at a test data transmission rate;
determining whether each data packet of the plurality of consecutive data packets was successfully transmitted at the test data transmission rate;
if each data packet of the plurality of consecutive data packets were successfully transmitted at the test data transmission rate, increasing the test data transmission rate by a predetermined multiplier to an increased test data transmission rate if the test data transmission rate is not a maximum data transmission rate of the communication link; and
if one or more of the data packets of the plurality of consecutive data packets were not successfully transmitted at the test data transmission rate, then upon determination that a first data packet of the one or more of the data packets of the plurality of consecutive data packets was not successfully transmitted reducing the test data transmission rate by a predetermined divider to a reduced test data transmission rate and transmitting the first data packet of the one or more data packets of the plurality of consecutive data packets at the reduced test data transmission rate.

23. The method of claim 22, where determining whether the plurality of consecutive data packets were successfully transmitted comprises determining whether an acknowledge message is received for each data packet of the plurality of consecutive data packets transmitted.

24. The method of claim 22, further comprising prior to the transmitting the plurality of data packets over the communication link:
determining a maximum data transmission rate of the communication link; and
transmitting the plurality of data packets over the communication link at the maximum determined data transmission rate.

25. The method of claim 1, further comprising:
the data processing apparatus drawing from the energy harvesting electrical power source no more than a present power sourcing ability of the energy harvesting electrical power source.

26. The method of claim 1, further comprising:
monitoring the energy harvesting electrical power source to determine a present power sourcing ability of the energy harvesting electrical power source.