User equipment (UE) includes an architecture for handling femtocell fingerprints. The architecture may, as examples, maintain the validity and reliability of fingerprints and coordinate enhancement to existing fingerprints. The architecture also supports fingerprint creation, updating, and deletion.

TECHNICAL FIELD

This disclosure relates to femtocells and facilitating wireless communication device connection to femtocells.

BACKGROUND

Rapid advances in communication technologies, driven by immense customer demand, have resulted in the widespread adoption of mobile communication devices. Many of these devices, e.g., smartphones, have sophisticated wireless connectivity options. In addition to fundamental voice call connectivity with base stations serving very large numbers of subscribers is another connection option: connecting to femtocells within, e.g. The femtocells typically support fewer subscribers, but may provide call quality, cost, bandwidth, or other advantages to those subscribers.

DETAILED DESCRIPTION

FIG. 1shows an example of user equipment100(“UE100”). The UE100is a smartphone in this example, but the UE may be any electronic device. The techniques described below regarding femtocells may be implemented in a wide array of different types of devices. Accordingly, the smartphone example described below provides just one example context for explaining the femtocell connection and communication techniques.

As one example, UE may be a 2G, 3G, or 4G/LTE cellular phone capable of making and receiving wireless phone calls, and transmitting and receiving data using 802.11 a/b/g/n/ac/ad (“WiFi”), Bluetooth (BT), Near Field Communications (NFC), or any other type of wireless technology. The UE may also be a smartphone that, in addition to making and receiving phone calls, runs any number or type of applications. UE may, however, be virtually any device that transmits and receives information, including as additional examples a driver assistance module in a vehicle, an emergency transponder, a pager, a satellite television receiver, a networked stereo receiver, a computer system, music player, or virtually any other device.

FIG. 1shows an example of the UE100in communication with a network controller150, such as an enhanced Node B (eNB) or other base station. The network controller150and UE100establish communication channels such as the control channel152and the data channel154, and exchange data. In this example, the UE100supports one or more Subscriber Identity Modules (SIMs), such as the SIM1102and the SIM2104. Electrical and physical interfaces106and108connect SIM1102and SIM2104to the rest of the user equipment hardware, for example, through the system bus110.

The UE100includes communication interfaces112, system logic114, and a user interface118. The system logic114may include any combination of hardware, software, firmware, or other logic. The system logic114may be implemented, for example, with one or more systems on a chip (SoC), application specific integrated circuits (ASIC), discrete analog and digital circuits, and other circuitry. The system logic114is part of the implementation of any desired functionality in the UE100. In that regard, the system logic114may include logic that facilitates, as examples, decoding and playing music and video, e.g., MP3, MP4, MPEG, AVI, FLAG, AC3, or WAV decoding and playback; running applications; accepting user inputs; saving and retrieving application data; establishing, maintaining, and terminating cellular phone calls or data connections for, as one example, Internet connectivity; establishing, maintaining, and terminating wireless network connections, Bluetooth connections, or other connections; and displaying relevant information on the user interface118. The user interface118and the inputs128may include a graphical user interface, touch sensitive display, voice or facial recognition inputs, buttons, switches, speakers and other user interface elements. Additional examples of the inputs128include microphones, video and still image cameras, temperature sensors, vibration sensors, rotation and orientation sensors, headset and microphone input/output jacks, Universal Serial Bus (USB) connectors, memory card slots, radiation sensors (e.g., IR sensors), and other types of inputs.

The system logic114may include one or more processors116and memories120. The memory120stores, for example, control instructions122that the processor116executes to carry out desired functionality for the UE100. The control parameters124provide and specify configuration and operating options for the control instructions122. The memory120may also store any BT, WiFi, 3G, or other data126that the UE100will send, or has received, through the communication interfaces112. The UE100may include a power management unit integrated circuit (PMUIC)134. In a complex device like a smartphone, the PMUIC134may be responsible for generating as many as thirty (30) different power supply rails136for the circuitry in the UE100.

