Transmission module, reception module, transmission method, reception method, and communications system

A transmission module may include a first interface unit that inputs transmission target data and a trigger relating to halting transmission of the transmission data from a processing unit that performs processing in compliance with a communication protocol of an upper layer, a generating unit that generates a communication frame of a transport layer level corresponding to the transmission target data, a second interface unit that transmits the generated communication frame, and a setting unit that, when the trigger is inputted while communication frame corresponding to the transmission target data are being sequentially transmitted, sets a flag indicating the termination of transmission of the transmission target data to communication frame among those being transmitted which do not correspond to a final portion of the transmission target data.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a transmission module, a reception module, a transmission method, a reception method, and a communication system.

Priority is claimed on Japanese Patent Application No. 2010-022225, filed Feb. 3, 2010, the content of which is incorporated herein by reference.

2. Description of the Related Art

All patents, patent applications, patent publications, scientific articles, and the like, which will hereinafter be cited or identified in the present application, will hereby be incorporated by reference in their entirety in order to describe more fully the state of the art to which the present invention pertains.

Since Picture Transfer Protocol: ISO/DIS 15740 (hereinafter PTP) can be applied without transport layer dependency, in Universal Serial Bus (USB), USB Still Image Capture Device Class (hereinafter SICD) has been standardized, while in IP networks, CIPA DC-005 “Picture transfer protocol” over TCP/IP networks (hereinafter PTP-IP) has been standardized. Various communications means, both wired and wireless, have recently been developed, and application of PTP is expected to proliferate in the future.

When applying PTP in each transport layer, it must be implemented in accordance with the characteristics of each transport layer. Since cancellation of PTP operation sometimes entails a halt of data transfer, implementation is different for each transport. A method of cancelling a PTP operation when the transport layer is USB (SICD) is as follows.

When the initiator cancels:

Step 1: The initiator halts data transfer (transmission/reception) by halting the issue of USB tokens (in/out tokens).

Step 2: The initiator issues a USB class-specific Cancel Request, and requests cancellation of the PTP operation.

Step 3: The responder cancels the PTP operation being executed.

When the responder cancels:

Step 1: The responder halts data transfer by stalling the bulk-in/out endpoint.

Step 2: The initiator cancels the PTP operation.

In USB, the USB host, namely the initiator, has control rights over all data transfers, and performs transmission/reception of data by using USB tokens (in/out tokens etc.) to poll whether data transfer is possible to the USB device, namely the responder. The responder (USB device) has a halt function of halting data currently being transferred by returning a stall to the USB token issued by the initiator (USB host). A USB specification is disclosed in “Universal Serial Bus Revision 2.0 specification”, (http://www.usb.org/developers/docs/).

SUMMARY

A transmission module may include a first interface unit that inputs transmission target data and a trigger relating to halting transmission of the transmission data from a processing unit that performs processing in compliance with a communication protocol of an upper layer, a generating unit that generates a communication frame of a transport layer level corresponding to the transmission target data, a second interface unit that transmits the generated communication frame, and a setting unit that, when the trigger is inputted while communication frame corresponding to the transmission target data are being sequentially transmitted, sets a flag indicating the termination of transmission of the transmission target data to communication frame among those being transmitted which do not correspond to a final portion of the transmission target data.

The transmission module may further include a converting unit that converts the trigger inputted by the first interface unit to information of the transport layer level. The setting unit may set the flag based on the converted information.

The transmission module may further include a converting unit that converts the transmission target data inputted by the first interface unit to information of the transport layer level, a dividing unit that divides the converted information into a plurality of divisions. The generating unit may generate a plurality of the communication frames based on the divided information. The setting unit may set the flag to communication frame corresponding to information among the divided information which does not correspond to a last-end of the divided information.

When the trigger is inputted while the communication frames corresponding to the transmission target data are being sequentially outputted, the second interface unit may transmit information corresponding to the trigger after transmitting a communication frame which the flag was set to.

The second interface unit may receive a second trigger relating to a request to halt the transmission of the transmission target data. The first interface unit may output information corresponding to the second trigger to the processing unit, and input the trigger after that outputting.

A reception module that receives transmission target data may include a second interface unit that receives a communication frame, among a plurality of communication frames corresponding to the transmission target data, which does not correspond to a final portion of the transmission target data, and to which a flag indicating the termination of transmission of the transmission target data has been set, and a first interface unit that, when the second interface unit has received the communication frame to which a flag indicating the end of transmission has been set, outputs information indicating that the transmission of the transmission target data is to be halted to a processing unit that performs processing in compliance with a communication protocol of an upper layer.

After receiving a communication frame to which the flag has been set, the second interface unit may receive a communication frame notifying that the transmission of the transmission target data is halted. The first interface unit may output information corresponding to the notification to the processing unit.

The first interface unit may input a third trigger relating to a request to halt the transmission of the transmission target data. The second interface unit may transmit information corresponding to the third trigger while it is sequentially receiving the transmission target data.

A transmission method may include a step of inputting transmission target data and a trigger relating to halting transmission of the transmission data from a processing unit that performs processing in compliance with a communication protocol of an upper layer, a step of generating a communication frame of a transport layer level corresponding to the transmission target data, a step of transmitting the generated communication frames, and a step of setting a flag indicating the termination of transmission of the transmission target data to communication frames among those being transmitted which do not correspond to a final portion of the transmission target data, when the trigger is inputted while communication frames corresponding to the transmission target data are being sequentially transmitted.

The transmission method may further include a step of converting the inputted trigger to information of the transport layer level, and a step of setting the flag based on the converted information.

The transmission method may further include a step of converting the inputted transmission target data to information of the transport layer level, a step of dividing the converted information into a plurality of divisions, a step of generating a plurality of the communication frames based on the divided information, and a step of setting the flag to communication frame corresponding to information among the divided information which does not correspond to a last-end of the divided information.

The transmission method may further include a step of transmitting information corresponding to the trigger after transmitting a communication frame which the flag was set to, when the trigger is inputted while the communication frames corresponding to the transmission target data are being sequentially outputted.

The transmission method may further include a step of receiving a second trigger relating to a request to halt the transmission of the transmission target data, and a step of outputting information corresponding to the second trigger, and inputting the trigger after that outputting.

A reception method may include a step of receiving a communication frame, among a plurality of communication frames corresponding to the transmission target data, which does not correspond to a final portion of the transmission target data, and to which a flag indicating the termination of transmission of the transmission target data has been set, and a step of outputting information indicating that the transmission of the transmission target data is to be halted to a processing unit that performs processing in compliance with a communication protocol of an upper layer, when the second interface unit has received the communication frame to which a flag indicating the end of transmission has been set.

The reception method may further include a step of receiving a communication frame notifying that the transmission of the transmission target data is halted, after receiving a communication frame to which the flag has been set, and a step of outputting information corresponding to the notification to the processing unit.

The reception method may further include a step of inputting a third trigger relating to a request to halt the transmission of the transmission target data, and a step of transmitting information corresponding to the third trigger while sequentially receiving the transmission target data.

A communication system may include a transmission module including a first interface unit that inputs transmission target data and a trigger relating to halting transmission of the transmission data from a processing unit that performs processing in compliance with a communication protocol of an upper layer, a generating unit that generates one or a plurality of communication frames of a transport layer level corresponding to the transmission target data, a second interface unit that transmits the generated communication frames, and a setting unit that, when the trigger is inputted while communication frames corresponding to the transmission target data are being sequentially transmitted, sets a flag indicating the termination of transmission of the transmission target data to communication frames among those being transmitted which do not correspond to a final portion of the transmission target data, and a reception module including a second interface unit that receives a communication frame, among a plurality of communication frames corresponding to the transmission target data, which does not correspond to a final portion of the transmission target data, and to which a flag indicating the termination of transmission of the transmission target data has been set, and a first interface unit that, when the second interface unit has received the communication frame to which a flag indicating the end of transmission has been set, outputs information indicating that the transmission of the transmission target data is to be halted to a processing unit that performs processing in compliance with a communication protocol of an upper layer.

The transmission module may further include a converting unit that converts the trigger inputted by the first interface unit to information of the transport layer level. The setting unit may set the flag based on the converted information.

The transmission module may further include a converting unit that converts the transmission target data inputted by the first interface unit to information of the transport layer level, a dividing unit that divides the converted information into a plurality of divisions. The generating unit may generate a plurality of the communication frames based on the divided information. The setting unit may set the flag to communication frame corresponding to information among the divided information which does not correspond to a last-end of the divided information.

When the trigger is inputted while the communication frames corresponding to the transmission target data are being sequentially outputted, the second interface unit may transmit information corresponding to the trigger after transmitting a communication frame which the flag was set to.

The second interface unit may receive a second trigger relating to a request to halt the transmission of the transmission target data. The first interface unit may output information corresponding to the second trigger to the processing unit, and inputs the trigger after that outputting.

After receiving a communication frame to which the flag has been set, the second interface unit may receive a communication frame notifying that the transmission of the transmission target data is halted. The first interface unit may output information corresponding to the notification to the processing unit.

The first interface unit may input a third trigger relating to a request to halt the transmission of the transmission target data. The second interface unit may transmit information corresponding to the third trigger while it is sequentially receiving the transmission target data.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In accordance with the first preferred embodiment of the present invention, a first interface unit inputs transmission target data inputted from a processing unit that performs processing in compliance with a communication protocol of an upper layer. From this transmission target data a generating unit generates a communication frame of a transport layer level, and a second interface unit outputs this communication frame. At this time, when the first interface unit inputs a trigger relating to halting the transmission of the transmission target data from the processing unit that performs processing in compliance with a communication protocol of an upper layer, a setting unit sets a flag indicating the termination of the transmission of the transmission target data to communication frames among those being transmitted which do not correspond to a final portion of the transmission target data. The second interface unit then outputs communication frames of a transport layer level to which a flag indicating termination of the transmission of the transmission target data has been set.

Therefore, even if a transmission module performs communication using a transport layer protocol which lacks an existing function of having control of data transfer, when the transmission module halts the data transmission, the target communication device can confirm that data transfer has been halted.

A first preferred embodiment of the present invention will be explained with reference to the drawings. This embodiment is an example in which an electronic camera and a personal computer (PC) transmit and receive data to and from each other, and this transmission and reception of data is halted.

FIG. 1is a block diagram illustrating the configuration of an electronic camera in this embodiment. In the example ofFIG. 1, an electronic camera1includes an image pickup part11, a recording medium12, a CPU13, a communication controller14(transmission module, reception module), a manipulation unit15, a display unit16, a RAM17, and a flash memory18.

The CPU13reads and executes control programs stored in the flash memory18, and reads/writes various types of data to and from the RAM17, and thereby integrally controls the operation of each part of the electronic camera1. In addition to the control programs, image-capturing parameters, communication parameters (data communication protocol information, etc.), and the like are stored in the flash memory18.

The image pickup part11takes an image of a subject to generate an image pickup signal, and performs various image processes to create image data. Image data created by the image pickup part11is stored in the recording medium12. As the recording medium12it is possible to use, for example, a memory card that can be detachably attached to the electronic camera1, or a hard disk that is secured to the electronic camera1, etc.

The manipulation unit15includes a manipulation switch and the like for inputting commands relating to the operation of the electronic camera1. The display unit16displays image data read from the recording medium12, a user interface screen, etc. The communication controller14is a communication interface that performs providing and receiving of data such as captured images with an external appliance such as an external recording device. Here, ‘communication interface’ denotes an interface widely used in transmitting and receiving information; it is not limited to wired communication and also includes wireless communications such as wireless LAN (WLAN), Bluetooth™, IrDA™, TransferJet™, WiMedia™.

Subsequently, the configuration of the PC will be explained.FIG. 2is a block diagram of the configuration of a PC in this embodiment. In the example ofFIG. 2, a PC2includes a CPU21, a recording medium22, a communication controller23(transmission module, reception module), a manipulation unit24, a display unit25, and a RAM26.

The CPU21reads and executes control programs stored in the recording medium22, and reads/writes various types of data to and from the RAM26, and thereby integrally controls the operation of each part of the PC2. For example, a hard disk or a flash memory is used as the recording medium22. In addition to the control programs, image-capturing parameters, various types of data such as text data and image data are stored in the recording medium22.

The manipulation unit24includes a keyboard, a mouse, and the like for inputting commands relating to the operation of the PC2. The display unit25displays text data, image data, and the like read from a recording medium, a user interface screen, etc. The communication controller23is a communication interface that performs providing and receiving of various types of data with an external appliance such as the electronic camera1or a printer. Here, ‘communication interface’ denotes an interface widely used in transmitting and receiving information; it is not limited to wired communication and also includes wireless communications such as wireless LAN (WLAN), Bluetooth™, IrDA™, TransferJet™, WiMedia™.

Subsequently, a communication protocol used by the communication controller14of the electronic camera1and the communication controller23of the PC2will be explained.FIG. 3is a layer diagram showing layers of a communication protocol used by the communication controller14of the electronic camera1and the communication controller23of the PC2in this embodiment. PTP devices function as initiators and responders. The responder responds to operation requests from the initiator to transfer images and control the device. In this embodiment, the PC2performs the function of the initiator, and the electronic camera1functions as the responder.

The communication protocol layer of this embodiment includes, in sequence from the upper layer: a PTP layer, a transport layer, and a PTP conversion layer. The PTP layer realizes PTP. The PTP conversion layer is a layer that mutually converts data such as operations/data/responses/events according to ISO-15740 so that they can be used between the PTP layer and the transport layer. When the transport layer is used as a USB, the PTP conversion layer denotes the SICD.

The transport layer is a communication means (transport) that physically transfers data. The transport layer is not limited to wired communication such as USB and Ethernet™, and also includes wireless communications such as WLAN and IrDA™, TransferJet™, etc.

Subsequently, the communication controller14of the electronic camera1and the communication controller23of the PC2will be explained.

The configuration of the communication controller14and the configuration of the communication controller23are the same.FIG. 4is a block diagram illustrating the configuration of the communication controller14of the electronic camera1and the communication controller23of the PC2in this embodiment.

In the example ofFIG. 4, the communication controllers14and23each include a processing unit30that performs processing in compliance with an upper-layer communication protocol (PTP layer), a first interface unit31(transmission side first interface unit, reception side first interface unit) that inputs requests such as a request for data transmission from the processing unit30or a request to halt data transmission, a generating unit32that generates a communication frame of a transport layer level (a communication frame shown below inFIGS. 5 and 6etc.), a second interface unit33(transmission side second interface unit, reception side second interface unit) that outputs the communication frame generated by the generating unit32to a communication protocol of a lower layer, and a setting unit34that sets a flag indicating the termination of the transmission of the transmission target data. The generating unit32includes a converting unit321that converts transmission target data and a trigger relating to halting the transmission of the transmission target data to information of a transport layer level, and a dividing unit322that divides transmission target data that the converting unit321converted to information of a transport layer level, in accordance with the size of the communication frame of the transport layer level. In this embodiment, a more fragment (MF) is used as the flag indicating the termination of the transmission of transmission target data.

The processing unit30of each of the communication controllers14and23performs processes stipulated by the PTP layer, the first interface unit31performs processes stipulated by the PTP conversion layer, and the second interface unit33performs processes stipulated by the transport layer. The generating unit32and the setting unit34of each of the communication controllers14and23operate at one or both of the PTP conversion layer and the transport layer. For example, it is acceptable if the converting unit321of the generating unit32operates at the PTP conversion layer and the dividing unit322operates at the transport layer.

Subsequently, the configuration of a data frame in this embodiment will be explained.FIG. 5is a schematic view illustrating the configuration of a data frame in this embodiment. A data frame is a communication frame used for transmitting data of which transmission has been requested from an upper-layer communication protocol to a target device. The data frame contains a destination ID, a source ID, control data, a service data unit (SDU), and a cyclic redundancy check (CRC).

An identifier (ID) of a target device that transmits the message is set as the destination ID. If the target device is unidentified such as in the case of a connection request message, a special identifier such as FF-FF-FF-FF-FF-FF-FF-FF is set. An identifier of the self device is set as the source ID. A frame type (‘data’ in the present data frame), a More Frame (MF) flag, and such like are set as the control data. The MF flag is used when dividing and transmitting data; MF=1 indicates that there is a following data frame, and MF=0 indicates that there is no following frame. data of which transmission has been requested from the upper-layer communication protocol that performs transmission is set as the SDU. This frame data is also called a protocol data unit (PDU). A value for detecting that there is no error in the values set in the data frame is set as the CRC.

Subsequently, the configuration of an acknowledgement (ACK) frame in this embodiment will be explained.FIG. 6is a schematic diagram illustrating the configuration of an ACK frame in this embodiment. The ACK frame is used for notifying that a frame transmitted from a target device has been received. The ACK frame contains a destination ID, a source ID, control data, and a CRC. The destination ID, the source ID, and the CRC are the same as those of the data frame. ‘ACK’ is set as the frame type of the control data in the ACK frame.

Subsequently, a method of dividing PTP data will be explained.FIG. 7is a schematic diagram illustrating a division of PTP data in this embodiment. When the size of the PTP data of which transmission has been requested from a PTP conversion layer exceeds the maximum SDU size of the transport layer, the transport layer uses the MF flag to divide and transfer the data. In the example ofFIG. 7, the PTP data is divided into PDU1to PDU5. The MF of the control data in each of PDU1to PDU4is 1 (MF=1), indicating that each has a following data frame. The MF of the control data in PDU5is 0 (MF=0), indicating that PDU5is the final data frame.

Subsequently, a transmission sequence when transmitting data (a PDU) from the initiator to the responder will be explained.FIG. 8is a sequence diagram illustrating a transmission sequence when transmitting a PDU from the initiator to the responder in this embodiment. In the example ofFIG. 8, the initiator transmits PDU1to PDU5to the responder.

The initiator transmits PDU1(MF=1) to the responder. Having received PDU1(MF=1), the responder transmits an ACK notifying that PDU1(MF=1) has been received to the initiator. Since an MF of the received PDU1is set to 1, the responder stands by until the data frame that follows PDU1(MF=1) is transmitted from the initiator.

When the initiator receives the ACK for PDU1(MF=1) from the responder, it transmits data frame that follows PDU1(MF=1), namely PDU2(MF=1), to the responder. Having received PDU2(MF=1), the responder performs a similar operation as when it received PDU1(MF=1) and transmits an ACK notifying that PDU2(MF=1) has been received to the initiator. Since an MF of the received PDU2is set to 1, the responder stands by until the data frame that follows PDU2(MF=1) is transmitted from the initiator. The initiator and the responder then perform similar transmit/receive operations for PDU3(MF=1) and PDU4(MF=1).

When the initiator receives the ACK for PDU4(MF=1) from the responder, it transmits the data frame that follows PDU4(MF=1), namely PDU5(MF=0) to the responder. Having received PDU5(MF=0), the responder transmits an ACK notifying the initiator that it has received PDU5(MF=0). Since the MF of PDU5is 0, indicating that there is no following data frame, the responder ends the reception process. When the initiator receives an ACK for PDU5(MF=0) from the responder, it ends the transmission process. Thus the responder that receives the data ends the reception process when it receives the PDU with an MF that is set to 0.

Subsequently, a transmission sequence when transmitting data (a PDU) from the responder to the initiator will be explained.FIG. 9is a sequence diagram illustrating a transmission sequence when transmitting a PDU from the responder to the initiator in this embodiment. In the example ofFIG. 9, the responder transmits PDU1to PDU5to the initiator.

The responder transmits PUD1(MF=1) to the initiator. The initiator receives PDU1(MF=1) and transmits an ACK to notify the responder that it has received PDU1(MF=1). Also, since an MF of the received PDU1is set to 1, the initiator stands by until the data frame that follows PDU1(MF=1) is transmitted from the responder.

When the responder receives the ACK for PDU1(MF=1) from the initiator, it transmits the data frame that follows PDU1(MF=1), namely PDU2(MF=1) to the initiator. Having received PDU2(MF=1), the initiator transmits an ACK notifying that the PDU2(MF=1) has been received, as it did when it received PDU1(MF=1), and stands by until the data frame that follows PDU2(MF=1) is transmitted from the responder. The initiator and the responder then perform similar transmit/receive operations for PDU3(MF=1) and PDU4(MF=1) as they did for PDU2(MF=1).

When the responder receives the ACK for PDU4(MF=1) from the initiator, it transmits the data frame that follows PDU4(MF=1), namely PDU5(MF=0) to the initiator. Having received PDU5(MF=0), the initiator transmits an ACK notifying the responder that it has received PDU5(MF=0). Since the MF of PDU5is 0, indicating that there is no following data frame, the initiator ends the reception process. When the responder receives an ACK for PDU5(MF=0) from the initiator, it ends the transmission process. Thus the initiator that receives the data ends the reception process when it receives the PDU with an MF that is set to 0.

Subsequently, a method of halting the transmission of PTP data while it is being transmitted, performed by the communication controllers14and23, will be explained.FIG. 10is a schematic diagram illustrating a method of halting a transmission of PTP data while it is being transmitted in this embodiment. In the example ofFIG. 10, the transmission of PTP data is halted while the PTP data is being divided into PDUs and PDU2is being transmitted.

As described inFIGS. 8 and 9, the initiator or responder that is receiving data ends the reception process when it receives a PDU with an MF that is set to 0. Accordingly, when one of the communication controllers14and23halts transmission of PTP data, it sets the MF of the data frame after the one currently being transmitted to 0, thereby notifying the transmission destination that it is going to halt data transmission. The communication controllers14and23then end the transmission process without transmitting the PDU that was intended to be transmitted next.

More specifically, a generating unit32of the communication controllers14and23generates a communication frame (e.g. a PDU) of a transport layer level by converting and dividing the transmission target data inputted to the first interface unit31from the processing unit30in compliance with an upper-layer communication protocol (e.g. a PTP layer), and a second interface unit33outputs the communication frame generated by the generating unit32.

At this time, if a trigger (e.g. a request or a Reset Request) for halting the transmission of the transmission target data is inputted to the first interface unit31from the processing unit30of the communication controller14or23, the generating unit32converts this trigger to information of the transport layer level. Based on the information converted by the generating unit32, a setting unit34of the communication controllers14and23sets a flag (e.g. MF=0) indicating halt of the transmission to the communication frame of the transport layer level that is to be transmitted next by the second interface unit33. The second interface unit33then transmits the transport layer level communication frame, to which the setting unit34set the flag indicating the end of transmission.

When the second interface unit33of the communication controllers14and23receives a communication frame of the transport layer level with a flag indicating the end of transmission set thereto, the first interface unit31outputs information indicating that transmission of the target data being transmitted from the target communication device is to be halted to the processing unit30that performs processing in compliance with the upper-layer communication protocol. This enables the communication controllers14and23to notify and confirm that data transmission is halted.

In the example ofFIG. 10, the communication controllers14and23set the MF of PDU3, which comes after PDU2(MF=1) currently being transmitted, to 0, and transmit PDU3(MF=0). The communication controllers14and23end the transmission process without transmitting the PDU that was expected to be transmitted thereafter.

After halting the transmission of the transmission target data, the communication controllers14and23can receive/transmit upper layer information relating to a trigger (e.g. Cancel Request, cancel transaction, Reset Request, response, etc.).

When the second interface unit33of the communication controllers14and23has received a trigger relating to a request to halt the transmission of the transmission target data (e.g. event (cancel transaction)) from the target communication device who is transmitting it, the first interface unit31outputs information corresponding to the second trigger to the processing unit30that performs processing in compliance with an upper-layer communication protocol, and then receives the input of the trigger relating to halting transmission of the target data. This enables the one of the communication controllers14and23that is receiving the data to notify the one that is transmitting the data that it is halting the transmission.

Subsequently, PTP data will be explained. The PTP conversion layer converts an operation request, data, a response, and an event of which transmission is requested from a PTP layer to their respective containers, and transmits/receives these containers as PTP data to the transport layer.

FIG. 11is a schematic diagram illustrating the data structure of an operation request container obtained by converting an operation request. In the example ofFIG. 11, the operation request container has these fields: Container length, Container type, Code, Transaction ID, Payload.

Container length stores the size of the container. Container type stores the type (operation request) of the container. Code stores the operation code defined in the PTP. Transaction ID stores a transaction ID as an identifier for uniquely identifying the transaction. Payload stores the operation parameters. In the example ofFIG. 11, Payload stores five operation parameters1to5.

FIG. 12is a schematic diagram illustrating the data structure of a data container obtained by converting data. In the example ofFIG. 12, the data container includes the fields: Container length, Container type, Code, Transaction ID, and Payload.

Container length stores the size of the container. Container type stores the type (data) of the container. Code stores the code (operation code) that was set when the operation request was made. Transaction ID stores a transaction ID as an identifier for uniquely identifying the transaction. Payload stores the data defined in each operation.

FIG. 13is a schematic diagram illustrating the data structure of a response container obtained by converting a response. In the example ofFIG. 13, the response container includes the fields: Container length, Container type, Code, Transaction ID, and Payload.

Container length stores the size of the container. Container type stores the type (response) of the container. Code stores a response code defined by the PTP. Transaction ID stores a transaction ID as an identifier for uniquely identifying the transaction. Payload stores the response parameters. In the example ofFIG. 13, Payload stores five parameters1to5.

FIG. 14is a schematic diagram illustrating the data structure of an event container obtained by converting an event. In the example ofFIG. 14, the event container has the fields: Container length, Container type, Code, Transaction ID, and Payload.

Container length stores the size of the container. Container type stores the type (event) of the container. Code stores an event code defined by the PTP. Transaction ID stores a transaction ID as an identifier for uniquely identifying the transaction. Payload stores the event parameters. In the example ofFIG. 14, Payload stores three parameters1to3.

Subsequently, the transaction state of an operation will be explained.

FIG. 15is a transition diagram illustrating the transaction states of an operation in this embodiment. The operation is executed by transition through each of these transaction states: idle state, operation request phase, data phase, response phase.

In idle state, no operation is executed while the responder waits for an operation request. In operation request phase, an operation request is transmitted. In data phase, data defined in each operation is transmitted/received. Since some operations do not involve data transfer, sometimes there is no data phase. In response phase, the result of the operation is sent in response.

Subsequently, the transmission timings of an operation request, data, a response, and an event will be explained.FIG. 16is a sequence diagram illustrating the transmission timings of an operation request, data, a response, and an event.

An operation request is transmitted when the initiator requests an operation to the responder. Data for the requested operation is transmitted. Depending on the operation, the data is transmitted from the initiator to the responder, or from the responder to the initiator; sometimes there is no data. An event is transmitted when the responder notifies the initiator of an event, and can be transmitted asynchronously irrespective of the transaction state.

Subsequently, a Cancel Request and a Reset Request will be explained. The initiator uses a Cancel Request when cancelling an operation. A responder that receives a Cancel Request cancels the operation being executed. The initiator uses a Reset Request when resetting a device. A responder that receives a Reset Request cancels any operation being executed, and shifts its transaction state to the idle state.

Cancel Request and Reset Request are control requests unique to the transport and are not defined by PTP specifications. A control request is issued from the initiator to the responder. The PTP conversion layer is transmitted/received to and from the transport layer with the control request transmitted from the PTP layer (Cancel Request, Reset Request) as its PTP data.

FIG. 17is a schematic diagram illustrating the data structure of a Cancel Request. In the example ofFIG. 17, the Cancel Request has the fields: Container length, Container type, Code, Transaction ID, Payload.

Container length stores the size of the container. Container type stores the type (control request) of the container. Code stores the Cancel Request. Transaction ID stores a transaction ID of the operation desired to be cancelled. Payload can be omitted, since there is no information to be stored in it.

FIG. 18is a schematic diagram illustrating the data structure of a Reset Request. In the example ofFIG. 18, the Reset Request has the fields: Container length, Container type, Code, Transaction ID, Payload.

Container length stores the size of the container. Container type stores the type (control request) of the container. Code stores the Reset Request. Transaction ID stores 0x000000000. Payload can be omitted, since there is no information to be stored in it.

Subsequently, the transmission timings of the Cancel Request and the Reset Request will be explained.FIG. 19is a sequence diagram illustrating the transmission timings of the Cancel Request and the Reset Request. The Cancel Request and the Reset Request are transmitted from the initiator to the responder, and can be transmitted asynchronously irrespective of the transaction state.

Subsequently, timings at which an operation can be cancelled will be explained.FIG. 20is a schematic diagram illustrating timings at which an operation can be cancelled in this embodiment. The example ofFIG. 20illustrates cancellation timings of case1to case7.

In case1, an operation is cancelled immediately after transmitting an operation request with no data transmission/reception. In case2, an operation is cancelled immediately after transmitting an operation request with data reception. In case3, an operation is cancelled during data reception. In case4, an operation is cancelled immediately after ending data reception. In case5, an operation is cancelled immediately after transmitting an operation request with data transmission. In case6, an operation is cancelled during data transmission. In case7, an operation is cancelled immediately after completing data transmission.

Subsequently, the operation cancellation sequence performed by the initiator when using a Cancel Request in cases1to7will be explained.

FIG. 21is a sequence diagram illustrating the cancellation sequence of an operation by the initiator when a Cancel Request is used in case1, case2, and case5of this embodiment.

The PTP layer of the initiator makes a request to the PTP conversion layer of the initiator to transmit an operation request.

The PTP conversion layer of the initiator converts the operation request to an operation request container.

The transport layer of the initiator converts the operation request container to a PDU (MF=0) and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0) and converts it to an operation request container.

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the operation request.

