Communication devices, USB devices, communication methods, and programs
The communication device addresses errors in bulk USB communication by detecting host-side suspension and managing power-saving states to prevent data transfer errors.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- RICOH CO LTD
- Filing Date
- 2022-06-23
- Publication Date
- 2026-07-29
AI Technical Summary
In bulk USB communication, when data that is an integer multiple of the maximum packet size is transmitted, the transmission of a Zero Length Packet (ZLP) is not guaranteed, leading to errors when data transfer is resumed after temporary stoppage on the host side.
A communication device that detects temporary suspension of data transfer on the host side by sending a pause request and transitioning to a power-saving state, using a receiving unit and transmitting unit to manage data transfer and power consumption.
The device can detect and suppress errors during resumed data transfer by managing power-saving states and pausing data transfer appropriately.
Smart Images

Figure 0007896376000001 
Figure 0007896376000002 
Figure 0007896376000003
Abstract
Description
Technical Field
[0004] , , an integer multiple of the maximum receivable packet size , ,
[0006] , , , , , , , , , , , ,
[0005] ,
[0003]
[0001] The present invention relates to a communication device, a USB device, a communication method, and a program.
Background Art
[0002] In bulk transfer of USB (Universal Serial Bus) communication, there is a problem that when data that is an integer multiple of the maximum packet size that can be received from the host side is transmitted, the transmission of a ZLP (Zero Length Packet) sent at the end of the data is not guaranteed.
[0003] Regarding this problem, there is a known technique in which the maximum packet interval of dummy packets is detected by measuring the dummy packets and set as the timer time TA, and the end of the transfer of actual data is determined by comparing the packet interval of the actual data with the timer time TA (see, for example, Patent Document 1).
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the conventional technology, when the data transfer on the host side is temporarily stopped, it cannot be detected on the device side, and an error may occur when the data transfer is resumed.
[0005] One embodiment of the present invention has been made in view of the above problems, and detects on the device side that the data transfer on the host side is temporarily stopped, and suppresses the occurrence of an error when the data transfer is resumed.
Means for Solving the Problems
[0006] In order to solve the above problems, a communication device according to an embodiment of the present invention is a communication device that performs USB communication with another communication device, and includes a receiving unit that receives transfer data transferred by the USB communication from the other communication device, and the receiving unit an integer multiple of the maximum receivable packet sizeThe system includes: a transmitting unit that, upon receiving data, transmits a pause request to the other communication device requesting a temporary suspension of the data transfer and a transition request to the other communication device requesting a transition to a power-saving state that consumes less power than the normal state in which the data transfer is possible; and a communication control unit that, upon receiving a response from the other communication device indicating permission to transition to the power-saving state in response to the transition request transmitted to the other communication device, executes a data transfer termination process. [Effects of the Invention]
[0007] According to one embodiment of the present invention, the device can detect that data transfer has been temporarily suspended on the host side and suppress errors that occur when data transfer is resumed. [Brief explanation of the drawing]
[0008] [Figure 1] This figure shows an example of the hardware configuration of a communication device according to one embodiment. [Figure 2] This figure shows an example of the functional configuration of a USB device according to one embodiment. [Figure 3] This diagram illustrates an example of power saving control for USB devices. [Figure 4] This diagram illustrates an example of data transfer control for a USB device. [Figure 5] This flowchart shows an example of processing by a communication device according to the first embodiment. [Figure 6] This is a flowchart (1) showing an example of a communication device according to the second embodiment. [Figure 7] This is a flowchart (2) showing an example of a communication device according to the second embodiment. [Modes for carrying out the invention]
[0009] Embodiments of the present invention will be described in detail below with reference to the drawings.
[0010] <Configuration of communication equipment> Figure 1 shows an example of the hardware configuration of a communication device according to one embodiment. The communication device 10 is an electronic device equipped with the functionality of a USB device that performs USB communication with other communication devices that have the functionality of a USB (Universal Serial Bus) host. In the example of Figure 1, an example of the hardware configuration is shown when the communication device 10 is an image forming apparatus equipped with functions such as a printer, scanner, copier, and fax (facsimile).
[0011] However, the communication device 10 may be an electronic device other than an image forming apparatus that has the functionality of a USB device. For example, the communication device 10 may be an electronic device such as a PJ (Projector) or an IWB (Interactive White Board: an electronic whiteboard with the functionality of an electronic blackboard that enables mutual communication). Alternatively, the communication device 10 may be an electronic device such as a digital signage device, a HUD (Head Up Display) device, industrial machinery, an imaging device, a sound collection device, medical equipment, networked home appliances, a digital camera, a music player, or a wearable terminal.
[0012] Other communication devices 20 are information processing devices that have USB host functionality, such as PCs (Personal Computers), tablet terminals, or smartphones.
[0013] In the example shown in Figure 1, the communication device 10 includes a CPU (Central Processing Unit) 11, memory 12, storage device 13, printer 14, scanner 15, fax machine 16, USB device 100, and bus B, etc.
[0014] The CPU 11 is a processor (arithmetic unit) that controls the entire communication device 10 by executing a predetermined program stored in a storage medium such as memory 12 or storage device 13. Memory 12 includes, for example, RAM (Random Access Memory), which is volatile memory used as the work area of the CPU 11, and ROM (Read Only Memory), which is non-volatile memory that stores startup programs and the like in advance. Storage device 13 is, for example, a high-capacity, non-volatile storage device such as an HDD (Hard Disk Drive) or SSD (Solid State Drive).
[0015] The printer 14 is a device that performs printing. The scanner 15 is a device that performs document reading. The fax machine 16 is a device that performs fax transmission and reception. If the communication device 10 is, for example, a projector, the communication device 10 will have an image projection device that performs image projection instead of the printer 14, scanner 15, and fax machine 16, etc.
[0016] The USB device 100 includes, for example, another communication device 20, a USB interface 110 that sends and receives data via USB communication, and a USB device controller that controls USB communication via the USB interface 110. Bus B is connected in common to all of the above components and transmits, for example, address signals, data signals, and various control signals.
[0017] Figure 2 shows an example of the functional configuration of a USB device according to one embodiment. The USB I / F 110 includes, for example, a receiving unit 111 and a transmitting unit 112. The receiving unit 111 performs a receiving process to receive transfer data that is transferred via USB communication from another communication device 20, which is a USB host. The transmitting unit 112 performs a transmitting process to send to the other communication device 20, for example, a request to temporarily suspend data transfer or a transition request to transition to a power-saving state, according to control from the USB device controller 120.
[0018] The USB device controller 120 has, for example, a computer configuration and realizes an endpoint control unit 210, a communication control unit 220, a power saving control unit 230, etc. by executing a predetermined program. Note that the endpoint control unit 210, the communication control unit 220, the power saving control unit 230, etc. may be realized by hardware.
[0019] The endpoint control unit 210 has endpoints which are FIFO (First In, First Out) buffers for storing USB communication data, and controls the input and output of data to and from the endpoints.
[0020] The communication control unit 220 uses the endpoint control unit 210 to execute communication control processing for controlling USB communication with another communication device 20. As an example, as shown in FIG. 2, the communication control unit 220 has a packet monitoring unit 221, a command control unit 222, a timer control unit 223, a transfer speed control unit 224, etc.
[0021] The packet monitoring unit 221 monitors, for example, data that is an integer multiple of the maximum packet size that the communication device 10 can receive, and link commands of USB communication. The command control unit 222 performs, for example, transmission and reception of link commands, and determination of the end of transfer data transferred from another communication device 20. The timer control unit 223 controls, for example, the waiting time of packets. The transfer speed control unit 224 controls, for example, the speed modes of USB communication such as SS (Super Speed), HS (Hi-Speed), FS (Full Speed).
[0022] The power saving control unit 230 controls the USB device 100 to shift to a power saving state with less power consumption than the normal state in which data transfer is possible, and to return to the normal state.
[0023] (Regarding power saving control) Here, an overview of the power saving control (power management) of the USB device, which is a premise of this embodiment, will be described.
[0024] As shown in Figures 3(A) to (C), device 301, which is a USB device, can request host 302 to transition to a power-saving state by sending a power-saving state transition request (LGO_UX) to host 302, which is a USB host.
[0025] For example, USB 3.0 SuperSpeed has three power-saving states: Idle (First Exit) U1, Idle (Slow Exit) U2, and Suspend U3. In this case, device 301 can request to transition to the Idle U1 state by, for example, sending a request to transition to the Idle U1 state (LGO_U1) to host 302.
[0026] In response, if host 302 has no pending data that has been temporarily suspended from data transfer, it sends a transition authorization (LAU) to device 301, as shown in Figure 3(A), which allows it to transition to a power-saving state.
[0027] On the other hand, if host 302 has untransmitted data that has paused data transfer, it sends a transition rejection (LXU) to device 301 to refuse the transition to the power-saving state, as shown in Figure 3(B). However, if host 302 does not support the transition to the power-saving state, host 302 may send a transition rejection (LXU) to device 301 regardless of whether there is untransmitted data or not.
[0028] Furthermore, if the host 302 does not respond to the power saving state transition request (LGO_UX), as shown in Figure 3(C), the device 301 will transition to a recovery state, for example, in accordance with the USB 3.0 specification.
[0029] (Regarding the process of pausing and resuming data transfer) This section describes the process of temporarily pausing and resuming data transfer via USB communication, which is a prerequisite for this embodiment.
[0030] For example, in Figure 4(A), assume that host 302 is transferring data to device 301 using bulk transfer of the USB standard USB 3.0 or later. In this case, device 301 can request host 302 to pause data transfer by sending a data transfer pause request (e.g., an NRDY packet) to host 302.
[0031] Note that an NRDY (Not Ready) packet is an example of a request to temporarily suspend data transfer. For example, instead of an NRDY packet, device 301 may send an ACK packet (for example, an ACK packet with the NumP field set to 0) to host 302 as a request to temporarily suspend data transfer, indicating that it cannot receive data.
[0032] When host 302 receives a request from device 301 to pause data transfer, it pauses the data transfer.
[0033] Furthermore, the device can request the host 302 to resume data transfer by, for example, sending a data transfer resumption request (e.g., an ERDY packet) to the host 302. The ERDY (Endpoint Ready) packet is just one example of a data transfer resumption request. Device 301 may also request the resumption of data transfer using a packet other than an ERDY packet.
[0034] (Overview of communication device processing) The communication device 10 according to this embodiment has a function that allows the device to detect when data transfer is temporarily suspended on the host side, by utilizing the power saving control of the USB standard and the temporary suspension and resumption processing of data transfer as described above.
[0035] For example, in bulk transfer of USB standards from USB 3.0 onwards, if communication device 10 receives data from another communication device 20 that is an integer multiple of the maximum packet size it can receive, it sends a request to temporarily suspend data transfer and a request to switch to a power-saving state to the other communication device 20.
[0036] This is because, in bulk transfer via USB communication, the transmission of a Zero Length Packet (ZLP) at the end of the data is not guaranteed when data equal to an integer multiple of the maximum packet size that can be received from the host side is transmitted. Furthermore, if communication device 10 receives a short packet or ZLP smaller than the maximum packet size from another communication device 20, it determines that this is the end of the data being transferred and terminates the data transfer.
[0037] Furthermore, if the communication device 10 receives a response from the other communication device 20 indicating permission to transition to a power-saving state in response to a power-saving state transition request sent to the other communication device 20, it determines that the data transfer from the other communication device 20 has been completed.
[0038] This is because the USB standard stipulates that, as a constraint on the conditions for transitioning to a power-saving state between a device and a host, the device must not transition to a power-saving state if there are pending packets. Therefore, when communication device 10 receives a response from other communication device 20 indicating permission to transition to a power-saving state in response to a power-saving state transition request sent to other communication device 20, it can determine that the host-side data transfer is complete.
[0039] On the other hand, if communication device 10 receives a response from other communication device 20 indicating a refusal to transition to a power-saving state in response to a request to transition to a power-saving state sent by communication device 10, the following two states are possible. (1) This is not the end of the data (there is still data waiting to be sent). (2) Other communication devices 20 do not support transitioning to a power-saving state.
[0040] In this case, communication device 10 sends a request to the other communication device 20 to resume data transfer, and if it receives the data to be transferred within a predetermined time, (1) it determines that it is not the end of the data transfer and resumes data transfer. On the other hand, if communication device 10 sends a request to the other communication device 20 to resume data transfer and does not receive the data to be transferred within a predetermined time, (2) it determines that the other communication device 20 is not in a power-saving state and performs data transfer termination processing.
[0041] Thus, according to this embodiment, the device can detect that data transfer has been temporarily suspended on the host side. As a result, the communication device 10 according to this embodiment can suppress the occurrence of errors when data transfer is resumed.
[0042] <Processing flow> Next, the processing flow of the communication method according to this embodiment will be described.
[0043] [First Embodiment] Figure 5 is a flowchart illustrating an example of processing by a communication device according to the first embodiment. This process shows an example of what is executed when the communication device 10, as described in Figures 1-4, receives transfer data from another communication device (USB host) 20 using bulk transfer of the USB standard USB 3.0 or later. At the start of the process shown in Figure 5, it is assumed that the communication device 10 has already established USB communication with the other communication device 20.
[0044] In step S501, the communication control unit 220 of the communication device 10 determines whether the receiving unit 111 has received a short packet or a ZLP. If the receiving unit 111 has received a short packet or a ZLP, the communication control unit 220 proceeds to step S502. On the other hand, if the receiving unit 111 has not received a short packet or a ZLP, the communication control unit 220 proceeds to step S503.
[0045] When the process moves to step S502, the communication control unit 220 determines that it has received a short packet (a packet smaller than the maximum packet size) or a ZLP, and that this marks the end of the data transfer, and completes (terminates) the data transfer.
[0046] On the other hand, when the process moves from step S501 to step S503, the communication control unit 220 determines whether the receiving unit 111 has received data that is an integer multiple of the maximum packet size (for example, 64 bytes, 512 bytes, or 1024 bytes). If the receiving unit 111 has not received data that is an integer multiple of the maximum packet size, the communication control unit 220 returns to step S501. On the other hand, if the receiving unit 111 has received data that is an integer multiple of the maximum packet size, the communication control unit 220 moves the process to step S504.
[0047] When the process moves to step S504, the communication control unit 220 uses the endpoint control unit 210 and the transmission unit 112 to send a request to the other communication device 20 to temporarily suspend data transfer. As a result, the transmission unit 112 sends, for example, the aforementioned NRDY packet to the other communication device 20. Alternatively, the transmission unit 112 may send an ACK packet with the NumP field set to 0 to the other communication device 20.
[0048] In step S505, the communication control unit 220 uses the endpoint control unit 210 and the transmission unit 112 to send a request to transition to a power-saving state (LGO_UX) to another communication device 20.
[0049] In step S506, the communication control unit 220 determines whether the receiving unit 111 has received permission to transition to power-saving state (LAU) from the other communication device 20 in response to the power-saving state transition request (LGO_UX) transmitted by the transmitting unit 112 to the other communication device 20. If permission to transition is received, the communication control unit 220 proceeds to step S507. On the other hand, if permission to transition is not received, the communication control unit 220 proceeds to step S508.
[0050] When the process moves to step S507, the communication control unit 220 performs data transfer termination processing.
[0051] On the other hand, when the process moves from step S506 to step S508, the communication control unit 220 determines whether the receiving unit 111 has received a rejection of transition to power-saving state (LXU) from another communication device 20. If a transition rejection is received, the communication control unit 220 moves the process to step S510. On the other hand, if no transition rejection is received, the communication control unit 220 moves the process to step S509.
[0052] When the process moves to step S509, the communication control unit 220 transitions to the recovery state in accordance with the USB 3.0 specification.
[0053] On the other hand, when the process moves from step S508 to step S510, the communication control unit 220 uses the endpoint control unit 210 and the transmission unit 112 to send a request to the other communication device 20 to resume data transfer. As a result, the transmission unit 112 sends, for example, the aforementioned ERDY packet to the other communication device 20.
[0054] In step S511, the communication control unit 220 determines whether the receiving unit 111 has received the transfer data within a predetermined time. If the transfer data has been received within the predetermined time, the communication control unit 220 returns to step S501. On the other hand, if the transfer data has not been received within the predetermined time (if there has been no data transfer for a predetermined time or longer), the communication control unit 220 moves the process to step S512.
[0055] When the process moves to step S512, the communication control unit 220 performs data transfer termination processing.
[0056] The process shown in Figure 5 allows the communication device 10 to detect on the device side that data transfer has been temporarily suspended on the host side, thereby suppressing the occurrence of errors when data transfer is resumed.
[0057] [Second Embodiment] Figures 6 and 7 are flowcharts illustrating an example of the processing of a communication device according to the second embodiment. This processing shows a more specific example of the processing described in Figure 5. Since the basic processing content is the same as that of the communication device according to the first embodiment described in Figure 5, a detailed explanation of the processing similar to that of the first embodiment is omitted here.
[0058] In step S601, the communication control unit 220 of the communication device 10 determines whether the receiving unit 111 has received a short packet or a ZLP. If the receiving unit 111 has received a short packet or a ZLP, the communication control unit 220 proceeds to step S602. On the other hand, if the receiving unit 111 has not received a short packet or a ZLP, the communication control unit 220 proceeds to step S603.
[0059] When the process moves to step S602, the communication control unit 220 completes (terminates) the data transfer.
[0060] On the other hand, when the process moves from step S601 to step S603, the communication control unit 220 determines whether the receiving unit 111 has received data that is an integer multiple of the maximum packet size. If the receiving unit 111 has not received data that is an integer multiple of the maximum packet size, the communication control unit 220 returns to step S601. On the other hand, if the receiving unit 111 has received data that is an integer multiple of the maximum packet size, the communication control unit 220 moves the process to step S604.
[0061] When the process moves to step S604, the communication control unit 220 uses the endpoint control unit 210 and the transmission unit 112 to send a request to the other communication device 20 to temporarily suspend data transfer.
[0062] When the system moves to step S605, the endpoint control unit 210 and the transmission unit 112 are used to send a request to transition to a power-saving state (LGO_UX) to another communication device 20.
[0063] In step S606, the communication control unit 220 determines whether the receiving unit 111 has received permission to transition to power-saving state (LAU) from the other communication device 20 in response to the power-saving state transition request (LGO_UX) transmitted by the transmitting unit 112 to the other communication device 20. If permission to transition is received, the communication control unit 220 proceeds to step S607. On the other hand, if permission to transition is not received, the communication control unit 220 proceeds to step S608.
[0064] When the process moves to step S607, the communication control unit 220 generates a ZLP (dummy ZLP) and transmits the generated ZLP to another communication device 20 using the endpoint control unit 210 and the transmission unit 112. This process is a specific example of the data transfer termination process in step S507 of Figure 5.
[0065] On the other hand, when the process moves from step S602 to step S604, the communication control unit 220 determines whether the receiving unit 111 has received a rejection of transition to power-saving state (LXU) from another communication device 20. If a transition rejection is received, the communication control unit 220 moves the process to step S610. On the other hand, if no transition rejection is received, the communication control unit 220 moves the process to step S609.
[0066] When the system proceeds to step S609, the communication control unit 220 stops the data transfer. This process is an example of the specific processing that occurs when the system transitions to the recovery state in step S509, as shown in Figure 5.
[0067] On the other hand, when the process moves from step S608 to step S610, the communication control unit 220 uses the endpoint control unit 210 and the transmission unit 112 to send a request to the other communication device 20 to resume data transfer.
[0068] In step S611, the communication control unit 220 determines whether the receiving unit 111 has received the transfer data. If the transfer data has been received, the communication control unit 220 returns to step S601. On the other hand, if the transfer data has not been received, the communication control unit 220 moves the process to step S701 in Figure 7.
[0069] When the process moves to step S701, the communication control unit 220 waits for a predetermined time and then moves the process to step S702.
[0070] When the process moves to step S702, the communication control unit 220 adds 1 to the count value and proceeds to step S703. The count value is assumed to be set to an initial value of 0, for example, when the process in Figure 6 begins.
[0071] When the process moves to step S703, the communication control unit 220 determines whether the count value has reached a predetermined value. Here, the predetermined value is the number of retries for retrying the transmission of the power-saving state transition request, which is set in advance. If the count value has reached the predetermined value, the communication control unit 220 moves the process to step S704. On the other hand, if the count value has not reached the predetermined value, the communication control unit 220 returns the process to step S601 in Figure 6 and resends the power-saving state transition request.
[0072] When the process moves to step S704, the communication control unit 220 generates a ZLP (dummy ZLP), and transmits the generated ZLP to another communication device 20 using the endpoint control unit 210 and the transmission unit 112, after which the process moves to step S602 in Figure 6. Note that the process in Figure 7 is a specific example of the process that executes the data transfer termination process if data is not received within a predetermined time in steps S511 and S512 in Figure 5.
[0073] As shown in Figures 6 and 7, if the communication control unit 220 cannot receive data from other communication devices 20 after sending a request to resume data transfer, it may retry sending a request to transition to power-saving state. Furthermore, if the communication control unit 220 cannot receive data from other communication devices 20 after sending a request to resume data transfer, it may retry sending a request to resume data transmission.
[0074] As described above, according to each embodiment of the present invention, it is possible to detect on the device side that data transfer has been temporarily suspended on the host side and to suppress the occurrence of errors when data transfer is resumed.
[0075] <Supplement> Each function of the embodiments described above can be realized by one or more processing circuits. Hereinafter, "processing circuit" as used herein includes processors programmed to execute each function by software, such as processors implemented by electronic circuits, as well as devices such as ASICs (Application Specific Integrated Circuits), DSPs (digital signal processors), FPGAs (field programmable gate arrays), and conventional circuit modules designed to execute each function described above.
[0076] <Note> This specification discloses the following information processing devices, user terminals, information provision methods, and programs. (Section 1) A communication device that performs USB communication with other communication devices, A receiving unit that receives transfer data transferred via USB communication from the aforementioned other communication device, When the receiving unit receives a predetermined amount of the transfer data, the transmitting unit transmits a pause request to the other communication device requesting a temporary pause in the data transfer and a transition request to a power-saving state that consumes less power than the normal state in which the data transfer is possible. When the communication control unit receives a response from the other communication device indicating permission to transition to the power-saving state in response to the transition request transmitted to the other communication device, it executes the data transfer termination process. A communication device having the following features. (Section 2) The communication device according to paragraph 1, wherein the communication control unit, upon receiving a response from the other communication device indicating that it refuses to transition to the power-saving state in response to the transition request it has transmitted to the other communication device, transmits a data transfer restart request to the other communication device requesting the restart of the data transfer. (Section 3) The communication device according to paragraph 2, wherein the communication control unit, in response to a request to resume the data transfer transmitted to the other communication device, executes a data transfer termination process if the other communication device does not transmit the data for a predetermined period of time or longer. (Section 4) The communication device according to any one of paragraphs 1 to 3, wherein the termination process of the data transfer includes the process of sending a ZLP (Zero Length Packet) to the other communication device. (Section 5) The aforementioned data transfer includes bulk transfer of USB standards from USB 3.0 onwards. The transmitting unit transmits the pause request and the transition request to the other communication device when the receiving unit receives data that is an integer multiple of the maximum packet size that the communication device can receive. A communication device as described in any of paragraphs 1 through 4. (Section 6) The aforementioned suspension request includes an NRDY (Not Ready) packet or an ACK (Acknowledgement) packet indicating that data cannot be received, as described in any of paragraphs 1 to 5 of the communication device. (Section 7) The aforementioned restart request includes an ERDY (Endpoint Ready) packet, and is provided by the communication device described in paragraph 2 or 3. (Section 8) A USB device that communicates with a USB host via USB, A receiving unit that receives transfer data transferred via USB communication from the USB host, When the receiving unit receives a predetermined amount of the transfer data, the transmitting unit sends a pause request to the USB host requesting a temporary pause in the data transfer and a transition request to a power-saving state that consumes less power than the normal state in which the data transfer is possible. When the USB host receives a response from the USB host indicating permission to transition to the power-saving state in response to the transition request sent to the USB host, the communication control unit executes the data transfer termination process. A USB device that has the following features. (Section 9) A communication device that communicates via USB with other communication devices, A receiving process that receives transfer data transferred via USB communication from the aforementioned other communication device, When a predetermined amount of the transfer data is received in the reception process, the transmission process sends a pause request to the other communication device requesting a temporary pause in the data transfer and a transition request requesting a transition to a power-saving state that consumes less power than the normal state in which the data transfer is possible. When a response is received from the other communication device indicating permission to transition to the power-saving state in response to the transition request transmitted to the other communication device, a communication control process is performed to execute the data transfer termination process. A communication method for executing this. (Section 10) A program that causes a computer to execute the communication method described in paragraph 9.
[0077] Although embodiments of the present invention have been described above, the present invention is not limited to these specific embodiments, and various modifications and applications are possible within the scope of the gist of the present invention as described in the claims. [Explanation of Symbols]
[0078] 10. Communication equipment 20 Other communication devices (USB host) 100 USB devices 111 Receiving Unit 112 Transmitter 210 Endpoint Control Unit 220 Communication Control Unit 230 Power saving control unit [Prior art documents] [Patent Documents]
[0079] [Patent Document 1] Japanese Patent Publication No. 2006-191406
Claims
1. A communication device that performs USB communication with other communication devices, A receiving unit that receives transfer data transferred via USB communication from the aforementioned other communication device, When the receiving unit receives data that is an integer multiple of the maximum receivable packet size, the transmitting unit transmits to the other communication device a pause request requesting a temporary suspension of the data transfer and a transition request requesting a transition to a power-saving state that consumes less power than the normal state in which the data transfer is possible. When the communication control unit receives a response from the other communication device indicating permission to transition to the power-saving state in response to the transition request transmitted to the other communication device, it executes the data transfer termination process. A communication device having the following features.
2. The communication device according to claim 1, wherein, when the communication control unit receives a response from the other communication device indicating that it refuses to transition to the power-saving state in response to the transition request transmitted to the other communication device, it transmits a data transfer restart request to the other communication device requesting the restart of the data transfer.
3. The communication device according to claim 2, wherein the communication control unit, in response to a request to resume the data transfer transmitted to the other communication device, executes a data transfer termination process if the other communication device does not transfer the data for a predetermined period of time or longer.
4. The communication device according to any one of claims 1 to 3, wherein the termination process of the data transfer includes the process of sending a ZLP (Zero Length Packet) to the other communication device.
5. The aforementioned data transfer includes bulk transfer of USB standards from USB 3.0 onwards. The transmitting unit transmits the pause request and the transition request to the other communication device when the receiving unit receives data that is an integer multiple of the maximum packet size that the communication device can receive. A communication device according to any one of claims 1 to 3.
6. The communication device according to claim 5, wherein the pause request includes an NRDY (Not Ready) packet or an ACK (Acknowledgement) packet indicating that data cannot be received.
7. The communication device according to claim 2 or 3, wherein the restart request includes an ERDY (Endpoint Ready) packet.
8. A USB device that communicates with a USB host via USB, A receiving unit that receives transfer data transferred via USB communication from the USB host, When the receiving unit receives data that is an integer multiple of the maximum receivable packet size, the transmitting unit sends a pause request to the USB host requesting a temporary pause in the data transfer and a transition request to a power-saving state that consumes less power than the normal state in which data transfer is possible. When the USB host receives a response from the USB host indicating permission to transition to the power-saving state in response to the transition request sent to the USB host, the communication control unit executes the data transfer termination process. A USB device having [a certain feature].
9. A communication device that communicates via USB with other communication devices, A receiving process that receives transfer data transferred via USB communication from the aforementioned other communication device, If the receiving process receives data that is an integer multiple of the maximum receivable packet size, the transmission process sends a pause request to the other communication device requesting a temporary pause in the data transfer and a transition request requesting a transition to a power-saving state that consumes less power than the normal state in which the data transfer is possible. When a response is received from the other communication device indicating permission to transition to the power-saving state in response to the transition request transmitted to the other communication device, a communication control process is performed to execute the data transfer termination process. A communication method for executing this.
10. A program that causes a computer to execute the communication method described in claim 9.