JP2005251095A - Usb装置 - Google Patents
Usb装置 Download PDFInfo
- Publication number
- JP2005251095A JP2005251095A JP2004064210A JP2004064210A JP2005251095A JP 2005251095 A JP2005251095 A JP 2005251095A JP 2004064210 A JP2004064210 A JP 2004064210A JP 2004064210 A JP2004064210 A JP 2004064210A JP 2005251095 A JP2005251095 A JP 2005251095A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- endpoint
- fixed response
- control circuit
- usb device
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】 従来のUSB装置は1つのエンドポイントに対して1つのエンドポイント制御回路が必要である。そのため、複数のエンドポイントを持つ場合に、それと同数のエンドポイント制御回路が必要で、回路規模が大きくなっていた。
【解決手段】 エンドポイントを制御する回路として、通常のエンドポイント制御回路104のほかに、固定の応答のみが制御できる固定応答回路103を用いる。この固定応答回路103は、通常のエンドポイント制御回路を置き換えたものである。そして、固定応答回路103と通常のエンドポイント制御回路104のエンドポイントへの割り当てを切り替える接続切替回路102を設ける。USB装置としての機能を保ちつつ、回路規模の削減を実現する。
【選択図】 図1
【解決手段】 エンドポイントを制御する回路として、通常のエンドポイント制御回路104のほかに、固定の応答のみが制御できる固定応答回路103を用いる。この固定応答回路103は、通常のエンドポイント制御回路を置き換えたものである。そして、固定応答回路103と通常のエンドポイント制御回路104のエンドポイントへの割り当てを切り替える接続切替回路102を設ける。USB装置としての機能を保ちつつ、回路規模の削減を実現する。
【選択図】 図1
Description
本発明は、USB(Universal Serial Bus)装置について、そのバッファ回路の規模を削減する技術に関する。
パソコンと周辺機器を接続するインターフェースとしてUSBが知られている。USBインターフェースでは、パソコンと周辺機器との間でデータ転送を行う場合、パソコンは、周辺機器内に設けられた論理接続端子であるエンドポイントに対してデータ(パケット)の送受信を行う。エンドポイントに送受信されるデータは、エンドポイントごとに設けられたFIFOなどのバッファメモリに格納される。そのため、複数のエンドポイントを備える場合には、バッファメモリも同数備えている。
しかしこれでは、1つのエンドポイントについて1つのバッファメモリを必要とするため、多数のエンドポイントを実装する場合には、同数のバッファメモリの装備のために回路規模が増大する。
そこで、回路規模の削減を図るために、FIFOを複数のエンドポイントで共有する手段を用いて、FIFOの数をエンドポイントの数より少なくする方式が提案されている(例えば、特許文献1参照)。
特開2002-55937号公報(第6頁、第1図)
上記の技術では、FIFOの部分で回路規模の削減が行われている。しかしながら、エンドポイント毎に必要な制御回路については削減されておらず、エンドポイントと同じ数の制御回路を必要としている。そのため、回路規模は依然大きいという課題があった。
本発明は、このような事情に鑑みて創作したものであり、エンドポイント毎に必要な制御回路の削減を図り、回路規模をさらに削減することを目的としている。
本発明は、上記の課題を解決するために次のような手段を講じる。
本発明によるUSB装置は、複数のエンドポイントを介して通信相手との間でデータを送受信するUSB装置であって、前記エンドポイントの制御回路として、データ送受信の制御が可能な通常のエンドポイント制御回路と、通常のエンドポイント制御回路に代わるもので限定された応答のみが可能な固定応答回路とを備える。さらに、前記複数のエンドポイントと前記エンドポイント制御回路および前記固定応答回路との接続関係を切り替える接続切替回路を備える。
接続切替回路は、あるエンドポイントをエンドポイント制御回路に接続し、別のエンドポイントを固定応答回路に接続する。エンドポイント制御回路に接続されたエンドポイントに対してのアクセスであれば、エンドポイント制御回路に接続のバッファを用いて相手側との間でデータ(パケット)の送受信を行う。一方、固定応答回路に接続されたエンドポイントに対してのアクセスであれば、固定応答回路が限定された応答を相手側に返し、通信を成立させる。ここで、固定応答回路は、データ送受信の制御の機能を有するエンドポイント制御回路に比べて、構成要素が少なく、回路規模を小さなものにできる。すなわち、全体として、USB装置としての機能を保ちつつ、回路規模の削減を実現できる。
上記において、前記固定応答回路の構成としては、NAKのハンドシェイクの応答を行うように構成されているものがある。ここで、NAKとは、データを受信または送信できないことを通知するためのパケットである。
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いてNAKのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
また、上記において、前記固定応答回路の構成としては、データサイズが0バイトのパケットの応答を行うように構成されているものがある。
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いて0バイトのパケットの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
また、上記において、前記固定応答回路の構成としては、STALLのハンドシェイクの応答を行うように構成されているものがある。ここで、STALLとは、エンドポイントにエラーが発生していて、データの送受信ができないことを通知するためのパケットである。
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してアクセスがあったときに、固定応答回路を用いてSTALLのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。
また、上記において、前記固定応答回路の構成としては、ACKまたはNYETのハンドシェイクの応答を行うように構成されているものがある。ここで、ACKとは、エラーなしでデータを受信できたことを通知するためのパケットであり、NYETとは、エラーなしでデータを受信できたことと、次のデータはデータを保持するバッファに余裕がないために、すぐには受け取れないことを通知するためのパケットである。
この場合、固定応答回路に接続されたエンドポイントは、相手側から自己に対してOUTトークンのアクセスがあったときに、受信したデータを破棄するとともに、固定応答回路を用いてACKまたはNYETのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在していてデータを受け取れたように振舞うことができる。
また、上記において、前記固定応答回路の構成としては、NAKのハンドシェイクの応答を行った回数が特定の値を超えたときに割り込み信号を出力するように構成されているものがある。
この場合、さらに、NAKの応答の回数が特定の値を超えたことを知らせることにより、固定応答回路に接続されたエンドポイントがどのぐらいの時間、USBバスからNAKの状態に見えているかを判断することができる。
また、上記において、前記固定応答回路の構成としては、NAKのハンドシェイクの応答を行った回数が特定の値を超えたときに、前記固定応答回路で制御されているエンドポイントを前記エンドポイント制御回路で制御するように切り替えるように構成されているものがある。
この場合、さらに、NAKの送信回数に基づいて、固定応答回路とエンドポイント制御回路とを自動的に交互に切り替えることができ、複数のエンドポイント間でバッファ回路を共有する制御が自動化できる。
また、上記において、前記固定応答回路で制御されているエンドポイントにOUTトークンが送信されたことをトリガとして、制御を前記エンドポイント制御回路に切り替える構成もよい。
この場合、OUTトークンの受信で一旦、データ送受信が途切れるから、これを契機にして、固定応答回路とエンドポイント制御回路とを自動的に切り替える。すなわち、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行う制御が自動化される。
また、上記において、前記エンドポイント制御回路で制御されているエンドポイントのパケット送信をトリガとして、前記固定応答回路で制御されているエンドポイントの制御を、前記エンドポイント制御回路に切り替える構成もよい。
この場合、特定のパケット送信をトリガとして、固定応答回路とエンドポイント制御回路とを自動的に切り替えることができ、切替制御を自動化できる。
また、上記において、前記エンドポイント制御回路と前記固定応答回路を一定時間経過をトリガとして入れ替える構成もよい。
この場合、固定応答回路とエンドポイント制御回路を一定周期で自動的に切り替えることができ、複数のエンドポイント相互間でデータ転送を均等化することができる。
以上のように本発明によれば、USB装置としての機能を保ちつつ、回路規模の削減を実現することができる。
以下、本発明にかかわるUSB装置の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1におけるUSB装置の構成を示すブロック図である。図1において、100はUSB装置、300はCPUである。また、101はパケットのデコードとエンコードを行うパケットデコード/エンコード回路、104はパケット送受信の処理を行う回路が組み込まれているエンドポイント制御回路、105はエンドポイント制御回路104に接続されてパケットのデータをバッファするFIFO、103はトークン(データ送信権)に対して設定された固定の応答を返す固定応答回路、106と107はそれぞれ第1のエンドポイントEP_A、第2のエンドポイントEP_Bのデータが伝達される信号線である。102は第1のエンドポイントEP_A、第2のエンドポイントEP_Bのどちらをエンドポイント制御回路104と固定応答回路103に接続するかを制御する接続切替回路であり、108は接続切替回路102を制御する制御回路である。接続切替回路102は、固定応答回路103、エンドポイント制御回路104、制御回路108から制御することができる。
図1は本発明の実施の形態1におけるUSB装置の構成を示すブロック図である。図1において、100はUSB装置、300はCPUである。また、101はパケットのデコードとエンコードを行うパケットデコード/エンコード回路、104はパケット送受信の処理を行う回路が組み込まれているエンドポイント制御回路、105はエンドポイント制御回路104に接続されてパケットのデータをバッファするFIFO、103はトークン(データ送信権)に対して設定された固定の応答を返す固定応答回路、106と107はそれぞれ第1のエンドポイントEP_A、第2のエンドポイントEP_Bのデータが伝達される信号線である。102は第1のエンドポイントEP_A、第2のエンドポイントEP_Bのどちらをエンドポイント制御回路104と固定応答回路103に接続するかを制御する接続切替回路であり、108は接続切替回路102を制御する制御回路である。接続切替回路102は、固定応答回路103、エンドポイント制御回路104、制御回路108から制御することができる。
固定応答回路103は、必要最小限の要素から構成されている。
図2は図1の固定応答回路103の詳細を示したものである。図2において、203は固定応答回路103の動作を決めるための設定を記憶するための設定レジスタであり、202はトークンに対する応答を設定レジスタ203の設定に基づいて選択する応答選択回路、201は設定レジスタ203の設定と応答選択回路202からの情報に基づいて図1の接続切替回路102による接続状態を制御する接続切替回路制御回路である。
この固定応答回路103は、エンドポイント制御回路104に比べると、その回路規模はかなり小さいものとなっている。
図3は本発明の実施の形態1のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をNAKのハンドシェイク応答に設定する場合の動作説明である。
ステップ301において、固定応答回路103をNAKのハンドシェイク応答に設定する。
次に、ステップ302において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ301で設定されたNAKの応答を行える状態にする。
この状態で、USBバスからのトークン受信をステップ303で待つ。
トークンを受信すると、ステップ304へ遷移して対象エンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ306に遷移し、NAKのハンドシェイクの送信を行い、再びトークン受信待ちのステップ303へ遷移する。
一方、ステップ304での対象エンドポイントが第1のエンドポイントEP_Aであれば、パケットの送受信を行う。
以上のように本実施形態によれば、固定応答を行うように設定された第2のエンドポイントEP_Bは、固定応答回路103を使用してNAKのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路103は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
(実施の形態2)
図4は本発明の実施の形態2のUSB装置の動作を示すフローチャートである。これは、固定応答回路103を0バイト(byte)のデータパケット応答に設定する場合の動作説明である。
以下、図4に基づいて説明する。
図4は本発明の実施の形態2のUSB装置の動作を示すフローチャートである。これは、固定応答回路103を0バイト(byte)のデータパケット応答に設定する場合の動作説明である。
以下、図4に基づいて説明する。
ステップ401において、固定応答回路103を0バイトのデータパケット応答に設定する。
次に、ステップ402において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ401で設定された0バイトパケット応答を行える状態にする。
この状態で、USBバスからのトークン受信をステップ403で待つ。
トークンを受信すると、ステップ404へ遷移して対象エンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ406に遷移し、0バイトパケットの送信を行い、再びトークン受信待ちのステップ403へ遷移する。
一方、ステップ404での対象エンドポイントが第1のエンドポイントEP_Aであれば、パケットの送受信を行う。
以上のように本実施形態によれば、固定応答を行うように設定された第2のエンドポイントEP_Bは、固定応答回路103を使用して0バイトパケットの送信を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路103は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
(実施の形態3)
図5は本発明の実施の形態3のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をSTALLのハンドシェイク応答に設定する場合の動作説明である。
図5は本発明の実施の形態3のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をSTALLのハンドシェイク応答に設定する場合の動作説明である。
ステップ501において、固定応答回路103をSTALLのハンドシェイク応答に設定する。
次に、ステップ502において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ501で設定されたSTALLのハンドシェイク応答を行える状態にする。
この状態で、USBバスからのトークン受信をステップ503で待つ。
トークンを受信すると、ステップ504へ遷移して対象エンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ506に遷移し、STALLのハンドシェイクの送信を行い、再びトークン受信待ちのステップ503へ遷移する。
一方、ステップ504での対象エンドポイントが第1のエンドポイントEP_Aであれば、パケットの送受信を行う。
以上のように本実施形態によれば、固定応答を行うように設定された第2のエンドポイントEP_Bは、固定応答回路103を使用してSTALLのハンドシェイクの応答を行うことにより、あたかもエンドポイント制御回路が存在しているかのように振舞うことができる。その固定応答回路103は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
(実施の形態4)
図6は本発明の実施の形態4のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をACK(またはNYET)のハンドシェイク応答に設定する場合の動作説明である。
図6は本発明の実施の形態4のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をACK(またはNYET)のハンドシェイク応答に設定する場合の動作説明である。
ステップ601において、固定応答回路103をACK(またはNYET)のハンドシェイク応答に設定する。
次に、ステップ602において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ601で設定されたACK(またはNYET)のハンドシェイク応答を行える状態にする。
この状態で、USBバスからのOUTトークン受信をステップ603で待つ。
トークンを受信すると、ステップ604へ遷移して対象エンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ606に遷移し、ACK(またはNYET)のハンドシェイク送信を行い、再びトークン受信待ちのステップ603へ遷移する。このとき、OUTトークンと共に送信されてくるデータパケットは破棄する。
一方、ステップ604での対象エンドポイントが第1のエンドポイントEP_Aであれば、パケットの送受信を行う。
以上のように本実施形態によれば、固定応答を行うように設定された第2のエンドポイントEP_Bは、固定応答回路103を使用して、あたかもエンドポイント制御回路が存在していてデータを受け取れたように振舞うことができる。その固定応答回路103は、必要最小限の要素で構成されたものであり、その回路規模は充分に小さなものですむ。
(実施の形態5)
図7は本発明の実施の形態5のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をNAKのハンドシェイク応答に設定する場合において、その応答回数が規定の回数を超えたことを相手側に知らせるようにした動作説明である。
図7は本発明の実施の形態5のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をNAKのハンドシェイク応答に設定する場合において、その応答回数が規定の回数を超えたことを相手側に知らせるようにした動作説明である。
ステップ701において、固定応答回路103をNAKのハンドシェイク応答に設定する。
次に、ステップ702において、固定応答回路103からNAKの応答が特定の回数N回発生したときに、CPU300に対して割り込みが発生するように設定する。
次に、ステップ703において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ701で設定されたNAKのハンドシェイク応答を行える状態にする。
この状態で、トークンの受信を待つ(ステップ704)。
トークンを受信すると、ステップ705に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ706に遷移し、パケットの送受信を行う。一方、ステップ705で対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ707に遷移し、NAKのハンドシェイクを送信する。
次に、ステップ708でNAKの応答が何回発生したかを判定し、ステップ702での設定回数N回を超えていれば、ステップ709でCPU300に対して割り込みを発生し、次いで、ステップ704に遷移して再びトークンの受信を待つ。
一方、ステップ708でNAKの応答回数がN回を超えていれば、ステップ704に遷移してトークン受信待ちになり、割り込みは発生しない。
以上のように本実施形態によれば、固定応答を行うように設定された第2のエンドポイントEP_Bは、必要最小限の回路規模の固定応答回路103を使用して、あたかもエンドポイント制御回路が存在するように振舞うことができる。さらに、NAKの応答の回数が規定の回数を超えたことを知らせることにより、第2のエンドポイントEP_Bがどのぐらいの時間、USBバスからNAKの状態に見えているかを判断することができる。
(実施の形態6)
図8は本発明の実施の形態6のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をNAKのハンドシェイク応答に設定する場合において、その送信回数に基づいて、固定応答回路とエンドポイント制御回路とを自動的に交互に切り替えるようにした動作説明である。
図8は本発明の実施の形態6のUSB装置の動作を示すフローチャートである。これは、固定応答回路103をNAKのハンドシェイク応答に設定する場合において、その送信回数に基づいて、固定応答回路とエンドポイント制御回路とを自動的に交互に切り替えるようにした動作説明である。
ステップ801において、固定応答回路103をNAKの応答に設定する。
次に、ステップ802において、固定応答回路103からN回、NAKの応答が発生したときに接続切替回路102を制御する旨の設定を行う。
次に、ステップ803において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第2のエンドポイントEP_Bを固定応答回路103に接続することにより、特に本実施の形態の場合は、ステップ801で設定されたNAKのハンドシェイク応答を行える状態にする。
この状態で、トークンの受信を待つ(ステップ804)。
トークンを受信すると、ステップ805に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ806に遷移し、パケットの送受信を行う。
一方、ステップ805で対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ807に遷移し、NAKのハンドシェイクを送信する。
次に、ステップ808でNAKの応答が何回発生したかを判定し、ステップ802での設定回数N回を超えていなければ、ステップ804に遷移する。
ステップ808でNAKの応答がステップ802での設定回数N回を超えている場合には、ステップ809に遷移し、接続切替回路102を制御して第2のエンドポイントEP_Bをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第1のエンドポイントEP_Aを固定応答回路103に接続し固定の応答をする状態に切り替える。
次に、ステップ810において、トークン受信を待つ。
トークンを受信すると、ステップ811に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ812に遷移して固定の応答を返し、再びトークン受信待ちのステップ810へ遷移する。
一方、ステップ811での対象エンドポイントが第2のエンドポイントEP_Bであれば、パケットの送受信を行い、次いで、トークン受信待ちのステップ810に遷移する。
以上のように本実施形態によれば、NAKの送信回数に基づいて、固定応答回路103と通常のパケット転送可能なエンドポイント制御回路104とを自動的に交互に切り替えることができ、複数のエンドポイント間でバッファ回路を共有する制御が自動化できる。
(実施の形態7)
図9は本発明の実施の形態7のUSB装置の動作を示すフローチャートである。これは、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行えるようにした動作説明である。
図9は本発明の実施の形態7のUSB装置の動作を示すフローチャートである。これは、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行えるようにした動作説明である。
ステップ901において、固定応答回路103の固定応答を設定する。
次に、ステップ902において、第2の第2のエンドポイントEP_BがOUTトークンを受信したときに接続切替回路102を制御する旨の設定を、制御回路108において行う。
次に、ステップ903において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にし、第2のエンドポイントEP_Bを固定応答回路103に接続する。
次に、ステップ904において、トークン受信を待つ。
トークンを受信すると、ステップ905に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、パケットの送受信を行い、再びトークン受信待ちのステップ904に遷移する。
一方、ステップ905において、対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ907に遷移し、この場合、OUTトークンが来ているので、制御回路108から接続切替回路102が制御されて、第2のエンドポイントEP_Bがエンドポイント制御回路104に接続されてパケット送受信が可能な状態になり、第1のエンドポイントEP_Aが固定の応答をする状態に切り替わる。
次に、ステップ908に遷移して、第2のエンドポイントEP_Bのパケット受信が行われる。
次に、ステップ909において、トークン受信を待つ。
トークンを受信すると、ステップ910に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ911に遷移して固定の応答を返し、再びトークン受信待ちのステップ909へ遷移する。
一方、ステップ910での対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ912に遷移してパケットの送受信を行い、次いで、トークン受信待ちのステップ909に遷移する。
以上のように本実施形態によれば、固定応答回路103と通常のパケット転送可能なエンドポイント制御回路104とを自動的に切り替えることができ、特定のエンドポイントでのパケット受信は確実に行いながら、他のエンドポイントでのパケット送受信も行う制御が自動化される。
(実施の形態8)
図10は本発明の実施の形態8のUSB装置の動作を示すフローチャートである。これは、特定のパケット送信をトリガとして、固定応答回路とエンドポイント制御回路とを自動的に切り替えるようにした動作説明である。
図10は本発明の実施の形態8のUSB装置の動作を示すフローチャートである。これは、特定のパケット送信をトリガとして、固定応答回路とエンドポイント制御回路とを自動的に切り替えるようにした動作説明である。
ステップ1001において、固定応答回路103の固定応答を設定する。
次に、ステップ1002において、第1のエンドポイントEP_Aのパケット送信が終了後に接続切替回路102を制御する旨の設定を、エンドポイント制御回路104において行う。
次に、ステップ1003において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にし、第2のエンドポイントEP_Bを固定応答回路103に接続する。
次に、ステップ1004において、トークン受信を待つ。
トークンを受信すると、ステップ1005に遷移して対象エンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ1006に遷移して設定された固定応答を返し、再びトークン受信待ちのステップ1004に戻る。
一方、ステップ1005で対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ1007に遷移してパケットを送信し、ステップ1008に遷移する。
ステップ1008においては、接続切替回路102を制御して第2のエンドポイントEP_Bをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第1のエンドポイントEP_Aを固定応答回路103に接続して固定の応答をする状態に切り替える。
次に、ステップ1009において、トークン受信を待つ。
トークンを受信すると、ステップ1010に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ1011に遷移して固定の応答を返し、再びトークン受信待ちのステップ1009へ遷移する。
一方、ステップ1010での対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ1012に遷移してパケットの送受信を行い、次いで、トークン受信待ちのステップ1009に遷移する。
以上のように本実施形態によれば、特定のパケット送信をトリガとして、固定応答回路103と通常のパケット転送可能なエンドポイント制御回路104とを自動的に切り替えることができる。すなわち、切替制御が自動化される。
(実施の形態9)
図11は本発明の実施の形態9のUSB装置の動作を示すフローチャートである。これは、各エンドポイントによるパケット転送を均等化するために、固定応答回路とエンドポイント制御回路を一定周期で自動的に切り替えるようにした動作説明である。
図11は本発明の実施の形態9のUSB装置の動作を示すフローチャートである。これは、各エンドポイントによるパケット転送を均等化するために、固定応答回路とエンドポイント制御回路を一定周期で自動的に切り替えるようにした動作説明である。
ステップ1101において、固定応答回路103の固定応答を設定する。
次に、ステップ1102において、一定時間経過後に接続切替回路102を制御する旨の設定を、制御回路108において行う。
次に、ステップ1103において、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にし、第2のエンドポイントEP_Bを固定応答回路103に接続する。
次に、ステップ1104において、トークン受信を待つ。
トークンを受信すると、ステップ1105に遷移し、対象のエンドポイントを判定する。対象エンドポイントが第2のエンドポイントEP_Bであれば、ステップ1107に遷移して設定された固定応答を返し、対象エンドポイントが第1のエンドポイントEP_Aであれば、ステップ1106に遷移してパケット送受信を行う。
次に、ステップ1108に遷移して、ステップ1102での設定時間を超えているか判定を行う。ステップ1102での設定時間を超えていない場合はトークン受信待ちのステップ1104に遷移してトークンの受信を待つ。
一方、ステップ1108で、ステップ1102での設定時間を超えていると判定された場合は、ステップ1109に遷移し、接続切替回路102を制御して第2のエンドポイントEP_Bをエンドポイント制御回路104に接続してパケット送受信が可能な状態にするとともに、第1のエンドポイントEP_Aを固定応答回路103に接続して固定の応答をする状態に切り替える。
次に、ステップ1110でトークン受信を待ち、トークンが受信されると、ステップ1111に遷移して対象エンドポイントを判定する。対象エンドポイントが第1のエンドポイントEP_Aの場合は、ステップ1112に遷移して固定応答を行い、対象エンドポイントが第2のエンドポイントEP_Bの場合は、パケット送受信を行う。
その次に、再びステップ1114で設定時間を超えているか判定し、超えていなければ、ステップ1110に遷移してトークンの受信を待つ。設定時間を超えている場合は、ステップ1103に遷移し、接続切替回路102の設定として、第1のエンドポイントEP_Aをエンドポイント制御回路104に接続してパケット送受信が可能な状態にし、第2のエンドポイントEP_Bを固定応答回路103に接続する。
以上のように本実施形態によれば、固定応答回路103と通常のパケット転送可能なエンドポイント制御回路104を一定周期で自動的に切り替えることができ、第1のエンドポイントEP_Aによるパケット転送と第2のエンドポイントEP_Bによるパケット転送を均等化することが可能となる。
なお、以上の実施の形態ではエンドポイントを2個としたが、エンドポイントを3個以上とした場合にも、本発明は適用可能である。
本発明のUSB装置は、パソコンと周辺機器を結ぶインタフェース等としてコストを抑える場合に有用である。
100 USB装置
101 パケットデコード/エンコード回路
102 接続切替回路
103 固定応答回路
104 エンドポイント制御回路
105 FIFO
108 制御回路
201 接続切替回路制御回路
202 応答選択回路
203 設定レジスタ
300 CPU
101 パケットデコード/エンコード回路
102 接続切替回路
103 固定応答回路
104 エンドポイント制御回路
105 FIFO
108 制御回路
201 接続切替回路制御回路
202 応答選択回路
203 設定レジスタ
300 CPU
Claims (10)
- 複数のエンドポイントを介して通信相手との間でデータを送受信するUSB装置であって、
前記エンドポイントの制御回路として、データ送受信の制御が可能な通常のエンドポイント制御回路と、通常のエンドポイント制御回路に代わるもので限定された応答のみが可能な固定応答回路とを備え、
さらに、前記複数のエンドポイントと前記エンドポイント制御回路および前記固定応答回路との接続関係を切り替える接続切替回路を備えることを特徴とするUSB装置。 - 前記固定応答回路は、NAKのハンドシェイクの応答を行うように構成されている請求項1に記載のUSB装置。
- 前記固定応答回路は、データサイズが0バイトのパケットの応答を行うように構成されている請求項1に記載のUSB装置。
- 前記固定応答回路は、STALLのハンドシェイクの応答を行うように構成されている請求項1に記載のUSB装置。
- 前記固定応答回路は、ACKまたはNYETのハンドシェイクの応答を行うように構成されている請求項1に記載のUSB装置。
- 前記固定応答回路は、NAKのハンドシェイクの応答を行った回数が特定の値を超えたときに割り込み信号を出力するように構成されている請求項2に記載のUSB装置。
- 前記固定応答回路は、NAKのハンドシェイクの応答を行った回数が特定の値を超えたときに、前記固定応答回路で制御されているエンドポイントを前記エンドポイント制御回路で制御するように切り替えるように構成されている請求項2に記載のUSB装置。
- 前記固定応答回路で制御されているエンドポイントにOUTトークンが送信されたことをトリガとして、制御を前記エンドポイント制御回路に切り替えるように構成された請求項1に記載のUSB装置。
- 前記エンドポイント制御回路で制御されているエンドポイントのパケット送信をトリガとして、前記固定応答回路で制御されているエンドポイントの制御を、前記エンドポイント制御回路に切り替えるように構成された請求項1に記載のUSB装置。
- 前記エンドポイント制御回路と前記固定応答回路を一定時間経過をトリガとして入れ替えるように構成された請求項1に記載のUSB装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004064210A JP2005251095A (ja) | 2004-03-08 | 2004-03-08 | Usb装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004064210A JP2005251095A (ja) | 2004-03-08 | 2004-03-08 | Usb装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005251095A true JP2005251095A (ja) | 2005-09-15 |
Family
ID=35031489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004064210A Pending JP2005251095A (ja) | 2004-03-08 | 2004-03-08 | Usb装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005251095A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4906158B1 (ja) * | 2011-08-01 | 2012-03-28 | ラトックシステム株式会社 | Kvm切替器、および切替時のusb入力装置接続維持方法 |
JP2015212052A (ja) * | 2014-05-02 | 2015-11-26 | キヤノン株式会社 | 画像形成装置とその制御方法、及びプログラム |
-
2004
- 2004-03-08 JP JP2004064210A patent/JP2005251095A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4906158B1 (ja) * | 2011-08-01 | 2012-03-28 | ラトックシステム株式会社 | Kvm切替器、および切替時のusb入力装置接続維持方法 |
JP2015212052A (ja) * | 2014-05-02 | 2015-11-26 | キヤノン株式会社 | 画像形成装置とその制御方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5054818B2 (ja) | インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 | |
JP5416767B2 (ja) | グラフィックスマルチメディアic及びその動作の方法 | |
EP0852357B1 (en) | Method for handling interrupts in a high speed I/O controller | |
US20060221831A1 (en) | Packet flow control | |
JP2006024217A (ja) | 複数の機能デバイスで単一のホスト・コントローラを共有すること | |
US7484031B2 (en) | Bus connection device | |
US20050204189A1 (en) | Network apparatus, method for controlling the same, and program for the same | |
US20150135196A1 (en) | Method For Enabling A Communication Between Processes, Processing System, Integrated Chip And Module For Such A Chip | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
KR100944892B1 (ko) | 버스 시스템 및 버스 인터페이스 | |
JP3785373B2 (ja) | 通信制御回路 | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
EP1433069B1 (en) | Bus system and bus interface for connection to a bus | |
US7428600B2 (en) | Data transfer control device, electronic equipment, and data transfer control method | |
JP2001007827A (ja) | 送受信回路及び送受信方法並びに記録媒体 | |
JP2008513905A (ja) | モバイルスケーラブルリンク(msl)アーキテクチャのための転送肯定応答 | |
GB2423165A (en) | Host controller interface for packet-based timeshared bus | |
JP2005251095A (ja) | Usb装置 | |
US20020078118A1 (en) | Network interface application specific integrated circuit to allow direct attachment for an appliance,such as a printer device | |
US8639860B2 (en) | Data transfer system and data transfer method | |
US20030093594A1 (en) | Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller | |
JP2005074911A (ja) | 画像処理装置 | |
JP2006195607A (ja) | バルクアウト転送終了判定方法および回路 | |
JP2004070423A (ja) | Usbコントローラおよびそのデータ転送制御方法 | |
KR100962306B1 (ko) | 임베디드 시스템의 양방향 데이터 통신장치 및 그 방법 |