以下に添付図面を参照して、この発明にかかる記録制御装置、記録制御方法、記録制御プログラムおよび記憶媒体の最良な実施の形態を詳細に説明する。以下、不揮発性メモリにNVRAMを用いる。以下に説明する実施の形態は好適もしくは最善と思われるものであり、これに限定されるものではなく、当業者が容易に想到できる範囲内にて、修正、変更可能とする。
(第1の実施の形態)
図1は、本実施形態にかかる記録制御装置100のハードウエア構成を示すブロック図である。本実施形態にかかる記録制御装置100は、CPU101と、ASIC(Application Specific Integrated Circuit)102と、RAM(Random Access Memory)103と、FlashROM104と、NVRAM1(105)とNVRAM2(106)と、NVRAMI/F1(117a)とNVRAMI/F2(117b)と、EngineI/F(エンジンインターフェース)107とを有する。
本実施の形態の記録制御装置100は、所定の装置としての画像形成装置に搭載されている。ただし、これに限定されるものではなく、メモリを保持する装置であれば、いずれの装置にも本実施の形態の記録制御装置100を搭載することができる。ここで、画像形成装置には、複写機、スキャナ装置、ファクシミリ装置、プリンタ装置や、コピー機能、ファクシミリ機能、スキャナ機能、プリンタ機能のうち複数の機能を搭載した複合機が含まれる。
ASIC102は、記録制御装置100のデバイスまたは外部インターフェースへのバスコントロールと、ビットマップデータのDMA転送制御を行う。
RAM103は、CPU101のワークメモリや入力データのインプットバッファ、プリントデータのページメモリ等を確保する揮発性メモリであって、記録制御装置の起動時にNVRAM1、2(105、106)のデータはRAM103にコピーされる。
FlashROM104は、記録制御装置100の制御プログラムや、画像補正の際の画像補正パターン、フォントのパターンデータや各種データを記憶する不揮発性メモリである。
EngineI/F(エンジンインターフェース)107は、記録制御装置100をプリンタエンジンへと接続するインターフェースである。
NVRAMI/F1、2(117a、117b)は、それぞれNVRAM1、2(105、106)を装着するインタフェースである。NVRAMI/F1(117a)には、NVRAM1(105)を装着し、NVRAMI/F1(117b)には、NVRAM2(106)を装着し、この実装の組合せが正規の位置となる。従って、NVRAMI/F1(117a)に、NVRAM2(106)が装着され、NVRAMI/F2(117b)に、NVRAM1(105)が装着されていた場合には、NVRAMは誤った位置に実装されていることになる。
NVRAM1(105)およびNVRAM2(106)は、NVRAMI/F1、2(117a、117b)に対して脱着可能な不揮発性メモリであって、画像形成装置の各種設定値や電源OFF直前に処理中だったジョブの中間結果等の情報等を記憶する。各NVRAMは、互いに異なる情報を格納する。
図15は、NVRAM1(105)、NVRAM2(106)を制御基板上のNVRAMI/F1、2(117a、117b)に対して正規の位置に実装した際の、RAM103のメモリ領域11内のデータ構成の一例を示す説明図である。記録制御装置100の起動時に、NVRAM1、2(105、106)内のデータはそれぞれRAM103にコピーされ、それぞれNVバンク1(11a)、NVバンク2(11b)と呼ばれる所定のメモリ領域に割り当てられる。前述の通り、NVRAM1、2(105、106)にはそれぞれ異なる機器情報、登録情報が格納されるが、ここでは、一例として、NVRAM1(105)は機器情報(1〜n)、履歴情報、ソフト設定を、NVRAM2(106)は登録データ(1〜m)、通信データをそれぞれ格納する。
図16は、NVRAM1、2(105、106)を装着時に、本来とは各々逆のインターフェースNVRAMI/F1、2(117a、117b)に誤って実装した際のメモリ領域11内のデータ構成の一例を示す説明図である。この場合、NVRAM1(105)のデータはNVバンク2(11b)に、NVRAM2(106)のデータはNVバンク1(11a)に、互い違いに割り当てられる。従って、ソフトウエアがNVRAM2(106)の登録データ900を更新する際、NVバンク2(11b)のアドレス空間をオフセットした番地へアクセスしてしまい、誤ってNVRAM1(105)内のデータを書き換えてしまう恐れがある。
図2は、第1の実施の形態にかかる記録制御装置100の機能的構成を示すブロック図である。本実施の形態にかかる記録制御装置100は、図2に示すように、判別部108と、アクセス制御部109と、表示部110と、起動制御部111と、上述したRAM103と、FlashROM104と、NVRAM1(105)と、NVRAM2(106)と、NVRAMI/F1(117a)と、NVRAMI/F2(117b)とを主に備えている。
NVRAM1、2(105、106)のそれぞれにはID(識別情報)が格納されている。ここで、IDとは、NVRAM1、2(105、106)を一意に識別するための識別情報である。
FlashROM104には、各IDと、各IDで識別されるNVRAMが使用するメモリ領域(NVバンク)とを対応付けたIDテーブル(識別テーブル)12が記憶されている。IDテーブル12の詳細については後述する。
RAM103には、メモリ領域11が確保される。このメモリ領域には、画像形成装置の起動時にNVRAM1、2(105、106)に格納されているデータがコピーされる。より具体的には、後述するように、記録制御装置100が搭載されている画像形成装置の起動時に、メモリ領域11として、NVバンク1(11a)とNVバンク2(11b)が確保される。そして、NVバンク1にはNVRAMI/F1(117a)に実装されているNVRAM1(105)のデータがコピーされ、NVバンク2にはNVRAMI/F2(117b)に実装されているNVRAM1(105)のデータがコピーされる。
判別部108は、画像形成装置の起動時にNVRAM1、2(105、106)が各々有するIDとFlashROM104中のIDテーブル12とを参照することにより、NVRAM1、2(105、106)が制御基板上のNVRAMI/F1、2(117a、117b)に対して正規の位置で実装されているか否かの正誤判断を行う。判別部108の詳細については、後述する。
アクセス制御部109は、判別部108によってNVRAM1、2(105、106)の実装位置が誤っていると判断された場合に、NVRAM1、2(105、106)へのデータアクセスを禁止するアクセス制御を行い、NVRAM1、2(105、106)のデータ保障を行う。
表示部110は、アクセス制御部109がNVRAM1、2(105、106)のデータアクセスを禁止した後に、画像形成装置の操作パネルにNVRAMのID不一致エラーを表示し、警告する。
起動制御部111は、表示部110が前述のようにエラーを表示し、警告した後に、画像形成装置の起動停止を行う。
次に、判別部108の詳細について説明する。図3は、第1の実施の形態にかかる記録制御装置100においてNVRAM1、2(105、106)を装着した際のRAM103のメモリ領域11とIDテーブル12の例を示す説明図である。図3では、NVRAMI/F1(117a)にNVRAM2(106)が誤って実装されており、NVRAMI/F2(117b)にNVRAM1(105)が正常に実装されている場合の状態、および誤って実装されている場合の状態を示している。本実施形態のNVRAM1、2(105、106)は、その所定アドレスに各々のIDを予め記憶保持している。図3に示す例では、NVRAM1(105)の先頭アドレスに“ID=1”、NVRAM2(106)の先頭アドレスに“ID=2”がそれぞれ記憶されている。そして、正常に実装されている場合は前述のように、画像形成装置の起動時に、NVバンク1(11a)にはNVRAM1(105)のデータがコピーされ、NVバンク2(11b)にはNVRAM2(106)のデータがコピーされる。また、誤って実装されている場合には、画像形成装置の起動時に、NVバンク1(11a)にはNVRAM2(106)のデータがコピーされ、NVバンク2(11b)にはNVRAM1(105)のデータがコピーされる。
また、図3に示すように、FlashROM104のIDテーブル12には、メモリ領域とID設定値とが対応付けられている。メモリ領域フィールドには、NVバンク1、NVバンク2の領域IDが登録されている。図3のIDテーブル12の例では、NVバンク1(11a)にはIDが1であるNVRAM1(105)に記憶されたデータが格納され、NVバンク2(11b)にはIDが2であるNVRAM2(106)に記憶されたデータが格納されることを示している。ここで、ID設定値とは、NVRAM1、2(105、106)に保存されているIDをいう。
判別部108は、NVバンク1(11a)にコピーされたNVRAM1データから読み込んだIDと、IDテーブル12のID設定値とを比較することにより、NVRAM1(105)が正規の位置に実装されているかの正誤判別を行う。また、判別部108は、NVバンク2(11b)にコピーされたNVRAM2データから読み込んだIDと、IDテーブル12のID設定値とを比較することにより、NVRAM2(106)が正規の位置に実装されているかの正誤判別を行う。ここで、NVRAM1データから読み込んだID、およびNVRAM2データから読み込んだIDを、ID読込値という。
次に、以上のように構成された本実施の形態にかかる記録制御装置100における記録制御処理について説明する。図4は、第1の実施の形態の記録制御装置100における記憶制御処理の手順を示すフローチャートである。
ユーザによって電源スイッチがONされると(ステップS1)、画像形成装置はブート(起動)を行い、操作可能状態となる(ステップS2)。
次に、記録制御装置100のCPU101がNVRAMI/F1(117a)に実装されているNVRAMのデータをメモリ領域11のNVバンク1(11a)にコピーし、NVRAMI/F2(117b)に実装されているNVRAMのデータをNVバンク2(11b)にコピーする(ステップS3)。
ステップS3の処理後、判別部108が、NVバンク1(11a)のID(ID読込値)を読み込み(ステップS4)、このID読込値が“1”であるか否かの判定を行う(ステップS5)。
ステップS5の処理で、ID読込値が“1”でなかった場合(ステップS5/No)、判別部108は、ID読込値がIDテーブル12に格納されているID設定値と不一致であると判断し、アクセス制御部109に、コマンドにより保障が可能であるNVRAM1(105)への書込を禁止させる(ステップS9)。
ステップS5の処理で、ID読込値が“1”であった場合(ステップS5/Yes)、判別部108は、NVバンク2(11b)のIDを読み込み(ステップS6)、ID読込値が“2”であるか否かの判定を行う(ステップS7)。
ステップS7の処理で、ID読込値が“2”でなかった場合(ステップS7/No)、判別部108は、ID読込値がIDテーブル12に格納されているID設定値と不一致であると判断し、アクセス制御部109によってNVRAM2(106)を書込禁止にする(ステップS9)。
ステップS9の処理で、NVRAM1(105)またはNVRAM2(106)を書込み禁止とした後、表示部110が、画像形成装置の操作パネルにNVRAMのID不一致エラーを表示し、警告する(ステップS10)。ステップS10の処理後、起動制御部111が画像形成装置の起動を停止する(ステップS11)。
ステップS7の処理で、ID読込値が“2”であった場合(ステップS7/Yes)、起動制御部111は、画像形成装置の起動を続行させる(ステップS8)。
そして、起動制御部111は、電源OFFとなったか否か判断し(ステップS12)、電源がOFFとなるのを待って(ステップS12/No)、電源OFFとなった場合(ステップS12/Yes)、処理を終了する。
このように本実施形態によれば、複数のNVRAM(105、106)がそれぞれ正規のNVRAMI/F(117a、117b)に実装されたか検知することが可能となり、NVRAMが誤って実装された際には起動を停止することで、誤ったNVRAMにアクセスして重要な情報が損失される事態を避けることが可能となる。さらに、誤実装時に操作部にID不一致エラーを表示して警告することで、実装位置の誤りを認識することができ、正規の位置にNVRAMを実装しなおすことが可能となる。
(第2の実施の形態)
第1の実施の形態では、NVRAM1、2(105、106)が誤った位置に実装されていた場合、アクセス制御と警告を行うことでデータ保障を行っていたが、この第2の実施の形態では、NVRAM1、2(105、106)が誤った位置に実装されていた場合、NVRAMのデータを書き換えることにより、データ保障を行う。
図5は、第2の実施の形態の記録制御装置200の機能的構成を示すブロック図である。本実施の形態にかかる記録制御装置200は、図5に示すように、判別部108と、データ置換部112と、データ置換状態判別部113と、起動制御部111と、RAM103と、FlashROM104と、NVRAM1(105)と、NVRAM2(106)と、NVRAMI/F1(117a)と、NVRAMI/F2(117b)とを主に備えている。ここで、判別部108、RAM103、FlashROM104、NVRAM1(105)、NVRAM2(106)、NVRAMI/F1(117a)、NVRAMI/F2(117b)の機能および構成については第1の実施の形態と同様であるので説明を省略する。また、本実施の形態の記録制御装置200のハードウェア構成も図1で示した第1の実施の形態と同様であるため、説明を省略する。
データ置換部112は、判別部108によってNVRAM1、2(105、106)の実装位置が誤っていると判断された場合に、NVRAM1、2(105、106)のデータを置換する。データ置換部112は、データ置換の際に、FlashROM104をデータ交換時のバッファとして用いている。また、データ置換部112は、データを置換した際に、データ置換処理状況を後述するCopy Statusのフラグに保存する。
データ置換状態判別部113は、画像形成装置の起動時に、データ置換部112がCopy Statusのフラグに保存したデータ置換処理状況を参照し、その置換処理状況に応じてその後の装置起動処理を行う。これにより、データ置換処理途中に装置が起動停止した際にも、再起動後速やかにデータ置換処理を再開可能にしている。
起動制御部111は、データ置換部112によってNVRAM1、2(105、106)のデータ置換が完了した際に、画像形成装置の起動を行う。
次に、データ置換部112とデータ置換状態判別部113の詳細について説明する。図6は、第2の実施の形態にかかる記録制御装置において、NVRAMの実装位置が誤っていた際に行われるNVRAMのデータ置換の例を示す説明図である。図6では、NVRAMI/F1(117a)にNVRAM2(106)が誤って実装されており、NVRAMI/F2(117b)にNVRAM1(105)が誤って実装されている場合を示している。
図6に示すように、FlashROM104にバッファを確保しておく。そして、データ置換部112は、誤って実装されているNVRAM1、2(105、106)のそれぞれに記憶されているデータをバッファに一時的にコピーする。
具体的には、データ置換部112は、NVRAMI/F1(117a)に誤って実装されたNVRAM2(106)に記憶された登録データ(NVRAM2データ)と、NVRAMI/F2(117b)に誤って実装されたNVRAM1(105)に記憶された機器情報データ(NVRAM1データ)とを、それぞれバッファにコピーする。
そして、データ置換部112は、NVRAMI/F1(117a)に誤って実装されたNVRAM2(106)から登録データを消去した上で、バッファに一時的に保存されたNVRAM1データ(機器情報)を格納する。
さらに、データ置換部112は、NVRAMI/F2(117b)に誤って実装されたNVRAM1(105)から機器情報を消去した上で、バッファに一時的に保存されたNVRAM2データ(登録データ)を格納する。
これにより、NVRAM1、2(105、106)が誤った位置に実装されていた場合でも、正確なデータへのアクセスが可能となる。
また、FlashROM104の所定のメモリアドレスには、Copy Statusフラグ15が設けられている。このCopy Statusフラグ15は、データ置換処理が完了したか否かの情報がデータ置換部112によって格納される。本実施の形態では、データ置換部112は、データ置換を開始した時に、Copy Statusフラグ15に“1”を書き込み、データ置換を完了した時にCopy Statusフラグ15に“0”を書き込む。従って、データ置換状態判別部113がCopy Statusフラグ15を参照し、“0”であればデータ置換完了が正常終了し、同値が“1”ならばデータ置換途中もしくは異常終了であることがわかる。これにより、データコピー中に何らかの原因で作業中断した際、データがFlashROM104内にバッファリングされていれば、再起動時にFlashROM104から各NVRAMへのデータコピー処理を速やかに開始することが可能となる。
次に、以上のように構成された本実施の形態にかかる記録制御装置200における記録制御処理について説明する。図7は、第2の実施の形態の記録制御装置200における記録制御処理の手順を示すフローチャートである。
ユーザーによって電源スイッチがONされる(ステップS21)と、画像形成装置はブート(起動)を行い、操作可能状態となる(ステップS22)。
次に、記録制御装置200のCPU101がNVRAMI/F1(117a)に実装されているNVRAMのデータをメモリ領域11のNVバンク1(11a)にコピーし、NVRAMI/F2(117b)に実装されているNVRAMのデータをNVバンク2(11b)にコピーする(ステップS23)。
ステップS23の処理後、データ置換状態判別部113は、FlashROM104内のCopy Status15を読み込み、“0”(正常)であるか否かの判断を行う(ステップS24)。
ステップS24の判定で、Copy Status15が“0”(正常)である場合(ステップS24/Yes)、ステップS25へ移行する。
ステップS24の判定で、Copy Status15が“0”(正常)でない場合(ステップS24/No)、ステップS31〜S33のデータ置換に移行する。
ステップS25で、判別部108は、NVバンク1(11a)のIDを読み込み、ステップS26では、読み込んだID(ID読込値)が“1”であるか否かの判定を行う。
ステップS26の判定でID読込値が“1”でなかった場合(ステップS26/No)、ステップS29〜S33のデータ置換に移行する。
ステップS26の判定で、ID読込値が“1”であった場合(ステップS26/Yes)、判別部108は、NVバンク2(11b)のIDを読み込み(ステップS27)、読み込んだID(ID読込値)が“2”であるか否かの判定を行う(ステップS28)。
ステップS28の判定で、ID読込値が“2”でなかった場合(ステップS28/No)、ステップS29〜S33のデータ置換に移行する。
ステップS28の判定でID読込値が“2”であった場合(ステップS28/Yes)、起動制御部111は、画像形成装置の起動を続行させる(ステップS34)。
画像形成装置の起動後、電源がOFFとなったか否か判断し(ステップS35)、電源がOFFとなるのを待って(ステップS35/No)、電源がOFFとなった場合(ステップS35/Yes)、処理を終了する。
データ置換(ステップS29〜S33)は以下の手順で行う(図6参照)。データ置換部112が、NVRAM1、2(105、106)のデータをFlashROM104にコピーする(ステップS29)。その後、データ置換部112が、FlashROM104のCopy Status15に“1”を書き込み、データ置換中であることを記録する(ステップS30)。
ステップS30の処理後、データ置換部112は、FlashROM104内のNVRAM1データをNVRAM2(106)にコピーし(ステップS31)、次いでFlashROM104内のNVRAM2データをNVRAM1(105)にコピーする(ステップS32)。ステップS32の処理後、データ置換部112は、FlashROM104のCopy Status15に“0”を書き込んでゼロクリアを行い、データ置換が正常に終了したことを記録する(ステップS33)。ステップS33の処理後、ステップS34において、画像形成装置の起動を続行させる。
本実施形態によれば、第1の実施形態にかかる効果に加え、NVRAM1、2(105、106)のデータ置換を行うことが可能となるため、NVRAMの実装位置を誤った際に正しい位置に再実装する必要が無くなり、自動的かつスムーズに装置立上げが可能になるという効果を奏する。
また、直接NVRAM間でデータコピーを行う場合や、もしくはDRAMをバッファとして用いてデータコピーを行う場合には、電源断時等にデータ保障ができなくなるという危険性が考えられるが、本実施形態の記録制御装置200によればこれを防止することが可能となる。
(第3の実施の形態)
第2の実施の形態では、NVRAM1、2(105、106)が誤った位置に実装されていた場合、NVRAMのデータを書き換えることによりデータ保障を行っていたが、この第3の実施の形態では、NVRAM1、2(105、106)が誤った位置に実装されていた場合、IDテーブルを更新することにより、データ保障を行う。
図8は、第3の実施形態にかかる記録制御装置300の機能的構成を示すブロック図である。本実施の形態にかかる記録制御装置300は、図8に示すように、判別部308と、識別テーブル管理部114と、起動制御部111と、RAM103と、FlashROM104と、NVRAM1(105)と、NVRAM2(106)と、NVRAMI/F1(117a)と、NVRAMI/F2(117b)とを主に備えている。ここで、RAM103、FlashROM104、NVRAM1(105)、NVRAM2(106)、NVRAMI/F1(117a)、NVRAMI/F2(117b)の機能および構成については第1の実施の形態と同様であるので説明を省略する。また、本実施の形態の記録制御装置300のハードウェア構成も図1で示した第1の実施の形態と同様であるため、説明を省略する。
判別部308は、画像形成装置の起動時にNVRAM1、2(105、106)が夫々有するIDとFlashROM104中のIDテーブル12とを参照することにより、NVRAM1、2(105、106)が制御基板上のNVRAMI/F1、2(117a、117b)に対して正規の位置で実装されているか否かの正誤判別を行う。
また、本実施の形態の判別部308は、NVバンク1、2(11a、11b)から読み込んだID読込値が初期値(0)であるか否かの判断を行う。この初期値の判断を行うのは以下の理由による。従来は、製造工程の最終段階においてNVRAMにIDを書き込んでいたが、このような作業をNVRAM製造時にその都度行うことは、製造工場ならびにサービスパーツにおける部品管理が複雑になり、製造コストの増大を招く。このため、本実施の形態では、NVバンク1、2(11a、11b)から読み取ったID(ID読込値)が初期値(0)か否かを判断することにより、工場出荷時のNVRAM1、2(105、106)にIDが設定されているか否かを判断し、工場出荷時のNVRAM1、2(105、106)にIDが設定されていない場合、すなわち、NVバンク1、2から読み取ったID読込値が初期値(0)である場合に、IDをNVRAM1、2(105、106)に書き込んでいる。これにより、製造工場においてNVRAM1、2(105、106)にIDを書き込む作業が必要なくなり、NVRAMの製造コストを低減することができるとともに、出荷前のNVRAM1、2(105、106)の部品管理において、NVRAMのIDを管理する必要が無くなり、管理負担を軽減することができる。
識別テーブル管理部114は、判別部308によってNVRAM1、2(105、106)の実装位置が誤っていると判断された場合に、NVRAM1、2(105、106)のデータと、NVRAM1、2(105、106)がメモリ領域11で各々使用する各メモリ領域(NVバンク1、2)との対応が正規の対応となるようにIDテーブルを更新する。識別テーブル管理部114の詳細については、後述する。
起動制御部111は、識別テーブル管理部114によってIDテーブル12の更新が完了した後に、画像形成装置の起動を行う。
次に、識別テーブル管理部114の詳細について説明する。図9は、第3の実施の形態にかかる記録制御装置300において、NVRAMの実装位置が誤っていた際に行われるIDテーブル12の更新の例を示す説明図である。図9では、NVRAMI/F1(117a)にNVRAM2(106)が誤って実装されており、NVRAMI/F2(117b)にNVRAM1(105)が誤って実装されている場合を示している。
図9に示すように、IDテーブル12には、各NVRAMのID(ID設定値)と、そのID設定値を有するNVRAMがRAM103において使用するメモリ領域との対応付けが格納されている。例えば、図9のIDテーブル12では、NVバンク1(11a)にはIDが1であるNVRAM1(105)のデータが格納され、NVバンク2(11b)にはIDが2であるNVRAM2(106)のデータが格納された場合に、NVRAMの実装位置が正しいことを示している。
判別部308によって、各NVRAMのID(ID読込値)とIDテーブル12のID(ID設定値)とが比較され、各NVRAMが誤った位置に実装されていると判別された場合には、識別テーブル管理部114が次のようにIDテーブル12を更新する。図9に示すように、識別テーブル管理部114は、IDテーブルにおいてNVバンク1に対応するNVRAMのID(ID設定値)を初期設定値の1から2に変更し、NVバンク2に対応するNVRAMのID(ID設定値)を初期設定値の2から1に変更する。
従って、更新後のIDテーブルは、NVRAM2(106)のデータが格納されているメモリ領域はNVバンク1であることを示し、メモリ領域11でNVRAM1(105)のデータが格納されているメモリ領域はNVバンク2であることを示している。これにより、CPU101はメモリ領域11の正しいアドレスにアクセスすることが可能となる。
次に、以上のように構成された本実施の形態にかかる記録制御装置300における記録制御処理について説明する。図10は、第3の実施の形態の記録制御装置300における記録制御処理の手順を示すフローチャートである。
ユーザーによって、電源スイッチがONされる(ステップS41)と、画像形成装置はブート(起動)を行い、操作可能状態となる(ステップS42)。
次に、記録制御装置300のCPU101がNVRAMI/F1(117a)に実装されているNVRAMのデータをメモリ領域11のNVバンク1(11a)にコピーし、NVRAMI/F2(117b)に実装されているNVRAMのデータをNVバンク2(11b)にコピーする(ステップS43)。
ステップS43の処理後、判別部308は、NVバンク1のIDを読み込む(ステップS44)。ステップS45では、そのID読込値が初期値(0)か否かの判定を行う。
ステップS45の判定で、ID読込値が初期値であった場合(ステップS45/Yes)、即ち工場出荷する際にNVRAMにIDを組み込んでいない場合には、識別テーブル管理部114は、NVRAMI/F1(117a)に実装されているNVRAMのIDとIDテーブル12のNVバンク1のID(ID設定値)とに“1”を書き込む(ステップS47〜S48)。
ステップS45の判定で、ID読込値が初期値でなかった場合(ステップS45/No)、NVバンク1(11a)のID読込値が1か否かの判定を行う(ステップS46)。
ステップS46の判定でID読込値が1でない場合(ステップS46/No)、ステップS54へ移行する。ステップS46の判定でID読込値が1の場合(ステップS46/Yes)、NVバンク2(11b)のIDを読み込み(ステップS49)、ID読込値が初期値か否かの判定を行う(ステップS50)。
ステップS50の判定で、ID読込値が初期値であった場合(ステップS50/Yes)、NVRAMI/F2(117b)に実装されているNVRAMのIDとIDテーブル12のNVバンク2のID(ID設定値)とに“2”を書き込む(ステップS52〜S53)。
ステップS50の判定で、ID読込値が初期値でなかった場合(ステップS50/No)、NVバンク2(11b)のID読込値が2か否かの判定を行う(ステップS51)。
ステップS51の判定でID読込値が2でない場合(ステップS51/No)、ステップS54へ移行する。ステップS51の判定でID読込値が2の場合(ステップS51/Yes)、ステップS55にて画像形成装置の起動を続行させる。
ステップS54では、IDテーブル12においてNVバンク1、2(11a、11b)の互いのID設定値を入替えて、IDテーブルの更新を行う。
ステップS54の処理後、画像形成装置の起動を続行させる(ステップS55)。
画像形成装置の起動後、電源がOFFとなったか否か判断し(ステップS56)、電源がOFFとなるのを待って(ステップS56/No)、電源がOFFとなった場合(ステップS56/Yes)は、処理を終了する。
本実施形態では、ステップS54で、IDテーブル12においてNVバンク(11a、11b)のID設定値を入替えているが、IDテーブル12を実際に実装されているNVRAM1、2(105、106)の位置と整合性がとれるように更新するものであれば、これに限定されるものではない。例えば、ステップS54で、NVバンク1、2(11a、11b)の互いの設定アドレスを入替えてIDテーブル12を更新するように、識別テーブル管理部114を構成してもよい。
第2の実施の形態では2つのNVRAMのデータ入替えに時間を要し、データコピー中の信頼性確保も新たな課題であり、また、NVRAMにコピー用の予備空間が必要であったが、本実施の形態においてはこれらの問題を解決することが可能となり、NVRAMデータ保障の際の安全性が向上するという効果を奏する。
また、第3の実施の形態では、NVバンク1、2(105、106)から読み取ったID(ID読込値)が初期値(0)か否かを判断することにより、工場出荷時のNVRAM1、2(105、106)にIDが設定されているか否かを判断し、NVバンク1、2から読み取ったID読込値が初期値(0)である場合に、IDをNVRAM1、2(105、106)に書き込んでいるので、製造工場においてNVRAM1、2(105、106)にIDを書き込む作業が必要なくなり、NVRAMの製造コストを低減することができる。また、本実地の形態では、このようにIDをNVRAMに書き込むので、出荷前のNVRAM1、2(105、106)の部品管理において、NVRAMのIDを管理する必要が無くなり、管理負担を軽減することができる。
(第4の実施の形態)
第1〜3の実施の形態では、2つのNVRAMI/Fで2つのNVRAMを使用することを前提に実装位置の正誤判断をおこなっていたが、第4の実施の形態にかかる記録制御装置では、2つのNVRAMI/FのいずれかにNVRAMを1つだけ実装した場合においてNVRAMの実装位置の正誤判別を行い、実装位置が誤っている場合にはNVRAMのデータ保障を行う。
図11は、第4の実施形態にかかる記録制御装置400の機能的構成を示すブロック図である。本実施の形態にかかる記録制御装置400は、図11に示すように、判別部408と、デバイス使用判別部115と、表示部110と、識別テーブル管理部116と、起動制御部111と、RAM103と、FlashROM104と、NVRAM1(105)と、NVRAMI/F1(117a)と、NVRAMI/F2(117b)とを主に備えている。ここで、RAM103、FlashROM104、NVRAM1(105)、NVRAMI/F1(117a)、NVRAMI/F2(117b)の機能および構成については第1の実施の形態と同様であるので説明を省略する。また、本実施の形態の記録制御装置400のハードウェア構成も図1で示した第1の実施の形態と同様であるため、説明を省略する。
デバイス使用判別部115は、画像形成装置の起動時にNVRAM1、2(105、106)が各々使用される設定であるか否かの判別を行う。
判別部408は、デバイス使用判別部115によって、画像形成装置の起動時にNVRAMが使用される設定であると判別された場合に、各NVRAMI/FにNVRAMが実装されているか否かを判別し、さらにNVRAMのIDとIDテーブル42とを比較して、NVRAMの実装位置の正誤判別を行う。また、判別部408は、実施の形態3と同様に、実装されているNVRAMのIDが初期値か否かも判別する。
具体的には、判別部408は、NVRAMI/F1(117a)にNVRAMが実装されているか否かを、NVバンクに設定されているIDが0xFFであるか否かにより判断し、NVバンクに設定されているIDが0xFFである場合に未実装と判断する。すなわち、メモリ領域41のNVバンク1、2(41a、41b)は当初、0xFFの値で初期化された状態となっており、NVRAM1、2(105、106)が実装された場合には、NVRAM1、2(105、106)の内容がそのままNVバンク1、2(41a、41b)にコピーされるため、NVバンクに設定されているIDが0xFFでない場合には、NVRAM1、2(105、106)が実装されていると判断するのである。
また、判別部408は、IDテーブル42において領域IDがNVバンク1に対応するID設定値と一致するか否かを判別することにより、実装されているNVRAM1、2(105、106)が正規の位置に実装されているか否かを判断する。例えば、IDテーブル42の領域IDにおいてNVバンク1に対応するID設定値は1であるのに対して、NVバンク1(41a)から読み込んだID読込値は2である場合には、NVRAMI/F1(117a)に実装されたNVRAMは誤実装であると判別される。
表示部110は、判別部408がNVRAMI/F1(117a)あるいはNVRAMI/F2(117b)にNVRAMが実装されていないと判別した場合、画像形成装置の操作パネルにNVRAMのID不一致エラーを表示し、警告する。
識別テーブル管理部116は、判別部408によってID読込値が初期値であると判別された場合に、NVバンクのIDと、IDテーブル42のID設定値とに、同値のIDを書き込む。また、識別テーブル管理部116は、判別部408によって、NVRAMの実装位置が誤っていると判別された場合に、メモリ領域41でNVRAMが使用する各メモリ領域が正規の対応となるようにIDテーブル42を更新する。識別テーブル管理部116の詳細については、後述する。
起動制御部111は、表示部110によるエラー表示ならびに警告後に、画像形成装置の起動停止を行う。
FlashROM104は、各NVRAMと、各NVRAMのデータがコピーされるメモリ領域の正規の対応を格納したIDテーブル42を有する。IDテーブル42については実施の形態1〜3と同様である。
次に、NVRAMを一つだけ使用して画像形成装置の起動を行う設定である場合に、NVRAMが未実装である場合について説明する。
図12は、第4の実施形態にかかる記録制御装置400において、NVRAM1(105)を使用して画像形成装置の起動を行う設定である場合において、NVRAMI/F1(117a)の位置にNVRAMが未実装である場合を示す説明図である。
図12には、使用する設定(有効)であるNVRAMI/F1(117a)にNVRAM1(105)が実装されず、使用しない設定(無効)であるNVRAMI/F2(117b)にNVRAM1(105)が誤実装された場合のメモリ領域41の例を示す。この状態で画像形成装置を起動した場合、図12に示すように、NVバンク1(41a)にはデータがコピーされず、NVバンク2(41b)には、本来NVバンク1(41a)にコピーされるべきNVRAM1(105)のデータが誤ってコピーされる。
この場合、図12に示すように、NVバンク1(41a)から読み込んだID読込値は0xFFとなるので、判別部408は、NVRAM1(105)が未実装と判別する。この場合、表示部110によりエラーが表示され、起動制御部111によって、画像形成装置は起動停止される。
次に、NVRAMを一つだけ使用して画像形成装置の起動を行う設定である場合に、誤ったNVRAMが実装された場合について説明する。
図13は、第4の実施の形態にかかる記録制御装置400において、NVRAM1(105)をNVRAMI/F1(117a)に実装して画像形成装置の起動を行う設定である場合に、NVRAM2(106)がNVRAMI/F1(117a)に誤実装された場合を示す説明図である。図13に示すように、NVバンク1(41a)には本来NVバンク2(41b)にコピーされるべきNVRAM2(106)のデータがコピーされている。また、NVバンク2は無効(使用しない旨の設定)となっている。
この場合、図13に示すように、IDテーブル42の領域IDがNVバンク1に対応するID設定値(1)とNVバンク1から読み込んだID読込値(2)とが不一致であるため、判別部408により誤実装と判別される。このような場合には、図13に示すように、識別テーブル管理部116が、ID設定値(図13では1)を消去し、さらにID読込値(図13では2)をID設定値とする。このようにIDテーブル42は、実装されているNVRAMと、使用しているメモリ領域との対応が実際と等しくなるように更新される。
次に、以上のように構成された本実施の形態にかかる記録制御装置400における記録制御処理について説明する。図14は、第4の実施の形態の記録制御装置400における記録制御処理の手順を示すフローチャートである。
ユーザによって電源スイッチがONされる(ステップS61)と、装置はブート(起動)を行い、操作可能状態となる(ステップS62)。
ステップS62の処理後、デバイス使用判別部115は、NVバンク1(41a)が有効か無効か判別する(ステップS63)。
ステップS63の判定で、NVバンク1(41a)が有効だと判断された場合(ステップS63/Yes)、記録制御装置400のCPU101が、NVRAMI/F1(117a)に実装されているNVRAMのデータをNVバンク1(41a)にコピーする(ステップS64)。さらに、判別部408は、NVバンク1(41a)のIDを読み込む(ステップS65)。
ステップS63の判定で、NVバンク1(41a)が無効だと判断された場合(ステップS63/No)、NVRAM1(105)は使用しない設定であるから下記ステップS71に移行する。
ステップS65の処理後、判別部408は、NVバンク1(41a)のID読込値が0xFFか否かの判定を行う(ステップS66)。
ステップS66の判定で、NVバンク1(41a)のID読込値が0xFFの場合、即ちNVRAMI/F1(117a)にNVRAMが実装されていない場合(ステップS66/Yes)、ステップS81〜82に示す起動停止へと移行する。
ステップS66の判定で、NVバンク1(41a)のID読込値が0xFFではない場合、即ちNVRAMI/F1(117a)にNVRAMが実装されている場合(ステップS66/No)、判別部408は、NVバンク1(41a)のID読込値が初期値(0)か否かの判定を行う(ステップS67)。
ステップS67の判定で、NVバンク1(41a)のID読込値が初期値である場合、即ちNVRAMにIDが未記入の場合(ステップS67/Yes)、識別テーブル管理部116は、NVRAMI/F1(117a)に実装されているNVRAMのIDとIDテーブル42のNVバンク1に対応するID設定値とに夫々“1”を書き込む(ステップS69〜70)。
ステップS67の判定で、NVバンク1(41a)のID読込値が初期値ではない場合、即ちNVRAMに既にIDが書き込まれている場合(ステップS67/No)、判別部408は、NVバンク1(41a)のID読込値が1か否かの判定を行う(ステップS68)。ID読込値が1でない場合(ステップS68/No)、ステップS79へ移行する。
ステップS68でID読込値が1である場合(ステップS68/Yes)またはステップS70の処理後、デバイス使用判別部115は、NVバンク2(41b)が有効か無効かの判定を行う(ステップS71)。
NVバンク2(41b)が有効だと確認された場合(ステップS71/Yes)、記録制御装置400のCPU101がNVRAMI/F2(117b)に実装されているNVRAMのデータをNVバンク2(41b)にコピーし(ステップS72)、さらに判別部408がNVバンク2のIDを読み込む(ステップS73)。NVバンク2(41b)が無効の場合(ステップS71/No)、NVRAM2(106)は使用しない設定であるからステップS80へ移行し、画像形成装置の起動を続行させる。
ステップS73の処理後、判別部408は、NVバンク2(41b)のID読込値が0xFFか否かの判定を行う(ステップS74)。
ステップS74の判定で、NVバンク2(41b)のID読込値が0xFFの場合、即ちNVRAMI/F2(117b)にNVRAMが実装されていない場合(ステップS74/Yes)、ステップS81〜82に示す起動停止へと移行する。
ステップS74の判定で、NVバンク2(41b)のID読込値が0xFFではない場合、即ちNVRAMI/F2(117b)にNVRAMが実装されている場合(ステップS74/No)、NVバンク2(41b)のID読込値が初期値か否かの判定を行う(ステップS75)。
ステップS75の判定で、NVバンク2(41b)のID読込値が初期値である場合、即ちNVRAMにIDが未記入の場合(ステップS75/Yes)、NVRAMI/F2(117b)に実装されているNVRAMのIDとIDテーブル42のNVバンク2に対応するID設定値とに夫々“2”を書き込む(ステップS77〜78)。
ステップS75の判定で、NVバンク2(41b)のID読込値が初期値ではない場合、即ちNVRAMに既にIDが書き込まれている場合(ステップS75/No)、判別部408は、NVバンク2(41b)のID読込値が2か否かの判定を行う(ステップS76)。ID読込値が2でない場合(ステップS76/No)ステップS79へ移行する。ステップS76でID読込値が2の場合(ステップS76/Yes)、ステップS80に移行する。
ステップS79では、識別テーブル管理部116が、IDテーブル42においてNVバンク1、2の互いのID設定値を入替えて、IDテーブル42の更新を行う。
ステップS79の処理後、画像形成装置の起動を続行させる(ステップS80)。
画像形成装置の起動後、あるいはステップS82での画像形成装置の起動停止後、電源がOFFとなったか否かを判断し(ステップS83)、電源がOFFとなるのを待って(ステップS83/No)、電源OFFとなった場合(ステップS83/Yes)には、処理を終了する。
本実施形態では、ステップS79で、IDテーブル42においてNVバンク1、2のID設定値を入替えているが、その他の態様として、ステップS79で、NVバンク1、2(41a、41b)の互いのアドレスを入替えることも可能である。
第4の実施形態によれば、NVRAMを使用して起動する設定であるが、NVRAMが未実装であった際に、エラー表示によって未実装であることを認知することが可能となる。
また、第4の実施形態によれば、NVRAMを1つのみ実装して起動を行う際にも、NVRAMの実装位置誤りに対して正規のアドレスにアクセスして所定の装置を起動することが可能となる。従って、NVRAMI/F1(117a)の優位性を排除して、NVRAMI/F1〜2(117a〜117b)を同等に使用することが可能となる。
なお、第1〜4の実施の形態の記録制御装置で実行される記憶制御プログラムは、ROM等に予め組み込まれて提供される。第1〜4の実施の形態の記録制御装置で実行される記憶制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、第1〜4の実施の形態の記録制御装置で実行される記憶制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第1〜4の実施の形態の記録制御装置で実行される記録制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
第1〜4の実施の形態の記録制御装置で実行される記録制御プログラムは、上述した各部(判別部、アクセス制御部、表示部、起動制御部、データ置換部、データ置換状態判別部、識別テーブル管理部、デバイス使用判別部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体から記録制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、判別部、アクセス制御部、表示部、起動制御部、データ置換部、データ置換状態判別部、識別テーブル管理部、デバイス使用判別部が主記憶装置上に生成されるようになっている。