1. Field
The present disclosure relates generally to wireless devices, and, more specifically, to systems and methods for performing packet detection threshold calibration in a wireless device with the antenna connected.
2. Related Art
A wireless network generally includes two or more wireless devices that communicate with each other over a wireless medium. One example of a wireless network is a wireless local area network (WLAN) designed to operate according to IEEE 802.11 standards.
All packet based communication systems, such as WLAN systems, need to be able to detect any incoming packets before receiving them. The performance is critical to the system performance —it has to be able to detect packets with very low power, which translates to good sensitivity, and it must not false detect too frequently. False detection causes the system to enter undesirable states, so the receiver will not be able to receive the packets coming in at the time.
In most systems, there is a block that monitors the incoming signal energy, and declares a packet when the energy is above a predefined threshold. When there is no packet, all it measures is noise power. Noise power in a system depends on its Noise Figure (NF) and gain. If the NF or gain changes, the noise power will also change. In the case of higher noise power, inevitably the system will false detect more frequently due to noise; in the case of lower noise power, the system becomes less sensitive as it requires more energy to cross the threshold.
A number of factors can affect noise measurements, including, for example, jammers at any power level and spurs. The noise floor (NF) of the low noise amplifier (LNA) also depends on its input impedance. Therefore, noise floor in the receive path varies across the designs as their antenna impedance change. It is impossible and impractical to predict the impedance in those final products; thus, it is impossible to predict the noise floor in final products. This uncertainty causes a problem in packet detection threshold setting, as knowledge of noise floor is required to set the threshold properly.
When a receiver is integrated in a final product and connected to an antenna, it is exposed to all kind of interferences from other transmitters, microwave ovens, other appliances. The noise measurement cannot be consistent if the total in-band power is measured as if it is still in a shield box.
The following summary of the invention is included in order to provide a basic understanding of some aspects and features of the invention. This summary is not an extensive overview of the invention and as such it is not intended to particularly identify key or critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented below.
Noise floor in a system depends on many factors, the source impedance to the input of the system (in a WLAN system, it is antenna to the input pin of the receiver IC). To capture the noise floor of the system in its operation mode, it is important to include the contribution of the antenna. Embodiments of this invention relate to systems and methods that measure the noise floor in the system with the antenna connected. Embodiments of the invention also related to systems and methods that adjust the packet detection threshold according to noise floor to achieve more reliable and uniform performance. In particular, calibration is performed with the antenna, after the wireless chipset is integrated into the final products.
In accordance with an aspect of the invention, a wireless device is disclosed that includes a receiver to receive a receive signal from one or more other wireless devices; an antenna coupled to the receiver; a processor configured to detect an energy level of signals received at the receiver, determine the average noise power of the signals received at the receiver and compute a packet detection threshold that exceeds the average noise floor of the wireless device; and memory to store the packet detection threshold.
The packet detection threshold may be variable. The threshold for packet detection may be variable over temperature.
The wireless device may be configured to detect packets when the energy level of the signal exceeds the packet detection threshold.
The packet detection threshold may be adjusted according to the noise floor.
In accordance with yet another aspect of the invention, a method is disclosed that includes performing an energy detection algorithm at a wireless device having an antenna connected thereto on a plurality of wireless signals received at the wireless device; and applying a noise power averaging algorithm to determine a noise floor measurement for the wireless device with the antenna connected.
The method may further include performing a threshold computation based on the average noise floor determined by the noise power averaging algorithm.
Performing the energy detection algorithm may include computing a total energy of a signal captured at the antenna of the wireless device. The method may further include comparing the total energy of the captured signal to a previously averaged value.
The computed energy value may be discarded if it is higher than the previously averaged value. The computed energy value may be used in the averaging algorithm if the energy is lower than the previously averaged value. The previously averaged value may be discarded if the computed energy value is significantly lower than previous value.
The average noise power level may be the true noise floor of the wireless device.
The threshold computation may determine a threshold for packet detection. The threshold may be variable. The threshold for packet detection may be variable over temperature.
The wireless device may detect packets when the signal energy exceeds the threshold.
The threshold for packet detection may be adjusted according to the noise floor.
The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more examples of embodiments and, together with the description of example embodiments, serve to explain the principles and implementations of the embodiments.
The network 100 illustrated in
A wireless local area network (WLAN) generally refers to a wireless network, which facilitates multiple devices to communicate with each other over a wireless medium, and typically includes both wireless stations and an access point. Wireless stations refer to end devices, which transmit and receive packets for communication with other wireless stations and/or other devices within or external to the WLAN. Access points typically refer to devices that are typically intended for receiving and transmitting packets to and receiving packets from the wireless stations and devices external to the WLAN. Access points also manage access to the network, controlling which stations may join, authenticating stations and managing security mechanisms. Access points typically forward or switch packets, send periodic beacons and in general communicate using packet formats designed for operation as an access point.
Access point 110F is connected by a wired medium 141 to wired network backbone 140, which is connected to wired network 130. Each of the clients 110A-110E may communicate with access point 110F as well as with one another wirelessly. The client devices 110A-110E communicate with the wired network 130 through the access point 110F. The wired network 130 may represent the Internet or World Wide Web. The clients 110A-110E may be, for example, a laptop computer, smart phone, wireless sensor, or the like.
Wireless network manager 150 transmits configuration and control messages to the access point 110F. Configuration and control messages that are addressed to the clients 110A-110E are forwarded by the access point 110F to the intended client device recipient 110A-110E by sending either a unicast or a broadcast message. Although the wireless network manager 150 is shown as a separate component from the access point 110F in
Wireless network manager 150 may additionally be designed to operate as a controller of BSS 110 and issue network commands to and receive data from one or more of the client devices 110A-110E, and may thus operate to provide certain desired features, such as, for example, building or plant automation, monitoring medical patients, remotely controlling a content storage device, etc. depending on the environment in which the network is deployed. The data received from the client devices 110A-110E may represent measured values of desired parameters, such as, for example, temperature, pressure, humidity, etc. in the case of building automation, measured medical data (e.g., heartbeat, blood pressure, blood glucose, temperature, etc.) about the patient in the case of medical monitoring, video or other data type content in the case of remote control of a content storage device. For example, the access point 110F may be a remote control that controls a client device 110A, and the client device 110A may be a GoPro video recorder. In another example, the client device 110A may be a human wearable tag for collecting blood pressure and the access point 110F may be a mobile phone for communicating the collected blood pressure data to a remote server accessible by a health care professional. It will be appreciated that embodiments of the invention may be implemented in numerous other scenarios.
One or more of client devices 110A-110E may be designed to operate in a “power-save” mode. For example, in the context of IEEE 802.11 standards operation, a client device (e.g., client device 110A) may operate in the standard Power Save Poll Mode (PSPM, or power-save mode, in general). Upon joining BSS 110, the client device 110A periodically “wakes up”, i.e., powers-ON for full functionality from a low power state, to transmit data to or receive data from the access point 110F or other client devices 110B-110E.
Embodiments of the invention use an energy detection algorithm to decide whether the signal is clean enough that it can be used for noise measurements and an averaging algorithm. The averaging algorithm averages the noise power to further eliminate the uncertainty in the measurements. Spurs are included in the measurements, as they are always in the system. In some embodiments, the algorithms use long observation time to find gaps between packets, monitor the total energy in the captures, accept measurements that are lower than previous value +0.5 dB (noise power does not increase), reject measurements that are more than 0.5 dB higher than previous value, and enforce long observation time (1000 captures) to ensure that some quiet periods have been captured.
Instead of trying to distinguish all kind of interferences, the algorithms disclosed herein measure the total power in-band. If the measured value showed an abrupt increase from the current value, it is considered as jammed and should be discarded. An abrupt decrease is acceptable because this can happen if the current value is of power measured with jammers. The thermal noise level does not change unless temperature changes, and is assumed that temperature does not change abruptly on the order of milliseconds. To further smooth out the randomness due to the nature of thermal noise (modeled as Gaussian), a moving average is applied to the noise power and DC offset measurements. Details of the exemplary energy detection and averaging algorithm for determining the DC offset of the wireless device will now be described. In one embodiment, the following procedure is performed each time when the receiver has filled the 1024-sample buffer from the ADC. First, the average of 1024 samples is determined to obtain the DC of the system. The total power of the 1024 samples is computed—this value includes the contribution of DC. The AC power is computed by subtracting DC power (voltage squared) from the total power. This AC power is compared with a predetermined threshold. In one embodiment, the predetermined threshold is 0.5 dB above current power value. It will be appreciated that the predetermined threshold may be any value or range of values less than 0.05 dB or any value or range of values greater than 0.05 dB. If the new AC power is higher than this threshold, the new measurement is ignored. If the new AC power is below this threshold, the moving average buffers are updated. The new averaged AC power and DC offsets are computed from the data in buffers.
In one embodiment, there is a counter to count the number of ignored measurements. This counter is reset to 0 each time an update occurs. In one embodiment, the buffers need to be re-initialized when this counter exceeds 3,000 (current setting that is more than 38 ms).
An example demonstrating the algorithm is shown in
Current IQ ADC outputs are 10-bit SIGNED integers and the processor supports 32-bit SIGNED integers natively. The process of computing the averaged power or DC will not cause any over flow for the given 1024-sample size. In the example, the current averaged power is Pc and the new measurement is Pn. Using the 0.5 dB criterion, Pc is compared with Pn×1122/1000. Once Pn has passed the test, the moving average buffer is updated with this new measurement (both power and DC in their respective buffers), and the averaging results. If the sum of the values in the buffer is Sn at time n, the averaged result is simply Sn/64.
The new value is denoted as x in
It will be appreciated that the detection threshold computation is optional. For example, the energy detection and noise averaging algorithms may be used to determine the noise floor in the system for any reason. This determination can be used, for instance, to characterize the system's behavior and estimate the achievable performance or correlate the performance of the device with the measured noise floor.
The process 1000 continues by computing the total energy of the captured signal (block 1008). The total energy is compared against the previously averaged value or is set as the initial value if it is the first time (block 1008).
The process 1000 continues by identifying whether the captured data is contaminated by interference (block 1012). If the energy is higher than previous value, the capture is considered to be contaminated by interference, and is thus discarded. Otherwise, the data is used to update the average. If the energy is significantly lower than previous value, the previous measurements are considered contaminated and are therefore discarded, and the buffer for averaging is flushed.
The process 1000 continues by computing the DC for the wireless device if the data is not contaminated by interference (block 1016). The DC is computed by averaging over the capture size. The result is used together with previously obtained DC values for further smoothing (averaging).
The process 1000 continues by averaging the noise power over the captured data to determine the noise floor of the system (block 1020). After a predefined number of successful (non-contaminated) captures have been obtained, the noise power averaged over these captures is considered the true noise floor of the system.
The process 1000 continues by setting a packet detection threshold for the wireless device based on the determined noise floor (block 1024). In some embodiments of the invention, the packet detection threshold is stored in the memory of the wireless device. In some embodiments, the packet detection threshold is set to be variable with temperature. For example, the packet detection threshold may vary incrementally and inversely with the temperature, reflecting the changes in noise floor based on temperature variations.
Advantages of the method disclosed herein include better and more consistent performance of the wireless device, more aggressive packet detection allowed without impact by sample variations, sensitivity only affected by NF over temperature (not by gain), internal spurs will only degrade sensitivity (not causing humps), and the like. It will be appreciated that it is possible to adapt to the DC and noise floor change due to environments when mounted on massive metal body, and when the antenna has been changed. Additional advantages include lower calibration cost, yield improvement, close to 100% calibration correctness unaffected by impedance, and similar sensitivity across all modules.
Exemplary implementations of wireless device 1100 are disclosed in U.S. Pat. No. 7,941,682, entitled “Optimum Power Management of System on Chip Based on Tiered States of Operation”, issued May 10, 2011, and U.S. Patent Publication Nos. 2009/0016251, entitled “Management System and Method of Low Power Consuming Devices, filed Jul. 13, 2007, 2009/0077404, entitled “Method and System for Reducing Power Consumption of System on Chip Based Analog-to-Digital Control Circuitry,” filed Sep. 14, 2007, each of which is assigned to Gainspan, Inc., the entireties of each of which are hereby incorporated by reference. It will be appreciated that other implementations of the wireless device 1100 are contemplated and such wireless device 1100 should not be limited to the disclosures incorporated by reference or the exemplary wireless device illustrated in
Wireless device 1100 includes a data processing system 1110, flash memory 1120, random access (RAM) memory 1130 a real-time clock (RTC) 1140, power supply 1145, non-volatile memory 1150, sensor(s) 1160, a transmitter 1170, a receiver 1180, switch 1190 and antenna 1195. It will be appreciated that the wireless device 1100 may be implemented as a system-on-chip (SoC) or as separate integrated circuits (IC) or combinations thereof. Additionally, it will be appreciated that the wireless device 1100 may have fewer or greater components than those shown in
Data processing system 1110 is a processor that may contain one or more processing units. In embodiments in which the data processing system 1100 includes multiple processing units, each processing unit may be designed for a specific task. Alternatively, the data processing system 1110 may contain a general purpose processing unit. In yet another embodiment, the data process system 1110 may contain multiple general purpose processing units that share processing for all tasks in a mutual way.
Flash memory 1120 contains memory locations organized as blocks. A block represents a set of memory locations (typically continuous in terms of memory address) which are to be all erased before data can be rewritten into any location. Flash memory 1120 may be used to store data from sensor(s) 1160 via data processing system 1110 and/or store program code.
RAM 1130 and non-volatile memory 1150 (which may be implemented in the form of read-only memory (ROM)) constitute computer program products or machine readable medium which provide instructions to data processing system 1110. RAM 1130 communicates with data processing system via path 1131. The non-volatile memory 1150 may include sub-components (not shown), such as OTP and EEPROM.
RTC 1140 operates as a clock and provides the current time to data processing system 1110 on path 1141. RTC 1140 may be backed-up by power supply 1145. RTC 1140 may also contain memory to store critical information received from the data processing system 1110.
Non-volatile memory 1150 is a non-transitory computer readable medium that stores instructions, which when executed by the data processing system 1110, cause the wireless device 1100 to process the data and messages received from the receiver and generate the data and messages for transmission by the transmitter. The non-volatile memory communicates with data process system 1110 via path 1151.
Sensor(s) 1160 may include one or more sensors as well as corresponding signal conditioning circuitry. As an alternative, sensor(s) may instead be any data capture device, such as a video recording device or other data collection or capture devices. Sensed parameters or data are transmitted on path 1161 via a wired path 1162 or wireless path 1163.
Transmitter 1170 receives data to be transmitted from data processing system 1110 on path 1171. Further, the transmitter 1170 generates a modulated radio frequency (RF) signal according to IEEE 802.11 standards and transmits the RF signal via switch 1190 and antenna 1195.
Receiver 1180 receives an RF signal bearing data via switch 1190 and antenna 1195. The receiver 1180 further demodulates the RF signal and provides extracted data to the data processing system 1110 on path 1181.
Antenna 1195 operates to receive from and transmit to a wireless medium wireless signals containing data and messages. Switch 1190 may be controlled by the data processing system 1110 to connect antenna 1195 to the receiver 1180 via path 1189 or transmitter via path 1179 depending on whether the wireless station is receiving or transmitting.
One or more of the methodologies or functions described herein may be embodied in a computer-readable medium on which is stored one or more sets of instructions (e.g., software). The software may reside, completely or at least partially, within memory, as described above, and/or within the data processing system during execution thereof. The software may further be transmitted or received over a network.
The term “computer-readable medium” should be taken to include a single medium or multiple media that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by a machine and that cause a machine to perform any one or more of the methodologies of the invention. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media.
Embodiments of the invention have been described through processes or flow diagrams at times, which are defined by executable instructions recorded on computer readable media which cause a computer, microprocessors or chipsets to perform method steps when executed. The process steps have been segregated for the sake of clarity. However, it should be understood that the steps need not correspond to discreet blocks of code and the described steps can be carried out by the execution of various code portions stored on various media and executed at various times.
It should be understood that processes and techniques described herein are not inherently related to any particular apparatus and may be implemented by any suitable combination of components. Further, various types of general purpose devices may be used in accordance with the teachings described herein. It may also prove advantageous to construct specialized apparatus to perform the method steps described herein. The invention has been described in relation to particular examples, which are intended in all respects to be illustrative rather than restrictive. Those skilled in the art will appreciate that many different combinations of hardware, software, and firmware will be suitable for practicing the present invention.
The present invention has been described in relation to particular examples, which are intended in all respects to be illustrative rather than restrictive. Those skilled in the art will appreciate that many different combinations will be suitable for practicing the present invention. Moreover, other implementations of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. Various aspects and/or components of the described embodiments may be used singly or in any combination. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention being indicated by the following claims.