(57)【要約】【課題】情報処理装置と周辺機器との間のＵＳＢ規格に準拠したデータ通信を実行するデータ通信システム、ユニットおよびデータ通信方法を提供すること。【解決手段】データ通信システム１０は、メインユニット２０と、少なくとも１つのサブユニット５０とから構成され、外部装置とＵＳＢプロトコルによるデータ通信を実行する。メインユニットは、ＵＳＢ装置としての機能を提供するためのファンクション提供手段４０と、サブユニット５０との間のデータ伝送を制御するデータフロー制御手段４６とを備える。サブユニット５０は、ＵＳＢデバイス提供手段８０と、前記外部装置との信号伝送を実行するバス・インタフェース提供手段８２と、前記メインユニットとのデータ交換手段とを備える。【選択図】  図７
2008117289.tif 000002
【特許請求の範囲】
【請求項１】
メインユニットと、少なくとも１つのサブユニットとから構成され、外部装置とＵＳＢプロトコルによるデータ通信を実行するデータ通信システムであって、
前記メインユニットは、
ＵＳＢ装置としての機能を提供するためのファンクション提供手段と、前記サブユニットを識別して前記サブユニットとの間のデータ伝送を制御するデータフロー制御手段とを備え、
前記サブユニットは、
前記外部装置との信号伝送を実行するバス・インタフェース提供手段と、前記データフロー制御手段による調停を受けるＵＳＢデバイス提供手段と、前記メインユニットとのデータ交換手段とを備える、
データ通信システム。
【請求項２】
前記ＵＳＢデバイス提供手段は、ＵＳＢホストとしての前記外部装置との論理的通信路を確立するためのエンドポイントを提供し、
前記データ交換手段は、前記エンドポイントと前記メインユニットとの間のデータ交換を実行する、
請求項１に記載のデータ通信システム。
【請求項３】
前記データフロー制御手段は、
データの送信元または送信先の前記サブユニットを識別し、
前記外部装置からの処理要求または外部指令に応じて前記サブユニットとの間の前記データ伝送を制御する、
請求項１または２に記載のデータ通信システム。
【請求項４】
少なくとも１つのサブユニットを装着するためのスロットを備え、外部装置とＵＳＢプロトコルによるデータ通信を実行可能とするメインユニットであって、
前記メインユニットは、
ＵＳＢ装置としての機能を提供するためのファンクション提供手段と、前記外部装置からの処理要求または外部指令に応じて、前記サブユニットとの間のデータ伝送を制御するデータフロー制御手段とを備える
メインユニット。
【請求項５】
前記メインユニットは、
複数の前記スロットを離間して配設する、請求項４に記載のメインユニット。
【請求項６】
ＵＳＢ装置としての機能を提供するためのメインユニットに装着され、外部装置とＵＳＢプロトコルによるデータ通信を実行可能とするサブユニットであって、
前記サブユニットは、
前記外部装置との信号伝送を実行するバス・インタフェース提供手段と、ＵＳＢデバイス提供手段と、前記メインユニットとのデータ交換手段とを備える、
サブユニット。
【請求項７】
前記ＵＳＢデバイス提供手段は、ＵＳＢホストとしての前記外部装置との論理的通信路を確立するためのエンドポイントを提供し、
前記データ交換手段は、前記エンドポイントと前記メインユニットとの間のデータ交換を実行する、
請求項６に記載のサブユニット。
【請求項８】
前記サブユニットは、
外部指令に応じて、前記メインユニットとの間のデータ伝送を制御するデータフロー制御手段を備える
請求項６または７に記載のサブユニット。
【請求項９】
前記サブユニットは、指向性アンテナを備える、
請求項６〜８のいずれか１項に記載のサブユニット。
【請求項１０】
前記サブユニットは、データフローを切換えるための外部指令を受付ける指示手段を含む、
請求項６〜９のいずれか１項に記載のサブユニット。
【請求項１１】
メインユニットと少なくとも１つのサブユニットとから構成されるデータ通信システムと、外部装置とのＵＳＢプロトコルによるデータ通信方法であって、
前記データ通信方法は、
前記サブユニットと前記外部装置との論理的通信路を確立するステップと、
前記論理的通信路を介して、ＵＳＢプロトコルにしたがいデータを転送するステップと、
前記サブユニットを識別可能に、前記サブユニットと前記メインユニットとの前記データの交換を実行するステップと
を含む、
データ通信方法。
【請求項１２】
前記データ通信方法は、
前記データに応答した要求処理を実行するステップと、
前記要求処理または外部指令に応答して、前記データの交換を制御するステップとを含む、
請求項１１に記載のデータ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユニバーサル・シリアル・バス（ＵＳＢ）技術に関し、より詳細には、情報処理装置と周辺機器との間のＵＳＢ規格に準拠したデータ通信を実行するデータ通信システム、ユニットおよびデータ通信方法に関する。
【背景技術】
【０００２】
現在、多くのパーソナル・コンピュータ（ＰＣ）などの情報処理装置には、周辺機器を接続するためのインタフェースとして、ユニバーサル・シリアル・バス（ＵＳＢ）インタフェースが標準的に備えられている。また近年、ＵＳＢの物理層に無線通信技術を適用したワイヤレスＵＳＢ（ＷＵＳＢ）規格も提案されている。
【０００３】
ＵＳＢプロトコルにおいては、ＵＳＢホストとＵＳＢデバイスとの間の通信は、３層モデルを用いて説明される。すなわち、ＵＳＢシステムは、（１）ホスト−デバイス間の有線や無線による物理的な伝送信号を制御するＵＳＢバス・インタフェース層と、（２）ＵＳＢホストとＵＳＢデバイスとの通信における、論理的なデータ伝送の端点を提供し管理するＵＳＢデバイス層と、（３）ＵＳＢホスト上で実行されるクライアント・ソフトウェアと、ＵＳＢデバイスのファンクションとの論理的な通信を提供するファンクション層とから構成される。
【０００４】
ＰＣなどのＵＳＢホストと、周辺機器などのＵＳＢデバイスとは、ＵＳＢホスト側の通信バッファと、ＵＳＢデバイス側のエンドポイント（同じく通信用バッファで、第２層に位置する）との論理的な通信路（パイプ）により接続され、第３層においては、ＵＳＢホスト側のクライアント・ソフトウェアとＵＳＢデバイス側のファンクションとは、少なくとも１つのパイプから構成されるパイプ・バンドル（インタフェースを構成）を介して論理的な通信を行い、周辺機器の各種デバイス機能がＵＳＢホストに提供される。
【０００５】
またＵＳＢホストは、ハブを介して複数のＵＳＢデバイスと一対多で接続され、バス上のデータ転送は、ＵＳＢホスト上の第２層に対応するＵＳＢシステム・ソフトウェアによって制御されている。ＵＳＢホストによる集中制御形式を採用しているため、ＵＳＢデバイスは、単一のＵＳＢホストによって制御され、複数のＵＳＢホストによって同時的に共用されることはできなかった。
【０００６】
ＵＳＢデバイスを複数のＵＳＢホスト間で共用させることができると利便性が向上することから、例えば、特開２００４−２９５４０７号公報（特許文献１）は、上流側コネクタに接続される複数のホストＰＣの状態を優先度に基づいて監視する接続状態監視ＣＰＵと、接続状態監視ＣＰＵにより下流側コネクタに接続するホストを切り換えるセレクタとを備えたＵＳＢハブ装置が開示している。
【０００７】
しかしながら、上述した従来技術では、上流側ポートの接続状態を監視し、ホスト機器の電源がオフ（あるいは未接続）、またはサスペンド状態となっているかを判断して、上流側ポートと下流側ポートの電気的な接続を切換えるものであり、ＵＳＢデバイスが同時的に複数のＵＳＢホストにより論理的に認識されるというものではなく、利便性の点から充分なものではなかった。
【特許文献１】特開２００４−２９５４０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は上記従来技術に鑑みてなされたものであり、複数のＵＳＢホストに接続および認識され、複数のＵＳＢホストから要求に応答して処理を実行し、ＵＳＢ装置間の自由度の高いデータフローを提供するデータ通信システム、ユニットおよびデータ通信方法を提供することを目的とする。
【０００９】
また、本発明の他の目的は、簡易な操作でＵＳＢの中継器として機能させることができ、ＵＳＢ装置間の自由度の高いデータフロー制御を可能とするデータ通信システム、ユニットおよびデータ通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するために、ＵＳＢホストやＵＳＢデバイスとしてのファンクションを提供するファンクション提供手段を含むメインユニットと、外部装置との論理的な通信路を提供するＵＳＢデバイス提供手段および無線または有線による外部装置との実質的な通信を実行するＵＳＢバス・インタフェース提供手段とを含むサブユニットとからなる、データ通信システムという構成を採用する。メインユニットは、少なくとも１つのサブユニットと電気的・論理的に接続され、各サブユニットと接続される外部装置とは、各サブユニットのＵＳＢデバイス提供手段によって提供される論理的な通信路を介して接続される。メインユニットは、サブユニットを識別し、メインユニット−サブユニット間またはメインユニットを介したサブユニット間のデータ伝送は、データフロー制御手段によって制御される。
【００１１】
上記構成により、例えば、デバイス機能を備えるメインユニットは、サブユニットを介して複数のＵＳＢホストとしての外部装置と接続されて、同時的に各外部装置によって論理的に認識されることが可能となる。メインユニットは、サブユニットを識別することにより要求の送信元を特定し、メインユニットは、各サブユニットからの要求に応答して処理を実行し、複数の外部装置によるデバイス機能の共用を可能とする。また、メインユニットと、複数のサブユニットとの間のデータフローを制御する構成によって、サブユニットに接続される外部装置間の多様な接続様式を提供する中継器としても機能させることが可能となる。
【００１２】
すなわち本発明によれば、メインユニットと、少なくとも１つのサブユニットとから構成され、外部装置とＵＳＢプロトコルによるデータ通信を実行するデータ通信システムであって、
前記メインユニットは、
ＵＳＢ装置としての機能を提供するためのファンクション提供手段と、前記サブユニットを識別して前記サブユニットとの間のデータ伝送を制御するデータフロー制御手段とを備え、
前記サブユニットは、
前記外部装置との信号伝送を実行するバス・インタフェース提供手段と、前記データフロー制御手段による調停を受けるＵＳＢデバイス提供手段と、前記メインユニットとのデータ交換手段とを備える、
データ通信システムが提供される。
【００１３】
前記ＵＳＢデバイス提供手段は、ＵＳＢホストとしての前記外部装置との論理的通信路を確立するためのエンドポイントを提供し、前記データ交換手段は、前記エンドポイントと前記メインユニットとの間のデータ交換を実行することができる。また、前記データフロー制御手段は、データの送信元または送信先の前記サブユニットを識別し、前記外部装置からの処理要求または外部指令に応じて前記サブユニットとの間の前記データ伝送を制御することができる。
【００１４】
また本発明によれば、少なくとも１つのサブユニットを装着するためのスロットを備え、外部装置とＵＳＢプロトコルによるデータ通信を実行可能とするメインユニットであって、
前記メインユニットは、
ＵＳＢ装置としての機能を提供するためのファンクション提供手段と、前記外部装置からの処理要求または外部指令に応じて、前記サブユニットとの間のデータ伝送を制御するデータフロー制御手段とを備える
メインユニットが提供される。
【００１５】
前記メインユニットは、複数の前記スロットを離間して配設することができる。
【００１６】
さらに本発明によれば、
ＵＳＢ装置としての機能を提供するためのメインユニットに装着され、外部装置とＵＳＢプロトコルによるデータ通信を実行可能とするサブユニットであって、
前記サブユニットは、
前記外部装置との信号伝送を実行するバス・インタフェース提供手段と、ＵＳＢデバイス提供手段と、前記メインユニットとのデータ交換手段とを備える、サブユニットが提供される。
【００１７】
前記ＵＳＢデバイス提供手段は、ＵＳＢホストとしての前記外部装置との論理的通信路を確立するためのエンドポイントを提供し、前記データ交換手段は、前記エンドポイントと前記メインユニットとの間のデータ交換を実行することができる。また、前記サブユニットは、外部指令に応じて、前記メインユニットとの間のデータ伝送を制御するデータフロー制御手段を備えることができる。さらに、前記サブユニットは、指向性アンテナを備えることができる。前記サブユニットは、データフローを切換えるための外部指令を受付ける指示手段を含むことができる。
【００１８】
本発明によれば、さらに、
メインユニットと少なくとも１つのサブユニットとから構成されるデータ通信システムと、外部装置とのＵＳＢプロトコルによるデータ通信方法であって、
前記データ通信方法は、
前記サブユニットと前記外部装置との論理的通信路を確立するステップと、
前記論理的通信路を介して、ＵＳＢプロトコルにしたがいデータを転送するステップと、
前記サブユニットを識別可能に、前記サブユニットと前記メインユニットとの前記データの交換を実行するステップと
を含む、データ通信方法が提供される。
【００１９】
前記データ通信方法は、前記データに応答した要求処理を実行するステップと、
前記要求処理または外部指令に応答して、前記データの交換を制御するステップとを含むことができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明を図面に示した実施形態をもって説明するが、本発明は、図面に示した実施形態に限定されるものではない。
【００２１】
図１は、メインユニットとサブユニットを含み構成されるデータ通信システム１０のハードウェア構成の実施形態を示すブロック図である。なお図１は、データ通信システム１０が、画像形成装置としての機能する場合の一実施形態を示している。データ通信システム１０は、メインユニット２０と、サブユニットＡ５０ａと、サブユニットＢ５０ｂとを含み構成される。メインユニット２０は、ＣＰＵ２２と、ＲＯＭ２４と、メモリ２６とを備えており、それぞれ内部バス３８で相互接続されて、ユーザ指令されたジョブを実行している。ＣＰＵ２２は、処理プログラムをＲＯＭ２４やＮＶＲＡＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ハードディスクなどの記憶装置３２からメモリ２６に読み出し、展開し、指令されたジョブのための処理を実行する。
【００２２】
メインユニット２０は、操作部２８および表示部３０を備え、操作部２８および表示部３０は、それぞれＣＰＵ２２へと内部バス３８を介して接続され、ユーザ・インタフェースを提供する。メインユニット２０は、さらに内部バス３８に接続されるインタフェース（Ｉ／Ｆ）３６を含み構成され、シリアル・バスおよびパラレル・バスとして構成される接続バス１２を介して接続されるサブユニット５０との入出力を管理している。プリンタ３４は、サブユニット５０と通信するＵＳＢホスト（以下、有線・無線のプロトコルにかかわらず、ＵＳＢプロトコル上のホストとなる外部装置をＵＳＢホストとして参照する。）からの要求を、インタフェース３６を介し受信して、ＣＰＵ２２による制御のもとで、印刷処理などの画像形成装置としてのデバイス処理を実行し、通信するＵＳＢホストにデバイス機能を提供している。すなわちメインユニット２０は、ＷＵＳＢプロトコルにおけるファンクション層に対応する、デバイス機能を実行するためのソフトウェアおよびハードウェア処理を提供する。
【００２３】
サブユニットＡ５０ａは、コントローラ５２と、メモリ５４と、無線通信部５６とを備えており、それぞれ内部バスで接続されて、ＵＳＢホストＡと、ＵＷＢ（Ultra Wide Band）通信プロトコルをベースとしたワイヤレスＵＳＢプロトコルに準拠した通信リンクを確立している。無線通信部５６は、アンテナ６４と接続し、ＵＷＢ高周波回路を含む物理層（UWB
RF PHY）６２と、ＵＷＢＢａｓｅＢａｎｄ回路を含む物理層（UWB BB PHY）６０とを含み構成される。ＵＷＢ−ＢＢ物理層６０は、おもに信号の変調・復調処理を行い、ＵＷＢ−ＲＦ物理層６２は、高周波信号の波形整形などを行い、これらは、マルチバンドＯＦＤＭ（Multi-band
Orthogonal Frequency Division Multiplexing）方式またはＤＳ−ＵＷＢ(Direct Sequence UWB)などのＩＥＥＥ８０２．１５ＴＧ３ａなどに準拠した通信プロトコルに従った物理層を構成する。
【００２４】
サブユニットＡ５０ａは、ＮＶＲＡＭ５８を含み構成され、ＮＶＲＡＭ５８は、ＵＳＢホストとのワイヤレスＵＳＢ通信を行うための接続コンテキストを格納し、接続先ＵＳＢホストを識別し、通信データの暗号化・復号化処理の際に用いられる。サブユニットＡ５０ａのメモリ５４は、接続先のＵＳＢホストＡやメインユニット２０からの伝送データをバッファリングし、ＵＳＢプロトコルにおけるエンドポイントを提供する。またメモリ５４には、ＵＳＢホストＡから割当てられるデバイス・アドレスや、メインユニット２０から割当てられるユニット識別値などの各種設定情報が格納される。
【００２５】
コントローラ５２は、ＭＡＣ（媒体アクセス制御）層６６を含み、接続先ＵＳＢホストＡとのＷＵＳＢプロトコルのデータリンク層に相当する制御を行う。すなわち、サブユニット５０は、ＷＵＳＢプロトコルにおけるＷＵＳＢバス・インタフェース層およびＷＵＳＢ論理デバイス層に対応するソフトウェア処理およびハードウェア処理を提供する。さらに、コントローラ５２は、接続バス１２を介してメインユニット２０と接続されるインタフェース６８と接続し、メインユニット２０とのデータ伝送を制御する。
【００２６】
また、メインユニット２０に接続される他方のサブユニットＢ５０ｂも、サブユニットＡ５０ａと同様の構成とされ、メインユニット２０ともインタフェースを介して接続され、ＵＳＢホストＢと、ワイヤレスＵＳＢ通信を行っている。サブユニットＡ５０ａおよびサブユニット５０ｂは、それぞれ接続先のＵＳＢホストから、独立にデバイス・アドレスが割当てられ、メインユニット２０からは、唯一のユニット識別値が割当てられて識別される。なお、メインユニット２０に接続されるサブユニット５０の数は、特に限定されるものではない。また、上述ではＷＵＳＢ通信による実施形態を示したが、他の実施形態では、有線のＵＳＢ１．ｘやＵＳＢ２．０の規格に準拠した物理層およびＭＡＣ層を備える構成とし、サブユニット５０とＵＳＢホストとを有線接続としてもよい。
【００２７】
図２は、メインユニットとサブユニットとを含み構成されるデータ通信システム１０の機能構成の実施形態を示すブロック図である。データ通信システム１０は、メインユニット２０と、サブユニット５０ａと、サブユニット５０ｂとを含み構成される。メインユニット２０は、少なくともひとつのファンクション提供手段４０を含み、通信相手となるＵＳＢホストにデバイス機能を提供している。
【００２８】
ファンクション提供手段４０は、処理部４１と、データフロー制御部４６とを含み構成される。データフロー制御部４６は、サブユニット５０を介して要求される複数のＵＳＢホストからの処理要求の衝突の調停などを行い、サブユニット−メインユニット間のデータフローを制御する。処理部４１は、各ＵＳＢホストからの処理要求に応答して、たとえば画像形成装置としての印刷処理などの各種処理を実行する。なお、接続されているサブユニット５０を識別するためのユニット識別値は、ユニット識別値記憶部４８に格納され管理される。
【００２９】
ファンクション提供手段４０は、実行待ちの処理を管理するためのジョブキュー記憶部４４を含み、データフロー制御部４６は、サブユニット５０を介したＵＳＢホストからの処理要求を受信し、ジョブ（処理要求）と要求元サブユニット５０に割当てられたユニット識別値とを組にして、例えば、処理要求の先着順にジョブキューにエントリする。データフロー制御部４６は、エントリ順に、処理に必要なデータをサブユニット５０から取得し、処理部４１は、データフロー制御部４６からデータを受取り、ジョブキューのエントリ順に処理を実行する。例えば印刷処理など、一連の印刷データを受信することが好ましい処理にあっては、データフロー制御部４６は、一連の印刷データの受信が完了するまでの間、ジョブ進行中のサブユニット５０からの印刷データの読込およびバッファリングを優先して実行する制御とすることができる。また、他の実施形態では、一方のＵＳＢホストからの印刷ジョブを実行中は、他のＵＳＢホストに作業中である旨を通知するデータフロー制御としても良い。
【００３０】
メインユニット２０のデバイス機能として、例えば、ランダムアクセスが可能なストレージ機能を提供する他の実施形態では、両方のサブユニット５０からのデータ（ファイルの断片としての）書込要求やデータ読出要求ごとに順次ジョブキューにエントリし、逐次、サブユニット５０からデータを読込んで、フラッシュメモリやＨＤＤなどの記憶装置に書込み、または記憶装置から読出してサブユニット５０に受け渡す制御としてもよい。
【００３１】
また他の実施形態では、メインユニット２０のデバイス機能として、スピーカやディスプレイなどの出力インタフェース機能を提供する場合では、要求の先着順や、ＵＳＢホストや操作部２８により指定されたＵＳＢホストによって、排他的に利用される制御としてもよい。さらに他の実施形態では、メインユニット２０のデバイス機能として、キーボードなどの入力インタフェース機能を提供する場合では、各サブユニット５０と通信するＵＳＢホストからのポーリングに応じて、状態を通知（インタラプト転送モード）する制御としてもよい。複数のＵＳＢホストからの処理要求の調停処理およびデータフロー制御の方法は、特に限定されるものではなく、提供するデバイス機能に応じた方法を採用することができる。
【００３２】
図２に示した実施形態では、また、メインユニット２０のファンクション提供手段４０は、デバイス情報格納部４２を含み構成され、各サブユニット５０と通信するＵＳＢホストとのエニュメレーション（接続開始時の初期設定）の際に、自身のデバイス情報を各ＵＳＢホストへ通知してＵＳＢ通信を確立するための情報を格納する。このような情報としては、デバイス・ディスクリプタ、コンフィギュレーション・ディスクリプタ、インタフェース・ディスクリプタ、エンドポイントディスクリプタなどがあり、ＵＳＢプロトコルで使用されるデバイス情報である。
【００３３】
一方、メインユニット２０と接続されるサブユニット５０は、設定記憶部７０と、データ交換部７２と、エンドポイント部７４を含み構成される。設定記憶部７０は、接続先のＵＳＢホストから割当てられるデバイス・アドレスや、メインユニット２０から割当てられるユニット識別値を格納する。エンドポイント部７４は、コントロール制御用通信に用いられるエンドポイント・ゼロ７６と、他のメッセージやデータを送受信するためのエンドポイントｎ（ｎは自然数を表し、送信用および受信用を含む複数のエンドポイントから構成される。）７８とを含み構成される。なお、エンドポイント・ゼロ７６およびエンドポイントｎ７８は、各サブユニット５０が備える、ＲＡＭ（Random Access Memory）やＦＩＦＯ（First In First Out）などのメモリ５４の記憶領域により与えられ、メインユニット２０と通信相手のＵＳＢホストとの間を伝送するデータを一時的にバッファリングする。また、各エンドポイントには識別番号が割当てられている。
【００３４】
エンドポイント・ゼロ７６およびエンドポイントｎ７８は、ＵＳＢホストからのデータ伝送の端点として機能し、ＵＳＢホストは、デバイス・アドレスとエンドポイント番号を指定してメッセージやデータの転送を行う。一方、メインユニット２０のファンクション提供手段４０も、エンドポイント番号を識別してメッセージやデータの送受信を行う。よって、ＵＳＢホスト上のクライアント・ソフトウェアは、各エンドポイントを介して、デバイスのファンクション提供手段４０との論理的な通信を実行する。なお、ＵＳＢホスト上のバッファとエンドポイントとの論理的な結びつきによる論理的通信路は、一般に、パイプと呼称される。
【００３５】
データ交換部７２は、ＵＳＢホストからのメッセージやデータを受取った際にエンドポイント部７４の各受信用エンドポイントにバッファリングされるメッセージやデータを読込み、設定記憶部７０に格納されるユニット識別値および制御データを添付して、メインユニット２０へ送信する処理の制御を実行する。データ転送が正常に完了した際には、該エンドポイントを再び受信可能状態に遷移させる。またデータ交換部７２は、メインユニット２０からのデータやメッセージを受取り、エンドポイント部７４の指定された送信用エンドポイントに書込み処理を行う。なお、送信用エンドポイントに書き込まれたデータやメッセージは、コントローラ５２の制御により読出され、ＵＳＢホストへ転送される。
【００３６】
図３は、メインユニットに格納されるユニット識別値情報、およびサブユニットに格納される設定情報のデータ構造の実施形態を示す図である。図３（ａ）は、メインユニット２０に格納されるユニット識別値情報の実施形態を示す。図３（ａ）に示した実施形態では、ユニット識別値情報１００は、項目フィールド１００ａと、ユニット識別値をエントリするフィールド１００ｂと、各サブユニットに接続されているＵＳＢ装置がＵＳＢホストかＵＳＢデバイスかをエントリする接続タイプ・フィールド１００ｃとを含んで構成される。
【００３７】
メインユニット２０が備えるサブユニット装着のための装着スロット数のレコードが用意され、ユニット識別値には装着順にエントリされてゆき、各装着スロットにサブユニット５０が装着されているか否か、装着されている場合にはその識別値を管理している。このユニット識別値を、例えば、処理要求の調停の際に、優先順位としても使用することもできる。なお、サブユニットのタイプがホスト接続タイプかデバイス接続タイプかを登録するフィールド１００ｃの有無は任意であり、ＵＳＢホストが接続されるサブユニットが装着されることが前提のシステム構成であれば必ずしも要しない。
【００３８】
図３（ｂ）は、サブユニットＡ５０ａに格納される設定情報の実施形態を示す。図に示した実施形態では、設定情報１１０は、ユニット識別値をエントリするフィールド１１０ａと、サブユニットＡ５０ａと通信しているＵＳＢホストによって割当てられるデバイス・アドレスが登録されるフィールド１１０ｂとを含み構成される。また、フィールド１１０ｂは、ＵＳＢホストとの通信が確立しているか否かの判断に用いることができ、デバイス・アドレスのエントリがあれば、ＵＳＢホストとの通信が確立していると判断することができる。
【００３９】
図３（ｃ）は、サブユニットＢ５０ｂに格納される設定情報の実施形態を示し、同じく、ユニット識別値をエントリするフィールド１２０ａと、デバイス・アドレスが登録されるフィールド１２０ｂとを含む。サブユニットＡ５０ａと、サブユニットＢ５０ｂとは、各通信相手のＵＳＢホストから独立してデバイス・アドレスが割当てられ、各サブユニットと通信する各ＵＳＢホストは、デバイス・アドレスにより通信相手を特定している。一方、サブユニットＡ５０ａと、サブユニットＢ５０ｂとは、メインユニット２０から、同メインユニット２０内において唯一のユニット識別値が付与され、特定される。
【００４０】
図４は、メインユニットにおけるサブユニットの認識処理の実施形態を示すフローチャートである。まず、ステップＳ１００で、メインユニット２０の電源オンやバスライン（有線ＵＳＢの場合など）による電源供給を受けて起動し、処理を開始する。ステップＳ１０１で、メインユニット２０は、サブユニットへの電源ラインにかかる負荷などを監視し、サブユニット５０の新規装着の検出を試み、ステップＳ１０２で、新規装着が検出されたか否かの判断を行う。ステップＳ１０２の判断で、新規装着が検出されなかった場合には、再びステップＳ１０１へループさせ、新規装着を待受ける。
【００４１】
一方、ステップＳ１０２の判断で、新規サブユニット５０の装着を検出した場合は、ステップＳ１０３へ処理を分岐し、メインユニット２０は、接続されたサブユニット５０にユニット識別値を割当てて、ユニット識別値情報１００へエントリし、サブユニット５０との初期設定を行い、各エンドポイントとの論理的な通信を可能とする。初期設定が完了した以降、ステップＳ１０４で、メインユニット２０とサブユニット５０との間で通信が可能となる。
【００４２】
以下、メインユニットおよびサブユニットにＵＳＢホストが接続される際の、デバイス初期設定の制御フローについて説明する。図５は、メインユニットおよびサブユニットと、ＵＳＢホストとのデバイス初期設定（エニュメレーション）の実施形態を示すフローチャートである。図５に示した実施形態では、既にメインユニット２０とサブユニット５０とが電気的・論理的に接続されている状態を想定している。
【００４３】
図５に示した制御は、ステップＳ２００で、例えば、メインユニット２０の操作部２８からのオペレータから指示に応じて発行される接続指令を受けて処理が開始される。ステップＳ２０１では、サブユニット５０は、ＵＳＢホストに向けて接続要求を送信し、応答を受けて、ステップＳ２０２で、セキュリティ・エニュメレーションを開始して相互認証を行う。ステップＳ２０３では、ＵＳＢホストからのＧＥＴ＿ＤＩＳＣＲＩＰＴＯＲのコマンドに応答して、デバイス情報格納部に保存されている各種ディスクリプタをＵＳＢホストに通知する。
【００４４】
ステップＳ２０４では、ＵＳＢホストからのデバイス・アドレスの設定要求を受けて、サブユニット５０は、自身の設定記憶部７０へデバイス・アドレスを格納する。ステップＳ２０５ではさらに、ＵＳＢホストからのＳＥＴ＿ＤＥＳＣＲＩＰＴＯＲやＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮといったコマンドを受けて、サブユニットやメインユニットは必要な設定処理を行い、ＵＳＢデバイスとして稼働状態になる。そして、ステップＳ２０６で、ＵＳＢホストとのデータ通信を開始する。なお、上述したエニュメレーション中における、ホスト−データ通信システム間の通信は、各サブユニット５０のエンドポイント・ゼロ７６から構成されるコントロール制御用の論理的な通信路であるデフォルト・パイプを用いて行うことが可能である。
【００４５】
図６は、メインユニットとサブユニットとの通信によって伝送される通信パケットのデータ構造の実施形態を示す。ユニット間パケット１３０は、ユニット識別値をエントリするフィールド１３０ａと、エンドポイント番号をエントリするフィールド１３０ｂと、ＵＳＢホストのクライアント・ソフトウェアとメインユニット２０のファンクションとの間で交換されるデータをエントリするフィールド１３０ｃとを含み構成される。メインユニット２０と、各サブユニット５０との間では、ユニット間パケット１３０が交換され、ユニット識別値によってサブユニットが識別され、エンドポイント番号によってファンクション提供手段４０のインタフェースが識別される。なお、メインユニット２０とサブユニット５０との通信は、メインユニット２０が、送信元また送信先となるサブユニットを特定することができる限りにおいて、いかなる構成や方法によって実現することができる。
【００４６】
以下、メインユニットおよびサブユニットによって構成されるＵＳＢシステムにおけるデータフローについて説明する。図７は、メインユニットおよびサブユニットと、２つのＵＳＢホストとを含むＵＳＢシステムの概略構成、およびＵＳＢシステムにおけるデータフローの実施形態を示す概略図である。図７に示した実施形態では、ＵＳＢシステムは、データ通信システム１０と、ＵＳＢホストＡ９０ａと、ＵＳＢホストＢ９０ｂとを含んで形成されている。データ通信システム１０は、メインユニット２０と、メインユニットに接続されるサブユニット５０ａおよびサブユニット５０ｂとを含み構成され、サブユニットＡ５０ａはＵＳＢホストＡ９０ａと通信を行い、サブユニットＢ５０ｂはＵＳＢホストＢ９０ｂと通信を行っている。
【００４７】
図に示した実施形態ではメインユニット２０は、ＵＳＢプロトコルにおけるファンクション層に対応するデバイス機能を提供するためのファンクション提供手段４０を含み構成される。各サブユニット５０は、ＵＳＢデバイス層に対応するＷＵＳＢ論理デバイス（ＵＳＢデバイス提供手段）８０ａと、ＵＳＢバス・インタフェース層に対応するＷＵＳＢバス・インタフェース（バス・インタフェース提供手段）８２ａとを含み構成されている。各サブユニット５０のＷＵＳＢバス・インタフェース８２は、ＵＳＢホスト９０とのワイヤレス通信による実質的な通信を実行している。ＷＵＳＢ論理デバイス８０は、コントロール制御用通信に用いられるエンドポイント・ゼロ７６と、他のメッセージやデータを送受信するためのエンドポイントｎ７８とを含み構成される。
【００４８】
ＷＵＳＢバス・インタフェース８２は、接続先のＵＳＢホスト９０から送信されたトークンやハンドシェークなどを含むトランザクション・グループのパケットをデコードし、必要に応じてＡＣＫやＮＡＫといったハンドシェークをＵＳＢホスト９０へ応答する制御を実行する。またＷＵＳＢバス・インタフェース８２は、接続先のＵＳＢホスト９０からのトランザクション・グループに含まれるデータを、エンドポイント・ゼロ７６や受信用のエンドポイントｎ７８へ書込み、エンドポイント・ゼロ７６や送信用エンドポイントｎ７８に格納されるデータを読出し、ＵＳＢホスト９０により管理されたスケジュールに従ったデータ転送を行っている。
【００４９】
メインユニット２０は、各サブユニット５０と接続バス１２を介して電気的に接続され、ファンクション提供手段４０は、接続バス１２を介して、各サブユニット５０の各エンドポイントとのデータ交換を行い、エンドポイント・ゼロ７６の読書き、送信用エンドポイントｎ７８への書込み、および受信用エンドポイントｎ７８からの読出し処理を実行する。
【００５０】
なお、いくつかの同一の目的で用いられるエンドポイントｎ７８が集合してインタフェースを構成し、例えば、メインユニット２０がプリンタ機能を提供する場合には、プリンタ機能を提供するファンクション提供手段４０には、印字コントロール用のインタフェースと、印刷データ受信用のインタフェースとを含み構成され、ＵＳＢホスト９０は、要求処理に応じたインタフェースとのデータ転送を行う。
【００５１】
一方、各ＵＳＢホスト９０は、ファンクション層に対応するクライアント・ソフトウェア９２と、ＵＳＢデバイス層に対応するＷＵＳＢシステム・ソフトウェア９４と、ＵＳＢバス・インタフェース層に対応するＵＳＢホストコントローラ９６とを含み構成される。ＵＳＢホストコントローラ９６は、サブユニット５０とのトランザクション・グループを制御し、サブユニット５０のＷＵＳＢバス・インタフェース８２と、データおよびメッセージの交換を実行する。
【００５２】
ＵＳＢシステム・ソフトウェア９４は、ＵＳＢホスト上のバッファ（メモリ２６により構成される。）とサブユニット５０の各エンドポイントとの論理的通信路（パイプ）の管理を行い、サブユニット５０のエンドポイント・ゼロ７６ａとのコントロール制御用の論理的な接続であるデフォルト・パイプ８４を用いて、メインユニット２０およびサブユニット５０が提供するデバイス機能を管理している。
【００５３】
クライアント・ソフトウェア９２は、サブユニット５０のエンドポイントのセットと関連付けられるパイプ・バンドル８６を用いて、メインユニット２０のインタフェースを管理する。クライアント・ソフトウェア９２は、デバイス機能を利用するために、Ｉ／Ｏリクエスト・パケット（ＩＲＰｓ）によって、ＵＳＢホスト９０上のバッファと、接続先サブユニット５０の各エンドポイントとの間のデータ転送要求を行い、メインユニット２０のファンクション提供手段４０との通信を実行し、デバイス機能を利用している。
【００５４】
すなわち、各ＵＳＢホスト９０のクライアント・ソフトウェア９２は、接続するサブユニット５０のエンドポイントｎ７８とのデータ転送と、メインユニット２０とサブユニット５０の電気的・論理的な接続によるエンドポイントｎ７８とファンクション提供手段４０の通信とにより、メインユニット２０のファンクション提供手段４０へアクセスし、デバイス機能を利用することが可能となっている。その際は、ファンクション提供手段４０は、ユニット識別値によって要求元を特定し、データフロー制御部４６によるジョブ管理のもと、要求処理を実行し、デバイス機能を各ＵＳＢホスト９０へ提供することを可能としている。以下、データフロー制御部４６におけるジョブ管理の実施形態について、ジョブ管理データのデータ構造を参照しながら説明する。
【００５５】
図８は、データ通信システムにおける要求処理の調停処理およびデータフロー制御に使用されるジョブ管理データのデータ構造の実施形態を示す図である。なお図８は、データ通信システム１０が、画像形成装置として機能し、プリンタ処理を実行する場合の実施形態を例示している。図８に示した実施形態では、ジョブ管理データ１４０は、ジョブ番号をエントリするフィールド１４０ａと、ユニット識別値をエントリするフィールド１４０ｂと、待ちジョブをエントリするフィールドとを含み構成される。
【００５６】
ファンクション提供手段４０のデータフロー制御部４６は、例えば、印刷要求などの処理要求を受取り、ジョブキュー記憶部４４で管理されているジョブ管理データ１４０へ、ジョブ番号順にエントリしてゆく。データフロー制御部４６は、ジョブ管理データ１４０をルックアップし、ジョブ管理データ１４０のエントリ順に、要求処理に必要なデータを優先的に取得し、処理部４１の作業状態を監視しながら、処理部４１へ処理要求およびデータを受け渡す。処理部４１は、受取ったジョブを実行して行き、必要に応じてデータフロー制御部４６に処理応答を返す。データフロー制御部４６は、ジョブの完了と共にエントリを削除および他エントリのジョブ番号の繰り下げ処理を実行する。
【００５７】
図８に示した例では、ユニット識別値［１］のサブユニット５０と通信しているＵＳＢホストＡ９０ａから、印刷要求を受取り、ジョブ管理データ１４０のジョブ番号［１］に「印刷ジョブ１」がエントリされている。データフロー制御部４６は、ジョブ管理データ１４０に従って、ユニット識別値［１］のサブユニット５０からの印刷データを読込むために、エンドポイントからデータを取得して、処理部４１に印刷処理の開始を指令する。ジョブ番号［１］の処理を開始した以降に受取った、ユニット識別値［１］のサブユニット５０からの印刷ジョブ２およびユニット識別値［２］のサブユニット５０からの印刷ジョブ１は、ジョブ管理データ１４０の下位にエントリされ、ジョブ番号［１］の印刷ジョブ1の実行の際に用いられる印刷データを全て取得してから、順次開始され処理されて行く。
【００５８】
上位のジョブに関連するデータ取得が優先的に行われている間は、他のサブユニット５０のデータ転送用エンドポイントからの読出処理を待機する。また、一方のサブユニット５０からのデータ取得は、データ取得中のサブユニット５０に対して、接続バスを優先的に使用させる制御とすることができる。待機中のサブユニット５０は、データ転送要求を送付しているＵＳＢホストに対して、ＮＡＫやＮＹＥＴといった否定的なハンドシェークを応答し、ＵＳＢホストからのデータ伝送を待機させる制御としている。
【００５９】
論理デバイス層の機能手段を備える複数のサブユニット５０と接続されるメインユニット２０と、サブユニットを識別し、要求処理実行およびユニット間のデータフローを制御する手段を含む構成により、ＵＳＢデバイスとしてのデータ通信システム１０は、複数のＵＳＢホストに同時にＵＳＢ論理デバイスとして認識され、要求元のＵＳＢホストを識別して要求処理を実行することが可能となり、ＵＳＢデバイスとしての利便性およびＵＳＢ装置間のデータフローの自由度を向上させることができる。この際は、ＵＳＢホスト側のソフトウェアおよびハードウェア処理の改変を要求しない。また、データフロー制御手段を有する構成により、複数のＵＳＢホストからの処理要求が衝突した場合であっても、円滑に各ＵＳＢホストからの要求処理を実行することを可能とし、ＵＳＢデバイスとしての利便性を向上させることができる。
【００６０】
また、メインユニット２０とサブユニット５０とに分離した構成とすることにより、使用環境に応じて、有線接続用のサブユニットとワイヤレス通信用のサブユニットとを使い分けて装着することが可能となり、余分な部品構成（例えば有線・有線の両方の接続に対応させるための構成）を低減させることを可能とする。
【００６１】
以上、メインユニット２０およびサブユニット５０からなるデータ通信システム１０は、ＵＳＢデバイスとしてのみとして機能する場合の実施形態について説明してきた。しかしながら、他の実施形態では、データ通信システム１０は、ＵＳＢＯＴＧ（USB On The Go）規格に準拠するデュアル・ロール・デバイス（つまりＵＳＢホストおよびＵＳＢデバイスの両方として同時に機能）として構成とすることもでき、さらに自由度の高いＵＳＢ装置間のデータフローを提供することができる。その際には、サブユニット５０に、ＵＳＢホストおよびＵＳＢデバイスとして機能させるための制御を実行するＯＴＧコントローラ、またはＵＳＢホストとして機能させるためのホストコントローラを含む構成とすることができる。以下、メインユニットとサブユニットとの間の、より柔軟なデータフロー制御について説明する。
【００６２】
図９には、メインユニット２０と、ＵＳＢホストと通信するサブユニットＡ５０ａと、ＵＳＢデバイス（以下、有線・無線のプロトコルにかかわらず、ＵＳＢプロトコル上のデバイスとなる外部装置をＵＳＢデバイスとして参照する。）と通信するサブユニットＢ５０ｂとを含むデータ通信システム１０の実施形態の概略構成が示されている。図に示した実施形態では、データ通信システム１０は、メインユニット２０と、ＵＳＢホストと通信するサブユニットＡ５０ａと、ＵＳＢデバイスと通信するサブユニットＢ５０ｂとを含み構成される。メインユニット２０は、ファンクション層の機能手段を実現するファンクション・モジュール４３を含み構成される。各サブユニット５０は、ＵＳＢバス・インタフェース層の機能手段を実現するＵＳＢバス・インタフェース・モジュール８３と、ＵＳＢデバイス層の機能手段を実現するＵＳＢデバイス・モジュール８１とを含み構成される。
【００６３】
図に示した実施形態ではメインユニット２０は、バス経路選択部１６０を備え、サブユニット５０と、メインユニット２０のファンクション・モジュール４３とが通信する通常モードと、サブユニット５０のＵＳＢバス・インタフェース・モジュール８３同士が接続され、中継器として機能するブリッジ動作モードとの切換えを行うことを可能としている。メインユニット２０の操作パネルなどで構成される操作部２８は、通常モードとブリッジ動作モードの切換え指示を受付け、オペレータからの指示を受けて、経路管理部２９へ経路切換要求を発行する。要求を受けた経路管理部２９は、バス経路選択部１６０へ経路切換指令を発行し、通常動作モードとブリッジ動作モードとを切換える。すなわち、経路管理部２９は、メインユニット２０とサブユニット５０との間、またメインユニット２０を介したサブユニット間の、論理的なデータフローを制御する手段として機能する。
【００６４】
ブリッジ動作モードでは、ＵＳＢホスト同士またはＵＳＢデバイス同士が接続されると好ましくないため、接続するサブユニットＡ５０ａとサブユニットＢ５０ｂとが、両方ともＵＳＢホスト、または両方ともＵＳＢデバイスであるか否かの判断を行い、ＵＳＢホストとＵＳＢデバイスとの組合せであると判断された場合に、ブリッジ動作モードに切換える処理を行う制御としてもよい。このような判断は、例えば、ユニット識別値情報１００を用いて、フィールド１００ｃのエントリについて、ＵＳＢホストを「真」とし、ＵＳＢデバイスを「偽」として排他論理和を算出することにより判断することができるが、いかなる方法によっても判断することができる。
【００６５】
図９に示した実施形態では、メインユニット２０とサブユニット５０とのバス接続は、各サブユニット５０のＵＳＢバス・インタフェース・モジュール８３とメインユニット２０とを結ぶバスライン１５０と、ＵＳＢデバイス・モジュール８１とメインユニット２０とを結ぶバスライン１５２とを含み構成される。バスライン１５０およびバスライン１５２は、バス経路選択部１６０に接続され、バス経路選択部１６０は、ファンクション・モジュール４３に接続されるバスライン１５６と接続し、また内部に、バスライン１５６と、バスライン１５２ａおよびバスライン１５２ｂとの接続を切換えるためのスイッチ１５８ａおよびスイッチ１５８ｄを含んでいる。さらに、バス経路選択部１６０は、バスライン１５０同士を接続させるためのバスライン１５６と、接続を切換えるためのスイッチ１５８ｂとスイッチ１５８ｃとを含んでいる。
【００６６】
スイッチ１５８ａ〜スイッチ１５８ｄは、通常動作モードでは、スイッチ１５８ａおよびスイッチ１５８ｄがオンとなり、スイッチ１５８ｂおよびスイッチ１５８ｃがオフとなる。ブリッジ動作モードでは、スイッチ１５８ａおよびスイッチ１５８ｄがオフとなり、スイッチ１５８ｂおよびスイッチ１５８ｃがオンとなる。
【００６７】
ブリッジ動作モードでは、有線接続のＵＳＢコネクタを備えたサブユニット同士ではハブまたはリピータとして機能し、接続距離を延長させることができる。有線接続のＵＳＢコネクタを備えたサブユニットと無線接続のＷＵＳＢアンテナを備えたサブユニットとの接続では、ホスト・ワイヤ・アダプタやデバイス・ワイヤ・アダプタなどのメディア変換器として機能し、有線および無線が入り混じった利用環境では、さらにＵＳＢ装置間のデータフローの自由度を向上させることができる。無線接続のＷＵＳＢアンテナを備えたサブユニット同士では、中継器として機能し、ワイヤレスＵＳＢ接続の通信可能距離を延長させることが可能となる。
【００６８】
なお、上述では、２つのサブユニットと接続するメインユニットとの構成の実施形態をもってバス経路選択における動作について述べたが、３つ以上のサブユニットと接続する場合であってもよく、当業者であれば容易に拡張することができるであろう。３つ以上のサブユニットと接続する場合には、ＵＳＢホストと通信を行うひとつのサブユニットと、デバイスと通信を行う複数のサブユニットとが選択可能に結線され、ＵＳＢハブとして機能する構成とすることができる。その際には、リピータ、ハブコントローラ、トランザクション・トランスレータ、ルーティング・ロジックといった、ハブ機能を提供する機能手段を備えるサブユニットまたはメインユニットとして構成させることで実現できる。
【００６９】
図１０には、モード切換を行うデータ通信システム１０の他の実施形態を示す概略構成図を示す。図１０に示した実施形態では、メインユニット２０のバス経路選択部１７０と、サブユニット５０のバス経路選択部１７２とによって、メインユニット２０のファンクション提供手段４０とが通信する通常モードと、サブユニット５０のＵＳＢバス・インタフェース・モジュール８３同士が接続され中継器として機能するブリッジ動作モードの切換えを行う。メインユニット２０の操作パネルなどで構成される操作部２８は、通常モードとブリッジ動作モードの切換え指示を受けることを可能とし、オペレータからの指示を受けて経路管理部２９へ経路切換の要求を発行する。要求を受けた経路管理部２９は、バス経路選択部１７０と、各サブユニット５０のバス経路選択部１７２へ、切換え指令を発行し、モードを切換える。
【００７０】
図１０に示した実施形態では、通常モードへの切換指令を受けた経路管理部２９は、バス経路選択部１７０のスイッチ１７４をオンとする指令を発行し、同時に各サブユニット５０のバス経路選択部１７２へ、通常モードへの切換指令を発行する。指令を受けた各バス経路選択部１７２は、ＵＳＢデバイス・モジュール８１とメインユニット２０とを結ぶバスラインの切換えを行うスイッチ１７６をオンとし、ＵＳＢバス・インタフェース・モジュール８３とメインユニット２０とを結ぶバスラインの切換えを行うスイッチ１７８をオフとする。
【００７１】
ブリッジ動作モードへの切換指令を受けた経路管理部２９は、バス経路選択部１７０のスイッチ１７４をオフとする指令を発効し、各サブユニット５０のバス経路選択部１７２へ、ＵＳＢデバイス・モジュール８１とメインユニット２０とを結ぶバスラインの切換えを行うスイッチ１７６をオフとし、ＵＳＢバス・インタフェース・モジュール８３とメインユニット２０とを結ぶバスラインの切換えを行うスイッチ１７８をオンとする指令を発行する。バス経路選択部１７２を含むサブユニット５０という構成により、メインユニット２０とサブユニット５０とのバスラインの複雑化を低減することを可能とする。
【００７２】
図１１には、モード切換を行うデータ通信システム１０のさらに他の実施形態を示す概略構成図を示す。図１１に示した実施形態では、図１０に示した実施形態と同様のバス経路選択部を含むメインユニット２０およびサブユニット５０としての構成を有し、モード切換をサブユニット５０側から指示する場合の実施形態である。サブユニット５０は、オペレータからの切換指示を待受ける、例えばボタンスイッチなどの切換指示部８８を含み構成される。切換指示部８８は、各サブユニット５０のバス経路選択部１７２の経路切換を制御し、また、メインユニット２０からのモード切換の指令に応答してバス経路選択部１７２の経路選択の制御を行う。
【００７３】
例えば、オペレータによりブリッジ動作モードへの切換指示を受けたサブユニットＢ５０ｂの切換指示部８８ｂは、バス経路選択部１７２ｂの経路切換を実行し、同時にメインユニット２０の経路管理部２９へ、ブリッジ動作モードへ切換通知を行う。サブユニットＢ５０ｂからの切換通知を受けた経路管理部２９は、バス経路選択部１７０のスイッチ１７４をオフとし、サブユニットＡ５０ａの切換指示部８８ａに、モード切換指示を発行する。指令を受けたサブユニットＡ５０ａの切換指示部８８ａは、バス経路選択部１７２ａの経路切換を行う。
【００７４】
サブユニット５０が動作モードの切換指示部を備えるという構成により、操作パネルなどの操作部を備えないメインユニットであっても、サブユニットのボタンスイッチなどの簡易な指示手段によって動作モードの切換指示を行うことが可能となる。
【００７５】
以下さらに、メインユニット２０と、サブユニット５０との装着様式の実施形態について説明する。図１２は、メインユニット２０と、２つのサブユニット５０との装着様式の実施形態を示す概略図である。図１２（ａ）に示した実施形態では、サブユニット５０は、指向性アンテナ６４を備えるワイヤレスＵＳＢとしての構成されている。図には、各サブユニット５０はスロットに装着され、各サブユニット５０の指向性アンテナ６４の向きが異なっている様子が示されている。指向性アンテナを備えるサブユニットという構成を採用することによって、サブユニット５０が近接して配設された場合であっても、サブユニット５０間の電波干渉を好適に低減させることができる。
【００７６】
図１２（ｂ）は、メインユニット２０と、２つのサブユニット５０との装着様式の他の実施形態を示す。図１２（ｃ）は、図１２（ｂ）の図において、矢印Ｙ方向からメインユニット２０を視た場合のメインユニット２０の側面２０ｂを示す側面図である。図には、メインユニット２０の側面２０ｂには、サブユニット５０を装着するためのスロット４９ｂが配設されている様子が示されている。同様に、他方の側面にもスロット４９ａ（図示せず）が備えられ、サブユニット５０をスロット４９ａに装着することが可能である。離間してサブユニット５０を装着するスロットを備えたメインユニット２０という構成により、サブユニット５０間の電波干渉を好適に低減させることが可能となる。さらに、図１２（ｂ）に示した実施形態では、装着スロット４９は、メインユニットの対面を構成する側面に配置され、さらに、電波干渉を好適に低減させることが可能としている。
【００７７】
なお、上述のメインユニット２０と、サブユニット５０とから構成されるデータ通信システム１０は、画像形成装置としてのデバイス機能を提供する場合の実施形態をもって説明してきたが、データ通信システムが提供するデバイス機能としては、特に限定されるものではない。データ通信システムは、例えば、デジタル・カメラなどの撮像装置、スキャナなどの画像読取装置、ストレージデバイスなどの記録装置としてのデバイス機能を備えることもできる。
【００７８】
以上、説明したように、本発明によれば、複数のＵＳＢホストに接続および認識され、複数のＵＳＢホストから要求に応答して処理を実行し、ＵＳＢ装置間の自由度の高いデータフローを提供するデータ通信システム、ユニットおよびデータ通信方法を提供することができる。
【００７９】
また、本発明によれば、簡易な操作でＵＳＢの中継器として機能させることができ、ＵＳＢ装置間の自由度の高いデータフロー制御を可能とするデータ通信システム、ユニットおよびデータ通信方法を提供することができる。
【００８０】
また、本発明の上記機能は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、などのレガシープログラミング言語やオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、ＳＤメモリ、ＭＯなど装置可読な記録媒体に格納して頒布することができる。
【００８１】
これまで本発明を図面に示した実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００８２】
【図１】メインユニットとサブユニットを含み構成されるデータ通信システムのハードウェア構成の実施形態を示すブロック図。
【図２】メインユニットとサブユニットを含み構成されるデータ通信システムの機能構成の実施形態を示すブロック図。
【図３】メインユニットに格納されるユニット識別値情報、およびサブユニットに格納される設定情報のデータ構造の実施形態を示す図。
【図４】メインユニットにおけるサブユニットの認識処理の実施形態を示すフローチャート。
【図５】メインユニットおよびサブユニットと、ホストとのデバイス初期設定の実施形態を示すフローチャート。
【図６】メインユニットとサブユニットとの通信によって伝送される通信パケットのデータ構造の実施形態を示す図。
【図７】データ通信システムと２つのホストとのデータフローの実施形態を示す概略図。
【図８】データ通信システムにおける要求処理の調停処理およびデータフロー制御に使用されるジョブ管理データのデータ構造の実施形態を示す図。
【図９】モード切換可能なデータ通信システムの実施形態を示す概略構成図。
【図１０】モード切換可能なデータ通信システムの他の実施形態を示す概略構成図。
【図１１】モード切換可能なデータ通信システムのさらに他の実施形態を示す概略構成図。
【図１２】メインユニットとサブユニットとの装着様式の実施形態を示す概略図。
【符号の説明】
【００８３】
１０…データ通信システム、１２…接続バス、２０…メインユニット、２２…ＣＰＵ、２４…ＲＯＭ、２６…メモリ、２８…操作部、２９…経路管理部、３０…表示部、３２…記憶装置、３４…プリンタ、３６…インタフェース（Ｉ／Ｆ）、３８…内部バス、４０…ファンクション提供手段、４１…処理部、４２…デバイス情報格納部、４３…ファンクション・モジュール、４４…ジョブキュー記憶部、４６…データフロー制御部、４８…ユニット識別値記憶部、４９…スロット、５０…サブユニット、５２…コントローラ、５４…メモリ、５６…無線通信部、５８…ＮＶＲＡＭ、６０…物理層（UWB BB PHY）、６２…物理層（UWB RF PHY）、６４…アンテナ、６６…ＭＡＣ（媒体アクセス制御）層、６８…インタフェース、７０…設定記憶部、７２…データ交換部、７４…エンドポイント部、７６…エンドポイント・ゼロ、７８…エンドポイントｎ、８０…ＷＵＳＢ論理デバイス、８１…ＵＳＢデバイス・モジュール、８２…ＷＵＳＢバス・インタフェース、８３…ＵＳＢバス・インタフェース・モジュール、８４…デフォルト・パイプ、８６…パイプ・バンドル、８８…切換指示部、９０…ＵＳＢホスト（外部装置）、９２…クライアント・ソフトウェア、９４…ＵＳＢシステム・ソフトウェア、９６…ＵＳＢホストコントローラ、１００…ユニット識別値情報、１１０…設定情報、１２０…設定情報、１３０…ユニット間パケット、１４０…ジョブ管理データ、１５０、１５２、１５４、１５６…バスライン、１５８…スイッチ、１６０、１７０、１７２…バス経路選択部、１７４、１７６、１７８…スイッチ
【図１】
2008117289.tif 000003
【図２】
2008117289.tif 000004
【図３】
2008117289.tif 000005
【図４】
2008117289.tif 000006
【図５】
2008117289.tif 000007
【図６】
2008117289.tif 000008
【図７】
2008117289.tif 000009
【図８】
2008117289.tif 000010
【図９】
2008117289.tif 000011
【図１０】
2008117289.tif 000012
【図１１】
2008117289.tif 000013
【図１２】
2008117289.tif 000014