(57)【要約】  【課題】  従来のＵＳＢ装置は１つのエンドポイントに対して１つのエンドポイント制御回路が必要である。そのため、複数のエンドポイントを持つ場合に、それと同数のエンドポイント制御回路が必要で、回路規模が大きくなっていた。  【解決手段】  エンドポイントを制御する回路として、通常のエンドポイント制御回路１０４のほかに、固定の応答のみが制御できる固定応答回路１０３を用いる。この固定応答回路１０３は、通常のエンドポイント制御回路を置き換えたものである。そして、固定応答回路１０３と通常のエンドポイント制御回路１０４のエンドポイントへの割り当てを切り替える接続切替回路１０２を設ける。ＵＳＢ装置としての機能を保ちつつ、回路規模の削減を実現する。【選択図】  図１
2005251095.tif 000002
【特許請求の範囲】
【請求項１】
複数のエンドポイントを介して通信相手との間でデータを送受信するＵＳＢ装置であって、
前記エンドポイントの制御回路として、データ送受信の制御が可能な通常のエンドポイント制御回路と、通常のエンドポイント制御回路に代わるもので限定された応答のみが可能な固定応答回路とを備え、
さらに、前記複数のエンドポイントと前記エンドポイント制御回路および前記固定応答回路との接続関係を切り替える接続切替回路を備えることを特徴とするＵＳＢ装置。
【請求項２】
前記固定応答回路は、ＮＡＫのハンドシェイクの応答を行うように構成されている請求項１に記載のＵＳＢ装置。
【請求項３】
前記固定応答回路は、データサイズが０バイトのパケットの応答を行うように構成されている請求項１に記載のＵＳＢ装置。
【請求項４】
前記固定応答回路は、ＳＴＡＬＬのハンドシェイクの応答を行うように構成されている請求項１に記載のＵＳＢ装置。
【請求項５】
前記固定応答回路は、ＡＣＫまたはＮＹＥＴのハンドシェイクの応答を行うように構成されている請求項１に記載のＵＳＢ装置。
【請求項６】
前記固定応答回路は、ＮＡＫのハンドシェイクの応答を行った回数が特定の値を超えたときに割り込み信号を出力するように構成されている請求項２に記載のＵＳＢ装置。
【請求項７】
前記固定応答回路は、ＮＡＫのハンドシェイクの応答を行った回数が特定の値を超えたときに、前記固定応答回路で制御されているエンドポイントを前記エンドポイント制御回路で制御するように切り替えるように構成されている請求項２に記載のＵＳＢ装置。
【請求項８】
前記固定応答回路で制御されているエンドポイントにＯＵＴトークンが送信されたことをトリガとして、制御を前記エンドポイント制御回路に切り替えるように構成された請求項１に記載のＵＳＢ装置。
【請求項９】
前記エンドポイント制御回路で制御されているエンドポイントのパケット送信をトリガとして、前記固定応答回路で制御されているエンドポイントの制御を、前記エンドポイント制御回路に切り替えるように構成された請求項１に記載のＵＳＢ装置。
【請求項１０】
前記エンドポイント制御回路と前記固定応答回路を一定時間経過をトリガとして入れ替えるように構成された請求項１に記載のＵＳＢ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ（Universal Serial Bus）装置について、そのバッファ回路の規模を削減する技術に関する。
【背景技術】
【０００２】
パソコンと周辺機器を接続するインターフェースとしてＵＳＢが知られている。ＵＳＢインターフェースでは、パソコンと周辺機器との間でデータ転送を行う場合、パソコンは、周辺機器内に設けられた論理接続端子であるエンドポイントに対してデータ（パケット）の送受信を行う。エンドポイントに送受信されるデータは、エンドポイントごとに設けられたＦＩＦＯなどのバッファメモリに格納される。そのため、複数のエンドポイントを備える場合には、バッファメモリも同数備えている。
【０００３】
しかしこれでは、１つのエンドポイントについて１つのバッファメモリを必要とするため、多数のエンドポイントを実装する場合には、同数のバッファメモリの装備のために回路規模が増大する。
【０００４】
そこで、回路規模の削減を図るために、ＦＩＦＯを複数のエンドポイントで共有する手段を用いて、ＦＩＦＯの数をエンドポイントの数より少なくする方式が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００２-５５９３７号公報（第６頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の技術では、ＦＩＦＯの部分で回路規模の削減が行われている。しかしながら、エンドポイント毎に必要な制御回路については削減されておらず、エンドポイントと同じ数の制御回路を必要としている。そのため、回路規模は依然大きいという課題があった。
【０００６】
本発明は、このような事情に鑑みて創作したものであり、エンドポイント毎に必要な制御回路の削減を図り、回路規模をさらに削減することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために次のような手段を講じる。
【０００８】
本発明によるＵＳＢ装置は、複数のエンドポイントを介して通信相手との間でデータを送受信するＵＳＢ装置であって、前記エンドポイントの制御回路として、データ送受信の制御が可能な通常のエンドポイント制御回路と、通常のエンドポイント制御回路に代わるもので限定された応答のみが可能な固定応答回路とを備える。さらに、前記複数のエンドポイントと前記エンドポイント制御回路および前記固定応答回路との接続関係を切り替える接続切替回路を備える。
【０００９】
接続切替回路は、あるエンドポイントをエンドポイント制御回路に接続し、別のエンドポイントを固定応答回路に接続する。エンドポイント制御回路に接続されたエンドポイントに対してのアクセスであれば、エンドポイント制御回路に接続のバッファを用いて相手側との間でデータ（パケット）の送受信を行う。一方、固定応答回路に接続されたエンドポイントに対してのアクセスであれば、固定応答回路が限定された応答を相手側に返し、通信を成立させる。ここで、固定応答回路は、データ送受信の制御の機能を有するエンドポイント制御回路に比べて、構成要素が少なく、回路規模を小さなものにできる。すなわち、全体として、ＵＳＢ装置としての機能を保ちつつ、回路規模の削減を実現できる。
【００１０】
上記において、前記固定応答回路の構成としては、ＮＡＫのハンドシェイクの応答を行うように構成されているものがある。ここで、ＮＡＫとは、データを受信または送信できないことを通知するためのパケットである。
【００１１】
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いてＮＡＫのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
【００１２】
また、上記において、前記固定応答回路の構成としては、データサイズが０バイトのパケットの応答を行うように構成されているものがある。
【００１３】
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いて０バイトのパケットの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
【００１４】
また、上記において、前記固定応答回路の構成としては、ＳＴＡＬＬのハンドシェイクの応答を行うように構成されているものがある。ここで、ＳＴＡＬＬとは、エンドポイントにエラーが発生していて、データの送受信ができないことを通知するためのパケットである。
【００１５】
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いてＳＴＡＬＬのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
【００１６】
また、上記において、前記固定応答回路の構成としては、ＡＣＫまたはＮＹＥＴのハンドシェイクの応答を行うように構成されているものがある。ここで、ＡＣＫとは、エラーなしでデータを受信できたことを通知するためのパケットであり、ＮＹＥＴとは、エラーなしでデータを受信できたことと、次のデータはデータを保持するバッファに余裕がないために、すぐには受け取れないことを通知するためのパケットである。
【００１７】
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してＯＵＴトークンのアクセスがあったときに、受信したデータを破棄するとともに、固定応答回路を用いてＡＣＫまたはＮＹＥＴのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在していてデータを受け取れたように振舞うことができる。
【００１８】
また、上記において、前記固定応答回路の構成としては、ＮＡＫのハンドシェイクの応答を行った回数が特定の値を超えたときに割り込み信号を出力するように構成されているものがある。
【００１９】
この場合、さらに、ＮＡＫの応答の回数が特定の値を超えたことを知らせることにより、固定応答回路に接続されたエンドポイントがどのぐらいの時間、ＵＳＢバスからＮＡＫの状態に見えているかを判断することができる。
【００２０】
また、上記において、前記固定応答回路の構成としては、ＮＡＫのハンドシェイクの応答を行った回数が特定の値を超えたときに、前記固定応答回路で制御されているエンドポイントを前記エンドポイント制御回路で制御するように切り替えるように構成されているものがある。
【００２１】
この場合、さらに、ＮＡＫの送信回数に基づいて、固定応答回路とエンドポイント制御回路とを自動的に交互に切り替えることができ、複数のエンドポイント間でバッファ回路を共有する制御が自動化できる。
【００２２】
また、上記において、前記固定応答回路で制御されているエンドポイントにＯＵＴトークンが送信されたことをトリガとして、制御を前記エンドポイント制御回路に切り替える構成もよい。
【００２３】
この場合、ＯＵＴトークンの受信で一旦、データ送受信が途切れるから、これを契機にして、固定応答回路とエンドポイント制御回路とを自動的に切り替える。すなわち、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行う制御が自動化される。
【００２４】
また、上記において、前記エンドポイント制御回路で制御されているエンドポイントのパケット送信をトリガとして、前記固定応答回路で制御されているエンドポイントの制御を、前記エンドポイント制御回路に切り替える構成もよい。
【００２５】
この場合、特定のパケット送信をトリガとして、固定応答回路とエンドポイント制御回路とを自動的に切り替えることができ、切替制御を自動化できる。
【００２６】
また、上記において、前記エンドポイント制御回路と前記固定応答回路を一定時間経過をトリガとして入れ替える構成もよい。
【００２７】
この場合、固定応答回路とエンドポイント制御回路を一定周期で自動的に切り替えることができ、複数のエンドポイント相互間でデータ転送を均等化することができる。
【発明の効果】
【００２８】
以上のように本発明によれば、ＵＳＢ装置としての機能を保ちつつ、回路規模の削減を実現することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明にかかわるＵＳＢ装置の実施の形態を図面に基づいて詳細に説明する。
【００３０】
（実施の形態１）
図１は本発明の実施の形態１におけるＵＳＢ装置の構成を示すブロック図である。図１において、１００はＵＳＢ装置、３００はＣＰＵである。また、１０１はパケットのデコードとエンコードを行うパケットデコード／エンコード回路、１０４はパケット送受信の処理を行う回路が組み込まれているエンドポイント制御回路、１０５はエンドポイント制御回路１０４に接続されてパケットのデータをバッファするＦＩＦＯ、１０３はトークン（データ送信権）に対して設定された固定の応答を返す固定応答回路、１０６と１０７はそれぞれ第１のエンドポイントEP_A、第２のエンドポイントEP_Bのデータが伝達される信号線である。１０２は第１のエンドポイントEP_A、第２のエンドポイントEP_Bのどちらをエンドポイント制御回路１０４と固定応答回路１０３に接続するかを制御する接続切替回路であり、１０８は接続切替回路１０２を制御する制御回路である。接続切替回路１０２は、固定応答回路１０３、エンドポイント制御回路１０４、制御回路１０８から制御することができる。
【００３１】
固定応答回路１０３は、必要最小限の要素から構成されている。
【００３２】
図２は図１の固定応答回路１０３の詳細を示したものである。図２において、２０３は固定応答回路１０３の動作を決めるための設定を記憶するための設定レジスタであり、２０２はトークンに対する応答を設定レジスタ２０３の設定に基づいて選択する応答選択回路、２０１は設定レジスタ２０３の設定と応答選択回路２０２からの情報に基づいて図１の接続切替回路１０２による接続状態を制御する接続切替回路制御回路である。
【００３３】
この固定応答回路１０３は、エンドポイント制御回路１０４に比べると、その回路規模はかなり小さいものとなっている。
【００３４】
図３は本発明の実施の形態１のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３をＮＡＫのハンドシェイク応答に設定する場合の動作説明である。
【００３５】
ステップ３０１において、固定応答回路１０３をＮＡＫのハンドシェイク応答に設定する。
【００３６】
次に、ステップ３０２において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ３０１で設定されたＮＡＫの応答を行える状態にする。
【００３７】
この状態で、ＵＳＢバスからのトークン受信をステップ３０３で待つ。
【００３８】
トークンを受信すると、ステップ３０４へ遷移して対象エンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ３０６に遷移し、ＮＡＫのハンドシェイクの送信を行い、再びトークン受信待ちのステップ３０３へ遷移する。
【００３９】
一方、ステップ３０４での対象エンドポイントが第１のエンドポイントEP_Aであれば、パケットの送受信を行う。
【００４０】
以上のように本実施形態によれば、固定応答を行うように設定された第２のエンドポイントEP_Bは、固定応答回路１０３を使用してＮＡＫのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路１０３は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
【００４１】
（実施の形態２）
図４は本発明の実施の形態２のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３を０バイト（byte）のデータパケット応答に設定する場合の動作説明である。
以下、図４に基づいて説明する。
【００４２】
ステップ４０１において、固定応答回路１０３を０バイトのデータパケット応答に設定する。
【００４３】
次に、ステップ４０２において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ４０１で設定された０バイトパケット応答を行える状態にする。
【００４４】
この状態で、ＵＳＢバスからのトークン受信をステップ４０３で待つ。
【００４５】
トークンを受信すると、ステップ４０４へ遷移して対象エンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ４０６に遷移し、０バイトパケットの送信を行い、再びトークン受信待ちのステップ４０３へ遷移する。
【００４６】
一方、ステップ４０４での対象エンドポイントが第１のエンドポイントEP_Aであれば、パケットの送受信を行う。
【００４７】
以上のように本実施形態によれば、固定応答を行うように設定された第２のエンドポイントEP_Bは、固定応答回路１０３を使用して０バイトパケットの送信を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路１０３は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
【００４８】
（実施の形態３）
図５は本発明の実施の形態３のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３をＳＴＡＬＬのハンドシェイク応答に設定する場合の動作説明である。
【００４９】
ステップ５０１において、固定応答回路１０３をＳＴＡＬＬのハンドシェイク応答に設定する。
【００５０】
次に、ステップ５０２において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ５０１で設定されたＳＴＡＬＬのハンドシェイク応答を行える状態にする。
【００５１】
この状態で、ＵＳＢバスからのトークン受信をステップ５０３で待つ。
【００５２】
トークンを受信すると、ステップ５０４へ遷移して対象エンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ５０６に遷移し、ＳＴＡＬＬのハンドシェイクの送信を行い、再びトークン受信待ちのステップ５０３へ遷移する。
【００５３】
一方、ステップ５０４での対象エンドポイントが第１のエンドポイントEP_Aであれば、パケットの送受信を行う。
【００５４】
以上のように本実施形態によれば、固定応答を行うように設定された第２のエンドポイントEP_Bは、固定応答回路１０３を使用してＳＴＡＬＬのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路１０３は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
【００５５】
（実施の形態４）
図６は本発明の実施の形態４のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３をＡＣＫ（またはＮＹＥＴ）のハンドシェイク応答に設定する場合の動作説明である。
【００５６】
ステップ６０１において、固定応答回路１０３をＡＣＫ（またはＮＹＥＴ）のハンドシェイク応答に設定する。
【００５７】
次に、ステップ６０２において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ６０１で設定されたＡＣＫ（またはＮＹＥＴ）のハンドシェイク応答を行える状態にする。
【００５８】
この状態で、ＵＳＢバスからのＯＵＴトークン受信をステップ６０３で待つ。
【００５９】
トークンを受信すると、ステップ６０４へ遷移して対象エンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ６０６に遷移し、ＡＣＫ（またはＮＹＥＴ）のハンドシェイク送信を行い、再びトークン受信待ちのステップ６０３へ遷移する。このとき、ＯＵＴトークンと共に送信されてくるデータパケットは破棄する。
【００６０】
一方、ステップ６０４での対象エンドポイントが第１のエンドポイントEP_Aであれば、パケットの送受信を行う。
【００６１】
以上のように本実施形態によれば、固定応答を行うように設定された第２のエンドポイントEP_Bは、固定応答回路１０３を使用して、あたかもエンドポイント制御回路が存在していてデータを受け取れたように振舞うことができる。その固定応答回路１０３は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
【００６２】
（実施の形態５）
図７は本発明の実施の形態５のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３をＮＡＫのハンドシェイク応答に設定する場合において、その応答回数が規定の回数を超えたことを相手側に知らせるようにした動作説明である。
【００６３】
ステップ７０１において、固定応答回路１０３をＮＡＫのハンドシェイク応答に設定する。
【００６４】
次に、ステップ７０２において、固定応答回路１０３からＮＡＫの応答が特定の回数Ｎ回発生したときに、ＣＰＵ３００に対して割り込みが発生するように設定する。
【００６５】
次に、ステップ７０３において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ７０１で設定されたＮＡＫのハンドシェイク応答を行える状態にする。
【００６６】
この状態で、トークンの受信を待つ（ステップ７０４）。
【００６７】
トークンを受信すると、ステップ７０５に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ７０６に遷移し、パケットの送受信を行う。一方、ステップ７０５で対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ７０７に遷移し、ＮＡＫのハンドシェイクを送信する。
【００６８】
次に、ステップ７０８でＮＡＫの応答が何回発生したかを判定し、ステップ７０２での設定回数Ｎ回を超えていれば、ステップ７０９でＣＰＵ３００に対して割り込みを発生し、次いで、ステップ７０４に遷移して再びトークンの受信を待つ。
【００６９】
一方、ステップ７０８でＮＡＫの応答回数がＮ回を超えていれば、ステップ７０４に遷移してトークン受信待ちになり、割り込みは発生しない。
【００７０】
以上のように本実施形態によれば、固定応答を行うように設定された第２のエンドポイントEP_Bは、必要最小限の回路規模の固定応答回路１０３を使用して、あたかもエンドポイント制御回路が存在するように振舞うことができる。さらに、ＮＡＫの応答の回数が規定の回数を超えたことを知らせることにより、第２のエンドポイントEP_Bがどのぐらいの時間、ＵＳＢバスからＮＡＫの状態に見えているかを判断することができる。
【００７１】
（実施の形態６）
図８は本発明の実施の形態６のＵＳＢ装置の動作を示すフローチャートである。これは、固定応答回路１０３をＮＡＫのハンドシェイク応答に設定する場合において、その送信回数に基づいて、固定応答回路とエンドポイント制御回路とを自動的に交互に切り替えるようにした動作説明である。
【００７２】
ステップ８０１において、固定応答回路１０３をＮＡＫの応答に設定する。
【００７３】
次に、ステップ８０２において、固定応答回路１０３からＮ回、ＮＡＫの応答が発生したときに接続切替回路１０２を制御する旨の設定を行う。
【００７４】
次に、ステップ８０３において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第２のエンドポイントEP_Bを固定応答回路１０３に接続することにより、特に本実施の形態の場合は、ステップ８０１で設定されたＮＡＫのハンドシェイク応答を行える状態にする。
【００７５】
この状態で、トークンの受信を待つ（ステップ８０４）。
【００７６】
トークンを受信すると、ステップ８０５に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ８０６に遷移し、パケットの送受信を行う。
【００７７】
一方、ステップ８０５で対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ８０７に遷移し、ＮＡＫのハンドシェイクを送信する。
【００７８】
次に、ステップ８０８でＮＡＫの応答が何回発生したかを判定し、ステップ８０２での設定回数Ｎ回を超えていなければ、ステップ８０４に遷移する。
【００７９】
ステップ８０８でＮＡＫの応答がステップ８０２での設定回数Ｎ回を超えている場合には、ステップ８０９に遷移し、接続切替回路１０２を制御して第２のエンドポイントEP_Bをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第１のエンドポイントEP_Aを固定応答回路１０３に接続し固定の応答をする状態に切り替える。
【００８０】
次に、ステップ８１０において、トークン受信を待つ。
【００８１】
トークンを受信すると、ステップ８１１に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ８１２に遷移して固定の応答を返し、再びトークン受信待ちのステップ８１０へ遷移する。
【００８２】
一方、ステップ８１１での対象エンドポイントが第２のエンドポイントEP_Bであれば、パケットの送受信を行い、次いで、トークン受信待ちのステップ８１０に遷移する。
【００８３】
以上のように本実施形態によれば、ＮＡＫの送信回数に基づいて、固定応答回路１０３と通常のパケット転送可能なエンドポイント制御回路１０４とを自動的に交互に切り替えることができ、複数のエンドポイント間でバッファ回路を共有する制御が自動化できる。
【００８４】
（実施の形態７）
図９は本発明の実施の形態７のＵＳＢ装置の動作を示すフローチャートである。これは、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行えるようにした動作説明である。
【００８５】
ステップ９０１において、固定応答回路１０３の固定応答を設定する。
【００８６】
次に、ステップ９０２において、第２の第２のエンドポイントEP_BがＯＵＴトークンを受信したときに接続切替回路１０２を制御する旨の設定を、制御回路１０８において行う。
【００８７】
次に、ステップ９０３において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にし、第２のエンドポイントEP_Bを固定応答回路１０３に接続する。
【００８８】
次に、ステップ９０４において、トークン受信を待つ。
【００８９】
トークンを受信すると、ステップ９０５に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、パケットの送受信を行い、再びトークン受信待ちのステップ９０４に遷移する。
【００９０】
一方、ステップ９０５において、対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ９０７に遷移し、この場合、ＯＵＴトークンが来ているので、制御回路１０８から接続切替回路１０２が制御されて、第２のエンドポイントEP_Bがエンドポイント制御回路１０４に接続されてパケット送受信が可能な状態になり、第１のエンドポイントEP_Aが固定の応答をする状態に切り替わる。
【００９１】
次に、ステップ９０８に遷移して、第２のエンドポイントEP_Bのパケット受信が行われる。
【００９２】
次に、ステップ９０９において、トークン受信を待つ。
【００９３】
トークンを受信すると、ステップ９１０に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ９１１に遷移して固定の応答を返し、再びトークン受信待ちのステップ９０９へ遷移する。
【００９４】
一方、ステップ９１０での対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ９１２に遷移してパケットの送受信を行い、次いで、トークン受信待ちのステップ９０９に遷移する。
【００９５】
以上のように本実施形態によれば、固定応答回路１０３と通常のパケット転送可能なエンドポイント制御回路１０４とを自動的に切り替えることができ、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行う制御が自動化される。
【００９６】
（実施の形態８）
図１０は本発明の実施の形態８のＵＳＢ装置の動作を示すフローチャートである。これは、特定のパケット送信をトリガとして、固定応答回路とエンドポイント制御回路とを自動的に切り替えるようにした動作説明である。
【００９７】
ステップ１００１において、固定応答回路１０３の固定応答を設定する。
【００９８】
次に、ステップ１００２において、第１のエンドポイントEP_Aのパケット送信が終了後に接続切替回路１０２を制御する旨の設定を、エンドポイント制御回路１０４において行う。
【００９９】
次に、ステップ１００３において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にし、第２のエンドポイントEP_Bを固定応答回路１０３に接続する。
【０１００】
次に、ステップ１００４において、トークン受信を待つ。
【０１０１】
トークンを受信すると、ステップ１００５に遷移して対象エンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ１００６に遷移して設定された固定応答を返し、再びトークン受信待ちのステップ１００４に戻る。
【０１０２】
一方、ステップ１００５で対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ１００７に遷移してパケットを送信し、ステップ１００８に遷移する。
【０１０３】
ステップ１００８においては、接続切替回路１０２を制御して第２のエンドポイントEP_Bをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第１のエンドポイントEP_Aを固定応答回路１０３に接続して固定の応答をする状態に切り替える。
【０１０４】
次に、ステップ１００９において、トークン受信を待つ。
【０１０５】
トークンを受信すると、ステップ１０１０に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ１０１１に遷移して固定の応答を返し、再びトークン受信待ちのステップ１００９へ遷移する。
【０１０６】
一方、ステップ１０１０での対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ１０１２に遷移してパケットの送受信を行い、次いで、トークン受信待ちのステップ１００９に遷移する。
【０１０７】
以上のように本実施形態によれば、特定のパケット送信をトリガとして、固定応答回路１０３と通常のパケット転送可能なエンドポイント制御回路１０４とを自動的に切り替えることができる。すなわち、切替制御が自動化される。
【０１０８】
（実施の形態９）
図１１は本発明の実施の形態９のＵＳＢ装置の動作を示すフローチャートである。これは、各エンドポイントによるパケット転送を均等化するために、固定応答回路とエンドポイント制御回路を一定周期で自動的に切り替えるようにした動作説明である。
【０１０９】
ステップ１１０１において、固定応答回路１０３の固定応答を設定する。
【０１１０】
次に、ステップ１１０２において、一定時間経過後に接続切替回路１０２を制御する旨の設定を、制御回路１０８において行う。
【０１１１】
次に、ステップ１１０３において、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にし、第２のエンドポイントEP_Bを固定応答回路１０３に接続する。
【０１１２】
次に、ステップ１１０４において、トークン受信を待つ。
【０１１３】
トークンを受信すると、ステップ１１０５に遷移し、対象のエンドポイントを判定する。対象エンドポイントが第２のエンドポイントEP_Bであれば、ステップ１１０７に遷移して設定された固定応答を返し、対象エンドポイントが第１のエンドポイントEP_Aであれば、ステップ１１０６に遷移してパケット送受信を行う。
【０１１４】
次に、ステップ１１０８に遷移して、ステップ１１０２での設定時間を超えているか判定を行う。ステップ１１０２での設定時間を超えていない場合はトークン受信待ちのステップ１１０４に遷移してトークンの受信を待つ。
【０１１５】
一方、ステップ１１０８で、ステップ１１０２での設定時間を超えていると判定された場合は、ステップ１１０９に遷移し、接続切替回路１０２を制御して第２のエンドポイントEP_Bをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にするとともに、第１のエンドポイントEP_Aを固定応答回路１０３に接続して固定の応答をする状態に切り替える。
【０１１６】
次に、ステップ１１１０でトークン受信を待ち、トークンが受信されると、ステップ１１１１に遷移して対象エンドポイントを判定する。対象エンドポイントが第１のエンドポイントEP_Aの場合は、ステップ１１１２に遷移して固定応答を行い、対象エンドポイントが第２のエンドポイントEP_Bの場合は、パケット送受信を行う。
【０１１７】
その次に、再びステップ１１１４で設定時間を超えているか判定し、超えていなければ、ステップ１１１０に遷移してトークンの受信を待つ。設定時間を超えている場合は、ステップ１１０３に遷移し、接続切替回路１０２の設定として、第１のエンドポイントEP_Aをエンドポイント制御回路１０４に接続してパケット送受信が可能な状態にし、第２のエンドポイントEP_Bを固定応答回路１０３に接続する。
【０１１８】
以上のように本実施形態によれば、固定応答回路１０３と通常のパケット転送可能なエンドポイント制御回路１０４を一定周期で自動的に切り替えることができ、第１のエンドポイントEP_Aによるパケット転送と第２のエンドポイントEP_Bによるパケット転送を均等化することが可能となる。
【０１１９】
なお、以上の実施の形態ではエンドポイントを２個としたが、エンドポイントを３個以上とした場合にも、本発明は適用可能である。
【産業上の利用可能性】
【０１２０】
本発明のＵＳＢ装置は、パソコンと周辺機器を結ぶインタフェース等としてコストを抑える場合に有用である。
【図面の簡単な説明】
【０１２１】
【図１】本発明の実施の形態におけるＵＳＢ装置の構成を示すブロック図
【図２】図１の固定応答回路の詳細を示すブロック図
【図３】本発明の実施の形態１の動作を説明するフローチャート
【図４】本発明の実施の形態２の動作を説明するフローチャート
【図５】本発明の実施の形態３の動作を説明するフローチャート
【図６】本発明の実施の形態４の動作を説明するフローチャート
【図７】本発明の実施の形態５の動作を説明するフローチャート
【図８】本発明の実施の形態６の動作を説明するフローチャート
【図９】本発明の実施の形態７の動作を説明するフローチャート
【図１０】本発明の実施の形態８の動作を説明するフローチャート
【図１１】本発明の実施の形態９の動作を説明するフローチャート
【符号の説明】
【０１２２】
１００  ＵＳＢ装置
１０１  パケットデコード／エンコード回路
１０２  接続切替回路
１０３  固定応答回路
１０４  エンドポイント制御回路
１０５  ＦＩＦＯ
１０８  制御回路
２０１  接続切替回路制御回路
２０２  応答選択回路
２０３  設定レジスタ
３００  ＣＰＵ 
【図１】
2005251095.tif 000003
【図２】
2005251095.tif 000004
【図３】
2005251095.tif 000005
【図４】
2005251095.tif 000006
【図５】
2005251095.tif 000007
【図６】
2005251095.tif 000008
【図７】
2005251095.tif 000009
【図８】
2005251095.tif 000010
【図９】
2005251095.tif 000011
【図１０】
2005251095.tif 000012
【図１１】
2005251095.tif 000013