IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニチコン株式会社の特許一覧

<>
  • 特開-プログラム更新装置 図1
  • 特開-プログラム更新装置 図2
  • 特開-プログラム更新装置 図3
  • 特開-プログラム更新装置 図4
  • 特開-プログラム更新装置 図5
  • 特開-プログラム更新装置 図6
  • 特開-プログラム更新装置 図7
  • 特開-プログラム更新装置 図8
  • 特開-プログラム更新装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023124575
(43)【公開日】2023-09-06
(54)【発明の名称】プログラム更新装置
(51)【国際特許分類】
   G06F 8/65 20180101AFI20230830BHJP
【FI】
G06F8/65
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022028414
(22)【出願日】2022-02-25
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 2022年1月11日にニチコン株式会社が株式会社トムス久喜倉庫事業所(埼玉県久喜市北青柳1464-1)に出荷 〔刊行物等〕 2022年1月12日にニチコン株式会社がセンコー株式会社奈良PDセンター(奈良県大和郡山市横田町141-1)に出荷
(71)【出願人】
【識別番号】000004606
【氏名又は名称】ニチコン株式会社
(74)【代理人】
【識別番号】110000475
【氏名又は名称】弁理士法人みのり特許事務所
(72)【発明者】
【氏名】角田 寿紀
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376CA52
5B376CA55
5B376CA56
5B376CA58
(57)【要約】
【課題】プログラムをバックアップする機能を備えていない外部機器のプログラムの更新が失敗した場合に、プログラムを自動的に修復できるプログラム更新装置を提供する。
【解決手段】プログラム更新装置であるマイコンシステムMは、領域2B、2Cのいずれか一方がバックアップ用FW(ファームウェア)を格納し、他方が更新用FWを格納する第1記憶部としてのコード用フラッシュメモリ2と、更新用FWを電子機器Dに送信することでFWを更新する制御部としてのマイコン1とを備える。マイコン1は、更新用FWによる電子機器DのFWの更新が成功したか否かを判定し、その更新が失敗したと判定したときは、バックアップ用FWを電子機器Dに送信することで電子機器DのFWを修復する一方、その更新が成功したと判定したときは、更新用FWを新しいバックアップ用FWとして扱う。
【選択図】図1
【特許請求の範囲】
【請求項1】
バックアップ用プログラムを格納するバックアップ領域と更新用プログラムを格納する更新領域とを有する第1記憶部と、
前記更新用プログラムを外部機器に送信することで当該外部機器のプログラムを更新する制御部とを備え、
前記制御部は、前記更新用プログラムによる前記外部機器のプログラムの更新が成功したか否かを判定し、当該更新が失敗したと判定したときは、前記バックアップ用プログラムを前記外部機器に送信することで前記外部機器のプログラムを修復する一方、当該更新が成功したと判定したときは、当該更新用プログラムを新しい前記バックアップ用プログラムとして扱う
ことを特徴とするプログラム更新装置。
【請求項2】
前記制御部は、前記バックアップ用プログラムによる前記外部機器のプログラムの修復が成功したか否かを判定し、当該修復が失敗したと判定したときは、新しい前記更新用プログラムを取得し、当該更新用プログラムを前記外部機器に送信することで当該外部機器のプログラムを修復する
ことを特徴とする請求項1に記載のプログラム更新装置。
【請求項3】
前記更新用プログラムによる前記外部機器のプログラム更新結果を格納する更新結果格納用領域を有する第2記憶部をさらに備えている
ことを特徴とする請求項1または2に記載のプログラム更新装置。
【請求項4】
前記第2記憶部は、前記バックアップ用プログラムによる前記外部機器のプログラム修復結果を格納する修復結果格納用領域をさらに有する
ことを特徴とする請求項3に記載のプログラム更新装置。
【請求項5】
前記第1記憶部は、前記制御部が動作するための自システム用プログラムを格納する自システム用領域をさらに有する
ことを特徴とする請求項1~4のいずれか一項に記載のプログラム更新装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部機器のプログラムを更新するプログラム更新装置に関するものである。
【背景技術】
【0002】
特許文献1には、プログラムであるファームウェアの実行によってシステム設定情報を更新することが可能な電子機器である情報処理装置が記載されている。この装置は、ファームウェアを実行する第1のプロセッサと、ファームウェアの更新を行う第2のプロセッサと、現状のファームウェアを格納する第1のメモリと、更新用のファームウェアを格納する第2のメモリと、第1および第2のメモリの一方を第1のプロセッサに接続するとともに他方を第2のプロセッサに接続するスイッチとを備えている。
【0003】
特許文献1に記載の構成では、第2のメモリが更新用のファームウェアの格納を失敗した場合(すなわちファームウェアの更新を失敗した場合)であっても、第1のメモリに更新前のファームウェアを格納しておくこと(すなわちバックアップ)ができるため、第1のプロセッサは、第1のメモリに格納されているファームウェアに従って動作することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011-90481号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、電子機器が備えるメモリの低容量化等の観点からは、電子機器は、プログラムであるファームウェアをバックアップするための構成を備えていないことが好ましい。しかし、そのような構成を採用したとき、電子機器のプログラムの更新が失敗した場合にプログラムを自動的に修復できないという問題があった。
【0006】
本発明は、上記事情に鑑みてなされたものであって、プログラムをバックアップする機能を備えていない外部機器のプログラムの更新が失敗した場合に、プログラムを自動的に修復できるプログラム更新装置を提供することを課題とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係るプログラム更新装置は、バックアップ用プログラムを格納するバックアップ領域と更新用プログラムを格納する更新領域とを有する第1記憶部と、前記更新用プログラムを外部機器に送信することで当該外部機器のプログラムを更新する制御部とを備え、前記制御部は、前記更新用プログラムによる前記外部機器のプログラムの更新が成功したか否かを判定し、当該更新が失敗したと判定したときは、前記バックアップ用プログラムを前記外部機器に送信することで前記外部機器のプログラムを修復する一方、当該更新が成功したと判定したときは、当該更新用プログラムを新しい前記バックアップ用プログラムとして扱う。
【0008】
この構成では、プログラムをバックアップする機能を備えていない外部機器のプログラムの更新が失敗した場合に、バックアップ用プログラムにより外部機器のプログラムを自動的に修復できる。さらに、制御部が外部機器のプログラムの更新を繰り返すとき、その更新が失敗した場合であっても、新しいバックアップ用プログラムにより外部機器のプログラムを復元できる。
【0009】
上記プログラム更新装置において、前記制御部は、前記バックアップ用プログラムによる前記外部機器のプログラムの修復が成功したか否かを判定し、当該修復が失敗したと判定したときは、新しい前記更新用プログラムを取得し、当該更新用プログラムを前記外部機器に送信することで当該外部機器のプログラムを更新することが好ましい。
【0010】
上記プログラム更新装置において、前記更新用プログラムによる前記外部機器のプログラム更新結果を格納する更新結果格納用領域を有する第2記憶部をさらに備えていることが好ましい。
【0011】
上記プログラム更新装置において、前記第2記憶部は、前記バックアップ用プログラムによる前記外部機器のプログラム修復結果を格納する修復結果格納用領域をさらに有することが好ましい。
【0012】
上記プログラム更新装置において、前記第1記憶部は、前記制御部が動作するための自システム用プログラムを格納する自システム用領域をさらに有することが好ましい。
【発明の効果】
【0013】
本発明によれば、プログラムをバックアップする機能を備えていない外部機器のプログラムの更新が失敗した場合に、プログラムを自動的に修復できるプログラム更新装置を提供することができる。
【図面の簡単な説明】
【0014】
図1】本発明の一実施形態に係るプログラム更新装置の概略構成図である。
図2】(A)は、同実施形態に係るプログラム更新処理を示すフローチャートであり、(B)は、プログラム更新装置の動作の一例を説明するためのタイミングチャートである。
図3】同実施形態に係るプログラム修復処理を示すフローチャートである。
図4】(A)および(B)は、プログラム更新装置の動作の一例を説明するためのタイミングチャートである。
図5】同実施形態に係るプログラム再修復処理を示すフローチャートである。
図6】プログラム更新装置の動作の一例を説明するためのタイミングチャートである。
図7】同実施形態に係る状態判定処理を示すフローチャートである。
図8】プログラム更新装置の動作の一例を説明するためのタイミングチャートである。
図9】変形例に係るプログラム更新装置の概略構成図である。
【発明を実施するための形態】
【0015】
図面を参照して、本発明の一実施形態に係るプログラム更新装置であるファームウェア更新装置を説明する。以下、本発明の「プログラム」であるファームウェアを「FW」、マイクロコンピュータを「マイコン」、バックアップを「BU」と略記する。
【0016】
図1に示すように、FW更新装置は、マイコンシステムMにより構成されている。マイコンシステムMは、マイコンシステムMにFWおよびFW情報を提供するコントローラCと、本発明の「外部機器」としての電子機器Dとに接続される。
【0017】
コントローラCは、マイコンシステムM用のFW、電子機器D用のFW、および、電子機器D用のFWに係るFW情報を、マイコンシステムMに送信する。なお、コントローラCからマイコンシステムMへのFWの送信完了後は、コントローラCとマイコンシステムMとの接続が切断されてもよい。
【0018】
マイコンシステムMは、本発明の「制御部」としてのマイコン1と、本発明の「第1記憶部」としてのコード用フラッシュメモリ2と、本発明の「第2記憶部」としてのデータ用フラッシュメモリ3とを備えている。
【0019】
マイコン1は、コード用フラッシュメモリ2に格納されている自システム用FWに従って動作することで、電子機器DのFWを更新するためのFW更新処理、電子機器DのFWを修復するためのFW修復処理、FW修復処理後に電子機器DのFWを修復するためのFW再修復処理、および電子機器Dの状態を判定するための状態判定処理を行う。マイコン1が行う各処理は、図2以降を参照して後述する。
【0020】
コード用フラッシュメモリ2は、NOR型フラッシュメモリにより構成されたファームウェア格納用メモリである。コード用フラッシュメモリ2は、3つに分けられた領域2A,2B,2Cを有しており、データの読み出しと書き込みとを同時に処理できるように構成されている。
【0021】
本発明の「自システム用領域」である領域2Aは、コントローラCから受信した自システム用FWを格納する。コントローラCによって領域2Aに格納されているFWが書き換えられることで、マイコンシステムMのFWが更新可能に構成されている。
【0022】
領域2B,2Cは、コントローラCから受信した外部機器用FWを格納する。領域2B,2Cのうち一方は、電子機器DのBU用FWを格納し、他方は、更新用FWを格納する。以下、領域2B,2Cのうち、BU用FWを格納する方を「バックアップ領域(BU領域)X1」といい、更新用FWを格納する方を「更新領域X2」という。領域2B,2Cの一方のみに外部機器用FWが格納されている場合は、その外部機器用FWがBU用FWである。また、領域2B,2Cの双方に外部機器用FWが格納されている場合は、インクリメントされているIDを有する外部機器用FWが更新用FWであり、インクリメントされていないIDを有する外部機器用FWがBU用FWである。これらの外部機器用FWを区別するためのIDは、後述するFW情報に含まれている。
【0023】
データ用フラッシュメモリ3は、NAND型フラッシュメモリにより構成されたデータ格納用メモリである。データ用フラッシュメモリ3は、3つに分けられたブロック3A,3B,3Cを有している。
【0024】
本発明の「更新結果格納用領域」であるブロック3A,3Bは、外部機器用FWに係るFW情報を格納する。ブロック3A,3Bのうち一方は、BU用FW(すなわちBU領域X1に格納した外部機器用FW)に係るFW情報であるBU用FW情報を格納し、他方は、更新用FW(すなわち更新領域X2に格納した外部機器用FW)に係るFW情報である更新用FW情報を格納する。以下、ブロック3A,3Bのうち、BU用FW情報を格納する方を「第1ブロックY1」といい、更新用FW情報を格納する方を「第2ブロックY2」という。
【0025】
ブロック3A,3Bに格納されるFW情報には、外部機器用FW毎に関連付けられているID、格納場所、バージョン、チェックサム、およびサイズに係る情報を格納する。IDは、外部機器用FWを識別するための識別番号であり、例えば0x0000~0xFFFFの範囲に含まれる数値であって、コード用フラッシュメモリ2への外部機器用FWの書き込み(格納)毎にインクリメントされ、0xFFFFに到達後は0x0000に戻される。格納場所は、コード用フラッシュメモリ2で外部機器用FWを格納している領域であり、バージョンは、外部機器用FWのバージョン番号であり、チェックサムは、外部機器用FWの誤り訂正符号であり、サイズは、外部機器用FWのプログラムサイズである。
【0026】
BU用FW情報を格納していないブロック3A,3Bのいずれか(すなわち第2ブロックY2)は、常に更新用FW情報を格納するものではなく、マイコン1によるFW更新処理時から更新用FW情報を格納する。マイコン1によるFW更新処理で電子機器DのFWの更新が成功した場合は、既存のBU用FW情報が消去されて更新用FW情報が新しいBU用FW情報となるように構成されており、マイコン1は、更新用FWを新しいBU用FWとして扱う。すなわち、第2ブロックY2が第1ブロックY1となり、更新領域X2がBU領域X1となる。一方、マイコン1によるFW更新処理で電子機器DのFWの更新が失敗した場合は、BU用FW情報および更新用FW情報のいずれも消去されないように構成されている。こうして、ブロック3A,3Bは、更新用FWによる電子機器DのFWの更新が成功した場合は、そのFW更新結果として新しいBU用FW情報のみを格納し、更新用FWによる電子機器DのFWの更新が失敗した場合は、そのFW更新結果としてBU用FW情報および更新用FW情報の双方を格納する。
【0027】
また、マイコン1によるFW修復処理で電子機器DのFWの修復が成功した場合は、更新用FW情報が消去されるように構成されている。さらに、マイコン1によるFW再修復処理で電子機器DのFWの修復が成功した場合は、FW更新処理で電子機器DのFWの更新が成功した場合と同様に、既存のBU用FW情報が消去されて更新用FW情報が新しいBU用FW情報となるように構成されており、マイコン1は、更新用FWを新しいBU用FWとして扱う。
【0028】
本発明の「修復結果格納用領域」であるブロック3Cは、通常時はブランク状態であるが、マイコン1によるFW更新処理で電子機器DのFWの更新が失敗し、かつ、マイコン1によるFW修復処理で電子機器DのFWの修復が失敗した場合に、失敗情報としてFW更新処理で電子機器Dに送信された更新用FWのIDを格納する。こうして、ブロック3Cは、BU用FWによる電子機器DのFWの修復が失敗した場合は、そのFW修復結果として更新用FWのIDを格納する。
【0029】
電子機器Dは、マイコンシステムMから電子機器D用のFWを受信する。電子機器Dは、受信したFWを格納するメモリ(図示略)を備えており、そのメモリに格納されたFWに従って動作する。マイコンシステムMが電子機器Dのメモリに格納されているFWを書き換えることで、電子機器DのFWが更新可能に構成されている。電子機器Dは、自身のFWをバックアップする機能を備えていない。
【0030】
(FW更新処理)
次に、図2(A)を参照して、マイコン1が実行するFW更新処理を説明する。
図2(A)に示すように、まず、マイコン1は、電子機器D用のFWを外部機器用FWとしてコントローラCから受信し、領域2B,2CのうちBU用FWを格納していない領域に、受信した外部機器用FWを更新用FWとして格納させる(ステップS1)。また、マイコン1は、ステップS1で受信した外部機器用FWに係るFW情報を更新用FW情報としてコントローラCから受信し、ブロック3A,3BのうちBU用FW情報を格納していないブロックに更新用FW情報を格納させる。
【0031】
次いで、マイコン1は、マイコンシステムMと電子機器Dが接続されている任意のタイミングで、更新領域X2に格納している更新用FWを電子機器Dに送信し、電子機器DのFWの更新を開始する(ステップS2)。
【0032】
そして、マイコン1は、更新用FWの送信を完了し、更新用FWにより電子機器DのFWの更新が成功したか否かを判定する(ステップS3)。マイコン1は、更新用FWにより電子機器DのFWの更新が成功したと判定した場合(ステップS3:YES)、第1ブロックY1からBU用FW情報を削除して、FW更新処理を終了する(ステップS4)。
【0033】
一方、マイコン1は、更新用FWにより電子機器DのFWの更新が失敗したと判定した場合(ステップS3:NO)、第1ブロックY1からBU用FW情報を削除することなくFW更新処理を終了する。
【0034】
図2(B)を参照して、FW更新処理時に各フラッシュメモリ2,3が格納するFWおよび情報を説明する。以下の説明では、FW更新処理の開始前に、領域2BにBU用FWが格納され、かつ、ブロック3AにBU用FW情報が格納されていることを前提とする。
【0035】
図2(B)に示すように、マイコン1が更新用FWおよび更新用FW情報の受信を時刻T1で開始すると、BU用FWを格納していない領域2Cへの更新用FWの格納が開始される。そして、更新用FWおよび更新用FW情報の受信が完了し、領域2Cへの更新用FWの格納が時刻T2で完了すると、BU用FW情報を格納していないブロック3Bに更新用FW情報が格納される。その直後に、更新領域X2である領域2Cから電子機器Dへの更新用FWの送信が開始され、更新用FWの送信が完了して電子機器DのFWの更新が時刻T3で成功すると、第1ブロックY1であるブロック3Aに格納されているBU用FW情報が消去され、領域2Bに無効FWが格納された状態となる。その結果、ブロック3Bに格納されている更新用FW情報が新しいBU用FW情報となり、領域2Cに格納されている更新用FWが新しいBU用FWとなる。したがって、時刻T3後は、領域2CがBU領域X1として機能し、領域2Bが更新領域X2として機能する。
【0036】
(FW修復処理)
次に、図3を参照して、マイコン1が実行するFW修復処理を説明する。
図3に示すように、マイコン1は、FW更新処理で電子機器DのFWの更新を失敗したと判定した場合、マイコンシステムMと電子機器Dが接続されている任意のタイミングで、BU領域X1に格納しているBU用FWを電子機器Dに送信し、電子機器DのFWの修復を行う(ステップS11)。
【0037】
そして、マイコン1は、BU用FWの送信を完了し、BU用FWにより電子機器DのFWの修復が成功したか否かを判定する(ステップS12)。マイコン1は、BU用FWにより電子機器DのFWの修復が成功したと判定した場合(ステップS12:YES)、第2ブロックY2から更新用FW情報を削除して、FW修復処理を終了する(ステップS13)。
【0038】
一方、マイコン1は、BU用FWによる電子機器DのFWの修復が失敗したとマイコン1が判定した場合(ステップS12:NO)、FW更新処理でFWの更新に失敗した更新用FWのIDをブロック3Cに格納させ(ステップS14)、第2ブロックY2から更新用FW情報を削除することなく、FW修復処理を終了する。
【0039】
図4(A)および(B)を参照して、FW更新処理時およびFW修復処理時に各フラッシュメモリ2,3が格納するFWおよび情報を説明する。なお、上記のFW更新処理時の説明と同様に、領域2BにBU用FWが格納され、かつ、ブロック3AにBU用FW情報が格納されていることを前提とし、上記のFW更新処理に係る説明は簡略化する。
【0040】
図4(A)に示すように、マイコン1がFW更新処理を開始すると、時刻T2の直後に、領域2Cから電子機器Dへの更新用FWの送信が開始される。更新用FWの送信の完了後に電子機器DのFWの更新が失敗したと時刻T5で判定されると、BU領域X1である領域2Bから電子機器DへのBU用FWの送信が開始され、BU用FWの送信が完了して電子機器DのFWの修復が時刻T6で成功すると、第2ブロックY2であるブロック3Bに格納されている更新用FW情報が消去され、領域2Cには無効FWが格納された状態となる。したがって、時刻T6後は、FW更新処理の開始時と同様に、領域2BがBU領域X1として機能し、領域2Cが更新領域X2として機能する。
【0041】
また、図4(B)に示すように、更新用FWの送信の完了後に電子機器DのFWの更新が失敗したと時刻T5で判定された後、BU用FWの送信の完了後に電子機器DのFWの修復が失敗したと時刻T7で判定されると、領域2Cに格納されている更新用FWのIDがブロック3Cに格納される。
【0042】
(FW再修復処理)
次に、図5を参照して、マイコン1が実行するFW再修復処理を説明する。
図5に示すように、マイコン1は、FW修復処理で電子機器DのFWの修復を失敗したと判定した場合、第2ブロックY2から更新用FW情報を削除するとともに、ステップS1と同様にして、外部機器用FWをコントローラCから受信し、更新領域X2に、受信した外部機器用FWを新しい更新用FWとして格納させる(ステップS21)。また、マイコン1は、ステップS21で受信した外部機器用FWに係るFW情報を新しい更新用FW情報としてコントローラCから受信し、第2ブロックY2に新しい更新用FW情報を格納させる。すなわち、ステップS21では、マイコン1は、新しい更新用FWおよび新しい更新用FW情報をコントローラCから取得する。このとき、新しい更新用FW情報に含まれる更新用FWのIDは、FW更新処理でFWの更新に失敗した更新用FWのIDからインクリメントされたものである。
【0043】
次いで、マイコン1は、古い更新用FWのID(すなわちFW修復処理のステップS14で格納した更新用FWのID)をブロック3Cから削除し(ステップS22)、ステップS2と同様に任意のタイミングで、更新領域X2に格納している新しい更新用FWを電子機器Dに送信し、電子機器DのFWの修復を開始する(ステップS23)。
【0044】
そして、マイコン1は、新しい更新用FWにより電子機器DのFWの修復(更新)が成功したか否かを判定する(ステップS24)。マイコン1は、新しい更新用FWにより電子機器DのFWの修復が成功したと判定した場合(ステップS24:YES)、BU用FW情報を削除して、FW再修復処理を終了する(ステップS25)。
【0045】
一方、マイコン1は、新しい更新用FWにより電子機器DのFWの修復が失敗したと判定した場合(ステップS24:NO)、第1ブロックY1からBU用FW情報を削除することなく、ブロック3Cに新しい更新用FWのIDを格納し、FW再修復処理を終了する(ステップS26)。
【0046】
図6を参照して、FW再修復時に各フラッシュメモリ2,3が格納するFWおよび情報を説明する。以下の説明では、FW再修復処理の開始前に、領域2BにBU用FWが格納され、領域2Cに更新用FWが格納され、ブロック3AにBU用FW情報が格納され、ブロック3Bに更新用FW情報が格納され、ブロック3Cに更新用FWのIDが格納されていることを前提とする。
【0047】
図6に示すように、マイコン1が新しい更新用FWおよび新しい更新用FW情報の受信を時刻T8で開始すると、時刻T8前にブロック3Bに格納されている更新用FW情報が消去され、領域2Cへの新しい更新用FWの格納が開始される。そして、新しい更新用FWおよび新しい更新用FW情報の受信が完了し、領域2Cへの新しい更新用FWの格納が時刻T9で完了すると、BU用FW情報を格納していないブロック3Bに新しい更新用FW情報が格納される。また、ブロック3Bへの新しい更新用FW情報の格納完了後に、ブロック3Cに格納されている古い更新用FWのIDが時刻T10で消去される。その直後、更新領域X2である領域2Cから電子機器Dへの新しい更新用FWの送信が開始され、新しい更新用FWの送信が完了して電子機器DのFWの修復(更新)が時刻T11で成功すると、第1ブロックY1であるブロック3Aに格納されているBU用FW情報が消去され、領域2Bに無効FWが格納された状態となる。その結果、ブロック3Bに格納されている更新用FW情報が新しいBU用FW情報となり、領域2Cに格納されている更新用FWが新しいBU用FWとなる。
【0048】
(状態判定処理)
次に、図7を参照して、マイコンシステムMの起動時にマイコン1が実行する状態判定処理を説明する。状態判定処理は、電子機器Dの状態が、正常に動作する正常状態であるか否かを判定するとともに、マイコンシステムM単体の動作により電子機器DのFWの更新も修復も不可能な異常状態であるか、マイコンシステムM単体の動作により電子機器DのFWの更新または修復が可能な回復可能状態であるかを判定する処理である。
【0049】
図7に示すように、まず、マイコン1は、ブロック3Cが更新用FWのIDを格納しているか否かを判定する(ステップS31)。マイコンシステムMの起動時にブロック3Cに更新用FWのIDが格納されている場合は、FW修復処理におけるステップS14からFW再修復処理におけるステップS22までの間(例えば図4(B)中の時刻T7後かつ図6中のT10前)に電源遮断が発生し、マイコンシステムMがシャットダウンした場合である。
【0050】
マイコン1は、ブロック3Cが更新用FWのIDを格納していないとステップS31で判定した場合(ステップS31:NO)、ブロック3A,3BがBU用FW情報と更新用FW情報を格納しているか否かを判定する(ステップS32)。さらに、マイコン1は、ブロック3A,3BがBU用FW情報と更新用FW情報を格納していないと判定した場合(ステップS32:NO)、ブロック3A,3BのいずれかがBU用FW情報を格納しているか否かを判定する(ステップS33)。
【0051】
マイコン1は、ブロック3A,3BがBU用FW情報と更新用FW情報を格納しているとステップS32で判定した場合(ステップS32:YES)、更新用FWまたはBU用FWを送信することで電子機器DのFWの更新または修復できる状態であるため、電子機器Dが回復可能状態であると判定する(ステップS34)。すなわち、ブロック3A,3BがBU用FW情報と更新用FW情報を格納しているとステップS32で判定される場合は、FW更新中(例えば、図2(B)中の時刻T2後かつ時刻T3前、図4中の時刻T2後かつ時刻T5前、または、図6中の時刻T10後かつ時刻T11前)またはFW修復中(例えば、図4中の時刻T5後かつ時刻T6,T7前)に電源遮断が発生した場合であり、マイコンシステムM単体の動作により電子機器DのFWの更新または修復ができる状態である。この場合、マイコン1は、更新用FWの送信を自動的に開始することで、電子機器DのFWの更新を行う。
【0052】
また、マイコン1は、ブロック3A,3BのいずれかがBU用FW情報を格納しているとステップS33で判定した場合(ステップS33:YES)、FW更新処理またはFW修復処理が完了している状態であるため、電子機器Dが正常状態であると判定する(ステップS35)。
【0053】
また、マイコン1は、ブロック3A,3BのいずれもBU用FW情報を格納していないとステップS33で判定した場合(ステップS33:NO)、FW更新処理およびFW修復処理を行うことができない状態であるため、電子機器Dが異常状態であると判定する(ステップS36)。
【0054】
一方、マイコン1は、ブロック3Cが更新用FWのIDを格納しているとステップS31で判定した場合(ステップS31:YES)、ステップS32と同様に、ブロック3A,3BがBU用FW情報と更新用FW情報を格納しているか否かを判定する(ステップS37)。さらに、マイコン1は、ブロック3A,3BがBU用FW情報と更新用FW情報を格納していると判定した場合(ステップS37:YES)、ブロック3A,3Bのいずれかが新しい更新用FW情報を格納しているか否かを判定する(ステップS38)。ここでいう、新しい更新用FW情報とは、ブロック3Cに格納されているIDに対してインクリメントされたIDを有する更新用FW情報である。
【0055】
マイコン1は、ブロック3A,3BがBU用FW情報と更新用FW情報を格納していないとステップS37で判定した場合(ステップS37:NO)、FW再修復処理において新しい更新用FWおよび新しい更新用FW情報の受信を完了していない状態であるため、電子機器Dが異常状態であると判定する(ステップS39)。すなわち、ブロック3A,3BがBU用FW情報と更新用FW情報を格納していないとステップS37で判定される場合は、FW再修復処理において更新用FW情報を削除してから新しい更新用FW情報が格納されるまでの間(例えば図6中の時刻T8後かつ時刻T9前)に電源遮断が発生した場合であり、マイコンシステムM単体の動作により電子機器DのFWの更新または修復ができない状態である。この場合、マイコン1は、コントローラCと接続された状態でFW再修復処理を開始することで、電子機器DのFWの修復を行う。
【0056】
また、マイコン1は、ブロック3A,3Bのいずれも新しい更新用FW情報を格納していないとステップS38で判定した場合(ステップS38:NO)、ステップS39と同様に、電子機器Dが異常状態であると判定する(ステップS40)。ブロック3A,3Bのいずれも新しい更新用FW情報を格納していないとステップS38で判定される場合は、FW修復処理が完了してからFW再修復処理において更新用FW情報が削除されるまでの間(例えば図6中の時刻T8前)に電源遮断が発生した場合であり、マイコンシステムM単体の動作により電子機器DのFWの更新または修復ができない状態である。この場合、マイコン1は、コントローラCと接続された状態でFW再修復処理を開始することで、電子機器DのFWの修復を行う。
【0057】
また、マイコン1は、ブロック3A,3Bのいずれかが新しい更新用FW情報を格納しているとステップS38で判定した場合(ステップS38:YES)、FW再修復処理において新しい更新用FWおよび新しい更新用FW情報の受信を完了している状態であるため、電子機器Dが回復可能状態であると判定する(ステップS41)。ブロック3A,3Bのいずれかが新しい更新用FW情報を格納しているとステップS38で判定される場合は、FW再修復処理において新しい更新用FW情報を受信してからブロック3Cに格納されている更新用FWのIDが消去されるまでの間(例えば図6中の時刻T9後かつ時刻T10前)に電源遮断が発生した場合であり、マイコンシステムM単体の動作により電子機器DのFWの更新ができる状態である。この場合、マイコン1は、ブロック3Cから更新用FWのIDを除去した後に、新しい更新用FWの送信を自動的に開始することで、電子機器DのFWの更新または修復を行う。
【0058】
図8を参照して、ステップS34後、および、ステップS41後かつブロック3Cからの更新用FWのID消去後に、電子機器DのFWの更新または修復が行われる際の各フラッシュメモリ2,3が格納するFWおよび情報を説明する。以下の説明では、領域2BにBU用FWが格納され、領域2Cに更新用FWが格納され、ブロック3AにBU用FW情報が格納され、ブロック3Bに更新用FW情報が格納されていることを前提とする。
【0059】
図8に示すように、電源遮断が解消されている任意の時刻T13に、更新領域X2である領域2Cから電子機器Dへの更新用FWの送信が開始され、更新用FWの送信が完了して電子機器DのFWの更新が時刻T14で成功すると、第1ブロックY1であるブロック3Aに格納されているBU用FW情報が消去され、領域2Bに無効FWが格納された状態となる。こうして、上記のFW更新処理と同様の処理が行われる。この処理で電子機器DのFWの更新が失敗したと判定した場合、マイコン1は、上記のFW修復処理を行うことで、電子機器DのFWを修復する。
【0060】
本実施形態では次の効果が得られる。
(1)マイコンシステムM(プログラム更新装置)は、BU用FW(バックアップ用プログラム)を格納するBU領域X1と更新用FW(更新用プログラム)を格納する更新領域X2とを有するコード用フラッシュメモリ2(第1記憶部)と、更新用FWを電子機器D(外部機器)に送信することで電子機器DのFW(プログラム)を更新するマイコン1(制御部)とを備えている。そして、マイコン1は、更新用FWによる電子機器DのFWの更新が成功したか否かを判定し、更新が失敗したと判定したときは、BU用FWを電子機器Dに送信することで電子機器DのFWを修復する。このため、FWをバックアップする機能を備えていない電子機器DのFWの更新が失敗した場合に、BU用FWにより電子機器DのFWを自動的に修復できる。さらに、マイコン1は、更新が成功したと判定したときは、更新用FWを新しいBU用FWとして扱う。このため、マイコン1が電子機器DのFWの更新を繰り返すとき、その更新が失敗した場合であっても、新しいBU用FWにより電子機器DのFWを復元(修復)できる。
【0061】
(2)マイコン1は、BU用FWによる電子機器DのFWの修復が成功したか否かを判定し、修復が失敗したと判定したときは、新しい更新用FWを取得し、その更新用FWを電子機器Dに送信することで電子機器DのFWを修復する。このため、BU用FWによる電子機器DのFWの修復が失敗した場合には、新しい更新用FWにより電子機器DのFWを自動的に修復できる。
【0062】
(3)マイコンシステムMは、更新用FWによる電子機器DのFW更新結果(プログラム更新結果)を格納するブロック3A,3B(更新結果格納用領域)を有するデータ用フラッシュメモリ3(第2記憶部)をさらに備えている。このため、マイコンシステムMが電源遮断等の理由でシャットダウンした場合であっても、マイコン1は、ブロック3A,3Bに格納されているFW更新結果(すなわちFW情報)に基づいて、シャットダウン前に電子機器DのFWの更新が成功したか否かを判定できる。
【0063】
(4)データ用フラッシュメモリ3は、BU用FWによる電子機器DのFW修復結果を格納するブロック3C(修復結果格納用領域)をさらに有する。このため、マイコンシステムMが電源遮断等の理由でシャットダウンした場合であっても、マイコン1は、ブロック3Cに格納されているFW修復結果に基づいて、シャットダウン前に電子機器DのFWの修復が成功したか否かを判定できる。
【0064】
(5)コード用フラッシュメモリ2は、マイコン1が動作するための自システム用プログラムを格納する領域2A(自システム用領域)をさらに有する。このため、マイコン1は、コントローラCとマイコンシステムMとが接続されていない状態であっても動作できるため、マイコンシステムM単体で、電子機器DのFWの更新および修復が可能である。
【0065】
本発明は、上記実施形態に限定されるものではなく、上記構成を変更することもできる。例えば、以下のように変更して実施することもでき、以下の変更を組み合わせて実施することもできる。
【0066】
(変形例1)
図9に示すように、コード用フラッシュメモリ2は、切り替え可能な複数のバンク2a,2bを備えていてもよい。この構成によれば、アドレスバスのサイズを小さくできるとともに、マイコンシステムMの冗長化を図ることができる。
【0067】
変形例1に係る複数のバンク2a,2bは、それぞれ、領域2A,2B,2Cを有しており、バンク2a,2bは、それらの一方から読み出し処理が可能なとき、他方に書き込み処理が可能に構成されている。この構成によれば、マイコン1は、バンク2a,2bの一方(以下、「第1バンクZ1」という)の領域2Aに格納している自システム用FWに従って動作するときは、他方(以下、「第2バンクZ2」という)の領域2A~2Cに自システム用FWおよび外部機器用FWを格納する。その後、マイコン1は、第2バンクZ2の領域2Aに格納されている自システム用FWに従って動作することで、第2バンクZ2の領域2B,2Cに格納されている外部機器用FWを用いて電子機器DのFWの更新および修復を行うこと、ならびに、第1バンクZ1の領域2A~2Cに自システム用FWおよび外部機器用FWを格納することができる。
【0068】
(変形例2)
外部機器用FWが格納される領域は、2つに分けられた領域2B,2Cに限定されない。すなわち、コード用フラッシュメモリ2が有する外部機器用FWを格納するための領域を増やすこともできる。また、外部機器用FWを格納するための領域数に応じて、データ用フラッシュメモリ3が有するブロックを増やすこともできる。また、変形例1に係るバンクを増やすこともできる。
【符号の説明】
【0069】
C コントローラ
D 電子機器(外部機器)
M マイクロコンピュータシステム(プログラム更新装置)
1 マイクロコンピュータ(制御部)
2 コード用フラッシュメモリ(第1記憶部)
2A 領域(自システム用領域)
2B,2C 領域(バックアップ領域、更新領域)
2a,2b バンク
3 データ用フラッシュメモリ(第2記憶部)
3A,3B ブロック(更新結果格納用領域)
3C ブロック(修復結果格納用領域)
図1
図2
図3
図4
図5
図6
図7
図8
図9