In the communication interfaces112, Radio Frequency (RF) transmit (Tx) and receive (Rx) circuitry130handles transmission and reception of signals through one or more antennas132. The communication interface112may include one or more transceivers. The transceivers may be wireless transceivers that include modulation/demodulation circuitry, digital to analog converters (DACs), shaping tables, analog to digital converters (ADCs), filters, waveform shapers, filters, pre-amplifiers, power amplifiers and/or other logic for transmitting and receiving through one or more antennas, or (for some devices) through a physical (e.g., wireline) medium.

The transmitted and received signals may adhere to any of a diverse array of formats, protocols, modulations (e.g., QPSK, 16-QAM, 64-QAM, or 256-QAM), frequency channels, bit rates, and encodings. As one specific example, the communication interfaces112may include transceivers that support transmission and reception under the 2G, 3G (e.g., Universal Mobile Telecommunications System (UMTS) or High Speed Packet Access (HSPA)+ operation), BT, WiFi, and 4G/Long Term Evolution (LTE) standards. The techniques described below, however, are applicable to other wireless communications technologies whether arising from the 3rd Generation Partnership Project (3GPP), GSM Association, 3GPP2, IEEE, or other partnerships or standards bodies.

As just one implementation example, the communication interface112and system logic114may include a BCM2091 EDGE/HSPA Multi-Mode, Multi-Band Cellular Transceiver and a BCM59056 advanced power management unit (PMU), controlled by a BCM28150 HSPA+ system-on-a-chip (SoC) baseband smartphone processer or a BCM25331 Athena™ baseband processor. These devices or other similar system solutions may be extended as described below to provide the additional functionality described below. These integrated circuits, as well as other hardware and software implementation options for the UE100, are available from Broadcom Corporation of Irvine Calif.

FIG. 2shows an example architecture200for a local setting202covered by a femtocell204. A femtocell basestation205(e.g., a low transmit power eNB) generates the femtocell204. The local setting202may be a home or office, as examples, in which one or more femtocells204provide cellular coverage within the local setting202. The femtocell basestation205may perform the functions of a cellular basestation, for example, according to the 3GPP standard.

As just one example, the femtocell204may have footprint range from about 10s to 100s of meters, e.g., between 10 and 200 m. In a residential environment, the femtocell204may support, e.g., 2 to 4 active calls. The femtocell204increases the coverage area provided by macrocells generated by full scale outdoor base stations, and may improve data throughput and voice quality. The femtocell204may further reduce uplink transmission power requirements from the UE100, because the femtocell basestation205is much closer, and may therefore improve the battery life of the UE100.

In order to distinguish between a macrocell and a femtocell, the cell information broadcast by the femtocell may include a femtocell identity (given, e.g., by the csg-Identity field in the System Information Block 1 (SIB1)) and optionally a femtocell indication flag set to TRUE (given, e.g., in the csg-Indication field in SIB1). In some cases, the femtocells may have a valid femtocell identity and a femtocell indication flag set to FALSE. Such cells are referred to as hybrid cells. A hybrid cell would act as a femtocell for the users authorized for connection to that femtocell and as a normal non-femtocell cell to other UEs.

Most of the broadcast (beacon) information sent by a femtocell is similar to that sent by a macrocell, except for the femtocell identity and femtocell indication flag mentioned above. In addition, with the introduction of femtocells, both femtocells and macrocells can optionally broadcast a list identifying known femtocell neighbor cells to help the UE100do cell reselection to such femtocells if the cellular radio environment warrants the reselection and if the UE100has a subscription to the neighboring femtocell.

