Abstract:
One aspect provides a modem for use at a terminal. The modem comprises a first interface, a second interface, and a processing unit. The first interface is arranged to connect to a network. The second interface is arranged to connect to a host processor on the terminal. The processing unit is arranged to perform a procedure to attempt to connect to the network via the first interface. The processing unit is also arranged to receive an indication of an operating mode that the host processor is operating in from the host processor via the second interface, where the operating mode is one of a plurality of operating modes. The processing unit is further arranged to, in the event of failure of the procedure, repeat performing the procedure at a time controlled in dependence on the received indication.

Description:
TECHNICAL FIELD 
       [0001]    The present disclosure relates to a modem for use at a terminal. In particular the present disclosure relates to operating the modem to perform network searches in an attempt to retrieve service. 
       BACKGROUND 
       [0002]    In known communication systems a modem is used at a terminal to connect to a public land mobile network (PLMN) such as a mobile cellular network (i.e., a 3GPP network or other CDMA network). 
         [0003]    There are a number of situations in which the modem is unable to obtain normal service from the PLMN. In these situations the modem attempts to camp on an acceptable cell, irrespective of its PLMN identity, so that emergency calls can be made if necessary. If this attempt is successful then the modem enters a “limited service” state in which it can only attempt to make emergency calls. If this attempt is unsuccessful then the modem will not have network coverage of any kind. 
         [0004]    When the modem has no network coverage or is in the “limited service” state, the modem has to regularly perform network searches to try to retrieve full network service. These network searches are sometimes referred to as PLMN searches. The network searches consume battery power of the host terminal. In order to conserve battery life (reduce power consumption) a PLMN search timer which defines a minimum time interval between PLMN searches is increased gradually after a certain number of unsuccessful scans. After the modem has been without full network service for a long period of time, the time interval between PLMN searches can reach long time intervals. If a user tries to use the modem during one of these time intervals between PLMN searches it will fail even if the network coverage has become acceptable again. 
       SUMMARY 
       [0005]    One aspect provides a modem for use at a terminal. The modem comprises a first interface, a second interface, and a processing unit. The first interface is arranged to connect to a network. The second interface is arranged to connect to a host processor on the terminal. The processing unit is arranged to perform a procedure to attempt to connect to the network via the first interface. The processing unit is also arranged to receive an indication of an operating mode that the host processor is operating in from the host processor via the second interface, where the operating mode is one of a plurality of operating modes. The processing unit is further arranged to, in the event of failure of the procedure, repeat performing the procedure at a time controlled in dependence on the received indication. 
         [0006]    Another aspect provides a computer program product for operating a modem for use at a terminal. The modem has a processing unit, a first interface, and a second interface. The first interface is arranged to connect to a network. The second interface is arranged to connect to a host processor on the terminal. The computer program product comprises code embodied on a non-transitory computer-readable medium. The computer program product is configured to perform a procedure to attempt to connect to the network via the first interface. The computer program product is also configured to receive an indication of an operating mode that the host processor is operating in from the host processor via the second interface, where the operating mode is one of a plurality of operating modes. The computer is further configured to, in the event of failure of the procedure, repeat performing the procedure at a time controlled in dependence on the received indication. 
         [0007]    Yet another aspect provides a method of operating a modem at a terminal. The modem has a processing unit, a first interface, and a second interface. The first interface is arranged to connect to a network. The second interface is arranged to connect to a host processor on the terminal. The method comprises performing a procedure to attempt to connect to the network via the first interface. The method further comprises receiving an indication of an operating mode that the host processor is operating in from the host processor via the second interface, where the operating mode is one of a plurality of operating modes. The method further comprises, in the event of failure of the procedure, repeat performing the procedure at a time controlled in dependence on the received indication. 
         [0008]    Yet another aspect provides a system. The system comprises a terminal, a network, and a modem for use at the terminal. The modem comprises a first interface, a second interface, and a processing unit. The first interface is arranged to connect to a network. The second interface is arranged to connect to a host processor on the terminal. The processing unit is arranged to perform a procedure to attempt to connect to the network via the first interface. The processing unit is also arranged to receive an indication of an operating mode that the host processor is operating in from the host processor via the second interface, where the operating mode is one of a plurality of operating modes. The processing unit is further arranged to, in the event of failure of the procedure, repeat performing the procedure at a time controlled in dependence on the received indication. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which: 
           [0010]      FIGS. 1   a  and  1   b  are schematic block diagrams of communication systems comprising a host terminal and a modem; 
           [0011]      FIG. 2  is a schematic block diagram of a modem for use at a host terminal; 
           [0012]      FIG. 3  is a flow chart of a process for performing network searches; and 
           [0013]      FIG. 4  is a flow chart of a process for handling an event. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]    For computer systems implemented on user devices, such as mobile smart phones and tablets, it is important to keep the power consumption of the computer system at a low level because, for example, the power supply to the user device may be limited. One mechanism to conserve power supply levels is for the application processor on the host terminal to operate in a “sleep” mode. While in the low power (or sleep) mode the processor is unable to process information, but typically draws a fraction of the electrical current it draws while operating in an active (or awake) mode, where it does process information. Thus the application processor consumes less power when in the sleep mode. 
         [0015]    In known systems, whilst a host processor is in a sleep mode to reduce power consumption, the modem will still implement the known procedure referred to above in an attempt to retrieve network service when the modem has no network coverage or is in the “limited service” state. Whilst the known process referred to above attempts to conserve battery life (reduce power consumption) by gradually increasing the time interval t interval  between PLMN searches after a certain number of unsuccessful scans, the modem will still consume power performing the network searches. 
         [0016]    Whilst the application processor is in sleep mode (no user action, screen off, applications not running), recovering network service is not critical so PLMN search intervals can be optimized. 
         [0017]    Reference is first made to  FIG. 1   a  and  FIG. 1   b  which illustrate schematic block diagrams of communication systems comprising a host terminal  2  and a modem  4 . The host terminal  2  may be a user terminal, and may for example take the form of a laptop computer, tablet style computer, personal digital assistant (PDA) or mobile phone (which may be referred to as a “smart phone”). As shown in  FIG. 1   a , the modem  4  may for example take the form of a dongle for plugging into the host terminal  2  such that the modem  4  is connected to a host processor  30  (otherwise referred to as an application processor) of the host terminal  2 . Alternatively the modem  4  may take the form of a mobile phone handset which, as well as being a conventional mobile telephone, can be connected to the host terminal  2  so as to act as an external cellular modem for the host terminal  2 . As shown in  FIG. 1   a , the modem  4  may be external to the host terminal  2  in that it is a separate unit housed in a separate casing, but which is connected or connectable to the host processor  30  of the host terminal  2  by means of a wired or wireless connection (as well as being removable or being able to be disconnected from the host terminal  2 ). In another alternative set up, as shown in  FIG. 1   b , the modem  4  may be internal to the host terminal  2 , e.g., taking the form of a wireless module in the host terminal  2 . For example, both the modem  4  and host processor  30  may be housed within the same casing of the host terminal  2 . For example the modem  4  may be internal to a mobile phone  2 , and connected to the host processor  30  of the mobile phone  2  by way of a wired connection. The system could also be a single-chip design where the modem  4  and application processor  30  share the same die. 
         [0018]    The system also comprises a PLMN  6  such as a mobile cellular network (i.e., 3GPP network or other CDMA network). Elements of the network  6  are well known to those skilled in the art and are not discussed herein. 
         [0019]    For connecting to the network  6 , the modem  4  comprises a first interface. 
         [0020]    With reference to the communication system shown in  FIG. 1   a , the first interface may comprise a wireless transceiver, typically in the form of a radio frequency (RF) transceiver and an antenna  5 . The first interface of the modem connects via an antenna (not shown) of the mobile cellular network  6  enabling the modem  4  to establish a channel between itself and the mobile cellular network  6 . 
         [0021]    With reference to the communication system shown in  FIG. 1   b , the first interface may comprise a wired connection to an interface on the host terminal. The interface on the host terminal may comprise a wireless transceiver, typically in the form of a radio frequency (RF) transceiver and an antenna  5 . The interface on the host terminal  2  connects via an antenna (not shown) of the mobile cellular network  6  enabling the modem  4  to establish a channel between itself and the mobile cellular network  6 . 
         [0022]    This channel referred to above may be referred to as a “context”. For example, if the mobile cellular network is a 3GPP network, then the connection between the modem  4  and a 3GPP network  6  may be called a PDP (Packet Data Protocol) context in 2G or 3G terminology, and an EPS (Evolved Packet System) bearer context in LTE (Long Term Evolution standards) terminology. The physical medium of the connection is typically a radio channel such as a 2G, 3G or LTE radio channel and the protocol that drives it may comprise a set of protocol layers as defined for example by 3GPP standard specifications. The mobile cellular network  6  may be coupled to a further, packet-based network, preferably a wide area internetwork such as the Internet, by way of one or more gateway routers. 
         [0023]    For connecting to the host processor  30  on the host terminal  2 , the modem  4  comprises a second interface. 
         [0024]    With reference to the communication system shown in  FIG. 1   a , the second interface, between the host processor  30  and modem  4 , could for example comprise a wired connection such as a serial interface, for example a Universal Serial Bus (USB), or a short-range wireless transceiver such as an infrared connection or a radio frequency connection (e.g. Bluetooth). 
         [0025]    With reference to the communication system shown in  FIG. 1   b , the second interface, between the host processor  30  and modem  4 , could for example comprise a wired connection within the host terminal  2 . The second interface may be an interface to a shared memory on the host terminal  2 . That is, the host processor  30  and modem may communicate with each other through this shared memory. 
         [0026]    Referring to  FIG. 2 , the modem  4  may comprise a processor  33  and, operatively coupled to the processor  33 , a non-transitory computer-readable storage medium  34  such as a magnetic or electronic memory storing soft-modem code  35 . The code  35  on the storage medium  34  is arranged to be executed on the processor  33 , so as when executed to send and receive packets between the host  2  and network  6 , and to perform the additional operations of the modem  4  as discussed below. However, the possibility of some or all of the modem functionality being implemented in dedicated hardware is not excluded. The modem  4  may be configured in a similar manner to that discussed in relation to  FIG. 1  above, but with additional functionality added in accordance with the present invention, an example of which will be discussed in more detail below. 
         [0027]      FIG. 3  is flow chart of a process  300  for performing network searches. The process  300  is initiated when the modem  4  has no network coverage or is in the “limited service” state. 
         [0028]    The modem  4  is arranged to receive events from the application processor  30  via the second interface  32 . When the device  2  is first powered on, the application processor  30  is in an active mode and the application processor  30  transmits an event to the modem  4  indicating that the application processor  30  is in the active mode. The modem  4  may receive an event from the application processor  30  which indicates that the application processor  30  is entering a sleep mode from the active mode. The modem  4  may also receive an event from the application processor  30  which indicates that the application processor  30  has entered the active mode from the sleep mode. When the modem  4  receives an event from the application processor it is arranged to update a parameter “latest event” held by the modem in memory  34  which indicates whether the application processor  30  is in the active mode or in the sleep mode. These events may be received by the modem  4  via the second interface  32  in the form of an AT (ATtention) command. The handling of these events by the modem  4  is described in more detail below. 
         [0029]    When the process  300  is initiated the application processor  30  may be in an active mode or in a sleep mode. Thus, when the process  300  is initiated the parameter “latest event” held by the modem in memory  34  may indicate that the application processor  30  is the active mode or in the sleep mode. 
         [0030]    At step S 302  the parameter t interval  which defines a minimum time interval between PLMN searches is initialized to a predetermined value. For example, the parameter t interval  may be initialized to 20 seconds, this is merely an example and is not intended to be limiting in any way. The process then proceeds to step S 304  where the modem  4  performs a network search in an attempt to retrieve service from network  6 . Initial cell search procedures are well known to persons skilled in the art and are therefore not discussed in detail herein. 
         [0031]    After performing the network search at step S 304  a timer t count , which is used to indicate the time since a network search was performed, is started and the process proceeds to step S 308 . At step S 308  the modem determines whether the network search performed at step S 304  was successful, i.e., whether the modem  4  was able to find a suitable cell of network  6  to camp on. If the network search performed at step S 304  was successful then the process proceeds to step S 310  at which the modem completes the camping process as is known to persons skilled in the art and therefore not discussed in detail herein. 
         [0032]    If the network search performed at step S 304  was not successful then the process proceeds to an optional step S 312 . At step S 312  the modem determines whether the number of unsuccessful scans since not having full network coverage has reached a predetermined threshold number of unsuccessful scans. The predetermined threshold number can be any integer value greater than or equal to one. 
         [0033]    If at step S 312 , the modem  4  determines that the number of unsuccessful scans since not having full network coverage has not reached a predetermined threshold number of unsuccessful scans then the process proceeds to step S 314 . At step S 314  the process waits until t count  is greater than or equal to t interval  before proceeding to step S 320  where the timer t count  is reset before performing a further network search at S 304 . 
         [0034]    If at step S 312 , the modem  4  determines that the number of unsuccessful scans since not having full network coverage has reached a predetermined threshold number of unsuccessful scans then the process  300  proceeds to step S 316 . 
         [0035]    Step S 312  is optional in the sense that the process  300  may be configured to always proceed from step S 308  to step S 316  when the network search performed at step S 304  is unsuccessful. This is equivalent to setting the predetermined threshold number of unsuccessful scans at step S 312  to one. 
         [0036]    At step S 316 , the modem  4  checks the parameter “latest event” held by the modem in memory  34  to check the operating mode of the application processor  30 . 
         [0037]    If the modem  4  determines that the parameter “latest event” held by the modem in memory  34  indicates that the application processor  30  is in active mode the process  300  proceeds to step S 318  at which t interval  is incremented by a predetermined period of time, t small . That is, at step S 318  a constant (t small ) is added to t interval  (this may be the initialized value of t interval  or a value of t interval  that has already been incremented) to arrive at a new value of t interval . The process  300  then proceeds to step S 314 , at step S 314  the process  300  waits until t count  is greater than or equal to t interval  (i.e., the incremented time interval) before proceeding to step S 320  where the timer t count  is reset before performing a further network search at S 304 . 
         [0038]    If at step S 316  the modem  4  determines that the parameter “latest event” held by the modem indicates that the application processor  30  is in sleep mode the process proceeds to step S 317 . 
         [0039]    At step S 317  the modem  4  optimizes the PLMN search interval. For example, at step S 317  the interval, t interval , is incremented by a period of time t big , wherein t big &gt;t small . That is, at step S 317  a constant (t big ) is added to t interval  (this may be the initialized value of t interval  or a value of t interval  that has already been incremented) to arrive at a new value of t interval . The process  300  then proceeds to step S 314 . At step S 314  the process  300  waits until t count  is greater than or equal to t interval  (i.e., the incremented time interval) before proceeding to step S 320  where the timer t count  is reset before performing a further network search at S 304 . 
         [0040]    Whilst  FIG. 3  illustrates an arithmetic progression of the interval, t interval , at step S 318  using the constant t small  whilst the application processor  30  is in the active mode and at step S 317  using the constant t big  whilst the application processor  30  is in the sleep mode. In an alternative embodiment, a geometric progression of the interval, t interval  may be implemented at step S 318  whilst the application processor  30  is in the active mode and at step S 317  whilst the application processor  30  is in the sleep mode. 
         [0041]    In this alternative embodiment, whilst the application processor  30  is in the active mode, at step S 318  a constant (X small ) is multiplied with t interval  (this may be the initialized value of t interval  or a value of t interval  that has already been incremented) to arrive at a new value of t interval . Whilst the application processor  30  is in the sleep mode, at step S 317  a constant (X big ) is multiplied with t interval  (this may be the initialized value of t interval  or a value of t interval  that has already been incremented) to arrive at a new value of t interval , wherein X big &gt;X small . 
         [0042]    In accordance with the process  300 , whilst the application processor  30  is in sleep mode the power consumption of the device  2  is optimized by optimizing the interval between PLMN searches. 
         [0043]    Whilst performing the process  300 , the modem  4  may receive an event (e.g., an AT command AT+CSLEEP) from the application processor  30  which indicates that the application processor  30  is entering a sleep mode from an active mode whilst performing the process  300 . In response to receiving this type of event, the modem  4  is arranged to update the parameter “latest event” held by the modem to indicate that the application processor  30  is in a sleep mode. Thus, if the modem  4  has to check the parameter “latest event” held by the modem to check the operating mode of the application processor  30  at step S 316  during the process  300 , the modem is able to control the increment of t interval  taking into account whether the application processor  30  is in an active mode or a sleep mode. 
         [0044]    In a similar manner, whilst performing the process  300 , the modem  4  may receive an event (e.g., an AT command AT+CAWAKE) from the application processor  30  which indicates that the application processor  30  has entered an active mode from a sleep mode. In response to receiving this type of event, the modem  4  is arranged to update the parameter “latest event” held by the modem to indicate that the application processor  30  is in an active mode. Thus, if the modem  4  has to check the parameter “latest event” held by the modem in memory  34  to check the operating mode of the application processor  30  at step S 316  during the process  300 , the modem is able to control the increment of t interval  taking into account whether the application processor  30  is in an active mode or a sleep mode. 
         [0045]    It will be appreciated that after the modem  4  has not had full network coverage for a long period of time, the time interval t interval  between PLMN searches can reach long time intervals following the increments at step S 317  whilst the application processor  30  is in a sleep mode. If a user of the device  2  manually awakes the application processor  30  and tries to use the modem  4  whilst the modem is waiting until t count  is greater than or equal to t interval  at step S 314  before performing a network search the attempt may fail even if the network coverage has become acceptable again. 
         [0046]    A process  400  is now described with reference to  FIG. 4  which addresses this scenario. The modem  4  is arranged to perform the process  400  in parallel to performing the process  300  when the modem  4  receives an event from the application processor  30  which indicates that the application processor  30  has entered an active mode from a sleep mode. 
         [0047]    At step S 402  the modem  4  receives an event from the application processor  30  via the second interface  32  which indicates that the application processor  30  has entered an active mode from a sleep mode. In response to receiving this type of event at step S 402 , at step S 404 , the modem  4  is arranged to determine whether the transition from the application processor  30  operating in the sleep mode to operating in the active mode was triggered by a manual input by a user of the device  2  (i.e. pressing a keypad or touching a display of the device  2 ). 
         [0048]    The application processor  30  may, for example, insert a parameter in the event indicating that the application processor  30  has entered the active mode from the sleep mode which is transmitted to the modem  4 , the parameter indicating that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was triggered by a manual input by a user of the device  2 . For example the application processor  30  may insert the parameter in the event if the application processor  30  detects that it entered the active mode from the sleep mode based on a manual input that turned on a screen of the device  2 . The modem  4  may then make a determination that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was triggered by a manual input by a user of the device  2  at step S 404  based on receiving this parameter. 
         [0049]    The application processor  30  may, for example, insert a parameter in the event indicating that the application processor  30  has entered the active mode from the sleep mode which is transmitted to the modem  4 , the parameter indicating that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was not triggered by a manual input by a user of the device  2 . The modem  4  may then make a determination that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was not triggered by a manual input by a user of the device  2  at step S 404  based on receiving this parameter. Alternatively, in the absence of a parameter indicating that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was triggered by a manual input by a user of the device  2 , the modem  4  may then make the determination that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was not triggered by a manual input by a user of the device  2  at step S 404 . 
         [0050]    If the modem  4  determines at step S 404  that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was not triggered by a manual input by a user of the device  2  the process  400  proceeds to step S 406 . For example, the application processor  30  may enter the active mode from operating in the sleep mode responsive to an alarm event or watchdog event (i.e., a periodic interrupt generated by a chip external to the application processor  30  on the host terminal  2 ). At step S 406  the modem  4  is arranged to update the parameter “latest event” held by the modem in memory  34  to indicate that the application processor  30  is in an active mode. Thus, if the modem  4  has to check the parameter “latest event” held by the modem to check the operating mode of the application processor  30  at step S 316  during the process  300 , the modem is able to control the increment of t interval  taking into account whether the application processor  30  is in an active mode or a sleep mode. 
         [0051]    If the modem  4  determines at step S 404  that the transition from the application processor  30  operating in the sleep mode to operating in the active mode was triggered by a manual input by a user of the device  2  the modem  4  is arranged to perform an immediate network search, i.e., immediately jump to step S 304  in the process  300 . For example, the modem  4  will perform a network search even if t count  is less than t interval  at step S 314  in the process  300 . In addition, at step S 408  the modem  4  updates the parameter “latest event” held by the modem to indicate that the application processor  30  is in an awake mode. Thus, if the modem  4  has to check the parameter “latest event” held by the modem to check the operating mode of the application processor  30  at step S 316  during the process  300 , the modem  4  is able to control the increment of t interval  taking into account whether the application processor  30  is in an active mode or a sleep mode. 
         [0052]    When a user of the device  2  manually awakes the application processor  30  it is appropriate to trigger an immediate scan as the user may have knowledge that the network coverage should be back to normal (e.g., after exiting a Subway station) or simply wishes to use the modem  4  (e.g., send a message) and may reasonably expect the device  2  to recover network service shortly after waking it up. This prevents an attempt by the user to use the modem  4  failing, due to a large value of t interval  following a long period of time in which the modem  4  has not had full network coverage, even when the modem  4  has network coverage. 
         [0053]    Embodiments of the invention are applicable to any apparatus comprising an application processor and a modem entity that communicate with each other. For example, the application processor and modem entity may communicate with each other via a serial interface connection or shared memory. 
         [0054]    It will be appreciated that the above embodiments have been described only by way of example, and other variants or applications may be apparent to a person skilled in the art given the disclosure herein. 
         [0055]    For instance, while embodiments above have been described in relation to certain standards such as 3GPP networks and so forth, these are not intended to be limiting and the present invention may in fact be applied within any communication standard of any mobile cellular network, or of any packet-based network if such a network is involved. Nor do the terms “context” or “channel” imply a specific nature or standard, but can be used to refer to any kind of suitable data conduit or session established between a modem and a network. 
         [0056]    Whilst embodiments have been described above with reference to two operating modes of the application processor  30 , principles of the invention may extend to cases where the application processor  30  may operate in more than two modes associated with varying degrees of power consumption and the modem may operate to optimize the PLMN search intervals accordingly. 
         [0057]    Whilst embodiments have been described above with reference to storing the parameter “latest event” held by the modem in memory  34 , it will be appreciated that this parameter may not necessarily be stored on the same physical memory device as the rest of the soft modem code. 
         [0058]    Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.