The PTP layer of the responder executes the operation.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Cancel Request).

The transport layer of the initiator converts the control request container (Cancel Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The PTP layer of the responder cancels the operation.

The PTP layer of the responder, in order to give Notify receipt of it has cancelled the operation, requests the PTP conversion layer of the responder to set the Code to a response code of ‘transaction cancelled’, and transmit a response.

The PTP conversion layer of the responder converts the response to a response container.

The transport layer of the responder converts the response container to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to a response container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the response.

As described above, operations in case1, case2, and case5can be cancelled by implementing the following sequence:

1. The initiator transmits a Cancel Request.

2. The responder cancels the operation.

3. The responder sets the Code to a response code of ‘transaction cancelled’ and transmits a response.

In case2, the responder can transmit data (PDU) with More Frame set at 0 before transmitting the response.

FIG. 22is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Cancel Request is used in case3of this embodiment.

The processes of steps S2201to S2206are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1) and transmits them to the initiator.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Cancel Request).

The transport layer of the initiator converts the control request container (Cancel Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The PTP layer of the responder requests a transmission halt.

The PTP conversion layer of the responder commands the transport layer to halt the transmission.

The transport layer of the responder sets the More Frame of the next PDU to be transmitted to 0, and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and accordingly converts the PDU (MF=1) and PDU (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the data.

The processes of steps S2220to S2225are similar to those of steps S2112to S2117inFIG. 21.

As described above, the operation in case3can be cancelled by implementing the following sequence:

1. The initiator transmits a Cancel Request.

2. The responder transmits data (PDU) in which More Frame is set to 0. The initiator ignores the data it has received.

3. The responder cancels the operation.

4. The responder sets the Code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 23is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Cancel Request is used in case4of this embodiment.

The processes of steps S2301to S2306are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0), and transmits them to the initiator.

The transport layer of the initiator has received the transmitted PDU (MF=0), and accordingly converts the PDU (MF=1) and PDU (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the data.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Cancel Request).

The transport layer of the initiator converts the control request container (Cancel Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The processes of steps S2317to S2322are similar to those of steps S2112to S2117inFIG. 21.

As described above, the operation in case4can be cancelled by implementing the following sequence:

1. The initiator transmits a Cancel Request.

2. The responder cancels the operation.

3. The responder sets the Code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 24is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Cancel Request is used in case6of this embodiment.

The processes of steps S2401to S2406are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator requests a data transmission.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1) and transmits them to the responder.

The PTP layer of the initiator makes a transmission halt request to the PTP conversion layer of the initiator in order to halt the transmission of data.

The PTP conversion layer of the initiator commands the transport layer of the initiator to halt the transmission.

The transport layer of the initiator sets More Frame in the next PDU to be transmitted to 0, and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and accordingly converts the PDU (MF=1) and PDU (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the data.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Cancel Request).

The transport layer of the initiator converts the control request container (Cancel Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The processes of steps S2420to S2425are similar to those of steps S2112to S2117inFIG. 21.

As described above, the operation in case6can be cancelled by implementing the following sequence:

1. The initiator transmits data (PDU) in which More Frame is set to 0. The responder ignores the data it has received.

2. The initiator transmits a Cancel Request.

3. The responder cancels the operation.

4. The responder sets the Code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 25is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Cancel Request is used in case7of this embodiment.

The processes of steps S2501to S2506are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator requests a data transmission.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0) and transmits them to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP data of the responder that the data has been received.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Cancel Request).

