(57)【特許請求の範囲】
【請求項１】
原稿を読み取って画像データを生成する読取手段と、前記読取手段が有するスキャナの主走査長×Ｎライン分の容量を有する２つのトグルバッファと、前記読取手段によって生成された画像データをライン単位に前記トグルバッファの一方に書き込む画像データ書込手段と、前記画像データ書込手段によって書き込まれた画像データが前記トグルバッファの有する容量を満たした場合に、画像データの書込先を他方のトグルバッファに切り替える制御手段と、
を備えた画像処理装置において、
前記画像処理装置は、さらに、１ライン周期内に前記トグルバッファの一方に対して次の書き込みがないことを検知した場合、当該検知の直前の書込先となっていたトグルバッファに書き込まれたライン数と、前記制御手段によって画像データの書込先が切り替えられた回数とに基づいて、前記読取手段が有するスキャナの副走査ライン数を算出するライン数算出手段を備えたことを特徴とする画像処理装置。
【請求項２】
前記ライン数算出手段は、前記読取手段が有するスキャナの副走査ライン数を、
（前記制御手段によって画像データの書込先が切り替えられた回数×Ｎ）＋（前記検知の直前の書込先となっていたトグルバッファに書き込まれたライン数）
で計算することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記制御手段は、前記トグルバッファの最終アドレスに対する書き込みが行われたことを監視し、当該書き込みにより当該トグルバッファのバッファの容量が満たされたことを検知して、画像データの書込先を切り替えるための割り込みをＣＰＵに発生させることを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記制御手段は、前記トグルバッファの最終アドレスに対する書き込みを監視するための最終アドレスの比較処理のため、アドレスの下位の所定ビットを前記読取手段のデータ転送時のバースト長に応じてマスクすることを特徴とする請求項３記載の画像処理装置。
【請求項５】
前記画像データ書込手段が前記トグルバッファへの書き込みを行った場合に、書き込み動作完了を検知するタイミングを、メモリアービタがメモリアクセスを受け付けた時とするタイミング制御手段を備える請求項１乃至４いずれか一記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に関する。
【０００２】
【従来の技術】
従来の画像処理装置の一例を図１９に示す。従来の画像処理装置では、汎用バスを用いずにスキャナユニット（6004）とメモリ管理用＆Ｉ／Ｆ制御用のＡＳＩＣ（Ａpplication Ｓpecified ＩＣ）(6002)を介して、システム制御用のＣＰＵ(6001)が接続されており、読み取り対象原稿の紙送り方向の長さの検知はスキャナユニット(6004)からの信号をＡＳＩＣ(6002)でライン数をカウントしていたので、ＣＰＵ(6001)は原稿終了とともに原稿の長さを知ることができた。
【０００３】
なお、プリンタオプション(6006)は、ネットワークインターフェースなどのホストインターフェースを有し、ＰＤＬを受信したら、画像をローカルメモリに描画し、描画完了後、画像をメモリ(6003)へ転送し、プロッタユニット(6005)へ出力する。スキャナオプション(6007)は、ネットワークインターフェースなどのホストインターフェースを有し、スキャナユニット(6004)から画像をメモリ(6003)に取り込んでから、スキャナユニット(6007)のローカルメモリに画像を転送し、転送完了後、ホストへ画像を出力する。ファックスオプション(6008)は電話回線（ファックス回線）を有し、ファックス送信する場合は、スキャナユニット(6004)から画像をメモリ(6003)に読み込んだ後、ローカルメモリに画像を転送してから、ファックス回線を使って通信を行う。ファックス受信の場合は、ファックス回線からローカルメモリに画像を受信した後、メモリ(6003)へ画像を転送し、その後、プロッタユニット(6005)へ画像を出力する。
【０００４】
【発明が解決しようとする課題】
しかしながら、ＰＣＩ（Ｐeripheral Ｃomponent Ｉnterconnect）等の汎用バスを用いて、スキャナ機能を持つデバイスと接続した場合は、原稿終了の専用信号などがないので、通信専用バッファを介してコマンドのやりとりをして、全体のライン数を知る必要がある。コマンドのやりとりは割り込みベースであるため、処理が遅く、ライン数を知らないと処理できない部分の処理が遅れてしまい、画像処理装置としてのスループットが落ちてしまうという問題がある。
【０００５】
また、従来の長尺用紙対応の画像処理装置では、１つのバッファに対して、書き込みポインタとリードポインタとで管理することが可能であるので、原稿の画像データの量よりも少ないメモリ量で画像を取り込むことができる。ところが、汎用バスでスキャナ機能を持つデバイスとメモリを接続した場合、スキャナからの画像入力はメモリへの直接書き込みであるため、バッファの管理が難しく、原稿の画像データの量よりも少ないメモリ量で画像を取り込むことは現状では不可能である。
【０００６】
さらには、従来の画像処理装置では、ライン同期信号を作成し、それをカウントすることでライン数を検知することができたが、汎用バスでスキャナ機能を持つデバイスと接続することで専用のライン同期信号がなくなるので、ライン数を検知することができない。
【０００７】
また、従来の画像処理装置では、画像のライン数を検知することができたが、汎用バスでライン数を検知するためには、バッファフルの検知をすることが必要である。このためには、バッファフルをバッファの最終アドレスへの書き込みで検知すればよいが、汎用バスでは、バースト転送を行うため、アドレスがバースト長のバウンダリ境界に揃ってしまい、アドレスを比較することが難しい。また、メモリへの書き込みは汎用バス側で完了していたとしても実メモリに書かれたかどうかは確定しない。
【０００８】
本発明は、汎用バスを用いる条件下に、スキャナ機能を持つデバイスとコマンドでやりとりすることなく原稿の読み取り終了を知ることができる画像処理装置を提供することを目的とする。
【０００９】
本発明は、汎用バスでスキャナ機能を持つデバイスとメモリとを接続する条件下に、原稿の画像データの量よりも少ないメモリ量で画像を取り込み得る画像処理装置を提供することを目的とする。
【００１０】
本発明は、汎用バスを用いる条件下に、転送データ量から、画像のライン数を検知することができる画像処理装置を提供することを目的とする。
【００１１】
本発明は、バースト転送時でもアドレスを比較することにより、バッファフルをバッファの最終アドレスへの書き込みで検知することができる画像処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
一実施例の画像処理装置は、スキャナ機能を持つマスターになり得るスキャナターゲットデバイスと、メモリを持つマスターになり得るメモリターゲットデバイスと、これらのスキャナターゲットデバイスとメモリターゲットデバイスとを接続する汎用バスと、を備え、前記メモリターゲットデバイスは、前記メモリに対する前記スキャナターゲットデバイスの画像の書き込みを検知し、一定の時間内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するライン数決定手段を有する。
【００１３】
従って、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さを予め知ることができない場合でも、スキャナターゲットデバイス側とコマンドをやり取りしなくても、原稿読み取りの終了を検知することができ、コマンドのやり取りに伴うオーバーヘッドを軽減でき、画像処理のパフォーマンスを上げることができる。
【００１４】
また、一実施例の画像処理装置は、スキャナ機能を持つマスターになり得るスキャナターゲットデバイスと、メモリを持つマスターになり得るメモリターゲットデバイスと、これらのスキャナターゲットデバイスとメモリターゲットデバイスとを接続する汎用バスと、を備え、前記メモリターゲットデバイスは、前記スキャナターゲットデバイス中のスキャナ機能における主走査長×Ｎラインの２つのトグルバッファと、前記スキャナターゲットデバイス側からの画像データをこれらのトグルバッファにより交互に受信させるトグル動作制御手段と、を有する。
【００１５】
従って、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さが長く、取り込もうとしている画像データの量がメモリターゲットデバイスが保有しているメモリ量よりも大きい場合であっても、主走査長×Ｎラインの２つのトグルバッファを用意して、交互に受信させることにより、コントローラが保有するメモリよりも大きい画像データとなる原稿の画像読み取りが可能となる。
【００１６】
また、一実施例の画像処理装置は、スキャナ機能を持つマスターになり得るスキャナターゲットデバイスと、メモリを持つマスターになり得るメモリターゲットデバイスと、これらのスキャナターゲットデバイスとメモリターゲットデバイスとを接続する汎用バスと、を備え、前記メモリターゲットデバイスは、前記スキャナターゲットデバイス中のスキャナ機能における主走査長×Ｎラインの２つのトグルバッファと、前記スキャナターゲットデバイス側からの画像データをこれらのトグルバッファにより交互に受信させるトグル動作制御手段と、各々の前記トグルバッファに対する前記スキャナターゲットデバイスの画像の書き込みを検知し、一定の時間内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するライン数決定手段と、を有する。
【００１７】
従って、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さを予め知ることができなくて、かつ、スキャナが画像を取り込む対象としている原稿の紙送り方向の長さが長く、取り込もうとしている画像データの量がメモリターゲットデバイスが保有しているメモリ量よりも大きい場合であっても、主走査長×Ｎラインの２つのトグルバッファを用意し、交互に受信させるとともに、メモリターゲットデバイスが各々のトグルバッファに対する画像の書き込みを検知し、一定の時間内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定することにより、メモリターゲットデバイスが保有するメモリよりも大きい画像データとなる原稿の画像読み取りが可能となり、かつ、原稿のサイズが不明の場合でも原稿読み取りの終了を検知できる。
【００１８】
また、一実施例の画像処理装置において、前記ライン数決定手段は、主走査長×Ｎラインの前記トグルバッファの先頭アドレスと主走査長と、前記トグルバッファのトグル回数と、最終のデータが書き込まれる前記トグルバッファに対して書き込まれたライン数とから、書き込まれた総ライン数を、書き込まれた総ライン数＝（トグルバッファのトグル回数×Ｎ）＋（最終トグルバッファの書き込みライン数）
で計算する。
【００１９】
従って、トグルバッファを用いる場合に、原稿のサイズを適正に決定することができる。
【００２０】
また、一実施例の画像処理装置において、前記トグル動作制御手段は、前記トグルバッファの最終アドレスに対する書き込みが行われたことを監視し、当該書き込みにより当該トグルバッファのバッファフルを検知してＣＰＵにトグル用の割り込みを発生させる。
【００２１】
従って、最終アドレスに対する書き込みによりトグルバッファのバッファフルを検知してＣＰＵにトグル用の割り込みを発生させるので、書き込まれたアドレスを比較するだけで、トグルバッファがフルであることを知ることができる。
【００２２】
また、一実施例の画像処理装置において、前記トグル動作制御手段は、前記トグルバッファの最終アドレスに対する書き込みを監視するための最終アドレスの比較処理のため、アドレスの下位ｍビットを前記スキャナターゲットデバイスのデータ転送時のバースト長に応じてマスクする。
【００２３】
従って、アドレスの下位ｍビットをスキャナターゲットデバイスのデータ転送時のバースト長に応じてマスクすることにより、バースト転送のように先頭アドレスしか情報がない場合でもアドレスを比較することができる。
【００２４】
また、一実施例の画像処理装置において、前記スキャナターゲットデバイスが前記メモリターゲットデバイスへの書き込みを行った場合に、書き込み動作完了を検知するタイミングを、前記メモリターゲットデバイス内部のメモリアービタがメモリアクセスを受け付けた時とするタイミング制御手段を備える。
【００２５】
従って、メモリへの書き込みは汎用バス側で完了していたとしても実メモリに書かれたかどうかは確定しないが、メモリへの受付が済んだ時点でアドレス割り込みを発生することで、データの書き込みと読み出しデータの一致を保証することができる。
【００２６】
また、一実施例の画像処理装置において、前記汎用バスがＰＣＩ（Peripheral Component Interconnect）又はＰＣＩ−Ｘである。
【００２７】
従って、請求項１ないし７の何れか一記載の画像処理装置を実現する上で、汎用バスとして一般的なＰＣＩ又はＰＣＩ−Ｘを用いることができる。
【００２８】
【発明の実施の形態】
本発明の一実施の形態を図１ないし図１８に基づいて説明する。
【００２９】
まず、本実施の形態が適用される画像処理装置の基本構成と基本動作を説明する。
【００３０】
［基本構成その１と基本動作］
▲１▼  初期化
エンジン(110)はＰＣＩバス(109)を介してコントローラ(101)と接続される。ここに、エンジン(110)は、ＰＣＩバス(109)に直結可能なプリンタエンジン、スキャナエンジン、複写機エンジン等であるが、本実施の形態では、スキャナ機能を持つマスターとなり得るスキャナターゲットデバイスであり、少なくともスキャナ機能を有するエンジンを意味する。汎用バスとしてのＰＣＩバス(109)は、ここでは、エンジン接続用の２番目（２nd）のＰＣＩバスである。
【００３１】
エンジン(110)中のプリンタに電源が投入されると、ＣＰＵ(102)はサウスブリッジＳＢ(105)の先のＢＩＯＳ（図示せず）から起動を開始して、ノースブリッジＮＢ(103)の初期化、サウスブリッジＳＢ(105)の初期化を行う。ノースブリッジＮＢ(103)は、CPU(102)とメモリ、ＡＧＰ(106)、サウスブリッジＳＢ(105)を接続するためのブリッジであり、サウスブリッジＳＢ(105)は、ノースブリッジＮＢ(103)とＲＯＭ、ＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。
【００３２】
その初期化の最中にグラフィック専用バスであるアクセラレイテッド・グラフィック・ポートＡＧＰ(106)を介してＡＳＩＣ(108)のＡＧＰバス側のＰＣＩ−ＣＯＮＦＩＧレジスタ(401)（図２参照）をアクセスし、ベースアドレスレジスタＢＡＲ０(402)，ＢＡＲ１(403)を設定し、ＡＳＩＣ(108)のＡＧＰデバイスとしての初期化を完了する。ベースアドレスレジスタＢＡＲ０(402)は、ローカルメモリＭＥＭ−Ｃ(107)をマッピングするためのアドレスレジスタであり、ベースアドレスレジスタＢＡＲ１(403)は、内部レジスタ、ＰＣＩ ＭＥＭ空間(602)（図４参照）、ＰＣＩ Ｉ／Ｏ空間(601)（図４参照）をマッピングするためのアドレスレジスタである。
【００３３】
ＡＳＩＣ(108)のＡＧＰデバイスとしての初期化が完了すると、ＡＳＩＣ(108)の内部レジスタをアクセスするができる。内部レジスタの中には、ＤＭＡＣにアクセス先を知らせるための、図３に示すようなＡＧＰＭＥＭＢＡＳＥレジスタ(501)とＬＯＣＡＬＭＥＭＢＡＳＥレジスタ(502)がある。ＡＧＰＭＥＭＢＡＳＥレジスタ(501)はＮＢ(103)のＡＧＰ空間(604)がＡＳＩＣ(108)内のどのアドレスにマッピングされるか設定され、ＬＯＣＡＬＭＥＭＢＡＳＥレジスタ(502)はＡＳＩＣ(108)が直接管理しているローカルメモリＭＥＭ−Ｃ(107)をどこにマッピングするか設定する。ＡＧＰＭＥＭＢＡＳＥレジスタ(501)にはＡＧＰ空間の先頭アドレス(612)（図４参照）が設定され、ＬＯＣＡＬＭＥＭＢＡＳＥレジスタ(502)にはＭＥＭ−Ｃ空間の先頭アドレス(611)（図４参照）が設定される。
【００３４】
マッピングが完了するとメモリマップは図４に示すようになる。
【００３５】
ＣＰＵ(102)から見た場合、システムメモリはＭＥＭ−Ｐ(605)の位置に存在し、その上にＡＧＰ空間(604)がマッピングされる。ＡＧＰ空間(604)の設定はＮＢ(103)のレジスタに設定する。
【００３６】
それより、上位のアドレスにはＰＣＩ空間にマッピングされたレジスタが見える。
【００３７】
内部レジスタ空間(603)とＰＣＩ ＭＥＭ空間(602)とＰＣＩ Ｉ／Ｏ空間(601)とはＰＣＩ ＣＯＮＦＩＧ空間(303)（図５参照）のレジスタＢＡＲ０(402)で設定される。ＡＳＩＣ（108）の管理下にあるローカルメモリＭＥＭ−Ｃ(107)はレジスタＢＡＲ１(403)で設定され、ＣＰＵ(102)からＰＣＩ経由でアクセスすることができる。
【００３８】
レジスタＢＡＲ０(402)に設定されるベースアドレスは内部レジスタ(608)の先頭を意味しており、ＰＣＩ ＭＥＭ空間(607)とＰＣＩ Ｉ／Ｏ空間（606）はベースアドレスに対するオフセットで固定的に定義される。
【００３９】
ＰＣＩ ＭＥＭ空間(607)をＣＰＵ(102)がアクセスするとそのライトアクセスはポストされ、ＣＰＵ(102)は解放されて、次の仕事にかかることができる。そのライトアクセスは２nd-ＰＣＩ(109)の同じアドレスのＰＣＩ ＭＥＭ空間(615)にライトされる。ＰＣＩ Ｉ／Ｏ空間(606)に対するライトアクセスも同様に、２nd-ＰＣＩ(109)のＰＣＩ Ｉ／Ｏ空間(616)に対してライトされる。
【００４０】
また、ＣＰＵ(102)がＰＣＩ ＭＥＭ空間（602）をリードアクセスすると、そのアクセスはＮＢ(103)でＡＧＰアクセスに変換され（ＰＣＩの６６ＭＨｚ相当）、ＡＳＩＣ(108)のＰＣＩ ＭＥＭ空間(607)をリードアクセスする。ＡＳＩＣ(108)は２nd-ＰＣＩ(109)のＰＣＩ ＭＥＭ空間(615)をアクセスするがデータをリードするまでには時間がかかるので、一旦、ＣＰＵ(102)からのＡＧＰアクセスに対して、リトライを返す。ＮＢ（103）はリトライ信号を受け取ると、また、リードアクセスを繰り返す。
【００４１】
ＡＳＩＣ(108)が２nd-ＰＣＩ(109)から、データをリードして、データが用意できると、データをＮＢ(103)に返す。ＮＢ（103）はＣＰＵ(102)でデータを渡して、そのトランザクションは完了する。
【００４２】
２nd-ＰＣＩ(109)に接続されるエンジン(110)にはＰＣＩ−ＣＯＮＦＩＧレジスタが存在し、そのベースアドレスをＰＣＩ ＭＥＭ空間(615)内のどこかにマッピングすることでエンジン(110)のエンジンＰＣＩレジスタ(702)（図６参照）をアクセスできるようになる。エンジン(110)からアクセスするために、ＡＳＩＣ(108)の２nd-ＰＣＩ(109)側にもＰＣＩ-ＣＯＮＦＩＧレジスタ(310)（図５参照）が存在する。ＮＢ(103)のＡＧＰ空間(604)をアクセスするためのベースレジスタや、ＡＳＩＣ(108)の管理下のメモリＭＥＭ−Ｃ(610)（図４参照）をアクセスするためのベースレジスタや、ＡＳＩＣ(108)の画像入力用ＤＭＡＣの入力アドレスを設定するためのベースレジスタや、ＡＳＩＣ(108)の画像出力用ＤＭＡＣの出力アドレスを設定するためのベースレジスタなどがある。
【００４３】
なお、ＡＳＩＣ(108)を示す図５において、
ＡＧＰ(301)：ＮＢと接続されるＡＧＰバス、
ＡＧＰユニット(302)：ＡＧＰのバスプロトコルを実行するユニット、
ＣＯＮＦＩＧ(303)：ＡＧＰ(301)のためのＰＣＩのＣＯＮＦＩＧレジスタ、
ＭＡＳＴＥＲ(304)：ＡＧＰのバスマスタ機能を実行するユニット、
ＴＡＲＧＥＴ(305)：ＡＧＰ(301)に包含されるＰＣＩのターゲット機能を実行するユニット、
内部レジスタ(306)：ＣＰＵ(102)からアクセスされる、ＡＳＩＣ(103)の各機能に必要とされるレジスタ、
ＤＭＡＣ(307)：ローカルメモリＭＥＭ−Ｃ(107)に対してＤＭＡ転送すためのＤＭＡコントローラ、
ＲＡＭＣ(308)：ローカルメモリＭＥＭ−Ｃ(107)を制御するためのＲＡＭコントローラ、
メモリバス(309)：メモリデバイスを接続するメモリ専用のバス、
ＣＯＮＦＩＧ(310)：２nd‐ＰＣＩバス(109)側のＰＣＩ−ＣＯＮＦＩＧレジスタ、
ＭＡＳＴＥＲ(311)：ＰＣＩのバスマスタ機能を実行するユニット、
ＴＡＲＧＥＴ(312)：ＰＣＩのターゲット機能を実行するユニット、
ＰＣＩユニット(313)：ＰＣＩのバスプロトコルを実行するユニット、
ＰＣＩ(314)：エンジン(110)などと接続されるＰＣＩバス、
である。
【００４４】
また、図１において、ＡＳＩＣ(108)には、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージであるＨＤＤ(112)や、外部接続用のネットワークＩ／Ｆ(113)等も接続されている。
【００４５】
マッピングが終了すると図４に示すようになり、ＣＰＵ(102)はメモリマップに従ってアクセスすることができるようなる。また、エンジン(110)は図７に示すようなメモリマップに従って、メモリをアクセスすることができるようになる。２nd-ＰＣＩ空間を示す図７において、エンジンＰＣＩ(801)はエンジン(110)側のレジスタ空間、Ｖｉｎ(802)はビデオ入力用ＦＩＦＯアドレス空間、Ｖｏｕｔ(803)はビデオ出力用ＦＩＦＯアドレス空間、ＡＧＰ(804)は２nd-ＰＣＩ(109)側から見えるＡＧＰ空間、ＭＥＭ−Ｃ(805)は２nd-ＰＣＩ(109)側から見えるＭＥＭ−Ｃ(107)のメモリ空間である。
【００４６】
エンジン(110)も電源投入後、自己診断などを行い、ＣＰＵ(102)によるマッピングを待っている。
【００４７】
初期化終了とともにエンジン(110)もＣＰＵ(102)と通信することが可能になる。
【００４８】
コントローラ(101)では、ソフトウエアの初期化が行われ、完了すると操作部(111)にプリント／コピー可能である旨のメッセージが表示され、ユーザからの指示待ち或いはホストからのデータ受信に備えて待機状態になる。
【００４９】
▲２▼コピー動作（スキャナとプロッタ部から構成される）
画像を読み取るために、まず、ユーザは原稿を画像形成装置のエンジン(110)のスキャナ部にセットする。
【００５０】
操作部(111)から、コピー条件の指示をして、操作部(110)のスタートキーを押下することで、スキャン動作がスタートする。コピー開始の指示を受けたコントローラ(101)は2nd-ＰＣＩ(109)を経由してエンジン(110)スキャンを開始するように指示する。
【００５１】
ここで、エンジン(110)の概略構成例を図８に示す。なお、紙搬送部は省略してある。
【００５２】
原稿の画像をＣＣＤ(1201)で読み取り、読み取ったアナログ信号レベルをＡ／Ｄ変換してから、シェーディング補正、ＭＴＦ補正、γ補正等の画像処理を行う入力用画像処理部１(1202)を経由して、画像シフト部(1203)で主走査方向のシフト処理を行い、ユーザに指定された倍率で拡大／縮小等の変倍処理を行う変倍処理部(1204)を経由して、圧縮器（エンコーダ）(1205)で多値画像データを符号に変換され、ＰＣＩのバスプロトコルを実行する部分とＤＭＡＣとからなるＰＣＩ部(1206)で、コントローラ(101)のＡＳＩＣ(108)を経由して、メモリＭＥＭ−Ｃ(107)に保存される。
【００５３】
図８中に示すＰＣＩバス(1211)と図１中に示した２nd‐ＰＣＩ(109)とは同じものである。
【００５４】
次にプリント出力処理を説明する。メモリＭＥＭ−Ｃ(107)への画像の読み込みが終了すると、コントローラ(101)はエンジン(110)に出力する指示を発行し、エンジン(110)は指示に従って、ＰＣＩ部(1206)がＰＣＩバス(1211)を経由して、コントローラ(101)から画像データを読み込もうとする。つまり、エンジン(110)はＰＣＩのリードトランザクションを発生し、ＡＳＩＣ(109)に対してリード要求を出す。ＡＳＩＣ(109)は要求に応じてメモリＭＥＭ−Ｃ(107)から画像データを読み出して、エンジン(110)へ渡す。
【００５５】
エンジン(110)のＰＣＩ部(1206)がコントローラ(101)から画像データを受取ると伸長部（デコーダ）(1210)で符号データを伸長（復号）して元のデータに戻し、画像シフト処理部(1209)で画像出力のためのシフト処理を行い、出力用画像処理(1208)を経由して、感光体に描画するためのレーザードライバボードＬＤＢ(1207)へ最終段の画像データを渡し、転写、現像、定着され、用紙に印字されて排出トレイに出力される。
【００５６】
［基本構成その２と基本動作］
▲１▼初期化
図９に基本構成を示す。
【００５７】
スキャナ／プロッタを有してスキャナ機能を持つマスターとなり得るスキャナターゲットデバイスとしてのエンジン(4010)は汎用バスであるＰＣＩ(4009)を介してメモリターゲットデバイスとしてのコントローラ(4001)と接続される。
【００５８】
電源を投入すると、エンジン(4010)は自己診断を開始し、終了するとエンジン(4010)内部を初期化して、準備が整うとＰＣＩ(4009)と併設された信号ＥＮＧＲＤＹをアサートしてコントローラ(4001)に知らせる。
【００５９】
電源投入と同時にコントローラ(4001)のＣＰＵ(4003)は動作を開始し、ブート情報をＡＳＩＣ(4002)から受取ると、その情報に従って自らを初期化し、ＡＳＩＣ(4002)に対してブートアドレスを出力し、プログラムコードを要求する。ＡＳＩＣ(4002)はＣＰＵ(4003)の要求に従って、ＲＯＭ(4004)へアドレスを出力し、必要なプログラムコードを読み出し、ＣＰＵ(4002)へ渡す。この動作を繰り返して、ＣＰＵ(4002)によりコントローラ(4001)上のデバイスが初期化される。その間、操作部(4007)には「シバラクオマチクダサイ」というようなメッセージが表示され、その後、エンジン(4010)がレディであることを確認して、操作部(4007)に「コピーデキマス」と表示する。
【００６０】
▲２▼コピー動作（スキャナとプロッタ部から構成される）
画像を読み取るために、まず、ユーザは原稿を画像形成装置のエンジン(4010)のスキャナ部にセットする。操作部(4007)から、コピー条件の指示をして、操作部(4007)のスタートキーを押下することで、スキャン動作がスタートする。コピー開始の指示を受けたコントローラ(4001)はＰＣＩ(4009)を経由してエンジン(4010)にスキャンを開始するように指示する。
【００６１】
エンジン１０１０の構成を図８を参照して説明する。なお、紙搬送部は省略してある。
【００６２】
原稿の画像をＣＣＤ(1201)で読み取り、読み取ったアナログ信号レベルをＡ／Ｄ変換してから、シェーディング補正、ＭＴＦ補正、γ補正等の画像処理を行う入力用画像処理部１(1202)を経由して、画像シフト部(1203)で主走査方向のシフト処理を行い、ユーザに指定された倍率で拡大／縮小等の変倍処理を行う変倍処理部(1204)を経由して、圧縮器（エンコーダ）(1205)で多値画像データを符号に変換され、ＰＣＩのバスプロトコルを実行する部分とＤＭＡＣとからなるＰＣＩ部(1206)で、コントローラ(4001)のＡＳＩＣ(4002)を経由して、メモリＭＥＭ−Ｃ(4005)に保存される。
【００６３】
図８中に示すＰＣＩバス(1211)と図９中に示したＰＣＩ(4009)とは同じものである。
【００６４】
次にプリント出力処理を説明する。ＭＥＭ−Ｃ(4005)への画像の読み込みが終了すると、コントローラ(4001)はエンジン(4010)に出力する指示を発行し、エンジン(4010)は指示に従って、ＰＣＩ部(1206)がＰＣＩバス(1211)を経由して、コントローラ(4001)から画像データを読み込もうとする。つまり、エンジン(4010)はＰＣＩのリードトランザクションを発生し、ＡＳＩＣ(4002)に対してリード要求を出す。ＡＳＩＣ(4002)は要求に応じてＭＥＭ−Ｃ(4005)から画像データを読み出して、エンジン(4010)へ渡す。
【００６５】
エンジン(4010)のＰＣＩ部(1206)がコントローラ(4001)から画像データを受取ると伸長部（デコーダ）(1210)で符号データを伸長（復号）して元のデータに戻し、画像シフト処理部(1209)で画像出力のためのシフト処理を行い、出力用画像処理(1208)を経由して、感光体に描画するためのレーザードライバボードＬＤＢ(1207)へ最終段の画像データを渡し、転写、現像、定着され、用紙に印字されて排出トレイに出力される。
【００６６】
［操作部構成］
基本構成その１，２に共通な操作部の構造を図１０に示す。本実施の形態では、プリンタ単体動作の構成は対象外とするので、基本構成その１，２における▲２▼プリンタ動作は含まない。
【００６７】
操作部(4501)には、タッチパネル付き液晶表示部(4502)があり、メニューを表示し、機能を選択するのに使用される。初期設定キー(4503)は各機能コピー／プリンタ／ＦＡＸ／ネットワークなどの設定を行うときに押下され、タッチパネル付き液晶表示部(4502)に設定画面が表示される。
【００６８】
各種機能キーのうち、コピー機能キー(4504)はコピー機能のメニュー画面を選択するために使用される。以下、同様にドキュメントボックス機能キー(4505)はドキュメントボックス機能、プリンタ機能キー(4506)はプリンタ機能、スキャナ機能キー(4507)はスキャナ機能、ファックス機能キーはファックス機能のメニューを選択する。
【００６９】
ファックス機能選択時に使用される、手動受信キー(4510)、オンフックキー(4511)、ポーズ/リダイアルキー(4512)、トーンキー(4513)がある。数字キー(4519)は枚数の指定や電話番号の入力などに使用される。プログラムロードキー(4515)は予め定義された設定をロードするためのキーで、プログラムロードキーを押した後、数字キー(4516)を押すことで対応した番号のプログラムをロードすることができる。リセットキー(4516)は現在表示されているメニューをデフォルトの状態に戻すために使用される。予熱キー(4517)は画像処理装置を予熱モードに移行させたいときに使用する。予熱モードとは操作部などの電源を切って、エンジンの定着部のヒートローラだけを温めている待機状態のことである。割り込みキー(4518)は、現在コピーしている動作を止めて、途中で別のコピーを割り込ませるために使用される。割り込み完了後は前に状態で再開される。お試しキー（4522）は、２部以上の大量印刷して時にとりあえず一部だけ出力してみるときに使用される。スタートキー(4521)はコピー／ファックス／スキャンなどの開始に使用される。クリアキー(4520)はコピー枚数のクリアなどに使用される。
【００７０】
［ソフトウエア構成］
基本構成その１，２に共通なソフトウエア構成を図１１に示す。
【００７１】
ハードウエア(5017)は基本構成その１又は基本構成その２に示した構成とされている。エンジンEngine(5016)はプロッタ／スキャナを含み、汎用ＯＳ(5014)とはエンジンコマンドＩ／Ｆ(5015)と呼ばれるＡＰＩで接続される。汎用ＯＳ(5014)は、システムを統括するＵＮＩＸ（登録商標）と同等の機能を持つＯＳである。
【００７２】
ＳＲＭ：システムリソースマネージャ(5013)はシステムのリソース、例えば、メモリやＤＭＡＣなどの調停を行う部分であり、ＳＣＳ：システムコントロールサービス(5010)から利用される。
【００７３】
ＥＣＳ：エンジンコントロールサービス(5007)は、エンジン(5016)とのコマンド/データの授受などを行うエンジンサービスを提供する。ＭＣＳ：メモリコントロールサービス(5008)は、システムのメモリ管理サービスを提供する。ＯＣＳ：オペレーションパネルコントロールサービス(5009)は操作部に表示したり、操作部からの入力を扱うための操作部サービスを提供する。ＦＣＳ：ファックスコントロールサービス(5012)は、ファックスコントロールユニットを制御するためのファックスサービスを提供する。ＮＣＳ：ネットワークコントロールサービス(5011)は、ネットワークを使うための各種サービスを提供する。
【００７４】
これらのコントロールサービスを集めたサービス層の上位にはアプリケーション層が存在し、それらとの間にはサービスＡＰＩ(5006)と呼ばれるＡＰＩで接続される。
【００７５】
アプリケーション層には、プリンタとして動作するＰＲＩＮＴ−ＡＰＬ(5001)、コピーとして動作するＣＯＰＹ−ＡＰＬ(5002)、ファックスとして動作するＦＡＸ−ＡＰＬ(5003)、スキャナとして動作するＳＣＡＮ−ＡＰＬ(5004)、蓄積された文書をネットワーク経由で取り出したりするＮＥＴＷＯＲＫ−ＡＰＬ(5005)がある。
【００７６】
次に、このような基本構成、基本動作等を利用した本実施の形態の特徴的構成例とその動作を説明する。
【００７７】
［構成例１］
本構成例１においては、構成を図１として、通常の読み取り動作は図１２に示すような主走査の先頭でアサートされる同期信号ＬＳＹＮＣ(1804)に基づいて、その周期内に連続して、エンジン(110)が１ライン分の画像データをコントローラ(101)のＭＥＭ−Ｃ(107)へ転送する。そのため、１ライン周期以上の間、画像転送がないということは、原稿が終了したと考えることができる。図１２中、(1801)は主走査方向と副走査方向とで決まる用紙サイズ、ＦＧＡＴＥ(1802)は用紙の副走査の有効範囲を示す信号、ＬＧＡＴＥ(1803)は用紙の主副走査の有効範囲を示す信号である。
【００７８】
即ち、エンジン(110)が画像を取り込む対象としている原稿の紙送り方向（副走査方向）の長さを予め知ることができない場合に、コントローラ(101)が同期信号ＬＳＹＮＣ(1804)によりエンジン(110)側での画像の書き込みを検知し、一定の時間（１ライン周期以上の間）内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するようにしたものである（コントローラ(101)中のＣＰＵ(102)が有するライン数決定手段の機能）。
【００７９】
この方法で検知することで、ＣＰＵ(102)はエンジン(110)にコマンドを発行しなくても原稿の長さを知ることができ、コマンドのやり取りのオーバーヘッドを軽減でき、画像処理のパフォーマンスを上げることができる。
【００８０】
なお、本構成例１はもちろん、以下の構成例でも、汎用バスとしてはＰＣＩ(109)に限らず、ＰＣＩ−Ｘであってもよい。
【００８１】
また、基本構成その１の例で説明したが、基本構成その２の場合でも同様である。
【００８２】
［構成例２］
本構成例においては、図１３に示すように２つのトグルバッファ１(6103)，２(6107)を用意する。これらのトグルバッファ１(6103)，２(6107)は、主走査長×Ｎライン分のバッファ容量を有する。また、書き込まれたデータをカウントしてライン数を計算するために、主走査長レジスタを用意し、書き込まれたデータ量を主走査長で割って、ライン数をカウントする副走査ライン数カウンタ１(6104)（，２(6108)，…）と書き込まれた領域を判定するために領域を指定する領域の先頭アドレスを示すスタートアドレスレジスタＳＡ１(6102)（，ＳＡ２(6106)，…）と領域の終了を示すエンドアドレスレジスタＥＡ１(6105)（，ＥＡ２(6109)，…）とトグルバッファ１(6103)又は２(6107)の最後まで書き込まれたことで割り込みを発生するためのアドレス割り込みレジスタを設け、アドレス割り込みレジスタにはエンドアドレスレジスタＥＡ１(6105)を設定し、トグルバッファ１(6103)の最終アドレスまで書き込みが終わったら、割り込みが発生するように設定する。同様に、トグルバッファ２(6107)に関するレジスタ群に設定し、トグルバッファ１(6103)又は２(6107)をアドレス割り込みを使って交互にアクセスする。このアドレス割り込みレジスタによる割り込み処理がトグル動作制御手段の機能として実行される。
【００８３】
このとき、エンジン(6101)（エンジン(110)に相当する）は、画像データをトグルバッファ１(6103)に或る設定されたライン数転送したら、次にトグルバッファ２(6107)へ転送し、その後、交互にトグルバッファを使用するような転送が可能なこととする。
【００８４】
従って、エンジン(6101)中のスキャナが画像を取り込む対象としている原稿の紙送り方向の長さが長く、取り込もうとしている画像データの量がコントローラ(101)が保有しているメモリ量よりも大きい場合でも、原稿の画像読み取りが可能となる。
【００８５】
［構成例３］
本構成例においては、基本的には、構成例２に準ずる。即ち、図１３に示すように２つのトグルバッファ１(6103)，２(6107)を用意する。これらのトグルバッファ１(6103)，２(6107)は、主走査長×Ｎライン分のバッファ容量を有する。また、書き込まれたデータをカウントしてライン数を計算するために、主走査長レジスタを用意し、書き込まれたデータ量を主走査長で割って、ライン数をカウントする副走査ライン数カウンタ１(6104)（，２(6108)，…）と書き込まれた領域を判定するために領域を指定する領域の先頭アドレスを示すスタートアドレスレジスタＳＡ１(6102)（，ＳＡ２(6106)，…）と領域の終了を示すエンドアドレスレジスタＥＡ１(6105)（，ＥＡ２(6109)，…）とトグルバッファ１(6103)又は２(6107)の最後まで書き込まれたことで割り込みを発生するためのアドレス割り込みレジスタを設け、アドレス割り込みレジスタにはエンドアドレスレジスタＥＡ１(6105)を設定し、トグルバッファ１(6103)の最終アドレスまで書き込みが終わったら、割り込みが発生するように設定する。同様に、トグルバッファ２(6107)に関するレジスタ群に設定し、トグルバッファ１(6103)又は２(6107)をアドレス割り込みを使って交互にアクセスする。このアドレス割り込みレジスタによる割り込み処理がトグル動作制御手段の機能として実行される。
【００８６】
このとき、エンジン(6101)（エンジン(110)に相当する）は、画像データをトグルバッファ１(6103)に或る設定されたライン数転送したら、次にトグルバッファ２(6107)へ転送し、その後、交互にトグルバッファを使用するような転送が可能なこととする。
【００８７】
また、エンジン(6101)は原稿が終了すると転送を終了する。このとき、トグルバッファ１(6103)又は２(6107)に対して、１ライン周期以上の時間、ライトアクセスがなければタイムアウト割り込みを発生し、この時点で原稿が終了したことを知ることができる。
【００８８】
即ち、エンジン(6101)が画像を取り込む対象としている原稿の紙送り方向（副走査方向）の長さを予め知ることができない場合に、コントローラ(101)が各々のトグルバッファ１，２(6103)又は(6107)に対するエンジン(6101)側での画像の書き込みを検知し、一定の時間（１ライン周期以上の間）内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するようにしたものである（コントローラ(101)中のＣＰＵ(102)が有するライン数決定手段の機能）。
【００８９】
この方法で検知することで、ＣＰＵ(102)はエンジン(110)にコマンドを発行しなくても原稿の長さを知ることができ、コマンドのやり取りのオーバーヘッドを軽減でき、画像処理のパフォーマンスを上げることができる。
【００９０】
［構成例４］
本構成例は、構成例２及び図１３で説明した内容に準ずるものであり、そのライン数決定処理に関する。
【００９１】
図１３において、エンジン(6101)は原稿が終了すると転送を終了する。コントローラ(101)は原稿の副走査長を知るために、トグルバッファ１(6103)又は２(6107)のトグル回数と、最終書き込みが行われてタイムアウトが発生したトグルバッファ１(6103)又は２(6107)のラインカウンタの数から、原稿の副走査ライン数を計算する。
【００９２】
トグルバッファ１(6103)，２(6107)のサイズの決め方は、主走査長のＮライン分の大きさとしておくことで、Ｎラインずつ交互にトグルバッファ１(6103)又は２(6107)に書き込まれることになる。そのため、トグル回数をＴｇとし、最終トグルバッファ１(6103)又は２(6107)のタイムアウトが発生した時のラインカウンタの値をＬｃとして、副走査ライン数Ｌsubは、
Ｌsub＝Ｎ＊Ｔｇ＋Ｌｃ
として、求めることができる。
【００９３】
そのときの制御処理例の概略フローチャートを図１４に示す。また、レジスタ構成例を図１５及び図１６に示す。
【００９４】
即ち、一番初めのトグルバッファを設定し、かつ、タイムアウトのモードとしてＭｏｄｅ＝０に設定した後、タイムアウト割り込みを監視し、割り込みがなければ、アドレス割り込みを監視し、アドレス割り込みがあるまでそのトグルバッファに対する書き込みを続ける。アドレス割り込みがあれば、トグル回数をカウントし（＋１）、次のｎ番目（ｎ＝２）のトグルバッファを設定し、かつ、タイムアウトのモードとしてＭｏｄｅ＝１に設定した後、タイムアウト割り込みを監視し、割り込みがなければ、アドレス割り込みを監視し、アドレス割り込みがあるまでそのトグルバッファに対する書き込みを続ける。アドレス割り込みがあれば、トグル回数をカウントし（＋１）、次のｎ番目（ｎ←ｎ＋１）のトグルバッファを設定する。これらの処理において、タイムアウト割り込みが発生すると、各々のモードに応じたタイムアウト処理を行って終了する。
【００９５】
また、図１５に示すレジスタ構成において、
スタートアドレスレジスタ(6301)：領域の先頭アドレスを設定するレジスタ、
エンドアドレスレジスタ(6302)：領域の終了アドレスを設定するレジスタ、
イメージ幅レジスタ(6303)：領域に転送される画像データの主走査幅を設定するレジスタ、
ラインカウントレジスタ(6304)：領域に転送された画像データのライン数を保持するレジスタ、
タイムアウト時間レジスタ(6305)：タイムアウト割り込みを発生させるまでの時間を設定するレジスタ、
タイムアウトイネーブルレジスタ(6306)：タイムアウト割り込み機能を有効／無効に設定するレジスタ、
タイムアウトモードレジスタ(6307)：タイムアウトの判定の仕方を設定するレジスタ、
アドレスレジスタ(6308)：アクセスされたら割り込みを発生するアドレスを設定するレジスタ、
アドレスマスクレジスタ(6309)：アドレスの比較をしないビットを設定するレジスタ、
アドレスイネーブルレジスタ(6310)：アドレス割り込みの機能を有効／無効に設定するレジスタ、
である。
【００９６】
また、図１６に示すタイムアウトモードレジスタ(6307)のレジスタ構成において、Ｍｏｄｅ(6401)は、タイムアウトの判定条件を切り替えるレジスタである。
【００９７】
ここで、タイムアウトの判定条件が、タイムアウト機能をＯＮしてから、最初のアクセスがあってからタイマーをカウントするモードとタイムアウト機能をＯＮしたら、直ちにタイマーをカウントするモードの２つのモードについて図１７に示す。
【００９８】
Ｍｏｄｅ＝０のときは、最初のアクセスが起きてからタイムアウト用のカウンタをカウント開始し、２番目以降のアクセスが一定時間来なければ割り込みを発生する。
【００９９】
Ｍｏｄｅ＝１のときは、割り込み機能をＯＮすると直ちにカウントを開始して、最初のアクセスからタイムアウトを検出する。
【０１００】
この２つのモードはスキャナにコマンドを発行して、実際に画像データが転送されてくるまでには原稿の搬送など時間がかかる処理が存在するので、初めのアクセスがあるまでカウントを開始しない機能が必要なので用意した。Ｍｏｄｅ＝１については、トグルバッファの終了と同時に原稿が終了した場合、最初のアクセスが来ない場合があるので２番目のトグルバッファ以降は、データが連続で送られてくることを前提として、割り込み機能をＯＮしたら、直ちにカウントする機能が必要となる。
【０１０１】
［構成例５］
本構成例においては、トグルバッファ１(6103)，２(6107)を指定する手段を先頭アドレスと終了アドレスとした場合に、或る設定されたアドレスに対するデータアクセスにより、割り込みが発生する機能を使って、トグルバッファ１(6103)，２(6107)の最終アドレスをアドレス割り込みレジスタに設定することで、トグルバッファ１(6103)，２(6107)に対する書き込みが終了したことを知る手段とすることができる。
【０１０２】
即ち、主走査長×Ｎラインのトグルバッファ１(6103)又は２(6107)にデータが受信され、当該トグルバッファ１(6103)又は２(6107)がフルになったことを検知する手段は、当該トグルバッファ１(6103)又は２(6107)の最終アドレスに対する書き込みが行われたことを監視してＣＰＵ(102)に割り込みを発生させることで、トグルバッファ１(6103)又は２(6107)に対する書き込みが終了したことが分かる。つまり、書き込まれたアドレスを比較するだけで、トグルバッファ１(6103)又は２(6107)がフルであることを知ることができる。
【０１０３】
［構成例６］
本構成例においては、アドレス割り込みレジスタに設定するアドレスは、ＰＣＩやＰＣＩ−Ｘのバースト転送時、バーストの先頭アドレスしか知らされない場合があり（図１８にＰＣＩのトランザクションの様子を示す）、単純にアドレス比較では判定できない。
【０１０４】
ＰＣＩのトランザクションの様子を示す図１８において、
ＬＳＹＮＣ(1901)：ライン同期信号、
ＤＲＥＱ(1902)：データリクエスト、
ＤＡＴＡ(1903)：１ライン分のデータ転送、
ＸＲＥＱ(1904)：ＰＣＩバスのバスリクエスト信号、
ＸＧＮＴ(1905)：ＰＣＩバスのバスグラント信号、
ＴＲＡＮＺ(1906)：ＰＣＩバスのバストランザクション信号、
ＰＣＩＣＬＫ(1907)：ＰＣＩの基本クロック、
ＸＦＲＡＭＥ(1908)：ＰＣＩのＦＲＡＭＥ信号、
ＸＤＥＶＳＥＬ(1909)：ＰＣＩのＤＥＶＳＥＬ信号、
ＸＩＲＤＹ(1910)：ＰＣＩのＩＲＤＹ信号、
ＸＴＲＤＹ(1911)：ＰＣＩのＸＴＲＤＹ信号、
ＡＤ［３１：０］(1912)：ＰＣＩのアドレス／データバス信号、
ＣＢＥ［３：０］(1913)：ＰＣＩのコマンド／バイとイネーブル信号、
である。
【０１０５】
そこで、本構成例では、アドレスの下位ｍビットをマスクし、そのビットを除いたアドレスを比較することでアドレスの一致を判定することができるようにしたものである。バースト転送長に応じて、マスクするｍビットを決めることができる。例えば、バースト長が４ワードであれば、アドレス的には下位４ビットマスクすれば、アドレスを比較することができる。ただし、バースト開始アドレスは４ワードバウンダリでなければならない。
【０１０６】
よって、バースト転送のように先頭アドレスしか情報がない場合でもアドレスを比較することができる。
【０１０７】
［構成例７］
本構成例においては、ＰＣＩバス（汎用バス）から、メモリへのアクセスを行う場合に、アドレス比較を行うユニットとして、ＰＣＩのユニットで行うとライトアクセスはポスト動作であるので、実際にメモリに書かれなくても比較することができる。
【０１０８】
しかし、その比較時刻とメモリに実際に書かれる時刻がずれるので、トグルバッファ１(6103)，２(6107)への書き込み動作が完全に完了したことを保証するために、メモリのアービタでメモリアクセスが受け付けられたことを示す信号が返ってきてから、アドレス割り込みを発生させるようにしたものである。
【０１０９】
このように、メモリへの受付が済んだ時点でアドレス比較のための割り込みを発生することで、データの書き込みと読み出しデータの一致を保証することができる。
【０１１０】
【発明の効果】
上記実施例の発明によれば、メモリターゲットデバイスが、メモリに対するスキャナターゲットデバイスの画像の書き込みを検知し、一定の時間内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するライン数決定手段を有するので、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さを予め知ることができない場合でも、スキャナターゲットデバイス側とコマンドをやり取りしなくても、原稿読み取りの終了を検知することができ、コマンドのやり取りに伴うオーバーヘッドを軽減でき、画像処理のパフォーマンスを上げることができる。
【０１１１】
また、上記実施例の発明によれば、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さが長く、取り込もうとしている画像データの量がメモリターゲットデバイスが保有しているメモリ量よりも大きい場合であっても、主走査長×Ｎラインの２つのトグルバッファを用意して、交互に受信させるようにしたので、コントローラが保有するメモリよりも大きい画像データとなる原稿の画像読み取りを行わせることができる。
【０１１２】
また、上記実施例の発明によれば、スキャナ機能により画像を取り込む対象としている原稿の紙送り方向の長さを予め知ることができなくて、かつ、スキャナが画像を取り込む対象としている原稿の紙送り方向の長さが長く、取り込もうとしている画像データの量がメモリターゲットデバイスが保有しているメモリ量よりも大きい場合であっても、主走査長×Ｎラインの２つのトグルバッファを用意し、交互に受信させるとともに、メモリターゲットデバイスが各々のトグルバッファに対する画像の書き込みを検知し、一定の時間内に次の書き込みがないことを検知したときに、原稿が終了したとして原稿の読み取りライン数を決定するようにしたので、メモリターゲットデバイスが保有するメモリよりも大きい画像データとなる原稿の画像読み取りが可能となり、かつ、原稿のサイズが不明の場合でも原稿読み取りの終了を検知することができる。
【０１１３】
また、上記実施例の発明によれば、書き込まれた総ライン数＝（トグルバッファのトグル回数×Ｎ）＋（最終トグルバッファの書き込みライン数）で計算するようにしたので、トグルバッファを用いる場合に、原稿のサイズを適正に決定することができる。
【０１１４】
また、上記実施例の発明によれば、最終アドレスに対する書き込みによりトグルバッファのバッファフルを検知してＣＰＵにトグル用の割り込みを発生させるので、書き込まれたアドレスを比較するだけで、トグルバッファがフルであることを知ることができる。
【０１１５】
また、上記実施例の発明によれば、アドレスの下位ｍビットをスキャナターゲットデバイスのデータ転送時のバースト長に応じてマスクすることにより、バースト転送のように先頭アドレスしか情報がない場合でもアドレスを比較することができる。
【０１１６】
また、上記実施例の発明によれば、メモリへの書き込みは汎用バス側で完了していたとしても実メモリに書かれたかどうかは確定しないが、メモリへの受付が済んだ時点でアドレス割り込みを発生することで、データの書き込みと読み出しデータの一致を保証することができる。
【０１１７】
また、上記実施例の発明によれば、汎用バスとして一般的なＰＣＩ又はＰＣＩ−Ｘを用いることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態における基本構成その１を示す全体のブロック図である。
【図２】ＰＣＩ−ＣＯＮＦＩＧレジスタの構造図である。
【図３】ＤＭＡＣ用空間ベースレジスタの構造図である。
【図４】メモリマップを示す説明図である。
【図５】ＡＳＩＣ構成を示すブロック図である。
【図６】ＰＣＩ ＭＥＭ空間を示す説明図である。
【図７】２nd‐ＰＣＩ空間を示す説明図である。
【図８】エンジンの構成例を示すブロック図である。
【図９】本発明の一実施の形態における基本構成その２を示す全体のブロック図である。
【図１０】共通な操作部の構成例を示す平面図である。
【図１１】共通なソフトウエア構成を示すブロック図である。
【図１２】構成例１のスキャン／プロットの基本信号を示す説明図である。
【図１３】構成例２のトグルバッファ方式を説明するためのブロック図である。
【図１４】トグルバッファを用いたスキャナ入力時の処理制御例を示す概略フローチャートである。
【図１５】レジスタ構成を示す説明図である。
【図１６】タイムアウトモードレジスタ構成を示す説明図である。
【図１７】Ｍｏｄｅ１，２の違いを示すタイムチャートである。
【図１８】ＰＣＩ転送の基本タイミング信号を示すタイムチャートである。
【図１９】従来の画像処理装置の構成例を示すブロック図である。
【符号の説明】
101       メモリターゲットデバイス
107       メモリ
109       ＰＣＩ（汎用バス）
110       スキャナターゲットデバイス
1001      メモリターゲットデバイス
4005      メモリ
4009      ＰＣＩ（汎用バス）
4010      スキャナターゲットデバイス
6103，6107      トグルバッファ
【図１】
0003730586.tif 000002
【図２】
0003730586.tif 000003
【図３】
0003730586.tif 000004
【図４】
0003730586.tif 000005
【図５】
0003730586.tif 000006
【図６】
0003730586.tif 000007
【図７】
0003730586.tif 000008
【図８】
0003730586.tif 000009
【図９】
0003730586.tif 000010
【図１０】
0003730586.tif 000011
【図１１】
0003730586.tif 000012
【図１２】
0003730586.tif 000013
【図１３】
0003730586.tif 000014
【図１４】
0003730586.tif 000015
【図１５】
0003730586.tif 000016
【図１６】
0003730586.tif 000017
【図１７】
0003730586.tif 000018
【図１８】
0003730586.tif 000019
【図１９】
0003730586.tif 000020