The femtocell basestation205may connect to the service provider206in many different ways. In the example shown inFIG. 2, the femtocell basestation205connects to a port on a network switch208. The network switch208connects to a wireless router210that also provides WiFi connectivity in the local setting202. A network interface device212provides a connection to the backbone (e.g., internet service) for the local setting202. The network interface device212may be a cable modem, DSL modem, T1 or T3 line, satellite transceiver, optical network interface, or other network interface device. The network interface device212and, therefore, the femtocell204, connect through the access network(s)214to the service provider206. The access networks may include wired connections216, e.g., T4 or T5 lines, and wireless connections218, e.g., microwave or satellite links.

The configuration of the femtocell204may include a specification of UEs that are allowed to connect to the femtocell204and receive service. The specification of UEs may be done in many different ways, such as by creating a whitelist of allowable phone numbers, International Mobile Station Equipment Identity (IMEI) numbers, or other identifiers. The set of UEs that have access to the femtocell204may therefore be closely controlled by the owner or operator of the femtocell204. For example, in a home setting, the homeowner may configure the femtocell204to allow connections to the group of UEs carried by family members, friends, guests, or any other individuals. The group of UEs that have access to the femtocell204may be referred to as a Closed Subscriber Group (CSG). The CSG cells referred to in the 3GPP standard may be considered a subset of femtocells. In particular, CSG cells are cells that broadcast a CSG indication set to True and a specific CSG identity. However, the techniques disclosed in this document apply to femtocells of other types, whether defined under a particular standard or otherwise implementing selective or controlled access to a group of UEs, e.g., in a more restrictive manner than a macrocell.

FIG. 3shows an example fingerprinting architecture300. The architecture300is one example of the type of system architecture that the UE100may implement for creating, updating, removing and otherwise managing fingerprints. There are many other ways to implement such an architecture, and the UE100is not limited to the architecture300.

Note that the operator of the UE100may select which cell to prioritize for future selection by the UE100. The cell may be a femtocell. In that case, the UE100may record characterizing information for the femtocell from any available sources. The UE100employs the characterizing information to subsequently determine whether the UE100is proximate to the femtocell, and if so, trigger an Autonomous Search Function (ASF) in an attempt to find and connect to the femtocell. The collection of characterizing information for the femtocell may be referred to as a fingerprint for that femtocell.

The fingerprint may contain multiple components, e.g., measurement inputs, that capture the characterizing information. The fingerprint components may include, as a few examples:

Global Positioning System (GPS) position;

Wireless network characteristics concerning any type of wireless network, such as 802.11 a/b/g/n/ac/ad networks, or wireless networks employing WiMAX base stations or access points (APs). The characteristics may be determined by sensing and measuring, e.g., visible APs. As examples, the characteristics may include WiFi signal strengths in the measurable environment, WiFi Service Set Identifiers (SSIDs) for available APs, security types employed by APs (e.g., WiFi Protected Access (WPA) or WPA2), or other characteristics of wireless networks;

timing measurements to neighbor cells;

Radio Access Technologies (RATs) used by nearby macrocells or femtocells, e.g., whether Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), or Long Term Evolution (LTE);

BT and NFC signal strength, identifiers, or other BT or NFC environmental characteristics, and BT or NFC events, such as BT or NFC pairing and communication events (e.g., the fingerprint may include information identifying the most recent BT or NFC event for the femtocell that is being fingerprinted);

Public Land Mobile Network Identifier (PLMN ID);

Global Cell Identity, such as an Evolved Universal Mobile Telecommunications System Terrestrial Radio Access Network (E-UTRAN) Cell Global Identifier (ECGI): the 28-bit cell identity value in combination with a PLMN-identity. The Global cell identity may be useful, e.g., when physical cell identities are reused;

cell power level and signal quality measurements;

identifying information for nearby macrocells or femtocells from which the UE100can receive signals;

Downlink frequency to the UE100, as examples, an Absolute Radio Frequency Channel Number (ARFCN), a Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA) ARFCN (UARFCN), or Evolved Universal Terrestrial Radio Access (EUTRA) ARFCN (EARFCN);

other cell information, such as the Physical Cell Identity (PCI) obtained during cell synchronization, Primary Scrambling Code (PSC), and Base Station Identity Code (BSIC); Note that the cell information may be a scrambling code, e.g., a 3GPP scrambling code or an LTE PCI, but that other implementations may use other types of cell information that may, by itself or in combination with other information, distinguish cells or indicate a cell type (e.g., a femtocell type or a macrocell type);

Reference Signal Received Power (RSRP) information, e.g., the average power of Resource Elements (REs) carrying Reference Signals (RSs) over a specified bandwidth;

Received Signal Strength Indicator (RSSI) information, e.g., the received wide-band power, potentially across all received symbols and including interference and noise; and

Time Delay of Arrival (TDoA) to other cells.

The UE100analyzes the fingerprint against measurements to determine whether the UE100is near a femtocell. The UE100may, for example, compare measurements of the environment (e.g., the currently visible SSIDs and macrocells) against the fingerprint to find a match to all or part of the fingerprint. The UE100may determine whether a match exists based on predetermined decision criteria that specify which parts, how much, and/or to what degree, the fingerprint components should agree with the measurements to be considered a match.

In support of fingerprinting, the architecture300interacts with one or more cellular RATs. In the example inFIG. 3, the RATs include a 2G RAT302, a 3G RAT304, and a 4G/LTE RAT306. There may be any number or type of such RATs. The architecture300also includes a proximity detector308. The proximity detector308may perform the analysis described above to determine whether current measurements match a fingerprint stored in the fingerprint database310. Note that any of the RATs may return information to the fingerprint manager312and proximity detector308. For example, the RATs may return cell information328about the macrocells and femtocells found in the vicinity, and Radio Access Network (RAN) measurements330that characterize the environment around the UE100. The fingerprint manager312and proximity detector308may issue requests to the RATs as well. For example, the proximity detector308may initiate a cell search request332. The cell search request332may be in response to finding a matching fingerprint.

The architecture300also includes a fingerprint manager312. The fingerprint manager312may handle the storage, recovery, addition, modification, deletion, or other management tasks on the fingerprints in the fingerprint database310. Note that the architecture300may include additional storage314for the fingerprints, such as Non-volatile Random Access Memory (NVRAM). As a result, the saved fingerprints may be retrieved and used when the UE100completes its power-on procedures after a power-down. The fingerprints are labeled with the abbreviation ‘FP’ inFIG. 3.

As explained above, the fingerprints may include components of many different types. To that end, the architecture300may also interact with the GPS logic316, the WiFi logic318, or other logic. The fingerprint manager312may issue GPS information queries320or WiFi information queries322to the GPS logic316and WiFi logic318. The GPS logic316and WiFi logic318return GPS information324(e.g., location coordinates or timing information) and WiFi information (e.g., SSIDs) to the proximity detector308.

As previously explained, the proximity detector308may detect proximity to a previously fingerprinted cell based on one or more inputs including, as examples, RAT, WiFi, and GPS inputs. The proximity detector308may receive measurements periodically or on an event based basis. The proximity detector308may also issue measurement queries from different available component sources, such as RAT1-RATn, WiFi, and GPS. The proximity detector308attempts to match the measurement results against fingerprints in the fingerprint database310that the architecture300recorded for previously visited cells.

The proximity detector308may use the measurement inputs in a phased way. For example, the proximity detector308may determine a coarse match or lock based on RAN measurements. The proximity detector308may then obtain further measurement inputs, such as by determining whether GPS is enabled, and if so, checking proximity to a particular location specified in the fingerprint. As another example, the proximity detector308may determine proximity to the cell by matching a WiFi SSID, or taking additional RAN macrocell information, and may further take steps to confirm that the WiFi router has not moved or changed.

The proximity detector308may indicate a detection confidence level which may be used to perform a search for the cell in a power optimized way. That is, the confidence level may affect whether a search is done at all, and if so, how often and when the search is executed.

