(57)【要約】【課題】  より実機に近い動作を実現するプリンタシミュレータを実現することを目的とする。【解決手段】  印刷エンジンと機構装置を備えるプリンタ実機の動作を模擬するシミュレータであって、コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータと、印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータと、前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備える。【選択図】  図１
2005157791.tif 000002
【特許請求の範囲】
【請求項１】
印刷エンジンと機構装置を備えるプリンタ実機の動作を模擬するシミュレータであって、
コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータと、
印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータと、
前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、
前記外部ハードウェアは、前記インタフェースを介して受信した信号を前記第１のシミュレータに出力し、前記第１のシミュレータは、前記出力された信号に基づく模擬処理により前記印刷エンジンモデルを動作させて所定の模擬信号を第２のシミュレータに出力し、前記第２のシミュレータは、前記出力された模擬信号に基づく模擬計算により前記機構装置モデルを動作させることを特徴とするシミュレータ。
【請求項２】
前記インタフェースは、画像信号を転送するための第１の信号線と、制御信号を転送するための第２の信号線を備えることを特徴とする請求項１に記載のシミュレータ。
【請求項３】
前記外部ハードウェア部は、
前記コントローラが画像信号を転送するタイミングを制御するために前記プリンタ実機から前記コントローラへ送信される同期信号を模擬する第１の模擬同期信号を発生し、この発生した模擬同期信号を前記コントローラへ送信する発生回路を備えることを特徴とする請求項１または２記載のシミュレータ。
【請求項４】
前記発生回路は、
前記第２のシミュレータより前記機構装置モデルの動作結果として出力される第２の模擬同期信号に応じて、前記第１の模擬同期信号を発生し前記コントローラへ送信することを特徴とする請求項３記載のシミュレータ。
【請求項５】
前記外部ハードウェア部は、
画像信号を記憶するためのメモリと、
前記発生回路が送信した第１の模擬同期信号に従うタイミングで前記コントローラから転送される画像信号を前記メモリに記憶させる記憶回路と、
を備えることを特徴とする請求項３または４記載のシミュレータ。
【請求項６】
前記シミュレータは、
画像信号に基づく画像を表示する表示装置と、
前記メモリに記憶された画像信号を読み出して前記表示装置に表示させる表示回路と
をさらに備えることを特徴とする請求項５記載のシミュレータ。
【請求項７】
前記外部ハードウェア部は、
タイマに基づく割り込み信号を発生し、この発生した割り込み信号を前記第１のシミュレータと前記第２のシミュレータのそれぞれに出力するタイマ発生回路を備え、
前記第１のシミュレータは、前記出力されたタイマ割り込みに従って前記印刷エンジンモデルを動作させ、前記第２のシミュレータは、前記出力されたタイマ割り込みに従って前記機構装置モデルを動作させることを特徴とする請求項１乃至６いずれか１項記載のシミュレータ。
【請求項８】
印刷エンジンと機構装置を備えるプリンタ実機を模擬するプリンタモデルをコンピュータ上で動作させるシミュレータであって、
コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを動作させるための第１の制御プログラムと、
印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを動作させるための第２の制御プログラムと、
前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、
前記第１の制御プログラムは、前記外部ハードウェアが前記インタフェースを介して受信した信号に基づいて前記印刷エンジンモデルを動作させて所定の駆動信号を第２の制御プログラムに供給する処理を前記コンピュータに実行させ、
前記第２の制御プログラムは、前記供給された駆動信号に基づいて前記機構装置モデルを動作させる処理を前記コンピュータに実行させることを特徴とするシミュレータ。
【請求項９】
制御プログラムを実行してプリンタ実機を制御するためのコントローラと、
前記コントローラから送信される信号に基づいて前記プリンタ実機の動作を模擬するシミュレータと、を備えるシミュレーションシステムであって、
前記シミュレータは、
コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータと、
印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータと、
前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、
前記外部ハードウェアは、前記インタフェースを介して受信した信号を前記第１のシミュレータに供給し、前記第１のシミュレータは、前記供給された信号に基づく模擬処理により前記印刷エンジンモデルを動作させて所定の駆動信号を第２のシミュレータに供給し、前記第２のシミュレータは、前記供給された駆動信号に基づく模擬計算により前記機構装置モデルを動作させることを特徴とするシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタコントローラの動作環境を提供するプリンタシミュレータおよびプリンタのシミュレーション方法に関する。
【背景技術】
【０００２】
従来、プリンタコントローラのデバックは、印刷エンジンや機構装置からなるプリンタ実機そのものを対象に行っていた。しかし、プリンタ実機の開発には時間がかかるため、プリンタ実機ができあがるまで、プリンタコントローラのデバックをすることができないという問題があった。
【０００３】
そこで、プリンタを模擬動作させるシミュレータが提案されている。例えば、特開平５−１４３２６０号公報には、プリンタコントローラが動作するために必要な外部環境をソフトウェアインタフェースとして実現したプリンタハードウェアシミュレータ部を備えるシミュレーション装置が開示されている（特許文献１）。また、特開２００３−３０２５１号公報には、機構装置（メカ）に代えて計算機上に仮想的機構モデルを構築し、入力データに応じたシミュレーション計算により仮想機構モデルを動作させるシミュレーション装置が開示されている（特許文献２）。
【特許文献１】特開平５−１４３２６０号公報
【特許文献２】特開２００３−３０２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特開平５−１４３２６０号公報に記載されているシミュレーション装置は、印刷エンジンのシミュレータであるため機構装置であるメカ部分に関する動作は対象とされていない。よって、印刷エンジンと機構装置の双方をシミュレートする機能を備えた、より実機に近いシミュレーション装置が望まれる。
【０００５】
そこで、上記特開平５−１４３２６０号公報に記載されているような印刷エンジンのシミュレーション装置（以下、「エンジンシミュレータ」という）と、特開２００３−３０２５１号公報に記載されているような機構装置のシミュレーション装置（以下、「メカシミュレータ」という。）の双方の機能（ソフトウェア）を組み合わせることが提案される。しかし、ソフトウェアによるエンジンシミュレータとソフトウェアによるメカシミュレータとを単に組み合わせた場合には、以下に述べるような問題がある。
【０００６】
シミュレータでは、実機のように画像データの印刷動作（例えばレーザビームの照射動作）は行われない。よって、プリンタコントローラが実機に送った画像データを検査するためには、シミュレータ側で、印刷媒体へ印刷する代わりに画像データを所定の記憶媒体に出力しておき、後で記憶媒体から画像データを読み出してこれを確認する作業が有効である。
【０００７】
しかし、例えばレーザプリンタのような場合、プリンタコントローラから実機へはレーザの走査タイミングに応じた水平同期信号（ＨＳＹＮＣ：Horizontal Synchronizing Signal）に従って画像データが転送されるため、ソフトウェアによる実機の模擬動作では、この転送動作にあわせてリアルタイムに画像データを保存することは困難である。そのため、従来のシミュレータでは、プリンタコントローラが、実機と同じ転送動作で画像データの転送をシミュレーションすることはできても、その転送した画像データの内容を検査することができないという問題がある。
【０００８】
また、シミュレータは、実機と同様のタイミングで印刷処理にかかわる信号を模擬的に発生させ、プリンタコントローラに通知する必要がある。しかし、シミュレータの模擬動作がソフトウェアによる制御に基づく場合、印刷処理にかかわる信号のうち高速に制御することが要求される信号（例えば上述した水平同期信号のような信号）については、シミュレータが、実機と同様のタイミングで当該信号を模擬的に発生してプリンタコントローラに通知することができないという問題がある。
【０００９】
また、ソフトウェアによるシミュレータでは、シミュレータとプリンタコントローラとの間の物理的な通信インタフェースの構成までカバーすることができない。そのため、プリンタコントローラ側のインタフェースは、シミュレータつまりソフトウェアを実装したコンピュータが備えるインタフェースに合わせる必要があり、実機と同様の構成でデバックを行うことができないという問題がある。
【００１０】
そこで、本発明は、より実機に近い動作を実現するプリンタシミュレータを提供することを目的とする。
【００１１】
具体的には、本発明は、プリンタコントローラから実機同様の転送動作で転送された画像データを確認することができるプリンタシミュレータを実現することを目的とする。
【００１２】
また、本発明は、印刷処理にかかわる模擬信号をより実機に近いタイミングで発生することができるプリンタシミュレータを実現することを目的とする。
【００１３】
また、本発明は、実機と同様のインタフェースでデータの送受信を行うことができるプリンタシミュレータを実現することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決するための本発明は、以下の構成を備える。
【００１５】
すなわち、本発明は、印刷エンジンと機構装置を備えるプリンタ実機の動作を模擬するシミュレータであって、コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータ（エンジンシミュレータ）と、印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータ（メカシミュレータ）と、前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、前記外部ハードウェアは、前記インタフェースを介して受信した信号を前記第１のシミュレータに出力し、前記第１のシミュレータは、前記出力された信号に基づく模擬処理により前記印刷エンジンモデルを動作させて所定の模擬信号を第２のシミュレータに出力し、前記第２のシミュレータは、前記出力された模擬信号に基づく模擬計算により前記機構装置モデルを動作させる。
【００１６】
当該構成によれば、コントローラは、コントローラとプリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを介してシミュレータとの間で信号を送受信することができるようになる。また、第１の制御プログラムや第２の制御プログラムを汎用のコンピュータに実装させた場合でも、実機と同様の信号を送受信することが可能になるので、質の高いデバックを行うことが可能になる。
【００１７】
また、前記インタフェースは、画像信号を転送するための第１の信号線と、制御信号を転送するための第２の信号線を備えることを特徴とする。
【００１８】
また、前記外部ハードウェア部は、前記コントローラが画像信号を転送するタイミングを制御するために前記プリンタ実機から前記コントローラへ送信される同期信号を模擬する第１の模擬同期信号を発生し、この発生した模擬同期信号を前記コントローラへ送信する発生回路を備えることを特徴とする。
【００１９】
当該構成によれば、コントローラが画像信号を転送するタイミングを制御するためにプリンタ実機からコントローラへ送信される同期信号と同等の同期信号を発生させることができるようになるので、より実機に近いシミュレータを実現することが可能になる。
【００２０】
さらにまた、前記発生回路は、前記第２のシミュレータより前記機構装置モデルの動作結果として出力される第２の模擬同期信号に応じて、前記第１の模擬同期信号を発生し前記コントローラへ送信することを特徴とする。
【００２１】
当該構成によれば、メカシミュレータの模擬動作に従って同期信号を発生させることができるので、印刷シーケンスの流れの中で実機に近い同期信号を発生させることが可能になる。
【００２２】
また、前記外部ハードウェア部は、画像信号を記憶するためのメモリと、前記発生回路が送信した第１の模擬同期信号に従うタイミングで前記コントローラから転送される画像信号を前記メモリに記憶させる記憶回路と、を備えることを特徴とする
当該構成によれば、実機と同じ転送動作でシミュレータへ画像信号を転送することができるとともに、その転送した画像信号を記憶させることができるようになる。
【００２３】
また、前記シミュレータは、画像信号に基づく画像を表示する表示装置と、前記メモリに記憶された画像信号を読み出して前記表示装置に表示させる表示回路とをさらに備えることを特徴とする。
【００２４】
当該構成によれば、実機と同じ転送動作で送られた画像信号を表示装置上で確認することができるようになる。
【００２５】
さらにまた、前記外部ハードウェア部は、タイマに基づく割り込み信号を発生し、この発生した割り込み信号を前記第１のシミュレータと前記第２のシミュレータのそれぞれに出力するタイマ発生回路を備え、前記第１のシミュレータは、前記出力されたタイマ割り込みに従って前記印刷エンジンモデルを動作させ、前記第２のシミュレータは、前記出力されたタイマ割り込みに従って前記機構装置モデルを動作させることを特徴とする。
【００２６】
当該構成によれば、第１のシミュレータと第２のシミュレータの双方を実機と同様の実時間動作で模擬動作させることができるようになる。
【００２７】
また、本発明は、印刷エンジンと機構装置を備えるプリンタ実機を模擬するプリンタモデルをコンピュータ上で動作させるシミュレータであって、コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを動作させるための第１の制御プログラムと、印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを動作させるための第２の制御プログラムと、前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、前記第１の制御プログラムは、前記外部ハードウェアが前記インタフェースを介して受信した信号に基づいて前記印刷エンジンモデルを動作させて所定の駆動信号を第２の制御プログラムに供給する処理を前記コンピュータに実行させ、前記第２の制御プログラムは、前記供給された駆動信号に基づいて前記機構装置モデルを動作させる処理を前記コンピュータに実行させることを特徴とする。
【００２８】
また、本発明は、制御プログラムを実行してプリンタ実機を制御するためのコントローラと、前記コントローラから送信される信号に基づいて前記プリンタ実機の動作を模擬するシミュレータと、を備えるシミュレーションシステムであって、前記シミュレータは、コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータと、印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータと、前記コントローラと前記プリンタ実機との間の通信形式に従う信号を送受信するためのインタフェースを備える外部ハードウェアと、を備え、前記外部ハードウェアは、前記インタフェースを介して受信した信号を前記第１のシミュレータに供給し、前記第１のシミュレータは、前記供給された信号に基づく模擬処理により前記印刷エンジンモデルを動作させて所定の駆動信号を第２のシミュレータに供給し、前記第２のシミュレータは、前記供給された駆動信号に基づく模擬計算により前記機構装置モデルを動作させることを特徴とする。
【００２９】
本発明のシミュレータは、シミュレーションの方法としても成立する。そして、このシミュレーションの方法は、コンピュータにより実施することができるが、そのためのコンピュータプログラムは、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。また、コンピュータプログラムが、プリンタ用カードやプリンタ用オプションボードに記録されて流通する場合も含む。
【発明の効果】
【００３０】
本発明によれば、より実機に近い動作を実現することができるプリンタシミュレータを提供することが可能になる。
【発明を実施するための最良の形態】
【００３１】
（第１の実施形態）
（シミュレーション装置の構成）
まず、図１乃至図３を用いて、本発明の実施形態のプリンタシミュレータ（以下、「シミュレーション装置」という。）の構成について説明する。図１は、本発明の実施形態のシミュレーション装置のハードウェア構成を示すブロック図である。図２は、本発明の実施形態のシミュレーション装置における外部ハードウェア部の機能構成図を示すブロック図である。図３は、本発明の実施形態のシミュレーション装置におけるシミュレータ部の機能構成図を示すブロック図である。
【００３２】
図１に示すように、本実施形態のシミュレーションシステム１００は、プリンタコントローラ１と、印刷エンジンと機構装置を備えるプリンタ実機の動作を模擬するシミュレーション装置２と、を備える。
【００３３】
プリンタコントローラ１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ビデオインタフェース１２を備え、プリンタエンジンを制御することにより所定の印刷処理を実行するためのものである。ＣＰＵは、ＲＯＭやＲＡＭ、外部の記憶媒体等に格納される所定のプログラムを実行することにより、印刷処理に必要な各種コマンド（例えば、印刷開始コマンドやステータス要求など）やラスタデータ（イメージデータ、印刷データともいう。）を、ビデオインタフェース１２を介してシミュレーション装置２に送信する。
【００３４】
本実施形態にかかるプリンタコントローラ１は、レーザプリンタに使用されるものであると仮定し、以下、レーザプリンタに使用されるプリンタコントローラ１をデバックするためのシミュレーション装置について説明する。なお、プリンタコントローラ１の構成は、レーザプリンタに使用されるものに限られず、プリンタの仕様に応じたものを用いることができ、シミュレーション装置の構成も、プリンタコントローラ１の構成に対応して適宜変更することが可能である。
【００３５】
シミュレーション装置２は、プリンタ実機の動作をハードウェアによってシミュレーションするための外部ハードウェア部３と、プリンタ実機の動作を主にソフトウェア（プログラム）を用いてシミュレーションするシミュレータ部４を備える。なお、シミュレーション装置２における各処理は、プリンタ実機の動作を模擬するための処理（模擬処理）であり、シミュレーション装置２にて発生するデータはプリンタ実機にて発生するデータを模擬するためのデータ（模擬データ）として位置づけられる。
【００３６】
外部ハードウェア部３は、制御回路部３０、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）３１、ビデオインタフェース３２から構成される。外部ハードウェア部３は、プリンタコントローラ１とシミュレータ部４との間に介在するように設けられる。外部ハードウェア部３とプリンタコントローラ１は、それぞれのビデオインタフェース１２、３２を専用線を介して接続することにより通信を行う。外部ハードウェア部３とシミュレータ部は共通バス（例えばＰＣＩバス）を介して通信を行う。
【００３７】
外部ハードウェア部３を、制御回路部３０、ＳＤＲＡＭ３１およびビデオインタフェース３２を備える拡張カード（例えばＰＣＩカード）として構成することにより、汎用の処理装置を容易にシミュレータとして機能させることができる。
【００３８】
制御回路部３０は、ソフトウェアによる実現が困難な処理をカバーするための専用回路であり、例えば、ＦＰＧＡ（Field Programmable Gate Array）が該当する。制御回路部３０の機能は後述する。
【００３９】
ＳＤＲＡＭは、プリンタコントローラ１からビデオインタフェース１２、３２を介して送られたラスタデータを実機への転送速度と合わせて格納するためのメモリである。また、ＳＤＲＡＭに格納されたラスタデータは、実機に送られたデータの内容を確認するために読み出される。なお、メモリはＳＤＲＡＭに限られず、仕様に応じたものを採用することができる。
【００４０】
ビデオインタフェース３２は、プリンタコントローラ１とプリンタ実機との間の通信形式に従う信号を送受信するためのものである。ビデオインタフェース３２は、たとえば、画像信号を転送するための第１の信号線と、制御信号（印刷開始コマンドやステータス）を転送するための第２の信号線と、割り込み信号を転送するための第３の信号線を含んで構成される。制御信号はシリアル通信、例えば、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）通信に従い転送される。
【００４１】
尚、ビデオインタフェース３２は、実機にて使用されているインタフェースと同じ構成であることが前提であり、実機の仕様に応じたインタフェースを採用することができる。シミュレーション装置２側のビデオインタフェース３２とプリントコントローラ１側のビデオインタフェース１２とは、専用ケーブルによって接続される。
【００４２】
次に、制御回路部３０の詳細について説明する。
【００４３】
図２は、本発明の実施形態の外部ハードウェア部における制御回路部３０の機能構成図を示すブロック図である。制御回路部３０は、データ入出力部３０１と、画像データ入出力部３０２と、制御コマンド入力部３０３と、同期信号発生部３０４と、タイマ割込信号発生部３０５とを備える。
【００４４】
データ入出力部３０１は、ビデオインタフェース３２を介してプリンタコントローラ１から送られる各種コマンド（印刷開始コマンドやステータス要求）を入力し、この入力した各種コマンドをシミュレータ部４に出力する。また、データ入出力部３０１は、シミュレータ部４から送られるステータス応答信号を入力し、このステータス応答信号をビデオインタフェース３２を介してプリンタコントローラ１へ出力する。なお、データ入出力部３０１とプリンタコントローラ１は、ビデオインタフェース３２の制御信号用の信号線を用いて各種コマンドやステータス応答信号を送受信する。
【００４５】
画像データ入出力部３０２は、ビデオインタフェース３２を介してプリンタコントローラ１から送られるラスタデータ（画像データ）を入力し、この入力したラスタデータをＳＤＲＡＭ３１に出力する（記憶させる）。画像データ入出力部３０２は、実機の印刷動作時における水平同期信号に合わせたクロック同期で高速にラスタデータをＳＤＲＡＭ３１に格納することにより、実機の印刷動作に合わせたリアルタイムな保存を実現する。
【００４６】
また、画像データ入出力部３０２は、シミュレータ部４からの出力要求を受けとると、ＳＤＲＡＭ３１に格納されたラスタデータを読み出してシミュレータ部４に出力する（表示させる）。なお、画像データ入出力部３０２は、ビデオインタフェース３２の画像信号用の信号線を用いて画像データをプリンタコントローラ１から受信する。
【００４７】
制御コマンド入力部３０３は、シミュレータ部４から送られる外部ハードウェア部３に対する制御コマンドを入力するためのものであり、入力された制御コマンドはＩ／Ｏレジスタに書き込まれる。外部ハードウェア部３に対する制御コマンドとしては、例えば、水平同期信号（ＨＳＹＮＣ）や垂直同期信号（ＶＳＹＮＣ）の発生を指示するための発生指示コマンドやタイマ割込信号を設定するためのタイマ設定コマンドなどが該当する。
【００４８】
同期信号発生部３０４は、所定の間隔で制御コマンド入力部３０３のＩ／Ｏレジスタ内の発生指示コマンドが書き込まれる領域を参照する。発生指示コマンドが格納されている場合には、発生指示コマンドの値に応じて垂直同期信号（ＶＳＹＮＣ）や水平同期信号（ＨＳＹＮＣ）をプリンタ実機と同様の周期で発生させ、ビデオインタフェース３２を介してプリンタコントローラ１へ出力する。垂直同期信号（ＶＳＹＮＣ）は、発生指示コマンドに従い発生する。水平同期信号（ＨＳＹＮＣ）は、発生指示コマンドをトリガとして設定周期毎に所定のライン数分発生する。水平同期信号の発生条件であるライン数や周期には、実機と同様のライン数や周期（例えば、２００マイクロＳＥＣ）が設定されることが望ましい。
【００４９】
プリンタコントローラ１は、この同期信号発生部３０４から送られる水平同期信号や垂直同期信号に合わせてラスタデータをシミュレーション装置２へ送信する。このラスタデータは、プリンタエンジン（プリントタスク）を直接制御するためのものであり、プリンタエンジンの印刷プロセスをリアルタイムに制御するものである。また、送信されたラスタデータは、画像データ入出力部３０２によって水平同期信号に合わせたクロック同期でＳＤＲＡＭ３１に出力される。
【００５０】
タイマ割込信号発生部３０５は、所定の間隔でＩ／Ｏレジスタ内のタイマ設定コマンドドが書き込まれる領域を参照する。タイマ設定コマンドが格納されている場合には、タイマ設定コマンドの値に応じてタイマ割り込みを発生させるとともに、発生した割り込み信号をシミュレータ部４（エンジンシミュレータ４０およびメカシミュレータ５０）へ送る。エンジンシミュレータ４０およびメカシミュレータ５０は、それぞれタイマ割り込みに従って処理を実行することにより、相互の同期を図る。
【００５１】
次に、シミュレータ部４の機能について詳細に説明する。
【００５２】
図３は、本発明の実施形態のシミュレーション装置におけるシミュレータ部の機能構成図を示すブロック図である。同図に示すように、シミュレータ部４は、コントローラから送信される信号に基づいて印刷処理を実行する印刷エンジンを模擬する印刷エンジンモデルを、第１の制御プログラムに基づく模擬処理により動作させる第１のシミュレータ（エンジンシミュレータ）４０と、印刷エンジンから入力される信号に基づいて印刷媒体への印刷を実行する機構装置を模擬する機構装置モデルを、第２の制御プログラムに基づく模擬計算により動作させる第２のシミュレータ（メカシミュレータ）５０とを備える。
【００５３】
エンジンシミュレータ４０は、プリンタエンジンをシミュレートするプリンタエンジンモデルとして、プリンタコントローラ１との間ではプリンタ制御コマンドの受信、解析、ステータス応答などを行うとともに、メカシミュレータ５０に対しては、メカ制御を行う。エンジンシミュレータ４０は、通信タスク４０１、プリントタスク４０２、エンジン制御タスク４０３、エンジンステータス制御部４０４を含んで構成される。
【００５４】
通信タスク４０１は、プリンタコントローラ１との間のシリアル通信を制御するためのものである。プリンタコントローラ１から送られるプリンタエンジンへのコマンドや、プリンタエンジンからコントローラ１へ送られるステータスは、実機と同様にシリアル通信にて行われる。
【００５５】
通信タスク４０１は、外部ハードウェア部３を介してプリンタコントローラ１からシリアルデータを受信すると、実機と同様に、当該シリアルデータ中のコマンドを解析する。当該コマンドが、エンジン情報の設定である場合は、エンジン設定を示すパラメータの値を更新する。また、当該コマンドが、ステータス要求である場合は、エンジンステータス制御部４０４からステータス情報を取得して、コントローラ１へ送信する。また、当該コマンドが印刷開始コマンドの場合には、これをプリントタスク４０２へ通知する。
【００５６】
プリントタスク４０２は、実機と同様に、外部ハードウェア部３を介してプリンタコントローラ１から印刷開始コマンドを受信することにより起動され、メカシミュレータ５０を制御しながら印刷処理を行う。具体的には、通信タスク４０１から印刷開始が通知されると、エンジンステータス制御部４０４のステータスを「印刷中（Printing）」に設定する。そして、印刷開始設定処理として、メカシミュレータ５０へ、印刷動作開始を指示する各種トリガ信号（モータ駆動信号やトナー制御信号）を発行する。このトリガ信号により、メカシミュレータ５０ではメカ部の動作がシミュレーション（模擬動作）され、シミュレーション結果（センサ信号など）が送り返される。
【００５７】
プリントタスク４０２は、実機とほぼ同様に、メカシミュレータ５０から送られる各種センサ信号に応じた処理を実行する。ただし、本実施形態のプリンタタスク４０２は、水平同期信号を受信した場合には、この水平同期信号に基づいて外部ハードウェア部３の同期信号発生部３０４が実機と同じ周期で水平同期信号を発生するように制御する点で、実機とは異なる。
【００５８】
つまり、メカシミュレータ５０から送られる水平同期信号は、ソフトウェア制御によるものであるため実機同様の信号ではない。そのため、本実施形態では、メカシミュレータ５０が、センスした結果に基づいて水平同期信号を発生するものの、プリントタスク４０２は、この信号を受信すると、この発生した水平同期信号をトリガとして、実機レベルの水平同期信号を外部ハードウェア部３の同期信号発生部３０４に発生させるように制御している。
【００５９】
プリントタスク４０２は、メカシミュレータ５０による印刷処理が終了すると、エンジンステータス制御部４０４のステータスを「待機中（Ready）」に設定する。また、メカシミュレータ５０から「紙なし」を意味するセンサ信号を受信すると、エンジンステータス制御部４０４のステータスを「紙なし（Error）」に設定する。
【００６０】
エンジン制御タスク４０３は、プリンタエンジンの初期化、ユーザインタフェースやメカシミュレータとの通信、エンジンステータス制御部４０４の情報の更新や信号処理を行う。エンジン制御タスク４０３は、ユーザインタフェースである入力手段から、ＳＤＲＡＭのイメージデータの読み出し要求が入力されると、制御回路部３０に読み出し要求を出力する。そして、制御回路部３０から読み出されたイメージデータに基づく画像をディスプレイなどの表示装置に出力する。
【００６１】
エンジンステータス制御部４０４は、プリンタエンジンのステータスを記録し管理するためのものである。通信タスク４０１やプリントタスク４０２などからの通知に応じて、ステータスの値（印刷中、待機中など）を更新する。また、通信タスク４０１やプリントタスク４０２などからの要求に応じて、現在のステータスを通知する。
【００６２】
なお、上記各タスクは、外部ハードウェア部３から送られるタイマ割り込みに応じて動作する。また、上記各タスク等は、シミュレーション装置２内のＲＯＭやＲＡＭ、外部の記憶媒体等に格納されるエンジンシミュレーション用のプログラムをＣＰＵが実行することにより機能的に実現される。
【００６３】
次に、メカシミュレータ５０は、プリンタコントローラ１およびエンジンシミュレータ４０が制御対象とするプリンタのメカ（機構装置）に対応して仮想的に構築された仮想機構モデルを備える。仮想機構モデルの構築には既知の手法を用いることができるが、仮想機構モデルを実機により近づけるためには、実機のＣＡＤデータを利用して部品の動作定義を行うことが望ましい。
【００６４】
メカシミュレータ５０は、入出力手段５０１、演算処理手段５０２、描画処理手段５０３をおもに備える。入出力手段５０１は、エンジンシミュレータ４０から送られる各種トリガ信号（モータ駆動信号やトナー制御信号）等の入力や、シミュレーション結果であるセンサ信号などの出力を行う。
【００６５】
演算処理手段５０２は、シミュレーション装置２上に構築されている仮想機構モデルに対し、入出力手段５０１から入力されたトリガ信号を入力した場合のモデル定義に従ってモータの動きに対し各機構要素の動きを計算する演算処理を実行する。各機構要素には、センサも含まれ、このセンサが検出した情報は、実機同様に他の機構要素（部品）やプリントコントローラ１へ通知される。
【００６６】
描画処理手段５０３は、演算処理手段５０２による演算結果にもとづいてディスプレイ（表示装置）上に機構モデルを出力するための描画処理を実行する。
【００６７】
なお、上記各手段は、外部ハードウェア部３から送られるタイマ割り込みに応じて動作する。また、上記各手段は、シミュレーション装置２内のＲＯＭやＲＡＭ、外部の記憶媒体等に格納されるメカシミュレーション用のプログラムをＣＰＵが実行することにより機能的に実現される。
【００６８】
（シミュレーション装置における処理）
以下、図４乃至図５に示すフローチャートを参照して、プリンタコントローラ１をデバックした場合のシミュレーション装置２における処理について説明する。図４および図５は、本実施形態にかかるシミュレーション装置２の処理の流れを示すフローチャートである。なお、各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００６９】
なお、ここでは、プリンタコントローラ１のデバック処理の一例として、プリンタコントローラ１がシミュレーション装置２を使用して印刷を行い、その後、紙なしエラーが通知された場合を例に説明する。
【００７０】
エンジンシミュレータ４０及びメカシミュレータ５０は、タイマ割り込みを設定するため、Ｉ／Ｏレジスタの所定の領域にタイマ設定コマンド及び割り込み許可コマンドを書き込む（Ｓ１）。
【００７１】
タイマ割込信号発生部３０５は、Ｉ／Ｏレジスタからタイマ設定コマンドを読み出すと、タイマ設定コマンドの値に従ってタイマ割り込みを発生させ、定期的にエンジンシミュレータ４０とメカシミュレータ５０に対してそれぞれタイマ割り込みをかける（Ｓ２）。
【００７２】
エンジンシミュレータ４０とメカシミュレータ５０は、それぞれタイマ割り込みに従って下記の動作を行う。これにより、エンジンシミュレータ４０とメカシミュレータ５０の同期を図りながら、メカシミュレータ５０を実時間動作に近づけることができるようになる。
【００７３】
プリンタコントローラ１は、印刷開始に先立ち、パラメータの設定コマンド（エンジン情報の設定）をシリアル通信により送信する（Ｓ３）。エンジンシミュレータ４０の通信タスク４０１は、パラメータの設定コマンドを、実機と同様に、ビデオインタフェース３２および制御回路部３０を介して受信する（Ｓ４）。
【００７４】
通信タスク４０１は、設定コマンドを受信すると、このコマンドを解析し、解析結果に応じた処理を実機と同様に実行する。具体的には、解析結果に従い、パラメータの値を更新する。またエンジンステータス制御部４０４よりステータスを取得して、制御回路部３０およびビデオインタフェース３２を介してプリンタコントローラ１へステータス応答信号を送り返す（Ｓ４）。
【００７５】
ステータスを受信したプリンタコントローラ１は、次に、印刷開始コマンドをビデオインタフェース３２および制御回路部３０を介して送信する（Ｓ５）。
【００７６】
通信タスク４０１は、設定コマンドを受信すると、コマンドを解析し、印刷開始コマンであると判断した場合は、プリントタスク４０２に通知する。プリントタスク４０２は、エンジンステータス制御部４０４のステータスを「印刷中」に変更する（Ｓ６）。
【００７７】
そして、プリントタスク４０２は、印刷開始処理を実行する（Ｓ７）。具体的には、プリントタスク４０２は、Ｈｓｙｎｃモータ始動信号、給紙モータ始動信号および紙搬送モータ始動信号などのモータ始動信号を実機と同様にメカシミュレータ５０に送信する。
【００７８】
メカシミュレータ５０において、入出力手段５０１は各モータ始動信号を受信し、演算処理手段５０２が各モータ始動信号に基づく演算処理を実行する（Ｓ８）。例えば、演算処理手段５０２は、給紙モータ始動信号に基づく給紙動作や紙搬送モータ始動信号に基づく紙搬送動作を計算し、計算結果に基づく機構装置モデルの画像を描画処理手段５０３によってディスプレイに出力する。
【００７９】
また、プリントタスク４０２は、印刷トナー位置制御信号をメカシミュレータ５０に送信する（Ｓ９）。メカシミュレータ５０は、入出力手段５０１によって印刷トナー位置制御信号を受信し、演算処理手段５０２によって受信した印刷トナー位置制御信号に基づくドラム回転動作を計算する（Ｓ１０）。そして、この計算結果に対応したセンサからのセンサ信号（Ｖｓｙｎｃ発生のトリガ信号）を、実機と同様にエンジンシミュレータ４０に送り返す（Ｓ１２）。
【００８０】
プリントタスク４０２は、Ｖｓｙｎｃ発生のトリガ信号を受け取ると、当該Ｖｓｙｎｃ発生のトリガ信号を制御回路部３０に指示する（Ｓ１３）。
【００８１】
制御回路部３０の制御コマンド入力部３０３は、Ｖｓｙｎｃ発生のトリガ信号を受け取ると、これをＩ／Ｏレジスタの所定の領域に格納する。同期信号発生部３０４は、Ｉ／ＯレジスタからＶｓｙｎｃ発生のトリガ信号を読み出すと、Ｖｓｙｎｃ信号とＨｓｙｎｃ信号を発生し、ビデオインタフェース３２を介してプリンタコントローラ１に送出する（Ｓ１４）。なお、Ｈｓｙｎｃ信号は、設定周期毎に発生するものとし、また、設定ライン数分発生する。本実施形態では、実機と同じ周期およびライン数が設定されているものとする。
【００８２】
プリンタコントローラ１は、制御回路部３０から実機と同様の周期で送られるＨｓｙｎｃ信号に同期して、ＲＡＭなどに格納されたラスタデータを、ビデオインタフェース１２を介してシミュレーション装置２に送る（Ｓ１５）。
【００８３】
外部ハードウェア部３の制御回路部３０（画像データ入出力部３０２）は、ビデオインタフェース３２を介してＨｓｙｎｃ信号に同期して送られるラスタデータを受信し、このラスタデータをＨｓｙｎｃ信号に合わせたクロック同期でＳＤＲＡＭに格納する（Ｓ１６）。
【００８４】
そして、プリンタコントローラ１とシミュレーション装置２は、Ｓ９からＳ１６までの処理を、プリントコントローラ１から１ページ分のラスタデータが送られるまで繰り返す。
【００８５】
プリントタスク４０２は、１ページ分のラスタデータの処理が終了すると、排紙用モータ始動信号をメカシミュレータ５０へ送信する（Ｓ１７）。
【００８６】
メカシミュレータ５０は、入出力手段５０１によって排紙用モータ始動信号を受信し、演算処理手段５０２によって受信した排紙用モータ始動信号に基づく演算処理（排紙動作）を実行する（Ｓ１８）。そして、計算結果を描画処理手段５０３によってディスプレイに出力する。
【００８７】
プリンタコントローラ１が、シリアル通信にてステータス要求を送ると（Ｓ１９）、通信タスク４０１は、ステータスの応答処理を行う（Ｓ２０）。ここでは、エンジンステータス制御部４０４のステータスに「Ready」が設定されているので、実機と同様に、その値をステータス応答信号としてシリアル通信にて返信する。なお、ステータスは、エンジンシミュレータ４０が印刷及び排紙を終了すると、所定タイミングでステータスを「Ready」に変更したものとする。
【００８８】
ここで、メカシミュレータ５０の演算処理手段５０２において、センサが「紙なし」を検出すると、「紙なし」を示すセンサ信号がエンジンシミュレータ４０のプリントタスク４０２へ通知される（Ｓ２１）。
【００８９】
プリントタスク４０２は、「紙なし」を示すセンサ信号を受信すると、エンジンステータス制御部４０４のステータスを「紙なし」に更新する（Ｓ２２）。
【００９０】
その後、プリンタコントローラ１が、ステータス要求を送ると（Ｓ２３）、通信タスク４０１は、ステータスの応答処理を行う（Ｓ２４）。ここでは、ステータスに「紙なし」が設定されているので、その値をステータス応答信号として返信する。
【００９１】
プリンタコントローラ１は、ステータス応答信号を受信すると、ステータスの値を解析し、紙なしの場合には、例えば用紙を補給するメッセージ等を表示装置に出力する処理を行う。
【００９２】
また、印刷のシミュレーションがひととおり終わると、デバック担当者は、ラスタデータの検査を行うために、ラスタデータの確認要求をユーザインタフェースより指示する。エンジンシミュレータ４０は、ユーザインタフェースを介してラスタデータの確認要求が入力されると、ラスタデータの読み出し要求を外部ハードウェア部３の制御回路部３０に送信する（Ｓ２５）。
【００９３】
制御回路部３０は、画像データ入出力部３０２を介してラスタデータの読み出し要求が入力されると、ＳＤＲＡＭ３１からラスタデータを読み出して、読み出したラスタデータをエンジンシミュレータ４０に送信する（Ｓ２６）。
【００９４】
エンジンシミュレータ４０は、送信されたラスタデータを画像としてディスプレイに表示する（Ｓ２７）。
【００９５】
上記実施形態の構成によれば、一度のデバック作業で、実機（シミュレーション装置２）へ送信したラスタデータを確認することができるとともに、実機の印刷動作（レーザー照射）に合わせて格納したラスタデータを確認することが可能になる。
【００９６】
なお、印刷動作中に所定のエラー（例えば紙ジャム）が発生することを想定したデバックを行う場合には、印刷開始後エラーが発生した時点までのラスタデータがＳＤＲＡＭ３１に格納されていることになる。よって、エラー発生時点でのラスタデータを確認することができるようになる。
【００９７】
また、ラスタデータの保存は外部ハードウェア部３にて行い、メカの印刷動作に関するシミュレーションはシミュレータ部４にて行う構成であるので、実機の場合には不要であるラスタデータの保存処理が、印刷動作に関するシミュレーションに影響を与えることを回避することができる。
【００９８】
また、上記実施形態によれば、シミュレーション装置２に実機と同様のビデオインタフェースを設ける構成としたので、プリンタコントローラ側のインタフェースを、シミュレーション装置（汎用のコンピュータ）が備える一般的なインタフェースに合わせる必要がなくなる。
【００９９】
（その他の実施形態）
本発明は上記各実施形態に限定されることなく、種々に変形して適用することが可能である。
（１）例えば、上記実施形態では、エンジンシミュレータ３０とメカシミュレータ５０とを組み合わせた場合について説明したが、シミュレータ部４をエンジンシミュレータ３０単体としてもよいし、シミュレータ部４をメカシミュレータ５０単体で構成してもよい。
【０１００】
シミュレータ部４をエンジンシミュレータ３０単体とした場合には、メカシミュレータ５０からのセンサ信号は入力されないので、エンジンシミュレータ３０に、所定のタイミングでセンサ信号を発生させる手段を設ける構成や、ユーザインタフェースからセンサ信号を入力させる構成を採用すればよい。同期信号のトリガとなるセンサ信号が入力された場合には、上記実施形態と同様に、エンジンシミュレータ３０は、外部ハードウェア部３にてＨＳＹＮＣやＶＳＹＮＣを発生させるように制御する。
【０１０１】
この構成によれば、シミュレータ部４をエンジンシミュレータ３０単体とし、メカ部のシミュレータを用いない場合であっても、実機と同様の周波数でＨＳＹＮＣやＶＳＹＮＣを発生させることができるようになるので、プリンタエンジンにかかるシミュレータの性能をより向上させることが可能になる。
（２）上記実施形態の外部ハードウェア部３は、ビデオインタフェース３２、ラスタデータのＳＤＲＡＭへの保存と読み出し、水平同期信号および垂直同期信号の発生、タイマ割り込み等の機能を備えているが、いずれの機能を備えるかは仕様に応じて決定することができる。また、仕様に応じて新たな機能を追加または変更することも可能である。
【図面の簡単な説明】
【０１０２】
【図１】シミュレーション装置のハードウェア構成を示すブロック図である。
【図２】外部ハードウェア部の機能構成図を示すブロック図である。
【図３】シミュレータ部の機能構成図を示すブロック図である。
【図４】シミュレーション装置の処理の流れを示すフローチャートである。
【図５】シミュレーション装置の処理の流れを示すフローチャートである。
【符号の説明】
【０１０３】
１  プリンタコントローラ、  ２  シミュレーション装置、  ３  外部ハードウェア部３、  ４  シミュレータ部、  １２  ビデオインタフェース、  ３０  制御回路部、  ３１  ＳＤＲＡＭ、  ３２  ビデオインタフェース
【図１】
2005157791.tif 000003
【図２】
2005157791.tif 000004
【図３】
2005157791.tif 000005
【図４】
2005157791.tif 000006
【図５】
2005157791.tif 000007