WO2016080427A1 - 情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム - Google Patents

情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム Download PDF

Info

Publication number
WO2016080427A1
WO2016080427A1 PCT/JP2015/082360 JP2015082360W WO2016080427A1 WO 2016080427 A1 WO2016080427 A1 WO 2016080427A1 JP 2015082360 W JP2015082360 W JP 2015082360W WO 2016080427 A1 WO2016080427 A1 WO 2016080427A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
information processing
data
channel
application
Prior art date
Application number
PCT/JP2015/082360
Other languages
English (en)
French (fr)
Inventor
小林 佳和
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to EP15860997.4A priority Critical patent/EP3226146A4/en
Priority to JP2016560257A priority patent/JP6399105B2/ja
Priority to US15/527,598 priority patent/US10554348B2/en
Publication of WO2016080427A1 publication Critical patent/WO2016080427A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/205Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag

Definitions

  • the present invention relates to an information processing system, an information processing method, a server, an information processing apparatus, a communication terminal, and a control method and control program thereof.
  • Patent Document 1 discloses a technique for controlling a USB device by connecting a function driver constituting a device driver and a hub driver by communication via a network.
  • An object of the present invention is to provide a technique for solving the above-described problems.
  • an information processing system provides: The device, Device control means for controlling the device; Device interface means for interfacing with the device control means; An information processing apparatus having an application and application interface means for interfacing with the application; Channel establishing means for connecting the application interface means and the device interface means via communication means, and establishing a control channel and a data channel between the application and the device; Error suppression means for suppressing error occurrence in data transfer via the channel established by the channel establishment means; Is provided.
  • an information processing method includes: A first activation step of activating device interface means for interfacing with device control means for controlling a device in a communication terminal; A second activation step of activating application interface means for interfacing with an application in the information processing apparatus; A channel establishment step of connecting the application interface unit of the information processing apparatus and the device interface unit of the communication terminal via a communication unit, and establishing a control channel and a data channel between the application and the device.
  • An error suppression step of suppressing an error occurrence in data transfer via the channel established in the channel establishment step; including.
  • an information processing apparatus provides: Application, Application interface means for interfacing with the application; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the application interface unit with a device interface unit that interfaces with a device control unit that controls the device, and a communication unit.
  • Means, Error suppression means for suppressing error occurrence in data transfer via the channel established by the channel establishment means; Is provided.
  • a method for controlling an information processing apparatus includes: An activation step for activating an application interface means for interfacing with the application; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the application interface unit with a device interface unit that interfaces with a device control unit that controls the device, and a communication unit. Steps, An error suppression step of suppressing an error occurrence in data transfer via the channel established in the channel establishment step; including.
  • a control program for an information processing apparatus provides: An activation step for activating an application interface means for interfacing with the application; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the application interface unit with a device interface unit that interfaces with a device control unit that controls the device, and a communication unit. Steps, An error suppression step of suppressing an error occurrence in data transfer via the channel established in the channel establishment step; Is executed on the computer.
  • a communication terminal provides: Device control means for controlling the device; Device interface means for interfacing with the device control means; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the device interface unit via an application interface unit that has an information processing apparatus and interfaces with an application. Means, Error suppression means for suppressing error occurrence in data transfer via the channel established by the channel establishment means; Is provided.
  • a communication terminal control method includes: An activation step of activating device interface means for interfacing with device control means for controlling the device; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the device interface unit via an application interface unit that has an information processing apparatus and interfaces with an application. Steps, An error suppression step of suppressing an error occurrence in data transfer via the channel established in the channel establishment step; including.
  • a communication terminal control program provides: An activation step of activating device interface means for interfacing with device control means for controlling the device; Establishing a channel for establishing a control channel and a data channel between the application and the device by connecting the device interface unit via an application interface unit that has an information processing apparatus and interfaces with an application. Steps, An error suppression step of suppressing an error occurrence in data transfer via the channel established in the channel establishment step; Is executed on the computer.
  • the server provides: Application interface means for interfacing with an application of an information processing apparatus and device interface means for interfacing with device control means of a communication terminal are connected via communication means, and a control channel and a data channel are connected between the application and the device. Acquisition means for acquiring parameters of error suppression means for suppressing the occurrence of errors in data transfer through the established channel, A database for accumulating the acquired parameters; When the application interface unit of the information processing apparatus and the device interface unit of the communication terminal are newly connected via the communication unit, and the control channel and the data channel are established between the application and the device, the database Providing means for selecting appropriate parameters according to connection conditions and providing them to the error suppression means; Is provided.
  • data can be input / output normally even when the serial communication bus is extended by network communication.
  • the information processing system 100 is a system that controls connected devices.
  • the information processing system 100 includes a device 110, a device control unit 120, a device interface unit 130, an information processing device 140, a channel establishment unit 150, and an error suppression unit 160.
  • the device control unit 120 controls the device 110.
  • the device interface unit 130 interfaces with the device control unit 120.
  • the information processing apparatus 140 includes an application 141 and an application interface unit 142 that interfaces with the application 141.
  • a channel establishment unit 150 and an error suppression unit 160 are included.
  • the device control unit 120 controls the device 110 by connecting the application interface unit 142 and the device interface unit 130 via the communication unit 151, and connecting a control channel and a data channel between the application 141 and the device 110. Establish.
  • the error suppression unit 160 suppresses occurrence of errors in data transfer via the channel established by the channel establishment unit 150.
  • the information processing system according to the present embodiment controls a remote USB device connected to a remote communication terminal with a USB (Universal Serial Bus) cable from a host as an information processing apparatus via a network, and connects to the own apparatus. Operate in the same way as the specified device. In that case, a FIFO (First-In First-Out) buffer is arranged to suppress an error due to a delay in data transfer in network communication.
  • a FIFO First-In First-Out
  • the device notifies the occurrence of an error in data transfer, accepts an error occurrence suppression instruction, and adjusts the error occurrence suppression in response to the received suppression instruction.
  • the device is connected to the communication terminal via USB, HDMI (registered trademark), SCSI, SD card connector, and short-range communication.
  • data is transferred by a layer suitable for device control selected from a plurality of layers.
  • FIG. 3A is a diagram showing an overview of an information processing system 310 according to the base technology.
  • the information processing system 310 includes an OS (Operating System) and application 231 executed on the host computer, a device driver 301 that is system software executed on the host computer, and a USB bus interface 226.
  • the device driver 301 includes, for example, a class driver CD (Class Driver) for implementing a different protocol depending on the type of device, a bus driver BD (Bus Driver) for implementing a USB-specific protocol, and an HCD for abstracting a hardware chip. (Host Controller Driver).
  • the USB bus interface 226 is provided by an IC chip including a host controller.
  • a device control unit such as a host computer connected to the device does not have a device driver adapted to the device, the connected device does not operate.
  • FIG. 3B is a diagram showing an outline of the information processing system 320 according to the base technology.
  • the information processing system 320 has a configuration in which a control unit (for example, another computer or a communication terminal) remotely connected via the network 240 proposed by the present inventor controls the device. Even if the remotely connected control unit does not have a device driver adapted to the device, if the interface with the USB bus interface 226 including the host controller is possible, the interface to the OS or application of the host computer By collaborating, it enables remote device control.
  • a control unit for example, another computer or a communication terminal
  • the information processing system 320 includes an OS (application) 231 executed on the host computer, a device driver 302, and a USB bus interface 226.
  • the device driver 302 includes interface software 332 with an OS or application executed on the host computer, and interface software 325 with a USB bus interface 226 including a host controller executed on a remotely connected control unit. Have.
  • the device driver 302 also includes a communication control unit (not shown) that connects the interface software 332 and 325 via the network 240.
  • the host computer can control a remote device in the same manner as a device directly connected to its own bus I / F or serial I / F.
  • a deviation or delay occurs between the communication format and communication speed of the communication path connecting the host computer and the control unit, and the bus I / F and serial I / F format and speed of the remotely connected device.
  • a data transfer error occurs.
  • USB connection especially in the case of interrupt transfer or isochronous transfer, a data transfer error has a serious result.
  • FIG. 3C is a diagram showing a USB transfer method according to the base technology.
  • the USB transfer system basically includes a control transfer 311, a bulk transfer 312, an interrupt transfer 313, and an isochronous transfer 314.
  • the control transfer 311 is half-duplex communication for setup and setting parameter transfer, and has a small amount of data.
  • the bulk transfer 312 is a one-way communication between IN and OUT of large-capacity high-speed data such as a storage device or a scanner, but controls transferred data.
  • the interrupt transfer 313 is a regular transfer (basically a request from the host) of measurement or small-capacity data of a machine device, but a data transfer error leads to an operation error of the device.
  • the isochronous transfer 314 is a transfer that should guarantee the amount of data within a certain period in real time such as voice and video, and since there is no retransmission process, the reliability of the data transfer is important.
  • the information processing system is capable of correctly inputting / outputting data even when the serial communication bus is extended by network communication by suppressing the occurrence of an error in data transfer via a channel. To do.
  • FIG. 2A is a block diagram illustrating a configuration of the information processing system 200 according to the present embodiment.
  • the information processing system 200 includes communication terminals 221, 222, and 223 connected via a network 240 to a host 230 serving as an information processing apparatus.
  • Devices 212 to 215 are connected to the communication terminals 221, 222, and 223 through serial buses 261 to 265, respectively.
  • the devices 213 and 214 are connected via a hub.
  • a device 211 is connected to the host 230.
  • the devices 211 and 212 are DVD units
  • the device 213 is a thermometer
  • the device 214 is a sphygmomanometer
  • the device 215 is a machine tool.
  • the devices connected in this way are displayed as follows on the display screen of the device manager indicating devices that can be operated from the host 230.
  • the device 211 connected to the USB connector of the host 230 is displayed as “USB_DVD” 231 in the internal universal_serial_bus_controller column.
  • the devices 212 to 2156 connected to the outside via the network 240 have “USB_DVD” 232, “USB_thermometer” 233, “USB_blood pressure meter” 234, and “USB_machine tool” in the remote_universal_serial_bus column, respectively. “235” is displayed. From the host 230, a device connected to the own device and a device remotely connected via the network 240 are operated as the same connection device.
  • the network 240 is described as remote communication including a public line and wireless communication.
  • the network 240 is connected to a LAN or short-range wireless communication (for example, Bluetooth (registered trademark) or Wi-Fi). Even if they are replaced with each other or a combination thereof, the same effect can be realized and the same effect can be obtained.
  • a LAN or short-range wireless communication for example, Bluetooth (registered trademark) or Wi-Fi.
  • FIG. 2B is a diagram showing an overview of the information processing system 200 according to the present embodiment.
  • the outline of the information processing system 200 mainly shows a software configuration in contrast with FIG. 3B.
  • the information processing system 200 includes an OS (application) 231 executed on a host computer, a device driver 201, and a USB bus interface 226.
  • the device driver 201 has an application interface (application IF in the figure) 232 that executes an interface with an OS or application executed on the host computer.
  • the device driver 201 also has a host controller interface (host controller IF in the figure) 225 that executes an interface with the USB bus interface 226 on the control unit connected remotely.
  • the device driver 201 also includes a communication control unit (not shown) that connects the application interface 232 and the host controller interface 225 via the network 240.
  • FIFO 232a for absorbing jitter generated by the communication format and communication speed in the communication control unit and application interface 232, and / or generated by the communication format and communication speed in the communication control unit and host controller interface 225.
  • FIFO 225a for absorbing jitter, adjusting the data flow rate, and the like.
  • the capacities of the FIFO 232a and the FIFO 225a mainly depend on the data flow rate between the host controller and the device and the data flow rate on the network. For example, as the capacity determination procedure 202, the communication amount per fixed time is measured and determined as the communication speed control per fixed time necessary for maintaining the data flow rate between the host controller and the device.
  • the FIFO capacity is set so that the time corresponding to the preset number is accumulated for the set time slot example (1 s / 125 ⁇ s / 1 ms) and a predetermined number of PKTs can be output to the set time slot.
  • a predetermined number of PKTs can be output to the set time slot.
  • the conditions for example, (1) 1000 1000 packets per second, (2) voice, etc., communicate a predetermined number of PKTs at an integer multiple of 125 ⁇ sec, (3) video, etc. per 1 ms Set to enable communication with the same number of frames.
  • jitter absorption and data flow rate adjustment are not limited to FIFO 232a and FIFO 225a.
  • Other components such as a rotation memory and TDM (Time Division Multiplexing) may be used.
  • the host computer can control a remote device in the same way as a device directly connected to its own bus I / F or serial I / F, and suppresses errors in data transfer via the channel. Even when the serial communication bus is extended by network communication, data can be input / output normally.
  • FIG. 2C is a diagram illustrating a concept of the information processing system 200 according to the present embodiment.
  • the OS and BIOS Basic Input / Output System
  • BIOS Basic Input / Output System
  • the information processing system 200 in FIG. 2C includes a host 230 as an information processing device, a communication terminal 220 that is remote and connected to the host 230 via the network 240, and a USB device connected to the USB connector of the communication terminal 220. 210.
  • the host 230 includes, as software, application software 231 and an application interface 232 as a part of a device driver.
  • the application software 231 is software for providing a service provided in advance by the host 230 or a service developed by the user.
  • the application interface 232 interprets the structure of the input / output file operation requested by the application software 231 and transmits control information and data transmitted / received via the network 240 according to the target device of the input / output file operation, its protocol, data format, and the like. Generate a structure that defines In this example, since the input / output file is accessed to the USB device 210, data transmission / reception in accordance with a command or data format corresponding to the USB protocol is prepared.
  • the application interface 232 includes a FIFO 232a that adjusts the data flow rate as a configuration shared with the communication unit.
  • the communication terminal 220 includes a host controller interface 225 as a part of a device driver and a USB bus interface 226 having a host controller and SIE (Serial Interface Interface Engine) as software.
  • the host controller interface 225 passes commands, data, and the like according to the USB protocol received from the application interface 232 to the host controller of the USB bus interface 226 via the network 240 in a format that can be understood.
  • the host controller interface 225 transmits data, device status, and the like passed from the host controller of the USB bus interface 226 via the network 240 to the application interface 232 via the network 240.
  • the host controller interface 225 includes a FIFO 225a that adjusts the data flow rate as a configuration shared with the communication unit.
  • the host controller of the USB bus interface 226 executes serial communication via the USB cable 260 according to the USB protocol while exchanging commands and data with the host controller interface 225.
  • the SIE of the USB bus interface 226 controls the signal on the USB cable 260 according to the USB communication specification.
  • the USB device 210 has, as software, a USB bus interface 216 of the USB device 210 that exchanges signals by connecting to the USB bus interface 226 of the communication terminal 220 via the USB cable 260.
  • the USB device 210 also has an endpoint 0217 composed of FIFO 0 for storing descriptors including device information and control information, and endpoints 1 to n 218 composed of FIFOs 1 to n for storing input / output data.
  • the communication terminal 220 and the USB device 210 perform physical level communication through the mutual USB bus interfaces 226 and 216.
  • Control communication as basic processing is realized between the application software 231 and the endpoint 0217 via the default pipe 251 by system level control transfer via the application interface 232, the network 240, and the host controller interface 225.
  • data communication as each method of the device class is realized between the application software 231 and the end points 1 to n 218 via the data pipe group 252.
  • the application interface 232, the host controller interface 225, the FIFO 232a shared by the communication unit, and / or the FIFO 225a realizes jitter absorption and data flow adjustment, and suppresses errors in data transfer through the channel. Even if the serial communication bus is extended by network communication, data is input / output normally.
  • FIG. 2D is a diagram illustrating communication path error processing of the information processing system 200 according to the present embodiment.
  • FIG. 2D a countermeasure example when a data transfer error occurs in the communication path in the host 230 is illustrated.
  • a communication path error 236 is displayed, and the remote USB bus 235 in which the error has occurred is reported.
  • a communication channel error may be notified by voice.
  • the handling operation for the communication path error the user is inquired about the bandwidth expansion 237 on the network and the capacity increase 238 of the FIFO 232a. For example, when the user instructs the bandwidth expansion 237 and there is no communication channel error, the communication channel reservation 239 is notified as shown in the upper right diagram.
  • FIG. 2D a countermeasure example when a data transfer error occurs in the communication path in the communication terminal 220 such as a smartphone is illustrated.
  • a communication path error 227 is displayed and the remote USB bus in which the error has occurred is reported.
  • a communication channel error may be notified by voice.
  • an inquiry 228 for expanding the bandwidth on the network and increasing the capacity of the FIFO 232a is displayed.
  • the communication channel reservation 229 is notified as shown in the lower right diagram.
  • bandwidth expansion may be performed in units of user operations or may be automatically expanded to an appropriate bandwidth.
  • band expansion may be performed by securing a plurality of communication paths.
  • FIFO capacity increase may be automatically adjusted to an appropriate capacity even if it is performed in units of user operations.
  • an appropriate combination of band expansion and FIFO capacity increase may be selected in consideration of communication conditions and the like.
  • FIG. 2E is a diagram illustrating a configuration of a communication message according to the present embodiment. Note that the format of the communication message is not limited to FIG. 2E.
  • FIG. 2E shows a control message 270 transmitted / received on the control channel that is the default pipe 251 and a data message 280 transmitted / received on the data channel that is the data pipe group 252.
  • the control message transmitted from the host 230 to the communication terminal 220 includes an IP address 271, a transmission destination area / transmission source area 272, communication data 273, and error correction, for example, CRC 274.
  • IP address 271 a destination communication terminal address and a source host address are set.
  • the transmission destination area / transmission source area 272 the FIFO 0 of the USB device 211 (212) is designated as the transmission destination area, and the USB buffer 0 of the host 230 is designated as the transmission source area.
  • the communication data 273, a device address assigned by the host 230 and a control command for the USB device 211 (212) are transmitted.
  • the control message transmitted from the communication terminal 220 to the host 230 has an IP address 275, a transmission destination area / transmission source area 276, communication data 277, and error correction, for example, CRC 278.
  • IP address 275 a destination host address and a source communication terminal address are set.
  • the transmission destination area / transmission source area 276, the USB buffer 0 of the host 230 is designated in the transmission destination area, and the FIFO 0 of the USB device 211 (212) is designated in the transmission source area.
  • the communication data 277 the device descriptor and device status of the USB device 211 (212) are transmitted.
  • the data message transmitted from the host 230 to the communication terminal 220 has an IP address 281, a transmission destination area / transmission source area 282, communication data 283, and error correction, for example, CRC 284.
  • IP address 281 a destination communication terminal address and a source host address are set.
  • transmission destination area / transmission source area 282 FIFO 1 to n of the USB device 210 is associated with the transmission destination area, and USB buffers 1 to n of the host 230 are associated with the transmission source area.
  • the communication data 283, one or a plurality of bulk OUT data is transmitted.
  • a data message transmitted from the communication terminal 220 to the host 230 has an IP address 285, a transmission destination area / transmission source area 286, communication data 287, and error correction, for example, CRC288.
  • IP address 285, a destination host address and a source communication terminal address are set.
  • the USB buffers 1 to n of the host 230 are associated with the transmission destination area, and the FIFOs 1 to n of the USB device 210 are associated with the transmission source area.
  • the communication data 287 one or a plurality of bulk IN data is transmitted.
  • the encapsulated IP address is network communication between the host 230 and the communication terminal 220.
  • the data includes a USB buffer secured by the application software 231 in the host 230, and the USB device 211 (212). It is transmitted to and from the FIFO that is the endpoint of the.
  • FIG. 2F is a diagram showing a communication data configuration according to the present embodiment.
  • the IP address for cabselling in FIG. 2E is omitted.
  • FIG. 2F shows an example of a communication data configuration that implements the present embodiment, but the present invention is not limited to this.
  • function parameters can be transmitted and received as communication data in the upper layer of the device driver, and the function itself can be transmitted and received.
  • FIG. 2F shows a basic communication data configuration 273/277, a communication data configuration 273 in the case of USB, and a communication data configuration 277 in the case of other HDMI (registered trademark) and SCSI.
  • the communication data structure 273/277 has device specifying information.
  • the device specifying information includes a device type, a connection bus type, and a device identifier.
  • the communication data structure 273/277 has a transfer mode in the connection bus and information to be transferred through the connection bus. Information to be transferred includes commands, statuses and data.
  • the communication data configuration 273 in the case of USB has, as device identification information, industrial equipment that is a device type, USB that is a connection bus, and IE001 that is a device identifier.
  • the communication data structure 273 in the case of USB includes a USB control transfer as a transfer mode and a USB request and a device descriptor as transfer information. According to such a configuration, it is not necessary to consider the limitation of 127 units at the maximum due to the conventional USB connection.
  • the communication data configuration 277 in the case of other HDMI (registered trademark) or SCSI has a monitor, HDMI (registered trademark), MT0002, CD, SCSI, and CD0005 as device specifying information.
  • the transfer mode 2 includes HDMI (registered trademark) control and SCSI control, and transfer information includes DDC / CED and command / response.
  • FIG. 2G is a diagram illustrating data transmission in the information processing system 200 according to the present embodiment.
  • FIG. 2G shows L2 level communication in the USB device, but the communication may be at a lower level or an upper level.
  • FIG. 2G is a sequence diagram showing a descriptor acquisition procedure for a USB device connected by USB.
  • the descriptor set in the device 210 is acquired by a USB request such as GET_DESCRIPTOR. Each USB request is exchanged with the device 210 by control transfer. Each control transfer consists of a set stage, a data stage, and a status stage. Each stage consists of a token packet, a data packet, and a handshake packet. The descriptor is acquired in the data packet of each data stage. The descriptor acquired from the device 210 is subjected to IP encapsulation using an IP header or a TCP header, and is transmitted to the information processing device 230 from the USB hub 221 formed of a mobile terminal.
  • IP encapsulation using an IP header or a TCP header
  • the class driver 232 and the bus driver that configure the application interface of the information processing device 230 first generate a control transfer and a GET DESCRIPTOR USB request in order to confirm the connected device To the communication control unit.
  • the control transfer and the USB request of GET DESCRIPTOR which are IP-encapsulated by the IP header or the TCP header, are received and IP-encapsulated by the communication control unit of the USB hub 221 including the communication terminal.
  • the control transfer and the GET DESCRIPTOR USB request are passed to the host controller driver 225.
  • the host controller driver 225 instructs a USB bus interface (not shown) to generate each packet on the USB bus to the device 210 based on the control transfer and the USB request of GET DESCRIPTOR.
  • the host controller driver 225 extracts the data packet received at the data stage received from the device 210 as a device descriptor, and passes it to the communication control unit as a control transfer and device descriptor.
  • the control transfer and the device descriptor that are IP-encapsulated by the IP header or the TCP header are transmitted from the communication control unit of the communication terminal 220 to the communication control unit of the information processing device 230.
  • the class driver 232 responds to the device input / output request of the application 231, Notify connected device information.
  • the host controller driver 225 and the USB bus interface 226 may be integrated software.
  • FIG. 4 is a block diagram illustrating a functional configuration of the information processing apparatus 230 according to the present embodiment.
  • FIG. 4 illustrates functional components that are deeply related to the operation of the present embodiment, and does not illustrate normal functional components included in the information processing apparatus 230.
  • various processing functions in the case where the information processing apparatus 230 is a personal computer (hereinafter, PC) are not shown.
  • the information processing apparatus 230 includes a communication control unit 401, a channel establishment unit 402, an error suppression unit 405, and an application database (application DB in the figure) 410.
  • the communication control unit 401 controls communication with the communication terminal 220 via the network 240.
  • the channel establishment unit 402 includes an application start unit 403 and an application interface activation unit 404, and establishes a channel to the information processing device 230, the communication terminal 220, and the USB device 210.
  • the error suppression unit 405 includes a FIFO 232a and adjusts the data flow rate of the network 240 so that no error occurs.
  • the application database 410 stores a plurality of applications 411 and a plurality of application interfaces 412 that are part of the device driver.
  • the application starting unit 403 selects and starts an application from the application database 410 in order to provide a service to the user.
  • the application interface activation unit 404 searches the application database 410 for an application interface for realizing the input / output file operation specified by the application started by the application start unit 403 and starts it.
  • FIG. 5 is a block diagram showing a functional configuration of the communication terminal 220 according to the present embodiment.
  • FIG. 5 illustrates functional components that are closely related to the operation of the present embodiment, and does not illustrate normal functional components that the communication terminal 220 has. For example, various processing functions when the communication terminal 220 is a smartphone or a tablet are not shown.
  • the communication terminal 220 includes a communication control unit 501, a channel establishment unit 502, and an error suppression unit 506.
  • the communication control unit 501 controls communication with the information processing device 230 via the network 240.
  • the channel establishment unit 502 includes a host controller interface activation unit 503, a USB host controller 504 as a device control unit, and a USB connector 505 including SIE.
  • the host controller interface activation unit 503 activates a host controller interface that interfaces with the USB host controller 504, which is a part of the device driver.
  • the USB host controller 504 controls packet exchange of the USB bus interface 226 in order to realize the input / output file operation instructed by the application started by the application start unit 403.
  • a USB cable is connected to the USB connector 505 for exchanging packets with the USB device 210.
  • the error suppression unit 405 has a FIFO 225a and adjusts the data flow rate of the network 240 so that no error occurs.
  • FIG. 6 is a diagram illustrating a flow of information in the information processing system 200 according to the present embodiment.
  • FIG. 6 shows main storage areas, and detailed configuration is omitted.
  • an input / output file structure 631, a USB buffer 632, a communication structure 633, and a FIFO 232a are secured.
  • the input / output file structure 631 is secured when the application software 231 instructs an input / output file operation.
  • the application software 231 instructs an input / output file operation.
  • a function group that performs predetermined processing corresponding to a file storage destination, a device type, an input / output protocol, and the like, and a device Information and input / output buffers.
  • the USB buffer 632 has buffers corresponding to the respective endpoints that are secured when the device type is a USB device in accordance with the processing of the function group of the input / output file structure 631 by the application interface 232.
  • the communication structure 633 is a structure secured when the application interface 232 is in a remote location via a network in accordance with the processing of the function group of the input / output file structure 631.
  • the communication structure 633 includes a function group for setting a protocol, a message format, a communication speed, and the like related to communication, a transmission buffer that temporarily stores transmission data, and a reception buffer that temporarily stores reception data.
  • a FIFO capacity table 610 that stores FIFO capacity corresponding to information related to USB and information related to communication is stored, and an appropriate capacity of the FIFO 232a is secured.
  • the procedure for securing the FIFO 232a is not limited to this example.
  • the maximum FIFO capacity may be prepared in advance, and the capacity to be used may be adjusted while measuring the data flow rate during device control.
  • USB buffer 632 is not essential. Data transfer may be performed directly between the input / output file structure 631 input / output buffer and the transmission buffer and reception buffer of the communication structure 633.
  • the communication structure 621 is a structure associated with the communication structure 633 secured by the application interface 232.
  • the communication structure 621 includes a function group for setting a protocol, a message format, a communication speed, and the like related to communication, a reception buffer that temporarily stores reception data, and a transmission buffer that temporarily stores transmission data.
  • the USB buffer 622 has buffers corresponding to the endpoints of the USB device 210, which are secured when the device type is a USB device.
  • a similar FIFO capacity table 610 that stores FIFO capacity corresponding to information related to USB and information related to communication is stored, and an appropriate capacity of the FIFO 225a is secured.
  • the procedure for securing the FIFO 225a is not limited to this example.
  • the maximum FIFO capacity may be prepared in advance, and the capacity to be used may be adjusted while measuring the data flow rate during device control.
  • FIFO0 to FIFOOn are prepared as end points 611 according to the device type.
  • FIG. 7A is a diagram showing a configuration of the FIFO capacity table 610 according to the present embodiment.
  • the determination of the FIFO capacity using the FIFO capacity table is not limited to FIG. 7A.
  • determination of a communication band is also added.
  • the FIFO capacity table 610 includes the USB information 711 including the USB transfer method and transfer speed, the communication information 712 including the communication data format, communication method, and communication speed, the USB information 711 and the communication information 712 in consideration of the host side. And the terminal-side FIFO capacity 713 and the communication band 714 are stored.
  • the FIFO capacity 713 and the communication band 714 also change according to the level at which the device input / output processing in the host 230 and the device input / output processing in the communication terminal 220 are divided by network communication. For example, when the host 230 generates a device input / output buffer of the application 231 and performs other device input / output processing at the communication terminal 220, data communication is performed with a macro data amount that can maintain device input / output at the communication terminal 220. Good.
  • the host 230 when the host 230 generates a basic format of device input / output data, and the communication terminal 220 disassembles the received data and performs device input / output, the data communication enables the device input / output at the communication terminal 220 to be maintained at a micro level. There must be.
  • FIG. 7B is a diagram showing a USB format and protocol according to the present embodiment.
  • the data transfer of the communication unit in the present embodiment may be at any of the following levels, and is not limited to them.
  • the entire configuration 721 is composed of a plurality of frames starting from SOF (Start of Frame) and having one set of a group of transactions that are usually communicated at a cycle of 1 ms.
  • the content communicated as communication data may be the above-described one frame or a plurality of frames.
  • the host 230 generates a group of transactions by a macro program (function) corresponding to each USB device 210 and communicates with the communication terminal 220.
  • the communication terminal 220 executes a frame-to-transaction, further conversion into a packet and data exchange with the USB device 210.
  • Each frame configuration 722 is composed of a group of a plurality of transactions starting from SOF.
  • the transaction configuration 723 is three transmission / reception units of “SETUP”, “OUT”, and “IN”. Then, a packet which is the smallest communication unit constituting each transaction is serially communicated via the USB cable 260.
  • unshaded data is data transmitted from the device to the host computer
  • shaded data is data transmitted from the host computer to the device.
  • the contents communicated as communication data may be a plurality of transactions or each transaction unit.
  • the host 230 generates a transaction by a transaction unit program (function) corresponding to each USB device 210 and communicates with the communication terminal 220. In the communication terminal 220, conversion from transaction to packet and data exchange with the USB device 210 are executed.
  • the control transfer protocol 724 is a protocol for transferring a control command and a device descriptor as control data so as to generate the bidirectional default pipe 251 of FIG. 2C.
  • the control transfer protocol 724 includes “No-data Control” that does not include transfer data, “Control Write” that transmits a control command to the device, and “Control Read” that receives a device descriptor or the like from the device.
  • the bulk transfer protocol 725 is a protocol for asynchronously transferring a large amount of data so as to generate the one-way data pipe group 252 of FIG. 2C.
  • the bulk transfer protocol 725 includes “Bulk Write” for transmitting data to the device and “Bulk Read” for receiving data from the device.
  • the interrupt transfer protocol 726 apparently causes the device to respond to the host computer's periodic polling at any time to generate a one-way data pipe group 252 in FIG. 2C. It is a protocol that transfers as if a notification was made. Interrupt transfer is a small amount, and is used for transferring data whose timing is indefinite when data is generated.
  • the interrupt transfer protocol 726 includes “Interrupt Write” for transmitting data to the device and “Interrupt Read” for receiving data from the device.
  • the isochronous transfer protocol 727 is a protocol in which data transfer is periodically performed so as to generate the one-way data pipe group 252 of FIG. 2C. In the isochronous transfer protocol 727, time is more important than data reliability, and retransmission due to an error is not performed. It is used for data transfer such as voice and CCD camera video.
  • the isochronous transfer protocol 727 includes “Isochronous Write” for transmitting data to the device and “Isochronous Read” for receiving data from the device.
  • each transfer protocol may be associated as a frame, or a plurality of transfer protocols may be combined to form a frame.
  • communication in various layers between the application interface 232 and the host controller interface 225 constituting the device driver can be realized by the format negotiation between the host 230 side and the communication terminal 220 side.
  • FIG. 8 is a block diagram illustrating a hardware configuration of the information processing apparatus 230 according to the present embodiment.
  • a CPU (Central Processing Unit) 810 is a processor for calculation control, and implements a functional configuration unit of the information processing apparatus 230 in FIG. 4 by executing a program.
  • a ROM (Read Only Memory) 820 stores fixed data and programs such as initial data and programs.
  • the communication control unit 401 communicates with the communication terminal 220 via the network 240. Note that the number of CPUs 810 is not limited to one, and may be a plurality of CPUs or may include a GPU for image processing.
  • the communication control unit 401 preferably includes a CPU independent of the CPU 810 and writes or reads transmission / reception data in a RAM (Random Access Memory) 840 area.
  • the input / output interface 860 preferably has a CPU independent of the CPU 810 and writes or reads input / output data to / from the area of the RAM 840. Therefore, the CPU 810 recognizes that the data has been received or transferred to the RAM 840 and processes the data. In addition, the CPU 810 prepares the processing result in the RAM 840 and leaves the subsequent transmission or transfer to the communication control unit 401, the DMAC, or the input / output interface 860.
  • the RAM 840 is a random access memory that the CPU 810 uses as a work area for temporary storage.
  • the RAM 840 has an area for storing data necessary for realizing the present embodiment.
  • the input / output file structure 631 is a structure generated by the OS in response to an input / output file operation of the application software 231.
  • the input / output file structure 631 includes an area for a file processing function group, an input / output flag, and an input / output buffer.
  • the communication structure 633 is a structure for the application interface 232 to pass communication control by the communication control program 858.
  • the communication structure 633 includes areas of a network processing function group, a transmission buffer, and a reception buffer.
  • the communication structure 633 includes, for example, a FIFO capacity table 610 and a FIFO 232a.
  • the USB buffer 632 is a buffer associated with the FIFO (endpoint) of the USB device 210, and the control data buffer 0 and the data buffers 1 to n correspond to the type of the USB device 210 and input / output processing. Included. Note that the USB buffer 632 is not an essential configuration, and data may be directly exchanged between the input / output file structure 631 and the communication structure 633.
  • the storage 850 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the application storage unit 851 stores application software provided by the information processing apparatus 230 so as to be searchable.
  • the function group storage unit 852 stores the functions used by the information processing apparatus 230 so that they can be searched.
  • the driver storage unit 853 stores a device driver and an application interface that is a part of the device driver so as to be searchable.
  • the storage 850 stores the following programs.
  • the OS 854 is a basic program that controls the entire information processing apparatus 230.
  • the BIOS 855 is a basic program that controls input / output operations of the information processing apparatus 230.
  • the application software 231 is an application program that is currently being executed by the information processing apparatus 230.
  • the application interface 232 is a program that realizes an interface with the application software 231 as a part of the device driver.
  • the communication control program 858 is a program that causes the communication control unit 401 to communicate with the communication terminal 220.
  • the input / output interface 860 interfaces input / output data with input / output devices.
  • a display unit 861 and an operation unit 862 are connected to the input / output interface 860.
  • the device can be directly connected to the information processing apparatus 230 with a serial bus cable, a USB controller (connector) 863, a SCSI controller (connector) 864, an HDMI (registered trademark) controller (connector) 865 can be used.
  • Etc. may be connected.
  • a speaker that is an audio output unit, a microphone that is an audio input unit, or a GPS position determination unit may be connected.
  • RAM 840 and the storage 850 in FIG. 8 do not show programs and data related to general-purpose functions and other realizable functions that the information processing apparatus 230 has.
  • 9A and 9B are flowcharts showing a processing procedure of the information processing apparatus 230 according to the present embodiment. This flowchart is executed by the CPU 810 of FIG. 8 using the RAM 840, and implements the functional configuration unit of FIG. In FIG. 9A and FIG. 9B, a processing procedure by the application interface 232 will be described.
  • the information processing apparatus 230 acquires the input / output file structure passed from the application software 231 in step S901.
  • the information processing apparatus 230 refers to the input / output file structure and secures a USB buffer.
  • the information processing apparatus 230 refers to the input / output file structure and generates a communication structure.
  • the information processing apparatus 230 requests a device descriptor of the USB device 210.
  • the information processing apparatus 230 waits for reception of the device descriptor of the USB device 210.
  • the information processing apparatus 230 sets the received device descriptor in the reserved USB buffer 0 in step S911. In step S913, the information processing apparatus 230 transfers the received device descriptor to the input / output file structure.
  • the received device descriptor is analyzed by the OS or BIOS, the application interface 232, the application software 231 or the cooperation thereof.
  • step S915 in the case of USB, the information processing apparatus 230 determines whether the data transfer method is bulk transfer, interrupt transfer, or isochronous transfer.
  • step S923 the information processing apparatus 230 instructs bulk transfer in step S921.
  • step S923 the information processing apparatus 230 performs data transfer between the USB buffer 632 and the input / output file structure 631.
  • step S925 the information processing apparatus 230 determines whether or not the data transfer has been completed. If the data transfer has not been completed, the information processing apparatus 230 returns to step S923 and repeats the data transfer.
  • step S933 the information processing apparatus 230 secures the FIFO 232a based on the FIFO capacity table 610 based on the USB transfer method, transfer speed, communication method, communication method, and the like.
  • step S935 the information processing apparatus 230 performs data transfer between the USB buffer 632 and the input / output file structure 631.
  • step S937 the information processing apparatus 230 determines whether an error has occurred in the communication path data.
  • the information processing apparatus 230 changes the FIFO capacity or the communication band in step S939, returns to step S935, and repeats data transfer. If there is no error in the communication path data, the information processing apparatus 230 determines in step S941 whether or not the data transfer is completed. If not completed, the information processing apparatus 230 returns to step S935 and repeats the data transfer.
  • the information processing apparatus 230 acquires the status of input / output processing in step S951. In step S953, the information processing apparatus 230 passes the input / output processing status to the input / output file structure and notifies the application software 231 of the status.
  • FIG. 10 is a block diagram illustrating a hardware configuration of the communication terminal 220 according to the present embodiment.
  • a CPU 1010 is a processor for arithmetic control, and implements a functional component of the communication terminal 220 of FIG. 5 by executing a program.
  • the ROM 1020 stores fixed data and programs such as initial data and programs.
  • the communication control unit 501 communicates with the information processing apparatus 230 via the network 240.
  • the number of CPUs 1010 is not limited to one, and may be a plurality of CPUs or may include a GPU for image processing.
  • the communication control unit 501 has a CPU independent of the CPU 1010 and writes or reads transmission / reception data in an area of the RAM 1040.
  • the input / output interface 1060 preferably includes a CPU independent of the CPU 1010 and writes or reads input / output data in the RAM 1040 area. Accordingly, the CPU 1010 recognizes that the data has been received or transferred to the RAM 1040 and processes the data. Further, the CPU 1010 prepares the processing result in the RAM 1040, and leaves the subsequent transmission or transfer to the communication control unit 501, the DMAC, or the input / output interface 1060.
  • the RAM 1040 is a random access memory used by the CPU 1010 as a temporary storage work area.
  • the RAM 1040 has an area for storing data necessary for realizing the present embodiment.
  • the communication structure 621 is a structure for the host controller interface 225 to pass communication control by the communication control program 1057.
  • the communication structure 621 includes areas for a network processing function group, a transmission buffer, and a reception buffer.
  • the communication structure 621 includes, for example, a FIFO capacity table 610 and a FIFO 225a.
  • the USB buffer 622 is a buffer associated with the FIFO (end point) of the USB device 210.
  • the control data buffer 0 and the data buffers 1 to n correspond to the type of the USB device 210 and input / output processing. Included.
  • the storage 1050 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the function group storage unit 1051 stores the functions used by the communication terminal 220 so as to be searchable.
  • the core driver storage unit 1052 stores the core driver of the device driver, the host controller interface that is a part of the device driver, and the like so as to be searchable.
  • the storage 1050 stores the following programs.
  • the OS 1053 is a basic program that controls the entire communication terminal 220.
  • the BIOS 1054 is a basic program that controls input / output operations of the communication terminal 220.
  • the host controller interface 225 is a program that implements an interface with the host controller as part of the device driver.
  • a core driver 1056 including a host controller is a program for controlling USB serial communication.
  • the communication control program 1057 is a program that causes the communication control unit 501 to communicate with the information processing apparatus 230.
  • the input / output interface 1060 interfaces input / output data with input / output devices.
  • a display unit 1061, an operation unit 1062, and USB controllers (connectors) 504 and 505 are connected to the input / output interface 1060.
  • a speaker that is an audio output unit, a microphone that is an audio input unit, or a GPS position determination unit may be connected.
  • RAM 1040 and storage 1050 in FIG. 10 do not show programs and data related to general-purpose functions and other realizable functions of the communication terminal 220.
  • FIG. 11A and FIG. 11B are flowcharts showing a processing procedure of the communication terminal 220 according to the present embodiment. This flowchart is executed by the CPU 1010 of FIG. 10 using the RAM 1040, and implements the functional configuration unit of FIG. In FIG. 10A and FIG. 10B, a processing procedure by the host controller interface 225 will be described.
  • step S1101 the communication terminal 220 secures a USB buffer in association with the FIFO (end point) of the USB device 210.
  • step S1103 the communication terminal 220 generates a communication structure.
  • step S1105 the communication terminal 220 requests a device descriptor from the USB device 210.
  • the communication terminal 220 waits for acquisition of a device descriptor from the USB device 210 in step S1107.
  • the communication terminal 220 Upon acquiring the device descriptor of the USB device 210, the communication terminal 220 sets the acquired device descriptor in the reserved USB buffer 0 in step S1109. In step S ⁇ b> 1111, the communication terminal 220 transmits the acquired device descriptor to the information processing apparatus 230.
  • step S1113 in the case of USB, the communication terminal 220 determines whether the data transfer method is bulk transfer, interrupt transfer, or isochronous transfer.
  • the communication terminal 220 instructs bulk transfer in step S1121.
  • the communication terminal 220 performs data transfer between the USB buffer 622 and the USB device 210 in step S1123.
  • step S1125 the communication terminal 220 determines whether or not the data transfer is completed. If not completed, the communication terminal 220 returns to step S1123 and repeats the data transfer.
  • step S1133 the communication terminal 220 secures the FIFO 225a based on the FIFO capacity table 610 from the USB transfer method, transfer speed, communication method, communication method, and the like. Then, the communication terminal 220 performs data transfer between the USB buffer 622 and the USB device 210 in step S1135.
  • step S1137 the communication terminal 220 determines whether an error has occurred in the communication path data. If an error has occurred in the communication channel data, the communication terminal 220 changes the FIFO capacity or the communication band in step S1139, returns to step S1135, and repeats data transfer. If there is no error in the communication channel data, the communication terminal 220 determines in step S1141 whether or not the data transfer is completed. If not completed, the communication terminal 220 returns to step S1135 and repeats the data transfer.
  • the communication terminal 220 acquires a device status in step S1151. Then, the communication terminal 220 transmits the device status to the information processing apparatus 230 in step S1153.
  • the information processing system according to the present embodiment performs a communication test before remote device input / output processing to determine whether a communication path data error occurs in the device input / output.
  • a FIFO capacity and a communication band are set so that a communication channel data error does not occur. That is, a communication test is performed on data transfer through the data channel, and the suppression of error occurrence is adjusted according to the test result of the communication test. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 12 is a diagram showing an overview of the information processing system 1200 according to the present embodiment.
  • the same components as those in FIG. 12 are identical to FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG. 12, the same components as those in FIG.
  • the information processing system 1200 includes an OS (application) 231 executed on the host computer, a device driver 1201, and a USB bus interface 226.
  • the device driver 1201 has a communication test function 1202 that transmits a test packet (TEST_PKT) from the application interface 232 to the host controller interface 225 via the network 240 to test the communication status.
  • TEST_PKT test packet
  • the communication time can be measured by a packet having a time stamp or a packet having a serial number.
  • the communication test function 1202 reciprocates a test packet having a capacity of 1 packet via the communication path, tests the delay and jitter of the forward path, or the delay and jitter of the return path, and determines each capacity of the FIFO 232a and the FIFO 225a from the test result. By setting the communication bandwidth, the communication path data error is prevented from occurring.
  • the data volume may be gradually increased to ascertain stable communication and the amount of communication that can be input / output to the device.
  • jitter absorption and data flow rate adjustment are not limited to the FIFO 232a and the FIFO 225a.
  • Other components such as a rotation memory and TDM (Time Division Multiplexing) may be used.
  • the host computer can control a remote device in the same manner as a device directly connected to its own bus I / F or serial I / F.
  • data can be input / output normally even when the serial communication bus is extended by network communication without causing an error in data transfer via the channel.
  • FIG. 13A is a block diagram illustrating a functional configuration of the information processing apparatus 1330 according to the present embodiment.
  • the same functional components as those in FIG. 13A are identical to FIG. 13A.
  • the communication test unit 1307 reciprocates a test packet of 1 packet capacity through the communication path via the communication control unit 401, and tests the delay and jitter in the forward path or the delay and jitter in the return path to determine an error. An appropriate setting of the FIFO 232a capacity and communication band of the suppression unit 405 is performed.
  • FIG. 13B is a block diagram illustrating a functional configuration of the communication test unit 1307 according to the present embodiment. Note that the functional configuration of the communication test unit 1307 is not limited to FIG. 13B.
  • the communication test unit 1307 includes a 1-packet transmission unit 1311, a transmission destination reception time acquisition unit 1312, and a transmission packet reception time acquisition unit 1313.
  • the communication test unit 1307 includes a transmission delay calculation unit 1314, a loop delay calculation unit 1315, a USB information acquisition unit 1316, and a communication information acquisition unit 1317.
  • the communication test unit 1307 includes a FIFO capacity and communication band control unit 1318, a FIFO capacity change unit 1320, and a communication band change unit 1321.
  • the 1-packet transmission unit 1311 transmits a packet having a test time stamp and serial number.
  • the transmission destination reception time acquisition unit 1312 receives a reply including the test packet reception time from the transmission destination communication terminal 220.
  • the transmission packet reception time acquisition unit 1313 receives the looped back packet and acquires the loop time based on the time stamp and the serial number.
  • the transmission delay calculation unit 1314 calculates the transmission delay time from the transmission / reception time between the one-packet transmission unit 1311 and the transmission destination reception time acquisition unit 1312.
  • the loop delay calculation unit 1315 calculates the loop delay time from the transmission / reception time between the one-packet transmission unit 1311 and the transmission packet reception time acquisition unit 1313.
  • the USB information acquisition unit 1316 acquires USB information including a USB transfer method and a transfer speed with respect to connection of a device for input / output control.
  • the communication information acquisition unit 1317 acquires communication information including a communication method such as a network and a communication speed.
  • the FIFO capacity and communication bandwidth control unit 1318 has a control table 1319, and includes the calculation results of the transmission delay calculation unit 1314 and the loop delay calculation unit 1315, and the acquisition information of the USB information acquisition unit 1316 and the communication information acquisition unit 1317. Based on this, the FIFO capacity and communication bandwidth are controlled.
  • the FIFO capacity changing unit 1320 changes to an appropriate FIFO capacity based on the test result.
  • the communication band changing unit 1321 changes the communication band to an appropriate communication band based on the test result.
  • FIG. 14 is a diagram showing the configuration of the FIFO capacity and communication bandwidth control table 1319 according to the present embodiment.
  • the control table 1319 is a table used by the FIFO capacity and communication band control unit 1318 to determine an appropriate FIFO capacity and communication band based on the test communication result of the test packet.
  • the control table 1319 stores a transmission time 1401 of one packet, a transmission destination reception time 1402, a transmission packet reception time 1403, a FIFO current capacity 1404, and a current communication band 1405.
  • the control table 1319 stores the acquired USB information 1406 and communication information 1407.
  • the control table 1319 stores change information 1408 including a new FIFO capacity and a communication band in association with each test result and the acquired information.
  • the control table 1319 is generated in the RAM 840, used to set an appropriate FIFO capacity and communication band, and stored and used for setting an appropriate FIFO capacity and communication band thereafter. May be.
  • FIG. 15 is a flowchart showing a processing procedure of the information processing apparatus 1330 according to this embodiment.
  • FIG. 15 shows a processing procedure for setting an appropriate FIFO capacity and communication band by test transmission of a test packet of this embodiment, and the other processing procedures are the same as those in FIGS. 9A and 9B.
  • step S1501 the information processing apparatus 1330 transmits one test packet to the communication terminal for device connection.
  • step S1503 the information processing apparatus 1330 waits for acquisition of a communication time including a transmission time or a loop time.
  • the information processing apparatus 1330 acquires the communication environment condition including the USB information and the communication information in step S1505.
  • the information processing apparatus 1330 calculates an appropriate FIFO capacity and communication band based on the communication time and the communication environment condition by the test.
  • the information processing apparatus 1330 sets appropriate values for the calculated FIFO capacity and communication band.
  • data can be input / output normally even when the serial communication bus is extended by network communication without causing an error in data transfer via the channel. Can do.
  • FIG. 16 is a block diagram illustrating a functional configuration of an information processing system 1600 in which the present embodiment is applied to a USB hub.
  • FIG. 17 the same components as those in FIG. 2C are denoted by the same reference numerals, and description thereof is omitted.
  • the information processing system 1600 includes a USB hub 1660 and a plurality of USB devices 1611 to 161n.
  • the USB hub 1660 includes a host controller interface 1625 and a USB bus interface 1626 that branches into a plurality of SIEs.
  • the host controller interface 1625 has a function for branching to a plurality of USB cables.
  • the plurality of SIEs are connected to the SIEs of the plurality of USB devices 1611 to 161n via the plurality of USB cables 1661 to 166n, respectively.
  • the application interface 232 of the host 230 as the information processing apparatus has a FIFO 232a for adjusting the communication path data amount
  • the host controller interface 1625 of the USB hub 1660 has a FIFO 1625a for adjusting the communication path data amount.
  • FIG. 17 is a block diagram illustrating a functional configuration of an information processing system 1700 in which the present embodiment is applied to HDMI (registered trademark).
  • the same components as those in FIG. 2C are denoted by the same reference numerals, and description thereof is omitted.
  • An information processing system 1700 in FIG. 17 is connected to a host 230 as an information processing apparatus, a remote communication terminal 1720 that is connected to the host 230 via a network 240, and an HDMI (registered trademark) connector of the communication terminal 1720.
  • the communication terminal 1720 includes, as software, a host controller interface 1725 as a part of a device driver, and an HDMI (registered trademark) bus interface 1726 having a host controller and a communication IC.
  • the host controller interface 1725 has a format that allows the host controller of the HDMI (registered trademark) bus interface 1726 to understand commands and data according to the HDMI (registered trademark) protocol received from the application interface 232 via the network 240. hand over.
  • the host controller interface 1725 transmits data, device status, and the like passed from the host controller of the HDMI (registered trademark) bus interface 1726 to the application interface 232 via the network 240.
  • the host controller of the HDMI (registered trademark) bus interface 1726 executes serial communication via the HDMI (registered trademark) cable 1760 according to the HDMI (registered trademark) protocol while exchanging commands and data with the host controller interface 1725.
  • the communication IC of the HDMI (registered trademark) bus interface 1726 controls a signal on the HDMI (registered trademark) cable 1760 according to the specification of the HDMI (registered trademark) communication.
  • the application interface 232 of the host 230 has a FIFO 232a that adjusts the amount of communication path data
  • the host controller interface 1725 of the communication terminal 1720 has a FIFO 1725a that adjusts the amount of communication path data.
  • the HDMI (registered trademark) device 1710 is connected to the HDMI (registered trademark) bus interface 1726 of the communication terminal 1720 via the HDMI (registered trademark) cable 1760 as software, and exchanges signals with the HDMI (registered trademark) device 1710.
  • the HDMI (registered trademark) device 1710 includes a control information endpoint 1717 that stores descriptors including device information and control information, and an endpoint 1718 that stores input / output data.
  • the communication terminal 1720 and the HDMI (registered trademark) device 1710 perform physical level communication through the mutual HDMI (registered trademark) bus interfaces 1726 and 1716.
  • data communication as each method of the device class is realized between the application software 231 and the endpoint 1718 via the data pipe group 1752 without any communication path data error.
  • And 1716 can form a unified communication channel (pipe). Furthermore, the occurrence of errors in communication path data can be suppressed.
  • FIG. 18 is a block diagram illustrating a functional configuration of an information processing system 1800 in which the present embodiment is applied to SCSI.
  • the same components as those in FIG. 2C are denoted by the same reference numerals, and description thereof is omitted.
  • An information processing system 1800 in FIG. 18 includes a host 230 as an information processing device, a remote communication terminal 1820 that is connected to the host 230 via a network 240, and a SCSI device connected to the SCSI connector of the communication terminal 1820. 1810.
  • the communication terminal 1820 includes, as software, a host controller interface 1825 as a part of a device driver, and a SCSI bus interface 1826 having a host controller and a communication IC.
  • the host controller interface 1825 passes commands, data, and the like according to the SCSI protocol received from the application interface 232 to the host controller of the SCSI bus interface 1826 via the network 240 in a format that can be understood.
  • the host controller interface 1825 transmits data, a device status, and the like passed from the host controller of the SCSI bus interface 1826 via the network 240 to the application interface 232 via the network 240.
  • the host controller of the SCSI bus interface 1826 executes serial communication via the SCSI cable 1860 according to the SCSI protocol while exchanging commands and data with the host controller interface 1825.
  • the communication IC of the SCSI bus interface 1826 controls signals on the SCSI cable 1860 according to the SCSI communication specification.
  • the application interface 232 of the host 230 has a FIFO 232a that adjusts the communication path data amount
  • the host controller interface 1825 of the communication terminal 1820 has a FIFO 1825a that adjusts the communication path data amount.
  • the SCSI device 1810 has, as software, a SCSI bus interface 1816 of the SCSI device 1810 that is connected to the SCSI bus interface 1826 of the communication terminal 1820 via the SCSI cable 1860 and exchanges signals. Further, the SCSI device 1810 includes a control information end point 1817 for storing descriptors including device information and control information, and an end point 1818 for storing input / output data.
  • the communication terminal 1820 and the SCSI device 1810 perform physical-level communication through the mutual SCSI bus interfaces 1826 and 1816.
  • system level control transfer via the application interface 232, the network 240, and the host controller interface 1825 allows the application software 231 and the control information endpoint 1817 to pass through the control pipe (SCSI command / SCSI response) 1851. Realizes control communication as basic processing.
  • data communication as each method of the device class is realized between the application software 231 and the end point 1818 via the data pipe group 1852 without any communication path data error.
  • FIG. 19 is a block diagram illustrating a functional configuration of an information processing system 1900 in which the present embodiment is applied to an SD card.
  • FIG. 19 the same components as those in FIG. 2C are denoted by the same reference numerals, and description thereof is omitted.
  • An information processing system 1900 of FIG. 19 includes a host 230 as an information processing apparatus, a communication terminal 1920 that is remote and connected to the host 230 via a network 240, and an SD card 1910 connected to a connector of the communication terminal 2620. And comprising.
  • the communication terminal 1920 includes a host controller interface 1925 as a part of a device driver and an SD card bus interface 1926 having a host controller and a bus amplifier as software.
  • the host controller interface 1925 passes commands, data, and the like corresponding to the SD card protocol received from the application interface 232 to the host controller of the SD card bus interface 1926 via the network 240 in an understandable format.
  • the host controller interface 1925 transmits data, device status, and the like passed from the host controller of the SD card bus interface 1926 to the application interface 232 via the network 240.
  • the host controller of the SD card bus interface 1926 executes serial communication via the SD card connector 1960 according to the SD card protocol while exchanging commands and data with the host controller interface 1925.
  • the bus amplifier of the SD card bus interface 1926 controls the signal on the SD card connector 1960 according to the SD card communication specification.
  • the application interface 232 of the host 230 has a FIFO 232a that adjusts the communication path data amount
  • the host controller interface 1925 of the communication terminal 1920 has a FIFO 1925a that adjusts the communication path data amount.
  • the SD card 1910 has an SD card bus interface 1916 of the SD card 1910 that exchanges signals by connecting to the SD card bus interface 1926 of the communication terminal 1920 via the SD card connector 1960 as software.
  • the SD card 1910 has a control information end point 1917 for storing descriptors including device information and control information, and an end point 1918 for storing input / output data.
  • the communication terminal 1920 and the SD card 1910 perform communication at the physical level through the SD card bus interfaces 1926 and 1916 of each other.
  • Control communication is realized.
  • data communication as each method of the device class is realized between the application software 231 and the endpoint 1918 via the data pipe group 1952 without any communication path data error.
  • FIG. 20 is a block diagram illustrating a functional configuration of an information processing system 2000 in which the present embodiment is applied to a device sharing system.
  • FIG. 19 the same components as those in FIG. 2C are denoted by the same reference numerals, and description thereof is omitted.
  • a plurality of users A and B share a virtual PC 2030 with a keyboard and mouse (pointing device) and a monitor, and also share a printer and a document camera via a USB hub. Forming.
  • the virtual PC 2030 and each device are connected by communication connection between the application interface 2032 such as a virtual HUB or virtual monitor distributor on the virtual PC 2030 side and the host controller interface 2025 including the virtual USB_HUB via the network 240. And a unified communication channel (pipe).
  • the application interface 2032 such as a virtual HUB or virtual monitor distributor on the virtual PC 2030 side
  • the host controller interface 2025 including the virtual USB_HUB via the network 240.
  • a unified communication channel pipe
  • the application interface 2032 has a FIFO 2032a for adjusting the amount of communication path data and the host controller interface 2025 has a FIFO 2025a for adjusting the amount of communication path data, occurrence of errors in the communication path data can be suppressed.
  • the information processing system according to the present embodiment accumulates setting parameters when a cloud server or the like connects devices as knowledge and provides appropriate setting parameters. It is different. That is, when a parameter set for error suppression is accumulated and a channel is established, a parameter selected and acquired from the accumulated parameters is set for error suppression. Since other configurations and operations are the same as those of the second embodiment and the third embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 21 is a block diagram showing the configuration of the information processing system 2100 according to this embodiment.
  • the same components as those in FIG. 2A are denoted by the same reference numerals, and description thereof is omitted.
  • the cloud server 2130 accumulates system parameters set in device input / output from the host 230, the communication terminals 221 to 223, or the virtual PC 2131 formed in the self-device.
  • the system parameters include the type of device, the data transfer method and transfer speed of the bus to be connected, the communication method and communication speed of the network 240, the appropriate transfer level, communication method and communication band, FIFO capacity, etc. Is included.
  • the cloud server 2130 When the cloud server 2130 controls a device connected to the communication terminals 221 to 223 with its own virtual PC 2131, the cloud server 2130 searches for and sets appropriate system parameters based on the connection conditions. In response to a system parameter request from the host 230, an appropriate system parameter is searched and notified based on the connection condition.
  • FIG. 22 is a block diagram illustrating a functional configuration of the cloud server 2130 according to the present embodiment.
  • the cloud server 2130 includes a communication control unit 2201, a parameter reception unit 2202, one or more virtual PCs 2131 to 213n, a connection environment, condition / setting parameter storage unit 2203, and a system parameter database 2204.
  • the cloud server 2130 includes a parameter request receiving unit 2205, a parameter selecting unit 2206, and a parameter transmitting unit 2207.
  • the communication control unit 2201 controls communication with the host 230 and the communication terminals 221 to 113 via the network 240.
  • the parameter receiving unit 2202 receives setting parameters associated with the connection environment and conditions at the time of device input / output from the host 230 and the communication terminals 221 to 113.
  • connection environment, condition, and setting parameter storage unit 2203 uses the setting parameters associated with the connection environment and conditions received from the external host 230 and the communication terminals 221 to 113 and the connection environment and conditions acquired from the virtual PCs 2131 to 213n. Organize and store the associated setting parameters.
  • the system parameter database 2204 stores the connection environment, conditions, and data accumulated by the setting parameter accumulation unit 2203 so as to be searchable including evaluation values.
  • the parameter request receiving unit 2205 receives setting parameter requests from the external host 230 and the communication terminals 221 to 113.
  • the parameter selection unit 2206 selects and acquires appropriate setting parameters from the system parameter database 2204 in accordance with the request conditions received by the parameter request reception unit 2205.
  • the parameter transmission unit 2207 transmits the acquired appropriate setting parameters to the external host 230 and the communication terminals 221 to 113. If the request is from the virtual PCs 2131 to 213n, appropriate setting parameters are set in the virtual PCs 2131 to 313n.
  • FIG. 23 is a diagram showing a configuration of the system parameter database 2204 according to the present embodiment.
  • the system parameter database 2204 is used to accumulate setting parameters including reliability when the device is connected remotely via a network, and to provide appropriate setting parameters at the time of subsequent setting.
  • the system parameter database 2204 stores the following data in association with the system configuration 2301 of the information processing system and the host information 2302 regarding the host computer including the virtual PC.
  • the system parameter database 2204 includes device information 2303, bus information 2304, communication information 2305, used bus communication parameters 2306, network communication parameters 2307 including a communication band, buffer parameters 2308 including FIFO capacity,
  • the device input / output reliability 2309 is stored. In accordance with one or more conditions, the search is sorted in the order of reliability, and the result is output.
  • FIG. 24 is a block diagram illustrating a hardware configuration of the cloud server 2130 according to the present embodiment.
  • a CPU 2410 is a processor for arithmetic control, and implements a functional component of the cloud server 2130 of FIG. 22 by executing a program.
  • the ROM 2420 stores fixed data and programs such as initial data and programs.
  • the communication control unit 2201 communicates with the host 230 and the communication terminal 220 via the network 240.
  • the number of CPUs 2410 is not limited to one, and may be a plurality of CPUs or may include a GPU for image processing.
  • the communication control unit 2201 has a CPU independent of the CPU 2410 and writes or reads transmission / reception data in an area of the RAM 2440.
  • the RAM 2440 is a random access memory used by the CPU 2410 as a work area for temporary storage.
  • the RAM 2440 has an area for storing data necessary for realizing the present embodiment.
  • the reception parameter 2441 is a parameter received from the external host 230 or the communication terminals 221 to 113 or acquired from the virtual PCs 2131 to 213n.
  • the parameter request data 2442 is data representing device input / output conditions that share setting parameters.
  • the transmission parameter 2443 is a parameter that is transmitted to the external host 230 and the communication terminals 221 to 113 or set in the virtual PCs 2131 to 213n.
  • the virtual PC transmission / reception data 2444 is transmission / reception data from the virtual PC formed in the cloud server 2130.
  • the storage 2450 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the system parameter database 2204 stores setting parameters as shown in FIG.
  • the storage 2450 stores the following programs.
  • the cloud server control program 2451 is a program that controls the entire cloud server 2130.
  • the parameter storage module 2452 is a module that receives parameters from the external host 230 and communication terminals 221 to 113, acquires parameters from the virtual PCs 2131 to 213n, and stores them in the system parameter database 2204.
  • the parameter providing module 2453 searches and sorts appropriate parameters stored in the system parameter database 2204, transmits the parameters to the external host 230 and communication terminals 221 to 113, and sets the parameters to the virtual PCs 2131 to 213n. is there.
  • the virtual PC program 2454 is a program for forming virtual PCs 2131 to 213n in the cloud server 2130.
  • RAM 2440 and storage 2450 in FIG. 24 do not show programs and data related to general-purpose functions and other realizable functions of the cloud server 2130.
  • FIG. 25 is a flowchart showing an operation procedure of the cloud server 2130 according to the present embodiment. This flowchart is executed by the CPU 2410 of FIG. 24 using the RAM 2440, and implements the functional configuration unit of FIG.
  • step S2511 the cloud server 2130 determines whether a setting parameter has been received. If the setting parameter is received, the cloud server 2130 stores the received setting parameter in the system parameter database 2204 so as to be searchable and sortable in step S2513.
  • the cloud server 2130 determines in step S2521 whether it is a request for the setting parameter. If the request is for a setting parameter, the cloud server 2130 searches and sorts the setting parameter with reference to the device connection condition from the system parameter database 2204 in step S2523. In step S2525, the cloud server 2130 transmits the acquired setting parameter.
  • the cloud server 2130 determines whether or not the virtual PC is generated in step S2531. If the virtual PC is generated, the cloud server 2130 executes a virtual PC generation process in step S2533. In step S2535, the cloud server 2130 sets the setting parameter acquired by referring to the device connection condition from the system parameter database 2204.
  • an appropriate FIFO capacity and communication band can be set from the accumulated knowledge in a combination of a device, a device connection bus method, a communication method, and the like.
  • the information processing apparatus 230 virtual PC
  • the communication terminal 220 to which the device is connected as compared with the second to fourth embodiments. It is different in point.
  • the application IF of the information processing device 230 and the host controller IF of the communication terminal 220 are separated from each other by a portion different from the second embodiment.
  • the entire device driver including the host controller chip (HC) is realized by software
  • the set of the host controller driver and the host controller chip is divided in consideration of communication efficiency and communication speed at various levels. To do.
  • the information between the divided layers is designed to be network-communicated between the information processing device 230 and the communication terminal 220. Since other configurations and operations are the same as those in the second to fourth embodiments, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 26 is a diagram showing data transmission in the information processing system according to the present embodiment.
  • FIG. 26 is a diagram showing a descriptor acquisition procedure of a USB device connected via USB, as in FIG. 2G. Therefore, in FIG. 26, the same components as those in FIG. 2G are denoted by the same reference numerals, and description thereof is omitted.
  • the descriptor set in the device 210 is acquired by a USB request such as GET_DESCRIPTOR.
  • a frame including the USB protocol of the USB request for control transfer is exchanged between the information processing apparatus 230 and the device 210.
  • Each control transfer consists of a set stage, a data stage, and a status stage.
  • Each stage consists of a token packet, a data packet, and a handshake packet.
  • the descriptor is acquired in the data packet of each data stage.
  • the descriptor acquired from the device 210 is inserted into a frame that has been IP-encapsulated using an IP header or a TCP header, and is transmitted from the mobile terminal 220 to the information processing device 230.
  • the application interface 2632 of the information processing apparatus 230 first generates a frame including the USB protocol of the USB request of GET DESCRIPTOR in order to confirm the connected device, and the communication control unit 401.
  • a frame including a GET DESCRIPTOR USB request that has been IP encapsulated with an IP header or a TCP header is received by the communication control unit 501 of the communication terminal 220 and IP unencapsulated.
  • the GET DESCRIPTOR USB request is passed to the host controller interface 2625.
  • the host controller interface 2625 instructs the USB bus interface 226 (not shown) to transfer each packet on the USB bus to the device 210 based on the frame including the USB protocol of the USB request of GET DESCRIPTOR.
  • the host controller interface 2625 passes a frame including the data packet received from the device 210 in the data stage as the device descriptor 2663 to the communication control unit 501.
  • a frame including the device descriptor 2663 IP-encapsulated by the IP header or the TCP header is transmitted from the communication control unit 501 of the communication terminal 220 to the communication control unit 401 of the information processing device 230.
  • the application interface 2632 When the communication control unit 401 of the information processing apparatus passes a frame including the unencapsulated device descriptor 2663 to the application interface 2632, the application interface 2632 notifies the connection device information in response to the device input / output request of the application 231.
  • FIG. 27 is a diagram showing another data transmission in the information processing system according to the present embodiment.
  • FIG. 27 is a diagram showing a descriptor acquisition procedure for a USB device connected by USB, as in FIGS. 2G and 26. Therefore, in FIG. 27, the same reference numerals are given to the same components as those in FIGS. 2G and 26, and description thereof will be omitted.
  • the descriptor set in the device 210 is acquired by a USB request such as GET_DESCRIPTOR.
  • the control transfer including the USB protocol of the USB request includes a set stage, a data stage, and a status stage. Each stage consists of a token packet, a data packet, and a handshake packet.
  • the set stage including the USB protocol of the USB request for control transfer, the data stage, and the status stage are exchanged between the information processing apparatus 230 and the device 210, respectively.
  • the descriptor is acquired in the data packet of each data stage.
  • the descriptor acquired from the device 210 is inserted into the data stage IP-encapsulated by the IP header or TCP header, and transmitted from the portable terminal 220 to the information processing device 230.
  • the application interface 2732 of the information processing apparatus 230 first generates a set stage including the USB protocol of the USB request of GET DESCRIPTOR in order to confirm the connected device, and performs communication. It passes to the control unit 401.
  • the set stage including the GET DESCRIPTOR USB request that is IP-encapsulated by the IP header or TCP header is received by the communication control unit 501 of the communication terminal 220 and is IP-encapsulated.
  • the GET DESCRIPTOR USB request is passed to the host controller interface 2725.
  • the host controller interface 2725 instructs the USB bus interface 226 (not shown) to transfer each packet on the USB bus to the device 210 based on the set stage including the USB protocol of the USB request of GET DESCRIPTOR.
  • the host controller interface 2725 passes the data stage including the data packet received from the device 210 at the data stage as the device descriptor 2763 to the communication control unit 501.
  • the data stage including the device descriptor 2763 IP-encapsulated with the IP header or TCP header is transmitted from the communication control unit 501 of the communication terminal 220 to the communication control unit 401 of the information processing device 230.
  • the application interface 2732 When the communication control unit 401 of the information processing apparatus passes the data stage including the unencapsulated device descriptor 2763 to the application interface 2732, the application interface 2732 notifies the connection device information in response to the device input / output request of the application 231. To do.
  • the host controller interface 2725 passes the status stage including the data packet received from the device 210 at the status stage as the status data 2764 to the communication control unit 501.
  • the status stage including the status data 2764 IP-encapsulated by the IP header or the TCP header is transmitted from the communication control unit 501 of the communication terminal 220 to the communication control unit 401 of the information processing device 230.
  • the application interface 2732 When the communication control unit 401 of the information processing apparatus passes the status stage including the unencapsulated status data 2764 to the application interface 2732, the application interface 2732 notifies the connection device information in response to the device input / output request of the application 231. To do.
  • the application interface 2732 does not determine the handshake packet, but the application interface 2732 may be configured to confirm the handshake packet in each stage.
  • the communication between the information processing apparatus (virtual PC) and the communication terminal can be performed by remote communication with the USB device regardless of whether the communication is performed in units of frames obtained by dividing each driver or in units of stages.
  • the same operation as when directly connected to the information processing apparatus can be performed.
  • the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed on the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)

