説明

送信モジュール

【課題】送信対象データの送信を行っている際に、他のデータをより早急に送信することができるタイミングを設けることができる。
【解決手段】第1インタフェース部31は送信対象データを入力する。データ分割部35は、開始データと終了データとを生成するとともに送信対象データを分割して分割データを生成する。生成部32は、開始データと終了データと分割データとのそれぞれに対応するトランスポート層レベルの通信フレームを一つまたは複数生成する。第2インタフェース部33は、開始データに対応する通信フレームを送信した後に分割データに対応する通信フレームを送信し、分割データに対応する全ての通信フレームを送信した後に終了データに対応する通信フレームを送信する。付与部34は、分割データに対応する通信フレームのうち最後尾に対応する通信フレーム以外の通信フレームに分割データの送信終了を示すフラグを付与する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信モジュールに関する。
【背景技術】
【0002】
画像転送プロトコルであるPicture Transfer Protocol:ISO/DIS 15740(以下、PTPと記載する)は、トランスポート層に非依存で適用可能なため、これまでUSB(Universal Serial Bus)では、USB Still Image Capture Device Class(以下、SICDと記載する)が規格化されており、IP networkでは、CIPA DC−005 “Picture Transfer Protocol“ over TCP/IP networks(以下、PTP−IPと記載する)が規格化されている。なお、USBについての仕様は非特許文献1に開示されている。また、近年、有線無線を問わず様々な通信手段が開発されており、今後PTPの適用範囲はさらに広くなるものと思われる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Universal Serial Bus Specification Revision 2.0、[online]、April 27, 2000、[平成22年10月28日検索]、インターネット<URL:http://www.usb.org/developers/docs/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
PTPを各トランスポート層に適用する場合、各トランスポート層の特性に応じた実装をしなければならず、特にPTPでは、Operationデータ(Operation Request/Data/Response)の送受信と、Eventの送受信とを非同期に行えなければならない。トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの送信対象データの送信が完了しない限り他の送信対象データの送信が出来ないトランスポート層の場合、すなわち、あるデータを送信している間には他のデータを送信することができないトランスポート層の場合には、データの送信が完了しなければ他のデータを送信することができるタイミングを設けることができないという問題がある。例えば、Operationデータを送信している間にEventが発生し、発生したEventを早急に送信したい場合(例えばバッテリーレベルが低下したことを通知する場合)においても、Operationデータの送信を完了するまでEventを送信することができるタイミングを設けることができないという問題がある。
【0005】
本発明は、上記事情に鑑みてなされたものであり、トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの送信対象データの送信が完了しない限り他の送信対象データの送信が出来ない無線通信プロトコルを用いた場合においても、送信対象データの送信を行っている際に、他のデータをより早急に送信することができるタイミングを設けることができる送信モジュールを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの前記送信対象データの送信が完了しない限り他の前記送信対象データの送信が出来ない無線通信プロトコルが実装された送信モジュールであって、前記上位層の通信プロトコルに従った処理が行われた前記送信対象データを入力する第1インタフェース部と、前記送信対象データの送信を開始することを示す開始データと、前記送信対象データの送信を終了することを示す終了データとを生成するとともに、前記送信対象データを分割して分割データを生成するデータ分割部と、前記開始データと、前記終了データと、前記分割データとのそれぞれに対応するトランスポート層レベルの通信フレームを一つまたは複数生成する生成部と、前記送信対象データを送信する際、前記開始データに対応する通信フレームを送信した後に前記分割データに対応する通信フレームを送信し、前記分割データに対応する全ての通信フレームを送信した後に前記終了データに対応する通信フレームを送信する第2インタフェース部と、前記分割データに対応する通信フレームのうち最後尾に対応する通信フレーム以外の通信フレームに前記分割データの送信終了を示すフラグを付与する付与部と、を有することを特徴とする送信モジュールである。
【0007】
また、本発明の送信モジュールにおいて、前記付与部は、前記送信対象データに対応する前記分割データのうち、前記送信対象データの最後尾に対応する通信フレームを含む分割データ以外の分割データを対象として、前記対象となる分割データのうち少なくとも1つの分割データの最後尾に対応する通信フレームに前記送信終了を示すフラグを付与することを特徴とする。
【0008】
また、本発明の送信モジュールにおいて、前記第1インタフェース部は、上位層の通信プロトコルからイベントを入力し、前記第2インタフェース部は、前記イベントが入力された場合、前記送信終了を示すフラグが付与された通信フレームを送信した直後に、前記入力されたイベントに対応する通信フレームを送信することを特徴とする。
【発明の効果】
【0009】
本発明によれば、第1インタフェース部は、上位層の通信プロトコルに従った処理が行われた送信対象データを入力する。データ分割部は、送信対象データの送信を開始することを示す開始データと、送信対象データの送信を終了することを示す終了データとを生成するとともに、送信対象データを分割して分割データを生成する。生成部は、開始データと、終了データと、分割データとのそれぞれに対応するトランスポート層レベルの通信フレームを一つまたは複数生成する。第2インタフェース部は、送信対象データを送信する際、開始データに対応する通信フレームを送信した後に分割データに対応する通信フレームを送信し、分割データに対応する全ての通信フレームを送信した後に終了データに対応する通信フレームを送信する。付与部は、分割データに対応する通信フレームのうち最後尾に対応する通信フレーム以外の通信フレームに分割データの送信終了を示すフラグを付与する。
【0010】
これにより、送信対象データを分割した分割データの送信終了を示すフラグが付与された通信フレームを送信した後に、他のデータを送信することができるタイミングを設けることができるため、トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの送信対象データの送信が完了しない限り他の送信対象データの送信が出来ない無線通信プロトコルを用いた場合においても、送信対象データの送信を行っている際に、他のデータをより早急に送信することができるタイミングを設けることができる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1の実施形態における電子カメラの構成を示したブロック図である。
【図2】本発明の第1の実施形態におけるPCの構成を示したブロック図である。
【図3】本発明の第1の実施形態における通信制御部が用いる通信プロトコルの階層を示した階層図である。
【図4】本発明の第1の実施形態における通信制御部の構成を示したブロック図である。
【図5】本発明の第1の実施形態におけるデータフレームの構成を示した概略図である。
【図6】本発明の第1の実施形態におけるACKフレームの構成を示した概略図である。
【図7】本発明の第1の実施形態において、分割部がデータを通信フレームに分割する分割例を示した概略図である。
【図8】本発明の第1の実施形態において、InitiatorがResponderにデータを分割送信する際のデータの送信順を示したシーケンス図である。
【図9】本発明の第1の実施形態において、ResponderがInitiatorにデータを分割送信する際のデータの送信順を示したシーケンス図である。
【図10】本発明の第1の実施形態において、Responderが上位層からのデータをInitiatorに送信する際のデータの送信順を示したシーケンス図である。
【図11】本発明の第1の実施形態において、Initiatorが上位層からのデータをResponderに送信する際のデータの送信順を示したシーケンス図である。
【図12】本発明の第1の実施形態において、Initiatorが、Responderに、上位層からの第2のデータを送信する際のデータの送信順を示したシーケンス図である。
【図13】本発明の第1の実施形態において、Responderが、Initiatorに、上位層からの第2のデータを送信する際のデータの送信順を示したシーケンス図である。
【図14】本発明の第1の実施形態において、上位層からの第1のデータを送信中に、上位層からの第2のデータをより早急に送信することができるタイミングを設ける方法を示した概略図である。
【図15】本発明の第1の実施形態におけるOperation Request Packetのデータ構造を示した概略図である。
【図16】本発明の第1の実施形態におけるData Packet(Start)のデータ構造を示した概略図である。
【図17】本発明の第1の実施形態におけるData Packet(Data)のデータ構造を示した概略図である。
【図18】本発明の第1の実施形態におけるData Packet(End)のデータ構造を示した概略図である。
【図19】本発明の第1の実施形態におけるResponse Packetのデータ構造を示した概略図である。
【図20】本発明の第1の実施形態におけるEvent Packetのデータ構造を示した概略図である。
【図21】本発明の第1の実施形態におけるOperationのTransaction Stateを示した遷移図である。
【図22】本発明の第1の実施形態において、Operation Requestと、Dataと、Responseと、Eventとの送信タイミングを示したシーケンス図である。
【図23】本発明の第1の実施形態におけるCancel Requestのデータ構造を示した概略図である。
【図24】本発明の第1の実施形態におけるReset Requestのデータ構造を示した概略図である。
【図25】本発明の第1の実施形態において、Cancel RequestとReset Requestとの送信タイミングを示したシーケンス図である。
【図26】本発明の第1の実施形態において、データ送信を伴わないオペレーションの手順を示したシーケンス図である。
【図27】本発明の第1の実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
【図28】本発明の第1の実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順を示したシーケンス図である。
【図29】本発明の第1の実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
【図30】本発明の第1の実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順を示したシーケンス図である。
【図31】本発明の第2の実施形態におけるData Packet(Data)の冗長部のデータ構造を示した概略図である。
【図32】本発明の第2の実施形態におけるData Packet(Data)のデータ部のデータ構造を示した概略図である。
【図33】本発明の第2の実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
【図34】本発明の第2の実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順を示したシーケンス図である。
【図35】本発明の第2の実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
【図36】本発明の第2の実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順を示したシーケンス図である。
【発明を実施するための形態】
【0012】
(第1の実施形態)
以下、本発明の第1の実施形態について図面を参照して説明する。本実施形態は、電子カメラとPC(パーソナルコンピュータ)との間でデータの送受信を行っている際に、他のデータをより早急に送信することができるタイミングを設け、このタイミングに他のデータを送信する例について説明する。
【0013】
図1は、本実施形態における電子カメラの構成を示したブロック図である。図示する例では、電子カメラ1は、撮像部11と、記録媒体12と、CPU13(Central Processing Unit、中央演算処理装置)と、通信制御部14(送信モジュール)と、操作部15と、表示部16と、RAM17(Random Access Memory、ランダムアクセスメモリ)と、フラッシュメモリ18とを備えている。
【0014】
CPU13は、フラッシュメモリ18に記録されている制御プログラムを読み出して実行し、RAM17に種々のデータを読み書きすることにより、電子カメラ1が備える各部の動作を統括的に制御する。フラッシュメモリ18には、制御プログラムの他に、撮影パラメータや通信パラメータ(データ通信プロトコル情報等)等が記録されている。
【0015】
撮像部11は、被写体を撮影して撮像信号を生成するとともに、種々の画像処理を行って画像データを作成する。撮像部11に作成された画像データは、記録媒体12に記録される。例えば、記録媒体12として、電子カメラ1に着脱可能なメモリカードや、電子カメラ1に固定されたハードディスクなどが用いられる。
【0016】
操作部15は、電子カメラ1の動作に関する指示を入力するための操作スイッチなどを備える。表示部16は、記録媒体12から読み出された画像データや、ユーザインタフェース画面等を表示する。通信制御部14は、PCや、プリンタや、外部記録装置等の外部機器との間で撮影画像等のデータの授受を行う通信インタフェースである。通信インタフェースとは広く情報の送受信に用いられるインタフェースのことで、WLAN(Wireless LAN、無線LAN)、Blutooth(登録商標)、IrDA(登録商標)、TransferJET(登録商標)、WiMedia(登録商標)などの無線通信に限らず、有線通信も含まれる。
【0017】
次に、PCの構成について説明する。図2は、本実施形態におけるPCの構成を示したブロック図である。図示する例では、PC2は、CPU21と、記録媒体22と、通信制御部23(送信モジュール)と、操作部24と、表示部25と、RAM26とを備えている。
【0018】
CPU21は、記録媒体22に記録されている制御プログラムを読み出し実行し、RAM26に種々のデータを読み書きすることにより、PC2が備える各部の動作を統括的に制御する。例えば、記録媒体22として、ハードディスクやフラッシュメモリなどが用いられる。記録媒体22には、制御プログラムの他に、文書データや画像データ等の種々のデータが記録される。
【0019】
操作部24は、PC2の動作に関する指示を入力するためのキーボードやマウスなどを備える。表示部25は、ユーザインタフェース画面や、記録媒体から読み出された文書データや画像データ等を表示する。通信制御部23は、電子カメラ1やプリンタ等の機器との間で種々のデータの授受を行う通信インタフェースである。通信インタフェースとは広く情報の送受信に用いられるインタフェースのことで、WLAN、Blutooth(登録商標)、IrDA(登録商標)、TransferJET(登録商標)、WiMedia(登録商標)などの無線通信に限らず、有線通信も含まれる。
【0020】
次に、電子カメラ1の通信制御部14と、PC2の通信制御部23とが用いる通信プロトコルについて説明する。図3は、本実施形態における電子カメラ1の通信制御部14と、PC2の通信制御部23とが用いる通信プロトコルの階層を示した階層図である。PTP機器の役割にはInitiator(イニシエータ)とResponder(レスポンダ)があり、Initiatorからのオペレーション要求にResponderが応答することで画像転送や機器制御を行っている。本実施形態では、PC2がInitiatorの役割で動作し、電子カメラ1がResponderの役割で動作する。
【0021】
本実施形態の通信プロトコル層は、上位層から順に、PTP Layer、Transport Layer、PTP Conversion Layerである。PTP Layerは、PTPを実現するレイヤである。PTP Conversion Layerは、ISO15740に記載のOperation/Data/Response/Event等のデータをPTP LayerとTransport Layerとの間で利用できるよう相互に変換するレイヤである。Transport LayerをUSBとした場合は、PTP Conversion LayerはSICDのことを示す。
【0022】
Transport Layerは、物理的なデータ転送を行う通信手段(トランスポート層)である。Transport Layerは、WLANやIrDA(登録商標)、TransferJET(登録商標)等の無線通信に限らず、USBやEthernet(登録商標)のような有線通信も含まれる。
【0023】
次に、電子カメラ1の通信制御部14とPC2の通信制御部23とについて説明する。通信制御部14の構成と通信制御部23の構成とは同一の構成である。図4は、本実施形態における電子カメラ1の通信制御部14とPC2の通信制御部23との構成を示したブロック図である。
【0024】
図示する例では、通信制御部14,23は、上位層の通信プロトコル(PTP Layer)に従った処理を行う処理部30と、処理部30からのデータ送信やデータ送信キャンセル等の要求および送信対象データを入力する第1インタフェース部31と、送信対象データを分割して分割データを生成するデータ分割部35と、トランスポート層レベルの通信フレーム(後述する図5、図6などに示す通信フレーム)を生成する生成部32と、生成部32が生成した通信フレームを下位層の通信プロトコルに出力する第2インタフェース部33と、分割データの送信終了を示すフラグを通信フレームに付与する付与部34とを備える。生成部32は、分割データや、Eventなどのデータをトランスポート層レベルの情報に変換する変換部321と、変換部321がトランスポート層レベルの情報に変換した分割データを、トランスポート層レベルの通信フレームの大きさに応じて分割する分割部322とを備える。本実施形態では、分割データの送信終了を示すフラグとしてMF(More Fragment)を用いる。
【0025】
なお、通信制御部14,23が備える処理部30はPTP Layerで規定された処理を行い、第1インタフェース部31はPTP Conversion Layerで規定された処理を行い、第2インタフェース部33はTransport Layerで規定された処理を行う。また、通信制御部14,23が備えるデータ分割部35と、生成部32と、付与部34とは、PTP Conversion Layerと、Transport Layerとのいずれかまたは両方で動作する。例えば、生成部32が備える変換部321はPTP Conversion Layerで動作し、分割部322はTransport Layerで動作するようにしてもよい。
【0026】
次に、本実施形態におけるデータフレームの構成について説明する。図5は、本実施形態におけるデータフレームの構成を示した概略図である。データフレームは、上位層の通信プロトコルから送信要求された送信対象データを相手機器に送信するために使用される通信フレームである。データフレームは、送信先IDと、送信元IDと、コントロールデータと、SDU(Service Data Unit)と、CRC(Cyclic Redundancy Check)とを含む。
【0027】
送信先IDには、メッセージを送信する相手の識別子(ID)が設定される。但し、接続要求メッセージ時など相手機器が特定されていない場合は、FF−FF−FF−FF−FF−FF−FF−FF等の特殊な識別子が設定される。送信元IDには自機器の識別子が設定される。コントロールデータにはフレーム種別(本データフレームの場合は‘Data’)やMF(More Frame)フラグ等が設定される。MFフラグはデータを分割送信送するときに使用し、MF=1の場合は後続のデータフレームがあることを示し、MF=0の場合は後続のデータフレームがないことを示す。SDUには送信を行う上位層の通信プロトコルから送信要求されたデータが設定される。また、本データフレームをPDU(Protocol Data Unit)とも呼ぶ。CRCにはデータフレームに設定されている値に誤りがないことを検出するための値が設定される。
【0028】
次に、本実施形態におけるACK(Acknowledgment)フレームの構成について説明する。図6は、本実施形態におけるACKフレームの構成を示した概略図である。ACKフレームは、相手機器から送信されたフレームを受信したことを通知するために使用される通信フレームである。ACKフレームは、送信先IDと、送信元IDと、コントロールデータと、CRCとを含む。送信先IDと、送信元IDと、CRCとはデータフレームと同様である。ACKフレームに含まれるコントロールデータのフレーム種別には‘ACK’が設定される。
【0029】
次に、分割部35が、データを通信フレームに分割する方法について説明する。図7は、本実施形態において、分割部35がデータを通信フレームに分割する分割例を示した概略図である。Transport Layerは、PTP Conversion Layerから送信要求されたデータのサイズがTransport Layerの最大SDUサイズよりも大きい場合は、MFフラグを利用してデータを分割して転送する。図示する例では、データをPDU1〜PDU5に分割している。また、PDU1〜PDU4のコントロールデータのMFは1(MF=1)であるため後続データフレームが存在することを示しており、PDU5のコントロールデータのMFは0(MF=0)であるためPDU5は最終データフレームであることを示している。
【0030】
次に、InitiatorがResponderにデータを分割送信する際の送信順について説明する。図8は、本実施形態において、InitiatorがResponderにデータを分割送信する際のデータの送信順を示したシーケンス図である。図示する例は、InitiatorがResponderに、データを分割したPDU_I1〜PDU_I5を送信する例を示している。
【0031】
Initiatorは、PDU_I1(MF=1)をResponderに送信する。PDU_I1(MF=1)を受信したResponderは、PDU_I1(MF=1)を受信したことを通知するACKをInitiatorに送信する。また、Responderは、受信したPDU_I1のMFは1であるため、PDU_I1(MF=1)の後続データフレームがInitiatorから送信されるまで待機する。
【0032】
Initiatorは、ResponderからPDU_I1(MF=1)に対するACKを受信すると、PDU_I1(MF=1)の後続データフレームであるPDU_I2(MF=1)をResponderに送信する。PDU_I2(MF=1)を受信したResponderは、PDU_I1(MF=1)を受信した際と同様に、PDU_I2(MF=1)を受信したことを通知するACKをInitiatorに送信し、PDU_I2(MF=1)の後続データフレームがInitiatorから送信されるまで待機する。InitiatorとResponderとは、PDU_I3(MF=1)とPDU_I4(MF=1)についてもPDU_I2(MF=1)と同様に送受信する。
【0033】
Initiatorは、ResponderからPDU_I4(MF=1)に対するACKを受信すると、PDU_I4(MF=1)の後続データフレームであるPDU_I5(MF=0)をResponderに送信する。PDU_I5(MF=0)を受信したResponderは、PDU_I5(MF=0)を受信したことを通知するACKをInitiatorに送信する。また、受信したPDU_I5のMFは0である、すなわちPDU_I5(MF=0)の後続データフレームは無いため、Responderは受信処理を終了する。Initiatorは、ResponderからPDU_I5(MF=0)に対するACKを受信すると、送信処理を終了する。このように、PDUを受信するResponderは、MF=0のPDUを受信すると受信処理を終了する。
【0034】
次に、ResponderがInitiatorにデータを分割送信する際の送信順について説明する。図9は、本実施形態において、ResponderがInitiatorにデータを分割送信する際のデータの送信順を示したシーケンス図である。図示する例は、ResponderがInitiatorに、データを分割したPDU_R1〜PDU_R5を送信する例を示している。
【0035】
Responderは、PDU_R1(MF=1)をInitiatorに送信する。PDU_R1(MF=1)を受信したInitiatorは、PDU_R1(MF=1)を受信したことを通知するACKをResponderに送信する。また、Initiatorは、受信したPDU_R1のMFは1であるため、PDU_R1(MF=1)の後続データフレームがResponderから送信されるまで待機する。
【0036】
Responderは、InitiatorからPDU_R1(MF=1)に対するACKを受信すると、PDU_R1(MF=1)の後続データフレームであるPDU_R2(MF=1)をInitiatorに送信する。PDU_R2(MF=1)を受信したInitiatorは、PDU_R1(MF=1)を受信した際と同様に、PDU_R2(MF=1)を受信したことを通知するACKをResponderに送信し、PDU_R2(MF=1)の後続データフレームがResponderから送信されるまで待機する。ResponderとInitiatorとは、PDU_R3(MF=1)とPDU_R4(MF=1)についてもPDU_R2(MF=1)と同様に送受信する。
【0037】
Responderは、InitiatorからPDU_R4(MF=1)に対するACKを受信すると、PDU_R4(MF=1)の後続データフレームであるPDU_R5(MF=0)をInitiatorに送信する。PDU_R5(MF=0)を受信したInitiatorは、PDU_R5(MF=0)を受信したことを通知するACKをResponderに送信する。また、受信したPDU_R5のMFは0である、すなわちPDU5(MF=0)の後続データフレームは無いため、Initiatorは受信処理を終了する。Responderは、InitiatorからPDU_R5(MF=0)に対するACKを受信すると、送信処理を終了する。このように、PDUを受信するInitiatorは、MF=0のPDUを受信すると受信処理を終了する。
【0038】
次に、Initiatorが、Responderに、上位層からのデータをTransport Layerで分割送信中(PDU_I1〜PDU_I5を送信中)に、Responderが、Initiatorに、上位層からのデータを送信(PDU_R1を送信)する際の送信順について説明する。図10は、本実施形態において、Initiatorが上位層からのデータをResponderに分割送信している間に、Responderが上位層からのデータをInitiatorに送信する際のデータの送信順を示したシーケンス図である。図示する例は、InitiatorがResponderにPDU_I1〜PDU_I3を送信した後、ResponderがInitiatorにPDU_R1を送信し、その後、InitiatorがResponderにPDU_I4〜PDU_I5を送信する例を示している。
【0039】
図示するように、本実施形態におけるトランスポート層の通信では、Initiatorが、上位層からのデータを分割してデータフレームに変換したPDU_I1〜PDU_I5をResponderに送信している間に、この送信とは逆向きの送信として、Responderが、上位層からのデータをデータフレームに変換したPDU_R1をInitiatorに送信することができる。なお、上位層からのデータの送信方法は、図8および図9に示した方法と同様である。
【0040】
次に、Responderが、Initiatorに、上位層からのデータをTransport Layerで分割送信中(PDU_R1〜PDU_R5を送信中)に、Initiatorが、Responderに、上位層からのデータを送信(PDU_I1を送信)する際の送信順について説明する。図11は、本実施形態において、Responderが上位層からのデータをInitiatorに分割送信している間に、Initiatorが上位層からのデータをResponderに送信する際のデータの送信順を示したシーケンス図である。図示する例は、ResponderがInitiatorにPDU_R1〜PDU_R3を送信した後、InitiatorがResponderにPDU_L1を送信し、その後、ResponderがInitiatorにPDU_R4〜PDU_R5を送信する例を示している。
【0041】
図示するように、本実施形態におけるトランスポート層の通信では、Responderが、上位層からのデータを分割してデータフレームに変換したPDU_R1〜PDU_R5をInitiatorに送信している間に、この送信とは逆向きの送信として、Initiatorが、上位層からのデータをデータフレームに変換したPDU_I1をResponderに送信することができる。なお、PTP_Dataの送信方法は、図8および図9に示した方法と同様である。
【0042】
次に、Initiatorが、Responderに、上位層からの第1のデータをTransport Layerで分割送信中(PDU_I1_1〜PDU_I1_5を送信中)に、この送信と同じ向きの送信として、上位層からの第2のデータを送信(PDU_I2_1を送信)する際の送信順について説明する。図12は、本実施形態において、Initiatorが、Responderに、上位層からの第1のデータを分割送信している間に、この送信と同じ向きの送信として、上位層からの第2のデータを送信する際のデータの送信順を示したシーケンス図である。図示する例は、Initiatorが、Responderに、PDU_I1_1〜PDU_I1_3を送信した後、PDU_I2_1を送信し、その後、PDU_I1_4〜PDU_I1_5を送信する例を示している。
【0043】
図示するように、本実施形態におけるトランスポート層の通信では、Initiatorが、Responderに、上位層からの第1のデータを分割してデータフレームに変換したPDU_I1_1〜PDU_I1_5を送信している間に、この送信と同じ向きの送信として、上位層からの第2のデータをデータフレームに変換したPDU_I2_1を送信することができない。これは、本実施形態におけるトランスポート層の通信では、MFフラグが0(MF=0)であることを用いて上位層からのデータを分割して変換したデータフレームの区切りを判別しているためである。
【0044】
図示する例では、Initiatorが送信するPDU_I2_1のMFフラグは0である。そのため、Responderは、PDU_I2_1を受信した時点で、Initiatorから送信された上位層からの第1のデータは、PDU_I1_1と、PDU_I1_2と、PDU_I1_3と、PDU_I2_1とを合わせたデータであると誤った判断をしてしまう。よって、Responderは、Initiatorが送信する上位層からの第1のデータ(PDU_I1_1〜PDU_I1_5を合わせたデータ)を正確に受信することができない。従って、本実施形態におけるトランスポート層の通信では、Initiatorが、Responderに、上位層からの第1のデータを送信している間に、この送信と同じ向きの送信である、上位層からの第2のデータの送信を行うことができない。すなわち、本実施形態におけるトランスポート層の通信では、トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの送信対象データの送信が完了しない限り他の送信対象データの送信ができない。
【0045】
次に、Responderが、Initiatorに、上位層からの第1のデータをTransport Layerで分割送信中(PDU_R1_1〜PDU_R1_5を送信中)に、この送信と同じ向きの送信として、上位層からの第2のデータを送信(PDU_R2_1を送信)する際の送信順について説明する。図13は、本実施形態において、Responderが、Initiatorに、上位層からの第1のデータを分割送信している間に、この送信と同じ向きの送信として、上位層からの第2のデータを送信する際のデータの送信順を示したシーケンス図である。図示する例は、Responderが、Initiatorに、PDU_R1_1〜PDU_R1_3を送信した後、PDU_R2_1を送信し、その後、PDU_R1_4〜PDU_R1_5を送信する例を示している。
【0046】
図示するように、本実施形態におけるトランスポート層の通信では、Responderが、Initiatorに、上位層からの第1のデータを分割してデータフレームに変換したPDU_R1_1〜PDU_R1_5を送信している間に、この送信と同じ向きの送信として、上位層からの第2のデータをデータフレームに変換したPDU_R2_1を送信することができない。これは、本実施形態におけるトランスポート層の通信では、MFフラグが0(MF=0)であることを用いて上位層からのデータを分割して変換したデータフレームの区切りを判別しているためである。
【0047】
図示する例では、Responderが送信するPDU_R2_1のMFフラグは0である。そのため、Initiatorは、PDU_R2_1を受信した時点で、Responderから送信された上位層からの第1のデータは、PDU_R1_1と、PDU_R1_2と、PDU_R1_3と、PDU_R2_1とを合わせたデータであると誤った判断をしてしまう。よって、Initiatorは、Responderが送信する上位層からの第1のデータ(PDU_R1_1〜PDU_R1_5を合わせたデータ)を正確に受信することができない。従って、本実施形態におけるトランスポート層の通信では、Responderが、Initiatorに、上位層からの第1のデータを送信している間に、この送信と同じ向きの送信である、上位層からの第2のデータの送信を行うことができない。すなわち、本実施形態におけるトランスポート層の通信では、トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの送信対象データの送信が完了しない限り他の送信対象データの送信ができない。
【0048】
そこで、本実施形態では、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第1のデータを直接PDUに分割して送信するのではなく、上位層からの第1のデータを複数の分割データに分割し、分割データ毎にデータフレーム(PDU)に分割して送信する。これにより、各分割データの送信が終了した後に他のデータを送信することができるタイミングが設けられるため、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第1のデータを送信している間に、この送信と同じ向きに、上位層からの第2のデータをより早急に送信することができるタイミングを設けることができる。
【0049】
また、分割データを受信するInitiatorまたはResponderは、上位層からの第1のデータを分割した複数の分割データが、全て受信したか否かを判定することができない。そのため、上位層からの第1のデータを送信するInitiatorまたはResponderは、分割データの送信の開始を示すデータ(開始データ)と、分割データの送信の終了を示すデータ(終了データ)とを生成する。そして、上位層からの第1のデータを送信するInitiatorまたはResponderは、複数に分割した分割データのうち、1番目の分割データを送信する前に開始データを送信し、最後の分割データを送信した後に終了データを送信する。これにより、分割データを受信するInitiatorまたはResponderは、開始データを受信した後から終了データを受信するまでに受信した分割データを合成することで、上位層からの第1のデータを生成することができる。
【0050】
以下、通信制御部14,23が、上位層からの第1のデータを送信中に、上位層からの第2のデータをより早急に送信することができるタイミングを設ける方法について説明する。図14は、本実施形態において、上位層からの第1のデータを送信中に、上位層からの第2のデータをより早急に送信することができるタイミングを設ける方法を示した概略図である。図示する例では、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第1のデータを3つの分割データ1401〜1403に分割し、分割データ毎にPDUに分割して送信している。また、上位層からの第1のデータを送信するInitiatorまたはResponderは、開始データと終了データとを生成し、分割データ1401〜1403の送信を開始する前に開始データを送信し、分割データ1401〜1403の送信を終了する前に終了データを送信している。
【0051】
具体的には、データ分割部35は、開始データと終了データとを生成している。また、データ分割部35は、上位層からの第1のデータ(送信対象データ)を3つの分割データ1401〜1403に分割している。また、生成部32の変換部321は、開始データと終了データとをそれぞれPDUに変換している。また、生成部32の分割部322は、分割データ1401を3つに分割し、変換部321は、分割部322が3つに分割したデータをPDU1〜3に変換している。また、生成部32の分割部322は、分割データ1402を3つに分割し、変換部321は、分割部322が3つに分割したデータをPDU4〜6に変換している。また、生成部32の分割部322は、分割データ1403を3つに分割し、変換部321は、分割部322が3つに分割したデータをPDU7〜9に変換している。そして、付与部34は、生成部32の分割部322および変換部321が分割および変換したPDU1〜9のうち、分割データ1401の最後尾に対応するPDU3と、分割データ1402の最後尾に対応するPDU6と、分割データ1403の最後尾に対応するPDU9とに、各分割データ1401〜1403の送信終了を示すMFフラグ0を付与している。また、付与部34は、PDU1,2,4,5,7,8には、MFフラグ1を付与している。そして、上位層からの第1のデータを送信するInitiatorまたはResponderは、Transport Layerにて各PDUを送信する。
【0052】
上位層からの第1のデータを受信するInitiatorおよびResponderは、MF=0のPDUと、MF=0のPDUを受信するまでに受信したPDUとを合わせたデータを1つのデータの塊であると判断する。これにより、上位層からの第1のデータを受信するInitiatorまたはResponderは、PDU1〜3を合わせたデータが分割データ1401であると判断することができる。また、上位層からの第1のデータを受信するInitiatorまたはResponderは、PDU4〜6を合わせたデータが分割データ1402であると判断することができる。また、上位層からの第1のデータを受信するInitiatorまたはResponderは、PDU7〜9を合わせたデータが分割データ1403であると判断することができる。
【0053】
さらに、上位層からの第1のデータを受信するInitiatorまたはResponderは、開始データを受信してから終了データを受信するまでに受信した分割データ1401〜1403を合成し、上位層からの第1のデータを生成することができる。
【0054】
上述したように、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第1のデータを分割データ1401〜1403に分割し、各分割データ1401〜1403毎にPDUに変換して送信する。そのため、上位層からの第1のデータを送信するInitiatorまたはResponderは、各分割データ1401〜1403を送信した後、上位層からの第2のデータを送信することができるタイミングを設けることができる。これにより、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第1のデータを送信している間に、上位層からの第2のデータをより早急に送信することができるタイミングを設けることができる。
【0055】
図示する例では、分割データ1401のPDU3を送信した後のタイミング1411と、分割データ1402のPDU6を送信した後のタイミング1412とが、上位層からの第1のデータを送信している間に、上位層からの第2のデータをより早急に送信することができるタイミングである。また、上位層からの第1のデータを送信するInitiatorまたはResponderは、上位層からの第2のデータをより早急に送信することができるタイミングに、上位層からの第2のデータを受信側のInitiatorまたはResponderに送信することができる。
【0056】
次に、PTP Packetについて説明する。PTP Conversion Layerは、PTP Layerから送信要求されるOperation Requestと、Dataと、Responseと、Eventとを各々に対応するパケットに変換し、このパケットをPTP PacketとしてTransport Layerにより送受信する。
【0057】
図15は、Operation Requestを変換したパケットであるOperation Request Packetのデータ構造を示した概略図である。図示する例では、Operation Request Packetは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのField(フィールド)を有している。
【0058】
Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Operation Request)を格納する。Codeは、PTPに定義されているオペレーションコードを格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadは、オペレーションパラメータを格納する。図示する例では、Payloadは、Parameter 1〜5の5つのオペレーションパラメータを格納している。
【0059】
図16〜図18は、Data Packetのデータ構造を示した概略図である。図示する例では、Data Packetは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのFieldを有している。
【0060】
図16は、Data Packetのうち、データ転送の開始を知らせるパケット(開始データ)であるData Packet(Start)のデータ構造を示した概略図である。Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Start)を格納する。Codeは、Operation Request時にセットされていたCode(オペレーションコード)を格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadは、上位層から送信要求があったデータのサイズを示す情報を格納する。
【0061】
図17は、Data Packetのうち、上位層から送信要求があったデータを分割した分割データを送信するためのパケットであるData Packet(Data)のデータ構造を示した概略図である。Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Data)を格納する。Codeは、Operation Request時にセットされていたCode(オペレーションコード)を格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadは、オペレーション毎に定義されたデータ(分割データ)を格納する。
【0062】
図18は、Data Packetのうち、データ転送の終了を知らせるパケット(終了データ)であるData Packet(End)のデータ構造を示した概略図である。Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(End)を格納する。Codeは、Operation Request時にセットされていたCode(オペレーションコード)を格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadには格納する情報がないため省略してもよい。
【0063】
図19は、Responseを変換したパケットであるResponse Packetのデータ構造を示した概略図である。図示する例では、Response Packetは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのFieldを有している。
【0064】
Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Response)を格納する。Codeは、PTPに定義されているレスポンスコードを格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadは、レスポンスパラメータを格納する。図示する例では、Payloadは、Parameter 1〜5の5つのレスポンスパラメータを格納している。
【0065】
図20は、Eventを変換したパケットであるEvent Packetのデータ構造を示した概略図である。図示する例では、Event Packetは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのFieldを有している。
【0066】
Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Event)を格納する。Codeは、PTPに定義されているイベントコードを格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。Payloadは、イベントパラメータを格納する。図示する例では、Payloadは、Parameter 1〜3の3つのイベントパラメータを格納している。
【0067】
次に、OperationのTransaction Stateについて説明する。図21は、本実施形態におけるOperationのTransaction Stateを示した遷移図である。Operationは、Idle State、Operation Request Phase、Data Phase、Response PhaseのTransaction Stateの各状態を遷移することにより実行される。
【0068】
Idle StateはOperationが実行されておらず、Responderは、Operation Requestを待っている状態である。Operation Request Phaseは、Operation Requestを送信するフェーズである。Data Phaseは、Operation毎に定義されているデータを送受信するフェーズである。Operationによっては、データ転送を伴わないものもあるため、Data Phaseが無い場合もある。Response Phaseは、Operationの結果を応答するフェーズである。
【0069】
次に、Operation Requestと、Dataと、Responseと、Eventとの送信タイミングについて説明する。図22は、本実施形態において、Operation Requestと、Dataと、Responseと、Eventとの送信タイミングを示したシーケンス図である。
【0070】
Operation Requestは、InitiatorがResponderにオペレーション要求をする際に送信される。Dataは要求されたオペレーションに応じたデータが送信され、オペレーションによりInitiatorからResponderへ送信される場合とResponderからInitiatorに送信される場合、あるいはData送信が無いものもある。EventはResponderからInitiator、またはInitiatorからResponderにイベントを通知する際に送信され、Transaction Stateに依存せず非同期に送信可能である。
【0071】
次に、Cancel RequestとReset Requestとについて説明する。Cancel Requestは、InitiatorによるOperationキャンセル時に使用され、Cancel Requestを受け取ったResponderは、実行中のOperationをキャンセルする。Reset Requestは、InitiatorによるDevice Reset時に使用され、Reset Requestを受け取ったResponderは、実行中のOperationがあれば、これをキャンセルし、Transaction StateをIdle Stateに遷移させる。
【0072】
Cancel RequestとReset RequestとはPTP仕様に定義されていないトランスポート特有のControl Requestである。Control Requestは、InitiatorからResponderに発行される。PTP Conversion Layerは、PTP Layerから送信要求されるControl Request(Cancel Request、Reset Request)をPTP PacketとしてTransport Layerにより送受信する。
【0073】
図23は、Cancel Requestのデータ構造を示した概略図である。図示する例では、Cancel Requestは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのFieldを有している。
【0074】
Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Control Request)を格納する。Codeは、Cancel Requestを格納する。TransactionIDは、キャンセルしたいOperationのTransactionIDを格納する。Payloadには格納する情報がないため省略してもよい。
【0075】
図24は、Reset Requestのデータ構造を示した概略図である。図示する例では、Reset Requestは、Packet Lengthと、Packet Typeと、Codeと、TransactionIDと、PayloadとのFieldを有している。
【0076】
Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Control Request)を格納する。Codeは、Reset Requestを格納する。TransactionIDは、0x00000000を格納する。Payloadには格納する情報がないため省略してもよい。
【0077】
次に、Cancel RequestとReset Requestとの送信タイミングについて説明する。図25は、本実施形態において、Cancel RequestとReset Requestとの送信タイミングを示したシーケンス図である。Cancel RequestおよびReset Requestは、InitiatorからResponderに送信され、Transaction Stateに依存せず非同期に送信可能である。
【0078】
次に、データ送信を伴わないオペレーションの手順について説明する。図26は、本実施形態において、データ送信を伴わないオペレーションの手順を示したシーケンス図である。
【0079】
(ステップS2601)InitiatorのPTP Layerは、InitiatorのPTP Conversion Layerに対して、Operation Requestの送信要求を行う。
(ステップS2602)InitiatorのPTP Conversion Layerは、Operation RequestをOperation Request Packetに変換する。
(ステップS2603)InitiatorのTransport Layerは、Operation Request PacketをPDU(MF=0)に変換し、Responderに送信する。
【0080】
(ステップS2604)ResponderのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Operation Request Packet)の受信通知を行う。
(ステップS2605)ResponderのPTP Conversion Layerは、PTP PacketのPacket TypeがOperation Requestであれば、ResponderのPTP Layerに対して、Operation Requestの受信通知を行う。
(ステップS2606)ResponderのPTP Layerは、Operationを実行する。
【0081】
(ステップS2607)ResponderのPTP Layerは、Operationを実行したことを通知するために、ResponderのPTP Conversion Layerに対してResponseの送信要求を行う。
(ステップS2608)ResponderのPTP Conversion Layerは、ResponseをResponse Packetに変換する。
(ステップS2609)ResponderのTransport Layerは、Response PacketをPDU(MF=0)に変換し、Initiatorに送信する。
【0082】
(ステップS2610)InitiatorのTransport Layerは、送信されたPDU(MF=0)を受信し、InitiatorのPTP Conversion Layerに対して、PTP Packet(Response Packet)の受信通知を行う。
(ステップS2611)InitiatorのPTP Conversion Layerは、PTP PacketのPacket TypeがResponseであれば、InitiatorのPTP Layerに対して、Responseの受信通知を行う。
【0083】
次に、InitiatorからResponderへのデータ送信を伴うオペレーションの手順について説明する。図27は、本実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
ステップS2701〜ステップS2706の処理は、図26のステップS2601〜ステップS2606の処理と同様の処理である。
【0084】
(ステップS2707)InitiatorのPTP Layerは、Dataの送信要求を行う。
(ステップS2708)InitiatorのPTP Conversion Layerは、送信対象データの送信開始を示すData Packet(Start)を生成する。
(ステップS2709)InitiatorのTransport Layerは、Data Packet(Start)をPDU(MF=0)に変換し、Responderに送信する。
(ステップS2710)ResponderのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Data Packet(Start))の受信通知を行う。
【0085】
(ステップS2711)InitiatorのPTP Conversion Layerは、送信対象データを複数の分割データに分割する。また、InitiatorのPTP Conversion Layerは、複数の分割データのうち、1番目の分割データをData Packet(Data)に変換する。
(ステップS2712)InitiatorのTransport Layerは、Data Packet(Data)を複数のPDUに変換し、Responderに送信する。なお、Data Packet(Data)の最後尾に対応するPDUのMFフラグを0(MF=0)とし、その他のPDUのMFフラグを1(MF=1)とする。
(ステップS2713)ResponderのTransport Layerは、送信されたPDUを受信する。また、ResponderのTransport Layerは、PDU(MF=0)を受信したため、これまで受信したPDU(MF=1)とPDU(MF=0)とを単一のPTP Packet(Data Packet(Data))に変換し、ResponderのPTP Conversion Layerに対して、受信通知を行う。
【0086】
(ステップS2714)InitiatorのPTP Conversion Layerは、送信対象データを分割した複数の分割データのうち、2番目の分割データをData Packet(Data)に変換する。
ステップS2715〜ステップS2716の処理は、ステップS2712〜ステップS2713の処理と同様である。なお、図示する例では、送信対象データを2つの分割データに分割した例を示しているが、3つ以上の分割データに分割した場合には、ステップS2714〜ステップS2716の処理と同様の処理を繰り返し実行し、全ての分割データの送受信を行う。
【0087】
(ステップS2717)InitiatorのPTP Conversion Layerは、送信対象データを分割した全ての分割データの送信終了を示すData Packet(End)を生成する。
(ステップS2718)InitiatorのTransport Layerは、Data Packet(End)をPDU(MF=0)に変換し、Responderに送信する。
(ステップS2719)ResponderのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Data Packet(End))の受信通知を行う。
(ステップS2720)ResponderのPTP Conversion Layerは、PTP PacketのPacket TypeがData Packet(End)であれば、ResponderのPTP Layerに対して、分割受信したData Packet(Data)を単一のDataに変換し、Dataの受信通知を行う。
ステップS2721〜ステップS2725の処理は、図26のステップS2607〜ステップS2611の処理と同様の処理である。
【0088】
上述したとおり、Initiatorは、Responderに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信した後、すなわち、各分割データの送信を完了した後には、他のデータをResponderに送信することができるタイミングを設けることができる。
【0089】
図27に示す例では、Initiatorは、1つ目の分割データの送信処理(ステップS2711〜ステップS2713)を行った後に、他のデータを送信することができるタイミングを設けている。このように、本実施形態によれば、Initiatorは、Responderに送信対象データを送信している間に、他のデータをResponderにより早急に送信することができるタイミングを設けることができる。
【0090】
次に、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順について説明する。図28は、本実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順を示したシーケンス図である。
【0091】
ステップS2801〜ステップS2813の処理は、図27のステップS2701〜ステップS2713の処理と同様の処理である。なお、図示する例では、InitiatorからResponderに1つ目の分割データを送信している間にInitiatorでイベントが発生している。そのため、Initiatorは、イベントを送信することができるタイミングが設けられた際(ステップS2813の処理終了後)に、Responderにイベントを送信するための処理を開始する。
【0092】
(ステップS2814)InitiatorのPTP Layerは、発生したイベントをResponderに送信するために、InitiatorのPTP Conversion Layerに対して、Eventの送信要求を行う。
(ステップS2815)InitiatorのPTP Conversion Layerは、EventをEvent Packetに変換する。
(ステップS2816)InitiatorのTransport Layerは、Event PacketをPDU(MF=0)に変換し、Responderに送信する。
【0093】
(ステップS2817)ResponderのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Event Packet)の受信通知を行う。
(ステップS2818)ResponderのPTP Conversion Layerは、PTP PacketのPacket TypeがEventであれば、ResponderのPTP Layerに対して、Eventの受信通知を行う。
ステップS2819〜ステップS2830の処理は、図27のステップS2714〜ステップS2725の処理と同様の処理である。
【0094】
上述したとおり、Initiatorは、Responderに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信した後、すなわち、各分割データの送信を完了した後には、他のデータをResponderに送信することができるタイミングを設けることができ、このタイミングに他のデータをResponderに送信することができる。
【0095】
図28に示す例では、Initiatorは、1つ目の分割データの送信処理(ステップS2811〜ステップS2813)を行った後に、他のデータを送信することができるタイミングを設けており、このタイミングに他のデータとしてEventをResponderに送信している(ステップS2814〜ステップS2818)。このように、本実施形態によれば、Initiatorは、Responderに送信対象データを送信している間に、他のデータをより早急にResponderに送信することができるタイミングを設けることができ、このタイミングに他のデータをResponderに送信することができる。
【0096】
次に、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順について説明する。図29は、本実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
ステップS2901〜ステップS2906の処理は、図26のステップS2601〜ステップS2606の処理と同様の処理である。
【0097】
(ステップS2907)ResponderのPTP Layerは、Dataの送信要求を行う。
(ステップS2908)ResponderのPTP Conversion Layerは、送信対象データの送信開始を示すData Packet(Start)を生成する。
(ステップS2909)ResponderのTransport Layerは、Data Packet(Start)をPDU(MF=0)に変換し、Initiatorに送信する。
(ステップS2910)InitiatorのTransport Layerは、送信されたPDU(MF=0)を受信し、InitiatorのPTP Conversion Layerに対して、PTP Packet(Data Packet(Start))の受信通知を行う。
【0098】
(ステップS2911)ResponderのPTP Conversion Layerは、送信対象データを複数の分割データに分割する。また、ResponderのPTP Conversion Layerは、複数の分割データのうち、1番目の分割データをData Packet(Data)に変換する。
(ステップS2912)ResponderのTransport Layerは、Data Packet(Data)を複数のPDUに変換し、Initiatorに送信する。なお、最後尾に対応するPDUのMFフラグを0(MF=0)とし、その他のPDUのMFフラグを1(MF=1)とする。
(ステップS2913)InitiatorのTransport Layerは、送信されたPDUを受信する。また、InitiatorのTransport Layerは、PDU(MF=0)を受信したため、これまで受信したPDU(MF=1)とPDU(MF=0)とを単一のPTP Packet(Data Packet(Data)に変換し、InitiatorのPTP Conversion Layerに対して、受信通知を行う。
【0099】
(ステップS2914)ResponderのPTP Conversion Layerは、送信対象データを分割した複数の分割データのうち、2番目の分割データをData Packet(Data)に変換する。
ステップS2915〜ステップS2916の処理は、ステップS2912〜ステップS2913の処理と同様である。なお、図示する例では、送信対象データを2つの分割データに分割した例を示しているが、3つ以上の分割データに分割した場合には、ステップS2914〜ステップS2916の処理と同様の処理を繰り返し実行し、全ての分割データの送受信を行う。
【0100】
(ステップS2917)ResponderのPTP Conversion Layerは、送信対象データを分割した全ての分割データの送信終了を示すData Packet(End)を生成する。
(ステップS2918)ResponderのTransport Layerは、Data Packet(End)をPDU(MF=0)に変換し、Initiatorに送信する。
(ステップS2919)InitiatorのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Data Packet(End))の受信通知を行う。
(ステップS2920)InitiatorのPTP Conversion Layerは、PTP PacketのPacket TypeがData Packet(End)であれば、InitiatorのPTP Layerに対して、分割受信したData Packet(Data)を単一のDataに変換し、Dataの受信通知を行う。
ステップS2921〜ステップS2925の処理は、図26のステップS2607〜ステップS2611の処理と同様の処理である。
【0101】
上述したとおり、Responderは、Initiatorに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信した後、すなわち、各分割データの送信を完了した後には、他のデータをInitiatorに送信することができるタイミングを設けることができる。
【0102】
図29に示す例では、Responderは、1つ目の分割データの送信処理(ステップS2911〜ステップS2913)を行った後に、他のデータを送信することができるタイミングを設けている。このように、本実施形態によれば、Responderは、Initiatorに送信対象データを送信している間に、他のデータをより早急にInitiatorに送信することができるタイミングを設けることができる。
【0103】
次に、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順について説明する。図30は、本実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順を示したシーケンス図である。
【0104】
ステップS3001〜ステップS3013の処理は、図29のステップS2901〜ステップS2913の処理と同様の処理である。なお、図示する例では、ResponderからInitiatorに1つ目の分割データを送信している間にResponderでイベントが発生している。そのため、Responderは、イベントを送信することができるタイミングが設けられた際(ステップS3013の処理終了後)に、Initiatorにイベントを送信するための処理を開始する。
【0105】
(ステップS3014)ResponderのPTP Layerは、発生したイベントをInitiatorに送信するために、ResponderのPTP Conversion Layerに対して、Eventの送信要求を行う。
(ステップS3015)ResponderのPTP Conversion Layerは、EventをEvent Packetに変換する。
(ステップS3016)ResponderのTransport Layerは、Event PacketをPDU(MF=0)に変換し、Initiatorに送信する。
【0106】
(ステップS3017)InitiatorのTransport Layerは、送信されたPDU(MF=0)を受信し、InitiatorのPTP Conversion Layerに対して、PTP Packet(Event Packet)の受信通知を行う。
(ステップS3018)InitiatorのPTP Conversion Layerは、PTP PacketのPacket TypeがEventであれば、InitiatorのPTP Layerに対して、Eventの受信通知を行う。
ステップS3019〜ステップS3030の処理は、図29のステップS2914〜ステップS2925の処理と同様の処理である。
【0107】
上述したとおり、Responderは、Initiatorに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信した後、すなわち、各分割データを送信した後には、他のデータをInitiatorに送信することができるタイミングを設けることができ、このタイミングに他のデータをInitiatorに送信することができる。
【0108】
図30に示す例では、Responderは、1つ目の分割データの送信処理(ステップS3011〜ステップS3013)を行った後に、他のデータを送信することができるタイミングを設けており、このタイミングに他のデータとしてEventをInitiatorに送信している(ステップS3014〜ステップS3018)。このように、本実施形態によれば、Responderは、Initiatorに送信対象データを送信している間に、他のデータをより早急にInitiatorに送信することができるタイミングを設けることができ、このタイミングに他のデータをInitiatorに送信することができる。
【0109】
上述したとおり、本実施形態では、通信制御部14,23の第1インタフェース部31は、上位層の通信プロトコルに従った処理を行う処理部30から送信対象データ(上位層からの第1のデータ)を入力する。データ分割部35は、送信対象データの送信を開始することを示す開始データと、送信対象データの送信を終了することを示す終了データとを生成する。また、データ分割部35は、送信対象データを複数の分割データに分割して分割データを生成する。また、生成部32の変換部321は、開始データと終了データとをそれぞれPDUに変換することで、開始データと終了データとのそれぞれに対応するトランスポート層レベルの通信フレームを生成する。また、生成部32の分割部322は、分割データを1つまたは複数に分割し、変換部321は、分割部322が1つまたは複数に分割したデータをPDUに変換することで、分割データに対応するトランスポート層レベルの通信フレームを生成する。また、付与部34は、生成部32の分割部322および変換部321が生成した通信フレームのうち、各分割データの最後尾に対応する通信フレームに、各分割データの送信終了を示すMFフラグ0を付与する。また、第2インタフェース部33は、開始データに対応する通信フレームを送信した後に分割データに対応する通信フレームを送信し、分割データに対応する全ての通信フレームを送信した後に、終了データに対応する通信フレームを送信する。
【0110】
これにより、送信対象データを送信する通信制御部14,23は、送信対象データを分割した分割データの送信終了を示すフラグが付与された通信フレームを送信した後に、送信対象データとは異なる他のデータ(例えば、イベントなど)を送信することができるタイミングを設けることができる。従って、送信対象データを送信する通信制御部14,23は、送信対象データを送信している間に、送信対象データとは異なる他のデータをより早急に送信することができるタイミングを設けることができる。また、送信対象データを送信する通信制御部14,23は、送信対象データとは異なる他のデータをより早急に送信することができるタイミングに、送信対象データとは異なる他のデータを送信することができる。
【0111】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態と第1の実施形態とで異なる点は、本実施形態では、Data Packet(Data)を冗長部とデータ部とに分割して送信する点である。その他については第1の実施形態と同様である。例えば、本実施形態においても第1の実施形態と同様に、電子カメラとPC(パーソナルコンピュータ)との間でデータの送受信を行っている際に、他のデータを送信する例について説明する。また、本実施形態における電子カメラ1の構成と、PC2の構成とは第1の実施形態における各装置の構成と同様である。
【0112】
次に、本実施形態におけるData Packet(Data)を分割して生成したData Packet(Data)の冗長部のデータ構造と、Data Packet(Data)のデータ部のデータ構造とについて説明する。図31は、Data Packet(Data)の冗長部のデータ構造を示した概略図である。図示する例では、Data Packet(Data)の冗長部は、Packet Lengthと、Packet Typeと、Codeと、TransactionIDとのFieldを有している。Packet Lengthは、Packetのサイズを格納する。Packet Typeは、Packetタイプ(Data)を格納する。Codeは、Operation Request時にセットされていたCode(オペレーションコード)を格納する。TransactionIDは、トランザクションを一意に特定する識別子であるTransaction IDを格納する。
【0113】
図32は、Data Packet(Data)のデータ部のデータ構造を示した概略図である。図示する例では、Data Packet(Data)のデータ部は、PayloadのFieldを有している。Payloadは、オペレーション毎に定義されたデータを格納する。
【0114】
次に、InitiatorからResponderへのデータ送信を伴うオペレーションの手順について説明する。図33は、本実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
ステップS3301〜ステップS3310の処理は、第1の実施形態の図27のステップS2701〜ステップS2710の処理と同様の処理である。
【0115】
(ステップS3311)InitiatorのPTP Conversion Layerは、送信対象データを複数の分割データに分割する。また、InitiatorのPTP Conversion Layerは、複数の分割データのうち、1番目の分割データをData Packet(Data)に変換する。そして、InitiatorのPTP Conversion Layerは、Data Packet(Data)の冗長部をTransport Layerに入力する。
(ステップS3312)InitiatorのTransport Layerは、Data Packet(Data)の冗長部をPDU(MF=0)に変換し、Responderに送信する。
(ステップS3313)ResponderのTransport Layerは、送信されたPDU(MF=0)を受信し、ResponderのPTP Conversion Layerに対して、PTP Packet(Data Packet(Data)の冗長部)の受信通知を行う。
【0116】
(ステップS3314)InitiatorのPTP Conversion Layerは、Data Packet(Data)のデータ部をTransport Layerに入力する。
(ステップS3315)InitiatorのTransport Layerは、Data Packet(Data)のデータ部を複数のPDUに変換し、Responderに送信する。なお、最後尾に対応するPDUのMFフラグを0(MF=0)とし、その他のPDUのMFフラグを1(MF=1)とする。
(ステップS3316)ResponderのTransport Layerは、送信されたPDUを受信する。また、ResponderのTransport Layerは、PDU(MF=0)を受信したため、これまで受信したPDU(MF=1)とPDU(MF=0)とを単一のPTP Packet(Data Packet(Data)のデータ部)に変換し、ResponderのPTP Conversion Layerに対して、受信通知を行う。
【0117】
(ステップS3317)InitiatorのPTP Conversion Layerは、ステップS3311の処理で送信対象データを分割した複数の分割データのうち、2番目の分割データをData Packet(Data)に変換する。そして、InitiatorのPTP Conversion Layerは、Data Packet(Data)の冗長部をTransport Layerに入力する。
ステップS3318〜ステップS3322の処理は、ステップS3312〜ステップS3316の処理と同様である。なお、図示する例では、送信対象データを2つの分割データに分割した例を示しているが、3つ以上の分割データに分割した場合には、ステップS3317〜ステップS3322の処理と同様の処理を繰り返し実行し、全ての分割データの送受信を行う。
【0118】
ステップS3323〜ステップS3331の処理は、第1の実施形態の図27のステップS2717〜ステップS2725の処理と同様の処理である。
【0119】
上述したとおり、Initiatorは、Responderに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信した後、すなわち、各分割データを送信した後には、他のデータをResponderに送信することができるタイミングを設けることができる。また、Initiatorは、ResponderにData Packet(Data)を送信する際に、Data Packet(Data)を冗長部とデータ部とに分割して送信している。
【0120】
図33に示す例では、Initiatorは、1つ目の分割データの送信処理(ステップS3311〜ステップS3316)を行った後に、他のデータを送信することができるタイミングを設けている。このように、本実施形態によれば、Initiatorは、Responderに送信対象データを送信している間に、他のデータをより早急にResponderに送信することができるタイミングを設けることができる。
【0121】
次に、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順について説明する。図34は、本実施形態において、InitiatorからResponderへのデータ送信を伴うオペレーション時に、InitiatorからResponderにイベントを送信する際の手順を示したシーケンス図である。
【0122】
ステップS3401〜ステップS3416の処理は、図33のステップS3301〜ステップS3316の処理と同様の処理である。なお、図示する例では、InitiatorからResponderに1つ目の分割データを送信している間にInitiatorでイベントが発生している。そのため、Initiatorは、イベントを送信することができるタイミングが設けられた際(ステップS3416の処理終了後)に、Responderにイベントを送信するための処理を開始する。
【0123】
ステップS3417〜ステップS3421の処理は、第1の実施形態の図28のステップS2814〜ステップS2818の処理と同様である。
ステップS3422〜ステップS3436の処理は、図33のステップS3323〜ステップS3331の処理と同様の処理である。
【0124】
上述したとおり、Initiatorは、Responderに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Initiatorは、各分割データを1つまたは複数のPDUに分割してResponderに送信した後、すなわち、各分割データの送信を完了した後には、他のデータをResponderに送信することができるタイミングを設けることができ、このタイミングに他のデータをResponderに送信することができる。また、Initiatorは、ResponderにData Packet(Data)を送信する際に、Data Packet(Data)を冗長部とデータ部とに分割して送信している。
【0125】
図34に示す例では、Initiatorは、1つ目の分割データの送信処理(ステップS3411〜ステップS3416)を行った後に、他のデータを送信することができるタイミングを設けており、このタイミングに他のデータとしてEventをResponderに送信している(ステップS3417〜ステップS3421)。このように、本実施形態によれば、Initiatorは、Responderに送信対象データを送信している間に、他のデータをより早急にResponderに送信することができるタイミングを設けることができ、このタイミングに他のデータをResponderに送信することができる。
【0126】
次に、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順について説明する。図35は、本実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーションの手順を示したシーケンス図である。
ステップS3501〜ステップS3510の処理は、第1の実施形態の図29のステップS2901〜ステップS2910の処理と同様の処理である。
【0127】
(ステップS3511)ResponderのPTP Conversion Layerは、送信対象データを複数の分割データに分割する。また、ResponderのPTP Conversion Layerは、複数の分割データのうち、1番目の分割データをData Packet(Data)に変換する。そして、ResponderのPTP Conversion Layerは、Data Packet(Data)の冗長部をTransport Layerに入力する。
(ステップS3512)ResponderのTransport Layerは、Data Packet(Data)の冗長部をPDU(MF=0)に変換し、Initiatorに送信する。
(ステップS3513)InitiatorのTransport Layerは、送信されたPDU(MF=0)を受信し、InitiatorのPTP Conversion Layerに対して、PTP Packet(Data Packet(Data)の冗長部)の受信通知を行う。
【0128】
(ステップS3514)ResponderのPTP Conversion Layerは、Data Packet(Data)のデータ部をTransport Layerに入力する。
(ステップS3515)ResponderのTransport Layerは、Data Packet(Data)のデータ部を複数のPDUに変換し、Initiatorに送信する。なお、最後尾に対応するPDUのMFフラグを0(MF=0)とし、その他のPDUのMFフラグを1(MF=1)とする。
(ステップS3516)InitiatorのTransport Layerは、送信されたPDUを受信する。また、InitiatorのTransport Layerは、PDU(MF=0)を受信したため、これまで受信したPDU(MF=1)とPDU(MF=0)とを単一のPTP Packet(Data Packet(Data)のデータ部)に変換し、InitiatorのPTP Conversion Layerに対して、受信通知を行う。
【0129】
(ステップS3517)ResponderのPTP Conversion Layerは、ステップS3311の処理で送信対象データを分割した複数の分割データのうち、2番目の分割データをData Packet(Data)に変換する。そして、ResponderのPTP Conversion Layerは、Data Packet(Data)の冗長部をTransport Layerに入力する。
ステップS3518〜ステップS3522の処理は、ステップS3512〜ステップS3516の処理と同様である。なお、図示する例では、送信対象データを2つの分割データに分割した例を示しているが、3つ以上の分割データに分割した場合には、ステップS3517〜ステップS3522の処理と同様の処理を繰り返し実行し、全ての分割データの送受信を行う。
【0130】
ステップS3523〜ステップS3531の処理は、第1の実施形態の図29のステップS2917〜ステップS2925の処理と同様の処理である。
【0131】
上述したとおり、Responderは、Initiatorに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信した後、すなわち、各分割データを送信した後には、他のデータをInitiatorに送信することができるタイミングを設けることができる。また、Responderは、InitiatorにData Packet(Data)を送信する際に、Data Packet(Data)を冗長部とデータ部とに分割して送信している。
【0132】
図35に示す例では、Responderは、1つ目の分割データの送信処理(ステップS3511〜ステップS3516)を行った後に、他のデータを送信することができるタイミングを設けている。このように、本実施形態によれば、Responderは、Initiatorに送信対象データを送信している間に、他のデータをより早急にInitiatorに送信することができるタイミングを設けることができる。
【0133】
次に、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順について説明する。図36は、本実施形態において、ResponderからInitiatorへのデータ送信を伴うオペレーション時に、ResponderからInitiatorにイベントを送信する際の手順を示したシーケンス図である。
【0134】
ステップS3601〜ステップS3616の処理は、図35のステップS3501〜ステップS3516の処理と同様の処理である。なお、図示する例では、ResponderからInitiatorに1つ目の分割データを送信している間にResponderでイベントが発生している。そのため、Responderは、イベントを送信することができるタイミングが設けられた際(ステップS3616の処理終了後)に、Initiatorにイベントを送信するための処理を開始する。
【0135】
ステップS3617〜ステップS3621の処理は、第1の実施形態の図30のステップS3014〜ステップS3018の処理と同様である。
ステップS3622〜ステップS3636の処理は、図35のステップS3523〜ステップS3531の処理と同様の処理である。
【0136】
上述したとおり、Responderは、Initiatorに送信対象データを送信する際に、送信対象データを複数の分割データに分割する。そして、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信する際に、最後尾のPDUのMFフラグを0(MF=0)とする。そのため、Responderは、各分割データを1つまたは複数のPDUに分割してInitiatorに送信した後、すなわち、各分割データを送信した後には、他のデータをInitiatorに送信することができるタイミングを設けることができ、このタイミングに他のデータをInitiatorに送信することができる。また、Responderは、InitiatorにData Packet(Data)を送信する際に、Data Packet(Data)を冗長部とデータ部とに分割して送信している。
【0137】
図36に示す例では、Responderは、1つ目の分割データの送信処理(ステップS3611〜ステップS3616)を行った後に、他のデータを送信することができるタイミングを設けており、このタイミングに他のデータとしてEventをInitiatorに送信している(ステップS3617〜ステップS3621)。このように、本実施形態によれば、Responderは、Initiatorに送信対象データを送信している間に、他のデータをより早急にInitiatorに送信することができるタイミングを設けることができ、このタイミングに他のデータをInitiatorに送信することができる。
【0138】
以上、この発明の第1の実施形態および第2の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0139】
1・・・電子カメラ、2・・・PC、11・・・撮像部、12・・・記録媒体、13,21・・・CPU、14,23・・・通信制御部、15,24・・・操作部、16,25・・・表示部、17,26・・・RAM、18・・・フラッシュメモリ、22・・・記録媒体、30・・・処理部、31・・・第1インタフェース部、32・・・生成部、33・・・第2インタフェース部、34・・・付与部、35・・・データ分割部、321・・・変換部、322・・・分割部

