JP2004118517A - データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 - Google Patents
データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2004118517A JP2004118517A JP2002280801A JP2002280801A JP2004118517A JP 2004118517 A JP2004118517 A JP 2004118517A JP 2002280801 A JP2002280801 A JP 2002280801A JP 2002280801 A JP2002280801 A JP 2002280801A JP 2004118517 A JP2004118517 A JP 2004118517A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- data
- mode
- control program
- host
- 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
- Accessory Devices And Overall Control Thereof (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】USB規格のハイスピード対応デバイスにおいて、確実且つ高速なデータ転送を実現することができるデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体を提供する。
【解決手段】ホストPC101とプリンタ102との間のデータ転送を行うデータ転送装置において、データ終了を検知するタイマの設定時間を転送モードに応じて変更するように、プリンタコントローラ104が制御する。
【選択図】 図2
【解決手段】ホストPC101とプリンタ102との間のデータ転送を行うデータ転送装置において、データ終了を検知するタイマの設定時間を転送モードに応じて変更するように、プリンタコントローラ104が制御する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
ホスト側装置である例えばPC(パーソナルコンピュータ)に周辺機器である例えばプリンタ(印刷装置)を接続する方法として、近年USBの普及が進んでいる。USBは、既存のレガシーインターフェースを統合していくことを目的に開発され、プラグアンドプレイ、活線挿抜による使い勝手の良さ、ポートの拡張性の高さ等から普及が進んでいる。更に、2000年4月に正式な仕様が公開されたUSB規格Rev2.0仕様では、転送速度が480Mbps迄引き上げられ、USBの普及は、より一層進むものと考えられる。
【0003】
また、USB、IEEE1394等を用いた高速データ転送に関する技術は、従来公知である。(例えば、特許文献1〜7参照)
【0004】
【特許文献1】
特開平10−228355号公報
【特許文献2】
特開平10−228357号公報
【特許文献3】
特開平10−228364号公報
【特許文献4】
特開平11−170632号公報
【特許文献5】
特開2000−341306号公報
【特許文献6】
特開2001−67309号公報
【特許文献7】
特開2001−67310号公報
【0005】
【発明が解決しようとする課題】
USBを使用したデータの転送方法では、USBプロトコル上でのデータ転送の終了について規定されていない。USBによるデータ転送方法を用いたプリンタでは、データ転送の終了が判断できないと、IEEE1284.4でのデータ転送と非IEEE1284.4でのデータ転送とが混在した場合、プリント動作に不具合が起きてしまう。
【0006】
そのため、データ転送が終了したか否かの判断は、通常ショートパケットの認識により行われる。USBでのデータ転送では、最大パケットサイズより大きいデータ転送を行おうとした場合、データは、パケットサイズに分割されてデータ転送が行われる。例えば、フルスピードのバルク転送を行おうとした場合、その最大パケットサイズは64バイトである。フルスピードのバルク転送で200バイトのデータを転送しようとした場合、データは64バイト、64バイト、64バイト、8バイトとデータを分割して転送する。
【0007】
このように、データ転送では、データ転送終了の最後のパケットまでは、最大パケット長でデータ転送が行われ、最後のパケットのみ最大パケットサイズに満たないデータ量でデータ転送が行われる。つまり、最大パケットサイズに満たないデータが転送されたことを認識して、データ転送が終了したものと判断する。
【0008】
しかし、これだけでは最大パケットサイズの整数倍のデータを転送しようとした場合に、データ転送を終了したことを認識することができない。
【0009】
そこで、最大パケットサイズの整数倍のデータ転送での転送終了検知には、通常はタイマを使用した方法が用いられる。この方法は、最大パケット長のデータが送られて来ても、一定時間次のパケットの受信がない場合は、データ転送が終了したものと判断するものである。
【0010】
この方法では、データ転送が終了したものと見なすまでの時間設定を慎重に行わなければならない。何故ならば、USBによるプリンタのデータ転送の場合、IEEE1284.4のデータと非IEEE1284.4のデータとを混在させてデータ転送を行う場合、設定時間が短すぎると、CPUによるIEEE1284.4でのデータ転送か、非IEEE1284.4でのデータ転送かを判断する回数が増えてしまうため、データ転送速度が遅くなってしまう。逆に、長すぎた場合は、データの区切りを認識できないため、データ転送が失敗してしまうからである。
【0011】
一般に、USBによるデータ転送の終了認識方法は、前述したショートパケットによる方法とタイマの設定時間による方法とを組み合わせて行う。
【0012】
USB規格Rev2.0規格で新しく策定されたハイスピードモードは、フルスピードモードの40倍高速であるが、下位互換性を保つため、フルスピードモードもサポートする必要がある。具体的には、周辺機器の上位側に接続されるホスト側装置がハイスピード対応であればハイスピードでの動作が、ホスト側装置がフルスピード対応であればフルスピードでの動作が、それぞれ要求される。
【0013】
このため、前記データ転送終了の認識方式の時間設定をフルスピードと同じ時間とすると、ハイスピード動作にとっては長すぎる時間設定となる。また、同様に、ハイスピードモードにとって最適な設定時間は、フルスピードモードにとっては短すぎる時間設定となる。
【0014】
本発明は上述した従来技術の有する問題点を解消するためになされたものであり、その目的は、ハイスピード対応デバイスにおいて、確実且つ高速なデータ転送を可能にしたデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体を提供することである。
【0015】
【課題を解決するための手段】
上記目的を達成するために本発明のデータ転送方法は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法であって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとを有することを特徴とする。
【0016】
また、上記目的を達成するために本発明のデータ転送装置は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置であって、前記データ転送モードを検出するデータ転送モード検出手段と、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知手段と、前記転送モード検出手段により検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御手段とを有することを特徴とする。
【0017】
また、上記目的を達成するために本発明の印刷方法は、前記データ転送方法によりデータを転送することを特徴とする。
【0018】
また、上記目的を達成するために本発明の印刷装置は、前記データ転送装置によりデータを転送することを特徴とする。
【0019】
また、上記目的を達成するために本発明のデータ転送装置の制御プログラムは、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置を制御するためのコンピュータ読み取り可能な制御プログラムであって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとをコンピュータに実行させるためのプログラムコードから成ることを特徴とする。
【0020】
更に、上記目的を達成するために本発明の記憶媒体は、前記制御プログラムを格納したことを特徴とする。
【0021】
【発明の実施の形態】
以下、本発明の各実施の形態を図面に基づき説明する。
【0022】
(一実施形態)
まず、本発明の一実施形態を図1乃至図4に基づき説明する。
【0023】
図1は、本実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【0024】
同図において、101はホスト側装置であるホストPC(パーソナルコンピュータ)、102は周辺機器(デバイス)であるプリンタ(印刷装置)であり、これらは外部バス102を介して互いに接続されている。プリンタ102は、プリンタコントローラ104とプリンタエンジン105とを有している。
【0025】
そして、ホストPC101で生成された画像データを、外部バス102を経由してプリンタ102に転送し、このプリンタ102によりプリント出力処理が行われる。プリンタコントローラ104では、ホストPC101との通信に用いられる外部バス103とのインターフェース(I/F)制御を行う。
【0026】
即ち、プリンタコントローラ104では、ホストPC101から転送されるプリンタ制御コマンド(画像データを変換したもの)の解釈・ビットマップデータ生成、ビットマップデータ生成時における各種画像処理、ユーザからの操作を受け付け、プリンタエンジン105へのコマンド送信が主に行われる。
【0027】
また、プリンタエンジン105では、プリンタコントローラ104で生成されたビットマップデータを受け取り、図示しないインクヘッドの吐出タイミングデータ生成、印字処理、インクヘッドへのインク供給・回復処理、紙搬送、ヘッド動作におけるモータ制御が主に行われる。
【0028】
以上の処理により、ホストPC101から受け取った画像データがプリンタ103によりプリント出力される。
【0029】
図2は、図1に示すプリンタシステムにおけるプリンタコントローラ104の構成を示すブロック図であり、同図に示すようにプリンタコントローラ104は、USBコントローラ201、DMA(Direct Memory Access)コントローラ202、RAM(Random Access Memory)203、ROM(Read Only Memory)204、EEPROM(Electrically Erasable and Programmable Read Only Memory)205、メモリコントローラ206、操作パネル207、操作パネルインターフェース(操作パネルI/F)208、CPU209、画像処理ASIC(特定用途向け集積回路)210、SDRAM(Synchronous Dynamic Random Access Memory)211及び内部バス212を有している。
【0030】
USBコントローラ201はエンドポイントバッファ(EPバッファ)201aを有し、このUSBコントローラ201にはUSBを介してホストPC101が接続され、また、画像処理ASIC210にはプリンタエンジン105が接続されている。
【0031】
次に、USBについて簡単に説明する。
【0032】
USBでのデータ転送は、基本的に3つのパケット、即ち、トークンパケット、データパケット、ハンドシェークパケットで構成される。これら3つのパケットで構成される1回のデータ転送をトランザクションと呼ぶ。
【0033】
トークンパケットには、トランザクションの種類を示すパケットID(識別子)、データ転送のターゲットとなる周辺機器(デバイス)のアドレス、エンドポイント番号が格納されており、このトークンパケットの情報に適合した周辺機器(デバイス)とホスト側装置との間でデータ転送が可能になる。このトークンパケットは、ホスト側装置のみが生成することができる。これは、ホスト側装置のみでバスのアクセス権を管理していることを意味する。データパケットには、転送データが格納されている。ハンドシェークパケットには、データ転送が正常に完了したか否かを示す情報が格納されている。
【0034】
トランザクションには、イントランザクション、アウトトランザクション、セットアップトランザクションの3種類がある。イントランザクションでは、周辺機器からホスト側装置へデータが転送される。アウトトランザクションでは、ホスト側装置から周辺機器へデータが転送される。セットアップトランザクションは、ホスト側装置から周辺機器に対して規格で規定されたコマンドの転送に使用される。これら3つのトランザクションで、バルク転送、コントロール転送、アイソクロナス転送、インタラプト転送と呼ばれるトランスファーが構成される。
【0035】
バルク転送は、イントランザクション、またはアウトトランザクションの並びである。コントロール転送は、セットアップトランザクションのみ、またはセットアップトランザクションに続くイントランザクションとアウトトランザクションの並びである。アイソクロナス転送は、ハンドシェークパケットの無いイントランザクションまたはアウトトランザクションの並びである。インタラプト転送は、一つのイントランザクションである。
【0036】
これらのトランスファーは、フレームと呼ばれる1ms単位の期間に並べられる。この制御は、ホスト外部バス制御部で行われる。フレームの開始は、SOF(Start of Frame)パケットと呼ばれる特殊なパケットで通知される。このうち、アイソクロナス転送とインタラプト転送は、フレーム内にその帯域が確保されている。バルク転送は、非同期のデータ転送であり、コントロール転送は、バスに接続されている周辺機器外部バス制御部の初期化に使用される。アイソクロナス転送は、同期転送であり、単位時間当たりのデータ転送量が確保されている。
【0037】
但し、他のトランスファーとは異なり、アイソクロナス転送のみデータの保証はされていない。インタラプト転送は、設定時間毎に必ず転送されることが保証されているため、割込み処理に使用される。USB規格Rev2.0仕様で、μフレームが追加されている。ハイスピードモードにおけるデータ転送は、μフレームによる同期が行われる。μフレームは、フレームの1/8の長さの125μsである。SOFは、フレームと同じSOFパケットが使用され、同じフレーム番号を持つSOFが連続して8回発行される。
【0038】
以上のようなUSB通信は、ホスト側装置とエンドポイントとの間で行われる。周辺機器(デバイス)は、複数のエンドポイントを持つことができ、複数のエンドポイントをグループ化することにより、インターフェースと呼ばれる単位にすることができる。周辺機器(デバイス)は、更にインターフェースを複数持つことができ、複数のインターフェースをグループ化することにより、周辺機器(デバイス)構成とすることができる。これらのインターフェース及び周辺機器(デバイス)構成を定義することにより、複雑な機能を持った周辺機器(デバイス)へ柔軟に対応することができる。
【0039】
次に、USBを用いたデータ転送方法に対して本発明を適用した場合のデータ転送方法について、図3を用いて説明する。
【0040】
ここでは、ホストPC101からプリンタ102へのプリントデータの転送を行なう場合を例に挙げて説明する。また、ここでは、USBコントローラ201のエンドポイントバッファ(EPバッファ)201aからメモリへのデータ転送にDMA転送を使用する場合を例に挙げて説明する。
【0041】
図3は、本実施の形態に係るデータ転送装置を適用した場合のプリントデータ転送における動作の流れを示すフローチャートである。
【0042】
プリンタ102へのデータ転送を行う際には、バルクOUT転送が用いられる。
【0043】
本実施の形態では、ホストPC101からプリンタ102へプリントデータを、USBバルクOUT転送を使用して転送する場合を例に挙げて説明する。
【0044】
まず、データ転送に先立って、転送モードに応じたタイマ設定時間をセットし(ステップS301)、次に、DMAサイズをMaxパケットサイズにセットしておく(ステップS302)。
【0045】
尚、転送モードに応じたタイマの時間設定の設定方法については後述する。
【0046】
ホストPC101からデータ転送が開始され、最初のパケットを受信すると(ステップS303)、データは、USBコントローラ201内のシリアルインターフェースエンジンによりUSBプロトコルの解釈が行われ、前記ステップS303において受信したパケットのデータサイズがMaxパケットサイズであるか否かを判断し(ステップS304)、データは、エンドポイントバッファ201aに格納される。
【0047】
そして、受信したパケットのデータサイズがMaxパケットサイズではないと判断された場合は、ショートパケット受信割込みが発生する(ステップS313)。ショートパケット受信割込みを検知したらDMA転送終了要求が出され(ステップS314)、DMAを停止させる。
【0048】
DMAを停止させると、DMAコントローラ202からのDMA転送終了割込みが発生する(ステップS305)。DMA転送終了割込みを検知したら、受信したデータがIEEE1284.4のデータであるか否かを判断する(ステップS306)。IEEE1284.4のデータであると判断された場合は、IEEE1284.4における処理を行い(ステップS315)、その後、前記ステップS301へ戻る。
【0049】
尚、ここでは、IEEE1284.4における処理内容についての説明は省略する。
【0050】
一方、前記ステップS304において受信したパケットのデータサイズがMaxパケットサイズであると判断された場合は、DMA転送終了割込みが発生し(ステップS305)、次に、IEEE1284.4のデータか否かを判断する(ステップS306)。そして、上述したショートパケットの場合と同様に、IEEE1284.4のデータであれば、IEEE1284.4における処理を行い(ステップS315)、その後、前記ステップS302へ戻る。
【0051】
また、前記ステップS306において受信したデータがIEEE1284.4ではないと判断された場合は、最初のパケットがショートパケットであるか否かを判断する(ステップS307)。そして、最初のパケットがショートパケットであると判断された場合は、データ転送が終了しているため、前記ステップS301へ戻る。
【0052】
一方、前記ステップS307において最初のパケットがショートパケットではないと判断された場合は、DMAサイズを再度セットする(ステップS308)。
【0053】
次に、パケットを設定時間内に受信したか否かを判断する(ステップS309)。そして、次のパケットを設定時間内に受信しないと判断された場合は、DMA転送終了要求が出され(ステップS317)、DMA転送終了割込みが発生し、DMA転送が終了し(ステップS312)、その後、前記ステップS301へ戻る。
【0054】
一方、前記ステップS309において、次のパケットを設定時間内に受信したと判断された場合は、その受信したパケットのサイズがMaxパケットサイズであるか否かを判断する。そして、受信したパケットのサイズがショートパケットの場合は、ショートパケット割込みが発生し(ステップS316)、DMA転送終了要求が出され(ステップS317)、DMA転送終了割込みが発生し(ステップS312)、DMA転送を終了させて、その後、前記ステップS302へ戻る。
【0055】
一方、前記ステップS310において設定時間内で受信したパケットのサイズがMaxパケットサイズであると判断された場合は、DMAデータの転送が完了したか否かを判断する(ステップS311)。そして、DMAデータの転送が完了しないと判断された場合は、前記ステップS309へ戻る。
【0056】
一方、予めセットしておいたDMAサイズと比較し、セットしたDMAサイズ分のデータ受信が行われた場合は、DMA転送完了となり、前記ステップS311にお上述した第一実施の形態ける判断結果は肯定(YES)となり、DMA転送終了割込みが発生するので(ステップS312)、前記ステップS302へ戻る。
【0057】
また、セットしておいたDMAサイズのデータ受信が行われていない場合は、ホストPC101から次のデータパケットが送信されて来るか否かが分らないため、タイマを作動させ、ここで設定時間内に次のパケットが来ればDMA転送を行い、設定時間経過してもデータ受信が無い場合は、DMA転送を終了させる。
【0058】
パケットを受信したか否かの判断は、エンドポイントバッファ201aがフルになった場合に発生する割込みを用いて行えば良い。また、データ転送が行われたデータ量をカウントしておき、データ転送量に変化があるか否かで、パケットを受信したか否かを判断するようにしても良い。
【0059】
以上の動作を繰り返すことによりデータ転送を行うことで、効率的なデータ転送を実現することができる。
【0060】
次に、データ転送モードの検出方法とタイマの設定時間の設定方法について説明する。
【0061】
タイマの設定時間の切り換えは、USB接続時のバス・エニュミレーション(データ転送速度検出)時に行えば良い。
【0062】
以下にその方法を説明する。
【0063】
まず、プリンタの電源投入によりプリンタコントローラ104の初期化が行われる。この際に、USBコントローラの初期化が行われる。この時点では、タイマ設定にフルスピード用の時間を設定しておく。
【0064】
その後、プリンタ102とホストPC101とがUSBにより接続されている場合は、USBのバス・エニュミレーションが行われる。また、プリンタ102とホストPC101とが接続されていない場合は、それらの接続が行われた時点でUSBのバス・エニュミレーションが行われる。
【0065】
USBデバイスは、図4に示すデバイス・ステートを遷移していき、アイドル状態となることができる。
【0066】
以下、具体的なUSBのバス・エニュミレーション時の動作について説明する。
【0067】
図4は、エニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラム(Device State Diagram)である。
(1)USBデバイスをハブ(Hub)に接続すると、ハブがステータスの変化をホストPC101に通知する。このとき、USBデバイスは、Attached(接続)ステート(図4の401)となり、USBデバイスが接続されたポートは、ディスエーブルとなる。
(2)ホストPC101は、ハブに何故ステータスが変化したかを問い合わせる。
(3)ホストPC101は、新しいデバイスが接続されたことを知り、また、どのポートに接続されたことも知る。ホストPC101は、新しいデバイスが接続されたポートに対し、ポートイネーブル、リセットコマンドを発行する。Powered(電源投入)ステート(図4の402)となる。
(4)ハブは、新しいデバイスが接続されたポートへのリセット信号を10ms保持する。リセット信号が解除されるとポートがイネーブルになり、ハブは100mAのバス電流をUSBデバイスに供給する。これで、USBデバイスは、Default(デフォルト)ステート(図4の403)となる。USBデバイスは、デフォルトアドレスに応答できるようになる。
(5)USBデバイスが一意なアドレスを受け取るまでは、デフォルトパイプにデフォルトアドレスを通じてアクセスできる。ホストPC101は、デバイスディスクリプタを読み取り、デフォルトパイプが使用できる最大データペイロードサイズを判断する。
(6)ホストPC101は、USBデバイスに一意のアドレスを割り当て、そのデバイスをAddress(アドレス割り当て)ステート(図4の404)に移す。
(7)ホストPC101は、USBデバイスからの構成情報を読み取るために、それぞれの構成0〜nを読み取る。このプロセスを完了するのに幾つかのフレームが必要になることがある。
(8)構成情報とUABデバイスの使用方法を基にして、ホストPC101は、デバイスに構成値を割り当てる。これで、デバイスは、Configured
(構成)ステート(図4の405)となり、この構成中の全てのエンドポイントは、記述されている特性をとる。USBデバイスは、その構成ディスクリプタの中で記述されている量のVbus電力を得ることができる。デバイスからの観点からは、デバイスは、使用可能な状態(アイドル)状態となっている。
【0068】
USBデバイスは、バスに接続してから使用可能になるまでに、上記のようにステートを遷移する。USBのフルスピード(FS)とハイスピード(HS)の調停も上記ステート遷移の中で行われる。具体的には上記(4)のリセット信号の10ms保持しているときに行われる。ハブがリセット信号を保持している際に、HS対応デバイスは、リセット信号を検知した場合、FS対応デバイスと同様に、まず、D+ラインをプルアップする。その後、HS対応デバイスは、D+、D−ラインをKステートにドライブを行うことにより、ハブにHS対応デバイスであることを通知する(デバイスChirpと呼ばれる)。
【0069】
ハブは、デバイスChirpを検知すると、D+、D−ラインをKステートとJステートとを交互にドライブすることにより、デバイスにHS対応ハブであることを通知する(ハブChirpと呼ばれる)。
【0070】
以上のデバイスChirpとハブChirpとにより、互いにHS対応デバイスであることが確認できると、ハイスピードモードとなる。
【0071】
ハイスピード、フルスピードの調停方法は、前記手段によるため、USBデバイスは、自分がハイスピードモード、フルスピードモードのどちらの転送モードを使用したデータ転送手段を用いるかを認識している。調停が行なわれた時点でUSBデバイスは、ハイスピードモード、フルスピードモードのどちらの転送モードを使用するかをレジスタにセットしておくことにより、プリンタコントローラ104は、自分がどちらの転送モードを使用しているかが認識可能となる。転送モードがどちらか一方でもHSに対応していない場合は、フルスピードモードとなる。
【0072】
以上の調停により、ハイスピードモードでの通信が確定しているデフォルトステートで、転送モードが示されるレジスタを参照し、ハイスピードモードでの転送モードが採用されている場合に、タイマの設定時間をハイスピード用の時間設定に切り換える。
【0073】
以上説明した方法によれば、エニュミレーション時のタイマ設定時間の切り替えが実現できる。
【0074】
尚、本発明は、上述した一実施形態に限定されるものではなく、種々の応用が可能である。
【0075】
また、上述した一実施形態では、インクジェットプリンタを例に挙げて説明したが、例えば、レーザビームプリンタ(LBP)、ストレージ機器等のデータ転送にUSBを使用した場合等、様々な周辺機器に応用が可能である。
【0076】
また、周辺機器のみではなく、ホスト装置側に本発明を適用しても良い。
【0077】
更に、上述した一実施形態では、ソフト的に次のパケット受信までのタイマ設定を行ったが、ハード的に行っても良い。
【0078】
(その他の実施形態)
本発明は、複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダー、プリンタ等)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0079】
また、本発明の目的は、上記実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは言うまでもない。
【0080】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0081】
上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、本発明が達成されることは言うまでもない。
【0082】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0083】
また、プログラムコードを供給するための記憶媒体としては、例えば、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、DVD(DVD−ROM、DVD−R、DVD−RW等)、磁気テープ、不揮発性のメモリカード、他のROM等の上記プログラムコードを記憶できるものであれば良く、或いはネットワークを介したダウンロード等を用いることができる。
【0084】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0085】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0086】
【発明の効果】
以上説明したように、本発明によれば、転送モードに応じてタイマ設定時間を設定することができ、ハイスピード対応デバイスにおいて、フルスピード転送モード及びハイスピード転送モードのいずれにおいても、確実で高速なデータ転送を実現することができる。更に、前記データ転送方式を印刷装置に用いることにより、高速な印刷装置が得られる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【図2】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるプリンタコントローラの構成を示すブロック図である
【図3】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるUSBを使用したプリントデータ受信時における動作の流れを示すフローチャートである。
【図4】本発明の一実施の形態に係るデータ転送装置におけるエニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラムである。
【符号の説明】
101 ホストPC
102 プリンタ
103 外部バス
104 プリンタコントローラ
105 プリンタエンジン
201 USBコントローラ
202 DMAコントローラ
203 RAM
204 ROM
205 EEPROM
206 メモリコントローラ
207 操作パネル
208 操作パネルI/F
209 CPU
210 画像処理ASIC
211 SDRAM
【発明の属する技術分野】
本発明は、ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体に関する。
【0002】
【従来の技術】
ホスト側装置である例えばPC(パーソナルコンピュータ)に周辺機器である例えばプリンタ(印刷装置)を接続する方法として、近年USBの普及が進んでいる。USBは、既存のレガシーインターフェースを統合していくことを目的に開発され、プラグアンドプレイ、活線挿抜による使い勝手の良さ、ポートの拡張性の高さ等から普及が進んでいる。更に、2000年4月に正式な仕様が公開されたUSB規格Rev2.0仕様では、転送速度が480Mbps迄引き上げられ、USBの普及は、より一層進むものと考えられる。
【0003】
また、USB、IEEE1394等を用いた高速データ転送に関する技術は、従来公知である。(例えば、特許文献1〜7参照)
【0004】
【特許文献1】
特開平10−228355号公報
【特許文献2】
特開平10−228357号公報
【特許文献3】
特開平10−228364号公報
【特許文献4】
特開平11−170632号公報
【特許文献5】
特開2000−341306号公報
【特許文献6】
特開2001−67309号公報
【特許文献7】
特開2001−67310号公報
【0005】
【発明が解決しようとする課題】
USBを使用したデータの転送方法では、USBプロトコル上でのデータ転送の終了について規定されていない。USBによるデータ転送方法を用いたプリンタでは、データ転送の終了が判断できないと、IEEE1284.4でのデータ転送と非IEEE1284.4でのデータ転送とが混在した場合、プリント動作に不具合が起きてしまう。
【0006】
そのため、データ転送が終了したか否かの判断は、通常ショートパケットの認識により行われる。USBでのデータ転送では、最大パケットサイズより大きいデータ転送を行おうとした場合、データは、パケットサイズに分割されてデータ転送が行われる。例えば、フルスピードのバルク転送を行おうとした場合、その最大パケットサイズは64バイトである。フルスピードのバルク転送で200バイトのデータを転送しようとした場合、データは64バイト、64バイト、64バイト、8バイトとデータを分割して転送する。
【0007】
このように、データ転送では、データ転送終了の最後のパケットまでは、最大パケット長でデータ転送が行われ、最後のパケットのみ最大パケットサイズに満たないデータ量でデータ転送が行われる。つまり、最大パケットサイズに満たないデータが転送されたことを認識して、データ転送が終了したものと判断する。
【0008】
しかし、これだけでは最大パケットサイズの整数倍のデータを転送しようとした場合に、データ転送を終了したことを認識することができない。
【0009】
そこで、最大パケットサイズの整数倍のデータ転送での転送終了検知には、通常はタイマを使用した方法が用いられる。この方法は、最大パケット長のデータが送られて来ても、一定時間次のパケットの受信がない場合は、データ転送が終了したものと判断するものである。
【0010】
この方法では、データ転送が終了したものと見なすまでの時間設定を慎重に行わなければならない。何故ならば、USBによるプリンタのデータ転送の場合、IEEE1284.4のデータと非IEEE1284.4のデータとを混在させてデータ転送を行う場合、設定時間が短すぎると、CPUによるIEEE1284.4でのデータ転送か、非IEEE1284.4でのデータ転送かを判断する回数が増えてしまうため、データ転送速度が遅くなってしまう。逆に、長すぎた場合は、データの区切りを認識できないため、データ転送が失敗してしまうからである。
【0011】
一般に、USBによるデータ転送の終了認識方法は、前述したショートパケットによる方法とタイマの設定時間による方法とを組み合わせて行う。
【0012】
USB規格Rev2.0規格で新しく策定されたハイスピードモードは、フルスピードモードの40倍高速であるが、下位互換性を保つため、フルスピードモードもサポートする必要がある。具体的には、周辺機器の上位側に接続されるホスト側装置がハイスピード対応であればハイスピードでの動作が、ホスト側装置がフルスピード対応であればフルスピードでの動作が、それぞれ要求される。
【0013】
このため、前記データ転送終了の認識方式の時間設定をフルスピードと同じ時間とすると、ハイスピード動作にとっては長すぎる時間設定となる。また、同様に、ハイスピードモードにとって最適な設定時間は、フルスピードモードにとっては短すぎる時間設定となる。
【0014】
本発明は上述した従来技術の有する問題点を解消するためになされたものであり、その目的は、ハイスピード対応デバイスにおいて、確実且つ高速なデータ転送を可能にしたデータ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体を提供することである。
【0015】
【課題を解決するための手段】
上記目的を達成するために本発明のデータ転送方法は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法であって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとを有することを特徴とする。
【0016】
また、上記目的を達成するために本発明のデータ転送装置は、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置であって、前記データ転送モードを検出するデータ転送モード検出手段と、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知手段と、前記転送モード検出手段により検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御手段とを有することを特徴とする。
【0017】
また、上記目的を達成するために本発明の印刷方法は、前記データ転送方法によりデータを転送することを特徴とする。
【0018】
また、上記目的を達成するために本発明の印刷装置は、前記データ転送装置によりデータを転送することを特徴とする。
【0019】
また、上記目的を達成するために本発明のデータ転送装置の制御プログラムは、複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置を制御するためのコンピュータ読み取り可能な制御プログラムであって、前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとをコンピュータに実行させるためのプログラムコードから成ることを特徴とする。
【0020】
更に、上記目的を達成するために本発明の記憶媒体は、前記制御プログラムを格納したことを特徴とする。
【0021】
【発明の実施の形態】
以下、本発明の各実施の形態を図面に基づき説明する。
【0022】
(一実施形態)
まず、本発明の一実施形態を図1乃至図4に基づき説明する。
【0023】
図1は、本実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【0024】
同図において、101はホスト側装置であるホストPC(パーソナルコンピュータ)、102は周辺機器(デバイス)であるプリンタ(印刷装置)であり、これらは外部バス102を介して互いに接続されている。プリンタ102は、プリンタコントローラ104とプリンタエンジン105とを有している。
【0025】
そして、ホストPC101で生成された画像データを、外部バス102を経由してプリンタ102に転送し、このプリンタ102によりプリント出力処理が行われる。プリンタコントローラ104では、ホストPC101との通信に用いられる外部バス103とのインターフェース(I/F)制御を行う。
【0026】
即ち、プリンタコントローラ104では、ホストPC101から転送されるプリンタ制御コマンド(画像データを変換したもの)の解釈・ビットマップデータ生成、ビットマップデータ生成時における各種画像処理、ユーザからの操作を受け付け、プリンタエンジン105へのコマンド送信が主に行われる。
【0027】
また、プリンタエンジン105では、プリンタコントローラ104で生成されたビットマップデータを受け取り、図示しないインクヘッドの吐出タイミングデータ生成、印字処理、インクヘッドへのインク供給・回復処理、紙搬送、ヘッド動作におけるモータ制御が主に行われる。
【0028】
以上の処理により、ホストPC101から受け取った画像データがプリンタ103によりプリント出力される。
【0029】
図2は、図1に示すプリンタシステムにおけるプリンタコントローラ104の構成を示すブロック図であり、同図に示すようにプリンタコントローラ104は、USBコントローラ201、DMA(Direct Memory Access)コントローラ202、RAM(Random Access Memory)203、ROM(Read Only Memory)204、EEPROM(Electrically Erasable and Programmable Read Only Memory)205、メモリコントローラ206、操作パネル207、操作パネルインターフェース(操作パネルI/F)208、CPU209、画像処理ASIC(特定用途向け集積回路)210、SDRAM(Synchronous Dynamic Random Access Memory)211及び内部バス212を有している。
【0030】
USBコントローラ201はエンドポイントバッファ(EPバッファ)201aを有し、このUSBコントローラ201にはUSBを介してホストPC101が接続され、また、画像処理ASIC210にはプリンタエンジン105が接続されている。
【0031】
次に、USBについて簡単に説明する。
【0032】
USBでのデータ転送は、基本的に3つのパケット、即ち、トークンパケット、データパケット、ハンドシェークパケットで構成される。これら3つのパケットで構成される1回のデータ転送をトランザクションと呼ぶ。
【0033】
トークンパケットには、トランザクションの種類を示すパケットID(識別子)、データ転送のターゲットとなる周辺機器(デバイス)のアドレス、エンドポイント番号が格納されており、このトークンパケットの情報に適合した周辺機器(デバイス)とホスト側装置との間でデータ転送が可能になる。このトークンパケットは、ホスト側装置のみが生成することができる。これは、ホスト側装置のみでバスのアクセス権を管理していることを意味する。データパケットには、転送データが格納されている。ハンドシェークパケットには、データ転送が正常に完了したか否かを示す情報が格納されている。
【0034】
トランザクションには、イントランザクション、アウトトランザクション、セットアップトランザクションの3種類がある。イントランザクションでは、周辺機器からホスト側装置へデータが転送される。アウトトランザクションでは、ホスト側装置から周辺機器へデータが転送される。セットアップトランザクションは、ホスト側装置から周辺機器に対して規格で規定されたコマンドの転送に使用される。これら3つのトランザクションで、バルク転送、コントロール転送、アイソクロナス転送、インタラプト転送と呼ばれるトランスファーが構成される。
【0035】
バルク転送は、イントランザクション、またはアウトトランザクションの並びである。コントロール転送は、セットアップトランザクションのみ、またはセットアップトランザクションに続くイントランザクションとアウトトランザクションの並びである。アイソクロナス転送は、ハンドシェークパケットの無いイントランザクションまたはアウトトランザクションの並びである。インタラプト転送は、一つのイントランザクションである。
【0036】
これらのトランスファーは、フレームと呼ばれる1ms単位の期間に並べられる。この制御は、ホスト外部バス制御部で行われる。フレームの開始は、SOF(Start of Frame)パケットと呼ばれる特殊なパケットで通知される。このうち、アイソクロナス転送とインタラプト転送は、フレーム内にその帯域が確保されている。バルク転送は、非同期のデータ転送であり、コントロール転送は、バスに接続されている周辺機器外部バス制御部の初期化に使用される。アイソクロナス転送は、同期転送であり、単位時間当たりのデータ転送量が確保されている。
【0037】
但し、他のトランスファーとは異なり、アイソクロナス転送のみデータの保証はされていない。インタラプト転送は、設定時間毎に必ず転送されることが保証されているため、割込み処理に使用される。USB規格Rev2.0仕様で、μフレームが追加されている。ハイスピードモードにおけるデータ転送は、μフレームによる同期が行われる。μフレームは、フレームの1/8の長さの125μsである。SOFは、フレームと同じSOFパケットが使用され、同じフレーム番号を持つSOFが連続して8回発行される。
【0038】
以上のようなUSB通信は、ホスト側装置とエンドポイントとの間で行われる。周辺機器(デバイス)は、複数のエンドポイントを持つことができ、複数のエンドポイントをグループ化することにより、インターフェースと呼ばれる単位にすることができる。周辺機器(デバイス)は、更にインターフェースを複数持つことができ、複数のインターフェースをグループ化することにより、周辺機器(デバイス)構成とすることができる。これらのインターフェース及び周辺機器(デバイス)構成を定義することにより、複雑な機能を持った周辺機器(デバイス)へ柔軟に対応することができる。
【0039】
次に、USBを用いたデータ転送方法に対して本発明を適用した場合のデータ転送方法について、図3を用いて説明する。
【0040】
ここでは、ホストPC101からプリンタ102へのプリントデータの転送を行なう場合を例に挙げて説明する。また、ここでは、USBコントローラ201のエンドポイントバッファ(EPバッファ)201aからメモリへのデータ転送にDMA転送を使用する場合を例に挙げて説明する。
【0041】
図3は、本実施の形態に係るデータ転送装置を適用した場合のプリントデータ転送における動作の流れを示すフローチャートである。
【0042】
プリンタ102へのデータ転送を行う際には、バルクOUT転送が用いられる。
【0043】
本実施の形態では、ホストPC101からプリンタ102へプリントデータを、USBバルクOUT転送を使用して転送する場合を例に挙げて説明する。
【0044】
まず、データ転送に先立って、転送モードに応じたタイマ設定時間をセットし(ステップS301)、次に、DMAサイズをMaxパケットサイズにセットしておく(ステップS302)。
【0045】
尚、転送モードに応じたタイマの時間設定の設定方法については後述する。
【0046】
ホストPC101からデータ転送が開始され、最初のパケットを受信すると(ステップS303)、データは、USBコントローラ201内のシリアルインターフェースエンジンによりUSBプロトコルの解釈が行われ、前記ステップS303において受信したパケットのデータサイズがMaxパケットサイズであるか否かを判断し(ステップS304)、データは、エンドポイントバッファ201aに格納される。
【0047】
そして、受信したパケットのデータサイズがMaxパケットサイズではないと判断された場合は、ショートパケット受信割込みが発生する(ステップS313)。ショートパケット受信割込みを検知したらDMA転送終了要求が出され(ステップS314)、DMAを停止させる。
【0048】
DMAを停止させると、DMAコントローラ202からのDMA転送終了割込みが発生する(ステップS305)。DMA転送終了割込みを検知したら、受信したデータがIEEE1284.4のデータであるか否かを判断する(ステップS306)。IEEE1284.4のデータであると判断された場合は、IEEE1284.4における処理を行い(ステップS315)、その後、前記ステップS301へ戻る。
【0049】
尚、ここでは、IEEE1284.4における処理内容についての説明は省略する。
【0050】
一方、前記ステップS304において受信したパケットのデータサイズがMaxパケットサイズであると判断された場合は、DMA転送終了割込みが発生し(ステップS305)、次に、IEEE1284.4のデータか否かを判断する(ステップS306)。そして、上述したショートパケットの場合と同様に、IEEE1284.4のデータであれば、IEEE1284.4における処理を行い(ステップS315)、その後、前記ステップS302へ戻る。
【0051】
また、前記ステップS306において受信したデータがIEEE1284.4ではないと判断された場合は、最初のパケットがショートパケットであるか否かを判断する(ステップS307)。そして、最初のパケットがショートパケットであると判断された場合は、データ転送が終了しているため、前記ステップS301へ戻る。
【0052】
一方、前記ステップS307において最初のパケットがショートパケットではないと判断された場合は、DMAサイズを再度セットする(ステップS308)。
【0053】
次に、パケットを設定時間内に受信したか否かを判断する(ステップS309)。そして、次のパケットを設定時間内に受信しないと判断された場合は、DMA転送終了要求が出され(ステップS317)、DMA転送終了割込みが発生し、DMA転送が終了し(ステップS312)、その後、前記ステップS301へ戻る。
【0054】
一方、前記ステップS309において、次のパケットを設定時間内に受信したと判断された場合は、その受信したパケットのサイズがMaxパケットサイズであるか否かを判断する。そして、受信したパケットのサイズがショートパケットの場合は、ショートパケット割込みが発生し(ステップS316)、DMA転送終了要求が出され(ステップS317)、DMA転送終了割込みが発生し(ステップS312)、DMA転送を終了させて、その後、前記ステップS302へ戻る。
【0055】
一方、前記ステップS310において設定時間内で受信したパケットのサイズがMaxパケットサイズであると判断された場合は、DMAデータの転送が完了したか否かを判断する(ステップS311)。そして、DMAデータの転送が完了しないと判断された場合は、前記ステップS309へ戻る。
【0056】
一方、予めセットしておいたDMAサイズと比較し、セットしたDMAサイズ分のデータ受信が行われた場合は、DMA転送完了となり、前記ステップS311にお上述した第一実施の形態ける判断結果は肯定(YES)となり、DMA転送終了割込みが発生するので(ステップS312)、前記ステップS302へ戻る。
【0057】
また、セットしておいたDMAサイズのデータ受信が行われていない場合は、ホストPC101から次のデータパケットが送信されて来るか否かが分らないため、タイマを作動させ、ここで設定時間内に次のパケットが来ればDMA転送を行い、設定時間経過してもデータ受信が無い場合は、DMA転送を終了させる。
【0058】
パケットを受信したか否かの判断は、エンドポイントバッファ201aがフルになった場合に発生する割込みを用いて行えば良い。また、データ転送が行われたデータ量をカウントしておき、データ転送量に変化があるか否かで、パケットを受信したか否かを判断するようにしても良い。
【0059】
以上の動作を繰り返すことによりデータ転送を行うことで、効率的なデータ転送を実現することができる。
【0060】
次に、データ転送モードの検出方法とタイマの設定時間の設定方法について説明する。
【0061】
タイマの設定時間の切り換えは、USB接続時のバス・エニュミレーション(データ転送速度検出)時に行えば良い。
【0062】
以下にその方法を説明する。
【0063】
まず、プリンタの電源投入によりプリンタコントローラ104の初期化が行われる。この際に、USBコントローラの初期化が行われる。この時点では、タイマ設定にフルスピード用の時間を設定しておく。
【0064】
その後、プリンタ102とホストPC101とがUSBにより接続されている場合は、USBのバス・エニュミレーションが行われる。また、プリンタ102とホストPC101とが接続されていない場合は、それらの接続が行われた時点でUSBのバス・エニュミレーションが行われる。
【0065】
USBデバイスは、図4に示すデバイス・ステートを遷移していき、アイドル状態となることができる。
【0066】
以下、具体的なUSBのバス・エニュミレーション時の動作について説明する。
【0067】
図4は、エニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラム(Device State Diagram)である。
(1)USBデバイスをハブ(Hub)に接続すると、ハブがステータスの変化をホストPC101に通知する。このとき、USBデバイスは、Attached(接続)ステート(図4の401)となり、USBデバイスが接続されたポートは、ディスエーブルとなる。
(2)ホストPC101は、ハブに何故ステータスが変化したかを問い合わせる。
(3)ホストPC101は、新しいデバイスが接続されたことを知り、また、どのポートに接続されたことも知る。ホストPC101は、新しいデバイスが接続されたポートに対し、ポートイネーブル、リセットコマンドを発行する。Powered(電源投入)ステート(図4の402)となる。
(4)ハブは、新しいデバイスが接続されたポートへのリセット信号を10ms保持する。リセット信号が解除されるとポートがイネーブルになり、ハブは100mAのバス電流をUSBデバイスに供給する。これで、USBデバイスは、Default(デフォルト)ステート(図4の403)となる。USBデバイスは、デフォルトアドレスに応答できるようになる。
(5)USBデバイスが一意なアドレスを受け取るまでは、デフォルトパイプにデフォルトアドレスを通じてアクセスできる。ホストPC101は、デバイスディスクリプタを読み取り、デフォルトパイプが使用できる最大データペイロードサイズを判断する。
(6)ホストPC101は、USBデバイスに一意のアドレスを割り当て、そのデバイスをAddress(アドレス割り当て)ステート(図4の404)に移す。
(7)ホストPC101は、USBデバイスからの構成情報を読み取るために、それぞれの構成0〜nを読み取る。このプロセスを完了するのに幾つかのフレームが必要になることがある。
(8)構成情報とUABデバイスの使用方法を基にして、ホストPC101は、デバイスに構成値を割り当てる。これで、デバイスは、Configured
(構成)ステート(図4の405)となり、この構成中の全てのエンドポイントは、記述されている特性をとる。USBデバイスは、その構成ディスクリプタの中で記述されている量のVbus電力を得ることができる。デバイスからの観点からは、デバイスは、使用可能な状態(アイドル)状態となっている。
【0068】
USBデバイスは、バスに接続してから使用可能になるまでに、上記のようにステートを遷移する。USBのフルスピード(FS)とハイスピード(HS)の調停も上記ステート遷移の中で行われる。具体的には上記(4)のリセット信号の10ms保持しているときに行われる。ハブがリセット信号を保持している際に、HS対応デバイスは、リセット信号を検知した場合、FS対応デバイスと同様に、まず、D+ラインをプルアップする。その後、HS対応デバイスは、D+、D−ラインをKステートにドライブを行うことにより、ハブにHS対応デバイスであることを通知する(デバイスChirpと呼ばれる)。
【0069】
ハブは、デバイスChirpを検知すると、D+、D−ラインをKステートとJステートとを交互にドライブすることにより、デバイスにHS対応ハブであることを通知する(ハブChirpと呼ばれる)。
【0070】
以上のデバイスChirpとハブChirpとにより、互いにHS対応デバイスであることが確認できると、ハイスピードモードとなる。
【0071】
ハイスピード、フルスピードの調停方法は、前記手段によるため、USBデバイスは、自分がハイスピードモード、フルスピードモードのどちらの転送モードを使用したデータ転送手段を用いるかを認識している。調停が行なわれた時点でUSBデバイスは、ハイスピードモード、フルスピードモードのどちらの転送モードを使用するかをレジスタにセットしておくことにより、プリンタコントローラ104は、自分がどちらの転送モードを使用しているかが認識可能となる。転送モードがどちらか一方でもHSに対応していない場合は、フルスピードモードとなる。
【0072】
以上の調停により、ハイスピードモードでの通信が確定しているデフォルトステートで、転送モードが示されるレジスタを参照し、ハイスピードモードでの転送モードが採用されている場合に、タイマの設定時間をハイスピード用の時間設定に切り換える。
【0073】
以上説明した方法によれば、エニュミレーション時のタイマ設定時間の切り替えが実現できる。
【0074】
尚、本発明は、上述した一実施形態に限定されるものではなく、種々の応用が可能である。
【0075】
また、上述した一実施形態では、インクジェットプリンタを例に挙げて説明したが、例えば、レーザビームプリンタ(LBP)、ストレージ機器等のデータ転送にUSBを使用した場合等、様々な周辺機器に応用が可能である。
【0076】
また、周辺機器のみではなく、ホスト装置側に本発明を適用しても良い。
【0077】
更に、上述した一実施形態では、ソフト的に次のパケット受信までのタイマ設定を行ったが、ハード的に行っても良い。
【0078】
(その他の実施形態)
本発明は、複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダー、プリンタ等)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。
【0079】
また、本発明の目的は、上記実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成されることは言うまでもない。
【0080】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0081】
上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出して実行することによっても、本発明が達成されることは言うまでもない。
【0082】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0083】
また、プログラムコードを供給するための記憶媒体としては、例えば、RAM、NV−RAM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、DVD(DVD−ROM、DVD−R、DVD−RW等)、磁気テープ、不揮発性のメモリカード、他のROM等の上記プログラムコードを記憶できるものであれば良く、或いはネットワークを介したダウンロード等を用いることができる。
【0084】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0085】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0086】
【発明の効果】
以上説明したように、本発明によれば、転送モードに応じてタイマ設定時間を設定することができ、ハイスピード対応デバイスにおいて、フルスピード転送モード及びハイスピード転送モードのいずれにおいても、確実で高速なデータ転送を実現することができる。更に、前記データ転送方式を印刷装置に用いることにより、高速な印刷装置が得られる。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムの構成を示すブロック図である。
【図2】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるプリンタコントローラの構成を示すブロック図である
【図3】本発明の一実施の形態に係るデータ転送装置によりデータ転送を行うプリントシステムにおけるUSBを使用したプリントデータ受信時における動作の流れを示すフローチャートである。
【図4】本発明の一実施の形態に係るデータ転送装置におけるエニュミレーション時の動作を説明するためのデバイス・ステート・ダイアグラムである。
【符号の説明】
101 ホストPC
102 プリンタ
103 外部バス
104 プリンタコントローラ
105 プリンタエンジン
201 USBコントローラ
202 DMAコントローラ
203 RAM
204 ROM
205 EEPROM
206 メモリコントローラ
207 操作パネル
208 操作パネルI/F
209 CPU
210 画像処理ASIC
211 SDRAM
Claims (30)
- 複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送方法であって、
前記データ転送モードを検出するデータ転送モード検出ステップと、
データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、
前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとを有することを特徴とするデータ転送方法。 - 前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項1に記載のデータ転送方法。
- 前記ホスト側装置とは、コンピュータであることを特徴とする請求項1に記載のデータ転送方法。
- 前記周辺機器とは、プリンタであることを特徴とする請求項1に記載のデータ転送方法。
- 前記データ転送終了検知ステップを前記デバイス側装置のファームウェアに設けたことを特徴とする請求項1に記載のデータ転送方法。
- 前記データ転送終了検知ステップを前記デバイス側装置のハードウェアに設けたことを特徴とする請求項1に記載のデータ転送方法。
- データ転送の有無を判断する判断ステップを有することを特徴とする請求項1に記載のデータ転送方法。
- 前記判断ステップは、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項7に記載のデータ転送方法。
- データ転送に用いられるシリアルバスは、USB Rev2.0に準拠しており且つハイスピードモードに対応していることを特徴とする請求項1乃至8のいずれかに記載のデータ転送方法。
- 複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置であって、
前記データ転送モードを検出するデータ転送モード検出手段と、
データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知手段と、
前記転送モード検出手段により検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御手段とを有することを特徴とするデータ転送装置。 - 前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項10に記載のデータ転送装置。
- 前記ホスト側装置とは、コンピュータであることを特徴とする請求項10に記載のデータ転送装置。
- 前記周辺機器とは、プリンタであることを特徴とする請求項10に記載のデータ転送装置。
- 前記データ転送終了検知手段を前記デバイス側装置のファームウェアに設けたことを特徴とする請求項10に記載のデータ転送装置。
- 前記データ転送終了検知手段を前記デバイス側装置のハードウェアに設けたことを特徴とする請求項10に記載のデータ転送装置。
- データ転送の有無を判断する判断手段を有することを特徴とする請求項10に記載のデータ転送装置。
- 前記判断手段は、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項16に記載のデータ転送装置。
- データ転送に用いられるシリアルバスは、USB Rev2.0に準拠しており且つハイスピードモードに対応していることを特徴とする請求項10乃至17のいずれかに記載のデータ転送装置。
- 請求項1乃至9のいずれかに記載のデータ転送方法によりデータを転送することを特徴とする印刷方法。
- 請求項10乃至19のいずれかに記載のデータ転送装置によりデータを転送することを特徴とする印刷装置。
- 複数のデータ転送モードを有すると共にホスト側装置がサポートするデータ転送モードにより実際のデータ通信モードを互いに決定する機能を有し且つ前記ホスト側装置と周辺機器との間のデータ転送を行うデータ転送装置を制御するためのコンピュータ読み取り可能な制御プログラムであって、
前記データ転送モードを検出するデータ転送モード検出ステップと、データ受信後タイマに設定された時間が経過しても次のデータ受信が無い場合にデータ転送終了とするデータ転送終了検知ステップと、前記転送モード検出ステップにより検出されたデータ転送モードに応じて前記タイマの設定時間を変更するように制御する制御ステップとをコンピュータに実行させるためのプログラムコードから成ることを特徴とするデータ転送装置の制御プログラム。 - 前記データ転送モードとは、データ転送を行う通信速度であることを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- 前記ホスト側装置とは、コンピュータであることを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- 前記周辺機器とは、プリンタであることを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- 前記データ転送終了検知ステップを前記デバイス側装置のファームウェアに設けたことを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- 前記データ転送終了検知ステップを前記デバイス側装置のハードウェアに設けたことを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- データ転送の有無を判断する判断ステップをコンピュータに実行させるためのプログラムコードから成ることを特徴とする請求項21に記載のデータ転送装置の制御プログラム。
- 前記判断ステップは、転送されたデータ量をカウントする能を備え、この機能にてカウントされたデータ転送量の変化によりデータ転送の有無を判断することを特徴とする請求項27に記載のデータ転送装置の制御プログラム。
- データ転送に用いられるシリアルバスは、USB Rev2.0に準拠しており且つハイスピードモードに対応していることを特徴とする請求項21乃至28のいずれかに記載のデータ転送装置の制御プログラム。
- 請求項21乃至29に記載の制御プログラムを格納したことを特徴とする記憶媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002280801A JP2004118517A (ja) | 2002-09-26 | 2002-09-26 | データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002280801A JP2004118517A (ja) | 2002-09-26 | 2002-09-26 | データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004118517A true JP2004118517A (ja) | 2004-04-15 |
Family
ID=32275410
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002280801A Pending JP2004118517A (ja) | 2002-09-26 | 2002-09-26 | データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004118517A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160061077A (ko) | 2014-11-21 | 2016-05-31 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
| KR20160073178A (ko) | 2014-12-16 | 2016-06-24 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
-
2002
- 2002-09-26 JP JP2002280801A patent/JP2004118517A/ja active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20160061077A (ko) | 2014-11-21 | 2016-05-31 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
| KR20210118004A (ko) | 2014-11-21 | 2021-09-29 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
| KR20160073178A (ko) | 2014-12-16 | 2016-06-24 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
| KR20210123275A (ko) | 2014-12-16 | 2021-10-13 | 에스케이이노베이션 주식회사 | 리튬 이차 전지 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3927647B2 (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
| US7200685B2 (en) | Communication apparatus for communicating data between separate toplogies, and related method, storage medium, and program | |
| CN1551592B (zh) | 数据传输控制装置、电子设备及数据传输控制方法 | |
| JPH11161444A (ja) | ネットワークシステム、複合装置、複合装置の制御方法、及び、記憶媒体 | |
| JPH11296316A (ja) | 周辺処理装置およびその制御方法 | |
| JP2003316719A (ja) | Usbホストの役割をする上流の周辺機器 | |
| JPH10229427A (ja) | 情報処理装置及び方法 | |
| US6741606B1 (en) | Interface control apparatus | |
| JP2001094613A (ja) | 通信制御装置、方法および記録媒体 | |
| JP2006209643A (ja) | インタフェース回路及びそのインタフェース回路を使用したシステム装置 | |
| US20010043361A1 (en) | Printer detecting data precisely in response to change in data transmission speed | |
| EP1820110B1 (en) | Multimedia card interface method, computer program product and apparatus | |
| JP2004118517A (ja) | データ転送方法及び装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 | |
| JP2008521080A5 (ja) | ||
| JP4306118B2 (ja) | プリンタ及びプリンタの制御方法 | |
| JP2001105689A (ja) | 印刷システム及び印刷装置及びその制御方法 | |
| JP2003256355A (ja) | Dma制御装置、印刷装置、及びdma制御方法 | |
| JP2004133537A (ja) | データ転送方法及びデータ転送装置及び印刷方法及び印刷装置及びデータ転送装置の制御プログラム及び記憶媒体 | |
| JP2005208811A (ja) | データ転送装置、データ転送方法、及び記録システム | |
| JP2000280582A (ja) | データ処理装置およびデータ処理方法並びにデータ処理制御プログラムを記録した記録媒体 | |
| JP2003248558A (ja) | データ転送方法、および、その装置 | |
| EP0855641B1 (en) | Printer detecting data precisely in response to change in data transmission speed | |
| JP2003256152A (ja) | Dma制御装置、印刷装置、及びdma制御方法 | |
| JPH10228364A (ja) | データ転送装置及びその制御方法及び印刷システム | |
| CN100527113C (zh) | 多媒体卡接口方法、计算机程序产品和装置 |