以下、本発明の実施形態に係る通信システムをカラーコピー機能、ファクシミリ通信機能、ネットワークスキャナ機能、ネットワークプリンタ機能等を併せ持つ複合機に適用した場合について、図面に基づき説明する。図1は、本実施形態に係る通信システム(コンピュータシステム)1の構成例を示したブロック図である。この通信システム1は、ホストデバイスと複数のスレーブデバイスとがPCIバス(入出力バス)2により接続されてなるものであり、本実施形態においては、ホストデバイスであるMFPコントローラ3と、スレーブデバイスであるカラー画像処理ボード4、プリンタコントローラ5、及びネットワークボード6がPCIバス2により接続されている。
なお、このPCIバス(Peripheral Component Interconnect Bus)2は、PCI SIG(PCI Special Interest Group)により規格が策定されている32ビットバスであり、PCIバス2を構成するPCIバス2a(2)とPCIバス2b(2)は、2本のPCIバスを相互接続するための回路であるPCIブリッジ7により接続されている。
MFPコントローラ(ホストデバイス)3は、通信システム1のホストデバイスとして機能するものである。具体的には、複数の色成分からなるカラー画像データ(例えば、RGB表色系のカラー画像データ)を原稿から読取るスキャナ(原稿読取部)9から出力されたカラー画像データに対して、色空間変換や圧縮(符号化)等の画像処理を行い、PCIバス2を介してカラー画像処理ボード4又はネットワークボード6へ転送(送信)する処理や、外部装置(不図示)との間で原稿のカラー画像データをファクシミリ送受信する処理等を行う。
このMFPコントローラ3は、制御部(CPU:Central Processing Unit)10、PCIホストコントローラ11、割込みコントロールレジスタ12、RAM(Random Access Memory)13を備えており、これら各部10乃至13はホストシステムバス14によって通信可能に接続されている。
制御部10は、MFPコントローラ3を構成する各部を制御する。PCIホストコントローラ11は、スレーブデバイス(カラー画像処理ボード4、プリンタコントローラ5、又はネットワークボード6)との間でPCIバス2を介して行われる通信を制御するものである。割込みコントロールレジスタ12は、通信システム1を構成する各デバイスが他のデバイスに割込みを発生させる際に、割込み要求を書込むためのメモリである。
この割込みコントロールレジスタ12は、自デバイス3の制御部10と割込み信号線16によって接続されるとともに、各スレーブデバイス4乃至6の制御部25と割込み信号線17乃至19によって接続されており、割込み要求元(コマンド送信側)のデバイスによってこの割込みコントロールレジスタ12に割込み要求が書込まれると、割込み要求先(コマンド受信側)のデバイスに割込み信号が出力されるようになっている。
RAM(メモリ)13は、制御部10の主メモリ、ワークエリア等として機能し、各種設定情報を格納している。図2に示すように、このRAM13には、サブコンフィグレーションエリア21、コマンドエリア22、及びユニット管理エリア23が設けられている。
コマンドエリア22は、PCIバス2を介して自デバイス3と接続されたスレーブデバイス4乃至6が、自デバイス3に対するコマンドやレスポンス、データサイズの小さいデータ等を書込むための領域であり、このコマンドエリア22を利用してスレーブデバイス4乃至6との通信が行われる。サブコンフィグレーションエリア21は、コマンドエリア22のサイズ、コマンドエリア22のアドレス、スレーブデバイス4乃至6からの割込み要因等が書込まれる領域である。ユニット管理エリア23は、スレーブデバイスにアクセスするために必要なデバイス情報が書込まれる領域である。
なお、MFPコントローラ3は、上記の各部10乃至13の他に、図示しないが、制御部10によりMFPコントローラ3の各部が制御されるためのプログラムを格納するROM、スキャナ9から出力されたRGB表色系のカラー画像データを例えばYCrCb表色系のカラー画像データに変換する色空間変換回路、画像データを圧縮又は伸張するコーデック、画像データを格納する画像メモリ、外部装置との間でファクシミリ通信を行うためのモデムとNCU(Network Control Unit)からなる通信部等を備えている。
カラー画像処理ボード4は、通信システム1のスレーブデバイスとして機能するものであり、MFPコントローラ3から転送されてきた画像データを用紙に印字出力するために必要な画像処理を行う。具体的には、MFPコントローラ3から出力されたYCrCb表色系のカラー画像データを例えばCMYKの各色彩データに変換する色空間変換や、色空間変換された色彩データを2値化(又は4値化)する階調減少処理等を行う。
このカラー画像処理ボード4は、制御部(CPU)25a(25)、PCIコントローラ26a(26)、RAM(メモリ)27a(27)等を備えており、これら各部25a乃至27aは、ローカルバス28によって通信可能に接続されている。
制御部25aは、自デバイス4を構成する各部を制御する。なお、制御部25aは、割込みコントローラ(不図示)を搭載しており、割込み信号線17を介して割込みコントロールレジスタ12から割込み信号を受信した場合に、制御部25aに対して割込みを発生させることができる。PCIコントローラ26aは、他のデバイス(ここでは、MFPコントローラ3、プリンタコントローラ5、又はネットワークボード6)との間でPCIバス2を介して行われる通信を制御するものである。なお、このPCIコントローラ26aは、デバイスの特性、種類、動作方式等を設定するためのレジスタである、いわゆるコンフィグレーションレジスタを内蔵しており、PCIホストコントローラ11によってコンフィグレーション(初期化処理)が行われるようになっている。なお、このコンフィグレーションレジスタにアクセスできるのは、ホストデバイス3のPCIホストコントローラ11のみである。
RAM27aは、制御部25aの主メモリ、ワークエリア等として機能し、各種設定情報を格納している。また、図示しないが、このRAM27aには、MFPコントローラ3のRAM13と同様に、サブコンフィグレーションエリア及びコマンドエリアが設けられている。コンフィグレーションエリア及びコマンドエリアについては、プリンタコントローラ5のメモリ(RAM27b)に設けられているものを例として後に詳述する。
なお、このカラー画像処理ボード4は、上記の25a乃至27aの他に、図示しないが、制御部25aによってカラー画像処理ボード4の各部が制御されるためのプログラムを格納するROM、YCrCb表色系のカラー画像データをCMYKの各色彩データに変換する色空間変換回路、色空間変換された色彩データを誤差拡散処理などにより2値化又は4値化する階調減少処理回路等を備えている。
プリンタコントローラ5は、通信システム1のスレーブデバイスとして機能するものであり、カラー画像処理ボード4から転送されてきた画像データ(色彩データ)、ネットワークボード6から転送されてきた画像データに基づいてプリンタ30を制御する。
このプリンタコントローラ5は、制御部(CPU)25b(25)、PCIコントローラ26b(26)、RAM(メモリ)27b(27)を備えており、これら各部25b乃至27bは、ローカルバス31によって通信可能に接続されている。なお、これら制御部25b、PCIコントローラ26b、及びRAM27bは、上記のカラー画像処理ボード4の制御部25a、PCIコントローラ26a、及びRAM27aとそれぞれ同様の構成及び機能を有するものである。
また、このプリンタコントローラ5は、上記の25b乃至27bの他に、制御部25bによってプリンタコントローラ5の各部が制御されるためのプログラムを格納するROM、プリンタ30を制御するビデオASIC(Application Specific Integrated Circuit)等を備えており、PCIバス2を介してカラー画像処理ボード4から転送されてきたカラー画像データやネットワークボード6から転送されてきたカラー画像データに基づいてプリンタ30を制御して印刷処理を実行する。
一方、プリンタ30は、画像データの画像を用紙に記録するものであって、カラー画像データ及びモノクロ画像データの双方の画像を用紙に記録することが可能なものである。このプリンタ30における記録方式としては、例えば、電子写真方式やインクジェット方式等の各種記録方式を用いることができる。
ネットワークボード6は、通信システム1のスレーブデバイスとして機能するものであり、MFPコントローラ3からPCIバス2を介して転送されてきたカラー画像データをそのまま、又はモノクロ画像データに変換してLAN32上のクライアントPC33へ転送する処理、クライアントPC33から出力された画像データをファクシミリ送信するために、PCIバス2を介してMFPコントローラ3へ転送する処理、クライアントPC33から出力された画像データを印字出力するために、PCIバス2を介してプリンタコントローラ5へ転送する処理等を行う。
このネットワークボード6は、制御部(CPU)25c(25)、PCIコントローラ26c(26)、RAM(メモリ)27c(27)等を備えており、これら各部25c乃至27cは、ローカルバス34によって通信可能に接続されている。なお、この制御部25c、PCIコントローラ26c、及びRAM27cは、カラー画像処理ボード4の制御部25a、PCIコントローラ26a、及びRAM27aとそれぞれ同様の機能及び構成を有するものである。
なお、この制御部25cは、LAN32上のクライアントPC33と通信を行うためのLANコントローラ35を搭載しており、上記のようにLAN32上のクライアントPC33との間で各種データを送受信することが可能である。また、このネットワークボード6は、上記の25c乃至27cの他に、制御部25cによってネットワークボード6の各部が制御されるためのプログラムを格納するROM、カラー画像データをモノクロ画像データに変換するカラーモノクロ変換回路、多値のモノクロ画像データを2値化する2値化回路、2値化されたモノクロ画像データをMH、MR、MMR、JBIG方式等により圧縮するコーデック等を備えている。
図3は、プリンタコントローラ5のRAM27bの構成を概略的に示した図である。このRAM27bには、サブコンフィグレーションエリア37とコマンドエリア38が設けられている。まず、コマンドエリア38について以下に説明する。このコマンドエリア38は、自デバイス5とPCIバス2を介して接続された他のデバイス3、4、又は6が自デバイス5に対するコマンドやレスポンス、データサイズの小さいデータ(例えば、104バイト未満のデータ)等を書込むための領域であり、プリンタコントローラ5がPCIバス2を介して通信可能なデバイス毎に複数の領域に論理的に分割されている。このコマンドエリア38は、本実施形態においては、MFPコントローラ用コマンドエリア39と、カラー画像処理ボード用コマンドエリア40と、ネットワークボード用コマンドエリア41と、追加デバイス用コマンドエリア42と、に論理的に分割されている。
ここで、MFPコントローラ用コマンドエリア39は、MFPコントローラ3のPCIホストコントローラ11が制御部10の制御命令に基づいてPCIバス2を介してプリンタコントローラ5に対するコマンドやレスポンス等を書込む領域である。カラー画像処理ボード用コマンドエリア40は、カラー画像処理ボード4のPCIコントローラ26aが制御部25aの制御命令に基づいてPCIバス2を介してプリンタコントローラ5に対するコマンドやレスポンス等を書込む領域である。ネットワークボード用コマンドエリア41は、ネットワークボード6のPCIコントローラ26cが制御部25cの制御命令に基づいてPCIバス2を介してプリンタコントローラ5に対するコマンドやレスポンス等を書込む領域である。追加デバイス用コマンドエリア42は、通信システム1に新たなスレーブデバイスが追加された場合に、その追加されたスレーブデバイスのPCIコントローラがPCIバス2を介してプリンタコントローラ5に対するコマンドやレスポンス等を書込む領域であり、スレーブデバイスの追加(増設)に対応するために予め設けられた領域である。
このように、プリンタコントローラ5のRAM27bには、PCIバス2を介して自デバイス5と接続された他のデバイス3、4、又は6がコマンドやレスポンス等の各種データを書込むためのエリア(領域)39乃至41が前記他のデバイス毎に設けられている。
そして、各デバイス毎のコマンドエリア39乃至42は、それぞれ更にヘッダエリアとデータエリアとに論理的に分割されているが、このヘッダエリアとデータエリアについて、ここではカラー画像処理ボード用コマンドエリア40を例にして説明する。カラー画像処理ボード用コマンドエリア40のヘッダエリア43には、ヘッダタイプ、コマンドメールボックスID、レスポンスメールボックスID、コマンドナンバー(コマンド)、データアドレス(先頭アドレス)、データカウント(データサイズ)等が、データエリア44には、データサイズの小さいデータやレスポンス等が、自デバイス5と接続された他のデバイス(この領域では、カラー画像処理ボード4)によって書込まれるようになっている。
ヘッダタイプは、コマンド送信側のデバイス(カラー画像処理ボード4)によるカラー画像処理ボード用コマンドエリア40の使用状況を示すメモリ情報であり、カラー画像処理ボード用コマンドエリア40が未使用であることを示す情報、カラー画像処理ボード用コマンドエリア40がプリンタコントローラ5に対するコマンドによって使用中であることを示す情報、又はカラー画像処理ボード用コマンドエリア40がプリンタコントローラ5に対するレスポンスによって使用中であることを示す情報のいずれかである。プリンタコントローラ5の制御部25bは、ローカルバス31を介してRAM27bにアクセスし、このヘッダエリア43のヘッダタイプを取得することにより、カラー画像処理ボード4によるカラー画像処理ボード用コマンドエリア40の使用状況を判断することができる。
コマンドメールボックスIDは、コマンド発行(送信)側のデバイス(ここでは、カラー画像処理ボード4)がレスポンス待ちする場合のメールボックスIDであり、レスポンス待ちしない場合には、コマンドメールボックスIDとして「0」がセットされる。レスポンスメールボックスIDは、レスポンスを発行した側(カラー画像処理ボード4)がコマンド待ちする場合のメールボックスIDであり、コマンド待ちしない場合には、レスポンスメールボックスIDとして「0」がセットされる。
コマンドナンバー(コマンド)は、ここでは、カラー画像処理ボード4がプリンタコントローラ5に対して要求する処理を示すスカラ値であり、プリンタコントローラ5の制御部25bは、ヘッダエリア43に書込まれているコマンドナンバーを取得して自デバイス5が実行すべき処理が何であるかを判別することができるようになっている。
データアドレス(以下、「先頭アドレス」という。)は、PCI空間上のアドレスであり、一方のデバイスから他方のデバイスへデータを転送する場合に、転送すべきデータが格納されている場所の先頭を示すアドレス、又は、転送後のデータを書込むべき場所の先頭を示すアドレスである。例えば、カラー画像処理ボード4からプリンタコントローラ5へデータを転送する場合には、RAM27aにおいてその転送すべきデータが格納されている場所の先頭を示すアドレス、又はRAM27bにおいて転送後のデータを書込むべき場所の先頭を示すアドレスである。
データカウント(データサイズ)は、コマンドエリア38以外の領域を使用してデータを転送する場合に、その転送すべきデータのデータサイズを示すものである。したがって、例えばカラー画像処理ボード4からプリンタコントローラ5へデータを転送する場合に、プリンタコントローラ5の制御部25bは、このヘッダエリア43の先頭アドレス及びデータカウントに基づいて、自デバイス5に転送されるべきデータがカラー画像処理ボード4のRAM27a上のどの位置に格納されているかを特定することができる。
データエリア44に書込まれるデータは、具体的には、カラー画像処理ボード4のPCIコントローラ26aがPCIバス2を介して書込んだデータサイズの小さいデータ(例えば、データサイズが104バイト未満のデータ)や、プリンタコントローラ5に対するカラー画像処理ボード4のレスポンス等である。なお、データエリア44の容量を超えるデータサイズが大きいデータは、RAM27bにおけるコマンドエリア38以外の領域に書込まれるようになっている。
また、MFPコントローラ用コマンドエリア39には、MFPコントローラ3のPCIホストコントローラ11によって、ネットワークボード用コマンドエリア41には、ネットワークボード6のPCIコントローラ26cによって、データの書込みを行うデバイスが異なる点を除いて、上記のカラー画像処理ボード用コマンドエリア40と同様の情報が書込まれるようになっている。
さらにまた、デバイス3、4、及び6についても、PCIバス2を介して自デバイスと接続された他のデバイスがコマンドやレスポンス等を書込むためのコマンドエリアがそれぞれ設けられているが、これらのデバイス3、4、及び6のコマンドエリアは、自デバイスに接続されてコマンドエリアに書込みを行うデバイスの組合わせが異なるだけで、図3に基づいて説明したコマンドエリア38と同様に構成されているため、その詳細な説明は省略する。
図4は、プリンタコントローラ5のRAM27bに設けられているサブコンフィグレーションエリア37を概略的に示した図である。図示するように、サブコンフィグレーションエリア37は、デバイス情報エリア46と、MFPコントローラ用エリア47と、カラー画像処理ボード用エリア48と、ネットワークボード用エリア49と、追加デバイス用エリア50と、に論理的に分割されている。
デバイス情報エリア46は、サブコンフィグレーションエリア37が設けられたRAM27bを備えるデバイス(プリンタコントローラ5)に関する情報が格納される領域であり、デバイスID、ユニット(Unit)番号、ステータス(Status)、コマンドエリアサイズ、コマンドエリア0オフセット、ユニット(Unit)管理アドレス等の情報が書込まれるようになっている。
デバイスIDは、このサブコンフィグレーションエリア37を有するデバイスの識別子であり、ここでは、プリンタコントローラ5を示す情報である。ユニット番号は、デバイス(ここでは、プリンタコントローラ5)がどのコマンドユニットを使うかを示す情報である。
ステータスは、PCIコントローラ26bに内蔵されているコンフィグレーションレジスタに対する初期化処理が完了したか否かを示す情報である。PCIホストコントローラ11は、コンフィグレーションサイクルにおいてPCIコントローラ26bに内蔵されているコンフィグレーションレジスタのコンフィグレーション(初期化処理)を行ってPCIコントローラ26bの動作環境の設定を終えると、その旨の情報をステータスとしてデバイス情報エリア46に書込む。プリンタコントローラ5は、この情報の書込みを受けた後に、PCIコントローラ26bによってMFPコントローラ3のRAM13に設けられているユニット管理エリア23にアクセスすることができるようになっている。
コマンドエリアサイズは、コマンドエリア38のサイズ(容量)を示す情報である。コマンドエリア0オフセットは、サブコンフィグレーションエリア37の先頭アドレスからのオフセットにより、コマンドエリア38の先頭アドレスを示した情報である。他のデバイス(カラー画像処理ボード4やネットワークボード6)は、サブコンフィグレーションエリア37にアクセスできた場合に、デバイス情報エリア46からコマンドエリアサイズ及びコマンドエリア0オフセットの情報を読み出すことにより、プリンタコントローラ5との間で通信を行うために必要な情報であるコマンドエリア38の位置情報を取得することができる。これにより、RAM27bにおけるコマンドエリア38の場所(PCIメモリ空間アドレス)を特定することができる。
ユニット管理アドレスは、ホストデバイスであるMFPコントローラ3のRAM13に設けられているユニット管理エリア23のPCI空間上のアドレスである。このユニット管理アドレスは、PCIコントローラ26bのコンフィグレーションレジスタに対するコンフィグレーションを終えたPCIホストコントローラ11によって書込まれる。
MFPコントローラ用エリア47は、MFPコントローラ3がプリンタコントローラ5との通信に必要な情報やプリンタコントローラ5に対して割込みを発生させる際に割込み要因を書込む領域であり、MFPコントローラ3専用の領域である。カラー画像処理ボード用エリア48は、カラー画像処理ボード4がプリンタコントローラ5との通信に必要な情報やプリンタコントローラ5に対して割込みを発生させる際に割込み要因を書込む領域であり、カラー画像処理ボード4専用の領域である。ネットワークボード用エリア49は、ネットワークボード6がプリンタコントローラ5との通信に必要な情報やプリンタコントローラ5に対して割込みを発生させる際に割込み要因を書込む領域であり、ネットワークボード6専用の領域である。
これらのMFPコントローラ用エリア47、カラー画像処理ボード用エリア48、ネットワークボード用エリア49、又は追加デバイス用エリア50には、受信コマンドバージョン(RxCommandVersion)、TxデバイスID、及び初期化ステータス(Status)の通信に必要な情報が通信準備の際に書込まれ、通信準備が完了して実際に通信が行われる際に、割込み要因が書込まれる(セットされる)ようになっている。
カラー画像処理ボード用エリア48を例にして説明すると、受信コマンドバージョンは、カラー画像処理ボード4によってコマンドエリア38(詳しくはカラー画像処理ボード用コマンドエリア40)に書込まれるコマンドのバージョンを示す情報であり、コマンドの追加に対応できるようになっている。制御部25bは、通信準備の際にこの受信コマンドバージョンを読み出してコマンドエリア38に書込まれるコマンドのバージョンを認識する。TxデバイスIDは、受信コマンドバージョン等が書込まれるエリアに書込みを行うデバイスの識別子であり、ここではカラー画像処理ボード4を示す情報である。
初期化ステータスは、プリンタコントローラ5がPCIバス2に未接続であることを示す情報、カラー画像処理ボード用エリア48への通信に必要な情報の書込みが完了したことを示す情報、又は、カラー画像処理ボード4との通信準備が完了したことを示す情報のいずれかである。プリンタコントローラ5が未接続である場合には、その旨を示す情報が制御部25bにより書込まれており、カラー画像処理ボード4のPCIコントローラ26aは、通信に必要な情報、すなわち受信コマンドバージョン及びTxデバイスIDの書込みを行った後に、初期化ステータスを通信準備に必要な情報の書込みが完了したことを示す情報に書換える。そして、プリンタコントローラ5の制御部25bは、初期化ステータスから通信に必要な情報が書込まれたと判断すると、受信コマンドバージョンの読み出しを行い、初期化ステータスを通信準備が完了したことを示す情報に書換える。このように、カラー画像処理ボード4とプリンタコントローラ5との間で通信準備が行われるようになっている。なお、カラー画像処理ボード4は、通信準備を行う際に、コマンドエリアサイズやコマンドエリア0オフセットの読み出しも併せて行う。
ところで、PCIコントローラ26bが内蔵するコンフィグレーションレジスタへは、MFPコントローラ3のPCIホストコントローラ11しかアクセスすることができないが、このように、PCIコントローラ26aやPCIコントローラ26cがアクセスすることができるRAM27bのサブコンフィグレーションエリア37に通信に必要な情報をセットしておくことにより、カラー画像処理ボード4やネットワークボード6がそれらの通信に必要な情報を取得してホストデバイス3を介することなく、プリンタコントローラ5と直接通信することが可能となる。
割込み要因は、カラー画像処理ボード4がプリンタコントローラ5に対して割込みを発生させる際に、その要因を示す情報である。ここで、割込み要因としては、カラー画像処理ボード用コマンドエリア40に書込まれたコマンドやレスポンスの読み出しを要求する割込み要因(REQ)と、プリンタコントローラ5によってカラー画像処理ボード4のRAM27aのコマンドエリアに書込まれたコマンドやレスポンスの読み出しが完了したことを通知するための割込み要因(ACK)と、プリンタコントローラ5にリセットを要求するための割込み要因(RESET)と、同期を図るための割込み要因(SYNC)が用意されている。
例えば、カラー画像処理ボード4がカラー画像処理ボード用コマンドエリア40にコマンドを書込んでプリンタコントローラ5に割込みを発生させる場合、PCIコントローラ26aは、カラー画像処理ボード用エリア48の割込み要因(REQ)に「1」を書込み、割込みコントロールレジスタ12にプリンタコントローラ5への割込み要求を書込む。これに対し、割込みコントロールレジスタ12から割込み信号線18を介してプリンタコントローラ5の制御部25bへ割込み信号が送信される。これを受けて、制御部25bは、サブコンフィグレーションエリア37から割込み要因として「1」がセットされている領域を検索する。そして、カラー画像処理ボード用エリア48の割込み要因(REQ)として「1」がセットされていることを検出すると、カラー画像処理ボード用コマンドエリア40にコマンドが書込まれていると判断し、カラー画像処理ボード用コマンドエリア40からコマンドを読み出し、そのコマンドに対応する処理を実行する。そして、割込み要因をクリアする。すなわち、割込み要因(REQ)を「1」から「0」に書換える。
このように、カラー画像処理ボード用エリア48には、カラー画像処理ボード4がプリンタコントローラ5と通信を行うために必要な情報がカラー画像処理ボード4のPCIコントローラ26aによって書込まれるようになっている。なお、受信コマンドバージョン、TxデバイスID、初期化ステータスについては、上記のように通信準備の段階で書込みが行われるようになっている。
また、MFPコントローラ用エリア47及びネットワークボード用エリア49についても、書込みを行うデバイスが異なる点を除いて、同様の情報が書込まれるようになっている。なお、このようなサブコンフィグレーションエリアは、全てのデバイス3乃至6のメモリ(RAM)にも設けられているが、いずれのデバイスのサブコンフィグレーションエリアも構成は同じで、サブコンフィグレーションエリアに受信コマンドバージョンやTxデバイスID等の書込みを行うデバイスの組合わせが異なるだけであるため、他のデバイス3、4、及び6のサブコンフィグレーションエリアについては、その説明を省略する。
図5は、ホストデバイスであるMFPコントローラ3のRAM13に設けられているユニット管理エリア23を例示した図である。図示するように、ユニット管理エリア23は、ユニット管理情報エリア52と、MFPコントローラ用デバイス情報エリア53と、カラー画像処理ボード用デバイス情報エリア54と、プリンタコントローラ用デバイス情報エリア55と、ネットワークボード用デバイス情報エリア56と、追加デバイス用デバイス情報エリア57と、に論理的に分割されている。
ユニット管理情報エリア52には、ホストステータス(Host Status)及びコマンドエリアサイズがPCIホストコントローラ11によって書込まれるようになっている。ホストステータスは、MFPコントローラ3がスレーブデバイス4乃至6の初期化処理(コンフィグレーション)の実行中であることを示す情報、又は、MFPコントローラ3が全てのスレーブデバイス4乃至6の初期化処理を完了したことを示す情報のいずれかである。コマンドエリアサイズは、RAM13に設けられているコマンドエリア22のサイズ(容量)を示す情報である。
MFPコントローラ用デバイス情報エリア53、カラー画像処理ボード用デバイス情報エリア54、プリンタコントローラ用デバイス情報エリア55、及びネットワークボード用デバイス情報エリア56には、デバイスID、ユニット(Unit)番号、ステータス(Status)、サブコンフィグレーションエリアPCIメモリ空間アドレス等がPCIホストコントローラ11によって書込まれるようになっている。
デバイスID及びユニット番号は、スレーブデバイスが有するサブコンフィグレーションエリアからPCIホストコントローラ11が取得した情報である。ステータスは、スレーブデバイスを検出していないことを示す情報、又はスレーブデバイスを検出済であること、すなわちスレーブデバイスの初期化処理が完了していること、を示す情報のいずれか一方の情報である。サブコンフィグレーションエリアPCIメモリ空間アドレスは、スレーブデバイスのRAM27に設けられているサブコンフィグレーションエリアのPCIメモリ空間上の先頭アドレスである。
例えば、PCIホストコントローラ11は、プリンタコントローラ5のPCIコントローラ26bに内蔵されているコンフィグレーションレジスタのコンフィグレーション(初期化処理)を完了し、MFPコントローラ用エリア47に受信コマンドバージョン、TxデバイスID、及び初期化が完了したことを示す情報を初期化ステータスとして書込む。次に、サブコンフィグレーションエリア37から取得したデバイス情報、すなわち、デバイスID、ユニット番号、サブコンフィグレーションエリア37のサブコンフィグレーションエリアPCIメモリ空間アドレスをプリンタコントローラ用デバイス情報エリア55に書込む。そして、ステータスとして検出済みを示す情報を書込む。このようにしてユニット管理エリア23のプリンタコントローラ用デバイス情報エリア55にプリンタコントローラ5にアクセスするために必要な情報がセットされると、スレーブデバイス(カラー画像処理ボード4やネットワークボード6)は、プリンタコントローラ用デバイス情報エリア55に書込まれている情報を参照してプリンタコントローラ5のサブコンフィグレーションエリア37にアクセスすることができる。すなわち、プリンタコントローラ5を認識して、上記のようなプリンタコントローラ5との通信準備を行うことができる。
以下、通信システム1起動時のコンフィグレーションサイクルにおいて、ホストデバイスであるMFPコントローラ3によって行われる処理動作について、図6に示すフローチャート及び図7に基づいて説明する。なお、図6に示すフローチャートに基づいて説明するMFPコントローラ3の処理動作は、図外のROMに格納されているプログラムに基づいて制御部10が発行する命令に従って行われる。また、ここでは、第1スレーブデバイスがプリンタコントローラ5で、第2スレーブデバイスがカラー画像処理ボード4である場合について主に説明するが、第1スレーブデバイスと第2スレーブデバイスの組合わせはこれに限定されるものではない。すなわち、第1スレーブデバイスと第2スレーブデバイスの組合わせは任意であり、例えば、第1スレーブデバイスがカラー画像処理ボード4で第2スレーブデバイスがプリンタコントローラ5であってもよい。
MFPコントローラ3のPCIホストコントローラ11は、通信システム1起動時のコンフィグレーションサイクルにおいて、PCIバス2へのスレーブデバイスの接続の有無を監視し、スレーブデバイスを検出したか否かを判断する(S1)。このように、MFPコントローラ3のPCIホストコントローラ11は、PCIバス2に接続されているプリンタコントローラ5(第1スレーブデバイス)を検出する。
ここで、PCIホストコントローラ11は、プリンタコントローラ5を検出したと判断した場合(S1:YES)、コンフィグレーションを実行する(S2)。具体的には、PCIコントローラ26bに内蔵されているコンフィグレーションレジスタ60にアクセスし、ベースアドレスの書込みや、デバイスID、バージョン情報等の読み出しを行う。なお、ここで行われるコンフィグレーションレジスタ60に対するコンフィグレーションは、PCI規格に準拠したものであるため、その詳細な説明は省略する。
続いて、PCIホストコントローラ11は、S2のコンフィグレーションによりプリンタコントローラ5から取得したデバイス情報をユニット管理エリア23にセットする(S3)。ところで、MFPコントローラ3は、プリンタコントローラ5から取得したデバイス情報を格納するユニット管理エリア23が設けられたRAM13を備えており、PCIホストコントローラ11は、S2においてコンフィグレーションレジスタ60から取得したデバイスID、ユニット番号、プリンタコントローラ5のRAM27bに設けられているサブコンフィグレーションエリア37のPCIメモリ空間上のアドレス(先頭アドレス)をユニット管理エリア23内のプリンタコントローラ用デバイス情報エリア55に書込む。そして、プリンタコントローラ用デバイス情報エリア55のステータスをプリンタコントローラ5を検出済みであることを示す情報に書換える。
次に、PCIホストコントローラ11は、コンフィグレーションが完了していないスレーブデバイスがあるか否かを判断する(S4)。すなわち、S2及びS3の処理動作を行っていないスレーブデバイスがあるか否かを判断する。なお、この判断処理は、ユニット管理エリア23のデバイス情報エリア53乃至56の各エリアのステータスを参照することにより判断することができる。ここで、コンフィグレーションが完了していないスレーブデバイスがあると判断した場合(S4:YES)、そのスレーブデバイス(カラー画像処理ボード4やネットワークボード6)に対して、プリンタコントローラ5を例として説明したのと同様に、S2及びS3の処理動作を行う。
逆に、コンフィグレーションが完了していないスレーブデバイスはないと判断した場合(S4:NO)、すなわち、ここでは、デバイス情報エリア53乃至56の全てについて、デバイスID、ユニット番号、及びサブコンフィグレーションエリアPCIメモリ空間アドレスの書込みと、ステータスの変更が完了したと判断した場合、S5に進む。
すなわち、PCIホストコントローラ11は、各スレーブデバイスのサブコンフィグレーションエリアにユニット管理アドレスを書込むとともに、コンフィグレーションの完了を各スレーブデバイスに通知する(S5)。言い換えれば、検出したスレーブデバイスにアクセスするために必要な情報を取得したことを各スレーブデバイスに通知する。
具体的には、プリンタコントローラ5に対し、サブコンフィグレーションエリア37内のデバイス情報エリア46にユニット管理エリア23の先頭アドレスであるユニット管理アドレスを書込むとともに、デバイス情報エリア46のステータスをコンフィグレーション(初期化処理)が完了したことを示す情報に書換える。そして、このようなプリンタコントローラ5のサブコンフィグレーションエリア37に対して行われるのと同様の処理を、カラー画像処理ボード4のRAM27a及びネットワークボード6のRAM27cにそれぞれ設けられているサブコンフィグレーションエリア(不図示)に対して行う。
このように、MFPコントローラ3のPCIホストコントローラ11は、S2乃至S5の一連の処理動作を行うことにより、検出した第1スレーブデバイス(例えばプリンタコントローラ5)にアクセスするために必要なデバイス情報を当該第1スレーブデバイスから取得してその旨を第2スレーブデバイス(例えば、カラー画像処理ボード4)に通知する。
以上の説明から明らかなように、例えば、カラー画像処理ボード4の制御部25aは、RAM27aに設けられたサブコンフィグレーションエリアからユニット管理アドレスを読み出し、PCIコントローラ26aによりMFPコントローラ3のRAM13に設けられているユニット管理エリア23にアクセスすることができる。そして、ユニット管理エリア23のプリンタコントローラ用デバイス情報エリア55から、プリンタコントローラ5のデバイスID、ユニット番号、及びサブコンフィグレーションエリアPCIメモリ空間アドレスを取得することができる。また、ネットワークボード用デバイス情報エリア56から、ネットワークボード6のデバイスID、ユニット番号、及びサブコンフィグレーションエリアPCIメモリ空間アドレスを取得することができる。つまり、プリンタコントローラ5やネットワークボード6にアクセスするために必要な情報をホストデバイス3から簡単に取得することができる。
次に、上記のようにコンフィグレーションの完了が通知された場合に、スレーブデバイスにおいて行われる処理動作について、図7及び図8に示すフローチャートに基づいて説明する。ところで、図8のフローチャートに示す処理動作は、カラー画像処理ボード4、プリンタコントローラ5、及びネットワークボード6の全てのスレーブデバイスにおいて行われるが、ここでは、カラー画像処理ボード4が図8に示す処理動作を行う場合を例として以下に説明する。なお、図8に示すフローチャートに基づいて説明するカラー画像処理ボード4の処理動作は、カラー画像処理ボード4が備える図外のROMに格納されているプログラムに基づいて制御部25aが発行する命令に従って行われる。
まず、カラー画像処理ボード4の制御部25aは、コンフィグレーションの完了通知があったか否かを判断する(S11)。具体的には、図示しないが、RAM27aに設けられているサブコンフィグレーションエリアのデバイス情報エリアにユニット管理アドレスが書込まれ、デバイス情報エリアのステータスが、コンフィグレーション(初期化処理)が完了したことを示す情報に書換えられているか否かを判断する。
ここで、コンフィグレーションの完了通知があったと判断した場合(S11:YES)、すなわち、デバイス情報エリアにユニット管理アドレスが書込まれ、ステータスがコンフィグレーションが完了したことを示す情報に書換えられていると判断した場合、ホストデバイス3のユニット管理エリア23にアクセスする(S12)。すなわち、制御部25aは、デバイス情報エリアに書込まれているユニット管理アドレスを読み出し、PCIコントローラ26aは、制御部25aが読み出したユニット管理アドレス、すなわち、RAM13のユニット管理エリア23にアクセスする。
次に、カラー画像処理ボード4のPCIコントローラ26aは、他のデバイス、すなわち、MFPコントローラ3、プリンタコントローラ5、及びネットワークボード6のデバイス情報を取得する(S13)。具体的には、アクセスしたユニット管理エリア23内のMFPコントローラ用デバイス情報エリア53、プリンタコントローラ用デバイス情報エリア55、及びネットワークボード用デバイス情報エリア56から、デバイスID、ユニット番号、及びサブコンフィグレーションエリアPCIメモリ空間アドレスを読み出す。
このように、第2スレーブデバイス(カラー画像処理ボード4)は、コンフィグレーションの完了通知、すなわち、第1スレーブデバイス(プリンタコントローラ5)からデバイス情報を取得したことを示す通知を受けた場合に、ホストデバイス(MFPコントローラ3)からデバイス情報を取得する。なお、カラー画像処理ボード4のPCIコントローラ26aは、上記の通知を受けた場合に、RAM13のユニット管理エリア23からデバイス情報を読み出すことにより、ホストデバイス3からデバイス情報を取得するものであるため、他のデバイスのデバイス情報を容易に取得することができる。
続いて、カラー画像処理ボード4のPCIコントローラ26aは、取得したデバイス情報に基づいて他のデバイスにアクセスし、そのデバイスとの間で通信準備を行う(S14)。例えば、プリンタコントローラ用デバイス情報エリア55から読み出したデバイスID、ユニット番号、及びサブコンフィグレーションエリアPCIメモリ空間アドレスに基づいてプリンタコントローラ5のRAM27bに設けられているサブコンフィグレーションエリア37にアクセスする。そして、サブコンフィグレーションエリア37内の自デバイス4専用の領域、すなわち、カラー画像処理ボード用エリア48に、受信コマンドバージョン及びTxデバイスID(カラー画像処理ボード4のデバイスID)を書込む。
このように、カラー画像処理ボード4(第2スレーブデバイス)のPCIコントローラ26aは、取得したそのデバイス情報に基づいてプリンタコントローラ5(第1スレーブデバイス)にアクセスし、プリンタコントローラ5との間で通信準備を行う。
ところで、プリンタコントローラ5は、自デバイス5と接続された他のデバイスが情報を書込むための領域が他のデバイス毎に設けられたRAM27b、言い換えれば、図4に示すようなサブコンフィグレーションエリア37が設けられたRAM27bを備えており、カラー画像処理ボード4のPCIコントローラ26aは、プリンタコントローラ5のRAM27bに設けられたカラー画像処理ボード4専用の領域(カラー画像処理ボード用エリア48)に通信に必要な情報を書込み、デバイス情報エリア46からコマンドエリアサイズやコマンドエリア0オフセット等の情報を読み出すことにより、通信準備を行う。
そして、カラー画像処理ボード4の制御部25aは、S14の処理動作の後、通信準備が完了していないターゲットがあるか否かを判断する(S15)。すなわち、S13においてデバイス情報を取得した全てのデバイスに対して、プリンタコントローラ5を例に説明した上記S14の処理動作を行ったか否かを判断する。そして、通信準備が完了していないターゲットのデバイスがあると判断した場合(S15:YES)、そのターゲットのデバイスに対してS14の処理動作を行う。逆に、通信準備が完了していないターゲットがないと判断した場合(S15:NO)、処理を完了する。
なお、カラー画像処理ボード4を例にして説明した図8に示すフローチャートの処理動作は、プリンタコントローラ5、ネットワークボード6、そして、MFPコントローラ3によっても行われるようになっており、2つのデバイス間で、コマンドバージョン、TxデバイスID等の通信に必要な情報を書込む処理と、コマンドエリアサイズやコマンドエリア0オフセット等の通信に必要な情報を読み出す処理とが相互に行われるようになっている。
具体的には、カラー画像処理ボード4のPCIコントローラ26aがサブコンフィグレーションエリア37のカラー画像処理ボード用エリア48に通信に必要な情報を書込む処理及びデバイス情報エリア46から通信に必要な情報を読み出す処理と並行して、プリンタコントローラ5のPCIコントローラ26bがカラー画像処理ボード4のRAM27aに設けられているサブコンフィグレーションエリアのプリンタコントローラ用エリアに通信に必要な情報を書込む処理及びデバイス情報エリアから通信に必要な情報を読み出す処理が行われるようになっている。
このように、2つのスレーブデバイス間で相互に通信に必要な情報の書込み及び読み出しを行って通信準備を行うことにより、ホストデバイス(MFPコントローラ3)を介することなく、スレーブデバイス同士が直接通信することが可能となる。
以下、ホストデバイス(MFPコントローラ3)を介することなく、スレーブデバイス同士が直接通信する場合の一例として、コマンド送信側のカラー画像処理ボード4からコマンド受信側のプリンタコントローラ5に対して、コマンドとともにデータサイズの小さいデータが転送される場合の通信について図9のシーケンス図及び図10に基づいて説明する。
なお、図9に示すカラー画像処理ボード4の処理動作は、カラー画像処理ボード4が備える図外のROMに格納されているプログラムに基づいて制御部25aが発行する命令に従って行われ、プリンタコントローラ5の処理動作は、プリンタコントローラ5が備える図外のROMに格納されているプログラムに基づいて制御部25bが発行する命令に従って行われる。
まず、コマンド送信側のカラー画像処理ボード4の制御部25aは、コマンド受信側のプリンタコントローラ5のカラー画像処理ボード用コマンドエリア40のセマフォを獲得する。具体的には、RAM27aの所定領域にカラー画像処理ボード用コマンドエリア40の使用権を獲得するための情報を書込んでカラー画像処理ボード用コマンドエリア40のヘッダエリア43とデータエリア44のセマフォを獲得する。
そして、制御部25aは、カラー画像処理ボード用コマンドエリア40のヘッダエリア43にヘッダタイプ及びコマンド(コマンドナンバー)を書込む。具体的には、PCIコントローラ26aにより、カラー画像処理ボード用コマンドエリア40がコマンドにより使用中であることを示すヘッダタイプ、及びプリンタコントローラ5へ転送すべきデータの取扱いを示すコマンドをPCIバス2を介してPCIコントローラ26bに送信する。これに対し、PCIコントローラ26bは、受信したヘッダタイプ及びコマンドをローカルバス31を介してカラー画像処理ボード用コマンドエリア40のヘッダエリア43に書込む。
このように、カラー画像処理ボード4が、PCIコントローラ26aによって、プリンタコントローラ5のRAM27bに設けられたカラー画像処理ボード4専用のカラー画像処理ボード用コマンドエリア40にコマンドを書込む。
続いて、制御部25aは、転送すべきデータをカラー画像処理ボード用コマンドエリア40のデータエリア44に書込む。具体的には、PCIコントローラ26aにより、転送すべきデータをPCIバス2を介してPCIコントローラ26bに送信する。これに対し、PCIコントローラ26bは、受信したデータをローカルバス31を介してRAM27bのカラー画像処理ボード用コマンドエリア40のデータエリア44に書込む。なお、ここでは、コマンド及び転送すべきデータをカラー画像処理ボード用コマンドエリア40に書込んでいるが、コマンド以外のデータを転送する必要がない場合には、データエリア44への書込みは不要である。
カラー画像処理ボード4の制御部25aは、このようにしてカラー画像処理ボード用コマンドエリア40にコマンド及び転送すべきデータを書込むと、その旨をコマンド受信側のプリンタコントローラ5に通知するために、割込みを発生させる。具体的には、PCIコントローラ26aにより、プリンタコントローラ5に対して割込みを発生させるための割込み要因をRAM27bのサブコンフィグレーションエリア37内のカラー画像処理ボード用エリア48に書込む。詳しくは、カラー画像処理ボード用エリア48の割込み要因(REQ)を「0」から「1」に書換える。そして、MFPコントローラ3が備える割込みコントロールレジスタ12にプリンタコントローラ5への割込み要求を書込む。
このようにして、カラー画像処理ボード4からプリンタコントローラ5への割込み要求が割込みコントロールレジスタ12にセットされると、割込みコントロールレジスタ12から割込み信号線18を介してプリンタコントローラ5の制御部25bへ割込み信号が送信される。これを受けて、制御部25bは、ローカルバス31を介してRAM27bのサブコンフィグレーションエリア37から「1」が書込まれている割込み要因を検索し、カラー画像処理ボード用エリア48の割込み要因(REQ)として「1」がセットされていることを検出することにより、カラー画像処理ボード用コマンドエリア40にコマンドが書込まれたことを判断することができる。
プリンタコントローラ5の制御部25bは、カラー画像処理ボード用コマンドエリア40のヘッダエリア43からコマンドを読み出すとともに、データエリア44からデータを読み出す。そして、データエリア44から読み出したデータに対して、ヘッダエリア43から読み出したコマンドに対応する処理を実行し、カラー画像処理ボード用コマンドエリア40からコマンド及びデータを読み出したことをコマンド送信側のカラー画像処理ボード4に通知するために、カラー画像処理ボード4に対して割込みを発生させる。なお、この割込みは、上記のカラー画像処理ボード4からプリンタコントローラ5への割込みと割込みの方向が逆となり、割込み要因が異なる点を除いてカラー画像処理ボード4からプリンタコントローラ5への割込みと同様に行われるため、ここでの詳細な説明は省略する。
カラー画像処理ボード4の制御部25aは、プリンタコントローラ5からの割込みを受けると、カラー画像処理ボード用コマンドエリア40に書込んだコマンド及びデータがプリンタコントローラ5の制御部25bによって読み出されて不要になったと判断する。そして、ヘッダエリア43に、カラー画像処理ボード用コマンドエリア40が未使用であることを示すヘッダタイプを書込み、RAM27aの所定領域にカラー画像処理ボード用コマンドエリア40の使用権を返却するための情報を書込んでカラー画像処理ボード用コマンドエリア40のヘッダエリア43とデータエリア44のセマフォを返却して通信を完了する。
このように、本実施形態に係る通信システム1では、スレーブデバイスが他のスレーブデバイスを容易に認識してスレーブデバイス同士が直接通信を行うことができる。そのため、例えば、データサイズの大きいカラー画像データをスレーブデバイス間で転送する場合に、ホストデバイス3を介することなく、効率よくカラー画像データを転送することができる。
また、本実施の形態で示した通信システム1の構成は、本発明に係る通信システムの一態様にすぎず、本発明の要旨を逸脱しない範囲内で適宜設計変更できることは勿論であり、ホストデバイスと複数のスレーブデバイスとからなる通信システムであれば、本実施形態において説明した複合機の他に、複写機、ファクシミリ装置等としても実現可能である。