The transport layer of the initiator converts the control request container (Cancel Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The processes of steps S2517to S2522are similar to those of steps S2112to S2117inFIG. 21.

As described above, the operation in case7can be cancelled by implementing the following sequence:

1. The initiator transmits a Cancel Request.

2. The responder cancels the operation.

3. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

Subsequently, operation cancellation sequence executed by the responder when using a cancel transaction event in cases1to7will be explained.FIG. 26is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case1and case2of this embodiment.

The processes of steps S2601to S2606are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to an event container (cancel transaction).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received an event (cancel transaction).

The PTP layer of the initiator cancels the operation.

The processes of steps S2613to S2617are similar to those of steps S2113to S2117inFIG. 21.

As described above, an operation in cases1and2can be cancelled by implementing the following sequence.

1. The responder sets the code to an event code of ‘cancel transaction’ and transmits an event.

2. The initiator cancels the operation.

3. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 27is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case3of this embodiment.

The processes of steps S2701to S2706are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1), and transmits them to the initiator.

The PTP layer of the responder makes a transmission halt request to the PTP conversion layer of the responder in order to halt the transmission of data.

The PTP conversion layer of the responder commands the transport layer of the responder to halt the transmission.

The transport layer of the responder sets More Frame in the next PDU to be transmitted to 0, and transmits it to the initiator.