【特許請求の範囲】
【請求項1】
トランスポート層より上位層の通信プロトコルにおける送信対象データの送信において、1つの前記送信対象データの送信が完了しない限り他の前記送信対象データの送信が出来ない無線通信プロトコルが実装された送信モジュールであって、
前記上位層の通信プロトコルに従った処理が行われた前記送信対象データを入力する第1インタフェース部と、
前記送信対象データの送信を開始することを示す開始データと、前記送信対象データの送信を終了することを示す終了データとを生成するとともに、前記送信対象データを分割して分割データを生成するデータ分割部と、
前記開始データと、前記終了データと、前記分割データとのそれぞれに対応するトランスポート層レベルの通信フレームを一つまたは複数生成する生成部と、
前記送信対象データを送信する際、前記開始データに対応する通信フレームを送信した後に前記分割データに対応する通信フレームを送信し、前記分割データに対応する全ての通信フレームを送信した後に前記終了データに対応する通信フレームを送信する第2インタフェース部と、
前記分割データに対応する通信フレームのうち最後尾に対応する通信フレーム以外の通信フレームに前記分割データの送信終了を示すフラグを付与する付与部と、
を有することを特徴とする送信モジュール。
【請求項2】
前記付与部は、前記送信対象データに対応する前記分割データのうち、前記送信対象データの最後尾に対応する通信フレームを含む分割データ以外の分割データを対象として、前記対象となる分割データのうち少なくとも1つの分割データの最後尾に対応する通信フレームに前記送信終了を示すフラグを付与する
ことを特徴とする請求項1に記載の送信モジュール。
【請求項3】
前記第1インタフェース部は、上位層の通信プロトコルからイベントを入力し、
前記第2インタフェース部は、前記イベントが入力された場合、前記送信終了を示すフラグが付与された通信フレームを送信した直後に、前記入力されたイベントに対応する通信フレームを送信する
ことを特徴とする請求項1に記載の送信モジュール。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2012−103897(P2012−103897A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−251769(P2010−251769)
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】