Abstract

 本発明のシステムは、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力する情報処理システムである。この情報処理システムは、デバイスと、デバイスを制御するデバイス制御部と、デバイス制御部とのインタフェースを行なうデバイスインタフェース部と、アプリケーションとのインタフェースを行なうアプリケーションインタフェース部を有する情報処理装置と、アプリケーションインタフェース部とデバイスインタフェース部とを、通信部を介して接続し、アプリケーションとデバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立部と、チャネル確立部により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制部と、を備える。

Description

情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム
 本発明は、情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラムに関する。
 上記技術分野において、特許文献1には、デバイスドライバを構成する機能ドライバとハブドライバとの間を、ネットワークを介した通信で接続し、USBデバイスを制御する技術が開示されている。
特開2013-016165号公報
 しかしながら、上記文献に記載の技術では、ネットワーク通信におけるデータ転送がUSB通信におけるデータ転送に追いつかない状況が発生すると、オーバーフロー(オーバーラン)やアンダーフロー(アンダーラン)のためにデータ転送エラーとなり、データを正常に入出力することができない。
 本発明の目的は、上述の課題を解決する技術を提供することにある。
 上記目的を達成するため、本発明に係る情報処理システムは、
 デバイスと、
 前記デバイスを制御するデバイス制御手段と、
 前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
 アプリケーションと、前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段とを有する情報処理装置と、
 前記アプリケーションインタフェース手段と前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
 前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
 を備える。
 上記目的を達成するため、本発明に係る情報処理方法は、
 通信端末において、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する第1起動ステップと、
 情報処理装置において、アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する第2起動ステップと、
 前記情報処理装置の前記アプリケーションインタフェース手段と前記通信端末の前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
 前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
 を含む。
 上記目的を達成するため、本発明に係る情報処理装置は、
 アプリケーションと、
 前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と、
 前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
 前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
 を備える。
 上記目的を達成するため、本発明に係る情報処理装置の制御方法は、
 アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
 前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
 前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
 を含む。
 上記目的を達成するため、本発明に係る情報処理装置の制御プログラムは、
 アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
 前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
 前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
 をコンピュータに実行させる。
 上記目的を達成するため、本発明に係る通信端末は、
 デバイスを制御するデバイス制御手段と、
 前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
 前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
 前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
 を備える。
 上記目的を達成するため、本発明に係る通信端末の制御方法は、
 デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する起動ステップと、
 前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
 前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
 を含む。
 上記目的を達成するため、本発明に係る通信端末の制御プログラムは、
 デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する起動ステップと、
 前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
 前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
 をコンピュータに実行させる。
 上記目的を達成するため、本発明に係るサーバは、
 情報処理装置のアプリケーションとインタフェースするアプリケーションインタフェース手段と、通信端末のデバイス制御手段とインタフェースするデバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立した場合に、確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段のパラメータを取得する取得手段と、
 前記取得したパラメータを蓄積するデータベースと、
 新たに、情報処理装置のアプリケーションインタフェース手段と、通信端末のデバイスインタフェース手段とを、通信手段を介して接続し、アプリケーションとデバイスとの間に制御チャネルとデータチャネルとを確立する場合に、前記データベースから接続条件に応じて適正なパラメータを選定してエラー抑制手段に提供する提供手段と、
 を備える。
 本発明によれば、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
本発明の第1実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの概要を示す図である。 本発明の第2実施形態に係る情報処理システムの機能構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの通信路エラー処理を示す図である。 本発明の第2実施形態に係る通信メッセージの構成を示す図である。 本発明の第2実施形態に係る通信データ構成を示す図である。 本発明の第2実施形態に係る情報処理システムにおけるデータ伝送を示す図である。 前提技術に係る情報処理システムの概要を示す図である。 前提技術に係る情報処理システムの概要を示す図である。 前提技術に係るUSBの転送方式を示す図である。 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る通信端末の機能構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムにおける情報の流れを示す図である。 本発明の第2実施形態に係るFIFO容量テーブルの構成を示す図である。 本発明の第2実施形態に係るUSBのフォーマットおよびプロトコルを示す図である。 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る通信端末のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る通信端末の処理手順を示すフローチャートである。 本発明の第2実施形態に係る通信端末の処理手順を示すフローチャートである。 本発明の第3実施形態に係る情報処理システムの概要を示す図である。 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第3実施形態に係る通信テスト部の機能構成を示すブロック図である。 本発明の第3実施形態に係るFIFO容量および通信帯域の決定テーブルの構成を示す図である。 本発明の第3実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本実施形態をUSBハブに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をHDMI(登録商標)に適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をSCSIに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をSDカードに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態を機器共有システムに適用した情報処理システムの機能構成を示すブロック図である。 本発明の第4実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第4実施形態に係るクラウドサーバの機能構成を示すブロック図である。 本発明の第4実施形態に係るシステムパラメータデータベースの構成を示す図である。 本発明の第4実施形態に係るクラウドサーバのハードウェア構成を示すブロック図である。 本発明の第4実施形態に係るクラウドサーバの動作手順を示すフローチャートである。 本発明の第5実施形態に係る情報処理システムにおけるデータ伝送を示す図である。 本発明の第5実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。
 以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
 [第1実施形態]
 本発明の第1実施形態としての情報処理システム100について、図1を用いて説明する。情報処理システム100は、接続されたデバイスを制御するシステムである。
 図1に示すように、情報処理システム100は、デバイス110と、デバイス制御部120と、デバイスインタフェース部130と、情報処理装置140と、チャネル確立部150と、エラー抑制部160と、を含む。デバイス制御部120は、デバイス110を制御する。デバイスインタフェース部130は、デバイス制御部120とのインタフェースを行なう。情報処理装置140は、アプリケーション141と、アプリケーション141とのインタフェースを行なうアプリケーションインタフェース部142とを有する。チャネル確立部150と、エラー抑制部160と、を含む。デバイス制御部120は、デバイス110を制御すは、アプリケーションインタフェース部142とデバイスインタフェース部130とを、通信部151を介して接続し、アプリケーション141とデバイス110との間に制御チャネルとデータチャネルとを確立する。エラー抑制部160は、チャネル確立部150により確立されたチャネルを介したデータ転送におけるエラー発生を抑制する。
 本実施形態よれば、チャネルを介したデータ転送におけるエラー発生を抑制するので、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
 [第2実施形態]
 次に、本発明の第2実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、遠隔の通信端末にUSB(Universal Serial Bus)ケーブルで接続された遠隔のUSBデバイスを、情報処理装置としてのホストからネットワークを介して制御し、自装置に接続されたデバイスと同じように操作する。その場合に、FIFO(First-In First-Out)バッファを配置して、ネットワーク通信におけるデータ転送の遅れによるエラーが発生しないように抑制する。
 また、データ転送におけるエラー発生を報知すると共に、エラー発生の抑制指示を受付け、受付けた抑制指示に対応して、エラー発生の抑制を調整する。なお、デバイスは、通信端末に、USB、HDMI(登録商標)、SCSI、SDカードコネクタ、近距離通信、を介して接続される。なお、データ通信手段においては、複数の階層から選択されたデバイス制御に適切な層によりデータを転送する。
 《情報処理システム》
 本実施形態の情報処理システムを説明する前に、本実施形態の特徴を明瞭にするために前提技術に係る情報処理システムについて説明する。
 (前提技術)
 図3Aは、前提技術に係る情報処理システム310の概要を示す図である。
 情報処理システム310は、ホストコンピュータ上で実行されるOS(Operating System)やアプリケーション231と、ホストコンピュータ上で実行されるシステムソフトウェアであるデバイスドライバ301と、USBバスインタフェース226と、を有する。デバイスドライバ301は、例えば、デバイスの種類によって異なるプロトコルを実装するためのクラスドライバCD(Class Driver)、USB固有のプロトコルを実装するバスドライバBD(Bus Driver)、ハードウェアチップの抽象化を行なうHCD(Host Controller Driver)、を含む。また、USBバスインタフェース226はホストコントローラを含むICチップなどで提供される。
 かかる構成によれば、デバイスに接続するホストコンピュータなどのデバイス制御部がデバイスに適応するデバイスドライバを有しない場合には、接続されたデバイスが動作しない。
 図3Bは、前提技術に係る情報処理システム320の概要を示す図である。情報処理システム320は、本発明者が提案するネットワーク240を介して遠隔に接続された制御部(例えば、他のコンピュータや通信端末)が、デバイスを制御する構成である。遠隔に接続された制御部がデバイスに適応するデバイスドライバを有しない場合にあっても、ホストコントローラを含むUSBバスインタフェース226とのインタフェースが可能であれば、ホストコンピュータのOSまたはアプリケーションへのインタフェースと協働することで、遠隔地のデバイス制御を可能とする。
 情報処理システム320は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ302と、USBバスインタフェース226と、を有する。デバイスドライバ302は、ホストコンピュータ上で実行されるOSまたはアプリケーションとのインタフェースソフトウェア332と、遠隔に接続された制御部上で実行されるホストコントローラを含むUSBバスインタフェース226とのインタフェースソフトウェア325と、を有する。また、デバイスドライバ302は、インタフェースソフトウェア332と325とをネットワーク240を介して接続する通信制御部(図示せず)を含む。
 かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御できる。しかしながら、ホストコンピュータと制御部とを接続する通信路の通信形式や通信速度と、遠隔に接続されるデバイスのバスI/FやシリアルI/Fの形式や速度と、にずれや遅延が発生すると、データ転送エラーとなる。USB接続の場合は、特に、インタラプト転送やアイソクロナス転送の場合にはデータ転送エラーが重大な結果をもたらす。
 図3Cは、前提技術に係るUSBの転送方式を示す図である。
 USBの転送方式には、基本的に、コントロール転送311と、バルク転送312と、インタラプト転送313と、アイソクロナス転送314と、を有する。コントロール転送311は、セットアップや設定パラメータ転送用の半二重通信であり、少ないデータ量である。バルク転送312は、記憶装置やスキャナなどの大容量高速データのINとOUTとのそれぞれ一方向の通信であるが、転送済みのデータを制御する。インタラプト転送313は、計測やマシン機器の小容量データの定期的転送(基本的にホストからの要求)であるが、データ転送エラーは機器の操作エラーなどにつながる。アイソクロナス転送314は、音声やビデオなどのリアルタイムの一定期間内のデータ量を保証すべき転送であり、また、再送処理がないので、データ転送の信頼性が重要である。
 これらの転送方式の特徴および用途に関連して、転送速度、転送周期およびデータ量/USBパケット315の動作がデータのオーバーフロー(オーバーラン)やアンダーフロー(アンダーラン)なしに実現することが求められる。
 本実施形態の情報処理システムは、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができるようにする。
 《本実施形態の情報処理システム》
 図2A乃至図2Gを参照して、本実施形態の情報処理システム200の構成を説明する。
 (システム構成)
 図2Aは、本実施形態に係る情報処理システム200の構成を示すブロック図である。
 情報処理システム200は、情報処理装置としてのホスト230にネットワーク240を介して接続された通信端末221、222および223を備える。通信端末221、222および223には、それぞれシリアルバス261~265によりデバイス212~215が接続されている。なお、デバイス213と214とは、ハブを介して接続される。また、ホスト230には、デバイス211が接続されている。ここで、デバイス211、212はDVDユニット、デバイス213は体温計、デバイス214は血圧計、デバイス215は工作機器である。
 このように接続されたデバイスは、ホスト230から操作可能なデバイスを示すデバイスマネージャの表示画面上において、次のように表示されている。ホスト230のUSBコネクタに接続されたデバイス211は、内部のユニバーサル_シリアル_バス_コントローラの欄に“USB_DVD”231と表示される。ネットワーク240を介して外部に接続されたデバイス212~2156は、それぞれ、リモート_ユニバーサル_シリアル_バスの欄に“USB_DVD”232、“USB_体温計”233、“USB_血圧計”234、“USB_工作機器”235と表示される。ホスト230からは、自装置に接続したデバイスもネットワーク240を介して遠隔に接続したデバイスも、同じ接続デバイスとして操作される。
 なお、本実施形態においては、ネットワーク240を公衆回線や無線通信を含む遠隔通信として説明しているが、ネットワーク240をLANや近距離無線通信(例えば、Bluetooth(登録商標)やWi-Fiなど)に置き換えても、あるいは、それらを組み合わせても同様に実現でき、同じ効果を奏することができる。
 (システム概要)
 図2Bは、本実施形態に係る情報処理システム200の概要を示す図である。情報処理システム200の概要は、図3Bと対比させて主にソフトウェア構成を示している。
 情報処理システム200は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ201と、USBバスインタフェース226と、を有する。デバイスドライバ201は、ホストコンピュータ上で実行されるOSまたはアプリケーションとのインタフェースを実行するアプリケーションインタフェース(図中、アプリケーションIF)232を有する。また、デバイスドライバ201は、遠隔に接続された制御部上のUSBバスインタフェース226とのインタフェースを実行するホストコントローラインタフェース(図中、ホストコントローラIF)225を有する。また、デバイスドライバ201は、アプリケーションインタフェース232とホストコントローラインタフェース225とをネットワーク240を介して通信接続する通信制御部(図示せず)を含む。
 そして、通信制御部およびアプリケーションインタフェース232に、通信形式や通信速度により発生するジッタなどを吸収するためのFIFO232a、および/または、通信制御部およびホストコントローラインタフェース225に、通信形式や通信速度により発生するジッタの吸収やデータ流量の調整などをするためのFIFO225a、を有する。FIFO232a、FIFO225aの容量は、主に、ホストコントローラとデバイスとのデータ流量と、ネットワーク上のデータ流量とに依存する。例えば、容量決定手順202として、一定時間当たりの通信量を計測して、ホストコントローラとデバイスとのデータ流量を維持するために必要な一定時間当たりの通信速度制御として決定する。
 FIFOの容量を、設定したタイムスロット例(1s/125μs/1ms)に対して、あらかじめ設定した数に対応した時間蓄積をし、設定タイムスロットに所定のPKT数を出力できるように設定する。そして、その条件として、例えば、(1) 1秒間に1000パケット、(2) 音声などの、125μsecの整数倍の時間間隔で所定の回数のPKTを通信、(3) ビデオなどの、1ms当たりのフレーム数を守っての通信、を可能とするよう設定する。
 なお、ジッタの吸収やデータ流量の調整は、FIFO232a、FIFO225aに限定されない。ローテーションメモリやTDM(Time Division Multiplexing)などの他の構成要素であってもよい。
 かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御でき、かつ、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
 (システム概念)
 図2Cは、本実施形態に係る情報処理システム200の概念を示す図である。なお、図2Cにおいては、常備のソフトウェアであるOSやBIOS(Basic Input/Output System)などの図示を省略している。
 図2Cの情報処理システム200は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末220と、通信端末220のUSBコネクタに接続されたUSBデバイス210と、を備える。
 ホスト230は、ソフトウェアとして、アプリケーションソフトウェア231と、デバイスドライバの一部としてのアプリケーションインタフェース232とを有する。アプリケーションソフトウェア231は、あらかじめホスト230が提供するサービス、あるいは、ユーザが開発したサービスを提供するためのソフトウェアである。アプリケーションインタフェース232は、アプリケーションソフトウェア231が要求した入出力ファイル操作の構造体を解釈して、入出力ファイル操作の対象デバイスやそのプロトコル、データフォーマットなどに従って、ネットワーク240を介して送受信する制御情報やデータを定義する構造体を生成する。本例ではUSBデバイス210に対する入出力ファイルのアクセスなので、USBのプロトコルに応じたコマンドやデータフォーマットに従うデータの送受信を準備する。また、アプリケーションインタフェース232は、通信部と共有する構成として、データ流量を調整するFIFO232aを備えている。
 通信端末220は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース225と、ホストコントローラおよびSIE(Serial Interface Engine)を有するUSBバスインタフェース226とを有する。ホストコントローラインタフェース225は、ネットワーク240を介して、アプリケーションインタフェース232から受信したUSBのプロトコルに応じたコマンドやデータなどを、USBバスインタフェース226のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース225は、ネットワーク240を介して、USBバスインタフェース226のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。また、ホストコントローラインタフェース225は、通信部と共有する構成として、データ流量を調整するFIFO225aを備えている。
 USBバスインタフェース226のホストコントローラは、ホストコントローラインタフェース225とコマンドやデータなどを交換しながら、USBケーブル260を介したシリアル通信をUSBプロトコルに従い実行する。USBバスインタフェース226のSIEは、USBケーブル260上の信号をUSB通信の仕様に従い制御する。
 USBデバイス210は、ソフトウェアとして、通信端末220のUSBバスインタフェース226とUSBケーブル260を介して接続して、信号をやり取りするUSBデバイス210のUSBバスインタフェース216を有する。また、USBデバイス210は、デバイス情報や制御情報を含むディスクリプタを記憶するFIFO0からなるエンドポイント0217と、入出力データを記憶するFIFO1~nからなるエンドポイント1~n218とを有する。
 かかる接続により、通信端末220とUSBデバイス210とは、お互いのUSBバスインタフェース226および216により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース225を介したシステムレベルのコントロール転送により、デフォルトパイプ251を介してアプリケーションソフトウェア231とエンドポイント0217との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群252を介してアプリケーションソフトウェア231とエンドポイント1~n218との間で、デバイスクラスの各メソッドとしてのデータ通信を実現する。
 以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末220のホストコントローラインタフェース225とのネットワーク通信と、USBケーブルを介した、USBバスインタフェース226と216間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。
 さらに、アプリケーションインタフェース232、ホストコントローラインタフェース225、通信部が共有するFIFO232a、および/または、FIFO225aにより、ジッタの吸収やデータ流量の調整を実現し、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力する。
 (通信路エラー処理)
 図2Dは、本実施形態に係る情報処理システム200の通信路エラー処理を示す図である。
 図2Dの上段には、ホスト230において、通信路におけるデータ転送エラーが発生した場合の、対処例が図示されている。通信路エラー236が表示され、そのエラー発生したリモートUSBバス235が報知されている。なお、通信路エラーを音声で報知してもよい。通信路エラーへの対処操作例として、ネットワーク上の帯域拡大237と、FIFO232aの容量増大238と、をユーザに問い合わせている。例えば、ユーザが帯域拡大237を指示して通信路エラーがなくなると、上段右図のように、通信路確保239が通知される。
 一方、図2Dの下段には、スマートフォンなどの通信端末220において、通信路におけるデータ転送エラーが発生した場合の、対処例が図示されている。通信路エラー227が表示され、そのエラー発生したリモートUSBバスが報知されている。なお、通信路エラーを音声で報知してもよい。通信路エラーへの対処操作例として、ネットワーク上の帯域拡大と、FIFO232aの容量増大と、の問い合わせ228が表示されている。例えば、ユーザが帯域拡大を指示して通信路エラーがなくなると、下段右図のように、通信路確保229が通知される。
 なお、帯域拡大は、ユーザの操作単位で行なわれても、自動的に適切な帯域に拡大されてもよい。例えば、通信経路が複数ある場合に、複数の通信経路を確保することにより帯域拡大を行なってもよい。また、FIFO容量増大も、ユーザの操作単位で行なわれても、自動的に適切な容量に調整されてもよい。さらに、通信状況などを考慮して、帯域拡大とFIFO容量増大との適切な組み合わせを選定してもよい。
 (通信メッセージ)
 図2Eは、本実施形態に係る通信メッセージの構成を示す図である。なお、通信メッセージのフォーマットは、図2Eに限定されるものではない。
 図2Eには、デフォルトパイプ251である制御チャネルで送受信される制御メッセージ270と、データパイプ群252となるデータチャネルで送受信されるデータメッセージ280とが図示されている。
 制御メッセージ270の内、ホスト230から通信端末220に送信される制御メッセージは、IPアドレス271と、伝送先エリア/伝送元エリア272と、通信データ273と、誤り訂正の例えばCRC274と、を有する。IPアドレス271としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア/伝送元エリア272としては、伝送先エリアにUSBデバイス211(212)のFIFO0が、伝送元エリアにホスト230のUSBバッファ0が、指示される。また、通信データ273としては、ホスト230が割り当てたデバイスアドレスやUSBデバイス211(212)の制御コマンドが伝送される。
 制御メッセージ270の内、通信端末220からホスト230に送信される制御メッセージは、IPアドレス275と、伝送先エリア/伝送元エリア276と、通信データ277と、誤り訂正の例えばCRC278と、を有する。IPアドレス275としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア/伝送元エリア276としては、伝送先エリアにホスト230のUSBバッファ0が、伝送元エリアにUSBデバイス211(212)のFIFO0が、指示される。また、通信データ277としては、USBデバイス211(212)のデバイスディスクリプタやデバイスステータスが伝送される。
 データメッセージ280の内、ホスト230から通信端末220に送信されるデータメッセージは、IPアドレス281と、伝送先エリア/伝送元エリア282と、通信データ283と、誤り訂正の例えばCRC284と、を有する。IPアドレス281としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア/伝送元エリア282としては、伝送先エリアにUSBデバイス210のFIFO1~nが、伝送元エリアにホスト230のUSBバッファ1~nが、対応付けられて指示される。また、通信データ283としては、1つまたは複数のバルクOUTデータが伝送される。
 データメッセージ280の内、通信端末220からホスト230に送信されるデータメッセージは、IPアドレス285と、伝送先エリア/伝送元エリア286と、通信データ287と、誤り訂正の例えばCRC288と、を有する。IPアドレス285としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア/伝送元エリア286としては、伝送先エリアにホスト230のUSBバッファ1~nが、伝送元エリアにUSBデバイス210のFIFO1~nが、対応付けられて指示される。また、通信データ287としては、1つまたは複数のバルクINデータが伝送される。
 なお、コントロール転送、バルク転送の外に、インタラプト転送やアイソクロナス転送があるが、データメッセージの構成としては、“SETUP”ステージが省略されるが同様であるので、それらのメッセージの説明を省略する。
 このように、カプセリングしたIPアドレスとしては、ホスト230と通信端末220との間のネットワーク通信であるが、データは、ホスト230にアプリケーションソフトウェア231が確保させたUSBバッファと、USBデバイス211(212)のエンドポイントであるFIFOとの間で伝送される。
 (通信データ構成例)
 図2Fは、本実施形態に係る通信データ構成を示す図である。図2Fにおいては、図2Eにおける、カブセル化のためのIPアドレスなどは省かれている。なお、図2Fには、本実施形態を実現する通信データ構成の一例を示すが、これに限定されるわけではない。例えば、デバイスドライバの上位層における通信データとして、関数のパラメータ(引数)を送受信することや、さらに、関数自体を送受信することなどもできる。
 図2Fには、基本的な通信データ構成273/277と、USBの場合の通信データ構成273と、他のHDMI(登録商標)やSCSIの場合の通信データ構成277が示されている。
 通信データ構成273/277は、デバイス特定情報を有する。デバイス特定情報は、デバイス種類と、接続バス種類と、デバイス識別子と、を含む。通信データ構成273/277は、接続バスにおける転送モードと、接続バスを介して転送すべき情報と、を有する。転送すべき情報には、コマンドやステータスやデータを含む。
 USBの場合の通信データ構成273は、デバイス特定情報として、デバイス種類である産業機器と、接続バスであるUSBと、デバイス識別子であるIE001と、を有する。USBの場合の通信データ構成273は、転送モードとしてUSBコントロール転送と、転送情報としてUSBリクエストやデバイスディスクリプタを含む。かかる構成によれば、従来のUSB接続による最大127台という制限を考慮する必要はなくなる。
 他のHDMI(登録商標)やSCSIの場合の通信データ構成277は、デバイス特定情報として、モニタ、HDMI(登録商標)、MT0002や、CD、SCSI、CD0005を有する。また、転送モード2としてHDMI(登録商標)制御やSCSI制御、転送情報としてDDC/CEDやコマンド/レスポンスを含む。
 (データ伝送例)
 図2Gは、本実施形態に係る情報処理システム200におけるデータ伝送を示す図である。なお、図2Gは、USBデバイスにおけるL2レベルの通信を示すが、通信はさらに下位レベルであっても上位レベルであってもよい。
 図2Gは、USB接続されたUSBデバイスのディスクリプタ取得手順を示すシーケンス図である。
 デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。USBリクエストは、それぞれコントロール転送によりデバイス210とやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングして、携帯端末からなるUSBハブ221から情報処理装置230に送信される。
 ここで、情報処理装置230のアプリケーションインタフェースを構成するクラスドライバ232およびバスドライバは、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためコントロール転送とGET DESCRIPTORのUSBリクエストとを生成して、通信制御部に渡す。
 IPヘッダやTCPヘッダでIPカプセリングされたコントロール転送とGET DESCRIPTORのUSBリクエストとは、通信端末からなるUSBハブ221の通信制御部で受信されてIPアンカプセリングされる。コントロール転送とGET DESCRIPTORのUSBリクエストとは、ホストコントローラドライバ225に渡される。ホストコントローラドライバ225は、コントロール転送とGET DESCRIPTORのUSBリクエストとに基づいて、デバイス210へのUSBバスにおける各パケットを生成するようUSBバスインタフェース(不図示)に指示する。
 ホストコントローラドライバ225は、デバイス210から受信した、データ・ステージで受信したデータ・パケットをデバイスディスクリプタとして抽出し、コントロール転送とデバイスディスクリプタとして、通信制御部に渡す。IPヘッダやTCPヘッダでIPカプセリングされたコントロール転送とデバイスディスクリプタとは、通信端末220の通信制御部から情報処理装置230の通信制御部に送信される。
 情報処理装置の通信制御部は、アンカプセリングしたコントロール転送とデバイスディスクリプタを、アプリケーションインタフェースを構成するバスドライバおよびクラスドライバ232に渡すと、クラスドライバ232はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
 以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラドライバ225とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
 《情報処理装置の機能構成》
 図4は、本実施形態に係る情報処理装置230の機能構成を示すブロック図である。なお、図4には、本実施形態の動作に関連の深い機能構成部を図示し、情報処理装置230が有する通常の機能構成部は図示していない。例えば、情報処理装置230がパーソナルコンピュータ(以下、PC)の場合の種々の処理機能については示していない。
 情報処理装置230は、通信制御部401と、チャネル確立部402と、エラー抑制部405と、アプリケーションデータベース(図中、アプリケーションDB)410と、を備える。通信制御部401は、ネットワーク240を介する通信端末220との通信を制御する。チャネル確立部402は、アプリケーション開始部403とアプリケーションインタフェース起動部404とを含み、情報処理装置230と通信端末220、さらに、USBデバイス210へのチャネルを確立する。エラー抑制部405は、FIFO232aを有し、ネットワーク240のデータ流量をエラー発生しないように調整する。アプリケーションデータベース410は、複数のアプリケーション411、および、デバイスドライバの一部である複数のアプリケーションインタフェース412を格納する。
 アプリケーション開始部403は、ユーザにサービスを提供するためにアプリケーションデータベース410からアプリケーションを選択して開始する。アプリケーションインタフェース起動部404は、アプリケーション開始部403が開始したアプリケーションにより指示された入出力ファイル操作を実現するためのアプリケーションインタフェースを、アプリケーションデータベース410から検索して起動させる。
 《通信端末の機能構成》
 図5は、本実施形態に係る通信端末220の機能構成を示すブロック図である。なお、図5には、本実施形態の動作に関連の深い機能構成部を図示し、通信端末220が有する通常の機能構成部は図示していない。例えば、通信端末220がスマートフォンやタブレットの場合の種々の処理機能については示していない。
 通信端末220は、通信制御部501と、チャネル確立部502と、エラー抑制部506と、を備える。通信制御部501は、ネットワーク240を介する情報処理装置230との通信を制御する。チャネル確立部502は、ホストコントローラインタフェース起動部503と、デバイス制御部としてのUSBホストコントローラ504と、SIEを含むUSBコネクタ505と、を含む。ホストコントローラインタフェース起動部503は、入出力ファイル操作に対応して、デバイスドライバの一部である、USBホストコントローラ504とインタフェースするホストコントローラインタフェースを起動する。USBホストコントローラ504は、アプリケーション開始部403が開始したアプリケーションにより指示された入出力ファイル操作を実現するために、USBバスインタフェース226のパケット交換を制御する。USBコネクタ505は、USBデバイス210とのパケット交換のためにUSBケーブルが接続される。
 エラー抑制部405は、FIFO225aを有し、ネットワーク240のデータ流量をエラー発生しないように調整する。
 (情報の流れ)
 図6は、本実施形態に係る情報処理システム200における情報の流れを示す図である。なお、図6には、主要な記憶領域を示し、細部の構成は省略している。
 情報処理装置230には、入出力ファイル構造体631と、USBバッファ632と、通信構造体633と、FIFO232aと、が確保される。入出力ファイル構造体631は、アプリケーションソフトウェア231が入出力ファイル操作を指示した時に確保され、例えば、ファイル格納先やデバイス種別、入出力プロトコルなどに対応して所定の処理を行なう関数群と、デバイス情報と、入出力バッファと、を含む。USBバッファ632は、アプリケーションインタフェース232が入出力ファイル構造体631の関数群の処理に応じて、デバイス種別がUSBデバイスの場合に確保される、エンドポイントにそれぞれ対応するバッファを有する。通信構造体633は、アプリケーションインタフェース232が入出力ファイル構造体631の関数群の処理に応じて、デバイスがネットワークを介した遠隔にある場合に確保される構造体である。通信構造体633は、通信に関連するプロトコルやメッセージフォーマット、通信速度などを設定するための関数群と、送信データを一時記憶する送信バッファと、受信データを一時記憶する受信バッファと、を含む。
 例えば、通信構造体633の関数群として、USBに係る情報と通信に係る情報とに対応してFIFO容量を記憶するFIFO容量テーブル610が記憶されて、FIFO232aの適切な容量が確保される。かかるFIFO232aの確保手順は本例に限定されない。あらかじめ最大限のFIFO容量が準備され、デバイス制御中のデータ流量を測定しながら使用する容量を調整する構成であってもよい。
 なお、USBバッファ632は必須ではない。入出力ファイル構造体631入出力バッファと、通信構造体633の送信バッファおよび受信バッファとの間で、直接、データ転送が行なわれてもよい。
 通信端末220には、通信構造体621と、USBバッファ622と、FIFO225aと、が確保される。通信構造体621は、アプリケーションインタフェース232が確保した通信構造体633に対応付けられた構造体である。通信構造体621は、通信に関連するプロトコルやメッセージフォーマット、通信速度などを設定するための関数群と、受信データを一時記憶する受信バッファと、送信データを一時記憶する送信バッファと、を含む。USBバッファ622は、デバイス種別がUSBデバイスの場合に確保される、USBデバイス210のエンドポイントにそれぞれ対応するバッファを有する。
 例えば、通信構造体621の関数群として、USBに係る情報と通信に係る情報とに対応してFIFO容量を記憶する同様のFIFO容量テーブル610が記憶されて、FIFO225aの適切な容量が確保される。かかるFIFO225aの確保手順は本例に限定されない。あらかじめ最大限のFIFO容量が準備され、デバイス制御中のデータ流量を測定しながら使用する容量を調整する構成であってもよい。
 USBデバイス210には、エンドポイント611として、デバイス種別に応じてFIFO0~FIFOnが準備されている。
 (FIFO容量テーブル)
 図7Aは、本実施形態に係るFIFO容量テーブル610の構成を示す図である。なお、FIFO容量テーブルによるFIFO容量の決定は、図7Aに限定されない。また、図7Aには、通信帯域の決定も付加されている。
 FIFO容量テーブル610は、USBの転送方式と転送速度を含むUSB情報711と、通信データのフォーマットや通信方式、通信速度を含む通信情報712と、USB情報711および通信情報712を考慮した、ホスト側と端末側のFIFO容量713と、通信帯域714と、を記憶する。
 なお、ホスト230におけるデバイス入出力処理と、通信端末220におけるデバイス入出力処理とを、ネットワーク通信で分割するレベルに従って、FIFO容量713や通信帯域714も変化する。例えば、ホスト230がアプリケーション231のデバイス入出力バッファを生成し、他のデバイス入出力処理を通信端末220で行なう場合、データ通信は、通信端末220におけるデバイス入出力を維持可能なマクロのデータ量でよい。一方、ホスト230がデバイス入出力データの基本フォーマットを生成し、通信端末220では受信データを分解してデバイス入出力を行なう場合、データ通信は、通信端末220におけるデバイス入出力をミクロに維持可能にしなければならない。
 図7Bは、本実施形態に係るUSBのフォーマットおよびプロトコルを示す図である。本実施形態における通信部のデータ転送は、以下のどのレベルであってもよいし、それらに限定されるものではない。
 全体の構成721は、SOF(Start of Frame)から始まり、通常は1ms周期で通信される1つのまとまったトランザクション群を1フレームとする複数のフレームから構成される。なお、通信データとして通信される内容は、上記1フレームあるいは複数フレームであってもよい。この場合には、ホスト230では各USBデバイス210に対応するマクロプログラム(関数)によりまとまったトランザクション群が生成されて通信端末220と通信される。一方、通信端末220においてはフレームからトランザクション、さらにパケットへの変換とUSBデバイス210とのデータ交換が実行される。
 各フレーム構成722は、SOFから始まる複数の1まとまりのトランザクション群からなる。トランザクション構成723は、“SETUP”、“OUT”、“IN”の3つの送受信の単位である。そして、各トランザクションを構成する最小の通信単位であるパケットがUSBケーブル260を介してシリアル通信される。なお、図7Bにおいて、網かけしてないデータはデバイスからホストコンピュータへ伝送されるデータ、網かけしたデータはホストコンピュータからデバイスへ伝送されるデータである。なお、通信データとして通信される内容は、複数のトランザクションであっても、各トランザクション単位であってもよい。この場合には、ホスト230では各USBデバイス210に対応するトランザクション単位のプログラム(関数)によりトランザクションが生成されて通信端末220と通信される。通信端末220においてはトランザクションからパケットへの変換とUSBデバイス210とのデータ交換が実行される。
 コントロール転送のプロトコル724は、図2Cの双方向のデフォルトパイプ251を生成するように、制御データとして制御コマンドやデバイスディスクリプタを転送するプロトコルである。コントロール転送のプロトコル724は、転送データを含まない“No-data Control”と、デバイスに制御コマンドを送信する “Control Write”と、デバイスからデバイスディスクリプタなどを受信する“Control Read”とを有する。
 バルク転送のプロトコル725は、図2Cの片方向のデータパイプ群252を生成するように、非同期に大量のデータを転送するプロトコルである。バルク転送のプロトコル725は、デバイスにデータを送信する “Bulk Write”と、デバイスからデータを受信する“Bulk Read”とを有する。
 インタラプト転送のプロトコル726は、図2Cの片方向のデータパイプ群252を生成するように、ホストコンピュータの周期的なポーリングに対して、デバイスが任意のタイミングで応答することによって見かけ上、デバイスからの通知が行われたかのように転送するプロトコルである。インタラプト転送では少量で、いつデータが発生するかタイミングが不定なデータの転送に用いられる。インタラプト転送のプロトコル726は、デバイスにデータを送信する“Interrupt Write”と、デバイスからデータを受信する“Interrupt Read”とを有する。
 アイソクロナス転送のプロトコル727は、図2Cの片方向のデータパイプ群252を生成するように、周期的にデータ転送が行われるプロトコルである。アイソクロナス転送のプロトコル727は、データの信頼性よりも時間が重視されており、エラーによる再送が行われない。音声やCCDカメラの映像などのデータ転送に用いられる。アイソクロナス転送のプロトコル727は、デバイスにデータを送信する“Isochronous Write”と、デバイスからデータを受信する“Isochronous Read”とを有する。
 なお、フレームとして各転送プロトコルを対応付けてもよいし、複数の転送プロトコルをまとめてフレームを形成してもよい。いずれにしても、ホスト230側と通信端末220側とのフォーマットのネゴシエーションによって、デバイスドライバを構成するアプリケーションインタフェース232とホストコントローラインタフェース225との間の種々の層における通信が実現できる。
 《情報処理装置のハードウェア構成》
 図8は、本実施形態に係る情報処理装置230のハードウェア構成を示すブロック図である。
 図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図4の情報処理装置230の機能構成部を実現する。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部401は、ネットワーク240を介して通信端末220と通信する。なお、CPU810は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部401は、CPU810とは独立したCPUを有して、RAM(Random Access Memory)840の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM840とストレージ850との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース860は、CPU810とは独立したCPUを有して、RAM840の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU810は、RAM840にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU810は、処理結果をRAM840に準備し、後の送信あるいは転送は通信制御部401やDMAC、あるいは入出力インタフェース860に任せる。
 RAM840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入出力ファイル構造体631は、アプリケーションソフトウェア231の入出力ファイル操作を受けてOSが生成する構造体である。入出力ファイル構造体631は、ファイル処理関数群と、入出力フラグと、入出力バッファとのエリアを含む。通信構造体633は、アプリケーションインタフェース232が通信制御プログラム858による通信制御を渡すための構造体である。通信構造体633は、ネットワーク処理関数群と、送信バッファと、受信バッファとのエリアを含む。なお、通信構造体633には、例えば、FIFO容量テーブル610やFIFO232aが含まれる。USBバッファ632は、USBデバイス210のFIFO(エンドポイント)に対応付けられたバッファであり、制御データ用のバッファ0とデータ用のバッファ1~nを、USBデバイス210の種別や入出力処理に対応して含む。なお、USBバッファ632は必須な構成ではなく、入出力ファイル構造体631と通信構造体633との間で、直接、データ交換が行なわれてもよい。
 ストレージ850には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。アプリケーション格納部851は、情報処理装置230が提供するアプリケーションソフトウェアを検索可能に格納している。関数群格納部852は、情報処理装置230が使用する関数を検索可能に格納している。ドライバ格納部853は、デバイスドライバや、デバイスドライバの一部であるアプリケーションインタフェースなどを検索可能に格納している。
 ストレージ850には、以下のプログラムが格納される。OS854は、本情報処理装置230の全体を制御する基礎プログラムである。BIOS855は、本情報処理装置230の入出力操作を制御する基礎プログラムである。アプリケーションソフトウェア231は、現在、本情報処理装置230が実行中のアプリケーションプログラムである。アプリケーションインタフェース232は、デバイスドライバの一部としてアプリケーションソフトウェア231とのインタフェースを実現するプログラムである。通信制御プログラム858は、通信制御部401により通信端末220との通信を実行するプログラムである。
 入出力インタフェース860は、入出力機器との入出力データをインタフェースする。入出力インタフェース860には、表示部861、操作部862、が接続される。また、本情報処理装置230に、直接、デバイスをシリアルバスケーブルで接続して使用可能な場合は、USBコントローラ(コネクタ)863、SCSIコントローラ(コネクタ)864、HDMI(登録商標)コントローラ(コネクタ)865、などが接続されてもよい。さらに、音声出力部であるスピーカや、音声入力部であるマイク、あるいは、GPS位置判定部が接続されてもよい。
 なお、図8のRAM840やストレージ850には、情報処理装置230が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
 《情報処理装置の処理手順》
 図9Aおよび図9Bは、本実施形態に係る情報処理装置230の処理手順を示すフローチャートである。このフローチャートは、図8のCPU810がRAM840を使用しながら実行して、図4の機能構成部を実現する。なお、図9Aおよび図9Bにおいては、アプリケーションインタフェース232による処理手順を説明する。
 情報処理装置230は、ステップS901において、アプリケーションソフトウェア231から渡された入出力ファイル構造体を取得する。情報処理装置230は、ステップS903において、入出力ファイル構造体を参照して、USBバッファを確保する。情報処理装置230は、ステップS905において、入出力ファイル構造体を参照して、通信構造体を生成する。情報処理装置230は、ステップS907において、USBデバイス210のデバイスディスクリプタを要求する。そして、情報処理装置230は、ステップS909において、USBデバイス210のデバイスディスクリプタの受信を待つ。
 USBデバイス210のデバイスディスクリプタを受信すると、情報処理装置230は、ステップS911において、受信したデバイスディスクリプタを確保されたUSBバッファ0に設定する。そして、情報処理装置230は、ステップS913において、受信したデバイスディスクリプタを入出力ファイル構造体に転送する。受信したデバイスディスクリプタの解析は、OSあるいはBIOS、アプリケーションインタフェース232、アプリケーションソフトウェア231、あるいはその協働で行なわれる。
 次に、情報処理装置230は、ステップS915において、USBの場合、データ転送方式がバルク転送か、インタラプト転送あるいはアイソクロナス転送かを判定する。
 データ転送方式がバルク転送の場合、情報処理装置230は、ステップS921において、バルク転送を指示する。情報処理装置230は、ステップS923において、USBバッファ632と入出力ファイル構造体631との間でデータ転送を行なう。そして、情報処理装置230は、ステップS925において、データ転送が完了したか否かを判定して、完了していなければステップS923に戻って、データ転送を繰り返す。
 一方、データ転送がインタラプト転送あるいはアイソクロナス転送の場合、情報処理装置230は、ステップS931において、インタラプト転送あるいはアイソクロナス転送を指示する。次に、情報処理装置230は、ステップS933において、USB転送方式や転送速度、通信方式や通信方法などからFIFO容量テーブル610に基づいてFIFO232aを確保する。そして、情報処理装置230は、ステップS935において、USBバッファ632と入出力ファイル構造体631との間でデータ転送を行なう。情報処理装置230は、ステップS937において、通信路データのエラー発生か否かを判定する。通信路データのエラー発生であれば、情報処理装置230は、ステップS939において、FIFO容量の変更や通信帯域の変更を行ない、ステップS935に戻って、データ転送を繰り返す。通信路データのエラー発生がなければ、情報処理装置230は、ステップS941において、データ転送が完了したか否かを判定して、完了していなければステップS935に戻って、データ転送を繰り返す。
 バルク転送の完了あるいはインタラプト転送やアイソクロナス転送の完了と判定すれば、情報処理装置230は、ステップS951において、入出力処理のステータスを取得する。そして、情報処理装置230は、ステップS953において、入出力処理のステータスを入出力ファイル構造体に渡して、アプリケーションソフトウェア231に通知する。
 《通信端末のハードウェア構成》
 図10は、本実施形態に係る通信端末220のハードウェア構成を示すブロック図である。
 図10で、CPU1010は演算制御用のプロセッサであり、プログラムを実行することで図5の通信端末220の機能構成部を実現する。ROM1020は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部501は、ネットワーク240を介して情報処理装置230と通信する。なお、CPU1010は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部501は、CPU1010とは独立したCPUを有して、RAM1040の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM1040とストレージ1050との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース1060は、CPU1010とは独立したCPUを有して、RAM1040の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU1010は、RAM1040にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU1010は、処理結果をRAM1040に準備し、後の送信あるいは転送は通信制御部501やDMAC、あるいは入出力インタフェース1060に任せる。
 RAM1040は、CPU1010が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。通信構造体621は、ホストコントローラインタフェース225が通信制御プログラム1057による通信制御を渡すための構造体である。通信構造体621は、ネットワーク処理関数群と、送信バッファと、受信バッファとのエリアを含む。なお、通信構造体621には、例えば、FIFO容量テーブル610やFIFO225aが含まれる。USBバッファ622は、USBデバイス210のFIFO(エンドポイント)に対応付けられたバッファであり、制御データ用のバッファ0とデータ用のバッファ1~nを、USBデバイス210の種別や入出力処理に対応して含む。
 ストレージ1050には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。関数群格納部1051は、通信端末220が使用する関数を検索可能に格納している。コアドライバ格納部1052は、デバイスドライバのコアドライバや、デバイスドライバの一部であるホストコントローラインタフェースなどを検索可能に格納している。
 ストレージ1050には、以下のプログラムが格納される。OS1053は、本通信端末220の全体を制御する基礎プログラムである。BIOS1054は、本通信端末220の入出力操作を制御する基礎プログラムである。ホストコントローラインタフェース225は、デバイスドライバの一部としてホストコントローラとのインタフェースを実現するプログラムである。ホストコントローラを含むコアドライバ1056は、USBシリアル通信を制御するためのプログラムである。通信制御プログラム1057は、通信制御部501により情報処理装置230との通信を実行するプログラムである。
 入出力インタフェース1060は、入出力機器との入出力データをインタフェースする。入出力インタフェース1060には、表示部1061、操作部1062、USBコントローラ(コネクタ)504と505、が接続される。また、音声出力部であるスピーカや、音声入力部であるマイク、あるいは、GPS位置判定部が接続されてもよい。
 なお、図10のRAM1040やストレージ1050には、通信端末220が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
 《通信端末の処理手順》
 図11Aおよび図11Bは、本実施形態に係る通信端末220の処理手順を示すフローチャートである。このフローチャートは、図10のCPU1010がRAM1040を使用しながら実行して、図5の機能構成部を実現する。なお、図10Aおよび図10Bにおいては、ホストコントローラインタフェース225による処理手順を説明する。
 通信端末220は、ステップS1101において、USBデバイス210のFIFO(エンドポイント)に対応付けて、USBバッファを確保する。通信端末220は、ステップS1103において、通信構造体を生成する。通信端末220は、ステップS1105において、USBデバイス210に対してデバイスディスクリプタを要求する。そして、通信端末220は、ステップS1107において、USBデバイス210からのデバイスディスクリプタの取得を待つ。
 USBデバイス210のデバイスディスクリプタを取得すると、通信端末220は、ステップS1109において、取得したデバイスディスクリプタを確保されたUSBバッファ0に設定する。そして、通信端末220は、ステップS1111において、取得したデバイスディスクリプタを情報処理装置230に送信する。
 次に、通信端末220は、ステップS1113において、USBの場合、データ転送方式がバルク転送か、インタラプト転送あるいはアイソクロナス転送かを判定する。
 データ転送方式がバルク転送の場合、通信端末220は、ステップS1121において、バルク転送を指示する。通信端末220は、ステップS1123において、USBバッファ622とUSBデバイス210との間でデータ転送を行なう。そして、通信端末220は、ステップS1125において、データ転送が完了したか否かを判定して、完了していなければステップS1123に戻って、データ転送を繰り返す。
 一方、データ転送がインタラプト転送あるいはアイソクロナス転送の場合、通信端末220は、ステップS1131において、インタラプト転送あるいはアイソクロナス転送を指示する。次に、通信端末220は、ステップS1133において、USB転送方式や転送速度、通信方式や通信方法などからFIFO容量テーブル610に基づいてFIFO225aを確保する。そして、通信端末220は、ステップS1135において、USBバッファ622とUSBデバイス210との間でデータ転送を行なう。通信端末220は、ステップS1137において、通信路データのエラー発生か否かを判定する。通信路データのエラー発生であれば、通信端末220は、ステップS1139において、FIFO容量の変更や通信帯域の変更を行ない、ステップS1135に戻って、データ転送を繰り返す。通信路データのエラー発生がなければ、通信端末220は、ステップS1141において、データ転送が完了したか否かを判定して、完了していなければステップS1135に戻って、データ転送を繰り返す。
 バルク転送の完了あるいはインタラプト転送やアイソクロナス転送の完了と判定すれば、通信端末220は、ステップS1151において、デバイスステータスを取得する。そして、通信端末220は、ステップS1153において、デバイスステータスを情報処理装置230に送信する。
 本実施形態によれば、USBデバイスを遠隔の通信端末に接続した時にも、情報処理装置に直接接続した場合と同じ操作ができると共に、チャネルを介したデータ転送におけるエラー発生を抑制して、データを正常に入出力することができる。
 [第3実施形態]
 次に、本発明の第3実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態と比べると、遠隔のデバイス入出力処理の前に通信テストを行なって、デバイス入出力において通信路データエラーが発生するか否かを判定し、通信路データエラーが発生しないためのFIFO容量や通信帯域を設定する点で異なる。すなわち、データチャネルを介したデータ転送を通信テストし、通信テストのテスト結果に応じて、エラー発生の抑制を調整する。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 《システム概要》
 図12は、本実施形態に係る情報処理システム1200の概要を示す図である。図12において、図2Bと同様の構成要素には同じ番号を付して、説明を省略する。
 情報処理システム1200は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ1201と、USBバスインタフェース226と、を有する。デバイスドライバ1201は、アプリケーションインタフェース232からネットワーク240を介してホストコントローラインタフェース225に、テストパケット(TEST_PKT)を送信して、通信状況をテストする通信テスト機能1202を有する。テストパケットとしては、タイムスタンプを有するもの、シリアル番号を有するもの、により通信時間を測定できる。
 通信テスト機能1202は、1パケット容量のテストパケットを、通信路を介して往復させ、往路の遅延やジッタ、あるいは、復路の遅延やジッタ、をテストして、テスト結果からFIFO232aやFIFO225aの各容量や通信帯域を設定することで、通信路データエラーが発生しないようにする。
 なお、1パケット容量のテストパケットによるループバックで通信時間を測定するのではなく、データ量を次第に増やして安定的な通信およびデバイス入出力できる通信量を把握してもよい。また、ジッタの吸収やデータ流量の調整は、FIFO232a、FIFO225aに限定されない。ローテーションメモリやTDM(Time Division Multiplexing)などの他の構成要素であってもよい。
 かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御できる。かつ、あらかじめ通信テストを行なうので、チャネルを介したデータ転送におけるエラー発生なしに、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
 《情報処理装置の機能構成》
 図13Aは、本実施形態に係る情報処理装置1330の機能構成を示すブロック図である。なお、図13Aにおいて、図4と同様の機能構成部には同じ参照番号を付して、説明を省略する。
 通信テスト部1307は、通信制御部401を介して、1パケット容量のテストパケットを、通信路を介して往復させ、往路の遅延やジッタ、あるいは、復路の遅延やジッタ、をテストして、エラー抑制部405が有するFIFO232a容量や通信帯域の適切な設定を行なう。
 (通信テスト部)
 図13Bは、本実施形態に係る通信テスト部1307の機能構成を示すブロック図である。なお、通信テスト部1307の機能構成は、図13Bに限定されない。
 通信テスト部1307は、1パケット送信部1311と、送信先受信タイム取得部1312と、送信パケット受信タイム取得部1313と、を有する。また、通信テスト部1307は、送信遅延算出部1314と、ループ遅延算出部1315と、USB情報取得部1316と、通信情報取得部1317と、を有する。また、通信テスト部1307は、FIFO容量および通信帯域制御部1318、FIFO容量変更部1320と、通信帯域変更部1321と、を有する。
 1パケット送信部1311は、テスト用のタイムスタンプやシリアル番号を有するパケットを送信する。送信先受信タイム取得部1312は、送信先の通信端末220からのテストパケット受信タイムを含む返信を受信する。送信パケット受信タイム取得部1313は、ループバックしたパケットを受信して、タイムスタンプやシリアル番号に基づきループ時間を取得する。
 送信遅延算出部1314は、1パケット送信部1311と送信先受信タイム取得部1312との送受信タイムから、送信遅延時間を算出する。ループ遅延算出部1315は、1パケット送信部1311と送信パケット受信タイム取得部1313との送受信タイムから、ループ遅延時間を算出する。USB情報取得部1316は、入出力制御するデバイスの接続に関してUSB転送方式や転送速度を含むUSB情報を取得する。通信情報取得部1317は、ネットワークなどの通信方式や通信速度を含む通信情報を取得する。
 FIFO容量および通信帯域制御部1318は、制御テーブル1319を有し、送信遅延算出部1314やループ遅延算出部1315の算出結果と、USB情報取得部1316や通信情報取得部1317の取得情報と、に基づいて、FIFO容量および通信帯域を制御する。FIFO容量変更部1320は、テスト結果に基づいて適切なFIFO容量に変更する。一方、通信帯域変更部1321は、テスト結果に基づいて適切な通信帯域に変更する。
 (制御テーブル)
 図14は、本実施形態に係るFIFO容量および通信帯域の制御テーブル1319の構成を示す図である。制御テーブル1319は、FIFO容量および通信帯域制御部1318において、テストパケットのテスト通信結果に基づいて、適切なFIFO容量および通信帯域を決定するために使用されるテーブルである。
 制御テーブル1319は、1パケットの送信タイム1401と、送信先受信タイム1402と、送信パケット受信タイム1403と、FIFO現容量1404と、現通信帯域1405と、を記憶する。また、制御テーブル1319は、取得したUSB情報1406と、通信情報1407と、を記憶する。制御テーブル1319は、上記各テスト結果と取得情報とに対応付けて、新たなFIFO容量と通信帯域とを含む変更情報1408を記憶する。
 なお、かかる制御テーブル1319は、RAM840に生成されて、適切なFIFO容量と通信帯域とを設定するために使用されると共に、蓄積されて、以降の適切なFIFO容量と通信帯域との設定に使用されてもよい。
 《情報処理装置の処理手順》
 図15は、本実施形態に係る情報処理装置1330の処理手順を示すフローチャートである。なお、図15は、本実施形態のテストパケットのテスト送信による適切なFIFO容量と通信帯域との設定の処理手順を示し、他の処理手順は、図9Aおよび図9Bと同様である。
 情報処理装置1330は、ステップS1501において、テスト用の1パケットをデバイス接続用の通信端末に宛てて送信する。そして、情報処理装置1330は、ステップS1503において、送信タイムあるいはループタイムを含む通信タイムの取得を待つ。
 送信タイムあるいはループタイムを含む通信タイムを取得すれば、情報処理装置1330は、ステップS1505において、USB情報や通信情報を含む通信環境条件を取得する。次に、情報処理装置1330は、ステップS1507において、テストによる通信タイムと通信環境条件とに基づいて、適正なFIFO容量と通信帯域とを算出する。そして、情報処理装置1330は、ステップS1509において、算出したFIFO容量と通信帯域との適正値を設定する。
 本実施形態によれば、あらかじめ通信テストを行なのでの、チャネルを介したデータ転送におけるエラー発生なしに、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
 《他の情報処理システムへの適用》
 以下、第2実施形態あるいは第3実施形態の遠隔デバイス制御を適用した他の情報処理システムについて説明する。これらの情報処理システムにおいても、同様の効果を奏することができる。
 (USBハブへの適用)
 図16は、本実施形態をUSBハブに適用した情報処理システム1600の機能構成を示すブロック図である。なお、図17において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
 情報処理システム1600は、USBハブ1660と、複数のUSBデバイス1611~161nとを備える。USBハブ1660は、ホストコントローラインタフェース1625と、複数のSIEに分岐するUSBバスインタフェース1626とを有する。ホストコントローラインタフェース1625は、複数のUSBケーブルに分岐するための機能を有する。また、複数のSIEは、それぞれ、複数のUSBケーブル1661~166nを介して、複数のUSBデバイス1611~161nの各SIEと接続される。
 そして、情報処理装置としてのホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、USBハブ1660のホストコントローラインタフェース1625が通信路データ量を調整するFIFO1625aを有する。
 (HDMI(登録商標)への適用)
 図17は、本実施形態をHDMI(登録商標)に適用した情報処理システム1700の機能構成を示すブロック図である。なお、図17において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
 図17の情報処理システム1700は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1720と、通信端末1720のHDMI(登録商標)コネクタに接続されたHDMI(登録商標)デバイス1710と、を備える。
 通信端末1720は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1725と、ホストコントローラおよび通信用ICを有するHDMI(登録商標)バスインタフェース1726とを有する。ホストコントローラインタフェース1725は、ネットワーク240を介して、アプリケーションインタフェース232から受信したHDMI(登録商標)のプロトコルに応じたコマンドやデータなどを、HDMI(登録商標)バスインタフェース1726のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1725は、ネットワーク240を介して、HDMI(登録商標)バスインタフェース1726のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。HDMI(登録商標)バスインタフェース1726のホストコントローラは、ホストコントローラインタフェース1725とコマンドやデータなどを交換しながら、HDMI(登録商標)ケーブル1760を介したシリアル通信をHDMI(登録商標)プロトコルに従い実行する。HDMI(登録商標)バスインタフェース1726の通信用ICは、HDMI(登録商標)ケーブル1760上の信号をHDMI(登録商標)通信の仕様に従い制御する。
 そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1720のホストコントローラインタフェース1725が通信路データ量を調整するFIFO1725aを有する。
 HDMI(登録商標)デバイス1710は、ソフトウェアとして、通信端末1720のHDMI(登録商標)バスインタフェース1726とHDMI(登録商標)ケーブル1760を介して接続して、信号をやり取りするHDMI(登録商標)デバイス1710のHDMI(登録商標)バスインタフェース1716を有する。また、HDMI(登録商標)デバイス1710は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1717と、入出力データを記憶するエンドポイント1718とを有する。
 かかる接続により、通信端末1720とHDMI(登録商標)デバイス1710とは、お互いのHDMI(登録商標)バスインタフェース1726および1716により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1725を介したシステムレベルのコントロール転送により、制御パイプ(DDC/CEC)1751を介してアプリケーションソフトウェア231と制御情報エンドポイント1717との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1752を介してアプリケーションソフトウェア231とエンドポイント1718との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
 以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1720のホストコントローラインタフェース1725とのネットワーク通信と、HDMI(登録商標)ケーブルを介した、HDMI(登録商標)バスインタフェース1726と1716間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
 (SCSIへの適用)
 図18は、本実施形態をSCSIに適用した情報処理システム1800の機能構成を示すブロック図である。なお、図18において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
 図18の情報処理システム1800は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1820と、通信端末1820のSCSIコネクタに接続されたSCSIデバイス1810と、を備える。
 通信端末1820は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1825と、ホストコントローラおよび通信用ICを有するSCSIバスインタフェース1826とを有する。ホストコントローラインタフェース1825は、ネットワーク240を介して、アプリケーションインタフェース232から受信したSCSIのプロトコルに応じたコマンドやデータなどを、SCSIバスインタフェース1826のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1825は、ネットワーク240を介して、SCSIバスインタフェース1826のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。SCSIバスインタフェース1826のホストコントローラは、ホストコントローラインタフェース1825とコマンドやデータなどを交換しながら、SCSIケーブル1860を介したシリアル通信をSCSIプロトコルに従い実行する。SCSIバスインタフェース1826の通信用ICは、SCSIケーブル1860上の信号をSCSI通信の仕様に従い制御する。
 そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1820のホストコントローラインタフェース1825が通信路データ量を調整するFIFO1825aを有する。
 SCSIデバイス1810は、ソフトウェアとして、通信端末1820のSCSIバスインタフェース1826とSCSIケーブル1860を介して接続して、信号をやり取りするSCSIデバイス1810のSCSIバスインタフェース1816を有する。また、SCSIデバイス1810は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1817と、入出力データを記憶するエンドポイント1818とを有する。
 かかる接続により、通信端末1820とSCSIデバイス1810とは、お互いのSCSIバスインタフェース1826および1816により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1825を介したシステムレベルのコントロール転送により、制御パイプ(SCSIコマンド/SCSIレスポンス)1851を介してアプリケーションソフトウェア231と制御情報エンドポイント1817との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1852を介してアプリケーションソフトウェア231とエンドポイント1818との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
 以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1820のホストコントローラインタフェース1825とのネットワーク通信と、SCSIケーブルを介した、SCSIバスインタフェース1826と1816間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
 (SDカードへの適用)
 図19は、本実施形態をSDカードに適用した情報処理システム1900の機能構成を示すブロック図である。なお、図19において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
 図19の情報処理システム1900は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1920と、通信端末2620のコネクタに接続されたSDカード1910と、を備える。
 通信端末1920は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1925と、ホストコントローラおよびバス用アンプを有するSDカードバスインタフェース1926とを有する。ホストコントローラインタフェース1925は、ネットワーク240を介して、アプリケーションインタフェース232から受信したSDカードのプロトコルに応じたコマンドやデータなどを、SDカードバスインタフェース1926のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1925は、ネットワーク240を介して、SDカードバスインタフェース1926のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。SDカードバスインタフェース1926のホストコントローラは、ホストコントローラインタフェース1925とコマンドやデータなどを交換しながら、SDカードコネクタ1960を介したシリアル通信をSDカードのプロトコルに従い実行する。SDカードバスインタフェース1926のバス用アンプは、SDカードコネクタ1960上の信号をSDカード用通信の仕様に従い制御する。
 そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1920のホストコントローラインタフェース1925が通信路データ量を調整するFIFO1925aを有する。
 SDカード1910は、ソフトウェアとして、通信端末1920のSDカードバスインタフェース1926とSDカードコネクタ1960を介して接続して、信号をやり取りするSDカード1910のSDカードバスインタフェース1916を有する。また、SDカード1910は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1917と、入出力データを記憶するエンドポイント1918とを有する。
 かかる接続により、通信端末1920とSDカード1910とは、お互いのSDカードバスインタフェース1926および1916により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1925を介したシステムレベルのコントロール転送により、制御パイプ(SDカードコマンド)1951を介してアプリケーションソフトウェア231と制御情報エンドポイント1917との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1952を介してアプリケーションソフトウェア231とエンドポイント1918との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
 以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1920のホストコントローラインタフェース1925とのネットワーク通信と、SDカードコネクタを介した、SDカードバスインタフェース1926と1916間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
 (機器共有システムへの適用)
 図20は、本実施形態を機器共有システムに適用した情報処理システム2000の機能構成を示すブロック図である。なお、図19において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
 図20は、複数のユーザAおよびBが、キーボードおよびマウス(ポインティングデバイス)と、モニタとにより、仮想PC2030を共有すると共に、USBハブを介してプリンタや書画カメラも共有することで、会議システムを形成している。
 図20においても、仮想PC2030側の仮想HUBや仮想モニタ分配機などのアプリケーションインタフェース2032と、仮想USB_HUBを含むホストコントローラインタフェース2025とを、ネットワーク240を介して通信接続することにより、仮想PC2030と各デバイスとの統一された通信チャネル(パイプ)を形成することができる。
 さらに、アプリケーションインタフェース2032が通信路データ量を調整するFIFO2032aを有し、ホストコントローラインタフェース2025が通信路データ量を調整するFIFO2025aを有することにより、通信路データのエラー発生を抑制することができる。
 [第4実施形態]
 次に、本発明の第4実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態、第3実施形態と比べると、クラウドサーバなどがデバイスを接続した場合の設定パラメータを知識として蓄積し、適切な設定パラメータを提供する点で異なる。すなわち、エラー抑制のために設定されたパラメータを蓄積し、チャネルを確立する場合に、蓄積したパラメータから選定取得したパラメータをエラー抑制のために設定する。その他の構成および動作は、第2実施形態、第3実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 《情報処理システムの構成》
 図21は、本実施形態に係る情報処理システム2100の構成を示すブロック図である。なお、図21において、図2Aと同様の構成要素には同じ参照番号を付して、説明を省略する。
 クラウドサーバ2130は、ホスト230、あるいは、通信端末221~223、あるいは、自機内に形成された仮想PC2131から、デバイス入出力において設定するシステムパラメータを蓄積する。システムパラメータには、デバイスに種別、接続するバスのデータ転送方式や転送速度、ネットワーク240に通信方式や通信速度、などに対応付けて、適切な転送レベル、通信方式や通信帯域、FIFO容量、などが含まれる。
 クラウドサーバ2130は、自機の仮想PC2131で通信端末221~223に接続されたデバイスを制御する場合に、接続条件に基づいて、適切なシステムパラメータを検索して設定する。また、ホスト230からのシステムパラメータ要求に応答して、接続条件に基づいて、適切なシステムパラメータを検索して通知する。
 《クラウドサーバの機能構成》
 図22は、本実施形態に係るクラウドサーバ2130の機能構成を示すブロック図である。
 クラウドサーバ2130は、通信制御部2201と、パラメータ受信部2202と、1つまたは複数の仮想PC2131~213nと、接続環境、条件、設定パラメータ蓄積部2203と、システムパラメータデータベース2204と、を備える。また、クラウドサーバ2130は、パラメータ要求受信部2205と、パラメータ選定部2206と、パラメータ送信部2207と、を備える。
 通信制御部2201は、ネットワーク240を介して、ホスト230や通信端末221~113との通信を制御する。パラメータ受信部2202は、ホスト230や通信端末221~113からデバイス入出力時の接続環境および条件に対応付けた設定パラメータを受信する。
 接続環境、条件、設定パラメータ蓄積部2203は、外部のホスト230や通信端末221~113から受信した接続環境および条件に対応付けた設定パラメータ、および、仮想PC2131~213nから取得した接続環境および条件に対応付けた設定パラメータを整理して蓄積する。システムパラメータデータベース2204は、接続環境、条件、設定パラメータ蓄積部2203により蓄積されたデータを評価値も含め検索可能に格納する。
 パラメータ要求受信部2205は、外部のホスト230や通信端末221~113からの設定パラメータの要求を受信する。パラメータ選定部2206は、パラメータ要求受信部2205が受信した要求の条件に応じて、適切な設定パラメータをシステムパラメータデータベース2204から選定して取得する。パラメータ送信部2207は、取得した適切な設定パラメータを、外部のホスト230や通信端末221~113に送信する。なお、仮想PC2131~213nからの要求であれば、適切な設定パラメータを仮想PC2131~313nに設定する。
 (システムパラメータデータベース)
 図23は、本実施形態に係るシステムパラメータデータベース2204の構成を示す図である。システムパラメータデータベース2204は、デバイスを、遠隔にネットワークを介して接続した場合の設定パラメータをその信頼度も含めて蓄積し、以降の設定時に適切な設定パラメータを提供するために使用される。
 システムパラメータデータベース2204は、情報処理システムのシステム構成2301と、仮想PCを含むホストコンピュータについてのホスト情報2302とに対応付けて、次のデータを蓄積する。システムパラメータデータベース2204は、各デバイス情報2303と、バス情報2304と、通信情報2305と、使用されたバス通信パラメータ2306と、通信帯域を含むネットワーク通信パラメータ2307と、FIFO容量を含むバッファパラメータ2308と、デバイス入出力の信頼度2309と、を記憶する。1つまたは複数の条件に応じて、信頼性順に検索ソートして、結果が出力される。
 《クラウドサーバのハードウェア構成》
 図24は、本実施形態に係るクラウドサーバ2130のハードウェア構成を示すブロック図である。
 図24で、CPU2410は演算制御用のプロセッサであり、プログラムを実行することで図22のクラウドサーバ2130の機能構成部を実現する。ROM2420は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部2201は、ネットワーク240を介してホスト230や通信端末220と通信する。なお、CPU2410は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部2201は、CPU2410とは独立したCPUを有して、RAM2440の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM2440とストレージ2450との間でデータを転送するDMACを設けるのが望ましい(図示なし)。したがって、CPU2410は、RAM2440にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU2410は、処理結果をRAM2440に準備し、後の送信あるいは転送は通信制御部2201やDMACに任せる。
 RAM2440は、CPU2410が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM2440には、本実施形態の実現に必要なデータを記憶する領域が確保されている。受信パラメータ2441は、外部のホスト230や通信端末221~113から受信した、あるいは、仮想PC2131~213nから取得したパラメータである。パラメータ要求データ2442は、設定パラメータを共有するデバイス入出力の条件を表わすデータである。送信パラメータ2443は、外部のホスト230や通信端末221~113に送信する、あるいは、仮想PC2131~213nに設定するパラメータである。仮想PC用送受信データ2444は、クラウドサーバ2130に形成された仮想PCからの送受信データである。
 ストレージ2450には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。システムパラメータデータベース2204は、図23のような設定パラメータを検索ソート可能に蓄積する。
 ストレージ2450には、以下のプログラムが格納される。クラウドサーバ制御プログラム2451は、本クラウドサーバ2130の全体を制御するプログラムである。パラメータ蓄積モジュール2452は、外部のホスト230や通信端末221~113からパラメータを受信し、仮想PC2131~213nからパラメータを取得して、システムパラメータデータベース2204に蓄積するモジュールである。パラメータ提供モジュール2453は、システムパラメータデータベース2204に蓄積された適切なパラメータを検索ソートして、外部のホスト230や通信端末221~113へパラメータを送信し、仮想PC2131~213nへパラメータを設定するモジュールである。仮想PCプログラム2454は、本クラウドサーバ2130に仮想PC2131~213nを形成するためのプログラムである。
 なお、図24のRAM2440やストレージ2450には、クラウドサーバ2130が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
 《クラウドサーバの動作手順》
 図25は、本実施形態に係るクラウドサーバ2130の動作手順を示すフローチャートである。このフローチャートは、図24のCPU2410がRAM2440を使用して実行し、図22の機能構成部を実現する。
 クラウドサーバ2130は、ステップS2511において、設定パラメータの受信か否かを判定する。設定パラメータの受信であれば、クラウドサーバ2130は、ステップS2513において、受信した設定パラメータを検索ソート可能にシステムパラメータデータベース2204に蓄積する。
 設定パラメータの受信でなければ、クラウドサーバ2130は、ステップS2521において、設定パラメータの要求であるか否かを判定する。設定パラメータの要求であれば、クラウドサーバ2130は、ステップS2523において、システムパラメータデータベース2204からデバイス接続条件を参照して設定パラメータを検索ソートする。そして、クラウドサーバ2130は、ステップS2525において、取得した設定パラメータを送信する。
 設定パラメータの受信でも設定パラメータの要求でもなければ、クラウドサーバ2130は、ステップS2531において、仮想PCの生成であるか否かを判定する。仮想PCの生成であれば、クラウドサーバ2130は、ステップS2533において、仮想PCの生成処理を実行する。そして、クラウドサーバ2130は、ステップS2535において、システムパラメータデータベース2204からデバイス接続条件を参照して取得した設定パラメータを設定する。
 本実施形態によれば、蓄積された知識から、デバイス、デバイス接続バス方式、通信方式、などの組み合わせにおいて、適切なFIFO容量や通信帯域の設定ができる。
 [第5実施形態]
 次に、本発明の第5実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態乃至第4実施形態と比べると、情報処理装置230(仮想PC)とデバイスが接続された通信端末220との間で異なるデータが通信される点で異なる。すなわち、本実施形態においては、情報処理装置230のアプリケーションIFと通信端末220のホストコントローラIFとが、第2実施形態と異なる部分で分離されている。例えば、ホストコントローラチップ(HC)を含めて全体のデバイスドライバをソフトウェアで実現した場合に、特に、ホストコントローラドライバとホストコントローラチップとの組を種々の階層で通信効率や通信速度を考慮して分割する。そして、分割された階層間の情報を情報処理装置230と通信端末220間でネットワーク通信するよう設計する。その他の構成および動作は、第2実施形態から第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 (データ伝送例)
 図26は、本実施形態に係る情報処理システムにおけるデータ伝送を示す図である。なお、図26は、図2Gと同様に、USB接続されたUSBデバイスのディスクリプタ取得手順を示す図である。したがって、図26において、図2Gと同様の構成要素には同じ参照番号を付して、説明は省略する。
 デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。コントロール転送であるUSBリクエストのUSBプロトコルを含むフレームは、情報処理装置230とデバイス210間でやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングされたフレームに挿入されて、携帯端末220から情報処理装置230に送信される。
 ここで、情報処理装置230のアプリケーションインタフェース2632は、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためGET DESCRIPTORのUSBリクエストのUSBプロトコルを含むフレームを生成して、通信制御部401に渡す。
 IPヘッダやTCPヘッダでIPカプセリングされたGET DESCRIPTORのUSBリクエストを含むフレームは、通信端末220の通信制御部501で受信されてIPアンカプセリングされる。GET DESCRIPTORのUSBリクエストは、ホストコントローラインタフェース2625に渡される。ホストコントローラインタフェース2625は、GET DESCRIPTORのUSBリクエストのUSBプロトコルを含むフレームに基づいて、デバイス210へのUSBバスにおける各パケットを転送するようUSBバスインタフェース226(不図示)に指示する。
 ホストコントローラインタフェース2625は、デバイス210からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ2663として含むフレームを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたデバイスディスクリプタ2663を含むフレームは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
 情報処理装置の通信制御部401は、アンカプセリングしたデバイスディスクリプタ2663を含むフレームをアプリケーションインタフェース2632に渡すと、アプリケーションインタフェース2632はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
 以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース2625とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
 図27は、本実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。なお、図27は、図2Gおよび図26と同様に、USB接続されたUSBデバイスのディスクリプタ取得手順を示す図である。したがって、図27において、図2Gおよび図26と同様の構成要素には同じ参照番号を付して、説明は省略する。
 デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。USBリクエストのUSBプロトコルを含むコントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。コントロール転送であるUSBリクエストのUSBプロトコルを含むセット・ステージと、データ・ステージと、ステータス・ステージとは、それぞれ、情報処理装置230とデバイス210間でやり取りされる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングされたデータ・ステージに挿入されて、携帯端末220から情報処理装置230に送信される。
 ここで、情報処理装置230のアプリケーションインタフェース2732は、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためGET DESCRIPTORのUSBリクエストのUSBプロトコルを含むセット・ステージを生成して、通信制御部401に渡す。
 IPヘッダやTCPヘッダでIPカプセリングされたGET DESCRIPTORのUSBリクエストを含むセット・ステージは、通信端末220の通信制御部501で受信されてIPアンカプセリングされる。GET DESCRIPTORのUSBリクエストは、ホストコントローラインタフェース2725に渡される。ホストコントローラインタフェース2725は、GET DESCRIPTORのUSBリクエストのUSBプロトコルを含むセット・ステージに基づいて、デバイス210へのUSBバスにおける各パケットを転送するようUSBバスインタフェース226(不図示)に指示する。
 ホストコントローラインタフェース2725は、デバイス210からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ2763として含むデータ・ステージを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたデバイスディスクリプタ2763を含むデータ・ステージは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
 情報処理装置の通信制御部401は、アンカプセリングしたデバイスディスクリプタ2763を含むデータ・ステージをアプリケーションインタフェース2732に渡すと、アプリケーションインタフェース2732はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
 また、ホストコントローラインタフェース2725は、デバイス210からステータス・ステージで受信したデータ・パケットをステータスデータ2764として含むステータス・ステージを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたステータスデータ2764を含むステータス・ステージは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
 情報処理装置の通信制御部401は、アンカプセリングしたステータスデータ2764を含むステータス・ステージをアプリケーションインタフェース2732に渡すと、アプリケーションインタフェース2732はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
 なお、上記説明では、アプリケーションインタフェース2732においては、ハンドシェイク・パケットについて判定していないが、アプリケーションインタフェース2732が各ステージにおけるハンドシェイク・パケットを確認する構成であってもよい。
 以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース2725とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
 本実施形態によれば、情報処理装置(仮想PC)と通信端末間の通信が互いのドライバを分割したフレーム単位の通信であってもステージ単位の通信であっても、USBデバイスを遠隔の通信端末に接続した時にも、情報処理装置に直接接続した場合と同じ操作ができる。
 [他の実施形態]
 なお、上記実施形態においては、USB、HDMI(登録商標)によるデバイスの接続例を示したが、SCSIなどの他の接続であっても同様の効果を奏する。さらに、デバイスを近距離無線、例えば、赤外線通信、WiFi、Bluetooth(登録商標)などで接続する場合にも適用でき、同様の効果を奏する。
 また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
 また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
 なお、この出願は、同日出願された日本国特許出願(特願2014-235108,特願2014-235110、特願2014-235111)と関連し、その開示の全てをここに取り込む。
 この出願は、2014年11月19日に出願された日本国特許出願 特願2014-235109号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (14)

  1.  デバイスと、
     前記デバイスを制御するデバイス制御手段と、
     前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
     アプリケーションと、前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段とを有する情報処理装置と、
     前記アプリケーションインタフェース手段と前記デバイスインタフェース手段とを通信手段で接続した場合に、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
     前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
     を備える情報処理システム。
  2.  前記エラー抑制手段は、前記デバイスインタフェース手段と前記デバイス制御手段との間のデータ転送においてオーバーフローまたはアンダーフローが発生しないように配置されるバッファを含む請求項1に記載の情報処理システム。
  3.  データ転送におけるエラー発生をエラー発生の抑制指示の受付手段と共に報知する報知手段を備え、
     前記エラー抑制手段は、前記受付手段からの抑制指示に対応して、エラー発生の抑制を調整する請求項1または2に記載の情報処理システム。
  4.  前記データチャネルを介したデータ転送をテストする通信テスト手段を備え、
     前記エラー抑制手段は、前記通信テスト手段のテスト結果に応じて、エラー発生の抑制を調整する請求項1乃至3のいずれか1項に記載の情報処理システム。
  5.  前記エラー抑制手段においてエラー抑制のために設定されたパラメータを蓄積する蓄積手段と、
     前記チャネル確立手段によりチャネルを確立する場合に、前記蓄積手段から取得したパラメータをエラー抑制のために設定する設定手段と、
     をさらに備える請求項1乃至4のいずれか1項に記載の情報処理システム。
  6.  前記デバイス制御手段は、USB、HDMI(登録商標)、SCSI、SDカードコネクタ、および近距離通信の少なくともいずれか1つを介して接続されたデバイスを制御する請求項1乃至5のいずれか1項に記載の情報処理システム。
  7.  前記通信手段は、複数の階層から選択されたデバイス制御に適切な層によりデータを転送する請求項1乃至6のいずれか1項に記載の情報処理システム。
  8.  通信端末において、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する第1起動ステップと、
     情報処理装置において、アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する第2起動ステップと、
     前記情報処理装置の前記アプリケーションインタフェース手段と前記通信端末の前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
     前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
     を含む情報処理方法。
  9.  アプリケーションと、
     前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と、
     前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
     前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
     を備える情報処理装置。
  10.  前記データチャネルを介したデータ転送をテストする通信テスト手段を備え、
     前記エラー抑制手段は、前記通信テスト手段のテスト結果に応じて、エラー発生の抑制を調整する請求項9に記載の情報処理装置。
  11.  アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
     前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
     前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
     をコンピュータに実行させる情報処理装置の制御プログラム。
  12.  デバイスを制御するデバイス制御手段と、
     前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
     前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
     前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
     を備えた通信端末。
  13.  デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する起動ステップと、
     前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
     前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
     をコンピュータに実行させる通信端末の制御プログラム。
  14.  情報処理装置のアプリケーションとインタフェースするアプリケーションインタフェース手段と、通信端末のデバイス制御手段とインタフェースするデバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立した場合に、確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段のパラメータを取得する取得手段と、
     前記取得したパラメータを蓄積するデータベースと、
     新たに、情報処理装置のアプリケーションインタフェース手段と、通信端末のデバイスインタフェース手段とを、通信手段を介して接続し、アプリケーションとデバイスとの間に制御チャネルとデータチャネルとを確立する場合に、前記データベースから接続条件に応じて適正なパラメータを選定してエラー抑制手段に提供する提供手段と、
     を備えるサーバ。
PCT/JP2015/082360 2014-11-19 2015-11-18 情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム WO2016080427A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP15860997.4A EP3226146A4 (en) 2014-11-19 2015-11-18 Information processing system, information processing method, server, information processing device, communication terminal, and control method and control program therefor
JP2016560257A JP6399105B2 (ja) 2014-11-19 2015-11-18 情報処理システム、情報処理方法、情報処理装置および制御プログラム
US15/527,598 US10554348B2 (en) 2014-11-19 2015-11-18 Information processing system, information processing method, and information processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014235109 2014-11-19
JP2014-235109 2014-11-19

Publications (1)

Publication Number Publication Date
WO2016080427A1 true WO2016080427A1 (ja) 2016-05-26

Family

ID=56013962

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/082360 WO2016080427A1 (ja) 2014-11-19 2015-11-18 情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム

Country Status (4)

Country Link
US (1) US10554348B2 (ja)
EP (1) EP3226146A4 (ja)
JP (1) JP6399105B2 (ja)
WO (1) WO2016080427A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019083441A (ja) * 2017-10-31 2019-05-30 村田機械株式会社 制御システム、制御装置、変換装置、制御システムの制御方法、制御装置の制御方法、及び、変換装置の制御方法
CN114765588A (zh) * 2020-12-30 2022-07-19 深圳Tcl新技术有限公司 测试方法、计算机设备、计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04241547A (ja) * 1991-01-14 1992-08-28 Nec Corp 回線品質チェック方法
JP2009031882A (ja) * 2007-07-25 2009-02-12 Hitachi Ltd デバイス管理システム及びこれに用いるサーバ及び仮想デバイス管理プログラム
JP2013016165A (ja) * 2011-07-01 2013-01-24 Rsupport Co Ltd 遠隔デバイスドライバを利用した遠隔制御システム及び遠隔デバイスドライバを利用した遠隔制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001308917A (ja) * 2000-04-20 2001-11-02 Yokogawa Electric Corp トラフィック制御装置
US8396165B2 (en) * 2006-07-20 2013-03-12 Sharp Kabushiki Kaisha Multicarrier-signal receiving apparatus and multicarrier-signal transmitting apparatus
KR20130054896A (ko) * 2011-11-17 2013-05-27 삼성전자주식회사 시분할 이중화 통신 시스템에서 물리채널 송수신의 제어 방법 및 장치
JPWO2014045417A1 (ja) 2012-09-21 2016-08-18 富士通株式会社 情報処理装置、および負荷試験方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04241547A (ja) * 1991-01-14 1992-08-28 Nec Corp 回線品質チェック方法
JP2009031882A (ja) * 2007-07-25 2009-02-12 Hitachi Ltd デバイス管理システム及びこれに用いるサーバ及び仮想デバイス管理プログラム
JP2013016165A (ja) * 2011-07-01 2013-01-24 Rsupport Co Ltd 遠隔デバイスドライバを利用した遠隔制御システム及び遠隔デバイスドライバを利用した遠隔制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3226146A4 *

Also Published As

Publication number Publication date
US10554348B2 (en) 2020-02-04
EP3226146A1 (en) 2017-10-04
JPWO2016080427A1 (ja) 2017-09-07
JP6399105B2 (ja) 2018-10-03
US20170366309A1 (en) 2017-12-21
EP3226146A4 (en) 2018-07-25

Similar Documents

Publication Publication Date Title
US9594536B2 (en) Method and apparatus for electronic device communication
EP2530599B1 (en) Method and mobile terminal for realizing audio transmission
KR101335247B1 (ko) 원격의 싱크 장치를 표시하는 방법, 이를 위한 소스 장치 및 시스템
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
JP6399105B2 (ja) 情報処理システム、情報処理方法、情報処理装置および制御プログラム
JP6354854B2 (ja) 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
JP2009182458A (ja) 通信装置、通信システム、通信方法及びプログラム
TWM504272U (zh) 通用串列匯流排(usb)電腦切換器(kvm)訊號延長器
CN106372019A (zh) 一种系统总线设备响应超时的处理方法及超时处理装置
US8341310B2 (en) Method for adjusting the transmission speed of the electronic aid
JP6388035B2 (ja) 情報処理システム、情報処理方法、情報処理装置、通信端末および制御プログラム
KR101346461B1 (ko) 이종 네트워크 간 통신을 위한 네트워크 연결장치 및 네트워크 연결방법
EP2726992B1 (en) Network control model driver
CN112732606A (zh) 一种信息交互方法、系统、设备及计算机可读存储介质
CN106170022B (zh) 一种分布式多媒体传感器控制系统
JP2016139218A (ja) Usb信号制御方法及びusb仮想化通信システム
JP5799295B2 (ja) 複数のクライアントと同時通信可能なデバイスサーバ
CN104519593A (zh) 一种无线遥控方法及设备
JP2007150390A (ja) 通信装置
WO2014033984A1 (ja) 通信装置、携帯端末装置、通信システム、通信方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15860997

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016560257

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15527598

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2015860997

Country of ref document: EP