The transport layer of the initiator has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the data.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to an event container (cancel transaction).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the event (cancel transaction).

The PTP layer of the initiator cancels the operation.

The processes of steps S2721to S2725are similar to those of steps S2112to S2117inFIG. 21.

As described above, an operation in case3can be cancelled by implementing the following sequence:

1. The responder transmits data (PDU) in which More Frame is set to 0. The initiator ignores the data it has received.

2. The responder sets the code to an event code of ‘cancel transaction’ and transmits the event.

3. The initiator cancels the operation.

4. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 28is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case4of this embodiment.

The processes of steps S2801to S2806are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0) and transmits them to the initiator.

The transport layer of the initiator has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP data of the initiator that the data has been received.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Cancel Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Cancel Request.

The PTP layer of the initiator cancels the operation.

The processes of steps S2818to S2822are similar to those of steps S2113to S2117inFIG. 21.

As described above, an operation in case4can be cancelled by implementing the following sequence:

1. The responder sets the code to an event code of ‘cancel transaction’ and transmits the event.

2. The initiator cancels the operation.

3. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 29is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case5of this embodiment.

The processes of steps S2901to S2906are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to an event container (cancel transaction).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the event (cancel transaction).

The PTP layer of the initiator requests transmission of dummy data for ending the data phase.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDU (MF=0) to a data container.

