JP4371786B2 - Usbデバイスコントローラおよびプリンタ - Google Patents

Usbデバイスコントローラおよびプリンタ Download PDF

Info

Publication number
JP4371786B2
JP4371786B2 JP2003401614A JP2003401614A JP4371786B2 JP 4371786 B2 JP4371786 B2 JP 4371786B2 JP 2003401614 A JP2003401614 A JP 2003401614A JP 2003401614 A JP2003401614 A JP 2003401614A JP 4371786 B2 JP4371786 B2 JP 4371786B2
Authority
JP
Japan
Prior art keywords
transfer
dma transfer
data
device controller
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.)
Expired - Fee Related
Application number
JP2003401614A
Other languages
English (en)
Other versions
JP2005100314A (ja
Inventor
宏幸 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003401614A priority Critical patent/JP4371786B2/ja
Publication of JP2005100314A publication Critical patent/JP2005100314A/ja
Application granted granted Critical
Publication of JP4371786B2 publication Critical patent/JP4371786B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、USB周辺機器に使用されるUSBデバイスコントローラおよびそのUSBデバイスコントローラを搭載したプリンタに関する。
Universal Serial Bus(USB)は、パーソナルコンピュータ(PC)と複数のPC周辺機器を接続し、データ通信を行うために策定されたシリアルバスインターフェイス規格であり、従来のインターフェイス規格にはない簡便な接続性や拡張性を特長としており、マウスやキーボード、プリンタ、スキャナ、モデム等PC周辺機器の多くがUSBインターフェイスを備えている。
USB規格では、アプリケーション毎に共通のドライバを使うことを目的として、PC周辺機器(USBデバイス)の種類に応じてUSBデバイスクラス仕様が定められている。プリンタクラス仕様においても、必要な転送モードと送受信バッファであるエンドポイントの数が定められており、この仕様に準拠することによりマイクロソフト社が提供するUSBプリンタクラスドライバを使用することができる。
図4に示す様なプリンタシステムの場合、ホストPCからの印刷データはバルクアウト転送によりプリンタに送信され、プリンタ内のUSBデバイスコントローラ内部の受信バッファ(バルクアウト用エンドポイント:EP1)に格納される。受信バッファに格納されたデータは、プリンタ側メモリに高速で転送する必要があり、一般的に転送性能の高いDMA転送(Direct Memory Access転送)が使用される。
USBホストからの印刷データをプリンタメモリに格納するために使用できる領域には制限があり、例えば、ディスクリプタ方式のように同一領域を繰り返し使用する必要がある。
このディスクリプタ方式は、プリンタメモリ内にデータ格納領域と、データ格納領域の情報を示すディスクリプタ領域を同数個割り当て、DMA転送をおこなうDMAC(Direct Memory Access Controller)がディスクリプタ領域の情報を参照し、データ格納領域への印刷データ書き込みを実施する手法である。通常、個々のディスクリプタ領域は、数バイト、データ格納領域は数キロバイトに設定される。
図5は、4個のデータ格納領域(DS1/DS2/DS3/DS4)と4個のディスクリプタ領域(DC1/DC2/DC3/DC4)を設けた例である。
DMACは、DMA転送開始前にDC1の情報を取得しており、EP1に格納された印刷データをプリンタメモリのDS1にDMA転送して、DS1が満杯になった時点でDMA転送は一時中断される。
図6のDC1のように、バッファアドレスとして、データ格納領域DS1のアドレス、データ長が格納され、DS1にDMA転送されたデータが格納される。
転送中断後、DMACはDC2の情報を取得して、DC1の次のディスクリプタポインタへDC2がセットされ、データの転送をDC2を用いて実行する。この動作をディスクリプタ更新と呼ぶことにする。ディスクリプタ更新後、DS2への印刷データ転送が再開される。同様にDS3/DS4への印刷データ転送を行うが、DS4が満杯になった場合は、DS1に重ね書きする設定をすることにより、比較的容量の小さいデータ格納領域を利用して大容量の印刷データを格納することが可能となる。
プリンタのCPUは、プリンタメモリ内に印刷データが格納されたことを認識し、ある一定データが揃った時点で印刷データの使用許可を上層アプリケーションに与えることにより印刷処理が開始される。
ディスクリプタ方式では、CPUが定期的にプリンタメモリ内の印刷データをポーリングし、有効なデータが存在する場合に印刷データの使用許可を発行する方式を採用している。この有効なデータとは、個々のデータ格納領域(DS)が満杯であることを示す情報ビットか、印刷ファイルの区切りを検知したことを示す情報ビット(図6のEOP Flag)がセットされているものを言う。
印刷ファイルの区切りを検知したことを示す情報ビット(EOP Flag)は、データ長がUSB規格で定義された最大ペイロード未満のパケット(ショートパケット)のDMA転送完了時にセットされる。両ビットは個々のディスクリプタ情報の一部として格納されている。尚、先に述べたディスクリプタ更新はショートパケットおよびNullパケットに相当するデータのDMA転送完了時にも実行される。
上述のようなディスクリプタ方式では、ホストPCからプリンタに転送される印刷ファイル等の大容量データは、最大ペイロードのパケット(マックスパケット)に分割して送受信され、ショートパケット或いはNullパケットによりファイルの区切りが示される。
印刷ファイルが最大ペイロードの整数倍である場合には、ペイロードを持たないパケット(Nullパケット)を送信することが仕様に定められている。
しかし、マイクロソフト社の提供するプリンタクラスドライバは、上記したNullパケットを発行しない場合があり、これによりプリンタ側で印刷ファイルの区切りが認識できずに印刷ファイルが誤って結合され、印刷データ化けにより異常印刷となる恐れがある。
このような場合、印刷データの転送は正常に終わっているのであり、次に印刷指令で送られてくる印刷データも正常のはずである。しかし、これらの印刷データが一緒になって印刷され異常印刷が起こってから対処するのでは遅いので、印刷データのファイル区切りを何らかの方法で知ることによって正常に印刷を完了させることが望ましい。
本発明は、上述のような実情を考慮してなされたものであって、通信プロトコル異常によって引き起こされる印刷障害はもちろん、印刷データ区切りを受信できなかった場合にも高速で正しい印刷データの転送が行えるUSBデバイスコントローラおよびプリンタを提供することを目的とする。
上記の課題を解決するために、本発明の請求項1は、USBインターフェイスでバルクアウト転送によりホストPCからプリンタに転送されてくる印刷データを受信バッファに格納し、格納した該印刷データを受信バッファからプリンタメモリDMA転送する制御を行うUSBデバイスコントローラであって、前記受信バッファから前記プリンタメモリにDMA転送されたデータ数を検知する転送データ数検知手段と、前記転送データ数検知手段によって検知されたデータ数が前記DMA転送の所定データ格納領域を満杯にする値に達したときにDMA転送を一時的に停止状態にする第1転送一時停止手段と、前記第1転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケット(データ長ゼロのパケット)を受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第1DMA転送再開手段を備えことを特徴とする。
また、本発明の請求項2は、USBインターフェイスでバルクアウト転送によりホストPCからプリンタに転送されてくる印刷データを受信バッファに格納し、格納した該印刷データを受信バッファからプリンタメモリにDMA転送する制御を行うUSBデバイスコントローラであって、前記ホストPCから前記印刷データが転送されてこないアイドル状態の時間を検知する時間検知手段と、前記時間検知手段によって検知された時間が所定時間に達したときにDMA転送を一時的に停止状態にする第2転送一時停止手段と、前記第2転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケット(データ長ゼロのパケット)を受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第2DMA転送再開手段を備えことを特徴とする。
また、本発明の請求項3は、請求項に記載されたUSBデバイスコントローラにおいて、前記受信バッファから前記プリンタメモリにDMA転送されたデータ数を検知する転送データ数検知手段と、転送データ数検知手段によって検知されたデータ数が前記DMA転送の所定データ格納領域を満杯にする値に達したときにDMA転送を一時的に停止状態にする第1転送一時停止手段と、前記第1転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケットを受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第1DMA転送再開手段とをさらに備えたことを特徴とする
また、本発明の請求項は、請求項に記載されたUSBデバイスコントローラにおいて、前記時間検知手段と前記転送データ数検知手段の一方の検知結果に従いDMA転送を一時的に停止状態にした場合に他方の検知結果をクリアする手段を備えことを特徴とする。
また、本発明の請求項は、請求項1乃至4のいずれかに記載されたUSBデバイスコントローラにおいて、直前のDMA転送データがショートパケット或いはNullパケットであった場合には、前記第1転送一時停止手段及び前記第1DMA転送再開手段、並びに前記第2転送一時停止手段及び前記第2DMA転送再開手段の作動を不許可とする手段を備えことを特徴とする。
また、本発明の請求項は、請求項1乃至5のいずれかに記載されたUSBデバイスコントローラにおいて、転送されてきたパケットがショートパケット或いはNullパケットであることを条件に、DMA転送を一時的に停止状態にしたときに行う前記割り込みを実行する手段を備えたことを特徴とする
た、本発明の請求項は、請求項1乃至のいずれかに記載されたUSBデバイスコントローラを搭載したプリンタである。
本発明によれば、USBデバイスコントローラ内の印刷データ用受信バッファとプリンタメモリ間のデータ転送にDMA転送を使用するときに、印刷データのパケット間の任意の位置に印刷データに影響しない擬似的なNullパケットを挿入することができるので、通信プロトコル異常によって引き起こされる印刷障害はもちろん、印刷データ区切りを受信できなかった場合にも高速で正しい印刷データの転送が行えるUSBデバイスコントローラおよびプリンタ装置を提供することができる。
また、擬似的なNullパケットを挿入して発生させた割り込みを、プリンタメモリデータの使用許可シーケンス開始に利用することにより、CPUのポーリングが不要となるためCPU負荷を減らしたプリンタが実現できる。
以下、図面を参照して本発明の好適な実施形態を説明する。
本発明のUSBデバイスコントローラの特徴は、ショートパケットがホストPCから発行されない場合であっても、ホストPCからデータ長ゼロのパケット(Nullパケット)を受信した場合と同じシーケンスをDMA転送インターフェイスに擬似的に出現させる処理(擬似Nullパケット挿入処理)をUSBデバイスコントローラ内部で任意のタイミングで実行させることを可能としたことにある。
このNullパケットは、実データを持たないパケットであるから、実データがプリンタメモリに格納されることなしにディスクリプタ更新のみ実行されることになる。従って、擬似Nullパケット挿入処理を任意のタイミングで挿入しても印刷データに余分なデータが付加されることがないため、印刷データの連続性は保たれることになる。
<実施形態1>
図1は、本発明のUSBデバイスコントローラの主要部の構成を示すブロック図であり、USBデバイスコントローラの動作を説明するのに必要な構成のみを示している。同図において、1は内部レジスタ(RE−A,RE−D,RE−B,RE−E,RE−C,RE−J)、2は受信DMA転送制御用ステートマシン、3は受信バッファ(バルクアウト用エンドポイント:EP1)、4はドライバソフトが受信バッファ3からプリンタメモリ6へ転送したデータ数をカウントするカウンタF、5はDMAC、6はプリンタメモリ(ディスクリプタ方式によるディスクリプタ領域とデータ格納領域からなる)、7はプリンタの制御プログラムを実行するためのCPU(中央演算装置)、8はアイドル状態の時間をカウントするカウンタHである。
内部レジスタ1には、以下のレジスタが実装される。
・制御レジスタRE−Aは、DMA転送の一時停止要求を設定する制御レジスタである。
・制御レジスタRE−Dは、ホストPCからデータ長ゼロのパケット(Nullパケット)を受信した場合と同じシーケンス処理要求を設定する制御レジスタである。
・制御レジスタRE−Bは、DMA転送再開要求を設定する制御レジスタである。
・レジスタRE−Eは、ホストPCからデータ長ゼロのパケット(Nullパケット)を受信した場合と同じシーケンスの実行可否状態を示すレジスタである。
・割り込みレジスタRE−Cは、DMA転送が一時停止したときに設定される割り込みフラグを格納するレジスタである。
・割り込みレジスタRE−Jは、ホストPCからデータ長ゼロのパケット(Nullパケット)を受信した場合と同じシーケンスの実行が完了となったときに設定される割り込みフラグを格納するレジスタである。
受信DMA転送制御用ステートマシン2は、次に示すような機能をハード実装するステートマシンである。
(1)CPUが制御レジスタに値を設定すると、ステートマシン2はUSB仕様で定義されたパケット境界を検出した時点でDMA転送を一時的に停止状態にする。
(2)CPUが制御レジスタRE−Bに値が設定されたことを認識すると、USB仕様で定義されたパケット境界で一時的に停止状態となっているDMA転送を再開させる。
(3)CPUが制御レジスタRE−Dに値が設定されたことを認識すると、ホストPCからデータ長ゼロのパケット(Nullパケット)を受信した場合と同じシーケンスをDMA転送インターフェイスに擬似的に出現させる。このシーケンスを擬似Nullパケット挿入処理と呼ぶ。
(4)擬似Nullパケット挿入処理が完了したときに、割り込みレジスタRE−Jが設定され、CPUに対して擬似Nullパケット挿入処理が完了した割り込みを発生させる。
(5)DMA転送がUSB仕様で定義されたパケット境界が検出され、一時的に停止状態になると、割り込みレジスタRE−Cが設定され、CPUに対して割り込みを発生させる。
(6)一時停止前に行われたDMA転送に対応するパケットがマックスパケットの場合は許可、ショートパケット或いはNullパケットの場合は不許可と判断して、擬似Nullパケット挿入処理の許可/不許可をレジスタRE−Eへ設定する。
(7)DMA転送によって受信バッファ3からプリンタメモリ6に転送されたデータ数をカウンタF4でカウントし、カウンタF4の値が所定の一定値に達した場合に、制御レジスタRE−Aに設定してDMA転送を一時的に停止状態にする。
(8)アイドル状態の時間をカウンタH8でカウントし、時間カウント数が所定の一定値に達した場合に、制御レジスタRE−Aに設定してDMA転送を一時的に停止状態にする。
次に、このように構成されたUSBデバイスコントローラの制御手順について説明する。
ドライバソフトでカウントしている時間のカウンタH8の値が所定の値になった時点で、CPU7が内部レジスタに実装されたDMA転送の一時停止要求をおこなう制御レジスタRE−Aに値を設定すると、ステートマシン2はUSB仕様で定義されたパケット境界を検出した時点でDMA転送を一時的に停止状態にする。またはカウンタF4の値が所定の値になった時点でCPU7が内部レジスタに実装されたDMA転送の一時停止要求をおこなう制御レジスタRE−Aに値を設定すると、ステートマシン2はUSB仕様で定義されたパケット境界を検出した時点でDMA転送を一時的に停止状態にする。
次に、DMA転送がパケット境界で一時停止した時点で、割り込みレジスタRE−Cが設定され、CPU7に対して割り込みが発生する。
CPU7は、割り込み要因を確認後、擬似Null挿入許可レジスタRE−Eを確認する。レジスタRE−Eが1の場合は、擬似Nullパケット挿入制御レジスタRE−Dをセットすると、擬似Nullパケット挿入処理を実行し、プリンタメモリ6側ではディスクリプタの更新が行われる。
この後、CPU7がDMA転送再開制御レジスタRE−Bに1を書き込むことにより、DMA転送が再開される。
また、擬似Nullパケット挿入が完了すると割り込みレジスタRE−Jが設定されるので、CPU7に対して割り込みが発生する。この割り込みが発生した場合、プリンタメモリ6には必ず有効なデータが存在することになる。この割り込みを使用することによりCPU7はプリンタメモリ6のデータを定期的にポーリングする必要が無くなるため、CPU負荷を減らすことができる。
尚、擬似Null挿入許可レジスタRE−Eは、直前のDMA転送データがショートパケット或いはNullパケットであった場合には、不許可を示すようにしたので、不要な割り込み発生を防止する効果があり、CPU負荷低減に貢献する。
一方、レジスタRE−Eが0の場合、CPU7はDMA転送再開制御レジスタRE−Bに1を書き込む動作のみ実行して、DMA転送が再開される。
上記のような制御手順により、擬似Null挿入許可レジスタRE−Eが許可状態である限り、任意のタイミングで擬似Nullパケットを挿入することが可能となるため、本来Nullパケットが挿入されるべき場所に擬似Nullパケットが挿入されることになる。したがって、プリンタクラスドライバでファイルの区切りを送信しないという問題にも同時に対応できることになる。
また、印刷データ転送が完了した場合、次の印刷データ転送が開始されるまでに比較的長いアイドル状態(USBトラフィックがない状態)が存在するが、印刷データの最後にはショートパケット或いはNullパケットのDMA転送が実行されることから、擬似Null挿入許可レジスタRE−Eは不許可状態となるので、アイドル状態において、不要な擬似Nullパケット挿入が実行されることは起こり得ないことになる。
尚、2種類のカウンタ(カウンタF/カウンタH)を使用した理由は、以下の通りである。
(1)一定データ数のDMA転送完了時にCPUに対して割り込みを起こさせるカウンタFのみを使用した場合、カウント値に満たない状態で印刷ファイル転送が終わるときに、CPUに対する割り込みを発生させることができなくなる。これを回避するためには、最終データに使用許可を与えるために、CPUがプリンタメモリを定期的にポーリングする必要が生じてしまう。
(2)一方、カウンタHのみ使用した場合、プリンタメモリ領域を使い切った時点でDMA転送が中断され、カウンタHのカウントアップが完了する迄の時間が無駄になってしまい、無駄な時間分だけ印刷パフォーマンスに影響してしまう。
したがって、これらの問題を解消する目的で2種類のカウンタを併用することとした。
<実施形態2>
実施形態1では、時間のカウントを行うカウンタHは、ドライバソフトが行うためCPUを使用する。実施形態2では、このカウンタHをUSBデバイスコントローラ側にハード実装することにより、実施形態1よりさらにCPU負荷を減らすことが可能となる。
図2は、本発明のUSBデバイスコントローラの主要部の他の構成を示すブロック図である。実施形態2のUSBデバイスコントローラでは、カウンタH8がUSBデバイスコントローラ側にハード実装された以外の構成は実施形態1と同じである。この場合の動作は以下のようになる。
カウンタF4の値が所定の値になった時点、或いはカウンタH8の値が所定の値になった時点で、CPU7が内部レジスタに実装されたDMA転送の一時停止要求をおこなう制御レジスタRE−Aに値を設定すると、ステートマシン2はUSB仕様で定義されたパケット境界を検出した時点でDMA転送を一時的に停止状態にする。
DMA転送がパケット境界で一時停止した時点で、割り込みレジスタRE−Cへ割り込みが設定され、CPU7に対して割り込みが発生する。
CPU7は、割り込み要因を確認後、擬似Null挿入許可レジスタRE−Eを確認する。レジスタRE−Eが1の場合は、擬似Nullパケット挿入制御レジスタRE−Dをセットすると、擬似Nullパケット挿入処理を実行し、プリンタメモリ6側ではディスクリプタの更新が行われる。
この後、CPU7がDMA転送再開制御レジスタRE−Bに1を書き込むことにより、DMA転送が再開される。
一方、レジスタRE−Eが0の場合、CPU7はDMA転送再開制御レジスタRE−Bに1を書き込む動作のみ実行して、DMA転送が再開される。
本実施形態2の場合、実施形態1で示したカウンタHのカウントアップに伴って実行されるレジスタRE−Aへのセット処理が不要になる分、CPU負荷を減らすことができる。尚、内部レジスタの変更に伴って、カウンタH/カウンタFの値を変更可能な構成にしておくことが望ましい。
<実施形態3>
実施形態1および実施形態2においては、CPUが制御レジスタRE−A/RE−B/RE−Dにアクセスすることにより、DMA転送の一時停止と再開、擬似Nullパケット挿入を制御する構成であったが、CPUの制御なしに動作するような受信DMA転送制御用ステートマシンを構成することも可能である(図3参照)。
この場合、DMA転送を一時停止したときに発生させる割り込み、CPU制御およびCPUが参照していたレジスタRE−A/RE−D/RE−B/RE−E/RE−Cは不要になり、必要な内部レジスタは割り込みレジスタRE−Jのみである。
本実施形態3の場合には、次のように実行される。
カウンタF4の値が所定の値になった時点、或いはカウンタH8の値が所定の値になった時点で、DMA転送一時停止要求が有効となり、DMA転送がパケット境界で一時停止した時点で、直前のDMA転送データがショートパケット/Nullパケット/マックスパケットの何れであるかを判断する。
ショートパケット/Nullパケットであった場合は、擬似Nullパケット挿入を実行する。この場合プリンタメモリ側ではディスクリプタの更新が行われ、擬似Nullパケット挿入処理が完了すると割り込みレジスタRE−Jが設定され、CPU7に対して割り込みが発生し、DMA転送が再開される。
一方、マックスパケットであった場合は、擬似Nullパケット挿入を行わず、DMA転送の再開のみ実行する。
本実施形態3の場合、CPUでは印刷ファイル境界割り込みの確認とプリンタメモリの使用許可以外の処理が不要となるため、実施形態1および実施形態2の場合に増してCPU負荷を減らすことが可能となる。
<実施形態4>
上記の実施形態(実施形態1〜実施形態3)においては、2種類のカウンタ(カウンタF/カウンタH)を独立して並列使用する方法であり、両カウンタのカウント完了タイミングがほぼ同時になった場合、続けて擬似Nullパケット挿入処理が実施されることになるので、必ずしも必要ない割り込み処理をCPUが実行することになってしまう。
この問題を回避するために、本実施形態4では、一方のカウンタのカウントアップが完了した場合に他方のカウンタのカウントクリアを実施するようにした。それ以外の動作は、実施形態1〜実施形態3と同じであり、これによりそれぞれの場合に関して、不要な割り込み処理によるCPU負荷を減らすことが可能となる。
尚、本発明は上述した実施形態に限定されることなく、本発明の要旨を逸脱しない範囲内で各種の変形、修正が可能であるのは勿論である。
本発明のUSBデバイスコントローラの主要部の構成(実施形態1)を示すブロック図である。 本発明のUSBデバイスコントローラの主要部の他の構成(実施形態2)を示すブロック図である。 本発明のUSBデバイスコントローラの主要部の他の構成(実施形態3)を示すブロック図である。 USBインターフェイスによってホストPCと接続したプリンタの内部構成を示す図である。 4個のディスクリプタ領域とそれに対応するデータ格納領域からなるプリンタメモリの概念図である。 3つの受信パケットを格納したディスクリプタ領域とそれに対応するデータ格納領域の状態を示す図である。
符号の説明
1…内部レジスタ、2…受信DMA転送制御用ステートマシン、3…受信バッファ(バルクアウト用エンドポイント)、4…カウンタF、5…DMAC、6…プリンタメモリ、7…CPU、8…カウンタH。

Claims (7)

  1. USBインターフェイスでバルクアウト転送によりホストPCからプリンタに転送されてくる印刷データを受信バッファに格納し、格納した該印刷データを受信バッファからプリンタメモリDMA転送する制御を行うUSBデバイスコントローラであって、
    前記受信バッファから前記プリンタメモリにDMA転送されたデータ数を検知する転送データ数検知手段と、
    前記転送データ数検知手段によって検知されたデータ数が前記DMA転送の所定データ格納領域を満杯にする値に達したときにDMA転送を一時的に停止状態にする第1転送一時停止手段と、
    前記第1転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケット(データ長ゼロのパケット)を受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第1DMA転送再開手段と
    を備えことを特徴とするUSBデバイスコントローラ。
  2. USBインターフェイスでバルクアウト転送によりホストPCからプリンタに転送されてくる印刷データを受信バッファに格納し、格納した該印刷データを受信バッファからプリンタメモリにDMA転送する制御を行うUSBデバイスコントローラであって、
    前記ホストPCから前記印刷データが転送されてこないアイドル状態の時間を検知する時間検知手段と、
    前記時間検知手段によって検知された時間が所定時間に達したときにDMA転送を一時的に停止状態にする第2転送一時停止手段と、
    前記第2転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケット(データ長ゼロのパケット)を受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第2DMA転送再開手段と
    を備えことを特徴とするUSBデバイスコントローラ。
  3. 請求項に記載されたUSBデバイスコントローラにおいて、
    前記受信バッファから前記プリンタメモリにDMA転送されたデータ数を検知する転送データ数検知手段と、
    転送データ数検知手段によって検知されたデータ数が前記DMA転送の所定データ格納領域を満杯にする値に達したときにDMA転送を一時的に停止状態にする第1転送一時停止手段と、
    前記第1転送一時停止手段によってDMA転送を一時的に停止状態にしたときに、ホストPCからNullパケットを受信した場合に行うと同じシーケンスを割り込みで実行し、DMA転送を再開する第1DMA転送再開手段と
    さらに備えことを特徴とするUSBデバイスコントローラ。
  4. 請求項3に記載されたUSBデバイスコントローラにおいて、
    前記時間検知手段と前記転送データ数検知手段の一方の検知結果に従いDMA転送を一時的に停止状態にした場合に他方の検知結果をクリアする手段を備えことを特徴とするUSBデバイスコントローラ。
  5. 請求項1乃至のいずれかに記載されたUSBデバイスコントローラにおいて、
    直前のDMA転送データがショートパケット或いはNullパケットであった場合には、前記第1転送一時停止手段及び前記第1DMA転送再開手段、並びに前記第2転送一時停止手段及び前記第2DMA転送再開手段の作動を不許可とする手段を備えたことを特徴とするUSBデバイスコントローラ。
  6. 請求項1乃至5のいずれかに記載されたUSBデバイスコントローラにおいて、
    転送されてきたパケットがショートパケット或いはNullパケットであることを条件に、DMA転送を一時的に停止状態にしたときに行う前記割り込みを実行する手段を備えことを特徴とするUSBデバイスコントローラ。
  7. 請求項1乃至6のいずれかに記載されたUSBデバイスコントローラを搭載したプリンタ
JP2003401614A 2003-08-15 2003-12-01 Usbデバイスコントローラおよびプリンタ Expired - Fee Related JP4371786B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003401614A JP4371786B2 (ja) 2003-08-15 2003-12-01 Usbデバイスコントローラおよびプリンタ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003293864 2003-08-15
JP2003401614A JP4371786B2 (ja) 2003-08-15 2003-12-01 Usbデバイスコントローラおよびプリンタ

Publications (2)

Publication Number Publication Date
JP2005100314A JP2005100314A (ja) 2005-04-14
JP4371786B2 true JP4371786B2 (ja) 2009-11-25

Family

ID=34466907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003401614A Expired - Fee Related JP4371786B2 (ja) 2003-08-15 2003-12-01 Usbデバイスコントローラおよびプリンタ

Country Status (1)

Country Link
JP (1) JP4371786B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6213029B2 (ja) * 2013-08-07 2017-10-18 富士ゼロックス株式会社 通信装置、及び通信システム

Also Published As

Publication number Publication date
JP2005100314A (ja) 2005-04-14

Similar Documents

Publication Publication Date Title
US11182317B2 (en) Dual-driver interface
US6816929B2 (en) Data transfer control method and controller for universal serial bus interface
US5721955A (en) System for transferring portion of data to host from buffer if size of packet is greater than first threshold value but less than second threshold value
US6205501B1 (en) Apparatus and method for handling universal serial bus control transfers
US7069373B2 (en) USB endpoint controller flexible memory management
US7802034B2 (en) Method for performing full transfer automation in a USB controller
JP4232603B2 (ja) 通信システム、制御装置、canバス接続ノード、canバス通信方法、及び、プログラム
JPH03129448A (ja) データ転送制御装置
JP4371786B2 (ja) Usbデバイスコントローラおよびプリンタ
US6757776B1 (en) Control transaction handling in a device controller
US6693905B1 (en) Data exchange unit
JP2002318778A (ja) データ通信システムとその通信方法
US7346714B2 (en) Notification of completion of communication with a plurality of data storage areas
JP2581468B2 (ja) 非scsiデバイスのアクセス方法
JP3970728B2 (ja) データ通信装置
WO2008082530A1 (en) Method and apparatus for performing full transfer automation in a usb controller
JP2003063118A (ja) 記録装置、インタフェース制御装置およびインタフェース制御方法
JP4026979B2 (ja) データ通信システム
JP3846089B2 (ja) インターフェース装置、その制御方法および情報記録媒体
JP4362199B2 (ja) データ伝送装置
JP2537541B2 (ja) Dma制御方式
JP2001086132A (ja) 通信システム、印刷システム、及び通信方法、印刷制御方法
JP2005143009A (ja) 構内交換機
JP2004355041A (ja) Dma転送中継装置,dma転送方法,及びdma転送システム
JP2004199402A (ja) Usbデバイスコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060317

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090901

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees