(57)【要約】【課題】ディジタル端末のプログラムのオンライン書き替えに、端末機能を確保し、電源瞬断やプログラム暴走等にもプログラムの自動修復を可能にする。【解決手段】フラッシュＲＯＭにはアプリケーション２Ａ、２Ｂおよびチェックサム３Ａ、３Ｂを書き込み、ＲＡＭ上にコピーされたアプリケーションＡは、新プログラムと新チェックサムを受信してその正当性を確認し（Ｓ２）、アプリケーション２Ｂとそのチェックサムを消去し（Ｓ３）、この部分に新プログラムと新チェックサムへ書き替え（Ｓ４）、アプリケーション２Ａとそのチェックサムを消去し（Ｓ５）、この部分に新プログラムと新アプリチェックサムへ書き替える（Ｓ６）。  ブートプログラム１は、アプリケーション２Ａに異常が見受けられた場合にアプリケーション２Ｂの正当性を判定し、アプリケーション２Ｂをアプリケーション２Ａにコピーすることを含む。【選択図】図１
2007115065.tif 000002
【特許請求の範囲】
【請求項１】
書き替え可能な不揮発性記憶デバイスを搭載し、該記憶デバイスにブートプログラムとアプリケーションプログラムを格納するディジタル端末に対し、前記アプリケーションプログラムを遠隔地からオンラインで書き替える方法であって、
前記記憶デバイスにはブートプログラムと二重化したアプリケーションプログラムＡ，Ｂおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、
前記アプリケーションＡは、
電源立ち上げ時に起動されるブートプログラムによって起動され、自アプリケーションを別デバイス上にコピーして該別デバイス上で実行する過程と、
遠隔地から起動指令を受信してオンライン書き替え機能を起動し、遠隔地から新プログラムと新チェックサムを受信し、該新チェックサムを使って該新プログラムの正当性を確認する過程と、
前記新プログラムの正当性を確認した後、前記記憶デバイス上の他方のアプリケーションＢとそのチェックサムを消去する過程と、
前記アプリケーションＢを前記新プログラムへ書き替え、そのチェックサムを前記新チェックサムへ書き替える過程と、
前記新プログラムへの書き替えが正常に終了したことを前記アプリケーションＢのチェックサムで確認し、正常に書き替えられた場合は、前記記憶デバイス上のアプリケーションＡを消去する過程と、
前記記憶デバイス上のアプリケーションＡを消去した部分を前記新プログラムに書き替え、そのチェックサム部分を前記新チェックサムへ書き替え、書き替えが正常に終了したことをアプリケーションＡのチェックサムで確認する過程と、
を有することを特徴とするディジタル端末のプログラム書き替え方法。
【請求項２】
前記ブートプログラムは、
装置の起動で前記別デバイスにコピーされ、装置の初期設定を行い、前記アプリケーションＡの正当性をそのチェックサムで判定し、正しいことが確認されたときはアプリケーションＡを起動する過程と、
前記アプリケーションＡに異常が見受けられた場合に、前記アプリケーションＢの正当性をそのチェックサムで判定し、正しいことが確認されたときは該アプリケーションＡを消去する過程と、
該アプリケーションＢを前記アプリケーションＡの部分にコピーする過程と、
前記コピーされたアプリケーションＡを起動する過程と、
を有することを特徴とする請求項１に記載のディジタル端末のプログラム書き替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル保護リレーなど、プログラム等の記憶媒体として不揮発性記憶デバイスを搭載するディジタル端末に、その記憶デバイスに書き込まれたプログラムを遠隔地からオンラインで書き替える方法に係り、特にブートプログラムとアプリケーションプログラムで構成されるプログラムの書き替え方法に関する。
【背景技術】
【０００２】
従来、ディジタル保護リレーにおけるプログラムや固定の設定データなどは、ＥＰＲＯＭなどのＲＯＭにＲＯＭライターを用いて書き込み、装置に実装していた。しかし、近年、ディジタル保護リレーの高機能化が進み、それらを格納する記憶デバイスも、従来のＥＰＲＯＭなどから、フラッシュＲＯＭ等のオンライン書き替え（装置稼働状態のまま書き替え）可能な不揮発性記憶デバイスになってきている。
【０００３】
また、近年、一般需要家向けの装置では小型化、ネットワーク化が進み、各需要家に設置された多数のディジタル端末となる装置（以下、端末）とサーバ装置間をＡＤＳＬ、無線等の一般のイーサネット（登録商標）回線を使って接続し、端末からの情報を収集・管理するシステム等も開発されている。
【０００４】
このようなシステムの場合、多数の端末が分散されて設置されている場合がほとんどで、搭載されるプログラムのバージョンアップを行う必要が生じた場合などは、従来は各需要家を作業員が回り、装置毎にプログラムのバージョンアップ作業を行う必要があり、多大なコストと時間を必要としていた。
【０００５】
その解決策として、近年の装置では、フラッシュＲＯＭの採用が多くなってきたことから、そのオンライン書き替えを利用した遠隔地からのプログラム書き替え機能の実現が望まれ、その実施もされてきている。
【０００６】
この遠隔地からのオンラインによるプログラム書き替えにおいて、その書き替え時に誤ったプログラムや壊れたデータを書き込んでしまうと、正常な動作をしなくなり、オンライン書き替え機能すら失われる可能性がある。この問題を解消する方法として、当該デバイスに書かれたプログラムやデータの管理、書き替え時の正当性を確認する方法も本願出願人は既に提案している（例えば、特許文献１参照）。ただし、この特許文献１が対象とするプログラムは、ブートプログラムとアプリケーションプログラムを一括したものとして取り扱い、その一括書き替えを行う。
【特許文献１】特開２００３−１９６１１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図７は、従来装置におけるフラッシュＲＯＭ上のプログラム構成を示す。１はブートプログラムと言われ、装置起動時に動作し、各種初期設定や後述の起動方法によってオンライン書き替え機能を提供するものである。オンライン書き替え機能を使用しない通常の起動方法では、装置の初期設定後にアプリケーションプログラムを起動し、ブートプログラムは終了する。２は、アプリケーションプログラム（以下、アプリケーション）と言われるもので、ブートプログラム１から起動され、装置機能を実現する各種処理を行うものである。
【０００８】
通常、フラッシュＲＯＭをオンラインで書き替える場合は、一般的に下記の二種類の方法がある。
【０００９】
「その１」図８の（ａ）〜（ｄ）に処理手順を示す。
【００１０】
図８（ａ）：フラッシュＲＯＭのブートプログラム１をＲＡＭへコピーし、このブートプログラムに対し、装置上に設けた何らかのデバイス（例：スイッチ）や操作（例：ＲＳ２３２Ｃで接続されたＰＣからコマンド入力）等でオンライン書き替え処理をＲＡＭ上の別デバイスで起動するよう指示する。
【００１１】
図８（ｂ）：起動したブートプログラム１のオンライン書き替え機能を利用し、ＲＳ２３２Ｃ等で接続したＰＣから新アプリケーション２Ａを受信する。
【００１２】
図８（ｃ）：新アプリケーション２Ａを受信した後、ブートプログラム１は、フラッシュＲＯＭ上のアプリケーション部分を消去する。
【００１３】
図８（ｄ）：ブートプログラム１は、新アプリケーション２ＡをフラッシュＲＯＭ上へ書き替える。
【００１４】
「その２」図９の（ａ）〜（ｄ）に処理手順を示す。
【００１５】
図９（ａ）：アプリケーション２にオンライン書き替え機能を搭載し、起動後、自アプリケーションをＲＡＭ等の別デバイス上にコピーし、その上で実行する。
【００１６】
図９（ｂ）：「その１」に示すような起動方法を用いてアプリケーション２上のオンライン書き替え機能を起動し、ＲＳ２３２Ｃ等で接続したＰＣから新アプリケーション２Ａを受信する。
【００１７】
図９（ｃ）：新アプリケーション２Ａを受信した後、アプリケーション２は、フラッシュＲＯＭ上のアプリケーション部分を消去する。
【００１８】
図９（ｄ）：フラッシュＲＯＭに新アプリケーション２Ａへ書き替える。
【００１９】
上記のような書き替えを遠隔地から行う場合は、装置起動時のみ動作するブートプログラムを用いた上記「その１」の方法ではなく、通常稼働状態から行う「その２」の処理となり、オンライン書き替え機能の起動指令を、イーサネット（登録商標）等を経由して遠隔地から受信して起動し、新プログラムも同様にイーサネット等を経由して受信することになる。しかし、遠隔地からこのようなプログラム書き替え処理を行おうとすると、以下のような問題がある。
【００２０】
「問題点１」フラッシュＲＯＭ上のアプリケーション部分を消去する必要があり、消去から書込完了までの間はアプリケーションが書き込まれていない時間が存在し、その間は機能を喪失する。
【００２１】
「問題点２」上記のアプリケーション無しの時間に、電源瞬断やプログラム暴走等で装置に再起動が発生した場合、アプリケーションが存在しないため、正常動作することが出来ない。
【００２２】
「問題点３」上記の正常動作不能になると、遠隔地であるが故にすぐに復旧することが難しく、需要家に対し多大な影響を与えてしまう。
【００２３】
本発明の目的は、上記の課題を解決したディジタル端末のプログラム書き替え方法を提供することにある。
【課題を解決するための手段】
【００２４】
本発明は、ディジタル端末のオンライン書き替え可能な記憶デバイスにはブートプログラムと二重化したアプリケーションＡ，Ｂおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、一方のアプリケーションの書き替え時には他方のアプリケーションにより端末機能を確保し、さらに、一方のアプリケーションの書き替え時に瞬断等の異常現象が発生したときは他方のアプリケーションを異常発生側のアプリケーション領域にコピーして修復するようにしたものであり、以下の方法を特徴とする。
【００２５】
（１）書き替え可能な不揮発性記憶デバイスを搭載し、該記憶デバイスにブートプログラムとアプリケーションプログラムを格納するディジタル端末に対し、前記アプリケーションプログラムを遠隔地からオンラインで書き替える方法であって、
前記記憶デバイスにはブートプログラムと二重化したアプリケーションプログラムＡ，Ｂおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、
前記アプリケーションＡは、
電源立ち上げ時に起動されるブートプログラムによって起動され、自アプリケーションを別デバイス上にコピーして該別デバイス上で実行する過程と、
遠隔地から起動指令を受信してオンライン書き替え機能を起動し、遠隔地から新プログラムと新チェックサムを受信し、該新チェックサムを使って該新プログラムの正当性を確認する過程と、
前記新プログラムの正当性を確認した後、前記記憶デバイス上の他方のアプリケーションＢとそのチェックサムを消去する過程と、
前記アプリケーションＢを前記新プログラムへ書き替え、そのチェックサムを前記新チェックサムへ書き替える過程と、
前記新プログラムへの書き替えが正常に終了したことを前記アプリケーションＢのチェックサムで確認し、正常に書き替えられた場合は、前記記憶デバイス上のアプリケーションＡを消去する過程と、
前記記憶デバイス上のアプリケーションＡを消去した部分を前記新プログラムに書き替え、そのチェックサム部分を前記新チェックサムへ書き替え、書き替えが正常に終了したことをアプリケーションＡのチェックサムで確認する過程と、
を有することを特徴とする。
【００２６】
（２）前記ブートプログラムは、
装置の起動で前記別デバイスにコピーされ、装置の初期設定を行い、前記アプリケーションＡの正当性をそのチェックサムで判定し、正しいことが確認されたときはアプリケーションＡを起動する過程と、
前記アプリケーションＡに異常が見受けられた場合に、前記アプリケーションＢの正当性をそのチェックサムで判定し、正しいことが確認されたときは該アプリケーションＡを消去する過程と、
該アプリケーションＢを前記アプリケーションＡの部分にコピーする過程と、
前記コピーされたアプリケーションＡを起動する過程と、
を有することを特徴とする。
【発明の効果】
【００２７】
以上のとおり、本発明によれば、ディジタル端末のオンライン書き替え可能な記憶デバイスにはブートプログラムと二重化したアプリケーションおよびそれぞれの正当性確認用のチェックサムを書き込んでおき、一方のアプリケーションの書き替え時には他方のアプリケーションにより端末機能を確保し、さらに、一方のアプリケーションの書き替え時に瞬断等の異常現象が発生したときは他方のアプリケーションを異常発生側のアプリケーション領域にコピーして修復するようにしたため、ディジタル端末における記憶デバイス上のアプリケーションを遠隔地から書き替える際の前記の「問題点１」〜「問題点３」を解決できる。
【発明を実施するための最良の形態】
【００２８】
図１は、本発明の実施形態を示すプログラム書き替え処理フローである。まず、本実施形態では、ディジタル端末のフラッシュＲＯＭ上のプログラム構成は、ブートプログラム１とブロックＡとＢに二重化したアプリケーション２Ａ，２Ｂ、およびそれぞれのブロックの正当性を判定するチェックサム３Ａ、３Ｂを格納できる領域を確保する。
【００２９】
ブートプログラム１は、ディジタル端末の起動時に動作し、従来と同様な機能を有するほか、アプリケーション２Ａ，２Ｂの正当性を各ブロックのチェックサム３Ａ，３Ｂで判定し、必要に応じてアプリケーションの修復を行う機能を付加したものである。また、アプリケーション２Ａ，２Ｂは、従来と同様なオンライン書き替え機能を有するが、その書き込みはブロック２Ａと２Ｂの２カ所に行う。
【００３０】
以下、オンライン書き替え処理（Ｓ１〜Ｓ６）を図２〜図４の態様図を参照して詳細に説明する。
【００３１】
（Ｓ１）図２（ａ）に示すように、電源立ち上げ時は従来と同様にブートプログラム１から起動され、アプリケーション（ブロックＡ）２Ａを起動する。アプリケーション２Ａは起動後、自アプリケーションをＲＡＭ等の別デバイス上にコピーし、その上で実行する。
【００３２】
（Ｓ２）図２（ｂ）に示すように、ＲＡＭ上のアプリケーション２Ａは、遠隔地からイーサネット等を介してＰＣから起動指令を受信してオンライン書き替え機能を起動し、同様にイーサネット等でＰＣから新プログラムとその新チェックサムを受信し、この新チェックサムを使って新プログラムの正当性を確認する。
【００３３】
（Ｓ３）図３（ａ）に示すように、新プログラムの正当性を確認したアプリケーション２ＡはフラッシュＲＯＭ上のブロックＢになるアプリケーション２Ｂとチェックサム３Ｂを消去する。
【００３４】
（Ｓ４）図３（ｂ）に示すように、ブロックＢを新プログラムへ書き替え、ブロックＢのチェックサム部分を新チェックサムへ書き替える。
【００３５】
（Ｓ５）図４（ａ）に示すように、書き替えが正常に終了したことをブロックＢのチェックサムで確認し、正常に書き替えられた場合は、ブロックＡを消去する。なお、ブロックＢの書き替えが正常に行えなかった場合は、一定回数のリトライし、それでも正当性が保障できないときは、異常終了の旨を何らかの方法（警報表示など）で通知する。
【００３６】
（Ｓ６）図４（ｂ）に示すように、ブロックＡの消去後、ブロックＡを新プログラムへ書き替え、ブロックＡチェックサムを新チェックサムへ書き替える。なお、ブロックＡについてもブロックＢの場合と同様に、正当性の判定と異常時のリトライと通知を行う。
【００３７】
上記のオンライン書き替え処理を実行することで、前記の問題点１「フラッシュＲＯＭ上のアプリケーション部分を消去する必要があり、消去から書込完了までの間はアプリケーションプログラムが書き込まれていない時間が存在する」が同じアプリケーションを２つのブロックＡ／Ｂに時間的にずれて書き込むことで回避できる。
【００３８】
前記の問題点２「問題点１の間に電源瞬断やプログラム暴走等で装置に再起動が発生した場合、アプリケーションが存在しないため、正常動作することが出来ない」および問題点３「問題点２が発生すると、遠隔地であるが故にすぐに復旧することが難しく、需要家に対し多大な影響を与えてしまう」は、上記の２つのブロックＡ／Ｂを利用して、以下に説明するブートプログラムの自動修復処理により回避することができる。
【００３９】
図５および図６は、ブートプログラムによるアプリケーションの修復処理態様を示す。この例では、「新アプリケーションへの書き替えを行う際に、ブロックＡの書き替え途中で瞬断が発生し、ブロックＡが破損したまま再起動されてしまった場合」を示すものである。
【００４０】
図５（ａ）に示すように、ブートプログラムは、装置の起動でＲＡＭにコピーされ、装置の初期設定を行い、最初にブロックＡの正当性をそのチェックサムで判定し、正しいことが確認されたときはブロックＡのアプリケーションを起動する。
【００４１】
図５（ｂ）に示すように、ブートプログラムは、ブロックＡに異常が見受けられた場合、ブロックＢの正当性をそのチェックサムで判定し、正しいことが確認されたときは、ブロックＡを消去する。
【００４２】
図６（ａ）に示すように、ブートプログラムは、ブロックＡ消去後に、ブロックＢのアプリケーションをブロックＡにコピー（修復）する。
【００４３】
図６（ｂ）に示すように、ブートプログラムは、修復されたブロックＡのアプリケーションを起動する。
【００４４】
なお、ブートプログラムは、ブロックＢの正当性が確認できなかった場合、修復をあきらめて（異常かもしれない）ブロックＡのアプリケーションを起動する。
【００４５】
以上の処理を行うことにより、破損したブロックＡを修復することが可能になる。この自動修復機能により、問題点２「問題点１の間に電源瞬断や、プログラム暴走等で装置に再起動が発生した場合、アプリケーションが存在しないため、正常動作することが出来ない」および問題点３「問題点２が発生すると、遠隔地であるが故にすぐに復旧することが難しく、需要家に対し多大な影響を与えてしまう」が回避可能となる。
【００４６】
なお、ブロックＢの書き替え途中で再起動が発生し、ブロックＢが破損したような場合でも、ブロックＡには従来のアプリケーションが残っているため、従来どおりの起動が可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態を示すプログラム書き替え処理フロー。
【図２】実施形態における書き替え処理態様図（その１）。
【図３】実施形態における書き替え処理態様図（その２）。
【図４】実施形態における書き替え処理態様図（その３）。
【図５】ブートプログラムによるアプリケーションの修復処理態様図（その１）。
【図６】ブートプログラムによるアプリケーションの修復処理態様図（その２）。
【図７】従来のフラッシュＲＯＭ上のプログラム構成。
【図８】従来のフラッシュＲＯＭ書き替え方法（その１）。
【図９】従来のフラッシュＲＯＭ書き替え方法（その２）。
【符号の説明】
【００４８】
１  ブートプログラム
２Ａ、２Ｂ  アプリケーションプログラム
３Ａ、３Ｂ  チェックサム
４Ａ  新プログラム
４Ｂ  新チェックサム
【図１】
2007115065.tif 000003
【図２】
2007115065.tif 000004
【図３】
2007115065.tif 000005
【図４】
2007115065.tif 000006
【図５】
2007115065.tif 000007
【図６】
2007115065.tif 000008
【図７】
2007115065.tif 000009
【図８】
2007115065.tif 000010
【図９】
2007115065.tif 000011