(57)【要約】【課題】ハードウェアに依存する処理を行う第１制御手段とそれ以外の第２制御手段とを含む装置において、第１制御手段やハードウェアに依存せずに、ハードウェアに処理を実行させるための実行命令を第２制御手段が第１制御手段に与えられるようにする。【解決手段】ハードウェアに依存しない処理を行うシステム制御部１２は、ハードウェアに依存しない形式を有する実行命令をメッセージボックス（ＭＳＧ３８）に格納し、ハードウェアに依存する処理を行うデバイス制御部１４は、ＭＳＧ３８から実行命令を取得し、その実行命令を、ハードウェアに依存する命令に変換し、その変換後の命令に従ってハードウェアの動作を制御する。【選択図】図１
2019036170.tif 000002
【特許請求の範囲】
【請求項１】
機能を有する各ハードウェアに依存する処理を行う第１制御手段と、
通信路を介して前記第１制御手段に接続され、前記各ハードウェアに依存しない処理を行う第２制御手段と、
を有し、
前記第２制御手段は、処理の実行命令であって前記各ハードウェアに依存しない形式を有する実行命令を格納装置に格納し、
前記第１制御手段は、
前記格納装置から前記実行命令を取得し、前記実行命令を、前記ハードウェアを制御するための命令であって前記ハードウェアに依存する命令に変換する変換手段と、
前記変換後の命令をメモリに書き込むメモリ制御手段と、
前記メモリから前記変換後の命令を読み出して前記ハードウェアの動作を制御する動作制御手段と、
を有する、
情報処理装置。
【請求項２】
前記第１制御手段は、前記実行命令の実行に必要な前記ハードウェアの状態を確認し、動作可能な前記ハードウェアを用いる命令を作成する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２制御手段は、前記格納装置の空き容量に応じて、前記実行命令を前記格納装置に格納せずに前記実行命令を前記ハードウェアに依存する命令に変換し、前記変換後の命令を前記メモリ制御手段に送る、
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記第１制御手段は、前記実行命令の結果を前記格納装置に格納し、
前記第２制御手段は、前記格納装置から前記結果を取得する、
ことを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第２制御手段が前記格納装置にアクセスした場合、前記第１制御手段は、前記実行命令を前記格納装置から削除する、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ハードウェアが前記実行命令に従った処理を実行するための機能を備えていない場合、前記第１制御手段は、前記実行命令の内容を前記ハードウェアが備えている機能によって実行可能な命令に変更し、前記変更後の命令に従って前記ハードウェアの動作を制御する、
ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項７】
前記ハードウェアが前記実行命令に従った処理を実行するための機能を備えていない場合、前記第１制御手段は、前記実行命令に従った処理を実行するための機能を備えているハードウェアを含む他の装置に前記実行命令を送り、前記他の装置に前記実行命令を実行させる、
ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項８】
前記実行命令を実行するための前記ハードウェアが他の実行命令を実行している場合、前記第１制御手段は、前記実行命令に従った処理を実行するための機能を備えているハードウェアを含む他の装置に関する情報を前記第２制御手段に送る、
ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置。
【請求項９】
前記第２制御手段は、複数の第１制御手段のそれぞれに与えるための実行命令を前記格納装置に格納する、
ことを特徴とする請求項１から請求項８のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
画像形成装置等の機器は、機器に含まれる各ハードウェアに依存しない共通部分を制御するシステム制御装置と、機器に含まれる各ハードウェアに依存する部分（各ハードウェアに固有の部分）を制御するデバイス制御装置と、を有する場合がある。
【０００３】
特許文献１には、アプリケーションプログラムを備える上位装置とデバイスとの間で通信機能を提供する制御ソフトウェアを備えた情報システムにおいて、制御ソフトウェアはＡＰＩ（Application Program Interface）を有し、アプリケーションプログラムはＡＰＩに対応するプログラミングインターフェースを含むことが開示されている。
【０００４】
特許文献２には、ＰＣ上のスキャナドライバからのデータに他のアプリケーション用のデータが付加されており、そのデータからアプリケーションに固有の部分を取り出し、スキャナドライバからのデータに従って読取部を動作させることが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８６８３２号公報
【特許文献２】特開２００６−３０４３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、システム制御装置がデバイス制御装置やハードウェアに依存する場合があり、この場合、ハードウェアの種別や構成に依存する部分の制御についても、システム制御装置が行う必要がある。
【０００７】
本発明の目的は、ハードウェアに依存する処理を行う第１制御手段とそれ以外の第２制御手段とを含む装置において、第１制御手段やハードウェアに依存せずに、ハードウェアに処理を実行させるための実行命令を第２制御手段が第１制御手段に与えられるようにすることにある。
【課題を解決するための手段】
【０００８】
請求項１に記載の発明は、機能を有する各ハードウェアに依存する処理を行う第１制御手段と、通信路を介して前記第１制御手段に接続され、前記各ハードウェアに依存しない処理を行う第２制御手段と、を有し、前記第２制御手段は、処理の実行命令であって前記各ハードウェアに依存しない形式を有する実行命令を格納装置に格納し、前記第１制御手段は、前記格納装置から前記実行命令を取得し、前記実行命令を、前記ハードウェアを制御するための命令であって前記ハードウェアに依存する命令に変換する変換手段と、前記変換後の命令をメモリに書き込むメモリ制御手段と、前記メモリから前記変換後の命令を読み出して前記ハードウェアの動作を制御する動作制御手段と、を有する、情報処理装置である。
【０００９】
請求項２に記載の発明は、前記第１制御手段は、前記実行命令の実行に必要な前記ハードウェアの状態を確認し、動作可能な前記ハードウェアを用いる命令を作成する、ことを特徴とする請求項１に記載の情報処理装置である。
【００１０】
請求項３に記載の発明は、前記第２制御手段は、前記格納装置の空き容量に応じて、前記実行命令を前記格納装置に格納せずに前記実行命令を前記ハードウェアに依存する命令に変換し、前記変換後の命令を前記メモリ制御手段に送る、ことを特徴とする請求項１又は請求項２に記載の情報処理装置である。
【００１１】
請求項４に記載の発明は、前記第１制御手段は、前記実行命令の結果を前記格納装置に格納し、前記第２制御手段は、前記格納装置から前記結果を取得する、ことを特徴とする請求項１から請求項３のいずれか一項に記載の情報処理装置である。
【００１２】
請求項５に記載の発明は、前記第２制御手段が前記格納装置にアクセスした場合、前記第１制御手段は、前記実行命令を前記格納装置から削除する、ことを特徴とする請求項４に記載の情報処理装置である。
【００１３】
請求項６に記載の発明は、前記ハードウェアが前記実行命令に従った処理を実行するための機能を備えていない場合、前記第１制御手段は、前記実行命令の内容を前記ハードウェアが備えている機能によって実行可能な命令に変更し、前記変更後の命令に従って前記ハードウェアの動作を制御する、ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置である。
【００１４】
請求項７に記載の発明は、前記ハードウェアが前記実行命令に従った処理を実行するための機能を備えていない場合、前記第１制御手段は、前記実行命令に従った処理を実行するための機能を備えているハードウェアを含む他の装置に前記実行命令を送り、前記他の装置に前記実行命令を実行させる、ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置である。
【００１５】
請求項８に記載の発明は、前記実行命令を実行するための前記ハードウェアが他の実行命令を実行している場合、前記第１制御手段は、前記実行命令に従った処理を実行するための機能を備えているハードウェアを含む他の装置に関する情報を前記第２制御手段に送る、ことを特徴とする請求項１から請求項５のいずれか一項に記載の情報処理装置である。
【００１６】
請求項９に記載の発明は、前記第２制御手段は、複数の第１制御手段のそれぞれに与えるための実行命令を前記格納装置に格納する、ことを特徴とする請求項１から請求項８のいずれか一項に記載の情報処理装置である。
【発明の効果】
【００１７】
請求項１に記載の発明によれば、ハードウェアに依存する処理を行う第１制御手段とそれ以外の第２制御手段とを含む装置において、第１制御手段やハードウェアに依存せずに、ハードウェアに処理を実行させるための実行命令を第２制御手段が第１制御手段に与えることが可能となる。
【００１８】
請求項２に記載の発明によれば、動作可能なハードウェアを用いて実行命令を実行することが可能となる。
【００１９】
請求項３に記載の発明によれば、格納装置の空き容量に関わらず実行命令が第２制御手段に与えられる。
【００２０】
請求項４に記載の発明によれば、格納装置を介して実行命令の結果が第２制御手段に送られる。
【００２１】
請求項５に記載の発明によれば、格納装置の空き容量を確保することが可能となる。
【００２２】
請求項６，７に記載の発明によれば、実行命令を中止せずに実行することが可能となる。
【００２３】
請求項８に記載の発明によれば、他の実行命令の終了を待たずに実行命令を実行することが可能となる。
【００２４】
請求項９に記載の発明によれば、複数の第１制御手段に対しても実行命令を与えることが可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る画像形成装置を示すブロック図である。
【図２】スキャン時の動作を示すフローチャートである。
【図３】印字時の動作を示すフローチャートである。
【図４】画像形成システムを示すブロック図である。
【発明を実施するための形態】
【００２６】
図１を参照して、本実施形態に係る情報処理装置の一例としての画像形成装置について説明する。図１には、本実施形態に係る画像形成装置の一例が示されている。なお、本実施形態に係る情報処理装置は画像形成装置に限定されるものではなく、画像形成装置以外の機器として、例えば、ビデオレコーダ、画像再生装置（動画再生装置や静止画再生装置等を含む）、音声再生装置（音楽プレイヤー等を含む）、その他のデジタル機器等であってもよい。以下では、情報処理装置の一例として画像形成装置を例に挙げて説明する。
【００２７】
画像形成装置１０は画像形成機能を備えた装置である。具体的には、画像形成装置１０は、スキャン機能（画像読取機能）、プリント機能（印刷機能）、コピー機能（複写機能）及びファクシミリ機能の中の少なくとも１つの機能を備えた装置である。また、画像形成装置１０は、他の装置と通信する機能を備えていてもよい。
【００２８】
以下、画像形成装置１０に含まれる各部について説明する。
【００２９】
画像形成装置１０は、機能を有する１又は複数のハードウェアと、システム制御部１２と、デバイス制御部１４と、を含む。システム制御部１２は第２制御手段の一例に相当し、デバイス制御部１４は第１制御手段の一例に相当する。
【００３０】
システム制御部１２とデバイス制御部１４は、例えばバス（例えばＰＣＩ  Ｅｘｐｒｅｓｓ等の高速バス）によって接続されており、各種の情報を互いに送受信する。例えば、処理の実行命令を示すコマンド情報、互いのステータスを示すステータス情報、センサ等の検知結果を示す情報等が、システム制御部１２とデバイス制御部１４との間で送受信されてもよい。なお、互いに送受信される情報のフォーマットは、予め定められた複数のフォーマットから選択されたフォーマットであってもよい。また、システム制御部１２とデバイス制御部１４は専用線で接続されて、互いに同期するための情報等を送受信してもよい。
【００３１】
画像形成装置１０は、ハードウェアとして、例えば、ＵＩ部１６、通信部１８、入力装置２０及び出力装置２２等を含む。ＵＩ部１６は表示部と操作部を含む。表示部は、例えば液晶ディスプレイ等の表示装置である。操作部は、例えば、タッチパネルやキーボード等の入力装置である。ＵＩ部１６は、表示部と操作部を兼ねたユーザインターフェース（例えば操作パネル等）であってもよい。通信部１８は通信インターフェースであり、ネットワーク等の通信経路を介して、他の装置にデータを送信する機能、及び、他の装置からデータを受信する機能を備えている。通信部１８は、無線通信機能を備えた通信インターフェースであってもよいし、有線通信機能を備えた通信インターフェースであってもよい。入力装置２０は例えばスキャナであり、原稿を読み取ることで、その原稿が表された画像データを生成する装置である。出力装置２２は例えばプリンタであり、画像データや文書データを受けて、画像や文書を用紙等の記録媒体上に形成する装置である。その他、画像形成装置１０には、画像形成装置１０内を冷却するためのファン、ハードディスクやメモリ等の記憶装置、等が含まれてもよい。記憶装置には、例えば、各種のデータ、各種のプログラム、等が記憶される。もちろん、これら以外のハードウェアが画像形成装置１０に含まれてもよい。
【００３２】
システム制御部１２は、プロセッサの一例としてのＣＰＵ（Central Processing Unit）２４と、記憶装置の一例としてのメモリ２６と、を含み、画像形成装置１０に含まれる各ハードウェアに依存しない処理を行う機能、つまり、各ハードウェアの種別、各ハードウェアの固体差、製品間の差等に依存しない共通部分の制御を行う機能を備えている。例えば、システム制御部１２は、ハードウェアとしてのＵＩ部１６における表示や入力、通信部１８による通信（例えばネットワーク等の通信経路を介した外部機器との通信）、画像データや機器情報の処理、画像処理、ユーザ認証処理、メモリの管理（例えばＳＤカードの読み取り等）、等を行う。
【００３３】
システム制御部１２は、処理の実行命令を示すコマンド情報（例えば、プリントジョブやコピージョブ等のジョブ）をデバイス制御部１４に送る。その実行命令は、ハードウェアに依存しない形式を有する実行命令であり、例えば、ユーザが理解可能な言語で記述された命令（例えば、６００ｄｐｉの解像度でＡ４サイズの１枚の用紙にコピーを行う、といった命令）である。後述するように、そのコマンド情報は、デバイス制御部１４内に格納される。
【００３４】
デバイス制御部１４は、プロセッサの一例としてのＣＰＵ２８と、記憶装置の一例としてのメモリ３０と、ＤＭＡＣ（Direct Memory Access Controller）３２と、入力制御部３４と、出力制御部３６と、を含む。デバイス制御部１４は、画像形成装置１０に含まれる各ハードウェアに依存する処理を行う機能、つまり、各ハードウェアに固有の部分を制御する機能を備えている。例えば、デバイス制御部１４は、入力装置２０の制御、出力装置２２の制御、ファンの制御、ステープラ等の後処理装置の制御、その他、各種センサ等によって得られる情報に基づくモータ、ヒータ、ランプ等の制御、等を行う。
【００３５】
メモリ３０には、記憶領域としてＭＳＧ（メッセージボックス）３８が形成されている。ＭＳＧ３８には、システム制御部１２から送られたコマンド情報が格納される。ＭＳＧ３８を介して、システム制御部１２のＣＰＵ２４からデバイス制御部１４のＣＰＵ２８へコマンド情報が与えられる。コマンド情報以外の情報（例えばステータス情報）が、ＭＳＧ３８を介して、システム制御部１２のＣＰＵ２４とデバイス制御部１４のＣＰＵ２８との間で送受信されてもよい。ＭＳＧ３８が格納装置の一例に相当する。
【００３６】
デバイス制御部１４のＣＰＵ２８は、変換手段の一例として機能し、ＭＳＧ３８からコマンド情報を読み出し、そのコマンド情報が示す実行命令を、ハードウェアを制御するための命令であってハードウェアに依存する命令に変換する。その変換によって、例えば、ハードウェアを制御するためのレジスタに設定されるパラメータ、レジスタ内のアドレス、等を含む命令が作成される。
【００３７】
ＤＭＡＣ３２はダイレクトメモリアクセスコントローラであり、ＣＰＵ２８による設定に従って、ＣＰＵ２８によって変換された後の命令を、ハードウェアを制御するためのレジスタに書き込む。ＤＭＡＣ３２はメモリ制御手段の一例に相当する。
【００３８】
入力制御部３４は、入力装置２０を制御する機能を備えている。例えば、入力制御プログラムが実行されることで、入力制御部３４の機能が実現される。入力制御部３４には、入力装置２０を制御するためのレジスタが設けられており、上記の実行命令の変換によって作成された命令としての値が当該レジスタに設定される。入力制御部３４は、そのレジスタに設定された値に従って入力装置２０を制御する。レジスタへの値（命令）の書き込みはＤＭＡＣ３２によって行われる。なお、入力制御部３４は、入力装置２０によって生成された画像データに対して画像処理（例えば、画像のカット、シフト、回転、拡大、縮小、圧縮等）を行う機能を備えていてもよい。入力制御部３４は、動作制御手段の一例に相当する。
【００３９】
出力制御部３６は、出力装置２２を制御する機能を備えている。例えば、出力制御プログラムが実行されることで、出力制御部３６の機能が実現される。出力制御部３６には、出力装置２２を制御するためのレジスタが設けられており、上記の実行命令の変換によって作成された命令としての値が当該レジスタに設定される。出力制御部３６は、そのレジスタに設定された値に従って出力装置２２を制御する。レジスタへの値（命令）の書き込みはＤＭＡＣ３２によって行われる。また、出力制御部３６は、画像データに対して画像処理（例えば、伸張、付加、調整、等）を行う機能を備えていてもよい。出力制御部３６は、動作制御手段の一例に相当する。
【００４０】
また、画像形成装置１０に含まれる各ハードウェアが、実行命令によって指定された条件に従って処理を実行する機能を備えていない場合、デバイス制御部１４は、その実行命令の内容を各ハードウェアが備えている機能によって実行可能な命令に変更し、変更後の命令に従ってハードウェアの動作を制御してもよい。画像形成装置１０に含まれる各ハードウェアでは、実行命令によって指定された条件に従って処理を実行することができない場合も同様である。例えば、実行命令によって指定された条件に適合する用紙が画像形成装置１０に収容されていない場合、デバイス制御部１４は、画像形成装置１０に収容されている用紙を用いて処理が実行されるように、実行命令の内容を変更し、変更後の実行命令に従ってハードウェアの動作を制御する。例えば、用紙サイズの条件としてＡ３サイズが指定されている場合において、画像形成装置１０の用紙トレイにはＡ４サイズの用紙が収容されているがＡ３サイズの用紙が収容されていない場合、デバイス制御部１４は、Ａ４サイズの用紙を用いて処理が実行されるように、実行命令の内容を変更する。例えば、プリントジョブの実行によって画像を用紙上に印刷する場合、デバイス制御部１４は、その画像に対して画像処理を適用することで、その画像のサイズをＡ４サイズに適合するサイズに変更し、変更後のサイズに従ってプリントジョブを実行する。
【００４１】
以下、画像形成装置１０の動作について説明する。ここでは一例として、コピーを実行するときの動作について説明する。コピーは、スキャン（画像読取）と用紙上への画像形成（以下、「印字」と称する）との組み合わせによって実現される。
【００４２】
まず、システム制御部１２は、処理の実行命令を示すコマンド情報をデバイス制御部１４に送り、そのコマンド情報をＭＳＧ３８に格納する。その実行命令は例えばユーザによって指定される。コピーの条件として、一例として、解像度：６００ｄｐｉ、用紙サイズ：Ａ４、用紙の方向（向き）：長手方向、コピー部数：１部、が指定されており、これらの情報がコマンド情報に含まれる。コマンド情報の格納は、デバイス制御部１４のメモリ３０内のアドレスに対する書き込み動作によって行われる。ＭＳＧ３８へのコマンド情報の書き込みが完了すると、デバイス制御部１４に対して割り込みが発生する。
【００４３】
デバイス制御部１４のＣＰＵ２８は、その割り込みを受け取ると、ＭＳＧ３８からコマンド情報を読み出し、そのコマンド情報が示す実行命令が有効なコマンドであるか否かを確認する。その実行命令が有効なコマンドに該当する場合において、入力装置２０と出力装置２２が動作していない場合（例えばアイドル状態の場合）、その実行命令によって指定された動作が実行される。入力装置２０と出力装置２２が動作中の場合、その動作が終了した後に、その実行命令によって指定された動作が実行される。
【００４４】
実行命令で指定された動作がコピーの場合、コマンド情報によって示されるコピーの条件（解像度、用紙サイズ、部数等）に基づいて、入力装置２０と出力装置２２が制御されてコピーが実行される。
【００４５】
コピーが終了し、用紙が排出されると、デバイス制御部１４は、コピー動作の結果を示す情報をＭＳＧ３８に格納する。その結果は、コピーの正常終了、エラー、再試行等である。その結果を示す情報がＭＳＧ３８に書き込まれてＭＳＧ３８が更新されると、割り込み信号が発生し、その割り込み信号はシステム制御部１２に送られる。システム制御部１２は、その割り込み信号を受けると、ＭＳＧ３８を確認し、ＭＳＧ３８に格納されている結果を示す情報を取得する。その結果を示す情報は、例えばＵＩ部１６等に表示されてもよい。デバイス制御部１４は、システム制御部１２によるＭＳＧ３８へのアクセスを検知すると、実行済みの実行命令を無効化し、その実行命令を示すコマンド情報をＭＳＧ３８から削除する。他のコマンド情報がＭＳＧ３８に格納されていない場合、ＭＳＧ３８はエンプティ状態となる。実行済みの実行命令を示すコマンド情報を削除することで、ＭＳＧ３８の空き容量が確保される。
【００４６】
以下、図２及び図３を参照して、コピー動作について詳しく説明する。図２には、スキャンを実行するときの画像形成装置１０の動作を示すフローチャートが示されており、図３には、印字を実行するときの画像形成装置１０の動作を示すフローチャートが示されている。以下では、まず、図２を参照してスキャン時の動作について説明し、次に、図３を参照して印字時の動作について説明する。
【００４７】
コピーの実行命令を示すコマンド情報がＭＳＧ３８に格納されると、デバイス制御部１４のＣＰＵ２８は、ＭＳＧ３８からコマンド情報を読み出し、そのコマンド情報が示す実行命令を、入力装置２０と出力装置２２に依存する命令に変換する。その変換によって、入力装置２０と出力装置２２を制御するためのレジスタに設定されるパラメータ、アドレス、等を含む命令が作成される。その命令は、ＤＭＡＣ３２によって、入力制御部３４のレジスタと出力制御部３６のレジスタに設定される。入力制御部３４は、自身のレジスタに設定された値（命令）に従って入力装置２０を制御することで、スキャン（画像読取）を入力装置２０に実行させる。出力制御部３６は、自身のレジスタに設定された値（命令）に従って出力装置２２を制御することで、スキャンによって生成された画像の用紙上への印字を出力装置２２に実行させる。
【００４８】
以下には、入力制御部３４のレジスタに設定される値（命令）が示されている。
解像度レジスタ＝６００ｄｐｉ
用紙サイズレジスタ＝Ａ４
用紙方向レジスタ＝長手方向
部数レジスタ＝１
バッファアドレスレジスタ＝0x1000_0000
【００４９】
上記のようにレジスタに設定される値が作成されると、ＤＭＡＣ３２は、入力制御部３４において、用紙サイズレジスタにＡ４を示す値を設定し（ステップＳ０１）、用紙方向レジスタに長手方向を示す値を設定し（ステップＳ０２）、部数レジスタに１部を示す値を設定し（ステップＳ０３）、バッファアドレスレジスタに上記の値を設定する（ステップＳ０４）。
【００５０】
画像形成装置１０のプラテン（コピーガラス面）上に原稿が配置されて、センサによってその原稿が検知された場合（ステップＳ０５，Ｙｅｓ）、処理はステップＳ０６に移行する。この場合、そのプラテン上に配置された原稿に対して、実行命令によって指定された条件（解像度：６００ｄｐｉ、用紙サイズ：Ａ４サイズ、用紙方向：長手方向、１枚）に従ってスキャンが実行される（ステップＳ０６）。そのスキャンによって生成された画像データ（原稿を読み取ることで生成された画像データ）は、デジタルデータに変換され、バッファアドレスレジスタが指し示す番地からページメモリに１枚分のデータが順次格納される（ステップＳ０７）。スキャンが終了すると割り込みが発生し（ステップＳ０８）、スキャンは終了する。
【００５１】
プラテン上に原稿が配置されていない場合（ステップＳ０５，Ｎｏ）、つまり、センサによってプラテン上の原稿が検知されない場合、処理はステップＳ０９に移行する。画像形成装置１０に設けられた自動紙送り装置に原稿が配置されて、センサによってその原稿が検知された場合（ステップＳ０９，Ｙｅｓ）、処理はステップＳ１０に移行し、以降、自動紙送りスキャン動作が実行される。まず、累積読取ページ数が初期化される。次に、１枚の原稿が送られ、自動紙送り装置によって、実行命令によって指定された条件（解像度：６００ｄｐｉ、用紙サイズ：Ａ４サイズ、用紙方向：長手方向、１枚）に従ってスキャンが実行され（ステップＳ１０）、そのスキャンによって生成された画像データは、デジタルデータに変換され、バッファアドレスレジスタが指し示す番地からページメモリに１枚分のデータが順次格納される（ステップＳ１１）。１枚分のスキャンが終了すると、累積ページ数カウンタに１が加えられる。累積ページ数カウンタの値が部数レジスタに設定された値と一致する場合（ステップＳ１２，Ｙｅｓ）、つまり、スキャンされた枚数が条件として設定された部数に到達した場合、割り込みが発生し（ステップＳ１３）、スキャンは終了する。累積ページ数カウンタの値が部数レジスタに設定された値と一致しない場合（ステップＳ１２，Ｎｏ）、つまり、スキャンされた枚数が条件として設定された部数に到達していない場合、処理はステップＳ１０に戻る。
【００５２】
自動紙送り装置に原稿が設置されていない場合（ステップＳ０９，Ｎｏ）、つまり、センサによって自動紙送り装置上の原稿が検知されない場合、原稿の準備が無効であると判断され、エラー通知が発生する（ステップＳ１４）。この場合、スキャンは異常終了する。
【００５３】
以下、図３を参照して印字時の動作について説明する。
【００５４】
以下には、出力制御部３６のレジスタに設定される値（命令）が示されている。
解像度レジスタ＝６００ｄｐｉ
用紙サイズレジスタ＝Ａ４
用紙方向レジスタ＝長手方向
部数レジスタ＝１
バッファアドレスレジスタ＝0x1000_0000
出力ジョブ種別＝コピー（Ｃｏｐｙ）
【００５５】
上記のようにレジスタに設定される値が作成されると、ＤＭＡＣ３２は、出力制御部３６において、用紙サイズレジスタにＡ４を示す値を設定し（ステップＳ２１）、用紙方向レジスタに長手方向を示す値を設定し（ステップＳ２２）、部数レジスタに１部を示す値を設定し（ステップＳ２３）、バッファアドレスレジスタに上記の値を設定し（ステップＳ２４）、出力ジョブ種別としてコピージョブを設定する（ステップＳ２５）。
【００５６】
出力制御部３６は、出力すべきデータの準備が完了するまで待機する。出力ジョブの種別がコピージョブである場合（ステップＳ２６，Ｎｏ）、データの準備完了は、入力装置２０によるスキャン終了の割り込み発生（上記のステップＳ０８，Ｓ１３における割り込み発生）によって判断される。スキャンが終了し、上記のステップＳ０８，Ｓ１３にて割り込みが発生した場合（ステップＳ２７，Ｙｅｓ）、処理はステップＳ２８に移行し、出力制御部３６は、出力動作を開始する。その割り込みが発生しない場合（ステップＳ２７，Ｎｏ）、出力制御部３６は、スキャン終了を示す割り込みが発生するまで待機する。
【００５７】
出力ジョブの種別がプリントジョブである場合（ステップＳ２６，Ｙｅｓ）、コマンド情報の受け付けと同時にデータの準備が完了しているため、出力制御部３６は、割り込みの発生を待たずに出力動作を開始する。
【００５８】
以下、ステップＳ２８以降の出力動作について説明する。出力動作においては、実行命令によって指定された条件（解像度：６００ｄｐｉ、用紙サイズ：Ａ４サイズ、用紙方向：長手方向、１枚）に従って印字が行われる。
【００５９】
出力制御部３６は、用紙トレイ内の用紙の有無を確認し、実行命令によって指定された用紙サイズ（Ａ４）と用紙方向（長手方向）の条件を満たす用紙が用紙トレイに収容されている場合（ステップＳ２８，Ｙｅｓ）、当該用紙が用紙トレイから出力装置２２に送られる（ステップＳ２９）。
【００６０】
次に、実行命令によって指定された条件（解像度：６００ｄｐｉ、用紙サイズ：Ａ４サイズ、用紙方向：長手方向）に適合された画像データが、バッファアドレスレジスタが指し示す番地から出力装置２２に転送される（ステップＳ３０）。このとき、その番地からページメモリ１枚分の画像データが転送される。
【００６１】
出力装置２２は、その画像データに基づく画像を用紙上に１枚分印字する（ステップＳ３１）。
【００６２】
上記の転送と印字が終了すると、出力制御部３６は異常の有無を確認し、印字が正常に終了した場合（ステップＳ３２，Ｙｅｓ）、１枚分の処理を終了する。１枚分の処理が終了すると、累積ページ数カウンタに１が加えられる。累積ページ数カウンタの値が部数レジスタに設定された値と一致する場合（ステップＳ３３，Ｙｅｓ）、つまり、印字された枚数が条件として設定された部数に到達した場合、割り込みが発生し（ステップＳ３４）、出力動作は終了する。累積ページ数カウンタの値が部数レジスタに設定された値と一致しない場合（ステップＳ３３，Ｎｏ）、つまり、印字された枚数が条件として設定された部数に到達しない場合、処理はステップＳ２８に戻る。異常が発生した場合（ステップＳ３２，Ｎｏ）、出力制御部３６はエラーを通知し（ステップＳ３５）、処理は異常終了する。
【００６３】
実行命令によって指定された用紙サイズ（Ａ４）と用紙方向（長手方向）の条件を満たす用紙が用紙トレイに収容されていない場合（ステップＳ２８，Ｎｏ）において、サイズがＡ４サイズであり用紙方向が短手方向の用紙が用紙トレイに収容されている場合（ステップＳ３６，Ｙｅｓ）、当該用紙が用紙トレイから出力装置２２に送られ（ステップＳ３７）、ステップＳ３８以降の動作が実行される。サイズがＡ４サイズであり用紙方向が短手方向の用紙が用紙トレイに収容されていない場合（ステップＳ３６，Ｎｏ）、出力制御部３６はエラーを通知し（ステップＳ４４）、処理は異常終了する。
【００６４】
以下、ステップＳ３８以降の処理について説明する。
【００６５】
実行命令によって指定された用紙方向（長手方向）に適合する用紙が用紙トレイに収容されていない場合、実行命令によって指定された条件に従って処理が実行されない。つまり、画像形成装置１０に含まれるハードウェアによっては、実行命令によって指定された条件に従って処理が実行されない。この場合、デバイス制御部１４は、実行命令の内容を、画像形成装置１０に含まれるハードウェアによって実行可能な命令に変更し、変更後の命令に従ってハードウェアの動作を制御する。
【００６６】
上記の例では、用紙方向が長手方向のＡ４サイズの用紙が用紙トレイに収容されていないため、実行命令によって指定された用紙方向（長手方向）に従った印字が実行されない。この場合において、用紙方向が短手方向のＡ４サイズの用紙が用紙トレイに収容されている場合、出力制御部３６は、その用紙に対して画像データに基づく画像が印字されるように実行命令の内容を変更する。
【００６７】
上記の例では、実行命令で指定された用紙方向と、用紙トレイに実際に収容されている用紙の方向とが異なるため、出力制御部３６は、実際に収容されている用紙に対して画像が印字されるように実行命令の内容を変更する。具体的には、出力制御部３６は、バッファアドレスレジスタが指し示す番地からの画像データを回転させ（例えば画像を９０°回転させる）、（0x2000_0000）番地に再格納する。
【００６８】
次に、変更後の条件（解像度：６００ｄｐｉ、用紙サイズ：Ａ４サイズ、用紙方向：短手方向）に適合された画像データが、変更後の（0x2000_0000）番地から出力装置２２に転送される（ステップＳ３８）。このとき、その番地からページメモリ１枚分の画像データが転送される。
【００６９】
出力装置２２は、その画像データ（用紙方向が短手方向に変更された画像データ）に基づく画像を用紙上に１枚分印字する（ステップＳ３９）。
【００７０】
上記の転送と印字が終了すると、出力制御部３６は異常の有無を確認し、印字が正常に終了した場合（ステップＳ４０，Ｙｅｓ）、１枚分の処理を終了する。１枚分の処理が終了すると、累積ページカウンタに１が加えられる。累積ページ数カウンタの値が部数レジスタに設定された値と一致する場合（ステップＳ４１，Ｙｅｓ）、つまり、印字された枚数が条件として設定された部数に到達した場合、割り込みが発生し（ステップＳ４２）、出力動作は終了する。累積ページ数カウンタの値が部数レジスタに設定された値と一致しない場合（ステップＳ４１，Ｎｏ）、つまり、印字された枚数が条件として設定された部数に到達しない場合、処理はステップＳ３６に戻る。異常が発生した場合（ステップＳ４０，Ｎｏ）、出力制御部３６はエラーを通知し（ステップＳ４３）、処理は異常終了する。
【００７１】
以上のように本実施形態によれば、ハードウェアに依存しない形式を有する実行命令がシステム制御部１２からＭＳＧ３８に格納され、デバイス制御部１４によってＭＳＧ３８から実行命令が読み出されてハードウェアに依存する命令に変換され、その変換後の命令に従ってハードウェアの動作が制御される。これにより、システム制御部１２は、ハードウェアやデバイス制御部１４に依存せずに、ハードウェアに処理を実行させるための実行命令をデバイス制御部１４に与えることが可能となる。
【００７２】
また、画像形成装置１０に含まれるハードウェアによって実行命令の内容に従った処理を実行できない場合、その実行命令の内容をハードウェアによって実行可能な命令に変更して変更後の命令に従ってハードウェアの動作を制御することで、実行命令の実行が中止せずに実行される。
【００７３】
デバイス制御部１４は、実行命令の実行に必要なハードウェアの状態を確認し、その確認結果に従って、動作可能なハードウェアを用いる命令を作成してもよい。こうすることで、動作可能なハードウェアを用いて処理が実行される。例えば、複数の用紙トレイが画像形成装置１０に設けられている場合、デバイス制御部１４は、各用紙トレイの状態（例えば、各用紙トレイが使用中か否か）を確認し、使用可能な用紙トレイ（例えば、他の処理に使用されていない用紙トレイ）を選択する命令を作成する。こうすることで、使用可能な用紙トレイを用いて処理が実行される。
【００７４】
また、画像形成装置１０に含まれるハードウェアが実行命令に従った処理を実行するための機能を備えていない場合、デバイス制御部１４は、当該実行命令に従った処理を実行するための機能を備えているハードウェアを含む他の画像形成装置に当該実行命令を示すコマンド情報を送り、当該他の画像形成装置に当該実行命令を実行させてもよい。図３に示す例で説明すると、用紙方向が短手方向の用紙が用紙トレイに収容されていない場合、デバイス制御部１４は、実行命令で指定された用紙の条件（例えば長手方向のＡ４サイズの用紙）に適合する用紙を収容した画像形成装置にコマンド情報を送り、当該画像形成装置に実行命令を実行させる。例えば、デバイス制御部１４は、ネットワーク等の通信経路を介して他の画像形成装置との間でステータス情報やハードウェアに関する情報等を送受信することで、他の画像形成装置の機能に関する情報を取得する。デバイス制御部１４は、その情報を利用することで、実行命令で指定された条件に従って実行命令を実行する機能を備えた画像形成装置を検索し、その画像形成装置に実行命令を実行させる。こうすることで、実行命令の実行が中止せずに実行される。
【００７５】
また、デバイス制御部１４は、実行命令に従った処理を実行するためのハードウェアが他の実行命令に従った処理を実行している場合、当該実行命令を示すコマンド情報を他の画像形成装置に送信し、当該他の画像形成装置に当該実行命令を実行させてもよい。こうすることで、他の実行命令に従った処理の終了を待たずに実行命令に従った処理が実行される。デバイス制御部１４は、当該他の画像形成装置に関する情報（例えば、当該他の画像形成装置を識別するための情報や設置場所を示す情報等）をシステム制御部１２に送信し、システム制御部１２は、当該他の画像形成装置に関する情報をＵＩ部１６に表示させてもよい。
【００７６】
上述したＭＳＧ３８は、デバイス制御部１４に含まれていなくてもよい。ＭＳＧ３８は、例えば、システム制御部１２やデバイス制御部１４に含まれずに画像形成装置１０内に設けられていてもよいし、画像形成装置１０の外部に中継装置として設けられていてもよい。この場合、システム制御部１２は、例えばネットワーク等の通信経路を介してコマンド情報を中継装置としてのＭＳＧ３８に格納し、デバイス制御部１４は、通信経路を介してＭＳＧ３８からコマンド情報を取得する。なお、ＭＳＧ３８が中継装置として用いられる場合、コマンド情報には、そのコマンド情報が与えられる画像形成装置１０を識別するためのデバイス識別情報が紐付けられている。デバイス制御部１４は、自身の画像形成装置１０を示すデバイス識別情報が紐付けられたコマンド情報を、中継装置としてのＭＳＧ３８から取得する。
【００７７】
なお、ＭＳＧ３８に複数のコマンド情報が格納されている場合、例えば、その格納順に従って各コマンド情報が示す実行命令が実行される。システム制御部１２は、ＭＳＧ３８の空き容量に応じて、コマンド情報をＭＳＧ３８に格納せずに、デバイス制御部１４に代わって実行命令をハードウェアに依存する命令に変換し、変換後の命令をＤＭＡＣ３２に送ってもよい。例えば、ＭＳＧ３８の空き容量が予め定められた閾値以下となった場合、システム制御部１２は、実行命令をハードウェアに依存する命令に変換してＤＭＡＣ３２に送ってもよい。こうすることで、ＭＳＧ３８の空き容量が閾値以下となった場合も、実行命令がシステム制御部１２からデバイス制御部１４に与えられる。
【００７８】
また、コマンド情報がＭＳＧ３８に格納されている場合において、そのコマンド情報が示す実行命令（例えばプリントジョブ）を実行するハードウェア（例えば出力装置２２）以外のハードウェア（例えば入力装置２０）を用いて実行される実行命令（例えばスキャンジョブ）が与えられた場合、システム制御部１２は、その実行命令（例えばスキャンジョブ）を示すコマンド情報をＭＳＧ３８に格納せずに、その実行命令（例えばスキャンジョブ）をハードウェア（例えば入力装置２０）に依存する命令に変更し、変更後の命令をＤＭＡＣ３２に送ってもよい。
【００７９】
以下、図４を参照して変形例について説明する。図４には、変形例としての画像形成システムの一例が示されている。
【００８０】
画像形成システムは、一例として、１又は複数の画像形成装置（例えば画像形成装置１０Ａ，１０Ｂ）と、システム制御部１２と、を含む。画像形成システムは、ＰＣ（パーソナルコンピュータ）４０等の他の機器を含んでもよい。画像形成装置１０Ａ，１０Ｂ、システム制御部１２及びＰＣ４０は、例えばネットワーク等の通信経路Ｎを介して互いに接続されている。変形例では、システム制御部１２は例えばＰＣ等の装置によって構成されており、画像形成装置の外部に設けられている。図４に示す例では、１つのシステム制御部１２が画像形成システムに含まれているが、複数のシステム制御部１２が画像形成システムに含まれていてもよい。画像形成装置１０Ａ，１０Ｂはそれぞれシステム制御部１２を含んでいてもよい。また、ＭＳＧ３８は、画像形成装置１０Ａ，１０Ｂのそれぞれに含まれていてもよいし、画像形成装置１０Ａ，１０Ｂに含まれずに中継装置として通信経路Ｎに接続されていてもよい。システム制御部１２は、画像形成装置１０Ａ，１０Ｂのそれぞれに与えるための実行命令を示すコマンド情報を、通信経路Ｎを介して、画像形成装置１０Ａ，１０Ｂのそれぞれに含まれるＭＳＧ３８に格納してもよいし、中継装置としてのＭＳＧ３８に格納してもよい。これにより、複数のデバイス制御部１４のそれぞれに与えるための実行命令を示すコマンド情報がＭＳＧ３８に格納される。各デバイス制御部１４は、自身の画像形成装置内のＭＳＧ３８から自身に与えられたコマンド情報を取得してもよいし、ＭＳＧ３８が中継装置として通信経路Ｎに接続されている場合には、その中継装置としてのＭＳＧ３８から自身に与えられたコマンド情報を取得してもよい。変形例によれば、画像形成装置の外部に設けられたシステム制御部１２から画像形成装置に対してコマンド情報が与えられる。また、複数の画像形成装置が画像形成システムに含まれている場合、複数のデバイス制御部１４のそれぞれに与えるための実行命令を示すコマンド情報が、ＭＳＧ３８を介してシステム制御部１２から各デバイス制御部１４に与えられる。このように、本実施形態を応用することで、１又は複数のシステム制御部１２から１又は複数のデバイス制御部１４に対してコマンド情報が与えられる。
【符号の説明】
【００８１】
１０  画像形成装置、１２  システム制御部、１４  デバイス制御部、２４，２８  ＣＰＵ、３２  ＤＭＡＣ、３４  入力制御部、３６  出力制御部、３８  ＭＳＧ。
【図１】
2019036170.tif 000003
【図２】
2019036170.tif 000004
【図３】
2019036170.tif 000005
【図４】
2019036170.tif 000006