Apparatus and method for switching connection to a communication network

An apparatus includes first and second processors, a common memory, and a switch. The first processor executes an operating system, connects to a communication network and communicates with the communication network. The second processor operates independently of the operating system, connects to the communication network, and communicates with the communication network. The second processor writes, in the common memory, communication setting information being used by the second processor when the switch switches the connection destination from the second processor to the first processor. The first processor acquires the communication setting information, and sets the acquired communication setting information to the first processor. The switch switches the connection destination of the communication network from the second processor to the first processor after the communication setting information has been set to the first processor.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-081139, filed on Mar. 31, 2011, the entire contents of which are incorporated herein by reference.

FIELD

The embodiment discussed herein is related to an apparatus and method for switching connection to a communication network.

BACKGROUND

Recently, a push data distribution service which distributes information to a terminal unit from a server is becoming popular. Such a service is called a PUSH service. In the PUSH service, a terminal unit may receive information automatically whenever the information is delivered from a server, regardless that the terminal unit stays in a power-on state or not or that the terminal unit is connected to a communication network or not.

In order to implement such a service, a terminal unit provided with a remote-controlled communication device has been proposed where the remote-controlled communication device manages the power supply for the terminal unit by waiting for user manipulation. The remote-controlled communication device is provided with its own central processing unit (CPU) and thus may perform, for example, power control of the terminal unit independently from the control caused by the CPU of the terminal unit. Hereinafter, components controlled by the CPU of the terminal unit will be collectively called a “terminal unit main body”, and a state in which the terminal unit main body is in a power-off state will be also expresses as “the terminal unit is in a power-off state” meaning that the terminal unit main body is in a power-off state.

The remote-controlled communication device operates to achieve its own function even when the terminal unit is in a power-off state. Since the remote-controlled communication device operates even when the terminal unit is in a power-off state, the remote-controlled communication device consumes the power at all times. In order to reduce the power consumption, the remote-controlled communication device is usually implemented by a low power consumption circuit using a micro processing unit (MPU) which operates at several or several tens of MHz. Further, the remote-controlled communication device may be connected to a communication network by connecting itself to a communication device via an interface such as a universal serial bus (USB).

With the remote-controlled communication device staying energized at all times, a PUSH service, such as transmitting a push notification and downloading a file, may be provided even when the terminal unit is in a power-off state.

However, since the remote-controlled communication device is implemented at a low clock rate, a transmission device included in the remote-controlled communication device may not be operated at a sufficient transmission rate compared to a transmission device included in the terminal unit main body. When the terminal unit is in a power-off state, that is, the terminal unit main body is in a power-off state, data transmission at a low rate does not affect the operation of the terminal unit since there exist no processes being performed in the terminal unit main body.

On the other hand, when the terminal unit is in a power-on state, that is, the terminal unit main body is in a power-on state, an operator may manipulate the terminal unit so that the terminal unit main body performs some processes. In such a situation, the low transmission rate may cause delay in response, thereby making it difficult to satisfy a requirement of the operator. It is therefore desirable to avoid a situation in which the terminal unit main body acquires data via the remote-controlled communication device when the terminal unit, that is, the terminal unit main body is in a power-on state.

In order to address this problem, a method has been proposed in which, for example, when connection between the terminal unit and a communication device is established via a USB interface, a USB bus capable of connecting the communication device to each of the terminal unit main body and the remote-controlled communication device is selectively switched using a USB bus switch so that one of the terminal unit main body and the remote-controlled communication device is selected as a USB host. This method allows a terminal unit equipped with a remote-controlled communication device to perform always-on connection to a communication network without any reduction in transmission speed.

A related art is proposed in which, in a redundant communication control system, data is saved in a common memory shared by both an active system and a standby system, and the standby system takes over communication control processing from the active system by referring to the common memory at the time of switching the active and standby systems. Another related art is proposed in which any of a plurality of processing circuits provided in a terminal unit is selected to perform protocol processing by switching a bus.

Japanese Laid-open Patent Publication No. 10-145456 and Japanese Laid-open Patent Publication No. 2004-147251 are examples of the related art.

SUMMARY

According to an aspect of the invention, an apparatus includes first and second processors, a common memory, and a switch. The first processor executes an operating system, connects to a communication network, and communicates with the communication network. The second processor operates independently of the operating system, connects to the communication network, and communicates with the communication network. The common memory stores communication setting information. The switch switches a connection destination of the communication network from one of the first and second processors to the other one of the first and second processors. The second processor writes, in the common memory, the communication setting information being used by the second processor when the switch switches the connection destination from the second processor to the first processor. The first processor acquires the communication setting information that has been written in the common memory by the second processor, and sets the acquired communication setting information to the first processor. The switch switches the connection destination of the communication network from the second processor to the first processor after the first processor has set the communication setting information of the second processor to the first processor.

DESCRIPTION OF EMBODIMENT

