(57)【要約】【課題】  複写機にプリンタ機能を実現するプリンタ・コントローラの不正製造や不正使用を困難にすること。【解決手段】  複写機内のインターフェース部を含む制御に使用されるソフトウェアまたはファームウェアを構成する構成データの少なくとも一部を格納する格納部をプリンタ・コントローラに備え、この構成データを複写機のインターフェース部に送り、複写機およびそのインターフェース部は、インターフェース２を介して送られた構成データを受けて、これを所定の格納場所に格納し、その後に始めて、プリンタ・コントローラからの印刷用のデータをインターフェース部が受け付けてこれを複写機に渡して複写機が印刷結果を出力する動作を実行可能とするようにする。この構成データは、インターフェース部内のＦＰＧＡ用のコンフィグレーション用データ、あるいは、複写機内部のインターフェース部との間のデータ送受を実行するファームウェアとすることができる。【選択図】  図６
2006341460.tif 000002
【特許請求の範囲】
【請求項１】
複写機および、当該複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラ、および当該プリンタ・コントローラとインターフェースする前記複写機に接続されたインターフェース部を含むシステムであって、
前記プリンタ・コントローラは、通信回線を介して外部のホスト・コンピュータからの印刷ジョブを受けるための第一のインターフェース手段と、前記複写機に接続されたインターフェース部とインターフェースする第二のインターフェース手段を備えると共に、前記複写機内の前記インターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアを構成する構成データの少なくとも一部を格納する格納部を備えると共に、当該格納部に格納している構成データを、前記インターフェース２を介して、前記インターフェース部に送り、
前記複写機および当該複写機に接続された前記インターフェース部は、前記プリンタ・コントローラから前記インターフェース２を介して送られた前記構成データを受けて、所定の格納場所に格納し、その後に始めて、前記プリンタ・コントローラからの印刷用のデータを前記インターフェース部が受け付けてこれを複写機に渡して複写機が印刷結果を出力する動作を実行することが可能になることを特徴とするシステム。
【請求項２】
前記インターフェース部はＦＰＧＡを含んで構成され、前記プリンタ・コントローラに格納されている前記構成データは、前記ＦＰＧＡをコンフィグレーションするデータであり、前記所定の格納場所は前記ＦＰＧＡ内のＲＡＭであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記所定の格納場所は、前記複写機のプログラムが格納されている場所であり、前記構成データは、複写機内のコントローラ部のプログラムあるいはファームウェアであって、前記インターフェース部との間のデータ送受を実行するためのコンピュータ可読命令を含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記プリンタ・コントローラは、前記プリンタ・コントローラに格納されている前記構成データを、プリンタ・コントローラの電源投入後、あるいは複写機が電源投入されたことを検出して、前記インターフェース部に送ることを特徴とする請求項１〜３に記載のシステム。
【請求項５】
前記プリンタ・コントローラ内に格納されている前記構成データが前記プリンタ・コントローラによって送られた際に、前記複写機および当該複写機に接続された前記インターフェース部内の対応する構成データが書き替えられることを特徴とする請求項１に記載のシステム。
【請求項６】
前記所定の場所に格納されたデータは、複写機の電源投入後の初期処理において、あるいは前記プリンタ・コントローラと前記インターフェース部の接続が断に成ったことを検出した場合に、消去されるか、使用不能にされることを特徴とする請求項１に記載のシステム。
【請求項７】
複写機であって、
前記複写機の制御を実行するためのソフトウェアによって駆動されるコントローラと、
前記複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラとインターフェースするインターフェース部と
を備え、
前記インターフェース部は、ＦＰＧＡを含んで構成され、当該ＦＰＧＡをコンフィグレーションするデータは前記プリンタ・コントローラから当該インターフェース部に送られてくるデータに置換され、当該インターフェース部は、置換されたデータでコンフィグレーションされた後に、前記プリンタ・コントローラから送られた印刷データの処理を実行して、処理したデータを前記複写機に渡すことを特徴とする複写機。
【請求項８】
複写機であって、
前記複写機の制御を実行するためのソフトウェアによって駆動されるコントローラと、
前記複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラとインターフェースするインターフェース部と
を備え、
前記コントローラは、前記プリンタ・コントローラから送られるデータを、前記インターフェース部を介して受信して所定の場所に格納する動作を実行し、その後、少なくとも格納したデータを含むプログラムを実行することにより、前記プリンタ・コントローラから前記インターフェース部に送られた印刷データの処理を実行して、印刷結果を出力する動作を実行することが可能になることを特徴とする複写機。
【請求項９】
電源投入後、前記プリンタ・コントローラから前記インターフェース部に前記データが送られてこない場合、前記プリンタ・コントローラから送られた印刷データの処理を実行して、印刷結果を出力する動作を実行することが可能にならないことを特徴とする請求項７または８に記載の複写機。
【請求項１０】
前記プリンタ・コントローラから送られて格納されたデータは、複写機の電源投入後の初期処理において、あるいは前記プリンタ・コントローラと前記インターフェース部の接続が断に成ったことを検出した場合に、消去されるか、使用不能にされることを特徴とする請求項７または８に記載の複写機。
【請求項１１】
電源部、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信回線を介して外部のホスト・コンピュータからの印刷ジョブを受けるための第一のインターフェース手段、および複写機側のインターフェース部とインターフェースする第二のインターフェース手段、を備え、前記第一のインターフェース手段からのデータを処理して前記第二のインターフェース手段から複写機のインターフェース部に送ることによって前記複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するプリンタ・コントローラであって、
前記複写機内で前記インターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアの少なくとも一部を構成する構成データを格納する格納部
を備え、
前記電源部から前記ＣＰＵに送られた信号に基づいて前記ＣＰＵが実行する電源投入後の初期処理において、前記構成データを前記インターフェース部に出力することを特徴とするプリンタ・コントローラ。
【請求項１２】
前記構成データは前記インターフェース部内のＦＰＧＡのコンフィグレーション・データであり、
前記インターフェース部に前記構成データを出力することは、前記インターフェース部内のＦＰＧＡに書き込むことであることを特徴とする請求項１１に記載のプリンタ・コントローラ。
【請求項１３】
前記構成データは、前記複写機で前記インターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアの少なくとも一部であり、
前記インターフェース部に前記構成データを出力することは、前記インターフェース部を介して前記複写機内のコントローラに送ることであることを特徴とする請求項１１に記載のプリンタ・コントローラ。
【請求項１４】
前記第二のインターフェース手段を介して、前記複写機の前記インターフェース部とアクセスして、前記インターフェース部が非稼働状態から稼働状態に成ったことを検出した場合に、前記構成データを前記インターフェース部に出力することを特徴とする請求項１１に記載のプリンタ・コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複写機を含むシステムに関し、より詳細には、複写機にプリンタ機能あるいはネットワーク・プリンタ機能を実現するためのプリンタ・コントローラ、複写機およびこれらを含むシステムに関する。
【背景技術】
【０００２】
初期の複写機は、スタンドアローンで使用されてきていたが、近年においては、複写機の機能、すなわちスキャナ機能、印刷機能、またはドキュメント・シート・フィーダやソータなどの機能を有効利用した複合機能を有する複写機が多く使用されている。この種の複写機の１つの実施形態として、プリンタ機能、さらにはネットワーク・プリンタ機能を実現するために、複写機とは別構成の、あるいはそれにアダプタ形式で組み込まれる形で、プリンタ・コントローラと称されるものが出現してきている。このようなプリンタ・コントローラを組み込んだ、あるいは接続した複写機のシステムは、当然ながら企業で使用されることを前提に、プリント枚数管理用にユーザ認証や、使用者管理機能、などの機能も付加されている。
【０００３】
この種のプリンタ・コントローラは、本来的に要求される機能から、いわゆるパーソナル・コンピュータなどから出力される印刷用のデータを受け取る、あるいはパーソナル・コンピュータなどの外部機器との間で通信を行うための通信インターフェースを有し、さらに、複写機に対して印刷用データを送るための出力インターフェースを有している。
【０００４】
この種のプリンタ・コントローラは、一般的には、対応する複写機に対して専用の部分を有しているのが普通であり、この専用の部分は、複写機の機能の有効利用および複写機の機能／動作的な制約に関連する部分である。
【０００５】
一方、複写機に求められる要求の多様さに応じるように複写機の各部がユニット化された際、誤ったユニットの装着に伴う障害の発生を防止するために、従来、複写機の制御手段が、装着されたユニットの構成が制御可能なユニット構成であるか否かを判断して、ユーザに対して適切な対応を促したり、画像形成の制御を不能にしたりすることが行われていた（特許文献１参照）。この場合において、装着されたユニットの構成が制御可能なユニット構成であるか否かについては、このユニットと装置本体との間の専用のインターフェースを介して、装置側がユニットのＩＤ（仕様種別を表す）を取り出し、装置側内の記憶内容と照合することで行われていた。
【０００６】
また、複写機等の機器のネットワーク化に伴って、上述と同様な、あるいは類似する処理が、障害の発生防止の目的というよりも、機器の違法な改造防止の観点からも行われている（特許文献２参照）。すなわち、共通のハードウェアであってなお且つソフトウェアを変えると複写スピード等の複写装置の性能を変えることができる構成である場合、それらを構成するソフトウェア或いはユニットを違法に変えると警告を発するか、または装置が動作しないようにすることが行われている。
【０００７】
【特許文献１】特開平６−２３３０２２号公報
【特許文献２】特開２０００−２９３３６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述した従来の方法は、複写機本体の構成ユニットあるいは複写機に取り付けられる、あるいは接続される外部機器のあるいはアダプタに対して、複写機本体によるＩＤの認証のみを行ってその動作を許容するかあるいは動作しあにようにしている。即ち、複写機の構成ユニットあるいは複写機に取り付けられる、あるいは接続される外部機器あるいはアダプタが、正当なものであるか否かを複写機本体側で検出し、検出結果に応じて複写機としての動作をさせるか否かを制御することを目的としている。したがって、機種識別情報のみに依存しているため、セキュリティー的には安全度が低く、たとえば、悪意のユーザが、複写機が正当であると認める外部機器から機種識別情報（ＩＤ）を取得し、その複写機に接続する自作した外部機器に実装して、その複写機に接続して動作させることが可能になってしまう。
【０００９】
一方では、外部に接続される機器によって複写機側での動作を変えることが求められることがある。たとえば、それは、外部機器と複写機間のＩ／Ｆ部のハードウェアの回路構成の変更であったり、また、接続された機器によって複写機側の動作をＦＷ（ファームウェア）で変更するであったりする。このような場合、外部機器の仕様種別を取得することで、複写機側でその仕様種別に応じて複写機の動作仕様を変更することが可能である。しかし、この場合、あらかじめ複写機側にそのための準備を備えていることが必要であり、技術の進歩が激しい現在においては、この事前の準備は、容易ではなく困難なことが多い。通常においては、複写機に追加されるものには、時間的に複写機本体よりも遅れて開発もしくは製造されることが多く、複写機の設計段階で、その後の追加のために事前に準備することは容易ではない。また、事前に準備した場合でも、その一部の更新をすることが必要に成ったり、また事前に準備した以外の機能が必要になったりする場合もある。
【００１０】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、複写機と、当該複写機に付加するあるいは組み込んでプリンタ機能、ネットワーク・プリンタ機能を実現するプリンタ・コントローラとの間の組合せがある条件下にある場合のみ、双方が正常に機能するようにすることにより、結果として複写機によってプリンタ・コントローラが認証されることになると同時に、複写機側のインターフェース部についても接続したプリンタ・コントローラに適応させたものにすることを可能にする複写機システムを提供することを目的とする。
【００１１】
また、本発明の別の面は、複写機と付加される外部機器との間において、従来とは異なる別の形態の認証手段、即ち実質的に認証手段と同等な手段を与える複写機システムを提供することを目的とする。
【００１２】
また、本発明のさらに別な面は、複写機の拡張機能に対する対応設計をより容易にする複写機システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
そのため本発明では、複写機としてその外部機器に対して実質的な認証を行うと同時に、外部の接続機器により複写機側で動作あるいは動作仕様を変えることを実現するために、複写機側の外部機器とのＩ／Ｆ部のＦＰＧＡのコンフィグレーション用のデータを外部機器側に持たせる、また、複写機の外部機器との接続時の動作に関わるＦＷ（ファームウェア）の一部を外部機器に持たせる、ことを行う。その上で、システム起動毎に、外部機器からそのデータ（ＦＰＧＡのコンフィグレーション用データ、もしくは、ＦＷ；構成データと称する）を複写機に送信し、複写機側で収められるべき箇所への書き込みが正常に行われた場合にのみ、外部機器を含む複写機システムが、本来的に求められる動作を正常に実行するといった形態で実現させる。この構成データは、外部機器の機能や動作仕様に合致したものであり、同時に複写機の仕様にも合致したものである。したがって、このような合致していない構成データが、複写機側で収められるべき箇所への書き込みが正常に行われない場合、その外部機器から複写機を制御する動作は全く実行されないか、あるいは正常に行われないことになる。
【００１４】
複写機および、当該複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラ、および当該プリンタ・コントローラとインターフェースする前記複写機に接続されたインターフェース部を含む本発明のシステムでは、プリンタ・コントローラは、通信回線を介して外部のホスト・コンピュータからの印刷ジョブを受けるための第一のインターフェース手段と、複写機に接続されたインターフェース部とインターフェースする第二のインターフェース手段を備えると共に、複写機内のインターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアを構成する構成データの少なくとも一部を格納する格納部を備えると共に、当該格納部に格納している構成データを、前記第二のインターフェース手段を介して、前記インターフェース部に送り、複写機および当該複写機に接続された前記インターフェース部は、プリンタ・コントローラから第二のインターフェース手段を介して送られた構成データを受けて、所定の格納場所に格納し、その後に始めて、プリンタ・コントローラからの印刷用のデータを前記インターフェース部が受け付けてこれを複写機に渡して複写機が印刷結果を出力する動作を実行することが可能になることを特徴とするものである。
【００１５】
また、このシステムにおいて、インターフェース部はＦＰＧＡを含んで構成され、プリンタ・コントローラに格納されている構成データは、ＦＰＧＡをコンフィグレーションするデータであり、所定の格納場所は前記ＦＰＧＡ内のＲＡＭであることを特徴とするものである。
【００１６】
また、このシステムにおいて、所定の格納場所は、複写機のプログラムが格納されている場所であり、構成データは、複写機内のコントローラ部のプログラムあるいはファームウェアであって、インターフェース部との間のデータ送受を実行するためのコンピュータ可読命令を含むことを特徴とするものである。
【００１７】
また、このシステムにおいて、プリンタ・コントローラは、プリンタ・コントローラに格納されている前記構成データを、プリンタ・コントローラの電源投入後、あるいは複写機が電源投入されたことを検出して、前記インターフェース部に送ることを特徴とするものである。
【００１８】
また、このシステムにおいて、プリンタ・コントローラ内に格納されている構成データがプリンタ・コントローラによって送られた際に、複写機および当該複写機に接続されたインターフェース部内の対応する構成データが書き替えられることを特徴とするものである。
【００１９】
また、このシステムにおいて、前記所定の場所に格納されたデータは、複写機の電源投入後の初期処理において、あるいは前記プリンタ・コントローラと前記インターフェース部の接続が断に成ったことを検出した場合に、消去されるか、使用不能にされることを特徴とするものである。
【００２０】
本発明の複写機は、複写機の制御を実行するためのソフトウェアによって駆動されるコントローラと、複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラとインターフェースするインターフェース部とを備え、インターフェース部は、ＦＰＧＡを含んで構成され、当該ＦＰＧＡをコンフィグレーションするデータはプリンタ・コントローラから当該インターフェース部に送られてくるデータに置換され、当該インターフェース部は、置換されたデータでコンフィグレーションされた後に、前記プリンタ・コントローラから送られた印刷データの処理を実行して、処理したデータを前記複写機に渡すことを特徴とするものである。
【００２１】
本発明の複写機は、複写機の制御を実行するためのソフトウェアによって駆動されるコントローラと、複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加するためのプリンタ・コントローラとインターフェースするインターフェース部とを備え、コントローラは、プリンタ・コントローラから送られるデータを、インターフェース部を介して受信して所定の場所に格納する動作を実行し、その後、少なくとも格納したデータを含むプログラムを実行することにより、プリンタ・コントローラからインターフェース部に送られた印刷データの処理を実行して、印刷結果を出力する動作を実行することが可能になることを特徴とするものである。
【００２２】
また、本発明の複写機は、電源投入後、プリンタ・コントローラからインターフェース部にデータが送られてこない場合、プリンタ・コントローラから送られた印刷データの処理を実行して、印刷結果を出力する動作を実行することが可能にならないことを特徴とするものである。
【００２３】
また、本発明の複写機において、前記プリンタ・コントローラから送られて格納されたデータは、複写機の電源投入後の初期処理において、あるいは前記プリンタ・コントローラと前記インターフェース部の接続が断に成ったことを検出した場合に、消去されるか、使用不能にされることを特徴とするものである。
【００２４】
電源部、ＣＰＵ、ＲＯＭ、ＲＡＭ、通信回線を介して外部のホスト・コンピュータからの印刷ジョブを受けるための第一のインターフェース手段、および複写機側のインターフェース部とインターフェースする第二のインターフェース手段、を備え、前記第一のインターフェース手段からのデータを処理して前記第二のインターフェース手段から複写機のインターフェース部に送ることによって前記複写機にプリンタ機能あるいはネットワーク・プリンタ機能を追加する本発明のプリンタ・コントローラは、複写機内でインターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアの少なくとも一部を構成する構成データを格納する格納部を備え、電源部からＣＰＵに送られた信号に基づいてＣＰＵが実行する電源投入後の初期処理において、構成データを前記インターフェース部に出力することを特徴とするものである。
【００２５】
また、この構成データは前記インターフェース部内のＦＰＧＡのコンフィグレーション・データであり、インターフェース部に構成データを出力することは、インターフェース部内のＦＰＧＡに書き込むことであることを特徴とするものである。
【００２６】
また、構成データは、複写機でインターフェース部を含む制御に使用されるソフトウェアあるいはファームウェアの少なくとも一部であり、インターフェース部に構成データを出力することは、インターフェース部を介して複写機内のコントローラに送ることであることを特徴とするものである。
【００２７】
また、第二のインターフェース手段を介して、複写機のインターフェース部とアクセスして、前記インターフェース部が非稼働状態から稼働状態に成ったことを検出した場合に、構成データをインターフェース部に出力することを特徴とするものである。
【発明の効果】
【００２８】
本発明によれば、複写機と、当該複写機に付加されるプリンタ・コントローラとの間の（実質的な）認証を従来よりも複雑にすることが可能になり、不正なプリンタ・コントローラの製造および使用を、従来よりも困難にすることが、すなわち防止する上でより効果的なものとすることができる。すなわち、複写機側の機能あるいはその動作に係わる情報あるいはソフトウェアあるいはファームウェアを、プリンタ・コントローラ側が持つことになるため、プリンタ・コントローラの海賊版の作る際に、それらも情報も必要になり、またＦＰＧＡデータを転送する仕組みやそれを出力する仕組みが必要となり、その不正行為の実施をより難しくするので、結果として不正な製造の防止につながる。また、同じハードウェア構成に対して異なるソフトウェアを実装することによって仕様を異ならせて価格の異なったプリンタ・コントローラを作成する場合、最廉価プリンタ・コントローラのハイエンド・プリンタ・コントローラへの不正改造の防止をより効果的にすることが可能になる。
【００２９】
また、複写機側のプリンタ・コントローラに対するインターフェース部（インターフェース・ボード、あるいはビデオＩ／Ｆボードとも言う）にＦＰＧＡを備えることで、拡張性を持たせることが可能になると同時に、この拡張性そのものを複写機の設計時に組み込む必要性をなくし、その後の必要性が生じた時点で設計することも可能になる。
【００３０】
また、プリンタ・コントローラによって、複写機側のプリンタ・コントローラに対するインターフェース部内部のＦＰＧＡの回路構成を変えることが可能となり、各プリンタ・コントローラに適した、あるいは各プリンタ・コントローラの機能等に合わせたＦＰＧＡ回路構成を取ることが可能となり、別な始点では、各プリンタ・コントローラのバージョンに合わせて異なる動作仕様とすることができる。
【発明を実施するための最良の形態】
【００３１】
（第１の実施形態）
本実施形態は、本発明を複写機と、その複写機をプリンタとして使用するためのプリンタ・コントローラに適応した例であり、図１は、プリンタ・コントローラに接続される複写機側のインターフェース・ボード内のＦＰＧＡのコンフィグレーション・データを、実質的な認証データとする、第１の実施形態を説明する図である。
【００３２】
図中、符号１０１はネットワーク上に接続されたホスト・コンピュータ１、符号１０２は別のホスト・コンピュータ２、符号１０３はホスト・コンピュータ（１０１等）が接続されるＬＡＮ、符号１０４はホスト・コンピュータ（１０１，１０２等）から印刷ジョブを受取り、描画処理（ラスタライズ）を行うプリンタ・コントローラ、符号１０５はプリンタ・コントローラ１０３と複写機１０７間でコマンドの送受信を行うＥｔｈｅｒｎｅｔ（登録商標）Ｉ／Ｆライン、符号１０６はプリンタ・コントローラ１０３から複写機１０７にビデオ・データを転送するための高速Ｉ／ＦであるＣｈａｎｎｅｌＬｉｎｋ等で実現したビデオＩ／Ｆライン、符号１０７はプリンタ・コントローラ１０４がラスタライズした画像データを紙に印刷する複写機、符号１０８はプリンタ・コントローラの中心となるメイン・ボード、符号１０９はメイン・ボード１０９上のＣＰＵ、符号１１０はＣＰＵ１０９が使うＲＡＭ、符号１１１はＣＰＵ１０９のプログラム等が格納されているＲＯＭ、符号１１２はメイン・ボード上のシステム・バス、符号１１３はビデオＩ／Ｆへデータを送出するＩ／Ｆデバイス、符号１１４は複写機１０７に装着するＩ／Ｆボード１１５内のＦＰＧＡ１１７用の回路データを格納するＦＰＧＡ・ＲＯＭ、符号１１５は複写機１０７のビデオＩ／Ｆが接続されるＩ／Ｆボード、符号１１６はＩ／Ｆボードが画像データを受けるＩ／Ｆデバイス、符号１１７はビデオＩ／Ｆボード１１５上のＦＰＧＡである。
【００３３】
ここで、一般的なＦＰＧＡ（field programmable gate array）について、簡単に説明する。ＦＰＧＡは、ＰＬＤ（programmable logic array）とも呼ばれ、現在、この種のＩＣの代表的な特性として、ＳＲＡＭ方式、ＥＥＰＲＯＭ方式、アンチヒューズ方式がある。ＳＲＡＭ方式は、ＭＯＳトランジスタのＯＮ／ＯＦＦをそれに結合したＳＲＡＭセルの記憶内容で行う方式であり、揮発性、消去／再書き込み可能の特徴を有する。ＥＥＰＲＯＭ方式は、不揮発性で、消去／再書き込み可能の特徴を有する。アンチヒューズ方式は、プログラム前が非導通でプログラム後が導通となる、以前のヒューズ方式と逆の特性のスイッチで構成され、不揮発性で、消去／再書き込みが不可能の特徴を有する。
【００３４】
本発明に使用するＦＰＧＡとしては、アンチヒューズ方式以外の方式のものが使用可能であるが、ここでは、上述したビデオＩ／Ｆボード１１５上のＦＰＧＡは、ＳＲＡＭ方式のＦＰＧＡであるとして説明する。
【００３５】
ＳＲＡＭ方式のＦＰＧＡ（ＰＬＤ）は、いわゆるＳＲＡＭがベースに成っており、そのため、電源投入後はＳＲＡＭの中身は定まらないので、電源投入後に所定の動作をさせるためには回路情報を書き込む必要があり、この書き込み処理は、通常、コンフィグレーションと呼ばれる。この方式のＦＰＧＡの代表的なものに、米国のＡｌｔｅｒａ社のＣｙｃｌｏｎｅ／Ｃｙｃｒｏｎｅ  ＩＩがあり、このタイプのＦＰＧＡ（ＰＬＤ）のコンフィグレーションは、ＩＥＥＥ１１４９．１ＪＴＡＧに準拠した４線インターフェースやパッシブ・シリアル（ＰＳ）方式を使用することが可能であり、そのための信号をダイレクトに入力するための端子をＦＰＧＡが備えている。また、米国Ｘｉｌｉｎｘ社のＦＰＧＡには、コンフィグレーション・デバイスと呼ばれる、シリアル・コンフィグレーションを行うためのＩＣが準備されている。また、これを使用せずに、外部のメモリから、ＣＰＵなどを使用して書き込むことも可能である。
【００３６】
通常、ＳＲＡＭ方式のＦＰＧＡは基板に実装された状態で、ＦＰＧＡをプログラミングすることが可能であり、この方法は、一般にＩＳＰ（in system programming）と呼ばれている。
【００３７】
まず、図１の構成における印刷動作、すなわち複写機１０７をプリンタとして動作させる場合について説明する。たとえば、ホスト・コンピュータ１  １０１から印刷を行う際、ホスト・コンピュータ１  １０１からＬＡＮ１０３経由で印刷ジョブがプリンタ・コントローラ１０４に送られる。その際、印刷ジョブはＰＤＬ（印刷用言語）の形態である（ただし、ビットマップ・イメージで転送される場合もある）。印刷ジョブを受けたプリンタ・コントローラ１０４はそれを元に描画処理を行いビットマップ・イメージに展開し、それをビデオＩ／Ｆ１０６ライン経由で複写機１０７に転送する。最後に、複写機１０７はビデオＩ／Ｆ１０６ライン経由で受信した画像データを印刷し、ユーザは印刷結果を得ることができる。
【００３８】
この場合、上述のビデオＩ／Ｆボード１１５内部で、プリンタ・コントローラ１０４から送られたビットマップ・イメージのデータは、Ｉ／Ｆ  Ｄｅｖｉｃｅ１１６で受け、ＦＰＧＡ１１７に送られる。ここで、バッファリング等の処理が行われ複写機内部に送出される。このＦＰＧＡ１１７は、上述したようにＳＲＡＭ方式であり、電源ＯＦＦ時にはその中身が失われるため、電源起動毎に回路構成データを外部からダウンロードする必要がある。一般的には、ＳＲＡＭ方式のＦＰＧＡへのダウンロードはＦＰＧＡの近くに専用のＲＯＭを用意し、起動時にそこからダウンロードするか、機器内のＣＰＵのＩＯポートからＦＰＧＡへデータを書き込む（この場合はＣＰＵ用のＲＯＭにＦＰＧＡのダウンロード・データを格納する形態が普通）ことが行われる。
【００３９】
本実施例では、ＦＰＧＡ１１７が装着されている機器（ここでは複写機１０７、詳細にはビデオＩ／Ｆボード１１５）内にはＦＰＧＡ１１７用のデータは持たず、通常、複写機とは別の機器として扱われるプリンタ・コントローラ１０４内に、複写機のＩ／Ｆボード用ＦＰＧＡのコンフィグレーション用のデータを持つことを特徴とする。なお、図１では、理解されやすいように、ＦＰＧＡＲＯＭ１１４が、実際にコンフィグレーション用データが格納される箇所として示しているが、ＲＯＭ１１１内に格納することも可能である。すなわち、複写機側の、プリンタ・コントローラとのインターフェース部であるＩ／Ｆボード１１５内のＦＰＧＡ用のデータを、プリンタ・コントローラ内に格納している。さらに、プリンタ・コントローラ内に格納しているＩ／Ｆボード１１５内のＦＰＧＡ用のデータは、このプリンタ・コントローラの機能に対応するようにＩ／Ｆボード１１５を構成するデータである。
【００４０】
たとえば、同じハードで３種のプリンタ・コントローラを製造する場合、種類毎に、対応するインターフェース・ボードの動作仕様、すなわち、ＦＰＧＡの仕様を変えることができる。たとえば、ある種のプリンタ・コントローラで、ビットマップデータのビット反転を行って、インターフェース・ボードに送り、対応するインターフェース・ボード内のＦＰＧＡがビット反転を行って、正常なビット表現に戻すこともできる。また、ビット番号の変更し、それを正常に戻すなどの処理を行うこともできる。また、ＦＰＧＡから複写機内のコントローラに対して出力するある種のステータス情報を変更することも考えられる。
【００４１】
図１に示す構成の場合、ＦＰＧＡ１１７へのデータの書き込み方法としては、１）Ｅｔｈｅｒｎｅｔ（登録商標）１０５経由でＦＰＧＡＲＯＭ１１４内のデータを複写機１０７に転送し、複写機内のＣＰＵがＦＰＧＡ１１７に書き込む方法、または、２）ビデオＩ／ＦがＣｈａｎｎｅｌＬｉｎｋのようなデバイスである場合、コントローラのメイン・ボード１０８上のＣＰＵがＦＰＧＡＲＯＭ１１４内のデータを読出し、Ｉ／Ｆ  Ｄｅｖｉｃｅ１１３から送出し、ＦＰＧＡ１１７に直接（データ変換や、バッファリングなどをせずに）書き込む方法、がある。
【００４２】
前者の方法の場合、複写機側のＣＰＵが関与することになるため、たとえば、ＦＰＧＡＲＯＭ１１４内のデータと、実際にコンフィグレーションに使用するデータとの関係を色々と事前に取り決めることができる。たとえば、複写機との間であらかじめ取り決めた複数の符号化の１つを、複写機との間の対話を介して決定し、決定した符号化を使用して、コンフィグレーション・データを符号化して、送ることもできる。この場合、プリンタ・コントローラ内のプログラムやデータのコードが、悪意のあるユーザに全て知られた場合でも、全く同等のコードを使用する場合を別して、仕様を異ならせて且つ正常に動作させるには、そのユーザに知られたプログラムやデータのコードをそのユーザが完全に解析することが必要になり、少なくとも、仕様が異なったプリンタ・コントローララの不正な製造を一層困難にさせることになる。一方、後者の場合、送られるデータそのものが、ＦＰＧＡのコンフィグレーションに使用されることになり、暗号化などをすることができず、したがって、ＦＰＧＡＲＯＭ１１４内にはコンフィグレーション用のデータがコンフィグレーション用の表現で格納されることになる。この場合であっても、仕様を変える場合には、コンフィグレーション用のデータを解析しなければ成らず、このことは、単にＩＤコードだけが一致すれば良いとする従来の場合よりも、不正な製造を一層困難にさせることになる。たとえば、複写機のスピードが、ＦＰＧＡから出力されるデータに依存する形態の場合、ＦＰＧＡのコンフィグレーション・データを変更することでスピードの変更が実現するが、どのように変更すれば良いかについては、変更まえのＦＰＧＡのコンフィグレーション・データを解析するだけでは、解決されないからである。
【００４３】
本実施例においては、上述した方法の一つを使用して、プリンタ・コントローラの電源投入時に、あるいは複写機１０７の電源投入をＥｔｈｅｒｎｅｔ（登録商標）１０５経由で検出した際に、ＦＰＧＡ１１７へのデータ書き込みを行う。当然ながら、この書き込みは、プリンタ・コントローラと複写機の電源が投入されていることが前提になる。ＦＰＧＡ１１７へのデータ書き込みが終了した後、プリンタ・コントローラはビデオＩ／Ｆライン経由での複写機１０７、正確には複写機のＩ／Ｆボード１１５への画像ゲータの転送が可能となる。
【００４４】
ここで、プリンタ・コントローラからＩ／Ｆボード１１５のＦＰＧＡ１１７へのデータ書き込みが正常に行われない場合、たとえば、プリンタ・コントローラがＦＰＧＡ１１７のデータも持たない場合、ＦＰＧＡ１１７は全く機能しないことになり、そのプリンタ・コントローラ１０４が画像データをビデオＩ／Ｆライン経由でＩ／Ｆボード１１５に転送してきても、ＦＰＧＡ１１７から先には、そのデータは伝わらないため、複写機側でそのデータの印刷は行えないことになる。
【００４５】
ＦＰＧＡ１１７が機能しない場合、あるいは正常に機能しない場合は、色々な場合がある。たとえば、ＦＰＧＡ１１７に対してコンフィグレーションが行われない場合である。この場合は、上述したように、（１）プリンタ・コントローラがＦＰＧＡ１１７のデータも持たない場合、（２）プリンタ・コントローラはＦＰＧＡ１１７のデータを有しているが、ＦＰＧＡ１１７にデータを送らない場合、の２つの場合がある。また、ＦＰＧＡ１１７に対してコンフィグレーションが行われた場合であっても、（３）プリンタ・コントローラはＦＰＧＡ１１７用のデータを有しているが、そのプリンタ・コントローラに対応したＦＰＧＡのデータでない場合、（４）プリンタ・コントローラは、このプリンタ・コントローラに対応したＦＰＧＡ１１７用のデータを有しているが、ＦＰＧＡ１１７を正しいデータ形式でコンフィグレーションをしなかった場合、が考えられる。（１）および（２）の場合は全く機能せず、（３）の場合は、ある種の機能を実行するが、印刷動作をしないか、あるいは印刷結果が得られても所望の印刷結果を得られない可能性がある。
【００４６】
プリンタ・コントローラがＦＰＧＡ１１７用データを有していても、そのデータそのものが、そのプリンタ・コントローラのＩ／Ｆボード１１５としての機能に合致しない場合、複写機側の動作として正常な動作をせず、あるいは複写機側で印刷動作が行われた場合であってもその印刷結果は、正常に機能した場合と異なる結果が得られることになる。このような状況は、たとえば、同じハードウェアで、３種類の仕様のプリンタ・コントローラを製造する場合、それぞれのプリンタ・コントローラに専用のＩ／Ｆボード仕様を必要とするように設形した場合で、プリンタ・コントローラの仕様とその内部の格納されているＦＰＧＡＲＯＭの内容とに整合性がない場合に、生ずることになる。
【００４７】
ここで、上述したＦＰＧＡ１１７へのコンフィグレーション・データの書き込み手順を説明する。図６は、前述したＥｔｈｅｒｎｅｔ（登録商標）１０５経由でＦＰＧＡＲＯＭ１１４内のデータを複写機１０７に転送し、複写機内のＣＰＵがＦＰＧＡ１１７に書き込む方法を示す。この処理は、通常、システムの電源が立ち上がった直後に開始される。または、複写機の電源が投入されたことを検出して、開始される。まず、ＣＰＵ１０９がＦＰＧＡＲＯＭ１１４の内容をリードする（Ｓ６１）。このリード後に、任意選択で、読み取ったデータをあらかじめ定めた方法（復号化が簡単で、処理速度に余り影響を与えない方法）で符号化することもできる。あるいは、ＥｈｔｅｒｎｅｔＩ／Ｆ１０５を介して複写機と対話して、符号化方法を決定することもできる。次に、ＥｈｔｅｒｎｅｔＩ／Ｆ１０５経由でプリンタ・コントローラ１０４から複写機１０７に、読み取ったデータ（あるいは符号化されたデータ）を転送する（Ｓ６２）。複写機側は、送られたデータを受信し、符号化されている場合は、復号したり、あるいはＦＰＧＡへのコンフィグレーション・データとして並べ替えたりする処理を行う。その後、転送されたデータ、あるいは復号などの処理されたデータを、ＩＳＰ（in system programming）で、複写機１０７内のＣＰＵがＦＰＧＡ１１７へ書き込む（Ｓ６３）。この書き込みが完了すると、ＦＰＧＡに必要な回路が構成されることになる。
【００４８】
図７は、Ｉ／Ｆ  Ｄｅｖｉｃｅ１１３を介して、ＦＰＧＡ１１７に直接（データ変換や、バッファリングなどをせずに）書き込む方法を示す。この方法の場合、図６における方法と同じように、システムの電源が立ち上がった直後に開始される。または、複写機の電源が投入されたことを検出して、開始される。まずＣＰＵ１０９がＦＰＧＡＲＯＭ１１４の内容をリードする（Ｓ７１）。次に、リードしたデータをＣｈａｎｎｅｌＬｉｎｋ経由で複写機１０７内のＦＰＧＡ１１７へ直接書き込むことにより（Ｓ７２）、ＦＰＧＡは必要な回路を構成することが可能となる。この場合、この書き込みは、ＩＳＰ（in system programming）で、シリアル・データの形で、ＦＰＧＡに送られることになる。なお、この動作は、当然ながら、プリンタ・コントローラの電源投入後に行われる。しかし、プリンタ・コントローラと複写機の電源投入が同時に行われない場合もあり、プリンタ・コントローラは常時電源が投入され、複写機の電源入切がユーザによって行われる場合もある。このような場合は、複写機が、電源投入後の初期処理において、プリンタ・コントローラに対してデータ送信の要求をするか、あるいはＦＰＧＡのコンフィグレーションが必要なことを知らせる。プリンタ・コントローラは、データ送信の要求を受けて、あるいは印刷データを受けた際や複写機に印刷データを送るに先だって、複写機側の状態をチェックして、コンフィグレーションが必要な場合には、データ送信をすることになる。
【００４９】
一方、Ｉ／Ｆ  Ｄｅｖｉｃｅ１１３を介して、Ｉ／Ｆボード１１５に送られたデータを、複写機内のコントローラ（図示せず）が受信して、このコントローラが、ＦＰＧＡ１１７にＩＳＰで書き込むこともできる。この場合、コントローラが関与することにより、送られたデータに対して操作することが可能になる。すなわち、プリンタ・コントローラ１０４が、ダイレクトにＦＰＧＡ１１７に対してＩＳＰで書き込む場合は、少なくともプリンタ・コントローラから転送されるデータは、ＩＳＰの場合に要求される手順に従うことが要求されるが、複写機内のコントローラが関与する場合は、その限りではない。この方法の場合、プリンタ・コントローラと複写機のコントローラは、あらかじめ決められた手順に従ってデータの送受、ＦＰＧＡ１１７への書き込みを実行することになる。このあらかじめ決めた手順として、たとえば、プリンタ・コントローラ１０４とＩ／Ｆボード１１５の間のデータの送受を符号化（暗号化）したり、順序を変更したり、ビット配分を変更したり、あるいは、ＦＰＧＡ１１７に書き込むデータを複写機のコントローラ内部に格納したデータと組み合わせしたりすることができる。プリンタ・コントローラ１０４とＩ／Ｆボード１１５の間のデータの送受を符号化（暗号化）した場合、ＦＰＧＡＲＯＭ１１４内に格納するデータそのものを暗号化することが可能になり、たとえ、ＦＰＧＡＲＯＭ１１４内のデータが悪意のあるユーザに対して明らかに成ったとしても、暗号されているので解読されない限り、ＦＰＧＡのコンフィグレーション・データを秘密に保つことができる。このことは、ＦＰＧＡのコンフィグレーション用データを悪意のあるユーザが編集することを不可能にすることを意味する。
【００５０】
ＦＰＧＡのコンフィグレーション・データ書き込みに複写機内のコントローラが関与する場合、たとえば、このコントローラは、複写機の電源投入後において、ＦＰＧＡ１１７のコンフィグレーションを実行する役目を負う。具体的には、Ｉ／Ｆボード１１５が存在する場合、プリンタ・コントローラからのデータの受信を監視し、あるいはプリンタ・コントローラと対話してデータ送信を要求したり、コンフィグレーションが必要なことをステータス情報として知らせたりすることになる。
【００５１】
なお、ＦＰＧＡのコンフィグレーションに対しての複写機のコントローラの関与如何に係わらず、Ｉ／Ｆボード１１５とプリンタ・コントローラ１０４との間の接続が断に成ったことを検出した場合、ＦＰＧＡのＲＡＭ内に格納されたコンフィグレーション・データは、複写機のコントローラによって消去される。このように消去することによって、正しいプリンタ・コントローラを接続した後に、海賊版のプリンタ・コントローラを接続したとしても、その前のデータが消去されているので、海賊版のプリンタ・コントローラの仕様と、そこから送られるデータが合致していない限り、海賊版のプリンタ・コントローラを使用したシステムは正常に動作しないことが保証される。
【００５２】
ここで、ＦＰＧＡ１１７上に構成する具体的な機能の一実施例を、図３を使って説明する。図３において、符号３１はＦＰＧＡそのものを示し、符号３２〜３５は、コンフィグレーション・データによって形成された機能ブロックを示している。符号３２はデータのＦＩＦＯへの書き込み制御を行う制御回路、符号３３は受信したデータをバッファするＦＩＦＯ、符号３４はＦＰＧＡの後段で必要となるデータの制御信号ＶＳＹＮＣ’、ＬＳＹＮＣ’、ＶＬＤ’を生成する同期信号生成回路、符号３５はＦＩＦＯ３３の読出しクロックとＦＰＧＡ３１の後段回路のビデオ信号取り込みクロックを兼ねる６６ＭＨｚクロックを発生する６６ＭＨｚ発振器である。ＦＰＧＡ３１の中心的な機能ブロックはＦＩＦＯ３３であり、画像データ（ＴＡＧ（２：０）、Ｃ（７：０）、Ｍ（７：０）、Ｙ（７：０）、Ｋ（７：０））の書き込み／読出しを行うこと、つまり画像データのバッファリングがこの回路の主な機能となる。
【００５３】
まず、書き込み側の動作について説明する。ＦＩＦＯ３３への書き込みタイミングの制御は、ＶＳＹＮＣ、ＨＳＹＮＣ、ＶＬＤ（各々画像の垂直同期信号、水平同期信号、データ有効を示す信号）の状態によって行う。実際の信号としては図４（ａ）に示すように、これらの信号は全てＨｉｇｈ−Ａｃｔｉｖｅな信号で、まずＶＳＹＮＣがアサートされ、次にＬＳＹＮＣが最初のラインのデータ転送のためにＡｃｔｉｖｅになる。その状態でＶＬＤ信号がアサートされると「データの有効性」部が示すようにデータがＶａｌｉｄとなり、その期間にＦＩＦＯへの書き込みが行われる。また、ＷＣＬＫをライト・クロックとしてＦＩＦＯ３３へのデータ書き込みが行われる。一方、出力側の動作について、ＦＩＦＯ３３に書き込まれた画像データはＲＣＬＫのタイミングで読み出されＴＡＧ’（２：０）、Ｃ’（７：０）、Ｍ’（７：０）、Ｙ’（７：０）、Ｋ’（７：０）信号として出力される。また、次段の回路への制御信号としてＶＳＹＮＣ‘、ＨＳＹＮＣ’、ＶＬＤ‘が同期信号生成回路で生成される。
【００５４】
以上は、ＶＳＹＮＣ、ＨＳＹＮＣ、ＶＬＤが正論理で動作する形態（図４（ａ））であるが、プリンタ・コントローラ１０４によっては、図４（ｂ）に示すような負論理信号で制御したい場合もある。その場合、ＦＰＧＡ３１の回路構成が異なるため、ＦＰＧＡ  ＲＯＭ１１４のデータも異なることになる。そのため、正論理のＩ／Ｆを持ったプリンタ・コントローラ１０４は正論理でＦＰＧＡ３１が動作するＦＰＧＡＲＯＭデータを正しくプリンタ・コントローラ１０４からエンジンへ転送する必要があり、一方、負論理のＩ／Ｆを持ったプリンタ・コントローラ１０４時のＦＰＧＡＲＯＭ１１４は負論理の回路のデータを持つ必要がある。機能に即したデータをＦＰＧＡＲＯＭ１１４に持たない限り、正しい印刷動作は行われない。
【００５５】
以上のように基本的な機能そのものは全く同一でも、論理回路の正負を逆にすることで、回路の一部として機能するＦＰＧＡを正常に動作させたり、正常に動作させなかったりすることができる。
【００５６】
また、ＦＰＧＡの別の実施例では、(1)ＴＡＧ（２：０）、Ｃ（７：０）、Ｍ（７：０）、Ｙ（７：０）、Ｋ（７：０）といった信号の論理を、正論理としたり、または負論理としたりすることが考えられる。または、(2)ＴＡＧ（２：０）をサポートしないプリンタ・コントローラ１０４としたり、または、ＴＡＧ（２：０）機能を接続先によって使わせないようにしたりする場合も考えられる。その場合、出力側のＴＡＧ（２：０）は、コンフィグレーション・データで固定することになる。これらの場合においても、ＦＰＧＡで構成する回路が異なることになるため、ＦＰＧＡＲＯＭ１１４の内容も自ずと違うものになる。
【００５７】
また、別の実施例では、モノクロ印刷時の高速化の手段として、図５のような回路構成とすることもできる。図５において、符号５１はＦＩＦＯ、符号５２はＹ・Ｋデータの切替え器である。この回路の目的は、ＷＣＬＫがＲＣＬＫに対し遅いために転送速度が低下することを防ぐために、ＦＩＦＯ５１の信号ラインに、Ｋ入力のみでなく、Ｙ入力にもモノクロ・データを載せて、出力側で読み出したＹ出力とＫ出力を交互に切替えて、Ｋ出力のラインに載せることにある。こうすることにより、モノクロ・データとして実質、倍の５０ＭＨｚ（２５ＭＨｚｘ２）の転送レートで後段の回路にデータ転送可能となる。このような回路もＦＰＧＡ内に構成可能であり、ＦＰＧＡＲＯＭ１１４の内容を変えて対応することが可能である。
【００５８】
上述した正論理／負論理、および転送レートに係わる構成以外にも色々な動作仕様とすることが可能であり、これらを単独であるいは組み合わせて使用することで複写機側のビデオＩ／Ｆの動作仕様を色々に変更することができ、これらをプリンタ・コントローラの動作仕様や複写機本体との間の仕様に合わせることが可能になる。要するに、プリンタ・コントローラのバージョン等に対応させて、ビデオＩ／Ｆの構成を異ならせることができる。このことは、ＦＰＧＡを有するビデオＩ／Ｆにプリンタ・コントローラを接続して、複写機にプリンタ機能、あるいはネットワーク・プリンタの機能を付加することを可能とするかあるいは不可能とするかに付いては、ＦＰＧＡにそのプリンタ・コントローラのバージョンに適応するコンフィグレーション・データを書き込むことが可能か否かと言うことと同じになる。この視点では、ＦＰＧＡ用のコンフィグレーション・データが、プリンタ・コントローラからの複写機に対するいわゆる認証用のデータとして使用されていることになる。
【００５９】
本実施例では、ＦＰＧＡデータの格納先として、専用のＲＯＭを用意する形態で説明したが、もちろん、プリンタ・コントローラ内のＣＰＵのプログラム格納用ＲＯＭ内に収められていてもよい。
【００６０】
本実施例で、ＦＰＧＡデータ格納を専用ＲＯＭで行っている理由は、たとえば、３ｒｄＰａｒｔｙ製のプリンタ・コントローラを作る際、ＲＯＭをある程度特別なものを選び複製防止をし、複写機の会社からＲＯＭを供給するような形態を取ると、海賊版プリンタ・コントローラ防止になるためである。
【００６１】
本実施例により、同じハードウェアで価格の異なったプリンタ・コントローラを作成する場合、各プリンタ・コントローラ用のＦＰＧＡデータを変えることにより、たとえば、最廉価のプリンタ・コントローラを、ハイエンドのプリンタ・コントローラに不正改造するためには、ＦＰＧＡＲＯＭが実質的に認証手段としていることからＦＰＧＡＲＯＭのコピー品の作成が必要となる。そのため、単なるＦＷだけの書換えでは改造はできず、したがって、不正行為の防止に役立つことになる。
【００６２】
本実施形態を適応することによって同じハードウェアで価格の異なったプリンタ・コントローラを作成している場合、悪意のあるユーザが、最廉価プリンタ・コントローラをハイエンド・プリンタ・コントローラに不正に改造することを困難にし、その防止効果を向上させることができる。
【００６３】
本実施形態によれば、ビデオＩ／Ｆの回路情報を外部機器が持つことになるため、プリンタ・コントローラの海賊版の作る際に、ＦＰＧＡデータを転送する仕組みも必要となり、その不正行為実施がよりいっそう難しくするので、それを防止する効果を有する。
【００６４】
本実施形態によれば、プリンタ・コントローラによって、ＦＰＧＡの回路構成を変えることが可能となり、各プリンタ・コントローラに適したＦＰＧＡ回路構成を取ることが可能となる。
【００６５】
最後に、プリンタ・コントローラは、上述したように、複写機側にＦＰＧＡのコンフィグレーション用のデータを送り、このデータによってＩ／Ｆボード内のＦＰＧＡが構成された時点を見込むことにより、あるいはそのことを複写機と対話することによって検知した後に、いわゆるプリンタ・コントローラとして機能することになる。具体的には、ホスト・コンピュータからの印刷ジョブを受けて処理し、複写機に送ることが可能になる。
【００６６】
（第２の実施形態）
実施形態１においては、実質的な認証手段をＦＰＧＡデータとしていたが、本実施形態では、複写機のプログラムの一部とするものである。図２は、本実施形態を説明する図である。
【００６７】
図中符号２０１はネットワーク上に接続されたホスト・コンピュータ１、符号２０２は別のホスト・コンピュータ２、符号２０３はホスト・コンピュータ１  ２０１等が接続されるＬＡＮ、符号２０４はホスト・コンピュータ（２０１，２０２等）から印刷ジョブを受取り、描画処理（ラスタライズ）を行うプリンタ・コントローラ、符号２０５はプリンタ・コントローラ２０４と複写機２０７間でコマンドの送受信を行うＥｔｈｅｒｎｅｔ（登録商標）Ｉ／Ｆライン、符号２０６はプリンタ・コントローラ２０３から複写機２０７にビデオ・データを転送するための高速Ｉ／ＦであるＣｈａｎｎｅｌＬｉｎｋ等で実現したビデオＩ／Ｆライン、符号２０７はプリンタ・コントローラ２０３がラスタライズした画像データを紙に印刷する複写機、符号２０８はプリンタ・コントローラの中心となるメイン・ボード、符号２０９はメイン・ボード２０９上のＣＰＵ、符号２１０はＣＰＵ２０９が使うＲＡＭ、符号２１１はＣＰＵのプログラム等が格納されているＲＯＭ、符号２１２はメイン・ボード上のシステム・バス、符号２１３はビデオＩ／Ｆへデータを送出するＩ／Ｆデバイス、符号２１４は複写機２０７用のプログラムを格納するＰｒｏｇｒａｍＲＯＭ、符号２１５は複写機２０７のビデオＩ／Ｆが接続されるＩ／Ｆボード、符号２１６はＩ／Ｆボードが画像データを受けるＩ／Ｆデバイス、符号２１７はビデオＩ／Ｆボード上のＦＰＧＡ、符号２１８は複写機コントローラ・ボード、符号２１９は複写機コントローラ・ボード２１８のＣＰＵ、符号２２０は複写機コントローラ・ボード２１８のＲＡＭ、符号２２１は複写機コントローラ・ボード２１８のＨＤＤである。
【００６８】
なお、本実施形態における符号２１４のプログラムＲＯＭ内に格納するプログラムは、複写機コントローラ・ボードと符号２１５のＩ／Ｆボードとの間のインターフェースに係わるプログラム、あるいはこのプログラム関連のプログラムであり、言い換えれば複写機にプリンタ機能あるいはネットワーク・プリンタ機能を実現するためのプログラムであり、複写機の複写機能に係わるプログラムとは別のプログラムである。
【００６９】
まず、印刷動作について説明する。たとえば、ホスト・コンピュータ１  ２０１から印刷を行う際、ホスト・コンピュータ１  ２０１からＬＡＮ２０３経由で印刷ジョブがプリンタ・コントローラ２０４に投げられる。その際、印刷ジョブはＰＤＬ（印刷用言語）の形態である（ただし、ビットマップ・イメージで転送される場合もある）。印刷ジョブを受けたプリンタ・コントローラ２０４はそれを元に描画処理を行いビットイメージに展開し、それをビデオＩ／Ｆ２０６経由で複写機２０７に転送する。最後に、複写機２０７はビデオＩ／Ｆ２０６経由で受信した画像データを印刷し、ユーザは印刷結果を得ることができる。
【００７０】
次に、印刷時の複写機コントローラ２１８の動作を説明する。プリンタ・コントローラ２０４が転送した画像データをＩ／Ｆボード２１５経由で受信し、受信したデータを複写機側に送り、印刷を行うことになる。具体的には、ＣＰＵ２１９の制御下において、受信した画像データがエンジンの印刷部に転送されるという動作になる。一般的には、これらの動作はＨＤＤ２２１に格納されているプログラムに従ってＣＰＵ２１９が実行する（ただし、ＨＤＤ２２１に格納されているプログラムは動作の速いＲＡＭに移し変えられて実際ＣＰＵがインストラクションをフェッチするのは、ＨＤＤ２２１ではなく、ＲＡＭ２２０となる）。本実施形態では、ＨＤＤ２２１に格納されているプログラム内に、プリンタ・コントローラが接続された時にのみ使用される部分、たとえば、画像のＩ／Ｆボード２１５経由の受信プログラム等は含まれていない。この種のプログラムは、プリンタ・コントローラからシステムの起動時に受け取る形態を取る。プリンタ・コントローラ２０４はＰｒｏｇｒａｍＲＯＭ２１４内に、本来的には、複写機内部で使用されるプログラムであるが、複写機内には含まれていない、つまり、複写機用のプログラムから削除されているプログラムを持つことになる。一方、複写機側では、プリンタ・コントローラから送られたデータを自分自身のプログラムとして、ＨＤＤ２２１に格納する等の一般的処理を実行するプログラムを有することになる。
【００７１】
本実施形態において、プログラムＲＯＭ２１４内のデータは、システムの起動時に、（正確には、プリンタ・コントローラの電源投入時、あるいは複写機１０７の電源投入をＥｔｈｅｒｎｅｔ（登録商標）１０５経由で検出した際に）複写機に送られ、最終的にＨＤＤ２２１内に格納され、ＣＰＵ２１９によって使用されることになる。
【００７２】
このようにプログラムの送受をさせることによって、正しいプログラムを知らなければ、不正プリンタ・コントローラを作成することができなくなる。また、転送されるプログラムはプリンタ・コントローラが接続された時にのみに必要となるプログラムであるため、複写機側のそれ以外の動作には影響しない。
【００７３】
起動時の動作としては、電源投入後、言い換えればシステムの起動時にプリンタ・コントローラ２０４はメイン・ボード上のＰｒｏｇｒａｍＲＯＭ２１４内のプログラムをＥｔｈｅｒｎｅｔ（登録商標）Ｉ／Ｆ２０５、もしくは、ビデオＩ／Ｆ２０６経由で、複写機コントローラ・ボード２１８に転送する。これに対応して複写機のコントローラは、転送されたデータをプログラムとして、ＨＤＤ２２１内に格納する。この格納処理が完了した後、ＣＰＵ２１９は、プリンタ機能を実現するためのプログラムが入手されたことを知り、そのＨＤＤ内のプログラムをＲＡＭ２２０に移動した後、そのプログラムを実行することになる。これにより、複写機は、プリンタ・コントローラが接続された複写機として要求される動作を正常に実行することができるようになる。
【００７４】
本実施形態では、複写機コントローラのＣＰＵ用プログラムの格納先はＨＤＤとしていたが、もちろん、ＦｌａｓｈＲＯＭ、ＲＯＭ等の別の記憶デバイスでも代替は可能である。
【００７５】
本実施形態では、プリンタ・コントローラから送られる複写機コントローラのプログラムを実質的な認証キーとして使用するため、このプリンタ・コントローラから送られて複写機内に格納された複写機のコントローラのプログラムは、複写機の電源投入時の初期処理において、消去される。具体的には、不揮発性の記憶媒体（ＨＤＤ，フラッシュメモリ等）に格納された、プリンタ・コントローラから送られて複写機内に格納された複写機のコントローラのプログラムが消去される。加えて、Ｉ／Ｆボード２１５とプリンタ・コントローラ２０４との間の接続が断に成ったことを検出した場合、揮発性記憶媒体内に格納された対応するプリグラムの使用も不可能にしたり、あるいは消去したりする。このように消去することによって、正しいプリンタ・コントローラを接続した後に、海賊版のプリンタ・コントローラを接続したとしても、その前のデータが消去されているので、海賊版のプリンタ・コントローラの仕様と、そこから送られるデータが合致していない限り、海賊版のプリンタ・コントローラを使用したシステムは正常に動作しないことが保証される。
【００７６】
本実施形態では、複写機コントローラのプログラムを、実質的な認証キーとして使用するシステムを説明したが、この種のプログラムとしては、エンジンのＤＣコントローラのＦＷ、プリンタ用の色変換テーブル、プリンタ用圧縮処理ＦＷ等プリンタ・コントローラだけに関わる部分であれば何でもよい。また、プリンタ・コントローラだけに係わる部分だけでなく、その他の部分に係わるプログラムであっても、プリンタ・コントローラを使用した場合にのみ機能するプログラムであれば、同様な目的を達成することできることは明らかである。
【００７７】
この種のプログラムを、プリンタ・コントローラのバージョンと組み合わせて各種用意することによって、不正なプリンタ・コントローラの改造や製造をより困難にし、結果としてそれらを防止することができる。
【００７８】
本実施例により、複写機のプログラムの一部をプリンタ・コントロ−ラが持つことになるため、プリンタ・コントローラの海賊版の作る際に、そのプログラムが必要となり、その不正行為実施が難しくなり、防止につながる。
【００７９】
プリンタ・コントローラのバージョンによって複写機の動作を変えたい場合には、プリンタ・コントローラから転送するプログラムの中身を変えることで実現することが可能となる。
【００８０】
また、プリンタ・コントローラ内のプログラムＲＯＭ２１４内に複数のプログラムを実装し、システム立ち上げ時の複写機との対話により、転送するプログラムを選択して、複写機のバージョンに適用したプログラムを転送するように動作させることもできる。
【００８１】
また、転送するプログラムそれ自身を符号化された、あるいは圧縮されたファイルとして、複写機内部で復号したり、圧縮解除したりすることもできる。
【００８２】
なお、本実施形態においても、プログラム・データの格納先として、専用のＲＯＭを用意する形態で説明したが、もちろん、プリンタ・コントローラ内のＣＰＵのプログラム格納用ＲＯＭ内に収められていてもよい。
【００８３】
また、転送するプログラムとして、複写機内のプリンタ・コントローラに係わる全てのブログラムとすることも、またその一部とすることも、本発明の目的を達成する上で同じ効果を有する。
【００８４】
最後に、プリンタ・コントローラは、上述したように、複写機側にプログラムを送り、それによって複写機が、プリンタ・コントローラからの印刷データを受けることができる時点を見込むことにより、あるいはそのことを複写機と対話することによって検知した後に、いわゆるプリンタ・コントローラとして機能することになる。具体的には、ホスト・コンピュータからの印刷ジョブを受けて処理し、複写機に送ることが可能になる。
【図面の簡単な説明】
【００８５】
【図１】本発明の第１の実施形態を説明する図であり、複写機内の、プリンタ・コントローラとインターフェースするインターフェース・ボード内のＦＰＧＡデータをプリンタ・コントローラが保持し、それをシステム起動時に複写機内に転送することを説明する図である。
【図２】本発明の第２の実施形態を説明する図であり、複写機内のプログラムの一部をプリンタ・コントローラが保持し、それをシステム起動時に複写機内に転送することを説明する図である。
【図３】ＦＰＧＡ１１７上に構成する具体的な機能の一実施例を示す図である。
【図４】図３に示す外部からのＦＩＦＯを制御する信号が正論理／負論理で動作する場合を示す図である。
【図５】図３に関連して、モノクロ印刷時の高速化の手段としての回路構成の例を示す図である。
【図６】図１のＦＰＧＡＲＯＭ１１４内のデータを複写機１０７に転送し、複写機内のＣＰＵがＦＰＧＡ１１７に書き込む方法を示すフローチャートである。
【図７】図１のＩ／Ｆ  Ｄｅｖｉｃｅ１１３を介して、ＦＰＧＡ１１７に直接（データ変換や、バッファリングなどをせずに）書き込む方法を示すフローチャートである。
【符号の説明】
【００８６】
１０１  ホスト・コンピュータ１
１０２  ホスト・コンピュータ２
１０３  ＬＡＮ
１０４  プリンタ・コントローラ
１０５  Ｅｔｈｅｒｎｅｔ（登録商標）Ｉ／Ｆ
１０６  ビデオＩ／Ｆ
１０７  複写機
１０８  ＣＰＵ
１１０  ＲＡＭ
１１１  ＲＯＭ
１１２  システム・バス
１１３  Ｉ／Ｆデバイス
１１４  ＦＰＧＡ・ＲＯＭ
１１５  Ｉ／Ｆボード
１１６  Ｉ／Ｆデバイス
１１７  ＦＰＧＡ
２０１  ホスト・コンピュータ１
２０２  ホスト・コンピュータ２
２０３  ＬＡＮ
２０４  プリンタ・コントローラ
２０５  Ｅｔｈｅｒｎｅｔ（登録商標）Ｉ／Ｆ
２０６  ビデオＩ／Ｆ
２０７  複写機
２０８  メイン・ボード
２０９  ＣＰＵ
２１０  ＲＡＭ
２１１  ＲＯＭ
２１２  システム・バス
２１３  Ｉ／Ｆデバイス
２１４  ＦＰＧＡ・ＲＯＭ
２１５  Ｉ／Ｆボード
２１６  Ｉ／Ｆデバイス
２１７  ＦＰＧＡ
２１８  複写機コントローラ・ボード
２１９  ＣＰＵ
２２０  ＲＡＭ
２２１  ＨＤＤ
【図１】
2006341460.tif 000003
【図２】
2006341460.tif 000004
【図３】
2006341460.tif 000005
【図４】
2006341460.tif 000006
【図５】
2006341460.tif 000007
【図６】
2006341460.tif 000008
【図７】
2006341460.tif 000009