The proximity detector308may take into account other factors to determine whether the UE100will start searching for a fingerprinted cell. Examples of the other factors include cell size and velocity of travel. For instance, the proximity detector308may not indicate a proximity detection when a fingerprinted cell is less than a threshold size, and the UE100is determined to be travelling at a high speed that exceeds a speed threshold.

When the UE100is in Idle mode, the proximity detector308may trigger the currently active RAT to begin searching for (e.g., measuring) the target cell when proximity is detected. In connected mode the UE100may indicate proximity through signaling with the network controller150, e.g., in the control channel152. In connected mode, the network controller150may then instruct the UE100to attempt to connect to the target cell (the cell for which a fingerprint match was found).

The fingerprint manager312may add, remove, and update fingerprints based on various inputs. The inputs may include, as examples: failure to find a fingerprinted cell after search is triggered, successful reselection to fingerprinted cell, and the time to find fingerprinted cell after search is triggered.

The fingerprint manager312may update fingerprints wholly or partially. For instance, the fingerprint manager312may update, delete, or add measurements for some macrocells without affecting other components in the fingerprint. The fingerprint manager312may generate a fingerprint when the UE100enters a femtocell. In that regard, the fingerprint manager312may execute, for example, a full network scan to determine visible macrocells in all RATs, and, if available, WiFi, and GPS measurements. As another example, the fingerprint manager312may generate the fingerprint from neighbor cell measurements that the UE100performs as part of its normal housekeeping operations for maintaining cell connectivity, prior to reselecting to the fingerprinted cell.

The architecture300may use the native RAT for the matched fingerprinted cell to perform the search for the matched cell. That is, the RAT (or any other search logic) may attempt to find the matched cell when the proximity detector308instructs it to do so. In that regard, the RAT may scan the frequencies associated with the matched cell in an attempt to find transmissions from the matched cell.

The RAT may take into account the proximity detection confidence level indicated by the proximity detector308when determining whether, when, and how often to search. For instance, a lower confidence may result in a less frequent search, helping to preserve battery life.

To confirm that the detected transmissions originate from a cell that is in fact the cell that the UE100is searching for, the search logic may acquire system information from the target cell. The UE100may do so while still camped on an existing serving cell. For instance, the UE100may perform background System Information Block (SIB) acquisition. The SIBs provide identity information for the transmitting cell. The UE100may ensure that the cell identity matches that of the fingerprinted cell. This may help to avoid frequent failed reselection attempts. The UE100may also use this pre-emptive SIB acquisition to determine that the target cell meets any specified suitability criteria before the cell reselection attempt is performed, by checking SIB data against the criteria.

Alternatively, the UE100may choose to not perform background SIB acquisition. Instead, the UE100may trigger cell reselection directly without prior confirmation that the measured cell is the correct preferred cell. In this case the UE100may store cell selection parameters (e.g., from the system information) as part of the fingerprint when initially fingerprinting the cell. The UE100may use these parameters to perform pre-suitability-checking of the target cell before deciding whether a cell reselection will be performed. If the UE100decides to reselect and subsequently discovers that the cell is actually not the correct cell, e.g., based on checking the cell identity, Public Land Mobile Network (PLMN) identity, or other information, the UE100may bar this cell from future connection attempts. The bar may last, e.g., for as long as the cell remains visible or for a predetermined time.

Cell Search and Fingerprint Management

Note that the Autonomous Search Function (ASF) noted above may search for previously camped femtocells. The ASF may trigger responsive to fingerprints built with any type of fingerprint components, such as those components given above in the example list of fingerprint components. In one particular implementation, the proximity detector308may trigger the ASF responsive to matches of the current environment against the fingerprint component tuple {downlink frequency, physical cell identity, and RAT type}. As noted above, the cell identities may be PCIs for LTE cells, scrambling codes for 3G cells, or other types of cell information.

These fingerprint components may be selected because they are available from the PHY layer as part of the usual cell selection and reselection process. That is, the UE100needs to spend no additional energy to obtain these fingerprint components, making this set of components energy efficient in terms of deciding when to start ASF. However, any other combination of one or more fingerprint components may be included in the matching process. Further, in other implementations the PHY layer may provide additional measurements taken for cell selection and reselection that may also be included in the fingerprint component tuple, such as RSSI or RSRP.

Note that the PHY layer may detect multiple physical cell identities (e.g., LTE PCIs, 3G scrambling codes, or other types of identity information) in the environment on a particular downlink frequency and RAT type. That is, the environment may include multiple visible cells found on multiple different RATs and downlink frequencies. Accordingly, it may be that the fingerprint (as just one example) specifies multiple (e.g., three) different physical cell identities for a single downlink frequency and RAT type.

Furthermore, in some implementations, the proximity detector308may determine a match when all or only some current environment measurements match the selected fingerprint components. The proximity detector308may also determine a match when a threshold percentage of measurements match, e.g., 8 physical cell identity measurements match out of 10 physical cell identity fingerprint components. The threshold percentage may be statically set or dynamically modified. For instance, the UE100may modify the threshold percentage in response to or as a function of battery level. When the battery level is high, the threshold may be lower, causing the UE100to frequently find matches and initiate ASF. However, when the battery level is lower, the UE may set the threshold percentage higher, causing the UE100to less frequently find matches and initiate ASF and thereby conserving remaining energy.

Searches for femtocells may occur periodically, or through triggering ASF because of fingerprint matches, as examples. Periodic searches may be searches that happen at a predetermined interval, not in response to fingerprint matches. In either case, the frequency of search may vary depending on battery level. Further, whether any search happens at all may depend on whether the battery level exceeds a search threshold.

The frequency of either type of search may be a function proportional to the power remaining in the UE100. Turning ahead toFIG. 7, that Figure shows an example relationship700between remaining battery power and search interval (e.g., for periodic search). As shown in the relationship700, decreasing battery power may lead to increasing search interval (and decreasing search frequency), and vice versa. Further, searches may stop altogether once battery power falls below a given threshold. Hence, battery power is conserved due to the decreased frequency of the femtocell searches.

Further, the UE100may avoid (e.g., periodic) femtocell searches altogether if the UE100is already camped on a macrocell, to conserve battery power. When the battery level is below a threshold, camping onto a femtocell may not be a high priority activity and hence the UE100may avoid a battery-intensive scan during a (e.g., periodic) femtocell search.

In connected mode, the UE100may choose whether or not to send a proximity indication to the network depending on whether the remaining battery power in the UE100is less than a specific threshold. Withholding the proximity indication may prevent the network from requesting measurements on the femtocell frequencies. This may further help conserve battery power. That is, if the UE100is in connected mode, and there is a fingerprint match for a femtocell, the UE100may send the proximity indication only if the battery power remaining is above a proximity indication threshold.

Because the environment around the femtocell may change, as may the femtocell itself, the architecture300may create, update, and store fingerprints to help achieve the reliable proximity detection, avoid unnecessary cell searching and wasting of battery power, and improve operator experience with the UE100. The architecture300helps address validity and reliability issues with fingerprints. For instance, a fingerprint may rely on the stability of wireless cellular system and/or the environment in which the measurements are taken. For example, a change in the macrocell configuration can hamper proximity detection that includes measurements prior to the change. Further, if a femtocell is turned off or moved to another location or stops working, then the UE100may still, based on the fingerprints, trigger an ASF search. The ASF search will fail every time because the femtocell is no longer available, and this may cause significant power drain in the UE100.

