WIRELESS NETWORKAND METHOD FORPROVIDINGIMPROVED HANDOFF
PERFORMANCE
BACKGROUND OFTHE INVENTION
Field of the Invention
The present invention relates to wireless networks. More specifically, the present invention relates to methods for facilitating handoff while moving between such networks. Description of the Related Art Computer networks allow multiple computers, peripherals and other information storage, retrieval or processing devices to share data. Each device attached to a network is typically referred to as a 'node'. Local Area Networks ("LANs") have historically consisted of nodes interconnected by physical media (e.g., coaxial cable, twisted pair wire, fiber optics, etc.). Recently wireless LANs, the nodes of which are not connected by means of a physical medium, have started to appear in the market. Wireless LANs communicate by means of infrared (TR), radio or other signals. One of the benefits of using wireless LANs is that cabling is not required. This is a particularly useful feature for mobile nodes such as laptop and notebook computers, PDAs (personal digital assistants), and the like. If equipped with an appropriate wireless adapter, the mobile nodes can move around within a predefined coverage area and remain connected to the network.
One method of implementing a wireless LAN is similar to a cellular phone network system. In this method wireless mobile nodes do not communicate directly with each other, but rather send all signals to a central base station, which then redirects the signals to the destination node. In certain systems of this type, each wireless mobile node is allowed to simultaneously participate in different wireless networks.
A wireless technology called 'Bluetooth' is under development to enable ease of synchronization and mobility for a plethora of corporate and consumer applications. Bluetooth is described in BLUETOOTH SPECIFICATION VERSION OB CORE, published in December 1999. Bluetooth technology will open up many possibilities for communication via wireless networks. Currently, Bluetooth enabled wireless networks often include a Network Access Point or 'NAP'. A NAP is typically a stationary, hard- wired transceiver adapted to communicate with mobile wireless devices.
Bluetooth enabled nodes self-organize into "piconets" composed of one master device and a set of slave devices. Since the Bluetooth protocol is based on frequency hopping, the "clock" (slot number) and clock offset of the master, as seen by the slave, are required in order to synchronize the devices with respect to the frequency hops. There are occasions when a device will need to transfer from one piconet to another due to the limited range of the Bluetooth link. This occurs, for example, when a Bluetooth device is using another device as a network access point, and due to motion the original access point is no longer accessible. This so-called "handoff" between access points requires the device to learn the Bluetooth clock and offset values for the new access point. Further complicating the process is the fact that the location of the device is not accurately known, so the identity of the next access point must be determined by an inquiry process, by which the device basically asks "who's there?" and selects a responder.
Since current Federal Communications Commission (FCC) regulations prohibit hop synchronization between Bluetooth masters, the handoff becomes a probabilistic process that requires a substantial period of elapsed time. Hence, a need exists in the art for a system and/or method for facilitating handoff in wireless, particularly Bluetooth enabled, networks.
SUMMARY OF THE INVENTION The need in the art is addressed by the wireless network of the present invention. In a most general embodiment, the inventive network includes first and second access points for serving first and second areas respectively. A first circuit is operatively coupled to the first and the second network access points to effect communication therebetween. In the specific illustrative embodiment, the first circuit is a Bluetooth enabled transceiver. A second circuit is disposed at the first network access point for receiving and storing information with respect to the second network access point. A third circuit is provided at at least one access point for sharing the information with a mobile device adapted to move between the first area and the second area.
In the illustrative embodiment, the network includes plural network access points and the information to be shared includes timing offset and network topology information. The system is adapted to detect a failure in the network and additions to and deletions therefrom. Each network access point is adapted to detect an adjacent network access point and establish communication therewith via a background connection. Thereafter, a sequence of frequencies and slots are created based on the network topology and slot timing information. This provides a virtual paging channel in which each slot is spaced in time. Preferably, each slot is
spaced in time such that the device can hop from a first slot to an adjacent second slot with a sufficient time gap to listen for a response.
The inventive network is adapted to broadcast each network access point's identity, relative slot timing, and clock value to each device within each reception area of each other access point in the network.
In accordance with the present teachings, each device is adapted to page a first network access point listed in the virtual paging channel when a change of access point is required. The device then listens for a response from the first network access point. If no response is received, the device pages a second network access point. In the best mode, the virtual paging channel is configured such that the second network access point paged is a next best network access point to page for the device, based at least in part on a location of the device, in response to the network information detected by the network access point and shared with the device.
Hence, the present invention facilitates handoff in wireless, particularly Bluetooth enabled, networks by reducing the time required for a mobile device to acquire a communications channel with a network access point by means of pre-arranged "paging" slots and a broadcasting of the identity and timing of these slots to all devices within range thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a simple network configuration consisting of four access points, with Bluetooth device addresses API, AP2, AP3, and AP4, and one client, with address CLl, which is currently receiving service through AP2, and thus an active member of AP2's piconet.
Figure 2 is a diagram which illustrates the four sequences of time slots listed in Figure 1 over a short period of time. Figure 3 shows the same sequence as Figure 2 over a longer time interval. The shaded slots represent the VPC.
Figure 4 illustrates a VPC as broadcast by AP3 where the slots are sequenced from access points on alternate sides of AP3. This increases the probability of success given that access points will usually have overlapping service areas in the case that other access points are arrayed around an access point AP3.
Figure 5 depicts a movement of a device from CLl to position CLl ' and, in the process, loses contact with an access point AP2.
Figure 6 is a simplified block diagram of an illustrative implementation of a network access point.
Figure 7 is a simplified block diagram of an illustrative implementation of a node in accordance with the teachings of the present invention. Figure 8 is a flow diagram of the method of adding a new access point in accordance with an illustrative embodiment of the present teachings and with reference to the exemplary network of Figure 9.
Figure 9 is a representation of a wireless network simplified to illustrate the operation of the present invention in connection with the process of adding a new access point. Figure 10 is a flow diagram of the method of handing off a device or node implemented by the network access point software in accordance with an illustrative embodiment of the present teachings and with reference to the exemplary network of Figure 11.
Figure 11 is a representation of a wireless network simplified to illustrate the operation of the network access point software of the present mvention in connection with the process of handing off a node.
DESCRIPTION OF THE INVENTION Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.
The present invention applies to situations where a Bluetooth enabled device (or node) requires a service which can be accessed via any one of a pool of "access points" distributed about an area. These access points provide relayed access to the service. In the following description, the Bluetooth device is referred to as the "client". It is assumed that the access points can communicate with each other via Bluetooth (in order to determine clock offsets and topology.) (It is possible, but considerably more complicated, to exchange the required information via a wired network.) Also, since access points will usually wish to provide
service to multiple clients simultaneously, the access point will be master of a piconet providing service to clients.
Utilizing this invention, each access point gathers timing offset and topology information about its neighboring access points. This process continues in the background to detect failures and additions to the access point network, as well as to update timing offset information since the access point timings will drift relative to each other.
Once an adjacent access point is identified, each access point establishes a low-rate connection with each adjacent access point. Via these connections the access points mutually agree on a sequence of frequencies and slots which may be considered a "virtual paging channel" or "VPC". Each successive slot in the VPC is spaced in time such that a client can hop from one to the next with enough gap to listen for a response.
The identity, relative slot timing, and Bluetooth clock values are broadcast to all clients participating in each access point's piconet. When a change of access point is required, the client pages each successive access point as listed in the VPC, listens for a response, and moves on to the next if the paged access point does not respond.
Since the page is guaranteed to occur while an access point is listening, the only reason for the absence of a response would be that the access point did not hear the page.
Presumably, this is due to the path between the client and the paged access point, so the most fruitful course of action would be to try another access point. The VPC is arranged such that the next entry is the best access point to try in such a scenario.
Figure 1 shows a simple network configuration consisting of four access points, with Bluetooth device addresses API, AP2, AP3, and AP4, and one client, with address CLl, which is currently receiving service through AP2, and thus an active member of AP2's piconet. Note that each access point has a totally independent Bluetooth (BT) clock. Although these clocks change independently and are not synchronized, the duration of each slot is very close to the same, so a single time offset satisfactorily describes the relationship between the two slot sequences for a relatively long time. The BT Clock values represent a sample at an instant in time; all are constantly changing.
Figure 2 is a diagram which illustrates the four sequences of time slots listed in Figure 1 over a short period of time. Although the sequences drift relative to each other, the relationship remains valid for these purposes for many seconds at a time.
Figure 3 shows the same sequence as Figure 2 over a longer time interval. The shaded slots represent the VPC. Note that each slot shown occurs on a different frequency, as
determined by the standard Bluetooth hop sequence for each access point. Successive slots of the VPC are selected such that even with a small amount of relative drift (as well as other standard tolerances) the client can listen for a page response and still have time to hop to the next slot if no response is received.
The order of the slots is somewhat arbitrary. In most cases, they will be ordered randomly. Ideally, however, the access points would have enough knowledge of each other's (fixed) location to permit ordering of themselves to minimize the search time. For example, as shown in Figure 4, if other access points are arrayed around AP3, the broadcast VPC should alternate sides so as to increase the probability of success given that access points will usually have overlapping service areas.
Tables la - Id illustrate the VPC information broadcast by each access point in the example. This table contains channel (frequency) information as a convenience to the client; given the device address and BT clock values, the client could compute the channel by itself. Such computation is relatively intensive, however, and is more readily performed ahead of time by the access point (which may have hardware support for the calculation.) Obviously, the broadcast information should be updated before its validity runs out.
Table la (Broadcast by API)
liirVilitøl Offset Target Access
Channel
(microseconds! ■gπm
Table lb (Broadcast by AP2)
li.Wr.im Offset Target Access
IwiMUiTJI
( microseconds! Point
Table lc (Broadcast by AP3)
ii.Ui. m Offset Target Access Target
Channel f microseconds! Point Slot
Table Id (Broadcast by AP4)
liiMι.l.ι-1 Offset Target Access Target
ItllMi.i.JI
(microseconds) ■gfftr i
Each time an access point is detected by any existing access point, the VPC must be modified to incorporate the new access point. Although access points will not typically appear and disappear, the existing access points may choose to leave slots in the rotation to facilitate adding new access points. Note that in this example each access point is broadcasting the same table, but with the timing information (slot numbers and offsets) relative to its own Bluetooth clock. In very large networks, it would be desirable to have multiple VPCs organized by access point proximity in order to reduce the latency before the best choice access point is tried. Client CLl monitors and stores the VPC information as broadcast by AP2. When it needs to transfer to another access point, it will page AP3 then API (if necessary) as listed in the VPC table. Note that since the VPC provides enough information to determine which frequency the access point is using for each slot in which it is allowed to transmit, CLl may utilize the VPC information to pre-scan for adjacent access points ahead of a transfer. Such a pre-scan can be further used to optimize handoffs by identifying the exact next access point to be used, or by transferring in advance of loss of signal from the previous access point. These optimizations permit nearly hitless handoffs to be performed.
As shown in Figure 5, assume that CLl moves to position CLl', and in the process loses contact with AP2. (Note that access points may be able to talk to each other over greater
distances than clients.) At CLl ', CLl will page AP3 and get a response, allowing it to very rapidly join AP3's piconet.
Once established with AP3, CLl begins monitoring the VPC information broadcast from it. As shown in Table 3, this VPC also contains information for AP4. Thus, if CLl continues moving in the same direction, it will eventually reach location CLl", where it may hand off to AP4.
At any time, CLl may move beyond coverage of communicating access points, for example, on its way to CLl '". In this case CLl reverts to the standard means for finding an access point (via the Bluetooth standard inquiry process), as it did originally before connecting with AP2.
Figure 6 is a simplified block diagram of an illustrative implementation of a network access point. As shown in Figure 6, the network access point 100 includes an antenna 110 which provides signals to a transceiver 120, which in the preferred embodiment is a Bluetooth enable radio. The transceiver 120 provides signals to baseband processing hardware 130. The baseband processor 130 digitizes the signals output by the transceiver 120 and separates the digitized signals into packets of data on which error correction and other functions are performed as is common in the art. The baseband processor 130 may be implemented with a microprocessor, application specific integrated circuit (ASIC), field-programmable gate array (FPGA), discrete logic or other suitable arrangement. A control processor 150 connects with the baseband processor 130 via a bus 140. The control processor 150 is included to control the operation of the network access point 100 using software stored in a read-only memory (ROM) 160. The ROM 160 stores access point control software to be executed by the control processor 150 along with a Bluetooth protocol stack and a Network Interface stack. The control processor 150 writes data to and reads data from random access memory (RAM) 170. In accordance with the present teachings, the RAM 170 contains buffers, working data, and the VPC list. Finally, a network interface adapter 180 is attached to the bus 140 to facilitate connection of the NAP 100 to an internal network. The network interface adapter 180 may be an Ethernet adapter or other suitable adapter depending on the type of internal network to which it is to interface. Figure 7 is a simplified block diagram of an illustrative implementation of a node in accordance with the teachings of the present invention. As per the NAP 100 illustrated Figure 6, the node 200 includes an antenna 210 which provides signals to a transceiver 220, which is also, in the preferred embodiment, implemented as a Bluetooth enable radio. The transceiver
220 provides signals to baseband processing hardware 230. The baseband processor 230 digitizes the signals output by the transceiver 220 and separates the digitized signals into packets of data on which error correction and other functions are performed as is common in the art. The baseband processor 230 may be implemented with a microprocessor, application specific integrated circuit (ASIC), field-programmable gate array (FPGA), discrete logic or other suitable arrangement.
A control processor 250 connects with the baseband processor 230 via a bus 240. The control processor 250 is included to control the operation of the node 200 using software stored in a read-only memory (ROM) 260. The ROM 260 stores device specific node control software to be executed by the control processor 250 along with a Bluetooth protocol stack. The control processor 250 writes data to and reads data from random access memory (RAM) 270. In accordance with the present teachings, the RAM 270 contains buffers, working data, and the VPC list. Finally, device specific hardware 280 is attached to the bus 240. This hardware might include a fingerprint sensor or microphone and speaker interface by way of example.
Figure 8 is a flow diagram of the method of adding a new access point implemented by the network access point software in accordance with an illustrative embodiment of the present teachings and with reference to the exemplary network of Figure 9.
Figure 9 is a representation of a wireless network simplified to illustrate the operation of the network access point software of the present invention in connection with the process of adding a new access point. The situation depicted in Figure 9 would exist at the point of installation of a new access point. On installation, the new access point might be detected by several access points. Hence, the system must determine which access point will be the first to begin to communicate with the new access point. As illustrated in Figures 8 and 9, initially an access point A (shown at 342 in Figure 9) is in communication with previously known access points B and C (344 and346). At step 302 a new network access point N (shown at 348 in Figure 9) is detected by an access point A. At step 304, access point A opens a connection to N. At step 306, A checks with N to determine if N supports VPC. If N does not support VPC, then at step 308, A closes the connection and ignores the new access point thereafter.
If, however, at step 306, A determines that N supports VPC, then at step 312, A ascertains whether N is already negotiating with another access point. If so, A allows the other access point to process the new access point N (step 314). If not, at step 316, A begins
to negotiate with N by sending the current VPC list to N. A then awaits a reply from N indicating whether it can fit itself within the existing VPC list. If so, at step 318, N proposes a new VPC list and at step 320 A ascertains whether it can accept the list proposed by N.
If A can not accept the list proposed by N, at steps 322 and 324, A proposes a new VPC list and sends it to N. If at step 318, N accepts the list proposed by A or if at step 320 A accepts the list proposed by N, then at step 326, A closes the connection to N and broadcasts the new VPC list (step 328). Finally, at step 330, NAPs B, C and N receive and rebroadcast the new VPC list upon agreement with same.
Figure 10 is a flow diagram of the method of handing off a device or node implemented by the network access point software in accordance with an illustrative embodiment of the present teachings and with reference to the exemplary network of Figure 11.
Figure 11 is a representation of a wireless network simplified to illustrate the operation of the network access point software of the present invention in connection with the process of handing off a node. The situation 430 depicted in Figure 11 would exist at the point a device or node 401 is in communication with an access point.
As shown in Figures 10 and 11, at step 402, the device 401 is detected by the network and at step 404, the device 401 receives periodic rebroadcasts of the VPC list from an access point (e.g., access point A). Now assume that at step 406, the device 401 loses its connection with the access point A. Accordingly, at step 408, the device 401 begins to select access points from the VPC list. Inasmuch as the device 401 knows the timing and frequency of each access point it pages from the VPC list, it expects a response immediately. If it is not received, the device proceeds to the next access point on the list. This is depicted at steps 410 - 424. At step 410, the device checks to determine whether the next access point on the list is the access point with which it recently lost contact. If so, at step 412, it moves on to the next entry on the list. If not, at step 414, the device 401 pages the access point per its channel and timing offset entry in the VPC list. A sample VPC list is shown in Figure 12. At step 416, the device 401 listens for a response. If a response is received, at step 418, the device 401 connects with the responding access point. If no response is received at step 416, then at step 412, the device 401 proceeds to the next entry on the list. This next entry is checked to determine if it is associated with the access point with which the device 401 recently lost contact (step 410). If the list is exhausted, at step 424, a standard inquiry (e.g., the Bluetooth standard inquiry) is used to locate an access point. Thus, the present invention
has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications applications and embodiments within the scope thereof.
It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention.
Accordingly,