A wireless local area network (WLAN) client device may store in its memory one or more profiles of wireless local area networks. A profile may include, for example, the service set identity (SSID) of the network, WLAN configuration parameters, security credentials, and Internet Protocol (IP) network parameters. The SSID is also known as the network name. The profiles may be assigned priorities, for example, by a user that has purchased the client device, a carrier who controls the sale of the client device, or an administrator of an enterprise that has purchased the client device.
Scanning is the process of identifying existing networks. A client device having two or more profiles may scan for WLANs matching the profiles in sequence, and if no successful connection is achieved then the client device may go into a sleep state for a sleep interval (e.g., a few seconds) before trying to scan the profiles again. This may be applicable only to profiles of WLANs having suppressed SSIDs.
While a device is not in coverage and is scanning for WLANs, the average amount of charge drawn from its battery may be related to the ratio between the time spent in the sleep state and the time spent scanning. For a device with N profiles, an exemplary sequence for scanning/sleeping may be as follows: P1P2 . . . PN Sleep1 P1P2 . . . PN Sleep2 P1P2 . . . PN Sleep3 P1P2 . . . PN Sleep4 P1P2 . . . PN where Sleep1, Sleep2, . . . are sleep intervals between profile scanning intervals, and the duration of sleep intervals may be increased (that is, Sleep1<Sleep2<Sleep3< . . . ) until it reaches an upper limit. The more profiles the device is scanning for, the lower the ratio between the time spent in the sleep state and the time spent scanning. This may have an adverse effect on the battery life of the device.
Embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments. However it will be understood by those of ordinary skill in the art that the embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments.
A WLAN client device may also be able to communicate with base stations of a wireless wide area network (WWAN), for example, a cellular communications network. While in cellular mode, the client device still needs to scan for WLAN networks. This is to explore whether roving to WLAN mode is possible. When the client device scans for WLAN connectivity, it cycles through the WLAN profiles, one by one, scanning for network presence and possibly connecting if one is found. During scanning the WLAN radio of the client device consumes a lot of power.
The client device prioritizes the WLAN profiles according to the current location in the cellular network. Once the client device has identified in which cell of the cellular network it is located, the client device scans more frequently for wireless local area networks matching profiles to which, previously, the device has connected while located in the cell, than for wireless local area networks matching other profiles.
For example, the client device may scan once per each sleep interval for wireless local area networks matching profiles to which, previously, the device has connected while located in the cell, and may scan once per each other sleep interval for wireless local area networks matching the other profiles.
The client device may maintain cell records, each cell record identifying the cell and comprising one or more cell-specific profile records. A profile record identifies a profile and notes the number of times the device has connected to a WLAN matching the identified profile while located in the cell.
The client device may partition the profiles into two or more cell-specific groups based on whether a profile record is maintained for the cell and the number of times the device was located in the cell and connected to a WLAN matching the profile identified in the profile record. Each group may have associated therewith a fixed number of sleep intervals, or a set of sleep interval durations.
Reference is made to
Environment 100 comprises cellular base stations and WLAN access points (AP). Base stations 104, 106 and 108 create a cell 110. Base stations 112, 114 and 108 create a cell 116, and base stations 118, 120 and 108 create a cell 122. Although presented in
APs 124, 126, 128 and 130 are located in cell 116. Similarly, APs are located in cells 110 and 122. Although coverage areas of the APs are presented in
A user of device 102 may carry device 102 to different places at different times. Device 102 may store in its memory profiles of WLANs. A profile may include, for example, the service set identity (SSID) of the network, WLAN configuration parameters, security credentials, and Internet Protocol (IP) network parameters.
Device 102 may maintain cell records for different cells, each cell record containing profile records of the number of times the device has connected to wireless local area networks matching profiles stored in the device while located in the cell. An exemplary implementation of cell records and profile records will now be described. Device 102 may maintain a list of cells it roams to. Each item in the list is a record as follows:
where CellID is the code identifying the cell the device just roamed to, WLANAssocInfo [ ] is a linked list of the record WLANAssocInfo which contains info about the profiles the device has associated with. The record WLANAssocInfo is as follows:
Reference is made to
Reference is also made to
Returning briefly to
For example, the profiles stored in the device may be partitioned into two groups: (1) profiles to which, previously, the device has connected while located in the cell; and (2) other profiles. The partition of the profiles into groups will depend on which cell the device is located in when performing the scanning. The device may scan once per each sleep interval for wireless local area networks matching profiles in the first group and once per each other sleep interval for wireless local area networks matching profiles in the second group.
To continue the example for the cell record for cell 116 given above, device 102 may scan for WLANs matching the profiles P1, P3 and P4 after each sleep interval and device 102 may scan for WLANs matching the profiles P2 and P5 after every other sleep interval:
P1P2P3P4P5 Sleep1 P1P3P4 Sleep2 P1P2P3P4P5 Sleep3 P1P3P4 Sleep4 . . . .
For the group of profiles P1, P3 and P4, the set of sleep interval durations is Sleep1, Sleep2, Sleep3, Sleep4, etc. For the group of profiles P2 and P5, the set of sleep interval durations is Sleep1+(time to scan P1P3P4)+Sleep2, Sleep3+(time to scan P1P3P4)+Sleep4, etc.
In another example, the profiles stored in the device may be partitioned into three groups: (1) profiles to which, previously, the device has connected 5 or more times while located in the cell; (2) profiles to which, previously, the device has connected at least once but fewer than 5 times while located in the cell; and (3) other profiles. The partition of the profiles into groups will depend on which cell the device is located in when performing the scanning. The device may scan once per each sleep interval for wireless local area networks matching profiles in the first group, once per each other sleep interval for wireless local area networks matching profiles in the second group, and once per each third sleep interval for wireless local area networks matching profiles in the third group.
To continue the example for the cell record for cell 116 given above, device 102 may scan for WLANs matching profile Pi after each sleep interval, for WLANs matching profiles P3 and P4 after every other sleep interval and for WLANs matching the profiles P2 and P5 after every third sleep interval:
P1P2P3P4P5 Sleep1 P1 Sleep2 P1P3P4 Sleep3 P1P2P5 Sleep4 P1P3P4 Sleep5 P1 Sleep6 P1P2P3P4P5 Sleep7 P1 Sleep8 . . . .
For profile P1, the set of sleep interval durations is Sleep1, Sleep2, Sleep3, Sleep4, etc. For the group of profiles P3 and P4, the set of sleep interval durations is Sleep1+(time to scan P1)+Sleep2, Sleep3+(time to scan P1P2P5)+Sleep4, etc. For the group of profiles P2 and P5, the set of sleep interval durations is Sleep1+(time to scan P1)+Sleep2+(time to scan P1P3P4)+Sleep3, Sleep4+(time to scan P1P3P4)+Sleep5+(time to scan P1)+Sleep6, etc.
It is obvious to a person of ordinary skill in the art to generalize this partition into two or more groups, based on the presence of a profile in the cell record and the number of associations in the profile record.
At 610, a counter J is set to zero. At 612, device 102 scans for wireless local area networks matching the stored profiles. If a matching wireless local area network is found, then this method is exited during 612 so that device 102 can attempt to associate with the access point that controls the matching wireless local area network. Once scanning has been conducted once for each of the stored profiles, at 614, the WLAN radio and possibly other components of device 102 enter a sleep state for a sleep interval Sleep1.
At 616, counter J is incremented by one. At 618, device 102 scans for wireless local area networks matching any profile(s) in each group for which J mod M=0, where M is the fixed number of sleep intervals associated with that group. If a matching wireless local area network is found, then this method is exited during 618 so that device 102 can attempt to associate with the access point that controls the matching wireless local area network. Otherwise, at 620, the WLAN radio and possibly other components of device 102 enter a sleep state for a sleep interval of longer duration than the previous sleep interval, subject to an upper limit. The method then resumes from incrementing counter J by one at 616.
An alternate implementation of scanning more frequently for WLANs matching profiles to which, previously, the device has connected while located in the cell, than for WLANs matching other profiles, will be described with respect to
At 702, device 102 roams to a particular cell and obtains the cell ID. If a cell record for this cell ID does not exist, as checked at 704, then scanning for WLANs is done at 706 according to any suitable method. Otherwise, the profiles stored in device 102 are partitioned at 708 into two groups based on whether a profile record for a profile is maintained in the cell record. A group may consist of one or more profiles. Each group has associated with it a set of sleep interval durations.
At 710, using the first set of sleep interval durations, device 102 scans for WLANs matching profiles in the first group i.e. those profiles for which a profile record is maintained for the cell identified at 702. At 712, using the second set of sleep interval durations, device 102 scans for WLANs matching profiles in the second group i.e. those profiles for which a profile record is not maintained for the cell identified at 702. Each sleep interval duration in the first set is shorter than its corresponding sleep interval duration in the second set. Care must be taken to ensure that the scanning of the first group and the scanning of the second group do not coincide in time. For example, a rule may be implemented that if scanning of the second group is to commence, according to its set of sleep interval durations, at a time when scanning of the first group is occurring, then the scanning of the second group is delayed until the scanning of the first group is finished.
The method of
At 802, device 102 roams to a particular cell and obtains the cell ID. If a cell record for this cell ID does not exist, as checked at 804, then scanning for WLANs is done at 806 according to any suitable method. Otherwise, the profiles stored in device 102 are partitioned at 808 into three groups: (1) profiles recorded in the cell record with a number of associations equal to or greater than a certain number; (2) profiles recorded in the cell record with a number of associations less than the certain number; and (3) other profiles. A group may consist of one or more profiles. Each group has associated with it a set of sleep interval durations.
At 810, using the first set of sleep interval durations, device 102 scans for WLANs matching profiles in the first group. At 812, using the second set of sleep interval durations, device 102 scans for WLANs matching profiles in the second group. At 814, using the third set of sleep interval durations, device 102 scans for WLANs matching profiles in the third group. Each sleep interval duration in the first set is shorter than its corresponding sleep interval duration in the second set. Likewise, each sleep interval duration in the second set is shorter than its corresponding sleep interval duration in the third set.
As explained above with respect to
It is obvious to persons of ordinary skill in the art how to modify the methods of
For all of the scanning methods described hereinabove, scanning of profiles in a particular group may be done one profile at a time, sequentially, in order of descending priority of the profiles.
Device 900 includes a WLAN communication interface 910, compatible, for example, with one or more standards of the family of IEEE 802.11 wireless communication standards, or with one or more HiperLAN standards. WLAN communication interface 910 is coupled to processor 902, and comprises at least a baseband controller 912, a radio 914, and an antenna 916.
Device 900 includes a WWAN communication interface 920, compatible with one or more wireless cellular communication standards. WWAN communication interface 920 is coupled to processor 902, and comprises at least a baseband controller 922, a radio 924, and an antenna 926. WWAN communication interface 920 may share antenna 916 with WLAN communication interface 910, in which case antenna 926 is not needed.
Memory 904 is able to store profiles 930 of WLANs. Memory 904 is also able to store cell records 940 and profile records 950. As described hereinabove with respect to
A non-exhaustive list of examples for device 900 includes a laptop, a cellphone, a personal digital assistant (PDA), a smart phone, a video camera, a gaming console, an Internet Protocol (IP) phone, and any other suitable mobile client device.
While certain features have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. For example, throughout this description and claims, a directed cell identified as such from signals of a base station of a cellular network may take the place of a cell. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes.
Number | Name | Date | Kind |
---|---|---|---|
6393006 | Kajihara | May 2002 | B1 |
6850774 | Cashman | Feb 2005 | B1 |
7561545 | Abdel-Kader | Jul 2009 | B2 |
20030118015 | Gunnarsson et al. | Jun 2003 | A1 |
20040120278 | Krantz et al. | Jun 2004 | A1 |
20040165563 | Hsu et al. | Aug 2004 | A1 |
20050122921 | Seo | Jun 2005 | A1 |
20050245269 | Demirhan et al. | Nov 2005 | A1 |
20050281234 | Kawamura et al. | Dec 2005 | A1 |
20060133330 | Chin | Jun 2006 | A1 |
20060142004 | He et al. | Jun 2006 | A1 |
20060148487 | Kim et al. | Jul 2006 | A1 |
20060280128 | Abdel-Kader | Dec 2006 | A1 |
20070277047 | Mehta et al. | Nov 2007 | A1 |
Number | Date | Country |
---|---|---|
1526682 | Apr 2005 | EP |
2420937 | Jun 2006 | GB |
9965270 | Dec 1999 | WO |
2004031488 | Apr 2004 | WO |
2004045225 | May 2004 | WO |
2007082368 | Jul 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20080176579 A1 | Jul 2008 | US |