図面 (/)

技術 ファームウェア更新方法及びファームウェア更新装置

出願人 古河電気工業株式会社
発明者 山本篤司越浩之加木信行
出願日 2009年8月12日 (11年3ヶ月経過) 出願番号 2009-187222
公開日 2011年2月24日 (9年9ヶ月経過) 公開番号 2011-039825
状態 特許登録済
技術分野 ストアードプログラム ストアードプログラム
主要キーワード デジタル演算装置 プログラム保存領域 サイズアップ ファームウェア更新後 実行用プログラム 書き込み完了後 書込み完了 保存位置
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2011年2月24日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

CPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供する。

解決手段

ファームウェア更新用プログラムの実行が開始されると、ROM110の第2保存領域112及び第4保存領域114のうち、更新対象プログラムが保存されている領域のバックアップ用プログラムデータを消去する。以降の処理では、上位装置10から新プログラムのデータが送信されて受信バッファに書き込まれる毎に、送信されたデータをROM110のデータ消去された領域に書き込む。一方RAM120上の制御・通信プログラムは、ファームウェア更新用プログラムの処理がCPU101で行われていない時間帯に、プログラムカウンタに制御・通信プログラムのアドレスを設定することにより、所定の周期あるいは必要に応じて適宜実行される。

概要

背景

マイクロプロセッサ(CPU)等を搭載した電子機器が広く利用されるようになっている。このような電子機器には、要求される機能を実現するためにファームウェアと呼ばれるハードウェア基本機能を制御するためのプログラムが搭載されている。電子機器の機能拡張を行う場合やプログラム上の不具合が見つかった場合には、ファームウェアの更新を行う必要がある。このようなファームウェアは、フラッシュメモリなどのROM(Read Only Memory)に格納されており、ファームウェア更新を行うためには、ROM上のプログラムデータを消去したのち、外部から更新用のプログラムデータを受信し、これをROMに書き込むといった手順が必要となる(特許文献1、2)。

ファームウェアの更新が可能なCPUの従来の構成例を図6に示す。従来のCPU901は、ROM902とRAM(Random Access Memory)903、及び外部から受信したデータを一時的に保存する受信バッファ904を備えている。ROM902は、大きく4つの領域に区分されており、第1の領域に実行用のプログラムが保存され、第2の領域にバックアップ用のプログラムが保存され、第3の領域にファームウェア更新用プログラムが保存され、さらに第4の領域にブートローダが保存されている。また、RAM903は、プログラムを実行させたときに変数の値を保存するための変数保存領域903aと、実行させるプログラムをROM902からコピーして保存するためのプログラム領域903bに区分されている。

このような構成のCPU901において、ファームウェア更新を行う従来の方法を図7の流れ図を用いて説明する。まず、ステップS91で外部からファームウェア更新命令を受信すると、ステップS92でROM902の第3の領域からファームウェア更新用プログラムを読み込み、これをRAM903のプログラム領域903bにコピーし、ステップS93でこれを起動させる。次のステップS94では、バックアップ用プログラムが保存されているROM902の第2の領域のプログラムデータを消去する。そして、ステップS95で外部から受信バッファ904に新プログラムのデータが送信される毎に、ステップS97までの処理を繰り返し行う。ステップS96では、ステップS95で受信したプログラムデータをROM902の第2の領域に書き込む。ステップS97では、新プログラムのデータ受信が終了したか否かを判定し、終了していない場合には、再びステップS95からの処理を繰り返す。一方、新プログラムの全データの受信を終了したと判定した場合には、ステップS98でCPU901を再起動して新プログラムを使用可能とする。

概要

CPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供する。ファームウェア更新用プログラムの実行が開始されると、ROM110の第2保存領域112及び第4保存領域114のうち、更新対象のプログラムが保存されている領域のバックアップ用プログラムデータを消去する。以降の処理では、上位装置10から新プログラムのデータが送信されて受信バッファに書き込まれる毎に、送信されたデータをROM110のデータ消去された領域に書き込む。一方RAM120上の制御・通信プログラムは、ファームウェア更新用プログラムの処理がCPU101で行われていない時間帯に、プログラムカウンタに制御・通信プログラムのアドレスを設定することにより、所定の周期あるいは必要に応じて適宜実行される。

目的

本発明はこのような問題を解決するためになされたものであり、CPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供する

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ファームウェア更新用プログラムと、所定の処理を行う動作プログラムと、周辺ICの制御・通信を処理する制御・通信プログラムと、がROM(Read Only Memory)に格納されており、前記動作プログラムと前記制御・通信プログラムのいずれか一方または両方を前記ファームウェア更新用プログラムを用いて新プログラム書き換えることでファームウェア更新を行うファームウェア更新方法であって、前記ファームウェア更新用プログラムの処理の合間だけプログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新用プログラムとを並行して実行させることを特徴とするファームウェア更新方法。

請求項2

前記ファームウェア更新用プログラムと前記制御・通信プログラムとを、前記ROMからRAM(Random Access Memory)にコピーして保存し、前記RAMに保存された前記ファームウェア更新用プログラムと前記制御・通信プログラムとを並行して実行させることを特徴とする請求項1に記載のファームウェア更新方法。

請求項3

前記ROMは、前記動作プログラム及び前記制御・通信プログラムとして、それぞれ実行用とバックアップ用の2種類のプログラムを異なる保存領域に格納しており、前記ファームウェア更新用プログラムは、更新対象の前記バックアップ用動作プログラムまたは/及び前記バックアップ用制御・通信プログラムを前記新プログラムに書き換えることを特徴とする請求項1または2に記載のファームウェア更新方法。

請求項4

前記ROMは、さらにブートローダを格納しており、前記ファームウェア更新用プログラムが、前記新プログラムの保存領域の情報を含むファームウェア更新情報を前記ROMまたは前記RAMに保存しておき、前記新プログラムへの書き換え終了後の再起動時に、前記ブートローダが前記ファームウェア更新情報をもとに前記動作プログラムと前記制御・通信プログラムのそれぞれの実行用とバックアップ用のプログラムの保存領域の情報を更新することを特徴とする請求項3に記載のファームウェア更新方法。

請求項5

前記ファームウェア更新用プログラムは、前記ファームウェア更新中に異常が発生したことを検出するデータ異常検出手段を備え、前記データ異常検出手段により前記ROMに保存された前記新プログラムのデータ異常が検出されると、前記保存領域の情報を更新しないことを特徴とする請求項4に記載のファームウェア更新方法。

請求項6

所定の処理を行う動作プログラムと周辺ICの制御・通信を処理する制御・通信プログラムとを格納したROMと、実行させるプログラムを前記ROMからコピーして保存するRAMと、を有するCPUのファームウェア更新を行うファームウェア更新装置であって、前記ROMの所定の保存領域のデータを消去するROMデータ消去手段と、外部から更新用の新プログラムを受信する受信手段と、前記受信手段から前記新プログラムを入力して前記ROMの所定の保存領域に書き込むROMデータ書込手段と、前記ROMデータ消去手段により前記動作プログラムまたは/及び前記制御・通信プログラムのバックアップ用プログラムを保存している保存領域のプログラムデータを消去した後に、前記受信手段と前記ROMデータ書込手段とを交互に実行して前記保存領域に前記新プログラムを書き込むとともに、前記受信手段による前記新プログラムの受信中、前記ROMデータ消去手段による前記保存領域のデータ消去中、及び前記ROMデータ書込手段による前記保存領域へのデータ書き込み中は、プログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新とを並行して実行させるファームウェア更新手段と、を備えることを特徴とするファームウェア更新装置。

技術分野

背景技術

0002

マイクロプロセッサ(CPU)等を搭載した電子機器が広く利用されるようになっている。このような電子機器には、要求される機能を実現するためにファームウェアと呼ばれるハードウェア基本機能を制御するためのプログラムが搭載されている。電子機器の機能拡張を行う場合やプログラム上の不具合が見つかった場合には、ファームウェアの更新を行う必要がある。このようなファームウェアは、フラッシュメモリなどのROM(Read Only Memory)に格納されており、ファームウェア更新を行うためには、ROM上のプログラムデータを消去したのち、外部から更新用のプログラムデータを受信し、これをROMに書き込むといった手順が必要となる(特許文献1、2)。

0003

ファームウェアの更新が可能なCPUの従来の構成例を図6に示す。従来のCPU901は、ROM902とRAM(Random Access Memory)903、及び外部から受信したデータを一時的に保存する受信バッファ904を備えている。ROM902は、大きく4つの領域に区分されており、第1の領域に実行用のプログラムが保存され、第2の領域にバックアップ用のプログラムが保存され、第3の領域にファームウェア更新用プログラムが保存され、さらに第4の領域にブートローダが保存されている。また、RAM903は、プログラムを実行させたときに変数の値を保存するための変数保存領域903aと、実行させるプログラムをROM902からコピーして保存するためのプログラム領域903bに区分されている。

0004

このような構成のCPU901において、ファームウェア更新を行う従来の方法を図7の流れ図を用いて説明する。まず、ステップS91で外部からファームウェア更新命令を受信すると、ステップS92でROM902の第3の領域からファームウェア更新用プログラムを読み込み、これをRAM903のプログラム領域903bにコピーし、ステップS93でこれを起動させる。次のステップS94では、バックアップ用プログラムが保存されているROM902の第2の領域のプログラムデータを消去する。そして、ステップS95で外部から受信バッファ904に新プログラムのデータが送信される毎に、ステップS97までの処理を繰り返し行う。ステップS96では、ステップS95で受信したプログラムデータをROM902の第2の領域に書き込む。ステップS97では、新プログラムのデータ受信が終了したか否かを判定し、終了していない場合には、再びステップS95からの処理を繰り返す。一方、新プログラムの全データの受信を終了したと判定した場合には、ステップS98でCPU901を再起動して新プログラムを使用可能とする。

先行技術

0005

特開2003−108396号公報
特開2004−341781号公報

発明が解決しようとする課題

0006

ところで、通常の電子機器では、ファームウェア更新を行っている間も、制御や通信などのサービスを継続させたいといった要望がある。また、マイクロプロセッサを組み込んだシステムにおいては、許容されるリソースが限られることが多いため、可能な限り小さな構成で所望の機能を実現させたいという要望がある。

0007

しかしながら、図6に示すような従来のCPU構成におけるファームウェア更新方法では、ファームウェア更新用プログラムの処理にCPUが占有されていた。そのため、周辺ICの制御やデジタル演算装置との通信等が行えなくなり、所定のサービスが一時的に停止して電子機器の性能を満たすことができなくなってしまうといった問題があった。

0008

また、図8に示すように、RAM913には変数保存領域のみが設けられ、ROM912に保存されているプログラムは、RAM913にコピーされることなくROM912上で動作するように構成されている場合には、ROM912に保存されているファームウェア更新用プログラムをROM912上で動作させながら、同じROM912上のバックアップ用プログラムが保存されている領域のプログラムデータを書き換えることになる。そのため、ROM912には、プログラムの実行とプログラムデータの書き換えが並行して行えるようなROMを用いなければならないといった問題がある。

0009

図8に示すような構成のCPU911において、プログラムの実行とプログラムデータの書き換えを並行して行えないROMを用いる場合には、図9に示すように、受信した新プログラムのデータを一時的に保存するメモリ925を追加する必要がある。そして、ROM912でファームウェア更新用プログラムを実行させ、新プログラムのデータを受信するとこれを一時的にメモリ925に保存し、プログラムデータの受信を完了した時点でメモリ925に保存したデータを一括してROM912に書き込むようにする必要がある。このような方法では、メモリ925を追加する必要があるため、コストアップ及び電子機器のサイズアップにつながるといった問題があった。

0010

そこで、本発明はこのような問題を解決するためになされたものであり、CPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供することを目的とする。

課題を解決するための手段

0011

本発明のファームウェア更新方法の第1の態様は、ファームウェア更新用プログラムと、所定の処理を行う動作プログラムと、周辺ICの制御・通信を処理する制御・通信プログラムと、がROMに格納されており、前記動作プログラムと前記制御・通信プログラムのいずれか一方または両方を前記ファームウェア更新用プログラムを用いて新プログラムに書き換えることでファームウェア更新を行うファームウェア更新方法であって、前記ファームウェア更新用プログラムの処理の合間だけプログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新用プログラムとを並行して実行させることを特徴とする。

0012

本発明のファームウェア更新方法の他の態様は、前記ファームウェア更新用プログラムと前記制御・通信プログラムとを、前記ROMからRAMにコピーして保存し、前記RAMに保存された前記ファームウェア更新用プログラムと前記制御・通信プログラムとを並行して実行させることを特徴とする。

0013

本発明のファームウェア更新方法の他の態様は、前記ROMは、前記動作プログラム及び前記制御・通信プログラムとして、それぞれ実行用とバックアップ用の2種類のプログラムを異なる保存領域に格納しており、前記ファームウェア更新用プログラムは、更新対象の前記バックアップ用動作プログラムまたは/及び前記バックアップ用制御・通信プログラムを前記新プログラムに書き換えることを特徴とする。

0014

本発明のファームウェア更新方法の他の態様は、前記ROMは、さらにブートローダを格納しており、前記ファームウェア更新用プログラムが、前記新プログラムの保存領域の情報を含むファームウェア更新情報を前記ROMまたは前記RAMに保存しておき、前記新プログラムへの書き換え終了後の再起動時に、前記ブートローダが前記ファームウェア更新情報をもとに前記動作プログラムと前記制御・通信プログラムのそれぞれの実行用とバックアップ用のプログラムの保存領域の情報を更新することを特徴とする。

0015

本発明のファームウェア更新方法の他の態様は、前記ファームウェア更新用プログラムは、前記ファームウェア更新中に異常が発生したことを検出するデータ異常検出手段を備え、前記データ異常検出手段により前記ROMに保存された前記新プログラムのデータ異常が検出されると、前記保存領域の情報を更新しないことを特徴とする。

0016

本発明のファームウェア更新装置の第1の態様は、所定の処理を行う動作プログラムと周辺ICの制御・通信を処理する制御・通信プログラムとを格納したROMと、実行させるプログラムを前記ROMからコピーして保存するRAMと、を有するCPUのファームウェア更新を行うファームウェア更新装置であって、前記ROMの所定の保存領域のデータを消去するROMデータ消去手段と、外部から更新用の新プログラムを受信する受信手段と、前記受信手段から前記新プログラムを入力して前記ROMの所定の保存領域に書き込むROMデータ書込手段と、前記ROMデータ消去手段により前記動作プログラムまたは/及び前記制御・通信プログラムのバックアップ用プログラムを保存している保存領域のプログラムデータを消去した後に、前記受信手段と前記ROMデータ書込手段とを交互に実行して前記保存領域に前記新プログラムを書き込むとともに、前記受信手段による前記新プログラムの受信中、前記ROMデータ消去手段による前記保存領域のデータ消去中、及び前記ROMデータ書込手段による前記保存領域へのデータ書き込み中は、プログラムカウンタを前記制御・通信プログラムに切り替えることで、前記制御・通信プログラムと前記ファームウェア更新とを並行して実行させるファームウェア更新手段と、を備えることを特徴とする。

発明の効果

0017

本発明によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能なファームウェア更新方法及びファームウェア更新装置を提供するを提供することが可能となる。

図面の簡単な説明

0018

第1の実施形態のファームウェア更新装置の構成を示すブロック図である。
第1の実施形態のファームウェア更新方法による処理手順を示す流れ図である。
ブートローダによる再起動後の処理手順を示す流れ図である。
第2の実施形態のファームウェア更新装置の構成を示すブロック図である。
第2の実施形態のファームウェア更新方法による処理手順を示す流れ図である。
従来のファームウェア更新装置の構成を示すブロック図である。
従来のファームウェア更新方法による処理手順を示す流れ図である。
従来の別のファームウェア更新装置の構成を示すブロック図である。
従来のさらに別のファームウェア更新装置の構成を示すブロック図である。

実施例

0019

本発明の好ましい実施の形態におけるファームウェア更新方法及びファームウェア更新装置の構成について、図面を参照して以下に詳細に説明する。なお、同一機能を有する各構成部については、図示及び説明簡略化のため、同一符号を付して示す。

0020

本発明の第1の実施の形態に係るファームウェア更新方法及びファームウェア更新装置を、図1を用いて説明する。図1は、本実施形態のファームウェア更新装置の構成を示すブロック図である。本実施形態のファームウェア更新装置は、CPU等を搭載した電子機器に適用することができ、該電子機器が有する機能を実行するための動作プログラムや、周辺ICの制御・通信等を処理するための制御・通信プログラムを更新するのに用いられる。

