(57)【特許請求の範囲】
【請求項１】
第１ＯＳプログラム及び第２ＯＳプログラムを記憶する外部メモリを接続する接続手段と、
前記第１ＯＳプログラムを実行する第１制御手段と、
前記第２ＯＳプログラムを実行する第２制御手段と、
データを記憶する記憶手段と、
前記第１制御手段による前記記憶手段へのアクセスを禁止するか否かを制御するアクセス制御手段とを有し、
前記第１制御手段は、前記第１ＯＳプログラムを実行することにより、前記接続手段に接続される前記外部メモリから前記第２ＯＳプログラムを取得して前記第２制御手段に提供し、
前記第２制御手段は、該提供された前記第２ＯＳプログラムを実行することにより、前記第１制御手段による前記記憶手段へのアクセスを可能にするための信号を前記アクセス制御手段に送信し、
前記アクセス制御手段は、前記第２制御手段から前記信号を受信するまでは前記第１制御手段による前記記憶手段へのアクセスを禁止し、前記第２制御手段から前記信号を受信したことに応じて前記第１制御手段による前記記憶手段へのアクセスを可能にすることを特徴とする情報処理装置。
【請求項２】
前記記憶手段には、前記第１ＯＳプログラムが記憶されており、
前記アクセス制御手段は、前記第１制御手段が前記記憶手段に記憶された前記第１ＯＳプログラムを実行する場合は前記第１制御手段による前記記憶手段へのアクセスを可能にし、前記第１制御手段が前記外部メモリに記憶された前記第１ＯＳプログラムを実行する場合は前記第１制御手段による前記記憶手段へのアクセスを前記信号が受信されるまで禁止することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１制御手段が前記外部メモリに記憶された第１ＯＳプログラムを実行するか否かを示す情報を格納する格納手段をさらに備え、
前記アクセス制御手段は、前記格納手段に前記第１制御手段が前記外部メモリに記憶された第１ＯＳプログラムを実行することを示す情報が格納されていない場合は前記第１制御手段による前記記憶手段へのアクセスを可能にし、前記格納手段に前記第１制御手段が前記外部メモリに記憶された第１ＯＳプログラムを実行することを示す情報が格納されている場合は前記第１制御手段による前記記憶手段へのアクセスを前記信号が受信されるまで禁止することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記記憶手段は、前記第１ＯＳプログラムにより実行可能なアプリケーションプログラムを記憶することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するものである。
【背景技術】
【０００２】
近年、画像形成装置に対する要求は、単なる印刷を行う印刷装置から、スキャン、ファクスといった複数の機能を実現する複合機能装置へとシフトしている。そして、画像形成装置において、複数の機能を実現するためのアプリケーションプログラムを実行するために、オペレーティングシステムが広く用いられている。また、画像形成装置の高度化に伴い、装置の保守目的で保守担当者が記憶装置（例えば、リムーバブルメディア）を利用して、画像形成装置の起動を行う仕組みが組み込まれるようになってきた。そして、記憶装置からのオペレーティングシステムを読み込むことで、画像形成装置を動作状態に起動させることは、画像形成装置を保守する面からは非常に有用である。しかし、記憶装置に不適切なオペレーティングシステムが記憶されていた場合、システム破壊やデータ盗聴などの問題を生じる危険性がある。また、記憶装置から画像形成装置が備える他の記憶装置（例えば、ハードディスク）に不適切なアプリケーションプログラムが格納されてしまうことも考えられる。その場合、不適切なアプリケーションプログラムの実行により、システム破壊やデータ盗聴などの問題を生じる危険性がある。
【０００３】
特許文献１は、シリアル番号が予め登録されているリムーバブルメディア以外からの起動を抑止する方法を示している。具体的に、特許文献１に記載の方法は、リムーバブルメディアのシリアル番号を、当該リムーバブルメディアを用いて起動させる装置に登録する。装置は、登録されているシリアル番号を有するリムーバブルメディアが使用された場合のみ起動処理を行うことで、当該装置に対する不適切なアクセスを抑制している。
【特許文献１】特開２００４−３０３２１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術の方法では以下のような問題がある。例えば、特許文献１に記載の方法では、特定のリムーバブルメディアと画像形成装置とを関連付ける必要性がある。したがって、リムーバブルメディアを用いて多数の装置の保守を行う場合には、各画像形成装置に対して、使用する全てのリムーバブルメディアのシリアル番号を登録する必要がる。このように、従来技術では、保守を行う画像形成装置の台数が増加するほど、管理者の作業量が増大してしまうという問題があった。
【０００５】
また、従来技術の方法では、画像形成装置が備える他の記憶装置（例えば、ハードディスク）に不適切なアプリケーションプログラムが格納されてしまう場合の対策とならない。
【０００６】
本発明は、上述の問題に鑑みて成されたものであり、第１システムと第２システムとを備える情報処理装置において、第１システムが備える記憶手段に対するアクセスの許可／禁止を第２システムから送信される信号に基づいて適切に制御する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、例えば、情報処理装置として実現できる。第１ＯＳプログラム及び第２ＯＳプログラムを記憶する外部メモリを接続する接続手段と、第１ＯＳプログラムを実行する第１制御手段と、第２ＯＳプログラムを実行する第２制御手段と、データを記憶する記憶手段と、第１制御手段による記憶手段へのアクセスを禁止するか否かを制御するアクセス制御手段とを有し、第１制御手段は、第１ＯＳプログラムを実行することにより、接続手段に接続される外部メモリから第２ＯＳプログラムを取得して第２制御手段に提供し、第２制御手段は、提供された第２ＯＳプログラムを実行することにより、第１制御手段による記憶手段へのアクセスを可能にするための信号をアクセス制御手段に送信し、アクセス制御手段は、第２制御手段から信号を受信するまでは第１制御手段による記憶手段へのアクセスを禁止し、第２制御手段から信号を受信したことに応じて第１制御手段による記憶手段へのアクセスを可能にすることを特徴とする。
【発明の効果】
【０００９】
本発明は、第１システムと第２システムとを備える情報処理装置において、第１システムが備える記憶手段に対するアクセスの許可／禁止を第２システムから送信される信号に基づいて適切に制御する情報処理装置を提供できる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明に係る実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に記載された発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。また、ここでは、画像形成装置としてプリンタを用いて説明を記載する。しかしながら、本発明における画像形成装置は、複合機、コピー機、ＦＡＸなど、記録材に画像を形成する装置であればよい。また、本発明は、一適用例として、カラーレーザプリンタによって実現される。しかしながら、本発明は、インクジェットプリンタ等、他の画像印刷方式を採用したプリンタによって実現されてもよい。
【００１１】
［第１実施形態］
以下では、図１乃至図６、及び図９を参照して、第１実施形態について説明する。図１は、第１実施形態に係るカラーレーザービームプリンタ（以下プリンタと称す。）の構成例を示す断面図である。
【００１２】
図１に示す１００はプリンタを示す。プリンタ１００は、外部に接続されているホストコンピュータから供給されるプリントデータ（文字コードや画像データ等）及び制御コードから成る印刷命令を受信して記憶する。その後、プリンタ１００は、印刷命令に従って、対応する文字パターンやイメージ等を作成し、記録材に可視像を形成する。
【００１３】
プリンタ１００は、システム制御部１１０、操作パネル１２０、出力制御部１３０、光学ユニット１４０及び感光ドラム１５１を備える。さらに、プリンタ１００は、選択機構部１５２、保持フレーム１５３、転写ドラム１５４、定着ユニット１５５、帯電器１５６、クリーナー１５７、分離爪１５８、排紙部１５９、排出トレイ１６０及び記録材カセット１６１を備える。
【００１４】
システム制御部１１０は、ホストコンピュータから供給される印刷命令を解析し、印刷イメージを生成するとともに、プリンタ１００の制御を行う。また、システム制御部１１０は、ユーザによる操作及びユーザに対する状態通知を行うための操作パネル１２０と接続される。操作パネル１２０は、スイッチ及びＬＥＤ表示器等を備え、プリンタ１００の筐体の一部として実装される。システム制御部１１０において生成された最終的な印刷イメージは、ビデオ信号として出力制御部１３０に送出される。出力制御部１３０は、光学ユニット１４０及び各種駆動系機構部に対し制御信号を出力し、印刷処理を制御する。
【００１５】
プリンタ１００において、記録材カセット１６１から給送された記録材Ｐは、その先端がグリッパ１５４ｆにより狭持されて、転写ドラム１５４の外周に保持される。感光ドラム１５１には、４色に色分解された原稿画像の静電潜像が光学ユニット１４０によって形成される。
【００１６】
具体的に、まず、感光ドラム１５１は、帯電器１５６によって所定の極性で均一に帯電される。ここで、システム制御部１１０において、デバイス依存ビットマップとして展開された印刷命令が、対応するパターンのビデオ信号に変換され光学ユニット１４０に出力される。光学ユニット１４０は、静電潜像を形成するために、半導体レーザ１４１、ポリゴンミラー１４２、スキャナモータ１４３、ポリゴンレンズ１４４及び反射鏡１４５を備える。ビデオ信号の入力に応じて半導体レーザ１４１から発射されるレーザ光は、オンオフ制御される。さらに、レーザ光は、スキャナモータ１４３によって高速回転するポリゴンミラー１４２で反射され、ポリゴンレンズ１４４、反射鏡１４５を介して感光ドラム１５１上を走査露光する。これにより、感光ドラム１５１上にはビデオ信号に対応した静電潜像が形成される。
【００１７】
形成された静電潜像は、各色の現像器Ｄｙ，Ｄｍ，Ｄｃ，Ｄｂにより、順次、現像される。現像器Ｄｙ，Ｄｍ，Ｄｃ，Ｄｂは、順に、イエロー（Ｙ），マゼンタ（Ｍ），シアン（Ｃ），ブラック（Ｂ）のトナーを有する。続いて、現像された各色のトナー像が転写ドラム上の記録材Ｐに重ねて転写されることにより、記録材Ｐ上に多色画像が形成される。
【００１８】
具体的に、Ｍ（マゼンタ）色の静電潜像がＭ（マゼンタ）色の現像器Ｄｍにより現像され、感光ドラム１５１上にＭ（マゼンタ）色の第１のトナー像が形成される。一方、所定のタイミングで記録材Ｐが給送され、転写ドラム１５４には、トナーと反対極性（例えばプラス極性）の転写バイアス電圧が印加される。これにより、感光ドラム１５１上の第１トナー像が記録材Ｐに転写されるとともに、記録材Ｐが転写ドラム１５４の表面に静電吸着される。
【００１９】
その後、感光ドラム１５１に残留するＭ（マゼンタ）色トナーがクリーナー１５７によって除去され、プリンタ１００は、次の色の潜像形成及び現像行程に移行する。以下同様に、Ｃ（シアン）、Ｙ（イエロー）、Ｂｋ（ブラック）の順で各色のトナー像の転写が行われる。但し、各色の転写時には、転写ドラム１５４には前回よりも高いバイアス電圧が印加される。
【００２０】
ここで、選択機構部１５２の動作について説明する。選択機構部１５２は、保持フレーム１５３に接続され、回転軸１５２ａを備える。保持フレーム１５３は、ソレノイド１５３ａ及び支点１５３ｂを有する。各色の現像器Ｄｙ，Ｄｍ，Ｄｃ，Ｄｂは、その両端に回転支軸を有し、選択機構部１５２に保持される。これにより、選択機構部１５２が現像器選択のために回転軸１５２ａを中心にして回転しても、各現像器Ｄｙ，Ｄｍ，Ｄｃ，Ｄｂは、図１に示すようにその姿勢を一定に維持することができる。
【００２１】
選択された現像器が現像位置に移動すると、保持フレーム１５３がソレノイド１５３ａによって支点１５３ｂを中心にして感光ドラム１５１の方向へ引っ張られる。このようにして現像処理が行われる。
【００２２】
その後、記録材Ｐは、転写ドラム１５４より分離されて、定着ユニット１５５へ搬送される。定着ユニット１５５は、熱と圧力によりトナー像を記録材Ｐに定着させる。トナー像が定着されると、記録材Ｐは、排紙部１５９によって排出トレイ１６０に排出される。
【００２３】
図２は、第１実施形態に係るプリンタ１００の制御構成を示す図である。プリンタ１００は、一般的な情報処理を制御するメイン基板２００（図１のシステム制御部１１０の機能を含む）と画像形成処理を制御するサブ基板２２０（図１の出力制御部１３０の機能を含む）から構成される。メイン基板２００（メインシステム）とサブ基板２２０（サブシステム）を１つの基板（システム）として構成することが可能であることは言うまでもない。しかしながら、説明を簡潔にするため本実施形態では、メイン基板２００とサブ基板２２０との２つから構成される場合について説明する。
【００２４】
メイン基板２００は、ブートＲＯＭ２０１、ＣＰＵ２０２、ＲＡＭ２０３、バスコントローラ２０４、ディスクコントローラ２０５、ポートスイッチ２０６、ポートセレクタ２０７、フラッシュディスク２０８及びＵＳＢコントローラ２１０を備える。ＣＰＵ２０２は、メイン基板２００を制御するための第１制御手段として機能する。
【００２５】
ブートＲＯＭ２０１は、ブート処理を行うための起動プログラム（ブートプログラム）が格納された不揮発性メモリである。ＣＰＵ２０２は、起動プログラム及び他のプログラムを実行する演算装置である。その他のプログラムとしては、後述する第１ＯＳプログラム、アプリケーションプログラム等がある。また、ＣＰＵ２０２には、プログラムやデータを一時的に格納するＲＡＭ２０３が接続される。ＵＳＢコントローラ２１０には、ＵＳＢメモリ２１１のようなＵＳＢデバイスを制御する機能も実装される。
【００２６】
バスコントローラ２０４は、サブ基板２２０との接続を制御する。ディスクコントローラ２０５は、アクセス制御手段として機能し、メイン基板２００に接続されたハードディスク装置（以下、ＨＤＤと称す。）２０９及びフラッシュディスク２０８を制御する。ここで、フラッシュディスク２０８は第１記憶手段として機能し、ＨＤＤ２０９は第２記憶手段として機能する。また、ディスクコントローラ２０５には、ポートスイッチ２０６を介してポートセレクタ２０７が接続されている。ポートスイッチ２０６は、接続遮断手段として機能し、接続デバイスへの接続を接続状態又は遮断状態に制御することで、接続デバイスへのアクセスの許可／禁止を制御する。ポートセレクタ２０７には、フラッシュディスク２０８及びＨＤＤ２０９が接続される。ポートセレクタ２０７は、切替手段として機能し、フラッシュディスク２０８及びＨＤＤ２０９の何れか一方へディスクコントローラ２０５の接続を切り替える。本実施形態では、ディスクコントローラ２０５、ポートスイッチ２０６及びポートセレクタ２０７を別々のモジュールとして記載しているが、これらの一部又は全部を一つのモジュールとして実装してもよい。
【００２７】
一方、サブ基板２２０は、ブートＲＯＭ２２１、ＣＰＵ２２２、ＲＡＭ２２３、画像プロセッサ２２５及びデバイスコントローラ２２６を備える。さらに、サブ基板２２０は、メモリコントローラ２２４、バスコントローラ２３０、２３１及びＩ／Ｏマルチプレクサ２３２を備える。また、サブ基板２２０は、各コントローラを物理的に接続するバス２４１、２４２、２４３を備える。図２に示すサブ基板２２０では、バス（第２バス）２４３を介したメイン基板２００へのアクセスと、バス（第１バス）２４２を介したブートＲＯＭ２２１へのアクセスは同時には行えず、排他制御する必要がある。ＣＰＵ２２２は、サブ基板２２０を制御するための第２制御手段として機能する。
【００２８】
ブートＲＯＭ２２１は、起動プログラムを格納するための不揮発性メモリである。ＣＰＵ２２２は、起動プログラムや他のプログラムを実行するための演算装置である。その他のプログラムとしては、後述する第２ＯＳプログラム等がある。ＲＡＭ２２３は、プログラムやデータを一時的に格納する。メモリコントローラ２２４は、ＲＡＭ２２３のアクセス速度やリフレッシュタイミングを制御する。画像プロセッサ２２５は、画像形成処理を高速に実行する。
【００２９】
デバイスコントローラ２２６は、サブ基板２２０に接続されたファクシミリエンジン２２７、プリンタエンジン２２８、スキャンエンジン２２９等の画像形成デバイスの制御や画像形成処理を実行する。バスコントローラ２３０、２３１は、各バスへのアクセス可否、アクセス速度及びアクセスタイミングを制御する。Ｉ／Ｏマルチプレクサ２３２は、複数あるバスの入力信号の中から信号を切り替えて１本の線で出力させる。例えば、図２に示すサブ基板２２０では、バス２４３を介したメイン基板２００へのアクセスと、バス２４２を介したブートＲＯＭ２２１へのアクセスは同時には行えず、Ｉ／Ｏマルチプレクサ２３２を用いて排他制御する必要がある。
【００３０】
次に、図３乃至図５Ｂを参照して、プリンタ１００の起動処理について説明する。図３は、第１実施形態に係るメイン基板２００の起動処理を示すフローチャートである。
【００３１】
まず、メイン基板２００に電源が投入されると、ＣＰＵ２０２は、ブートＲＯＭ２０１に格納された起動プログラムを逐次実行する。なお、メイン基板２００への電源投入は、後述するステップＳ５０３において実行されてもよい。ステップＳ３０１において、ＣＰＵ２０２は、判定手段として機能し、接続可能な記憶装置としてのリムーバブルメディアを用いて当該プリンタ１００を起動させるか否かを判定する。ここでは、外部記憶装置であるリムーバブルメディアとして、図２に示すＵＳＢメモリ２１１を一例に説明する。プリンタ１００の起動処理及びハードウェア制御等を実行するためのプログラム（以下では、説明を容易にするため第１ＯＳプログラムと称す。）を記憶している。ここで、第１ＯＳプログラムは、メイン基板用のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を示す。また、プリンタ１００は、第１ＯＳプログラムをフラッシュディスク２０８に予め記憶している。例えば、ＣＰＵ２０２は、不図示の不揮発性メモリに予め記憶されたリムーバブルメディアによる起動が許可されているモードか否かを示すフラグを取得することにより、判定を行う。このフラグは、ハードキーやパスワード等の認証を経て、保守者のみが値を変更することができる。
【００３２】
フラグの値がリムーバブルメディアからの起動を許可した許可モードである場合、ステップＳ３０２において、ＣＰＵ２０２は、ＵＳＢメモリ２１１に記憶された第１ＯＳプログラムを、ＲＡＭ２０３にコピーして、逐次実行する。なお、ＵＳＢメモリ２１１には、サブ基板２２０を動作させるためのＯＳプログラム（第２ＯＳプログラム）が記憶されているものとする。そして、ＣＰＵ２０２により実行される第１ＯＳプログラムは、ＵＳＢメモリ２１１から第２ＯＳプログラムを読み出して、サブ基板２２０のＲＡＭ２２３に格納させる。ここで、ＣＰＵ２０２は、提供手段として機能する。サブ基板２２０のＣＰＵ２２２は、ＲＡＭ２２３に記憶された第２ＯＳプログラムを実行することで、サブ基板２２０を動作状態に移行させる。一方、許可モードではない場合、ステップＳ３０３において、ＣＰＵ２０２は、ポートスイッチ２０６をＯＮに切り替えることにより、ディスクコントローラ２０５からポートセレクタ２０７の先に接続されたフラッシュディスク２０８へのアクセスを可能に制御する。なお、ポートセレクタ２０７は、電源投入時にフラッシュディスク２０８を選択するように構成されている。続いて、ステップＳ３０４において、ＣＰＵ２０２は、ディスクコントローラ２０５を操作することにより、フラッシュディスク２０８から、第１ＯＳプログラムをＲＡＭ２０３に読み込んで実行する。ここで、ディスクコントローラ２０５は、アクセス制御手段として機能し、ポートセレクタ２０７により選択された、フラッシュディスク２０８又はＨＤＤ２０９に対するアクセスを許可する。
【００３３】
図４は、第１実施形態に係るメイン基板用ＯＳの処理を示すフローチャートである。ここでの処理は、図３のステップＳ３０２でＵＳＢメモリ２１１から、又はステップＳ３０４でフラッシュディスク２０８からＲＡＭ２０３に読み込まれた第１ＯＳプログラムに従ってＣＰＵ２０２で実行される。ここでＣＰＵ２０２は、起動手段として機能する。
【００３４】
ステップＳ４０１において、ＣＰＵ２０２は、ポートスイッチ２０６がＯＮになっている否かを判定する。即ち、ＣＰＵ２０２は、フラッシュディスク２０８へのアクセスが許可されているか否かを判定している。ＯＮになっていない場合、ステップＳ４０２において、ＣＰＵ２０２は、ポートスイッチ２０６をＯＮにする。
【００３５】
ここで、本実施形態によれば、正規の第１ＯＳプログラムを含まないリムーバブルメディアを用いてプリンタ１００を起動した場合には、ステップＳ４０２に示すポートスイッチ２０６をＯＮにする処理が実行されない。このため、ディスクコントローラ２０５を操作した場合でも、フラッシュディスク２０８又はＨＤＤ２０９へのアクセスが禁止されている。これにより、リムーバブルメディアから不適切なプログラムが実行された場合であっても、ポートスイッチ２０６の切り替え方法がわからない限りは、フラッシュディスク２０８又はＨＤＤ２０９へはアクセスできないことになる。したがって、不適切なプログラムが実行された場合であっても、本実施形態に係るプリンタ１００は、フラッシュディスク２０８及びＨＤＤ２０９への不適切なアクセス、データの改竄等を抑制することができる。
【００３６】
次に、ステップＳ４０３において、ＣＰＵ２０２は、ディスクコントローラ２０５を操作して、フラッシュディスク２０８からサブ基板用のＯＳ（以下では、説明を容易にするため第２ＯＳプログラムと称す。）を取得して、サブ基板２２０へ提供する。サブ基板２２０では、送信された第２ＯＳプログラムがＲＡＭ２２３に読み込まれる。Ｓ４０３の処理の詳細については、後述する図５ＡのステップＳ５０６で説明する。続いて、ステップＳ４０４において、ＣＰＵ２０２は、サブ基板２２０上のＣＰＵ２２２に対し、ＲＡＭ２２３に読み込んだ第２ＯＳプログラムの実行を指示する。その後、ステップＳ４０５において、ＣＰＵ２０２は、サブ基板２２０からＨＤＤ２０９へのアクセス許可が通知されるまでループして待機する。
【００３７】
ステップＳ４０５でＨＤＤ２０９へのアクセス許可が通知されると、ステップＳ４０６において、ＣＰＵ２０２は、ディスクコントローラ２０５を操作することにより、メインプログラムをＨＤＤ２０９からＲＡＭ２０３に読み込んで実行する。なお、メインプログラムは、第１ＯＳプログラム上で実行可能なアプリケーションプログラムであり、コピー機能、プリント機能等の画像形成装置の各機能を実現するためのプログラムである。その後、ＣＰＵ２０２は、メインプログラムに従ってメイン基板２００を動作させる。
【００３８】
図５Ａ及び図５Ｂは、第１実施形態に係るサブ基板２２０における起動処理を示すフローチャートである。図５Ａに示す処理は、メイン基板２００に電源が投入されると同時にサブ基板２２０にも電源が投入され、ブートＲＯＭ２２１に記憶された起動プログラムに従ってＣＰＵ２２２で実行される。
【００３９】
図５Ａに示すように、ステップＳ５０１において、ＣＰＵ２２２は、バス２４１、バスコントローラ２３１、Ｉ／Ｏマルチプレクサ２３２、バス２４２を介してブートＲＯＭ２２１から起動プログラムを逐次読み出しながら実行する。以下では、この動作をＲＯＭ実行と称する。ここで、バスコントローラ２３１は、デフォルト設定で動作可能であるものとする。また、ＣＰＵ２２２は、メモリコントローラ２２４及びＲＡＭ２２３の初期化を行う。
【００４０】
メモリコントローラ２２４及びＲＡＭ２２３の初期化が終了すると、ステップＳ５０２において、ＣＰＵ２２２は、ブートＲＯＭ２２１の起動プログラムをＲＡＭ２２３にコピーし、その後はＲＡＭ２２３からプログラムを逐次読み出し実行する。以下では、この動作をＲＡＭ実行と称する。ＲＡＭ実行中においては、ＣＰＵ２２２は、ブートＲＯＭ２２１にアクセスすることがないよう制御する。したがって、ＲＡＭ実行中は、バスコントローラ２３１も動作しない。
【００４１】
ステップＳ５０３において、ＣＰＵ２２２は、メイン基板２００のリセット解除を行いメイン基板２００を起動させる。ここでＣＰＵ２２２は、メイン基板２００の電源をＯＮに制御することでメイン基板２００を起動させてもよい。その後、メイン基板２００は図３に示す起動処理を実行する。
【００４２】
ステップＳ５０４において、ＣＰＵ２２２は、デバイスコントローラ２２６、バスコントローラ２３０、画像プロセッサ２２５、メモリコントローラ２２４などの初期化を行う。バス２４３を介したメイン基板２００へのアクセスと、バス２４２を介したブートＲＯＭ２２１へのアクセスを排他制御する必要がある。しかし、上述のステップＳ５０２でブートＲＯＭ２２１へアクセスすることがないように制御しているため、排他制御を省略することができる。したがって、ステップＳ５０４以降の処理では、バス２４３を介してメイン基板２００に対して任意のタイミングでアクセスすることができる。
【００４３】
ステップＳ５０５において、ＣＰＵ２２２は、メイン基板２００の初期化が終了しているか否かを判定する。具体的に、ＣＰＵ２２２は、図４のステップＳ４０４の指示を受信したか否かを判定することで、メイン基板２００の初期化が終了しているか否かを判定する。メイン基板２００の初期化が終了している場合、メイン基板２００では、第２ＯＳプログラムがＨＤＤ２０９又はフラッシュディスク２０８などからメイン基板２００に備えられるＲＡＭ２０３に展開されている。ステップＳ５０６において、ＣＰＵ２２２は、サブ基板２２０を動作させるための第２ＯＳプログラムをメイン基板２００のＲＡＭ２０３からＲＡＭ２２３にコピーする。さらに、ステップＳ５０７において、ＣＰＵ２２２は、ステップＳ５０６のコピーが終了しているか否かをコピーが終了するまで繰り返し判定する。コピーが終了すると、ステップＳ５０８において、ＣＰＵ２２２は、コピーされた第２ＯＳプログラムを実行（ＲＡＭ実行）する。
【００４４】
次に、図５Ｂを参照して、第２ＯＳプログラムに従って実行されるＣＰＵ２２２の処理について説明する。図５Ｂに示す処理は、ステップＳ４０３でフラッシュディスク２０８からＲＡＭ２２３に読み込まれた第２ＯＳプログラムに従ってＣＰＵ２２２実行される。
【００４５】
図５Ｂに示すように、ステップＳ５１１において、ＣＰＵ２２２は、ポートセレクタ２０７を操作して、ＨＤＤ２０９へのアクセスを許可するように結線を切り替える。ここで、本実施形態によれば、ポートセレクタ２０７の切り替えは、サブ基板２２０からのみで操作可能であり、即ちメイン基板２００からは操作できないようなハード構成となる。その後、ステップＳ５１２において、ＣＰＵ２２２は、送信手段として機能し、メイン基板２００のＣＰＵ２０２に対して、ＨＤＤ２０９へのアクセス許可通知（許可信号）を送信する。
【００４６】
ここで、図４に示すメイン基板２００における第１ＯＳプログラムの処理は、ステップＳ４０５のループから抜け、ステップＳ４０６の処理に進む。即ち、ＣＰＵ２０２は、ＨＤＤ２０９からメインプログラムをＲＡＭ２０３に読み込んで実行する。
【００４７】
次に、図６を参照して、図３乃至図５Ｂを用いて説明した処理の全体的なシーケンスについて説明する。図６は、第１実施形態に係る起動処理のシーケンスを示す図である。
【００４８】
ステップＳ６０１において、例えば、ＣＰＵ２０２がディスクコントローラ２０５を操作して、フラッシュディスク２０８又はＨＤＤ２０９へのアクセスを行ったと想定する。この場合、メイン基板２００が起動直後であるためポートスイッチ２０６がＯＦＦに設定されており、ステップＳ６０２において、ディスクコントローラ２０５は、ＣＰＵ２０２に対してディスク無しエラーを返却する。リムーバブルメディアから、不適切なプログラムを実行させた場合が、これに該当する。
【００４９】
ステップＳ６０３において、ブートＲＯＭ２０１からＲＡＭ２０３に読み込まれた起動プログラムを実行するＣＰＵ２０２は、ポートスイッチ２０６をＯＮに制御する。続いて、ステップＳ６０４において、ＣＰＵ２０２は、メイン基板２００用の第１ＯＳプログラムを読み込むためにディスクコントローラ２０５に対してＲｅａｄ要求を発行する。ステップＳ６０５及びＳ６０６において、ディスクコントローラ２０５は、フラッシュディスク２０８へアクセスを行い、第１ＯＳプログラムを取得する。さらに、ステップＳ６０７において、ディスクコントローラ２０５は、ＣＰＵ２０２にフラッシュディスク２０８より取得した第１ＯＳプログラムを返却する。以上により、第１ＯＳプログラムがメイン基板２００内のＲＡＭ２０３にロードされ、ＣＰＵ２０２により実行されることとなる。次に、ＣＰＵ２０２は、前述のステップＳ６０４乃至ステップＳ６０７と同様の処理を行い、フラッシュディスク２０８から第２ＯＳプログラムをサブ基板２２０内のＲＡＭ２２３にロードし、実行する。
【００５０】
ステップＳ６０８において、第２ＯＳプログラムを実行するＣＰＵ２２２は、ポートセレクタ２０７を操作して、ディスクコントローラ２０５より接続可能な接続先をフラッシュディスク２０８からＨＤＤ２０９に切り替える。ポートセレクタ２０７を切り替えると、ステップＳ６０９において、ＣＰＵ２２２は、ＣＰＵ２０２に対して、ＨＤＤ２０９へのアクセスが許可されたことを通知する。
【００５１】
続いて、ステップＳ６１０において、ＣＰＵ２０２は、メインプログラムを読み込むためにディスクコントローラ２０５に対してＲｅａｄ要求を発行する。続いて、ステップＳ６１１及びＳ６１２において、ディスクコントローラ２０５は、ＨＤＤ２０９からメインプログラムを取得して、ＣＰＵ２０２へ返却する。
【００５２】
以上、説明したように本実施形態に係る画像形成装置は、リムーバブルメディアが接続可能なメイン基板２００及びサブ基板２２０を備える。本画像形成装置は、メイン基板２００用の第１ＯＳプログラムに従って動作する起動部がポートスイッチ２０６を有効（ＯＮ）にすることで、フラッシュディスク２０８からサブ基板２２０用のプログラムを読み込む。これにより、リムーバブルメディアから読み込まれた不適切なプログラムでは、ポートスイッチ２０６の切り替え処理を実装していなければ、フラッシュディスク２０８及びＨＤＤ２０９にアクセスすることができない。したがって、不適切なプログラムによってフラッシュディスク２０８及びＨＤＤ２０９へのアクセスを抑制することで、本画像形成装置は、不適切な情報取得やデータの改竄等を抑制しうる。
【００５３】
なお、本発明は、上述した実施形態に限らず様々な変形が可能である。本画像形成装置は、サブ基板２２０のみがディスクコントローラ２０５を制御可能な接続先のディスク、例えば、フラッシュディスク２０８やＨＤＤ２０９を選択してもよい。これにより、本画像形成装置は、サブ基板２２０が起動しなければ、メイン基板２００用のメインプログラムをＨＤＤ２０９から取得することができない。つまり、上述した起動部がサブ基板２２０用の第２ＯＳプログラムを取得しない限り、画像形成装置を動作させることができないことを意味している。したがって、本画像形成装置は、規定の処理を含んでいない不適切なプログラムでは、画像形成装置を動作させることができないため、不適切な処理を抑制することができる。
また、上述の構成では、サブ基板２２０のブートＲＯＭ２２１の内容を更新する際に、メインボード側と接続されたバスとの競合が生じるが、図９を用いて、この問題を解決する方法を説明する。以下で示す処理は、ＣＰＵ２０２及びＣＰＵ２２２で実行されるものである。具体的に、Ｓ９０１乃至Ｓ９０３の処理は、ＣＰＵ２０２で実行される。一方、Ｓ９０４乃至Ｓ９０９の処理は、ＣＰＵ２２２で実行される。
【００５４】
ステップＳ９０１において、ＣＰＵ２０２は、サブ基板２２０のブートＲＯＭ２２１を更新するためのルーチンを開始する。ステップＳ９０２において、ＣＰＵ２０２は、ＣＰＵ２２２に対してブートＲＯＭ２２１を更新するモードに入ったことを通知する。これにより、ＣＰＵ２２２はブートＲＯＭ２２１の更新ルーチンを開始する。その後、ステップＳ９０３において、ＣＰＵ２０２は、更新用ＲＯＭデータをＵＳＢメモリ２１１等の不揮発性メモリからメイン基板２００上のＲＡＭ２０３に展開する。
【００５５】
ステップＳ９０４において、ＣＰＵ２２２は、メインボード上のＲＡＭ２０３に展開された更新用ＲＯＭデータをＲＡＭ２２３にコピーする。ステップＳ９０５において、ＣＰＵ２２２は、ステップＳ９０４の処理が完了しているか否かを判定する。ステップＳ９０４の処理が完了すると、ＣＰＵ２２２は、ステップＳ９０６において、メイン基板２００をリセットする。これによりＣＰＵ２０２が動作しなくなるため、メイン基板２００とサブ基板２２０との通信用のバス２４３へのアクセスをしないよう制御できる。もちろん、ＣＰＵ２２２は、バス２４１、バスコントローラ２３０、Ｉ／Ｏマルチプレクサ２３２、バス２４３を介したメイン基板２００へのアクセスを行わないように制御する。これにより、ブートＲＯＭ２２１へのアクセスが可能となる。
【００５６】
ステップＳ９０７において、ＣＰＵ２２２は、更新用ロムデータをＲＡＭ２２３からブートＲＯＭ２２１に上書き（更新）する。続いて、ステップＳ９０８において、ＣＰＵ２２２は、ブートＲＯＭ２２１の上書き処理が完了しているか否かを判定する。上書きが完了した後、ステップＳ９０９において、ＣＰＵ２２２は、メイン基板２００のリセット解除を行い、メインボードを再起動させる。なお、ＣＰＵ２２２は、メイン基板２００の電源ＯＮに制御することでメイン基板２００を再起動させてもよい。この後メイン基板２００は再起動処理を行い、ブートＲＯＭ２２１の更新処理を終了する。
【００５７】
［第２実施形態］
次に、図７及び図８を参照して、第２実施形態について説明する。本実施形態は、ＨＤＤ２０９に致命的なエラーが発生した場合にフラッシュディスク２０８を用いてプリンタ１００を起動することを特徴とする。これにより、本実施形態に係るプリンタ１００は、ＨＤＤ２０９に致命的なエラーが発生した場合であっても起動することが可能となる。なお、フラッシュディスク２０８を用いた起動の場合、プリンタ１００は、機能制限された起動となる。
【００５８】
図７は、第２実施形態に係るＨＤＤ２０９のエラー処理を示すフローチャートである。以下で説明する処理は、ＨＤＤ２０９でエラーが発生した場合のＣＰＵ２０２によって行われるエラー処理を示す。
【００５９】
ステップＳ７０１において、ＣＰＵ２０２は、発生したＨＤＤ２０９のエラーが致命的か否かを判定する。ここで、致命的なエラーとは、プリンタ１００の起動が不可能なエラーや画像形成処理が不可能なエラーを示す。致命的なエラーではない場合、ステップＳ７０２において、ＣＰＵ２０２は、リトライ処理やエラー表示等のエラー処理を行い、エラー処理を終了する。
【００６０】
一方、エラーが致命的である場合、ステップＳ７０３において、ＣＰＵ２０２は、不図示の不揮発性メモリに割り当てられた縮退フラグに１を設定する。その後、ステップＳ７０４において、ＣＰＵ２０２は、システムの再起動を実行し、処理を終了する。
【００６１】
図８は、第２実施形態に係るサブ基板２２０における起動処理を示すフローチャートである。以下で説明する処理は、第１の実施形態で説明した図５Ｂに示すサブ基板２２０の起動処理を、本実施形態を実現するために修正した処理である。
【００６２】
ステップＳ８０１において、ＣＰＵ２２２は、不揮発性メモリに割り当てられた縮退フラグがＯＮに設定されているか否かを判定する。具体的に、ＣＰＵ２２２は、縮退フラグが１である場合にＯＮであると判定し、０である場合にＯＦＦであると判定する。
【００６３】
縮退フラグが０である場合、ステップＳ５１１において、ＣＰＵ２２２は、ポートセレクタ２０７をフラッシュディスク２０８からＨＤＤ２０９に切り替える処理を実行する。一方、縮退フラグが１である場合、ＣＰＵ２２２は、ステップＳ５１１の処理を実行することなくＳ８０２へ処理を遷移させる。これにより、ポートセレクタ２０７の切り替え処理が実行されないため、ポートセレクタ２０７はフラッシュディスク２０８を選択した状態となっている。
【００６４】
ステップＳ８０２において、ＣＰＵ２２２は、ＣＰＵ２０２に対して、ＨＤＤ２０９又はフラッシュディスク２０８へのアクセス許可通知を通知する。しかし、ここでの処理は、Ｓ５１２の処理と同様であってもよい。つまり、ＣＰＵ２０２は、現在、ポートセレクタ２０７がフラッシュディスク２０８又はＨＤＤ２０９の何れに接続されているかを知る必要はない。これは、ＣＰＵ２０２の処理がディスクコントローラ２０５に対して、メインプログラムのＲｅａｄ要求を発行するだけであり、明示的にアクセス先を指定しないためである。
【００６５】
ＣＰＵ２０２がＲｅａｄ要求を行うと、ディスクコントローラ２０５は、ポートセレクタ２０７がフラッシュディスク２０８と接続されているため、ＨＤＤ２０９ではなくフラッシュディスク２０８からメインプログラムを読み込むこととなる。ここで、フラッシュディスク２０８には、メイン基板２００用のメインプログラムとして、ＨＤＤを利用しない機能限定されたアプリケーションプログラムが記憶されている。したがって、縮退フラグが１のときにはフラッシュディスク２０８の機能限定されたアプリケーションプログラムが読み出され、縮退フラグが０のときはＨＤＤ２０９の通常版プログラムが読み出される。なお、保守担当者がＨＤＤ２０９を交換し、システムが正常に動作するようになった際には、縮退フラグを０に設定することにより、次回のシステム起動時にメイン基板２００用のメインプログラムは、ＨＤＤ２０９から読み込まれることとなる。
【００６６】
以上説明したように、本実施形態によれば、ＨＤＤを利用しない機能限定プログラムをフラッシュディスク２０８に予め格納しておく。この場合、ＨＤＤ２０９のエラー処理の中で致命的なエラーを検出すると不揮発性記憶領域に割り当てられた縮退フラグを“１”にセットし再起動する。
【００６７】
そして、起動時にサブ基板用プログラムで、縮退フラグに“１”がセットされていない、即ち“０”がセットされている場合のみ、ポートセレクタをＨＤＤに切り替える処理を行うように構成する。以上により、ＨＤＤ２０９が故障した際であっても、フラッシュディスク２０８に格納された機能限定プログラムが実行されるため、従来のようにＨＤＤ２０９が故障すると画像形成装置が機能しないといった状況を回避することが可能になる。
【００６８】
以上説明したように、本実施形態に係るプリンタ１００は、ブートメモリに記憶されたブートプログラムを更新するために、第２バスを介して新たなブートプログラムをサブ基板に送信し、新たなブートプログラムの送信が完了したか否かを判定する。また、プリンタ１００は、新たなブートプログラムの送信が完了すると、新たなブートプログラムをブートメモリに更新する。さらに、プリンタ１００は、新たなブートプログラムの送信が完了すると、メイン基板をリセットするとともに、第２バスへのアクセスを禁止する。これにより、プリンタ１００は、新たなプログラムをメイン基板からサブ基板に送信した後に、バスの排他制御を行う必要がない。したがって、プリンタ１００は、ブートＲＯＭにおける更新処理の処理速度を向上しうる。
【００６９】
［他の実施形態］
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、プリンタ、ファクシミリ、ＰＣ、サーバとクライアントとを含むコンピュータシステムなどの如くである。
【００７０】
本発明は、前述した実施形態の各機能を実現するコンピュータプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００７１】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００７２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００７３】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００７４】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００７５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【００７６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【００７７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【００７８】
【図１】第１実施形態に係るカラーレーザービームプリンタの構成例を示す断面図である。
【図２】第１実施形態に係るプリンタ１００の制御構成を示す図である。
【図３】第１実施形態に係るメイン基板２００の起動処理を示すフローチャートである。
【図４】第１実施形態に係るメイン基板用ＯＳの処理を示すフローチャートである。
【図５Ａ】、
【図５Ｂ】第１実施形態に係るサブ基板２２０における起動処理を示すフローチャートである。
【図６】第１実施形態に係る起動処理のシーケンスを示す図である。
【図７】第２実施形態に係るＨＤＤ２０９のエラー処理を示すフローチャートである。
【図８】第２実施形態に係るサブ基板２２０における起動処理を示すフローチャートである。
【図９】第１実施形態に係るブートＲＯＭ２２１の更新処理を示すフローチャートである。
【符号の説明】
【００７９】
１００：プリンタ
２００：メイン基板
２２０：サブ基板
【図１】
0004857201.tif 000002
【図２】
0004857201.tif 000003
【図３】
0004857201.tif 000004
【図４】
0004857201.tif 000005
【図５Ａ】
0004857201.tif 000006
【図５Ｂ】
0004857201.tif 000007
【図６】
0004857201.tif 000008
【図７】
0004857201.tif 000009
【図８】
0004857201.tif 000010
【図９】
0004857201.tif 000011