The architecture300also enhances fingerprint management and creation to help address validity and reliability of fingerprints. For example, the proximity detector308detects proximity to a femtocell when the UE100approaches the femtocell where the fingerprint was taken. In some situations, the fingerprint may be taken in a location to which the UE100does not commonly return (e.g., a basement room in a house), and where the environmental measurements, e.g., of nearby macrocells, are not same as other places where the UE100is more commonly located. Similarly, if the UE100takes a different path to approach the femtocell that has little environmental characteristics overlap with the existing fingerprint, the ASF may not be triggered and the femtocell will not be discovered without manual intervention.

FIG. 4shows example logic400that the architecture300may implement for creating a new fingerprint. The fingerprint manager312may create and insert fingerprints into the central fingerprint database310in response to, as examples, manual, periodic, or automated femtocell searches and selections.

The logic400includes receiving measurements that characterize the environment (402). The measurements may be received as radio resource control messages, for example, that specify nearby macrocell identities, RSSI/RSRP, TDoA, or other measurements obtained from cellular transceivers (404). The measurements may include location information, such as that received from a GPS receiver (406). Additionally, the measurements may include WiFi information, such as visible SSIDs (408). The logic400may obtain the measurements by, for example, calling Application Programming Interfaces (APIs) that provide an interface to the GPS logic316, WiFi logic318, or any other logic that can sense the environment.

The logic400determines whether the UE100has camped successfully onto a femtocell (410). If so, the logic400may create a fingerprint of the environment, by obtaining fingerprint components for the fingerprint (412). As examples, the fingerprint components may include macrocell identities and RAT types for the macrocells (414), location information (e.g., latitude and longitude) (416), and SSIDs (418). The logic400need not use every available fingerprint component in a fingerprint, but may select the fingerprint components according to any selection criteria, e.g., reliability, signal strength, or other criteria (420). The logic400creates a fingerprint in the central fingerprint database310that includes the selected fingerprint components (422).

Note that in some implementations, the UE100may restrict the fingerprints that trigger ASF to those fingerprints associated with femtocells that belong to a selected PLMN, e.g., a particular home PLMN or registered PLMN. In other implementations, the UE100may trigger ASF in response to finding a matching fingerprint of a femtocell that belongs to any PLMN, and not just to a particular home PLMN or registered PLMN. However, in other implementations, the UE100may rely on manual femtocell selection to connect to femtocells that do not belong to a home, registered, or equivalent PLMN.FIG. 5shows example logic500that the architecture300may implement for updating a fingerprint. The fingerprint manager312may analyze the fingerprints (502) and determine when a fingerprint is outdated (504). In one implementation, the fingerprint manager312may determine that the fingerprint is outdated if the PCI or PSC have changed for the femtocell or a neighboring cell. Alternatively or additionally, the fingerprint manager312may determine that a fingerprint is outdated when the frequency configuration of the femtocell or a neighboring cell has changed (e.g., the femtocell has moved to a new Tx or Rx frequency).

If a fingerprint is outdated, the fingerprint manager312may obtain updated fingerprint components (506) and save them in the fingerprint (508). For instance, the UE100may maintain multiple fingerprints for the same femtocell. The multiple fingerprints may correspond to different physical approaches to the femtocell. The fingerprint manager312may refine any one or more of these fingerprints when it determines that one or more environmental measurements are more reliable, more recent, or more accurate than the existing fingerprint components. Refining fingerprints may result in tighter bounds on the proximity detection algorithm thereby reducing the ASF area and improving UE battery life.

The fingerprint manager312may also update fingerprints in other ways. For instances, if the fingerprint database310is full (510), the fingerprint manager312may remove one or more fingerprints from the fingerprint database (512). In one implementation, the fingerprint manager312removes fingerprints starting with the most infrequently-used fingerprint, which may be determined according to a last used time stamp on the fingerprint. The fingerprint manager312may remove any number of fingerprints, and as one example, may remove a number of fingerprints equal to the number of new fingerprints that the fingerprint manager desires to add to the fingerprint database310.

