説明

ディジタル端末のブートプログラム書き替え方法

【課題】ブートプログラムのオンライン書き替えに、端末機能を確保し、操作者の過失等にもプログラムの破損を回避および自動修復を可能にする。
【解決手段】フラッシュROMにはブートプログラム・コア1Cとブートプログラム本体1A、1Bおよびチェックサムを書き込み、RAM上にコピーされたプログラム本体1Aは、新ブートプログラムと新チェックサムを受信してその正当性を確認し(S3)、プログラム本体1Bとそのチェックサムを消去し(S4)、この部分に新ブートプログラムと新チェックサムへ書き替え(S5)、プログラム本体1Aとそのチェックサムを消去し(S6)、この部分に新ブートプログラム本体と新アプリチェックサムへ書き替える(S7)。ブートプログラム・コア1Cは、プログラム本体1Aに異常が見受けられた場合にプログラム本体1Bの正当性を判定し、プログラム本体1Bをプログラム本体1Aにコピーすることを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディジタル保護リレーなど、プログラム等の記憶媒体として不揮発性記憶デバイスを搭載するディジタル端末に、その記憶デバイスに書き込まれたプログラムを遠隔地からオンラインで書き替える方法に係り、特にブートプログラムの書き替え方法に関する。
【背景技術】
【0002】
従来、ディジタル保護リレーにおけるプログラムや固定の設定データなどは、EPROMなどのROMにROMライターを用いて書き込み、装置に実装していた。しかし、近年、ディジタル保護リレーの高機能化が進み、それらを格納する記憶デバイスも、従来のEPROMなどから、フラッシュROM等のオンライン書き替え(装置稼働状態のまま書き替え)可能な不揮発性記憶デバイスになってきている。
【0003】
この書き替え可能なフラッシュROMには、図8に示すように、当該システムの機能を実現するアプリケーションプログラム(以下、アプリケーション)2が書き込まれるが、このアプリケーションを書込むためのブートプログラム1が別途書き込まれるのが一般的である。
【0004】
ブートプログラム1は、ディジタル端末内で最初に起動され、最低限の初期化とアプリケーション2の起動やその書き替え、さらにブートプログラム自身を書き替える機能を持っている。なお、ブートプログラムは、ブログラムの書き替え機能を使用しない場合は、システムの初期化後にアプリケーション2を起動し、自プログラムは終了する。
【0005】
プログラムの書き替えの際には、操作者がRS232Cやイーサネット(登録商標)等の通信機能でディジタル端末にインターフェースを取り、ディジタル端末に新アプリケーションまたは新ブートプログラムを取得し、書き替え可能な記憶デバイスの書き替えを行う(例えば、特許文献1参照)。
【0006】
通常、ブートプログラム自身は書き替えられることは無いが、何らかの理由(例:機能追加、不具合修正等)でブートプログラム自身を書き替える場合がある。その際には、既存のブートプログラムを消去し、新ブートプログラムの書き替えを行う。
【特許文献1】特開2003−196114号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
前記のように、ブートプログラム自身は、通常、書き替えられることは無いが、何らかの理由(例:機能追加、不具合修正等)でブートプログラム自身を書き替える場合がある。その際には、既存のブートプログラムを消去し、新ブートプログラムの書き替えを行うが、書き替え完了する迄の間に操作者の過失やその他原因(ノイズや電源瞬断等)による再起動が行われてしまうことがある。このとき、既存のブートプログラムは消去され、新ブートプログラムも書き替えを完了していないことから、ディジタル端末で最初に起動するブートプログラムが異常となり、結果的にシステムの起動に失敗し、装置の機能喪失になる。
【0008】
ブートプログラムの書き替え手順を図9の(a)〜(d)で詳細に説明する。
【0009】
図9(a):ディジタル端末の起動では、フラッシュROM等の書き替え可能な記憶デバイス上のブートプログラム1自身を別デバイスになるRAM上にコピーし、その上で動作する。
【0010】
図9(b):ブートプログラムを書き替える場合、RAM上のブートプログラム1は、まずPCからRS232Cなどの通信機能を用いて新ブートプログラム3をRAM上に取得する。
【0011】
図9(c):書き替え可能な記憶デバイス上のブートプログラム1の削除を行う。
【0012】
図9(d):RAM上の新ブートプログラム3を書き替え可能な記憶デバイスに新規のブートプログラムとして書き込む。
【0013】
以上の処理手順になるブートプログラムの書き替えにおいては、以下の問題がある。
【0014】
「問題点1」書き替え可能な記憶デバイス上のブートプログラム1を消去後に書き替える必要があり、消去から書き替え完了までの間はブートプログラムが書き込まれていない時間(図9(c)から(d)完了までの間)が存在する。
【0015】
「問題点2」上記の書き替え完了までの間に操作者の過失やその他原因(ノイズや電源瞬断等)による再起動が行われてしまうと、既存のブートプログラムは消去され、新ブートプログラムも書き替え完了していないことから、ディジタル端末が最初に起動するブートプログラムが異常となり、結果的にシステムの起動に失敗し、装置の機能喪失になる。
【0016】
「問題点3」上記のブートプログラムの異常発生では、ICE(In-Circuit Emulator)等の特殊な機器を使用してブートプログラムを書き込むことになるが、一般的な接続方法と異なる場合がほとんどのため、装置の分解、書き替え、組み立てなど復旧時間が多大にかかり、需要家に納めたシステムで発生させた場合は、多大な影響を与えてしまう。
【0017】
本発明の目的は、上記の課題を解決したディジタル端末のブートプログラム書き替え方法を提供することにある。
【課題を解決するための手段】
【0018】
本発明は、ディジタル端末のオンライン書き替え可能な記憶デバイスにはブートプログラム・コアと二重化したブートプログラム本体に分離、およびそれぞれの正当性を判定するチェックサムを書き込んでおき、一方のブートプログラム本体の書き替え時には他方のブートプログラムによりアプリケーションの実行機能を確保し、さらに一方のブートプログラム本体の書き替え時に操作者の過失またはその他原因により書き替え失敗したときは他方のブートプログラム本体を書き替え失敗側のブートプログラム本体領域にコピーして修復するようにしたものであり、以下の方法を特徴とする。
【0019】
(1)書き替え可能な不揮発性記憶デバイスを搭載し、該記憶デバイスにブートプログラムとアプリケーションプログラムを格納するディジタル端末に対し、前記ブートプログラムを遠隔地からオンラインで書き替える方法であって、
前記記憶デバイスには、ブートプログラムとして、ブートプログラム・コアと二重化したブートプログラム本体A,Bおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、
前記ブートプログラム本体Aは、
電源立ち上げ時に起動されるブートプログラム・コアによって起動され、自ブートプログラム本体を別デバイス上にコピーして該別デバイス上で実行する過程と、
遠隔地から起動指令を受信してオンライン書き替え機能を起動し、遠隔地から新ブートプログラム本体A/Bと新チェックサムを受信し、該新チェックサムを使って該新ブートプログラム本体の正当性を確認する過程と、
前記新ブートプログラム本体の正当性を確認した後、前記記憶デバイス上の他方のブートプログラム本体Bとそのチェックサムを消去する過程と、
前記ブートプログラム本体Bを前記新ブートプログラム本体へ書き替え、そのチェックサムを前記新チェックサムへ書き替える過程と、
前記新ブートプログラム本体への書き替えが正常に終了したことを前記ブートプログラム本体Bのチェックサムで確認し、正常に書き替えられた場合は、前記記憶デバイス上のブートプログラム本体Aを消去する過程と、
前記記憶デバイス上のブートプログラム本体Aを消去した部分を前記新ブートプログラム本体に書き替え、そのチェックサム部分を前記新チェックサムへ書き替え、書き替えが正常に終了したことをブートプログラム本体Aのチェックサムで確認する過程と、
を有することを特徴とする。
【0020】
(2)前記ブートプログラム・コアは、
装置の起動で前記別デバイスにコピーされ、装置の初期設定を行い、前記ブートプログラム本体Aの正当性をそのチェックサムで判定し、正しいことが確認されたときはブートプログラム本体Aを起動する過程と、
前記ブートプログラム本体Aに異常が見受けられた場合に前記ブートプログラム本体Bの正当性をそのチェックサムで判定し、正しいことが確認されたときは該ブートプログラム本体Aを消去する過程と、
該ブートプログラム本体Bを前記ブートプログラム本体Aの部分にコピーする過程と、
前記コピーされたブートプログラム本体Aを起動する過程と、
を有することを特徴とする。
【発明の効果】
【0021】
以上のとおり、本発明によれば、ディジタル端末のオンライン書き替え可能な記憶デバイスにはブートプログラム・コアと二重化したブートプログラム本体に分離、およびそれぞれの正当性を判定するチェックサムを書き込んでおき、一方のブートプログラム本体の書き替え時には他方のブートプログラムによりアプリケーションの実行機能を確保し、さらに一方のブートプログラム本体の書き替え時に操作者の過失またはその他原因により書き替え失敗したときは他方のブートプログラム本体を書き替え失敗側のブートプログラム本体領域にコピーして修復するようにしたため、ディジタル端末における記憶デバイス上のブートプログラムを遠隔地から書き替える際の前記の「問題点1」〜「問題点3」を解決できる。
【発明を実施するための最良の形態】
【0022】
図1は、本発明の実施形態を示すブートプログラムの書き替え処理フローである。まず、本実施形態では、書き替え可能な記憶デバイス(フラッシュROM)上のプログラム構成は、従来のブートプログラムを、ブートプログラム・コア1CとブロックAとBに二重化したブートプログラム本体1A、1B(ブロックA,B)の2つに分離し、また、ブロックA、Bそれぞれのブートプログラム本体の正当性を判定するチェックサムを付加して格納できる領域を確保する。
【0023】
ブートプログラム・コア1Cは、最低限の初期化とブートプログラム本体のブロックAおよびBの正当性確認と、ブロックA異常時にブロックBからの修復機能を持ち、ブートプログラムの改変でも変わることのない共通機能だけで構成されているものとし、書き替え可能な記憶デバイスから消去されることがないものとする。
【0024】
ブートプログラム本体1A,1Bは、アプリケーション2の起動やアプリケーション(またはブートプログラム)の書き替え機能等で構成され、ブートプログラム書き替え時には、ブロックAとBの2ヶ所に書き込みを行うようにする。
【0025】
また、ブートプログラムの改変が行われる場合は、このブートプログラム本体が改変・書き替えられるものとする。
【0026】
以下、ブートプログラムによる起動処理(S1)を図2を参照して説明し、その書き替え処理(S2〜S8)を図3〜図5を参照して詳細に説明する。
【0027】
(S1)図2(a)に示すように、電源立ち上げ時はブートプログラム・コア1Cから起動される。図2(b)に示すように、最低限の初期化を行った後に、ブートプログラム本体1A(ブロックA)の正当性をチェックサムで確認する。図2(c)に示すように、ブートプログラム本体1A(ブロックA)の正当性が確認された場合は、そのまま起動する。なお、正当性が確認出来なかった場合の処理は後述する。
【0028】
(S2)図3(a)に示すように、ブートプログラム本体1Aは、起動後、自身をRAM等の別デバイス上にコピーし、その上で実行する。この実行に際して、ブートプログラムの書き替えでない場合はアプリケーションの実行に移行し、書き替えの場合は以下の(S3)〜(S7)の処理に移行する。
【0029】
(S3)図3(b)に示すように、ブートプログラム本体1Aは、RS232C等でPCから新ブートプログラム本体3A/3Bと、それらの新チェックサムを受信し、正当性を確認する。この新ブートプログラム本体3A/3Bおよびそのチェックサムは、ブートプログラム1Aと1Bおよびそれらのチェックサムの両方を含むものである。
【0030】
(S4)図4(a)に示すように、ブートプログラム本体1Aは、新ブートプログラム本体3A/3Bの正当性を確認した後、書き替え可能な記憶デバイス上のブロックBとそのチェックサムを消去する。
【0031】
(S5)図4(b)に示すように、ブートプログラム本体1Aは、ブロックBを新ブートプログラム本体3Bへ書き替え、そのチェックサムを新チェックサムへ書き替える。
【0032】
(S6)図5(a)に示すように、ブートプログラム本体1Aは、ブロックBの書き替えが正常に終了したことをブロックBの新チェックサムで確認し、正常に書き替えられた場合は、ブロックAを消去する。なお、ブロックBの書き替えが正常に行えなかった場合は、一定回数のリトライ後、異常終了の旨を何らかの方法で通知する。
【0033】
(S7)図5(b)に示すように、ブートプログラム本体1Aは、ブロックAの消去後、ブロックAを新ブートプログラム3Aへ書き替え、そのチェックサムを新チェックサムへ書き替える。このブロックAの書き替えについてもブロックBの場合と同様に、正当性の判定と異常時のリトライと通知を行う。
【0034】
上記のオンライン書き替え機能を実施することで、前記の問題点1「書き替え可能な記憶デバイス上のブートプログラムを消去・書き替える必要があり、消去から書き替え完了までの間はブートプログラムが書き込まれていない時間が存在する」が同じブートプログラムを2つのブロックA/Bに時間的にずれて書き込むことで回避できる。
【0035】
前記の問題点2「問題点1の書き替えを完了する迄の間に操作者の過失やその他原因(ノイズや電源瞬断等)による再起動が行われてしまうと、既存のブートプログラムは消去され、新ブートプログラムも書き替え完了していないことから、システムが最初に起動するブートプログラムが異常となり、結果的にシステムが起動しない」および問題点3「問題点2が発生すると、ICE(In-Circuit Emulator)等の特殊な機器を使用してブートプログラムを書き込むことになるが、一般的な接続方法と異なる場合がほとんどのため、装置の分解、書き替え、組み立てなど復旧時間が多大にかかり、需要家に納めたシステムで発生させた場合は、多大な影響を与えてしまう」は、上記の2つのブロックA/Bを利用して、以下に説明するブートプログラムの自動修復処理機能により回避することができる。
【0036】
図6および図7は、ブートプログラム・コアによるブートプログラム本体の修復処理態様を示す。この例では、「新ブートプログラム本体への書き替えを行う際に、ブロックAの書き替え途中で瞬断が発生し、ブロックAが破損したまま再起動されてしまった場合」を示すものである。
【0037】
図6(a)に示すように、ブートプログラム・コア1Cは、装置の起動でRAMにコピーされ、装置の初期化を行い、最初にブロックAの正当性をそのチェックサムで判定し、正しいことが確認された時はブロックAのブートプログラム本体1Aを起動する。
【0038】
図6(b)に示すように、ブートプログラム・コア1Cは、ブロックAに異常が見受けられた場合、ブロックBの正当性をそのチェックサムで判定し、正しいことが確認されたときはブロックAを消去する。
【0039】
図7(a)に示すように、ブートプログラム・コア1Cは、ブロックA消去後に、ブロックBのブートプログラム本体1BをブロックAにコピー(修復)する。
【0040】
図7(b)に示すように、ブートプログラム・コア1Cは、ブロックAのブートプログラム本体を起動する。
【0041】
なお、ブロックA,B共に異常が見受けられた場合、何らかの方法でその旨を外部に通報する。
【0042】
以上の処理を行うことにより、破損したブロックAを修復することが可能になる。この自動修復機能により、問題点2「問題点1の書き替えを完了する迄の間に操作者の過失やその他原因(ノイズや電源瞬断等)による再起動が行われてしまうと、既存のブートプログラムは消去され、新ブートプログラムも書き替え完了していないことから、システムが最初に起動するブートプログラムが異常となり、結果的にシステムが起動できない」および問題点3「問題点2が発生すると、ICE等の特殊な機器を使用してブートプログラムを書き込むことになるが、一般的な接続方法と異なる場合がほとんどのため、装置の分解、書き替え、組み立てなど復旧時間が多大にかかり、需要家に納めたシステムで発生させた場合は、多大な影響を与えてしまう」が回避可能となる。
【0043】
なお、ブロックBの書き替え途中で再起動が発生し、ブロックBが破損したような場合でも、ブロックAには従来のブートプログラム本体が残っているため、従来どおりの起動が可能である。
【図面の簡単な説明】
【0044】
【図1】本発明の実施形態を示すブートプログラムの書き替え処理フロー。
【図2】実施形態におけるブートプログラム・コアによる起動処理態様図。
【図3】実施形態における書き替え処理態様図(その1)。
【図4】実施形態における書き替え処理態様図(その2)。
【図5】実施形態における書き替え処理態様図(その3)。
【図6】ブートプログラム・コアによるブートプログラム本体の修復処理態様図(その1)。
【図7】ブートプログラム・コアによるブートプログラム本体の修復処理態様図(その2)。
【図8】従来のフラッシュROM上のプログラム構成。
【図9】従来のブートプログラムの書き替えの一般的処理手順。
【符号の説明】
【0045】
1A ブートプログラム本体A
1B ブートプログラム本体B
1C ブートプログラム・コア
2 アプリケーションプログラム
3A/3B 新ブートプログラム本体