According to the related art mentioned above, a USB host is switched from any one of the terminal unit main body and the remote-controlled communication device to another using a USB bus switch. However, this means a physical manipulation in which a USB device is detached from one of the terminal unit main body and the remote-controlled communication device, and then the USB device is attached to the other one of the terminal unit main body and the remote-controlled communication device. This causes the terminal unit to be physically disconnected from the communication network, and, after the switching from one of the terminal unit main body and the remote-controlled communication device to the other one of the terminal unit main body and the remote-controlled communication device is completed, the terminal unit is required to perform a USB enumeration process, establishment of the network connection, and connection to the server of an application. Therefore, the connection between the communication network and the terminal unit is temporarily interrupted. Such temporal interruption of the network connection due to the switching may impair the quality of a service to be provided, such as a PUSH service.

In the related art in which communication control is continued without interruption during the switching in the redundant communication control system, both of the communication control systems stay connected to a communication network. Therefore, there are no requirements for performing processes of detaching and attaching the communication device during the switching. In this related art, temporal interruption of the network connection caused by detaching and attaching the communication device is not considered. Therefore, it is difficult to avoid reduction in the quality of a service (such as the PUSH service) when detaching and attaching the communication device is required for some reasons. In the related art in which the buses are switched to cause any of the processing circuit to perform the protocol processing, temporal interruption in the network connection during the switching is not avoidable.

Hereinafter, embodiments of an information processing device and a method for controlling the information processing device will be described in detail with reference to the drawings. The embodiments are illustrative only and not restrictive.

FIG. 1is a diagram illustrating a configuration example of an information processing device, according to an embodiment. As illustrated inFIG. 1, an information processing device1according to the embodiment includes a switching controller11, a controller12, a protocol stack setting unit13, a USB communication unit14, a synchronization controller15, a memory16, a switch17and a remote-controlled communication device100. In the following description, components of the information processing device1except for the remote-controlled communication device100will be referred to as an “information processing device1main body.”

The remote-controlled communication device100includes a switching controller101, a controller102, a protocol stack setting unit103, a USB communication unit104, a synchronization controller105, a memory106, and a common memory110.

The switch17is connected to a USB device, such as a communication module2as illustrated inFIG. 1. Examples of the communication module2mentioned above include the Third Generation (3G), Long Term Evolution (LTE) and Worldwide Interoperability for Microwave Access (WiMAX) communication module. The communication module2is coupled to an external communication network (not depicted inFIG. 1) in the embodiment. In response to an instruction issued by the switch controller11or the switch controller101, the switch17performs switching such that one of the USB communication unit14and the USB communication unit104is selectively connected to the communication module2. That is, when the switch17selects the USB communication unit14as a connection destination of the communication module2, data may be transmitted between the communication module2and the USB communication unit14. When the switch17selects the USB communication unit104as the connection destination of the communication module2, data may be transmitted between the communication module2and the USB communication unit104.

Hereinafter, a switching operation in which a connection destination of the communication module2is switched from the USB communication unit14to the USB communication unit104by the switch17will be also simply expressed as “switching to the USB communication unit104.” Similarly, a switching operation in which a connection destination of the communication module2is switched from the USB communication unit104to the USB communication unit14by the switch17will be also simply expressed as “switching to the USB communication unit14.” Further, when the distinction between connection destinations of the communication module2is not required, the switching operation will be also simply expressed as “switching”, a connection destination of the communication module2before the switching is performed will be also simply expressed as a “switching source” and a connection destination of the communication module2after the switching is performed will be also simply expressed as a “switching destination”.

The common memory110is a storage unit, such as a memory. Data may be written in and read out from the common memory110by any component of the information processing device1main body and any component of the remote-controlled communication device100.

FIG. 2is a diagram illustrating an example of a data format used for storing data in a common memory, according to an embodiment. InFIG. 2, a data format200of the data stored in the common memory110includes a notification area201, a protocol stack setting area210, and a synchronization area220.

In the notification area201, data such as a notification indicating an occurrence or completion of switching from a switching source to a switching destination is stored.

The protocol stack setting area210stores communication setting information for setting communication regarding each of protocol layers. The protocol stack setting area210includes an application setting area202, a network setting area203, and a USB setting area204. As described below, the communication setting information stored in the protocol stack setting area210is information that is passed from the switching source to the switching destination when the switching is performed.

The application setting area202stores application information indicating setting information for setting each of applications. For example, the applications include an application that receives a PUSH service. The application information includes, for example, information on an authentication server, certification information, and device identifier information.

The network setting area203stores network information indicating setting information used for setting a communication link to a communication network. For example, the network information includes an Internet Protocol (IP) address, a port number, session management information, and an identifier (ID) and a password (PW) that are used for the Point-to-Point Protocol (PPP).

The USB setting area204stores USB information indicating setting information for setting a USB. The USB information includes, for example, a device address, information on an endpoint, and information on a device driver.

The synchronization area220stores information used for synchronizing operations of the information processing device1main body and the remote-controlled communication device100when performing the switching. The synchronization area220includes a data transfer area205. InFIG. 2, for ease of description, the synchronization area220is depicted as the same area as the data transfer area205. However, the data transfer area205may be included in the synchronization area220so that other information used for the synchronization is also be stored in the synchronization area220.

The data transfer area205is used for transferring data received from the communication module2, from the switching destination to the switching source.

Referring back toFIG. 1, when the switch17is selecting the USB communication unit14as a connection destination of the communication module2, the USB communication unit14performs data transmission between the USB communication unit14and the communication module2. For example, the USB communication unit14transmits data designated by the controller12to an external communication network via the communication module2, and receives data from the external communication network via the communication module2. The USB communication unit14outputs the received data to the controller12. Here, the USB communication unit14synchronizes data transmission at an interval of 1 millisecond using a Start of Frame (SOF) packet. The SOF packet is stored at the head of a frame that is a unit of data transmission. That is, the transmission data is configured as a sequence of frames that are successively transmitted at the interval of 1 millisecond and each store a SOF packet at the head of the each frame. When a communication is required, the USB communication unit14performs data transmission by conveying USB transaction data using one or more frames.

Meanwhile, when the switch17is selecting the USB communication unit104as a connection destination of the communication module2, the USB communication unit14does not perform data transmission.

In the case of the switching to the USB communication unit104, the USB communication unit14, upon receiving a notification requesting the switching from the controller12, outputs data received from the communication module2, to the synchronization controller15as well as to the controller12.

Meanwhile, in the case of the switching to the USB communication unit14, the USB communication unit14is reset, under control of the synchronization controller15, at the time when the USB communication unit104receives a SOF. This allows the USB communication unit14to synchronize to the communication module2. Then, the USB communication unit14is virtually connected to a virtual communication module that is a virtual module for virtualizing a communication module within the common memory110, as will be described later. This allows the USB communication unit14to perform data transmission between the USB communication unit14and the virtual communication module implemented in the common memory110.

The USB communication unit14receives from the controller12an instruction for sending a pseudo USB response to the virtual communication module. In response to this instruction, the USB communication unit14writes the pseudo USB response in the data transfer area205of the common memory110. The USB communication unit14monitors the notification area201to determine whether a pseudo response has been written in the notification area201by the controller102of the remote-controlled communication device100. When the pseudo response has been written in the notification area201, the USB communication unit14reads the pseudo response from the notification area201, and determines whether a communication link between the USB communication unit14and the virtual communication module has been normally established or not. When it is determined that the communication link has been established normally, the USB communication unit14issues a notification indicating the completion of synchronization to the controller12.

In the case of the switching to the USB communication unit104, the synchronization controller15receives a synchronization instruction from the controller12. The synchronization controller15further receives, from the controller12, a USB descriptor of the controlling the communication module2. The synchronization controller15writes the received USB descriptor in the synchronization area220of the common memory110so that a virtual communication module is built within the common memory110.

Next, the synchronization controller15receives, from the USB communication unit14, data that was received from the communication module2by the USB communication unit14. The synchronization controller15writes the received data in the data transfer area205of the common memory110.

Meanwhile, in the case of the switching to the USB communication unit14, the synchronization controller15receives a synchronization instruction from the controller12. In response to the synchronization instruction from the controller12, the USB communication unit14monitors the data transfer area205of the common memory110. The synchronization controller15refers to a SOF of the data written in the data transfer area205, resets the USB communication unit14at the time of receiving the SOF to synchronize the USB communication unit14to the communication module2.

In the case of the switching to the USB communication unit104, the protocol stack setting unit13receives an instruction to store communication setting information from the controller12, and writes the communication setting information in the common memory110. For example, the protocol-stack setting unit13writes, in the application setting area202, application information that has been used in the communication using the communication module2. Further, the protocol stack setting unit13writes, in the network setting area203, network information that has been used by the USB communication unit14when communicating with an external communication network via the communication module2. The protocol stack setting unit13writes USB information for the communication module2, in the USB setting area204.

Meanwhile, in the case of the switching to the USB communication unit14, the protocol stack setting unit13receives, from the controller12, an instruction to acquire communication setting information, and acquires, from the common memory110, the communication setting information which has been used by the USB communication unit104. For example, the protocol-stack setting unit13acquires, from the application setting area202, the application information regarding an application performing data transmission using the communication module2. The protocol stack setting unit13acquires, from the network setting area203, the network information that has been used by the USB communication unit104when communicating with the external communication network via the communication module2. The protocol-stack setting unit13acquires the USB information for the communication module2, from the USB setting area204. Then, the protocol-stack setting unit13outputs the acquired communication setting information to the controller12.

The memory16is a storage unit, such as a memory and a hard disk. An OS and an application for providing a service such as a PUSH service are stored in the memory16.

Next, description will be given of an operation of the controller12when the switch17is selecting the USB communication unit14as a connection destination of the communication module2. The controller12inputs data from the USB communication unit14, and processes the data using, for example, the memory16. The controller12outputs the data to the USB communication unit14when the data is required to be transmitted to an external communication network.

When a switching factor (a factor causing the switching), such as the issuance of a shutdown instruction, has occurred in a state in which the switch17is selecting the USB communication unit14as a connection destination of the communication module2, the controller12starts up the controller102that has been in a shutdown or standby mode. The controller12notifies the USB communication unit14of an instruction to perform the switching, and notifies the synchronization controller15of a synchronization instruction. Further, the controller12notifies protocol stack setting unit13of an instruction to store the communication setting information. The controller12writes the notification indicating the start of the switching in the notification area201of the common memory110.

