(57)【要約】【課題】  書き替えが中断したり、失敗したりしたときには、書き替えができなかったことを自動で検出し、装置が書き替え作業の前と同じ動作するように戻せるファームウェアの書き替え手法を提供することを課題とする。【解決手段】  ファームウェアを書き替える前に、動作しているファームウェアをコピーして退避させる。また、ファームウェアが正常に書き込まれたときには不揮発性メモリの決められた領域に書き替え完了フラグとファームウェアのサイズを記録するようにする。CPU起動時に書き替え完了フラグを確認し、フラグがあればそのまま書き替えられたファームウェアを実行し、なければ退避させたファームウェアを実行する。【選択図】          図1
2011150383.tif 000002
【特許請求の範囲】
【請求項１】
ファームウェアの書き替えを行うためのコマンドを受信するステップと、
Ｆｌａｓｈ  ＲＯＭ１のファームウェア実行領域に格納されているファームウェアと書き込み終了フラグとファームウェアサイズをそれぞれＦｌａｓｈ  ＲＯＭ２のファームウェア退避領域と書き込み終了フラグとファームウェアサイズにコピーするステップと、
新ファームウェアを受信するステップと、
Ｆｌａｓｈ  ＲＯＭ１のファームウェア実行領域に新ファームウェアを書き込むステップと、
受信した新ファームウェアとファームウェア実行領域に書き込んだファームウェアを比較しエラーがないことを確認するステップと、
エラーがなければ、書き込み終了フラグと書き込んだファームウェアサイズをＦｌａｓｈ  ＲＯＭ１に書き込み、
エラーがあった場合は、書き込み終了フラグの書き込みを行わないステップと、
Ｆｌａｓｈ  ＲＯＭ１の書き込み終了フラグを確認するステップと、
フラグが確認できればファームウェア実行領域のファームウェアを実行し、
フラグが確認できなかった場合は、Ｆｌａｓｈ  ＲＯＭ２のファーム退避領域のファームウェアをＦｌａｓｈ  ＲＯＭ１のファームウェア実行領域にコピーし、Ｆｌａｓｈ  ＲＯＭ２の書き込み終了フラグとファームウェアサイズをそれぞれＦｌａｓｈ  ＲＯＭ１の書き込み終了フラグ７とファームウェアサイズにコピーしてファームウェアの書き換え作業を行う前のファームウェアを実行するステップとを備えたファームウェア書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアで動作する装置へのファームウェアを書き込む方法に関する。
【背景技術】
【０００２】
ファームウェアで動作する装置には、ファームウェアの不具合の解消や、機能追加を行う為に新しいファームウェアに書き替えることがある。古いファームウェアから新しいファームウェアへの書き替えが正常に終わらなかった場合、装置が異常な動作を起こしてしまう。そのため、装置が正常に動作するにファームウェアを実行できるようにしなければならない。特許文献1では古いファームウェア用と新しいファームウェア用のFlash ROMを用意し、新しいファームウェアに異常があった場合、コマンドを送って古いファームウェアから起動するようにしている。特許文献2ではFlash ROMに新しいファームウェア用と古いファームウェア用の領域を用意しておき、さらにNVRAMを用意し、そこにファームが正常動作するかどうかのフラグと有効なファームウェアを記憶しておき、動作するファームウェアを自動で実行できるようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平11-110218号公報
【特許文献２】特開2003-296131号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献1及び特許文献2ともに、ファームウェアを実行するCPUとは別にファームウェアを監視するためのMPUや、フラグを記憶するためにNVRAMを用意している。  
そこで、本発明の目的は、実行可能なファームウェアを選択するための装置の追加なしに、ファームウェアの書き替えに失敗したときは自動で書き替え作業前のファームウェアを実行可能にすることである。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、本発明によれば、ファームウェアの書き替えを行うためのコマンドを受信するステップと、
Flash ROM1のファームウェア実行領域に格納されているファームウェアと書き込み終了フラグとファームウェアサイズをそれぞれFlash ROM2のファームウェア退避領域と書き込み終了フラグとファームウェアサイズにコピーするステップと、
新ファームウェアを受信するステップと、
Flash ROM1のファームウェア実行領域に新ファームウェアを書き込むステップと、
受信した新ファームウェアとファームウェア実行領域に書き込んだファームウェアを比較しエラーがないことを確認するステップと、
エラーがなければ、書き込み終了フラグと書き込んだファームウェアサイズをFlash ROM1に書き込み、
エラーがあった場合は、書き込み終了フラグの書き込みを行わないステップと、
Flash ROM1の書き込み終了フラグを確認するステップと、
フラグが確認できればファームウェア実行領域のファームウェアを実行し、
フラグが確認できなかった場合は、Flash ROM2のファーム退避領域のファームウェアをFlash ROM1のファームウェア実行領域にコピーし、Flash ROM2の書き込み終了フラグとファームウェアサイズをそれぞれFlash ROM1の書き込み終了フラグ7とファームウェアサイズにコピーしてファームウェアの書き換え作業を行う前のファームウェアを実行するステップとを備えたファームウェア書き込み方法が提供される。
【発明の効果】
【０００６】
本発明によれば、書き替えように追加の装置なしに、ファームウェアの書き替えが失敗した場合、自動的に失敗を検出し、書き替えを行う前のファームウェアを実行できることによって、書き替え失敗したファームウェアによって装置が異常な動作をするのを防ぐことができるようになる。
【図面の簡単な説明】
【０００７】
【図１】本発明の第1の実施形態におけるブロック図
【図２】本発明の第1の実施形態におけるFlash ROMのアドレスマップ
【図３】本発明の第1の実施形態におけるフローチャート
【図４】本発明の第2の実施形態におけるブロック図
【図５】本発明の第3の実施形態におけるブロック図
【図６】本発明の第3の実施形態におけるFlash ROMのアドレスマップ
【発明を実施するための形態】
【０００８】
以下、本発明の実施の形態について、詳細に説明する。
【実施例１】
【０００９】
本発明の実施形態を図1を用いて説明する。  
ファームウェアの書き替えは、ファームウェアやコマンドを送信するPC1と、ファームウェアの実行、書き替えを行うCPU2と、古いファームウェアのコピーを置く不揮発性メモリFlash ROM2(4)と、CPUで実行されるファームウェアが格納される不揮発メモリFlash ROM1(3)と、高速なデータの読み書きを行う揮発性メモリSRAM5と、ブートプログラムとファームウェア書き替えプログラムが入っているCPU内蔵ROM6と、ファームウェアの書き込みが正常に終わったことを識別するための書き込み終了フラグ7、9と書き込んだファームウェアのサイズ8、10、とPC1とCPU2とが通信するためのシリアルバス11と、CPUと各メモリ間の通信を行うためのメモリバス12からなる装置で行う。
【００１０】
実施例1の動作を図2を用いて説明する。ファームウェアの書き替えを行うためにPC1からCPU2へ送られた書き替えコマンドを受信する(30A)。コマンドを受信するとまず、Flash ROM1(4)のファームウェア実行領域(203)に格納されているファームウェアと書き込み終了フラグ7とファームウェアサイズ8をそれぞれFlash ROM2(3)のファームウェア退避領域(206)と書き込み終了フラグ9とファームウェアサイズ10にコピーする(30B)。コピーが終わったら新ファームウェアを受信する(30C)。ファームウェアの受信中はサムチェックを行い(30D)、エラーがなければFlash ROM1(4)のファームウェア実行領域(203)に書き込む(30E)。エラーがあった場合は書き込みを行わない。
【００１１】
書き込みが終了したら、受信したファームウェアとファームウェア実行領域(203)に書き込んだファームウェアを比較しエラーがないことを確認する(30F)。エラーがなければ、書き込み終了フラグ7と書き込んだファームウェアサイズ8を書き込む(30G)。書き込み終わったら、自動的にCPUはリセットされる(30H)。もし、サムチェックやファームウェアのデータの比較でエラーがあった場合は、書き込み終了フラグの書き込みを行わずCPUのリセットを行う。リセット後にFlash ROM1(4)の書き込み終了フラグ7を確認(30I)し、フラグが確認できればファームウェア実行領域(203)のファームウェアを実行する(30K)。フラグが確認できなかった場合は、ファーム退避領域(206)のファームウェアをファームウェア実行領域(203)にコピーし、Flash ROM2の書き込み終了フラグ9とファームウェアサイズ10をそれぞれFlash ROM1の書き込み終了フラグ7とファームウェアサイズ8にコピーして(30J)ファームウェアの書き換え作業を行う前のファームウェアを実行する。
【００１２】
特許文献1のFROM1，2は片方がファームウェア実行用、もう一つがバックアップ用になっており、サムチェックの結果でどっちが実行用になるか決定される。
【００１３】
一方、上記実施例1によれば、Flash ROM1はファームウェア実行用、Flash ROM2は退避用と固定されている。上記実施例1ではサムチェックでエラーが発生した場合は、Flash ROM2のデータをFlash ROM1に戻す作業が必要になる。上記実施例1では、Flash ROMにどのファームウェアを実行するかを判定するフラグを記録している。
【実施例２】
【００１４】
次に、実施例2について図4を用いて説明する。実施例1と異なる点は、Flash ROM2がないことである。以下、第1の実施形態と異なる箇所のみ説明し、同じ箇所の説明は省略する
PC1からの書き替えコマンドを受信後、ファームウェア実行領域(203)のファームウェアをPC1に送り、PC1にコピーすることで退避を行う。CPUリセット後、書き込み終了フラグが確認できなかった場合、PC1に保存したファームウェアをダウンロードして、ファームウェア実行領域(203)に書き込むことで書き換え作業を行う前のファームウェアを実行する。
【実施例３】
【００１５】
次に、実施例3について図5を用いて説明する。実施例2同様、Flash ROM2がないが、Flash ROM1の容量はファームウェア2つ分より大きい。以下、異なる箇所のみ説明し、同じ箇所の説明は省略する。
【００１６】
図6のようにFlash ROM1の中にファームウェア実行領域(603)、ファームウェア退避領域((606)、書き込みフラグ7(601)と9(604)、ファームウェアサイズ8(602)、10(605)を配置する。
【００１７】
特許文献2の2つの領域は片方がファームウェア実行用、もう一つがバックアップ用になっており、テストの結果でどちらが実行用になるか決定される。また、同じFROM上にブートプログラムが入っている。どのファームを実効するか判定する情報は外部のNVRAMに記録されている。
【００１８】
上記実施例3では実行用、退避用領域と固定されている。ブートプログラムはCPU内蔵ROM内である。どのファームを実効するかを判断するフラグもFlash ROMに記録されている。
【産業上の利用可能性】
【００１９】
本発明は、磁気共鳴イメージング装置に利用することができる。
【符号の説明】
【００２０】
1  PC、2  CPU、3、4  不揮発性メモリ、5  揮発性メモリ、6  CPU内蔵ROM、7、9  書き込み終了フラグ、8、10  ファームウェアのサイズ11  シリアルバス、12  メモリバス
【図１】
2011150383.tif 000003
【図２】
2011150383.tif 000004
【図３】
2011150383.tif 000005
【図４】
2011150383.tif 000006
【図５】
2011150383.tif 000007
【図６】
2011150383.tif 000008