【特許請求の範囲】
【請求項1】
書き替え可能な不揮発性記憶デバイスを搭載し、該記憶デバイスにブートプログラムとアプリケーションプログラムを格納するディジタル端末に対し、前記ブートプログラムを遠隔地からオンラインで書き替える方法であって、
前記記憶デバイスには、ブートプログラムとして、ブートプログラム・コアと二重化したブートプログラム本体A,Bおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、
前記ブートプログラム本体Aは、
電源立ち上げ時に起動されるブートプログラム・コアによって起動され、自ブートプログラム本体を別デバイス上にコピーして該別デバイス上で実行する過程と、
遠隔地から起動指令を受信してオンライン書き替え機能を起動し、遠隔地から新ブートプログラム本体A/Bと新チェックサムを受信し、該新チェックサムを使って該新ブートプログラム本体の正当性を確認する過程と、
前記新ブートプログラム本体の正当性を確認した後、前記記憶デバイス上の他方のブートプログラム本体Bとそのチェックサムを消去する過程と、
前記ブートプログラム本体Bを前記新ブートプログラム本体へ書き替え、そのチェックサムを前記新チェックサムへ書き替える過程と、
前記新ブートプログラム本体への書き替えが正常に終了したことを前記ブートプログラム本体Bのチェックサムで確認し、正常に書き替えられた場合は、前記記憶デバイス上のブートプログラム本体Aを消去する過程と、
前記記憶デバイス上のブートプログラム本体Aを消去した部分を前記新ブートプログラム本体に書き替え、そのチェックサム部分を前記新チェックサムへ書き替え、書き替えが正常に終了したことをブートプログラム本体Aのチェックサムで確認する過程と、
を有することを特徴とするディジタル端末のブートプログラム書き替え方法。
【請求項2】
前記ブートプログラム・コアは、
装置の起動で前記別デバイスにコピーされ、装置の初期設定を行い、前記ブートプログラム本体Aの正当性をそのチェックサムで判定し、正しいことが確認されたときはブートプログラム本体Aを起動する過程と、
前記ブートプログラム本体Aに異常が見受けられた場合に前記ブートプログラム本体Bの正当性をそのチェックサムで判定し、正しいことが確認されたときは該ブートプログラム本体Aを消去する過程と、
該ブートプログラム本体Bを前記ブートプログラム本体Aの部分にコピーする過程と、
前記コピーされたブートプログラム本体Aを起動する過程と、
を有することを特徴とする請求項1に記載のディジタル端末のブートプログラム書き替え方法。

【図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


【公開番号】特開2007−115066(P2007−115066A)
【公開日】平成19年5月10日(2007.5.10)
【国際特許分類】
【出願番号】特願2005−306491(P2005−306491)
【出願日】平成17年10月21日(2005.10.21)
【出願人】(000006105)株式会社明電舎 (1,739)
【Fターム(参考)】