0021

図1では、CPU101が不揮発メモリのROM110と揮発メモリのRAM(Random Access Memory)120を1つずつ備えており、本実施形態ではこのような構成のCPU110を対象としたファームウェア更新方法を提供する。CPU110は、外部から受信したデータを一時的に保存するために、さらに受信バッファ130を備えている。また、CPU101には所定の信号線路で周辺ICが接続されており、本実施形態で対象とするCPU110は周辺ICの制御等を行っている。図1では、周辺ICの一例として、D/Aコンバータ21、A/Dコンバータ22、及びデジタル演算装置23がCPU101に接続されているものとしている。

0022

CPU101では、電子機器の機能を実現する動作プログラムや、周辺ICの制御・通信を処理する制御・通信プログラムが、所定の周期あるいは必要に応じて適宜実行される。これらの動作プログラムや制御・通信プログラムはROM110に保存されており、必要なときにRAM120にコピーして実行される。ROM110には、動作プログラムを保存するための第1保存領域111と第2保存領域112が設けられており、図1では第1保存領域111に実行用のプログラムが保存され、第2保存領域112にはバックアップ用のプログラムが保存されている。実行用プログラムとバックアップ用プログラムの保存領域は、動作プログラムの更新毎に第1保存領域111と第2保存領域112との間で交互に入れ替わる。同様に、制御・通信プログラムを保存するための第3保存領域113と第4保存領域114が設けられており、図1では第3保存領域113に実行用のプログラムが保存され、第4保存領域114にはバックアップ用のプログラムが保存されている。ここでも、実行用プログラムとバックアップ用プログラムの保存領域は、制御・通信プログラムの更新毎に第3保存領域111と第4保存領域112との間で交互に入れ替わる。

0023

さらにROM110には、動作プログラムや制御・通信プログラムを更新するのに用いるファームウェア更新用プログラムを保存するための第5保存領域115と、CPU101の起動時に所定の処理を行うブートローダを保存するための第6保存領域116も設けられている。

0024

RAM120は、各プログラムを演算処理するときに用いるメモリであり、演算に用いられる変数の値を保存するための変数保存領域121と、処理対象のプログラムを保存するためのプログラム領域122とで構成されている。

0025

CPU101では、制御・通信プログラムが所定の周期あるいは必要に応じて適宜実行されることから、本実施形態のファームウェア更新方法では、ファームウェア更新用プログラムを実行して動作プログラムまたは/及び制御・通信プログラムの更新を行っている間も、制御・通信プログラムを継続して実行できるようにしている。すなわち、ファームウェアの更新が要求されると、ファームウェア更新用プログラムの実行と制御・通信プログラムの実行とを並行して行えるようにするために、ROM110の第5領域115に保存されているファームウェア更新用プログラムと第3領域113に保存されている制御・通信プログラム(実行用)の両方を、RAM120のプログラム領域122にコピーして保存させる。

0026

図1では、制御・通信プログラムがプログラム領域122aにコピーして保存され、ファームウェア更新用プログラムがプログラム領域122bにコピーして保存されている。本実施形態では、ファームウェア更新用プログラムの実行アドレスと制御・通信プログラムの実行アドレスとを、プログラムカウンタに適宜入れ替えながら両方のプログラムを並行して実行させる構成としている。

0027

ファームウェアの更新は、外部からのファームウェア更新命令を受けて開始される。図1に示す実施形態では、一例としてCPU101に上位装置10が接続されており、上位装置10から送信されたファームウェア更新命令が受信バッファ130に書き込まれると、CPU101ではファームウェア更新を開始するための準備が行われる。すなわち、ファームウェア更新用プログラムを実行可能とするために、ROM110の第5領域115からファームウェア更新用プログラムが読み出されてRAM120のプログラム領域122bにコピーされる。また、それと同時に、制御・通信プログラムが第3領域113から読み出されてプログラム領域122aにコピーされる。なお、制御・通信プログラムについては、起動時等に予め第3領域113から読み出してプログラム領域122aに保存しておくことで、これをプログラム領域122aに常駐させるようにしてもよい。

0028