The PTP conversion layer of the responder notifies the PTP data of the responder that the data has been received.

The processes of steps S2917to S2921are similar to those of steps S2113to S2117inFIG. 21.

As described above, an operation in case5can be cancelled by implementing the following sequence:

1. The responder sets the code to an event code of ‘cancel transaction’ and transmits the event.

2. The initiator cancels the operation.

3. The initiator transmits data (PDU) in which More Frame is set to 0. The responder ignores the data it has received.

4. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 30is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case6of this embodiment.

The processes of steps S3001to S3006are similar to those of steps S2101to S2106ofFIG. 21.

The PTP layer of the initiator makes a request to transmit data.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1), and transmits them to the responder.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to an even container (cancel transaction).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the data.

The PTP layer of the initiator cancels the operation.

The PTP layer of the initiator makes a transmission halt request to the PTP conversion layer of the initiator in order to halt the transmission of data.

The PTP conversion layer of the initiator commands the transport layer of the initiator to halt the transmission.

The transport layer of the initiator sets More Frame in the next PDU to be transmitted to 0, and transmits it to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the data.

The processes of steps S3021to S3025are similar to those of steps S2113to S2117inFIG. 21.

As described above, an operation in case6can be cancelled by implementing the following sequence:

1. The responder sets the code to an event code of ‘cancel transaction’ and transmits the event.

2. The initiator cancels the operation.

3. The initiator transmits data (PDU) in which More Frame is set to 0. The responder ignores the data it has received.

4. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

FIG. 31is a sequence diagram illustrating the cancellation sequence of an operation by a responder when a cancel transaction event is used in case7of this embodiment.

The processes of steps S3101to S3106are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator requests a data transmission.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0) and transmits them to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP data of the responder that the data has been received.

The PTP layer of the responder requests the PTP conversion layer of the responder to transmit an event (cancel transaction) in order to cancel the operation.

The PTP conversion layer of the responder converts the event (cancel transaction) to an event container (cancel transaction).

The transport layer of the responder converts the event container (cancel transaction) to a PDU (MF=0), and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and converts it to an event container (cancel transaction).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received an event (cancel transaction).

The PTP layer of the initiator cancels the operation.

The processes of steps S3118to S3122are similar to those of steps S2113to S2117inFIG. 21.

As described above, an operation in case6can be cancelled by implementing the following sequence:

1. The responder sets the code to an event code of ‘cancel transaction’ and transmits the event.

2. The initiator cancels the operation.

3. The responder sets the code to a response code of ‘transaction cancelled’ and transmits a response.

Subsequently, an operation cancellation sequence performed by the initiator when Reset Request is used in cases1to7will be explained.FIG. 32is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Reset Request is used in case1, case2, and case5of this embodiment.

The processes of steps S3201to S3206are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator makes a request to the PTP conversion layer of the initiator to transmit a Reset Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Reset Request to a control request container (Reset Request).

The transport layer of the initiator converts the control request container (Reset Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0) and converts it to a control request container (Reset Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the Reset Request.

The PTP layer of the responder resets the process (cancels the operation).

The PTP layer of the responder requests transmission of dummy data.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDU (MF=0) to a data container.

The PTP conversion layer of the responder notifies the PTP data of the responder that the data has been received.

As described above, an operation in cases1,2, and5can be cancelled by implementing the following sequence:

1. The initiator transmits a Reset Request.

2. The responder cancels the operation.

3. The responder transmits dummy data in which More Frame is set to 0. The initiator ignores the data it has received.

4. The operation phase state is changed to the idle state.

FIG. 33is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Reset Request is used in case3of this embodiment.

The processes of steps S3301to S3306are similar to those of steps S2101to S2106ofFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1) and transmits them to the initiator.

To cancel the operation, the PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Reset Request.

The PTP conversion layer of the initiator converts the Reset Request to a control request container (Reset Request).

The transport layer of the initiator converts the control request container (Reset Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Reset Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Reset Request.

The PTP layer of the responder requests a transmission halt.

The PTP conversion layer of the responder commands the transport layer to halt the transmission.

The transport layer of the responder sets the More Frame of the next PDU to be transmitted to 0, and transmits it to the initiator.

The transport layer of the initiator receives the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the data.

The processes of steps S3320to S3325are similar to those of steps S3212to S3217inFIG. 32.

As described above, the operation in case3can be cancelled by implementing the following sequence:

1. The initiator transmits a Reset Request.

2. The responder transmits data (PDU) in which More Frame is set to 0. The initiator ignores the data it has received.

3. The responder cancels the operation.

4. The responder sets the Code to a response code of ‘transaction cancelled’ and transmits a response.

5. The operation phase state is changed to the idle state.

FIG. 34is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Reset Request is used in case4of this embodiment.

The processes of steps S3401to S3406are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the responder requests a data transmission.

The PTP conversion layer of the responder converts the data to a data container.

The transport layer of the responder converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0), and transmits them to the initiator.

The transport layer of the initiator has received the transmitted PDU (MF=0), and accordingly converts the PDU (MF=1) and PDU (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the initiator notifies the PTP layer of the initiator that it has received the data.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Reset Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Reset Request).

