JP4439161B2 - データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体 - Google Patents

データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体 Download PDF

Info

Publication number
JP4439161B2
JP4439161B2 JP2002159554A JP2002159554A JP4439161B2 JP 4439161 B2 JP4439161 B2 JP 4439161B2 JP 2002159554 A JP2002159554 A JP 2002159554A JP 2002159554 A JP2002159554 A JP 2002159554A JP 4439161 B2 JP4439161 B2 JP 4439161B2
Authority
JP
Japan
Prior art keywords
data
logical
packets
external device
transmitted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002159554A
Other languages
English (en)
Other versions
JP2004005168A (ja
Inventor
林  幹広
雅弘 井上
和徳 宮本
真理子 荒井
山口  剛
雅和 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2002159554A priority Critical patent/JP4439161B2/ja
Publication of JP2004005168A publication Critical patent/JP2004005168A/ja
Application granted granted Critical
Publication of JP4439161B2 publication Critical patent/JP4439161B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はパーソナルコンピュータ等の処理装置及び外部装置間を接続し、処理装置及び外部装置間でデータを送受信するデータ送信方法、その方法を適用した通信システム、そのシステムにて用いられる処理装置、その装置を実現するためのコンピュータプログラム及びそのプログラムを記録してあるコンピュータでの読み取りが可能な記録媒体に関し、特に処理装置及び外部装置間をUSBにて規定された規格に基づくバスにて接続するデータ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体に関する。
【0002】
【従来の技術】
パーソナルコンピュータ等の処理装置と、マウス、各種コネクタ及びDVDドライブ等の様々な外部装置との間を接続するバスの規格としてUSB(Universal Serial Bus)が広く普及しており、最近提供されている多くの処理装置及び外部装置では、USBに対応したインタフェイスを備えている。
【0003】
外部装置は、様々な機能を実現するため夫々の機能に対応する論理デバイスを有し、論理デバイスの機能を使用するための外部装置及び処理装置間の通信は、USBの規格に基づき異なる二つの属性、具体的にはDATA0又はDATA1として示されるデータトグルが交互に付与されるパケット単位で行われる。
【0004】
また外部装置は、処理装置と送受信するパケットを論理デバイスと受け渡しを行うためのバッファとしてエンドポイントを有しており、エンドポイントを介して論理デバイスは処理装置と通信する。
【0005】
そして様々な機能を実現するため複数の論理デバイスを有する外部装置では、各論理デバイスに対応するエンドポイントを固定的に設けることが必要となるが、各論理デバイスについてエンドポイントを設けることは外部装置の大型化を招き、更にはエンドポイント毎に様々なシーケンス管理が必要となるため外部装置が複雑化するという問題につながる。
【0006】
この問題を解決すべく特開2001−51938号公報には、外部装置(USBデバイス)の機能に対応する論理デバイスと、1つ以上のエンドポイントで構成されるインタフェイスとを必要に応じて接続することで、エンドポイントを論理デバイスで共用する方法が開示されている。
【0007】
【発明が解決しようとする課題】
しかしながら例えば特開20001−51938号公報に開示されている様な複数の論理デバイスがエンドポイントを共用する構成では、パケットの異なる二つの属性に関するシーケンス管理が複雑になるという問題がある。
例えば一の論理デバイス及び処理装置間でパケット単位でのデータの送受信がなされ、この送受信がDATA0の属性で完了した場合、他の論理デバイスは一の論理デバイスによるデータの送受信の完了後に送受信されるデータを認識することができない可能性があり、データの送受信を各論理デバイス間で認識するためには、各論理デバイス間でシーケンスの連携が必要となるのでシーケンスの管理が複雑化する。
【0008】
本発明は斯かる事情に鑑みてなされたものであり、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することにより、属性がDATA0であるパケットにて送信を開始し、DATA1であるパケットにて完了させることができるのでシーケンスの管理が複雑化することを防止することが可能である。
【0009】
【課題を解決するための手段】
本発明に係るデータ送信方法は、処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを用い、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信するデータ送信方法において、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整することを特徴とする。
【0010】
本発明に係るデータ送信方法では、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、DATA0の属性を付与されたパケットで送信を開始し、DATA1の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【0011】
本発明に係る通信システムは、処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを備え、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信する通信システムにおいて、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整する調整手段を備え、前記調整手段は、一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、調整すべくなしてあることを特徴とする。
【0012】
本発明に係る通信システムでは、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、DATA0の属性を付与されたパケットで送信を開始し、DATA1の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【0013】
本発明に係る通信システムは、送信すべきデータのサイズを算出する手段を備え、前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする。
【0014】
本発明に係る通信システムでは、パケットサイズの調整にてパケット数を調整することにより、シーケンスの管理が複雑化することを防止することが可能である。
【0015】
本発明に係る通信システムは、前記データのパケット数を算出する手段を備え、前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットの送信によりパケット数を調整すべくなしてあることを特徴とする。
【0016】
本発明に係る通信システムでは、送信したパケット数が奇数である場合にダミーパケットを送信することにより、サイズが不明なデータの送信するときにでもシーケンスの管理が複雑化することを防止することが可能である。
【0017】
本発明に係る通信システムは、前記調整手段は、データを送信する都度、調整すべくなしてあることを特徴とする。
【0018】
本発明に係る通信システムでは、各データの送信がDATA1の属性を付与されたパケットにて終了することにより、複数の論理デバイスの並列動作が容易になる。
【0019】
本発明に係る通信システムは、一の論理デバイスに関する一又は複数のデータの送信を終了する場合に、送信したデータのパケット数の累計値を算出する手段を備え、前記調整手段は、算出したパケット数の累計値が奇数であるときに前記データを含まないダミーパケットの送信によりパケットを調整すべくなしてあることを特徴とする。
本発明に係る通信システムでは、例えば使用する論理デバイスを一の論理デバイスから他の論理デバイスに切り替える際にパケット数を調整することにより、通信効率の低下を防止することが可能である。
【0021】
本発明に係る通信システムは、前記処理装置及び外部装置間の接続は、USB(Universal Serial Bus)にて規定された規格に基づくことを特徴とする。
【0022】
本発明に係る通信システムでは、USBにて規定された規格に基づくことにより、パーソナルコンピュータ等の処理装置及び各種外部装置の接続時の利便性を向上させることが可能である。
【0023】
本発明に係る処理装置は、複数の論理デバイスを有する外部装置を接続し、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信する処理装置において、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整する調整手段を備え、前記調整手段は、一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、調整すべくなしてあることを特徴とする。
【0024】
本発明に係る処理装置では、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、DATA0の属性を付与されたパケットで送信を開始し、DATA1の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【0025】
本発明に係る処理装置は、送信すべきデータのサイズを算出する手段を備え、前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする。
【0026】
本発明に係る処理装置では、パケットサイズの調整にてパケット数を調整することにより、シーケンスの管理が複雑化することを防止することが可能である。
【0027】
本発明に係る処理装置は、受信したデータのパケット数を算出する手段を備え、前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットを送信させる命令を前記外部装置へ送信すべくなしてあることを特徴とする。
【0028】
本発明に係る処理装置では、送信したパケット数が奇数である場合にダミーパケットを送信させることにより、サイズが不明なデータの送信するときにでもシーケンスの管理が複雑化することを防止することが可能である。
【0029】
本発明に係るコンピュータプログラムは、複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムにおいて、コンピュータに、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整させる手順を含むことを特徴とする。
【0030】
本発明に係るコンピュータプログラムでは、パーソナルコンピュータ等の外部装置を接続することが可能な装置にて実行することで、コンピュータが処理装置として動作するので、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、DATA0の属性を付与されたパケットで送信を開始し、DATA1の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【0031】
本発明に係るコンピュータでの読み取りが可能な記録媒体は、複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムを記録してある、コンピュータでの読み取りが可能な記録媒体において、コンピュータに、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整させる手順を含むコンピュータプログラムを記録してあることを特徴とする。
【0032】
本発明に係るコンピュータでの読み取りが可能な記録媒体では、記録しているコンピュータプログラムをパーソナルコンピュータ等の外部装置を接続することが可能な装置にて実行することで、コンピュータが処理装置として動作するので、接続した外部装置との通信時に、パケット数を偶数個に調整することにより、一の論理デバイスに関するデータの送信について、DATA0の属性を付与されたパケットで送信を開始し、DATA1の属性を付与されたパケットで終了することができるので、複数の論理デバイスで一つのエンドポイントを共用する場合でも、各論理デバイス間でのシーケンスの連携が不要であり、パケットに属性を付与するシーケンスの管理が複雑化することを防止することが可能である。
【0033】
【発明の実施の形態】
以下、本発明はその実施の形態を示す図面に基づいて詳述する。
図1は本発明の通信システムを示すブロック図である。
図1中10は、パーソナルコンピュータを用いた本発明の処理装置であり、処理装置10は、DVDドライブ等の外部装置20と、USB(Universal Serial Bus)として規定された規格に基づく通信線Lにより接続されている。
【0034】
本発明の処理装置10は、装置全体を制御するCPU11、本発明の処理装置用のコンピュータプログラムPG及びデータ等の情報を記録したCD−ROM等の記録媒体RECから情報を読み取るCD−ROMドライブ等の補助記憶手段12、補助記憶手段12により読み取られたコンピュータプログラムPG及びOS(Operating System)100等の各種情報を記録するハードディスク等の記録手段13、情報を一時的に記憶するRAM14、マウス及びキーボード等の入力手段15並びにモニタ及びプリンタ等の出力手段16を備えている。
そして記録手段13から本発明の処理装置用のコンピュータプログラムPG及びデータ等の各種情報を読み取り、RAM14に記憶させてOS100上で、CPU11により実行することで、パーソナルコンピュータは本発明の処理装置10として動作する。
【0035】
なお記録手段13には、OS100及び本発明のコンピュータプログラムPGだけでなく、USBカーネルドライバ101、複数のクラスドライバ102a、102b、102c及び102d、複数のアプリケーションドライバ103a、103b、103c及び103d並びに各種アプリケーションプログラム104a、104b、104c及び104d等の様々なプログラムが記録されている。
【0036】
また処理装置10は、通信線Lを接続する送受信インタフェイス等の通信手段17を備え、通信手段17は、OS100が有するUSBカーネルドライバ101と論理的に接続しており、USBカーネルドライバ101は、クラスドライバ102a、102b、102c及び102dとの論理的な接続を切り替えるスイッチング機能を有する。
クラスドライバ102a、102b、102c及び102dは、USBカーネルドライバ101と、各アプリドライバ103a、103b、103c及び103dとを論理的に接続する中継機能を有し、各アプリドライバ103a、103b、103c及び103dは夫々対応するアプリケーションプログラム104a、104b、104c及び104dを立ち上げるためのドライバとして機能し、各アプリケーションプログラム104a、104b、104c及び104dは、外部装置20が備える各種機能の管理に用いられる。
【0037】
外部装置20は、通信線Lと接続する通信手段211を有するUSB送受信部21を備え、USB送受信部21は、デバイス切替部22を介して、夫々の機能を有する複数の論理デバイス23a、23b、23c及び23dと接続されている。
デバイス切替部22は、各論理デバイス23a、23b、23c及び23dの切り替えを行うスイッチング機能を有し、例えばデバイス切替部22により、論理デバイス23aが選択された場合、処理装置10は、通信線L、USB送受信部21及びデバイス切替部22を介して論理デバイス23aとの通信が可能となる。
【0038】
なお各論理デバイス23a、23b、23c及び23dは、音声通信デバイス、パケット通信デバイス、電話帳交換デバイス、非制限デジタル通信デバイス、プリンタ及びモデム等の機能を有する論理回路として構成されており、処理装置10が備える各アプリケーションプログラム104a、104b、104c及び104dに対応する。
またUSB送受信部21は、処理装置10と送受信するパケットを各論理デバイス23a、23b、23c及び23dと受け渡しを行うためのバッファとしてコントロールエンドポイント(エンドポイント0)24を備えている。
【0039】
次に本発明の通信システムにおける処理装置10及び外部装置20間の接続確立処理について説明する。
USBにて規定された規格に基づいて構成される本発明の通信システムでは、処理装置10に外部装置20を通信線Lにて物理的に接続した時に、自動的に論理的な接続を確立するプラグアンドプレイ機能を有している。
【0040】
図2は本発明の通信システムが備える処理装置10及び外部装置20の接続確立時の初期化処理を示すフローチャートである。
処理装置10では、通信線Lを介して外部装置20が物理的に接続されたことを検出した時(S101)、外部装置20が備えるUSB送受信部21を初期化するリセット信号を外部装置20へ送信する(S102)。
外部装置20では、リセット信号を受信し(S103)、受信したリセット信号に基づいて初期化処理を行う(S104)。
【0041】
図3は本発明の通信システムが備える処理装置10及び外部装置20の接続確立時のセットアップ処理を示すフローチャートである。
処理装置10では、リセット信号を送信した後、外部装置20との論理的な接続を確立すべく外部装置20の一般情報を含むデバイスディスクリプタを要求する一般情報要求(Get Descriptor)を外部装置20へ送信する(S201)。
【0042】
外部装置20では、一般情報要求を受信し(S202)、受信した一般情報要求に基づいてデバイスディスクリプタを処理装置10へ送信する(S203)。
【0043】
処理装置10では、デバイスディスクリプタを受信し(S204)、デバイスディスクリプタに含まれるコントロールエンドポイント24の最大パケットサイズ及びプロトコルコード等の一般情報に基づいて外部装置20にアドレスを割り当て(S205)、割り当てたアドレスを示すアドレス情報(Set Address) 外部装置20へ送信する(S206)。
【0044】
外部装置20では、アドレス情報を受信し(S207)、受信したアドレス情報が示すアドレスに基づいてアドレスの設定を行う(S208)。
そして処理装置10から外部装置20へ、再度一般情報要求を送信し、外部装置20から処理装置10へデバイスディスクリプタを送信することにより、処理装置10及び外部装置20間の論理的な接続が確立される。
【0045】
処理装置10及び外部装置20間での論理的な接続が確立されることにより、処理装置10は、外部装置20が備える各論理デバイス23a、23b、23c及び23dの夫々と通信を行い、夫々の機能を使用することが可能となる。
【0046】
なお処理装置10及び外部装置20が備える各論理デバイス23a、23b、23c及び23dとが通信を行う場合、一方の装置から他方の装置へ送信されるデータはパケット単位で送信されることとなり、また送信されるパケットには異なる二つの属性、具体的にはDATA0及びDATA1として示されるデータトグルが交互に付与され、これによりデータ送信時の同期を確認している。
例えば処理装置10から外部装置20が備える論理デバイス23aへデータを送信する場合、データはパケット単位に分割され、最初に送信されるパケットにはDATA0として示される属性が付与され、次に送信されるパケットにはDATA1、更に次のパケットにはDATA0という様に送信処理が行われる。
ただし外部装置20が備える各論理デバイス23a、23b、23c及び23dの中の一の論理デバイスが通信を終え、他の論理デバイスが通信を開始する場合で、一の論理デバイスの通信における最後に送信されたパケットの属性がDATA0であるとき、他の論理デバイスは、一の論理デバイスが通信を終えたことを認識することができなくなる可能性がある。
そこで夫々の論理デバイス23a、23b、23c及び23dが通信を終える場合に、最後のパケットに付与される属性をDATA1とするため、本発明の通信システムではパケット数を偶数個に調整する処理を行う。
【0047】
次に本発明の通信システムにおける処理装置10及び外部装置20のパケット数調整処理について説明する。
図4は本発明の通信システムにおいて、処理装置10から外部装置20へデータを送信する場合の処理装置10のパケット数調整処理を示すフローチャートである。
処理装置10では、外部装置20が備える論理デバイス23a、23b、23c及び23dの中の任意の論理デバイス、例えば論理デバイス23aにデータを送信する場合、送信すべきデータのパケットサイズを最大パケットサイズ(以下、最大パケットサイズをaとして示す)に設定して(S301)、送信すべきデータのデータサイズ(以下、データサイズをbとして示す)を算出し(S302)、更にデータサイズbを最大パケットサイズaの2倍である2aにて除算する(S303)。
なおステップS301にて設定される最大パケットサイズは、接続確立処理時に外部装置20から受信したデバイスディスクリプタに基づくものである。
【0048】
そしてデータサイズbを最大パケットサイズaの2倍である2aにて除算して得られた剰余(以下、剰余を(b mod 2a)として示す)を0及びaと比較する(S304)。
【0049】
ステップS304の比較において剰余(b mod 2a)が、0又はaより大きいと判別した場合(S304:1)、パケット数は偶数となるためパケット数の調整処理は不要である判断し、送信すべきデータの全体を送信対象とし(S305)、送信対象としたデータを外部装置20へ送信する(S306)。
【0050】
ステップS304の比較において剰余(b mod 2a)が、a以下であると判別した場合(S304:2)、パケット数は奇数となるためパケット数の調整処理が必要であると判断し、調整方法を決定すべく剰余(b mod 2a)とa/2とを比較する(S307)。
【0051】
ステップS307の比較において剰余(b mod 2a)が、a/2より大きいと判別したとき(S307:1)、送信すべきデータの内、{b−(b mod 2a)}分の量のデータを送信対象とし(S308)、送信対象としたデータを外部装置20へ送信する(S309)。
さらにパケットサイズを最大パケットサイズaの半分であるa/2に設定し(S310)、残りの(b mod 2a)分の量のデータを送信対象とし(S311)、送信対象としたデータを外部装置20へ送信する(S312)。
【0052】
ステップS307の比較において剰余(b mod 2a)が、a/2以下であると判別したとき(S307:2)、送信すべきデータの内、{b−a−(bmod 2a)}分の量のデータを送信対象とし(S313)、送信対象としたデータを外部装置20へ送信する(S314)。
さらにパケットサイズを最大パケットサイズaの半分であるa/2に設定し(S315)、残りの{a+(b mod 2a)}分の量のデータを送信対象とし(S316)、送信対象としたデータを外部装置20へ送信する(S317)。
このようにステップS302にて算出したデータのサイズに基づきパケットサイズを調整することにより、パケット数を偶数に調整することが可能となる。
【0053】
なおステップS306、S309、S312、S314及びS317におけるデータの送信処理は、以下に示すトランザクション処理により行われる。
図5は本発明の通信システムにおいて、処理装置10から外部装置20へデータを送信する場合の処理装置10の処理を示すフローチャートである。
処理装置10は、外部装置20へデータを送信するトランザクション処理を実行するためのOUTトランザクションループを各論理デバイス23a、23b、23c及び23dに対して設定し(S401)、データの送信の対象となる任意の論理デバイス、例えば論理デバイス23aに対する通信の制御の権利を示す制御コマンドであるトークンを、外部装置20へ送信する(S402)。
【0054】
そして処理装置10は、ステップS301、S310及びS315にて設定したパケットサイズでデータを外部装置20へ送信し(S403)、外部装置20からデータを受信したことを示すハンドシェイクパケットを受信して(S404)、トランザクションループの設定を終了する(S405)。
【0055】
次に本発明の通信システムにおける処理装置10及び外部装置20の他のパケット数調整処理について説明する。
図6は本発明の通信システムにおいて、外部装置20から処理装置10へデータを送信する場合の処理装置10のパケット数調整処理を示すフローチャートである。
受信すべきデータのパケットサイズを最大パケットサイズ(以下、最大パケットサイズをcとして示す)に設定させるパケットサイズ設定命令を外部装置20へ送信し(S501)、外部装置20から設定されたパケットサイズにて送信されるデータを受信する(S502)。
そして受信したデータのデータサイズ(以下、データサイズをdとして示す)を集計し(S503)、集計したデータサイズを最大パケットサイズcの2倍である2cにて除算し(S504)、除算して得られた剰余(以下、剰余を(d mod 2c)として示す)を0及びcと比較し(S505)、当該比較により受信したパケット数を算出する。
【0056】
ステップS505の比較において剰余(d mod 2c)が、0又はcより大きいと判別した場合(S505:1)、パケット数は偶数となるためパケット数の調整処理は不要であると判断して処理を終了する。
【0057】
ステップS505の比較において剰余(d mod 2c)が、c以下であると判別した場合(S505:2)、パケット数は奇数となるためパケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを0に設定させるパケットサイズ設定命令を外部装置20へ送信する(S506)。
そして外部装置20から設定されたパケットサイズ、即ちパケットサイズが0で、送信すべきデータを含まないダミーパケットを受信し(S507)、処理を終了する。
このようにステップS502にて算出したデータのサイズに基づきダミーパケットを送信させることにより、パケット数を偶数に調整することが可能となる。
【0058】
なおステップS502及びS507におけるデータの受信処理は、以下に示すトランザクション処理により行われる。
図7は本発明の通信システムにおいて、外部装置20から処理装置10へデータを送信する場合の処理装置10の処理を示すフローチャートである。
処理装置10は、外部装置20にデータを送信させるトランザクション処理を実行するためのINトランザクションループを各論理デバイス23a、23b、23c及び23dに対して設定し(S601)、データを送信させる対象となる任意の論理デバイス、例えば論理デバイス23aに対する通信の制御の権利を示す制御コマンドであるトークンを外部装置20へ送信する(S602)。
【0059】
そして処理装置10は、ステップS501及びS506にて設定したパケットサイズで外部装置20から送信されるデータを受信し(S603)、外部装置20へデータを受信したことを示すハンドシェイクパケットを送信して(S604)、トランザクションループの設定を終了する(S605)。
【0060】
次に本発明の通信システムにおける処理装置10及び外部装置20の更に他のパケット数調整処理について説明する。
図4及び図6を用いて説明したパケット数調整処理は、データを送信する都度、調整を行う形態を示しているが、各論理デバイス23a、23b、23c及び23dの中で、任意の一の論理デバイス、例えば論理デバイス23aを連続して複数のデータの送信に使用する場合は、一連のデータの送信を完了し、他の論理デバイス、例えば論理デバイス23bを使用する前に、パケット数調整処理を行うようにしてもよい。
【0061】
図8は本発明の通信システムにおいて、処理装置10から外部装置20へ連続してデータを送信する場合の処理装置10のパケット数調整処理を示すフローチャートである。
処理装置10では、各論理デバイス23a、23b、23c及び23dの中の任意の一の論理デバイス、例えば論理デバイス23aの使用を開始する場合、予めRAM14に記録領域を確保しているパケット数の累計値を初期化、即ち0に設定し(S701)、パケットサイズを最大パケットサイズに設定する(S702)。
そして例えば図5に示すOUTトランザクションループを用いたトランザクション処理により、一又は複数のデータを外部装置20が備える論理デバイス23aに対して送信する(S703)
なおデータを送信する都度、例えば図6に示す処理を用いることにより、送信したデータサイズに基づいてパケット数を算出し(S704)、算出したパケット数をRAM14に記録している累計値に加算していくことにより論理デバイス23aに対するパケットするの累計値を算出する(S705)。
そして例えば論理デバイス23b等の他の論理デバイスの使用の開始するため論理デバイス23aの使用を終了する場合に、算出した累計値が偶数であるか奇数であるかを判定する(S706)。
【0062】
ステップS706の判定において、累計値が偶数であると判定した場合(S706:1)、パケット数の調整処理は不要であると判断して処理を終了する。
ステップS706の判定において、累計値が奇数であると判定した場合(S706:2)、パケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを0に設定し(S707)、パケットサイズが0のダミーパケットを送信する(S708)。
このように一の論理デバイス23aを使用して複数回データを送信する場合には、データを送信する都度、パケット数の調整処理を行うのではなく、一の論理デバイス23aを使用して送信した一連のデータの送信処理を終了時にパケット数の調整処理を行うことで、通信効率の低下を防止することが可能である。
なおステップS703及びS708におけるデータの送信処理は、図5を用いて説明したトランザクション処理と実質的に同様であるため、図5及びその説明を参照するものとし、その説明を省略する。
【0063】
次に本発明の通信システムにおける処理装置10及び外部装置20の更に他のパケット数調整処理について説明する。
図8を用いて説明したパケット数調整処理では、処理装置10にて送信したパケット数の累計値を算出する形態を示しているが、例えば外部装置20から処理装置10へデータを送信する場合においては、外部装置20にて送信したパケット数の累計値を算出するようにしてもよい。
【0064】
図9は本発明の通信システムにおいて、外部装置20から処理装置10へ連続してデータを送信する場合の処理装置10のパケット数調整処理を示すフローチャートである。
処理装置10では、外部装置20が備える任意の一の論理デバイス、例えば論理デバイス23aの使用を開始する場合、論理デバイス23aの使用を開始する命令である開始通知を送信し(S801)、更に受信すべきデータのパケットサイズを最大パケットサイズに設定させるパケットサイズ設定命令を外部装置20へ送信する(S802)。
そして例えば図7に示すINトランザクションループを用いたトランザクション処理により、一又は複数のデータを外部装置20から送信させ、処理装置10では外部装置20から送信されたデータを受信する(S803)。
なおこのとき外部装置20では、データを送信する都度、送信したパケット数の累計値を算出する。
そして例えば論理デバイス23b等の他の論理デバイスの使用を開始するため論理デバイス23aの使用を終了する場合に、外部装置20では、算出した累計値を示す累計値情報を処理装置10へ送信し、処理装置10では、外部装置20から送信された累計値情報を受信し(S804)、受信した累計値情報が示すパケット数が、偶数であるか奇数であるかを判定する(S805)。
【0065】
ステップS805の判定において、累計値が偶数であると判定した場合(S805:1)、パケット数の調整処理は不要であると判断して処理を終了する。
ステップS805の判定において、累計値が奇数であると判定した場合(S805:2)、パケット数の調整処理が必要であると判断し、送信すべきデータを含まないダミーパケットを送信させるべくパケットサイズを0に設定させるパケットサイズ設定命令を外部装置20へ送信する(S806)。
そして外部装置20から設定されたパケットサイズ、即ちパケットサイズが0で、送信すべきデータを含まないダミーパケットを受信し(S807)、処理を終了する。
なおステップS803及びS807におけるデータの受信処理は、図7を用いて説明したトランザクション処理と実質的に同様であるため、図7及びその説明を参照するものとし、その説明を省略する。
【0066】
前記実施の形態では、パケットサイズの調整及びダミーパケットの送信によりパケット数を調整する形態を示したが、本発明はこれに限らず、他の方法を用いてパケット数を調整するようにしてもよい。
【0067】
【発明の効果】
以上詳述した如く本発明に係るデータ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体では、パーソナルコンピュータ等の処理装置と、USB等の規格にて規定され複数の論理デバイスを有する外部装置とを接続したシステムにて、一の論理デバイスに関するデータを送信する場合に、パケット数を偶数個に調整することにより、属性がDATA0であるパケットにて送信を開始し、DATA1であるパケットにて完了させることができるのでシーケンスの管理が複雑化することを防止する等、優れた効果を奏する。
【図面の簡単な説明】
【図1】本発明の通信システムを示すブロック図である。
【図2】本発明の通信システムが備える処理装置及び外部装置の接続確立時の初期化処理を示すフローチャートである。
【図3】本発明の通信システムが備える処理装置及び外部装置の接続確立時のセットアップ処理を示すフローチャートである。
【図4】本発明の通信システムにおいて、処理装置から外部装置へデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図5】本発明の通信システムにおいて、処理装置から外部装置へデータを送信する場合の処理装置の処理を示すフローチャートである。
【図6】本発明の通信システムにおいて、外部装置から処理装置へデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図7】本発明の通信システムにおいて、外部装置から処理装置へデータを送信する場合の処理装置の処理を示すフローチャートである。
【図8】本発明の通信システムにおいて、処理装置から外部装置へ連続してデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【図9】本発明の通信システムにおいて、外部装置から処理装置へ連続してデータを送信する場合の処理装置のパケット数調整処理を示すフローチャートである。
【符号の説明】
10 処理装置
20 外部装置
L 通信線

Claims (12)

  1. 処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを用い、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信するデータ送信方法において、
    前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整することを特徴とするデータ送信方法。
  2. 処理装置と該処理装置に接続し複数の論理デバイスを有する外部装置とを備え、異なる二つの属性が交互に付与されるパケット単位で一方の装置から他方の装置へデータを送信する通信システムにおいて、
    前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整する調整手段を備え、
    前記調整手段は、一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、調整すべくなしてあることを特徴とする通信システム。
  3. 送信すべきデータのサイズを算出する手段を備え、
    前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする請求項2に記載の通信システム。
  4. 前記データのパケット数を算出する手段を備え、
    前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットの送信によりパケット数を調整すべくなしてあることを特徴とする請求項2に記載の通信システム。
  5. 前記調整手段は、データを送信する都度、調整すべくなしてあることを特徴とする請求項2から請求項4のいずれかに記載の通信システム。
  6. 一の論理デバイスに関する一又は複数のデータの送信を終了する場合に、送信したデータのパケット数の累計値を算出する手段を備え、
    前記調整手段は、算出したパケット数の累計値が奇数であるときに前記データを含まないダミーパケットの送信によりパケットを調整すべくなしてあることを特徴とする請求項2に記載の通信システム。
  7. 前記処理装置及び外部装置間の接続は、USB(Universal Serial Bus)にて規定された規格に基づくことを特徴とする請求項2から請求項6のいずれかひとつに記載の通信システム。
  8. 複数の論理デバイスを有する外部装置を接続し、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信する処理装置において、
    前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整する調整手段を備え
    前記調整手段は、一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、調整すべくなしてあることを特徴とする処理装置。
  9. 送信すべきデータのサイズを算出する手段を備え、
    前記調整手段は、算出したデータのサイズに基づくパケットサイズの調整によりパケット数を調整すべくなしてあることを特徴とする請求項8に記載の処理装置。
  10. 受信したデータのパケット数を算出する手段を備え、
    前記調整手段は、算出したパケット数が奇数である場合に前記データを含まないダミーパケットを送信させる命令を前記外部装置へ送信すべくなしてあることを特徴とする請求項8に記載の処理装置。
  11. 複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムにおいて、
    コンピュータに、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整させる手順を含むことを特徴とするコンピュータプログラム。
  12. 複数の論理デバイスを有する外部装置を接続するコンピュータに、異なる二つの属性が交互に付与されるパケット単位で前記外部装置とデータを送受信させるコンピュータプログラムを記録してある、コンピュータでの読み取りが可能な記録媒体において、
    コンピュータに、前記外部装置が有する複数の論理デバイスの中の一の論理デバイスに関するデータを、前記複数の論理デバイスで共用された一のエンドポイントを介して前記一の論理デバイスへ送信する場合に、前記一の論理デバイスに関するデータを送信後、前記外部装置が有する他の論理デバイスに関するデータを送信する前に、前記一の論理デバイスに関するデータに係るパケット数を偶数個に調整させる手順を含むコンピュータプログラムを記録してあることを特徴とするコンピュータでの読み取りが可能な記録媒体。
JP2002159554A 2002-05-31 2002-05-31 データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体 Expired - Fee Related JP4439161B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002159554A JP4439161B2 (ja) 2002-05-31 2002-05-31 データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002159554A JP4439161B2 (ja) 2002-05-31 2002-05-31 データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2004005168A JP2004005168A (ja) 2004-01-08
JP4439161B2 true JP4439161B2 (ja) 2010-03-24

Family

ID=30429285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002159554A Expired - Fee Related JP4439161B2 (ja) 2002-05-31 2002-05-31 データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4439161B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4333765B2 (ja) 2007-03-28 2009-09-16 ブラザー工業株式会社 デバイス制御システム

Also Published As

Publication number Publication date
JP2004005168A (ja) 2004-01-08

Similar Documents

Publication Publication Date Title
US6282597B1 (en) Information processing apparatus, control method, and transmission medium using thin protocol that responds to A/V control commands
CN1551592B (zh) 数据传输控制装置、电子设备及数据传输控制方法
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
JP2006343815A (ja) 通信装置、通信方法、通信システム
JP3630971B2 (ja) データ通信方法、装置、システム、及び記憶媒体
JPH10229410A (ja) データ処理装置、電子機器および通信システム
JP2002351813A (ja) 伝送装置及び伝送方法
JP4439161B2 (ja) データ送信方法、通信システム、処理装置、コンピュータプログラム及び記録媒体
US6457079B1 (en) Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with said two communication apparatuses
JPH11145995A (ja) バスのデータ伝送方式
US8427955B2 (en) Method and apparatus for transferring data
JP2000286855A (ja) 通信システム及び通信機器
JP3495878B2 (ja) データ処理方法、データ処理装置及びプリンタ
KR20070010945A (ko) 피디에이에서 호스트 씨피유와 주변 기기 간의 에스피아이통신 방법 및 시스템
JP2658931B2 (ja) プリンタコントローラ
JP3897773B2 (ja) 通信方法及び通信装置
JP3495879B2 (ja) データ処理方法、データ処理装置、及びコンピュータ読み取り可能な記録媒体
JP3356129B2 (ja) 通信機器
JPH10336252A (ja) シリアルデータ転送制御装置およびシリアルデータ転送方法
JP2639248B2 (ja) 通信インターフェイス装置
JP2003333045A (ja) パワーマネージメント
JP4164990B2 (ja) データ通信システム
JPH11177589A (ja) データ転送装置およびデータ転送装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JPH10320345A (ja) バスコントローラ
EP1459191B1 (en) Communication bus system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080204

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20080704

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091204

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees