説明

画像形成装置用集積回路

【課題】ユニット及び集積回路を統合することで低価格化を実現しながら、画像処理部及び画像形成部の機能を混合することなく独立して開発可能である集積回路を提供すること。
【解決手段】画像形成処理を実行するための2個のCPU34、21と、2個のCPU34、21毎に独立して接続され、2個のCPU34、21のそれぞれによって暗号鍵を設定可能である2個の暗号鍵用レジスタ24、30と、2個のCPU34、21に接続され、2個の暗号鍵用レジスタ24、30のいずれかに設定された暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う暗号/復号回路20と、暗号/復号回路20に接続されたプログラマブル回路48と、を備え、暗号鍵用レジスタ24に暗号鍵を設定したCPU34、21のみが、プログラマブル回路48にプログラムを設定可能であり、また、プログラマブル回路48に設定されたプログラムを読取可能である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置用集積回路に関する。
【背景技術】
【0002】
従来の画像印刷装置は、ホストコンピュータ等からコードデータを受け取る画像処理部と、画像処理部からのイメージデータに基づいて画像を形成する画像形成部とを備える構成であるため、異なる製造業者のそれぞれが画像処理部、画像形成部の開発を個々に行っていた(特許文献1及び2参照)。また、近年、集積回路の高密度化や多機能化が進み、集積回路の規模が拡大するのに伴い、1個のチップで多品種に対応可能とすべく、FPGA(Field Programmable Gate Array)を用いた機能切り替え技術が提案されている(特許文献3参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平09−86018号公報
【特許文献2】特開平07−143300号公報
【特許文献3】特開2000−89963号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、異なる製造業者が、画像処理部、画像形成部の制御用基板を個々に作成する場合には、特許文献3に開示されているように、それぞれの制御用基板にプログラマブル回路を用いた機能切り替え技術を適用することができる。
【0005】
しかしながら、より安価な構成にするために、画像処理部と画像形成部とを統合すると、互いに異なる製造業者が1個の集積回路上で機能切り替え技術を用いて開発することとなり、一方の製造業者の技術が他方の製造業者に漏洩してしまう可能性がある。
【0006】
本発明は、上記問題点に鑑みてなされたものであり、ユニット及び集積回路を統合することで低価格化を実現しながら、画像処理部及び画像形成部の機能を混合することなく独立して開発可能である集積回路を提供するものである。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係る画像形成装置用集積回路は、画像形成処理を実行するためのN個(N≧2)のプロセッサと、前記N個のプロセッサ毎に独立して接続され、前記N個のプロセッサのそれぞれによって暗号鍵を設定可能であるN個の暗号鍵用レジスタと、前記N個のプロセッサに接続され、前記N個の暗号鍵用レジスタのいずれかに設定された暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う暗号/復号回路と、前記暗号/復号回路に接続されたプログラマブル回路と、を備え、前記暗号鍵用レジスタに前記暗号鍵を設定したプロセッサのみが、前記プログラマブル回路に前記プログラムを設定可能であり、また、前記プログラマブル回路に設定された前記プログラムを読取可能である。
【発明の効果】
【0008】
本発明によれば、ユニット及び集積回路を統合することで低価格化を実現しながら、画像処理部及び画像形成部の機能を混合することなく独立して開発可能である画像形成装置用集積回路を提供することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施例1に係るカラーレーザビームプリンタの断面図である。
【図2】カラーレーザビームプリンタの制御部のブロック図である。
【図3】CPU34がプログラマブル回路48を用いる場合のフローチャートである。
【図4】CPU21がプログラマブル回路48を用いる場合のフローチャートである。
【図5】実施例2に係るカラーレーザビームプリンタの制御部の情報隠蔽機能部分のブロック図である。
【図6】実施例3に係るカラーレーザビームプリンタの制御部のブロック図である。
【図7】CPU64がプログラマブル回路48を用いる場合のCPU64のフローチャートである。
【図8】外部CPU76がプログラマブル回路48を用いる場合の外部CPU76のフローチャートである。
【図9】外部CPU76がプログラマブル回路48を用いる場合のCPU67のフローチャートである。
【発明を実施するための形態】
【0010】
以下に、本発明の実施の形態について添付図面を参照して詳細に説明する。なお、本発明の技術的範囲は特許請求の範囲によって確定されるのであって、以下に例示する実施の形態に限定されるものではない。
【0011】
<実施例1(図1〜図4)>
図1は本発明の特徴を表すカラーレーザビームプリンタの断面図である。ここでは、同じ機能を有する構成には同じ符号を付け、符号の後にa、b、c、dと付けることで同じ機能が複数の構成であることを示す。
【0012】
100はプリンタ本体である。1は感光体ドラム、2は感光体ドラム1を均一に帯電する帯電器、3はビデオデータに同期してレーザ光を走査し、感光体ドラム1上に潜像を作像するレーザスキャナである。4は感光体ドラム1上の潜像を可視化する現像器、5は紙を格納する紙カセット、6は紙カセット5内の紙を本体に給紙する給紙ローラである。
【0013】
7は給紙ローラ6で給紙された紙を一旦停止し、画像とタイミングを合わせて紙搬送を再開するレジストローラである。8はトナー像を重ね合わせてカラー画像を転写する中間転写ベルトである。9は搬送された中間転写ベルト8に感光体ドラム1上のトナー像を転写する1次転写器、10は搬送された紙に中間転写ベルト8上のトナー像を転写する2次転写器である。11は加熱及び加圧することで紙上のトナー像を定着する定着器、12は紙の有無を判別する排紙センサ、13は紙を機外に排出する排紙ローラ、14は排紙トレイ、15は制御部である。
【0014】
図2は本発明の特徴を表すカラーレーザビームプリンタの制御部のブロック図である。制御部15は、外部のホストコンピュータ等からコード化された画像データを受け取り、そのコードデータをビットマップ化された画素データに変換するコントローラ制御機能と、トナー画像を記録材である紙に形成するためのエンジン制御機能とを有する。50はコントローラ制御とエンジン制御を集積化した画像形成装置用集積回路(SOC(System On Chip))である。コントローラ制御機能は、画像形成処理を実行するためのN個(本実施例では、2個)のCPU21、34(プロセッサ)を有する。CPU21には、共通バス29を介して、外部I/F22、画素データ用RAM23、共用RAM25、DMAC(Direct Memory Access Controller)26及び表示部28等の各デバイスが接続される。共通バス29はデータバス、アドレスバス、コントロールバスから構成されており、CPU21から各デバイスのアクセスが可能とされる。
【0015】
係るコントローラ制御機能は、外部インタフェース(例えば、セントロニクス型パラレルインタフェース又はRS232C型シリアルインタフェース)を介してコード化された画像データを受け取る。そのコードデータは、外部I/F22に入力される。
【0016】
CPU21は、画像データの送信準備処理として外部I/F22を介して入力されたコードデータを共用RAM25に格納すると共に、コードデータを所定のフォーマットに従って画素データを生成し、画素データをRAM23の特定のアドレスに格納する。
【0017】
なお、電子写真プロセスを用いた画像形成処理では、1画素で表現できる階調数が少ないため、画素データへの変換において、複数画素で階調表現を行う擬似中間調(例えば、ディザ法や誤差拡散法)を行う。この画素データを格納するRAM23は、いわゆるビットマップメモリである。コードデータから画素データへの変換は、プログラマブル回路48で行われ、そのプログラムデータは暗号化された状態でROM17に格納される。
【0018】
CPU21は、後述のプログラマブル回路の情報隠蔽機能を用いて、コードデータから画素データへの変換回路をプログラマブル回路48上に形成し、プログラマブル回路48上の変換回路で画素データを生成する。
【0019】
なお、プログラマブル回路48は、共通バス29でも接続されており、コードデータは共通バス29から画素データへの変換回路に入力され、結果の出力は共通バス29を用いてRAM23へ格納する。このように生成、格納を行ってCPU21は後述のエンジン制御機能がデータの受け取り可能であることを確認してDMAC26をアクティブの状態にする。そして、DMAC26は、共通バス29を専有してRAM23に格納された画素データを所定のアドレスから読み出していく。DMAC26がアクティブになると、CPU21及びDMAC26は交互に共通バス29を専有する。DMAC26はRAM23の所定のアドレスから画素データを読み出し、そのデータをシリアルデータに変換する。
【0020】
そして、エンジン制御に同期してそのシリアル化した画像信号32をレーザ制御回路31に送る。エンジン制御では、その画像信号32に従ってトナー像を形成する。エンジン制御は、制御手段としてのCPU34を有し、コントローラ制御機能の指令に従ってエンジン内の各部をローカルバス18に接続されたエンジン制御I/O27を介して制御する。このように、コントローラ制御機能は、外部より受けた画像データをシリアル化した(すなわち、ラスタイメージ化した)画像信号に変換し、その信号をエンジン制御機能に送る。
【0021】
なお、コントローラ制御機能は外部インタフェースを介して受け取る画像データの他に、補正用データを生成し、生成した補正用データも同様にラスタイメージ化してレーザ制御回路31へ送る。CPU34は、その補正用データに従ってトナー像(以下、トナーパッチと呼ぶ)を中間転写ベルト8に形成する。補正用データは、階調−濃度特性が得られるように、複数の階調をパッチ状に配置したものである。中間転写ベルト8上に作成されたトナーパッチの濃度を濃度センサ(図示せず)で検出し、その検出結果に基づいて階調−濃度特性を生成する。検出結果に基づいて階調−濃度特性を生成するための演算は、プログラマブル回路48で行われ、そのプログラムデータは暗号化された状態でROM16に格納される。
【0022】
CPU34は、後述のプログラマブル回路の情報隠蔽機能を用いて、階調−濃度特性を生成するための演算回路をプログラマブル回路48上に形成し、プログラマブル回路48上の演算回路で階調−濃度特性を生成する。なお、CPU34とプログラマブル回路48との間は、共通バス29でも接続されており、演算回路へのデータ入力と結果の出力は共通バス29を用いて行う。CPU34は、生成した階調−濃度特性を共用RAM25を介してコントローラ制御機能へ渡す。CPU21は、受け取ったトナーパッチの階調‐濃度特性に基づいて、画素データの濃度を補正する。その他に、コントローラ制御機能のCPU21は、共用RAM25を介してエンジン制御機能の特定の動作をエンジン制御機能に指令する役割を有する。その動作の指令(コマンド)は、共用RAM25を介して画像形成手段及び給紙制御手段としてのCPU34に渡される。また、CPU21は、共用RAM25を介してエンジンの内部情報を知ることができる。
【0023】
[印字動作について]
コントローラ制御機能のCPU21が、外部インタフェースを介してホストコンピュータから印字指令を受けたことを想定する。CPU21は、ホストコンピュータから受けたコードデータが1ページ分に達したと判断し、共用RAM25を介してCPU34に対してカセット給紙指令を渡して印字を開始する。CPU34は、このカセット給紙指令を受け取ると、エンジン制御I/O27を介して、レーザスキャナモータドライバ36をアクティブにし、レーザスキャナモータ37を回転させる。同時にCPU34は、搬送や作像系や定着の各種モータドライバ38をアクティブにし、各種モータ39を回転させて感光体ドラム1、定着器11内の加熱ローラや加圧ローラを回転させる。また、各種モータ39は紙を搬送させる役割をもつ。
【0024】
CPU34がレーザスキャナモータ37の回転数が所定値に達したことを検知すると、レーザ制御回路31にレーザ強制点灯指令を出力する。半導体レーザ40から発光したレーザビームは、レーザスキャナモータ37によって回転するポリゴンミラー(不図示)に照射され、そのビームは反射ミラー(不図示)上を走査する。そして、反射ミラーによって反射されたビームは感光体ドラム1上を走査する。
【0025】
一方、ポリゴンミラーの反射ビームは、その一部がビーム受光素子41に入射される。ビーム検出回路42より出力されたパルス信号は、レーザ制御回路31に入り、主走査同期信号としてDMAC26に送られる。レーザ制御回路31は、一度、主走査同期信号を出力できるようになると、半導体レーザ40を強制的に全点灯するのを停止し、レーザビームがビーム受光素子の近傍のみを走査するように、半導体レーザ40を部分点灯させる。
【0026】
一方、CPU34は、各種モータ39を回転し始めた後、高圧発生回路43で帯電器2、現像器4、1次転写器9及び2次転写器10に順次高圧を印加させていく。高圧により潜像形成が可能な状態になると、CPU34は、共用RAM25を介して画像信号をすぐに受ける用意ができたことをコントローラ制御機能のCPU21に知らせる。CPU21は、共用RAM25を介してこの情報を知り、DMAC26をアクティブの状態にする。
【0027】
そして、DMAC26は、RAM23から画素データを読み取り、レーザ制御回路31からの主走査同期信号に同期してシリアルの画像信号32をレーザ制御回路31に出力する。レーザ制御回路31は、画像信号32に基づいてレーザドライバ33を駆動し、半導体レーザ40から画像信号によって変調されたビームを出力させる。変調ビームは、ポリゴンミラーに入射し、反射ミラーで反射された後、感光体ドラム1の表面上を走査する。
【0028】
感光体ドラム1の表面は、帯電器2によって帯電されており、その帯電したドラムの表面上を変調されたレーザ光が走査することによって感光体ドラム1の表面上に潜像が形成される。潜像は現像器4によってトナー像に変換され、1次転写器9によって中間転写ベルト8に転写される。
【0029】
一方、CPU34は、各種モータ39を回転し始めた後、定着器11内の加熱ローラの温度が所定値に上昇するのを確認した後に給紙ローラ6を駆動させ、紙カセット5上に積載された紙を給紙する。その給紙した紙はレジストローラ7で一度停止する。中間転写ベルト8に転写されたトナー像の位置が搬送された紙と合うように、CPU34はレジストローラ7を駆動する。ここで、給紙ローラ6、レジストローラ7の駆動は、各種ソレノイド44によってON/OFFされる。レジストローラ7の駆動により搬送された紙は、2次転写器10によって中間転写ベルト8上のトナー像が転写される。トナー像を載せた搬送紙は、回転する定着器11内の加熱ローラと加圧ローラとの間に入り込む。搬送紙上のトナーは、定着器11内の加熱ローラと加圧ローラとから受ける熱と圧力によって紙に定着される。そして、トナーが定着された搬送紙は、排紙ローラ13により排紙トレイ14に排出される。
【0030】
なお、このトナーの定着プロセスにおいて、定着器11内の加熱ローラの表面温度はCPU34によって一定の温度に保たれる。定着器11内の加熱ローラの表面温度は、サーミスタ(不図示)に伝達され、CPU34がサーミスタの出力値が所定値になるようにヒータドライバ45を介して加熱ローラヒータ46をON/OFFさせる。これにより、定着器11内の加熱ローラの表面温度は一定値に保たれる。CPU34は、中間転写ベルト8上のクリーニングが終了した後、順次、各動作を停止する。
【0031】
[プログラマブル回路の情報隠蔽機能について]
図2において、破線で囲んだ部分49がプログラマブル回路の情報隠蔽機能を構成する部分である。34、21はCPUで、上述した様にそれぞれ、エンジン制御とコントローラ制御を行う。16はROMで、CPU34用の制御プログラムや暗号鍵データや暗号化されたプログラマブル回路用の階調−濃度特性を生成するための演算回路を生成するプログラムデータが格納される。17はROMで、CPU21用の制御プログラムや暗号鍵データや暗号化されたプログラマブル回路用のコードデータから画素データへの変換回路を生成するプログラムデータが格納される。18はCPU34のローカルバス、19はCPU21のローカルバス、29は共通バスである。25は共用RAMで、CPU34、CPU21用のワークデータの格納、CPU34とCPU21との間で情報データの受け渡しのために用いられる。
【0032】
なお、情報隠蔽機能のために、共用RAM25上には、プログラマブル回路48の使用が可能であるか否かをCPU34とCPU21との間で確認するための領域として、回路使用中フラグを設ける。回路使用中フラグは、プログラマブル回路48を使用するCPUが1を設定し、使用が終われば0に設定する。他方のCPUは、回路使用中フラグを確認することで、プログラマブル回路48を使用可能であるか否かを判断できる。48はプログラマブル回路で、例えば、FPGAアーキテクチャで構成され、プログラムデータにより内部のロジックを変更する。プログラマブル回路48は、暗号/復号回路20に接続される。
【0033】
20は暗号/復号回路であり、2個のCPU34、21に接続され、2個の暗号鍵用レジスタ24、30のいずれかに設定された暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う。また、暗号/復号回路20には、例えば、共通鍵暗号方式であるDES(Data Encryption Standard)やAES(Advanced Encryption Standard)を用いる。24は暗号鍵B用レジスタ(暗号鍵用レジスタ)で、CPU34とローカルバス18で接続され、暗号鍵Bデータを設定する。30は暗号鍵A用レジスタで、CPU21とローカルバス19で独立して接続され、CPU21によって暗号鍵Aデータを設定可能である。35は排他的論理和演算回路で、暗号鍵B用レジスタ24のデータと暗号鍵A用レジスタ30のデータを排他的論理和演算する。
【0034】
47は鍵データ格納レジスタで、排他的論理和演算回路35の演算結果が格納され、暗号/復号回路20で用いる暗号鍵データとなる。暗号/復号回路20は、共通バス29に接続され、鍵データ格納レジスタ47のデータを用いて共通バス29からのデータを復号してプログラマブル回路48へ送り、プログラマブル回路48からのデータは暗号化して共通バス29へ送る。暗号鍵B用レジスタ24又は暗号鍵A用レジスタ30には、暗号/復号回路20を用いない場合に、全て“0”のデータを入れ、他方の鍵データを有効にする。鍵データを全て“0”にする場合は、プログラマブル回路48へ書き込んだプログラムデータの内容を理解不能とするため、プログラマブル回路48を初期化するか、無効な(他方のCPUでデータを読み出されても良い)データを書き込んでおく。
【0035】
CPU34がプログラマブル回路48を用いる場合の処理の一例を図3に示す。まず、回路使用中フラグが0であることを確認し、回路使用中フラグを1に設定する(S11)。そして、ローカルバス18を介して暗号鍵B用レジスタ24を設定し、暗号化したプログラムデータを共通バス29を介して暗号/復号回路20へ送る(S12)。暗号/復号回路20は、暗号鍵B用レジスタ24のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路48へ書き込む(S13)。プログラマブル回路48は、書き込まれたプログラムデータに従って回路(動作)の変更を行う(S14)。必要な動作が終了したら(S15)、プログラマブル回路48に予め定めた初期化データを書き込むことで回路を初期化し(S16)、暗号鍵B用レジスタ24のデータに全て0を書き込み、回路使用中フラグを0に設定する(S17)。
【0036】
CPU21がプログラマブル回路48を用いる場合の処理の一例を図4に示す。まず、回路使用中フラグが0であることを確認し、回路使用中フラグを1に設定する(S21)。そして、ローカルバス19を介して暗号鍵A用レジスタ30を設定し、暗号化したプログラムデータを共通バス29を介して暗号/復号回路20へ送る(S22)。暗号/復号回路20は、暗号鍵A用レジスタ30を用いて暗号化したプログラムデータを復号化し、プログラマブル回路48へ書き込む(S23)。プログラマブル回路48は、書き込まれたプログラムデータに従って回路(動作)の変更を行う(S24)。必要な動作が終了したら(S25)、プログラマブル回路48に予め定めた初期化データを書き込むことで回路を初期化し(S26)、暗号鍵A用レジスタ30のデータに全て0を書き込み、回路使用中フラグを0に設定する(S27)。
【0037】
また、暗号鍵A用レジスタ30、暗号鍵B用レジスタ24のいずれにも暗号鍵が設定されていない場合には、暗号/復号回路20は暗号/復号動作を行わず、共通バス29とプログラマブル回路48が接続された状態と同等の動作となる。
【0038】
以上述べた通り、本実施例によれば、暗号鍵B用レジスタ24に暗号鍵Bを設定したCPU34又は暗号鍵A用レジスタ30に暗号鍵Aを設定したCPU21のみが、プログラマブル回路48にプログラムを設定可能であり、また、プログラマブル回路48に設定されたプログラムを読取可能とすることができる。これにより、SOC内でコントローラ制御機能とエンジン制御機能とを統合してプログラマブル回路を共有した場合であっても、プログラマブル回路の生成データを暗号化することで、コンタミネーション無しに独立した開発をすることが可能になる。
【0039】
<実施例2(図5)>
図5は、実施例2の特徴を表すカラーレーザビームプリンタの制御部の情報隠蔽機能部分のブロック図である。なお、本実施例に係るカラーレーザビームプリンタの構成は、図5の破線で囲んだ部分49の内部構成のみが実施例1の構成と異なるため、実施例1と同等の部分の説明は省略し、また、実施例1の構成と同じ機能を有する箇所は同じ符号を付す。
【0040】
図5において、34、21は画像形成処理を行うためのCPU(プロセッサ)で、実施例1で説明したように、それぞれがエンジン制御とコントローラ制御を行う。16はROMで、CPU34用の制御プログラムや暗号鍵データや暗号化されたプログラマブル回路用の階調−濃度特性を生成するための演算回路を生成するプログラムデータが格納される。17はROMで、CPU21用の制御プログラムや暗号鍵データや暗号化されたプログラマブル回路用のコードデータから画素データへの変換回路を生成するプログラムデータが格納される。18はCPU34のローカルバス、19はCPU21のローカルバス、29は共通バスである。25は共用RAMで、CPU34、CPU21用のワークデータの格納と、CPU34とCPU21との間での情報データの受け渡しに用いられる。
【0041】
なお、実施例1と同様に、情報隠蔽機能のために、共用RAM25上には、プログラマブル回路51、52の使用が可能であるか否かをCPU34とCPU21との間で確認するための領域として回路1使用中フラグと回路2使用中フラグを設ける。回路1使用中フラグは、プログラマブル回路51を使用するCPUが1を設定し、使用が終われば0に設定する。他方のCPUは、回路1使用中フラグを確認することで、プログラマブル回路51を使用可能であるか否かを判断できる。回路2使用中フラグは、プログラマブル回路52を使用するCPUが1を設定し、使用が終われば0に設定する。他方のCPUは、回路2使用中フラグを確認することで、プログラマブル回路52を使用可能であるか否かを判断できる。51、52はプログラマブル回路で、暗号/復号回路55、56のそれぞれに接続される。プログラマブル回路51、52は、例えば、FPGAアーキテクチャで構成され、プログラムデータにより内部のロジックを変更する。
【0042】
53、54は暗号/復号回路(第1の暗号/復号回路)であり、CPU34、21毎(プロセッサ毎)に独立して接続され、暗号鍵C、D(第1の暗号鍵)のいずれかを用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う。暗号/復号回路53、54には、共通鍵暗号方式のDESやAESを用いる。
【0043】
55、56は暗号/復号回路(第2の暗号/復号回路)であり、2個の暗号/復号回路53、54にそれぞれ接続され、暗号鍵C、D(第2の暗号鍵)のいずれかを用いて暗号化されたプログラムの復号化処理又はプログラムの暗号化処理を行う。すなわち、実施例1の暗号/復号回路20と同等の2種類の鍵を切り替えて用いることができる暗号/復号回路である。
【0044】
57は暗号鍵C用レジスタ(第1の暗号鍵用レジスタ)で、CPU34とローカルバス18で独立して接続され、CPU34によって暗号鍵Cデータを設定可能である。58は暗号鍵D用レジスタ(第1の暗号鍵用レジスタ)で、CPU21とローカルバス19で独立して接続され、CPU21によって暗号鍵Dデータを設定可能である。59は暗号鍵C用レジスタ(第2の暗号鍵用レジスタ)で、CPU34とローカルバス18で独立して接続され、暗号鍵Cデータを設定可能である。60は暗号鍵D用レジスタで、CPU21とローカルバス19で接続され、CPU21によって暗号鍵Dデータを設定可能である。61は暗号鍵C用レジスタで、CPU34とローカルバス18で接続され、CPU34によって暗号鍵Cデータを設定可能である。62は暗号鍵D用レジスタ(第2の暗号鍵用レジスタ)で、CPU21とローカルバス19で接続され、CPU21によって暗号鍵Dデータを設定可能である。
【0045】
暗号/復号回路53は、ローカルバス18でCPU34に接続され、CPU34から送られたデータを暗号鍵Cデータで暗号化して共通バス29に送出し、共通バス29のデータを暗号鍵Cデータで復号化してCPU34へ送出する。暗号/復号回路54は、ローカルバス19でCPU21に接続され、CPU21から送られたデータを暗号鍵Dデータで暗号化して共通バス29に送出し、共通バス29のデータを暗号鍵Dデータで復号化してCPU21へ送出する。
【0046】
暗号/復号回路55は、プログラマブル回路51に接続され、暗号鍵Cデータ又は暗号鍵Dデータで、共通バス29のデータを復号化してプログラマブル回路51へ送出し、プログラマブル回路51のデータを暗号化して共通バス29に送出する。暗号/復号回路56は、プログラマブル回路52に接続され、暗号鍵Cデータ又は暗号鍵Dデータで、共通バス29のデータを復号化してプログラマブル回路52へ送出し、プログラマブル回路52のデータを暗号化して共通バス29に送出する。
【0047】
CPU34がプログラマブル回路51を用いる場合、回路1使用中フラグが0であることを確認し、回路1使用中フラグを1に設定する。そして、ローカルバス18を介して暗号鍵C用レジスタ57及び暗号鍵C用レジスタ59を設定し、プログラムデータをローカルバス18を介して暗号/復号回路53へ送る。暗号/復号回路53は、暗号鍵C用レジスタ57のデータを用いてプログラムデータを暗号化し、共通バス29を介して暗号/復号回路55へ送る。暗号/復号回路55は、暗号鍵C用レジスタ59のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路51へ書き込む。プログラマブル回路51は、書き込まれたプログラムデータに従って回路(動作)の変更を行う。
【0048】
必要な動作が終了したら、プログラマブル回路51に予め定めた初期化データを書き込むことで回路を初期化し、暗号鍵C用レジスタ57、59のデータに全て0を書き込み、回路1使用中フラグを0に設定する。この時、共通バス29上には暗号鍵Cデータで暗号化されたデータしか現れないため、CPU21からはプログラマブル回路51のプログラム状態を知ることはできない。
【0049】
同様に、CPU34がプログラマブル回路52を用いる場合、回路2使用中フラグが0であることを確認し、回路2使用中フラグを1に設定する。そして、ローカルバス18を介して、暗号鍵C用レジスタ57及び暗号鍵C用レジスタ61を設定し、プログラムデータをローカルバス18を介して暗号/復号回路53へ送る。暗号/復号回路53は、暗号鍵C用レジスタ57のデータを用いてプログラムデータを暗号化し、共通バス29を介して暗号/復号回路56へ送る。暗号/復号回路56は、暗号鍵C用レジスタ61のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路52へ書き込む。プログラマブル回路52は、書き込まれたプログラムデータに従って回路(動作)の変更を行う。
【0050】
必要な動作が終了したら、プログラマブル回路52に予め定めた初期化データを書き込むことで回路を初期化し、暗号鍵C用レジスタ57、61のデータに全て0を書き込み、回路2使用中フラグを0に設定する。CPU21がプログラマブル回路51を用いる場合、回路1使用中フラグが0であることを確認し、回路1使用中フラグを1に設定する。
【0051】
次に、ローカルバス19を介して、暗号鍵D用レジスタ58及び暗号鍵D用レジスタ60を設定し、プログラムデータをローカルバス19を介して暗号/復号回路54へ送る。暗号/復号回路54は、暗号鍵D用レジスタ58のデータを用いてプログラムデータを暗号化し、共通バス29を介して暗号/復号回路55へ送る。暗号/復号回路55は、暗号鍵D用レジスタ60のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路51へ書き込む。プログラマブル回路51は、書き込まれたプログラムデータに従って回路(動作)の変更を行う。
【0052】
必要な動作が終了したら、プログラマブル回路51に予め定めた初期化データを書き込むことで回路を初期化し、暗号鍵D用レジスタ58、60のデータに全て0を書き込み、回路1使用中フラグを0に設定する。この時、共通バス29上には暗号鍵Dデータで暗号化されたデータしか現れないため、CPU34からはプログラマブル回路51のプログラム状態を知ることはできない。同様に、CPU21がプログラマブル回路52を用いる場合、回路2使用中フラグが0であることを確認し、回路2使用中フラグを1に設定する。
【0053】
次に、ローカルバス19を介して、暗号鍵D用レジスタ58及び暗号鍵D用レジスタ62を設定し、プログラムデータをローカルバス19を介して暗号/復号回路54へ送る。暗号/復号回路54は、暗号鍵D用レジスタ58のデータを用いてプログラムデータを暗号化し、共通バス29を介して暗号/復号回路56へ送る。暗号/復号回路56は、暗号鍵D用レジスタ62のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路52へ書き込む。プログラマブル回路52は、書き込まれたプログラムデータに従って回路(動作)の変更を行う。
【0054】
必要な動作が終了したら、プログラマブル回路52に予め定めた初期化データを書き込むことで回路を初期化し、暗号鍵D用レジスタ58、62のデータに全て0を書き込み、回路2使用中フラグを0に設定する。暗号鍵C用レジスタ57、暗号鍵D用レジスタ58のデータが全て0の時は、暗号/復号回路53、54は暗号/復号動作を行わず、共通バス29とCPU34、21が接続された状態と同等の動作となる。暗号鍵C用レジスタ59、61、暗号鍵D用レジスタ60、62のデータが全て0の時は、暗号/復号回路55、56は暗号/復号動作を行わず、共通バス29とプログラマブル回路51、52は切断された状態となる。
【0055】
以上述べた通り、本実施例によれば、CPU34が暗号鍵C用レジスタ57、59に暗号鍵Cを設定した場合にはCPU34のみが、また、CPU21が暗号鍵D用レジスタ58、62に暗号鍵Dを設定した場合にはCPU21のみが、プログラマブル回路51、52にプログラムを設定可能とし、また、プログラマブル回路51、52に設定されたプログラムを読取可能とすることができる。これにより、SOC内に複数のプログラマブル回路を共有しても、プログラマブル回路の生成データを暗号化することで、コンタミネーション無しに独立した開発をすることことが可能になる。
【0056】
なお、本実施例では、プログラマブル回路51、52をそれぞれ独立した状態で用いる場合を想定して説明したが、本実施例のように独立処理をさせる場合だけでなく、並列処理をさせる場合にも同様にそれぞれの暗号/復号回路に鍵データを設定することで本発明を適用することができる。
【0057】
<実施例3(図6〜図9)>
図6は、実施例3の特徴を表すカラーレーザビームプリンタの制御部のブロック図である。なお、実施例3に係るカラーレーザビームプリンタの構成は、実施例1の構成と基本的に同じ構成であるため、実施例1で説明した箇所についての説明は省略し、同じ機能を有する箇所には同じ番号を付す。
【0058】
82は外部装置で、外部I/F74及び鍵転送外部I/F73を介して、SOC50内の外部I/F22(第2のインターフェース)及び鍵転送外部I/F68(第1のインターフェース)と接続され、SOC50の外部からプログラマブル回路48に暗号化されたプログラムデータを転送する。
【0059】
すなわち、鍵転送外部I/F68は、CPU67及び暗号回路72に接続され、公開鍵で暗号化された暗号鍵F(第2の暗号鍵)を、CPU76を備えた外部装置82へ転送可能である。外部I/F22は、CPU64及び暗号/復号回路20に接続され、外部装置82に記憶され、外部装置82で暗号化されたプログラムを取得可能である。
【0060】
76は外部装置のCPUで、SOCの内外で暗号鍵をやり取りするために必要となる制御及びSOCの外部からSOC内のプログラマブル回路48にプログラムデータを転送する際に必要となる制御を行う。75はROMで、外部CPU76(第3のプロセッサ)用の制御プログラムや公開鍵/秘密鍵データや暗号化されたプログラマブル回路用の階調−濃度特性を生成する演算回路、コードデータから画素データへの変換回路を生成するプログラムデータが格納される。77は、SOC50から外部装置82に転送されてきた暗号化された暗号鍵データに復号化処理を行う回路である。78はSOC50から外部装置82に転送されてきた暗号化された暗号鍵データを復号化する際に用いる秘密鍵を設定するためのレジスタ領域である。79は外部装置82からSOC50内のプログラマブル回路48に書き込むプログラムデータを暗号化する際に用いられる暗号鍵(共通鍵)を設定するためのレジスタ領域である。80は外部装置82からSOC50内のプログラマブル回路48に書き込むプログラムデータに暗号化処理を行う回路である。
【0061】
64は画像形成処理を実行するためのCPU(第1のプロセッサ)で、実施例1で説明したCPU34、CPU21の機能を有する。すなわち、CPU64がエンジン制御及びコントローラ制御を行う。65はROMで、CPU64用の制御プログラムや暗号鍵データや暗号化されたプログラマブル回路用の階調−濃度特性を生成する演算回路、コードデータから画素データへの変換回路を生成するプログラムデータが格納される。67は画像形成処理を実行するためのCPU(第2のプロセッサ)で、SOC50の内外での暗号鍵をやり取りするために必要となる制御を外部CPU76と通信しながら行う。69は暗号鍵を生成する鍵生成回路で、CPU67から送信されてくる乱数の種に基づいて暗号鍵Fデータを生成する。72は公開鍵/秘密鍵暗号方式の暗号回路で、鍵生成回路69で生成された暗号鍵Fデータに暗号化処理を施す。71は暗号鍵を設定するためのレジスタ(公開鍵用レジスタ)で、CPU67に独立して接続され、CPU67によって暗号回路72で暗号化処理を行う際に用いる暗号鍵(公開鍵)を設定可能である。
【0062】
18はCPU64のローカルバス、66はCPU67のローカルバス、29は共通バスである。25は共用RAMで、CPU64と外部CPU76との間での情報の受け渡しに用いられる。なお、実施例1と同様に、情報隠蔽機能のために、共用RAM25上には、プログラマブル回路48の使用が可能であるか否かをCPU64と外部CPU76との間で確認するための領域として回路使用中フラグを設ける。回路使用中フラグは、プログラマブル回路48を使用するCPUが1を設定し、使用が終われば0に設定する。
【0063】
他方のCPUは、回路使用中フラグを確認することで、プログラマブル回路48を使用可能であるか否かを判断できる。48はプログラマブル回路で、暗号/復号回路に接続される。また、プログラマブル回路48は、例えば、FPGAアーキテクチャで構成され、プログラムデータにより内部のロジックを変更する。20は暗号/復号回路であり、CPU64に接続され、暗号鍵E(第1の暗号鍵)を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う。暗号/復号回路20は、2種類の鍵を切り替えて用いることができる。
【0064】
84は暗号鍵E用レジスタ領域(第1の暗号鍵用レジスタ)で、CPU64とローカルバス18で接続され、CPU64によって暗号鍵Eデータを設定可能である。70は暗号鍵F用レジスタ領域で、鍵生成回路69と暗号回路72で接続され、暗号鍵Fデータを設定可能である。暗号/復号回路20は、プログラマブル回路48に接続され、暗号鍵Eデータ又は暗号鍵Fデータで、共通バス29のデータを復号化してプログラマブル回路48へ送出し、プログラマブル回路48のデータを暗号化して共通バス29に送出する。暗号鍵E用レジスタ領域84又は暗号鍵F用レジスタ領域70には、暗号/復号回路20を用いない場合に全て0のデータを入れ、他方の鍵データを有効にする。鍵データを全て0にする場合は、プログラマブル回路48へ書き込んだプログラムデータの内容を理解不能とするため、プログラマブル回路48を初期化するか、無効なデータを書き込んでおく。
【0065】
[CPU64がプログラマブル回路48を用いる場合(図7)]
まず、CPU64は、回路使用中フラグが0であることを確認し(S31)、回路使用中フラグを1に設定する。次に、ローカルバス18を介して暗号鍵E用レジスタ領域84に暗号鍵Eを設定し(S32)、暗号化したプログラムデータを共通バス29を介して暗号/復号回路20へ送る。暗号/復号回路20は、暗号鍵E用レジスタ領域84のデータを用いて暗号化したプログラムデータを復号化し、プログラマブル回路48へ書き込む(S33)。プログラマブル回路48は書き込まれたプログラムに従って回路(動作)の変更を行う(S34)。必要な動作が終了したら(S35)、プログラマブル回路48に予め定めた初期化データを書き込むことで回路を初期化し(S36)、暗号鍵E用レジスタ84のデータに全て0を書き込み、回路使用中フラグを0に設定する(S37)。
【0066】
[外部CPU76がプログラマブル回路48を用いる場合(図8、図9)]
まず、外部CPU76は、共用RAM25にアクセスし、回路使用中フラグが0であることを確認し(S41)、回路使用中フラグを1に設定する。そして、外部CPU76は、CPU67に対して共通鍵の転送要求を出す(S42)。CPU67は、外部CPU76から共通鍵の転送要求を受信したら(S61)、外部CPU76に対して転送する共通鍵に施す暗号化処理に用いる暗号鍵(公開鍵)の転送要求を行う(S62)。
【0067】
外部CPU76は、CPU67からの暗号鍵(公開鍵)転送要求を受信したら(S43)、外部CPU用ROM75から暗号鍵(公開鍵)データを取り出し、CPU67に送信する(S44)。CPU67は、外部CPU76から送信されてきた暗号鍵(公開鍵)データを受信したら(S63)、暗号鍵(公開鍵)データレジスタ領域71に設定する。また、上記処理と並行して、鍵生成回路69に対して鍵生成回路69をアクティブにする信号、暗号鍵を生成する際に用いる乱数の種、生成した暗号鍵Fデータを設定するレジスタアドレス値を設定する(S64)。
【0068】
鍵生成回路69は、CPU67から受信した乱数の種に基づいて、暗号鍵を生成し、ローカルバス66を介して、暗号鍵Fデータ用レジスタ領域70(第2の暗号鍵用レジスタ)に設定する。同時に、暗号回路72へ暗号鍵Fデータを入力する。暗号回路72は、入力された暗号鍵Fデータに対して、暗号鍵(公開鍵)データレジスタ領域71に設定された暗号鍵(公開鍵)で暗号化処理を行い、暗号回路72内のバッファにデータを蓄積する。
【0069】
CPU67は、暗号回路72内のバッファから、暗号化された暗号鍵Fを取り出し、鍵転送用バス83に送出する(S65)。SOC50より外部装置82に転送されてきた暗号化された暗号鍵Fデータは、外部CPU76の制御に基づいて、復号回路77に入力される(S45)。復号回路77では、予め暗号鍵(秘密鍵)データレジスタ領域78に設定された暗号鍵(秘密鍵)を用いて復号化処理を行う。暗号鍵(秘密鍵)データは、外部CPU用ROM75に格納されており、電源ON時に暗号鍵(秘密鍵)データレジスタ領域78に設定される。復号化処理が施された後、暗号鍵Fデータは、外部CPU76によって、外部用暗号鍵(共通鍵)Fデータ用レジスタ領域79へ設定され(S46)、外部用暗号鍵(共通鍵)Fデータで暗号化したプログラムデータをバス81に送出する。この暗号化されたプログラムデータは、バス81から外部I/F74を介して、共通バス29上に転送され、暗号/復号回路20へ送られる。暗号/復号回路20は、暗号鍵Fデータ用レジスタ領域70に設定された暗号鍵を用いて暗号化したプログラムデータを復号化し、プログラマブル回路48へ書き込む(S47)。プログラマブル回路48は、書き込まれたプログラムデータに従って回路(動作)の変更を行う(S48)。外部CPU76は、必要な動作が終了したら(S49)、プログラマブル回路48に予め定められた初期化データを書き込むことで回路を初期化する(S50)。
【0070】
また、外部CPU76は、CPU67に対して暗号鍵(共通鍵)Fデータ用レジスタ領域70のデータに全て0を書き込むように要求を出す(S51)。CPU67では、外部CPU76から上記要求を受信したら(S66)、鍵生成回路69に非アクティブ信号を設定する(S67)。鍵生成回路69は、非アクティブ信号が設定されたら、出力が全て0になるように設計される。CPU67は、鍵生成回路69に対して非アクティブ信号を設定後、外部CPU76に暗号鍵F解除完了信号を送信する(S68)。外部CPU76は、CPU67からの暗号鍵F解除完了信号を受信すると一連の動作が完了したとみなす(S52)。また、いずれの暗号鍵も設定されない場合には、暗号/復号回路20は暗号/復号動作を行わず、共通バス29とプログラマブル回路48が接続された状態となる。
【0071】
以上述べた通り、本実施例によれば、暗号鍵E用レジスタ領域84に暗号鍵Eが設定された場合にはCPU64のみが、暗号鍵Fデータ用レジスタ領域70に暗号鍵Fが設定され、かつ、暗号鍵(公開鍵)データレジスタ領域71に公開鍵が設定された場合には外部CPU76のみが、プログラマブル回路48にプログラムを設定可能とし、また、プログラマブル回路48に設定されたプログラムを読取可能とすることができる。これにより、SOC内のプログラマブル回路をSOCの内と外で共有しても、プログラマブル回路の生成データを暗号化することで、コンタミネーション無しにSOC内と外で独立した開発をすることが可能となる。

【特許請求の範囲】
【請求項1】
画像形成処理を実行するためのN個(N≧2)のプロセッサと、
前記N個のプロセッサ毎に独立して接続され、前記N個のプロセッサのそれぞれによって暗号鍵を設定可能であるN個の暗号鍵用レジスタと、
前記N個のプロセッサに接続され、前記N個の暗号鍵用レジスタのいずれかに設定された暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う暗号/復号回路と、
前記暗号/復号回路に接続されたプログラマブル回路と、を備え、
前記暗号鍵用レジスタに前記暗号鍵を設定したプロセッサのみが、前記プログラマブル回路に前記プログラムを設定可能であり、また、前記プログラマブル回路に設定された前記プログラムを読取可能であることを特徴とする画像形成装置用集積回路。
【請求項2】
画像形成処理を実行するためのN個(N≧2)のプロセッサと、
前記N個のプロセッサ毎に独立して接続され、前記N個のプロセッサのそれぞれによって第1の暗号鍵を設定可能であるN個の第1の暗号鍵用レジスタと、
前記N個のプロセッサ毎に独立して接続され、前記第1の暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行うN個の第1の暗号/復号回路と、
前記N個のプロセッサ毎に独立して接続され、前記N個のプロセッサのそれぞれによって第2の暗号鍵を設定可能であるN個の第2の暗号鍵用レジスタと、
前記N個の第1の暗号/復号回路にそれぞれ接続され、前記第2の暗号鍵を用いて暗号化されたプログラムの復号化処理又は前記プログラムの暗号化処理を行うN個の第2の暗号/復号回路と、
前記N個の第2の暗号/復号回路のそれぞれに接続されたN個のプログラマブル回路と、を備え、
前記第1の暗号鍵用レジスタに第1の暗号鍵を、また、前記第2の暗号鍵用レジスタに第2の暗号鍵を設定したプロセッサのみが、前記プログラマブル回路に前記プログラムを設定可能であり、また、前記プログラマブル回路に設定された前記プログラムを読取可能であることを特徴とする画像形成装置用集積回路。
【請求項3】
画像形成処理を実行するための第1、第2のプロセッサと、
前記第1のプロセッサに独立して接続され、前記第1のプロセッサによって第1の暗号鍵を設定可能である第1の暗号鍵用レジスタと、
前記第1のプロセッサに接続され、前記第1の暗号鍵を用いてプログラムの暗号化処理又は暗号化されたプログラムの復号化処理を行う暗号/復号回路と、
前記暗号/復号回路に接続されたプログラマブル回路と、
前記第2のプロセッサに独立して接続され、前記第2のプロセッサによって第2の暗号鍵を設定可能である第2の暗号鍵用レジスタと、
前記第2のプロセッサに独立して接続され、前記第2のプロセッサによって公開鍵を設定可能である公開鍵用レジスタと、
前記公開鍵により前記第2の暗号鍵の暗号化処理を行う暗号回路と、
前記第2のプロセッサ及び前記暗号回路に接続され、前記公開鍵で暗号化された第2の暗号鍵を、第3のプロセッサを備えた外部装置へ転送するための第1のインターフェースと、
前記第1のプロセッサ及び前記暗号/復号回路に接続され、前記外部装置に記憶され、該外部装置で暗号化されたプログラムを取得可能である第2のインターフェースと、を備え、
前記第1の暗号鍵用レジスタに前記第1の暗号鍵が設定された場合には前記第1のプロセッサのみが、前記第2の暗号鍵用レジスタに前記第2の暗号鍵が設定され、かつ、前記公開鍵用レジスタに前記公開鍵が設定された場合には前記第3のプロセッサのみが、前記プログラマブル回路に前記プログラムを設定可能であり、また、前記プログラマブル回路に設定された前記プログラムを読取可能であることを特徴とする画像形成装置用集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−268308(P2010−268308A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−119077(P2009−119077)
【出願日】平成21年5月15日(2009.5.15)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】