(57)【特許請求の範囲】
【請求項１】
バスを管理するホスト装置と、該ホスト装置に対して下の階層に位置して該ホスト装置との通信を中継する集線装置と、該集線装置および前記ホスト装置のいずれかのポートを接続先として接続され、該接続先と通信し、動作するデバイス装置とを含むバス通信システムにおいて、
前記集線装置および前記デバイス装置は、USB（Universal Serial Bus)規格の下で動作する装置であり、
前記集線装置は、該集線装置が物理的に備えているポートに対し、前記USB規格に基づきソフトウェア的に構築することによってポートとみなす仮想的なポートを構築し、接続された装置と通信する第１の機能ブロックと、
前記仮想ポートに接続された前記デバイス装置に、前記ホスト装置から送られる通信に対する応答および前記デバイス装置に対して前記ホスト装置の設定を代わりに行う第２の機能ブロックとを含み、
前記ホスト装置は、USB-OTG（On-The-Go)規格を適用したデバイス装置であり、
該ホスト装置は、USB-OTG規格の他のデバイス装置が上流側に配設され、該他のデバイス装置から前記ホスト装置の下層に位置する前記集線装置または該集線装置に接続された、USB規格のデバイス装置への通信を仲介する中継機能ブロックと、
該USB規格のデバイス装置の応答を代理する代理応答機能ブロックとを含み、
前記集線装置は、一つの前記集線装置のポートに他の前記集線装置が接続され、さらに、該他の前記集線装置のポートに一つの前記デバイス装置が接続された接続に応じて第１および第２の機能ブロックの機能を発揮させることを特徴とするバス通信システム。
【請求項２】
請求項１に記載の装置において、第２の機能ブロックは、前記仮想ポートに前記デバイス装置が接続されたと同じように該集線装置を通信させ、前記ホスト装置からの通信を前記デバイス装置に対して代理して応答する応答機能ブロックと、
前記ホスト装置を代理して該デバイス装置に対するバス接続する装置のデバイスアドレスおよびエニュメレーションの条件を設定するバス設定機能ブロックとを含むことを特徴とするバス通信システム。
【請求項３】
請求項１または２に記載のシステムにおいて、前記ホスト装置は、前記他のデバイス装置から前記USB規格のデバイス装置に転送されるデータを記憶するメモリ手段を含むことを特徴とするバス通信システム。
【請求項４】
USB（Universal Serial Bus）−OTG（On-The-Go)規格を適用し、バスを管理するホスト装置において、該ホスト装置は、
前記USB-OTG規格の他のデバイス装置が前記ホスト装置の上流側に配設され、該他のデバイス装置から前記ホスト装置の下層に接続された、USB規格のデバイス装置への通信を仲介する中継機能ブロックと、
前記他のデバイス装置に対する該USB規格のデバイス装置の応答を代理する代理応答機能ブロックとを含み、
該ホスト装置は、物理的に備えているポートに対し、前記USB規格に基づきソフトウェア的に構築することによってポートとみなす仮想的なポートを構築し、接続された装置と通信する機能ブロックを備え、
該機能ブロックは、該ホスト装置に対して供給されるデータを中継する第１のデバイス装置が接続され、さらに第１のデバイス装置に第２のデバイス装置が接続される接続関係に応じて動作させることを特徴とするホスト装置。
【請求項５】
USB（Universal Serial Bus）−OTG（On-The-Go)規格を適用し、バスを管理するホスト装置において、該ホスト装置は、
前記USB-OTG規格の他のデバイス装置が前記ホスト装置の上流側に配設され、該他のデバイス装置から前記ホスト装置の下層に接続された、USB規格のデバイス装置への通信を仲介する中継機能ブロックと、
前記他のデバイス装置に対する該USB規格のデバイス装置の応答を代理する代理応答機能ブロックとを含み、
該ホスト装置は、前記他のデバイス装置から前記USB規格のデバイス装置に転送されるデータを記憶するメモリ手段を含むことを特徴とするホスト装置。
【請求項６】
請求項４に記載の装置において、該ホスト装置は、前記他のデバイス装置から前記USB規格のデバイス装置に転送されるデータを記憶するメモリ手段を含むことを特徴とするホスト装置。
【請求項７】
ホスト装置に集線機能と中継機能を有する複数の集線装置を接続し、USB（Universal Serial Bus）規格で動作させるバス通信システムの通信制御方法において、該方法は、
一の集線装置が有する物理的なポートに他の集線装置を接続し、さらに該他の集線装置にデバイス装置を接続した場合、前記一の集線装置に、通信に用いるように、前記USB規格に基づきソフトウェア的に構築することによってポートとみなす仮想的なポートを構築する第１の工程と、
該仮想的なポートに前記デバイス装置を接続させたと同じように該一の集線装置の通信を設定する第２の工程と、
前記ホスト装置によるバス接続の設定において、該ホスト装置から前記デバイス装置への前記バス接続の設定に関する通信に対して前記一の集線装置を前記デバイス装置の代わりに応答させる第３の工程と、
該応答に応じて前記一の集線装置に対する通信により前記バス接続を設定する第４の工程とを含み、
該方法は、第４の工程の後、前記ホスト装置から前記デバイス装置にデータを転送する第５の工程と、
該転送されたデータを前記一の集線装置が検出し、該検出に応じて前記ホスト装置に対して前記デバイス装置を代理して応答する第６の工程と、
該代理応答の後、前記一の集線装置が前記デバイス装置に前記転送されたデータを転送する第７の工程とを含み、
第４の工程は、前記バスの接続設定において、前記ホスト装置からの前記データ転送をコントロール転送により行い、前記ホスト装置のスケジューリングを単位に該転送の形式を定める第１の処理、
該単位に前記データの読込み転送処理を行う第２の処理、および
該単位に前記データの書込み転送処理を行う第３の処理を行ううち、前記一の集線装置が前記デバイス装置の応答を代理することを特徴とするバス通信システムの通信制御方法。
【請求項８】
請求項７に記載の方法において、第６の工程は、前記ホスト装置に接続された前記一の集線装置までの上流側を第１のネットワークとし、該一の集線装置で前記デバイス装置に転送されたデータの検出に応じて該データを一時的に蓄え、
第７の工程は、一時的に蓄えたデータを、該一の集線装置から下流側に形成されるUSB規格における第２のネットワークの前記デバイス装置に転送することを特徴とするバス通信システムの通信制御方法。
【請求項９】
ホスト装置に集線機能と中継機能を有する複数の集線装置を接続し、USB（Universal Serial Bus）規格で動作させるバス通信システムの通信制御方法において、該方法は、
一の集線装置が有する物理的なポートに他の集線装置を接続し、さらに該他の集線装置にデバイス装置を接続した場合、前記一の集線装置に、通信に用いるように、前記USB規格に基づきソフトウェア的に構築することによってポートとみなす仮想的なポートを構築する第１の工程と、
該仮想的なポートに前記デバイス装置を接続させたと同じように該一の集線装置の通信を設定する第２の工程と、
前記ホスト装置によるバス接続の設定において、該ホスト装置から前記デバイス装置への前記バス接続の設定に関する通信に対して前記一の集線装置を前記デバイス装置の代わりに応答させる第３の工程と、
該応答に応じて前記一の集線装置に対する通信により前記バス接続を設定する第４の工程とを含み、
該方法は、前記一の集線装置に仮想ポートを構築することに基づいて前記ホスト装置が接続する階層を７階層以上にすることを特徴とするバス通信システムの通信制御方法。
【請求項１０】
請求項８に記載の方法において、該方法は、前記一の集線装置に仮想ポートを構築することに基づいて前記ホスト装置が接続する階層を７階層以上にすることを特徴とするバス通信システムの通信制御方法。
【請求項１１】
USB（Universal Serial Bus）−OTG（On-The−Go）規格を満たす複数のデバイス装置により形成する第１のネットワークと、第１のネットワークを構成する前記デバイス装置の一つを接続デバイス装置とし、該接続デバイス装置のポートに中継および集線機能を有し、USB規格にて動作する集線デバイス装置を接続し、さらに該集線デバイス装置のポートにUSB規格のデバイス装置を接続して形成する第２のネットワークとが接続されている場合、該接続関係が、前記接続デバイス装置がマルチタスクバスを実現するデバイス装置としての位置付けられた関係にあるか否かを判定し、判定により前記接続デバイス装置がマルチタスクバスを実現するデバイス装置としての位置付けられた場合、該接続デバイス装置の実際に有する物理的なポートに対して前記USB規格に基づきソフトウェア的に構築することによってポートとみなす仮想的なポートを構築し、接続された装置と通信する第１の工程と、
前記集線デバイス装置のポートに接続した前記USB規格のデバイス装置を仮想ポートに接続されたと同じように該集線デバイス装置の通信を設定する機能を有する前記接続デバイス装置の該機能により設定する第２の工程と、
前記USB規格のデバイス装置に対して転送するデータを前記接続デバイス装置で検出し、該検出に応じて前記データを前記USB規格のデバイス装置に中継し、該USB規格のデバイス装置に代わって該接続デバイス装置が第１のネットワークに位置するデバイス装置に応答する第３の工程と、
該応答の後、該接続デバイス装置から前記USB規格のデバイス装置に前記データを転送する第４の工程とを含むことを特徴とするネットワークシステムの通信制御方法。
【請求項１２】
請求項11に記載の方法において、第４の工程は、前記データがバスの接続設定に関するデータであることを特徴とするネットワークシステムの通信制御方法。
【請求項１３】
請求項11または12に記載の方法において、前記接続デバイス装置が、前記USB−OTG規格におけるスレーブの場合、第３の工程および第４の工程を行い、
前記接続デバイス装置が、前記USB−OTG規格におけるマスタの場合、第３の工程を実行し、第４の工程でのスレーブからマスタに対する代理応答処理の実行を省略し、応答させることを特徴とするネットワークシステムの通信制御方法。
【請求項１４】
請求項11、12または13に記載の方法において、該方法は、第４の工程の後、第１のネットワークのマスタに対応するデバイス装置から第２のネットワークの前記デバイス装置にデータを転送する第５の工程と、
該転送されたデータを前記接続デバイス装置が検出し、該検出に応じてマスタに対応するデバイス装置に対して第２のネットワークの前記デバイス装置を代理して応答する第６の工程と、
該代理応答の後、前記接続デバイス装置が第２のネットワークの前記デバイス装置に前記転送されたデータを転送する第７の工程とを含むことを特徴とするネットワークシステムの通信制御方法。
【請求項１５】
請求項14に記載の方法において、第６の工程は、前記接続デバイス装置で転送されたデータの検出に応じて該データを一時的に蓄え、
第７の工程は、一時的に蓄えたデータを第２のネットワークの前記デバイス装置に転送することを特徴とするネットワークシステムの通信制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、とくに、USB規格やUSB-OTG規格を適用してホストとデバイスとの間にバス装置を設け、この間の階層間をバス装置により通信を行うバス通信システムに関するものである。本発明は、各階層に配設し、供給されるデータを中継するハブ装置に用いて好適な集線装置に関するものである。また、本発明は、ハブ装置やデバイス装置を各階層に配してネットワークを形成し、これらの装置を制御するホスト装置等に関するものである。
【０００２】
さらに、本発明は、各階層に配設するハブ装置やデバイス装置等が有する機能とその接続関係に応じたバス通信システムの通信制御方法に関し、とくに、USB規格やUSB-OTG規格を適用したデバイス装置の多段接続に用いて好適な通信制御方法である。最後に、本発明は、異なる規格が混在するネットワークを接続しながら、一つのネットワークから他のネットワークの下層に接続されたデバイス装置と通信するネットワークシステムの通信制御方法に関するものであり、たとえばUSB-OTG規格のネットワークとUSB規格のネットワークとが混在するネットワークシステムにおける通信制御方法に適用して好適なものである。
【０００３】
【従来の技術】
今日ではUSB（Universal Serial Bus)デバイスは、パソコン周辺の簡易な周辺機器として普及し、このUSBも従来のシリアルインタフェース規格であるRS-232C（Recommended Standard-232C)等を置き換えるインターフェースとして広く知られるようになった。USBの規格は、当初、USB version 1.0であったが、その後、USB version 1.1に改版され、さらにその後、周辺機器の高速化に合わせて伝送速度等を従来の12 Mbit/secから480 Mbit/secに高速化したUSB version 2.0が定められている。
【０００４】
USBには、第１に低価格であるという特徴がある。また、USBには、第２に自由なレイアウトを可能にする特徴もある。第２の特徴は、具体的に説明すると、自由な操作性として、接続する周辺機器を自動認識し、ドライバの設定を行うことなく、利用を可能にするプラグアンドプレイ（Plug and Play)に対応することができ、電源を落とさずに周辺機器の抜き差しを行うホットプラグ（Hot Plug)機能を有し、レイアウト的な面でLAN（Local Area Network)における端末装置を中継するハブ装置の適用を挙げることができる。
【０００５】
また、ツリー状の接続形式を前提とする周辺機器と直接的に他の周辺装置と同一のコネクタを介して接続する電子機器が提案されている（特許文献１を参照）。電子機器は、このコネクタの接続にともなう接続関係を調べて、何と接続されたか判断して動作する。
【０００６】
USBの規格は、デバイス装置のアドレス（Device Address)に7ビットを割り当てていることから、ホスト装置の他に、最大127台のUSBデバイス装置を接続できる。しかしながら、ハブ装置やUSBケーブルには、遅延時間がある。遅延時間を考慮すると、ホスト装置を頂点とする接続構造は、７階層（7-tiers)に限られる。すなわち、ホスト装置を第１階層としたとき、末端のUSBデバイス装置は第７階層までが許容される構造と考えられている。しかしながら、USBの規定には、この接続構造における階層が７階層に制限される旨の明記はなく、単にデバイス等の遅延時間が規定されているに過ぎない。
【０００７】
規定として、たとえば、ハブ装置の上流（upstream)端から下流（downstream)のコネクタまでの遅延時間は、70 ns以内とされている。また、一方向の信号遅延時間（one-way signal propagation delay)は、30 ns以内と決められている。その他、ケーブルの周波数特性は、たとえば400 MHzでケーブルあたり5.8 db以下の減衰特性のものを使用するように定めている。
【０００８】
このようなUSB規格に反することなく、電子機器と接続させる方法が提案されている（特許文献２を参照）。この接続方法は、USB規格を満足する複数のホスト装置がUSB規格のデバイス装置を共用する方法で、電子機器接続装置としてのハブ装置は、ホスト装置を複数の上位ポートに、デバイス装置を複数の下位ポートにそれぞれ接続し、上位ポートと下位ポートを選択して、この選択に応じたホスト装置およびデバイス装置とを動作させる。このとき、ハブ装置は、ケーブルをつなぎ直すことがないので、ユーザの使い勝手を向上させる。
【０００９】
【特許文献１】
特開2002-202835号公報
【特許文献２】
特開2000-194649号公報
【特許文献３】
特開2002-288122号公報。
【００１０】
【発明が解決しようとする課題】
ところで、上述したUSB規格において規定されるような遅延時間は、USBバスの回帰時間（Turn-around Time)を制限することになる。USBバスの回帰時間は、バス上で信号同士が衝突するのを防ぐために設けられている。したがって、たとえばデバイス装置がホスト装置からパケットを受け取った後、この回帰時間を消化するまでデバイス装置は、ホスト装置にパケットを送り返すことができない。また、デバイス装置同士で通信する際にも、この回帰時間の確保が要求される。
【００１１】
USBの規格では、ケーブルの長さに関して一般に、最大で５ mに設定されている。したがって、ホスト装置から最下層に位置する末端のデバイス装置までの総ケーブル長は30 mになる。しかしながら、規定には、上述した減衰特性と信号伝搬時間で制限されるとの記載があるに過ぎない。このようなUSBの規定は、将来におけるケーブル等の改善を視野に入れた柔軟性の確保を想定したものと考えられる。ただし、コネクタは、互換性の確保にともないかなり詳細に規定されている。
【００１２】
USBデバイス装置におけるバスの接続形態（Bus Topology)は、いわゆる星形に結線される。ホスト装置（第１階層）と最下層（第７階層）の末端に位置するデバイス装置との間には５つのハブ装置、すなわち５つの階層が存在する。たとえば、一つのハブ装置に接続可能な限界までデバイス装置を接続させると、接続形態は、いわゆるタコ足配線の状態になる。実際に家庭内に置かれたPC（Personal Computer)をホストとして１台または２台程度のハブにより階層を形成し、これらのハブにキーボード、マウス、プリンタ、スキャナー、TA（Terminal Adapter)、外付けストレージ等、複数のUSBデバイス装置が乱雑に接続される状況が現れる。USBの規格から最大127個のUSBデバイス装置を接続できるとしても、その接続に要する配線によって非常に困難な状況が作り出される。
【００１３】
この困難な状況を改善するためUSBデバイス装置を直列に接続し、７階層の制限を超えて接続すると、すっきりとした接続形態を実現できる。たとえば、制限を越えた階層の接続を行うと、一つの階層あたりに接続されるUSBデバイス装置は、タコ足の本数として少なくて済み、全体としてこの接続形態が有するポート数を前述した困難な状況のポート数とほぼ同程度確保することができる。具体的には、数多くのUSBセンサを広い領域に配置し、ホスト装置であるPCでその計測を行う場合に望ましい接続となる。この場合、USBセンサは、USB携帯デバイス装置を使用することが好ましい。しかしながら、この接続形態で接続させ、かつ、前述したUSBの規定を満足させるには、デバイス装置等の遅延時間やUSBバスの回帰時間等の問題を解決することが求められる。
【００１４】
さて、近年USB規格のデバイス装置を適用してネットワークを構築し、このネットワークをより柔軟に構成する技術としてUSB-OTG（USB On-The-Go)規格が提案されている。この技術は、USBデバイス装置間でホスト装置を介することなく、互いにピアツーピア（peer to peer)で通信を行うインターフェースを用いる技術で、いくつかの困難な状況を緩和する上で有効である。
【００１５】
第１の困難性は、上述したUSB携帯デバイス装置等にホスト装置が有する機能を付加する負担の増大である。この負担増は、USB携帯デバイス装置でありながら、複数のデバイスドライバを記憶するストレージを用いることにある。第２の困難性は、USB携帯デバイスに供給する大電流の確保、すなわち高能率な電源の問題である。第３の困難性は、ホスト用のAコネクタ（"A" host connector)を用いる物理的負担である。
【００１６】
USB-OTG規格では、実際、USB携帯デバイス装置間で通信する上で第１の困難性で指摘したような機能が不要になる。そこで、前述したUSB version 2.0の規格を若干補完する規格（On-The-Go Supplement to the USB 2.O Specification)が2001年に作成されるに至った。
【００１７】
USB-OTG規格による第１のネットワークと第２のネットワークとの接続を説明する。この説明の前に、USB規格を用いた場合の第１のネットワークの接続関係を説明する。第１のネットワークにおいてたとえば、ホスト装置であるPDA（Personal Digital Assistant)はUSBケーブルを介してハブ装置に接続され、このハブ装置はハブ装置が有するポートの一つとUSBケーブルを介してプリンタに接続されている。このとき、新たにホスト装置であるPCをハブ装置に接続してこのPCからプリンタを制御して、プリンタを利用する場合を考える。新たなPCは、上述したハブ装置のポートと４端子のUSBケーブルで接続される。しかしながら、PCは、ハブ装置を介してプリンタを利用しようとしても、プリンタと直接通信することができない。これは、USB規格に基づきPDA-ハブ装置-プリンタが接続されたネットワークをPDAが管理するように設定になっているからである。換言すると、第１のネットワークが、現段階では第１のネットワークがUSB-OTG規格に基づいて構成されていないからである。
【００１８】
そこで、新たなPCを第２のネットワークの構成要素としてPDAと接続する。第２のネットワークに用いるPDAおよびPCには、USB-OTG規格を適用する。PDAおよびPCのそれぞれのOTGポートは５端子のOTGケーブルで接続される。この場合、PCとPDAとのネットワーク間での通信は可能になる。しかしながら、第２のネットワークにあるPCは、第１のネットワークに存在するプリンタを利用できない。USB-OTG規格は、第２のネットワーク内、すなわちPCとPDAとの間の通信を可能にするが、USB規格で動作する第１のネットワーク内のプリンタは、ホスト装置のPDAとの間だけで通信するからである。
【００１９】
本発明はこのような従来技術の欠点を解消し、USB規定およびUSBデバイスの自由な接続を満足させて、通信効率を向上させることができるバス通信システムおよびその接続方法を提供することを目的とする。
【００２０】
また、本発明はこのような従来技術の欠点を解消し、USB-OTG規格のネットワークとUSB規格のネットワークとが混在しても、USB-OTG規格のネットワーク側からUSB規格のネットワークに接続するデバイスとの通信を可能にするネットワークシステムおよびその接続方法を提供することを目的とする。
【００２１】
【課題を解決するための手段】
本発明は上述の課題を解決するために、バスを管理するホスト装置と、このホスト装置に対して下の階層に位置してこのホスト装置との通信を中継する集線装置と、この集線装置およびホスト装置のいずれかのポートを接続先として接続され、この接続先と通信し、動作するデバイス装置とを含むバス通信システムにおいて、集線装置およびデバイス装置は、USB規格の下で動作する装置であり、集線装置は、この集線装置が物理的に備えているポートに対し、仮想的なポートを構築する第１の機能ブロックと、仮想ポートに接続されたデバイス装置に送られる通信に対する応答および設定を代わりに行う第２の機能ブロックとを含み、集線装置は、一つの集線装置のポートに他の集線装置が接続され、さらに、この他の集線装置のポートに一つのデバイス装置が接続された接続に応じて第１および第２の機能ブロックの機能を発揮させることを特徴とする。
【００２２】
本発明のバス通信システムは、集線装置に対して第１および第２の機能ブロックを付加し、たとえば、第１の機能ブロックが有する機能、すなわち仮想ポートの構築および接続機能により、規定の階層数以上のデバイス装置を接続させることができ、第２の機能ブロックにより、この集線装置の上流ポートにあるデバイス装置が特定の要求の基にアドレスを指定した場合、USB規格に準じた通常の応答を行い、上流ポートにあるデバイス装置が下流のデバイス装置をアドレス指定した場合に集線装置は、このデバイス装置が指定されたデバイス装置のように動作し、通常、下流にあるデバイスの準備が出来ていない旨の内容を代理応答することにより、下流で指定されたデバイス７階層の制限を超えても、USBバスの回帰時間の問題を生じせない。実際、応答を返すまでの時間は、大きく遅れても、規定された階層数の制限を超えた自由な接続を可能にする。
【００２３】
本発明は上述の課題を解決するために、バスを管理するホスト装置に対して下の階層に位置して該ホスト装置との通信を中継する集線装置において、この集線装置は、USB規格の下で動作し、この集線装置が物理的に備えているポートに対し、仮想的なポートを構築する第１の機能ブロックと、仮想ポートに接続されたデバイス装置に送られる通信に対する応答および設定を代わりに行う第２の機能ブロックとを含み、集線装置は、一つの集線装置のポートに他の集線装置が接続され、さらに、この他の前記集線装置のポートに一つのデバイス装置が接続された接続に応じて第１および第２の機能ブロックの機能を発揮させることを特徴とする。
【００２４】
本発明の集線装置は、第１および第２の機能ブロックを有することにより、この集線装置の接続関係に応じて機能を発揮させて、仮想ポートの構築、接続および代理応答を行わせ、USB規格に規定された回帰時間を満たし、規定された階層数の制限を超えた自由な接続を可能にする。
【００２５】
本発明は上述の課題を解決するために、USB-OTG（On-The-Go)規格を適用し、バスを管理するホスト装置において、このホスト装置は、USB-OTG規格の他のデバイス装置がホスト装置の上流側に配設され、この他のデバイス装置からホスト装置の下層に接続された、USB規格のデバイス装置への通信を仲介する中継機能ブロックと、このUSB規格のデバイス装置の応答を代理する代理応答機能ブロックとを含むことを特徴とする。
【００２６】
本発明のホスト装置は、中継機能ブロックによる仮想ポートの構築および接続の機能に基づき下流にて接続されているデバイス装置をホスト装置に接続されているように動作させることにより、接続する階層数を規定以上に増やして、自由な接続を可能にし、代理応答機能ブロックによる代理応答にともないUSB-OTG規格に規定された回帰時間を満たしている。
【００２７】
本発明は上述の課題を解決するために、ホスト装置に集線と中継機能を有する複数の集線装置を接続し、USB規格で動作させるバス通信システムの通信制御方法において、この方法は、一の集線装置が有する物理的なポートに他の集線装置を接続し、さらにこの他の集線装置にデバイス装置を接続した場合、一の集線装置に仮想的なポートを構築する第１の工程と、この仮想的なポートにデバイス装置を接続させたと同じ動作を設定する第２の工程と、ホスト装置によるバス接続の設定において、このホスト装置からデバイス装置へのバス接続の設定に関する通信に対して一の集線装置をデバイス装置の代わりに応答させる第３の工程と、この応答に応じて一の集線装置に対する通信によりバス接続を設定する第４の工程とを含むことを特徴とする。
【００２８】
本発明のバス通信システムの通信制御方法は、一の集線装置、他の集線装置、デバイス装置が順に接続された関係において、一の集線装置に仮想ポートを構築し、仮想ポートへのデバイス装置を接続させた場合の設定を行い、接続する集線装置やデバイス装置の階層数を規定以上に増やすことができ、一の集線装置によるデバイス装置の代理応答により、ホスト装置が回帰時間内よりも短時間に応答を得られる。実際、デバイス装置から本来の応答を返すまでの時間は、大きく遅れるが、階層数の制限以上の接続および自由な接続を可能にする。
【００２９】
本発明は上述の課題を解決するために、USB−OTG規格を満たす複数のデバイス装置により形成する第１のネットワークと、第１のネットワークを構成するデバイス装置の一つを接続デバイス装置とし、この接続デバイス装置のポートに中継および集線機能を有し、USB規格にて動作する集線デバイス装置を接続し、さらにこの集線デバイス装置のポートにUSB規格のデバイス装置を接続して形成する第２のネットワークとが接続されている場合、この接続関係を判定し、接続デバイス装置が単なるデバイス装置としての位置付けに応じてこの接続デバイス装置が実際に有する物理的なポートに対して仮想的なポートを構築する第１の工程と、集線装置のポートに接続したUSB規格のデバイス装置を仮想ポートに接続されたと同じ動作を設定する機能を有する接続デバイス装置の該機能により設定する第２の工程と、USB規格のデバイス装置に対して転送するデータを接続デバイス装置で検出し、この検出に応じてデータをUSB規格のデバイス装置に中継し、このUSB規格のデバイス装置に代わってこの接続デバイス装置が応答する第３の工程と、この応答の後、この接続デバイス装置からUSB規格のデバイス装置にデータを転送する第４の工程とを含むことを特徴とする。
【００３０】
本発明のネットワークシステムの通信制御方法は、接続関係の判定に応じて接続デバイス装置が単なるデバイス装置として接続されている場合、接続デバイス装置に仮想ポートを構築し、仮想ポートの設定によりUSB規格のデバイス装置がこのポートに接続されたと同じ動作をさせて、規定の階層数以上の接続を可能にし、USB規格のデバイス装置へのデータ転送を接続デバイス装置で検出し、この検出に応じてデータをUSB規格のデバイス装置に中継することにより、これまで異種ネットワーク間のデバイス装置との通信を可能にし、このUSB規格のデバイス装置に代わってこの接続デバイス装置が応答し、この応答の後、この接続デバイス装置からUSB規格のデバイス装置にデータを転送することにより、通信の代理応答も行うことにより、接続デバイス装置が有する機能を接続関係に応じて動的に使い分けながら、USBおよびUSB-OTG規格の規定を満足させて異種ネットワーク間の通信を制御する。
【００３１】
【発明の実施の形態】
次に添付図面を参照して本発明によるバス通信システムの実施例を詳細に説明する。
【００３２】
本実施例は、本発明のバス通信システムをUSBシステム10に適用した場合である。本発明と直接関係のない部分について図示および説明を省略する。以下の説明で、信号はその現れる接続線の参照番号で指示する。
【００３３】
USBシステム10は、図１に示すように、ホスト装置12、ハブ装置14、ハブ装置16およびデバイス装置18を含む。USBシステム10は、上述したホスト装置12、ハブ装置14、ハブ装置16およびデバイス装置18をUSB規格で規定されている各階層の装置として継続的に接続されている。ホスト装置12は、通常PCのような汎用性を備える装置で、USB機能を併せ持っている。
【００３４】
ハブ装置14, 16は、複数のポートを備え、各ポートを有するUSB規格の集線装置である。ハブ装置14は、仮想ポート構築機能部20および代理応答機能部22を有する。本実施例においてハブ装置14は、第３ポートを介してハブ装置16と接続している。
【００３５】
仮想ポート構築機能部20は、本実施例の接続関係を用いて説明すると、ハブ装置16に対するデバイス装置18の接続に応じてハブ装置14内に物理的な実際のポートでない、仮想ポートをソフトウェア的に構築する機能である。また、代理応答機能22は、上流（upstream)に位置するUSB規格の装置に対して下の階層に位置するUSB規格のデバイス装置を代理して応答する機能である。上流に位置するUSB規格の装置は、ホスト装置12に限定されない。
【００３６】
代理応答機能部22は、図２に示すように、応答機能部24および設定機能部26を有している。応答機能部24は、仮想ポートにデバイス装置18が接続されたように動作し、ホスト装置12からの通信に応答する機能である。設定機能部26は、デバイス装置18に対するバスの接続を設定する機能である。代理応答機能部22は、ホスト装置12との通信28と仮想ポートに接続されたデバイス装置18との通信30を行うことでこれらの装置間における仲介処理や代理処理を行っている。
【００３７】
一般に、ハブ装置には、図示しないがハブ装置のポートに対する他のUSB規格のデバイス装置の着脱を記録する機能がある。この着脱は、ハブ装置が持つステータスビット（status bits)に記録されている。ホスト装置12は、ステータスビットを参照してハブ装置の接続状態を認識している。たとえば、USBシステム10において新たにデバイス装置が接続されたとき、ホスト装置12は固有のデバイスアドレスをこのデバイス装置に割り当て、このデバイスアドレスを介して新たなデバイス装置と通信を行う。本実施例のようにハブ装置16に新しいデバイス装置18が接続されたときも、ホスト装置12により同様に管理される。また、デバイス装置18がハブ装置16の第３ポートから取り外された状況でハブ装置16は、取り外されたとの情報をホスト装置12に対して通知する。ホスト装置12は、ハブ装置16のポートを無効にする。
【００３８】
デバイス装置18もUSB規格の装置であり、現在、デバイス装置にはハブ型のキーボード、マウス、ジョイスティック、プリンタ、モデム、TAおよびスピーカ等の末端機器がある。
【００３９】
なお、本実施例は、ハブ装置14に仮想ポート構築機能部20および代理応答機能部22を設けることにしているが、ハブ装置16およびデバイス装置18にもこれらの機能を設けてもよい。
【００４０】
USBシステム10は、前述した接続を採用することにより、ハブ装置14に仮想ポートを構築する。USBシステムにおけるこの仮想ポートの構築にともなう接続関係について図３に示す。ハブ装置14は、図１に示した仮想ポート構築機能部20を動作させる条件に合っているか否かを判断し、構築条件に適合する場合、仮想ポート構築機能部20を実行して、仮想ポートを構築させる。本実施例のハブ装置14にハブ装置16が接続され、かつハブ装置16にデバイス装置18が接続される接続関係は、上述した構築条件の一つである。
【００４１】
仮想ポート32を構築すると、ハブ装置14は、実際には第１から第４までの物理ポートを有して接続関係を保つが、ハブ装置16の下流に接続する、本実施例のデバイス装置18に対し第５から第８までの仮想ポートを有するかのように動作する。本実施例のハブ装置14では、ハブ装置16に接続されていたデバイス装置18を仮想ポート32の第７ポート34に接続する。
【００４２】
このように、実際には、図１に示す接続であっても、仮想ポート構築機能部20が仮想ポート32を構築することによって、バス装置14は、デバイス装置18がバス装置14に接続されたように取り扱うことを可能にする。これにより、ハブ装置16は、デバイス装置18をもはや考慮しなくて済む。ホスト装置12は、ハブ装置14の仮想ポート構築機能部20に基づいて接続する階層を７階層以上にすることができる。
【００４３】
なお、ハブ装置のポート数Nに対する制限は、USBの規格に規定されていない。本実施例におけるUSBシステム10は、ハブ装置14の上流に位置するUSB規格のデバイス装置をホスト装置12としたが、このデバイス装置はホストに限定されるものでなく、スレーブとしてもよい。
【００４４】
本実施例の構成要素の接続関係が示すように、上流のUSB規格のデバイス装置が特定の要求の基にハブ装置14をアドレス指定した場合、ハブ装置14はUSB規格に準じた通常の応答を行う。また、この接続関係において上流のUSB規格のデバイス装置がとくに、上述と同じ要求の基にハブ装置14より下流に位置するデバイス装置18をアドレス指定した場合、ハブ装置14は、あらかじめ仮想ポート構築機能部20および代理応答機能部22に設けられている仮想ポート構築・接続および代理応答機能を発揮させる。遅延なく動作させるため、ハブ装置14は、接続関係を判断してこれらの機能が動作可能な状況に設定しておくことが好ましい。
【００４５】
次にUSBシステム10における新たな装置の接続にともない行われる接続シーケンスをいくつか説明する。これらの接続シーケンスでは、バス装置14が上流に接続する装置に対して代理応答（echo）機能が重要な役割を果たすことを説明する。図４の接続シーケンスは、ハブ装置14にハブ装置16を接続する場合とハブ装置16にデバイス装置18を接続する場合を含んでいる。
【００４６】
USBシステム10は、最初、ホスト装置12およびハブ装置14を含み、ホスト装置12にすでにハブ装置14が接続されている状況にある。時刻T10において、新たにハブ装置16をハブ装置14の下流ポート（Downstream Facing Port)に接続する。この接続前の段階でハブ装置14のポートが無接続の場合、信号線D+/D-は下位スレッショルド（VIL)以下で、この結果、該当するポートはSEOステート（Single Ended zerO state)にある。これはパケットの終端EOP（End Of Packet)を示すものである。
【００４７】
次に新たにハブ装置16をハブ装置14のポートに接続すると、信号線D+は上位スレッショルド（VIH)以上にプルアップされる。ハブ装置14は、時刻T12にてこのプルアップによりポート接続を感知する（デバイス検出報告）。ハブ装置14はこの信号線の状態をサンプリングして接続されたハブ装置16の接続速度等を判断する。ハブ装置14は、その後、SEOステートの継続によりハブ装置16をリセット状態にする。これをハブ装置16側から見ると、ハブ装置16の状態遷移機構（Device State Machine)は、接続ステート（Attached)からデバイス設定（Configuration)を経て電源投入ステート（Powered)に移行し、さらに上述したリセットにより定常ステート（Default)に移行することになる。
【００４８】
ところで、通常、デバイス装置の検出報告は、ハブ装置14の制御回路（図示せず）が上流ポート（Upstream Facing Port)を介してホスト装置12に対してステータスの変更を通知することにより行う（デバイス検出報告)。また、ホスト装置12は、バス接続設定（Bus Enumeration)と呼ぶデバイスの初期化とリセットを行う。
【００４９】
しかしながら、図４の破線36で示したように、本実施例におけるハブ装置14はデバイス検出報告をホスト装置12に対して行わず、ハブ装置14自らバス接続設定を行う。この理由はハブ装置16の接続がUSB規格における７階層という制限を超えていた場合を考慮し、USBバスの回帰時間（Turn-around Time)を確保するためである。すなわち、これを実現するため、本実施例においてハブ装置14は、ホスト装置12に対する代理応答機能を持っている。
【００５０】
ハブ装置14は、時刻T14に下流ポートをオープンし、ハブ装置16を電源投入ステート（powered)に移行させる。このオープンは、装置16に通信許可を与えたことを意味する。
【００５１】
次にハブ装置14は、時刻T16にてバス接続設定をバス装置16に指示する。このバス接続設定をここでは仮エニュメレーションと呼ぶ。ハブ装置16は、バス接続設定としてデバイス設定（Configuration)、リセットによる接続速度等の検証、電源供給型の判断を行う。デバイス設定は、必要なパワーとデバイスアドレスの設定を行うことであり、電源供給型の判断とは、ハブ装置16が電源バス供給型（bus-powered)デバイスか、電源自己供給型（self-powered)デバイスかの判断である。これら一連の設定や判断による仮エニュメレーションは、ハブ装置14がホスト装置12に代わりバス接続設定を行ったことを意味する。ハブ装置14では、内蔵するUSBシステムソフトウェア（the USB System Software)によりバス接続設定を全般的に監視する。
【００５２】
この後、本実施例でハブ装置14は下流ポートの電気的切断を行う。この切断処理は、定常ステート（Default)にあるハブ装置16を再び電源投入ステート（Powered)に戻すことになるが、次回のバス接続設定に備えて行われる処理である。
【００５３】
このように時刻T18までの処理は、ハブ装置16をハブ装置14の仮想ポートに接続するデバイスとして扱う準備である。時刻T20にてハブ装置14は、上述した準備完了に応じて改めてデバイスとしてのハブ装置16の検出報告をホスト装置12に対して行う（デバイス検出報告）。
【００５４】
この報告を受けてホスト装置12は、時刻T22にデバイスとしてのハブ装置16に対しデバイス設定（Configuration)をハブ装置14に行う。ここでのデバイス設定は、デバイスアドレス等の設定である。 このデバイス設定は、上述したように図４の破線38で示したように、直接、ハブ装置16に対して行わない。ハブ装置14は、ホスト装置12からの指令を監視して、このデバイス設定を確保する。
【００５５】
時刻T24にてハブ装置14は、ホスト装置12を代理してハブ装置16に対するデバイスアドレス等を設定する(代理設定)。また、ハブ装置16は、破線40で示すように、バス接続設定（Bus Enumeration)を行わない。この代わりに、時刻T26にて ハブ装置14が、ホスト装置12に対してバス接続設定の代理応答も行う（エニュメレーション)。
【００５６】
また、ハブ装置14は、時刻T28で代理応答することによってハブ装置16に対して与えた情報に基づきハブ装置16に２度目のバス接続設定を行う。このバス接続設定を再エニュメレーションと呼ぶ。この再エニュメレーションは、仮エニュメレーションと比べて、ハブ装置16を単なるデバイスとしてではなく、ハブ装置として取り扱う点が異なる。
【００５７】
このような手続きによってハブ装置14は、ハブ装置16を代理してホスト装置12に対するバス接続設定を行ったが、このときホスト装置12に対して自己の仮想ポートにデバイスとしてのハブ装置16が接続されたものとして取り扱う。 本実施例において、実際には図１のデバイス装置18は、ハブ装置16の第3ポートに接続されているが、ハブ装置14はホスト装置12に対し図３に示したように接続に応じて構築した仮想ポート32の第７ポートに接続されていると報告し、この報告に応じて取り扱う。
【００５８】
さらに、時刻T30にてハブ装置16のポートにデバイス装置18を接続する。デバイス装置18は、本来、ハブ装置16, 14を介してホスト装置12にデバイス検出を報告する手順をとるが、破線42が示したようにこの報告は行われない。デバイス検出報告は、ハブ装置16に対して行われるだけである。後述するようにハブ装置14は、デバイス装置18に対してバス接続を設定する。
【００５９】
時刻T32でハブ装置16は、下流ポートをオープンし、デバイス装置18に通信許可を与える。この後、時刻T34にてハブ装置16は、上流ポートにあるハブ装置14に改めてデバイス検出を報告する。この場合もデバイス装置18が接続されたハブ装置16は、破線44が示すように、直接、ホスト装置12にデバイス検出を報告しない。ハブ装置14がホスト装置12に時刻T36にて改めてテバイス検出を報告する。
【００６０】
ホスト装置12は、時刻T38でこの検出報告を受けてハブ装置14に対してハブリクエストを出力し、仮想ポートの管理を行う。ハブ装置14は、このハブリクエストを受けて、ハブ装置14自身がハブ装置16に対するハブリクエストを出力し、これによりテバイス装置18の接続するポートを管理する。ここで、ハブ装置16は、破線46で示すようにポート管理をしない。実際に、ハブ装置14は、割込転送（Interrupt Transfer)によりハブ装置16からデバイス装置18の仮想ポート管理で用いるデータを受け取り、デバイス装置18に対するコントロール転送（Control Transfers)によって仮想ポートを管理する。
【００６１】
ハブ装置14は、仮想ポートを構築し、代理応答させることにより、ホスト的な役割を担わせ、USBシステム10における規定にともない生じる遅延時間や回帰時間の問題を解消し、自由な接続も可能にして、通信効率を向上させている。
【００６２】
次にUSBシステム10は、ハブ装置14の仮想ポートにデバイス装置48を接続する場合を示し、とくに、再エニュメレーションのシーケンスを詳細に示す。ハブ装置14は、図１に示したように、仮想ポート構築機能部20および代理応答機能部22を含む。この接続シーケンスは、基本的に時刻T10から時刻T24までと同じ処理を行う。図４と共通の動作を行う部分に同じ参照符号を付し、説明の煩雑さを避けるため、説明を大幅に省略する。
【００６３】
若干繰返しになるが説明のつながりを考慮して、エニュメレーションを行う時刻T22以降から説明する。時刻T22で説明したように、ホスト装置12は、デバイスとしてのハブ装置16に対しデバイスアドレスを設定する際に、図４の破線38で示したようにデバイス設定を直接行わない。ハブ装置14は、ホスト装置12からの指令を監視して、供給されたデバイス設定の情報を取得し、時刻T24でハブ装置14がデバイスアドレス等の代理設定を行う。
【００６４】
時刻T26でハブ装置14は、デバイス装置48に代わりホスト装置12に対してバス接続設定の代理応答を行う（エニュメレーション）。ホスト装置12は、デバイス装置48に対するハブ装置14の代理応答を介してバス接続を設定する（再エニュメレーション）。この設定は、デバイス装置48に対する応答に相当する。代理応答および応答の詳細について図５を参照しながら説明する。このバス接続設定はコントロール転送で行い、このコントロール転送は基本的に３つのトランザクション50, 52, 54に分別される。
【００６５】
ここで、トランザクションとは、ホスト装置12のスケジューリングの単位のことである。セットアップトランザクション（SETUP Transaction)50はコントロール転送の形式を定めるために用い、たとえば形式が書き込み転送および読み込み転送のいずれかであるか等を定める。
【００６６】
具体的に説明すると、図５において、ホスト装置12が時刻T42でデバイス装置48にSETUPパケットを送り、その後の時刻T44にてDATAパケットをデバイス装置48に送ると、ハブ装置14が代理応答して時刻T46にACK（ACKnowledgement）パケットをホスト装置12に送り返す。ハブ装置14の代理応答によりホスト装置12は、デバイス装置48がセットアップの形式等を了解したものと解釈する。
【００６７】
実際に、ハブ装置14が時刻T48にデバイス装置48に対してSETUPパケットを送り、その後、時刻T50でDATAパケットを送ると、デバイス装置48は、時刻T52にDATAパケットの受信に応じてACKパケットをハブ装置14に送り返す。この応答によりハブ装置14は、デバイス装置48が了解したことを知る。
【００６８】
次にイントランザクション（IN Transaction)52は、読み込み転送の場合に繰り返し行われる。ホスト装置12が時刻T52にてデバイス装置48にINパケットを送ると、ハブ装置14が代理応答して時刻T54にNAK（Negative AcKnowledgement)パケットをホスト装置12に送り返す。この代理応答によりホスト装置12は、デバイス装置48の準備が整っていないと解釈する。実際に、ハブ装置14がこの直後の時刻T56にデバイス装置48に対しINパケットを送る。デバイス装置48は、時刻T58でこれに応答してハブ装置14にDATAパケットを送る。ハブ装置14は、このDATAパケットの受信に応じて時刻T60にACKパケットを送り返す。これにより、デバイス装置48は、ハブ装置14がデータを受け取ったと知る。
【００６９】
この後、ホスト装置12が再びデバイス装置48にINパケットを時刻T62にて送ると、時刻T64にハブ装置14は、デバイス装置48から受け取ったDATAパケットをホスト装置12に送ることができる。これを受けてホスト装置12は、時刻T66にACKパケットをハブ装置14に送り返す。これにより、ハブ装置14は、ホスト装置12がデータを受け取ったと知る。
【００７０】
最後に、アウトトランザクション（OUT Transaction)54は書き込み転送の場合に繰り返し行われる。ホスト装置12が時刻T68にてデバイス装置48にOUTパケットを送る。ホスト装置12が続いて時刻T70でDATAパケットをデバイス装置48に送ると、ハブ装置14が時刻T72に代理応答してNAKパケットをホスト装置12に送り返す。この代理応答によりホスト装置12は、デバイス装置48の準備が整っていないと解釈する。実際に、この直後の時刻T74でハブ装置14がデバイス装置48に対しOUTパケットを送る。これに続いて、ハブ装置14は、時刻T76でDATAパケットをデバイス装置48に送る。これに応じてデバイス装置48は、時刻T78でACKパケットをハブ装置14に送り返す。これにより、ハブ装置14は、デバイス装置48がデータを受け取ったと知る。
【００７１】
この後、時刻T80でホスト装置12が再びデバイス装置48にOUTパケットを送り、さらに、時刻T82でホスト装置12からDATAパケットを送る。ハブ装置14は、デバイス装置48からすでにACKパケットを受け取っているので、ホスト装置12に対しデバイス装置48に代わりACKパケットを時刻T84に送り返すことができる。これにより、ホスト装置12は、デバイス装置48がデータを受け取ったと知る。
【００７２】
このようにハブ装置14に持たせた機能を有効に利用してデバイス装置48を構築した仮想ポートに接続させ、デバイス装置48を代理して応答することにより、USBで規定された時間よりも短時間に処理できる。
【００７３】
データ転送における短時間処理の比較例として特開2002-288122号公報に記載のデータ転送処理装置を挙げる（特許文献３を参照）。このデータ転送処理装置は、ブロードキャストに対応するボードの設定を短時間に行う点に特徴がある。
アクセス許可部は、データ記憶部に対するアクセス許可を、ブロードキャストイネーブル信号およびブロードキャスト信号とによる場合、ボードID（IDentification)およびボードアドレスに基づいて行う場合とし、データ記憶部のデータアドレスがブロードキャストアドレス記憶部のアドレスのとき、ブロードキャスト記憶部にアクセスを許可し、セレクト信号およびアドレスを出力して規定情報を設定している。設定の短時間化という点で類似しているが、本実施例の代理応答機能のような記載は何等されていない。
【００７４】
次にUSBシステム10における他の実施例を説明する。本実施例のUSBシステム10では、USB−OTG規格を満たすOTGデバイス装置60を含む。OTGデバイス装置60は、図６に示すように、ハブ機能部62および代理応答機能部64を含む。ハブ機能部62は、下流に位置するデバイス装置を接続して中継し、集線する機能である。ハブ機能部62は、この機能の発揮にともない異種ネットワーク間の通信を中継により仲介する機能も持つことになる。代理応答機能部64は、前述したように下流に位置するデバイス装置に代わって応答を行う機能である。代理応答機能部64は、代理を仲介とみなすと類似しているが明らかに異なる機能である。
【００７５】
本実施例では、OTGデバイス装置60を図７に示すように、USB-OTG携帯デバイス装置の一つであるPDA（Personal Digital assistants)66に適用する。PDA 66は、パーソナルコンピュータ（PC)68とプリンタ70とにそれぞれ接続されている。PDA 66は、USB−OTG規格の基でホスト側およびスレーブ側につなぐ両プラグを挿入することができるミニAB受容器（mini-AB receptacle)またはミニABコネクタ72を備える共用デバイス装置（Dual-role device)である。このようなUSB-OTG携帯デバイス装置は、PDAに限定されるものでなく、DSC（Digital Still Camera)等もある。
【００７６】
パーソナルコンピュータ（PC: Personal computer)68は、通常、ホストのAデバイス装置として配設される。この場合、ミニAプラグが用いられる。また、プリンタ70は、スレーブのデバイス装置として配設される。スレーブに合わせてミニBプラグが用いられる。
【００７７】
ここで、PDA 66からプリンタ70に印刷データを送る場合、PDA 66とプリンタ70が通常のUSBネットワーク74（クレームにおける第２のネットワーク）であれば、PDA 66は内蔵するUSBプリンタドライバを使えばよい。すなわち、PDA 66がホストとして動作しているとき、通常通りその下流に127個までプリンタ70のようなデバイスを接続でき、かつ、それ等を制御することになる。
【００７８】
また、PC 68がノート型で、かつ共用デバイス装置の場合、PC 68は、PDA 66とによりOTG-USBネットワーク76（クレームにおける第１のネットワーク）を構成することになり、この場合にはHNP（Host Negotiation Protocol)を使うことになる。しかしながら、USB-OTGネットワーク74は、プリンタを含むUSBネットワーク74とは別物である。したがって、PC 68からプリンタ70に対してPDA 66が内蔵するUSBプリンタドライバを使って印刷データを送ることはできない。このことから、OTGデバイス装置であるPDA 66が単にデバイスとして動作、すなわちホストでなく動作しているとき、上述したハブ機能により、PDA 66は、PC 68をホストとしてPC 68からPDA 66の下流に接続されたデバイスとしてのプリンタ70への通信を仲介または中継する。ハブ機能は、代理応答と類似する機能である。
【００７９】
次にUSB−OTGネットワーク76とUSBネットワーク74とが接続された混在するネットワーク間での動作を説明する。本実施例は、マスタまたはホストとするPC 68およびスレーブのPDA 66でUSB−OTGネットワーク76を形成し、PDA 66およびデバイス装置としてのプリンタ70でUSBネットワーク74を形成している。図８は、PC 68によるプリンタ70の使用手順を表している。この場合、PDA 66には、ハブ装置が５階層以上接続可能になる。また、USB-OTGネットワーク76におけるPC 68には、接続する階層が６階層以上になる。
【００８０】
ここで、上述したマスタ（M： Master)とは、USB-OTGネットワーク76におけるホストの役割を担っているデバイス装置である。スレーブ（S: Slave)とはUSB-OTGネットワーク76においてデバイスの役割を果たすデバイス装置である。USB-OTGネットワーク76においマスタとスレーブの役割は、動的に変更されることがある。
【００８１】
PC 68が時刻T100にて印刷の開始を表す印刷要求信号をプリンタ70に送ると、PDA 66が代理応答しようとする。これにより、印刷要求信号は、図８の破線78で示したようにプリンタ70には直接届かない。本実施例のPDA 66は、図７に示すようにOTGデバイス装置でありながら、ハブ機能部62を有している。したがって、PDA 66は、供給されるデバイスアドレスを監視し、デバイスアドレスがPDA 66の下流ポートに接続したデバイス装置であると判ったとき、７階層の制限に関するUSBバスの回帰時間を確保するために、このデバイス装置を代理して応答（echo)することにしているからである。
【００８２】
ここで、印刷要求は、マスタとなっているPC 68のプリンタをデバイスアドレスとするI/Oリクエストにより行われる。具体的には、コントロール転送のセットアップトランザクションによるデバイスリクエスト（Device Requests)を行う。また、プリンタ70は、この要求に直ちに応答できる体勢にない。PDA 66は、ハブ機能部62の機能に基づきI/Oリクエストを検知し、この検知に応じて時刻T102にNAKハンドシェークパケットをPC 68に発行してI/Oリクエストに代理応答する。NAKパケットは、処理中などで送受信することができない旨を示すハンドシェークである。
【００８３】
PC 68の印刷要求は、一般的には、PDA 66自身の印刷要求という形で時刻T104にてプリンタ70に通知される。PDA 66は、時刻T106にプリンタ70からの応答を受けて、PDA 66はこの応答を時刻T108にてそのままPC 68に送る。ここで、PC 68は、転送準備を開始する。PC 68は、時刻T110以降において慣習的にプリンタ70をデバイスアドレスとするアウトトランザクションを繰り返すバルク転送を直接行う。これにより、印刷データが、PDA 66を介してプリンタ70に送られる。プリンタ70は、このデータ転送を受けた、最初の時刻T112からたとえば、プリンタの予熱を開始する。PDA 66は、予熱温度に達するまでPC 68にしてNAKハンドシェークパケットで代理応答し続ける。
【００８４】
しかしながら、本実施例における実際のデータ転送は、間接的にPDA 66自身のI/Oリクエストという形でプリンタ70に行われる。また、PDA 66は、ハブ機能に基づきバルク転送を検知すると、バルク転送の最中にPC 68に対してACKハンドシェークパケットを発行してアウトトランザクションに対する代理応答を行う。したがって、PC 68とPDA 66は、アウトトランザクションとACKハンドシェークパケットとを繰返し発行する。すなわち、PC 68とPDA 66の動作は、ループの形が繰り返される。
【００８５】
一方、プリンタ70は、PDA 66に対してACKハンドシェークパケットを発行しても、PDA 66はすでにPC 68に対して代理応答を済ませている。応答のチェックは、PDA 66だけで行うことになる。この結果、PDA 66とプリンタ70は、上述したようにここでもPDA 66によるアウトトランザクションとACKハンドシェークパケットとを繰返し発行し、ループを形成する。ただし、ループの形で繰り返されるデータ転送は、一括して行われるのではなく、図５に示したように、I/Oリクエスト毎に代理応答等を繰り返すことで行われる点に注目する特徴がある。
【００８６】
PDA 66は、時刻T114でプリンタ70から供給される最後のACKハンドシェークパケットを検出する。PDA 66が、さらに印刷処理の終了の通知を時刻T116にて受けたとき、PDA 66は時刻T118で改めてPC 68に対してこの通知（終了）を送る。
【００８７】
ところで、この間にプリンタ70の紙切れ等のイベントが発生することがある。プリンタ70は、イベントの発生をPDA 66に対して割り込み転送で通知すると、この通知は、そのままPDA 66を介してPC 68に送られる。
【００８８】
このように動作させることにより、異なるUSB規格のネットワークが混在していても、マスタからデバイス装置を制御することができる。すなわち、本実施例のようにPC 68からプリンタを制御して印刷させることができる。
【００８９】
また、USB-OTGネットワーク76に配設されたデバイス装置におけるマスタとスレーブの関係は、上述した実施例の関係に限定されないことをすでに述べた。図９にPC 68をスレーブ（S)、PDA 66をマスタ(M)とし、かつPDA 66とプリンタ70によりUSBネットワーク74を形成する場合の動作手順を示す。図８との相違点は、PDA 66がマスタであることから、代理応答をしなくても済む点にある。PDA 66は、７階層という制限に関するUSBバスの回帰時間を確保するために、下流ポートに接続したデバイスの代わりに代理応答しなくてもよく、ハブ機能を有するデバイスからの直接の応答を受ければ足りる。ただし、この応答自体は、一般的には、代理応答であるかも知れない。
【００９０】
このようにPDA 66が、スレーブの場合、PDA 66には仮想ポートの構築、ハブ機能および代理応答機能に基づきPDA 66にハブ装置やプリンタ70の接続可能な階層数を５階層以上に設定することが好ましい。また、図９に示すように、PDA 66が、マスタの場合、PDA 66には仮想ポートの構築およびハブ機能に基づきPDA 66にハブ装置やプリンタ70の接続可能な階層数を５階層以上に設定することが好ましい。
【００９１】
図９で時刻T100にてPC 68が印刷を開始するために印刷要求をプリンタに送るとき、一般的に、印刷要求はマスタのPDA 66に対して行われる。PDA 66は、この印刷要求に対する応答を時刻T120にて行う。PDA 66は、時刻T122でハブ機能に基づきPC 68の印刷要求をプリンタ70に通知し、その応答を待つ。プリンタ70がこの要求に直ちに応答できる体勢にない場合、その旨の応答がPDA 66に対して行われる。プリンタ70は、印刷準備が整うと、その旨の応答をPDA 66に対して行う。PDA 66は、時刻T124にてプリンタ70の印刷準備完了に応じた応答をPC 68へ行う。しかしながら、ここでも慣習的に、プリンタ70をデバイスアドレスとするアウトトランザクションが繰り返されるバルク転送を直接行うことで、印刷データはプリンタ70に送られることが多い。
【００９２】
これ以降の処理は、図８における転送準備以降の手順に同じである。PC 68は、プリンタ70が印刷準備完了の状況にあることを知ると、データ転送の準備を行う。PC 68は、バルク転送を行うことで印刷処理に用いる印刷データをプリンタ70に送る。この間、PDA 66は、バルク転送を受けてACKハンドシェークパケットの発行、すなわち応答信号をPC 68に返す。ここではバルク転送におけるデータ転送とACKハンドシェークパケットの発行は、先の実施例と同様に繰り返される。このデータ転送は、PDA 66が有するハブ機能に基づきPDA 66からプリンタ70に送られる。この間、プリンタ70は、ACKハンドシェークパケットの発行により応答する。ここでもPDA 66によるアウトトランザクションとACKハンドシェークパケットの発行とが繰り返される。プリンタ70は印刷処理を行う。
【００９３】
ただし、ここでも繰り返されるデータ転送は一括して行われるのではなく、図５に示したように、I/Oリクエスト毎に代理応答等を繰り返すことで行われる点に注意する。
【００９４】
PDA 66は、時刻T114でプリンタ70の最後のACKハンドシェークパケットを検出する。この後、PDA 66は、時刻T116でさらに印刷処理の終了の通知を受ける。このとき、PDA 66は時刻T118で改めてPC 68に対して印刷処理の終了を通知する。この間に、前述したように、プリンタ70の紙切れ等のイベントが発生することがある。この場合、プリンタ70がPDA 66に対して割り込み転送で通知すると、この通知は、一旦、マスタであるPDA 66に行われ、PDA 66を介してPC 68に送られる。
【００９５】
このようにPDA 66がマスタであることから、ハブ機能を追加するだけで異なるネットワークに存在していたプリンタ70での印刷処理を行うことができる。また、USB-OTGネットワーク74のマスタ-スレーブ関係においてPDA 66をマスタにすると、PDA 66は、PC 68に対して代理応答をしなくても済むという点で有利である。
【００９６】
次に図７に示したように、ネットワークが混在した接続における通信方法を説明する。この通信方法は、単にホストからOTGデバイス装置60、具体的にはPDA 66の下流に接続するデバイス装置ヘの通信を仲介するだけでない。ここでの通信方法は、ホストを含むUSB-OTGネットワーク74と別にPDA 66を含むUSBネットワーク76内でPDA 66が独立したリクエストを発行することにより、USB-OTGネットワーク74のホストの持つタスクを分業する、マルチタスク処理を行わせることにある。共通する部分に同じ参照番号を付して説明を省略する。
【００９７】
図10に示す構成要素の内、PDA 66は、RAM（Random Access Memory)80およびUSB制御部82を含む。RAM 80は、供給されるデータを格納して一時的記憶するバッファ装置である。USB制御部82は、USBネットワーク74のデバイス装置との通信を制御する複数の機能を備え、これらの機能には、図７と同様にハブ機能部62および代理応答機能部64とともに、図１に示した仮想ポート構築機能部20を含む。USB制御部82は、前述したPDA 66に図示しなかったが、含まれていることは言うまでもなく、その特徴的な機能部を示している。また、USBネットワーク76には、図７の構成要素にハブ装置84がPDA 66とプリンタ70の間に配設されている。
【００９８】
USB-OTGネットワーク76には、USB-OTGデバイス装置であるPC 68およびPDA 66が配されている。また、USBネットワーク74には、USB-OTGデバイス装置のPDA 66ならびにUSBデバイス装置のバス装置84およびプリンタ70が配されている。PC 68がPDA 66を介してプリンタ70に印刷データを転送する場合、プリンタ70の低速な応答を待っていると、PC 68が行うマルチタスク処理の障害となる。
【００９９】
そこで、PC 68は、一旦ハブ機能を有するPDA 66に印刷処理を委託する。この処理の委託にともないPC 68は、PDA 66内のRAM 80に印刷データを転送する。PDA 66は転送の前に接続条件を判定する。PDA 66では、USB制御部82がハブ装置84にプリンタ70が接続されている条件に応じて仮想ポート構築機能部20を機能させて仮想ポートを構築する。PDA 66は、ハブ機能部62の機能に基づきこの仮想ポートにプリンタ70が接続しているかのように取り扱う。PDA 66は、上流側ポートから入力された印刷データを一旦RAM 80に蓄える。ハブ機能部62には、図示しないがハブコントローラを有している。RAM 80に対する書込み制御は、ハブコントローラの制御下にあるハブリピータが行う。また、ハブリピータは、ハブコントローラの制御下で、RAM 80に蓄えられた印刷データを該当する下流ポートにルートを付けて送り出す。
【０１００】
この送出処理は、PC 68による転送処理と別個に独立に行うことができる。この際、ハブ機能部62に備える速度制御機構（Transaction Translator）は、プリンタ70に合わせて通信速度を調整する。これは、RAM 80を用いたバッファリングを意味するが、USBネットワーク76におけるマルチタスクバスの実現と見ることもできる。結果として、RAM 80は蓄えられた印刷データを独立したリクエストとともに、プリンタ70の速度に合わせて送り出す。これにより、PC 68はUSB-OTGネットワーク76のバンド幅を広くすることができ、たとえば、通信速度をUSBバージョン1.1の規格である最高速12 Mbit/secを維持することができる。
【０１０１】
なお、PC 68によるマルチタスク処理は、USB-OTGネットワーク76に適用できるばかりでなく、通常のUSBネットワーク74であっても、同様に構成することができる。
【０１０２】
このように動作させることにより、ホストが行うタスクを分業することになり、USBネットワーク74のUSBバスを擬似的なマルチタスクバスとして取り扱うことができる。この結果、USBシステム全体の作業効率を向上させることができる。
【０１０３】
以上のように構成することにより、USBシステム10は、たとえば、ホスト装置12-ハブ装置14-ハブ装置16-デバイス装置18の接続関係で、ハブ装置14が有する仮想ポート構築機能部20の仮想ポートの構築および接続機能により、規定の階層数以上のデバイス装置を接続させることができ、ホスト装置12が下流のデバイス装置18をアドレス指定すると、ハブ装置14が有する代理応答機能部22により、このハブ装置14が指定されたデバイス装置18のように動作し、通常、たとえば下流にあるデバイスの準備ができていない旨の内容や状況に応じた内容等を直ちに代理応答することから、規定の階層数を超えても、USBバスの回帰時間の問題を生じさせない。実際、応答を返すまでの時間は、大きく遅れても、規定された階層数の制限を超えた自由な接続を可能にする。
【０１０４】
USBシステム10の構成要素であるハブ装置やホスト装置にも同様の機能を持たせることにより、各装置の接続数や接続時における遅延時間や回帰時間を短時間で済むように装置の接続の自由度およびその動作を向上させることができる。
【０１０５】
USBシステム10の通信制御方法により、たとえばハブ装置14, 16、デバイス装置18が順に接続された関係において、ハブ装置14に仮想ポートを構築し、仮想ポートへのデバイス装置18を接続させた場合の設定を行い、接続するハブ装置やデバイス装置の階層数を規定以上に増やすことができ、ハブ装置14によるデバイス装置18の代理応答により、ホスト装置12が回帰時間内よりも短時間に応答を得られる。実際、デバイス装置18から本来の応答を返すまでの時間は、大きく遅れるが、階層数の制限以上の接続および自由な接続を可能にする。
【０１０６】
USBネットワーク74およびUSB-OTGネットワーク76が混在するネットワークシステムにおける通信制御方法により、接続関係の判定に応じてPDA 66に仮想ポートを構築し、仮想ポートの設定によりUSB規格のプリンタ70が接続されたと同じ動作をさせて、規定の階層数以上の接続を可能にし、USB規格のプリンタ70へのデータ転送をPDA 66で検出し、この検出に応じてデータをUSB規格のプリンタ70に中継することにより、これまで異種ネットワーク間のデバイス装置との通信を可能にし、このUSB規格のプリンタ70に代わってPDA 66が応答し、この応答の後、PDA 66からUSB規格のプリンタ70にデータを転送することにより、通信の代理応答も行って、接続デバイス装置が有する機能を接続関係に応じて動的に使い分けながら、USBおよびUSB-OTG規格の規定を満足させて異種ネットワーク間の通信を制御する。
【０１０７】
上述したネットワークシステムの通信制御方法では、単にホストからOTGデバイス装置60の下流に接続するデバイス装置ヘの通信を仲介するだけでなく、ホスト装置を含むUSB-OTGネットワーク76とは別にRAM 80を設けたOTGデバイス装置を含むUSBネットワーク74内でOTGデバイス装置60が独立した要求を発行することにより、ホスト装置の持つタスクを分業する。すなわち、USBネットワーク74を構成するUSBバスを擬似的なマルチタスクバスとして取り扱い、USBシステム全体の作業効率を向上させることができる。
【０１０８】
【発明の効果】
このように本発明のバス通信システム、集線装置およびホスト装置によれば、USB規格のデバイス装置に仮想ポート構築機能ブロックを設けることにより、USB規格のデバイス装置の比較的自由な接続を実現し、代理応答機能ブロックを設けることにより、回帰時間の問題を解消することができる。この結果、家庭内でのUSB間接続の乱雑さを抑え、規格の階層数を越える接続が可能になる。集線装置およびホスト装置は、接続関係の条件に応じて上述した各機能ブロックを動作させて装置それぞれの問題点を解消できる。
【０１０９】
また、本発明のバス通信システムの通信制御方法によれば、装置の接続関係に応じて一の集線装置に仮想ポートを構築し、仮想ポートへのデバイス装置を接続させた場合の設定を行い、接続する集線装置やデバイス装置の階層数を規定以上に増やすことができ、一の集線装置によるデバイス装置の代理応答により、ホスト装置が回帰時間内よりも短時間に応答を得ることができ、階層数の制限以上の接続および自由な接続を可能にする。
【０１１０】
さらに、本発明のネットワークシステムの通信制御方法によれば、接続関係の判定に応じて接続デバイス装置に仮想ポートの構築および設定によりUSB規格のデバイス装置が接続されたように動作をさせて、規定の階層数以上の接続を可能にし、USB規格のデバイス装置へのデータ転送を接続デバイス装置での検出に応じてUSB規格のデバイス装置に中継することにより、これまで異種ネットワーク間のデバイス装置との通信を可能にするとともに、USB規格のデバイス装置に代わってこの接続デバイス装置が代理応答した後、この接続デバイス装置からUSB規格のデバイス装置にデータを転送して、回帰時間を短時間で済ませ、接続デバイス装置が有する機能を接続関係に応じて動的に使い分けながら、USBおよびUSB-OTG規格の規定を満足させて異種ネットワーク間の通信を制御する。これにより、ユーザに使い勝手のよいネットワークシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明のバス通信システムをUSBシステムに適用し、このシステムにおける構成要素の接続関係を示すブロック図である。
【図２】図１の代理応答機能部の内部構成を説明する機能ブロック図である。
【図３】図１のUSBシステムにて仮想ポートの構築にともなう機能的な接続関係を説明するブロック図である。
【図４】図１のUSBシステムにおける接続にともない行われる接続手順を説明するシーケンシャルチャートである。
【図５】図１のUSBシステムおける接続手順のうち、とくに、エニュメレーションおよび再エニュメレーションの手順を説明するシーケンシャルチャートである。
【図６】  USB-OTG規格により動作するOTGデバイス装置が内蔵する機能ブロックを示す図である。
【図７】  USB-OTG規格とUSB規格と異なる規格のネットワークを取り持つPDAの接続関係を示す図である。
【図８】図７の接続関係においてPDAをスレーブにした場合の接続シーケンスを説明するシーケンシャルチャートである。
【図９】図７の接続関係においてPDAをマスタにした場合の接続シーケンスを説明するシーケンシャルチャートである。
【図１０】  USB-OTG規格のPDAにマルチタスク機能を持たせる概略的な構成および異種規格のネットワークの接続を示す図である。
【符号の説明】
10  USBシステム
12  ホスト装置
14, 16 ハブ装置
18  デバイス装置
20  仮想ポート構築機能部
22  代理応答機能部
【図１】
0004377603.tif 000002
【図２】
0004377603.tif 000003
【図３】
0004377603.tif 000004
【図４】
0004377603.tif 000005
【図５】
0004377603.tif 000006
【図６】
0004377603.tif 000007
【図７】
0004377603.tif 000008
【図８】
0004377603.tif 000009
【図９】
0004377603.tif 000010
【図１０】
0004377603.tif 000011