The controller12monitors the notification area201of the common memory110, and determines whether a notification indicating the completion of setting synchronization has been written by the controller102of the remote-controlled communication device100.

Then, the controller12monitors the synchronization area220of the common memory110, and determines whether USB response information has been written by the USB communication unit104of the remote-controlled communication device100. When the USB response information has been written in the synchronization area220, the controller12writes pseudo response information in the synchronization area220. Thereafter, the controller12monitors the notification area201of the common memory110, and determines whether a notification indicating the completion of synchronization has been written by the controller102. Further, the controller12monitors the notification area201of the common memory110, and determines whether the notification requesting the switching has been written in the notification area201. When the notifications indicating the completion of synchronization and the requesting the switching are written, the controller12outputs, to the switching controller11, an instruction to switch a connection destination of the communication module2from the USB communication unit14to the USB communication unit104.

Next, description will be given of an operation of the controller12when the switch17is selecting the USB communication unit104as the connection destination of the communication module2. In this case, the controller12is in a shut down state under normal conditions. When a switching factor has occurred when the switch17is selecting the USB communication unit104as a connection destination of the communication module2, electric power supply is started under control of the controller102of the remote-controlled communication device100.

The controller12notifies the protocol stack setting unit13of an acquisition instruction to acquire communication setting information, and afterward receives the communication setting information from the protocol stack setting unit13as a response to the acquisition instruction.

The controller12acquires USB information from the received communication setting information and performs the setting of the USB communication unit14based on the acquired USB information. For example, the controller12builds, within the USB communication unit14, a pseudo USB host using a USB device address, endpoint information, and a device driver information that has been used by the USB communication unit104so that the pseudo USB operates in the same manner as the USB host implemented by the USB communication unit104.

The controller12acquires network information from the received communication setting information, and sets the acquired network information in the USB communication unit14. For example, the acquired network information includes an IP address, a port number, session management and PPP connection information.

Further, the controller12acquires application information from the received communication setting information, and starts up an application relating to the acquired application information. The controller12applies the application information to the started application. For example, the controller12sets to the started application, as the application information, information on a PUSH server, certification information, and device identifier. Then, the controller12writes a notification indicating completion of setting the application in the notification area201of the common memory110.

The controller12notifies the synchronization controller15of a synchronization instruction. The controller12determines whether the synchronization in the USB communication unit14has been completed. The controller12writes the notification indicating completion of synchronization in the notification area201when the synchronization of the USB communication unit14has been completed.

Thereafter, the controller12performs USB enumeration as to the communication module2, and registers the USB device, where the controller12uses the same device address and endpoint information as those that were set in the USB communication unit104.

Thereafter, the controller12acquires information on the USB descriptor from the synchronization area220of the common memory110to acquire specification information on the communication module2. The controller12may create data for the communication module2using the USB descriptor of the communication module2, and write the created data for the communication module2in the notification area201of the common memory110. Further, the controller12may handle data acquired from the notification area201for the communication module2in the same manner as the data acquired from the communication module2. Therefore, the controller12may behave as if it communicates with the communication module2, using the common memory110. That is, the controller12may use the common memory110as a virtual communication module.

The controller12notifies the USB communication unit14of an instruction to provide a pseudo USB response for the virtual communication module. When the notification indicating completion of synchronization is received from the USB communication unit14, the controller12writes the notification requesting the switching in the notification area201.

When the switching to the USB communication unit14is completed and the controller14receives data from the USB communication unit14, the controller12starts processing on the received data, for example, using the started application and the like.

The switching controller11receives, from the controller12, an instruction to switch a connection destination of the communication module2from the USB communication unit14to the USB communication unit104. Then, the switching controller11controls the switch17to select the USB communication unit104as a connection destination of the communication module2.

Hereinafter, description will be given of the remote-controlled communication device100.

When the switch17is selecting the USB communication unit104as a connection destination of the communication module2, the USB communication unit104performs data transmission between the USB communication unit104and the communication module2. For example, the USB communication unit104transmits data designated by the controller102to an external communication network via the communication module2. The USB communication unit104receives data from the external communication network via the communication module2. The USB communication unit104outputs the received data to the controller102. Here, the USB communication unit104synchronizes data transmission at the interval of 1 millisecond using the SOF packet.

Meanwhile, when the switch17is selecting the USB communication unit14as a connection destination of the communication module2, the USB communication unit104does not perform data transmission.

In the case of the switching to the USB communication unit14, the USB communication unit104, upon receiving from the controller102a notification requesting the switching, outputs data received from the communication module2to the synchronization controller105as well as to the controller102.

