(57)【要約】【課題】パーソナルコンピュータ等の処理装置と、ＵＳＢ等の規格にて規定された複数の論理デバイスを有する外部装置とを接続したシステムにて、使用する論理デバイスを変更時のシーケンス管理が複雑化することを防止するデータ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体を提供する。【解決手段】一方の装置から他方の装置へ送信するデータのパケットサイズの調整及びダミーパケットの送信等の調整処理により、送信するパケット数を偶数個に調整する。【選択図】　　　　図１
2004005168.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを用い、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信するデータ送信方法において、
一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することを特徴とするデータ送信方法。
【請求項２】
処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを備え、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信する通信システムにおいて、
一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整する調整手段を備えることを特徴とする通信システム。
【請求項３】
送信すべきデータのサイズを算出する手段を備え、
前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてある
ことを特徴とする請求項２に記載の通信システム。
【請求項４】
前記データのパケット数を算出する手段を備え、
前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットの送信によりパケット数を調整すべくなしてある
ことを特徴とする請求項２に記載の通信システム。
【請求項５】
前記調整手段は、データを送信する都度、調整すべくなしてあることを特徴とする請求項２乃至請求項４のいずれかに記載の通信システム。
【請求項６】
一の論理デバイスに関する一又は複数のデータの送信を終了する場合に、送信したデータのパケット数の累計値を算出する手段を備え、
前記調整手段は、算出したパケット数の累計値が奇数であるときに前記データを含まないダミーパケットの送信によりパケットを調整すべくなしてある
ことを特徴とする請求項２に記載の通信システム。
【請求項７】
前記処理装置及び外部装置間の接続は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）にて規定された規格に基づくことを特徴とする請求項２乃至請求項６のいずれかに記載の通信システム。
【請求項８】
複数の論理デバイスを有する外部装置を接続し、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信する処理装置において、
一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整する調整手段を備えることを特徴とする処理装置。
【請求項９】
送信すべきデータのサイズを算出する手段を備え、
前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてある
ことを特徴とする請求項８に記載の処理装置。
【請求項１０】
受信したデータのパケット数を算出する手段を備え、
前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットを送信させる命令を前記外部装置へ送信すべくなしてある
ことを特徴とする請求項８に記載の処理装置。
【請求項１１】
複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムにおいて、
コンピュータに、一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整させる手順を含むことを特徴とするコンピュータプログラム。
【請求項１２】
複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムを記録してある、コンピュータでの読み取りが可能な記録媒体において、
コンピュータに、一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整させる手順を含むコンピュータプログラムを記録してあることを特徴とするコンピュータでの読み取りが可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパーソナルコンピュータ等の処理装置及び外部装置間を接続し、処理装置及び外部装置間でデータを送受信するデータ送信方法、その方法を適用した通信システム、そのシステムにて用いられる処理装置、その装置を実現するためのコンピュータプログラム及びそのプログラムを記録してあるコンピュータでの読み取りが可能な記録媒体に関し、特に処理装置及び外部装置間をＵＳＢにて規定された規格に基づくバスにて接続するデータ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ等の処理装置と、マウス、各種コネクタ及びＤＶＤドライブ等の様々な外部装置との間を接続するバスの規格としてＵＳＢ（ＵｎｉｖｅｒｓａｌＳｅｒｉａｌ　Ｂｕｓ）が広く普及しており、最近提供されている多くの処理装置及び外部装置では、ＵＳＢに対応したインタフェイスを備えている。
【０００３】
外部装置は、様々な機能を実現するため夫々の機能に対応する論理デバイスを有し、論理デバイスの機能を使用するための外部装置及び処理装置間の通信は、ＵＳＢの規格に基づき異なる二つの属性、具体的にはＤＡＴＡ０又はＤＡＴＡ１として示されるデータトグルが交互に付与されるパケット単位で行われる。
【０００４】
また外部装置は、処理装置と送受信するパケットを論理デバイスと受け渡しを行うためのバッファとしてエンドポイントを有しており、エンドポイントを介して論理デバイスは処理装置と通信する。
【０００５】
そして様々な機能を実現するため複数の論理デバイスを有する外部装置では、各論理デバイスに対応するエンドポイントを固定的に設けることが必要となるが、各論理デバイスについてエンドポイントを設けることは外部装置の大型化を招き、更にはエンドポイント毎に様々なシーケンス管理が必要となるため外部装置が複雑化するという問題につながる。
【０００６】
この問題を解決すべく特開２００１−５１９３８号公報には、外部装置（ＵＳＢデバイス）の機能に対応する論理デバイスと、１つ以上のエンドポイントで構成されるインタフェイスとを必要に応じて接続することで、エンドポイントを論理デバイスで共用する方法が開示されている。
【０００７】
【発明が解決しようとする課題】
しかしながら例えば特開２０００１−５１９３８号公報に開示されている様な複数の論理デバイスがエンドポイントを共用する構成では、パケットの異なる二つの属性に関するシーケンス管理が複雑になるという問題がある。
例えば一の論理デバイス及び処理装置間でパケット単位でのデータの送受信がなされ、この送受信がＤＡＴＡ０の属性で完了した場合、他の論理デバイスは一の論理デバイスによるデータの送受信の完了後に送受信されるデータを認識することができない可能性があり、データの送受信を各論理デバイス間で認識するためには、各論理デバイス間でシーケンスの連携が必要となるのでシーケンスの管理が複雑化する。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することにより、属性がＤＡＴＡ０であるパケットにて送信を開始し、ＤＡＴＡ１であるパケットにて完了させることができるのでシーケンスの管理が複雑化することを防止することが可能である。
【０００９】
【課題を解決するための手段】
本発明に係るデータ送信方法は、処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを用い、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信するデータ送信方法において、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することを特徴とする。
【００１０】
本発明に係るデータ送信方法では、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、ＤＡＴＡ０の属性を付与されたパケットで送信を開始し、ＤＡＴＡ１の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【００１１】
本発明に係る通信システムは、処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを備え、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信する通信システムにおいて、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整する調整手段を備えることを特徴とする。
【００１２】
本発明に係る通信システムでは、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、ＤＡＴＡ０の属性を付与されたパケットで送信を開始し、ＤＡＴＡ１の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【００１３】
本発明に係る通信システムは、送信すべきデータのサイズを算出する手段を備え、前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする。
【００１４】
本発明に係る通信システムでは、パケットサイズの調整にてパケット数を調整することにより、シーケンスの管理が複雑化することを防止することが可能である。
【００１５】
本発明に係る通信システムは、前記データのパケット数を算出する手段を備え、前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットの送信によりパケット数を調整すべくなしてあることを特徴とする。
【００１６】
本発明に係る通信システムでは、送信したパケット数が奇数である場合にダミーパケットを送信することにより、サイズが不明なデータの送信するときにでもシーケンスの管理が複雑化することを防止することが可能である。
【００１７】
本発明に係る通信システムは、前記調整手段は、データを送信する都度、調整すべくなしてあることを特徴とする。
【００１８】
本発明に係る通信システムでは、各データの送信がＤＡＴＡ１の属性を付与されたパケットにて終了することにより、複数の論理デバイスの並列動作が容易になる。
【００１９】
本発明に係る通信システムは、一の論理デバイスに関する一又は複数のデータの送信を終了する場合に、送信したデータのパケット数の累計値を算出する手段を備え、前記調整手段は、算出したパケット数の累計値が奇数であるときに前記データを含まないダミーパケットの送信によりパケットを調整すべくなしてあることを特徴とする。
【００２０】
本発明に係る通信システムでは、例えば使用する論理デバイスを一の論理デバイスから他の論理デバイスに切り替える際にパケット数を調整することにより、通信効率の低下を防止することが可能である。
【００２１】
本発明に係る通信システムは、前記処理装置及び外部装置間の接続は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）にて規定された規格に基づくことを特徴とする。
【００２２】
本発明に係る通信システムでは、ＵＳＢにて規定された規格に基づくことにより、パーソナルコンピュータ等の処理装置及び各種外部装置の接続時の利便性を向上させることが可能である。
【００２３】
本発明に係る処理装置は、複数の論理デバイスを有する外部装置を接続し、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信する処理装置において、一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整する調整手段を備えることを特徴とする。
【００２４】
本発明に係る処理装置では、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、ＤＡＴＡ０の属性を付与されたパケットで送信を開始し、ＤＡＴＡ１の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【００２５】
本発明に係る処理装置は、送信すべきデータのサイズを算出する手段を備え、前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする。
【００２６】
本発明に係る処理装置では、パケットサイズの調整にてパケット数を調整することにより、シーケンスの管理が複雑化することを防止することが可能である。
【００２７】
本発明に係る処理装置は、受信したデータのパケット数を算出する手段を備え、前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットを送信させる命令を前記外部装置へ送信すべくなしてあることを特徴とする。
【００２８】
本発明に係る処理装置では、送信したパケット数が奇数である場合にダミーパケットを送信させることにより、サイズが不明なデータの送信するときにでもシーケンスの管理が複雑化することを防止することが可能である。
【００２９】
本発明に係るコンピュータプログラムは、複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムにおいて、コンピュータに、一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整させる手順を含むことを特徴とする。
【００３０】
本発明に係るコンピュータプログラムでは、パーソナルコンピュータ等の外部装置を接続することが可能な装置にて実行することで、コンピュータが処理装置として動作するので、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、ＤＡＴＡ０の属性を付与されたパケットで送信を開始し、ＤＡＴＡ１の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【００３１】
本発明に係るコンピュータでの読み取りが可能な記録媒体は、複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムを記録してある、コンピュータでの読み取りが可能な記録媒体において、コンピュータに、一の論理デバイスに関するデータを送受信する場合に、パケット数を偶数個に調整させる手順を含むコンピュータプログラムを記録してあることを特徴とする。
【００３２】
本発明に係るコンピュータでの読み取りが可能な記録媒体では、記録しているコンピュータプログラムをパーソナルコンピュータ等の外部装置を接続することが可能な装置にて実行することで、コンピュータが処理装置として動作するので、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、ＤＡＴＡ０の属性を付与されたパケットで送信を開始し、ＤＡＴＡ１の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【００３３】
【発明の実施の形態】
以下、本発明はその実施の形態を示す図面に基づいて詳述する。
図１は本発明の通信システムを示すブロック図である。
図１中１０は、パーソナルコンピュータを用いた本発明の処理装置であり、処理装置１０は、ＤＶＤドライブ等の外部装置２０と、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）として規定された規格に基づく通信線Ｌにより接続されている。
【００３４】
本発明の処理装置１０は、装置全体を制御するＣＰＵ１１、本発明の処理装置用のコンピュータプログラムＰＧ及びデータ等の情報を記録したＣＤ−ＲＯＭ等の記録媒体ＲＥＣから情報を読み取るＣＤ−ＲＯＭドライブ等の補助記憶手段１２、補助記憶手段１２により読み取られたコンピュータプログラムＰＧ及びＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）１００等の各種情報を記録するハードディスク等の記録手段１３、情報を一時的に記憶するＲＡＭ１４、マウス及びキーボード等の入力手段１５並びにモニタ及びプリンタ等の出力手段１６を備えている。
そして記録手段１３から本発明の処理装置用のコンピュータプログラムＰＧ及びデータ等の各種情報を読み取り、ＲＡＭ１４に記憶させてＯＳ１００上で、ＣＰＵ１１により実行することで、パーソナルコンピュータは本発明の処理装置１０として動作する。
【００３５】
なお記録手段１３には、ＯＳ１００及び本発明のコンピュータプログラムＰＧだけでなく、ＵＳＢカーネルドライバ１０１、複数のクラスドライバ１０２ａ、１０２ｂ、１０２ｃ及び１０２ｄ、複数のアプリケーションドライバ１０３ａ、１０３ｂ、１０３ｃ及び１０３ｄ並びに各種アプリケーションプログラム１０４ａ、１０４ｂ、１０４ｃ及び１０４ｄ等の様々なプログラムが記録されている。
【００３６】
また処理装置１０は、通信線Ｌを接続する送受信インタフェイス等の通信手段１７を備え、通信手段１７は、ＯＳ１００が有するＵＳＢカーネルドライバ１０１と論理的に接続しており、ＵＳＢカーネルドライバ１０１は、クラスドライバ１０２ａ、１０２ｂ、１０２ｃ及び１０２ｄとの論理的な接続を切り替えるスイッチング機能を有する。
クラスドライバ１０２ａ、１０２ｂ、１０２ｃ及び１０２ｄは、ＵＳＢカーネルドライバ１０１と、各アプリドライバ１０３ａ、１０３ｂ、１０３ｃ及び１０３ｄとを論理的に接続する中継機能を有し、各アプリドライバ１０３ａ、１０３ｂ、１０３ｃ及び１０３ｄは夫々対応するアプリケーションプログラム１０４ａ、１０４ｂ、１０４ｃ及び１０４ｄを立ち上げるためのドライバとして機能し、各アプリケーションプログラム１０４ａ、１０４ｂ、１０４ｃ及び１０４ｄは、外部装置２０が備える各種機能の管理に用いられる。
【００３７】
外部装置２０は、通信線Ｌと接続する通信手段２１１を有するＵＳＢ送受信部２１を備え、ＵＳＢ送受信部２１は、デバイス切替部２２を介して、夫々の機能を有する複数の論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄと接続されている。
デバイス切替部２２は、各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの切り替えを行うスイッチング機能を有し、例えばデバイス切替部２２により、論理デバイス２３ａが選択された場合、処理装置１０は、通信線Ｌ、ＵＳＢ送受信部２１及びデバイス切替部２２を介して論理デバイス２３ａとの通信が可能となる。
【００３８】
なお各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄは、音声通信デバイス、パケット通信デバイス、電話帳交換デバイス、非制限デジタル通信デバイス、プリンタ及びモデム等の機能を有する論理回路として構成されており、処理装置１０が備える各アプリケーションプログラム１０４ａ、１０４ｂ、１０４ｃ及び１０４ｄに対応する。
またＵＳＢ送受信部２１は、処理装置１０と送受信するパケットを各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄと受け渡しを行うためのバッファとしてコントロールエンドポイント（エンドポイント０）２４を備えている。
【００３９】
次に本発明の通信システムにおける処理装置１０及び外部装置２０間の接続確立処理について説明する。
ＵＳＢにて規定された規格に基づいて構成される本発明の通信システムでは、処理装置１０に外部装置２０を通信線Ｌにて物理的に接続した時に、自動的に論理的な接続を確立するプラグアンドプレイ機能を有している。
【００４０】
図２は本発明の通信システムが備える処理装置１０及び外部装置２０の接続確立時の初期化処理を示すフローチャートである。
処理装置１０では、通信線Ｌを介して外部装置２０が物理的に接続されたことを検出した時（Ｓ１０１）、外部装置２０が備えるＵＳＢ送受信部２１を初期化するリセット信号を外部装置２０へ送信する（Ｓ１０２）。
外部装置２０では、リセット信号を受信し（Ｓ１０３）、受信したリセット信号に基づいて初期化処理を行う（Ｓ１０４）。
【００４１】
図３は本発明の通信システムが備える処理装置１０及び外部装置２０の接続確立時のセットアップ処理を示すフローチャートである。
処理装置１０では、リセット信号を送信した後、外部装置２０との論理的な接続を確立すべく外部装置２０の一般情報を含むデバイスディスクリプタを要求する一般情報要求（Ｇｅｔ　Ｄｅｓｃｒｉｐｔｏｒ）を外部装置２０へ送信する（Ｓ２０１）。
【００４２】
外部装置２０では、一般情報要求を受信し（Ｓ２０２）、受信した一般情報要求に基づいてデバイスディスクリプタを処理装置１０へ送信する（Ｓ２０３）。
【００４３】
処理装置１０では、デバイスディスクリプタを受信し（Ｓ２０４）、デバイスディスクリプタに含まれるコントロールエンドポイント２４の最大パケットサイズ及びプロトコルコード等の一般情報に基づいて外部装置２０にアドレスを割り当て（Ｓ２０５）、割り当てたアドレスを示すアドレス情報（Ｓｅｔ　Ａｄｄｒｅｓｓ）外部装置２０へ送信する（Ｓ２０６）。
【００４４】
外部装置２０では、アドレス情報を受信し（Ｓ２０７）、受信したアドレス情報が示すアドレスに基づいてアドレスの設定を行う（Ｓ２０８）。
そして処理装置１０から外部装置２０へ、再度一般情報要求を送信し、外部装置２０から処理装置１０へデバイスディスクリプタを送信することにより、処理装置１０及び外部装置２０間の論理的な接続が確立される。
【００４５】
処理装置１０及び外部装置２０間での論理的な接続が確立されることにより、処理装置１０は、外部装置２０が備える各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの夫々と通信を行い、夫々の機能を使用することが可能となる。
【００４６】
なお処理装置１０及び外部装置２０が備える各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄとが通信を行う場合、一方の装置から他方の装置へ送信されるデータはパケット単位で送信されることとなり、また送信されるパケットには異なる二つの属性、具体的にはＤＡＴＡ０及びＤＡＴＡ１として示されるデータトグルが交互に付与され、これによりデータ送信時の同期を確認している。
例えば処理装置１０から外部装置２０が備える論理デバイス２３ａへデータを送信する場合、データはパケット単位に分割され、最初に送信されるパケットにはＤＡＴＡ０として示される属性が付与され、次に送信されるパケットにはＤＡＴＡ１、更に次のパケットにはＤＡＴＡ０という様に送信処理が行われる。
ただし外部装置２０が備える各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの中の一の論理デバイスが通信を終え、他の論理デバイスが通信を開始する場合で、一の論理デバイスの通信における最後に送信されたパケットの属性がＤＡＴＡ０であるとき、他の論理デバイスは、一の論理デバイスが通信を終えたことを認識することができなくなる可能性がある。
そこで夫々の論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄが通信を終える場合に、最後のパケットに付与される属性をＤＡＴＡ１とするため、本発明の通信システムではパケット数を偶数個に調整する処理を行う。
【００４７】
次に本発明の通信システムにおける処理装置１０及び外部装置２０のパケット数調整処理について説明する。
図４は本発明の通信システムにおいて、処理装置１０から外部装置２０へデータを送信する場合の処理装置１０のパケット数調整処理を示すフローチャートである。
処理装置１０では、外部装置２０が備える論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの中の任意の論理デバイス、例えば論理デバイス２３ａにデータを送信する場合、送信すべきデータのパケットサイズを最大パケットサイズ（以下、最大パケットサイズをａとして示す）に設定して（Ｓ３０１）、送信すべきデータのデータサイズ（以下、データサイズをｂとして示す）を算出し（Ｓ３０２）、更にデータサイズｂを最大パケットサイズａの２倍である２ａにて除算する（Ｓ３０３）。
なおステップＳ３０１にて設定される最大パケットサイズは、接続確立処理時に外部装置２０から受信したデバイスディスクリプタに基づくものである。
【００４８】
そしてデータサイズｂを最大パケットサイズａの２倍である２ａにて除算して得られた剰余（以下、剰余を（ｂ　ｍｏｄ　２ａ）として示す）を０及びａと比較する（Ｓ３０４）。
【００４９】
ステップＳ３０４の比較において剰余（ｂ　ｍｏｄ　２ａ）が、０又はａより大きいと判別した場合（Ｓ３０４：１）、パケット数は偶数となるためパケット数の調整処理は不要である判断し、送信すべきデータの全体を送信対象とし（Ｓ３０５）、送信対象としたデータを外部装置２０へ送信する（Ｓ３０６）。
【００５０】
ステップＳ３０４の比較において剰余（ｂ　ｍｏｄ　２ａ）が、ａ以下であると判別した場合（Ｓ３０４：２）、パケット数は奇数となるためパケット数の調整処理が必要であると判断し、調整方法を決定すべく剰余（ｂ　ｍｏｄ　２ａ）とａ／２とを比較する（Ｓ３０７）。
【００５１】
ステップＳ３０７の比較において剰余（ｂ　ｍｏｄ　２ａ）が、ａ／２より大きいと判別したとき（Ｓ３０７：１）、送信すべきデータの内、｛ｂ−（ｂ　ｍｏｄ　２ａ）｝分の量のデータを送信対象とし（Ｓ３０８）、送信対象としたデータを外部装置２０へ送信する（Ｓ３０９）。
さらにパケットサイズを最大パケットサイズａの半分であるａ／２に設定し（Ｓ３１０）、残りの（ｂ　ｍｏｄ　２ａ）分の量のデータを送信対象とし（Ｓ３１１）、送信対象としたデータを外部装置２０へ送信する（Ｓ３１２）。
【００５２】
ステップＳ３０７の比較において剰余（ｂ　ｍｏｄ　２ａ）が、ａ／２以下であると判別したとき（Ｓ３０７：２）、送信すべきデータの内、｛ｂ−ａ−（ｂｍｏｄ　２ａ）｝分の量のデータを送信対象とし（Ｓ３１３）、送信対象としたデータを外部装置２０へ送信する（Ｓ３１４）。
さらにパケットサイズを最大パケットサイズａの半分であるａ／２に設定し（Ｓ３１５）、残りの｛ａ＋（ｂ　ｍｏｄ　２ａ）｝分の量のデータを送信対象とし（Ｓ３１６）、送信対象としたデータを外部装置２０へ送信する（Ｓ３１７）。
このようにステップＳ３０２にて算出したデータのサイズに基づきパケットサイズを調整することにより、パケット数を偶数に調整することが可能となる。
【００５３】
なおステップＳ３０６、Ｓ３０９、Ｓ３１２、Ｓ３１４及びＳ３１７におけるデータの送信処理は、以下に示すトランザクション処理により行われる。
図５は本発明の通信システムにおいて、処理装置１０から外部装置２０へデータを送信する場合の処理装置１０の処理を示すフローチャートである。
処理装置１０は、外部装置２０へデータを送信するトランザクション処理を実行するためのＯＵＴトランザクションループを各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄに対して設定し（Ｓ４０１）、データの送信の対象となる任意の論理デバイス、例えば論理デバイス２３ａに対する通信の制御の権利を示す制御コマンドであるトークンを、外部装置２０へ送信する（Ｓ４０２）。
【００５４】
そして処理装置１０は、ステップＳ３０１、Ｓ３１０及びＳ３１５にて設定したパケットサイズでデータを外部装置２０へ送信し（Ｓ４０３）、外部装置２０からデータを受信したことを示すハンドシェイクパケットを受信して（Ｓ４０４）、トランザクションループの設定を終了する（Ｓ４０５）。
【００５５】
次に本発明の通信システムにおける処理装置１０及び外部装置２０の他のパケット数調整処理について説明する。
図６は本発明の通信システムにおいて、外部装置２０から処理装置１０へデータを送信する場合の処理装置１０のパケット数調整処理を示すフローチャートである。
受信すべきデータのパケットサイズを最大パケットサイズ（以下、最大パケットサイズをｃとして示す）に設定させるパケットサイズ設定命令を外部装置２０へ送信し（Ｓ５０１）、外部装置２０から設定されたパケットサイズにて送信されるデータを受信する（Ｓ５０２）。
そして受信したデータのデータサイズ（以下、データサイズをｄとして示す）を集計し（Ｓ５０３）、集計したデータサイズを最大パケットサイズｃの２倍である２ｃにて除算し（Ｓ５０４）、除算して得られた剰余（以下、剰余を（ｄ　ｍｏｄ　２ｃ）として示す）を０及びｃと比較し（Ｓ５０５）、当該比較により受信したパケット数を算出する。
【００５６】
ステップＳ５０５の比較において剰余（ｄ　ｍｏｄ　２ｃ）が、０又はｃより大きいと判別した場合（Ｓ５０５：１）、パケット数は偶数となるためパケット数の調整処理は不要であると判断して処理を終了する。
【００５７】
ステップＳ５０５の比較において剰余（ｄ　ｍｏｄ　２ｃ）が、ｃ以下であると判別した場合（Ｓ５０５：２）、パケット数は奇数となるためパケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを０に設定させるパケットサイズ設定命令を外部装置２０へ送信する（Ｓ５０６）。
そして外部装置２０から設定されたパケットサイズ、即ちパケットサイズが０で、送信すべきデータを含まないダミーパケットを受信し（Ｓ５０７）、処理を終了する。
このようにステップＳ５０２にて算出したデータのサイズに基づきダミーパケットを送信させることにより、パケット数を偶数に調整することが可能となる。
【００５８】
なおステップＳ５０２及びＳ５０７におけるデータの受信処理は、以下に示すトランザクション処理により行われる。
図７は本発明の通信システムにおいて、外部装置２０から処理装置１０へデータを送信する場合の処理装置１０の処理を示すフローチャートである。
処理装置１０は、外部装置２０にデータを送信させるトランザクション処理を実行するためのＩＮトランザクションループを各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄに対して設定し（Ｓ６０１）、データを送信させる対象となる任意の論理デバイス、例えば論理デバイス２３ａに対する通信の制御の権利を示す制御コマンドであるトークンを外部装置２０へ送信する（Ｓ６０２）。
【００５９】
そして処理装置１０は、ステップＳ５０１及びＳ５０６にて設定したパケットサイズで外部装置２０から送信されるデータを受信し（Ｓ６０３）、外部装置２０へデータを受信したことを示すハンドシェイクパケットを送信して（Ｓ６０４）、トランザクションループの設定を終了する（Ｓ６０５）。
【００６０】
次に本発明の通信システムにおける処理装置１０及び外部装置２０の更に他のパケット数調整処理について説明する。
図４及び図６を用いて説明したパケット数調整処理は、データを送信する都度、調整を行う形態を示しているが、各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの中で、任意の一の論理デバイス、例えば論理デバイス２３ａを連続して複数のデータの送信に使用する場合は、一連のデータの送信を完了し、他の論理デバイス、例えば論理デバイス２３ｂを使用する前に、パケット数調整処理を行うようにしてもよい。
【００６１】
図８は本発明の通信システムにおいて、処理装置１０から外部装置２０へ連続してデータを送信する場合の処理装置１０のパケット数調整処理を示すフローチャートである。
処理装置１０では、各論理デバイス２３ａ、２３ｂ、２３ｃ及び２３ｄの中の任意の一の論理デバイス、例えば論理デバイス２３ａの使用を開始する場合、予めＲＡＭ１４に記録領域を確保しているパケット数の累計値を初期化、即ち０に設定し（Ｓ７０１）、パケットサイズを最大パケットサイズに設定する（Ｓ７０２）。
そして例えば図５に示すＯＵＴトランザクションループを用いたトランザクション処理により、一又は複数のデータを外部装置２０が備える論理デバイス２３ａに対して送信する（Ｓ７０３）
なおデータを送信する都度、例えば図６に示す処理を用いることにより、送信したデータサイズに基づいてパケット数を算出し（Ｓ７０４）、算出したパケット数をＲＡＭ１４に記録している累計値に加算していくことにより論理デバイス２３ａに対するパケットするの累計値を算出する（Ｓ７０５）。
そして例えば論理デバイス２３ｂ等の他の論理デバイスの使用の開始するため論理デバイス２３ａの使用を終了する場合に、算出した累計値が偶数であるか奇数であるかを判定する（Ｓ７０６）。
【００６２】
ステップＳ７０６の判定において、累計値が偶数であると判定した場合（Ｓ７０６：１）、パケット数の調整処理は不要であると判断して処理を終了する。
ステップＳ７０６の判定において、累計値が奇数であると判定した場合（Ｓ７０６：２）、パケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを０に設定し（Ｓ７０７）、パケットサイズが０のダミーパケットを送信する（Ｓ７０８）。
このように一の論理デバイス２３ａを使用して複数回データを送信する場合には、データを送信する都度、パケット数の調整処理を行うのではなく、一の論理デバイス２３ａを使用して送信した一連のデータの送信処理を終了時にパケット数の調整処理を行うことで、通信効率の低下を防止することが可能である。
なおステップＳ７０３及びＳ７０８におけるデータの送信処理は、図５を用いて説明したトランザクション処理と実質的に同様であるため、図５及びその説明を参照するものとし、その説明を省略する。
【００６３】
次に本発明の通信システムにおける処理装置１０及び外部装置２０の更に他のパケット数調整処理について説明する。
図８を用いて説明したパケット数調整処理では、処理装置１０にて送信したパケット数の累計値を算出する形態を示しているが、例えば外部装置２０から処理装置１０へデータを送信する場合においては、外部装置２０にて送信したパケット数の累計値を算出するようにしてもよい。
【００６４】
図９は本発明の通信システムにおいて、外部装置２０から処理装置１０へ連続してデータを送信する場合の処理装置１０のパケット数調整処理を示すフローチャートである。
処理装置１０では、外部装置２０が備える任意の一の論理デバイス、例えば論理デバイス２３ａの使用を開始する場合、論理デバイス２３ａの使用を開始する命令である開始通知を送信し（Ｓ８０１）、更に受信すべきデータのパケットサイズを最大パケットサイズに設定させるパケットサイズ設定命令を外部装置２０へ送信する（Ｓ８０２）。
そして例えば図７に示すＩＮトランザクションループを用いたトランザクション処理により、一又は複数のデータを外部装置２０から送信させ、処理装置１０では外部装置２０から送信されたデータを受信する（Ｓ８０３）。
なおこのとき外部装置２０では、データを送信する都度、送信したパケット数の累計値を算出する。
そして例えば論理デバイス２３ｂ等の他の論理デバイスの使用を開始するため論理デバイス２３ａの使用を終了する場合に、外部装置２０では、算出した累計値を示す累計値情報を処理装置１０へ送信し、処理装置１０では、外部装置２０から送信された累計値情報を受信し（Ｓ８０４）、受信した累計値情報が示すパケット数が、偶数であるか奇数であるかを判定する（Ｓ８０５）。
【００６５】
ステップＳ８０５の判定において、累計値が偶数であると判定した場合（Ｓ８０５：１）、パケット数の調整処理は不要であると判断して処理を終了する。
ステップＳ８０５の判定において、累計値が奇数であると判定した場合（Ｓ８０５：２）、パケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを０に設定させるパケットサイズ設定命令を外部装置２０へ送信する（Ｓ８０６）。
そして外部装置２０から設定されたパケットサイズ、即ちパケットサイズが０で、送信すべきデータを含まないダミーパケットを受信し（Ｓ８０７）、処理を終了する。
なおステップＳ８０３及びＳ８０７におけるデータの受信処理は、図７を用いて説明したトランザクション処理と実質的に同様であるため、図７及びその説明を参照するものとし、その説明を省略する。
【００６６】
前記実施の形態では、パケットサイズの調整及びダミーパケットの送信によりパケット数を調整する形態を示したが、本発明はこれに限らず、他の方法を用いてパケット数を調整するようにしてもよい。
【００６７】
【発明の効果】
以上詳述した如く本発明に係るデータ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体では、パーソナルコンピュータ等の処理装置と、ＵＳＢ等の規格にて規定され複数の論理デバイスを有する外部装置とを接続したシステムにて、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することにより、属性がＤＡＴＡ０であるパケットにて送信を開始し、ＤＡＴＡ１であるパケットにて完了させることができるのでシーケンスの管理が複雑化することを防止する等、優れた効果を奏する。
【図面の簡単な説明】
【図１】本発明の通信システムを示すブロック図である。
【図２】本発明の通信システムが備える処理装置及び外部装置の接続確立時の初期化処理を示すフローチャートである。
【図３】本発明の通信システムが備える処理装置及び外部装置の接続確立時のセットアップ処理を示すフローチャートである。
【図４】本発明の通信システムにおいて、処理装置から外部装置へデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図５】本発明の通信システムにおいて、処理装置から外部装置へデータを送信する場合の処理装置の処理を示すフローチャートである。
【図６】本発明の通信システムにおいて、外部装置から処理装置へデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図７】本発明の通信システムにおいて、外部装置から処理装置へデータを送信する場合の処理装置の処理を示すフローチャートである。
【図８】本発明の通信システムにおいて、処理装置から外部装置へ連続してデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図９】本発明の通信システムにおいて、外部装置から処理装置へ連続してデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【符号の説明】
１０　処理装置
２０　外部装置
Ｌ　通信線
【図１】
2004005168.tif 000003
【図２】
2004005168.tif 000004
【図３】
2004005168.tif 000005
【図４】
2004005168.tif 000006
【図５】
2004005168.tif 000007
【図６】
2004005168.tif 000008
【図７】
2004005168.tif 000009
【図８】
2004005168.tif 000010
【図９】
2004005168.tif 000011