(57)【特許請求の範囲】
【請求項１】
プリンタコントローラにおいて、装置を制御する制御部と、入力データ、属性及び出力フォーマット指定を入力し、指定された出力フォーマットに編集したデータを出力する手段を有する編集部と、前記制御部および前記編集部に提供する処理ブロックと情報構造体とを定義しさらにコントローラに搭載されうるデバイス制御手順を定義するデバイス制御定義部を備え、前記デバイス制御定義部の制御手順は前記処理ブロック毎に構成することを特徴とする定義部と、前記定義部の前記デバイス制御定義部で定義された前記デバイス制御手順に対応するデバイスライブラリとを備えることを特徴とするプリンタコントローラ。
【請求項２】
前記定義部は、装置情報部品を備え、前記装置情報部品に基づき処理ブロックを構成することを特徴とする請求項１記載のプリンタコントローラ。
【請求項３】
前記装置情報部品は、出力フォーマット毎に、出力先を設定する機能を有することを特徴とする請求項２記載のプリンタコントローラ。
【請求項４】
前記装置情報部品を外部から入力する機能を備えることを特徴とする請求項２記載のプリンタコントローラ。
【請求項５】
前記装置情報部品を外部から入力する機能を備えることを特徴とする請求項３記載のプリンタコントローラ。
【請求項６】
ＦＡＸ、プリンタ、コピー機能を備える複合機使用されることを特徴とする請求項１〜５記載のプリンタコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプリンタコントローラに関し、特にハードウェア構成の変更に容易に対応可能なプリンタコントローラに関する。
【０００２】
【従来の技術】
近年、コンピュータハードウェア技術の向上はめざましく、また様々な通信技術も開発されていることに伴い、コンピュータ周辺機器の開発サイクルは短くなっている。この為、開発効率をあげることが必要不可欠となっている。開発効率を上げるための対策として例えば、特開平７−１２９３４２号公報、特開平１１−３２７８８３号公報が開示されている。
【０００３】
特開平７−１２９３４２号公報においては、印刷制御ソフトウェアと基本ソフトウェア間に接合ソフトウェアと呼ばれる変換ソフトウェアを備え、関数の間の不整合を接合ソフトウェアで吸収することによりソフトウェアの流用性を高める、というものである。
【０００４】
特開平１１−３２７８８３号公報においては、ソフトウェアを機能毎に独立した部品として構成し、協調動作させることによりソフトウェアの流用性を高める、というものである。
【０００５】
【発明が解決しようとする課題】
従来の技術において、変換ソフトウェアを使った構成では、変換ソフトウェアを間に介在させる分、処理時間やメモリの使用において冗長であり、ユーザに提供する商品としては問題がある。
【０００６】
ソフトウェアを機能毎に独立した部品として構成した場合、コントローラの特定デバイスが変更となった場合、そのデバイスに関連する全ての部品に変更が必要となるため、必ずしもソフトウェアの流用性向上にはならない。
【０００７】
本発明の目的は、ハードウェア構成の変更に容易に対応可能なプリンタコントローラを提供すること、及びコントロールソフトウェアの流用性を高め、開発効率を向上させることにある。
【０００８】
【課題を解決するための手段】
課題を解決するために請求項１の本発明のプリンタコントローラは、以下のような特徴をもつ定義部（図２の２３）と、定義部のデバイス制御定義部（図２の２５）が定義したデバイス制御手順に対応するデバイスライブラリ（図２の２４）から構成される。定義部（図２の２３）は、制御部（図２の２１）および編集部（図２の２２）に提供する処理ブロック（図２の２６）と情報構造体を定義し、さらにコントローラに搭載されうるデバイスの制御手順を定義したデバイス制御定義部（図２の２５）を備え、前記デバイスの制御手順は前記処理ブロック毎に構成する。
【０００９】
請求項２のプリンタコントローラの定義部（図２の２３）はさらに、装置情報部品（図３）を備え、装置情報部品（図３）に基づき処理ブロックを構成する。
【００１０】
請求項３のプリンタコントローラにおける装置情報部品はさらに、出力フォーマット毎に、出力先を設定できるように構成されている（図９）。
【００１１】
請求項４，５のプリンタコントローラはさらに、装置情報部品（図３）を外部から入力する機能を備えている。
【００１２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１は、本発明の第１の実施の形態におけるプリンタの構成図である。この実施の形態におけるプリンタ１は、コントロールソフトウェアを格納するＲＯＭ３と、コントロールソフトウェアやホストからの受信データ、中間データ、ビットマップデータなど様々なデータを保存するＲＡＭ４と、ＲＯＭ３やＲＡＭ４からコントロールソフトウェアを読み出し実行するＣＰＵ２と、ホストコンピュータ１０との通信を行うセントロＩ／Ｆ５と、プリンタエンジン９との通信を行うエンジンＩ／Ｆ６と、プリンタ１の状態を示すＬＥＤ７と、装置固有の情報を保存しているＥＥＰＲＯＭ８と、プリンタエンジン９とから構成されている。
【００１４】
図２は、この実施の形態のプリンタコントローラ２０の機能ブロック図である。このプリンタコントローラ２０は、装置を制御する制御部２１と、入力データ・属性及び出力フォーマット指定を入力し、指定された出力フォーマットに編集したデータを出力する手段を有する編集部２２と、制御部２１および編集部２２に提供する処理ブロック２６と情報構造体を定義しさらにプリンタコントローラ２０に搭載されうるデバイス制御手順を定義するデバイス制御定義部２５とを備える定義部２３と、この定義部２３のデバイス制御定義部２５で定義されたデバイス制御手順に対応するデバイスライブラリ２４とから構成される。
【００１５】
デバイス制御定義部２５は、エンジン制御定義部２５−ａ、通信制御定義部２５−ｂ、ＬＥＤ制御定義部２５−ｃ、ＥＥＰＲＯＭ制御定義部２５−ｄから構成される。デバイス制御定義部２５は、デバイスの種類別に一般的な制御手順を定義するものであり、コントロールハードウェアに接続しうるあらゆるデバイスに対してその制御手順を備えている。図示してはいないが例えば画像入力装置や記憶装置などの制御手順も備えている。エンジン制御定義部２５−ａは、プリンタエンジンの一般的な制御手順の定義であり、その定義により、仕様の異なる複数のプリンタエンジンを制御することが可能となる。通信制御定義部２５−ｂも同様であり、セントロニクス、ＲＳ２３２Ｃ、ＮＩＣなどさまざまな通信インタフェースの制御が可能である。
【００１６】
図４は本発明のデバイス制御定義部の構成例である。図４（ａ）はエンジン制御定義部２５−ａの構成例である。初期化手順Ｌ２，属性入力手順Ｌ５，データ出力手順Ｌ９が定義されている。この中で実行されているリセット要求Ｌ３、レビジョン要求Ｌ６、給紙ユニット情報要求Ｌ７、印刷要求Ｌ１０は、デバイスライブラリ２４から提供される。
【００１７】
定義部２３が制御部２１、編集部２２に提供する処理ブロック２６は、初期化ブロック２６−ｅ、ステータス出力ブロック２６−ｆ、属性入力ブロック２６−ｇ、属性出力ブロック２６−ｈ、データ入力ブロック２６−ｉ、データ出力ブロック２６−ｊから構成され、それぞれに対応する情報構造体も定義されている。それぞれの処理ブロックは、デバイス制御定義部２５が定義する制御手順から構成される。初期化ブロック２６−ｅは、エンジン制御定義部２５−ａの初期化手順、通信制御定義部２５−ｂの初期化手順、ＥＥＰＲＯＭ制御部２５−ｄの初期化手順から構成される。
【００１８】
請求項２の発明によれば、処理ブロック２６の構成は装置情報部品で定義する。図３は本発明の装置情報部品構成例である。装置情報部品は、処理ブロックの構成の定義Ｌ２〜Ｌ１１及びデバイスライブラリの定義Ｌ１２〜Ｌ１５から構成される。この装置情報部品によって初期化ブロック２６−ｅはエンジン制御定義部２５−ａの初期化手順、通信制御定義部２５−ｂの初期化手順、ＥＥＰＲＯＭ制御部２５−ｄの初期化手順から構成される。
【００１９】
処理ブロック２６各々に対応する情報構造体は、処理ブロック２６で処理を行うために必要な全ての情報の集合として定義されている。図６は、本発明の定義部２３が定義する情報構造体フォーマット例である。図６（ａ）は、基本の情報構造体フォーマットである。基本の情報構造体は、処理ブロック識別情報、状態情報、情報エリアのレングス、情報エリアから構成される。図６（ｂ）〜図６（ｇ）は、処理ブロック２６−ｅ〜２６−ｊに対応する情報構造体のフォーマットである。
【００２０】
初期化ブロック用の情報構造体フォーマット（図６（ｂ））は、処理ブロック識別情報（初期化ブロック）、状態情報、レングス、起動要因から構成される。ステータス出力ブロック用の情報構造体フォーマット（図６（ｃ））は、処理ブロック識別情報（ステータス出力ブロック）、状態情報、レングス、起動要因から構成される。属性入力ブロック用の情報構造体フォーマット（図６（ｄ））は、処理ブロック識別情報（属性入力ブロック）、状態情報、レングス、読み出しデータ格納メモリへのポインタから構成される。属性出力ブロック用の情報構造体フォーマット（図６（ｅ））は、処理ブロック識別情報（属性出力ブロック）、状態情報、レングス、書き込みデータ格納メモリへのポインタから構成される。データ入力ブロック用の情報構造体フォーマット（図６（ｆ））は、処理ブロック識別情報（データ入力ブロック）、状態情報、レングス、入力データレングス、出力フォーマット指定情報、入力データ格納メモリへのポインタから構成される。データ出力ブロック用の情報構造体フォーマット（図６（ｇ））は、処理ブロック識別情報（データ出力ブロック）、状態情報、レングス、出力データレングス、出力フォーマット指定情報、出力データ格納メモリへのポインタから構成される。
【００２１】
デバイスライブラリ２４はエンジンライブラリ２４−ａ、セントロライブラリ２４−ｂ、ＬＥＤライブラリ２４−ｃ、ＥＥＰＲＯＭライブラリ２４−ｄから構成される。デバイスライブラリ２４は、デバイス制御定義部２５によって定義された制御手順に対応して構成されている。図５は本発明のデバイスライブラリ構成例である。図５（ａ）は、エンジンライブラリ２４−ａの構成例である。エンジン制御定義部２５−ａが定義する制御手順に対応しており、リセット要求Ｌ２、レビジョン要求Ｌ５，給紙ユニット情報要求Ｌ８、印刷要求Ｌ１１を提供する。デバイスライブラリ２４は、デバイスの仕様が異なる場合には、新たに生成されるものである。例えば、プリンタコントローラ２０に接続するエンジンの種類が変更になった場合、エンジンライブラリは新たに生成するものである。
【００２２】
次に、本発明の第１の実施の形態の動作について説明する。
【００２３】
まず、図１の本発明のプリンタコントローラの構成図で、通常の印刷動作について説明する。ホストコンピュータ１０よりプリンタ１に印刷データが送られると、印刷データはセントロＩ／Ｆ５を介してＲＡＭ４に格納される。ＣＰＵ２はＲＡＭ４よりデータを読み出しプリンタエンジン９が印刷可能なビットマップデータを生成し、ＲＡＭ４に格納後、エンジンＩ／Ｆ６を介して、プリンタエンジン９にビットマップデータを出力し、記録紙への印刷を行う。
【００２４】
図２は本発明のプリンタコントローラの機能ブロック図である。請求項２の本発明によれば、定義部２３の定義する処理ブロック２６は、図３に示す装置情報部品に基づき構成されているものとする。すなわち初期化ブロック２６−ｅは、エンジン制御定義部２５−ａの初期化手順、通信制御定義部２５−ｂの初期化手順、ＥＥＰＲＯＭ制御定義部２５−ｄの初期化手順から構成される。同様にステータス出力ブロック２６−ｆは、通信制御定義部２５−ｂのステータス出力手順、ＬＥＤ制御定義部２５−ｃのステータス出力手順から構成される。属性入力ブロック２６−ｇは、エンジン制御定義部２５−ａの属性入力手順、ＥＥＰＲＯＭ制御定義部２５−ｄの属性入力手順から構成される。属性出力ブロック２６−ｈは、ＥＥＰＲＯＭ制御定義部２５−ｄの属性出力手順から構成される。データ入力ブロック２６−ｉは、通信制御定義部２５−ｂのデータ入力手順から構成される。データ出力ブロック２６−ｊは、エンジン制御定義部２５−ａのデータ出力手順、通信制御定義部２５−ｂのデータ出力手順から構成される。
【００２５】
初期化ブロック２６−ｅを構成する、エンジン制御定義部２５−ａの初期化手順、通信制御定義部２５−ｂの初期化手順、ＥＥＰＲＯＭ制御定義部２５−ｄの初期化手順を図４に示す。図４（ａ）のＬ２〜Ｌ４は、エンジン制御定義部２５−ａの初期化手順である。エンジン制御定義部２５−ａの初期化手順は、リセット要求Ｌ３をエンジンライブラリ２４−ａに発行する。図４（ｂ）のＬ２〜Ｌ４は、通信制御定義部２５−ｂの初期化手順である。通信制御定義部２５−ｂの初期化手順は、初期化要求Ｌ３をセントロライブラリ２４−ｂに発行する。図４（ｄ）のＬ２〜Ｌ４は、ＥＥＰＲＯＭ制御定義部２５−ｄの初期化手順である。ＥＥＰＲＯＭ制御定義部２５−ｄの初期化手順は、診断要求Ｌ３をＥＥＰＲＯＭライブラリ２４−ｄに発行する。
【００２６】
図５は各デバイスライブラリの構成例である。図５（ａ）はエンジンライブラリ２４−ａの構成例である。Ｌ２〜Ｌ４は、エンジン制御定義部２５−ａの初期化手順に対応したリセット要求処理である。エンジンライブラリ２４はこの他に、エンジン制御定義部２５−ａのレビジョン要求、給紙ユニット情報要求、印刷要求処理を有している（図５（ａ））。
【００２７】
以上に示すとおり、制御部２１と編集部２２から定義部２３の定義する処理ブロック２６が実行されると処理ブロック２６はデバイス制御定義部２５の制御手順を実行することにより、デバイスライブラリ２４を実行する。
【００２８】
図７は本発明のプリンタコントローラ２０の処理フローである。図８は図７処理フローにおける情報構造体例である。図７、図８を用いて、機能ブロックの処理の流れを説明する。
【００２９】
プリンタ１に電源が投入されると、制御部２１は図８（Ａ）に示す情報構造体を生成し、定義部２３の初期化ブロックを起動する（図７（Ａ））。
【００３０】
定義部２３は初期化ブロック２６−ｅが起動されると、図３に示す装置情報部品Ｌ２〜Ｌ４に基づき、エンジン制御定義部２５−ａの初期化手順、通信制御定義部２５−ｂの初期化手順、ＥＥＰＲＯＭ制御定義部２５−ｄの初期化手順を順に起動する。エンジンライブラリ２４−ａの初期化手順は図４（ａ）Ｌ２〜Ｌ４によって定義されている。この定義に基づき、エンジンライブラリ２４−ａに対してはリセット要求及び、起動要因＝パワーオンを通知する。エンジンライブラリ２４−ａは、パワーオン時の初期化処理を実行し、定義部２３にその完了を通知する。同様に定義部２３は、セントロライブラリ２４−ｂの初期化手順、ＥＥＰＲＯＭライブラリ２４−ｄの初期化手順も実行する。この処理が完了すると定義部２３は、図８（Ｂ）に示す情報構造体を生成し、制御部２１に初期化ブロック終了を通知する（図７（Ｂ））。
【００３１】
処理ブロック２６の起動からデバイスライブラリ２４の起動手順は以上と全く同様である。これ以降は、図７の処理フローに基づき、制御部２１、編集部２２、定義部２３、エンジンライブラリ２４−ａ、セントロライブラリ２４−ｂ、ＬＥＤライブラリ２４−ｃ、ＥＥＰＲＯＭライブラリ２４−ｄの処理内容について説明する。
【００３２】
制御部２１は、初期化ブロック終了の通知を受けると、図８（Ｃ）に示す情報構造体を生成し、定義部２３のステータス出力ブロックを起動要因＝初期化完了で起動する（図７（Ｃ））。これによりセントロライブラリ２４−ｂの出力要求とＬＥＤライブラリ２４−ｃの点灯要求が起動される。セントロライブラリ２４−ｂはホストコンピュータ１０に対し、プリンタ１がデータ受信可能状態になったことを通知する。ＬＥＤライブラリ２４−ｃはデータ受信可能のＬＥＤを点灯する。セントロライブラリ２４−ｂとＬＥＤライブラリ２４−ｃのステータス出力処理が完了すると、定義部２３は図８（Ｄ）に示す情報構造体を生成し、制御部２１にステータス出力ブロック終了を通知する（図７（Ｄ））。
【００３３】
編集部２２は図８（Ｅ）に示す情報構造体を、起動要因＝全データ読み出しで生成し、定義部２３の属性入力ブロック２６−ｇを起動する（図７（Ｅ））。これによりエンジンライブラリ２４−ａのレビジョン要求、給紙ユニット情報要求、ＥＥＰＲＯＭライブラリ２４−ｄの読出し要求が起動される。エンジンライブラリ２４−ａはエンジンレビジョン情報、給紙ユニット情報を定義部２３に返却する。ＥＥＰＲＯＭライブラリ２４−ｄは保存している情報を全て読みだし、定義部２３に返却する。
【００３４】
定義部２３は、エンジンライブラリ２４−ａ、ＥＥＰＲＯＭライブラリ２４−ｄより取得した情報を、情報構造体の読み出しデータ格納メモリへのポインタで示されたエリアに格納した図８（Ｆ）の情報構造体を生成し、編集部２２に属性入力ブロック２５−ｇの終了を通知する（図７（Ｆ））。
【００３５】
次に、編集部２２は、図９（Ｇ）に示す情報構造体を生成し、定義部２３のデータ入力ブロック２６−ｉを起動する（図７（Ｇ））。これによりセントロライブラリ２４−ｂのデータ入力要求が起動される。セントロライブラリ２４−ｂは入力データ及びそのレングスを定義部２３に返却する。定義部２３は、セントロライブラリ２４−ｂより取得した入力データ及びそのレングス、出力フォーマットにビットマップ指定を、情報構造体に格納する。定義部２３は図９（Ｈ）の情報構造体を生成し、編集部２２にデータ入力ブロック２６−ｉの終了を通知する（図７（Ｈ））。
【００３６】
編集部２２は、データを入力すると、これを制御部２１に通知する。制御部２１は、データの入力通知を受けると図９（Ｊ）の情報構造体を生成し、定義部２３のステータス出力ブロック２６−ｆを起動要因＝データ処理中で起動する（図７（Ｊ））。これによりセントロライブラリ２４−ｂの出力要求とＬＥＤライブラリ２４−ｃの点灯要求が起動される。セントロライブラリ２４−ｂはホストコンピュータ１０に対し、プリンタ１がデータ処理中になったことを通知する。ＬＥＤライブラリ２４−ｃはデータ処理中のＬＥＤを点灯する。セントロライブラリ２４−ｂとＬＥＤライブラリ２４−ｃのステータス出力処理が完了すると、定義部２３は図９（Ｋ）に示す情報構造体を生成し、制御部２１にステータス出力ブロック終了を通知する（図７（Ｋ））。
【００３７】
編集部２２は、入力データから指定された出力フォーマットのデータを生成すると図９（Ｌ）に示す情報構造体を生成し、定義部２３のデータ出力ブロックを起動する（図７（Ｌ））。これによりエンジンライブラリ２４−ａの印刷要求が起動される。エンジンライブラリ２４−ａは印刷要求を実行し、その完了を定義部２３に通知する。定義部２３は、図９（Ｍ）の情報構造体を生成し、編集部２２にデータ出力ブロック２６−ｊの終了を通知する（図７（Ｍ））。
【００３８】
編集部２２はデータ出力終了の通知を受けると、制御部２１にデータ出力の完了を通知する（図７（Ｎ））。制御部２１は、データの出力の完了通知を受けると図９（Ｏ）の情報構造体を生成し、定義部２３のステータス出力ブロックを起動要因＝出力完了で起動する（図７（Ｏ））。これによりセントロライブラリ２４−ｂの出力要求とＬＥＤライブラリ２４−ｃの点灯要求が起動される。セントロライブラリ２４−ｂはホストコンピュータ１０に対し、プリンタ１が印刷完了したことを通知する。ＬＥＤライブラリ２４−ｃはデータ処理中のＬＥＤを消灯する。セントロライブラリ２４−ｂとＬＥＤライブラリ２４−ｃのステータス出力処理が完了すると、定義部２３は以下図９（Ｐ）に示す情報構造体を生成し、制御部２１にステータス出力ブロック終了を通知する（図７（Ｐ））。
【００３９】
本発明の第２の実施の形態は、第１の実施の形態とは、装置構成部品のみが異なる。図１０は、第２の実施の形態の装置情報部品である。図１０において、第１の実施の形態と異なるのはＬ１１，Ｌ１２である。Ｌ１１，Ｌ１２はデータフォーマット別の出力先の構成を示しており、中間データの出力は通信制御定義部のデータ出力手順（Ｌ１１）、ビットマップデータの出力はエンジン制御定義部のデータ出力手順（Ｌ１２）と定義している。図１１はこの第２の実施の形態の処理フローである。図中、Ｇ、Ｈ、Ｑ、Ｒ、Ｌ、Ｍ以外は第１の実施の形態と同じ為、説明は省略する。
【００４０】
編集部２２は図１２（Ｇ）に示す情報構造体を生成し、定義部２３のデータ入力ブロック２６−ｉを起動する（図１１（Ｇ））。これによりセントロライブラリ２４−ｂのデータ入力要求が起動される。セントロライブラリ２４−ｂは入力データ及びそのレングスを定義部２３に返却する。定義部２３は、セントロライブラリ２４−ｂより取得した入力データ及びそのレングスを、情報構造体に格納する。定義部２３は、情報構造体の出力フォーマットには、図１０の装置情報部品のデータ出力項（Ｌ１１，Ｌ１２）にある出力形式を全て設定する。すなわちビットマップ、中間形式の両方を設定して図１２（Ｇ）の情報構造体を生成し、編集部２２にデータ入力ブロックの終了を通知する（図１１（Ｈ））。
【００４１】
編集部２２は、入力データを指定された出力フォーマットに編集する。図１２（Ｇ）に示す情報構造体ではビットマップおよび中間形式が指定されたため、編集部２２は、データ出力ブロックを２回起動する。編集部２２は中間形式データを生成すると、図１２（Ｑ）に示す情報構造体を生成し、定義部２３のデータ出力ブロックを起動する（図１１（Ｑ））。これによりセントロライブラリ２４−ｂのデータ出力要求が起動される。セントロライブラリ２４−ｂはホストに中間データを送信し、その完了を定義部２３に通知する。定義部２３は、図１２（Ｒ）の情報構造体を生成し、編集部２２にデータ出力ブロックの終了を通知する（図１１（Ｒ））。
【００４２】
編集部２２はビットマップデータを生成すると図１２（Ｌ）に示す情報構造体を生成し、定義部２３のデータ出力ブロックを起動する（図１１（Ｌ））。これによりエンジンライブラリ２４−ａの印刷要求が起動される。エンジンライブラリ２４−ａは印刷要求を実行し、その完了を定義部２３に通知する。定義部２３は、図１２（Ｍ）の情報構造体を生成し、編集部２２にデータ出力ブロックの終了を通知する（図１１（Ｍ））。
【００４３】
この構成によれば、ホストコンピュータ１０からデータを受信し、用紙に印刷するプリンタ１において、印刷と同時に、編集した中間データをホストへ送信し保管させるシステムが構築できる。さらに、図１０に示す装置情報部品に、「データ出力先・ビットマップ＝通信制御定義部・データ出力手順」を追加すれば、ホストに用紙に印刷したのと全く同じビットマップデータを送信することも容易に可能となり、ホスト側で、プリンタから返送された中間データ、ビットマップデータの容量の小さい方を保管しておき、文書の再印刷効率を上げることも可能となる。
【００４４】
本発明のプリンタコントローラ２０における定義部２３（図２の２３）が定義するデバイス制御定義部２５は、プリンタコントローラ２０のみならず、コンピュータの周辺に接続可能なデバイスについても、その処理手順を有している。第３の実施の形態はそのうち、スキャナの処理手順を使った例を示す。
【００４５】
図１３は、第３の実施の形態の構成図である。ＮＩＣ１５はネットワーク１１０との通信を行う。スキャナＩ／Ｆ１６はスキャナ１９との通信を行う。図１４は、第３の実施の形態のプリンタコントローラ１２０の機能ブロック図である。定義部１２３のデバイス制御定義部１２５は、スキャナ制御定義部１２５−ａ、通信制御定義部１２５−ｂ、ＬＥＤ制御定義部１２５−ｃ、ＥＥＰＲＯＭ制御定義部１２５−ｄから構成される。デバイスライブラリ１２４はスキャナライブラリ１２４−ａ、ＮＩＣライブラリ１２４−ｂ、ＬＥＤライブラリ１２４−ｃ、ＥＥＰＲＯＭライブラリ１２４−ｄから構成される。各処理ブロック１２６−ｅ〜１２６−ｊは、図１５に示す第３の実施の形態の装置情報部品に基づき構成される。図１６は第３の実施の形態の処理フローである。詳細な処理フローの説明は第１の実施の形態で行っているため割愛するが、この構成によれば、スキャナライブラリ１２４−ａを介して画像データを入力し、装置情報部品で規定したフォーマットに編集しなおしたデータをＮＩＣライブラリ１２４−ｃを介してネットワーク１１０に出力するネットワークスキャナ装置となる。
【００４６】
このように、本発明のプリンタコントローラにおいては、デバイスライブラリと装置情報部品を置き換えることにより、プリンタコントローラに限らない、多機能な装置を開発することが可能である。またさらにデバイスライブラリを全て仮想的なものと置き換えれば、パソコン上でシュミレーションしうるコントローラを構成することも可能である。
【００４７】
【発明の効果】
以上説明したように、本発明では、定義部（図２の２３）は、コントローラに搭載されうるデバイスの一般的な制御手順を定義するデバイス制御定義部（図２の２５）と、この制御手順に従ってデバイスを制御すること、及びデバイスライブラリ（図２の２４）は定義部が定義した制御手順に対応した構成となっていること、によりデバイスライブラリ以外には、デバイスの変更は影響しない。すなわち、デバイスライブラリを置き換えるだけで、デバイスの変更に対応可能である。さらに、デバイスライブラリは、デバイス制御定義部（図２の２５）の定義に対応していれば、仮想的なライブラリでも実現可能である。これにより、本発明のプリンタコントローラは、コンピュータ上のシュミレーションでも、あるいは、コントローラハードウェアの全てが完成していなくても動作可能である。
【００４８】
さらに、デバイス制御定義部（図２の２５）の制御手順は、処理ブロック毎（図２の２６−ｅ〜２６−ｊ）に構成されているため、定義部が提供する処理ブロック（図２の２６）は、これらデバイスの制御手順から容易に構成することが可能である。
【００４９】
請求項２において定義部は装置情報部品（図３）を備え、装置情報部品に基づき処理ブロック（図２の２６）を構成することにより、処理ブロック（図２の２６）を構成するデバイス制御定義部（図２の２５）が選択可能となる。これにより、同一のハードウェア構成の場合でも、違う仕様の装置を容易に開発することが可能である。例えば、通信インタフェースとプリンタエンジンを備えた装置において、通信インタフェースから受信したデータをプリンタエンジンで用紙に印刷する装置Ｉと、通信インタフェースから受信したデータを用紙に印刷する代わりにホストコンピュータに転送する装置ＩＩを開発する場合である。この場合、装置情報部品Ｉはデータ出力先をプリンタエンジン、装置情報部品ＩＩではデータ出力先を通信インタフェースとして生成し、装置Ｉを開発する場合は装置情報部品Ｉ、装置ＩＩを開発する場合は装置情報部品を装置情報部品ＩＩに置き換えるだけでよい。
【００５０】
請求項３のプリンタコントローラにおける装置情報部品はさらに、出力フォーマット毎に、出力先を設定できるように構成されている。これにより、本発明のプリンタコントローラは、複雑な機能の装置も実現可能である。図１のプリンタコントローラにハードディスクを付加した構成のプリンタコントローラにおいて文書保管管理機能が容易に実現可能である。この場合、装置情報部品において出力フォーマットが中間データの出力先をハードディスク、出力フォーマットがビットマップデータの出力先をプリンタエンジンとする。これにより、用紙への印刷と、中間データのハードディスクへの保存が、ホストからの１回のデータ転送で実現可能となる。ユーザが用紙への印刷結果を確認した後、再印刷する場合に、ホストから再度データを転送する必要はなくなる。
【００５１】
請求項４，５のプリンタコントローラはさらに、装置情報部品を外部から入力する機能を備えている。これにより、本発明のプリンタコントローラは、動的に、その装置動作仕様を変更することが可能となる。例えば、文書保管管理機能を使用する／使用しないを、動的に切り換えることが可能となる。これにより、同一プリンタコントローラにおいて、多様な印刷システムの構築が容易となる。また、本プリンタコントローラの構成によれば、ＦＡＸ、プリンタ、コピー機能を備えるような複合機の一部としての組み込みも容易に実現できる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のプリンタコントローラの構成図である。
【図２】本発明の第１の実施の形態のプリンタコントローラの機能ブロック図である。
【図３】本発明の第１の実施の形態の装置情報部品構成例である。
【図４】本発明の第１の実施の形態のデバイス制御定義部構成例である。
【図５】本発明の第１の実施の形態のデバイスライブラリ構成例である。
【図６】本発明の第１の実施の形態の定義部が定義する情報構造体フォーマット例である。
【図７】本発明の第１の実施の形態のプリンタコントローラの処理フローである。
【図８】図７処理フローにおける情報構造体例である。
【図９】図７処理フローにおける情報構造体例である。
【図１０】本発明の第２の実施の形態の装置情報部品構成例である。
【図１１】本発明の第２の実施の形態のプリンタコントローラの処理フローである。
【図１２】図１１処理フローにおける情報構造体例である。
【図１３】本発明の第３の実施の形態の構成図である。
【図１４】本発明の第３の実施の形態のプリンタコントローラの機能ブロック図である。
【図１５】本発明の第３の実施の形態の装置情報部品構成例である。
【図１６】本発明の第３の実施の形態のプリンタコントローラの処理フローである。
【符号の説明】
１    プリンタ
２    ＣＰＵ
３    ＲＯＭ
４    ＲＡＭ
５    セントロＩ／Ｆ
６    エンジンＩ／Ｆ
７    ＬＥＤ
８    ＥＥＰＲＯＭ
９    プリンタエンジン
１０    ホストコンピュータ
１５    ＮＩＣ
１６    スキャナＩ／Ｆ
１９    スキャナ
１１０    ネットワーク
２０，１２０    プリンタコントローラ
２１    制御部
２２    編集部
２３，１２３    定義部
２４，１２４    デバイスライブラリ
２５，１２５    デバイス制御定義部
２６，１２６    処理ブロック
【図１】
0003567907.tif 000002
【図２】
0003567907.tif 000003
【図３】
0003567907.tif 000004
【図４】
0003567907.tif 000005
【図５】
0003567907.tif 000006
【図６】
0003567907.tif 000007
【図７】
0003567907.tif 000008
【図８】
0003567907.tif 000009
【図９】
0003567907.tif 000010
【図１０】
0003567907.tif 000011
【図１１】
0003567907.tif 000012
【図１２】
0003567907.tif 000013
【図１３】
0003567907.tif 000014
【図１４】
0003567907.tif 000015
【図１５】
0003567907.tif 000016
【図１６】
0003567907.tif 000017