Abstract:
The present invention relates to a communication device ( 9 ) and a method that are capable of downloading and upgrading terminal software of the device ( 9 ) over-the-air in a efficient and fail-safe manner. The method for providing such a communication device ( 9 ) with radio software from a server ( 1 ) via a wireless network ( 19 ) including a number of access networks ( 5, 7 ) comprises the steps of: initiating a download of radio software of a first radio access technology ( 15, 17 ) of the communication device ( 9 ); selecting a radio access technology ( 15, 17 ) of the communication device ( 9 ) for downloading the software; downloading the radio software via the available radio access technology ( 15, 17 ), wherein the radio software designed for the first radio access technology ( 15, 17 ) is stored in a memory space of the storing means ( 13 ). Furthermore, the present invention relates to a system in a wireless network ( 19 ) including such a communication device and a computer readable medium comprising instructions for executing the method according to the present invention.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates in general to the field of wireless communications, and in particular to a communication device and a method that are capable of downloading and upgrading terminal software of the device over-the-air in a efficient and fail-safe manner. Furthermore, the present invention relates to a system in a wireless network including such a communication device and a computer readable medium comprising instructions for executing the method according to the present invention. 
       BACKGROUND OF THE INVENTION 
       [0002]    The explosive growth in telecommunication in general, and in the area of wireless communication in particular requires more and more frequent updates of the software applications included in the communication devices, for example, radio interfaces. Another trend also contributing to this development is the ever increasing trend of providing the communication devices with more and more functionality, for example, multiple radio access technologies (RATs), e.g. WCDMA, GSM/GPRS, WLAN, Bluetooth, IEEE 802.11a, or IEEE 802.11b. Given the heterogeneity of functionality wireless networks often have to gradually introduce new functionality into their networks, or modify existing functionality. However, it is then required that the communication devices (e.g. mobile terminals) already present in the network are capable to operate in the new network, i.e. that they are interoperable with the new network, after that the new functionality in the network has been introduced. In addition to the above-mentioned, the users desire access to the latest versions of the software applications in his or hers communication device, e.g. mobile terminals or laptops, even if it is not required from a technical point of view, which is an important factor also influencing this rapid development. However, a problem is when existing communication devices need to update or receive a software application (e.g. wireless e-mail, operating system) and software for operating or configuring a certain RAT (e.g. terminal-network communication protocols, algorithms and data processing functions). Typically, the communication device is taken into a service centre to update or receive an application so that the communication device can provide a service associated therewith. This is time consuming and also expensive. 
         [0003]    A number of solutions has been proposed in order to solve this problem. In U.S. Pat. No. 6,052,600 a radio, for example, a cellular phone comprising a dedicated downloading channel for downloading and upgrading terminal software of the radio is disclosed. Thereby, it is not necessary to bring the radio to the communication centre in order to upgrade of receive software included in the radio. For example, software for configuring the cellular phone to operate as a CDMA phone or as a GSM phone. 
         [0004]    Nevertheless, the radio and method described in U.S. Pat. No. 6,052,600 is associated with a number of problems and/or limitations. Firstly, a double memory may be needed. In other words, memory space taken up by the current software version cannot be freed until the new version has been properly downloaded since (at least parts of) the old version is in use during the download process. Secondly, resources that may be needed for other communication (normal traffic) is occupied by the software download process. If parts of the old software stored in the memory is over-written (in order to save memory) by the downloaded update, it may be impossible to perform the other communication at all during the download process. Finally, installation of the new software may fail. Errors not discovered before the old software has been removed may result in a non-functioning radio interface, which is impossible to repair through over-the-air upgrade (using erroneous radio functionality). 
         [0005]    Thus, there is a need for a communication device and a method for a communication device that are capable of downloading and upgrading terminal software of the device over-the-air, i.e. without bringing it to a service centre, in a efficient and fail-safe manner. 
       BRIEF DESCRIPTION OF THE INVENTION 
       [0006]    An object of the present invention is to provide a communication device and a method that are capable of downloading and upgrading terminal software of the device over-the-air in a efficient and fail-safe manner. This and other objects are achieved according to the present invention by a communication device and method having the features defined in the independent claims. Preferred embodiments are defined in the dependent claims. 
         [0007]    In the context of the present invention, the term communication device refers to a software programmable wireless communication terminal. A communication device may receive, transmit, or both using either simplex or duplex communication techniques. A communication device can be, for example, a cellular phone, a computer with a modem, a pager, or personal digital assistant. Furthermore, the term wireless network should be interpreted broadly as a communication principle more than an actual network. 
         [0008]    According to a first aspect of the invention, there is provided a method for providing a communication device with radio software from a server via a wireless network including a number of access networks, the communication device being arranged to operate in the wireless network and comprising a transceiver for receiving the radio software and storing means comprising at least two radio access technologies for communication with corresponding access networks of the wireless network, comprising the steps of: initiating a download of radio software of a first radio access technology of the communication device; selecting a radio access technology of the communication device for downloading the software; downloading the radio software via the available radio access technology, wherein the radio software designed for the first radio access technology is stored in a memory space of the storing means. 
         [0009]    According to a second aspect of the invention, there is provided a communication device arranged to operate in a wireless network including a number of access networks, comprising a transceiver for receiving radio software from a software download server via the wireless network; storing means comprising at least two radio access technologies for communication with corresponding radio access networks of the wireless network comprising: controlling means for controlling the operation of the transceiver and the storing means and arranged to select a radio access technology for downloading of radio software for a first radio access technology of the communication device; and wherein the radio software of the first radio access technology is downloaded via the selected radio access technology and stored in a memory space of the storing means. 
         [0010]    According to a third aspect of the present invention there is provided a system in a wireless network including a number of access networks, comprising a software download server connected to the wireless network and at least one communication device according to the second aspect of the invention. 
         [0011]    According to a further aspect of the invention there is provided a computer readable medium comprising instructions for bringing a programmable device to perform the method according to the first aspect of the invention. 
         [0012]    The present invention is based on the idea of utilizing the in-built functionality of a communication device, i.e. the multiple radio access technology, at the downloading or upgrading of software of one radio access technology of the device. In other words, the basic principle of the present invention is to download or upgrade software intended for one radio access technology over an available radio access technology supported by the device. 
         [0013]    This solution provides several advantages over the existing solutions. One advantage is that the in-built functionality of the communication device is utilized and thereby the communication device does not have to be provided with any dedicated downloading channel for downloading and upgrading the terminal software. Furthermore, the software download can be performed as a background process that does not have to be coordinated with, or blocking, other types of traffic including data, control traffic, or wireless services. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0014]    Above-mentioned and other features and advantages of the present invention will be apparent from the following detailed description of preferred embodiments, merely exemplifying, in conjunction with the attached drawing, wherein: 
           [0015]      FIG. 1  schematically shows the principle of the present invention; 
           [0016]      FIG. 2  is a flow chart of the downloading procedure according to a first embodiment of the present invention; 
           [0017]      FIG. 3  is a flow chart of the downloading procedure according to a second embodiment of the present invention; 
           [0018]      FIG. 4   a  is a flow chart of steps of the verification procedure in the communication device according to one embodiment of the present invention; 
           [0019]      FIG. 4   b  is a flow chart of steps of the verification procedure in the communication device according to the embodiment of the present invention shown in  FIG. 4   a;    
           [0020]      FIG. 5   a  is a flow chart of steps the triggering procedure in the server according to a first embodiment of the present invention; 
           [0021]      FIG. 5   b  is a flow chart of steps the triggering procedure in the communication device according to a first embodiment of the present invention; 
           [0022]      FIGS. 6   a - 6   b  is a flow chart of the triggering procedure according to a second embodiment of the present invention; and 
           [0023]      FIGS. 7   a - 7   b  is a flow chart of the triggering procedure according to a third embodiment of the present invention. 
       
    
    
     DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0024]    The present invention provides a method and a communication device adapted for operation in a wireless network. The network primarily includes at least one communication device, at least one base station, and a server. For the sake of simplicity, the at least one base station will not be discussed in the forthcoming description since its functioning and interaction with other parts of the network is well known for the man skilled in the art. It should however be noted that the wireless network, in turn, can comprise a number of wireless sub-networks, for example, access networks such as WLAN. 
         [0025]    With reference first to  FIG. 1 , the main principle of the present invention will be described.  FIG. 1  shows a simplified block diagram of a wireless network in which the present invention may be provided. According to one embodiment of the present invention, the wireless network  19  includes a software download server  1 , for example, located at a service centre is connected to a backbone network  3 , which, in turn, is connected to different wireless access networks  5  and  7 . Such access networks can, for example, be access networks for WCDMA, GSM/GPRS, WLAN, or Bluetooth. A communication device  9  comprising a transceiver  11  for receiving, for example, software transferred from the server  1 , a memory  13 , initiating means  16  arranged to initiate or trigger a software download, and a controller  18  for controlling, for example, the download process of the software in the communication device  9 . The controller  18  is, inter alia, arranged to select a radio access technology for downloading of the radio software. According to a preferred embodiment of the present invention, a first radio access technology  15 , for example, WLAN, and a second radio access technology  17 , for example, WCDMA are implemented in the memory and in software configured hardware  13 . Of course, there are other conceivable embodiments, for example, three radio access technologies can be implemented in the memory  13 . The controller  18  is connected to the transceiver  11 , the memory  13 , and means for initiating a downloading process  16 . 
         [0026]    The main principle of the downloading process is the following. A download of software, for example, configuration information of a RAT of the communication device  9  can be initiated or triggered by a request from the communication device  9 , the server  1 , or an access network  5  or  7 , which starts the download process as will be described further below with reference to  FIGS. 5-7 . In the example shown in  FIG. 1 , software for the first RAT  15  is the subject for the download. Thereafter, when it is verified that the software version of the first RAT  15  is not up to date with the corresponding software included in the software download server  1 , a RAT of the communication device available for downloading is identified. This verification procedure will also be described with reference to  FIGS. 5-7  and as it will be explained it may differ depending on how the download procedure was triggered. In order to find an available RAT, a checking or selecting process is performed, which will be described below with reference to  FIGS. 2 and 3 . It should be noted however that the second RAT is not implemented with a sole purpose of serving a download interface, but as a communication interface. Accordingly, the first RAT  15  could be a technology that includes software designed for WLAN that may be used for communication in local hotspots area, while the second RAT  17  can be a technology that includes software designed for WCDMA with continuous coverage. In this case, the second RAT  17  is found to be available for download in the above-mentioned procedure. Subsequently, the software is downloaded wirelessly via the access network  5  for the second RAT  17 . During the downloading of the software, the software is stored in the memory  13 , which will be described in more detail with reference to  FIGS. 2 and 3 . 
         [0027]    Turning now to  FIG. 2 , the downloading procedure according to a first embodiment of the present invention will be described. Initially, at step  20 , the means for initiating  16  a downloading process of the communication device  9  is in an idle state. However, other means of the device may be in operation, for example, the first RAT  15  can be in a communication state via the access network for the first RAT  15 . At step  21 , a download of software of a new version of software from the server  1  for the first RAT  15  is triggered. A downloading process may be triggered in a number of different ways, which will be described with reference to  FIGS. 5-7 , for example by means of the initiating means  16 . Thereafter, at step  22 , a check whether the second RAT  17  of the communication device  9  is available for download is performed, i.e. whether the RAT  17  is occupied by; for example, a communication process. If the communication device  9  comprises three or more RAT&#39;s, all of these are of course included in the above-mentioned checking process. If the second RAT  17  is identified as available, the download  18  is, at step  23 , performed via the backbone network  3 , the access network  5  of the second RAT, and the second RAT  17  and during the download the software is stored in a memory space allocated for the first RAT  15 . Preferably, the old version of the first RAT  15  currently stored in the memory  13  is over-written during the downloading process. Thereby, memory space can be saved. On the other hand, if the second RAT  17  is found to be occupied by another process thereby making a download of software via RAT  17  very slow or even impossible, a check whether the first RAT  15  is in use is performed at step  24 . If the first RAT  15  is identified to be in use, the downloading process is, at step  25 , inhibited. 
         [0028]    If, on the other hand, the first RAT  15  is not in use, the download is executed, at step  26 , via the backbone network  3 , the access network of the first RAT  7 , and the first RAT  15  and the software is stored in a memory space allocated for the first RAT  15 . Preferably, the old version of the first RAT  15  currently stored in the memory  13  is over-written with the new version during the downloading process. Thereby, memory space can be saved. 
         [0029]    Preferably, when the download is completed, a test to verify that the software of the first RAT  15  has been properly installed, or to identify whether the downloaded software is erroneous is performed. If it is found that the new version of the RAT, in this example the first RAT  15 , does not operate correctly, an error handling process is initiated. The error handling process may be, for example, to repeat the downloading process in order to achieve a successful downloading of the software. This test process will be described in more detail with reference to  FIG. 4 . 
         [0030]    With reference now to  FIG. 3 , the downloading procedure according to a second embodiment of the present invention will be described. Initially, at step  30 , the means for initiating a downloading process of the communication device  9  is in an idle state. However, other means of the device may be in operation, for example, the first RAT  15  can be in a communication state via the access network for the first RAT  7 . At step  31  a download of software from the server  1  for the first RAT  15  is triggered. A downloading process may be triggered in a number of different ways, which will be described with reference to  FIGS. 5-7 . 
         [0031]    Thereafter, at step  32 , a check whether the second RAT  17  of the communication device  9  is available for download is performed, i.e. whether the RAT  17  is occupied by, for example, a communication process. If the communication device comprises three or more RATs, all of these are of course included in the above-mentioned checking process. If the second RAT  17  is identified as available, the download  18  is, at step  33 , performed via the backbone network  3 , the access network of the second RAT  5 , and the second RAT  17  and during the download the software is stored in a memory space allocated for the first RAT  15 . Preferably, the old version of the first RAT  15  currently stored in the memory  13  is over-written during the downloading process. Thereby, memory space can be saved. 
         [0032]    If, on the other hand, the second RAT  17  is found to be occupied by another process thereby making a download of software via RAT  17  very slow or even impossible, a check whether the first RAT  15  is in use is performed at step  34 . If the first RAT  15  is identified to be in use, a check whether there is enough free memory in the memory space allocated for the first RAT  15  to allow a download via the first RAT  15  without interfering and/or interrupting the other processes of the communication device  9  is performed at step  35 . If this check yields that there is enough memory in the allocated memory space available, the downloading is, at step  37 , executed via the backbone network  3 , the access network of the first RAT  7 , and the first RAT  15  and during the download the software is stored in the free memory space allocated for the first RAT  15  identified in step  35 . In this case, the old version can not be over-written by the new version since the RAT  15  is in use. 
         [0033]    If, on the other hand, it is found during this check that there is not enough free memory in the memory allocated for the first RAT  15 , the downloading is, at step  38 , inhibited. If the first RAT however is not in use, the download is, at step  36 , executed via the backbone network  3 , the access network of the first RAT  7 , and the first RAT  15  and during the download the software is stored in the memory space allocated for the first RAT  15 . Preferably, the old version of the first RAT  15  currently stored in the memory  13  is over-written with the new version during the downloading process. Thus, memory space can be saved. 
         [0034]    Turning now to  FIGS. 4   a  and  4   b , a description will be given of the verification process or test process according to one embodiment of the present invention for determining whether the downloading of software was successful, i.e. whether the downloaded software is functioning in a proper way. At step  40 , the client, which in this case is the communication device  9 , initiates the verification procedure at completion of the software download. The client may, for example, be in an idle state at the beginning of this step. Thereafter, at step  42 , a local test procedure is performed. According to one embodiment, this step comprises the following tests performed in a sequence:
       Cyclic redundancy test (CRC) of the downloaded data or software.   A built-in self-test (BIST) of the software configured hardware logic of the device.   A loop-test of the software (e.g. protocol messages).       
 
         [0038]    As the skilled man realizes, there are a number of different local tests that can be performed instead of the above described. 
         [0039]    At step  42 , an error handling procedure is performed if any one of these tests fail. In accordance with embodiments of the present invention, this error handling procedure comprises the downloading procedure described with reference to  FIG. 2  or  3 . 
         [0040]    Subsequently, at step  43 , if the local test succeeded, a test message is sent via the first RAT  15 , the access network  7 , and the backbone network  3  to the software download server  1 . At step  49 , the server is in an idle state, and, at step  50 , the server receives the test message. Then, at step  51 , a check is performed whether the test message is correctly received. If no, at step  52 , the server initiates an error handling procedure as described above. On the other hand, if yes, at step  53 , the server  1  sends a confirmation message as a reply of the test message to the communication device  9  via the backbone network  3 , the access network  7 , and the first RAT  15 . Thereafter, at step  54 , the server returns to the initial state, which in this case is an idle state. Then, at step  44 , a check whether the confirmation message has been received by the communication device  9  within a predetermined period of time T. This predetermined period of time may extend from a few seconds to several hours depending of, for example, the hardware of the communication system. If the confirmation message is not received correctly by the communication device  9  within the predetermined period of time T, an error handling procedure as discussed above is initiated at step  45 . This period of time is counted from the transmission of the test message until recipient of the confirmation message. On the other hand, if the confirmation message is received correctly by the communication device  9  within the predetermined period of time T, the software download is considered successful. Then, at step  46 , a check whether the content of the confirmation message is correct is performed. If yes, the client returns, at step  48 , to the initial state, which may be an idle state, and if no, an error handling procedure as discussed above is initiated at step  47 . When, at step  48 , the downloaded software is found to be functioning properly, the old software or the parts of the old software not yet over-written can finally be over-written. 
         [0041]    With reference now to  FIGS. 5   a  and  5   b , the initiating or triggering procedure according to a first embodiment of the invention will be described. In this embodiment the downloading is initiated by the server. First, at step  60 , the server is in an idle state. Then, at step  61 , the server receives a new version of software for the first RAT  15 , which can be a WLAN that may be used for communication in local hotspots area. As an example, the operator of the network at which the communication device  9  is connected to implements the new or updated version of the software for the first RAT  15  in the server  1 . Thereafter, at step  62 , the server  1  sends a polling message to the client, i.e. the communication device  9 , which may be in an idle state, see step  63 . The message is sent over the access network and RAT with which the communication device is currently associated. Upon receipt of the polling message, at step  64 , the client, at step  65 , responds with an indication message including information of the current software version of the first RAT. Thereafter, at step  70 , the communication device  9  returns to idle state. Then, at step  66 , the server  1  receives the indication message from the communication device  9 . Subsequently, at step  67 , a check is performed whether the software of the first RAT is up to date with the latest or newest version of corresponding software of the server. However, there may be several versions of the software available in the server  1 , each comprising different features and in this case a selection can be done in order to choose one of the versions. If no, at step  68 , a download procedure according to the description above is started or initiated. Then, at step  69 , the server returns to the idle state. On the other hand, if the software version of the first RAT is found to be up to date the server returns to the idle state at step  69 . 
         [0042]    Referring now to  FIGS. 6   a  and  6   b , the initiating or triggering procedure according to a second embodiment of the invention will be described. Initially, at step  80 , the client, i.e. in this case the communication device  9 , is in an idle state. Then, at step  81 , the triggering procedure is initiated by the user, which may be due to a need or desire for a new or updated version of the software of a specific RAT of the communication device  9 , or by an internal instruction of the device itself by requesting the communication device  9  to update the software of a specific RAT included in the communication device  9  utilizing the initiating means  16  of the communication means  9 . Subsequently, at step  82 , the communication device  9  sends a software inquiry message indicating the current software version of the specified RAT to the server  1  via an arbitrary RAT of the communication device  9  and backbone network  3 . After that, at step  83 , the communication returns to an idle state. Initially, at step  84 , the server  1  is in an idle state, and at receipt of the software inquiry message, at step  85 , the server  1  is set in active state. Then, at step  86 , a check is performed whether the software of the specific RAT is up to date with the latest or newest version of corresponding software of the server. However, there may be several versions of the software available in the server  1 , each comprising different features and in this case a selection can be done in order to choose one of the versions. If no, at step  87 , a download procedure according to the description above is initiated. Then, at step  88 , the server returns to the idle state. On the other hand, at step  88 , if the software version of the first RAT is found to be up to date the server returns directly to the idle state. 
         [0043]    With reference now to  FIGS. 7   a  and  7   b , the initiating or triggering procedure according to a third embodiment of the invention will be described. In this embodiment, the client, i.e. in this case the communication device  9 , will be in an idle state during the triggering procedure. The procedure is initiated by a software check of a RAT of the communication device  9 , which check in this case is a part of the normal association procedure between the client and the access network of the RAT. For example, if the communication device connects to a WLAN the software of the corresponding RAT of the communication device  9  is checked. Initially, at step  90 , a specific access network is in an idle state. Then, at step  91 , as part of the association procedure the access network performs a check of the software of the corresponding RAT of the communication device, i.e. retrieve information regarding the current software version. Thereafter, at step  92 , the access network sends a software inquiry message to the server  1  via the backbone network  3 , and, at step  94 , returns to the idle state. Initially, at step  94 , the server  1  is in an idle state, and at receipt of the software inquiry message, at step  95 , the server  1  is set in active state. Then, at step  96 , a check is performed whether the software of the specific RAT is up to date with the latest or newest version of corresponding software of the server. However, there may be several versions of the software available in the server  1 , each comprising different features and in this case a selection can be done in order to choose one of the versions. If no, at step  97 , a download procedure according to the description above is initiated. Then, at step  98 , the server returns to the idle state. On the other hand, at step  98 , if the software version of the first RAT is found to be up to date the server returns directly to the idle state. 
         [0044]    Although specific embodiments have been shown and described herein for purposes of illustration and exemplification, it is understood by those of ordinary skill in the art that the specific embodiments shown and described may be substituted for a wide variety of alternative and/or equivalent implementations without departing from the scope of the invention. Those of ordinary skill in the art will readily appreciate that the present invention could be implemented in a wide variety of embodiments, including hardware and software implementations, or combinations thereof. As an example, many of the functions described above may be obtained and carried out by suitable software comprised in a micro-chip or the like data carrier. This application is intended to cover any adaptations or variations of the preferred embodiments discussed herein. Consequently, the present invention is defined by the wording of the appended claims and equivalents thereof and the invention is not to be regarded as limited to only the structural or functional element described in the embodiments, but to the attached claims.