ファームウェア更新用プログラムがRAM120のプログラム領域122bに保存されると、プログラム領域122bのファームウェア更新用プログラムのアドレスがプログラムカウンタに設定される。これにより、CPU101ではプログラムカウンタに設定されたファームウェア更新用プログラムの実行が開始される。ファームウェア更新用プログラムは、ROMデータ消去手段141とROMデータ書込手段142を有しており、これらを用いてファームウェアの更新を実行する。

0029

本実施形態のファームウェア更新方法では、外部から入力する新プログラムが、ROM110のバックアップ用プログラムが保存されている第2保存領域112または第4保存領域114に保存される。そのため、ファームウェア更新用プログラムの実行が開始されると、まず、ROM110の第2保存領域112及び第4保存領域114のうち、更新対象のプログラムが保存されている領域のバックアップ用プログラムデータを、ROMデータ消去手段141を用いて消去する。

0030

更新対象のバックアップ用プログラムデータが消去されると、以降のファームウェア更新用プログラムの処理では、上位装置10から新プログラムのデータが送信されて受信バッファに書き込まれる毎に、ROMデータ書込手段142を用いて送信されたデータをROM110のデータ消去された領域に書き込む。新プログラムのデータを受信してROM110に書き込まれるまでの間に、何らかの異常が発生しないかを監視するデータ異常検出手段143をファームウェア更新用プログラムに設けるのが好ましい。このようなデータ異常検出手段143として、例えばチェックサムのような方法を用いることができる。

0031

一方、RAM120のプログラム領域122aに書き込まれた制御・通信プログラムは、ファームウェア更新用プログラムの処理がCPU101で行われていない時間帯に、プログラムカウンタに制御・通信プログラムのアドレスを設定することにより、所定の周期あるいは必要に応じて適宜実行される。このような時間帯として、ROMデータ消去手段141によるROMデータの消去が行われている期間、上位装置10から新プログラムのデータを受信している期間、及びROMデータ書込手段142によりROM110の所定の領域にデータが書き込まれている期間、等がある。このような時間帯に制御・通信プログラムが実行されることにより、D/Aコンバータ21、A/Dコンバータ22、及びデジタル演算装置23などの周辺ICの制御・通信処理も並行して実行されることになる。

0032

新プログラムのデータ受信がすべて終了してROMデータ書込手段142によるROM110への書き込みが完了すると、所定のファームウェア更新情報がROM110またはRAM120の所定の位置に記録される。ファームウェア更新情報の記録位置として、図1ではRAM120の変数保存領域121の特定の位置121aに保存させるものとしている。ファームウェア更新情報には、少なくともROM110の第1保存領域111〜第4保存領域114のうち新プログラムが書き込まれた領域の情報が含まれている。また、データ異常検出手段143による異常検出結果もファームウェア更新情報に含めるようにするのがよい。ファームウェア更新情報が特定の位置121aに保存された後、プログラムカウンタにブートローダのアドレスが設定され、これによりCPU101の再起動が行われる。

0033

CPU101の再起動が行われると、ブートローダは、RAM120の特定の位置121aに保存されているファームウェア更新情報を入力し、これをもとに新プログラムが保存されているROM110上の領域と、ファームウェア更新前に実行用であったプログラムが保存されている領域を判定する。ここで、データ異常検出手段143による異常検出結果として異常が検出されなかった場合には、新プログラムが保存されている領域を実行用プログラム保存領域とし、ファームウェア更新前に実行用であったプログラムの保存領域をバックアップ用プログラム保存領域とする。これに対し、データ異常検出手段143による異常検出結果として異常が検出されている場合には、新プログラムが保存された領域をバックアップ用プログラム保存領域のままとし、ファームウェア更新前に実行用のプログラムを保存していた領域も実行用プログラム保存領域のままとする。

0034

以下では、ファームウェア更新の一例として、動作プログラムが更新された場合について説明する。この場合、上位装置10から動作プログラムを対象とするファームウェア更新命令を受信すると、ROM110の第5領域115からファームウェア更新用プログラムが読み出され、RAM120のプログラム領域122bにコピーされる。そして、プログラムカウンタにファームウェア更新用プログラムのアドレスが設定されて実行が開始される。ファームウェア更新用プログラムの実行が開始されると、まずROMデータ消去手段141を用いて動作プログラムのバックアップ用プログラムが保存されている第2保存領域112のデータが消去される。

0035

第2保存領域112のデータ消去が終了すると、上位装置10から新プログラムのデータが受信される毎に、ROMデータ書込手段142を用いて受信したデータをROM110の第2保存領域112に書き込む。この間も、制御・通信プログラムは、所定の周期または必要に応じて適宜実行される。データ異常検出手段143により異常が検出されることなく新プログラムのROM110への書き込みが完了すると、新プログラムの保存領域はROM110の第2保存領域112であることを示す情報をファームウェア更新情報としてRAM120上の特定の位置121aに保存する。これにより、ブートローダは再起動後に、新プログラムが保存されているROM110の第2保存領域112を実行用の動作プログラムが保存されている領域と判定し、第1領域111をバックアップ用プログラムの保存領域と判定する。

0036

なお、上記では再起動後に実行用のプログラム保存領域とバックアップ用プログラム保存領域を判定するようにしているが、この判定を新プログラムのROM110への書き込み完了直後に行わせるようにすることも可能である。すなわち、新プログラムのROM110への書き込み完了後に、データ異常検出手段143により異常が検出されたかを判定する。その結果、異常が検出されなかった場合には、新プログラムの保存領域を示すファームウェア更新情報をRAM120上の特定の位置121aに保存させる。これに対し、データ異常検出手段143により異常が検出された場合には、RAM120上の特定の位置121aに保存されているファームウェア更新情報を変更せず、図1に示したROM110のプログラム保存構成を維持させる。

0037

以下では、図2を用いて本実施形態のファームウェア更新方法を説明する。図2は、本実施形態のファームウェア更新方法による処理手順を示す流れ図である。まず、図2(a)に示すステップS1において、上位装置10からファームウェア更新命令を受信する。これにより、ステップS2ではROM110の第5領域115に保存されているファームウェア更新用プログラムが、RAM120上のプログラム領域122bにコピーされる。また、必要に応じて制御・通信プログラムも第3領域113からプログラム領域122aにコピーされる。ステップS3では、プログラム領域122bのファームウェア更新用プログラムのアドレスがプログラムカウンタに設定されることにより、ファームウェア更新用プログラムが起動される。

0038

ファームウェア更新用プログラムが起動された後は、図2(b)に示す処理が行われる。まず、ステップS11では、更新対象のプログラムのバックアップ用プログラムが保存されているROM110上の領域(図1の第2保存領域112または第4保存領域114)のデータを、ROMデータ消去手段141を用いて消去する。ROMデータ消去手段141によるデータ消去が開始されると、ステップS12でデータ消去の終了が判定されるまでの間、ステップS21において制御・通信プログラムが実行される。制御・通信プログラムは、所定の周期あるいは必要に応じて適宜実行される。

0039

ステップS12でデータ消去の終了が判定されると、次のステップS13で上位装置10からの新プログラムデータの受信を開始する。そして、ステップS14で新プログラムデータの受信終了が判定されるまでの間、ステップS22において制御・通信プログラムが実行される。また、ステップS14で新プログラムデータの受信終了が判定されると、ステップS15で受信データのROM110上の所定の保存領域への書き込みが開始される。そして、ステップS16で受信データのROM110への書込み完了が判定されるまでの間、ステップS23において制御・通信プログラムが実行される。また、ステップS16で受信データの書込み終了が判定されると、次のステップS17に進む。

0040

ステップS17では、上位装置10から新プログラムのデータをすべて受信したかを判定する。これは、上位装置10から新プログラムのデータをすべて送信した後に所定の送信完了信号を送信させることにより、この送信完了信号を受信したことを確認することで行える。ステップS17で受信が完了していないと判定されると、ステップS13に戻って再び新プログラムのデータ受信を開始する。一方、ステップS17で受信完了が判定されると、ステップS18において、所定のファームウェア更新情報がRAM120上の特定の位置121aに記録される。そして、次のステップS19において、ブートローダによりCPU101の再起動が行われる。

0041

つぎに、ブートローダによる再起動後の処理を、図3に示す流れ図を用いて説明する。ステップS31でブートローダによる再起動が行われると、ステップS32でファームウェア更新情報をRAM120上の特定の位置121aから入力する。ステップS33では、ファームウェア更新情報に含まれているデータ異常検出手段143による異常検出結果を判定する。その結果、異常が検出されなかったと判定された場合には、ファームウェア更新後のROM110の保存領域の構成に従って制御・通信プログラムをRAM120にコピーして実行させる。