Meanwhile, in the case of the switching to the USB communication unit104, the USB communication unit104performs reset operation, under control of the synchronization controller105, at the time when the USB communication unit14receives the SOF, so that the USB communication unit104is synchronized with the communication module2. Thereafter, the USB communication unit104is virtually connected to a virtual communication module built within the common memory110, as will be described later. That is, the USB communication unit104is in a state in which data is allowed to be transmitted between the USB communication unit104and the virtual communication module built in the common memory110. The USB communication unit104receives from the controller102an instruction to provide a pseudo USB response for the virtual communication module. In response to this instruction, the USB communication unit104writes the pseudo USB response in the data transfer area205of the common memory110. The USB communication unit104monitors the notification area201and determines whether a pseudo response from the controller12of the information processing device1main body has been written in the notification area201. When the pseudo response has been written in the notification area201, the USB communication unit104reads the pseudo response. The USB communication unit104determines whether a communication link between the USB communication unit104and the virtual communication module has been normally established or not. When it is determined that the communication link has been normally established, the USB communication unit104issues a notification indicating completion of the synchronization, to the controller102.

In the case of the switching to the USB communication unit14, the synchronization controller105receives a synchronization instruction from the controller102. The synchronization controller105receives a USB descriptor for the communication module2, from the controller102, and writes the received USB descriptor in the synchronization area220of the common memory110. Thus, a virtual communication module is built within the common memory110.

Next, the synchronization controller105inputs, from the USB communication unit104, data that has been received via the communication module2, and writes the inputted data in the data transfer area205of the common memory110.

Meanwhile, in the case of the switching to the USB communication unit104, the synchronization controller105receives a synchronization instruction from the controller102. The USB communication unit104monitors the data transfer area205of the common memory110, based on the synchronization instruction. Then, the synchronization controller105refers to the SOF of the data written in the data transfer area205, resets the USB communication unit104upon receiving the SOF, and synchronizes the USB communication unit104to the communication module2.

In the case of the switching to the USB communication unit14, the protocol stack setting unit103receives an instruction to store communication setting information from the controller102, and writes the communication setting information in the common memory110.

Meanwhile, in the case of the switching to the USB communication unit104, the protocol stack setting unit103receives, from the controller102, an acquisition instruction to acquire communication setting information, and acquires, from the common memory110, the communication setting information being used by the USB communication unit14. For example, the protocol-stack setting unit103acquires, from the application setting area202, the application information used for the communication via the communication module2. The protocol-stack setting unit103acquires, from the network setting area203, network information being used by the USB communication unit14when communicating with an external communication network via the communication module2. The protocol-stack setting unit103acquires, from the USB setting area204, USB information used for controlling the communication module2as a USB device. Then, the protocol stack setting unit103outputs the acquired communication setting information to the controller102.

The memory106is a storage unit, such as memory and hard disk. An operating system (OS) and applications for providing services such as a PUSH service are stored in the memory106.

Next, description will be given of an operation of the controller102when the switch17is selecting the USB communication unit104as a connection destination of the communication module2. The controller102inputs data from the USB communication unit104, and processes the data using, for example, the memory106. Further, the controller102outputs data to the USB communication unit104when the data is required to be transmitted to an external communication network.

When a switching factor, such as start-up of the information processing device1, has occurred in a state in which the switch17is selecting the USB communication unit104as a connection destination of the communication module2, the controller102starts up the controller12that has been in a shutdown or standby mode. At the same time, the controller102notifies the USB communication unit104of an instruction to request the switching, and notifies the synchronization controller105of a synchronization instruction. Further, the controller102notifies protocol stack setting unit103of an instruction to store the communication-setting information.

The controller12monitors the notification area201of the common memory110, and determines whether a notification indicating completion of synchronization setting has been written by the controller102of the remote-controlled communication device100.

The controller102monitors the synchronization area220of the common memory110and determines whether a USB response has been written by the USB communication unit14of the information processing device1main body. When the USB response has been written in the synchronization area220, the controller102writes a pseudo response in the synchronization area220. Thereafter, the controller102monitors the notification area201of the common memory110and determines whether a notification indicating completion of synchronization has been written by the controller12. Further, the controller102monitors the notification area201of the common memory110and determines whether the notification requesting the switching has been written in the notification area201. When the notifications indicating the completion of synchronization and requesting the switching are written, the controller102outputs, to the switching controller101, an instruction to switch the connection destination of the communication module2from the USB communication unit104to the USB communication unit14.

Next, description will be given of an operation of the controller102when the switch17is selecting the USB communication unit14as a connection destination of the communication module2. In this case, since the remote-controlled communication device100always stays in a power-on state, the controller102is operating. The controller102monitors the notification area201of the common memory110. When the controller12of the information processing device1main body writes a notification requesting the switching in the notification area201, the controller102notifies the protocol stack setting unit103of an acquisition instruction to acquire communication setting information. The controller102receives the communication setting information from the protocol-stack setting unit103as a response to the acquisition instruction.

Upon receiving the communication setting information, the controller102acquires USB information from the received communication setting information and sets the USB communication unit104based on the acquired USB information. For example, the controller102builds, within the USB communication unit104, a pseudo USB host that operates in the same manner as the USB host implemented in the USB communication unit14, using the USB information, where the USB information has been used by the USB communication unit104and includes, for example, a USB device address, information on an endpoint, and information on a device driver.

Further, the controller102acquires network information from the received communication setting information and sets the received network information in the USB communication unit104. For example, the network information includes an IP address, a port number, session management and PPP connection information.

Further, the controller102acquires application information from the received communication setting information and activates the corresponding application. The controller102applies the application information to the activated application. For example, the controller102sets a PUSH server address, certification information, and a device identifier to the activated application.

After completion of setting the communication setting information mentioned above, the controller12writes the notification indicating completion of setting in the notification area201of the common memory110.

Further, the controller102notifies the synchronization controller105of a synchronization instruction. The controller102determines whether the synchronization in the USB communication unit104has completed, and writes the notification indicating completion of synchronization in the notification area201when the synchronization of the USB communication unit104has completed.

Thereafter, the controller102registers the USB device by performing a USB enumeration on the communication module2, where the controller102uses the same device address information and endpoint information as those set in the USB communication unit14.

Thereafter, the controller102acquires information on the USB descriptor from the synchronization area220of the common memory110. The controller102may recognize the specification of the communication module2by acquiring the information on the USB descriptor written in the synchronization area220. Thus, the controller102may create data applicable to the communication module2using the USB descriptor of the communication module2. The controller102may write the created data for the communication module2in the notification area201of the common memory110. The controller102handles the data acquired from notification area201of the communication module2in the same manner as data acquired from the communication module2. Thus, the controller102may behave as if it communicates with the communication module2via the common memory110. That is, the controller102may handle the common memory110as a virtual communication module.

The controller12notifies the USB communication unit14of an instruction to issue a pseudo USB response to the virtual communication module. Thereafter, upon receiving from the USB communication unit14the notification indicating the completion of synchronization, the controller12writes the notification requesting the switching in the notification area201.

Thereafter, when the switching to the USB communication unit104is completed and the controller102receives data from the USB communication unit104, the controller102starts processing on the received data, for example, using the activated application.

The switching controller101receives, from the controller102, a switching-request instruction for switching a connection destination of the communication module2from the USB communication unit14to the USB communication unit104. Upon receiving the switching-request instruction, the switching controller11controls the switch17to select the USB communication unit104as a connection destination of the communication module2.

FIG. 3is a diagram illustrating an example of a data flow sequence for switching a connection destination of a communication module from a remote-controlled communication device to information processing device main body, according to an embodiment. InFIG. 3, PUSH applications20and120enclosed by dotted lines indicate applications activated by the controllers12and102, respectively. That is, the PUSH application20is implemented using the controller12and the memory16inFIG. 1, and the PUSH application120is implemented using the controller102and the memory106inFIG. 3.

When a switching factor occurs, for example, when the PC is activated by a user or by the PUSH service, the information processing device1is activated.

In sequence S1, the protocol stack setting unit103writes, in the common memory110, PUSH application information that is a type of application information acquired from the PUSH application120.

In sequence S2, the protocol stack setting unit103writes, in the common memory110, the network information that has been used by the USB communication unit104.

In sequence S3, the protocol stack setting unit103writes, in the common memory110, the USB information that has been used by the USB communication unit104.

In sequence S4, the protocol stack setting unit13acquires the PUSH application information from the common memory110, and notifies the PUSH application20of the acquired PUSH application information.

In sequence S5, the protocol stack setting unit13acquires the network information from the common memory110.

In sequence S6, the protocol stack setting unit13acquires the USB information from the common memory110.

In sequence S7, the synchronization controller105transfers data received from the USB communication unit104to the common memory110, and writes the USB descriptor of the communication module2in the common memory110. InFIG. 3, an arrow from the USB communication unit104to the virtual communication module represents the transfer of the data received from the USB communication unit104to the common memory110. Thus, a virtual communication module may be implemented in the common memory110.

In sequence S8, upon detecting the SOF information that was transferred by the synchronization controller105to the common memory110, the synchronization controller15resets the USB communication unit14, thereby synchronizing the USB communication unit104and the USB communication unit14.

In sequence S9, a virtual connection may be established between the USB communication unit14and the virtual communication module that was built in the common memory110using the acquired various setting information.

As mentioned above, a virtual communication link is beforehand established between the USB communication unit14and the virtual communication module. This allows the USB communication unit14to quickly establish a communication link between the USB communication unit14and the communication module2, using the beforehand prepared setting information when the USB communication unit14is actually connected to the communication module2due to the switching operation of the switch17. That is, it is unnecessary to set information for establishing a communication link just after the switching operation has been performed, thereby reducing the interruption time of the data transmission.

The above description aboutFIG. 3is given about switching a connection destination of the communication module from the USB communication unit104of the remote-controlled communication device100to the USB communication unit14of the information processing device1main body. Meanwhile, when a connection destination of the communication module is switched from the USB communication unit14of the information processing device1main body to the USB communication unit104of the remote-controlled communication device100, a data flow sequence may be performed, in the similar manner, using a virtual communication module built in the common memory110, except that the direction of the data flow is reversed.

FIG. 4is a diagram illustrating an example of an operational flowchart for switching a connection destination of a communication module, according to an embodiment.FIG. 4illustrates an operational flowchart for switching a connection destination of a communication module from the USB communication unit104of the remote-controlled communication device100to the USB communication unit14of the information processing device1main body.

In operation S101, a switching factor, such as shutdown, occurs when the remote-controlled communication device100is operating.

In operation S102, the controller102of the remote-controlled communication device100activates a switching destination CPU provided for the controller12of the information processing device1main body to which the communication module2is to be connected, by supplying power to the switching destination CPU.

In operation S103, the protocol stack setting unit103writes, in the common memory110, communication setting information being used by the USB communication unit104.

In operation S104, the protocol stack setting unit13of the information processing device1main body acquires the communication setting information from the common memory110. The controller12of the information processing device1main body sets the communication setting information acquired by the protocol stack setting unit13, in the USB communication unit14and other relevant components.

In operation S105, the controller12of the main body notifies the completion of setting by writing notification information indicating the completion of setting in the notification area201of the common memory110.

In operation S106, the synchronization controller105of the remote-controlled communication device100transfers communication data received by the USB communication unit104from the communication module2into the data transfer area205of the common memory110.

In operation S107, the synchronization controller15of the main body synchronizes the USB communication unit14to a USB device of the communication module2, by acquiring the SOF included in the data written in the data transfer area205.

In operation S108, the controller12of the main body sets the communication module2as a USB device by performing a USB enumeration on the communication module2and registering the communication module2as the USB device.

In operation S109, the USB communication unit14of the main body notifies the controller102of the remote-controlled communication device100of a pseudo USB response, such that the USB communication unit14writes the notification indicating the pseudo USB response in the notification area201of the common memory110, and the controller102acquires the notification indication the pseudo USB response written in the notification area201.

In operation S110, the controller102of the remote-controlled communication device100notifies the USB communication unit14of the pseudo response such that the controller102writes the notification indicating the pseudo response in the notification area201of the common memory110, and the USB communication unit14acquires the notification indicating the pseudo response written in the notification area201.

In operation S111, the controller12of the main body issues the notification indicating the completion of synchronization to the controller102of the remote-controlled communication device100such that the controller12writes the notification of the completion of synchronization in the notification area201of the common memory110when the USB communication unit14receives the notification indicating the pseudo response from the controller102, and the controller102acquires the notification indicating the completion of synchronization that was written in the notification area201.

In operation S112, the controller12issues the notification requesting the switching to the controller102such that the controller12writes the notification requesting the switching in the notification area201of the common memory110, and the controller102acquires the notification requesting the switching written in the notification area201.

In operation S113, the controller102, upon receiving the notification requesting the switching, notifies the switching controller101of an instruction to switch a bus switch of the switch17, and the switching controller101controls the switch17so that the bus switch is connected to the USB communication unit14.

In operation S114, a switching source CPU provided for the remote-controlled communication device100is stopped.

FIG. 5is a diagram illustrating an example of a transmission sequence for performing a switching process, according to an embodiment. FIG.5illustrates a data flow for performing a switching operation among the switching source, the switching destination, and the communication module2. Here, a data flow is indicated by an arrow connecting a pair of lines each extending from one of the switching source, the communication module2, and the switching destination. InFIG. 5, it is assumed that time goes on in a direction from the left to the right.

In sequence S201, data transmission is being performed between the switching source and the communication module2. Here, it is assumed that a switching factor has occurred at the time denoted by a dotted line250.

In sequence S202, application information is notified from the switching source to the switching destination so that the corresponding application is set in the switching destination based on the notified application information.

In sequence S203, network information is notified from the switching source to the switching destination so that the corresponding network is set in the switching destination based on the notified network information.

In sequence S204, USB information is notified from the switching source to the switching destination so that the corresponding USB is set in the switching destination based on the notified USB information.

Transmission sequences during a time period denoted by “P” are performed by the protocol stack setting unit13and the protocol stack setting unit103.

In sequences S205and S206, when a virtual communication module is built in the common memory110, data that is transmitted between the switching source and the communication module is transferred from the switching source to the switching destination via a common memory. Thus, the switching destination and the communication module2are synchronized with each other.

In sequence S207, an instruction requesting the switching is notified from the switching destination to the switching source.

In sequence S208, the switch17switches a connection destination of the communication module2from the switching source to the switching destination.

In sequence S209, the communication link between the communication module2and the switching source is disconnected.

Here, transmission sequences during a time period denoted by “Q” are performed by the synchronization controllers15,105, and the controllers12,102.

In sequence S210, data transmission is performed between the switching destination and the communication module2.

FIG. 6is a schematic diagram illustrating an example of an operational sequence for switching a connection destination, according to an embodiment. InFIG. 6, a connection destination of the communication module2is switched from the USB communication unit104of the remote-controlled communication device100to the USB communication unit14of the information processing device1main body. Here, the information processing device1depicted inFIG. 6represents the main body of the information processing device1.

The remote-controlled communication device100, upon receiving each of SOFs100, synchronizes with the communication module2using the received each SOF300.

In sequence S301, a switching factor occurs, for example, the information processing device1main body is started up at the time denoted by the dashed-dotted line.

In sequence S302, the remote-controlled communication device100supplies power to the information processing device1and notifies the information processing device1of communication setting information.

In sequence S303, the information processing device1main body is started up when the power is supplied.

In sequence S304, the information processing device1performs various types of communication setting based on the notified communication setting information.

In sequence S305, in parallel with the above sequence S304, the remote-controlled communication device100writes the USB descriptor in the common memory110to build a virtual communication module.

In sequence S306, the USB host for the communication module2is implemented in the information processing device1main body.

In sequence S307, the remote-controlled communication device100transfers the received SOF300to the information processing device1main body via the common memory110so that the information processing device1main body acquires the SOFs301to303. Upon receiving the SOFs301to303, the information processing device1resets the USB communication unit14, thereby synchronizing the USB communication unit14to the communication module2. That is, the information processing device1performs a USB enumeration in a time period denoted by an arrow402.

In sequence S308, after the completion of the USB enumeration, the USB communication unit14of the information processing device1switches a connection destination from the virtual communication module to the communication module2. At the same time, the communication link between the USB communication unit104of the remote-controlled communication device100and the communication module2is disconnected (in sequence S309).

Thereafter, the information processing device1main body, upon acquiring the SOF denoted by the SOF304, synchronizes to the communication module2, and performs the USB communication with the communication module2.

That is, the remote-controlled communication device100performs a USB communication with the communication module during a first time period (denoted by an arrow401), and the information processing device1performs the USB enumeration during a second time period (denoted by402) included in the first time period (denoted by401). Then, the information processing device1performs the USB communication with the communication module during a third time period (denoted by an arrow403) just after the second time period. Accordingly, as illustrated inFIG. 6, there exists no time lugs between the first and third time periods (denoted by arrows401and403, respectively), and the communication between the communication module and the information processing device1(including the remote-controlled communication device100) is not interrupted even when the switching is performed.

FIG. 7is a diagram illustrating an example of a hardware configuration of an information processing device, according to an embodiment. As illustrated inFIG. 7, the information processing device1may be configured to include, for example, a graphic controller501, a main CPU502, a memory503, a chip set504, a storage505, a USB host506, a bus switch507, and the remote-controlled communication device100.

The remote-controlled communication device100may include a sub CPU601, a USB device common area602, a memory603, and a USB host604.

The graphic controller501, the memory503, and the chip set504are connected to the main CPU502via a bus. The chip set504is connected, via the bus, to the storage505and the USB host506. The USB host506is connected, via the bus, to the USB device common area602and the bus switch507.

The storage505and the memory503may serve as the memory16illustrated inFIG. 1. The storage505may be configured to store an operating system (OS), an application for providing the PUSH service, and the like.

The main CPU502, the chip set504, and the memory503may serve as, for example, the switching controller11, the controller12, the protocol stack setting unit13, and the synchronization controller15, as illustrated inFIG. 1. For example, the memory503may store various programs for implementing the functions performed by the switching controller11, the controller12, the protocol stack setting unit13, and synchronization controller15, as illustrated inFIG. 1. The main CPU502and the chip set504create processes for performing the above-mentioned functions by reading and executing these programs.

The USB host506may implement the function of the USB communication unit14illustrated inFIG. 1. The graphic controller501may display the various types of data, such as the execution result of the process on a monitor (not depicted inFIG. 7).

The bus switch507implements the function of the switch17illustrated inFIG. 1. The bus switch507is connected to the communication module2. Further, the bus switch507is selectively connected to one of the USB host506and the USB host604.

The USB device common area602, the memory603, and the USB host604are connected to the sub CPU601via the bus. The main CPU502may access the USB device common area602via the USB host506, and the sub CPU601may access the USB device common area602via the USB host604.

The USB device common area602implements the common memory110. The sub CPU601and the memory603implement the functions of, for example, the switching controller101, the controller102, the protocol stack setting unit103, and the synchronization controller105as illustrated inFIG. 1. For example, the memory603may store various programs for implementing the functions to be performed by the switching controller101, the controller102, the protocol stack setting unit103, and the synchronization controller105, as illustrated inFIG. 1. The sub CPU601reads and executes these programs to generate a process for implementing the above-mentioned functions. The sub CPU601may be operated independently from the main CPU502of the information processing device1. That is, the sub CPU601may be operated even when the main CPU502is not operating.

The USB host604and the USB host506implement the functions of the USB communication unit104and the USB communication unit14illustrated inFIG. 1, respectively.

As described above, when a connection destination of the USB device is switched from the communication unit of the information processing unit main body to the communication unit of the remote-controlled communication device and vice versa, the information processing device according to the embodiment builds a virtual communication module before the switching is performed. The information processing device beforehand prepare communication setting information used for establishing a communication link to an actual USB device, by virtually connecting the communication unit of the switching destination to the virtual communication module. After the switching is completed, the information processing device establishes the communication link to the actual USB device, using the communication setting information that was beforehand prepared. Therefore, it is unnecessary to prepare the communication setting information for the USB device after the switching has completed. This allows a connection destination of the USB device to be switched from the communication unit of the information processing unit main body to the communication unit of the remote-controlled communication device and vice versa, without any temporal interruption of data transmission that is caused by re-establishing the communication link. Consequently, even when a switching operation has occurred in response to the operational conditions, such as the start-up and the shutdown of the information processing device, it is possible to keep providing services such as the PUSH service, thereby enhancing the quality of the services to be provided.