Note that when a fingerprint has triggered a number of failed ASF attempts that exceed a backoff threshold parameter, within a configured amount of time, then the proximity detector308may increase the interval between searches, e.g., exponentially. For instance, if the fingerprint has triggered more than three failed ASF attempts within two minutes, then the proximity detector308may increase the time interval until the next search is performed in an, e.g., exponentially increasing manner. This may help conserve battery power. In some instances, the number of (optimally consecutive) failed ASF searches will reach a predetermined removal threshold (514). This may indicate that the femtocell has been removed or is powered down, or that the environment around the femtocell has changed significantly. When the removal threshold is met, the fingerprint manager312may remove the fingerprint (516).

The fingerprint manager312may save the fingerprint database310into the storage314whenever desired, such as when the fingerprint database310is changed. As another example, the fingerprint manager312may save the fingerprint database310to the storage314as part of the power-off procedure for the UE100, and may restore the fingerprint database310from the storage314as part of the power-on procedure for the UE100, or when ASF is enabled.

Note that some operators of the UE100may camp on several specific femtocells quite often. Accordingly, the UE100may prioritize selecting and searching for more frequently used femtocells or more recently used femtocells. In that respect, the fingerprint manager312may store a greater number of fingerprints for femtocells which it has connected to more than a threshold number of times in a configured time period (e.g., more than 2 times in one day, or 10 times in one week), or for femtocells that have been connected to in less than a specified time duration (e.g., in the last day).

FIG. 6shows an example environment600for which the UE100captures additional fingerprints. In the environment600, there are three macrocells602,604, and606. The femtocell608is also shown.

When the UE100is camped on the femtocell608, the fingerprint manager312may create additional fingerprints for that same femtocell608. For instance, the fingerprint manager312or proximity detector308may recognize that the environment includes the same three macrocells602,604, and606at different positions 1, 2, and 3 in the environment around the femtocell608, and that the measurement results are different. In that situation, the fingerprint manager312may determine to generate and store additional fingerprints for the same femtocell608.

In some instances, the femtocell608may create its own neighbor macrocell list by scanning the environment for macrocell frequencies. Once the UE100camps onto the femtocell608, the fingerprint manager312may obtain the neighbor macrocell list (e.g., by receiving System Information Blocks from the serving cell), and store any or all of the neighbor macrocell information as part of the fingerprint for the femtocell608. The proximity detector308may use the macrocell information for proximity detection and fingerprint creation, even if the UE100does not have current on-the-air measurements for all of the frequencies from the list.

With regard toFIG. 6, the operator of the UE100may manually select to camp onto the femtocell608. While the UE100moves in the coverage area of the femtocell608, e.g., from location 1 to location 2 and to location 3, the fingerprint manager312may obtain additional environmental measurements at these locations, and may create fingerprints from those measurements. All of the fingerprints are associated with proximity to the femtocell608in the fingerprint database310.

In time, the UE100will leave the coverage area of the femtocell608. At that time, the fingerprint manager312may store the environmental measurements as yet another fingerprint for the femtocell608. The fingerprint that captures the end of the coverage area may then function as one of the thresholds for initiating ASF.

The methods, devices, and logic described above may be implemented in many different ways in many different combinations of hardware, software or both hardware and software. For example, all or parts of the system may include circuitry in a controller, a microprocessor, or an application specific integrated circuit (ASIC), or may be implemented with discrete logic or components, or a combination of other types of analog or digital circuitry, combined on a single integrated circuit or distributed among multiple integrated circuits. All or part of the logic described above may be implemented as instructions for execution by a processor, controller, or other processing device and may be stored in a tangible or non-transitory machine-readable or computer-readable medium such as flash memory, random access memory (RAM) or read only memory (ROM), erasable programmable read only memory (EPROM) or other machine-readable medium such as a compact disc read only memory (CDROM), or magnetic or optical disk. Thus, a product, such as a computer program product, may include a storage medium and computer readable instructions stored on the medium, which when executed in an endpoint, computer system, or other device, cause the device to perform operations according to any of the description above.