0042

すなわち、ステップS34では、制御・通信プログラムをROM110の所定の保存領域(制御・通信プログラムが更新されているときは第4保存領域114、更新されていないときは第3保存領域113)からRAM120にコピーする。その後、ステップS35で更新後の実行用動作プログラムの開始アドレスをプログラムカウンタにセットすることによりサービスを開始する。なお、RAM110上の変数保存領域121のメモリマップ固定化、すなわち変数保存領域121における各変数の保存位置を固定化することによって、更新後の新プログラムにおいても更新前のプログラムによる処理結果から継続して処理させることが可能となる。

0043

一方、ステップS33で異常が検出されたと判定された場合には、ファームウェア更新前のROM110の保存領域の構成に従ってプログラムをRAM120にコピーして実行させる。すなわち、ステップS36では、制御・通信プログラムをROM110の第3保存領域113からRAM120にコピーして実行させる。また、ステップS37で動作プログラムを実行させる場合には、更新前の実行用動作プログラムの開始アドレスをプログラムカウンタにセットすることによりサービスを開始する。

0044

上記説明のように、本実施形態のファームウェア更新方法及びファームウェア更新装置によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能となる。

0045

本発明の第2の実施の形態に係るファームウェア更新方法及びファームウェア更新装置を、図4を用いて説明する。図4は、本実施形態のファームウェア更新装置の構成を示すブロック図である。本実施形態のファームウェア更新装置では、RAM220のプログラム領域222が予め制御・通信プログラム保存領域222a、ファームウェア更新用プログラム保存領域222b、及び必要に応じて動作プログラムをコピーして保存させるための動作プログラム保存領域222cに区分されている。そして、制御・通信プログラム保存領域222a及びファームウェア更新用プログラム保存領域222bには、それぞれ制御・通信プログラム及びファームウェア更新用プログラムが予めROM110の第3保存領域113及び第5領域からコピーされて保存されている。このRAM220への保存は、CPU101の起動/再起動時に行われる。

0046

ファームウェア更新用プログラムを予めRAM220のファームウェア更新用プログラム保存領域222bに保存しておくことで、本実施形態では、上位装置10からファームウェア更新命令を受信すると、ファームウェアの更新を直ちに開始することが可能となる。本実施形態のファームウェア更新方法を、図5を用いて説明する。図5は、本実施形態のファームウェア更新方法による処理手順を示す流れ図である。図5に示す本実施形態のファームウェア更新方法は、図2に示した第1の実施形態のファームウェア更新方法と比べて、ステップS2のファームウェア更新用プログラムのROM110からRAM120へコピーする処理が省略されている。このように、ファームウェア更新用プログラムをRAM120にコピーする手間を省略することで、制御・通信プログラムの実行に影響を与えることなく、ファームウェア更新を実行することが可能となる。

0047

本発明のファームウェア更新方法及びファームウェア更新装置によれば、1つのROMと1つのRAMというCPUの動作に必要な最小限の構成で、周辺ICの制御・通信の主要機能を停止させることなく、ファームウェア更新を行うことが可能となる。また、動作させる必要のある制御・通信プログラム及びファームウェア更新用プログラムをRAM上にコピーして実行させる構成としていることから、保存しているプログラムを動作させながら別のプログラムの書き換えを行うことができないROMに対しても、実行用のプログラムをバックアップ用として残しながらファームウェアの更新を行うことが可能となる。

0048

なお、本実施の形態における記述は、本発明に係るファームウェア更新方法及びファームウェア更新装置の一例を示すものであり、これに限定されるものではない。本実施の形態におけるファームウェア更新方法等の細部構成及び詳細な動作等に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。

0049

10 上位装置
21 D/Aコンバータ
22 A/Dコンバータ
23デジタル演算装置
101 CPU
110 ROM
111 第1保存領域
112 第2保存領域
113 第3保存領域
114 第4保存領域
120、220 RAM
121、221変数保存領域
122、222プログラム領域
130受信バッファ
141ROMデータ消去手段
142 ROMデータ書込手段
143 データ異常検出手段

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