MULTI-LINK TRANSMISSION OF DATA OVER A CELLULAR NETWORK

Abstract: A wireless data communication unit (28) includes a data interface, which receives data from a first computer (24) for transmission to a second computer (22) having a similar wireless data communication unit (30), and conveys data received from the second computer (22) to the first computer (24). The communication unit (28) further includes a plurality of wireless communication transceivers (36, 37, 38), which communicate over respective wireless links with corresponding transceivers (36, 37, 38) in the communication unit of the second computer (22). A multiplexer (34) distributes the data received by the data interface from the first computer (24) among the plurality of transceivers (36, 37, 38) for transmission thereby over the respective links, and assembles the data received from the second computer (22) over the links into a single, (24).

Description: MULTI-LINK TRANSMISSION OF DATA OVER A CELLULAR NETWORK BACKGROUND OF THE INVENTION I. Field of the Invention The present invention relates generally to wireless communications, and specifically to data communications over cellular networks. II. Background It frequently occurs that the rate at which data must be conveyed between two points exceeds the capacity of a single communication channel between the points. It is known in the art to use multiple links in parallel to convey the data in such a case. For example, in place of the normal point-to- point (PPP) protocol that is commonly used in digital packet communications between computers, the PPP Multilink Protocol may be used. This protocol is described by Sklower et al., in Request for Comments (RFC) no. 1990 of the Internet Engineering Task Force (IETF) Network Working Group (August, 1996), which is incorporated herein by reference. It offers a method for splitting, recombining and sequencing datagrams across multiple logical data links, such as multiple Integrated Service Digital Network (ISDN) bearer channels. The Multilink Protocol requires a special, multi-link modem, however, and is not compatible with the standard telephone modems that are currently installed in most computers. In the cellular field, the IS-95 standard for code division multiple access (CDMA) communications, promulgated by the Telecommunications Industry Association (TIA), offers features known as medium data rate (MDR) and high data rate (HDR) transmission for high-speed data services. When a user data rate between a mobile station (MS) and a base station subsystem (BSS) exceeds ordinary CDMA traffic channel rates, MDR and HDR allow multiple traffic channels to be opened simultaneously. Since there is frequently a greater volume of data being transported in one direction than in the other (most frequently in a forward direction, i.e., from the BSS to the MS) the number of channels opened in the two directions need not be equal. In MDR, for each direction there is typically one fundamental code traffic channel, which carries signaling along with data, and up to seven supplemental code traffic channels for high-speed data. The supplemental channels are activated as needed based on the total data rate at anv time. A similar type of high-speed data service is offered in the Global System for Mobile (GSM) telecommunications Phase 2+ standard for high-speed circuit- switched data (HSCSD). In this case, a number of time division multiple access (TDMA) time slots are allocated to carry the high-speed data between the BSS and the MS. Most currently-deployed cellular systems do not support standards such as HSCSD or MDR. Implementation of these high-speed standards will require substantial investments in infrastructure and new equipment. SUMMARY OF THE INVENTION It is an object of some aspects of the present invention to provide improved apparatus and methods for transmission of high-speed data over a cellular cornmunications network. It is a further object of some aspects of the present invention to provide apparatus and methods that enable application data to be conveyed between computers over multiple, parallel cellular links in a manner that is transparent to the applications and to the computer users. It is still a further object of some aspects of the present invention to provide apparatus and methods for high-speed data communications over a cellular network that are fully compatible with currently-deployed network infrastructure and equipment. In preferred embodiments of the present invention, a pair of computers are connected to respective wireless data communication units, which exchange data over multiple wireless links simultaneously. Preferably, the units communicate over a cellular network. The multiple links are established using two or more cellular transceivers in each of the units, which place multiple, parallel calls simultaneously between the units. Each unit has a data interface that couples to a data port of the respective computer, typically a serial port, in a manner that emulates a standard modem. Applications running on the computers exchange data via the wireless units, preferably using a standard point-to-point (PPP) protocol, unaware that multiple links are being used. Multiplexers in the wireless units are responsible for distributing data frames from the respective computers for transmission among the multiple links and for reordering the frames upon receipt, so that the operation of the units is substantially transparent to the computers that use them. The present invention thus enables data to be transmitted over wireless networks at data rates several times the rate that is available over a single channel. This feature is particularly important in cellular networks, in which bandwidth is limited and single-channel data transmission is therefore slow. The increased data rate is attained using inexpensive hardware and without alteration to existing cellular infrastructure. There is similarly no modification required to the computers or to the software applications that use the wireless communication units of the present invention to exchange data. There is therefore provided, in accordance with a preferred embodiment of the present invention, a wireless data communication unit, including: a data interface, adapted to receive data from a first computer for transmission to a second computer having a similar wireless data communication unit, and to convey data received from the second computer to the first computer; a plurality of wireless communication transceivers, adapted to communicate over respective wireless links with corresponding transceivers in the communication unit of the second computer; and a multiplexer, which is adapted to distribute the data received by the data interface from the first computer among the plurality of transceivers for transmission thereby over the respective links, and to assemble the data received from the second computer over the links into a single, ordered stream of data to be conveyed by the data interface to the first computer. Preferably, the plurality of wireless communication transceivers include cellular transceivers, and the wireless links are made over a cellular communications network. Most preferably, to establish the wireless links, each of the transceivers places a call over the cellular communications network to the corresponding transceiver in the communication unit of the second computer. Preferably, the data interface is adapted to be coupled to the first computer in a manner that emulates a standard data modem, wherein the data interface includes a RS-232 interface. Further preferably, the data are transmitted and received by an application running on the first computer using a standard point-to-point protocol, as though only a single link were operative between the first and second computers. Preferably, the data received from the first computer are divided into frames, and the multiplexer adds a numbering layer to the frames, in accordance with which the frames transmitted over the links are assembled into the single, ordered stream. There is further provided, in accordance with a preferred embodiment of the present invention, a method for wireless data communications, including: inputting data from a first computer for transmission to a second computer establishing a plurality of wireless communication links between a corresponding plurality of pairs of transceivers, each pair including a first transceiver coupled to the first computer and a second transceiver coupled to the second computer; multiplexing the data received from the first computer so as to transmit respective portions of the data over the plurality of wireless communication links in parallel; receiving the data transmitted over the plurality of wireless communication links; and assembling the received data into a single, ordered stream of data to be output to the second computer. Preferably, establishing the plurality of wireless communication links includes establishing bidirectional links, such that data are also transmitted from the second computer to the first computer over the plurality of links. Preferably, establishing the plurality of wireless communication links includes establishing the links over a cellular communications network, wherein establishing the links includes placing a plurality of calls over the cellular communications network. Most preferably, the method includes monitoring the calls so as to determine when one of the links becomes non- operational, wherein establishing the links includes placing a call to re-establish the non-operational link. Preferably, inputting the data from the first computer includes emulating a standard data modem coupled to the first computer, wherein emulating the standard data modem includes receiving serial data input from the first computer. Most preferably, inputting the data includes receiving data from an application running on the first computer using a standard point-to-point protocol, as though only a single link were operative between the first and second computers. Preferably, inputting the data includes receiving frames of data from the first computer, and multiplexing the data includes adding a numbering layer to the frames, in accordance with which the frames transmitted over the links are assembled into the single, ordered stream. Further preferably, assembling the received data includes reordering the received frames in accordance with the numbering layer and removing the numbering layer from the frames, so that an application running on the second computer receives the data as though only a single link were operative between the first and second computers. The present invention will be more fully understood from the following detailed description of the preferred embodiments thereof, taken together with the drawings in which: BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram that schematically illustrates a multi-link cellular data communications system, in accordance with a preferred embodiment of the present invention; Fig. 2 is a flow chart that schematically illustrates a method for transmitting data in the system of Fig. 1, in accordance with a preferred embodiment of the present invention; Fig. 3 is a flow chart that schematically illustrates a method for processing data received in the system of Fig. 1, in accordance with a preferred embodiment of the present invention; and Fig. 4 is a flow chart that schematically illustrates a method for reordering data frames received using the method of Fig. 3, in accordance with a preferred embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Fig. 1 is a block diagram that schematically illustrates a wireless data communications system 20, in accordance with a preferred embodiment of the present invention. System 20 comprises a pair of personal computers (PCs) 22 and 24, which are linked by respective cellular data communication units 28 and 30. Each of the computers is coupled to the respective cellular unit by a cable, typically a standard serial cable connected to a RS-232 port of the computer. Alternatively, substantially any wired data connection known in the art may be used between the computer and the wireless unit. Units 28 and 30 communicate over a cellular communications network, preferably a CDMA network. Alternatively other types of networks and other cellular standards may be used. In the embodiment of Fig. 1, computers 22 and 24 run an application 26 under which data are exchanged between the computers, preferably using a point-to-point (PPP) protocol, as is known in the art. On each computer, the PPP protocol encapsulates the data generated by the application in a sequence of data frames, which are then conveyed to the other computer. Alternatively, any other suitable communications protocol may be used between the computers, preferably a protocol that generates data frames or packets. Cellular unit 28 (and similarly, cellular unit 30) comprises a modem emulator 32, which is connected by the cable to the above-mentioned port of computer 22. Data frames received by the modem emulator are distributed by a multiplexer 34 among a plurality of cellular telephone modules 36, 37, 38. Each such module comprises a cellular transceiver with logic and control circuits, as are used in conventional cellular telephones known in the art. The telephone modules are labeled PHONE 1, PHONE 2, ..., PHONE n, to indicate that substantially any desired number of modules may be used in the unit. The inventors have found that a convenient number of telephone modules to be used in unit 28 is between two and six, with an equal number to be used in unit 30. For convenience and robustness, the transceivers preferably share a common antenna (not shown). Each of the telephone modules has its own telephone number in the cellular network, wherein for ease of implementation, the numbers are preferably sequential. Each telephone module 36, 37, 38 in unit 28 conveys data to a corresponding module in unit 30 over the cellular network in a full duplex mode. The data received by the telephone modules is demultiplexed by the corresponding multiplexer 34 and is then conveyed to the respective computer by modem emulator 32. Although the multiplexer and modem emulator are illustrated for clarity as separate functional blocks, these two functions are preferably carried out by the same processor, most preferably a general- purpose processor with suitable input/output connections and software. Alternatively, modem emulator 32 and multiplexer 34 may be implemented in dedicated hardware or in a combination of hardware and software elements. Fig. 2 is a flow chart that schematically illustrates a method for transmitting data between computers 22 and 24 using communication units 28 and 30, in accordance with a preferred embodiment of the present invention. For the sake of clarity, the method is described hereinbelow with reference to transmission of data from computer 22 to computer 24, but it will be understood that ordinarily, the computers communicate via units 28 and 30 in full-duplex mode. At a dial-up command step 50, a user of computer 22 makes a dial-up request, preferably using a standard Microsoft Dial-Up software routine. Typically, The user is prompted by the software to input a telephone number. In response, the user specifies the number of the first telephone module 36 (PHONE 1) in cellular unit 30. Alternatively, the telephone number is pre- programmed. Upon receiving the user input or pre-programmed number, computer 22 issues a dial-up command to unit 28. In response to the dial-up command, unit 28 instructs telephone modules 36, 37, 38 to place calls to the corresponding modules in unit 30, at a call initiation step 52. Thus, n calls are established simultaneously. When all of the calls have been made successfully, unit 28 returns a connect indication to computer 22, to signal that it the modem link is ready to receive data, at an indication step 54. At this point, the computer can begin to send data to unit 28 as though the unit were a standard modem. The rate of data transmission, however, is roughly n times the rate that is available when only a single cellular link is used. Modem emulator 32 receives PPP frames in sequence from computer 22, at a receive frame step 56. In a numbering step 58, a proprietary numbering layer is added to each frame, indicating its position in the sequence. Typically a header is added to the frame including the frame number. Multiplexer 34 then distributes the frames in turn to telephone modules 36, 37, 38, at a frame sending step 60. Preferably, the multiplexer passes the frames to all of the modules in a round robin. The telephone modules then transmit the frames to their counterparts in unit 30 at a frame transmission step 62. It may occur during communication between units 28 and 30 that one or more of the connections between the telephone modules in the units are lost. Such lost connections are commonly caused by faults in the cellular network, but may also occur due to a hardware failure in unit 28 or 30. Multiplexer 34 regularly checks the status of telephone modules 36, 37, 38, in order to verify that they are still validly connected to their counterparts in the other unit. When one of the connections is found to be no longer valid, the multiplexer stops sending it data frames. The telephone module will meanwhile attempt to re-establish its cellular link with its counterpart, so that it can again become available for transmitting data frames. While one or more of the cellular links are not operating, the rate of data transmission between computers 22 and 24 is reduced, but the connection between the computers is maintained. Once the module has re-established its cellular link, it notifies the multiplexer, which then resumes sending data frames to the module. When data communication is finished, the user of computer 22 instructs the computer to terminate the connection to computer 24, at a hang-up step 64. Typically, the same Dial-Up routine that was used to initiate the connection is also used to terminate it. The computer conveys the disconnect request to unit 28, which instructs telephone modules 36, 37, 38 to hang up their respective calls. Unit 30 informs computer 24, as well, that the connection has been terminated. Fig. 3 is a flow chart that schematically illustrates a method for receiving data transmitted between units 28 and 30, in accordance with a preferred embodiment of the present invention. This method goes on simultaneously and in parallel with the method for transmitting data described hereinabove with reference to Fig. 2, in both units 28 and 30, and continues until the connection is terminated. After all of the n connections between units 28 and 30 have been made, unit 30 informs computer 24 that an incoming call has been made, at a ring indication step 68. Application 26 receives the ring indication, and sends modem initialization messages to modem emulator 32 in unit 30, at a modem emulation step 69. The modem emulator acknowledges receipt of these messages. At this point, computer 24 is ready to receive data from computer 22. At a data reception step 70, multiplexer 34 receives data frames from telephone modules 36, 37, 38. The multiplexer receives the frames in the order in which they arrive at the modules, which is frequently different from the order in which the frames were sent out by computer 22. For this reason, at a reordering step 72, the multiplexer buffers the frames and reorders them based on the proprietary numbering information that was added to the frames before transmission. At a step 74, the numbering layer is then removed from the data frames. Modem emulator 32 outputs the frames in order to computer 24, at a send frame step 76, via the cable connection between the modem emulator and the appropriate computer port. Fig. 4 is a flow chart that schematically illustrates details of reordering step 72, whereby data frames received by multiplexer 34 are ordered for output in the proper sequence. The step is invoked whenever a new frame is received or, alternatively, when a timer has expired without a frame having been received. Typically, the timer is set to expire after 7 seconds, based on message response characteristics of the cellular network. The parameter "Count" is used in the flow chart to indicate the number of each frame that is received, based on the proprietary numbering layer added at step 58 (Fig. 2). "NextCount" is a parameter used to indicate the number of the next frame that is expected to be sent/received. Frames that are received out of order, as determined by comparing their Count value to the current NextCount value, are stored in a pool buffer until their turn arrives. When multiplexer 34 receives a data frame, it checks the Count value of the frame against the current NextCount value. If the values are different, it compares the difference of the values to a predetermined window size. The window size, which is typically set to eight frames, indicates how far out of order the frames are allowed to get and still be maintained in the pool. If the difference between Count and NextCount is greater than zero but within the window size, the current frame is added to the pool. Otherwise, all of the frames in the pool are passed to computer 24 in the order of their Count values. The entries in the pool, i.e., the slots available to accommodate received frames, are marked as "Not Valid" to indicate that the corresponding frames have been sent out. NextCount is then incremented to a value that is greater bv one than the Count value of the latest frame, and the multiplexer waits for the next frame to arrive. On the other hand, if multiplexer 34 receives a frame whose Count value matches NextCount, that frame is immediately sent to computer 24, and the corresponding entry in the pool is marked as Not Valid. The frame timer is stopped, while the remaining entries in the pool are checked to determine whether they should be sent, as well. For each entry, NextCount is incremented, and the corresponding entry in the pool is checked to determine whether it holds a valid pending frame. If so, this frame is sent to the computer, and the next entry in the pool is similarly checked, continuing until an invalid entry is found. At this point, if the pool is not empty, i.e., if there are still valid entries left in the pool, the timer is restarted. (If the pool is empty, the timer need not be restarted, until a further data frame arrives.) Multiplexer 34 then waits for the next frame. If the timer expires before a frame has been received, the entry in the pool corresponding to the current value of NextCount is marked as Not Valid. NextCount is incremented, and the corresponding next entry in the pool is checked to determine whether it holds a valid pending frame. The process of checking the entries in the pool then continues, as described above. Multiplexer 34 continues cycling through step 72, as shown in Fig. 4, as long as unit 30 continues to receive data. Although preferred embodiments are described hereinabove with reference to cellular communications, it will be understood that the principles of the present invention may similarly be applied to other types of wireless communications systems, such as Personal Communication Systems (PCS) and satellite systems, as well as to terrestrial communications. It will thus be appreciated that the preferred embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled m the art upon reading the foregoing description and which are not disclosed in the prior art. I CLAIM:

Claims: CLAIMS 1. A wireless data cornmunication unit, comprising: a data interface, adapted to receive data from a first computer for transmission to a second computer having a similar wireless data communication unit, and to convey data received from the second computer to the first computer; a plurality of wireless communication transceivers, adapted to communicate over respective wireless links with corresponding transceivers in the communication unit of the second computer; and a multiplexer, which is adapted to distribute the data received by the data interface from the first computer among the plurality of transceivers for transmission thereby over the respective links, and to assemble the data received from the second computer over the links into a single, ordered stream of data to be conveyed by the data interface to the first computer. 2. A unit according to claim 1, wherein the plurality of wireless communication transceivers comprise cellular transceivers, and wherein the wireless links are made over a cellular communications network. 3. A unit according to claim 2, wherein to establish the wireless links, each of the transceivers places a call over the cellular communications network to the corresponding transceiver in the communication unit of the second computer. 4. A unit according to claim 1, wherein the data interface is adapted to be coupled to the first computer in a manner that emulates a standard data modem. 5. A unit according to claim 4, wherein the data interface comprises a RS-232 interface. 6. A unit according to claim 4, wherein the data are transmitted and received by an application running on the first computer using a standard point-to-point protocol, as though only a single link were operative between the first and second computers. 7. A unit according to claim 1, wherein the data received from the ? first computer are divided into frames, and wherein the multiplexer adds a numbering layer to the frames, in accordance with which the frames 4 transmitted over the links are assembled into the single, ordered stream. 8. A method for wireless data communications, comprising: 2 inputting data from a first computer for transmission to a second computer 4 establishing a plurality of wireless communication links between a corresponding plurality of pairs of transceivers, each pair comprising a first 6 transceiver coupled to the first computer and a second transceiver coupled to the second computer; 8 multiplexing the data received from the first computer so as transmit respective portions of the data over the plurality of wireless communication 0 links in parallel; receiving the data transmitted over the plurality of wireless 2 communication links; and assembling the received data into a single, ordered stream of data to be 4 output to the second computer. 9. A method according to claim 8, wherein establishing the plurality 2 of wireless communication links comprises establishing bidirectional links, such that data are also transmitted from the second computer to the first computer 4 over the plurality of links. 10. A method according to claim 8, wherein establishing the plurality 2 of wireless communication links comprises establishing the links over a cellular communications network. 11. A method according to claim 10, wherein establishing the links 2 comprises placing a plurality of calls over the cellular communications network. 12. A method according to claim 11, and comprising monitoring the 2 calls so as to determine when one of the links becomes non-operational, wherein establishing the links comprises placing a call to re-establish the non- 4 operational link. 13 A method according to claim 8, wherein inputting the data from i the first computer comprises emulating a standard data modem coupled to the first computer. 14 A method according to claim 13, wherein emulating the standard 2 data modem comprises receiving serial data input from the first computer. 15. A method according to claim 13, wherein inputting the data 1 comprises receiving data from an application running on the first computer using a standard point-to-point protocol, as though only a single link were 4 operative between the first and second computers. 16. A method according to claim 8, wherein inputting the data 2 comprises receiving frames of data from the first computer, and wherein multiplexing the data comprises adding a numbering layer to the frames, in 4 accordance with which the frames transmitted over the links are assembled into the single, ordered stream. 17. A method according to claim 16, wherein assembling the received 2 data comprises reordering the received frames in accordance with the numbering layer and removing the numbering layer from the frames, so that an 4 application running on the second computer receives the data as though only a single link were operative between the first and second computers.

Inventors: BOGER ITSIK, BOGER, ITSIK
Applicants: QUALCOMM INC, QUALCOMM INCORPORATED
Application year: 2001
Main classification: H04B7
IPC codes: H04L12, H04L25, H04L29, H04W72, H04W84