ところが、プログラマブルロジックデバイスが機能を実行するための回路データは不揮発性メモリなどの記憶部に予め記憶されているため、記憶部に記憶されている回路データを書き換えることにより、第三者が、容易に、プログラマブルロジックデバイスの機能を別の機能に変更することができる。
そのため、プログラマブルロジックデバイスが、ユーザの予期しない処理を行うおそれがある。例えば、FPGAに、或る機能のチップが接続されている場合に、当該FPGAがチップの解析を行う機能を実行するための回路データに書き換えられた場合、当該FPGAは、チップの解析を行う処理を実行する。
そのため、プログラマブルロジックデバイスが機能を実行するための回路データが第三者により書き換えられたことを適切に判断して、当該プログラマブルロジックデバイスが、ユーザの予期しない処理を行わないように措置することが望まれる。
ところで、記憶部はプログラマブルロジックデバイスに接続され、CPUなどの制御部(特許文献1ではシステムLSI)には接続されていないから、プログラマブルロジックデバイスに、記憶部の読み出し回路を構成しない限り、制御部が、プログラマブルロジックデバイスに接続されている記憶部にアクセスすることができない。
また、プログラマブルロジックデバイスに記憶部の読み出し回路を構成して、制御部が記憶部の回路データを読み出して回路データを精査することも考えられるが、この場合、バージョンアップなどで回路データを正規に更新した場合でも、書き換えを検出してしまう。
そのため、プログラマブルロジックデバイスが通電されて、記憶部に記憶されている回路データに基づいた回路が構成された後、プログラマブルロジックデバイスが実際に動作したときに、制御部が当該プログラマブルロジックデバイスの動作を確認して初めて回路データが不正に書き換えられたことを検出することとなる。
この場合、書き換えられた回路データに基づいた機能が長時間実行されると、プログラマブルロジックデバイスを組み込んだ機器の動作の安定を図る上で不都合である。
本発明は、上記問題を解決するために提案されるものであり、プログラマブルロジックデバイスが駆動するための回路データを記憶した記憶部をアクセスせず、且つ、回路データの不正書き換えを検出するために必要なプログラマブルロジックデバイスの通電時間を短縮して、回路データの不正書き換えを検出することができる不正書き換え検出回路及び画像形成装置を提供することを目的とする。
本発明の一局面に係る不正書き換え検出回路は、プログラマブルロジックデバイスの端子の状態を定義するための情報であって、前記端子を入力端子及び出力端子のうちいずれの端子とするかを表す端子種別を示し、且つ、前記端子種別が前記入力端子である前記端子をプルアップさせるかプルダウンさせるかを表す端子設定を示す状態定義情報、及び、前記プログラマブルロジックデバイスの内部の論理回路を表す論理回路情報からなる、前記プログラマブルロジックデバイスを駆動させるための回路データが予め記憶された第1記憶部と、前記第1記憶部に記憶されている前記回路データを読み込んで、前記端子を当該回路データに含まれる前記状態定義情報で示される状態とするとともに、前記回路データに含まれる前記論理回路情報で表される論理回路を構成して、前記構成した論理回路に基づく動作を開始することにより、プルアップされた前記入力端子をハイレベルにし、プルダウンされた前記入力端子をローレベルにし、前記出力端子を前記構成した論理回路の初期状態に応じた電圧レベルにするプログラマブルロジックデバイスと、前記プログラマブルロジックデバイスに駆動電力を供給する電力供給部と、前記端子に接続され、当該端子の状態を、当該端子がハイレベルであるかローレベルであるかによって検出する端子状態検出部と、前記プログラマブルロジックデバイスにより前記回路データが読み込まれた直後に前記端子がとるべき状態として、前記端子の電圧レベルがハイレベルであるかローレベルであるかを示した状態情報が予め記憶された第2記憶部と、前記電力供給部による前記駆動電力の供給が開始された後、予め設定された期間内に、前記端子状態検出部により検出された端子の状態が、前記第2記憶部に予め記憶されている状態情報で示された状態と異なるか否かを判断し、前記端子状態検出部により検出された端子の状態が、前記第2記憶部に予め記憶されている状態情報で示された状態と異なるときには、前記第1記憶部に記憶されている回路データの不正書き換えを検出する制御部と、を備えることを特徴とする(請求項1)。
この構成によれば、第1記憶部に記憶されている、プログラマブルロジックデバイスの端子の状態を定義するための状態定義情報と、プログラマブルロジックデバイスの内部の論理回路を表す情報とからなる回路データの不正書き換えがあったことを以下のように判断する。
すなわち、この構成によれば、プログラマブルロジックデバイスへの駆動電力の供給が開始されてから予め設定された期間内に、端子状態検出部により検出された、プログラマブルロジックデバイスの端子の状態と、第2記憶部に予め記憶された状態情報で示された、プログラマブルロジックデバイスにより回路データが読み込まれた直後に端子がとるべき状態とが異なるか否かを、制御部により判断する。
この判断の結果、端子状態検出部により検出された端子の状態が、第2記憶部に予め記憶された状態情報で示された状態と異なるときに、制御部は、第1記憶部に記憶されている回路データの不正書き換えを検出する。
これにより、プログラマブルロジックデバイスに駆動電力の供給が開始されてから予め設定された期間内に、当該プログラマブルロジックデバイスの端子の状態を確認して、回路データの不正書き換えを検出することができる。
そのため、プログラマブルロジックデバイスが駆動するための回路データを記憶した記憶部をアクセスせず、且つ、回路データの不正書き換えを検出するために必要なプログラマブルロジックデバイスの通電時間を短縮して、回路データの不正書き換えを検出することができる。
また、端子の状態を検出して、回路データの不正書き換えの有無を判断することができるため、不正書き換えの有無を判断するための専用の端子を必要としない。そのため、汎用のプログラマブルロジックデバイスに接続された記憶部に記憶されている回路データの書き換えの有無を判断することができる。
上記構成において、前記制御部は、前記回路データの不正書き換えを検出したときには、前記プログラマブルロジックデバイスが前記第1記憶部に記憶されている回路データに基づいて駆動することを停止させる駆動停止処理を実行することが好ましい(請求項2)。
この構成によれば、不正書き換えがあったときには、プログラマブルロジックデバイスが第1記憶部に記憶されている回路データに基づいて駆動することが停止する。これにより、回路データの不正な書き換えがあったときに、プログラマブルロジックデバイスがユーザの予期しない処理を開始したとしても、当該プログラマロジックデバイスがユーザの予期しない処理を行う時間を、最小限に抑制することができる。
上記構成において、前記制御部は、前記駆動停止処理として、前記電力供給部による前記プログラマブルロジックデバイスの駆動電力の供給を中止することが好ましい(請求項3)。
この構成によれば、不正書き換えがあったときには、プログラマブルロジックデバイスの駆動電力の供給を中止する。これにより、プログラマブルロジックデバイスが第1記憶部に記憶されている回路データに基づいて駆動することを停止させることができる。
上記構成において、前記プログラマブルロジックデバイスは、リセット信号を受け付けるリセット端子をさらに備え、前記リセット端子が受け付けるリセット信号がアサートされたときにリセットされる構成とされており、前記不正書き換え検出回路は、前記リセット端子に前記リセット信号を出力するリセット信号出力部をさらに備え、前記制御部は、前記駆動停止処理として、前記リセット信号をアサートすることが好ましい(請求項4)。
この構成によれば、不正書き換えがあったときには、プログラマブルロジックデバイスがリセットされて、当該プログラマブルロジックデバイスが内部にロードした回路データがクリアされる。
これにより、プログラマブルロジックデバイスが第1記憶部に記憶されている回路データに基づいて駆動することを停止させることができる。
上記構成において、前記プログラマブルロジックデバイス、前記第1記憶部、前記電力供給部、前記端子状態検出部、前記第2記憶部、及び、前記制御部は、基板上に配置されており、前記プログラマブルロジックデバイスの駆動電力を当該プログラマブルロジックデバイスに供給するための電力ラインが、前記基板の表面に露出することなく内層に配置されていることが好ましい(請求項5)。
この構成によれば、プログラマブルロジックデバイスの駆動電力をプログラマブルロジックデバイスに供給するための電力ラインが、基板の表面に露出することなく内層に配置されている。
これにより、第三者が電力ラインを視認しにくくなるため、第三者が、プログラマブルロジックデバイスの駆動停止処理が行われないように電力ラインを切断することを防止することができる。
上記構成において、前記プログラマブルロジックデバイス、前記第1記憶部、前記電力供給部、前記端子状態検出部、前記第2記憶部、前記制御部、及び、前記リセット信号出力部は、基板上に配置されており、前記リセット信号を前記リセット端子に出力するためのリセット信号ラインが、前記基板の表面に露出することなく内層に配置されていることが好ましい(請求項6)。
この構成によれば、リセット信号をリセット端子に出力するためのリセット信号ラインが、基板の内層に配置されている。
これにより、第三者がリセット信号ラインを視認しにくくなるため、第三者が、プログラマブルロジックデバイスの駆動停止処理が行われないようにリセット信号ラインを細工すること(例えばリセット信号ラインを切断すること)が困難となる。
また、本発明の他の局面に係る画像形成装置は、請求項1乃至請求項6のいずれか一項に記載の不正書き換え検出回路と、原稿の画像を表す画像データに画像処理を施す画像処理部と、前記画像データを記録紙上に形成する画像形成部と、を備えており、前記画像処理部は、前記プログラマブルロジックデバイスで構成されていることを特徴とする
(請求項7)。
この構成によれば、請求項1乃至請求項6のいずれか一項の効果を奏する画像形成装置を提供することができる。
本発明によれば、プログラマブルロジックデバイスに駆動電力の供給が開始されてから予め設定された期間内に、当該プログラマブルロジックデバイスの端子の状態を確認して、回路データの不正書き換えを検出することができる。
そのため、プログラマブルロジックデバイスが駆動するための回路データを記憶した記憶部をアクセスせず、且つ、回路データの不正書き換えを検出するために必要なプログラマブルロジックデバイスの通電時間を短縮して、回路データの不正書き換えを検出することができる。
以下、本発明に係る不正書き換え検出回路及び画像形成装置の一実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
図1は、本発明の一実施形態に係る画像形成装置の概略断面図である。図1に示されるように、画像形成装置Aは、画像読取部200と装置本体3とを備える。画像読取部200は、原稿給紙部210と、スキャナ部220と、CIS231と、ユーザインタフェース部Iと、後述する反転機構を備えてなる。
原稿給紙部210は、ADF(Automatic Document Feeder)を備え、原稿トレイ211、ピックアップローラ212、プラテン213、排紙ローラ214及び排紙トレイ215を有する。原稿トレイ211には、読取対象とされる原稿が載置される。原稿トレイ211に載置された原稿は、1枚ずつピックアップローラ212によって取り込まれ、間隙を介して順次プラテン213へ搬送される。プラテン213を経由した原稿は、排紙ローラ214によって排紙トレイ215へ順次排出される。
前記プラテン213の周面に対向する位置のうち、原稿の搬送方向において読取位置Pより手前の予め定められた位置には、用紙を検出する図略のタイミングセンサが設置されており、該タイミングセンサの出力要求に基づき、前記読取位置Pへの原稿の搬送タイミングが図られる。前記タイミングセンサは、例えばフォトインタラプタにより構成される。
スキャナ部220は、原稿の画像を光学的に読み取って画像データを生成するものである。スキャナ部220は、ガラス221、光源222、第1ミラー223、第2ミラー224、第3ミラー225、第1キャリッジ226、第2キャリッジ227、結像レンズ228、CCD(Charged Coupled Device)229を備える。
このスキャナ部220は、光源222として冷陰極蛍光管等の白色蛍光ランプが用いられ、前記第1ミラー223、第2ミラー224、第3ミラー225、第1キャリッジ226、第2キャリッジ227及び結像レンズ228により、原稿からの光をCCD229に導く。スキャナ部220は、光源222として冷陰極蛍光管等の白色蛍光ランプを用いて構成されていることから、光源として3色LED等が用いられる後述のCIS231よりも色再現性に優れる。
ガラス221には、前記原稿給紙部210によらない原稿読取時に、ユーザの手動により原稿が載置される。光源222及び第1ミラー223は第1キャリッジ226によって支持され、第2ミラー224及び第3ミラー225は第2キャリッジ227によって支持されている。
画像読取部200の原稿読取方式として、ガラス221上に載置された原稿をスキャナ部220が読み取るフラットベッド読取モードと、原稿を原稿給紙部210(ADF)によって取り込み、その搬送途中で原稿を読み取るADF読取モードがある。
フラットベッド読取モードでは、光源222がガラス221上に載置された原稿を照射し、主走査方向1ライン分の反射光が第1ミラー223、第2ミラー224、第3ミラー225の順に反射して、結像レンズ228に入射する。結像レンズ228に入射した光はCCD229の受光面で結像される。
CCD229は一次元のイメージセンサであり、1ライン分の原稿の画像データを重複して処理する。第1キャリッジ226及び第2キャリッジ227は、主走査方向と直交する方向(副走査方向、矢印Y方向)に移動可能に構成されており、1ライン分の読み取りが終了すると、副走査方向に第1キャリッジ226及び第2キャリッジ227が移動し、次のラインの読み取りが行われる。
ADF読取モードでは、原稿給紙部210が原稿トレイ211に載置された原稿をピックアップローラ212によって1枚ずつ取り込む。このとき、第1キャリッジ226及び第2キャリッジ227は、読取窓230の下方に位置する予め定められた読取位置Pに配置される。
原稿給紙部210による原稿搬送で、原稿がプラテン213から排紙トレイ215への搬送経路に設けられた読取窓230上を通過するとき、光源222が原稿を照射し、主走査1ライン分の反射光が第1ミラー223、第2ミラー224、第3ミラー225の順に反射して、結像レンズ228に入射する。結像レンズ228に入射した光はCCD229の受光面で結像される。続いて原稿は原稿給紙部210によって搬送され、次のラインが読み取られる。
更に、原稿給紙部210は、切換ガイド216、反転ローラ217及び反転搬送路218を備えた原稿反転機構を有する。この原稿反転機構が、1回目のADF読み取りによって表面が読み取られた原稿を表裏反転させて読取窓230に再搬送することで、再度CCD229によって裏面の読み取りが行われる。
この原稿反転機構は、両面読み取り時にのみ動作し、片面読み取り時は動作しない。片面読み取り時及び両面読み取り時において裏面の読み取り後、切換ガイド216は上側に切り替えられ、プラテン213を経た原稿は、排紙ローラ214によって排紙トレイ215に排紙される。
両面読み取り時における表面読み取り後、切換ガイド216は下側に切り替えられ、プラテン213を経た原稿は反転ローラ217によって反転搬送路218へ搬送される。その後、切換ガイド216は上側へ切り替わり、反転ローラ217が逆回転して原稿をプラテン213へ再給紙する。以下、原稿反転機構を用いて原稿の両面を読み取らせるモードを両面反転読取モードと表記する。
更に、本実施形態の画像読取部200は、ADF読取モード時において、前述したように原稿の搬送途中でCCD229(スキャナ部220)によって原稿の表面の読み取りを行わせると略重複して(略並行して)、CIS231によって原稿の裏面の読み取りを行わせることが可能である。この場合、原稿トレイ211から原稿給紙部210により搬送された原稿は、読取窓230上を通過するときにCCD229によって表面が読み取られ、更にCIS231の配置箇所を通過する際に裏面が読み取られる。なお、CIS231では、光源としてRGBの3色LED等が用いられる。
このようにCCD229とCIS231を用いることで、原稿給紙部210による原稿トレイ211から排紙トレイ215までの一回の原稿搬送操作(ワンパス)によって原稿の表裏両面の読み取りが可能となる。以下、このようにCCD229とCIS231を用いて原稿の両面を読み取らせるモードを両面同時読取モードと表記する。
この両面反転読取モード及び両面同時読取モードは、ADF読取モードを用いて原稿の両面読み取りを行う際の読取モードとして備えられている。両面反転読取モードは、両面の印刷画像の画質を揃えたい場合に利用される一方、両面同時読取モードは、両面の印刷画像の画質に差があっても、読取時間の短縮化を優先させたい場合に利用される。なお、本実施形態における画像形成装置Aは、両面同時読取モードに初期設定されており、前記読取モードのモード設定操作が何も行われないまま画像形成指示が入力された場合には、両面同時読取モードで原稿の画像読取動作が行われるようになっている。
画像処理装置Aは、装置本体3と、装置本体3の左方に配設されたスタックトレイ6とを有している。装置本体3は、複数の給紙カセット461と、給紙カセット461から記録紙を1枚ずつ繰り出して画像形成部40へ搬送する給紙ローラ462と、給紙カセット461から搬送されてきた記録紙に画像を形成する画像形成部40とを備える。また、装置本体3は、給紙トレイ471と該給紙トレイ471に載置された原稿を1枚ずつ画像形成部40に向けて繰り出す繰り出しローラ472とを備える。
画像形成部40は、感光体ドラム43の表面から残留電荷を除電する除電装置421と、除電後の感光体ドラム43の表面を帯電させる帯電装置422と、スキャナ部220で取得された画像データに基づいてレーザ光を出力して感光体ドラム43の表面を露光し、当該感光体ドラム43の表面に静電潜像を形成する露光装置423と、前記静電潜像に基づいて感光体ドラム43上に、シアン(C)、マゼンタ(M)、イエロー(Y)及びブラック(K)の各色のトナー像を形成する現像装置44K,44Y,44M,44Cと、感光体ドラム43に形成された各色のトナー画像が転写されて重ね合わせされる転写ドラム49と、転写ドラム49上のトナー像を用紙に転写させる転写装置41と、トナー像が転写された用紙を加熱してトナー像を用紙に定着させる定着装置45とを備えている。
なお、シアン、マゼンタ、イエロー及びブラックの各色に対するトナーの供給は、図略のトナーカートリッジから行われる。また、画像形成部40を通過した記録紙をスタックトレイ6又は排出トレイ48まで搬送する搬送ローラ463,464等が設けられている。
記録紙の両面に画像を形成する場合は、画像形成部40で記録紙の一方の面に画像を形成した後、この記録紙を排出トレイ48側の搬送ローラ463にニップされた状態とする。この状態で搬送ローラ463を反転させて記録紙をスイッチバックさせ、記録紙を用紙搬送路Lに送って画像形成部40の上流域に再度搬送し、画像形成部40により他方の面に画像を形成した後、記録紙をスタックトレイ6又は排出トレイ48に排出する。
また、装置本体3の前方には、タッチパネルなどで構成された表示部106、及び、各種の操作ボタンを有する操作部105が組み込まれたユーザインタフェース部Iが、装置本体3の前方に露出するように設けられている。
図2は、図1に示す画像形成装置の概略構成の一例を示した機能ブロック図である。図2に示すように、画像形成装置Aは、ユーザインタフェース部I、CPU(制御部)10などを備えて構成されている制御モジュール1、ROM(Read Only Memory)101、RAM(Ramdom Access Memory)102、画像読取部200、画像形成部40、画像データに対して所定の画像処理を施す画像処理部100、LANなどの通信ネットワークに接続するためのネットワークインタフェース103、及び、公衆回線を通じたファクシミリ通信を行うためのFAX通信部104を備える。
この画像形成装置Aにおいて、ROM101及びRAM102には、この画像形成装置Aが動作するために必要な各種のデータが記憶されている。
また、この画像形成装置Aでは、操作部105、表示部106、画像処理部100、ネットワークインタフェース103、及び、FAX通信部104は、それぞれ、プログラマブルロジックデバイスの1つであるFPGA(Field Programmable Gate Array)を用いて構成されている。
この画像形成装置Aでは、操作部105、表示部106、画像読取部200、画像形成部40、画像処理部100、ネットワークインタフェース103、及び、FAX通信部104は、それぞれ、FPGA2として本発明の一実施形態に係る不正書き換え検出回路に組み込まれている。
図3は、本発明の一実施形態に係る不正書き換え検出回路の概略構成の一例を示した機能ブロック図である。
図3に示す不正書き換え検出回路Cは、基板B上に、制御モジュール1、FPGA2、及びEEPROM(第1記憶部)4が配置されて構成されている。
FPGA2は、各端子Tを入力端子、出力端子、及び、入出力端子のうち、いずれの端子として用いるかを設定可能に構成されている。また、FPGA2は、入力端子、及び、入力状態とされている入出力端子について、プルアップ及びプルダウンのいずれかを設定可能に構成されている。このような設定は後述する回路データにより設定されている。
EEPROM4は、端子Tの状態を定義するための状態定義情報と、FPGA2の内部の論理回路を表す論理回路情報とからなる回路データが記憶されている。このEEPROM4は、FPGA2に接続されており、EEPROM4に記憶されている回路データがFPGA2によって読み込まれる。
FPGA2は、EEPROM4から読み込んだ回路データに基づいて駆動する。この回路データは、状態定義情報において、各端子Tについて、FPGA2によって回路データが読み込まれた後に端子Tがとるべき状態を示している。
例えば、状態定義情報は、各端子Tについて、入力端子、出力端子、及び入出力端子のうち、いずれの端子とするかを表す端子種別を示している。また、状態定義情報は、端子種別が入力端子である端子T、及び、端子種別が入出力端子である端子Tについて、端子Tをプルアップさせるか、プルダウンさせるかを表す端子設定を示している。
FPGA2は、以上の回路データを読み込んで、各端子Tを、状態定義情報で示される状態とするとともに、回路情報で表される論理回路を構成する。すると、FPGA2において、構成された回路に基づく動作が開始される。そうすると、当該回路の初期状態に応じた信号が出力端子から出力されることになる。
制御モジュール1は、CPU10の他に、電力供給部11、端子状態検出部12、リセット信号出力部13、及び、EEPROM(第2記憶部)14が配置されている。制御モジュール1において、電力供給部11、端子状態検出部12、リセット信号出力部13,及び、EEPROM14は、それぞれ、CPU10に接続されており、CPU10により制御される。
尚、本実施形態では、電力供給部11、端子状態検出部12、リセット信号出力部13、及び、EEPROM14は、制御モジュール1に組み込まれている。しかしながら、本発明ではこの例には限られず、制御モジュール1とは独立して配置されていてもよい。
電力供給部11は、給電端子T1を備えており、給電端子T1には、FPGA2の受電端子T3が接続されている。電力供給部11は、電力ラインL2を通じて、FPGA2が駆動するための駆動電力を、給電端子T1から受電端子T2に向けて供給する。これにより、FPGA2は、駆動電力を受電する。
EEPROM14は、CPU10が、後述する不正書き換え判断処理を行うために、FPGA2によってEEPROM4に記憶されている回路データが読み込まれた直後に各端子Tがとるべき状態を示した状態情報を記憶している。
例えば、状態情報は、入力端子、出力端子、及び、入出力端子のいずれかとして設定されている各端子Tについて、端子Tの電圧レベルがハイレベルであるかローレベルであるかを示している。
端子状態検出部12は、CPU10とFPGA2とに接続されており、CPU10によりFPGA2に向けて出力された信号、及び、FPGA2によりCPU10に向けて出力された信号を中継する。
また、端子状態検出部12は、FPGA2の複数の端子Tに信号線L1を通じて接続されており、EEPROM4に記憶されている回路データをFPGA2が読み込んだ直後の各端子Tの状態を検出する。
端子状態検出部12は、各端子Tの状態を、例えば、以下のように判断する。すなわち、端子状態検出部12は、各信号線L1について、信号線L1の電圧レベルがハイレベルであるかローレベルであるかを検出する。
そして、端子状態検出部12は、電圧レベルがハイレベルの信号線L1が接続されている端子Tの電圧レベルがハイレベルであることを検出し、電圧レベルがローレベルの信号線L1に接続されている端子Tの電圧レベルがローレベルであることを検出する。
CPU10は、端子状態検出部12により検出された各端子Tの状態によって、回路データの不正な書き換えがあったか否かを検出する。すなわち、CPU10は、各端子Tについて端子状態検出部12により検出された状態が、EEPROM14に当該端子Tについて記憶されている状態と異なるか否かを判断し、異なる場合には、EEPROM4に記憶されている回路データの不正書き換えがあったことを検出する。
リセット信号出力部13は、リセット信号出力端子T2を備えており、リセット信号出力端子T2には、FPGA2のリセット信号入力端子(リセット端子)T4が接続されている。リセット信号出力部13は、リセット信号ラインL3を通じて、FPGA2をリセットするためのリセット信号を、リセット信号出力端子T2からリセット信号入力端子T4に向けて供給する。
リセット信号出力部13は、FPGA2をリセットする際には、リセット信号を、当該リセット信号が、ハイレベルからローレベル、或いは、ローレベルからハイレベルに切り替わるようにアサートする。FPGA2は、リセット信号入力端子T4に入力されるリセット信号がアサートされたときにはリセットされて、内部にロードした回路データをクリアする。
図4は、図3に示す不正書き換え検出回路の断面を示し、電力ラインL2の配置を説明するための図である。図5は、図3に示す不正書き換え検出回路の断面を示し、リセット信号ラインL3の配置を説明するための図である。
図4に示すように、制御モジュール1とFPGA2とは、例えば、BGA(Ball grid array)パッケージのようなリードレスなパッケージとされている。電力供給部11は、このようなパッケージに設けられており、当該パッケージの下部に給電端子T1及び受電端子T3が配置されている。給電端子T1と受電端子T3との間には、基板Bの表面に露出せず内層のみに位置する給電ラインL2が配置されている。
また、図5に示すように、リードレスなパッケージには、リセット信号出力部13が設けられており、当該パッケージの下部にリセット信号出力端子T2及びリセット信号入力端子T4が配置されている。リセット信号出力端子T2とリセット信号入力端子T4との間には、基板Bの表面に露出せず内層のみに位置するリセット信号ラインL3が配置されている。
以上により、第三者が、電力ラインL2やリセット信号ラインL3を視認しにくくなり、電力ラインL2やリセット信号ラインL3が第三者により細工されて、後述する駆動停止処理が阻害されることを防止することができる。
尚、後述する駆動停止処理が阻害されることを防止する観点では、電力供給部11とCPU10との間の制御ラインL4や、リセット信号出力部13とCPU10との間の制御ラインL5を、基板Bの内層に配置してもよい。
以下、不正書き換え判断処理、及び、駆動停止処理を含めた制御モジュール1の動作について説明する。図6は、制御モジュール1の動作の一例を示したフローチャートである。
制御モジュール1は、電力供給部11により、FPGA2に対する駆動電力の供給を開始する(ステップS1)。これにより、FPGA2は、EEPROM4に記憶されている回路データを読み出して当該回路データに基づいた駆動を開始する。
すると、プルアップされた入力端子はハイレベルとなり、プルダウンされた入力端子はローレベルとなり、出力端子は回路の初期状態に応じた信号レベルとなる結果、FPGA2の各端子Tでは、電圧レベルがハイレベル及びローレベルのいずれかの状態となる。
ついで、制御モジュール1は、端子状態検出部12により、FPGA2の各端子Tについて、端子Tの状態を検出する(ステップS2)。端子Tの状態の検出手法は、例えば、先述した手法が挙げられる。
ついで、制御モジュール1は、CPU10により、端子状態検出部12により検出された端子Tの状態が、予めEEPROM14に記憶されている端子Tの状態と一致するか否かを、各端子Tについて判断する(ステップS3;不正書き換え判断処理)。
ステップS3において、いずれか1つの端子Tについて、端子状態検出部12により検出された端子Tの状態が、予めEEPROM14に記憶されている端子Tの状態と一致しないときには(ステップS4のNO)、CPU10に対して、回路データの不正な書き換えがあったと判断させて、駆動停止処理を行わせる(ステップS5)。
一方、ステップS3において、全ての端子Tについて一致するときには(ステップS3のYES)、制御モジュール1は駆動停止処理を行わない。そのため、FPGA2は、回路データに基づく駆動を継続し、その結果、回路データに基づく動作を実際に開始する。
CPU10による駆動停止処理(ステップS5)は、例えば、以下の処理である。すなわち、CPU10は、制御ラインL4を通じて電力供給部11に、FPGA2に対する駆動電力の供給を中止することを要求する制御信号を出力して、電力供給部11によるFPGA2に対する駆動電力の供給を中止させる。これにより、FPGA2の駆動が中止される。
或いは、CPU10は、制御ラインL5を通じてリセット信号出力部13に、FPGA2に出力されるリセット信号をアサートすることを要求する制御信号を出力して、リセット信号をアサートする。これにより、FPGA2にロードされている回路データがクリアされるため、FPGA2の駆動が中止される。
以上のように、不正書き換え検出回路Cによれば、FPGA2により回路データが読み込まれ、各端子Tの状態が、状態定義情報或いは回路の初期状態に応じた信号レベルに応じてハイレベル或いはローレベルとなったときに、回路データの不正書き換えの有無を判断する。
そのため、FPGA2への駆動電力の供給が開始された後、FPGA2に構成された回路の状態が初期状態から他の状態に変化するまでの間に、回路データの不正書き換えの有無を検出することができる。
これにより、FPGA2が駆動するための回路データを記憶したEEPROM4をアクセスせず、且つ、回路データの不正書き換えを検出するために必要なFPGA2の通電時間を短縮して、回路データの不正書き換えを検出することができる。
また、不正書き換え検出回路Cによれば、回路データの不正な書き換えがあったと判断されたときには駆動停止処理が行われるため、回路データの不正な書き換えがあったときに、FPGA2に構成された回路の状態が初期状態から他の状態に変化するまでの間に、FPGAの駆動を停止させることができる。
そのため、回路データが書き換えられて、FPGA2が、ユーザの予期しない処理を開始したとしても、その処理の実行時間を極力抑制することができる。