JP2005332228A - プログラム切替え制御装置 - Google Patents

プログラム切替え制御装置 Download PDF

Info

Publication number
JP2005332228A
JP2005332228A JP2004150345A JP2004150345A JP2005332228A JP 2005332228 A JP2005332228 A JP 2005332228A JP 2004150345 A JP2004150345 A JP 2004150345A JP 2004150345 A JP2004150345 A JP 2004150345A JP 2005332228 A JP2005332228 A JP 2005332228A
Authority
JP
Japan
Prior art keywords
program
boot
switching
spare
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004150345A
Other languages
English (en)
Inventor
Miyuki Suzuki
美雪 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2004150345A priority Critical patent/JP2005332228A/ja
Publication of JP2005332228A publication Critical patent/JP2005332228A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 通常処理を行いながらダウンロード処理を実施することを可能にする。
【解決手段】 EPROMにはBOOTプログラム,運用プログラム,予備プログラムを格納する各プログラム領域10,20,30および切替えフラグ40が設けられる。マイクロプロセッサはROMに格納されているプログラムに従って処理を実行し、内蔵するRAMには、BOOTプログラムおよび運用プログラムを起動するために参照される割込みベクタ50を設けている。切替回路は切替えフラグに基づくマイクロプロセッサからの切替え制御信号に応答して運用プログラム領域と予備プログラム領域のアドレスを交換する。BOOTプログラムは、最新のプログラムをダウンロードするときは、割込みベクタをBOOTプログラム用に書き換えて予備プログラム領域にダウンロードするとともに切替えフラグを反転し、一方、通常動作時は割込みベクタを運用プログラム用に書き換える。
【選択図】 図2

Description

本発明は、フラッシュROM等の書換え可能な不揮発性メモリに書き込まれるプログラムの切替え制御装置に関する。
プログラム制御される電子機器では、各種の割込み発生に応じて起動される割込み処理プログラムや、割込み発生時に割込み処理プログラムを起動するために参照される割込みベクタなどが含まれているプログラムを、フラッシュROMのようなRAMより安定した記憶ができる書換え可能なROM(以下、単に「ROM」と記す)に格納している。
そして、プログラムの仕様変更やバグがある時には、新しく作成したプログラムをダウンロードすることにより、アップデートするという手法が一般的に行われている。しかし、アップデートされた新プログラムにもバグがあったり、ダウンロード中の通信エラーなどでダウンロード処理が途中で失敗し、電源を再投入した時にプログラムが正常に動作しない場合がしばしばある。
そこで、複数のROMを使用して各々のROMにプログラムを格納し、いずれかのROMを選択されすることによって動作させるプログラムを決定し、新プログラムをアップデートする際には、動作していないROMを書き換える方法が用いられている(例えば、特許文献1参照)。
この従来の方法では、同一構成のROMを2個備えており、マイクロプロセッサは、上記ROMが格納しているプログラムに従って処理を実行する。このプログラムは、ダウンロード入力端子から、一方のROM内のプログラムに従って、他方のROMにマイクロプロセッサのアドレス/データバスを介してダウンロードされる。そして、診断回路により正常にダウンロードできたか判別し、再起動時にダウンロードを行ったROMを選択することによってROMを切り替えるというものである。
特開2002-7171(第1頁ー第6頁、図1)
しかしながら、上述した従来技術では、複数のROMを使用しているため、ROMの切替え時に複雑な切替え回路が必要であり、また高価になるという第1の問題点がある。
また、1つのROMを使用して実現した場合、割込み発生に応じて起動される割込み処理プログラムを書き換えてしまうと、書き換え中に割込み処理が発生した場合に割込み処理プログラムが正常に動作しない不具合が発生するという第2の問題点もある。
そこで、本発明の目的は、1つのROMを使用し、かつ通常運用動作を行いながらダウンロード処理を実施することが可能なプログラム切替え制御装置を提供することにある。
本発明の他の目的は、ダウンロード処理が失敗して運用プログラムと予備プログラムの両方が正常に動作できない場合にも、容易に復旧可能なプログラム切替え制御装置を提供することにある。
請求項1記載の発明は、BOOTプログラム,運用プログラム,予備プログラムを格納する各プログラム領域(図2の10,20,30)および切替えフラグ(図2の40)が設けられたROM(図1の2)と、プログラムに従って処理を実行するとともに、BOOTプログラムおよび運用プログラムを起動するために参照される割込みベクタ(図2の50)が内蔵するRAMに設けられたマイクロプロセッサ(図1の1)と、切替えフラグに基づくマイクロプロセッサからの切替え制御信号(図1の6)に応答して運用プログラム領域と予備プログラム領域のアドレスを交換する切替回路(図1の3)とから構成され、BOOTプログラムは、外部から最新のプログラムをダウンロードするときは、割込みベクタをBOOTプログラム用に書き換えて最新のプログラムを予備プログラム領域にダウンロードするとともに切替えフラグを反転し、一方、通常動作時は割込みベクタを運用プログラム用に書き換えることを特徴とするプログラム切替え制御装置である。
請求項2記載の発明は、請求項1記載の発明において、マイクロプロセッサに、外部から強制的にBOOTプログラムと運用プログラムを切り替えるためのBOOT切替え信号を入力する端子(図1の5)を設けたことを特徴とするプログラム切替え制御装置である。
請求項3記載の発明は、請求項1または請求項2記載の発明において、BOOTプログラム領域と、運用プログラム領域および予備プログラム領域とを異なるメモリバンクに設けたことを特徴とするプログラム切替え制御装置である。
本発明の第1の効果は、1つのROMを使用して、ROM内のプログラム構成と、割込み発生時に参照される割込みベクタの参照方法を工夫することによって、通常運用動作を行いながらダウンロード処理を実施することができることにある。
本発明の第2の効果は、ダウンロード処理中であっても、運用プログラムを保持することができるため、プログラムの書換えに失敗した場合でも容易に復旧することができることにある。
本発明の第3の効果は、BOOTプログラムにもダウンロード機能を持たせることによって、運用プログラムと予備プログラムの両方の領域に異常が生じて正常に動作できない場合には、強制的にBOOTプログラムを起動させる機能を備えることよって、再ダウンロードも可能となり、容易に復旧できることにある。
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明のプログラム切替え制御装置は、マイクロプロセッサ1と、ROM2と、切替回路3とから構成されている。マイクロプロセッサ1は、ROM2に格納されているプログラムに従って処理を実行する。このプログラムは、電子機器制御プログラム等のアプリケーションプログラムの他、外部から供給されるプログラムデータをダウンロードするBOOTプログラムを含む。アプリケーションプログラムは、運用プログラムと予備プログラムとで二重化されている。
マイクロプロセッサ1には、ダウンロードデータ入力端子4と、BOOT切替え信号入力端子5とが設けられている。ダウンロードデータ入力端子4は、ダウンロード用のプログラムデータをマイクロプロセッサ1に入力するための端子である。また、BOOT切替え信号入力端子5は、実行すべきプログラムとしてBOOTプログラムと運用プログラムを外部から強制的に切り替えるためのBOOT切替え信号を入力するための端子である。
マイクロプロセッサ1と、ROM2および切替回路3との間はアドレス/データバス7で接続されている。上記のプログラムデータはアドレス/データバス7経由でマイクロプロセッサ1からROM2にダウンロードされる。
マイクロプロセッサ1は、ダウンロード処理終了後、切替回路3に切替え制御信号6を出力する。切替回路3は、切替え制御信号6に応答して、アドレス/データバス7経由で運用プログラムと予備プログラムを切り替える機能を備えている。
図2は、本発明のプログラム切替え制御装置におけるメモリマップの一例を示す。図2(A)は通常時におけるメモリマップであって、ROM2は、BOOTプログラム領域(アドレス0000000h〜003FFFFh)10と、運用プログラム領域(アドレス0040000h〜00FFFFFh)20と、予備プログラム領域(アドレス0140000h〜01FFFFFh)30と、切替えフラグ40(アドレス0100000h)を備えており、電源投入時のリセットベクタはアドレス0000000hに配置されている。また、RAMには割込みベクタ50(アドレス3FFE000h)が設けられている。割込みベクタ50は、BOOTプログラム10と運用プログラム20を切り替えるためのものである。
なお、BOOTプログラム領域10,運用プログラム領域20,予備プログラム領域30の各参照番号は、便宜、BOOTプログラム,運用プログラム,予備プログラムの参照番号としても使用する。
ここで、ROMが複数のバンクから構成されている性質を利用して、BOOTプログラム領域10と、運用プログラム領域20および予備プログラム領域30とを異なるバンクに設定し、BOOTプログラム10から予備プログラム領域30のへの書込みを可能にする。
BOOTプログラム10は、割込み発生時に参照される割込みベクタ11と、割込み発生に応じて起動される割込み処理プログラム12とを含んであり、実行するプログラム領域を選択する機能と、選択したプログラムによって割込みベクタ50を書き換える機能と、ROM2の予備プログラム30を書き換える機能とを有する。
運用プログラム20と予備プログラム30には、同等のメモリ容量が割り当てられており、各プログラムには割込み発生に応じて起動される割込み処理プログラムと電子機器制御プログラムが格納されている。ここでは、特に運用プログラム領域20に含まれる割込み処理プログラム21のみを明示しているが、予備プログラム領域30にも同様な割込み処理プログラム31(図示省略)が格納されている。
通常、割込み処理プログラム21は、EPROM2のBOOTプログラム領域10内の割込みベクタ11を参照することによって起動される。そのため、BOOTプログラム10によって予備プログラム30を書き換えるためには、BOOTプログラム領域10内の割込み処理プログラム12が起動されるように割込みベクタ11を書き換える必要がある。
そこで、BOOTプログラム領域10内の割込み処理プログラム12と運用プログラム領域30内の割込み処理プログラム21を容易に切り替えるために、割込みベクタ11は常に割込みベクタ50を参照することとし、割込みベクタ50を書換え容易なRAMに設けることで、必要に応じてBOOTプログラム10と運用プログラム20を切り替えることができる。例えば、マイクロプロセッサ1に内臓されるRAMを使用すれば、新たにハードを追加することなく、容易に実現できる。
切替えフラグ40には、実行すべき電子機器制御プログラムを指定する情報が書き込まれており、BOOTプログラム10によって参照され、これにより運用プログラム20と予備プログラム30のいずれか一方を選択することができる。図2(B)は、予備プログラム30を選択して切り替えた場合のメモリマップを示す。
通常動作時、ダウンロードは図2(A)に示す予備プログラム領域30(アドレス0140000h〜01FFFFFh)に対して行われる。ダウンロード終了後、切替えフラグ40を反転する。すると、図2(B)に示すように、運用プログラム領域20と予備プログラム領域30のアドレスが切り替わる。ここまでが、一連のダウンロード処理であって、ダウンロード処理後のCPUリセットによって、図2(A)の通常時のメモリマップに戻る。この結果、予備プログラム領域30(アドレス0140000h〜01FFFFFh)にダウンロードされた新プログラムが運用プログラム領域20(アドレス0040000h〜00FFFFFh)に移動し、新たに運用プログラム20として動作する。
次に、本実施例において、ダウンロード処理を行い新プログラムに切り替わるまでの動作を図3のフローチャートにより説明する。
マイクロプロセッサ1は、ダウンロードデータ入力端子4からダウンロード開始要求の信号を受信するとダウンロードモードとなり、ダウンロードデータ入力端子4からダウンロードデータを受信する(図3のステップS1)。そして、全てのダウンロードデータ受信後、ダウンロードフラグをONし(S2)、CPUリセットを行う(S3)。
ダウンロードフラグとは、ダウンロード中であるか否かを判別するためのフラグであり、通常はOFFとなっている。CPUリセット後、BOOTプログラム10が起動し、ダウンロードフラグのチェックを行う(S4)。その時、ダウンロードフラグがONであればダウンロードモードとなり、予備プログラム領域30にダウンロードデータを書き込むため、RAM上の割込みベクタ50をBOOTプログラム10参照用に書き換え(S5)、BOOTプログラム10で動作するように設定する。
そして、受信したダウンロードデータをROM2の予備プログラム30領域に書き込む(S6)。受信したダウンロードデータの書き込み終了後、ダウンロードフラグをOFFに戻し(S7)、切替え制御信号6が‘0’の時は‘1’に、切替え制御信号6が‘1’の時は‘0’に設定して(S8)、CPUリセットを行う(S9)。この結果、再びBOOTプログラム10が再起動し、ダウンロードフラグのチェックを行う(S4)。この時、ダウンロードフラグはOFFのため、RAM上の割込みベクタ50を運用プログラム20参照用に書き換え(S10)、運用プログラム13が起動する(S12)。
切替え制御信号6は、ダウンロード処理を実行する度に、‘1’と‘0’のどちらかの値を交互に繰り返し、切替回路3に入力される。切替回路3は、切替え制御信号6を使用して、運用プログラム20と予備プログラム30のアドレスを切り替え、常にダウンロードした新プログラムが運用プログラム20の先頭アドレスである40000h番地(図2A)になるように制御されている。そのため、ダウンロード処理を行う前にどちらのプログラム領域を書き換えるべきか確認する必要がなく、常に予備プログラム30にダウンロードすれば良い。
次に、本実施例におけるBOOTプログラム10のCPU起動時の動作を図4のフローチャートにより詳細に説明する。CPUリセット後、実行するプログラム領域を選択するためにプログラム選択機能が動作する。
まず、ダウンロードフラグを判別して(図4のステップT1)、ダウンロードフラグがONであればダウンロードモードとなり、予備プログラム30にダウンロードデータを書き込むため、RAM上の割り込みベクタ50をBOOTプログラム10参照用に書き換え(T2)、BOOTプログラム10で動作するように設定する。
そして、受信したダウンロードデータをEPROM2の予備プログラム30に書き込む(T3)。受信したダウンロードデータの書込み終了後、ダウンロードフラグをOFFに戻し(T4)、切替え制御信号6が‘0’の時は‘1’に、切替え制御信号6が‘1’の時は‘0’に設定して(T5)、CPUリセットを行う(T6)。
次に、ダウンロード処理が失敗した場合など、運用プログラム20と予備プログラム30が共に正常動作できない時は(T7)、RAM上の割込みベクタ50をBOOTプログラム10参照用に書き換え(T8)、BOOTプログラム10で動作する(T9)。ここで、BOOTプログラム10に簡単なデバッグ機能や、ダウンロード機能を持たせることによって、ダウンロード処理や異常処理の解析をすることも可能である。
また、運用プログラム20と予備プログラム30が共に正常動作できない時には、予備プログラム30だけでなく、運用プログラム20も書換え対象とし、運用プログラム領域20と予備プログラム領域30両方のエリアにダウンロードできる機能を持たせても良い。
更に、運用プログラム20と予備プログラム30のいずれかが正常動作可能な時であっても、BOOT切替え信号入力端子5からBOOTプログラム10で動作するように設定することによって(T10)、RAM上の割込みベクタ50をBOOTプログラム10参照用に書き換え(T8)、強制的にBOOTプログラム10で動作させることも可能である(T9)。
以上の各ケース以外の場合は、RAM上の割込みベクタ50を運用プログラム20参照用に書き換え(T11)、運用プログラム20が起動する(T12)。
このように、RAM上の割込みベクタ50を書き換えるだけで、簡単にBOOTプログラム10と運用プログラム20を切り替えることができる。
本発明は、フラッシュROM等の書換え可能な不揮発性メモリを使用したプログラムのダウンロード方式に適用できる。
本発明のプログラム切替え制御装置を示すブロック図 本発明のプログラム切替え制御装置におけるメモリマップの一例を示す図 本発明のプログラム切替え制御装置においてダウンロード処理を行い新プログラムに切り替わるまでの動作を示すフローチャート 本発明のプログラム切替え制御装置におけるBOOTプログラムのCPU起動時の動作を示すフローチャート
符号の説明
1 マイクロプロセッサ
2 ROM
3 切替回路
4 ダウンロードデータ入力端子
5 BOOT切替え信号入力端子
6 切替え制御信号
7 アドレス/データバス
10 BOOTプログラム
11 割込みベクタ
12 割込み処理プログラム
20 運用プログラム
21 割込み処理プログラム
30 予備プログラム
40 切替えフラグ
50 割込みベクタ

Claims (3)

  1. BOOTプログラム,運用プログラム,予備プログラムを格納する各プログラム領域および切替えフラグが設けられた電気的に書換え可能なROMと、
    前記プログラムに従って処理を実行するとともに、前記BOOTプログラムおよび前記運用プログラムを起動するために参照される割込みベクタが内蔵するRAMに設けられたマイクロプロセッサと、
    前記切替えフラグに基づくマイクロプロセッサからの切替え制御信号に応答して前記運用プログラム領域と予備プログラム領域のアドレスを交換する切替回路とから構成され、
    前記BOOTプログラムは、外部から最新のプログラムをダウンロードするときは、前記割込みベクタをBOOTプログラム用に書き換えて最新のプログラムを前記予備プログラム領域にダウンロードするとともに前記切替えフラグを反転し、一方、前記ダウンロードをしないときは前記割込みベクタを運用プログラム用に書き換えることを特徴とするプログラム切替え制御装置。
  2. 前記マイクロプロセッサに、外部から強制的にBOOTプログラムと運用プログラムを切り替えるためのBOOT切替え信号を入力する端子を設けたことを特徴とする請求項1に記載のプログラム切替え制御装置。
  3. 前記BOOTプログラム領域と、運用プログラム領域および予備プログラム領域とを異なるメモリバンクに設けたことを特徴とする請求項1または請求項2に記載のプログラム切替え制御装置。
JP2004150345A 2004-05-20 2004-05-20 プログラム切替え制御装置 Pending JP2005332228A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004150345A JP2005332228A (ja) 2004-05-20 2004-05-20 プログラム切替え制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004150345A JP2005332228A (ja) 2004-05-20 2004-05-20 プログラム切替え制御装置

Publications (1)

Publication Number Publication Date
JP2005332228A true JP2005332228A (ja) 2005-12-02

Family

ID=35486844

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004150345A Pending JP2005332228A (ja) 2004-05-20 2004-05-20 プログラム切替え制御装置

Country Status (1)

Country Link
JP (1) JP2005332228A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336177A (ja) * 2006-06-14 2007-12-27 Hitachi Communication Technologies Ltd 通話路系パッケージ
WO2008041337A1 (fr) * 2006-10-04 2008-04-10 Pioneer Corporation Dispositif, procédé et programme de traitement d'informations et support d'enregistrement lisible par ordinateur
JP2013232028A (ja) * 2012-04-27 2013-11-14 Denso Corp マイクロコンピュータ

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167139A (ja) * 1990-10-31 1992-06-15 Nec Corp プログラムダウンロード方式
JP2000039993A (ja) * 1998-07-23 2000-02-08 Nec Corp ファームウエアの入れ替え装置及び入れ替え方法
JP2001051844A (ja) * 1999-08-06 2001-02-23 Seiko Epson Corp コンピュータ周辺機器およびファームウェア更新方法
JP2001117765A (ja) * 1999-10-21 2001-04-27 Ricoh Co Ltd データ記録再生装置
JP2003114807A (ja) * 2001-10-02 2003-04-18 Fuji Photo Film Co Ltd 電子機器及び本体制御プログラムの書き換え方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04167139A (ja) * 1990-10-31 1992-06-15 Nec Corp プログラムダウンロード方式
JP2000039993A (ja) * 1998-07-23 2000-02-08 Nec Corp ファームウエアの入れ替え装置及び入れ替え方法
JP2001051844A (ja) * 1999-08-06 2001-02-23 Seiko Epson Corp コンピュータ周辺機器およびファームウェア更新方法
JP2001117765A (ja) * 1999-10-21 2001-04-27 Ricoh Co Ltd データ記録再生装置
JP2003114807A (ja) * 2001-10-02 2003-04-18 Fuji Photo Film Co Ltd 電子機器及び本体制御プログラムの書き換え方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007336177A (ja) * 2006-06-14 2007-12-27 Hitachi Communication Technologies Ltd 通話路系パッケージ
WO2008041337A1 (fr) * 2006-10-04 2008-04-10 Pioneer Corporation Dispositif, procédé et programme de traitement d'informations et support d'enregistrement lisible par ordinateur
JPWO2008041337A1 (ja) * 2006-10-04 2010-02-04 パイオニア株式会社 情報処理装置、情報処理方法、情報処理プログラムおよびコンピュータに読み取り可能な記録媒体
JP5016604B2 (ja) * 2006-10-04 2012-09-05 パイオニア株式会社 情報処理装置および情報処理方法
JP2013232028A (ja) * 2012-04-27 2013-11-14 Denso Corp マイクロコンピュータ
US9501434B2 (en) 2012-04-27 2016-11-22 Denso Corporation Microcomputer

Similar Documents

Publication Publication Date Title
EP3608775B1 (en) Electronic control system
JP2001195241A (ja) コンピュータ
JP2004046453A (ja) シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
JP6415990B2 (ja) 自動車用電子制御装置
JP5084853B2 (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
JP2005332228A (ja) プログラム切替え制御装置
JP2012118904A (ja) 情報処理装置
KR20070044268A (ko) 메인 보드의 부팅 처리 방법 및 그 장치
JP2001109629A (ja) Cpuのブート制御装置及びブート制御方法
JP2001117780A (ja) 情報記憶装置およびそのダウンロード方法
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
JP2000293376A (ja) ブートプログラムの切替回路及び切替方法
JP5685117B2 (ja) コンフィグレーション冗長化装置および、コンフィグレーション手法
JP5002900B2 (ja) 制御装置とそのプログラム、及び、プログラムダウンロード方法
JP2005128613A (ja) 画像形成装置
JP2008182327A (ja) プログラマブルデバイス制御装置およびその方法
JP2018181167A (ja) 電子制御装置
JP2004078294A (ja) 信号処理装置
JP2002024044A (ja) 制御装置
KR101900729B1 (ko) Plc 운영체제 구동 방법
JP2007084232A (ja) エレベータ制御プログラム更新装置
JP2004094725A (ja) ファームウェア書換装置及びファームウェア書換方法
JP2004287712A (ja) 電子装置
JP2003122575A (ja) 情報処理装置
JP2003140915A (ja) コンピュータ装置及びプログラムのダウンロード方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101119