The transport layer of the initiator converts the control request container (Reset Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Reset Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Reset Request.

The processes of steps S3417to S3422are similar to those of steps S2112to S2117inFIG. 21.

As described above, the operation in case4can be cancelled by implementing the following sequence:

1. The initiator transmits a Reset Request.

2. The responder cancels the operation.

3. The responder transmits dummy data with more frame set to 0. The initiator ignores the data it has received.

4. The operation phase state is changed to the idle state.

FIG. 35is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Reset Request is used in case6of this embodiment.

The processes of steps S3501to S3506are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator requests a data transmission.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1) and transmits them to the responder.

The PTP layer of the initiator makes a transmission halt request to the PTP conversion layer of the initiator in order to halt the transmission of data.

The PTP conversion layer of the initiator commands the transport layer of the initiator to halt the transmission.

The transport layer of the initiator sets More Frame in the next PDU to be transmitted to 0, and transmits it to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) it has hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received the data.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Cancel Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Reset Request).

The transport layer of the initiator converts the control request container (Reset Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Reset Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Reset Request.

The processes of steps S3520to S3525are similar to those of steps S3212to S3217inFIG. 32.

As described above, the operation in case6can be cancelled by implementing the following sequence:

1. The initiator transmits data (PDU) in which More Frame is set to 0. The responder ignores the data it has received.

2. The initiator transmits a Reset Request.

3. The responder cancels the operation.

4. The responder transmits data (PDU) in which More Frame is set to 0. The initiator ignores the data it has received.

5. The operation phase state is changed to the idle state.

FIG. 36is a sequence diagram illustrating the cancellation sequence of an operation by an initiator when a Reset Request is used in case7of this embodiment.

The processes of steps S3601to S3606are similar to those of steps S2101to S2106inFIG. 21.

The PTP layer of the initiator requests a data transmission.

The PTP conversion layer of the initiator converts the data to a data container.

The transport layer of the initiator converts the data to a plurality of PDUs (MF=1) and PDUs (MF=0) and transmits them to the responder.

The transport layer of the responder has received the transmitted PDU (MF=0), and accordingly converts the PDUs (MF=1) and PDUs (MF=0) hitherto received to a data container.

The PTP conversion layer of the responder notifies the PTP data of the responder that the data has been received.

The PTP layer of the initiator requests the PTP conversion layer of the initiator to transmit a Reset Request in order to cancel the operation.

The PTP conversion layer of the initiator converts the Cancel Request to a control request container (Reset Request).

The transport layer of the initiator converts the control request container (Reset Request) to a PDU (MF=0), and transmits it to the responder.

The transport layer of the responder receives the transmitted PDU (MF=0), and converts it to a control request container (Reset Request).

The PTP conversion layer of the responder notifies the PTP layer of the responder that it has received a Reset Request.

The processes of steps S3617to S3622are similar to those of steps S3212to S3217inFIG. 32.

As described above, the operation in case7can be cancelled by implementing the following sequence:

1. The initiator transmits a Reset Request.

2. The responder cancels the operation.

3. The responder transmits dummy data in which More Frame is set to 0. The initiator ignores the data it has received.

4. The operation phase state is changed to the idle state.

When the initiator cancels an operation using a Reset Request, in a case where the initiator does not need to it know that the reset process of the responder has ended, it is acceptable to omit the process of ‘The responder transmits dummy data in which More Frame is set to 0’.

As described above, in this embodiment, the generating unit32of the communication controllers14and23generates a communication frame of the transport layer level by converting and dividing transmission target data input to the first interface unit31from a processing unit30that performs processing in compliance with a communication protocol of an upper layer, and the second interface unit33outputs the communication frame generated by the generating unit32.

At this time, when a trigger relating to halting transmission of the target data is inputted to the first interface unit31from the processing unit30of the communication controller14or23, the generating unit32converts the trigger relating to halting transmission of the target data to information of the transport layer level.

Based on the information that the generating unit32converted, the setting unit34of the communication controllers14and23sets a flag indicating the end of transmission to the communication frame of the transport layer level to be transmitted next by the second interface unit33. The second interface unit33then transmits the communication frame of the transport layer level to which the setting unit34set the flag indicating the end of transmission. Thus the communication controllers14and23notify the transmission destination that the data transmission is to be halted.

When the second interface unit33of the communication controllers14and23has received a communication frame of the transport layer level to which a flag indicating the end of transmission has been set, the first interface unit31outputs information indicating that the transmission of the transmission target data being transmitted from the target communication device is to be halted to the processing unit30that performs processing in compliance with a communication protocol of an upper layer.

Therefore, when one of the communication controllers14and23performs communication using a transport layer protocol which lacks an existing function of having control of data transfer, if the other of the communication controller14and23halts the data transmission, the one of the communication controller14and23that is executing the communication can confirm that the data transfer is halted.

Furthermore, when the second interface unit33of the communication controllers14and23inputs a second trigger relating to requesting halt of the transmission from a target communication device that is transmitting transmission target data, the first interface unit31outputs information corresponding to this second trigger to the processing unit30that performs processing in compliance with a communication protocol of an upper layer, and then receives the trigger relating to halting transmission of the target data. Thus the communication controllers14and23can be notified that the transmission of the data is to be halted.

As used herein, the following directional terms “forward, rearward, above, downward, right, left, vertical, horizontal, below, and transverse” as well as any other similar directional terms refer to those directions of an apparatus equipped with the present invention. Accordingly, these terms, as utilized to describe the present invention should be interpreted relative to an apparatus equipped with the present invention.

The term “configured” is used to describe a component, section or part of a device includes hardware and/or software that is constructed and/or programmed to carry out the desired function.

The terms of degree such as “substantially,” “about,” “nearly”, and “approximately” as used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed. For example, these terms can be construed as including a deviation of at least ±5percents of the modified term if this deviation would not negate the meaning of the word it modifies.

The term “unit” is used to describe a component, section or part of a hardware and/or software that is constructed and/or programmed to carry out the desired function. Typical examples of the hardware may include, but are not limited to, a device and a circuit.