JP2005044078A - 通信方法、印刷装置及びホスト装置 - Google Patents
通信方法、印刷装置及びホスト装置 Download PDFInfo
- Publication number
- JP2005044078A JP2005044078A JP2003201927A JP2003201927A JP2005044078A JP 2005044078 A JP2005044078 A JP 2005044078A JP 2003201927 A JP2003201927 A JP 2003201927A JP 2003201927 A JP2003201927 A JP 2003201927A JP 2005044078 A JP2005044078 A JP 2005044078A
- Authority
- JP
- Japan
- Prior art keywords
- node
- status information
- host
- printing
- printing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】接続ホストを管理するサーバー機能のような複雑な構成を備えることなく複数のホスト装置に印刷装置のステータス情報を送信できる。
【解決手段】ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおいて、印刷装置1がステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置2A、2B及び2Cに送信し、各ホスト装置で、印刷装置1のステータス情報を受信したか否かを識別情報に基づいて判別し、印刷装置1のステータス情報を受信したと判別した場合、そのステータス情報に応じた処理を行う。
【選択図】 図1
【解決手段】ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおいて、印刷装置1がステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置2A、2B及び2Cに送信し、各ホスト装置で、印刷装置1のステータス情報を受信したか否かを識別情報に基づいて判別し、印刷装置1のステータス情報を受信したと判別した場合、そのステータス情報に応じた処理を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、印刷装置のステータスを不特定のホスト装置に送信するステータス送信機能の改良に関する。
【0002】
【従来の技術】
印刷装置の多くは、接続しているホスト装置に対してビジー、エラー、用紙の有無などのステータス情報を送信する機能を備えている。また、ネットワークに接続される印刷装置の場合、不特定多数のホスト装置と接続される可能性があり、これら不特定多数のホスト装置にステータス情報を送信する必要がある。このため、ネットワークに接続する印刷装置は、接続ホスト装置の管理機能を備えたプリンタサーバーを介してネットワークに接続するか、或いは印刷装置自身がサーバー機能を備え、接続する不特定多数のホスト装置にステータス情報を送信していた。即ち、サーバー或いはサーバー機能を備えた印刷装置が、印刷装置に対してステータス応答を要求してくるホスト装置を記憶し、そのホスト装置に対してステータス情報を送信している(例えば、特許文献1参照。)。
【0003】
一方、近年IEEE1394のような簡易な構成でネットワークを構築できるインターフェースが普及してきている。このような、簡易なネットワークに接続する印刷装置においても不特定多数のホスト装置にステータス情報を送信する必要が生じている。
【0004】
【特許文献1】
特開2000−207156号公報
【0005】
【発明が解決しようとする課題】
ネットワークに接続する印刷装置において、ひとつのホスト装置のみに接続する印刷装置と同様に、接続の確立しているホスト装置に対してのみステータス情報を送信すると、他のホスト装置が印刷装置に対して接続を試みた場合に、単に接続エラーとなってしまい、事前に他のホストと接続しているというステータス情報を知ることができない問題がある。
【0006】
また、プリンタサーバーを介してのネットワークへの接続や、印刷装置自身にサーバー機能を備えることは、IEEE1394のような簡易な構成のネットワークに接続する印刷装置として、印刷装置自身にも簡易な構成を求められ、構成が複雑になるという問題がある。
【0007】
本発明は、上記課題を解決するためになされたもので、接続ホストを管理するサーバー機能のような複雑な構成を備えることなく複数のホスト装置に印刷装置のステータス情報を送信できることを目的とする。
【0008】
また本発明は、複数のホスト装置がステータス情報を受信できることを目的とする。
【0009】
更に本発明は、印刷装置と複数のホスト装置とから構成される印刷システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおける通信方法であって、ステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置に送信する工程と、各ホスト装置で、前記印刷装置のステータス情報を受信したか否かを前記識別情報に基づいて判別する工程と、前記印刷装置のステータス情報を受信した場合、前記ステータス情報に応じた処理を行う工程とを有することを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【0012】
図1は、印刷装置と複数のホスト装置とから構成される印刷システムの構成例を示す図である。本実施形態においては、ネットワークインターフェースとしてIEEE1394を用いる。本実施形態における印刷システムの構成及び動作を説明する前に、まずIEEE1394の技術概要について説明する。
【0013】
[IEEE1394の技術の概要]
以下、本実施形態でのデジタルインターフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)の詳細については、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for a High 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 Info Block1001と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(ch k)は、各ノードが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】
[印刷システム]
次に、上述したIEEE1394をネットワークインターフェースとして本実施形態における印刷システムに適用した場合について説明する。
【0111】
図1において、1は印刷装置であり、その内部には制御部11、印刷エンジン12、ステータス情報記憶部13を含む。一方、2A、2B及び2Cはそれぞれホスト装置であり、本実施形態では、パーソナルコンピュータ(PC)である。ホスト装置2A、2B及び2Cは、それぞれ制御部21A、21B及び21Cを含む。3は印刷装置1の送信するステータス情報を解釈しない、他のデバイスであり、ここではデジタルVTRとする。4A、4B、4C、4D及び4EはIEEE1394インターフェースであり、それぞれIEEE1394のケーブルで接続されている。印刷装置1の制御部11はIEEE1394インターフェース4Eを介して受信した印刷データを印刷エンジン12で印刷する際の制御を行う。また、印刷装置1の制御部は、変化する印刷装置1のステータス情報をステータス情報記憶部13に記憶する。ホスト装置2A、2B及び2Cの制御部21A、21B及び21CはIEEE1394インターフェース4A、4B及び4Cを介して印刷装置1に印刷データを送信し、また印刷装置1からステータス情報を受信する。
【0112】
尚、本実施形態においては、ホスト装置と印刷装置との間の通信プロトコルとしてSBP−2(ANSI NCITS.325−1998)を用いるものとする。ホスト装置はSBP−2におけるInitiatorであり、印刷装置はSBP−2におけるTargetであるとする。
【0113】
ホスト装置は印刷装置に印刷データを送信して印刷を行うために、まずSBP−2のアクセスプロトコルに従ってLoginリクエストを行う。印刷装置がこれを受け入れた場合は、印刷装置はLoginレスポンスをホスト装置へ返す。また受け入れられない場合には拒絶の応答をする。Loginが成功するとホスト装置は印刷装置との通信を開始し、印刷データを転送し、印刷が行われる。
【0114】
ここで、例えばホスト装置2Aが印刷装置1との通信を確立し、印刷データを転送しているときに、別のホスト装置2Bが印刷装置1にアクセスしようとすると、印刷装置1が複数のホストからの同時アクセスを受け入れないように設定していれば、ホスト装置2BのLoginリクエストは拒絶される。このとき、ホスト装置2Bは印刷装置1のステータス情報を取得し、既に通信中であることを知ることができれば、印刷装置1へのアクセスを試みることなく、印刷装置1が他のホスト装置により使用されている旨を他のホスト装置のユーザに対して知らせることができる。
【0115】
以下に、本実施形態における印刷装置1の制御部11がIEEE1394のアイソクロナスパケットを使ってステータス情報を送信する方法について説明する。
【0116】
まず、ステータス情報を送信するためのチャネルをアロケートする。このアロケートの方法は、IRM(Isochronous Resource Manager)のBANDWIDTH_AVAILABLEレジスタ及びCHANNELS_AVAILABLEレジスタにLockトランザクションを使ってアクセスしてアロケートを行う。そして、アロケートしたチャネル番号をホスト装置に知らせるために、印刷装置1にはSTATUS_CHANNELレジスタが備えられている。このSTATUS_CHANNELレジスタをIEEE1394レジスタ空間に配置し、ConfigROMからそのアドレスを知ることができるようにしておく。このSTATUS_CHANNELレジスタは、図29に示すように、チャネル有効ビット2901と、予約済み2902と、チャネル番号2903とから構成され、初期値は0、チャネルのアロケートができたならば、チャネル番号2903にアロケートしたチャネル番号を書き込み、チャネル有効ビット2901をセットする。
【0117】
次に、本実施形態において印刷装置1が送信するステータス情報送信パケットのフォーマットについて説明する。
【0118】
図23は、ステータス情報送信パケットのフォーマットを示す図である。尚、アイソクロナスパケットのフォーマットについては既に説明したので、ここでは説明しない。図23において、tagフィールド2301には0、channelフィールド2302には先にアロケートしたチャネル番号をセットする。また、data_fieldの最初のquadlet2310はsource_IDとステータス情報識別子(上位)とからなり、次のquadlet2320はステータス情報識別子(下位)からなる。ここで、source_IDフィールドには印刷装置1のNodeID、ステータス情報識別子(上位、下位)はステータス情報を判別するために予め定めておいた値をセットする。従って、channelフィールド2302のチャネル番号と、data_fieldの最初のquadlet2310と次のquadlet2320のデータにより、ステータス情報パケットを判別できる。
【0119】
ここで、本実施形態における印刷装置1の制御部11が行うステータス情報の送信処理について説明する。以下では、印刷装置1のステータスが変化したとき送信する場合と、一定周期で、定期的に送信する場合について説明する。
【0120】
まず、印刷装置1のステータスが変化した場合に、ステータス変化イベントが発生し、呼び出される送信処理を説明する。図24は、ステータス変化イベントで呼び出される送信処理を示すフローチャートである。制御部11はステップS2401に制御を進め、ステータス情報記憶部13の内容を変化したステータスに更新し、ステップS2402でステータス情報記憶部13の内容を取得する。そして、ステップS2403において、ステータス情報に応じたステータス情報パケットを先に説明したフォーマットで生成し、続くステップS2404でIEEE1394インターフェース4Eを介してアイソクロナス転送モードで送信する。
【0121】
次に、印刷装置1に一定周期でタイマーイベントが発生し、呼び出される送信処理を説明する。図25は、タイマーイベントで呼び出される送信処理を示すフローチャートである。まず、ステップS2501でステータス情報記憶部13の内容を取得する。そして、ステップS2502において、ステータス情報に応じたステータス情報パケットを先に説明したフォーマットで生成し、続くステップS2503でIEEE1394インターフェース4Eを介してアイソクロナス転送モードで送信する。
【0122】
次に、印刷装置1で送信されたアイソクロナスパケットを受信したホスト装置の制御部が行う受信処理について説明する。図26は、アイソクロナスパケットを受信するホスト装置の受信処理を示すフローチャートである。まず、ステップS2601で受信したパケットを取得し、ステップS2602でステータス情報パケットか否かをパケットヘッダのchannelフィールド2302のチャネル番号とdata_fieldの最初のquadlet2310と次のquadlet2320のデータにより、ステータス情報パケットを判別する。尚、この判別に際し、印刷装置1のSTATUS_CHANNELレジスタのチャネル番号2903を予め読んで調べておくものとする。ここで、ステータス情報であればステップS2603へ進み、ステータス情報に応じた処理を行い、そうでなければステップS2604へ進み、そのパケットに応じた処理を行う。
【0123】
次に、図1に示した機器構成での動作を、例を示して説明する。尚、各機器の電源が投入され、IEEE1394バスリセットの処理が終了しているものとする。
【0124】
まず、印刷装置1は先に説明したように、ステータス情報を送信するために、アイソクロナスチャネルをアロケートする。そして、図29に示したSTATUS_CHANNELレジスタのチャネル番号2903にアロケートしたチャネル番号をセットし、チャネルの有効ビット2901をセットした後、ステータス情報の送信を開始する。
【0125】
ホスト装置2A、2B及び2Cは印刷装置1を利用するために、予め印刷装置1のSTATUS_CHANNELレジスタの値を読んでおき、印刷装置1がステータス情報を送信するチャネル番号を知る。先に説明したように、各ホスト装置は印刷装置1から送信されるステータス情報を判別し、印刷装置のステータスを知る。
【0126】
ここで、例えばホスト装置2Aが印刷装置1に対してLoginをリクエストし、印刷装置1がホスト装置2AにLoginのレスポンスを返して通信が確立すると、印刷装置1のステータスが変化し、印刷装置1は通信中を示すステータス情報を送信する。
【0127】
このとき、ホスト装置2B及び2Cでは印刷装置が通信中であることを知り、印刷装置1へのLoginリクエストを行わず、また必要ならば、印刷装置1が他のホスト装置と通信中であることをユーザに表示する。そして、印刷装置1と通信を行わないデジタルVTR3もホスト装置2A、2B及び2Cと同様に印刷装置1のステータス情報パケットを受信している。しかし、デジタルVTR3は自身のデジタルインタフェースとしてIEEE1394のアイソクロナスチャネルのうち別のチャネル番号でチャネルをアロケートして通信を行うので、受信した印刷装置1のステータス情報パケットを不要なパケットとして破棄する。
【0128】
その後、ホスト装置2AがLogoutして印刷装置1との通信が終了すると、印刷装置1のステータスが変化して、通信待機中のステータス情報を送信し、ホスト装置2B及び2CはLoginのリクエストが可能であることを知る。
【0129】
以上、IEEE1394のアイソクロナスストリームパケットを用いて印刷装置1からホスト装置へステータス情報を送信する例について説明したが、IEEE P1394aで規定されるアシンクロナスストリームパケットを使っても同様にステータス情報を送信することができる。
【0130】
アシンクロナスストリームパケットは、アイソクロナスストリームパケットと同じフォーマットであり、図27に示すように、アイソクロナスパケットを使う場合と同様のフォーマットでステータス情報のパケットを判別可能に構成することができる。チャネルの扱いもアイソクロナスの場合と同様である。
【0131】
また、IEEE P1394aで規定されるグローバルアシンクロナスストリームパケット(GASP)を使っても同様にステータス情報を送信することができる。図28にGASPのフォーマットを示す。このフォーマットは他のパケットの場合と異なり、tagフィールドの値が3になる。またspecifier_IDはIEEEに登録されたIDでなければならない。尚、チャネルの扱いは、他と同様である。
【0132】
以上説明したように、本実施形態によれば、複雑なホスト管理の機能を備えることなく、ネットワークに接続する不特定多数のホスト装置にステータス情報を送信することができる印刷装置を提供することができ、
また、本実施形態の印刷装置が送信するステータス情報を簡単に判別して取得することができるホスト装置を提供することができる。
【0133】
また、本実施形態の印刷装置と通信を行わない他のデバイスでは、印刷装置が送信するステータス情報を受信しても、不要なものとして簡単に判別し破棄することができる。このように簡易なネットワークシステムに適した印刷システムを提供できる効果がある。
【0134】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0135】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0136】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0137】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0138】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0139】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0140】
【発明の効果】
以上説明したように、本発明によれば、接続ホストを管理するサーバー機能のような複雑な構成を備えることなく、ネットワーク接続された複数のホスト装置と印刷装置との間で印刷装置のステータス情報を送信でき、システムの利便性を向上させることができる。
【図面の簡単な説明】
【図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】アイソクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図24】ステータス変化イベントで呼び出される送信処理を示すフローチャートである。
【図25】タイマーイベントで呼び出される送信処理を示すフローチャートである。
【図26】アイソクロナスパケットを受信するホスト装置の処理を示すフローチャートである。
【図27】アシンクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図28】グローバルアシンクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図29】STATUS_CHANNELレジスタのフォーマットを示す図である。
【発明の属する技術分野】
本発明は、印刷装置のステータスを不特定のホスト装置に送信するステータス送信機能の改良に関する。
【0002】
【従来の技術】
印刷装置の多くは、接続しているホスト装置に対してビジー、エラー、用紙の有無などのステータス情報を送信する機能を備えている。また、ネットワークに接続される印刷装置の場合、不特定多数のホスト装置と接続される可能性があり、これら不特定多数のホスト装置にステータス情報を送信する必要がある。このため、ネットワークに接続する印刷装置は、接続ホスト装置の管理機能を備えたプリンタサーバーを介してネットワークに接続するか、或いは印刷装置自身がサーバー機能を備え、接続する不特定多数のホスト装置にステータス情報を送信していた。即ち、サーバー或いはサーバー機能を備えた印刷装置が、印刷装置に対してステータス応答を要求してくるホスト装置を記憶し、そのホスト装置に対してステータス情報を送信している(例えば、特許文献1参照。)。
【0003】
一方、近年IEEE1394のような簡易な構成でネットワークを構築できるインターフェースが普及してきている。このような、簡易なネットワークに接続する印刷装置においても不特定多数のホスト装置にステータス情報を送信する必要が生じている。
【0004】
【特許文献1】
特開2000−207156号公報
【0005】
【発明が解決しようとする課題】
ネットワークに接続する印刷装置において、ひとつのホスト装置のみに接続する印刷装置と同様に、接続の確立しているホスト装置に対してのみステータス情報を送信すると、他のホスト装置が印刷装置に対して接続を試みた場合に、単に接続エラーとなってしまい、事前に他のホストと接続しているというステータス情報を知ることができない問題がある。
【0006】
また、プリンタサーバーを介してのネットワークへの接続や、印刷装置自身にサーバー機能を備えることは、IEEE1394のような簡易な構成のネットワークに接続する印刷装置として、印刷装置自身にも簡易な構成を求められ、構成が複雑になるという問題がある。
【0007】
本発明は、上記課題を解決するためになされたもので、接続ホストを管理するサーバー機能のような複雑な構成を備えることなく複数のホスト装置に印刷装置のステータス情報を送信できることを目的とする。
【0008】
また本発明は、複数のホスト装置がステータス情報を受信できることを目的とする。
【0009】
更に本発明は、印刷装置と複数のホスト装置とから構成される印刷システムを提供することを目的とする。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおける通信方法であって、ステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置に送信する工程と、各ホスト装置で、前記印刷装置のステータス情報を受信したか否かを前記識別情報に基づいて判別する工程と、前記印刷装置のステータス情報を受信した場合、前記ステータス情報に応じた処理を行う工程とを有することを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照しながら本発明に係る実施の形態を詳細に説明する。
【0012】
図1は、印刷装置と複数のホスト装置とから構成される印刷システムの構成例を示す図である。本実施形態においては、ネットワークインターフェースとしてIEEE1394を用いる。本実施形態における印刷システムの構成及び動作を説明する前に、まずIEEE1394の技術概要について説明する。
【0013】
[IEEE1394の技術の概要]
以下、本実施形態でのデジタルインターフェースに適用されるIEEE1394−1995規格の技術について簡単に説明する。尚、IEEE1394−1995規格(以下、IEEE1394規格)の詳細については、1996年の8月30日にIEEE(The Institute of Electrical and Electronics Engineers, Inc.)から出版された「IEEE Standard for a High 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 Info Block1001と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(ch k)は、各ノードが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】
[印刷システム]
次に、上述したIEEE1394をネットワークインターフェースとして本実施形態における印刷システムに適用した場合について説明する。
【0111】
図1において、1は印刷装置であり、その内部には制御部11、印刷エンジン12、ステータス情報記憶部13を含む。一方、2A、2B及び2Cはそれぞれホスト装置であり、本実施形態では、パーソナルコンピュータ(PC)である。ホスト装置2A、2B及び2Cは、それぞれ制御部21A、21B及び21Cを含む。3は印刷装置1の送信するステータス情報を解釈しない、他のデバイスであり、ここではデジタルVTRとする。4A、4B、4C、4D及び4EはIEEE1394インターフェースであり、それぞれIEEE1394のケーブルで接続されている。印刷装置1の制御部11はIEEE1394インターフェース4Eを介して受信した印刷データを印刷エンジン12で印刷する際の制御を行う。また、印刷装置1の制御部は、変化する印刷装置1のステータス情報をステータス情報記憶部13に記憶する。ホスト装置2A、2B及び2Cの制御部21A、21B及び21CはIEEE1394インターフェース4A、4B及び4Cを介して印刷装置1に印刷データを送信し、また印刷装置1からステータス情報を受信する。
【0112】
尚、本実施形態においては、ホスト装置と印刷装置との間の通信プロトコルとしてSBP−2(ANSI NCITS.325−1998)を用いるものとする。ホスト装置はSBP−2におけるInitiatorであり、印刷装置はSBP−2におけるTargetであるとする。
【0113】
ホスト装置は印刷装置に印刷データを送信して印刷を行うために、まずSBP−2のアクセスプロトコルに従ってLoginリクエストを行う。印刷装置がこれを受け入れた場合は、印刷装置はLoginレスポンスをホスト装置へ返す。また受け入れられない場合には拒絶の応答をする。Loginが成功するとホスト装置は印刷装置との通信を開始し、印刷データを転送し、印刷が行われる。
【0114】
ここで、例えばホスト装置2Aが印刷装置1との通信を確立し、印刷データを転送しているときに、別のホスト装置2Bが印刷装置1にアクセスしようとすると、印刷装置1が複数のホストからの同時アクセスを受け入れないように設定していれば、ホスト装置2BのLoginリクエストは拒絶される。このとき、ホスト装置2Bは印刷装置1のステータス情報を取得し、既に通信中であることを知ることができれば、印刷装置1へのアクセスを試みることなく、印刷装置1が他のホスト装置により使用されている旨を他のホスト装置のユーザに対して知らせることができる。
【0115】
以下に、本実施形態における印刷装置1の制御部11がIEEE1394のアイソクロナスパケットを使ってステータス情報を送信する方法について説明する。
【0116】
まず、ステータス情報を送信するためのチャネルをアロケートする。このアロケートの方法は、IRM(Isochronous Resource Manager)のBANDWIDTH_AVAILABLEレジスタ及びCHANNELS_AVAILABLEレジスタにLockトランザクションを使ってアクセスしてアロケートを行う。そして、アロケートしたチャネル番号をホスト装置に知らせるために、印刷装置1にはSTATUS_CHANNELレジスタが備えられている。このSTATUS_CHANNELレジスタをIEEE1394レジスタ空間に配置し、ConfigROMからそのアドレスを知ることができるようにしておく。このSTATUS_CHANNELレジスタは、図29に示すように、チャネル有効ビット2901と、予約済み2902と、チャネル番号2903とから構成され、初期値は0、チャネルのアロケートができたならば、チャネル番号2903にアロケートしたチャネル番号を書き込み、チャネル有効ビット2901をセットする。
【0117】
次に、本実施形態において印刷装置1が送信するステータス情報送信パケットのフォーマットについて説明する。
【0118】
図23は、ステータス情報送信パケットのフォーマットを示す図である。尚、アイソクロナスパケットのフォーマットについては既に説明したので、ここでは説明しない。図23において、tagフィールド2301には0、channelフィールド2302には先にアロケートしたチャネル番号をセットする。また、data_fieldの最初のquadlet2310はsource_IDとステータス情報識別子(上位)とからなり、次のquadlet2320はステータス情報識別子(下位)からなる。ここで、source_IDフィールドには印刷装置1のNodeID、ステータス情報識別子(上位、下位)はステータス情報を判別するために予め定めておいた値をセットする。従って、channelフィールド2302のチャネル番号と、data_fieldの最初のquadlet2310と次のquadlet2320のデータにより、ステータス情報パケットを判別できる。
【0119】
ここで、本実施形態における印刷装置1の制御部11が行うステータス情報の送信処理について説明する。以下では、印刷装置1のステータスが変化したとき送信する場合と、一定周期で、定期的に送信する場合について説明する。
【0120】
まず、印刷装置1のステータスが変化した場合に、ステータス変化イベントが発生し、呼び出される送信処理を説明する。図24は、ステータス変化イベントで呼び出される送信処理を示すフローチャートである。制御部11はステップS2401に制御を進め、ステータス情報記憶部13の内容を変化したステータスに更新し、ステップS2402でステータス情報記憶部13の内容を取得する。そして、ステップS2403において、ステータス情報に応じたステータス情報パケットを先に説明したフォーマットで生成し、続くステップS2404でIEEE1394インターフェース4Eを介してアイソクロナス転送モードで送信する。
【0121】
次に、印刷装置1に一定周期でタイマーイベントが発生し、呼び出される送信処理を説明する。図25は、タイマーイベントで呼び出される送信処理を示すフローチャートである。まず、ステップS2501でステータス情報記憶部13の内容を取得する。そして、ステップS2502において、ステータス情報に応じたステータス情報パケットを先に説明したフォーマットで生成し、続くステップS2503でIEEE1394インターフェース4Eを介してアイソクロナス転送モードで送信する。
【0122】
次に、印刷装置1で送信されたアイソクロナスパケットを受信したホスト装置の制御部が行う受信処理について説明する。図26は、アイソクロナスパケットを受信するホスト装置の受信処理を示すフローチャートである。まず、ステップS2601で受信したパケットを取得し、ステップS2602でステータス情報パケットか否かをパケットヘッダのchannelフィールド2302のチャネル番号とdata_fieldの最初のquadlet2310と次のquadlet2320のデータにより、ステータス情報パケットを判別する。尚、この判別に際し、印刷装置1のSTATUS_CHANNELレジスタのチャネル番号2903を予め読んで調べておくものとする。ここで、ステータス情報であればステップS2603へ進み、ステータス情報に応じた処理を行い、そうでなければステップS2604へ進み、そのパケットに応じた処理を行う。
【0123】
次に、図1に示した機器構成での動作を、例を示して説明する。尚、各機器の電源が投入され、IEEE1394バスリセットの処理が終了しているものとする。
【0124】
まず、印刷装置1は先に説明したように、ステータス情報を送信するために、アイソクロナスチャネルをアロケートする。そして、図29に示したSTATUS_CHANNELレジスタのチャネル番号2903にアロケートしたチャネル番号をセットし、チャネルの有効ビット2901をセットした後、ステータス情報の送信を開始する。
【0125】
ホスト装置2A、2B及び2Cは印刷装置1を利用するために、予め印刷装置1のSTATUS_CHANNELレジスタの値を読んでおき、印刷装置1がステータス情報を送信するチャネル番号を知る。先に説明したように、各ホスト装置は印刷装置1から送信されるステータス情報を判別し、印刷装置のステータスを知る。
【0126】
ここで、例えばホスト装置2Aが印刷装置1に対してLoginをリクエストし、印刷装置1がホスト装置2AにLoginのレスポンスを返して通信が確立すると、印刷装置1のステータスが変化し、印刷装置1は通信中を示すステータス情報を送信する。
【0127】
このとき、ホスト装置2B及び2Cでは印刷装置が通信中であることを知り、印刷装置1へのLoginリクエストを行わず、また必要ならば、印刷装置1が他のホスト装置と通信中であることをユーザに表示する。そして、印刷装置1と通信を行わないデジタルVTR3もホスト装置2A、2B及び2Cと同様に印刷装置1のステータス情報パケットを受信している。しかし、デジタルVTR3は自身のデジタルインタフェースとしてIEEE1394のアイソクロナスチャネルのうち別のチャネル番号でチャネルをアロケートして通信を行うので、受信した印刷装置1のステータス情報パケットを不要なパケットとして破棄する。
【0128】
その後、ホスト装置2AがLogoutして印刷装置1との通信が終了すると、印刷装置1のステータスが変化して、通信待機中のステータス情報を送信し、ホスト装置2B及び2CはLoginのリクエストが可能であることを知る。
【0129】
以上、IEEE1394のアイソクロナスストリームパケットを用いて印刷装置1からホスト装置へステータス情報を送信する例について説明したが、IEEE P1394aで規定されるアシンクロナスストリームパケットを使っても同様にステータス情報を送信することができる。
【0130】
アシンクロナスストリームパケットは、アイソクロナスストリームパケットと同じフォーマットであり、図27に示すように、アイソクロナスパケットを使う場合と同様のフォーマットでステータス情報のパケットを判別可能に構成することができる。チャネルの扱いもアイソクロナスの場合と同様である。
【0131】
また、IEEE P1394aで規定されるグローバルアシンクロナスストリームパケット(GASP)を使っても同様にステータス情報を送信することができる。図28にGASPのフォーマットを示す。このフォーマットは他のパケットの場合と異なり、tagフィールドの値が3になる。またspecifier_IDはIEEEに登録されたIDでなければならない。尚、チャネルの扱いは、他と同様である。
【0132】
以上説明したように、本実施形態によれば、複雑なホスト管理の機能を備えることなく、ネットワークに接続する不特定多数のホスト装置にステータス情報を送信することができる印刷装置を提供することができ、
また、本実施形態の印刷装置が送信するステータス情報を簡単に判別して取得することができるホスト装置を提供することができる。
【0133】
また、本実施形態の印刷装置と通信を行わない他のデバイスでは、印刷装置が送信するステータス情報を受信しても、不要なものとして簡単に判別し破棄することができる。このように簡易なネットワークシステムに適した印刷システムを提供できる効果がある。
【0134】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0135】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【0136】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0137】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0138】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0139】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0140】
【発明の効果】
以上説明したように、本発明によれば、接続ホストを管理するサーバー機能のような複雑な構成を備えることなく、ネットワーク接続された複数のホスト装置と印刷装置との間で印刷装置のステータス情報を送信でき、システムの利便性を向上させることができる。
【図面の簡単な説明】
【図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】アイソクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図24】ステータス変化イベントで呼び出される送信処理を示すフローチャートである。
【図25】タイマーイベントで呼び出される送信処理を示すフローチャートである。
【図26】アイソクロナスパケットを受信するホスト装置の処理を示すフローチャートである。
【図27】アシンクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図28】グローバルアシンクロナスパケットを用いたステータス情報パケットのフォーマットを示す図である。
【図29】STATUS_CHANNELレジスタのフォーマットを示す図である。
Claims (10)
- ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおける通信方法であって、
ステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置に送信する工程と、
各ホスト装置で、前記印刷装置のステータス情報を受信したか否かを前記識別情報に基づいて判別する工程と、
前記印刷装置のステータス情報を受信した場合、前記ステータス情報に応じた処理を行う工程とを有することを特徴とする通信方法。 - 前記ネットワークインターフェースはIEEE1394であることを特徴とする請求項1に記載の通信方法。
- 前記ステータス情報はアイソクロナスストリームパケットを用いて送信されることを特徴とする請求項2に記載の通信方法。
- 前記ステータス情報はアシンクロナスストリームパケットを用いて送信されることを特徴とする請求項2に記載の通信方法。
- 前記アシンクロナスストリームパケットはグローバルアシンクロナスストリームパケットであることを特徴とする請求項4に記載の通信方法。
- ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおける印刷装置であって、
ステータス情報を識別するための識別情報を含む印刷装置のステータス情報を複数のホスト装置に送信する送信手段を有することを特徴とする印刷装置。 - ネットワークインターフェースを介して複数のホスト装置と印刷装置とが接続された印刷システムにおけるホスト装置であって、
前記印刷装置からステータス情報を識別するための識別情報を含むステータス情報を受信したか否かを前記識別情報に基づいて判別する判別手段と、
前記印刷装置からステータス情報を受信した場合、前記ステータス情報に応じた処理を行う処理手段とを有することを特徴とするホスト装置。 - 請求項6に記載の印刷装置と請求項7に記載の複数のホスト装置とから構成される印刷システム。
- コンピュータに請求項1に記載の通信方法を実行させるためのプログラム。
- 請求項9に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003201927A JP2005044078A (ja) | 2003-07-25 | 2003-07-25 | 通信方法、印刷装置及びホスト装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003201927A JP2005044078A (ja) | 2003-07-25 | 2003-07-25 | 通信方法、印刷装置及びホスト装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005044078A true JP2005044078A (ja) | 2005-02-17 |
Family
ID=34261845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003201927A Pending JP2005044078A (ja) | 2003-07-25 | 2003-07-25 | 通信方法、印刷装置及びホスト装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005044078A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006233442A (ja) * | 2005-02-22 | 2006-09-07 | Yoshiki Electronics Industrial Co Ltd | 電子ロッカー開閉制御装置 |
-
2003
- 2003-07-25 JP JP2003201927A patent/JP2005044078A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006233442A (ja) * | 2005-02-22 | 2006-09-07 | Yoshiki Electronics Industrial Co Ltd | 電子ロッカー開閉制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4035235B2 (ja) | 電子機器 | |
JP4536981B2 (ja) | 情報信号処理装置及び情報信号処理方法 | |
JP4027189B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
US6963938B2 (en) | Information processing apparatus and method therefor | |
JP3630971B2 (ja) | データ通信方法、装置、システム、及び記憶媒体 | |
JP4424700B2 (ja) | 情報処理装置およびその制御方法 | |
JP2001160939A (ja) | 画像処理装置及び画像処理システム、及びその制御方法 | |
JP2001274813A (ja) | 情報信号処理装置及び情報信号処理方法並びに記憶媒体 | |
JP2001275066A (ja) | 画像処理装置およびその方法、並びに、記憶媒体 | |
JP2004064665A (ja) | データ転送装置及び送信装置及び受信装置及びそれらの制御方法 | |
JP2005044078A (ja) | 通信方法、印刷装置及びホスト装置 | |
JP2003229857A (ja) | シリアルバスシステム、シリアルバスの帯域管理機器および通信機器 | |
JP4109983B2 (ja) | 通信システム | |
JP4095384B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP3495878B2 (ja) | データ処理方法、データ処理装置及びプリンタ | |
JP2004102443A (ja) | 情報処理システム、情報処理方法、プログラム及び記憶媒体 | |
JP2003110651A (ja) | データ処理方法、データ処理装置、通信プロトコル及びプログラム | |
JP3495879B2 (ja) | データ処理方法、データ処理装置、及びコンピュータ読み取り可能な記録媒体 | |
JP2009027349A (ja) | ネットワーク機器 | |
JP2006134222A (ja) | 情報処理装置及び方法 | |
JP3897773B2 (ja) | 通信方法及び通信装置 | |
JP2004179898A (ja) | 画像処理装置 | |
JP2004223965A (ja) | 印刷装置 | |
JPH11177589A (ja) | データ転送装置およびデータ転送装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2001160938A (ja) | 画像処理装置及び画像処理システム、及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090209 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090612 |