(57)【要約】【課題】複数のバッファメモリに対する転送を並行に行えると共に、後から別のバッファメモリに転送されたデータに対する割り込みが先の割り込み解除によって同時に解除され、後の割り込みに対する割り込み処理に入れなくなる問題を解決できるＵＳＢデバイスコントローラを提供する。【解決手段】ＵＳＢ転送用の送信バッファまたは受信バッファとしてＦＩＦＯメモリを２つ備え、個々のＦＩＦＯメモリが所定量の送信データまたは受信データ毎に切替わるＵＳＢデバイスコントローラであって、そのＦＩＦＯメモリのそれぞれの割り込み状態を書き込むビット、および割り込み解除指示情報を書き込むビットを有する内部レジスタ１６を備え、内部レジスタ１６に割り込み解除が書き込まれたとき、内部レジスタ１６に複数のＦＩＦＯメモリ分が割り込み中と書き込まれていた場合、ステートマシン２１が最も先に割り込みが発生したＦＩＦＯメモリを判別し、そのＦＩＦＯメモリの割り込み中状態を解除する構成にした。【選択図】      図５
2004199402.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ転送に用いる送信バッファまたは受信バッファとして複数のＦＩＦＯメモリを備え、使用される個々のＦＩＦＯメモリが所定量の送信データまたは受信データごとに切り替わる構成のＵＳＢデバイスコントローラにおいて、少なくとも使用対象のＦＩＦＯメモリのそれぞれの割り込み状態を書き込む割り込み状態記憶手段を備えたことを特徴とするＵＳＢデバイスコントローラ。
【請求項２】
請求項１記載のＵＳＢデバイスコントローラにおいて、割り込み中状態を解除する際、前記割り込み状態記憶手段に複数のＦＩＦＯメモリ分が割り込み中と書き込まれていた場合、最も先に割り込みが発生したＦＩＦＯメモリに対応した割り込み中状態を解除する構成にしたことを特徴とするＵＳＢデバイスコントローラ。
【請求項３】
請求項２記載のＵＳＢデバイスコントローラにおいて、割り込み解除を指示する情報を書き込む割り込み解除情報記憶手段と、最も先に割り込みが発生したＦＩＦＯメモリを特定する解除対象判別手段と、を備えたことを特徴とするＵＳＢデバイスコントローラ。
【請求項４】
請求項１記載のＵＳＢデバイスコントローラにおいて、送信バッファを使用するＵＳＢイン転送の際、送信されたパケットがショートパケットであることが検出されたとき、対応する割り込み状態の発生を禁止させる割り込み禁止手段を備えたことを特徴とするＵＳＢデバイスコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばパーソナルコンピュータとプリンタとの間など複数の装置間でＵＳＢ規格によったデータ通信をおこなうＵＳＢデバイスコントローラに関する。
【０００２】
【従来の技術】
ＵＳＢ（Universal Serial Bus）規格は、パーソナルコンピュータ（以下、ＰＣと称す）と複数のＰＣ周辺装置とを接続し、データ通信をおこなうために策定されたシリアルバスインタフェース規格である。従来のインタフェース規格にはない簡便な接続性および拡張性などを特徴としており、近年、マウス、キーボード、プリンタ、スキャナ、モデムなど、ＰＣ周辺装置の多くがＵＳＢ規格に対応するようになってきている。このＵＳＢ規格には、ＰＣ周辺装置（以下、ＵＳＢデバイスと称す）の種類に応じてＵＳＢデバイスクラス仕様が定められており、プリンタはプリンタクラス仕様、ハードディスク記憶装置（ＨＤＤ）や光ディスク記憶装置などはマスストレージクラス仕様に準拠することにより共通のデバイスドライバソフトウェアを使用することが可能となる。
このようなプリンタクラス仕様またはマスストレージクラス仕様のＵＳＢ規格に準拠したデータ通信システムを実現するためには、ＵＳＢデバイスコントローラ内にバルク転送用のエンドポイントバッファを備えることが必要であり、そのようなバッファメモリを備えることによりＰＣとＵＳＢデバイス間でエラーのない大容量データ転送をおこなうことができる。また、データ転送速度向上の目的で、エンドポイントバッファと、例えばプリンタ側メインメモリまたはストレージデバイスの記憶媒体との間のデータ転送はＤＭＡ転送方式を採用するのが一般的である。
また、前記した、ＵＳＢ規格に準拠したＰＣとＵＳＢデバイス間のデータ転送においては、パケットと呼ばれる単位でデータの送受信がおこなわれ、データ送受信の効率を高める目的で、データ送受信のための前記バッファメモリは２面（２個）構成を採用するのが一般的である。しかし、従来技術では、ＵＳＢデバイスコントローラにおいてデータ送受信がおこなわれたことをＵＳＢデバイスのＣＰＵに示す割り込み信号はバッファ毎に１系統となっている。
【０００３】
図７に、受信バッファを使用するＵＳＢアウト転送の場合について動作手順例を示し、図８に動作フローを示す。なお、図７において、符号ＥはＦＩＦＯメモリが空の状態を示し、符号Ｆはデータが格納された状態を示している。
まず、受信バッファのＡ面（一方の受信バッファ）にパケットデータ（データ１）が格納され（Ｓ４１）、パケットデータが格納されたことを示す割り込みが発生する（Ｓ４２）。
続いて、ＵＳＢデバイスのＣＰＵが、割り込み要因を確認後、割り込み要因を解除（クリア）する（Ｓ４３）。そして、ＣＰＵは受信バッファに格納されたデータ（データ１）を読み出し（Ｓ４４）、読み出し完了後、割り込み処理ルーチンを完了する。
一方、読み出しと並行に受信バッファのＢ面にパケットデータ（データ２）が格納され（Ｓ４５）、パケットデータが格納されたことを示す割り込みが発生する（Ｓ４６）。これにより、ＣＰＵは割り込み要因を確認後、割り込み要因を解除（クリア）する（Ｓ４７）。
続いて、ＣＰＵは受信バッファに格納されたデータ（データ２）を読み出し（Ｓ４８）、読み出し完了後、割り込み処理を完了する。以下、繰り返しである。
通常、前記した手順で正常に受信データを読み出すことが可能であるが、ホストＰＣからのパケットデータ受信のタイミングによっては不具合が発生する。前記においては、割り込み確認後、割り込み要因をクリアする手順にしているが、割り込み確認と割り込み要因クリアの間に次のパケットデータ受信（データ２）を示す割り込みが発生した場合、後から格納されたパケット（データ２）に対応した割り込みが先の割り込み（データ１）解除によって同時に解除されてしまい、データ２に対応した割り込み処理に入れなくなってしまうのである（図９参照）。
この問題を回避する一つの手段として、受信バッファのデータ格納状態を示すレジスタを設け、割り込み処理を完了する前にこのレジスタを確認する方法も考えられるが、制御が複雑になってしまう。
【０００４】
実用新案登録第３０７２２６４号公報に示された従来技術は前記したようなＵＳＢデバイスコントローラを持つ従来技術の一つであり、複数個の受信バッファを備え、受信バッファへデータが格納される毎に割り込み信号を発生させ、全受信バッファにデータが格納された後に新規データ受信を許可する。具体的には、次の通りである。
ＰＣからＵＳＢデバイスコントローラにデータパケットが送信されてきて、データがＵＳＢデバイスコントローラ内の受信バッファに格納されると、ＵＳＢデバイスのＣＰＵに割り込みをかけるため、割り込み処理部に割り込み信号が出力され、その割り込み処理部により受信バッファ内の格納データが読み出されてＲＡＭに保存されるとともに、受信バッファのそれぞれの格納状況に対応した異なるビット内容のイベントコードがコマンド解析部に出力され、コマンド解析部によりＲＡＭの保存データ中のコマンドが解析され、解析結果に応じた処理がおこなわれる。このとき、割り込み処理部からのイベントコードがＮ番目（最後）の受信バッファを示していると、コマンド解析部からＵＳＢデバイスコントローラへ受信許可のためのクリア信号が出力され、すべての受信バッファが受信可能な状態になる。
【特許文献１】実用新案登録第３０７２２６４号公報
【０００５】
【発明が解決しようとする課題】
前記したように、一つのバッファメモリへの格納が終了したときに割り込みをおこなう従来技術では、割り込み確認後、割り込み要因をクリアする手順にしているが、割り込み確認と割り込み要因クリアの間に次のパケットデータ格納を示す割り込みが発生した場合、後から格納されたパケットデータに対応した割り込みが先の割り込み解除によって同時に解除されてしまい、後のパケットデータに対応した割り込み処理に入れなくなってしまうという問題を簡単に解決できなかった。また、実用新案登録第３０７２２６４号公報に示されたような従来技術では、一つのバッファメモリから読み出す処理と、別のバッファメモリへ格納する処理を並行におこなえないという問題があった。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、複数のバッファメモリに対する転送処理を並行におこなえ、且つ、後から別のバッファメモリに対して転送処理されたパケットデータに対応した割り込みが先の割り込み解除によって同時に解除されてしまい、後のパケットデータに対応した割り込み処理に入れなくなってしまうという問題を簡単に解決できるＵＳＢデバイスコントローラを提供することにある。
【０００６】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、ＵＳＢ転送に用いる送信バッファまたは受信バッファとして複数のＦＩＦＯメモリを備え、使用される個々のＦＩＦＯメモリが所定量の送信データまたは受信データごとに切り替わる構成のＵＳＢデバイスコントローラにおいて、少なくとも使用対象のＦＩＦＯメモリのそれぞれの割り込み状態を書き込む割り込み状態記憶手段を備えた。
また、請求項２記載の発明では、請求項１記載の発明において、割り込み中状態を解除する際、前記割り込み状態記憶手段に複数のＦＩＦＯメモリ分が割り込み中と書き込まれていた場合、最も先に割り込みが発生したＦＩＦＯメモリに対応した割り込み中状態を解除する構成にした。
また、請求項３記載の発明では、請求項２記載の発明において、割り込み解除を指示する情報を書き込む割り込み解除情報記憶手段と、最も先に割り込みが発生したＦＩＦＯメモリを特定する解除対象判別手段とを備えた。
また、請求項４記載の発明では、請求項１記載の発明において、送信バッファを使用するＵＳＢイン転送の際、送信されたパケットがショートパケットであることが検出されたとき、対応する割り込み状態の発生を禁止させる割り込み禁止手段を備えた。
【０００７】
【発明の実施の形態】
本発明は、ＵＳＢ転送に使用されるＦＩＦＯメモリの数と同数の割り込み状態を示すことができるレジスタを設けたことなどを特徴としている。前記した実用新案登録第３０７２２６４号公報に示された従来技術においてもＵＳＢ転送に使用される受信バッファと同数の割り込み状態を示すことができるレジスタを設けているが、受信バッファのみ対象にしている点と割り込みクリアの方法が本発明とは異なっている。
以下、ＵＳＢ規格のプリンタを例に、本発明の実施の形態を図面により詳細に説明する。
【０００８】
図１は本発明の一実施例を示すプリンタ要部の構成ブロック図である。なお、図１では送受信データおよび制御データの経路のみ示しており、それ以外の信号線は省略している。
図示したように、この実施例のプリンタは、ＵＳＢ規格に従ったデータ通信制御を行うＵＳＢデバイスコントローラ１、プリンタ全体を制御するＣＰＵ２、プリンタメインメモリ３を備え、ＵＳＢデバイスコントローラ１内にはＤＭＡコントローラ（以下、ＤＭＡＣと称す）４を備え、ＣＰＵ２、プリンタメインメモリ３、およびＤＭＡＣ４はシステムバス５に接続されている。
また、ＵＳＢデバイスコントローラ１は、トランシーバ（送信回路）／レシーバ（受信回路）を含み、データ送受信／パラレル−シリアル変換などをおこなう物理層回路ブロック（以下、ＰＨＹと称す。ＰＨＹはＰｈｙｓｉｃａｌの略）１１、プロトコル（伝送制御手順）処理／入出力信号処理などをおこなう論理層回路ブロック（以下、ＳＩＥ（Serial Interface Engine）と称す）１２、ＦＩＦＯ（First In First Out）メモリとして実現した、送受信データを格納する３種類の送受信バッファメモリ（ＵＳＢのプリンタクラス仕様におけるエンドポイントバッファ）であるＥＰ０送受信バッファ１３、ＥＰ１受信バッファ１４、ＥＰ２送信バッファ１５、ＵＳＢデバイスコントローラ１の制御およびＵＳＢデバイスコントローラ１内各ブロックの状態確認をおこなうための情報が書き込まれ、ＣＰＵ２からアクセス（読み書き）される内部レジスタ１６、エンドポイントバッファ（３種類の送受信バッファメモリ）１３、１４、１５とプリンタメインメモリ３との間のＤＭＡ転送をおこなうためのインタフェースであるＤＭＡ−Ｉ／Ｆ（ＤＭＡインタフェース）１７、ＰＩＯ転送用のインタフェースであるＰＩＯ−Ｉ／Ｆ１８などを備える。なお、この実施例では、ＦＩＦＯメモリ数と同数の割り込み状態を示す情報、およびＦＩＦＯメモリ数と同数以上の割り込み解除情報が内部レジスタ１６に書き込まれ、ＣＰＵ２がＰＩＯ−Ｉ／Ｆ１８を介してこのレジスタにアクセスする。つまり、この実施例では、請求項記載の割り込み状態記憶手段および割り込み解除情報記憶手段が内部レジスタ１６により実現される。
【０００９】
また、前記において、ＥＰ０送受信バッファ１３はＵＳＢのプリンタクラス仕様で言うＵＳＢデバイスエナメレーション（Ｅｎｕｍｅｒａｔｉｏｎ：ＵＳＢデバイスから取得したデータをもとにＰＣで行われる）／デバイス制御データ転送用のコントロール転送用エンドポイントバッファであり、ＥＰ１受信バッファ１４はプリントデータ転送用のバルクアウト転送用エンドポイントバッファであり、ＥＰ２送信バッファ１５はプリンタステータス（例えば紙なし、紙詰まりといったエラー状態など）データ転送用バルクイン転送用エンドポイントバッファである。また、前記したＤＭＡＣ４によるＤＭＡ転送はＣＰＵ処理を必要とするＰＩＯ転送に比べて高いデータ転送性能を持っている。また、ＤＭＡＣ内部には転送データを一時的に格納するバッファが設けられている。
一方、この実施例では以下に示す２種類のデータ転送がＰＩＯ−Ｉ／Ｆ１８を介して実行可能である。
（ａ）内部レジスタアクセス（図中の破線矢印）
（ｂ）ＥＰ０送受信バッファ１３とプリンタメインメモリ３との間のデータ転送（図中の点線矢印）
前記内部レジスタアクセスはＣＰＵ２のコマンドにより適宜アクセスされ、ＵＳＢコントローラ１内の各ブロックの状態確認、割り込み状態確認、およびＰＩＯ−Ｉ／Ｆ１８を介したデータ転送処理などがおこなわれる。また、ＥＰ０送受信バッファ１３とプリンタメインメモリ３との間のデータ転送では、ＵＳＢ制御データを転送する。それほど高い転送性能は必要ないので、ＰＩＯ転送が使用されるのである。
一方、ＥＰ１受信バッファ１４とプリンタメインメモリ３との間のデータ転送およびＥＰ２送信バッファ１５とプリンタメインメモリ３との間のデータ転送には通常ＤＭＡ−Ｉ／Ｆ１７を介したＤＭＡ転送が使用される。
【００１０】
次に、本発明の一実施例を、アウト転送に使用する受信バッファ１４の場合で説明する。図７に示した従来技術の例と同様に受信バッファ１４はＡ面とＢ面の２面（２個）から成るＦＩＦＯメモリである。また、内部レジスタ１６において、受信バッファの割り込みに係わるのは３ビットである。各ビットをＲＳＡ、ＲＳＢ、ＲＣｌｒと呼ぶことにする（図５参照）。これらの各ビットの機能は以下の通りである。
（１）ＲＳＡ：このビットが１の場合、受信バッファＡ面にデータが格納されており、割り込みが発生したことを示す。このビットに０を書き込むことにより割り込み中状態が解除される。
（２）ＲＳＢ：このビットが１の場合、受信バッファＢ面にデータが格納されており、割り込みが発生したことを示す。このビットに０を書き込むことにより割り込み中状態が解除される。
（３）ＲＣｌｒ：このビットはＣＰＵ２から見れば書き込み専用ビットであり、ＣＰＵ２がこのビットに１を書き込むことにより、ＵＳＢデバイスコントローラ１はＲＳＡまたはＲＳＢの何れか一方の割り込み中状態を解除する。どちらを解除するかはそのときの状態により判別する。
【００１１】
このようなレジスタを使用した基本的な受信データ読み出しの動作フローを図２に示す。以下、図２に従って、この動作フローを説明する。
まず、ＵＳＢデバイスコントローラ１が、受信バッファＡ面にパケットデータ（データ１）を格納し（Ｓ１）、ＲＳＡに１を書き込み、パケットデータを格納したことを示す割り込みを発生させる（Ｓ２）。そうすると、ＣＰＵ２は制御プログラムに従って（以下、「制御プログラムに従って」を省略する）割り込み要因を確認し（Ｓ３）、その後、ＲＣｌｒに１を書き込む（Ｓ４）。これにより、ＵＳＢデバイスコントローラ１はＲＳＡに０を書き込み、割り込み中状態を解除する（Ｓ５）。
続いて、ＣＰＵ２は受信バッファ１４に格納されたデータ（データ１）を読み出し（Ｓ６）、読み出し完了後、この割り込みに係わる処理を完了する。
一方、データ１の読み出し完了を待たずにＵＳＢデバイスコントローラ１は受信バッファＢ面にパケットデータ（データ２）を格納し（Ｓ７）、ＲＳＢに１を書き込み、パケットデータが格納されたことを示す割り込みを発生させる（Ｓ８）。そうすると、ＣＰＵ２は割り込み要因を確認し（Ｓ９）、その後、ＲＣｌｒに１を書き込む（Ｓ１０）。これにより、ＵＳＢデバイスコントローラ１はＲＳＢに０を書き込み、割り込み中状態を解除する（Ｓ１１）。
続いて、ＣＰＵ２は受信バッファ１４に格納されたデータ（データ２）を読み出し（Ｓ１２）、読み出し完了後、この割り込みに係わる処理を完了する。
【００１２】
次に、従来技術では不具合となるタイミングの場合について、この実施例における受信データ読み出しの動作フローを図３に従って説明する（図４も参照）。
まず、ＵＳＢデバイスコントローラ１が、受信バッファＡ面にパケットデータ（データ１）を格納し（Ｓ２１）、ＲＳＡに１を書き込み、パケットデータが格納されたことを示す割り込みを発生させる（Ｓ２２）。そうすると、ＣＰＵ２は割り込み要因を確認するが（Ｓ２３）、この間に受信バッファＢ面にデータが格納され、ＲＳＢに１が書き込まれるものとする（Ｓ２４）。
その後、ＲＣｌｒに１を書き込む（Ｓ２５）。これにより、ＵＳＢデバイスコントローラ１は割り込み中状態を解除するのであるが、その際の割り込み処理確認中に受信バッファＢ面にデータが格納されているので、ＲＳＡとＲＳＢが同時に１になっている。しかし、ＵＳＢデバイスコントローラ１は図５に示した解除対象判別回路によりＲＳＡにのみ０を書き、解除する（Ｓ２６）。
図５に示したステートマシン２１は面数（バッファメモリの数）分の値を出力するカウンタ回路と面数分のラッチ回路を備えており、カウンタ値は最新割り込みのバッファに対応している。このラッチ回路は対応する割り込み信号によりセットされ、その出力信号はステートマシン２１に入力されるＣｌｒ信号などとＡＮＤを取られ、対応するバッファレジスタ２２をクリアするが、そのとき、当該ラッチ回路自身もクリアする。これにより、Ｃｌｒ信号がステートマシン２１に入ったとき、そのときのカウンタ値のラッチ回路だけでなく、直前のカウンタ値のラッチ回路もセット状態にあれば、そのラッチ回路がＣｌｒ信号のタイミングでＣｌｒ信号を出力し、当該カウンタ値のラッチ回路のみがセット状態であれば、そのラッチ回路がＣｌｒ信号のタイミングでＣｌｒ信号を出力するようにできる。こうして、請求項３記載の解除対象判別手段が容易に実現できるのである。
続いて、ＣＰＵ２は受信バッファ１４に格納されたデータ（データ１）を読み出す（Ｓ２７）。そして、読み出し完了後、この割り込み処理を完了するが、パケットデータが格納されたことを示す割り込みであるＲＳＢが残っているので、それに対応した割り込みが発生する（Ｓ２８）。これにより、ＣＰＵ２は割り込み要因を確認するが（Ｓ２９）、この割り込み処理確認中に受信バッファＡ面にデータが格納された場合、ＲＳＡが１になる（Ｓ３０）。
その後、ＲＣｌｒに１を書き込むと（Ｓ３１）、ＵＳＢデバイスコントローラ１は割り込み中状態を解除するのであるが、その際の割り込み処理確認中に受信バッファＡ面にデータが格納された場合、ＲＳＡとＲＳＢが同時に１になっている。しかし、前記した解除対象判別回路によりＲＳＢのみ解除する（Ｓ３２）。
続いて、ＣＰＵ２は受信バッファ１４に格納されたデータ（データ２）を読み出し（Ｓ３３）、読み出し完了後、割り込み処理を完了する。
【００１３】
こうして、この実施例によれば、受信バッファであるＦＩＦＯメモリの数と同数の割り込みビット（前記した例では２ビット）をレジスタ内に設けるとともに解除対象判別回路を設けることにより、割り込み要因確認処理と割り込み解除処理の間に別の受信バッファ（別の面）に受信データが格納された場合であっても、各受信バッファへの格納ごとに割り込みを発生させることができるので、全受信パケットを正常に読み出すことが可能となる。また、全受信バッファにデータが格納されなくとも、読み出しを開始し、格納しつつ読み出せるので、複数の受信バッファを使用する利点が保たれる。
また、前記したように、ＲＣｌｒに１を書き込むだけで適切な面（適切なバッファメモリ）のビットが解除されるので、ＣＰＵ２の制御プログラム（制御ソフト）が簡単になる。なお、この実施例では、ＲＳＡとＲＳＢを個別に解除できる構成であるので、解除対象判別回路を使用しない構成も可能である。この場合はＣＰＵ２がＲＳＡとＲＳＢを個別に解除する信号を出すのである。
【００１４】
次に、イン転送に使用する送信バッファ１５の場合で説明する。なお、この説明においても、図７に示した従来技術の例と同様に送信バッファはＡ面とＢ面の２面（２個）構成になっている。また、内部レジスタ１６において、送信バッファ１５の割り込みに係わるビットは図６に示したように３ビット構成になっている。これらの各ビットの機能は以下の通りである。
（１）ＴＳＡ：このビットが１の場合、送信バッファＡ面に格納されたデータがホストＰＣへ送信されて、割り込みが発生したことを示す。このビットに０を書き込むことにより割り込み中状態が解除される。
（２）ＴＳＢ：このビットが１の場合、送信バッファＢ面に格納されたデータがホストＰＣへ送信されて、割り込みが発生したことを示す。このビットに０を書き込むことにより割り込み中状態が解除される。
（３）ＴＣｌｒ：このビットはＣＰＵ２から見れば書き込み専用ビットであり、ＣＰＵ２がこのビットに１を書き込むことにより、ＲＳＡまたはＲＳＢの何れか一方の割り込み中状態が解除される。どちらを解除するかは解除対象判別回路が自動的に判別する構成になっている。
イン転送の場合、ホストＰＣに対して送信すべきデータをＣＰＵ２が送信バッファ１５に書き込み、ＣＰＵ２は、ＵＳＢデバイスコントローラ１からのデータ送信割り込みにより送信バッファ１５に空きができたことを認識した上で次の送信データを書き込むことを繰り返す。従来技術では、イン転送の場合も、ある面の送信割り込み確認と割り込み解除の間に別の面のデータ送信による割り込みが入ると同時に割り込みがクリアされてしまう不具合が発生してしまうが、この実施例では、受信の場合で説明したように面ごと（バッファメモリごと）に割り込みビットを設けるとともに解除対象判別回路を設けて、先に割り込みがあった方だけ割り込み中状態を解除するので問題は発生しない。
【００１５】
ところで、イン転送の場合、転送すべき最終パケットの割り込みはＣＰＵ２にとって不要な割り込みである。なぜなら送信バッファ１５に書き込むデータが存在しないからである。そのため、本発明の他の実施例では、最終回の送信に当たるショートパケットに対応する割り込みを発生させない。ＵＳＢ規格においては、転送ファイルの区切りはショートパケットで判別されるのである。なお、ショートパケットとはデータ数が最大パケットサイズ（例えばＨＳモードのバルク転送では５１２バイト）に満たないパケットのことである。
そのため、この実施例では、イン転送のパケットに関しては、ショートパケットか否かを検出し、ショートパケットの場合には対応する割り込みを発生させないような回路を設け、それにより、不要な割り込みを発生させないようにしている。請求項４記載の割り込み禁止手段は、前記したショートパケットを検出してショートパケット検出信号を出力するショートパケット検出手段と、そのショートパケット検出信号と前記したＴＳＡまたはＴＳＢビットを立てる信号とを入力信号とするＡＮＤ回路でよく、したがって、簡単に実現可能である。
以上、受信バッファまたは送信バッファなどバッファメモリの数（ＦＩＦＯメモリの数）が２個の場合で説明したが、３個以上の場合も同様である。
【００１６】
【発明の効果】
以上説明したように、本発明によれば、請求項１記載の発明では、ＵＳＢ転送に用いる送信バッファまたは受信バッファとして複数のＦＩＦＯメモリを備え、使用される個々のＦＩＦＯメモリが所定量の送信データまたは受信データごとに切り替わる構成のＵＳＢデバイスコントローラにおいて、少なくとも使用対象のＦＩＦＯメモリの数分のそれぞれの割り込み状態を書き込み、記憶することができるので、複数のバッファメモリに対する転送処理を並行におこなうことができるし、記憶されている割り込み状態を割り込み解除時に調べることにより、後から別のバッファメモリに対して転送処理されたパケットデータに対応した割り込みが先の割り込み解除によって同時に解除されてしまわないようにすることができ、したがって、後のパケットデータに対応した割り込み処理に入れなくなってしまうという問題を解決することが可能になる。
また、請求項２記載の発明では、請求項１記載の発明において、割り込み中状態を解除する際、割り込み状態記憶手段に複数のＦＩＦＯメモリ分が割り込み中と書き込まれていた場合、最も先に割り込みが発生したＦＩＦＯメモリに対応した割り込み中状態のみを解除することができるので、後のパケットデータに対応した割り込み処理に入れなくなってしまうという問題を解決することができる。
また、割り込み発生により割り込み処理をおこなう側は、割り込み処理終了時、どのＦＩＦＯメモリの割り込み処理が終了したかをＵＳＢデバイスコントローラへ通知する必要がないので、処理が簡単になる。
また、請求項３記載の発明では、請求項２記載の発明において、割り込み解除を指示する情報が書き込まれるとともに、最も先に割り込みが発生したＦＩＦＯメモリを特定されるので、割り込みを解除すべき適切なタイミングで、割り込みを解除すべきＦＩＦＯメモリのみ割り込みを解除することができる。
また、請求項４記載の発明では、請求項１記載の発明において、送信バッファを使用するＵＳＢイン転送の際、送信されたパケットがショートパケットであることが検出されたとき、対応する割り込み状態の発生を禁止させることができるので、不要な割り込みを発生させないで済む。
【図面の簡単な説明】
【図１】本発明の一実施例を示すプリンタ要部の構成ブロック図である。
【図２】本発明の一実施例を示すＵＳＢデバイスコントローラの動作フロー図である。
【図３】本発明の一実施例を示すＵＳＢデバイスコントローラの他の動作フロー図である。
【図４】本発明の一実施例を示すＵＳＢデバイスコントローラの動作説明図である。
【図５】本発明の一実施例を示すＵＳＢデバイスコントローラ要部の構成ブロック図である。
【図６】本発明の他の実施例を示すＵＳＢデバイスコントローラ要部の構成ブロック図である。
【図７】従来技術の一例を示すＵＳＢデバイスコントローラの動作説明図である。
【図８】従来技術の一例を示すＵＳＢデバイスコントローラの動作フロー図である。
【図９】従来技術の一例を示すＵＳＢデバイスコントローラの他の動作説明図である。
【符号の説明】
１  ＵＳＢデバイスコントローラ
２  ＣＰＵ
３  プリンタメインメモリ
４  ＤＭＡＣ
１４  ＥＰ１受信バッファ
１５  ＥＰ２送信バッファ
１６  内部レジスタ
１８  ＰＩＯ−Ｉ／Ｆ
２１  ステートマシン
２２  バッファレジスタ
２３  ステートマシン
【図１】
2004199402.tif 000003
【図２】
2004199402.tif 000004
【図３】
2004199402.tif 000005
【図４】
2004199402.tif 000006
【図５】
2004199402.tif 000007
【図６】
2004199402.tif 000008
【図７】
2004199402.tif 000009
【図８】
2004199402.tif 000010
【図９】
2004199402.tif 000011