JP3774542B2 - Data processing method, data processing apparatus, printer, and storage medium - Google Patents
Data processing method, data processing apparatus, printer, and storage medium Download PDFInfo
- Publication number
- JP3774542B2 JP3774542B2 JP11280997A JP11280997A JP3774542B2 JP 3774542 B2 JP3774542 B2 JP 3774542B2 JP 11280997 A JP11280997 A JP 11280997A JP 11280997 A JP11280997 A JP 11280997A JP 3774542 B2 JP3774542 B2 JP 3774542B2
- Authority
- JP
- Japan
- Prior art keywords
- protocol
- printer
- data processing
- node
- data
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、共通シリアスバスを介して、複数種類のプリンタのプロトコルを切り換えるためのデータ処理方法、データ処理装置、プリンタ及び記憶媒体に関するものである。
【0002】
【従来の技術】
従来より、シリアスバスを介してプリンタにデータを送出するシステムとして、様々な種類のシステムが知られている。
【0003】
例えば、SCSI(Small Computer System Interface )、セントロニクス等、一般に広く用いられるようになったデファクトスタンダードのインターフェースを用いて、コンピュータからプリンタにデータを出力する技術が知られている。
【0004】
【発明が解決しようとする課題】
しかしながら、シリアスバスを用いてプリンタデータを送出する従来のプリンタプロトコルは、プリンタメーカ固有の1つに限られていた。
したがって、拡張性に欠ける、という問題が生じていた。
特に、様々な種類の機器を接続するインターフェース、例えば、IEEE1394のようなインターフェースを用いて、プリントデータを出力する際には、かかる拡張性に欠けるという問題点は解決すべき大きな課題であった。
【0005】
そこで、本発明は、上記の欠点を除去するために成されたもので、システムバスを介してプリントデータを送出する際に、拡張性の高いデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することを目的とする。
また、本発明は、IEEE1394規格に好適なデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することを目的とする。
また、本発明は、コンピュータを介することなく、画像データ出力デバイスから直接プリンタを接続するのに好適なデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することを目的とする。
また、本発明は、最適なプリンタ出力を得ることができるデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することを目的とする。
また、本発明は、プロトコルの切り替えによる負荷を下げることができるデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することを目的とする。
【0006】
【課題を解決するための手段】
本発明のデータ処理方法は、共通シリアスバスを介して複数デバイスのプロトコルを切り換えるためのデータ処理方法であって、前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行し、前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定し、前記初期プロトコルに続いて、決定されたプロトコルを実行することを特徴とする。
本発明のデータ処理装置は、共通シリアスバスを介して複数デバイスのプロトコルを切り換えるためのデータ処理装置であって、前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行する第1の実行手段と、前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定手段と、前記初期プロトコルに続いて、決定されたプロトコルを実行する第2の実行手段とを備えることを特徴とする。
本発明のプリンタは、共通シリアスバスを介して複数デバイスのプロトコルをホストに対応して切り換えるプリンタであって、前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行する第1の実行手段と、前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定手段と、前記初期プロトコルに続いて、決定されたプロトコルを実行する第2の実行手段とを備えることを特徴とする。
本発明の記憶媒体は、共通シリアスバスを介して複数デバイスのプロトコルを切り換えるためのデータ処理方法を実行するためのデータ処理ステップをコンピュータに実行させるためのコンピュータプログラムをコンピュータが読み取り可能に記憶した記憶媒体であって、前記データ処理方法は、前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行するステップと、前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定するステップと、前記初期プロトコルに続いて、決定されたプロトコルを実行するステップとを有することを特徴とする。
【0007】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【0008】
ここで、まず、以下に説明する第1及び第2の実施の形態では、各機器間を接続するディジタルI/Fとして、IEEE1394シリアルバスを用いているため、IEEE1394シリアルバスについて、予め説明する。
【0009】
民生用デジタルVCRやDVDプレーヤの登場に伴なって、ビデオデータやオーディオデータなどのリアルタイムで、かつ高情報量のデータ転送のサポートが必要になっている。こういったビデオデータやオーディオデータをリアルタイムで転送し、パソコン(PC)に取り込んだり、またはその他のデジタル機器に転送を行なうには、必要な転送機能を備えた高速データ転送可能なインタフェースが必要になってくるものであり、そういった観点から開発されたインタフェースが、IEEE1394−1995(High Performance Serial Bus )(以下、単に1394シリアルバスとも言う)である。
【0010】
図1に1394シリアルバスを用いて構成されるネットワーク・システムの例を示す。
【0011】
このシステムは、機器A,B,C,D,E,F,G,Hを備えており、A−B間、A−C間、B−D間、D−E間、C−F間、C−G間、及びC−H間をそれぞれ1394シリアルバスのツイスト・ペア・ケーブルで接続されている。この機器A 〜H は、例えばパソコン、デジタルVTR、DVD、デジタルカメラ、ハードディスク、モニタ、チューナー、モニター等である。
【0012】
各機器間の接続方式は、ディジーチェーン方式とノード分岐方式とを混在可
能としたものであり、自由度の高い接続が可能である。
【0013】
また、各機器は各自固有のIDを有し、それぞれが認識し合うことによって1394シリアルバスで接続された範囲において、1つのネットワークを構成している。各デジタル機器間をそれぞれ1本の1394シリアルバスケーブルで順次接続するだけで、それぞれの機器が中継の役割を行い、全体として1つのネットワークを構成するものである。また、1394シリアルバス、Plug&Play機能でケーブルを機器に接続した時点で自動で機器の認識や接続状況などを認識する機能を有している。
【0014】
また、図1に示したようなシステムにおいて、ネットワークからある機器が削除されたり、または新たに追加されたときなど、自動的にバスリセットを行い、それまでのネットワーク構成をリセットしてから、新たなネットワークの再構築を行なう。この機能によって、その時々のネットワークの構成を常時設定、認識することができる。
【0015】
またデータ転送速度は、100/200/400Mbpsと備えており、上位の転送速度を持つ機器が下位の転送速度をサポートし、互換をとるようになっている。
【0016】
データ転送モードとしては、コントロール信号などの非同期データ(Asynchronousデータ:以下、Asyncデータと言う)を転送するAsynchronous転送モードとリアルタイムなビデオデータやオーディオデータ等の同期データ(Isochronous データ:以下、Isoデータと言う)を転送するIsochronous転送モードがある。このAsyncデータとIsoデータは各サイクル(通常1サイクル125μS )の中において、サイクル開始を示すサイクル・スタート・パケット(CSP)を転送した後、Isoデータの転送をAsyncデータより優先しつつサイクル内で混在して転送される。
【0017】
つぎに、図2に1394シリアルバスの構成要素を示す。
【0018】
1394シリアルバスは全体としてレイヤ(階層)構造で構成されている。図2に示したように、1394シリアルバスのケーブルとコネクタが接続されるコネクタポートがあり、その上にハードウェアとしてフィジカル・レイヤとリンク・レイヤを位置づけしている。
【0019】
ハードウェア部は実質的なインターフェイスチップの部分であり、そのうちフィジカル・レイヤは符号化やコネクタ関連の制御等を行い、リンク・レイヤはパケット転送やサイクルタイムの制御等を行なう。
【0020】
ファームウェア部のトランザクション・レイヤは、転送(トランザクション)すべきデータの管理を行ない、Read、Write、Lockの命令を出す。マネージメント・レイヤは、接続されている各機器の接続状況やIDの管理を行ない、ネットワークの構成を管理する部分である。
【0021】
このハードウェアとファームウェアまでが実質上の1394シリアルバスの構成である。
【0022】
またソフトウェア部のアプリケーション・レイヤは使うソフトによって異なり、インタフェース上にどのようにデータをのせるか規定する部分であり、プリンタやAVCプロトコルなどが規定されている。
【0023】
以上が1394シリアルバスの構成である。
【0024】
つぎに、図3に1394シリアルバスにおけるアドレス空間の図を示す。
【0025】
1394シリアルバスに接続された各機器(ノード)には必ず各ノード固有の、64ビットアドレスを持たせておく。そしてこのアドレスをROMに格納しておくことで、自分や相手のノードアドレスを常時認識でき、相手を指定した通信も行なえる。
【0026】
1394シリアルバスのアドレッシングは、IEEE1212規格に準じた方式であり、アドレス設定は、最初の10bitがバスの番号の指定用に、次の6bitがノードID番号の指定用に使われる。残りの48bitが機器に与えられたアドレス幅になり、それぞれ固有のアドレス空間として使用できる。最後の28bitは固有データの領域として、各機器の識別や使用条件の指定の情報などを格納する。
【0027】
以上が1394シリアルバスの技術の概要である。
【0028】
つぎに、1394シリアルバスの特徴といえる技術の部分を、より詳細に説明する。
【0029】
1394シリアルバスの電気的仕様について説明する。
【0030】
図4に1394シリアルバス・ケーブルの断面図を示す。
【0031】
1394シリアルバスでは接続ケーブル内に6ピン、即ち2組のツイストペア信号線の他に、電源ラインを設けている。これによって、電源を持たない機器や、故障により電圧低下した機器等にも電力の供給が可能になっている。
【0032】
電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
【0033】
なお、DVケーブルと呼ばれる規格では電源を省いた4ピンで構成されている。
【0034】
DS−Link符号化について説明する。
【0035】
1394シリアルバスで採用されている、データ転送フォーマットのDS−Link符号化方式を説明するための図を図5に示す。
【0036】
1394シリアルバスでは、DS−Link(Data/Strobe Link )符号化方式が採用されている。このDS−Link符号化方式は、高速なシリアルデータ通信に適しており、その構成は、2本の信号線を必要とする。より対線のうち1本に主となるデータを送り、他方のより対線にはストローブ信号を送る構成になっている。受信側では、この通信されるデータと、ストローブとの排他的論理和をとることによってクロックを再現する。
【0037】
このDS−Link符号化方式を用いるメリットとして、8/10B変換に比べて転送効率が高いこと、PLL回路が不要となるのでコントローラLSIの回路規模を小さくできること、更には、転送すべきデータが無いときにアイドル状態であることを示す情報を送る必要が無いので、各機器のトランシーバ回路をスリープ状態にすることができることによって、消費電力の低減が図れる、などが挙げられる。
【0038】
バスリセットのシーケンスについて説明する。
【0039】
1394シリアルバスでは、接続されている各機器(ノード)にはノードIDが与えられ、ネットワーク構成として認識されている。
【0040】
このネットワーク構成に変化があったとき、例えばノードの挿抜や電源のON/OFFなどによるノード数の増減などによって変化が生じて、新たなネットワーク構成を認識する必要があるとき、変化を検知した各ノードはバス上にバスリセット信号を送信して、新たなネットワーク構成を認識するモードに入る。
【0041】
このときの変化の検知方法は、1394ポート基盤上でのバイアス電圧の変化を検知することによって行われる。
【0042】
あるノードからバスリセット信号が伝達されて、各ノードのフィジカルレイヤはこのバスリセット信号を受けると同時にリンクレイヤにバスリセットの発生を伝達し、かつ他のノードにバスリセット信号を伝達する。最終的にすべてのノードがバスリセット信号を検知した後、バスリセットが起動となる。
【0043】
バスリセットは、先に述べたようなケーブル抜挿や、ネットワーク異常等によるハード検出による起動と、プロトコルからのホスト制御などによってフィジカルレイヤに直接命令を出すことによっても起動する。
また、バスリセットが起動するとデータ転送は一時中断され、この間のデータ転送は待たされ、終了後、新しいネットワーク構成のもとで再開される。
【0044】
以上がバスリセットのシーケンスである。
【0045】
ノードID決定のシーケンスについて説明する。
【0046】
バスリセットの後、各ノードは新しいネットワーク構成を構築するために、各ノードにIDを与える動作に入る。このときの、バスリセットからノードID決定までの一般的なシーケンスを図6、7、8のフローチャートを用いて説明する。
【0047】
図6のフローチャートは、バスリセットの発生からノードIDが決定し、データ転送が行えるようになるまでの、一連のバスの作業を示してある。
【0048】
まず、ステップS101として、ネットワーク内にバスリセットが発生することを常時監視していて、ここでノードの電源ON/OFFなどでバスリセットが発生するとステップS102に移る。
【0049】
ステップS102では、ネットワークがリセットされた状態から、新たなネットワークの接続状況を知るために、直接接続されている各ノード間において親子関係の宣言がなされる。ステップS103として、すべてのノード間で親子関係が決定すると、ステップS104として一つのルートが決定する。すべてのノード間で親子関係が決定するまで、ステップS102の親子関係の宣言をおこない、またルートも決定されない。
【0050】
ステップS104でルートが決定されると、次はステップS105として、各ノードにIDを与えるノードIDの設定作業が行われる。所定のノード順序で、ノードIDの設定が行われ、すべてのノードにIDが与えられるまで繰り返し設定作業が行われ、最終的にステップS106としてすべてのノードにIDを設定し終えたら、新しいネットワーク構成がすべてのノードにおいて認識されたので、ステップS107としてノード間のデータ転送が行える状態となり、データ転送が開始される。
【0051】
このステップS107の状態になると、再びバスリセットが発生するのを監視するモードに入り、バスリセットが発生したらステップS101からステップS106までの設定作業が繰り返し行われる。
【0052】
以上が、図6のフローチャートの説明であるが、図6のフローチャートのバスリセットからルート決定までの部分と、ルート決定後からID設定終了までの手順をより詳しくフローチャート図に表したものをそれぞれ、図7、図8に示す。
【0053】
まず、図7のフローチャートの説明を行う。
【0054】
ステップS201としてバスリセットが発生すると、ネットワーク構成は一旦リセットされる。なお、ステップS201としてバスリセットが発生するのを常に監視している。
【0055】
次に、ステップS202として、リセットされたネットワークの接続状況を再認識する作業の第一段階として、各機器にリーフ(ノード)であることを示すフラグを立てておく。さらに、ステップS203として各機器が自分の持つポートがいくつ他ノードと接続されているのかを調べる。
【0056】
ステップS204のポート数の結果に応じて、これから親子関係の宣言を始めていくために、未定義(親子関係が決定されてない)ポートの数を調べる。バスリセットの直後はポート数=未定義ポート数であるが、親子関係が決定されていくにしたがって、ステップS204で検知する未定義ポートの数は変化していくものである。
【0057】
まず、バスリセットの直後、はじめに親子関係の宣言を行えるのはリーフに限られている。リーフであるというのはステップS203のポート数の確認で知ることができる。リーフは、ステップS205として、自分に接続されているノードに対して、「自分は子、相手は親」と宣言し動作を終了する。
【0058】
ステップS203でポート数が複数ありブランチと認識したノードは、バスリセットの直後はステップS204で未定義ポート数>1ということなので、ステップS206へと移り、まずブランチというフラグが立てられ、ステップS207でリーフからの親子関係宣言で「親」の受付をするために待つ。
【0059】
リーフが親子関係の宣言を行い、ステップS207でそれを受けたブランチは適宜ステップS204の未定義ポート数の確認を行い、未定義ポート数が1になっていれば残っているポートに接続されているノードに対して、ステップS205の「自分が子」の宣言をすることが可能になる。2度目以降、ステップS204で未定義ポート数を確認しても2以上あるブランチに対しては、再度ステップS207でリーフ又は他のブランチからの「親」の受付をするために待つ。
【0060】
最終的に、いずれか1つのブランチ、又は例外的にリーフ(子宣言を行えるのにすばやく動作しなかった為)がステップS204の未定義ポート数の結果としてゼロになったら、これにてネットワーク全体の親子関係の宣言が終了したものであり、未定義ポート数がゼロ(すべて親のポートとして決定)になった唯一のノードはステップS208としてルートのフラグが立てられ、ステップS209としてルートとしての認識がなされる。
【0061】
このようにして、図7に示したバスリセットから、ネットワーク内すべてのノード間における親子関係の宣言までが終了する。
【0062】
つぎに、図8のフローチャートについて説明する。
【0063】
まず、図8までのシーケンスでリーフ、ブランチ、ルートという各ノードのフラグの情報が設定されているので、これを元にして、ステップS301でそれぞれ分類する。
【0064】
各ノードにIDを与える作業として、最初にIDの設定を行うことができるのはリーフからである。リーフ→ブランチ→ルートの順で若い番号(ノード番号=0〜)からIDの設定がなされていく。
【0065】
ステップS302としてネットワーク内に存在するリーフの数N(Nは自然数)を設定する。
【0066】
この後、ステップS303として各自リーフがルートに対して、IDを与えるように要求する。この要求が複数ある場合には、ルートはステップS304としてアービトレーションを行い、ステップS305として勝ったノード1つにID番号を与え、負けたノードには失敗の結果通知を行う。
【0067】
ステップS306としてID取得が失敗に終わったリーフは、再度ID要求を出し、同様の作業を繰り返す。IDを取得できたリーフからステップS307として、そのノードのID情報をブロードキャストで全ノードに転送する。1ノードID情報のブロードキャストが終わると、ステップS308として残りのリーフの数が1つ減らされる。
【0068】
ここで、ステップS309として、この残りのリーフの数が1以上ある時はステップS303のID要求の作業からを繰り返し行い、最終的にすべてのリーフがID情報をブロードキャストすると、ステップS309がN=0となり、次はブランチのID設定に移る。ブランチのID設定もリーフの時と同様に行われる。
【0069】
まず、ステップS310としてネットワーク内に存在するブランチの数M(Mは自然数)を設定する。
【0070】
この後、ステップS311として各自ブランチがルートに対して、IDを与えるように要求する。これに対してルートは、ステップS312としてアービトレーションを行い、勝ったブランチから順にリーフに与え終った次の若い番号から与えていく。
【0071】
ステップS313として、ルートは要求を出したブランチにID情報又は失敗結果を通知し、ステップS314としてID取得が失敗に終わったブランチは、再度ID要求を出し、同様の作業を繰り返す。
【0072】
IDを取得できたブランチからステップS315として、そのノードのID情報をブロードキャストで全ノードに転送する。
【0073】
1ノードID情報のブロードキャストが終わると、ステップS316として残りのブランチの数が1つ減らされる。
【0074】
ここで、ステップS317として、この残りのブランチの数が1以上ある時はステップS311のID要求の作業からを繰り返し、最終的にすべてのブランチがID情報をブロードキャストするまで行われる。すべてのブランチがノードIDを取得すると、ステップS317はM=0となり、ブランチのID取得モードも終了する。
【0075】
ここまで終了すると、最終的にID情報を取得していないノードはルートのみなので、ステップS318として与えていない番号で最も若い番号を自分のID番号と設定し、ステップS319としてルートのID情報をブロードキャストする。
【0076】
以上で、図8に示したように、親子関係が決定した後から、すべてのノードのIDが設定されるまでの手順が終了する。
【0077】
次に、一例として図9に示した実際のネットワークにおける動作を図9を参照しながら説明する。
【0078】
図9の説明として、(ルート)ノードBの下位にはノードAとノードCが直接接続されており、更にノードCの下位にはノードDが直接接続されており、更にノードDの下位にはノードEとノードFが直接接続された階層構造になっている。この、階層構造やルートノード、ノードIDを決定する手順を以下で説明する。
【0079】
バスリセットがされた後、まず各ノードの接続状況を認識するために、各ノードの直接接続されているポート間において、親子関係の宣言がなされる。この親子とは親側が階層構造で上位となり、子側が下位となると言うことができる。
【0080】
図9ではバスリセットの後、最初に親子関係の宣言を行なったのはノードAである。基本的にノードの1つのポートにのみ接続があるノード(リーフと呼ぶ)から親子関係の宣言を行なうことができる。これは自分には1ポートの接続のみということをまず知ることができるので、これによってネットワークの端であることを認識し、その中で早く動作を行なったノードから親子関係が決定されていく。こうして親子関係の宣言を行なった側(A−B間ではノードA)のポートが子と設定され、相手側(ノードB)のポートが親と設定される。こうして、ノードA−B間では子−親、ノードE−D間で子−親、ノードF−D間で子−親と決定される。
【0081】
さらに1階層あがって、今度は複数個接続ポートを持つノード(ブランチと呼ぶ)のうち、他ノードからの親子関係の宣言を受けたものから順次、更に上位に親子関係の宣言を行なっていく。図9ではまずノードDがD−E間、D−F間と親子関係が決定した後、ノードCに対する親子関係の宣言を行っており、その結果ノードD−C間で子−親と決定している。
【0082】
ノードDからの親子関係の宣言を受けたノードCは、もう一つのポートに接続されているノードBに対して親子関係の宣言を行なっている。これによってノードC−B間で子−親と決定している。
【0083】
このようにして、図9のような階層構造が構成され、最終的に接続されているすべてのポートにおいて親となったノードBが、ルートノードと決定された。
ルートは1つのネットワーク構成中に一つしか存在しないものである。
【0084】
なお、この図9においてノードBがルートノードと決定されたが、これはノードAから親子関係宣言を受けたノードBが、他のノードに対して親子関係宣言を早いタイミングで行なっていれば、ルートノードは他ノードに移っていたこともあり得る。すなわち、伝達されるタイミングによってはどのノードもルートノードとなる可能性があり、同じネットワーク構成でもルートノードは一定とは限らない。
【0085】
ルートノードが決定すると、次は各ノードIDを決定するモードに入る。ここではすべてのノードが、決定した自分のノードIDを他のすべてのノードに通知する(ブロードキャスト機能)。
【0086】
自己ID情報は、自分のノード番号、接続されている位置の情報、持っているポートの数、接続のあるポートの数、各ポートの親子関係の情報等を含んでいる。
【0087】
ノードID番号の割り振りの手順としては、まず1つのポートにのみ接続があるノード(リーフ)から起動することができ、この中から順にノード番号=0、1、2、・・・と割り当てられる。
【0088】
ノードIDを手にしたノードは、ノード番号を含む情報をブロードキャストで各ノードに送信する。これによって、そのID番号は「割り当て済み」であることが認識される。
【0089】
すべてのリーフが自己ノードIDを取得し終ると、次はブランチへ移りリーフに引き続いたノードID番号が各ノードに割り当てられる。リーフと同様に、ノードID番号が割り当てられたブランチから順次ノードID情報をブロードキャストし、最後にルートノードが自己ID情報をブロードキャストする。すなわち、常にルートは最大のノードID番号を所有するものである。
【0090】
以上のようにして、階層構造全体のノードIDの割り当てが終わり、ネットワーク構成が再構築され、バスの初期化作業が完了する。
【0091】
アービトレーションについて説明する。
【0092】
1394シリアルバスでは、データ転送に先立って必ずバス使用権のアービトレーション(調停)を行なう。1394シリアルバスは個別に接続された各機器が、転送された信号をそれぞれ中継することによって、ネットワーク内すべての機器に同信号を伝えるように、論理的なバス型ネットワークであるので、パケットの衝突を防ぐ意味でアービトレーションは必要である。これによってある時間には、たった一つのノードのみ転送を行なうことができる。
【0093】
アービトレーションを説明するための図として図10(a)にバス使用要求の図(b)にバス使用許可の図を示し、以下これを用いて説明する。
【0094】
アービトレーションが始まると、1つもしくは複数のノードが親ノードに向かって、それぞれバス使用権の要求を発する。図10(a)のノードCとノードFがバス使用権の要求を発しているノードである。これを受けた親ノード(図10ではノードA)は更に親ノードに向かって、バス使用権の要求を発する(中継する)。この要求は最終的に調停を行なうルートに届けられる。
【0095】
バス使用要求を受けたルートノードは、どのノードにバスを使用させるかを決める。この調停作業はルートノードのみが行なえるものであり、調停によって勝ったノードにはバスの使用許可を与える。図10(b)ではノードCに使用許可が与えられ、ノードFの使用は拒否された図である。
【0096】
アービトレーションに負けたノードに対してはDP(data prefix )パケットを送り、拒否されたことを知らせる。拒否されたノードのバス使用要求は次回のアービトレーションまで待たされる。
【0097】
以上のようにして、アービトレーションに勝ってバスの使用許可を得たノードは、以降データの転送を開始できる。
【0098】
ここで、アービトレーションの一連の流れをフローチャート図11に示して、説明する。
【0099】
ノードがデータ転送を開始できる為には、バスがアイドル状態であることが必要である。先に行われていたデータ転送が終了して、現在バスが空き状態であることを認識するためには、各転送モードで個別に設定されている所定のアイドル時間ギャップ長(例えば、サブアクション・ギャップ)を経過する事によって、各ノードは自分の転送が開始できると判断する。
【0100】
ステップS401として、Asyncデータ、Isoデータ等それぞれ転送するデータに応じた所定のギャップ長が得られたか判断する。所定のギャップ長が得られない限り、転送を開始するために必要なバス使用権の要求はできないので、所定のギャップ長が得られるまで待つ。
【0101】
ステップS401で所定のギャップ長が得られたら、ステップS402として転送すべきデータがあるか判断し、ある場合はステップS403として転送するためにバスを確保するよう、バス使用権の要求をルートに対して発する。このときの、バス使用権の要求を表す信号の伝達は、図10に示したように、ネットワーク内各機器を中継しながら、最終的にルートに届けられる。ステップS402で転送するデータがない場合は、そのまま待機する。
【0102】
次に、ステップS404として、ステップS403のバス使用要求を1つ以上ルートが受信したら、ルートはステップS405として使用要求を出したノードの数を調べる。
【0103】
ステップS405での選択値がノード数=1(使用権要求を出したノードは1つ)だったら、そのノードに直後のバス使用許可が与えられることとなる。ステップS405での選択値がノード数>1(使用要求を出したノードは複数)だったら、ルートはステップS406として使用許可を与えるノードを1つに決定する調停作業を行う。この調停作業は公平なものであり、毎回同じノードばかりが許可を得る様なことはなく、平等に権利を与えていくような構成となっている(フェア・アービトレーション)。
【0104】
ステップS407として、ステップS406で使用要求を出した複数ノードの中からルートが調停して使用許可を得た1つのノードと、敗れたその他のノードに分ける選択を行う。ここで、調停されて使用許可を得た1つのノード、またはステップS405の選択値から使用要求ノード数=1で調停無しに使用許可を得たノードには、ステップS408として、ルートはそのノードに対して許可信号を送る。
【0105】
許可信号を得たノードは、受け取った直後に転送すべきデータ(パケット)を転送開始する。また、ステップS406の調停で敗れて、バス使用が許可されなかったノードにはステップS409としてルートから、アービトレーション失敗を示すDP(data prefix )パケットを送られ、これを受け取ったノードは再度転送を行うためのバス使用要求を出すため、ステップS401まで戻り、所定ギャップ長が得られるまで待機する。
【0106】
以上がアービトレーションの流れを説明した、フローチャート図11の説明である。
【0107】
Asynchronous(非同期)転送について説明する。
【0108】
アシンクロナス転送は、非同期転送である。図12にアシンクロナス転送における時間的な遷移状態を示す。
【0109】
図12の最初のサブアクション・ギャップは、バスのアイドル状態を示すものである。このアイドル時間が一定値になった時点で、転送を希望するノードはバスが使用できると判断して、バス獲得のためのアービトレーションを実行する。
【0110】
アービトレーションでバスの使用許可を得ると、次にデータの転送がパケット形式で実行される。データ転送後、受信したノードは転送されたデータに対しての受信結果のask(受信確認用返送コード)をask gapという短いギャップの後、返送して応答するか、応答パケットを送ることによって転送が完了する。askは4ビットの情報と4ビットのチェックサムからなり、成功か、ビジー状態か、ペンディング状態であるかといった情報を含み、すぐに送信元ノードに返送される。
【0111】
つぎに、図13にアシンクロナス転送のパケットフォーマットの例を示す。
【0112】
パケットには、データ部及び誤り訂正用のデータCRCの他にはヘッダ部があり、そのヘッダ部には図13に示すような、目的ノードID、ソースノードID、転送データ長さや各種コードなどが書き込まれ、転送が行なわれる。
【0113】
また、アシンクロナス転送は自己ノードから相手ノードへの1対1の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視されるので、宛先の1つのノードのみが読込むことになる。
【0114】
以上がアシンクロナス転送の説明である。
【0115】
Isochronous(同期)転送について説明する。
【0116】
アイソクロナス転送は同期転送である。1394シリアルバスの最大の特徴であるともいえるこのアイソクロナス転送は、特に映像データや音声データといったマルチメディアデータなど、リアルタイムな転送を必要とするデータの転送に適した転送モードである。
【0117】
また、アシンクロナス転送(非同期)が1対1の転送であったのに対し、このアイソクロナス転送はブロードキャスト機能によって、転送元の1つのノードから他のすべてのノードへ一様に転送される。
【0118】
図14はアイソクロナス転送における、時間的な遷移状態を示す図である。
【0119】
アイソクロナス転送は、バス上一定時間毎に実行される。この時間間隔をアイソクロナスサイクルと呼ぶ。アイソクロナスサイクル時間は、125μS である。この各サイクルの開始時間を示し、各ノードの時間調整を行なう役割を担っているのがサイクル・スタート・パケットである。サイクル・スタート・パケットを送信するのは、サイクル・マスタと呼ばれるノードであり、1つ前のサイクル内の転送終了後、所定のアイドル期間(サブアクションギャップ)を経た後、本サイクルの開始を告げるサイクル・スタート・パケットを送信する。
【0120】
このサイクル・スタート・パケットの送信される時間間隔が125μS となる。
【0121】
また、図14にチャネルA、チャネルB、チャネルCと示したように、1サイクル内において複数種のパケットがチャネルIDをそれぞれ与えられることによって、区別して転送できる。これによって同時に複数ノード間でのリアルタイムな転送が可能であり、また受信するノードでは自分が欲しいチャネルIDのデータのみを取り込む。このチャネルIDは送信先のアドレスを表すものではなく、データに対する論理的な番号を与えているに過ぎない。よって、あるパケットの送信は1つの送信元ノードから他のすべてのノードに行き渡る、ブロードキャストで転送されることになる。
【0122】
アイソクロナス転送のパケット送信に先立って、アシンクロナス転送同様アービトレーションが行われる。しかし、アシンクロナス転送のように1対1の通信ではないので、アイソクロナス転送にはask(受信確認用返信コード)は存在しない。
【0123】
また、図14に示したiso gap(アイソクロナスギャップ)とは、アイソクロナス転送を行なう前にバスが空き状態であると認識するために必要なアイドル期間を表している。この所定のアイドル期間を経過すると、アイソクロナス転送を行ないたいノードはバスが空いていると判断し、転送前のアービトレーションを行なうことができる。
【0124】
つぎに、図15にアイソクロナス転送のパケットフォーマットの例を示し、説明する。
【0125】
各チャネルに分かれた、各種のパケットにはそれぞれデータ部及び誤り訂正用のデータCRCの他にヘッダ部があり、そのヘッダ部には図15に示すような、転送データ長やチャネルNO、その他各種コード及び誤り訂正用のヘッダCRCなどが書き込まれ、転送が行なわれる。
【0126】
以上がアイソクロナス転送の説明である。
【0127】
つぎに、バス・サイクルについて説明する。
【0128】
実際の1394シリアルバス上の転送では、アイソクロナス転送と、アシンクロナス転送は混在できる。その時の、アイソクロナス転送とアシンクロナス転送が混在した、バス上の転送状態の時間的な遷移の様子を表した図を図16に示す。
【0129】
アイソクロナス転送はアシンクロナス転送より優先して実行される。その理由は、サイクル・スタート・パケットの後、アシンクロナス転送を起動するために必要なアイドル期間のギャップ長(サブアクションギャップ)よりも短いギャップ長(アイソクロナスギャップ)で、アイソクロナス転送を起動できるからである。したがって、アシンクロナス転送より、アイソクロナス転送は優先して実行されることとなる。
【0130】
図16に示した、一般的なバスサイクルにおいて、サイクル#mのスタート時にサイクル・スタート・パケットがサイクル・マスタから各ノードに転送される。これによって、各ノードで時刻調整を行ない、所定のアイドル期間(アイソクロナスギャップ)を待ってからアイソクロナス転送を行なうべきノードはアービトレーションを行い、パケット転送に入る。図16ではチャネルeとチャネルsとチャネルkが順にアイソクロナス転送されている。
【0131】
このアービトレーションからパケット転送までの動作を、与えられているチャネル分繰り返し行なった後、サイクル#mにおけるアイソクロナス転送がすべて終了したら、アシンクロナス転送を行うことができるようになる。
【0132】
アイドル時間がアシンクロナス転送が可能なサブアクションギャップに達する事によって、アシンクロナス転送を行いたいノードはアービトレーションの実行に移れると判断する。
【0133】
ただし、アシンクロナス転送が行える期間は、アイソクロナス転送終了後から、次のサイクル・スタート・パケットを転送すべき時間(cycle synch )までの間にアシンクロナス転送を起動するためのサブアクションギャップが得られた場合に限っている。
【0134】
図16のサイクル#mでは3つのチャネル分のアイソクロナス転送と、その後アシンクロナス転送(含むack )が2パケット(パケット1、パケット2)転送されている。このアシンクロナスパケット2の後は、サイクルm+1をスタートすべき時間(cycle synch )にいたるので、サイクル#mでの転送はここまでで終わる。
【0135】
ただし、非同期または同期転送動作中に次のサイクル・スタート・パケットを送信すべき時間(cycle synch )に至ったとしたら、無理に中断せず、その転送が終了した後のアイドル期間を待ってから次サイクルのサイクル・スタート・パケットを送信する。すなわち、1つのサイクルが125μS 以上続いたときは、その分次サイクルは基準の125μS より短縮されたとする。このようにアイソクロナス・サイクルは125μS を基準に超過、短縮し得るものである。
【0136】
しかし、アイソクロナス転送はリアルタイム転送を維持するために毎サイクル必要であれば必ず実行され、アシンクロナス転送はサイクル時間が短縮されたことによって次以降のサイクルにまわされることもある。
こういった遅延情報も含めて、サイクル・マスタによって管理される。
【0137】
そこで、まず、第1の実施の形態について説明する。
【0138】
図17は、本発明の特徴を最もよく表す図であり、同図において1394のインターフェイスをLANで用いられるOSIモデルの各層と対比させてみると、OSIモデルの物理層1とデータリンク層2が、1394インターフェイスの下位層4であるフィジカル・リンク層に該当し、それら下位層4の上に存在する上位層3が1394インターフェイスではトランスポートプロトコル層5とプレゼンテーション層6に該当する。また、本発明の特徴となるLOGINプロトコル7は、1394インターフェイスの下位層4とトランスポートプロトコル5との間で動作するものである。
【0139】
この実施の形態では、シリアルバスプロトコル(SBP−2)8に準拠したデバイスにLOGINプロトコルを挿入することによって、相手のデバイスに対して自分がSBP−2に準拠したプロトコルを使ってやり取りを行いたいことを通知することができる。また、後述する第3の実施の形態では、1394インターフェイス上で特化されたデバイスプロトコル9についてもLOGINプロトコルを挿入することで、お互いのデバイスがそのプロトコルがサポートされているかを判別してデータのやり取りを行うことができる。
【0140】
図18は、LOGINプロトコルの基本動作を示した図であり、プリンタは印字タスク10を実行する際にまず初めにLOGINプロトコルを使ってプリンタで用意しているプリンタプロトコルA・B・Cのうち、どれを選択して印字するかを決定し、その後は決定されたプロトコルに沿って印字動作を行う。
すなわち、プリンタ側でいくつかのプリンタプロトコルをサポートしているデバイスにおいて、ターゲットとの接続の際にまず初めに相手のデバイスのプロトコルをLOGINプロトコルを使って判別し、プリンタは相手のプロトコルに合わせたプリンタプロトコルを複数の中からひとつ選択し、この選ばれたプロトコルに沿って印字データやコマンドのやり取りを行って印字処理を行う。
【0141】
図19は、この実施の形態におけるLOGINプロトコルを実装した1394インターフェイスにおける各デバイスの接続形態を示した図で、複数のプリンタプロトコルに対応したプリンタ11に対してLOGINプロトコルを実装したデバイス(PC12、スキャナ13、VCR14等)が接続された場合に、LOGINプロトコルを使用して相手のトランスポートプロトコルに応じてプリンタ側でプリンタプロトコルを切り替えることにより、各デバイスからの印字タスクを問題なく処理することが可能となる。
【0142】
図20はログイン動作の流れを示したものである。
【0143】
第一ステップ:
・デバイス(この場合マルチプロトコルプリンタ)をロック
・プリンタのケーパビリティ(受け付けるプロトコル等)を取得
かかるケーパビリティは、後述するレジスタ503に格納される。
・ホストのケーパビリティをプリンタにセット
第二ステップ:
・第一ステップで決定したプロトコルで、プリントデータの通信
第三ステップ:
・プリンタとホストは、コネクションを切断
【0144】
図21は、この実施の形態においてLOGINプロトコルのためにプリンタが備える1394シリアルバスのCSRを示し、図中、501はロックレジスタ(lock)、502はプロトコルレジスタ(protocol)、503はケーパビリティレジスタ(capability)を示す。これらのレジスタは1394シリアルバスのアドレス空間における初期ユニット空間の定められたアドレスに配置される。ロックレジスタ501はリソースのロック状態を示し、値0はログイン可能な状態をあらわし、0以外はロック状態ですでにログインされていることをあらわす。ケーパビリティレジスタ503は設定可能なプロトコルを示し、ビット毎にプロトコルに対応し、ビットの値1はそのプロトコルが設定可能であることをあらわし、0は設定不可能であることをあらわす。プロトコルレジスタ502は現在設定されたプロトコルを示し、設定されたプロトコルに対応するケーパビリティレジスタ503のビットに相当するビットの値が1になる。
【0145】
図22は、1394シリアルバスにより構成されたネットワーク(1394ネットワーク)におけるプリンタマップのフォーマットを示した図である。
【0146】
このプリンタマップには、応答を返してきたプリンタノードのユニークID(Unique ID )、ノードID(Node ID )、ステータス(Status)、ケーパビリティ(Capability)が保存される。
ここでいうステータス(Status)は、例えば、図21のプロトコルレジスタ502の内容等を示し、ケーパビリティ(Capability)は、例えば、図21のケーパビリティレジスタ503の内容等を示す。
【0147】
図23は、CRCアーキテクチャにおけるノードユニークIDのフォーマットを示した図である。
【0148】
図24は、プリンタマップ(図22)の作成コマンドのフィーマットを示した図であり、このコマンドは、非同期パケットのライトトランザクションにより、ターゲットに通知される。
【0149】
図24に示すようなコマンドは、このプロトコルにおいて、1394アドレス空間におけるターゲットのユニット空間の定められたアドレスに配置される。
【0150】
図25は、複数のマルチプロトコルプリンタが1394ネットワークに接続されている場合のホスト側プリンティングプロトコル(ホスト側プリンタマップ作成処理)を示したフローチャートである。
【0151】
ここで、ネットワークにノードには、通常様々なデバイスが接続されている。このような状況下で、イニシエータ(ホスト)がプリンタの出力を試みる時、どのノードにプリンタが接続されているかを知る必要がある。また、プリンタの適切な出力を得るためには、プリンタの物理的な場所、その能力、その余力等を予め知っておくと非常に都合がよい。
【0152】
そこで、この実施の形態では、同一ネットワークに接続されているプリンタを調査する。
例えば、プリンタの出力時に、イニシエータ(ホスト)がネットワーク上のプリンタについて上述したような物理的な場所、能力及び余力等の情報(以下、トポロジー/能力情報とも言う)を得てプリンタマップを予め作成し、そのプリンタマップに基づいて目的のプリンタを選択する。
【0153】
以下、図25を用いて、ホスト側のプリンタマップ作成処理について説明する。
【0154】
先ず、ホスト側は、プリンタマップ(図22)を作成するために、その作成コマンド(図24)をブロードキャストし(ステップS3001)、ターゲットであるプリンタからの応答コマンドの受信待ち状態になる(ステップS3002)。
【0155】
ホスト側は、ターゲットからの応答コマンドを受信すると、次に、その応答コマンドを返してきたターゲットのプロトコルレジスタ及びケーパビリティレジスタの内容を読み取る(ステップS3003)。これにより、ホスト側は、そのターゲットの能力や状態等を認識する。
【0156】
そして、ホスト側は、ステップS3003で得た情報を基に、現在の1394ネットワーク上のプリンタについてのプリンタマップを作成する(ステップS3004)。
【0157】
図26は、上述したホスト側でのプリンタマップ作成処理時のターゲット側、すなわちプリンタ側の処理を示すフローチャートである。
【0158】
先ず、プリンタは、電源投入時からステータス及びケーパビリティを提示する(ステップS3101)。
具体的には、例えば、現在の自プリンタの能力や状態等に応じて、プロトコルレジスタ及びケーパビリティレジスタの設定処理を行う。したがって、プリンタ内部でのステータス及びケーパビリティの変化は、このステップでのステータス及びケーパビリティを提示にも反映する。
【0159】
次に、プリンタは、ホスト側からのプリンタマップ作成コマンドの受信待ち状態となる(ステップS3102)。
【0160】
そして、プリンタは、ホスト側からのプリンタマップ作成コマンドを受信すると、そのコマンドに対する応答コマンドをホスト側へ返す(ステップS3103)。
【0161】
図27は、ログイン処理のホスト側のフローチャートである。
【0162】
ログインを開始するためには、図25に示したプリンタマップ作成処理(ステップS600)の後、ログインしようとするプリンタのロックレジスタ501、プロトコルレジスタ502、ケーパビリティレジスタ503をリードトランザクションにより確認する。ここで、ケーパビリティレジスタ503の内容から、ホストが通信に用いるプロトコルをプリンタがサポートしているかどうか確認する(ステップ601)。もしホストのプロトコルがプリンタのサポート外ならば、次のステップでログインを中止する。
【0163】
ロックレジスタ501が0以外であれば、他のデバイスがログイン中であるとみなし、ログインを中止する。ログインレジスタ501が0であれば、現在ログイン可能とみなす(ステップ602)。
【0164】
ログイン可能の場合リソースロック処理に移り、プリンタのロックレジスタ501にロックトランザクションを用いて1を書き込み、ホスト側のログイン設定とする(ステップ603)。この状態でプリンタはロックされたことになり、他のデバイスからの出力は不可能。またレジスタの変更も不可能とする。
【0165】
上記のようにプリンタのリソースがロックされた状態で、次にプロトコルの設定を行なう。本実施の形態におけるプリンタは、複数プリントプロトコルをサポートするため、プリントデータを受け取る前に、ホスト側のプロトコルを知らねばならない。ここでは、ホスト側がプリンタのプロトコルレジスタ502に対して、ライトトランザクションにより、これから使用するプロトコルに相当するビットを立て通知する(ステップ604)、という手段を用いる。
【0166】
この時点で、ホストが通信に用いるプロトコルがプリンタに通知され、かつプリンタがロック状態なので、現在ログインしているホストが通常のプロトコルでプリントデータの送信を行なう(ステップ605)。
【0167】
プリントデータの送信が終了したら、ホストはプリンタのロックレジスタ501、プロトコルレジスタ502、ケーパビリティレジスタ503をクリアすることにより、プリンタからログアウトする(ステップ606)。
【0168】
図28は、ログイン処理のプリンタ側のフローチャートである。
【0169】
プリンタ側は、図26に示したプリンタマップ作成処理(ステップS700)の後、通常ホストからのログイン待ちの状態にいる。ホストからのプリントリクエストは、プリンタのロックレジスタ501、プロトコルレジスタ502、ケーパビリティレジスタ503の読み取りにより開始されるので、前記レジスタは、常に他のデバイスから読み出し可能の状態にしておく。今、プリントアウトを実行しようとするホストがプリンタをロックしたとする(ステップ701)。
【0170】
ロックレジスタ501への書き込みによりプリンタがロックされたら、次にホストからの、使用プロトコルの通知を待つ(ステップ702)。ロック状態になってからプロトコルの通知を待つのは、ログインの途中で、さらに他のデバイスからのリクエストにより、プロトコルレジスタ502を書き換えられないようにするためである。
【0171】
プロトコルの通知があったら、プリンタは自分の受け付けるプロトコルをスイッチし、ホスト側に合わせ、通信を行なう(ステップ703〜710)。
【0172】
通信が終了したら、プリンタはロックレジスタ501、プロトコルレジスタ502、ケーパビリティレジスタ503がクリアされたのを確認し(ステップ711)、ログイン待ち状態(ステップ701)に戻る。
【0173】
つぎに、第2の実施の形態について説明する。
【0174】
上述した第1の実施の形態では、図25及び図26を用いて説明したように、1394ネットワークに複数のプリンタが接続された場合において、ホストがネットワーク上のプリンタについてプリンタマップを作成し、そのプリンタマップに基づいて目的のプリンタを選択するようにしたが、この第2の実施の形態では、1394ネットワーク上でホスト及びプリンタが共に複数プロトコルをサポートしており、さらにそのようなプリンタが複数接続されている場合において、ホストが各プリンタの使用可能なプロトコルを調べて多数決を取り、最も多くサポートされているプロトコルを決定する。
【0175】
尚、この第2の実施の形態は、図25及び図26に示した処理以外については第1の実施の形態と同様であるため、その詳細な説明は省略し、ここでは、第1の実施の形態と異なる点についてのみ具体的に説明する。
【0176】
まず、図29は、この実施の形態におけるホスト側のプリンタマップ作成処理を示すフローチャートであり、図30は、この処理時のプリンタ側の処理を示すフローチャートである。
図29の処理は、図27に示したホスト側のログイン処理のステップS600で行われる処理であり、図30の処理は、図29に示したプリンタ側のログイン処理のステップS700で行われる処理である。
【0177】
ここで、この実施の形態では上述したように、1394ネットワーク上において、イニシエータ(ホスト)及びターゲット(プリンタ)共に複数プロトコルをサポートしており、さらにそのようなプリンタが同一ネットワークに複数台接続されている場合、当然イニシエータとターゲットが同一プロトコルを用いる必要があるが、今どのプロトコルを用いるかを決定するために、イニシエータが各プリンタの使用可能なプロトコルを調べ、その中で多数決を取り、最も多くサポートされているプロトコルを用いる。
【0178】
このように、多くのプロトコルが使用可能な状況下で多数決を取るように構成することで、実際に使用するプロトコルの種類を削減することができ、その結果、イニシエータのプロトコルスイッチによる負荷を下げることができる。
【0179】
以下、図29及び図30を用いて、イニシエータ側(ホスト側)及びターゲット側(プリンタ側)のプリンタマップ作成処理(相対多数プロトコル決定プリンタマップ処理)について説明する。
【0180】
先ず、ホスト側は、図22に示したようなプリンタマップを作成するために、その作成コマンドをブロードキャストし(ステップS3201)、ターゲットであるプリンタからの応答コマンドの受信待ち状態になる(ステップS3202)。
【0181】
ホスト側は、ターゲットからの応答コマンドを受信すると、次に、その応答コマンドを返してきたターゲットのプロトコルレジスタ及びケーパビリティレジスタの内容を読み取る(ステップS3203)。これにより、ホスト側は、そのターゲットの能力や状態等を認識する。
【0182】
次に、ホスト側は、ステップS3203で得た情報を基に、現在の1394ネットワーク上のプリンタについてのプリンタマップを作成する(ステップS3204)。
【0183】
次に、ホスト側は、ステップS3204で作成したプリンタマップより、現在ネットワークに接続されているマルチプロトコルプリンタの使用可能なプロトコルを調べ、それらのプロトコルの中から、最も多くサポートされているプロトコルを選択する(ステップS3205)。
【0184】
そして、ホスト側は、ステップS3205で選択したプロトコルを、プロトコル通知コマンドとして各プリンタに通知する(ステップS3206)。
【0185】
一方、プリンタは、先ず、電源投入時からステータス及びケーパビリティを提示する(ステップS3301)。
具体的には、例えば、現在の自プリンタの能力や状態等に応じて、プロトコルレジスタ及びケーパビリティレジスタの設定処理を行う。したがって、プリンタ内部でのステータス及びケーパビリティの変化は、このステップでのステータス及びケーパビリティを提示にも反映する。
【0186】
次に、プリンタは、ホスト側からのプリンタマップ作成コマンドの受信待ち状態となる(ステップS3302)。
【0187】
次に、プリンタは、ホスト側からのプリンタマップ作成コマンドを受信すると、そのコマンドに対する応答コマンドをホスト側へ返す(ステップS3303)。
【0188】
次に、プリンタは、ホスト側からのプロトコル通知コマンドの受信待ち状態となる(ステップS3402)。
【0189】
そして、プリンタは、ホスト側からのプロトコル通知コマンドを受信すると、そのコマンドに対する応答コマンドをホスト側へ返す(ステップS3503)。
【0190】
つぎに、第3の実施の形態について説明する。
【0191】
図31は、この実施の形態における動作を示した図であり、図2に示した第1の実施の形態と比較してみるとLOGINプロトコルを実装していないプロトコルDについても対応している点が特徴といえる。
すなわち、LOGINプロトコルを持ったターゲットに対してだけでなく、既存のプロトコルD(例えばAV/Cプロトコル)にのみ対応しているデバイスに対しても印字動作の保証を行う為に、プリンタ側で対応するプリンタプロトコルをLOGINプロトコルの持っていないデバイス用に追加を行ったものである。
【0192】
この動作について説明すると、接続の初めに行われるLOGINプロトコルによる会話によってターゲット側がLOGINプロトコルに対応していないことをプリンタ側が認識した際、プリンタ側はその他のプロトコルDを使ってターゲットに会話を行い、そこで会話が成立した場合はそのプロトコルDに沿った印字タスクを実行することができる。
【0193】
図32は、この実施の形態におけるOSIモデルとの対比を示した図であり、この実施の形態ではLOGINプロトコルの実装されていない現行のAV/Cプロトコルに準拠したプリンタをモデルとしている。例4は、現行のプロトコルではまだ定義されていない、スキャナ用に作られたLOGINプロトコルの機能を持っていないプロトコルが実装されていた場合を表している。
すなわち、LOGINプロトコルを実装していないプロトコルついてもプリンタ側で対応することができれば、繋がるターゲットデバイスの種類に幅ができるわけである。
【0194】
尚、上述した実施の形態では、主にネットワーク上のデバイスとしてプリンタを説明したが、これに限らず、モニタやコンピュータ、ディジタルカメラ等でもよく、特定の機種のデバイスに限定されるものではない。
【0195】
また、図27のステップS600、図28のステップS700、及び図29のステップS3201で実行されるプリンタマップの作成においては、トポロジ接続状態が例えば図9のように調査され表示用マップが作成される、かかるトポロジ接続状態が判定されることによって、単なる多数決ではなく、トポロジ接続状態を加味して実際に使用するプロトコルを決定することができる。
【0196】
また、本発明は、図19に示すような、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置内のデータ処理方法に適用してもよい。
【0197】
また、本発明の目的は、上述した各実施の形態のホスト及び端末の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読みだして実行することによっても、達成されることは言うまでもない。
【0198】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することとなる。
【0199】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
【0200】
また、コンピュータが読みだしたプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0201】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0202】
【発明の効果】
以上説明したように本発明によれば、拡張性の高いデータ処理方法、データ処理装置、プリンタ及び記憶媒体を提供することができる。特に、複数種類のプリンタのプロトコルに対応可能であるので、拡張性が極めて高い。
また、同一ネットワークに接続されたプリンタを調査することで、目的とするプリンタを選択することができるため、最適なプリンタ出力を得ることができる。さらに、多くのプロトコルが使用可能な状況下であっても、それらのプロトコルのうちプリンタから最も多くサポートされているプロトコルを決定することで、実際に使用するプロトコルの種類を削減することができるため、ホスト側のプロトコルに切り替えによる負荷を下げることができる。
【図面の簡単な説明】
【図1】IEEE1394ケーブルを用いた通信システムの一例を示す図である。
【図2】IEEE1394の階層構造を示す図である。
【図3】IEEE1394のアドレスを示す図である。
【図4】IEEE1394のケーブル断面図である。
【図5】DS−Link符号化方式を説明するための図である。
【図6】バスリセットからIDの設定までを説明するフローチャートである。
【図7】ルートの決定方法を説明するフローチャートである。
【図8】親子関係決定からすべてのノードIDの設定までの手順を説明するフローチャートである。
【図9】ノード間の親子関係を示す図である。
【図10】アービトレーションの過程を説明するための図である。
【図11】アービトレーションの過程を示すフローチャートである。
【図12】Asynchronous転送におけるサブアクションを説明するための図である。
【図13】Asynchronous転送におけるパケット構造を説明するための図である。
【図14】Isochronous転送におけるサブアクションを説明するための図である。
【図15】Isochronous転送におけるパケット構造を示す図である。
【図16】IEEE1394の通信サイクルの一例を説明するための図である。
【図17】第1の実施の形態において、本発明を適用したシステムを説明するための図である。
【図18】LOGINプロトコルの基本動作を説明するための図である。
【図19】LOGINプロトコルを実装した1394インターフェイスにおける各デバイスの接続形態を説明するための図である。
【図20】ログイン動作の流れを説明するための図である。
【図21】LOGINプロトコルのためにプリンタが備える1394シリアルバスのCSRを説明するための図である。
【図22】1394ネットワークにおけるプリンタマップを説明するための図である。
【図23】CRCアーキテクチャにおけるノードIDを説明するための図である。
【図24】プリンタマップ作成のコマンドを説明するための図である。
【図25】ホスト側のプリンタマップ作成処理を説明するためのフローチャートである。
【図26】プリンタ側のプリンタマップ作成処理を説明するためのフローチャートである。
【図27】ログイン処理のホスト側の処理を説明するためのフローチャートである。
【図28】ログイン処理のプリンタ側の処理を説明するためのフローチャートである。
【図29】第2の実施の形態におけるホスト側のプリンタマップ作成処理を説明するためのフローチャートである。
【図30】上記第2の実施の形態におけるプリンタ側のプリンタマップ作成処理を説明するためのフローチャートである。
【図31】第3の実施の形態におけるシステム動作を説明するための図である。
【図32】上記第3の実施の形態におけるOSIモデルとの対比を説明するための図である。
【符号の説明】
1 OSIモデルの物理層
2 データリンク層
3 上位層
4 上位層
5 トランスポートプロトコル層
6 プレゼンテーション層
7 LOGINプロトコル
8 シリアルバスプロトコル(SBP−2)
9 デバイスプロトコル[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data processing method, a data processing device, a printer, and a storage medium for switching a plurality of types of printer protocols via a common serial bus.
[0002]
[Prior art]
Conventionally, various types of systems are known as systems for sending data to a printer via a serial bus.
[0003]
For example, a technique for outputting data from a computer to a printer using a de facto standard interface that has been widely used, such as SCSI (Small Computer System Interface) and Centronics, is known.
[0004]
[Problems to be solved by the invention]
However, the conventional printer protocol for transmitting printer data using a serial bus is limited to one unique to the printer manufacturer.
Therefore, the problem of lack of expandability has arisen.
In particular, when print data is output using an interface for connecting various types of devices, for example, an interface such as IEEE1394, the problem of lack of expandability has been a major problem to be solved.
[0005]
Therefore, the present invention has been made to eliminate the above-described drawbacks. When print data is transmitted via a system bus, a highly scalable data processing method, data processing apparatus, printer, and storage medium are provided. The purpose is to provide.
Another object of the present invention is to provide a data processing method, a data processing device, a printer, and a storage medium suitable for the IEEE 1394 standard.
It is another object of the present invention to provide a data processing method, a data processing apparatus, a printer, and a storage medium suitable for connecting a printer directly from an image data output device without using a computer.
It is another object of the present invention to provide a data processing method, a data processing apparatus, a printer, and a storage medium that can obtain an optimal printer output.
Another object of the present invention is to provide a data processing method, a data processing apparatus, a printer, and a storage medium that can reduce a load caused by switching protocols.
[0006]
[Means for Solving the Problems]
The data processing method of the present invention is a data processing method for switching the protocols of a plurality of devices via a common serial bus, and the same network using the common serial bus by communication of an initial protocol performed between the devices. The first investigation process for investigating the ID of the device and the second investigation process for investigating the protocol unique to the device are executed, and the ID obtained in the first investigation process and the second investigation A protocol to be executed is determined based on the protocol obtained by the processing, and the determined protocol is executed following the initial protocol.
The data processing apparatus of the present invention is a data processing apparatus for switching the protocols of a plurality of devices via a common serial bus, and the same network using the common serial bus by communication of an initial protocol performed with the devices The first execution process for investigating the ID of the device, the first execution means for executing the second investigation process for investigating the protocol specific to the device, and the ID obtained by the first investigation process And a means for determining a protocol to be executed based on the protocol obtained in the second investigation process, and a second execution means for executing the determined protocol following the initial protocol, To do.
The printer of the present invention is a printer that switches a protocol of a plurality of devices corresponding to a host via a common serial bus, and communicates with the device through an initial protocol communication in the same network using the common serial bus. A first execution unit for executing a first investigation process for examining the ID of the device; a second investigation process for investigating a protocol specific to the device; and the ID obtained by the first investigation process; The apparatus includes: a determination unit that determines a protocol to be executed based on the protocol obtained in the second investigation process; and a second execution unit that executes the determined protocol following the initial protocol. .
A storage medium according to the present invention stores a computer program stored in a computer-readable manner for causing a computer to execute a data processing step for executing a data processing method for switching protocols of a plurality of devices via a common serial bus. The data processing method includes: a first investigation process for examining an ID of the device in the same network using the common serial bus by communication of an initial protocol performed with the device; and A step of executing a second investigation process for investigating a unique protocol, and a protocol to be executed are determined based on the ID obtained in the first investigation process and the protocol obtained in the second investigation process. And the determined protocol following the initial protocol Characterized by a step of execution.
[0007]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0008]
Here, first, in the first and second embodiments described below, the IEEE 1394 serial bus is used as a digital I / F for connecting the devices, and therefore the IEEE 1394 serial bus will be described in advance.
[0009]
With the advent of consumer digital VCRs and DVD players, it is necessary to support real-time and high-information data transfer such as video data and audio data. In order to transfer such video data and audio data in real time and transfer them to a personal computer (PC) or other digital devices, an interface capable of high-speed data transfer with the necessary transfer functions is required. An interface developed from such a viewpoint is IEEE 1394-1995 (High Performance Serial Bus) (hereinafter also simply referred to as 1394 serial bus).
[0010]
FIG. 1 shows an example of a network system configured using a 1394 serial bus.
[0011]
This system includes devices A, B, C, D, E, F, G, and H. Between A and B, between A and C, between B and D, between D and E, between C and F,
[0012]
The daisy chain method and node branch method can be mixed as the connection method between each device.
It can be connected with a high degree of freedom.
[0013]
Each device has its own unique ID, and each device recognizes each other to form one network within a range connected by the 1394 serial bus. By simply connecting each digital device with one 1394 serial bus cable in sequence, each device serves as a relay and constitutes a single network as a whole. In addition, it has a function of automatically recognizing the device and recognizing the connection status when the cable is connected to the device with the 1394 serial bus and the Plug & Play function.
[0014]
In addition, in the system as shown in FIG. 1, when a device is deleted from the network or newly added, the bus is automatically reset, the network configuration up to that point is reset, and a new one is added. A reliable network. This function makes it possible to always set and recognize the network configuration at that time.
[0015]
The data transfer rate is 100/200/400 Mbps, and devices with higher transfer rates support lower transfer rates and are compatible.
[0016]
As data transfer modes, asynchronous data such as control signals (Asynchronous data: hereinafter referred to as “Asynchronous data”) and asynchronous data such as real-time video data and audio data (Isochronous data: hereinafter referred to as “Iso data”) are transferred. There is an isochronous transfer mode for transferring The Async data and Iso data are transferred within a cycle (usually 1 cycle 125 μs) after transferring a cycle start packet (CSP) indicating the start of the cycle, and then giving priority to the transfer of Iso data over the Async data. Transferred together.
[0017]
FIG. 2 shows the components of the 1394 serial bus.
[0018]
The 1394 serial bus has a layer structure as a whole. As shown in FIG. 2, there is a connector port to which a cable and a connector of a 1394 serial bus are connected, and a physical layer and a link layer are positioned thereon as hardware.
[0019]
The hardware part is a substantial interface chip part, of which the physical layer performs coding and connector-related control, and the link layer performs packet transfer and cycle time control.
[0020]
The transaction layer of the firmware unit manages data to be transferred (transaction), and issues Read, Write, and Lock commands. The management layer is a part that manages the connection status and ID of each connected device and manages the network configuration.
[0021]
The hardware and firmware are the actual 1394 serial bus configuration.
[0022]
The application layer of the software part differs depending on the software to be used, and is a part that defines how data is loaded on the interface. Printers, AVC protocols, and the like are specified.
[0023]
The above is the configuration of the 1394 serial bus.
[0024]
Next, FIG. 3 shows a diagram of the address space in the 1394 serial bus.
[0025]
Each device (node) connected to the 1394 serial bus always has a 64-bit address unique to each node. By storing this address in the ROM, it is possible to always recognize the node address of itself and the other party, and to perform communication specifying the other party.
[0026]
The addressing of the 1394 serial bus is based on the IEEE1212 standard, and the first 10 bits are used for specifying the bus number and the next 6 bits are used for specifying the node ID number. The remaining 48 bits are the address width given to the device and can be used as a unique address space. The last 28 bits are used as a unique data area for storing information for identifying each device and specifying usage conditions.
[0027]
The above is the outline of the technology of the 1394 serial bus.
[0028]
Next, the technical part that can be said to be a feature of the 1394 serial bus will be described in more detail.
[0029]
The electrical specifications of the 1394 serial bus will be described.
[0030]
FIG. 4 shows a cross-sectional view of a 1394 serial bus cable.
[0031]
In the 1394 serial bus, in addition to 6 pins, that is, two pairs of twisted pair signal lines, a power supply line is provided in the connection cable. As a result, it is possible to supply power to devices that do not have a power supply or devices whose voltage has dropped due to a failure.
[0032]
The voltage of the power source flowing in the power line is defined as 8 to 40 V, and the current is defined as the maximum current DC 1.5A.
[0033]
In the standard called DV cable, it is composed of 4 pins without a power source.
[0034]
DS-Link encoding will be described.
[0035]
FIG. 5 is a diagram for explaining the DS-Link encoding method of the data transfer format employed in the 1394 serial bus.
[0036]
In the 1394 serial bus, a DS-Link (Data / Strobe Link) encoding method is adopted. This DS-Link encoding method is suitable for high-speed serial data communication, and its configuration requires two signal lines. Main data is sent to one of the twisted wires, and a strobe signal is sent to the other twisted wire. On the receiving side, the clock is reproduced by taking an exclusive OR of the communicated data and the strobe.
[0037]
Advantages of using this DS-Link encoding method are that transfer efficiency is higher than that of 8 / 10B conversion, the PLL circuit is not required, the circuit scale of the controller LSI can be reduced, and there is no data to be transferred. In some cases, it is not necessary to send information indicating that the device is in an idle state, so that the transceiver circuit of each device can be put in a sleep state, thereby reducing power consumption.
[0038]
A bus reset sequence will be described.
[0039]
In the 1394 serial bus, each connected device (node) is given a node ID and recognized as a network configuration.
[0040]
When there is a change in this network configuration, for example, when a change occurs due to an increase or decrease in the number of nodes due to insertion / extraction of nodes, power ON / OFF, etc. The node enters a mode to recognize a new network configuration by sending a bus reset signal on the bus.
[0041]
The change detection method at this time is performed by detecting a change in bias voltage on the 1394 port board.
[0042]
When a bus reset signal is transmitted from a certain node, the physical layer of each node receives the bus reset signal, and simultaneously transmits the occurrence of the bus reset to the link layer and transmits the bus reset signal to the other nodes. After all nodes have finally detected the bus reset signal, the bus reset is activated.
[0043]
The bus reset is also activated by issuing a command directly to the physical layer by means of hardware detection due to cable insertion / removal or network abnormality as described above, and host control from the protocol.
Further, when the bus reset is activated, the data transfer is temporarily interrupted, and the data transfer during this time is awaited and resumed under a new network configuration after the end.
[0044]
The above is the bus reset sequence.
[0045]
A sequence for determining the node ID will be described.
[0046]
After the bus reset, each node enters an operation of giving an ID to each node in order to construct a new network configuration. A general sequence from bus reset to node ID determination at this time will be described with reference to the flowcharts of FIGS.
[0047]
The flowchart in FIG. 6 shows a series of bus operations from when a bus reset occurs until a node ID is determined and data transfer can be performed.
[0048]
First, in step S101, the occurrence of a bus reset in the network is constantly monitored. If a bus reset occurs due to the power ON / OFF of the node, the process proceeds to step S102.
[0049]
In step S102, in order to know the connection status of the new network from the state where the network is reset, a parent-child relationship is declared between the directly connected nodes. When the parent-child relationship is determined among all the nodes as step S103, one route is determined as step S104. Until the parent-child relationship is determined among all the nodes, the parent-child relationship is declared in step S102, and the route is not determined.
[0050]
When the route is determined in step S104, a node ID setting operation for giving an ID to each node is performed in step S105. Node IDs are set in a predetermined node order, and the setting operation is repeated until IDs are given to all the nodes. When IDs are finally set for all the nodes in step S106, a new network configuration is set. Is recognized in all the nodes, so that data transfer between the nodes can be performed in step S107, and data transfer is started.
[0051]
In the state of step S107, a mode for monitoring the occurrence of a bus reset is entered again. When a bus reset occurs, the setting operation from step S101 to step S106 is repeated.
[0052]
The above is the description of the flowchart of FIG. 6, and the part from the bus reset to the route determination of the flowchart of FIG. It shows in FIG. 7, FIG.
[0053]
First, the flowchart of FIG. 7 will be described.
[0054]
When a bus reset occurs as step S201, the network configuration is once reset. In step S201, the occurrence of a bus reset is constantly monitored.
[0055]
Next, in step S202, as a first step of re-recognizing the connection status of the reset network, a flag indicating that each device is a leaf (node) is set. In step S203, the number of ports that each device has is connected to other nodes.
[0056]
In accordance with the result of the number of ports in step S204, in order to start the declaration of the parent-child relationship from now on, the number of undefined ports (parent-child relationship is not determined) is examined. Immediately after the bus reset, the number of ports = the number of undefined ports. However, as the parent-child relationship is determined, the number of undefined ports detected in step S204 changes.
[0057]
First, immediately after a bus reset, only a leaf can declare a parent-child relationship. A leaf can be known by checking the number of ports in step S203. In step S205, the leaf declares “it is a child and the other party is a parent” to the node connected to itself, and ends the operation.
[0058]
A node that has a plurality of ports in step S203 and has been recognized as a branch immediately after the bus reset indicates that the number of undefined ports> 1 in step S204. Therefore, the process proceeds to step S206, where a branch flag is set, and in step S207. Wait to accept the “parent” in the parent-child relationship declaration from the leaf.
[0059]
The leaf declares the parent-child relationship, and the branch receiving it in step S207 appropriately checks the number of undefined ports in step S204. If the number of undefined ports is 1, the branch is connected to the remaining port. It is possible to declare “I am a child” in step S205 to a certain node. From the second time, even if the number of undefined ports is confirmed in step S204, for a branch that is 2 or more, it waits again in step S207 to accept a “parent” from a leaf or another branch.
[0060]
Eventually, if any one branch or exceptionally leaf (because it was able to declare a child but didn't work quickly) became zero as a result of the number of undefined ports in step S204, this is the whole network The only node for which the number of undefined ports has become zero (all determined as parent ports) is flagged as a route in step S208 and recognized as a route in step S209. Is made.
[0061]
In this way, the process from the bus reset shown in FIG. 7 to the declaration of the parent-child relationship between all nodes in the network is completed.
[0062]
Next, the flowchart of FIG. 8 will be described.
[0063]
First, since the flag information of each node such as leaf, branch, and root is set in the sequence up to FIG. 8, the information is classified in step S301 based on this information.
[0064]
As an operation for assigning an ID to each node, the ID can first be set from the leaf. IDs are set from a young number (node number = 0 to 0) in the order of leaf → branch → root.
[0065]
In step S302, the number N (N is a natural number) of leaves existing in the network is set.
[0066]
Thereafter, in step S303, each leaf requests the root to give an ID. When there are a plurality of requests, the route performs arbitration in step S304, gives an ID number to one winning node in step S305, and notifies the losing node of the result of the failure.
[0067]
The leaf whose ID acquisition has failed in step S306 issues an ID request again and repeats the same operation. In step S307, the leaf that has obtained the ID broadcasts the ID information of the node to all the nodes. When the one-node ID information is broadcast, the number of remaining leaves is reduced by one in step S308.
[0068]
Here, as step S309, when the number of remaining leaves is 1 or more, the process of the ID request in step S303 is repeated, and finally when all the leaves broadcast the ID information, step S309 returns N = 0. Then, the process proceeds to branch ID setting. The branch ID setting is performed in the same manner as the leaf.
[0069]
First, in step S310, the number M (M is a natural number) of branches existing in the network is set.
[0070]
Thereafter, in step S311, each branch requests the root to give an ID. On the other hand, the route is arbitrated in step S312, and is given from the next young number that has been given to the leaf in order from the winning branch.
[0071]
In step S313, the route notifies the branch that issued the request of the ID information or the failure result. In step S314, the branch that has failed in ID acquisition issues an ID request again and repeats the same operation.
[0072]
In step S315, the ID information of the node is broadcast to all the nodes from the branch that has obtained the ID.
[0073]
When the one-node ID information is broadcast, the number of remaining branches is reduced by one in step S316.
[0074]
Here, as the step S317, when the number of remaining branches is 1 or more, the operation from the ID request operation in the step S311 is repeated until all branches finally broadcast the ID information. When all branches acquire node IDs, M = 0 in step S317, and the branch ID acquisition mode is also terminated.
[0075]
When the process is completed up to this point, the only node that has not obtained ID information is the root, so the lowest number not given in step S318 is set as its own ID number, and the ID information of the route is broadcast in step S319. To do.
[0076]
Thus, as shown in FIG. 8, after the parent-child relationship is determined, the procedure until the IDs of all the nodes are set is completed.
[0077]
Next, as an example, an operation in the actual network shown in FIG. 9 will be described with reference to FIG.
[0078]
In the description of FIG. 9, the nodes A and C are directly connected to the lower level of the (root) node B, the node D is directly connected to the lower level of the node C, and further to the lower level of the node D. A hierarchical structure in which node E and node F are directly connected. The procedure for determining the hierarchical structure, root node, and node ID will be described below.
[0079]
After the bus is reset, first, in order to recognize the connection status of each node, a parent-child relationship is declared between the directly connected ports of each node. It can be said that the parent and child are higher in the hierarchical structure and the child side is lower.
[0080]
In FIG. 9, after the bus reset, it is the node A that first declared the parent-child relationship. Basically, a parent-child relationship can be declared from a node (referred to as a leaf) that has a connection to only one port of the node. Since it can first know that this is only one port connection, it recognizes that it is at the end of the network, and the parent-child relationship is determined from the node that has acted early in it. In this way, the port on the side (Node A between A and B) where the parent-child relationship declaration is made is set as a child, and the port on the other side (Node B) is set as a parent. Thus, the node A-B is determined as the child-parent, the node E-D is determined as the child-parent, and the node FD is determined as the child-parent.
[0081]
Further up one layer, among the nodes having a plurality of connection ports (referred to as “branches”), the declaration of the parent-child relationship is sequentially performed from the node receiving the declaration of the parent-child relationship from another node. In FIG. 9, the node D first declares the parent-child relationship between D-E and DF, and then declares the parent-child relationship for the node C. As a result, the node D-C is determined as a child-parent. ing.
[0082]
The node C that has received the parent-child relationship declaration from the node D declares the parent-child relationship to the node B connected to another port. As a result, the node CB is determined as a child-parent.
[0083]
In this way, the hierarchical structure as shown in FIG. 9 is configured, and the node B that becomes the parent in all the finally connected ports is determined as the root node.
Only one route exists in one network configuration.
[0084]
In FIG. 9, node B is determined as the root node. If node B receives a parent-child relationship declaration from node A and issues a parent-child relationship declaration to other nodes at an early timing, The root node may have moved to another node. That is, any node may be a root node depending on the transmission timing, and the root node is not always constant even in the same network configuration.
[0085]
Once the root node is determined, the next mode is to determine each node ID. Here, all nodes notify their determined node IDs to all other nodes (broadcast function).
[0086]
The self ID information includes its own node number, information on the connected position, the number of ports it has, the number of ports connected, information on the parent-child relationship of each port, and the like.
[0087]
As a procedure for assigning node ID numbers, first, a node (leaf) connected to only one port can be activated, and node numbers = 0, 1, 2,.
[0088]
The node having the node ID transmits information including the node number to each node by broadcasting. Thus, it is recognized that the ID number is “allocated”.
[0089]
When all the leaves have acquired their own node IDs, the next step is to branch and the node ID numbers that follow the leaves are assigned to each node. Similarly to the leaf, node ID information is broadcast sequentially from the branch to which the node ID number is assigned, and finally the root node broadcasts self ID information. That is, the route always has the largest node ID number.
[0090]
As described above, assignment of node IDs for the entire hierarchical structure is completed, the network configuration is reconstructed, and bus initialization is completed.
[0091]
Arbitration will be described.
[0092]
In the 1394 serial bus, the bus use right is always arbitrated before data transfer. Since the 1394 serial bus is a logical bus type network in which each individually connected device transmits the same signal to all devices in the network by relaying the transferred signal, packet collision Arbitration is necessary to prevent this. As a result, only one node can be transferred at a certain time.
[0093]
As a diagram for explaining the arbitration, FIG. 10A shows a bus use request diagram in FIG. 10B, and a bus use permission diagram will be described below.
[0094]
When arbitration starts, one or more nodes each issue a bus use right request to the parent node. Node C and node F in FIG. 10A are nodes that have issued a bus use right request. Upon receiving this, the parent node (node A in FIG. 10) issues (relays) a bus use right request to the parent node. This request is finally delivered to the mediation route.
[0095]
The root node that has received the bus use request determines which node uses the bus. This arbitration work can be performed only by the root node, and the node that won the arbitration is given permission to use the bus. FIG. 10B is a diagram in which the use permission is given to the node C and the use of the node F is rejected.
[0096]
A DP (data prefix) packet is sent to the node that lost the arbitration to inform it of the rejection. The rejected node bus use request is waited until the next arbitration.
[0097]
As described above, the node that has won the arbitration and obtained the bus use permission can subsequently start data transfer.
[0098]
Here, a series of arbitration flows will be described with reference to the flowchart of FIG.
[0099]
In order for a node to begin data transfer, the bus needs to be idle. In order to recognize that the previous data transfer has been completed and the bus is currently empty, a predetermined idle time gap length (for example, subaction By passing the gap, each node determines that its transfer can start.
[0100]
In step S401, it is determined whether a predetermined gap length corresponding to data to be transferred, such as Async data and Iso data, has been obtained. As long as the predetermined gap length cannot be obtained, the bus use right required to start the transfer cannot be requested, so the process waits until the predetermined gap length is obtained.
[0101]
If a predetermined gap length is obtained in step S401, it is determined whether there is data to be transferred in step S402. If there is, a request for bus use right is issued to the route so as to secure a bus for transfer in step S403. Depart. At this time, the transmission of the signal indicating the request for the right to use the bus is finally delivered to the route while relaying each device in the network as shown in FIG. If there is no data to be transferred in step S402, the process waits as it is.
[0102]
Next, in step S404, if one or more bus use requests in step S403 are received by the route, the route checks the number of nodes that have issued use requests in step S405.
[0103]
If the selection value in step S405 is the number of nodes = 1 (one node that has issued a usage right request), the bus use permission immediately after that is given to that node. If the selected value in step S405 is the number of nodes> 1 (a plurality of nodes that have made use requests), the route performs an arbitration operation to determine one node to be permitted to use in step S406. This arbitration work is fair, and only the same node does not get permission every time, and the rights are given equally (fair arbitration).
[0104]
In step S407, a selection is made to divide one node that has obtained use permission by arbitrating the route from the plurality of nodes that issued the use request in step S406 and another node that has lost. Here, for one node that has been granted arbitration and obtained use permission, or a node that has obtained use permission without arbitration from the selection value in step S405 without using the requested number of nodes = 1, in step S408, the route is set to that node. In response, a permission signal is sent.
[0105]
The node having obtained the permission signal starts to transfer data (packet) to be transferred immediately after receiving the permission signal. In addition, a DP (data prefix) packet indicating an arbitration failure is sent from the route to the node that has lost the arbitration in step S406 and the bus use is not permitted, and the node that has received the transfer performs the transfer again in step S409. Therefore, the process returns to step S401 and waits until a predetermined gap length is obtained.
[0106]
The above is the description of the flowchart in FIG. 11 that describes the flow of arbitration.
[0107]
Asynchronous transfer will be described.
[0108]
Asynchronous transfer is asynchronous transfer. FIG. 12 shows a temporal transition state in asynchronous transfer.
[0109]
The first subaction gap in FIG. 12 indicates the bus idle state. When the idle time reaches a certain value, the node that desires to transfer determines that the bus can be used, and executes arbitration for acquiring the bus.
[0110]
When the bus use permission is obtained by arbitration, data transfer is executed in the packet format. After the data transfer, the receiving node returns the response (return code for reception confirmation) of the received data with respect to the transferred data by returning it after a short gap called ask gap, or by transmitting a response packet. Is completed. Ask is composed of 4-bit information and a 4-bit checksum, and includes information such as success, busy status, and pending status, and is immediately returned to the source node.
[0111]
Next, FIG. 13 shows an example of a packet format for asynchronous transfer.
[0112]
The packet has a header part in addition to the data part and the error correction data CRC, and the header part has a target node ID, a source node ID, a transfer data length, various codes, etc. as shown in FIG. Written and transferred.
[0113]
Asynchronous transfer is one-to-one communication from the self node to the partner node. The packet transferred from the transfer source node is distributed to each node in the network, but since the address other than the address addressed to itself is ignored, only one destination node reads.
[0114]
The above is the description of asynchronous transfer.
[0115]
Isochronous transfer will be described.
[0116]
Isochronous transfer is synchronous transfer. This isochronous transfer, which can be said to be the greatest feature of the 1394 serial bus, is a transfer mode suitable for transferring data that requires real-time transfer, such as multimedia data such as video data and audio data.
[0117]
Asynchronous transfer (asynchronous) is a one-to-one transfer, but this isochronous transfer is uniformly transferred from one node of the transfer source to all other nodes by the broadcast function.
[0118]
FIG. 14 is a diagram showing a temporal transition state in isochronous transfer.
[0119]
Isochronous transfer is executed at regular intervals on the bus. This time interval is called an isochronous cycle. The isochronous cycle time is 125 μS. The cycle start packet has a role of indicating the start time of each cycle and adjusting the time of each node. The node that transmits the cycle start packet is a node called a cycle master, and after the end of the transfer in the previous cycle, after passing through a predetermined idle period (subaction gap), the start of this cycle is notified. Send cycle start packet.
[0120]
The time interval at which this cycle start packet is transmitted is 125 μs.
[0121]
Further, as indicated by channel A, channel B, and channel C in FIG. 14, a plurality of types of packets can be distinguished and transferred by being given channel IDs within one cycle. This enables real-time transfer between a plurality of nodes at the same time, and the receiving node captures only the data of the channel ID that it wants. This channel ID does not represent a destination address, but merely gives a logical number to the data. Therefore, transmission of a certain packet is forwarded by broadcast from one transmission source node to all other nodes.
[0122]
Prior to transmission of packets for isochronous transfer, arbitration is performed as in asynchronous transmission. However, since there is no one-to-one communication as in asynchronous transfer, there is no ask (reception confirmation reply code) in isochronous transfer.
[0123]
Further, the iso gap (isochronous gap) shown in FIG. 14 represents an idle period necessary for recognizing that the bus is idle before performing isochronous transfer. When this predetermined idle period elapses, a node that wishes to perform isochronous transfer determines that the bus is free and can perform arbitration before transfer.
[0124]
Next, FIG. 15 shows an example of a packet format for isochronous transfer, which will be described.
[0125]
Each packet divided into each channel has a header portion in addition to the data portion and error correction data CRC, and the header portion has a transfer data length, channel number, and other various types as shown in FIG. A code, a header CRC for error correction, and the like are written and transferred.
[0126]
The above is the description of isochronous transfer.
[0127]
Next, the bus cycle will be described.
[0128]
In the actual transfer on the 1394 serial bus, isochronous transfer and asynchronous transfer can be mixed. FIG. 16 shows a time transition state of the transfer state on the bus in which isochronous transfer and asynchronous transfer are mixed.
[0129]
Isochronous transfer is executed with priority over asynchronous transfer. The reason is that after a cycle start packet, isochronous transfer can be started with a gap length (isochronous gap) shorter than the gap length (subaction gap) of the idle period necessary for starting asynchronous transfer. . Therefore, isochronous transfer is executed with priority over asynchronous transfer.
[0130]
In the general bus cycle shown in FIG. 16, a cycle start packet is transferred from the cycle master to each node at the start of cycle #m. As a result, the time is adjusted at each node, and after waiting for a predetermined idle period (isochronous gap), the node which should perform isochronous transfer performs arbitration and enters packet transfer. In FIG. 16, channel e, channel s, and channel k are transferred isochronously in order.
[0131]
After repeating the operations from the arbitration to the packet transfer for a given channel, when all the isochronous transfers in the cycle #m are completed, the asynchronous transfer can be performed.
[0132]
When the idle time reaches the subaction gap where asynchronous transfer is possible, it is determined that a node that wishes to perform asynchronous transfer can move to execution of arbitration.
[0133]
However, the period during which asynchronous transfer can be performed is when a subaction gap for starting asynchronous transfer is obtained between the end of isochronous transfer and the time to transfer the next cycle start packet (cycle synch) Limited to.
[0134]
In cycle #m in FIG. 16, isochronous transfer for three channels and then asynchronous transfer (including ack) are transferred in two packets (
[0135]
However, if the time to send the next cycle start packet during the asynchronous or synchronous transfer operation (cycle synch) is reached, do not forcibly suspend and wait for the idle period after the transfer ends. Send cycle start packet for cycle. That is, when one cycle continues for 125 μS or more, it is assumed that the fractional cycle is shortened from the reference 125 μS. Thus, the isochronous cycle can be exceeded or shortened on the basis of 125 μS.
[0136]
However, isochronous transfer is always executed if necessary for every cycle in order to maintain real-time transfer, and asynchronous transfer may be passed to the next and subsequent cycles because the cycle time is shortened.
This delay information is managed by the cycle master.
[0137]
Therefore, first, the first embodiment will be described.
[0138]
FIG. 17 is a diagram that best represents the characteristics of the present invention. When the interface of 1394 is compared with each layer of the OSI model used in the LAN, the
[0139]
In this embodiment, by inserting the LOGIN protocol into a device compliant with the serial bus protocol (SBP-2) 8, the user wants to communicate with the partner device using a protocol compliant with SBP-2. Can be notified. In a third embodiment to be described later, the LOGIN protocol is also inserted into the device protocol 9 specialized on the 1394 interface to determine whether each device supports the protocol, and to Can communicate.
[0140]
FIG. 18 is a diagram showing the basic operation of the LOGIN protocol. When the printer executes the
That is, in a device that supports several printer protocols on the printer side, when connecting to the target, the partner device's protocol is first determined using the LOGIN protocol, and the printer matches the partner protocol. One printer protocol is selected from among a plurality of printer protocols, and print processing is performed by exchanging print data and commands in accordance with the selected protocol.
[0141]
FIG. 19 is a diagram showing a connection form of each device in the 1394 interface that implements the LOGIN protocol in this embodiment. A device (
[0142]
FIG. 20 shows the flow of the login operation.
[0143]
First step:
-Lock the device (in this case, a multi-protocol printer)
・ Acquire printer capabilities (accepted protocols, etc.)
Such capability is stored in a
・ Set host capabilities to the printer
Second step:
・ Communication of print data using the protocol determined in the first step
Third step:
-Printer and host disconnect
[0144]
FIG. 21 shows the CSR of the 1394 serial bus provided in the printer for the LOGIN protocol in this embodiment, in which 501 is a lock register (lock), 502 is a protocol register (protocol), and 503 is a capability register ( (capability). These registers are arranged at predetermined addresses in the initial unit space in the address space of the 1394 serial bus. The
[0145]
FIG. 22 is a diagram showing the format of a printer map in a network (1394 network) configured with a 1394 serial bus.
[0146]
The printer map stores a unique ID (Unique ID), a node ID (Node ID), a status (Status), and a capability (Capability) of the printer node that has returned the response.
The status here indicates, for example, the contents of the
[0147]
FIG. 23 is a diagram showing a format of a node unique ID in the CRC architecture.
[0148]
FIG. 24 is a diagram showing the format of a printer map (FIG. 22) creation command. This command is notified to the target by an asynchronous packet write transaction.
[0149]
In this protocol, a command as shown in FIG. 24 is arranged at a predetermined address in the target unit space in the 1394 address space.
[0150]
FIG. 25 is a flowchart showing a host-side printing protocol (host-side printer map creation process) when a plurality of multi-protocol printers are connected to the 1394 network.
[0151]
Here, various devices are usually connected to the nodes in the network. Under such circumstances, when the initiator (host) tries to output the printer, it is necessary to know which node the printer is connected to. In addition, in order to obtain an appropriate output of the printer, it is very convenient to know in advance the physical location of the printer, its capability, its remaining capacity, and the like.
[0152]
Therefore, in this embodiment, printers connected to the same network are investigated.
For example, at the time of printer output, the initiator (host) obtains information such as the physical location, capability, and remaining power (hereinafter also referred to as topology / capability information) as described above for the printer on the network, and creates a printer map in advance. Then, the target printer is selected based on the printer map.
[0153]
Hereinafter, the printer map creation processing on the host side will be described with reference to FIG.
[0154]
First, in order to create a printer map (FIG. 22), the host side broadcasts its creation command (FIG. 24) (step S3001) and waits for a response command from the target printer (step S3002). ).
[0155]
Upon receiving the response command from the target, the host side next reads the contents of the protocol register and capability register of the target that has returned the response command (step S3003). Thereby, the host side recognizes the capability and state of the target.
[0156]
Then, the host side creates a printer map for the printer on the current 1394 network based on the information obtained in step S3003 (step S3004).
[0157]
FIG. 26 is a flowchart showing processing on the target side, that is, on the printer side during the printer map creation processing on the host side described above.
[0158]
First, the printer presents the status and capability from when the power is turned on (step S3101).
Specifically, for example, setting processing of a protocol register and a capability register is performed according to the current capability and state of the printer. Therefore, changes in status and capability within the printer also reflect the status and capability at this step in the presentation.
[0159]
Next, the printer waits to receive a printer map creation command from the host side (step S3102).
[0160]
When the printer receives a printer map creation command from the host side, it returns a response command to the command to the host side (step S3103).
[0161]
FIG. 27 is a flowchart of the login process on the host side.
[0162]
In order to start the login, after the printer map creation process (step S600) shown in FIG. 25, the
[0163]
If the
[0164]
If login is possible, the process proceeds to resource lock processing, and 1 is written in the lock register 501 of the printer using a lock transaction to set login on the host side (step 603). In this state, the printer is locked and output from other devices is not possible. It is also impossible to change the register.
[0165]
Next, the protocol is set with the printer resources locked as described above. Since the printer in this embodiment supports a plurality of print protocols, the host side protocol must be known before receiving print data. Here, a means is used in which the host side notifies the
[0166]
At this point, the protocol used for communication by the host is notified to the printer, and since the printer is locked, the currently logged-in host transmits print data using the normal protocol (step 605).
[0167]
When the transmission of the print data is completed, the host logs out of the printer by clearing the
[0168]
FIG. 28 is a flowchart on the printer side of the login process.
[0169]
After the printer map creation process (step S700) shown in FIG. 26, the printer side is in a state waiting for login from the normal host. Since the print request from the host is started by reading the
[0170]
When the printer is locked by writing to the
[0171]
When the protocol is notified, the printer switches the protocol accepted by the printer and performs communication in accordance with the host (steps 703 to 710).
[0172]
When the communication is completed, the printer confirms that the
[0173]
Next, a second embodiment will be described.
[0174]
In the first embodiment described above, as described with reference to FIGS. 25 and 26, when a plurality of printers are connected to the 1394 network, the host creates a printer map for the printers on the network. The target printer is selected based on the printer map. In the second embodiment, both the host and the printer support a plurality of protocols on the 1394 network, and a plurality of such printers are connected. If so, the host examines the available protocols for each printer and takes a majority vote to determine the most supported protocol.
[0175]
Since the second embodiment is the same as the first embodiment except for the processing shown in FIGS. 25 and 26, the detailed description thereof is omitted, and here the first embodiment is omitted. Only different points from this embodiment will be specifically described.
[0176]
FIG. 29 is a flowchart showing the host-side printer map creation process in this embodiment, and FIG. 30 is a flowchart showing the printer-side process during this process.
The process of FIG. 29 is a process performed in step S600 of the login process on the host side shown in FIG. 27, and the process of FIG. 30 is a process performed in step S700 of the login process on the printer side shown in FIG. is there.
[0177]
In this embodiment, as described above, both initiator (host) and target (printer) support multiple protocols on the 1394 network, and a plurality of such printers are connected to the same network. Of course, the initiator and target must use the same protocol, but to determine which protocol to use now, the initiator examines the available protocols for each printer, takes a majority vote, and most often Use a supported protocol.
[0178]
In this way, it is possible to reduce the type of protocol that is actually used by configuring so that a majority vote is taken in a situation where many protocols can be used. As a result, the load caused by the protocol switch of the initiator is reduced. Can do.
[0179]
Hereinafter, printer map creation processing (relative majority protocol determination printer map processing) on the initiator side (host side) and target side (printer side) will be described with reference to FIGS. 29 and 30. FIG.
[0180]
First, in order to create a printer map as shown in FIG. 22, the host side broadcasts the creation command (step S3201), and waits for a response command from the target printer (step S3202). .
[0181]
Upon receiving the response command from the target, the host side next reads the contents of the protocol register and capability register of the target that has returned the response command (step S3203). Thereby, the host side recognizes the capability and state of the target.
[0182]
Next, the host side creates a printer map for the printer on the current 1394 network based on the information obtained in step S3203 (step S3204).
[0183]
Next, the host side checks available protocols of the multi-protocol printer currently connected to the network from the printer map created in step S3204, and selects the most supported protocol from those protocols. (Step S3205).
[0184]
Then, the host side notifies each printer of the protocol selected in step S3205 as a protocol notification command (step S3206).
[0185]
On the other hand, the printer first presents the status and capability from when the power is turned on (step S3301).
Specifically, for example, setting processing of a protocol register and a capability register is performed according to the current capability and state of the printer. Therefore, changes in status and capability within the printer also reflect the status and capability at this step in the presentation.
[0186]
Next, the printer waits to receive a printer map creation command from the host side (step S3302).
[0187]
Next, when the printer receives a printer map creation command from the host side, the printer returns a response command to the command to the host side (step S3303).
[0188]
Next, the printer waits to receive a protocol notification command from the host side (step S3402).
[0189]
When the printer receives a protocol notification command from the host side, the printer returns a response command to the command to the host side (step S3503).
[0190]
Next, a third embodiment will be described.
[0191]
FIG. 31 is a diagram showing the operation in this embodiment. Compared with the first embodiment shown in FIG. 2, the protocol D that does not implement the LOGIN protocol is also supported. Is a feature.
In other words, not only for targets with the LOGIN protocol but also for devices that support only the existing protocol D (for example, AV / C protocol), the printer side supports it to guarantee the printing operation. The printer protocol to be added is added for a device that does not have the LOGIN protocol.
[0192]
To explain this operation, when the printer side recognizes that the target side does not support the LOGIN protocol by the conversation using the LOGIN protocol performed at the beginning of the connection, the printer side uses the other protocol D to talk to the target. Therefore, when a conversation is established, a print task according to the protocol D can be executed.
[0193]
FIG. 32 is a diagram showing a comparison with the OSI model in this embodiment. In this embodiment, a printer conforming to the current AV / C protocol in which the LOGIN protocol is not implemented is used as a model. Example 4 represents a case where a protocol that is not yet defined in the current protocol and that does not have the function of the LOGIN protocol created for the scanner is implemented.
In other words, if the printer can cope with a protocol that does not implement the LOGIN protocol, the types of target devices to be connected can be widened.
[0194]
In the above-described embodiment, the printer is mainly described as a device on the network. However, the present invention is not limited to this, and a monitor, a computer, a digital camera, or the like may be used, and the device is not limited to a specific model device.
[0195]
In the creation of the printer map executed in step S600 in FIG. 27, step S700 in FIG. 28, and step S3201 in FIG. 29, the topology connection state is investigated as shown in FIG. 9, for example, and a display map is created. By determining the topology connection state, it is possible to determine a protocol to be actually used in consideration of the topology connection state, not just the majority vote.
[0196]
Further, the present invention may be applied to a system composed of a plurality of devices as shown in FIG. 19, or may be applied to a data processing method in an apparatus composed of one device.
[0197]
Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the host and terminal of each of the above-described embodiments to a system or apparatus, and the computer (or CPU) of the system or apparatus. Needless to say, this can also be achieved by reading and executing the program code stored in the storage medium.
[0198]
In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention.
[0199]
As a storage medium for supplying the program code, for example, a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM, a CD-R, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used.
[0200]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also the OS running on the computer based on the instruction of the program code is actually It goes without saying that a case where the function of the embodiment is realized by performing part or all of the processing and the processing is included.
[0201]
Further, after the program code read from the storage medium is written to the memory provided in the extension function board inserted in the computer or the function extension unit connected to the computer, the function extension is performed based on the instruction of the program code. It goes without saying that the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.
[0202]
【The invention's effect】
As described above, according to the present invention, it is possible to provide a highly scalable data processing method, data processing apparatus, printer, and storage medium. In particular, since it can cope with a plurality of types of printer protocols, it has extremely high expandability.
Further, since the target printer can be selected by examining printers connected to the same network, an optimal printer output can be obtained. Furthermore, even under the circumstances where many protocols are available, it is possible to reduce the types of protocols that are actually used by determining the most supported protocol from the printer among those protocols. The load due to switching to the host-side protocol can be reduced.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of a communication system using an
FIG. 2 is a diagram showing a hierarchical structure of IEEE1394.
FIG. 3 is a diagram showing an
FIG. 4 is a cable cross-sectional view of IEEE1394.
FIG. 5 is a diagram for explaining a DS-Link encoding method.
FIG. 6 is a flowchart illustrating from bus reset to ID setting.
FIG. 7 is a flowchart illustrating a route determination method.
FIG. 8 is a flowchart illustrating a procedure from determination of a parent-child relationship to setting of all node IDs.
FIG. 9 is a diagram illustrating a parent-child relationship between nodes.
FIG. 10 is a diagram for explaining an arbitration process;
FIG. 11 is a flowchart showing an arbitration process;
FIG. 12 is a diagram for explaining subactions in Asynchronous transfer;
FIG. 13 is a diagram for explaining a packet structure in Asynchronous transfer.
FIG. 14 is a diagram for explaining subactions in isochronous transfer;
FIG. 15 is a diagram illustrating a packet structure in Isochronous transfer.
FIG. 16 is a diagram for explaining an example of a communication cycle of IEEE1394.
FIG. 17 is a diagram for explaining a system to which the present invention is applied in the first embodiment;
FIG. 18 is a diagram for explaining a basic operation of the LOGIN protocol.
FIG. 19 is a diagram for explaining a connection form of each device in a 1394 interface that implements the LOGIN protocol.
FIG. 20 is a diagram for explaining the flow of a login operation.
FIG. 21 is a view for explaining CSR of a 1394 serial bus provided in a printer for the LOGIN protocol.
FIG. 22 is a diagram for explaining a printer map in the 1394 network.
FIG. 23 is a diagram for explaining a node ID in the CRC architecture.
FIG. 24 is a diagram for explaining a printer map creation command;
FIG. 25 is a flowchart for explaining printer map creation processing on the host side;
FIG. 26 is a flowchart for explaining printer map creation processing on the printer side;
FIG. 27 is a flowchart for explaining host-side processing of login processing;
FIG. 28 is a flowchart for explaining processing on the printer side of login processing;
FIG. 29 is a flowchart for explaining host-side printer map creation processing according to the second embodiment;
FIG. 30 is a flowchart for explaining printer map creation processing on the printer side in the second embodiment;
FIG. 31 is a diagram for explaining a system operation in the third embodiment;
FIG. 32 is a diagram for explaining a comparison with the OSI model in the third embodiment.
[Explanation of symbols]
1 Physical layer of OSI model
2 Data link layer
3 upper layers
4 Upper layers
5 Transport protocol layer
6 Presentation layer
7 LOGIN protocol
8 Serial bus protocol (SBP-2)
9 Device protocol
Claims (28)
前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行し、
前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定し、
前記初期プロトコルに続いて、決定されたプロトコルを実行することを特徴とするデータ処理方法。A data processing method for switching protocols of a plurality of devices via a common serial bus,
A first investigation process for investigating an ID of the device in the same network using the common serial bus and a second investigation process for examining a protocol unique to the device by communication of an initial protocol performed with the device Run
Determining a protocol to be executed based on the ID obtained in the first investigation process and the protocol obtained in the second investigation process;
A data processing method comprising: executing the determined protocol following the initial protocol.
前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行する第1の実行手段と、
前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定手段と、
前記初期プロトコルに続いて、決定されたプロトコルを実行する第2の実行手段とを備えることを特徴とするデータ処理装置。A data processing apparatus for switching protocols of a plurality of devices via a common serial bus,
A first investigation process for investigating an ID of the device in the same network using the common serial bus and a second investigation process for examining a protocol unique to the device by communication of an initial protocol performed with the device First execution means for executing
Means for determining a protocol to be executed based on the ID obtained in the first investigation process and the protocol obtained in the second investigation process;
A data processing apparatus comprising: a second execution unit that executes the determined protocol following the initial protocol.
前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行する第1の実行手段と、
前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定手段と、
前記初期プロトコルに続いて、決定されたプロトコルを実行する第2の実行手段とを備えることを特徴とするプリンタ。A printer that switches a protocol of a plurality of devices corresponding to a host via a common serial bus,
A first investigation process for investigating an ID of the device in the same network using the common serial bus and a second investigation process for examining a protocol unique to the device by communication of an initial protocol performed with the device First execution means for executing
Means for determining a protocol to be executed based on the ID obtained in the first investigation process and the protocol obtained in the second investigation process;
A printer comprising: second execution means for executing the determined protocol following the initial protocol.
前記デバイスとの間で行われる初期プロトコルの通信により、前記共通シリアスバスによる同一ネットワークにおける前記デバイスのIDを調査する第1の調査処理と、前記デバイスに固有のプロトコルを調査する第2の調査処理を実行するステップと、
前記第1の調査処理で得られたID及び前記第2の調査処理で得られたプロトコルに基づいて実行すべきプロトコルを決定するステップと、
前記初期プロトコルに続いて、決定されたプロトコルを実行するステップとを有することを特徴とする記憶媒体。A computer-readable storage medium storing a computer program for causing a computer to execute a data processing step for executing a data processing method for switching a protocol of a plurality of devices via a common serial bus, the data The processing method is
A first investigation process for investigating an ID of the device in the same network using the common serial bus and a second investigation process for examining a protocol unique to the device by communication of an initial protocol performed with the device A step of performing
Determining a protocol to be executed based on the ID obtained in the first investigation process and the protocol obtained in the second investigation process;
And a step of executing the determined protocol following the initial protocol.
Priority Applications (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11280997A JP3774542B2 (en) | 1997-04-30 | 1997-04-30 | Data processing method, data processing apparatus, printer, and storage medium |
SG200105141A SG101460A1 (en) | 1997-02-14 | 1998-02-10 | Data communication apparatus and method |
TW087101785A TW384611B (en) | 1997-02-14 | 1998-02-10 | Data communication apparatus and method |
SG1998000294A SG74611A1 (en) | 1997-02-14 | 1998-02-10 | Data communication apparatus and method |
CA002229472A CA2229472C (en) | 1997-02-14 | 1998-02-11 | Data communication apparatus and method |
MX9801199A MX9801199A (en) | 1997-02-14 | 1998-02-12 | Data communication apparatus and method. |
KR1019980004329A KR100298140B1 (en) | 1997-02-14 | 1998-02-13 | Data communication apparatus and method |
CN98104444A CN1126343C (en) | 1997-02-14 | 1998-02-13 | Data communication equipment and method thereof |
AU53921/98A AU5392198A (en) | 1997-02-14 | 1998-02-13 | Data communication apparatus and method |
EP98301120A EP0859325A3 (en) | 1997-02-14 | 1998-02-16 | Data communication apparatus and method |
EP05076775A EP1612691A1 (en) | 1997-02-14 | 1998-02-16 | Data communication apparatus and method |
US09/025,128 US6425019B1 (en) | 1997-02-14 | 1998-02-17 | Data communication on a serial bus using an initial protocol which being executed in a transaction layer |
US10/041,647 US6874082B2 (en) | 1997-02-14 | 2002-01-10 | Data communication on a serial bus using a selected protocol based on an obtained device identifier |
US11/033,292 US7401213B2 (en) | 1997-02-14 | 2005-01-12 | Data communication apparatus and method of a device that supports plural communication methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11280997A JP3774542B2 (en) | 1997-04-30 | 1997-04-30 | Data processing method, data processing apparatus, printer, and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10304007A JPH10304007A (en) | 1998-11-13 |
JP3774542B2 true JP3774542B2 (en) | 2006-05-17 |
Family
ID=14596083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11280997A Expired - Fee Related JP3774542B2 (en) | 1997-02-14 | 1997-04-30 | Data processing method, data processing apparatus, printer, and storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3774542B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11265338A (en) * | 1998-03-13 | 1999-09-28 | Canon Inc | Information processor, connection state display device, information processing system, and storage medium |
JP5084359B2 (en) | 2007-06-13 | 2012-11-28 | キヤノン株式会社 | Printing apparatus and control method thereof |
JP6155664B2 (en) | 2013-01-30 | 2017-07-05 | セイコーエプソン株式会社 | Printer, control method, and control program |
-
1997
- 1997-04-30 JP JP11280997A patent/JP3774542B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10304007A (en) | 1998-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6425019B1 (en) | Data communication on a serial bus using an initial protocol which being executed in a transaction layer | |
JP3293779B2 (en) | Signal processing device and control method thereof | |
JP3630971B2 (en) | Data communication method, apparatus, system, and storage medium | |
JP4018187B2 (en) | Image forming apparatus, image forming system, and image forming method | |
JP4072215B2 (en) | Image processing apparatus, control method therefor, and image processing system | |
JP3682512B2 (en) | Image capturing apparatus and control method thereof, printing system, printing method, and printing apparatus and control method thereof | |
JP3774542B2 (en) | Data processing method, data processing apparatus, printer, and storage medium | |
JP3495879B2 (en) | Data processing method, data processing device, and computer-readable recording medium | |
JP3647328B2 (en) | Image processing apparatus, control method therefor, and image processing system | |
JP3495878B2 (en) | Data processing method, data processing device and printer | |
JP4058156B2 (en) | Data processing method, data processing apparatus, printer, and storage medium | |
JP2000196873A (en) | Information processor, information processing system, method for them, and storage medium | |
JP3897773B2 (en) | Communication method and communication apparatus | |
JPH10228364A (en) | Data transfer device, its controlling method and printing system | |
JP2003333045A (en) | Power management | |
JP4463953B2 (en) | Image processing system, digital camera and control method thereof | |
AU762552B2 (en) | Data communication apparatus and method | |
JP3869941B2 (en) | Printing system, printing apparatus, and printing method | |
JPH10307691A (en) | Method and device for data communication, printing device, and printing system including the same | |
JPH11177589A (en) | Data transfer device, data processing method therefor and computer readable storage medium stored with program | |
JP4653955B2 (en) | Electronic device and control method thereof | |
JPH11165454A (en) | Image processing device and image processing system | |
JPH11284649A (en) | Network system, and network management device and method | |
JP2005269660A (en) | Image capturing apparatus and its control method, printing system, printing method, printing apparatus and its control method | |
JPH11185030A (en) | Image processor and image processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040428 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060113 |
|
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: 20060207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060220 |
|
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: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140224 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |