(57)【要約】【課題】  データ処理装置とこのデータ処理装置と接続されている通信制御装置とがネットワークアドレスを共有して使用する為に、これらの装置の処理負荷を軽減させる為の技術を提供すること。【解決手段】  特定のアドレスが外部装置によって使用されているかを確認するためにネットワークに送信されるべき重複アドレス検出データをプリンタコントローラ１６００から受信するのに従って、プリンタコントローラ１６００のアドレス情報を要求する。この要求に応じてプリンタコントローラ１６００から送信されたアドレスをネットワークカードデバイス１５００側に登録する。【選択図】  図１
2008033693.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して外部機器とのデータ通信を行う通信制御装置であって、
前記ネットワークを介して前記外部機器と通信する場合に使用される、前記通信制御装置に割り当てられたネットワークアドレスを保持する保持手段と、
特定のネットワークアドレスが前記外部装置によって使用されているかを確認するために前記ネットワークに送信されるべき重複アドレス検出データを前記通信制御装置と接続されているデータ処理装置から受信するのに従って、前記データ処理装置側に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記データ処理装置に要求する要求手段と、
前記要求に応じて前記データ処理装置から送信されたネットワークアドレス情報が示すネットワークアドレスを前記保持手段に登録する登録手段と
を備えることを特徴とする通信制御装置。
【請求項２】
更に、
前記保持手段が保持するネットワークアドレスと、前記要求に応じて前記データ処理装置から送信されたネットワークアドレスと、を比較する比較手段と、
前記比較手段による比較が一致した場合には、前記要求に応じて前記データ処理装置から取得したネットワークアドレスを破棄する手段とを備え、
前記比較手段による比較が一致しない場合には、前記登録手段は、前記要求に応じて前記データ処理装置から送信されたネットワークアドレスを前記保持手段に登録することを特徴とする請求項１に記載の通信制御装置。
【請求項３】
請求項１又は２に記載の通信制御装置と接続されているデータ処理装置であって、
前記ネットワークを介して前記外部装置と通信する場合に使用される、前記データ処理装置に割り当てられたネットワークアドレスを保持する第２の保持手段と、
前記重複アドレス検出データを前記外部装置に送信するよう前記通信制御装置を制御する制御手段と、
前記重複アドレス検出データを前記外部装置に送信した結果、前記特定のネットワークアドレスを前記外部装置が使用していることを示すデータが前記外部装置から返信されなかった場合には、前記特定のネットワークアドレスを、前記第２の保持手段に登録する登録制御手段と、
前記要求を前記通信制御装置から受けた場合には、前記第２の保持手段に保持されているネットワークアドレスを示すネットワーク情報を前記通信制御装置に送出する手段と
を備えることを特徴とするデータ処理装置。
【請求項４】
更に、
前記データが前記外部装置から返信された場合には、前記特定のネットワークアドレスを破棄する手段を備えることを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
ネットワークを介して外部機器とのデータ通信を行う通信制御装置の制御方法であって、
特定のネットワークアドレスが前記外部装置によって使用されているかを確認するために前記ネットワークに送信されるべき重複アドレス検出データを前記通信制御装置と接続されているデータ処理装置から受信するのに従って、前記データ処理装置に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記データ処理装置に要求する要求工程と、
前記要求に応じて前記データ処理装置から送信されたネットワークアドレス情報が示すネットワークアドレスを、前記ネットワークを介して前記外部機器と通信する場合に使用される、前記通信制御装置に割り当てられたネットワークアドレスとして登録する登録工程と
を備えることを特徴とする通信制御装置の制御方法。
【請求項６】
請求項１又は２に記載の通信制御装置が着脱可能に装着されているデータ処理装置の制御方法であって、
前記重複アドレス検出データを前記外部装置に送信するよう前記通信制御装置を制御する制御工程と、
前記重複アドレス検出データを前記外部装置に送信した結果、前記重複アドレス検出データに含まれているネットワークアドレスを前記外部装置が使用していることを示すデータが前記外部装置から返信されなかった場合には、前記特定のネットワークアドレスを、前記ネットワークを介して前記外部装置と通信する場合に使用される、前記データ処理装置に割り当てられたネットワークアドレスとして登録する登録制御工程と、
前記要求を前記通信制御装置から受けた場合には、前記データ処理装置に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記通信制御装置に送出する工程と
を備えることを特徴とするデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置と接続可能な、ネットワークカードデバイスに代表される通信制御装置、及びこのデータ処理装置、並びにこれらの制御方法に関するものである。
【背景技術】
【０００２】
印刷装置と接続可能な、印刷装置のための所望の追加機能性を備えるインテリジェント型ネットワークカードデバイスを用いるという手法が提案されている。
【０００３】
この場合、印刷装置本体とネットワークカードデバイスは個々にＣＰＵを持ったインテリジェントな形態であり、通常、ネットワークカードデバイス側にネットワーク経由での各種プリントサービスの統括制御を行うプリントサーバ機能を備えている。そして、印刷装置とネットワークカードデバイスとは接続インターフェイスを介して通信を行うことで所望のサービスを実装している。
【０００４】
ここで、上記のネットワークカードデバイスは、上記の印刷装置と同じネットワークアドレス(例えばＩＰアドレス)を使用してネットワーク上の通信端末と通信を行なうことを特徴とする。このことは、ネットワーク上に存在する他の通信端末から見た場合、印刷装置とネットワークカードデバイスとがネットワーク上に存在するただ１つの通信端末として認識されることを意味している。これにより、ネットワークカードデバイス側に備えられたプリントサーバ機能などのサービスが、あたかも印刷装置本体に追加拡張されたサービスであるかのように振舞うことを可能としている。
【特許文献１】特開２００５−０３８０１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のネットワークカードデバイスおよび印刷装置がネットワーク上の外部装置と通信を行う際には、ＴＣＰ／ＩＰなどのネットワーク・プロトコルが用いられる。ＴＣＰ／ＩＰ通信において使用されるネットワーク層のプロトコルとして近年、Internet Engineering Task Force（ＩＥＴＦ）によって、バージョン６のＩＰ（以下、ＩＰｖ６）が提案されている。ＩＰｖ６は、現在普及しているバージョン４のＩＰ（以下、ＩＰｖ４）からＩＰアドレス空間を拡張したものであり、それにより、インターネット世界の急速な広がりによる、グローバルアドレスの枯渇問題に対処するものである。
【０００６】
ＩＰｖ６プロトコルでは、ある特定のネットワークプレフィクスにＩＥＥＥ識別子（ＭＡＣアドレス）から生成したインターフェイス識別子をつなげて自動生成するリンクローカルアドレスというものが存在する。更に、ルータから広告されたネットワークプレフィックスにＩＥＥＥ識別子（ＭＡＣアドレス）から生成したインターフェイス識別子をつなげて生成するステートレスアドレスや、ＤＨＣＰから指定されるステートフルアドレスなども存在する。
【０００７】
ＩＰｖ６プロトコルでは、１つの物理インターフェイスに対してこれら複数のネットワークアドレスを付与することが可能となっている。また、このネットワークアドレスは、ユーザによる手動設定やルータからの広告により、起動中はいつでもアドレスが追加・変更される可能性がある。
【０００８】
そのため、上述の印刷装置およびネットワークカードデバイスがＩＰｖ６プロトコルに対応した場合、両者が常に全て同じネットワークアドレスを使用することを可能とするような機構が求められる。
【０００９】
そのための手段として先ず印刷装置側で、新たなネットワークアドレスを取得・生成した場合に、その都度、ネットワークカードデバイスに対して所定の手段で通知するという手法が考えられる。
【００１０】
しかしながら印刷装置から見ると、自身が備える接続インターフェイスに常にネットワークカードデバイスが装着されているとは限らない。更に、装着されるネットワークカードデバイスに関しても、様々な種類のネットワークカードデバイスが存在する。例えばネットワーク・プロトコルにおける物理層しか備えていないネットワークカードデバイスの場合、ネットワークアドレスは不要であり、印刷装置からネットワークアドレスを受け取る手段自体を備えていない場合もある。
【００１１】
従って、上述の手法を採用した場合、印刷装置はまず、自身の接続インターフェイスに何らかのネットワークカードデバイスが装着されているかどうかを判定する必要が生じる。更に、装着されていた場合には、そのネットワークカードデバイスの種別を判定し、ネットワークアドレスを必要とするネットワークカードデバイスであった場合にのみ実際にネットワークアドレスを通知する、という処理が必要となる。
【００１２】
そもそも、ネットワークカードデバイスは印刷装置の拡張オプションとして提供されるものである。それにも関わらず、印刷装置側でネットワークカードデバイスの種別などを意識し、その種別に応じた振る舞いをするということは、新たなネットワークカードデバイスが出る度に、印刷装置側での個別対応が必要となる可能性を含んでいる。そのような事態は望ましくない。
【００１３】
その他の手段として、ネットワークカードデバイス側で、印刷装置とネットワーク上の通信端末との間の通信を常に監視し、通信パケットのヘッダ情報から印刷装置のネットワークアドレスを抽出するという方法が考えられる。
【００１４】
この方法によれば、ネットワークカードデバイスは、印刷装置が新たなネットワークアドレスを使用開始した場合にも、印刷装置側に意識させることなく、そのネットワークアドレスを取得することが可能となる。そのため、印刷装置は主体的にネットワークカードデバイスの種別を判別して何らかの処理を行なう必要は無くなる。
【００１５】
しかしながら、この方法では、例えば、印刷装置においてあるネットワークアドレスの値が別の値に変更された場合に、ネットワークカードデバイス側でその変更を認識することが出来ないという問題が残される。
【００１６】
例えば、印刷装置に割り当てられていたネットワークアドレスＡ及びネットワークアドレスＢのうち、ネットワークアドレスＡがネットワークアドレスＣに変更された場合を考える。この場合において、ネットワークデバイスは、ネットワークアドレスＣが新たに追加されたのか、ネットワークアドレスＣがネットワークアドレスＡから変更されたのかを区別できない。
【００１７】
これらの問題点を解決する為の手段の１つとして、印刷装置側でネットワークアドレスを取得・生成し、ネットワークカードデバイスは必要であれば自ら所定の方法で印刷装置にネットワークアドレスを問い合わせる、という方法が考えられる。ここで、具体的な問い合わせ方法としては、例えばＭＩＢ(Management Information Base)を用いる方法が挙げられる。印刷装置はＭＩＢエージェント機能を備え、ネットワークカードデバイスはＭＩＢクライアント機能を備える。
【００１８】
ネットワークカードデバイスは、印刷装置のＭＩＢエージェントにネットワークアドレス情報の問い合わせを行い、取得した全てのネットワークアドレスを自身のネットワークアドレスとして使用する。この方法によれば、まず、印刷装置は主体的にネットワークカードデバイスの種別を判別して何らかの処理を行なう必要が無くなる。更に、印刷装置においてあるネットワークアドレスの値が変更された場合にも、その変更をネットワークカードデバイス側で認識することが可能となる。
【００１９】
しかしながら、この方法においても、以下のような新たな問題点がある。
【００２０】
すでに述べたように、ＩＰｖ６プロトコルにおいては、ネットワークアドレスは常に追加・変更される可能性がある。そのため、上記手段を採用した場合、ネットワークカードデバイスは起動中は常に、一定期間毎にネットワークアドレス情報の問い合わせを印刷装置に対して行い続ける必要が生じる。
【００２１】
すなわち、ネットワークカードデバイスは一定期間ごとに印刷装置に対してＭＩＢなどの問い合わせ手段でネットワークアドレスを全て取得し、前回取得した際の情報から変更が無いかどうかを判断する。そしてこの判断の結果、変更があった場合には、新たなアドレス情報をネットワークカードデバイス自身のネットワークアドレスとして設定する、という処理を繰り返し行い続ける必要がある。
【００２２】
起動中にこのような処理を繰り返し行い続けることは、ネットワークカードデバイスにおいても印刷装置においても作業負荷が高い。更に、アドレスの設定がそれほど頻繁には変更されない環境などにおいては、ほとんどの問い合わせは実際には不必要なものとなることが多く、冗長性が高い。
【００２３】
本発明は以上の問題に鑑みてなされたものであり、データ処理装置とこのデータ処理装置と接続されている通信制御装置とがネットワークアドレスを共有して使用する為に、これらの装置の処理負荷を軽減させる為の技術を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明の目的を達成するために、例えば、本発明の通信制御装置は以下の構成を備える。
【００２５】
即ち、ネットワークを介して外部機器とのデータ通信を行う通信制御装置であって、
前記ネットワークを介して前記外部機器と通信する場合に使用される、前記通信制御装置に割り当てられたネットワークアドレスを保持する保持手段と、
特定のネットワークアドレスが前記外部装置によって使用されているかを確認するために前記ネットワークに送信されるべき重複アドレス検出データを前記通信制御装置と接続されているデータ処理装置から受信するのに従って、前記データ処理装置側に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記データ処理装置に要求する要求手段と、
前記要求に応じて前記データ処理装置から送信されたネットワークアドレス情報が示すネットワークアドレスを前記保持手段に登録する登録手段と
を備えることを特徴とする。
【００２６】
本発明の目的を達成するために、例えば、本発明のデータ処理装置は以下の構成を備える。
【００２７】
即ち、上記通信制御装置と接続されているデータ処理装置であって、
前記ネットワークを介して前記外部装置と通信する場合に使用される、前記データ処理装置に割り当てられたネットワークアドレスを保持する第２の保持手段と、
前記重複アドレス検出データを前記外部装置に送信するよう前記通信制御装置を制御する制御手段と、
前記重複アドレス検出データを前記外部装置に送信した結果、前記特定のネットワークアドレスを前記外部装置が使用していることを示すデータが前記外部装置から返信されなかった場合には、前記特定のネットワークアドレスを、前記第２の保持手段に登録する登録制御手段と、
前記要求を前記通信制御装置から受けた場合には、前記第２の保持手段に保持されているネットワークアドレスを示すネットワーク情報を前記通信制御装置に送出する手段と
を備えることを特徴とする。
【００２８】
本発明の目的を達成するために、例えば、本発明の通信制御装置の制御方法は以下の構成を備える。
【００２９】
即ち、ネットワークを介して外部機器とのデータ通信を行う通信制御装置の制御方法であって、
特定のネットワークアドレスが前記外部装置によって使用されているかを確認するために前記ネットワークに送信されるべき重複アドレス検出データを前記通信制御装置と接続されているデータ処理装置から受信するのに従って、前記データ処理装置に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記データ処理装置に要求する要求工程と、
前記要求に応じて前記データ処理装置から送信されたネットワークアドレス情報が示すネットワークアドレスを、前記ネットワークを介して前記外部機器と通信する場合に使用される、前記通信制御装置に割り当てられたネットワークアドレスとして登録する登録工程と
を備えることを特徴とする。
【００３０】
本発明の目的を達成するために、例えば、本発明のデータ処理装置の制御方法は以下の構成を備える。
【００３１】
即ち、上記通信制御装置が着脱可能に装着されているデータ処理装置の制御方法であって、
前記重複アドレス検出データを前記外部装置に送信するよう前記通信制御装置を制御する制御工程と、
前記重複アドレス検出データを前記外部装置に送信した結果、前記重複アドレス検出データに含まれているネットワークアドレスを前記外部装置が使用していることを示すデータが前記外部装置から返信されなかった場合には、前記特定のネットワークアドレスを、前記ネットワークを介して前記外部装置と通信する場合に使用される、前記データ処理装置に割り当てられたネットワークアドレスとして登録する登録制御工程と、
前記要求を前記通信制御装置から受けた場合には、前記データ処理装置に割り当てられたネットワークアドレスを示すネットワークアドレス情報を前記通信制御装置に送出する工程と
を備えることを特徴とする。
【発明の効果】
【００３２】
本発明の構成によれば、データ処理装置とこのデータ処理装置と接続されている通信制御装置とがネットワークアドレスを共有して使用する為に、これらの装置の処理負荷を軽減させることができる。
【発明を実施するための最良の形態】
【００３３】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００３４】
［第１の実施形態］
図１は、本発明に係るデータ処理装置の好適な適用対象としての印刷装置（プリンタ）１０００のハードウェア構成を示すブロック図である。
【００３５】
なお、同図には以下の説明で用いるハードウェア部分以外は省略している。即ち同図には、印刷装置１０００に対して着脱可能に装着されている、本発明に係る通信制御装置の好適な適用対象としてのネットワークカードデバイス１５００と、印刷装置１０００本体側に設けられているプリンタコントローラ１６００とが示されている。
【００３６】
先ず、ネットワークカードデバイス１５００について説明する。ＣＰＵ１は、フラッシュメモリとしてのフラッシュＲＯＭ（FlashROM）３に格納されてるプログラムやデータを用いて、システムバス４に接続されている各部の動作制御を行う。
【００３７】
フラッシュＲＯＭ３には、図５〜７に示すフローチャートに従った処理をＣＰＵ１に実行させるためのプログラムやデータが格納されている。更に、フラッシュＲＯＭ３には、ＭＩＢ（Management Information Base ）クライアントプログラムも記憶されている。このＭＩＢクライアントプログラムは、拡張インターフェイス１７を介してプリンタコントローラ１６００側に格納されているＭＩＢエージェントプログラムとの間で通信を行い、プリンタ１０００に関する設定情報を取得するものである。
【００３８】
ネットワークコントローラ（ＬＡＮＣ）５は、ローカルエリアネットワーク（ＬＡＮ）２０００に接続されたホストコンピュータ等の複数の外部装置（不図示）と所定のネットワーク通信プロトコルを用いて通信を行う。具体的には、ＬＡＮＣ５はＬＡＮ２０００上の外部装置から送信される印刷データやプリンタ制御命令等の各種データを受信したりする送受信処理を行う。
【００３９】
拡張インターフェイスコントローラ（ＥＸＰＣ）７は、拡張インターフェイス１７を介して接続されているプリンタコントローラ１６００との間でのデータの送受信を行う。例えば、ＬＡＮＣ５が外部装置から受けた印刷データを受け、これをプリンタコントローラ１６００側に送信する処理を行う。
【００４０】
ＲＡＭ２は、ＣＰＵ１が各種の処理を実行する際に用いるワークエリアを有すると共に、各種のデータを一時的に記憶するためのエリアを有する。例えばＲＡＭ２は、図２に示すネットワークアドレステーブル２０１を記憶する。
【００４１】
図２は、ネットワークアドレステーブル２０１の構成例を示す図である。図２に示す如く、ネットワークアドレステーブル２０１には複数のネットワークアドレスが登録されている。これらはいずれも、ネットワークカードデバイス１５００に割り当てられたネットワークアドレスである。従って、ネットワークカードデバイス１５００は、図２に示すネットワークアドレステーブル２０１に登録されているそれぞれのネットワークアドレスを使用して、外部装置とのデータ通信を行うことができる。図２の例においては、ネットワークアドレステーブル２０１には”fe80::200:10:1”と”3ffe::200:10:1”という２つのネットワークアドレスが登録されている。従って、ネットワークカードデバイス１５００はこの２つのネットワークアドレスを使用してＬＡＮ２０００上の外部装置と通信を行なうことができる。
【００４２】
ＬＥＤ６は、ネットワークカードデバイス１５００の動作状態を示す表示部として用いられている。例えばＬＡＮＣ５とＬＡＮ２０００との電気的な接続状態（LINK）やネットワーク通信モード（10Baseや100Base、全二重、半二重）等の各種動作状態を、このＬＥＤ６の点滅パターンや色で表示することができる。
【００４３】
また、このネットワークカードデバイス１５００とプリンタコントローラ１６００を繋ぐ拡張インターフェイス１７は、図示しないコネクタで構成されており、ネットワークカードデバイス１５００のみが着脱される。これにより、同じ構成を持つ別のプリンタ１０００にネットワークカードデバイス１５００を装着することも可能な構成となっている。
【００４４】
次にプリンタコントローラ１６００について説明する。ＣＰＵ８は、ＲＡＭ１４やＲＯＭ９、外部メモリ１０に格納されているプログラムやデータ、拡張インターフェイスコントローラ（ＥＸＰＣ）１３を介して受信したデータを用いて、システムバス１１に接続されている各部の動作制御を行う。
【００４５】
外部メモリ１０には、プリンタ１０００に関する設定情報が記述されたデータベース（ＭＩＢ）と、ＭＩＢエージェント機能を実現するプログラム（ＭＩＢエージェントプログラム）も記憶されている。このＭＩＢエージェントプログラムは上記ＭＩＢクライアントプログラムから問い合わせを受けると、上記データベースに登録されている情報のうち問い合わせに対応する情報（プリンタ１０００の設定情報）を返信する。
【００４６】
外部メモリ１０への情報の書き込みや、外部メモリ１０から情報の読み出しの為の外部メモリ１０へのアクセス制御についてはディスクコントローラ（ＤＫＣ）１５が行う。
【００４７】
拡張インターフェイスコントローラ１３は、インターフェイス１７を介してネットワークカードデバイス１５００のＥＸＰＣ７とのデータ通信を行うものであり、例えば、ＥＸＰＣ７から供給される印刷データを受信する。ラスタコントローラ１２は、その印刷データを基に画像情報を生成し、生成した画像情報に基づいた画像信号をプリントエンジン１６に対して出力する。
【００４８】
ＣＰＵ８の主メモリ、ワークエリア等として機能するＲＡＭ１４は、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。また、ＲＡＭ１４は、図３に示すネットワークアドレステーブル３０１を記憶する。
【００４９】
図３は、ネットワークアドレステーブル３０１の構成例を示す図である。図３に示す如く、ネットワークアドレステーブル３０１には複数のネットワークアドレスが登録されており、これらは、プリンタコントローラ１６００に割り当てられたネットワークアドレスである。従って、プリンタコントローラ１６００は図３に示すネットワークアドレステーブル３０１に登録されているそれぞれのネットワークアドレスを使用し、ネットワークカードデバイス１５００を介して、外部装置とのデータ通信を行うことができる。図３の例においては、ネットワークアドレステーブル３０１には”fe80::200:10:1”と”3ffe::200:10:1”という２つのネットワークアドレスが登録されている。従って、プリンタコントローラ１６００はネットワークカードデバイス１５００を介して、この２つのネットワークアドレスを使用してＬＡＮ２０００上の外部装置と通信を行なうことができる。
【００５０】
なお、ネットワークアドレステーブル３０１に登録されているネットワークアドレスの情報は、外部メモリ１０に格納されている上述のデータベース（ＭＩＢ）にも随時、ＣＰＵ８によって反映される。従って、ＭＩＢクライアントプログラムがＭＩＢエージェントプログラムに問い合わせを行うと、このＭＩＢエージェントプログラムは、ネットワークアドレステーブル３０１に登録されているネットワークアドレスを示すネットワークアドレス情報を取得することができる。
【００５１】
操作パネル（操作部）１８は、プリンタ１０００の動作モード等の設定や印刷データの取り消し等の操作を行うためのボタン、プリンタ１０００の動作状態を示す液晶パネルやＬＥＤ等の表示部を有している。
【００５２】
プリントエンジン１６は、既知の印刷技術を利用して、ＥＸＰＣ７が受信した印刷データに基づいた印刷を行う。好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華（熱転写）方式等が挙げられる。
【００５３】
次に、以下の処理で用いる重複アドレス検出 (Duplicate Address Detection; DAD) 機能について説明する。
【００５４】
重複アドレス検出機能とは、ＩＰｖ６プロトコルで新たに追加された機能であり、ＩＰｖ６アドレスを追加する際に、そのＩＰｖ６アドレスが同一リンク上の他の端末によってすでに使用されていないかどうかを確認するものである。重複アドレス検出はRFC 2462で規定されている。
【００５５】
ＩＰｖ６プロトコルを備えた装置は新たにＩＰｖ６アドレスを生成した際、先ずその新たに生成したＩＰｖ６アドレスを格納した近隣要請（ＮＳ：Ｎｅｉｇｈｂｏｒ  Ｓｏｌｉｃｉｔａｔｉｏｎ）メッセージを同一リンク上のすべての端末に宛てて送信する。近隣要請メッセージを受信した端末は、メッセージに格納されているＩＰｖ６アドレスを自身がすでに使用しているかどうかを判断する。使用していない場合はそのメッセージを破棄する。一方、自分がすでにそのＩＰｖ６アドレスを使用していた場合には、アドレスが重複していることを示すために、近隣通知（ＮＡ：Ｎｅｉｇｈｂｏｒ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）メッセージを返答する。
【００５６】
近隣要請メッセージの送信元の装置は、近隣要請メッセージに対する近隣通知メッセージが来るのを一定期間待ち、応答が無かった場合は、アドレスの重複は無いと判断して、そのアドレスを自身の使用するアドレスとして正式に使用開始する。一方、一定期間内に近隣通知メッセージがあった場合には、アドレス重複を回避するため、そのアドレスの使用は取りやめる。
【００５７】
ある装置が重複アドレス検出のための近隣要請メッセージを送信した場合、その装置は近隣要請メッセージに格納されたＩＰｖ６アドレスを新たに使用したい意思があるものと判断することができる。
【００５８】
図４は、プリンタコントローラ１６００が行う重複アドレス検出処理のフローチャートである。なお、プリンタコントローラ１６００が重複アドレス検出処理を行うのは、以下に挙げるケースである。
【００５９】
・  起動時に、リンクローカルアドレスを生成する場合
・  ＤＨＣＰサーバからＩＰｖ６アドレスを割り振られた場合
・  ルータからの公告通知を基にＩＰｖ６アドレスを生成する場合
・  プリンタ１０００のユーザが、操作パネル１８などからＩＰｖ６アドレスの手動登録を行った場合
上記ケースから分かる通り、プリンタコントローラ１６００が何らかのＩＰｖ６アドレスを使用しようとした場合には、その都度必ず重複アドレス検出処理が行われる。以下の説明では例として、プリンタコントローラ１６００が起動時にリンクローカルアドレスを生成する際の重複アドレス検出処理について説明する。
【００６０】
また、図４に示したフローチャートに従った処理をプリンタコントローラ１６００に実行させるためのプログラムやデータは外部メモリ１０やＲＯＭ９に格納されている。そしてＣＰＵ８がこのプログラムやデータを用いてプリンタコントローラ１６００を構成する各部の動作制御を行う。これにより、プリンタコントローラ１６００は以下に説明する各処理を実行することになる。
【００６１】
ＣＰＵ８はプリンタ１０００への電源投入を検知すると、ステップＳ４０１で、ある特定のネットワークプレフィクスとインターフェイス識別子との組み合わせからなるリンクローカルアドレスを、仮ネットワークアドレスとして自動生成する。なお、リンクローカルアドレスについてはＲＦＣ２３７３で規定されている。プリンタ１０００のユーザがＩＰｖ６アドレスの手動登録を行った場合に行われる重複アドレス検出処理では、ステップＳ４０１において、仮ネットワークアドレスを生成する変わりに、ユーザが入力したＩＰｖ６アドレスを取得する。
【００６２】
次にステップＳ４０２では、ＣＰＵ８は、ステップＳ４０１で生成した仮ネットワークアドレスを格納した重複アドレス検出パケットを生成する。この重複アドレス検出パケットは近隣要請メッセージに相当する。
【００６３】
次にステップＳ４０３ではＣＰＵ８はＥＸＰＣ１３を制御するので、ＥＸＰＣ１３は、ステップＳ４０２で生成した重複アドレス検出パケットを拡張インターフェイス１７を介してネットワークカードデバイス１５００に転送する。
【００６４】
これにより、上記重複アドレス検出パケットは、ネットワークカードデバイス１５００を経由して、ＬＡＮ２０００上に接続されている不図示のホストコンピュータ等の外部装置に対してブロードキャストされる。ネットワークカードデバイス１５００によるこのブロードキャスト処理については後述する。
【００６５】
上述の通りこの外部装置は重複アドレス検出パケットを受けると、この重複アドレス検出パケットに格納されている仮ネットワークアドレスを自身がすでに使用しているかどうかを判断する。そして使用していない場合はこの重複アドレス検出パケットを破棄する。一方、自身がすでにその仮ネットワークアドレスを使用していた場合には、アドレスが重複していることを示すために、近隣通知メッセージを返答する。
【００６６】
従ってステップＳ４０４ではＣＰＵ８は、一定期間内に外部装置からネットワークカードデバイス１５００を介して近隣通知メッセージがあったか否かをチェックする。このチェックの結果、一定期間内に近隣通知メッセージを受けた場合、即ち、アドレスが重複していることを示す近隣通知メッセージを受けた場合には、処理をステップＳ４０５に進める。一方、近隣通知メッセージを一定期間内に受けなかった場合、即ち、外部装置側で重複アドレス検出パケットが破棄された場合には、処理をステップＳ４０６に進める。
【００６７】
近隣通知メッセージを受けたということは、プリンタコントローラ１６００が生成した仮ネットワークアドレスはすでにネットワーク上の他の装置によって使用されていることを意味する。従ってステップＳ４０５では、ネットワークカードデバイス１５００から近隣通知メッセージを受けた後、この仮ネットワークアドレスを破棄し、本フローチャートに従った処理を終了する。
【００６８】
一方、一定期間内に何らかの通知を受けていないということは近隣通知メッセージを受けていないということを意味し、プリンタコントローラ１６００が生成した仮ネットワークアドレスは重複していないことを意味する。従ってステップＳ４０６では、この仮ネットワークアドレス（ＩＰｖ６アドレス）をネットワークアドレステーブル３０１に登録（設定）する。そしてその後、本フローチャートに従った処理を終了する。なお、本ステップにおけるネットワークアドレステーブル３０１の更新は、適当なタイミングでもってＣＰＵ１によりＭＩＢに反映される。
【００６９】
以上の処理により、仮ネットワークアドレスとしてのＩＰｖ６アドレスがネットワークアドレステーブル３０１に設定される。これにより、以降、プリンタコントローラ１６００はこの仮ネットワークアドレスを使用した通信を行うことが可能となる。
【００７０】
図５は、ネットワークカードデバイス１５００が行うアドレス設定処理のフローチャートである。より詳しくは、同図のフローチャートに従った処理は、プリンタコントローラ１６００が図４に示したフローチャートに従った処理を実行した場合に、ネットワークカードデバイス１５００が行う処理のフローチャートである。
【００７１】
なお、同図のフローチャートをネットワークカードデバイス１５００に実行させるためのプログラムやデータは、フラッシュＲＯＭ３に格納されている。そしてＣＰＵ１がこのプログラムやデータを用いてネットワークカードデバイス１５００を構成する各部の動作制御を行う。これにより、ネットワークカードデバイス１５００は以下に説明する各処理を実行することになる。
【００７２】
先ずステップＳ５０１でＣＰＵ１は、上記ステップＳ４０３でプリンタコントローラ１６００から重複アドレス検出パケットが送出されたか否かをチェックする。このチェックで、拡張インターフェース１７及びＥＸＰＣ７を介して重複アドレス検出パケットがプリンタコントローラ１６００から受信したことを検知した場合には、処理をステップＳ５０２に進め、検知していない場合には処理をステップＳ５０１に戻す。
【００７３】
ステップＳ５０２ではＣＰＵ１はＬＡＮＣ５を制御するので、ＬＡＮＣ５はこの重複アドレス検出パケットをＬＡＮ２０００上にブロードキャストする。送出先はＬＡＮ２０００上に接続されている不図示のホストコンピュータ等の外部装置である。
【００７４】
ステップＳ５０３ではＣＰＵ１は、一定期間内に外部装置から近隣通知メッセージがあったか否かをチェックする。このチェックの結果、一定期間内に何らかの通知を受けた場合、即ち、アドレスが重複していることを示す近隣通知メッセージを受けた場合には、処理をステップＳ５０４に進める。一方、近隣通知メッセージを一定期間内に受けなかった場合、即ち、外部装置側で重複アドレス検出パケットが破棄された場合には、処理をステップＳ５０５に進める。
【００７５】
ステップＳ５０４ではＣＰＵ１はＥＸＰＣ７を介して、近隣通知メッセージをプリンタコントローラ１６００に転送する。
【００７６】
次にステップＳ５０５では、ＣＰＵ１は、後述するアドレス設定サブルーチンの処理を行う。ステップＳ５０５における処理については図６を用いて後述する。
【００７７】
そして処理をステップＳ５０１に戻し、プリンタコントローラ１６００からの重複アドレス検出パケットを再び待ち受ける。以降、ネットワークカードデバイス１５００は、電源が落とされるまで上述のステップＳ５０１〜Ｓ５０５の処理を繰り返し続ける。
【００７８】
図６は、上記ステップＳ５０５における処理の詳細を示すフローチャートである。
【００７９】
先ずステップＳ６０１ではＣＰＵ１は、フラッシュＲＯＭ３に格納されている上記ＭＩＢクライアントプログラムを用いて、プリンタコントローラ１６００のＭＩＢエージェントプログラムにネットワークアドレス情報を問い合わせる。
【００８０】
プリンタコントローラ１６００のＭＩＢエージェントプログラムは上記問い合わせを受信すると、データベース（ＭＩＢ）からネットワークアドレス情報を読み出す。そして読み出したネットワークアドレス情報をネットワークカードデバイス１５００に返信する。なお、データベースに登録されているネットワークアドレス情報は、ネットワークアドレステーブル３０１と同期しており、ネットワークアドレステーブル３０１に登録されている情報と同じである。
【００８１】
ステップＳ６０２ではＣＰＵ１は、プリンタコントローラ１６００からのネットワークアドレス情報の受信を待機している。そしてプリンタコントローラ１６００からネットワークアドレス情報が送信された場合にはこれを受信し、処理をステップＳ６０３に進める。なお、何らかの理由によりプリンタコントローラ１６００からネットワークアドレス情報を受信することができなかった場合には本フローチャートに従った処理を終了する。
【００８２】
ステップＳ６０３では、ＣＰＵ１はＲＡＭ２に記憶している上記ネットワークアドレステーブル２０１に登録されている１または複数のネットワークアドレスと、ステップＳ６０２で受信したネットワークアドレス情報が示す１または複数のネットワークアドレスとを比較する。即ち、図２に示したテーブルと図３に示したテーブルとで相違点があるか否かをチェックする。
【００８３】
このチェックの結果、相違点があった場合には処理をステップＳ６０５に進めるし、相違点がなかった場合には処理をステップＳ６０４に進める。ステップＳ６０４ではＣＰＵ１は、ステップＳ６０２で受信したネットワークアドレス情報を破棄し、本フローチャートに従った処理を終了する。
【００８４】
一方、ステップＳ６０５ではＣＰＵ１は、ステップＳ６０２で受信したネットワークアドレス情報が示す１または複数のネットワークアドレスをネットワークアドレステーブル２０１に登録する。なお、ステップＳ６０３及びＳ６０４を省略し、プリンタコントローラ１６００からネットワークアドレス情報が送信された場合には必ずステップＳ６０５の処理を行うようにしても良い。
【００８５】
これ以降、ネットワークカードデバイス１５００は、プリンタコントローラ１６００に現在設定されているネットワークアドレスと同じネットワークアドレスを使用して、ＬＡＮ２０００上の外部装置との通信を行うことが可能となる。
【００８６】
以上の処理により、本実施形態に係るネットワークカードデバイス１５００は、プリンタコントローラ１６００から重複アドレス検出パケットが転送されたことをトリガとして、プリンタコントローラ１６００へのネットワークアドレス情報の問い合わせを行う。
【００８７】
これにより、一定期間毎にネットワークアドレス情報の問い合わせを行う場合に比べて、ネットワークカードデバイス１５００とプリンタコントローラ１６００の双方にとって作業負荷が低く効率的な問い合わせ方法を実現することが可能となる。
【００８８】
［第２の実施形態］
本実施形態は、ネットワークカードデバイス１５００が図５に示したフローチャートに従った処理を行う代わりに、図７に示したフローチャートに従った処理を行う点のみが、第１の実施形態とは異なる。
【００８９】
以降では図７のフローチャートに従った処理について説明する。
【００９０】
先ずステップＳ７０１でＣＰＵ１は、上記ステップＳ４０３でプリンタコントローラ１６００から重複アドレス検出パケットが送出されたか否かをチェックする。このチェックで、拡張インターフェース１７及びＥＸＰＣ７を介して重複アドレス検出パケットがプリンタコントローラ１６００から送出されたことを検知した場合には、処理をステップＳ７０２に進め、検知していない場合には処理をステップＳ７０１に戻す。
【００９１】
ステップＳ７０２ではＣＰＵ１はＬＡＮＣ５を制御するので、ＬＡＮＣ５はこの重複アドレス検出パケットをＬＡＮ２０００上にブロードキャストする。送出先はＬＡＮ２０００上に接続されている不図示のホストコンピュータ等の外部装置である。
【００９２】
ステップＳ７０３ではＣＰＵ１は、一定期間内に外部装置から近隣通知メッセージがあったか否かをチェックする。このチェックの結果、一定期間内に近隣通知メッセージを受けた場合、即ち、アドレスが重複していることを示す近隣通知メッセージを受けた場合には、処理をステップＳ７０４に進める。一方、近隣通知メッセージを一定期間内に受けなかった場合、即ち、外部装置側で重複アドレス検出パケットが破棄された場合には、処理をステップＳ７０５に進める。
【００９３】
ステップＳ７０４ではＣＰＵ１はＥＸＰＣ７を介して近隣通知メッセージをプリンタコントローラ１６００に転送し、その後、本フローチャートに従った処理を終了する。即ち、アドレスが重複していることを示す近隣通知メッセージを受けた場合には、プリンタコントローラ１６００が使用するアドレスの設定内容に変更は生じないと判断できるので、ネットワークカードデバイス１５００はアドレス設定処理は行わない。そして処理をステップＳ７０１に戻し、プリンタコントローラ１６００からの重複アドレス検出パケットを再び待ち受ける。以降、ネットワークカードデバイス１５００は、電源が落とされるまで上述のステップＳ７０１〜Ｓ７０５の処理を繰り返し続ける。
【００９４】
一方、ステップＳ７０５では、上記ステップＳ５０５と同様の処理を行う。そして処理をステップＳ７０１に戻し、プリンタコントローラ１６００からの重複アドレス検出パケットを再び待ち受ける。以降、ネットワークカードデバイス１５００は、電源が落とされるまで上述のステップＳ７０１〜Ｓ７０５の処理を繰り返し続ける。
【００９５】
以上の説明により、本実施形態に係るネットワークカードデバイス１５００は、プリンタコントローラ１６００からの重複アドレス検出パケットをネットワーク上に送信した後、ネットワーク上の装置から応答を一定期間待ち受ける。応答があった場合、すなわち、アドレスの重複が検出された場合は、プリンタコントローラ１６００におけるアドレスの設定内容に変更はないものと判断し、プリンタコントローラ１６００へのアドレス情報の問い合わせは行わない。
【００９６】
一方、応答がない場合、すなわち、アドレスの重複が検出されなかった場合にのみ、プリンタコントローラ１６００へのアドレス情報の問い合わせを行う。
【００９７】
これにより、プリンタコントローラ１６００のアドレス設定内容に変更が生じていないタイミングでネットワークカードデバイス１５００がアドレス情報の問い合わせを行ってしまう事態を、より確実に回避することが可能となる。つまり、アドレス設定サブルーチンを実行する回数をより減らすことができる。
【００９８】
［第３の実施形態］
上記第１，２の実施形態において、ネットワークカードデバイス１５００は、プリンタ１０００から物理的に切り離されて存在する別個の機器であっても良い。この場合、プリンタ１０００は、内部にプリンタコントローラ１６００からなる制御系を司る制御部を備えている。
【００９９】
また、ネットワークカードデバイス１５００において、図１で示される拡張インターフェイスコントローラ（ＥＸＰＣ）７はシステムバス４に接続される第二のネットワークコントローラであっても良い。
【０１００】
またプリンタコントローラ１６００において、図１で示される拡張インターフェイスコントローラ（ＥＸＰＣ）１３は、システムバス１１に接続されるネットワークコントローラであっても良い。この場合、拡張インターフェイス１７は、第二のローカルエリアネットワークである。更に、ネットワークカードデバイス１５００とプリンタコントローラ１６００とは、この第二のローカルエリアネットワークに共に接続されている。
【０１０１】
なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給される場合を含む。更に、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１０２】
プログラムを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷがある。その他、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続することによっても供給できる。この場合、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明のクレームに含まれるものである。
【０１０３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布することも可能である。更に、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせることも可能である。
【０１０４】
また、コンピュータが読み出したプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【０１０５】
【図１】本発明に係るデータ処理装置の好適な適用対象としての印刷装置（プリンタ）１０００のハードウェア構成を示すブロック図である。
【図２】ネットワークアドレステーブル２０１の構成例を示す図である。
【図３】ネットワークアドレステーブル３０１の構成例を示す図である。
【図４】プリンタコントローラ１６００が行う重複アドレス検出処理のフローチャートである。
【図５】ネットワークカードデバイス１５００が行うアドレス設定処理のフローチャートである。
【図６】ステップＳ５０５における処理の詳細を示すフローチャートである。
【図７】ネットワークカードデバイス１５００が行うアドレス設定処理のフローチャートである。
【図１】
2008033693.tif 000003
【図２】
2008033693.tif 000004
【図３】
2008033693.tif 000005
【図４】
2008033693.tif 000006
【図５】
2008033693.tif 000007
【図６】
2008033693.tif 000008
【図７】
2008033693.tif 000009