JP2004223965A - 印刷装置 - Google Patents
印刷装置 Download PDFInfo
- Publication number
- JP2004223965A JP2004223965A JP2003016714A JP2003016714A JP2004223965A JP 2004223965 A JP2004223965 A JP 2004223965A JP 2003016714 A JP2003016714 A JP 2003016714A JP 2003016714 A JP2003016714 A JP 2003016714A JP 2004223965 A JP2004223965 A JP 2004223965A
- Authority
- JP
- Japan
- Prior art keywords
- node
- communication
- protocol
- bus
- unit
- 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.)
- Withdrawn
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】接続環境に応じて使用する通信プロトコルを自動的に或いは選択により、切り替える。
【解決手段】シリアルバスインターフェース2と、第1のプロトコルを用いてシリアルバスインターフェース2を介して通信を行う第1の通信部3と、第2のプロトコルを用いてシリアルバスインターフェース2を介して通信を行う第2の通信部5とを有し、シリアルバスを介して接続される1以上のホストコンピュータから印刷データを受信して印刷する際に、設定部7で第2のプロトコルを用いるか否かを判別し、その判別結果に応じて第1の通信部2又は第2の通信部5を使用可能に設定する。
【選択図】 図1
【解決手段】シリアルバスインターフェース2と、第1のプロトコルを用いてシリアルバスインターフェース2を介して通信を行う第1の通信部3と、第2のプロトコルを用いてシリアルバスインターフェース2を介して通信を行う第2の通信部5とを有し、シリアルバスを介して接続される1以上のホストコンピュータから印刷データを受信して印刷する際に、設定部7で第2のプロトコルを用いるか否かを判別し、その判別結果に応じて第1の通信部2又は第2の通信部5を使用可能に設定する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、IEEE1394インターフェースを備え、ホストコンピュータから印刷データを受信して印刷することに関し、通信プロトコルとして、SBP−2プロトコル、IPv4 over IEEE 1394プロトコルを用いる技術に関する。
【0002】
【従来の技術】
IEEE1394インターフェースを備え、ホストコンピュータから印刷データを受信して印刷する印刷装置においては、通信プロトコルとして主にSBP−2プロトコルが用いている。このSBP−2プロトコルは、SCSIコマンドをIEEE1394シリアルバス上で転送するためのプロトコルであり、SBP−2プロトコルの詳細はISO/IEC 14776−232:2001に規定されている。また、IEEE1394インターフェースにおいてはIPv4 over IEEE 1394プロトコルを用い、TCP/IPプロトコルによる通信が可能になっている。IPv4 over IEEE 1394はIPv4データをIEEE1394シリアルバス上で転送するためのプロトコルであり、IPv4 over IEEE 1394の詳細はRFC 2732に規定されている。このTCP/IPプロトコルによる通信によりネットワークプリンタを構成することができる。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来例においては、以下のような問題がある。
【0004】
まず、上述のSBP−2プロトコルを用いる印刷装置においては、SBP−2プロトコルが1対1の接続を基本とするため、バス上に複数のホストが存在している場合、ひとつのホストがコネクションを確立している間、他のホストはコネクションを確立することができないという問題があった。また、複数ホストからのログインを認めるとしても、SBP−2プロトコル上で印刷装置のジョブ管理などを行うことは一般的ではないため、これを実現するためには、ホスト装置、印刷装置双方に印刷ジョブ管理の仕組みを新たに作る必要があった。
【0005】
一方、TCP/IPはネットワークプロトコルとして一般的なもので、LPD、IPPなどプリントサーバアプリケーションがすでに存在し、ホストにおいてはこれらとの通信手段を備えたものが多い。IEEE1394インターフェースを備えた印刷装置では、IPv4 over IEEE 1394プロトコルを用いてTCP/IPプロトコルを使用することができるが、プロトコルスタックの処理の負荷が大きく、また、ジョブ管理を行うためにはプリントサーバアプリケーションも動作させる必要があった。
【0006】
即ち、ホストの数が比較的少なく、印刷装置に対して1対1の接続が主な場合には、SBP−2プロトコルを用いると効率が良く、ホストの数が比較的多く、複数ホストで印刷装置を共用し、ジョブ管理が必要な場合にはIPv4 over IEEE 1394プロトコルを用いて、プリントサーバとして動作したほうが使い勝手は良い、と言える。
【0007】
本発明は、接続環境に応じて使用する通信プロトコルを自動的に或いは選択により、切り替えることを目的とする。
【0008】
また、上述のTCP/IPプロトコルを使用するためには、IPアドレスやサブネットの設定といった、いわゆる「プリブート設定」が必要である。DHCP、BOOTPなどのブートサーバにより自動設定する場合もあるが、そうでない場合には、ホストからPINGコマンドを使って設定するなどの方法がとられる。しかしながら、これらの操作は煩雑であり、特にネットワークの専門的な知識を持たないユーザには非常に難しいものである。そのため、ネットワークインターフェースとは別に、RS−232Cといったインターフェースを介して接続し、プリブート設定を行うものがあるが、別のインターフェースを備えることは印刷装置を複雑にし、更に製造コストをあげることになる。
【0009】
また、本発明は、ネットワークインターフェースに必要なプリブート設定を、別のインターフェースを付加することなく、或いはブートサーバによる自動設定が行えない場合にも、簡単な操作で、設定可能にすることを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、シリアルバスインターフェースと、第1のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第1の通信手段と、第2のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第2の通信手段とを有し、シリアルバスを介して接続される1以上のホストコンピュータから印刷データを受信して印刷する印刷装置であって、第2のプロトコルを用いるか否かを判別する判別手段と、前記判別手段での判別結果に応じて、前記第1の通信手段又は第2の通信手段を使用可能に設定する設定手段とを有する。
【0011】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【0012】
図1は、本実施形態における印刷装置の構成を示すブロック図である。図1において、1は本実施形態における印刷装置、2はIEEE1394シリアルバスインターフェース部(以下「1394インターフェース部)、3は1394インターフェース部2を介して第1のプロトコルSBP−2により通信を行う第1通信部、4は第1通信部2を介してホストコンピュータと通信を行い、ホストコンピュータから印刷データを受信する第1アプリケーション部、5は1394インターフェース部2を介して第2のプロトコルIPv4 over IEEE 1394により通信を行う第2通信部、6は第2通信部を介してホストコンピュータと通信を行い、ホストコンピュータから印刷データを受信する第2アプリケーション部、7は第2のプロトコルIPv4 over IEEE 1394を用いるか否かを判別し、第1通信部3又は第2通信部5を使用可能に設定する設定部、8は第1アプリケーション部4或いは第2アプリケーション部6から印刷データを受け取り、印刷制御を行う印刷制御部、9は印刷制御部8の制御に従って印刷を行う印刷機構部である。
【0013】
[IEEE1394の技術の概要]
以下、本実施形態でのデジタルインターフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)の詳細については、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for aHigh Performance Serial Bus」に記述されている。
(1)概要
図2にIEEE1394規格に準拠したデジタルインターフェース(以下、1394インターフェース)を具備するノードにより構成される通信システム(以下、1394ネットワーク)の一例を示す。この1394ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【0014】
図2において、A〜Fはノードであり、IEEE1394規格に準拠した通信ケーブルを介して接続されている。各ノードA〜Hは、例えばパーソナルコンピュータ(PC:Personal Computer)、デジタルVTR(Video Tape Recorder)、DVD(Digital Video Disc)プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
【0015】
1394ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。また、1394ネットワークでは、例えば既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をON/OFFしたりした場合、自動的にバスリセットを行う。このバスリセットを行うことにより、1394ネットワークは、新たな接続構成の認識と各機器に対するID情報の割り当てとを自動的に行うことができる。この機能によって、1394ネットワークは、ネットワークの接続構成を常時認識することができる。
【0016】
また、1394ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【0017】
また、1394ネットワークは、「Plug&Play」と呼ばれる機能を有している。この機能により、全ての機器の電源をオフにすることなく、接続するだけで自動的に接続機器を認識することができる。
【0018】
また、1394ネットワークは、100/200/400Mbpsのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【0019】
更に、1394ネットワークは、2つの異なるデータ転送方式(即ち、Asynchronous転送モードとIsochronous転送モード)に対応している。Asynchronous転送モードは、必要に応じて非同期に転送することが要求されるデータ(即ち、コントロール信号やファイルデータ等)を転送する際に有効である。また、Isochronous転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ(即ち、ビデオデータやオーディオデータ等)を転送する際に有効である。
【0020】
ここで、Asynchronous転送モードとIsochronous転送モードとは、各通信サイクル(通常1サイクルは、125μS)内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクルスタートパケット(以下、CSP)の転送後に実行される。
【0021】
尚、各通信サイクル期間において、Isochronous転送モードは、Asynchronous転送モードよりも優先順位が高く設定されている。またIsochronous転送モードの転送帯域は、各通信サイクル内で保証されている。
(2)アーキテクチャ
次に、図3を用いて1394インターフェースの構成要素について説明する。
【0022】
1394インターフェースは、機能的に複数のレイヤ(階層)から構成されている。図3に示すように、1394インターフェースは、IEEE1394規格に準拠した通信ケーブル301を介して他のノードの1394インターフェースと接続される。また、1394インターフェースは1つ以上の通信ポート302を有し、通信ポート302はハードウェア部に含まれるフィジカルレイヤ303と接続される。
【0023】
また、ハードウェア部は、フィジカルレイヤ303とリンクレイヤ304とから構成されている。フィジカルレイヤ303は、他のノードとの物理的、電気的なインターフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化/復号化、バス使用権の調停等を行う。また、リンクレイヤ304は通信パケットの生成と送受信、サイクルタイマの制御等を行う。
【0024】
また、ファームウェア部は、トランザクションレイヤ305とシリアルバスマネージメント306とを含んでいる。トランザクションレイヤ305は、Asynchronous転送モードを管理し、各種のトランザクション(リード、ライト、ロック)を提供する。シリアルバスマネージメント306は、後述するCSRアーキテクチャに基づいて自ノードの制御、自ノードの接続状態の管理、自ノードのID情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【0025】
以上、ハードウェア部とファームウェア部とが実質的に1394インターフェースを構成するものであり、それらの基本構成は、IEEE1394規格により規定されている。
【0026】
また、ソフトウェア部に含まれるアプリケーションレイヤ307は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルVTRの動画像データの場合はAV/Cプロトコルなどの通信プロトコルによって規定されている。
(2−1)リンクレイヤ304
図4は、リンクレイヤ304の提供可能なサービスを示す図である。図4において、リンクレイヤ304は、以下の4つのサービスを提供する。即ち、
(A)応答ノードに対して所定のパケットの転送を要求するリンク要求(LK_DATA.request)、
(B)応答ノードに所定のパケットの受信を通知するリンク通知(LK_DATA.indication)、
(C)応答ノードからのアクノリッジを受信したことを示すリンク応答(LK_DATA.response)、
(D)要求ノードからのアクノリッジを確認するリンク確認(LK_DATA.confirmation)である。
【0027】
尚、リンク応答(LK_DATA.response)は、ブロードキャスト通信、Isochronousパケットの転送の場合には存在しない。
【0028】
また、リンクレイヤ304は、上述のサービスに基づいて上述の2種類の転送方式、即ち、Asynchronous転送モード、Isochronous転送モードを実現する。
(2−2)トランザクションレイヤ305
図5は、トランザクションレイヤ305の提供可能なサービスを示す図である。図5において、トランザクションレイヤ305は、以下の4つのサービスを提供する。即ち、
(A)応答ノードに対して所定のトランザクションを要求するトランザクション要求(TR_DATA.request)、
(B)応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知(TR_DATA.indication)、
(C)応答ノードからの状態情報(ライト、ロックの場合は、データを含む)を受信したことを示すトランザクション応答(TR_DATA.response)、
(D)要求ノードからの状態情報を確認するトランザクション確認(TR_DATA.confirmation)である。
【0029】
また、トランザクションレイヤ305は、上述のサービスに基づいてAsynchronous転送を管理し、次の3種類のトランザクション、即ち、(a)リードトランザクション、(b)ライトトランザクション、(c)ロックトランザクションを実現する。
【0030】
ここで、リードトランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。また、ライトトランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。そして、ロックトランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
(2−3)シリアルバスマネージメント306
シリアルバスマネージメント306は、具体的に、次の3つの機能を提供することができる。3つの機能は、即ち、(a)ノード制御、(b)アイソクロナスリソースマネージャ(以下、IRM)、(c)バスマネージャである。
【0031】
ここで、ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるAsynchronous転送を管理する機能を提供する。また、IRMは、他のノードとの間で実行されるIsochronous転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。IRMは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者(IRMの機能を有するノード)の中から動的に選出される。また、IRMは、後述のバスマネージャの提供可能な機能(接続構成の管理、電源管理、速度情報の管理等)の一部を提供しても良い。
【0032】
バスマネージャは、IRMの機能を有し、IRMよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理)、より高度な速度情報の管理(各ノード間の最大転送速度の管理)、より高度な接続構成の管理(トポロジーマップの作成)、これらの管理情報に基づくバスの最適化等を行い、更にこれらの情報を他のノードに提供する機能を有する。また、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求(SB_CONTROL.request)、シリアルバスイベント制御確認(SB_CONTROL.confirmation)、シリアルバスイベント通知(SB_CONTROL.indication)等がある。
【0033】
SB_CONTROL.requestは、アプリケーションがバスリセットを要求するサービスである。SB_CONTROL.confirmationは、SB_CONTROL.requestをアプリケーションに対して確認するサービスである。SB_CONTROL.indicationは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
(3)アドレス指定
図6は、1394インターフェースにおけるアドレス空間を説明する図である。尚、1394インターフェースは、ISO/IEC 13213:1994に準じたCSR(Command and Status Register)アーキテクチャに従い、64ビット幅のアドレス空間を規定している。
【0034】
図6に示すように、最初の10ビットのフィールド601は、所定のバスを指定するID番号に使用され、次の6ビットのフィールド602は、所定の機器(ノード)を指定するID番号に使用される。この上位16ビットを「ノードID」と呼び、各ノードはこのノードIDにより他のノードを識別する。各ノードは、このノードIDを用いて相手を識別した通信を行うことができる。
【0035】
残りの48ビットからなるフィールドは、各ノードの具備するアドレス空間(256Mバイト構造)を指定する。その内の20ビットのフィールド603は、アドレス空間を構成する複数の領域を指定する。
【0036】
フィールド603において、「0〜0xFFFFD」の部分は、メモリ空間と呼ばれる。「0xFFFFE」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。また、「0xFFFFE」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【0037】
最後の28ビットのフィールド604は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。例えば、レジスタ空間において、最初の512バイトは、CSRアーキテクチャーのコア(CSRコア)レジスタ用に使用される。このCSRコアレジスタに格納される情報のアドレス及び機能を図7に示す。図7に示すオフセットは、「0xFFFFF0000000」からの相対位置である。
【0038】
図6に示すフィールド604における次の512バイトは、シリアルバス用のレジスタとして使用される。シリアルバスレジスタに格納される情報のアドレス及び機能を図8に示す。図8に示すオフセットは、「0xFFFFF0000200」からの相対位置である。
【0039】
図6に示すフィールド604における次の1024バイトは、Configuration ROM用に使用される。Configuration ROMには最小形式と一般形式とがあり、「0xFFFFF0000400」から配置される。最小形式のConfiguration ROMを図9に示す。図9において、ベンダIDは、IEEEにより各ベンダに対して固有に割り当てられた24ビットの数値である。
【0040】
また、一般形式のConfiguration ROMを図10に示す。図10において、上述のベンダIDは、Root Directory1002に格納されている。そして、Bus InfoBlock1001とRoot Leaf1005とには各ノードを識別する固有のID情報としてノードユニークIDを保持することが可能である。
【0041】
ここで、ノードユニークIDは、メーカ、機種に関わらず、1つのノードを特定することのできる固有のIDを定めるようになっている。ノードユニークIDは64ビットにより構成され、上位24ビットは上述のベンダIDを示し、下位48ビットは各ノードを製造するメーカにおいて自由に設定可能な情報(例えば、ノードの製造番号等)を示す。尚、このノードユニークIDは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【0042】
また、図10において、Root Directory1002には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、Root Directory1002からオフセットされるサブディレクトリ(Unit Directories1004)に格納される。Unit Directories1004には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【0043】
また、図10において、Node Dependent Info Directory1003には、デバイス固有の情報を保持することが可能である。Node Dependent Info Directory1003は、Root Directory1002によりオフセットされる。
【0044】
更に、図10において、Vendor Dependent Information1006には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【0045】
図6に示すフィールド604における残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報(会社名、機種名等)や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図11に示す。図11に示すオフセットは、「0xFFFFF0000800」からの相対位置である。
【0046】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の2048バイトのみを使うべきである。つまり、CSRコアレジスタ、シリアルバスレジスタ、Configuration ROM、ユニット空間の最初の2048バイトの合わせて4096バイトで構成することが望ましい。
(4)通信ケーブルの構成
図12にIEEE1394規格に準拠した通信ケーブルの断面図を示す。通信ケーブルは、2組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることにより、1394インターフェースは、主電源のOFFとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
【0047】
2組のツイストペア信号線には、DS−Link(Data/Strobe Link)符号化方式にて符号化された情報信号が伝送される。図13は、DS−Link符号化方式を説明する図である。
【0048】
このDS−Link符号化方式は、高速なシリアルデータ通信に適しており、その構成は、2組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、2組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによりクロックを再現することができる。
【0049】
尚、このDS−Link符号化方式を用いることにより、1394インターフェースには、例えば次のような利点がある。(a)他の符号化方式に比べて転送効率が高い。(b)PLL回路が不要となり、コントローラLSIの回路規模を小さくできる。(c)アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減が図れる。
(5)バスリセット
各ノードの1394インターフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、1394ネットワークは、以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成における変化は、各ノードの具備する通信ポートにかかるバイアス電圧の変化により検知することができる。
【0050】
ネットワークの接続構成の変化(例えば、ノードの挿抜、ノードの電源のON/OFFなどによるノード数の増減)を検出したノード、又は新たな接続構成を認識する必要のあるノードは、1394インターフェースを介してバス上にバスリセット信号を送信する。
【0051】
バスリセット信号を受信したノードの1394インターフェースは、バスリセットの発生を自身のリンクレイヤ304に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードIDをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードはバスリセットに伴う初期化処理(即ち、新たな接続構成の認識と新たなノードIDの割り当て)を自動的に行う。
【0052】
尚、バスリセットは先に述べたような接続構成の変化による起動の他に、ホスト側の制御により、アプリケーションレイヤ307がフィジカルレイヤ303に対して直接命令を出すことによって起動させることも可能である。
【0053】
また、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
(6)バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの1394インターフェースは、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行する。以下、バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを図14〜図16を用いて説明する。
【0054】
図14は、図2の1394ネットワークにおけるバスリセット起動後の状態を説明する図である。図14において、ノードAは1つの通信ポート、ノードBは2つの通信ポート、ノードCは2つの通信ポート、ノードDは3つの通信ポート、ノードEは1つの通信ポート、ノードFは1つの通信ポートを具備している。尚、各ノードの通信ポートには、各ポートを識別するためのポート番号が付加されている。
【0055】
ここで、図14におけるバスリセットの開始からノードIDの割り当てまでを図15に示すフローチャートを用いて説明する。まず、ステップS1501で、1394ネットワークを構成する各ノードA〜Fは、バスリセットが発生したか否かを常時監視している。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【0056】
バスリセットの発生後、ステップS1502において、各ノードは夫々の具備する通信ポート間において親子関係の宣言を行う。そして、各ノードは、全てのノード間の親子関係が決定されるまで、ステップS1502の処理を繰り返し、ステップS1503において、全てのノード間の親子関係が決定するとステップS1504へ進み、1394ネットワークはネットワークの調停を行うノード、即ちルートを決定する。
【0057】
ルートを決定した後、ステップS1505において、各ノードの1394インターフェース夫々は、自己のノードIDを自動的に設定する作業を実行する。全てのノードに対してノードIDの設定がなされるまで、各ノードは所定の手順に基づいてステップS1505の処理を実行する。
【0058】
ステップS1506で最終的に全てのノードに対してノードIDが設定されるとステップS1507へ進み、各ノードはIsochronous転送或いはAsynchronous転送を実行する。ステップS1507の処理を実行すると共に、各ノードの1394インターフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップS1501以降の処理を再び実行する。
【0059】
以上の手順により、各ノードの1394インターフェースは、バスリセットが起動する毎に新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行することができる。
(7)親子関係の決定
次に、図16を用いて、図15に示したステップS1502での処理(即ち、各ノード間の親子関係を認識する処理)について詳細に説明する。
【0060】
バスリセットの発生後、ステップS1601において、1394ネットワーク上の各ノードA〜Fは、自分の具備する通信ポートの接続状態(接続又は未接続)を確認する。通信ポートの接続状態を確認した後、ステップS1602において、各ノードは、他のノードと接続されている通信ポート(以下、接続ポート)の数をカウントする。
【0061】
ステップS1602での結果、接続ポートの数が1つである場合はステップS1603へ進み、そのノードは、自分が「リーフ」であると認識する。ここで、リーフとは、1つのノードとのみ接続されているノードのことである。そして、ステップS1604において、リーフとなるノードは、その接続ポートに接続されているノードに対して「自分は子(Child)」であることを宣言する。このとき、リーフは、その接続ポートが「親ポート(親ノードと接続された通信ポート)」であると認識する。
【0062】
ここで、親子関係の宣言は、まずネットワークの末端であるリーフとブランチとの間にて行われ、次にブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行なえる通信ポートから順に決定される。また、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート(子ノードと接続された通信ポート)」であると認識される。
【0063】
例えば、図14において、ノードA、E、Fは自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードA−B間では子−親、ノードE−D間では子−親、ノードF−D間では子−親と決定される。
【0064】
また、ステップS1602での結果、接続ポートの数が2つ以上の場合はステップS1605へ進み、そのノードは、自分を「ブランチ」であると認識する。ここで、ブランチとは、2つ以上のノードと接続されているノードのことである。次に、ステップS1606において、ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける。この宣言を受け付けた接続ポートは、「子ポート」として認識される。
【0065】
1つの接続ポートを「子ポート」と認識した後、ステップS1607において、ブランチとして、まだ親子関係の決定されていない接続ポート(即ち、未定義ポート)が2つ以上あるか否かを検出する。その結果、未定義ポートが2つ以上ある場合、再びステップS1606に戻り、上述した親子関係の宣言を行う。
【0066】
また、未定義ポートが2つ以上ない場合はステップS1608へ進み、未定義ポートが1つだけ存在するか否かを検出する。その結果、未定義ポートが1つの場合はステップS1609へ進み、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する。
【0067】
ここで、ブランチは、残りの未定義ポートが1つになるまで、自分自身が子であると他のノードに対して宣言することができない。例えば、図14において、ノードB、C、Dは、自分がブランチであると認識すると共にリーフ或いは他のブランチからの宣言を受け付ける。ノードDは、D−E間、D−F間の親子関係が決定した後、ノードCに対して親子関係の宣言を行っている。また、ノードDからの宣言を受けたノードCは、ノードBに対して親子関係の宣言を行っている。
【0068】
また、ステップS1608において、未定義ポートが存在しない場合(つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合)はステップS1610へ進み、そのブランチは、自分自身がルートであることを認識する。
【0069】
例えば、図14において、接続ポートの全てが親ポートとなったノードBは、1394ネットワーク上の通信を調停するルートとして他のノードに認識される。尚、ノードBがルートと決定されたが、ノードBの親子関係を宣言するタイミングがノードCの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても、同じノードがルートになるとは限らない。
【0070】
このように全ての接続ポートの親子関係が宣言されることにより、ステップS1611において、各ノードは1394ネットワークの接続構成を階層構造(ツリー構造)として認識することができる。尚、上述の親ノードは、階層構造における上位であり、子ノードは階層構造における下位となる。
(8)ノードIDの割り当て
次に、図17を用いて、図15に示したステップS1505での処理(即ち、自動的に各ノードのノードIDを割り当てる処理)について詳細に説明する。
【0071】
ここで、ノードIDはバス番号とノード番号とから構成されるが、本実施形態では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【0072】
まずステップS1701において、ルートは、ノードIDが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードIDの設定許可を与える。尚、図17において、ルートは最小番号の子ポートに接続されている全ノードのノードIDを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行う。最終的に子ポートに接続された全てのノードのID設定が終了した後、ルート自身のノードIDを設定する。また、ノードIDに含まれるノード番号は、基本的にリーフ、ブランチの順に0、1、2…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【0073】
次に、ステップS1702において、ステップS1701で設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定となるノードを含む子ポートがあるか否かを判断する。その結果、未設定ノードを含む子ポートが検出された場合はステップS1703へ進み、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する。
【0074】
ステップS1703の処理後、ステップS1704において、上述の設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定であるノードを含む子ポートがあるか否かを判断する。ここで、ステップS1704の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップS1703に戻り、上述の処理を実行する。
【0075】
また、ステップS1702、或いはS1704において、未設定ノードを含む子ポートが検出されなかった場合はステップS1705へ進み、設定許可を得たノードは、自分自身のノードIDを設定する。そして、ステップS1706において、自分のノードIDを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフIDパケットをブロードキャストする。尚、ブロードキャストとは、あるノードの通信パケットを、1394ネットワークを構成する不特定多数のノードに対して転送することである。
【0076】
ここで、各ノードは、このセルフIDパケットを受信することにより各ノードに割り当てられたノート番号を認識することができ、また自分に割り当てられるノード番号を知ることができる。例えば、図14において、ルートであるノードBは最小ポート番号「#1」の通信ポートに接続されたノードAに対してノードID設定の許可を与える。ノードAは、自己のノード番号として「No.0」を割り当て、自分自身に対してバス番号とノード番号とからなるノードIDを設定する。また、ノードAは、そのノード番号を含むセルフIDパケットをブロードキャストする。
【0077】
図18にセルフIDパケットの構成例を示す。図18において、1801はセルフIDパケットを送出したノードのノード番号を格納するフィールド、1802は対応可能な転送速度に関する情報を格納するフィールド、1803はバス管理機能(バスマネージャの能力の有無等)の有無を示すフィールド、1804は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【0078】
また、1805はポート番号「#0」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1806はポート番号「#1」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1807はポート番号「#2」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールドである。
【0079】
尚、セルフIDパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド1803に示すコンテンダビットを「1」とし、なり得る能力がなければ、コンテンダビットを「0」とする。また、バスマネージャとは、上述のセルフIDパケットに含まれる各種情報に基づいてバスの電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する)、速度情報の管理(各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する)、トポロジーマップ情報の管理(通信ポートの親子関係情報からネットワークの接続構成を管理する)、トポロジーマップ情報に基づくバスの最適化等を行い、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは1394ネットワーク全体のバス管理を行うことができる。
【0080】
図17に戻り、ステップS1706の処理後、ステップS1707において、ノードIDの設定を行ったノードは、親ノードがあるか否かを判断する。ここで、親ノードがある場合はステップS1702に戻り、その親ノードが上述の処理を実行する。そして、まだノードIDの設定されていないノードに対して許可を与える。
【0081】
また、親ノードが存在しない場合はステップS1708へ進み、そのノードは、ルート自身であると判断し、ステップS1708において、ルートは、全ての子ポートに接続されたノードに対してノードIDが設定されたか否かを判別する。ここで、全てのノードに対するID設定処理が終了しなかった場合はステップS1701に戻り、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してID設定の許可を与える。その後、上述のステップS1702以降の処理を実行する。
【0082】
また、全てのノードに対するID設定処理が終了した場合はステップS1709へ進み、ルートは自分自身のノードIDの設定を実行する。そして、ステップS1710において、ノードIDを設定した後、ルートは、セルフIDパケットをブロードキャストする。
【0083】
以上の処理により、1394ネットワークは各ノードに対して自動的にノードIDを割り当てることができる。
【0084】
ここで、ノードIDの設定処理の後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【0085】
しかしながら、ルートにバスマネージャになり得る機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。また、どのノードがバスマネージャになったかについては各ノードがブロードキャストするセルフIDパケット内のコンテンダビット1803をチェックすることにより把握することができる。
(9)アービトレーション
図19は、1394ネットワークにおけるアービトレーションを説明するための図である。1394ネットワークでは、データ転送に先立ち、必ずバス使用権のアービトレーション(調停)を行う。尚、1394ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することにより、ネットワーク内の全てのノードに同じ通信パケットを転送することができる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これにより、ある時間において一つのノードのみが転送を行うことができる。
【0086】
図19に示す(a)は、ノードBとノードFとが、バス使用権の要求を発している場合を説明する図である。アービトレーションが始まるとノードB、Fは、夫々親ノードに向かって、バス使用権の要求を発する。ノードBの要求を受けた親ノード(即ち、ノードC)は、自分の親ノード(即ち、ノードD)に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行うルート(ノードD)に届けられる。
【0087】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行えるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【0088】
図19に示す(b)は、ノードFの要求が許可され、ノードBの要求が拒否されたことを示す図である。アービトレーションに負けたノードに対してルートは、DP(Data prefix)パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【0089】
以上のようにアービトレーションを制御することにより、1394ネットワークは、バスの使用権を管理することができる。
(10)通信サイクル
Isochronous転送モードとAsynchronous転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、125μSである。
【0090】
図20は、1通信サイクルにおいて、Isochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【0091】
Isochronous転送モードは、Asynchronous転送モードより優先して実行される。その理由は、サイクルスタートパケットの後、Asynchronous転送を起動するために必要なアイドル期間(subaction gap)が、Isochronous転送を起動するために必要なアイドル期間(Isochronous gap)よりも長くなるように設定されているためである。これにより、Isochronous転送は、Asynchronous転送に優先して実行される。
【0092】
図20において、各通信サイクルのスタート時には、サイクルスタートパケット(以下、CSP)が所定のノードから転送される。各ノードは、このCSPを用いて時刻調整を行うことにより、他のノードと同じ時間を計時することができる。
(11)Isochronous転送モード
Isochronous転送モードは、同期型の転送方式である。Isochronousモード転送は、通信サイクルの開始後、所定の期間において実行可能である。また、Isochronous転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【0093】
Isochronous転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。Isochronous転送モードは、Asynchronous転送モードのように1対1の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、Isochronous転送には、ack(受信確認用返信コード)は存在しない。
【0094】
図20において、チャネルe(ch e)、チャネルs(ch s)、チャネルk(chk)は、各ノードがIsochronous転送を行う期間を示す。1394インターフェースでは、複数の異なるIsochronous転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのIsochronous転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【0095】
また、図20に示すIsochronous gapとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、Isochronous転送を希望するノードはバスが使用できると判断し、アービトレーションを実行する。
【0096】
次に、図21にIsochronous転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、Isochronous転送モードに基づいて転送される通信パケットを、Isochronousパケットと称する。
【0097】
図21において、Isochronousパケットは、ヘッダ部2101、ヘッダCRC2102、データ部2103、データCRC2104から構成される。ここで、ヘッダ部2101には、データ部2103のデータ長を格納するフィールド2105、Isochronousパケットのフォーマット情報を格納するフィールド2106、Isochronousパケットのチャネル番号を格納するフィールド2107、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)を格納するフィールド2108、同期化コードを格納するフィールド2109がある。
(12)Asynchronous転送モード
Asynchronous転送モードは、非同期型の転送方式である。Asynchronous転送は、Isochronous転送期間の終了後、次の通信サイクルが開始されるまでの間(即ち、次の通信サイクルのCSPが転送されるまでの間)、実行可能である。
【0098】
図20において、最初のサブアクションギャップ(subaction gap)は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、Asynchronous転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0099】
このアービトレーションにより、バスの使用権を得たノードは、図22に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ack(受信確認用返送コード)或いは応答パケットをack gap後に返送する。
【0100】
図22は、Asynchronous転送モードに基づく通信パケットのフォーマットを示す図である。以下、Asynchronous転送モードに基づいて転送される通信パケットをAsynchronousパケットと称する。
【0101】
図22において、Asynchronousパケットは、ヘッダ部2201、ヘッダCRC2202、データ部2203、データCRC2204から構成される。ここで、ヘッダ部2201において、フィールド2205には宛先となるノードのノードID、フィールド2206にはソースとなるノードのノードID、フィールド2207には一連のトランザクションを示すためのラベル、フィールド2208には再送ステータスを示すコード、フィールド2209にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)、フィールド2210には優先順位、フィールド2211には宛先のメモリアドレス、フィールド2212にはデータ部のデータ長、フィールド2213には拡張されたトランザクションコードが格納される。
【0102】
また、Asynchronous転送は、自己ノードから相手ノードへの1対1の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【0103】
尚、Asynchronous転送中に次のCSPを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のCSPを送信する。これにより、1つの通信サイクルが125μS以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることにより、1394ネットワークは、ほぼ一定の通信サイクルを保持することができる。
(13)デバイスマップ
デバイスマップを作成するためにアプリケーションが1394ネットワークのトポロジーを知る手段として、IEEE1394規格上は以下の手段がある。
1.バスマネージャのトポロジーマップレジスタをリードする
2.バスリセット時にセルフIDパケットから推定する
しかし、上記1、2の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることはできない(実装されていないポートまで見えてしまう、といった問題もある)。
【0104】
また、デバイスマップを作成するための情報を、コンフィギュレーションROM以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【0105】
ところで、コンフィギュレーションROM自体やコンフィギュレーションROMを読む機能は、IEEE1394規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションROMに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションが、いわゆるデバイスマップ表示機能を実装することができる。
【0106】
コンフィグレーションROMにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。この場合、アプリケーションが物理的な位置関係による1394ネットワークトポロジーを知る手段としては、バスリセット時やユーザからの要求時に、各ノードのコンフィギュレーションROMを読み取ることにより、1394ネットワークのトポロジーを知るという方法が可能となる。
【0107】
更に、コンフィギュレーションROM内にノードの物理的な位置のみならず、機能などの各種ノード情報も記述することにより、コンフィギュレーションROMを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションROM情報を取得する際には、指定ノードの任意のコンフィギュレーションROM情報を取得するAPIを用いる。
【0108】
このような手段を用いることにより、IEEE1394ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど用途に応じて様々なデバイスマップを作成することができ、ユーザが必要な機能をもつデバイスを選択する、といったことも可能となる。
【0109】
以上の説明が、1394インターフェースを用いて構成される通信システムの構成及び機能に関する説明である。
【0110】
[第1の実施形態]
ここで、図1に戻り、1394インターフェース部2は、図3に示した1394インターフェースのうち、アプリケーションレイヤ307を除く部分であり、第1通信部3及び第2通信部5は図3のアプリケーションレイヤ307に相当する。第1通信部3は、SBP−2プロトコルの制御を行い、1394インターフェース部2を介してホストから受信したSCSIコマンドを第1アプリケーション部4に引き渡し、また第1アプリケーション部4からの応答を1394インターフェース部2を介してホストに返す。第2通信部5はIPv4 over IEEE 1394の制御及びTCP/IPプロトコル制御を行い、第2アプリケーション部6とデータのやり取りを行う。第1アプリケーション部4は、受信したSCSIコマンドを処理し、例えばプリンタデバイスのコマンドPrint(オペレーションコード0x0A)を受信した場合は、印刷データを印刷制御部8に引き渡し、印刷を行う。第2アプリケーション部6は、プリントサーバアプリケーション、本実施形態においてはLPDの処理を行い、印刷データを受信すると印刷制御部8に引き渡し、印刷を行う。LPDプロトコルはRFC 1179に規定されている。
【0111】
図23は、第1の実施形態におけるネットワークの構成の一例を示す図である。本構成例では、ノードAはプリンタ、ノードB、ノードC、ノードDはPC、ノードEはプリンタ、ノードFはスキャナであり、ノードAが本発明を適用した印刷装置であるとする。また、PCのOSは、Windows(登録商標) 2000或いはWindows(登録商標) XPとし、Windows(登録商標) 2000は、IPv4 over IEEE 1394をサポートしておらず、Windows(登録商標) XPはIPv4 over IEEE 1394をサポートしており、LPDのクライアントであるLPRもサポートしているものとする。また、両OSとも、SBP−2をイニシエータとしてサポートしているものとする。
【0112】
ここで、SBP−2ターゲットデバイスは、ISO/IEC 14776−232:2001に例示されるようなコンフィギュレーションROMを持つ。ホストコンピュータは、Unit_Spec_ID、Unit_SW_VersionからSBP−2ターゲットであることを知ることができ、ユニットディレクトリの内容から、SBP−2プロトコルを用いた通信を行うために必要な情報を得ることができる。
【0113】
これに対して、IPv4 over IEEE 1394デバイスは、RFC 2732に例示されるようなコンフィギュレーションROMを持つ。バス上の他のノードは、Unit_Spec_ID、Unit_SW_Versionから、このノードがIPv4 over IEEE 1394をサポートすることを知ることができる。
【0114】
図24は、第1の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2401において、バスリセット処理を行う。ここでは、〈IEEE1394の技術の概要〉で説明した通り、バスリセット完了までの処理を行う。次に、ステップS2402において、ネットワークに接続されたすべてのノードの判別が終了したか否かを判断する。ここで、終了していなければステップS2403へ進み、各ノードのコンフィギュレーションROMを順次読み出してノードの判別を行う。この判別は、コンフィギュレーションROMの内容からホストコンピュータを判別し、IPv4 over IEEE 1394のユニットディレクトリを含むか否かを調べ、IPv4 over IEEE 1394ユニットディレクトリを含めば、IPv4 over IEEE 1394プロトコルをサポートしているホストコンピュータであると判別する。ここで、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数を更新する。
【0115】
また、ステップS2402において、すべてのノードの判別が終了した場合はステップS2404へ進み、IPv4 over IEEE 1394プロトコルを用いるか否かを判定する。この判定は、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数が2以上で等しい場合、即ち、2台以上のホストコンピュータがすべてIPv4 over IEEE 1394プロトコルをサポートする場合に、IPv4 over IEEE 1394プロトコルを用いると判定する。
【0116】
ここで、IPv4 over IEEE 1394プロトコルを用いないと判定した場合はステップS2405へ進み、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。また、IPv4 over IEEE 1394プロトコルを用いると判定した場合はステップS2406へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを含むように設定する。
【0117】
以上、設定を終えると、ステップS2407において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0118】
例えば、図23に示したネットワーク構成の場合、ノードB、ノードC、ノードD、のOSがすべてWindows(登録商標) XPの場合には、すべてのホストがIPv4 over IEEE 1394をサポートするため、第1の実施形態における印刷装置1(ノードA)は、IPv4 over IEEE 1394を用いる設定で起動する。また、ノードBのOSがWindows(登録商標) 2000の場合には、IPv4 over IEEE 1394をサポートしないホストが存在するため、SBP−2を用いる設定で起動する。
【0119】
尚、第1の実施形態では、IPv4 over IEEE 1394プロトコルを用いる場合には、IPアドレス、サブネットマスク、デフォルトゲートウェーは、予め定められたものを用いるものとする。
【0120】
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。
【0121】
第2の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第2の実施形態のネットワーク構成の一例を示す。
【0122】
図25は、第2の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2501において、第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。次に、ステップS2502において、バスリセットの処理をする。
【0123】
このバスリセットが完了すると、ステップS2503において、ネットワークに接続されたすべてのノードの判別が終了したか否かを判断する。ここで、終了していなければステップS2504へ進み、各ノードのコンフィギュレーションROMを順次読み出し、ノードの判別を行う。つまり、コンフィギュレーションROMの内容からホストコンピュータを判別し、IPv4 over IEEE 1394のユニットディレクトリを含むか否かを調べ、IPv4 over IEEE 1394ユニットディレクトリを含めばIPv4 over IEEE 1394プロトコルをサポートしているホストコンピュータであると判別する。ここで、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数を更新する。
【0124】
また、ステップS2503において、すべてのノードの判別が終了した場合はステップS2505へ進み、IPv4 over IEEE 1394プロトコルを用いるか否かを判定する。この判定は、IPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数が1以上、即ち、1台以上のホストコンピュータがIPv4 over IEEE 1394プロトコルをサポートする場合に、IPv4 over IEEE 1394プロトコルを用いると判定する。ここで、IPv4 over IEEE 1394プロトコルを用いないと判定した場合はステップS2507へ進む。また、IPv4 over IEEE 1394プロトコルを用いると判定した場合にはステップS2506へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを追加するように設定する。
【0125】
以上、設定を終えると、ステップS2507において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0126】
例えば、図23に示したネットワーク構成の場合、ノードB、ノードC、ノードD、のOSがすべてWindows(登録商標) 2000の場合には、すべてのホストがIPv4 over IEEE 1394をサポートしないため、第2の実施形態における印刷装置1(ノードA)は、IPv4 over IEEE 1394を用いない設定で起動する。また、ノードBのOSがWindows(登録商標) XPの場合には、IPv4 over IEEE 1394をサポートするホストが存在するため、SBP−2に加えて、IPv4 over IEEE 1394を用いる設定で起動する。
【0127】
尚、第2の実施形態では、IPv4 over IEEE 1394プロトコルを用いる場合には、IPアドレス、サブネットマスク、デフォルトゲートウェーは、予め定められたものを用いるものとする。
【0128】
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態を詳細に説明する。
【0129】
第3の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第3の実施形態のネットワーク構成の一例を示す。
【0130】
図26は、第3の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2601において、IPv4 over IEEE 1394プロトコルを用いる設定か否かを判定する。ここで、用いない場合にはステップS2602へ進み、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。また、IPv4 over IEEE 1394プロトコルを用いる場合にはステップS2603へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4over IEEE 1394デバイスのユニットディレクトリを含むように設定する。
【0131】
以上、設定を終えると、ステップS2604において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0132】
第3の実施形態においては、初期状態では、IPv4 over IEEE 1394プロトコルを用いない設定になっている。従って、上記、設定部7の処理においては、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定し、バスリセット完了後、起動処理を終了する。
【0133】
次に、ホストコンピュータからSBP−2プロトコルを用いて、印刷装置1の設定を切り替える処理について説明する。
【0134】
本実施形態においては、ホストコンピュータはウィンドウズ(登録商標)オペレーティングシステムが動作しており、図27に示すユーザインターフェースを持った、印刷装置1の設定アプリケーションがあるものとする。このユーザインターフェースから、ユーザが印刷装置1のIPアドレス2701、サブネットマスク2702、デフォルトゲートウェー2703を設定し、「IPv4 over IEEE 1394プロトコルを有効にする」2704にチェックを入れると、ホストコンピュータからSBP−2プロトコルを用いて印刷装置1に設定が送信される。
【0135】
図28に、第3の実施形態における設定を送信するためのコマンドORB及び設定データを示す。コマンドは、SCSIコマンドのベンダ固有(C0h)を用いる。また、設定データはASCIIテキスト文字列で“¥0”を終端とする。例えば、IPv4 over IEEE 1394プロトコルを有効にし、IPアドレスを192.168.0.5、サブネットマスクを255.255.255.0、デフォルトゲートウェーを192.168.0.254と設定する場合には、
“IPv4=enabled;IP_addr=192.168.0.5;SubnetMask=255.255.255.0;DefaultGW=192.168.0.254;”
となる。
【0136】
設定を受信すると、印刷装置1は、IPv4 over IEEE 1394プロトコルを用いる設定に変更し、装置を再起動する。再起動後、印刷装置1の設定部7は図26に示す処理に従ってIPv4 over IEEE 1394プロトコルを用いるように、第2通信部を使用可能に設定し、IPv4 over IEEE 1394プロトコルを用いる印刷装置として起動する。
【0137】
[第4の実施形態]
次に、図面を参照しながら本発明に係る第4の実施形態を詳細に説明する。
【0138】
第4の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第4の実施形態のネットワーク構成の一例を示す。
【0139】
図29は,第4の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2901において、第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。次に、ステップS2902において、IPv4 over IEEE 1394プロトコルを用いる設定か否かを判定する。ここで、IPv4 over IEEE 1394プロトコルを用いない場合はステップS2904へ進み、IPv4over IEEE 1394プロトコルを用いる場合にはステップS2903へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを追加するように設定する。
【0140】
以上、設定を終えると、ステップS2904において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0141】
尚、IPv4 over IEEE 1394プロトコルの有効、無効の設定は第3の実施形態と同様に、設定アプリケーションによるものとする。
【0142】
以上説明したように、実施形態によれば、接続環境に応じて、転送効率の良いプロトコル、ネットワークプリンタとして使い勝手の良いプロトコルを自動的に切り替えて動作する印刷装置を提供することができる。
【0143】
また、別のインターフェースを追加することなく、TCP/IPネットワークのプリブート設定を簡単に行うことができる印刷装置を提供することができる。
【0144】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0145】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0146】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0147】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0148】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0149】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0150】
【発明の効果】
以上説明したように、本発明によれば、接続環境に応じて使用する通信プロトコルを自動的に或いは選択により切り替えることで、装置の利便性を向上させることができる。
【図面の簡単な説明】
【図1】本実施形態における印刷装置の構成を示すブロック図である。
【図2】1394シリアルバスのネットワークの構成を示す図である。
【図3】1394シリアルバスの構成要素を示す図である。
【図4】1394シリアルバスのリンクレイヤ提供可能なサービスを示す図である。
【図5】1394シリアルバスのトランズアクションレイヤ提供可能なサービスを示す図である。
【図6】1394インターフェースにおけるアドレス空間を説明する図である。
【図7】1394インターフェースにおけるCSRコアレジスタに格納される情報のアドレス及び機能を示す図である。
【図8】1394インターフェースにおけるシリアルバスレジスタに格納される情報のアドレス及び機能を示す図である。
【図9】1394インターフェースにおける最小形式のConfiguration ROMを示す図である。
【図10】1394インターフェースにおける一般形式のConfiguration ROMを示す図である。
【図11】1394インターフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図である。
【図12】IEEE1394規格に準拠した通信ケーブルの断面図である。
【図13】DS−Link符号化方式を説明する図である。
【図14】、
【図15】、
【図16】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示す図である。
【図17】図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。
【図18】1394インターフェースにおけるセルフIDパケットの構成を示す図である。
【図19】1394ネットワークにおけるアービトレーションを説明する図である。
【図20】1通信サイクルにおいてIsochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【図21】Isochronous転送モードに基づいて転送される通信パケットのフォーマットを示す図である。
【図22】アシンクロナス転送のパケットフォーマットを示す図である。
【図23】第1の実施形態におけるネットワークの構成の一例を示す図である。
【図24】第1の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図25】第2の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図26】第3の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図27】印刷装置1の設定アプリケーションのユーザインターフェースを示す図である。
【図28】設定を送信するためのコマンドORB及び設定データを示す図である。
【図29】第4の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【発明の属する技術分野】
本発明は、IEEE1394インターフェースを備え、ホストコンピュータから印刷データを受信して印刷することに関し、通信プロトコルとして、SBP−2プロトコル、IPv4 over IEEE 1394プロトコルを用いる技術に関する。
【0002】
【従来の技術】
IEEE1394インターフェースを備え、ホストコンピュータから印刷データを受信して印刷する印刷装置においては、通信プロトコルとして主にSBP−2プロトコルが用いている。このSBP−2プロトコルは、SCSIコマンドをIEEE1394シリアルバス上で転送するためのプロトコルであり、SBP−2プロトコルの詳細はISO/IEC 14776−232:2001に規定されている。また、IEEE1394インターフェースにおいてはIPv4 over IEEE 1394プロトコルを用い、TCP/IPプロトコルによる通信が可能になっている。IPv4 over IEEE 1394はIPv4データをIEEE1394シリアルバス上で転送するためのプロトコルであり、IPv4 over IEEE 1394の詳細はRFC 2732に規定されている。このTCP/IPプロトコルによる通信によりネットワークプリンタを構成することができる。
【0003】
【発明が解決しようとする課題】
しかしながら、上記従来例においては、以下のような問題がある。
【0004】
まず、上述のSBP−2プロトコルを用いる印刷装置においては、SBP−2プロトコルが1対1の接続を基本とするため、バス上に複数のホストが存在している場合、ひとつのホストがコネクションを確立している間、他のホストはコネクションを確立することができないという問題があった。また、複数ホストからのログインを認めるとしても、SBP−2プロトコル上で印刷装置のジョブ管理などを行うことは一般的ではないため、これを実現するためには、ホスト装置、印刷装置双方に印刷ジョブ管理の仕組みを新たに作る必要があった。
【0005】
一方、TCP/IPはネットワークプロトコルとして一般的なもので、LPD、IPPなどプリントサーバアプリケーションがすでに存在し、ホストにおいてはこれらとの通信手段を備えたものが多い。IEEE1394インターフェースを備えた印刷装置では、IPv4 over IEEE 1394プロトコルを用いてTCP/IPプロトコルを使用することができるが、プロトコルスタックの処理の負荷が大きく、また、ジョブ管理を行うためにはプリントサーバアプリケーションも動作させる必要があった。
【0006】
即ち、ホストの数が比較的少なく、印刷装置に対して1対1の接続が主な場合には、SBP−2プロトコルを用いると効率が良く、ホストの数が比較的多く、複数ホストで印刷装置を共用し、ジョブ管理が必要な場合にはIPv4 over IEEE 1394プロトコルを用いて、プリントサーバとして動作したほうが使い勝手は良い、と言える。
【0007】
本発明は、接続環境に応じて使用する通信プロトコルを自動的に或いは選択により、切り替えることを目的とする。
【0008】
また、上述のTCP/IPプロトコルを使用するためには、IPアドレスやサブネットの設定といった、いわゆる「プリブート設定」が必要である。DHCP、BOOTPなどのブートサーバにより自動設定する場合もあるが、そうでない場合には、ホストからPINGコマンドを使って設定するなどの方法がとられる。しかしながら、これらの操作は煩雑であり、特にネットワークの専門的な知識を持たないユーザには非常に難しいものである。そのため、ネットワークインターフェースとは別に、RS−232Cといったインターフェースを介して接続し、プリブート設定を行うものがあるが、別のインターフェースを備えることは印刷装置を複雑にし、更に製造コストをあげることになる。
【0009】
また、本発明は、ネットワークインターフェースに必要なプリブート設定を、別のインターフェースを付加することなく、或いはブートサーバによる自動設定が行えない場合にも、簡単な操作で、設定可能にすることを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、シリアルバスインターフェースと、第1のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第1の通信手段と、第2のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第2の通信手段とを有し、シリアルバスを介して接続される1以上のホストコンピュータから印刷データを受信して印刷する印刷装置であって、第2のプロトコルを用いるか否かを判別する判別手段と、前記判別手段での判別結果に応じて、前記第1の通信手段又は第2の通信手段を使用可能に設定する設定手段とを有する。
【0011】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【0012】
図1は、本実施形態における印刷装置の構成を示すブロック図である。図1において、1は本実施形態における印刷装置、2はIEEE1394シリアルバスインターフェース部(以下「1394インターフェース部)、3は1394インターフェース部2を介して第1のプロトコルSBP−2により通信を行う第1通信部、4は第1通信部2を介してホストコンピュータと通信を行い、ホストコンピュータから印刷データを受信する第1アプリケーション部、5は1394インターフェース部2を介して第2のプロトコルIPv4 over IEEE 1394により通信を行う第2通信部、6は第2通信部を介してホストコンピュータと通信を行い、ホストコンピュータから印刷データを受信する第2アプリケーション部、7は第2のプロトコルIPv4 over IEEE 1394を用いるか否かを判別し、第1通信部3又は第2通信部5を使用可能に設定する設定部、8は第1アプリケーション部4或いは第2アプリケーション部6から印刷データを受け取り、印刷制御を行う印刷制御部、9は印刷制御部8の制御に従って印刷を行う印刷機構部である。
【0013】
[IEEE1394の技術の概要]
以下、本実施形態でのデジタルインターフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)の詳細については、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for aHigh Performance Serial Bus」に記述されている。
(1)概要
図2にIEEE1394規格に準拠したデジタルインターフェース(以下、1394インターフェース)を具備するノードにより構成される通信システム(以下、1394ネットワーク)の一例を示す。この1394ネットワークは、シリアルデータの通信可能なバス型ネットワークを構成するものである。
【0014】
図2において、A〜Fはノードであり、IEEE1394規格に準拠した通信ケーブルを介して接続されている。各ノードA〜Hは、例えばパーソナルコンピュータ(PC:Personal Computer)、デジタルVTR(Video Tape Recorder)、DVD(Digital Video Disc)プレーヤ、デジタルカメラ、ハードディスク、モニタ等の電子機器である。
【0015】
1394ネットワークの接続方式は、ディジーチェーン方式とノード分岐方式とに対応しており、自由度の高い接続を可能としている。また、1394ネットワークでは、例えば既存の機器を削除したり、新たな機器を追加したり、既存の機器の電源をON/OFFしたりした場合、自動的にバスリセットを行う。このバスリセットを行うことにより、1394ネットワークは、新たな接続構成の認識と各機器に対するID情報の割り当てとを自動的に行うことができる。この機能によって、1394ネットワークは、ネットワークの接続構成を常時認識することができる。
【0016】
また、1394ネットワークは、他の機器から転送されたデータを中継する機能を有している。この機能により、全ての機器がバスの動作状況を把握することができる。
【0017】
また、1394ネットワークは、「Plug&Play」と呼ばれる機能を有している。この機能により、全ての機器の電源をオフにすることなく、接続するだけで自動的に接続機器を認識することができる。
【0018】
また、1394ネットワークは、100/200/400Mbpsのデータ転送速度に対応している。上位のデータ転送速度を持つ機器は、下位のデータ転送速度をサポートすることができるため、異なるデータ転送速度に対応する機器同士を接続することができる。
【0019】
更に、1394ネットワークは、2つの異なるデータ転送方式(即ち、Asynchronous転送モードとIsochronous転送モード)に対応している。Asynchronous転送モードは、必要に応じて非同期に転送することが要求されるデータ(即ち、コントロール信号やファイルデータ等)を転送する際に有効である。また、Isochronous転送モードは、所定量のデータを一定のデータレートで連続的に転送することが要求されるデータ(即ち、ビデオデータやオーディオデータ等)を転送する際に有効である。
【0020】
ここで、Asynchronous転送モードとIsochronous転送モードとは、各通信サイクル(通常1サイクルは、125μS)内において、混在させることが可能である。各転送モードは、サイクルの開始を示すサイクルスタートパケット(以下、CSP)の転送後に実行される。
【0021】
尚、各通信サイクル期間において、Isochronous転送モードは、Asynchronous転送モードよりも優先順位が高く設定されている。またIsochronous転送モードの転送帯域は、各通信サイクル内で保証されている。
(2)アーキテクチャ
次に、図3を用いて1394インターフェースの構成要素について説明する。
【0022】
1394インターフェースは、機能的に複数のレイヤ(階層)から構成されている。図3に示すように、1394インターフェースは、IEEE1394規格に準拠した通信ケーブル301を介して他のノードの1394インターフェースと接続される。また、1394インターフェースは1つ以上の通信ポート302を有し、通信ポート302はハードウェア部に含まれるフィジカルレイヤ303と接続される。
【0023】
また、ハードウェア部は、フィジカルレイヤ303とリンクレイヤ304とから構成されている。フィジカルレイヤ303は、他のノードとの物理的、電気的なインターフェース、バスリセットの検出とそれに伴う処理、入出力信号の符号化/復号化、バス使用権の調停等を行う。また、リンクレイヤ304は通信パケットの生成と送受信、サイクルタイマの制御等を行う。
【0024】
また、ファームウェア部は、トランザクションレイヤ305とシリアルバスマネージメント306とを含んでいる。トランザクションレイヤ305は、Asynchronous転送モードを管理し、各種のトランザクション(リード、ライト、ロック)を提供する。シリアルバスマネージメント306は、後述するCSRアーキテクチャに基づいて自ノードの制御、自ノードの接続状態の管理、自ノードのID情報の管理、シリアルバスネットワークの資源管理を行う機能を提供する。
【0025】
以上、ハードウェア部とファームウェア部とが実質的に1394インターフェースを構成するものであり、それらの基本構成は、IEEE1394規格により規定されている。
【0026】
また、ソフトウェア部に含まれるアプリケーションレイヤ307は、使用するアプリケーションソフトによって異なり、ネットワーク上でどのようにデータを通信するのかを制御する。例えば、デジタルVTRの動画像データの場合はAV/Cプロトコルなどの通信プロトコルによって規定されている。
(2−1)リンクレイヤ304
図4は、リンクレイヤ304の提供可能なサービスを示す図である。図4において、リンクレイヤ304は、以下の4つのサービスを提供する。即ち、
(A)応答ノードに対して所定のパケットの転送を要求するリンク要求(LK_DATA.request)、
(B)応答ノードに所定のパケットの受信を通知するリンク通知(LK_DATA.indication)、
(C)応答ノードからのアクノリッジを受信したことを示すリンク応答(LK_DATA.response)、
(D)要求ノードからのアクノリッジを確認するリンク確認(LK_DATA.confirmation)である。
【0027】
尚、リンク応答(LK_DATA.response)は、ブロードキャスト通信、Isochronousパケットの転送の場合には存在しない。
【0028】
また、リンクレイヤ304は、上述のサービスに基づいて上述の2種類の転送方式、即ち、Asynchronous転送モード、Isochronous転送モードを実現する。
(2−2)トランザクションレイヤ305
図5は、トランザクションレイヤ305の提供可能なサービスを示す図である。図5において、トランザクションレイヤ305は、以下の4つのサービスを提供する。即ち、
(A)応答ノードに対して所定のトランザクションを要求するトランザクション要求(TR_DATA.request)、
(B)応答ノードに所定のトランザクション要求の受信を通知するトランザクション通知(TR_DATA.indication)、
(C)応答ノードからの状態情報(ライト、ロックの場合は、データを含む)を受信したことを示すトランザクション応答(TR_DATA.response)、
(D)要求ノードからの状態情報を確認するトランザクション確認(TR_DATA.confirmation)である。
【0029】
また、トランザクションレイヤ305は、上述のサービスに基づいてAsynchronous転送を管理し、次の3種類のトランザクション、即ち、(a)リードトランザクション、(b)ライトトランザクション、(c)ロックトランザクションを実現する。
【0030】
ここで、リードトランザクションは、要求ノードが応答ノードの特定アドレスに格納された情報を読み取る。また、ライトトランザクションは、要求ノードが応答ノードの特定アドレスに所定の情報を書き込む。そして、ロックトランザクションは、要求ノードが応答ノードに対して参照データと更新データとを転送し、応答ノードの特定アドレスの情報とその参照データとを比較し、その比較結果に応じて特定アドレスの情報を更新データに更新する。
(2−3)シリアルバスマネージメント306
シリアルバスマネージメント306は、具体的に、次の3つの機能を提供することができる。3つの機能は、即ち、(a)ノード制御、(b)アイソクロナスリソースマネージャ(以下、IRM)、(c)バスマネージャである。
【0031】
ここで、ノード制御は、上述の各レイヤを管理し、他のノードとの間で実行されるAsynchronous転送を管理する機能を提供する。また、IRMは、他のノードとの間で実行されるIsochronous転送を管理する機能を提供する。具体的には、転送帯域幅とチャネル番号の割り当てに必要な情報を管理し、これらの情報を他のノードに対して提供する。IRMは、ローカルバス上に唯一存在し、バスリセット毎に他の候補者(IRMの機能を有するノード)の中から動的に選出される。また、IRMは、後述のバスマネージャの提供可能な機能(接続構成の管理、電源管理、速度情報の管理等)の一部を提供しても良い。
【0032】
バスマネージャは、IRMの機能を有し、IRMよりも高度なバス管理機能を提供する。具体的には、より高度な電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理)、より高度な速度情報の管理(各ノード間の最大転送速度の管理)、より高度な接続構成の管理(トポロジーマップの作成)、これらの管理情報に基づくバスの最適化等を行い、更にこれらの情報を他のノードに提供する機能を有する。また、バスマネージャは、シリアルバスネットワークを制御するためのサービスをアプリケーションに対して提供できる。ここで、サービスには、シリアルバス制御要求(SB_CONTROL.request)、シリアルバスイベント制御確認(SB_CONTROL.confirmation)、シリアルバスイベント通知(SB_CONTROL.indication)等がある。
【0033】
SB_CONTROL.requestは、アプリケーションがバスリセットを要求するサービスである。SB_CONTROL.confirmationは、SB_CONTROL.requestをアプリケーションに対して確認するサービスである。SB_CONTROL.indicationは、非同期に発生するイベントをアプリケーションに対して通知するサービスである。
(3)アドレス指定
図6は、1394インターフェースにおけるアドレス空間を説明する図である。尚、1394インターフェースは、ISO/IEC 13213:1994に準じたCSR(Command and Status Register)アーキテクチャに従い、64ビット幅のアドレス空間を規定している。
【0034】
図6に示すように、最初の10ビットのフィールド601は、所定のバスを指定するID番号に使用され、次の6ビットのフィールド602は、所定の機器(ノード)を指定するID番号に使用される。この上位16ビットを「ノードID」と呼び、各ノードはこのノードIDにより他のノードを識別する。各ノードは、このノードIDを用いて相手を識別した通信を行うことができる。
【0035】
残りの48ビットからなるフィールドは、各ノードの具備するアドレス空間(256Mバイト構造)を指定する。その内の20ビットのフィールド603は、アドレス空間を構成する複数の領域を指定する。
【0036】
フィールド603において、「0〜0xFFFFD」の部分は、メモリ空間と呼ばれる。「0xFFFFE」の部分は、プライベート空間と呼ばれ、各ノードで自由に利用できるアドレスである。また、「0xFFFFE」の部分は、レジスタ空間と呼ばれ、バスに接続されたノード間において共通の情報を格納する。各ノードは、レジスタ空間の情報を用いることにより、各ノード間の通信を管理することができる。
【0037】
最後の28ビットのフィールド604は、各ノードにおいて共通或いは固有となる情報が格納されるアドレスを指定する。例えば、レジスタ空間において、最初の512バイトは、CSRアーキテクチャーのコア(CSRコア)レジスタ用に使用される。このCSRコアレジスタに格納される情報のアドレス及び機能を図7に示す。図7に示すオフセットは、「0xFFFFF0000000」からの相対位置である。
【0038】
図6に示すフィールド604における次の512バイトは、シリアルバス用のレジスタとして使用される。シリアルバスレジスタに格納される情報のアドレス及び機能を図8に示す。図8に示すオフセットは、「0xFFFFF0000200」からの相対位置である。
【0039】
図6に示すフィールド604における次の1024バイトは、Configuration ROM用に使用される。Configuration ROMには最小形式と一般形式とがあり、「0xFFFFF0000400」から配置される。最小形式のConfiguration ROMを図9に示す。図9において、ベンダIDは、IEEEにより各ベンダに対して固有に割り当てられた24ビットの数値である。
【0040】
また、一般形式のConfiguration ROMを図10に示す。図10において、上述のベンダIDは、Root Directory1002に格納されている。そして、Bus InfoBlock1001とRoot Leaf1005とには各ノードを識別する固有のID情報としてノードユニークIDを保持することが可能である。
【0041】
ここで、ノードユニークIDは、メーカ、機種に関わらず、1つのノードを特定することのできる固有のIDを定めるようになっている。ノードユニークIDは64ビットにより構成され、上位24ビットは上述のベンダIDを示し、下位48ビットは各ノードを製造するメーカにおいて自由に設定可能な情報(例えば、ノードの製造番号等)を示す。尚、このノードユニークIDは、例えばバスリセットの前後で継続して特定のノードを認識する場合に使用される。
【0042】
また、図10において、Root Directory1002には、ノードの基本的な機能に関する情報を保持することが可能である。詳細な機能情報は、Root Directory1002からオフセットされるサブディレクトリ(Unit Directories1004)に格納される。Unit Directories1004には、例えば、ノードのサポートするソフトウェアユニットに関する情報が格納される。具体的には、ノード間のデータ通信を行うためのデータ転送プロトコル、所定の通信手順を定義するコマンドセット等に関する情報が保持される。
【0043】
また、図10において、Node Dependent Info Directory1003には、デバイス固有の情報を保持することが可能である。Node Dependent Info Directory1003は、Root Directory1002によりオフセットされる。
【0044】
更に、図10において、Vendor Dependent Information1006には、ノードを製造、或いは販売するベンダ固有の情報を保持することができる。
【0045】
図6に示すフィールド604における残りの領域は、ユニット空間と呼ばれ、各ノード固有の情報、例えば、各機器の識別情報(会社名、機種名等)や使用条件等が格納されたアドレスを指定する。ユニット空間のシリアルバス装置レジスタに格納される情報のアドレス及び機能を図11に示す。図11に示すオフセットは、「0xFFFFF0000800」からの相対位置である。
【0046】
尚、一般的に、異種のバスシステムの設計を簡略化したい場合、各ノードは、レジスタ空間の最初の2048バイトのみを使うべきである。つまり、CSRコアレジスタ、シリアルバスレジスタ、Configuration ROM、ユニット空間の最初の2048バイトの合わせて4096バイトで構成することが望ましい。
(4)通信ケーブルの構成
図12にIEEE1394規格に準拠した通信ケーブルの断面図を示す。通信ケーブルは、2組のツイストペア信号線と電源ラインとにより構成されている。電源ラインを設けることにより、1394インターフェースは、主電源のOFFとなった機器、故障により電力低下した機器等にも電力を供給することができる。尚、電源線内を流れる電源の電圧は8〜40V、電流は最大電流DC1.5Aと規定されている。
【0047】
2組のツイストペア信号線には、DS−Link(Data/Strobe Link)符号化方式にて符号化された情報信号が伝送される。図13は、DS−Link符号化方式を説明する図である。
【0048】
このDS−Link符号化方式は、高速なシリアルデータ通信に適しており、その構成は、2組のより対線を必要とする。一組のより対線は、データ信号を送り、他のより対線は、ストローブ信号を送る構成になっている。受信側は、2組の信号線から受信したデータ信号とストローブ信号との排他的論理和をとることによりクロックを再現することができる。
【0049】
尚、このDS−Link符号化方式を用いることにより、1394インターフェースには、例えば次のような利点がある。(a)他の符号化方式に比べて転送効率が高い。(b)PLL回路が不要となり、コントローラLSIの回路規模を小さくできる。(c)アイドル状態であることを示す情報を送る必要が無いため、トランシーバ回路をスリープ状態とし易く、消費電力の低減が図れる。
(5)バスリセット
各ノードの1394インターフェースは、ネットワークの接続構成に変化が生じたことを自動的に検出することができる。この場合、1394ネットワークは、以下に示す手順によりバスリセットと呼ばれる処理を行う。尚、接続構成における変化は、各ノードの具備する通信ポートにかかるバイアス電圧の変化により検知することができる。
【0050】
ネットワークの接続構成の変化(例えば、ノードの挿抜、ノードの電源のON/OFFなどによるノード数の増減)を検出したノード、又は新たな接続構成を認識する必要のあるノードは、1394インターフェースを介してバス上にバスリセット信号を送信する。
【0051】
バスリセット信号を受信したノードの1394インターフェースは、バスリセットの発生を自身のリンクレイヤ304に伝達すると共に、そのバスリセット信号を他のノードに転送する。バスリセット信号を受信したノードは、今まで認識していたネットワークの接続構成及び各機器に割り当てられたノードIDをクリアにする。最終的に全てのノードがバスリセット信号を検知した後、各ノードはバスリセットに伴う初期化処理(即ち、新たな接続構成の認識と新たなノードIDの割り当て)を自動的に行う。
【0052】
尚、バスリセットは先に述べたような接続構成の変化による起動の他に、ホスト側の制御により、アプリケーションレイヤ307がフィジカルレイヤ303に対して直接命令を出すことによって起動させることも可能である。
【0053】
また、バスリセットが起動するとデータ転送は一時中断され、バスリセットに伴う初期化処理の終了後、新しいネットワークのもとで再開される。
(6)バスリセット起動後のシーケンス
バスリセットの起動後、各ノードの1394インターフェースは、新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行する。以下、バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを図14〜図16を用いて説明する。
【0054】
図14は、図2の1394ネットワークにおけるバスリセット起動後の状態を説明する図である。図14において、ノードAは1つの通信ポート、ノードBは2つの通信ポート、ノードCは2つの通信ポート、ノードDは3つの通信ポート、ノードEは1つの通信ポート、ノードFは1つの通信ポートを具備している。尚、各ノードの通信ポートには、各ポートを識別するためのポート番号が付加されている。
【0055】
ここで、図14におけるバスリセットの開始からノードIDの割り当てまでを図15に示すフローチャートを用いて説明する。まず、ステップS1501で、1394ネットワークを構成する各ノードA〜Fは、バスリセットが発生したか否かを常時監視している。接続構成の変化を検出したノードからバスリセット信号が出力されると、各ノードは以下の処理を実行する。
【0056】
バスリセットの発生後、ステップS1502において、各ノードは夫々の具備する通信ポート間において親子関係の宣言を行う。そして、各ノードは、全てのノード間の親子関係が決定されるまで、ステップS1502の処理を繰り返し、ステップS1503において、全てのノード間の親子関係が決定するとステップS1504へ進み、1394ネットワークはネットワークの調停を行うノード、即ちルートを決定する。
【0057】
ルートを決定した後、ステップS1505において、各ノードの1394インターフェース夫々は、自己のノードIDを自動的に設定する作業を実行する。全てのノードに対してノードIDの設定がなされるまで、各ノードは所定の手順に基づいてステップS1505の処理を実行する。
【0058】
ステップS1506で最終的に全てのノードに対してノードIDが設定されるとステップS1507へ進み、各ノードはIsochronous転送或いはAsynchronous転送を実行する。ステップS1507の処理を実行すると共に、各ノードの1394インターフェースは、再びバスリセットの発生を監視する。バスリセットが発生した場合には、ステップS1501以降の処理を再び実行する。
【0059】
以上の手順により、各ノードの1394インターフェースは、バスリセットが起動する毎に新たな接続構成の認識と新たなノードIDの割り当てとを自動的に実行することができる。
(7)親子関係の決定
次に、図16を用いて、図15に示したステップS1502での処理(即ち、各ノード間の親子関係を認識する処理)について詳細に説明する。
【0060】
バスリセットの発生後、ステップS1601において、1394ネットワーク上の各ノードA〜Fは、自分の具備する通信ポートの接続状態(接続又は未接続)を確認する。通信ポートの接続状態を確認した後、ステップS1602において、各ノードは、他のノードと接続されている通信ポート(以下、接続ポート)の数をカウントする。
【0061】
ステップS1602での結果、接続ポートの数が1つである場合はステップS1603へ進み、そのノードは、自分が「リーフ」であると認識する。ここで、リーフとは、1つのノードとのみ接続されているノードのことである。そして、ステップS1604において、リーフとなるノードは、その接続ポートに接続されているノードに対して「自分は子(Child)」であることを宣言する。このとき、リーフは、その接続ポートが「親ポート(親ノードと接続された通信ポート)」であると認識する。
【0062】
ここで、親子関係の宣言は、まずネットワークの末端であるリーフとブランチとの間にて行われ、次にブランチとブランチとの間で順次に行われる。各ノード間の親子関係は、早く宣言の行なえる通信ポートから順に決定される。また、各ノード間において、子であることを宣言した通信ポートは「親ポート」であると認識され、その宣言を受けた通信ポートは「子ポート(子ノードと接続された通信ポート)」であると認識される。
【0063】
例えば、図14において、ノードA、E、Fは自分がリーフであると認識した後、親子関係の宣言を行う。これにより、ノードA−B間では子−親、ノードE−D間では子−親、ノードF−D間では子−親と決定される。
【0064】
また、ステップS1602での結果、接続ポートの数が2つ以上の場合はステップS1605へ進み、そのノードは、自分を「ブランチ」であると認識する。ここで、ブランチとは、2つ以上のノードと接続されているノードのことである。次に、ステップS1606において、ブランチとなるノードは、各接続ポートのノードから親子関係の宣言を受け付ける。この宣言を受け付けた接続ポートは、「子ポート」として認識される。
【0065】
1つの接続ポートを「子ポート」と認識した後、ステップS1607において、ブランチとして、まだ親子関係の決定されていない接続ポート(即ち、未定義ポート)が2つ以上あるか否かを検出する。その結果、未定義ポートが2つ以上ある場合、再びステップS1606に戻り、上述した親子関係の宣言を行う。
【0066】
また、未定義ポートが2つ以上ない場合はステップS1608へ進み、未定義ポートが1つだけ存在するか否かを検出する。その結果、未定義ポートが1つの場合はステップS1609へ進み、ブランチは、その未定義ポートが「親ポート」であると認識し、そのポートに接続されているノードに対して「自分は子」であることを宣言する。
【0067】
ここで、ブランチは、残りの未定義ポートが1つになるまで、自分自身が子であると他のノードに対して宣言することができない。例えば、図14において、ノードB、C、Dは、自分がブランチであると認識すると共にリーフ或いは他のブランチからの宣言を受け付ける。ノードDは、D−E間、D−F間の親子関係が決定した後、ノードCに対して親子関係の宣言を行っている。また、ノードDからの宣言を受けたノードCは、ノードBに対して親子関係の宣言を行っている。
【0068】
また、ステップS1608において、未定義ポートが存在しない場合(つまり、ブランチの具備する全ての接続ポートが親ポートとなった場合)はステップS1610へ進み、そのブランチは、自分自身がルートであることを認識する。
【0069】
例えば、図14において、接続ポートの全てが親ポートとなったノードBは、1394ネットワーク上の通信を調停するルートとして他のノードに認識される。尚、ノードBがルートと決定されたが、ノードBの親子関係を宣言するタイミングがノードCの宣言するタイミングに比べて早い場合には、他のノードがルートになる可能性もある。即ち、宣言するタイミングによっては、どのノードもルートとなる可能性がある。従って、同じネットワーク構成であっても、同じノードがルートになるとは限らない。
【0070】
このように全ての接続ポートの親子関係が宣言されることにより、ステップS1611において、各ノードは1394ネットワークの接続構成を階層構造(ツリー構造)として認識することができる。尚、上述の親ノードは、階層構造における上位であり、子ノードは階層構造における下位となる。
(8)ノードIDの割り当て
次に、図17を用いて、図15に示したステップS1505での処理(即ち、自動的に各ノードのノードIDを割り当てる処理)について詳細に説明する。
【0071】
ここで、ノードIDはバス番号とノード番号とから構成されるが、本実施形態では、各ノードを同一バス上に接続するものとし、各ノードには同一のバス番号が割り当てられるものとする。
【0072】
まずステップS1701において、ルートは、ノードIDが未設定のノードが接続されている子ポートの内、最小番号を有する通信ポートに対してノードIDの設定許可を与える。尚、図17において、ルートは最小番号の子ポートに接続されている全ノードのノードIDを設定した後、その子ポートを設定済とし、次に最小となる子ポートに対して同様の制御を行う。最終的に子ポートに接続された全てのノードのID設定が終了した後、ルート自身のノードIDを設定する。また、ノードIDに含まれるノード番号は、基本的にリーフ、ブランチの順に0、1、2…と割り当てられる。従って、ルートが最も大きなノード番号を有することになる。
【0073】
次に、ステップS1702において、ステップS1701で設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定となるノードを含む子ポートがあるか否かを判断する。その結果、未設定ノードを含む子ポートが検出された場合はステップS1703へ進み、上述の設定許可を得たノードは、その子ポートに直接接続されたノードに対してその設定許可を与えるように制御する。
【0074】
ステップS1703の処理後、ステップS1704において、上述の設定許可を得たノードは、自分の子ポートの内、ノードIDが未設定であるノードを含む子ポートがあるか否かを判断する。ここで、ステップS1704の処理後、未設定ノードを含む子ポートの存在が検出された場合、そのノードは、再びステップS1703に戻り、上述の処理を実行する。
【0075】
また、ステップS1702、或いはS1704において、未設定ノードを含む子ポートが検出されなかった場合はステップS1705へ進み、設定許可を得たノードは、自分自身のノードIDを設定する。そして、ステップS1706において、自分のノードIDを設定したノードは、自己のノード番号、通信ポートの接続状態に関する情報等を含んだセルフIDパケットをブロードキャストする。尚、ブロードキャストとは、あるノードの通信パケットを、1394ネットワークを構成する不特定多数のノードに対して転送することである。
【0076】
ここで、各ノードは、このセルフIDパケットを受信することにより各ノードに割り当てられたノート番号を認識することができ、また自分に割り当てられるノード番号を知ることができる。例えば、図14において、ルートであるノードBは最小ポート番号「#1」の通信ポートに接続されたノードAに対してノードID設定の許可を与える。ノードAは、自己のノード番号として「No.0」を割り当て、自分自身に対してバス番号とノード番号とからなるノードIDを設定する。また、ノードAは、そのノード番号を含むセルフIDパケットをブロードキャストする。
【0077】
図18にセルフIDパケットの構成例を示す。図18において、1801はセルフIDパケットを送出したノードのノード番号を格納するフィールド、1802は対応可能な転送速度に関する情報を格納するフィールド、1803はバス管理機能(バスマネージャの能力の有無等)の有無を示すフィールド、1804は電力の消費及び供給の特性に関する情報を格納するフィールドである。
【0078】
また、1805はポート番号「#0」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1806はポート番号「#1」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールド、1807はポート番号「#2」となる通信ポートの接続状態に関する情報(接続、未接続、通信ポートの親子関係等)を格納するフィールドである。
【0079】
尚、セルフIDパケットを送出するノードにバスマネージャとなり得る能力がある場合には、フィールド1803に示すコンテンダビットを「1」とし、なり得る能力がなければ、コンテンダビットを「0」とする。また、バスマネージャとは、上述のセルフIDパケットに含まれる各種情報に基づいてバスの電源管理(通信ケーブルを介して電源の供給が可能か否か、電源の供給が必要か否か等の情報を各ノード毎に管理する)、速度情報の管理(各ノードの対応可能な転送速度に関する情報から各ノード間の最大転送速度を管理する)、トポロジーマップ情報の管理(通信ポートの親子関係情報からネットワークの接続構成を管理する)、トポロジーマップ情報に基づくバスの最適化等を行い、それらの情報を他のノードに提供する機能を有するノードである。これらの機能により、バスマネージャとなるノードは1394ネットワーク全体のバス管理を行うことができる。
【0080】
図17に戻り、ステップS1706の処理後、ステップS1707において、ノードIDの設定を行ったノードは、親ノードがあるか否かを判断する。ここで、親ノードがある場合はステップS1702に戻り、その親ノードが上述の処理を実行する。そして、まだノードIDの設定されていないノードに対して許可を与える。
【0081】
また、親ノードが存在しない場合はステップS1708へ進み、そのノードは、ルート自身であると判断し、ステップS1708において、ルートは、全ての子ポートに接続されたノードに対してノードIDが設定されたか否かを判別する。ここで、全てのノードに対するID設定処理が終了しなかった場合はステップS1701に戻り、ルートは、そのノードを含む子ポートの内、最小番号となる子ポートに対してID設定の許可を与える。その後、上述のステップS1702以降の処理を実行する。
【0082】
また、全てのノードに対するID設定処理が終了した場合はステップS1709へ進み、ルートは自分自身のノードIDの設定を実行する。そして、ステップS1710において、ノードIDを設定した後、ルートは、セルフIDパケットをブロードキャストする。
【0083】
以上の処理により、1394ネットワークは各ノードに対して自動的にノードIDを割り当てることができる。
【0084】
ここで、ノードIDの設定処理の後、複数のノードがバスマネージャの能力を具備する場合、ノード番号の最も大きいノードがバスマネージャとなる。つまり、ネットワーク内で最大となるノード番号を持つルートがバスマネージャになり得る機能を有している場合には、ルートがバスマネージャとなる。
【0085】
しかしながら、ルートにバスマネージャになり得る機能が備わっていない場合には、ルートの次に大きいノード番号を具備するノードがバスマネージャとなる。また、どのノードがバスマネージャになったかについては各ノードがブロードキャストするセルフIDパケット内のコンテンダビット1803をチェックすることにより把握することができる。
(9)アービトレーション
図19は、1394ネットワークにおけるアービトレーションを説明するための図である。1394ネットワークでは、データ転送に先立ち、必ずバス使用権のアービトレーション(調停)を行う。尚、1394ネットワークは、論理的なバス型ネットワークであり、各ノードから転送された通信パケットを他のノードに中継することにより、ネットワーク内の全てのノードに同じ通信パケットを転送することができる。従って、通信パケットの衝突を防ぐために、必ずアービトレーションが必要となる。これにより、ある時間において一つのノードのみが転送を行うことができる。
【0086】
図19に示す(a)は、ノードBとノードFとが、バス使用権の要求を発している場合を説明する図である。アービトレーションが始まるとノードB、Fは、夫々親ノードに向かって、バス使用権の要求を発する。ノードBの要求を受けた親ノード(即ち、ノードC)は、自分の親ノード(即ち、ノードD)に向かって、そのバス使用権を中継する。この要求は、最終的に調停を行うルート(ノードD)に届けられる。
【0087】
バス使用要求を受けたルートは、どのノードにバスを使用させるかを決める。この調停作業はルートとなるノードのみが行えるものであり、調停によって勝ったノードにはバスの使用許可が与えられる。
【0088】
図19に示す(b)は、ノードFの要求が許可され、ノードBの要求が拒否されたことを示す図である。アービトレーションに負けたノードに対してルートは、DP(Data prefix)パケットを送り、拒否されたことを知らせる。拒否されたノードは、次回のアービトレーションまでバス使用要求を待機する。
【0089】
以上のようにアービトレーションを制御することにより、1394ネットワークは、バスの使用権を管理することができる。
(10)通信サイクル
Isochronous転送モードとAsynchronous転送モードとは、各通信サイクル期間内において時分割に混在させることができる。ここで、通信サイクルの期間は、通常、125μSである。
【0090】
図20は、1通信サイクルにおいて、Isochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【0091】
Isochronous転送モードは、Asynchronous転送モードより優先して実行される。その理由は、サイクルスタートパケットの後、Asynchronous転送を起動するために必要なアイドル期間(subaction gap)が、Isochronous転送を起動するために必要なアイドル期間(Isochronous gap)よりも長くなるように設定されているためである。これにより、Isochronous転送は、Asynchronous転送に優先して実行される。
【0092】
図20において、各通信サイクルのスタート時には、サイクルスタートパケット(以下、CSP)が所定のノードから転送される。各ノードは、このCSPを用いて時刻調整を行うことにより、他のノードと同じ時間を計時することができる。
(11)Isochronous転送モード
Isochronous転送モードは、同期型の転送方式である。Isochronousモード転送は、通信サイクルの開始後、所定の期間において実行可能である。また、Isochronous転送モードは、リアルタイム転送を維持するために、各サイクル毎に必ず実行される。
【0093】
Isochronous転送モードは、特に動画像データや音声データ等のリアルタイムな転送を必要とするデータの転送に適した転送モードである。Isochronous転送モードは、Asynchronous転送モードのように1対1の通信ではなく、ブロードキャスト通信である。つまり、あるノードから送出されたパケットは、ネットワーク上の全てのノードに対して一様に転送される。尚、Isochronous転送には、ack(受信確認用返信コード)は存在しない。
【0094】
図20において、チャネルe(ch e)、チャネルs(ch s)、チャネルk(chk)は、各ノードがIsochronous転送を行う期間を示す。1394インターフェースでは、複数の異なるIsochronous転送を区別するために、夫々異なるチャネル番号を与えている。これにより、複数ノード間でのIsochronous転送が可能となる。ここで、このチャネル番号は、送信先を特定するものではなく、データに対する論理的な番号を与えているに過ぎない。
【0095】
また、図20に示すIsochronous gapとは、バスのアイドル状態を示すものである。このアイドル状態が一定時間を経過した後、Isochronous転送を希望するノードはバスが使用できると判断し、アービトレーションを実行する。
【0096】
次に、図21にIsochronous転送モードに基づいて転送される通信パケットのフォーマットを示す。以下、Isochronous転送モードに基づいて転送される通信パケットを、Isochronousパケットと称する。
【0097】
図21において、Isochronousパケットは、ヘッダ部2101、ヘッダCRC2102、データ部2103、データCRC2104から構成される。ここで、ヘッダ部2101には、データ部2103のデータ長を格納するフィールド2105、Isochronousパケットのフォーマット情報を格納するフィールド2106、Isochronousパケットのチャネル番号を格納するフィールド2107、パケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)を格納するフィールド2108、同期化コードを格納するフィールド2109がある。
(12)Asynchronous転送モード
Asynchronous転送モードは、非同期型の転送方式である。Asynchronous転送は、Isochronous転送期間の終了後、次の通信サイクルが開始されるまでの間(即ち、次の通信サイクルのCSPが転送されるまでの間)、実行可能である。
【0098】
図20において、最初のサブアクションギャップ(subaction gap)は、バスのアイドル状態を示すものである。このアイドル時間が一定値になった後、Asynchronous転送を希望するノードは、バスが使用できると判断し、アービトレーションを実行する。
【0099】
このアービトレーションにより、バスの使用権を得たノードは、図22に示すパケットを所定のノードに対して転送する。このパケットを受信したノードは、ack(受信確認用返送コード)或いは応答パケットをack gap後に返送する。
【0100】
図22は、Asynchronous転送モードに基づく通信パケットのフォーマットを示す図である。以下、Asynchronous転送モードに基づいて転送される通信パケットをAsynchronousパケットと称する。
【0101】
図22において、Asynchronousパケットは、ヘッダ部2201、ヘッダCRC2202、データ部2203、データCRC2204から構成される。ここで、ヘッダ部2201において、フィールド2205には宛先となるノードのノードID、フィールド2206にはソースとなるノードのノードID、フィールド2207には一連のトランザクションを示すためのラベル、フィールド2208には再送ステータスを示すコード、フィールド2209にはパケットのフォーマット及び実行しなければならない処理を識別するトランザクションコード(tcode)、フィールド2210には優先順位、フィールド2211には宛先のメモリアドレス、フィールド2212にはデータ部のデータ長、フィールド2213には拡張されたトランザクションコードが格納される。
【0102】
また、Asynchronous転送は、自己ノードから相手ノードへの1対1の通信である。転送元ノードから転送されたパケットは、ネットワーク中の各ノードに行き渡るが、自分宛てのアドレス以外のものは無視される。従って、宛先となるノードのみが、そのパケットを読み込むことができる。
【0103】
尚、Asynchronous転送中に次のCSPを転送すべき時間に至った場合、無理に転送を中断せず、その転送が終了した後、次のCSPを送信する。これにより、1つの通信サイクルが125μS以上続いたときは、その分、次の通信サイクル期間を短縮する。このようにすることにより、1394ネットワークは、ほぼ一定の通信サイクルを保持することができる。
(13)デバイスマップ
デバイスマップを作成するためにアプリケーションが1394ネットワークのトポロジーを知る手段として、IEEE1394規格上は以下の手段がある。
1.バスマネージャのトポロジーマップレジスタをリードする
2.バスリセット時にセルフIDパケットから推定する
しかし、上記1、2の手段では、各ノードの親子関係によるケーブル接続順のトポロジーは判明するものの、物理的な位置関係のトポロジーを知ることはできない(実装されていないポートまで見えてしまう、といった問題もある)。
【0104】
また、デバイスマップを作成するための情報を、コンフィギュレーションROM以外のデータベースとして持つ、といった手段もあるが、その場合、各種情報を得る手段はデータベースアクセスのためのプロトコルに依存してしまう。
【0105】
ところで、コンフィギュレーションROM自体やコンフィギュレーションROMを読む機能は、IEEE1394規格を遵守したデバイスが必ず持つものである。そこで、デバイスの位置、機能等の情報を各ノードのコンフィギュレーションROMに格納し、それらをアプリケーションから読む機能を与えることにより、データベースアクセス、データ転送等の特定のプロトコルに依存することなく、各ノードのアプリケーションが、いわゆるデバイスマップ表示機能を実装することができる。
【0106】
コンフィグレーションROMにはノード固有の情報として物理的な位置、機能などが格納可能であり、デバイスマップ表示機能の実現に使用することが可能である。この場合、アプリケーションが物理的な位置関係による1394ネットワークトポロジーを知る手段としては、バスリセット時やユーザからの要求時に、各ノードのコンフィギュレーションROMを読み取ることにより、1394ネットワークのトポロジーを知るという方法が可能となる。
【0107】
更に、コンフィギュレーションROM内にノードの物理的な位置のみならず、機能などの各種ノード情報も記述することにより、コンフィギュレーションROMを読むことで、ノードの物理的位置と同時に各ノードの機能情報等も得ることができる。アプリケーションが各ノードのコンフィギュレーションROM情報を取得する際には、指定ノードの任意のコンフィギュレーションROM情報を取得するAPIを用いる。
【0108】
このような手段を用いることにより、IEEE1394ネットワーク上のデバイスのアプリケーションは、物理的なトポロジーマップ、各ノードの機能マップなど用途に応じて様々なデバイスマップを作成することができ、ユーザが必要な機能をもつデバイスを選択する、といったことも可能となる。
【0109】
以上の説明が、1394インターフェースを用いて構成される通信システムの構成及び機能に関する説明である。
【0110】
[第1の実施形態]
ここで、図1に戻り、1394インターフェース部2は、図3に示した1394インターフェースのうち、アプリケーションレイヤ307を除く部分であり、第1通信部3及び第2通信部5は図3のアプリケーションレイヤ307に相当する。第1通信部3は、SBP−2プロトコルの制御を行い、1394インターフェース部2を介してホストから受信したSCSIコマンドを第1アプリケーション部4に引き渡し、また第1アプリケーション部4からの応答を1394インターフェース部2を介してホストに返す。第2通信部5はIPv4 over IEEE 1394の制御及びTCP/IPプロトコル制御を行い、第2アプリケーション部6とデータのやり取りを行う。第1アプリケーション部4は、受信したSCSIコマンドを処理し、例えばプリンタデバイスのコマンドPrint(オペレーションコード0x0A)を受信した場合は、印刷データを印刷制御部8に引き渡し、印刷を行う。第2アプリケーション部6は、プリントサーバアプリケーション、本実施形態においてはLPDの処理を行い、印刷データを受信すると印刷制御部8に引き渡し、印刷を行う。LPDプロトコルはRFC 1179に規定されている。
【0111】
図23は、第1の実施形態におけるネットワークの構成の一例を示す図である。本構成例では、ノードAはプリンタ、ノードB、ノードC、ノードDはPC、ノードEはプリンタ、ノードFはスキャナであり、ノードAが本発明を適用した印刷装置であるとする。また、PCのOSは、Windows(登録商標) 2000或いはWindows(登録商標) XPとし、Windows(登録商標) 2000は、IPv4 over IEEE 1394をサポートしておらず、Windows(登録商標) XPはIPv4 over IEEE 1394をサポートしており、LPDのクライアントであるLPRもサポートしているものとする。また、両OSとも、SBP−2をイニシエータとしてサポートしているものとする。
【0112】
ここで、SBP−2ターゲットデバイスは、ISO/IEC 14776−232:2001に例示されるようなコンフィギュレーションROMを持つ。ホストコンピュータは、Unit_Spec_ID、Unit_SW_VersionからSBP−2ターゲットであることを知ることができ、ユニットディレクトリの内容から、SBP−2プロトコルを用いた通信を行うために必要な情報を得ることができる。
【0113】
これに対して、IPv4 over IEEE 1394デバイスは、RFC 2732に例示されるようなコンフィギュレーションROMを持つ。バス上の他のノードは、Unit_Spec_ID、Unit_SW_Versionから、このノードがIPv4 over IEEE 1394をサポートすることを知ることができる。
【0114】
図24は、第1の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2401において、バスリセット処理を行う。ここでは、〈IEEE1394の技術の概要〉で説明した通り、バスリセット完了までの処理を行う。次に、ステップS2402において、ネットワークに接続されたすべてのノードの判別が終了したか否かを判断する。ここで、終了していなければステップS2403へ進み、各ノードのコンフィギュレーションROMを順次読み出してノードの判別を行う。この判別は、コンフィギュレーションROMの内容からホストコンピュータを判別し、IPv4 over IEEE 1394のユニットディレクトリを含むか否かを調べ、IPv4 over IEEE 1394ユニットディレクトリを含めば、IPv4 over IEEE 1394プロトコルをサポートしているホストコンピュータであると判別する。ここで、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数を更新する。
【0115】
また、ステップS2402において、すべてのノードの判別が終了した場合はステップS2404へ進み、IPv4 over IEEE 1394プロトコルを用いるか否かを判定する。この判定は、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数が2以上で等しい場合、即ち、2台以上のホストコンピュータがすべてIPv4 over IEEE 1394プロトコルをサポートする場合に、IPv4 over IEEE 1394プロトコルを用いると判定する。
【0116】
ここで、IPv4 over IEEE 1394プロトコルを用いないと判定した場合はステップS2405へ進み、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。また、IPv4 over IEEE 1394プロトコルを用いると判定した場合はステップS2406へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを含むように設定する。
【0117】
以上、設定を終えると、ステップS2407において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0118】
例えば、図23に示したネットワーク構成の場合、ノードB、ノードC、ノードD、のOSがすべてWindows(登録商標) XPの場合には、すべてのホストがIPv4 over IEEE 1394をサポートするため、第1の実施形態における印刷装置1(ノードA)は、IPv4 over IEEE 1394を用いる設定で起動する。また、ノードBのOSがWindows(登録商標) 2000の場合には、IPv4 over IEEE 1394をサポートしないホストが存在するため、SBP−2を用いる設定で起動する。
【0119】
尚、第1の実施形態では、IPv4 over IEEE 1394プロトコルを用いる場合には、IPアドレス、サブネットマスク、デフォルトゲートウェーは、予め定められたものを用いるものとする。
【0120】
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。
【0121】
第2の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第2の実施形態のネットワーク構成の一例を示す。
【0122】
図25は、第2の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2501において、第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。次に、ステップS2502において、バスリセットの処理をする。
【0123】
このバスリセットが完了すると、ステップS2503において、ネットワークに接続されたすべてのノードの判別が終了したか否かを判断する。ここで、終了していなければステップS2504へ進み、各ノードのコンフィギュレーションROMを順次読み出し、ノードの判別を行う。つまり、コンフィギュレーションROMの内容からホストコンピュータを判別し、IPv4 over IEEE 1394のユニットディレクトリを含むか否かを調べ、IPv4 over IEEE 1394ユニットディレクトリを含めばIPv4 over IEEE 1394プロトコルをサポートしているホストコンピュータであると判別する。ここで、ホストコンピュータの数とIPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数を更新する。
【0124】
また、ステップS2503において、すべてのノードの判別が終了した場合はステップS2505へ進み、IPv4 over IEEE 1394プロトコルを用いるか否かを判定する。この判定は、IPv4 over IEEE 1394プロトコルをサポートするホストコンピュータの数が1以上、即ち、1台以上のホストコンピュータがIPv4 over IEEE 1394プロトコルをサポートする場合に、IPv4 over IEEE 1394プロトコルを用いると判定する。ここで、IPv4 over IEEE 1394プロトコルを用いないと判定した場合はステップS2507へ進む。また、IPv4 over IEEE 1394プロトコルを用いると判定した場合にはステップS2506へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを追加するように設定する。
【0125】
以上、設定を終えると、ステップS2507において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0126】
例えば、図23に示したネットワーク構成の場合、ノードB、ノードC、ノードD、のOSがすべてWindows(登録商標) 2000の場合には、すべてのホストがIPv4 over IEEE 1394をサポートしないため、第2の実施形態における印刷装置1(ノードA)は、IPv4 over IEEE 1394を用いない設定で起動する。また、ノードBのOSがWindows(登録商標) XPの場合には、IPv4 over IEEE 1394をサポートするホストが存在するため、SBP−2に加えて、IPv4 over IEEE 1394を用いる設定で起動する。
【0127】
尚、第2の実施形態では、IPv4 over IEEE 1394プロトコルを用いる場合には、IPアドレス、サブネットマスク、デフォルトゲートウェーは、予め定められたものを用いるものとする。
【0128】
[第3の実施形態]
次に、図面を参照しながら本発明に係る第3の実施形態を詳細に説明する。
【0129】
第3の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第3の実施形態のネットワーク構成の一例を示す。
【0130】
図26は、第3の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2601において、IPv4 over IEEE 1394プロトコルを用いる設定か否かを判定する。ここで、用いない場合にはステップS2602へ進み、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。また、IPv4 over IEEE 1394プロトコルを用いる場合にはステップS2603へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4over IEEE 1394デバイスのユニットディレクトリを含むように設定する。
【0131】
以上、設定を終えると、ステップS2604において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0132】
第3の実施形態においては、初期状態では、IPv4 over IEEE 1394プロトコルを用いない設定になっている。従って、上記、設定部7の処理においては、SBP−2プロトコルを用いる第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定し、バスリセット完了後、起動処理を終了する。
【0133】
次に、ホストコンピュータからSBP−2プロトコルを用いて、印刷装置1の設定を切り替える処理について説明する。
【0134】
本実施形態においては、ホストコンピュータはウィンドウズ(登録商標)オペレーティングシステムが動作しており、図27に示すユーザインターフェースを持った、印刷装置1の設定アプリケーションがあるものとする。このユーザインターフェースから、ユーザが印刷装置1のIPアドレス2701、サブネットマスク2702、デフォルトゲートウェー2703を設定し、「IPv4 over IEEE 1394プロトコルを有効にする」2704にチェックを入れると、ホストコンピュータからSBP−2プロトコルを用いて印刷装置1に設定が送信される。
【0135】
図28に、第3の実施形態における設定を送信するためのコマンドORB及び設定データを示す。コマンドは、SCSIコマンドのベンダ固有(C0h)を用いる。また、設定データはASCIIテキスト文字列で“¥0”を終端とする。例えば、IPv4 over IEEE 1394プロトコルを有効にし、IPアドレスを192.168.0.5、サブネットマスクを255.255.255.0、デフォルトゲートウェーを192.168.0.254と設定する場合には、
“IPv4=enabled;IP_addr=192.168.0.5;SubnetMask=255.255.255.0;DefaultGW=192.168.0.254;”
となる。
【0136】
設定を受信すると、印刷装置1は、IPv4 over IEEE 1394プロトコルを用いる設定に変更し、装置を再起動する。再起動後、印刷装置1の設定部7は図26に示す処理に従ってIPv4 over IEEE 1394プロトコルを用いるように、第2通信部を使用可能に設定し、IPv4 over IEEE 1394プロトコルを用いる印刷装置として起動する。
【0137】
[第4の実施形態]
次に、図面を参照しながら本発明に係る第4の実施形態を詳細に説明する。
【0138】
第4の実施形態における印刷装置の構成は、第1の実施形態と同様に、図1に示す構成とする。また、図23により第4の実施形態のネットワーク構成の一例を示す。
【0139】
図29は,第4の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。まず、ステップS2901において、第1通信部を使用可能に設定し、コンフィギュレーションROMの内容にSBP−2ターゲットデバイスのユニットディレクトリを含むように設定する。次に、ステップS2902において、IPv4 over IEEE 1394プロトコルを用いる設定か否かを判定する。ここで、IPv4 over IEEE 1394プロトコルを用いない場合はステップS2904へ進み、IPv4over IEEE 1394プロトコルを用いる場合にはステップS2903へ進み、IPv4 over IEEE 1394プロトコルを用いる第2通信部を使用可能に設定し、コンフィギュレーションROMの内容にIPv4 over IEEE 1394デバイスのユニットディレクトリを追加するように設定する。
【0140】
以上、設定を終えると、ステップS2904において、バスリセットを起こし、バスリセットが完了すると起動処理を終了する。
【0141】
尚、IPv4 over IEEE 1394プロトコルの有効、無効の設定は第3の実施形態と同様に、設定アプリケーションによるものとする。
【0142】
以上説明したように、実施形態によれば、接続環境に応じて、転送効率の良いプロトコル、ネットワークプリンタとして使い勝手の良いプロトコルを自動的に切り替えて動作する印刷装置を提供することができる。
【0143】
また、別のインターフェースを追加することなく、TCP/IPネットワークのプリブート設定を簡単に行うことができる印刷装置を提供することができる。
【0144】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0145】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0146】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0147】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0148】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0149】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0150】
【発明の効果】
以上説明したように、本発明によれば、接続環境に応じて使用する通信プロトコルを自動的に或いは選択により切り替えることで、装置の利便性を向上させることができる。
【図面の簡単な説明】
【図1】本実施形態における印刷装置の構成を示すブロック図である。
【図2】1394シリアルバスのネットワークの構成を示す図である。
【図3】1394シリアルバスの構成要素を示す図である。
【図4】1394シリアルバスのリンクレイヤ提供可能なサービスを示す図である。
【図5】1394シリアルバスのトランズアクションレイヤ提供可能なサービスを示す図である。
【図6】1394インターフェースにおけるアドレス空間を説明する図である。
【図7】1394インターフェースにおけるCSRコアレジスタに格納される情報のアドレス及び機能を示す図である。
【図8】1394インターフェースにおけるシリアルバスレジスタに格納される情報のアドレス及び機能を示す図である。
【図9】1394インターフェースにおける最小形式のConfiguration ROMを示す図である。
【図10】1394インターフェースにおける一般形式のConfiguration ROMを示す図である。
【図11】1394インターフェースにおけるシリアルバス装置レジスタに格納される情報のアドレス及び機能を示す図である。
【図12】IEEE1394規格に準拠した通信ケーブルの断面図である。
【図13】DS−Link符号化方式を説明する図である。
【図14】、
【図15】、
【図16】バスリセットの開始からノードIDの割り当て処理までの基本的なシーケンスを示す図である。
【図17】図15に示したステップS1505の処理(即ち、自動的に各ノードのノードIDを割り当てる処理)を詳細に説明するフローチャートである。
【図18】1394インターフェースにおけるセルフIDパケットの構成を示す図である。
【図19】1394ネットワークにおけるアービトレーションを説明する図である。
【図20】1通信サイクルにおいてIsochronous転送モードとAsynchronous転送モードとを混在させた場合を説明する図である。
【図21】Isochronous転送モードに基づいて転送される通信パケットのフォーマットを示す図である。
【図22】アシンクロナス転送のパケットフォーマットを示す図である。
【図23】第1の実施形態におけるネットワークの構成の一例を示す図である。
【図24】第1の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図25】第2の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図26】第3の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
【図27】印刷装置1の設定アプリケーションのユーザインターフェースを示す図である。
【図28】設定を送信するためのコマンドORB及び設定データを示す図である。
【図29】第4の実施形態における印刷装置1の設定部7の処理を示すフローチャートである。
Claims (1)
- シリアルバスインターフェースと、第1のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第1の通信手段と、第2のプロトコルを用いて前記シリアルバスインターフェースを介して通信を行う第2の通信手段とを有し、シリアルバスを介して接続される1以上のホストコンピュータから印刷データを受信して印刷する印刷装置であって、
第2のプロトコルを用いるか否かを判別する判別手段と、
前記判別手段での判別結果に応じて、前記第1の通信手段又は第2の通信手段を使用可能に設定する設定手段とを有することを特徴とする印刷装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003016714A JP2004223965A (ja) | 2003-01-24 | 2003-01-24 | 印刷装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003016714A JP2004223965A (ja) | 2003-01-24 | 2003-01-24 | 印刷装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004223965A true JP2004223965A (ja) | 2004-08-12 |
Family
ID=32904083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003016714A Withdrawn JP2004223965A (ja) | 2003-01-24 | 2003-01-24 | 印刷装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004223965A (ja) |
-
2003
- 2003-01-24 JP JP2003016714A patent/JP2004223965A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4536981B2 (ja) | 情報信号処理装置及び情報信号処理方法 | |
JP4035235B2 (ja) | 電子機器 | |
JP2003044184A (ja) | データ処理装置及び電力制御方法 | |
JP4027189B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP2003174486A (ja) | 情報通信装置、情報通信方法および情報通信処理プログラム | |
JP2002077211A (ja) | 情報処理装置およびその方法、並びに、記録媒体 | |
JP4424700B2 (ja) | 情報処理装置およびその制御方法 | |
JP2001160939A (ja) | 画像処理装置及び画像処理システム、及びその制御方法 | |
JP2001274813A (ja) | 情報信号処理装置及び情報信号処理方法並びに記憶媒体 | |
JP2004223965A (ja) | 印刷装置 | |
JP2004064665A (ja) | データ転送装置及び送信装置及び受信装置及びそれらの制御方法 | |
JP4095384B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP2004102443A (ja) | 情報処理システム、情報処理方法、プログラム及び記憶媒体 | |
JP3495878B2 (ja) | データ処理方法、データ処理装置及びプリンタ | |
JP2005044078A (ja) | 通信方法、印刷装置及びホスト装置 | |
JP2003110651A (ja) | データ処理方法、データ処理装置、通信プロトコル及びプログラム | |
JP4109983B2 (ja) | 通信システム | |
JP2006134222A (ja) | 情報処理装置及び方法 | |
JP2003229857A (ja) | シリアルバスシステム、シリアルバスの帯域管理機器および通信機器 | |
JP2009027349A (ja) | ネットワーク機器 | |
JP2001144783A (ja) | シリアルバスブリッジ、端末装置、情報通信システム、情報通信方法並びに記憶媒体 | |
JP2004179898A (ja) | 画像処理装置 | |
JP2001160938A (ja) | 画像処理装置及び画像処理システム、及びその制御方法 | |
JP2004192559A (ja) | 画像処理システム | |
JPH10283136A (ja) | データ処理方法、データ処理装置、プリンタ及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |