JP6750340B2 - 電子機器、ファームウェアアップデート方法およびコンピュータプログラム - Google Patents
電子機器、ファームウェアアップデート方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP6750340B2 JP6750340B2 JP2016123577A JP2016123577A JP6750340B2 JP 6750340 B2 JP6750340 B2 JP 6750340B2 JP 2016123577 A JP2016123577 A JP 2016123577A JP 2016123577 A JP2016123577 A JP 2016123577A JP 6750340 B2 JP6750340 B2 JP 6750340B2
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- determination information
- value
- indicates
- information
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
[無線センサネットワーク]
図1は、実施形態にかかる電子機器が利用される無線センサネットワークを示すブロック図である。無線センサネットワーク1は、図1に示されているように、サーバ2と、複数のセンサノード3−1〜3−N(N=2,3,4,…)とを有する。無線センサネットワーク1は、互いに異なる複数の位置にそれぞれ配置される複数の設備を遠隔監視することに利用され、たとえば、多数の下水道管の水位等をそれぞれ遠隔監視することに利用される。複数のセンサノード3−1〜3−Nのうちの任意のセンサノード3−i(i=1,2,3,…,N)は、実施形態にかかる電子機器から構成されている。複数のセンサノード3−1〜3−Nは、無線センサネットワーク1により遠隔監視される複数の監視対象にそれぞれ設置されている。サーバ2と複数のセンサノード3−1〜3−Nは、無線環境5を介して互いに通信可能に接続されている。すなわち、センサノード3−iは、サーバ2に十分に近い領域に配置されているときに、無線通信を介してサーバ2と直接に通信する。センサノード3−iは、サーバ2と直接に無線通信することが困難であるときに、複数のセンサノード3−1〜3−Nのうちのサーバ2と無線通信できるセンサノード3−j(j=1,2,3,…,N;j≠i)と通信することにより、サーバ2と間接的に通信する。センサノード3−iは、さらに、サーバ2と直接に通信することが困難であるセンサノード3−k(k=1,2,3,…,N;k≠i;k≠j)と無線通信することにより、センサノード3−kとサーバ2との通信を中継する。
サーバ2は、センサノード3−iと無線通信することにより、センサノード3−iにより測定された複数の測定値をセンサノード3−iから収集する。サーバ2は、さらに、更新された新しいファームウェアを複数のセンサノード3−1〜3−Nにインストールするときに、制御情報であるファームウェア更新要求を複数のセンサノード3−1〜3−Nに配信する。サーバ2は、FW(FirmWare:ファームウェア)更新要求に対するACK(ACknowledgement:肯定応答)がセンサノード3−iから返信されたときに、無線通信を介して、センサノード3−iにその新しいファームウェアを送信する。なお、サーバ2は、同様に動作する他の外部装置に置換されてもよい。その外部装置としては、ゲートウェイ(GW:GateWay)が例示される。
図2は、実施例1のセンサノードを示すブロック図である。センサノード3−iは、図2に示されているように、RF通信部11(Radio Frequency)と複数のセンサ12−1〜12−M(M=2,3,4,…)とMCU14(Micro Control Unit)とを備えている。RF通信部11は、MCU14に情報伝達可能に接続されている。RF通信部11は、MCU14に制御されることにより、電波を介してサーバ2と通信し、電波を介して複数のセンサノード3−1〜3−Nのうちのセンサノード3−iと異なる他のセンサノードと通信する。複数のセンサ12−1〜12−Mは、それぞれ、MCU14に情報伝達可能に接続されている。複数のセンサ12−1〜12−Mのうちの任意のセンサは、MCU14に制御されることにより、測定値を測定する。その測定される測定値としては、センサノード3−iが設置される設備に関するものであり、たとえば、下水道管の水位が例示される。
図3は、eMMCに記録される情報を説明する説明図である。eMMC19は、図3に示されているように、複数のメモリバンクに分割されている。eMMC19は、複数のメモリバンクにブートローダ21と複数のファームウェア22−1〜22−K(K=2,3,4,…)とをそれぞれ記録している。たとえば、ブートローダ21は、複数のメモリバンクのうちのアドレスが0から始まる1つのメモリバンクに記録されている。複数のファームウェア22−1〜22−Kのうちの1つのファームウェア22−A(A=1,2,3,…,K)は、複数のメモリバンクのうちのアドレスがaから始まる1つのメモリバンクに記録されている。複数のファームウェア22−1〜22−Kのうちの他のファームウェア22−B(B=1,2,3,…,K;A≠B)は、複数のメモリバンクのうちのアドレスがbから始まる1つのメモリバンクに記録されている。
図4は、ストレージに記録される情報を説明する説明図である。ストレージ15は、図4に示されているように、起動バンク情報25とバンク試行情報26と複数のチェックポイント処理結果27−1〜27−X(X=2,3,4,…)とFW判定情報28とを記録している。起動バンク情報25は、eMMC19に記録される複数のファームウェア22−1〜22−Kから選択された1つのファームウェアを示している。具体的には、起動バンク情報25は、eMMC19の複数のメモリバンクのうちのその選択されたファームウェアが記録された1つのメモリバンクの識別子を示している。なお、起動バンク情報25は、メモリバンクの識別子と異なる情報を示すことにより、その選択されたファームウェアを示してもよい。起動バンク情報25が示す情報としては、選択されたファームウェアのプログラムカウンタ、選択されたファームウェアの更新時刻、選択されたファームウェアのリビジョン番号が例示される。
図5は、ファームウェアを示すブロック図である。ファームウェア22−Aは、図5に示されているように、MCU14に複数の機能をそれぞれ実現させるための複数のコンピュータプログラムから形成されている。その複数の機能は、通常動作部31とアップデート部32と複数のチェックポイント処理部33−1〜33−XとFW判定情報更新部34とを含んでいる。
ブートローダ21は、センサノード3−iが起動されることにより起動され、または、複数のファームウェア22−1〜22−KによりMCU14がリブートされることにより起動される。ブートローダ21は、起動されると、ストレージ15に記録される起動バンク情報25とバンク試行情報26とFW判定情報28とに基づいて複数のファームウェア22−1〜22−Kから1つのファームウェアを選択する。ブートローダ21は、さらに、その選択されたファームウェアを起動する。さらに、ブートローダ21は、起動バンク情報25が示すファームウェアを起動する場合で、バンク試行情報26が「×」を示すときに、ストレージ15を制御することにより、「○」を示すようにバンク試行情報26を更新する。
図7は、実施例1のセンサノードの動作を示す動作シーケンス図である。センサノード3−iのファームウェア22−Aは、図7に示されているように、センサノード3−iが新しいファームウェア22−Bをサーバ2から受信すると(S1)、ファームウェア22−BをeMMC19の所定のバンクメモリに記録する。ファームウェア22−Aは、新しいファームウェア22−BがeMMC19に記録されると、ストレージ15を制御することにより、起動バンク情報25がファームウェア22−Bを示すように、起動バンク情報25を更新する。ファームウェア22−Aは、さらに、ストレージ15を制御することにより、バンク試行情報26が「×」を示すように、バンク試行情報26を更新する。ファームウェア22−Aは、さらに、ストレージ15を制御することにより、FW判定情報28が「未定」を示すように、FW判定情報28を更新する(S2)。ファームウェア22−Aは、起動バンク情報25とバンク試行情報26とFW判定情報28とを更新した後に、リブートすることにより制御をブートローダ21に移す(S3)。
実施形態の電子機器としてのセンサノード3−iは、MCU14と、ファームウェア22−Aとブートローダ21とを記録するeMMC19と、FW判定情報28を記録するストレージ15とを有している。ファームウェア22−Aは、MCU14に起動されることにより、複数のセンサ12−1〜12−Mを制御し、さらに、サーバ2からダウンロードされたファームウェア22−BをeMMC19に記録してブートローダ21を起動する。ブートローダ21は、MCU14に起動されることにより、FW判定情報28が「不良」を示すときにファームウェア22−Aを起動し、FW判定情報28が「不良」を示していないときにファームウェア22−Bを起動する。ファームウェア22−Bは、MCU14に起動されることにより、複数のセンサ12−1〜12−Mを制御し、さらに、ファームウェア22−Bの良否を判定する。ファームウェア22−Bは、ファームウェア22−Bが不良であると判定されたときに、FW判定情報28が「不良」を示すようにFW判定情報28を更新してブートローダ21を起動する。
センサノード3−iは、さらに、ウォッチドッグタイマ16がタイムアウトするときに、ブートローダ21を起動してもよい。このとき、ファームウェア22−Aのアップデート部32は、新しいファームウェアをダウンロードしたときに、ウォッチドッグタイマ16が設定されるように、ウォッチドッグタイマ16を制御する。さらに、複数のチェックポイント処理部33−1〜33−Xは、ウォッチドッグタイマ16に関する他のチェックポイント処理部が追加されている。そのチェックポイント処理部は、ウォッチドッグタイマ16が解除されるように、ウォッチドッグタイマ16を制御する。
図10は、実施例2のセンサノードの動作を示す動作シーケンス図である。センサノード3−iのファームウェア22−Aは、図10に示されているように、センサノード3−iが新しいファームウェア22−Bをサーバ2から受信すると(S31)、ファームウェア22−BをeMMC19の所定のバンクメモリに記録する。ファームウェア22−Aは、ストレージ15を制御することにより、起動バンク情報25がファームウェア22−Bを示すように、起動バンク情報25を更新する。ファームウェア22−Aは、さらに、ストレージ15を制御することにより、バンク試行情報26が「×」を示すように、バンク試行情報26を更新する。ファームウェア22−Aは、さらに、ストレージ15を制御することにより、FW判定情報28が「未定」を示すように、FW判定情報28を更新する(S32)。ファームウェア22−Aは、起動バンク情報25とバンク試行情報26とFW判定情報28とを更新した後に、ウォッチドッグタイマ16を制御することにより、ウォッチドッグタイマ16を設定する(S33)。ファームウェア22−Aは、ウォッチドッグタイマ16が設定された後に、リブートすることにより制御をブートローダ21に移す(S34)。
実施例2のセンサノード3−iは、ファームウェア22−Bが起動されるときに設定されるウォッチドッグタイマ16をさらに備えている。ブートローダ21は、さらに、ウォッチドッグタイマ16がタイムアウトしたときに、MCU14に起動される。このようなセンサノード3−iは、ウォッチドッグタイマ16を備えていることにより、ファームウェア22−Bが起動しないなど、MCU14がフリーズした場合でも、そのトラブルから抜けることができる。このようなセンサノード3−iは、さらに、ファームウェア22−Bがフリーズしてファームウェア22−Bの良否を判定しない場合でも、正常であるファームウェア22−Aを自動的に起動させることができる。
ところで、実施例2では、センサノード3−iは、バンク試行情報26をストレージ15に記録しているが、バンク試行情報26を記録することを省略してもよい。実施例3では、センサノード3−iは、バンク試行情報26を記録更新することが省略されている。このとき、ブートローダ21は、FW判定情報28が「未定」を示すときに、ストレージ15を制御することにより、FW判定情報28が「不良」を示すようにFW判定情報28が「未定」を更新する。
図12は、実施例3のセンサノードの動作を示すフローチャートである。センサノード3−iは、図12に示されているように、まず、ブートローダ21が起動される。センサノード3−iのMCU14は、ブートローダ21が起動されると、起動バンク情報25とFW判定情報28とをストレージ15から取得する(S61)。MCU14は、FW判定情報28が「正常」を示していないで(S62、No)、FW判定情報28が「不良」を示しているときに(S63、Yes)、以前に正常に動作していたファームウェア22−Bを選択する(S64)。このとき、その選択されたファームウェア22−Bは、起動バンク情報25が示すファームウェア22−Aと異なっている。MCU14は、FW判定情報28が「未定」を示しているときに(S63、No)、ストレージ15を制御することにより、FW判定情報28が「不良」を示すようにFW判定情報28を更新する(S65)。このとき、FW判定情報28が「不良」を示しているが、起動バンク情報25が示すファームウェアは良否が判定されておらず、すなわち、FW判定情報28は、「不良」に仮決めされている。MCU14は、S65が実行されたときに、または、FW判定情報28が「正常」を示しているときに(S62、Yes)、起動バンク情報25が示すファームウェア22−Aを起動する(S66)。
センサノード3−iは、さらに、ファームウェア22−Aが頻繁に再起動するときに、ブートローダ21を起動してもよい。このとき、ストレージ15は、さらに、更新完了時刻と起動回数とを記録している。ファームウェア22−Aのアップデート部32は、新しいファームウェアをダウンロードしたときに、その更新完了時刻と起動回数とを更新するように、ストレージ15を制御する。複数のチェックポイント処理部33−1〜33−Xは、起動回数に関する他のチェックポイント処理部が追加されている。そのチェックポイント処理部は、起動回数を更新するようにストレージ15を制御し、現在時刻を取得するようにカレンダータイマ17を制御する。そのチェックポイント処理部は、その更新完了時刻と起動回数と現在時刻とに基づいて算出されたファームウェア22−Aの再起動の頻度が所定の値より大きいときに、リブートすることにより、ブートローダ21を起動する。
図13は、実施例4のセンサノードの動作を示す動作シーケンス図である。センサノード3−iのファームウェア22−Aは、図13に示されているように、センサノード3−iが新しいファームウェア22−Bをサーバ2から受信すると(S71)、ファームウェア22−BをeMMC19の所定のバンクメモリに記録する。ファームウェア22−Aは、ストレージ15を制御することにより、起動バンク情報25がファームウェア22−Bを示すように、起動バンク情報25を更新する。ファームウェア22−Aは、ストレージ15を制御することにより、バンク試行情報26が「×」を示すように、バンク試行情報26を更新する。ファームウェア22−Aは、ストレージ15を制御することにより、FW判定情報28が「未定」を示すように、FW判定情報28を更新する。ファームウェア22−Aは、さらに、ストレージ15を制御することにより、起動回数が0を示すように起動回数を更新する(S72)。ファームウェア22−Aは、さらに、カレンダータイマ17を制御することにより、現在時刻を取得し、ストレージ15を制御することにより、その取得された現在時刻を更新完了時刻が示すように更新完了時刻を更新する(S73)。ファームウェア22−Aは、起動バンク情報25とバンク試行情報26とFW判定情報28と起動回数と更新完了時刻とを更新した後に、リブートすることにより制御をブートローダ21に移す(S74)。
実施例4のセンサノード3−iは、カレンダータイマ17をさらに備えている。ストレージ15は、起動回数をさらに記録している。ファームウェア22−Bは、カレンダータイマ17を用いて導出される期間にファームウェア22−Bが起動される回数を起動回数が示すように起動回数を更新する。ファームウェア22−Bは、起動回数が所定の値より大きいときに、FW判定情報28が「不良」を示すようにFW判定情報28を更新してブートローダ21を起動する。このようなセンサノード3−iは、ファームウェア22−Bが頻繁に再起動する場合でも、正常であるファームウェア22−Aを自動的に起動させることができる。
更新された新しいファームウェア22−Bは、複数のフラグメントに分割されてサーバ2からセンサノード3−iに送信されてもよい。図15は、実施例5のセンサノードにサーバからダウンロードされるファームウェアを示す図である。ファームウェア22−Bは、複数のブロック51−1〜51−C(C=2,3,4,…)から形成されている。複数のブロック51−1〜51−Cのうちの任意のブロック51−c(c=1,2,3,…,C)は、複数のフラグメント52−1〜52−D(D=2,3,4,…)から形成されている。複数のフラグメント52−1〜52−Dのうちの任意のフラグメント52−d(d=1,2,3,…,D)は、情報量が所定の情報量以下になるように形成されている。その所定の情報量は、フラグメント52−dが1パケットのペイロードに収まるように設計される。
図16は、実施例5のセンサノードがファームウェアを受信する動作を示す動作シーケンス図である。サーバ2は、更新された新しいファームウェア22−Bが入力されると、まず、ファームウェア22−Bを複数のブロック51−1〜51−Cに分割する。サーバ2は、ファームウェア22−Bを複数のブロック51−1〜51−Cに分割した後に、複数のブロック51−1〜51−Cの各々のブロック51−cを複数のフラグメント52−1〜52−Dに分割する。サーバ2は、無線通信を介して、制御情報であるファームウェア更新要求61を複数のセンサノード3−1〜3−Nに配信する。
実施例5では、ファームウェア22−Aは、複数のブロック51−1〜51−Cに分割されたファームウェア22−Bをサーバ2から1つずつダウンロードすることにより、ファームウェア22−Bをダウンロードする。このようなセンサノード3−iは、ファームウェア22−Bを複数のブロック51−1〜51−C毎にダウンロードすることにより、ストレージ15のうちのダウンロードするときに使用されるバッファ領域を小さくすることができる。このため、このようなセンサノード3−iは、ストレージ15の規模が小さい場合でも、ファームウェア22−Bを適切にダウンロードすることができる。また、このようなセンサノード3−iは、ストレージ15のうちのダウンロードするときに使用されるバッファ領域を小さくすることにより、ストレージ15の規模を小さくすることができる。このようなセンサノード3−iは、ストレージ15の規模を小さくすることにより、製造コストを低減することができる。
ACK64は、さらに他の情報が付随される他のACKに置換されてもよい。図19は、実施例6のセンサノードがファームウェアの1つのブロックを受信する動作を示す動作シーケンス図である。センサノード3−iは、図19に示されているように、ブロック51−cの複数のフラグメント52−1〜52−Dの全部を取得したときに、ブロック51−cのデータに基づいてハッシュ値を算出する。センサノード3−iは、ブロック51−cの複数のフラグメント52−1〜52−Dの全部を取得したときに、さらに、その算出されたハッシュ値が付随されるACK81をサーバ2に返信する。
実施例6では、ファームウェア22−Aは、複数のブロック51−1〜51−Cのうちの1つのブロック51−cをサーバ2からダウンロードしたときに、1つのブロック51−cに基づいて算出された誤り検出符号値をサーバ2に返信する。このとき、サーバ2は、センサノード3−iから受信した誤り検出符号値が、サーバ2によりブロック51−cのデータに基づいて算出された誤り検出符号値と異なるときに、ブロック51−cが正確に伝送されなかったことを認識することができる。サーバ2は、ブロック51−cが正確に伝送されなかったことを認識することにより、ブロック51−cをセンサノード3−iに再送することができる。このようなセンサノード3−iは、誤り検出符号値をサーバ2に返信することにより、正確に送信されなかったブロック51−cをサーバ2から取得することができ、ファームウェア22−Bを適切にダウンロードすることができる。
第1ファームウェアとブートローダとを記録する第1記憶装置と、
判定情報を記録する第2記憶装置とを有し、
前記第1ファームウェアは、前記制御部に起動されることにより、制御対象を制御し、さらに、外部装置からダウンロードされた第2ファームウェアを前記第1記憶装置に記録して前記ブートローダを起動し、
前記ブートローダは、前記制御部に起動されることにより、前記判定情報が第1値を示すときに前記第1ファームウェアを起動し、前記判定情報が前記第1値と異なる第2値を示すときに前記第2ファームウェアを起動し、
前記第2ファームウェアは、前記制御部に起動されることにより、前記制御対象を制御し、さらに、前記第2ファームウェアの良否を判定し、前記第2ファームウェアが不良であると判定されたときに、前記判定情報が前記第1値を示すように前記判定情報を更新して前記ブートローダを起動する
電子機器。
付記1に記載の電子機器。
付記2に記載の電子機器。
前記ブートローダは、さらに、前記ウォッチドッグタイマがタイムアウトしたときに、前記制御部に起動される
付記2または付記3に記載の電子機器。
付記4に記載の電子機器。
前記第1ファームウェアは、前記第2ファームウェアが起動される前に、前記判定情報が第3値を示すように前記判定情報を更新し、前記試行情報が第4値を示すように前記試行情報を更新し、
前記ブートローダは、
前記判定情報が前記第3値を示す場合で前記試行情報が前記第4値を示すときに、前記試行情報が第5値を示すように前記試行情報を更新して前記第2ファームウェアを起動し、
前記判定情報が前記第3値を示す場合で前記試行情報が前記第5値を示すときに、前記第1ファームウェアを起動する
付記4または付記5に記載の電子機器。
前記第2記憶装置は、起動回数をさらに記録し、
前記第2ファームウェアは、前記カレンダータイマを用いて導出される期間に前記第2ファームウェアが起動される回数を前記起動回数が示すように前記起動回数を更新し、前記起動回数が所定の値より大きいときに、前記判定情報が前記第1値を示すように前記判定情報を更新して前記ブートローダを起動する
付記2〜付記6のいずれか一項に記載の電子機器。
付記7に記載の電子機器。
付記1〜付記8のいずれか一項に記載の電子機器。
前記複数のブロックの各ブロックが分割された複数のフラグメントを前記外部装置から1つずつダウンロードすることにより、前記各ブロックをダウンロードし、
前記複数のフラグメントのうちの最後の最終フラグメントと異なる他のフラグメントをダウンロードしたときにACKを返信しないで、前記最終フラグメントをダウンロードしたときにACKを返信する
付記9に記載の電子機器。
付記10に記載の電子機器。
前記第1ファームウェアは、
前記複数のブロックのうちのブロックをダウンロードしたときに、前記受信完了ブロック番号が前記ブロックを示すように前記受信完了ブロック番号を更新し、
前記外部装置からファームアップデート再開要求を受信したときに、前記ブロックの次のブロックを示す情報を前記外部装置に返信する
付記9〜付記11のいずれか一項に記載の電子機器。
付記9〜付記12のいずれか一項に記載の電子機器。
付記9〜付記13のいずれか一項に記載の電子機器。
前記第1ファームウェアを起動することにより、制御対象を制御し、さらに、外部装置からダウンロードされた第2ファームウェアを前記第1記憶装置に記録して前記ブートローダを起動し、
前記ブートローダを起動することにより、第2記憶装置に記録された判定情報が第1値を示すときに前記第1ファームウェアを起動し、前記判定情報が前記第1値を示していないときに前記第2ファームウェアを起動し、
前記第2ファームウェアを起動することにより、前記制御対象を制御し、さらに、前記第2ファームウェアの良否を判定し、前記第2ファームウェアが不良であると判定されたときに、前記判定情報が前記第1値を示すように前記判定情報を更新して前記ブートローダを起動する
処理をコンピュータが実行することを特徴とするファームウェアアップデート方法。
ブートローダとを有し、
前記第1ファームウェアは、
制御対象を制御し、
外部装置からダウンロードされた第2ファームウェアを第1記憶装置に記録して前記ブートローダを起動する
処理をコンピュータに実行させ、
前記ブートローダは、
第2記憶装置に記録される判定情報が第1値を示すときに前記第1ファームウェアを起動し、
前記判定情報が前記第1値を示していないときに前記第2ファームウェアを起動する
処理を前記コンピュータに実行させ、
前記第2ファームウェアは、
前記制御対象を制御し、
前記第2ファームウェアの良否を判定し、
前記第2ファームウェアが不良であると判定されたときに、前記判定情報が前記第1値を示すように前記判定情報を更新して前記ブートローダを起動する
処理を前記コンピュータに実行させる
コンピュータプログラム。
3−1〜3−N:複数のセンサノード
5 :無線環境
11:RF通信部
12−1〜12−M:複数のセンサ
14:MCU
15:ストレージ
16:ウォッチドッグタイマ
17:カレンダータイマ
19:eMMC
21:ブートローダ
22−1〜22−K:複数のファームウェア
25:起動バンク情報
26:バンク試行情報
27−1〜27−X:複数のチェックポイント処理結果
28:FW判定情報
31:通常動作部
32:アップデート部
33−1〜33−X:複数のチェックポイント処理部
34:FW判定情報更新部
51−1〜51−C:複数のブロック
52−1〜52−D:複数のフラグメント
Claims (10)
- 制御部と、
複数のファームウェアとブートローダとのそれぞれを複数のメモリバンクの中のいずれかのメモリバンクに記録する第1記憶装置と、
前記メモリバンクに記録したファームウェアごとの判定情報を記録する第2記憶装置と
を有し、
複数の前記ファームウェアの中の第1ファームウェアは、前記制御部に起動されることにより、制御対象を制御し、さらに、外部装置からダウンロードされた第2ファームウェアを前記第1記憶装置に記録して前記第2ファームウェアの起動を選択して前記ブートローダを起動し、
前記第2ファームウェアは、前記制御部に起動されることにより、前記制御対象を制御し、さらに、前記第2ファームウェアの良否を判定し、前記第2ファームウェアが不良であると判定されたときに、前記判定情報が第1値を示すように前記判定情報を更新して前記ブートローダを起動し、
前記ブートローダは、前記制御部に起動されることにより、前記第2ファームウェアの起動が選択されている場合、前記第2ファームウェアの前記判定情報が前記第1値と異なる第2値を示すときに前記第2ファームウェアを起動し、前記判定情報が前記第1値を示すときに複数の前記ファームウェアの中の前記判定情報が前記第2値を示すファームウェアを起動する
電子機器。 - 前記第2ファームウェアは、
前記第2ファームウェアが正常であると判定されたときに、前記判定情報が前記第2値を示すように前記判定情報を更新し、前記ブートローダにより再度起動された場合で、前記判定情報が前記第2値を示すときに、前記第2ファームウェアの良否を判定しない
請求項1に記載の電子機器。 - 前記第2ファームウェアは、複数の観点で前記第2ファームウェアの良否をそれぞれ判定し、前記複数の観点のいずれか1つで不良であると判定されたときに前記判定情報が前記第1値を示すように前記判定情報を更新し、前記複数の観点の全部が正常であると判定されたときに前記判定情報が前記第2値を示すように前記判定情報を更新する
請求項2に記載の電子機器。 - 前記第2ファームウェアが起動されたときに設定されるウォッチドッグタイマをさらに備え、
前記ブートローダは、さらに、前記ウォッチドッグタイマがタイムアウトしたときに、前記制御部に起動される
請求項2または請求項3に記載の電子機器。 - 前記第2ファームウェアは、前記第2ファームウェアが正常であると判定されたときに、前記ウォッチドッグタイマを解除する
請求項4に記載の電子機器。 - 前記第2記憶装置は、試行情報をさらに記録し、
前記第1ファームウェアは、前記第2ファームウェアが起動される前に、前記判定情報が第3値を示すように前記判定情報を更新し、前記試行情報が第4値を示すように前記試行情報を更新し、
前記ブートローダは、
前記判定情報が前記第3値を示す場合で前記試行情報が前記第4値を示すときに、前記試行情報が第5値を示すように前記試行情報を更新して前記第2ファームウェアを起動し、
前記判定情報が前記第3値を示す場合で前記試行情報が前記第5値を示すときに、前記第1ファームウェアを起動する
請求項4または請求項5に記載の電子機器。 - カレンダータイマをさらに備え、
前記第2記憶装置は、起動回数をさらに記録し、
前記第2ファームウェアは、前記カレンダータイマを用いて導出される期間に前記第2ファームウェアが起動される回数を前記起動回数が示すように前記起動回数を更新し、前記起動回数が所定の値より大きいときに、前記判定情報が前記第1値を示すように前記判定情報を更新して前記ブートローダを起動する
請求項2〜請求項6のいずれか一項に記載の電子機器。 - 前記第2ファームウェアは、前記期間が経過したときに前記判定情報が前記第2値を示すように前記判定情報を更新し、前記判定情報が前記第2値を示すときに前記起動回数を更新しない
請求項7に記載の電子機器。 - 複数のファームウェアとブートローダとのそれぞれを第1記憶装置の複数のメモリバンクの中のいずれかのメモリバンクに記録し、
複数の前記ファームウェアの中の第1ファームウェアを起動することにより、制御対象を制御し、さらに、外部装置からダウンロードされた第2ファームウェアを前記第1記憶装置に記録して前記第2ファームウェアの起動を選択して前記ブートローダを起動し、
前記第2ファームウェアを起動することにより、前記制御対象を制御し、さらに、前記第2ファームウェアの良否を判定し、前記第2ファームウェアが不良であると判定されたときに、第2記憶装置に前記メモリバンクに記録したファームウェアごとに記録された前記第2ファームウェアの判定情報が第1値を示すように前記判定情報を更新して前記ブートローダを起動し、
前記ブートローダを起動することにより、前記第2ファームウェアの起動が選択されている場合、前記第2ファームウェアの前記判定情報が前記第1値と異なる、正常であると判定されたことを示す第2値を示すときに前記第2ファームウェアを起動し、前記判定情報が前記第1値を示すときに複数の前記ファームウェアの中の、前記判定情報が前記第2値を示すファームウェアを起動する
処理をコンピュータが実行することを特徴とするファームウェアアップデート方法。 - 複数のファームウェアの中の第1ファームウェアにより、制御対象を制御し、外部装置からダウンロードされた第2ファームウェアを第1記憶装置に記録して前記第2ファームウェアの起動を選択してブートローダを起動し、
前記第2ファームウェアにより、前記制御対象を制御し、前記第2ファームウェアの良否を判定し、前記第2ファームウェアが不良であると判定されたときに、前記第2ファームウェアの判定情報が第1値を示すように前記判定情報を更新して前記ブートローダを起動し、
前記第2ファームウェアの起動が選択されている場合、前記ブートローダにより、前記第2ファームウェアの前記判定情報が前記第1値と異なる、正常であると判定されたことを示す第2値を示すときに前記第2ファームウェアを起動し、前記判定情報が前記第1値を示すときに複数の前記ファームウェアの中の、前記判定情報が前記第2値を示すファームウェアを起動する
処理をコンピュータに実行させる
コンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016123577A JP6750340B2 (ja) | 2016-06-22 | 2016-06-22 | 電子機器、ファームウェアアップデート方法およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016123577A JP6750340B2 (ja) | 2016-06-22 | 2016-06-22 | 電子機器、ファームウェアアップデート方法およびコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017228077A JP2017228077A (ja) | 2017-12-28 |
JP6750340B2 true JP6750340B2 (ja) | 2020-09-02 |
Family
ID=60891655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016123577A Active JP6750340B2 (ja) | 2016-06-22 | 2016-06-22 | 電子機器、ファームウェアアップデート方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6750340B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3742295A1 (en) | 2019-05-23 | 2020-11-25 | NXP USA, Inc. | Automatic firmware rollback |
WO2021131753A1 (ja) * | 2019-12-24 | 2021-07-01 | 京セラ株式会社 | 通信機器、サーバ、及び制御方法 |
JP7362583B2 (ja) * | 2020-09-23 | 2023-10-17 | 株式会社東芝 | 情報処理装置 |
JP7398018B1 (ja) * | 2023-03-16 | 2023-12-13 | 新コスモス電機株式会社 | 警報器及び警報システム |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3250522B2 (ja) * | 1998-07-23 | 2002-01-28 | 日本電気株式会社 | ファームウエアの入れ替え装置及び入れ替え方法 |
JP2003140705A (ja) * | 2001-11-06 | 2003-05-16 | Yamatake Sangyo Systems Co Ltd | 多重化並列処理装置 |
JP2006185309A (ja) * | 2004-12-28 | 2006-07-13 | Net In Kyoto:Kk | 電子機器およびファームウェアの更新方法 |
JP2006244269A (ja) * | 2005-03-04 | 2006-09-14 | Daikin Ind Ltd | 設備管理装置、プログラム更新システム、設備管理プログラム更新方法、起動プログラム、および設備管理プログラム |
JP2008225763A (ja) * | 2007-03-12 | 2008-09-25 | Fujifilm Corp | ファームウェアの更新方法、プログラム及び電子機器 |
JP2008250390A (ja) * | 2007-03-29 | 2008-10-16 | Matsushita Electric Ind Co Ltd | サポート情報提示装置 |
TWI389029B (zh) * | 2008-02-27 | 2013-03-11 | Mstar Semiconductor Inc | 韌體更新裝置及方法 |
JP5045584B2 (ja) * | 2008-07-01 | 2012-10-10 | 株式会社デンソー | プログラム書き換え装置 |
JP2010198155A (ja) * | 2009-02-24 | 2010-09-09 | Fujitsu Ten Ltd | プログラム更新装置、プログラム更新方法、及び情報処理装置 |
JP5084853B2 (ja) * | 2010-02-23 | 2012-11-28 | 三菱電機株式会社 | ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム |
JP5516509B2 (ja) * | 2011-06-07 | 2014-06-11 | 株式会社デンソー | プログラム書込システム |
JP2014164677A (ja) * | 2013-02-27 | 2014-09-08 | Hitachi Ltd | 仕様検証支援装置、仕様検証支援方法及びプログラム |
JP2015146102A (ja) * | 2014-02-03 | 2015-08-13 | 株式会社ワコム | センサコントローラ、センサコントローラを備えたセンサデバイス、センサデバイスが搭載された電子機器およびアプリケーションソフトウェアの復旧方法 |
-
2016
- 2016-06-22 JP JP2016123577A patent/JP6750340B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017228077A (ja) | 2017-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6750340B2 (ja) | 電子機器、ファームウェアアップデート方法およびコンピュータプログラム | |
US9110843B2 (en) | Rack and method thereof for simultaneously updating basic input output systems | |
US9846616B2 (en) | Boot recovery system | |
US20190014128A1 (en) | Reliable and Secure Firmware Update with a Dynamic Validation for Internet of Things (IoT) Devices | |
JP5564956B2 (ja) | 情報処理装置及び情報処理装置のファームウェア更新方法 | |
JP2010541105A (ja) | ファームウェアイメージの更新および管理 | |
US20100199272A1 (en) | Updating firmware without disrupting service | |
JP2002333990A (ja) | プログラム更新装置およびプログラム更新方法 | |
KR100952585B1 (ko) | 운영체제(os) 자동복구기능을 갖는 임베디드 시스템 및운영체제 자동복구 방법 | |
EP2817725B1 (en) | Maintaining system firmware images remotely using a distribute file system protocol | |
US20160070562A1 (en) | System and method for over the air programming | |
JP2009169524A (ja) | 宅内設備機器用のネットワークシステム | |
US11106450B2 (en) | Information extraction apparatus, and automatic firmware update system and method for embedded system | |
JP2006244269A (ja) | 設備管理装置、プログラム更新システム、設備管理プログラム更新方法、起動プログラム、および設備管理プログラム | |
TW201502799A (zh) | 用於運算節點之可編程式件更新技術 | |
TWI514279B (zh) | 伺服器系統與韌體更新方法 | |
JP2010067115A (ja) | データ記憶システム、データ記憶方法 | |
US20230087221A1 (en) | Detection fields of view | |
CN109901117B (zh) | 一种雷达重启方法及装置 | |
TWI716969B (zh) | 經由資料塊段之復原影像下載技術 | |
CN116802635A (zh) | 电子装置bios更新 | |
JP3233274B2 (ja) | マイクロコンピュータのプログラムリブート方法およびプログラムリブート装置 | |
JP5670935B2 (ja) | 分散データ管理システムおよびその動作方法 | |
CN113452550A (zh) | 资讯撷取装置、嵌入式***装置的固件更新方法及*** | |
JP2004054421A (ja) | メモリ、情報処理装置、記憶方法および情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190311 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200428 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200618 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200714 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200727 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6750340 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |