JP2020017315A - 制御方法およびそれを利用した通信装置 - Google Patents
制御方法およびそれを利用した通信装置 Download PDFInfo
- Publication number
- JP2020017315A JP2020017315A JP2019192147A JP2019192147A JP2020017315A JP 2020017315 A JP2020017315 A JP 2020017315A JP 2019192147 A JP2019192147 A JP 2019192147A JP 2019192147 A JP2019192147 A JP 2019192147A JP 2020017315 A JP2020017315 A JP 2020017315A
- Authority
- JP
- Japan
- Prior art keywords
- area
- memory
- program
- application program
- written
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
【課題】プログラムを安全に更新する技術を提供する。【解決手段】プログラム用メモリ30は、ブート領域、アプリケーション領域62を有する。追加メモリ24は、アプリケーション領域に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能である。データ用メモリ32は更新フラグを記憶する。通信インターフェイス34は、追加メモリ24に書き込むべきアプリケーションプログラムを受信する。制御部36は、ブート領域に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した更新フラグが不存在を示していれば、アプリケーション領域に書き込まれたアプリケーションプログラムを起動する。【選択図】図6
Description
本発明は、制御技術に関し、特にアプリケーションプログラムを更新する制御方法およびそれを利用した通信装置に関する。
携帯通信端末は、通信方式に対応したプログラムを起動することによって、通信を実行する。このプログラムは、エアーダウンロードによって更新される。つまり、携帯通信端末は、更新用データをダウンロードし、更新用データを使用して旧バージョンのプログラムを新バージョンのプログラムに書き換える(例えば、特許文献1参照)。
携帯電話通信におけるプログラムの規模は、一般的に大きいので、旧バージョンと新バージョンとの差分である更新用データだけがダウンロードされる。そのため、更新用データの取得に失敗するような場合であっても、旧バージョンのプログラムを使用することによって、携帯通信端末は通信を続行できる。一方、短距離間で小電力で動作するような無線通信装置でも、通信を実行するためにプログラムを起動させるが、そのプログラムの規模は、携帯電話通信でのプログラム規模と比較して小さい場合が多い。無線通信装置は、処理を簡易にするために、新バージョンのプログラムをダウンロードし、それを旧バージョンのプログラムに置き換える。この場合、旧バージョンのプログラムが消去されてしまうので、新バージョンのプログラムの取得に失敗すると、無線通信装置は通信を実行できなくなる。
本発明はこうした状況に鑑みなされたものであり、その目的は、プログラムを安全に更新する技術を提供することにある。
上記課題を解決するために、本発明のある態様の通信装置は、ブートプログラムを書き込むためのブート領域、アプリケーションプログラムを書き込み可能なアプリケーション領域を有するプログラム用メモリと、プログラム用メモリにおけるアプリケーション領域に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリと、追加メモリにおける更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグを記憶するデータ用メモリと、追加メモリに書き込むべきアプリケーションプログラムを受信する受信部と、プログラム用メモリにおけるブート領域に書き込まれたブートプログラムを実行しながら、データ用メモリに記憶した更新フラグが不存在を示していれば、プログラム用メモリにおけるアプリケーション領域に書き込まれたアプリケーションプログラムを起動する制御部とを備える。制御部は、受信部において受信したアプリケーションプログラムを追加メモリに書き込んでから、データ用メモリに記憶した更新フラグを存在を示すように変更して、再起動させ、制御部は、プログラム用メモリにおけるブート領域に書き込まれたブートプログラムを実行しながら、データ用メモリに記憶した更新フラグが存在を示していれば、追加メモリに書き込まれたアプリケーションプログラムをプログラム用メモリにおけるアプリケーション領域にコピーしてから、データ用メモリに記憶した更新フラグを不存在を示すように変更して、再起動させる。
本発明の別の態様は、制御方法である。この方法は、ブートプログラムを書き込むためのブート領域、アプリケーションプログラムを書き込み可能なアプリケーション領域を有するプログラム用メモリと、プログラム用メモリにおけるアプリケーション領域に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリと、追加メモリにおける更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグを記憶するデータ用メモリと、追加メモリに書き込むべきアプリケーションプログラムを受信する受信部とを備える通信装置における制御方法であって、プログラム用メモリにおけるブート領域に書き込まれたブートプログラムを実行しながら、データ用メモリに記憶した更新フラグが不存在を示していれば、プログラム用メモリにおけるアプリケーション領域に書き込まれたアプリケーションプログラムを起動するステップと、受信部において受信したアプリケーションプログラムを追加メモリに書き込んでから、データ用メモリに記憶した更新フラグを存在を示すように変更して、再起動させるステップと、プログラム用メモリにおけるブート領域に書き込まれたブートプログラムを実行しながら、データ用メモリに記憶した更新フラグが存在を示していれば、追加メモリに書き込まれたアプリケーションプログラムをプログラム用メモリにおけるアプリケーション領域にコピーしてから、データ用メモリに記憶した更新フラグを不存在を示すように変更して、再起動させるステップと、を備える。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、プログラムを安全に更新できる。
(実施例1)
本発明を具体的に説明する前に、概要を述べる。本発明の実施例1は、短距離/小電力機器に対応した通信装置に関する。短距離/小電力機器は、低消費電力であり、かつ長期間の電池動作が可能で免許不要な無線技術を使用する。このような通信装置は、火災警報機等のホームセキュリティ、ホームオートメーション等に使用される。また、通信装置は、携帯電話端末と異なり、OS(オペレーティングシステム)やファイルシステムを持たない。一般的に、短距離/小電力機器における通信装置では、製造時に、マイクロコントロールユニット(MCU)の不揮発性メモリにアプリケーションプログラムが書き込まれ、出荷後のアプリケーションプログラムの変更には対応していない。しかしながら、通信手順の変更や、システムへ新たな通信装置をアドオンするために、出荷後にアプリケーションプログラムを更新することが求められる。
本発明を具体的に説明する前に、概要を述べる。本発明の実施例1は、短距離/小電力機器に対応した通信装置に関する。短距離/小電力機器は、低消費電力であり、かつ長期間の電池動作が可能で免許不要な無線技術を使用する。このような通信装置は、火災警報機等のホームセキュリティ、ホームオートメーション等に使用される。また、通信装置は、携帯電話端末と異なり、OS(オペレーティングシステム)やファイルシステムを持たない。一般的に、短距離/小電力機器における通信装置では、製造時に、マイクロコントロールユニット(MCU)の不揮発性メモリにアプリケーションプログラムが書き込まれ、出荷後のアプリケーションプログラムの変更には対応していない。しかしながら、通信手順の変更や、システムへ新たな通信装置をアドオンするために、出荷後にアプリケーションプログラムを更新することが求められる。
そのため、OSやファイルシステムを有さない通信装置においても、簡易に、かつ安全にアプリケーションプログラムを更新するために、本実施例では、次の処理を実行する。通信装置は、MCUの不揮発性メモリに、アプリケーションプログラムを書き込み可能な2つの領域を設ける。2つの領域は、例えば、第1領域、第2領域とされる。また、通信装置は、MCUのEEPROM(Electrically Erasable Programmable Read−Only Memory)に、領域選択フラグを記憶する。領域選択フラグでは、第1領域、第2領域のいずれか一方が示される。
通信装置におけるMCUのCPU(Central Processing Unit)は、起動する際に領域選択フラグを参照し、領域選択フラグにおいて示されている方の領域に書き込まれたアプリケーションプログラムを起動する。一方、CPUは、更新用のアプリケーションプログラムを受信した場合に、領域選択フラグにおいて示されていない方の領域に、更新用のアプリケーションプログラムを書き込む。書込終了後、CPUは、領域選択フラグを変更してから、通信装置を再起動させる。
図1は、本発明の実施例1に係る通信システム100の構成を示す。通信システム100は、通信装置10、基地局装置12、ネットワーク14、サーバ装置16を含む。通信装置10と基地局装置12とは、短距離/小電力機器における無線通信方式によって、双方向の通信を実行する。通信装置10と基地局装置12は、例えば、サービス受給者の家屋内に設置される。基地局装置12は、ネットワーク14を介してサーバ装置16に接続される。ネットワーク14は、例えば、インターネット等であり、有線回線であってもよく、携帯電話網のような無線回線であってもよい。サーバ装置16は、サービス事業者側に設置される。
このような構成によって、通信装置10は、基地局装置12、ネットワーク14を介してサーバ装置16と通信する。例えば、通信装置10が火災報知機である場合、通信装置10は、火災の検知によって生成された警報をサーバ装置16に送信する。また、サーバ装置16は、通信装置10における更新用のアプリケーションプログラムを通信装置10に送信する。以下では、更新用のアプリケーションプログラムを受信した場合における通信装置10の処理を説明する。
図2は、通信装置10の構成を示す。通信装置10は、マイクロコントロールユニット20、通信部22を含む。また、マイクロコントロールユニット20は、プログラム用メモリ30、データ用メモリ32、通信インターフェイス34、制御部36、RAM38を含む。
プログラム用メモリ30は、書換可能な不揮発性メモリであり、例えば、内蔵Flash ROMに相当する。図3は、プログラム用メモリ30のデータ構造を示す。プログラム用メモリ30は、ブート領域40、第1領域42、第2領域44を含む。ここで、ブート領域40は、アドレス「0x00000000」からアドレス「0x00001FFF」で特定される。また、第1領域42は、アドレス「0x00002000」からアドレス「0x00010FFF」で特定される。さらに、第2領域44は、アドレス「0x00011000」からアドレス「0x0001FFFF」で特定される。ブート領域40には、ブートプログラムが書き込まれる。ブートプログラムは、ブートローダとも呼ばれ、通信装置10の起動時に、後述の制御部36が最初に実行させるプログラムである。このブートプログラムには、公知の技術が使用されればよいが、後述のデータ用メモリ32に記憶された領域選択フラグを確認するように動作する。
第1領域42、第2領域44は、アプリケーションプログラムを書き込み可能な領域である。ここでは、第1領域42と第2領域44には、異なったバージョンのアプリケーションプログラムが書き込まれることを想定する。つまり、第1領域42に書き込まれたアプリケーションプログラムと、第2領域44に書き込まれたアプリケーションプログラムのいずれか一方が新しいバージョンのアプリケーションプログラムに相当する。なお、通信システム100の出荷時には、例えば、第1領域42だけにアプリケーションプログラムが書き込まれる。図2に戻る。
データ用メモリ32は、書換可能な不揮発性メモリであり、例えば、前述のEEPROMに相当する。図4は、データ用メモリ32のデータ構造を示す。データ用メモリ32は、領域選択フラグ46を含む。領域選択フラグ46では、プログラム用メモリ30における第1領域42と第2領域44のいずれかが選択されて示される。そのため、領域選択フラグ46は、第1領域42を示すための「1」、第2領域44を示すための「2」のいずれかの値を有する。なお、「1」と「2」の代わりに、「0」と「1」が使用されてもよく、その場合、領域選択フラグ46は、1ビットで構成される。なお、以下では、説明を容易にするために、前者であるとする。また、通信装置10の出荷時において、領域選択フラグ46は、第1領域42を示すための「1」に設定される。図2に戻る。なお、データ用メモリ32は、マイクロコントロールユニット20に内蔵されず、SPI(Serial Peripheral Interface)やI2C(Inter Integrated Circuit)のインターフェイス経由で外付けされてもよい。
通信部22は、短距離/小電力機器における無線通信方式を実行することによって、図示しない基地局装置12と通信する。通信インターフェイス34は、マイクロコントロールユニット20における通信部22とのインターフェイスであり、通信部22に接続する。通信インターフェイス34は、例えば、SPI等に相当する。例えば、通信インターフェイス34は、プログラム用メモリ30に書き込むべきアプリケーションプログラム、つまり前述の更新用のアプリケーションプログラムを通信部22から受信する。
制御部36は、通信装置10の動作を制御する。ここでは、特に、アプリケーションプログラムの起動および更新を中心に説明する。その際、制御部36は、RAM38を適宜使用する。なお、RAM38には公知の技術が使用されればよいので、ここでは説明を省略する。まず、起動を説明する。制御部36は、起動の際、プログラム用メモリ30におけるブート領域40に書き込まれたブートプログラムをまず実行する。ブートプログラムは、データ用メモリ32に記憶した領域選択フラグ46での選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に書き込まれたアプリケーションプログラムを起動させる。つまり、制御部36は、領域選択フラグ46が第1領域42を示すための「1」である場合、プログラム用メモリ30のアドレス「0x00002000」にアクセスする。アドレス「0x00002000」は第1領域42の先頭アドレスであるので、制御部36は、第1領域42に書き込まれたアプリケーションプログラムを起動する。
一方、制御部36は、領域選択フラグ46が第2領域44を示すための「2」である場合、プログラム用メモリ30のアドレス「0x00011000」にアクセスする。アドレス「0x00011000」は第2領域44の先頭アドレスであるので、制御部36は、第2領域44に書き込まれたアプリケーションプログラムを起動する。また、前述のごとく、通信装置10の出荷時において、領域選択フラグ46は「1」に設定されているので、制御部36は、第1領域42に書き込まれたアプリケーションプログラムを起動する。
次に、更新を説明する。通信インターフェイス34が更新用のアプリケーションプログラムを入力した場合、制御部36は、データ用メモリ32に記憶した領域選択フラグ46を確認する。制御部36は、領域選択フラグ46での非選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に、更新用のアプリケーションプログラムを書き込む。例えば、領域選択フラグ46が第1領域42を示すための「1」である場合、制御部36は、非選択である第2領域44に更新用のアプリケーションプログラムを書き込む。一方、領域選択フラグ46が第2領域44を示すための「2」である場合、制御部36は、非選択である第1領域42に更新用のアプリケーションプログラムを書き込む。
また、制御部36は、更新用のアプリケーションプログラムの書込を終了すると、データ用メモリ32に記憶した領域選択フラグ46を変更する。例えば、領域選択フラグ46が第1領域42を示すための「1」である場合、制御部36は、第2領域44を示すための「2」に領域選択フラグ46を変更する。一方、領域選択フラグ46が第2領域44を示すための「2」である場合、制御部36は、第1領域42を示すための「1」に領域選択フラグ46を変更する。制御部36は、領域選択フラグ46の変更を終了すると、通信装置10を再起動させる。その結果、前述の起動の処理が開始される。
ここで、制御部36は、通信部22、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、データ用メモリ32に記憶した領域選択フラグ46を維持する。つまり、制御部36は、領域選択フラグ46を変更しない。また、制御部36は、通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合も、データ用メモリ32に記憶した領域選択フラグ46を維持する。
この構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ハードウエアとソフトウエアの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
以上の構成による通信システム100の動作を説明する。図5(a)−(b)は、通信装置10による処理手順を示すフローチャートである。図5(a)は、起動処理の手順を示す。制御部36は、ブート領域40に書き込まれたブートプログラムを実行する(S10)。データ用メモリ32に記憶した領域選択フラグ46が「1」である場合(S12のY)、制御部36は、第1領域42に書き込まれたアプリケーションプログラムを起動する(S14)。一方、データ用メモリ32に記憶した領域選択フラグ46が「1」でない場合(S12のN)、制御部36は、第2領域44に書き込まれたアプリケーションプログラムを起動する(S16)。
図5(b)は、更新処理の手順を示す。通信インターフェイス34は、アプリケーションプログラムを受信する(S20)。データ用メモリ32に記憶した領域選択フラグ46が「1」であれば(S22のY)、制御部36は、第2領域44にアプリケーションプログラムを書き込み(S24)、領域選択フラグ46を「2」に変更する(S26)。一方、データ用メモリ32に記憶した領域選択フラグ46が「1」でなければ(S22のN)、制御部36は、第1領域42にアプリケーションプログラムを書き込み(S28)、領域選択フラグ46を「1」に変更する(S30)。制御部36は、通信装置10を再起動させる(S32)。
本発明の実施例によれば、プログラム用メモリに第1領域と第2領域を設け、それを選択するための領域選択フラグを使用するので、使用中のアプリケーションプログラムが書き込まれた領域とは別の領域を更新用のアプリケーションプログラムの書込のために使用できる。また、使用中のアプリケーションプログラムと更新用のアプリケーションプログラムとを別の領域に書き込むので、使用中のアプリケーションプログラムに影響を与えずに、更新用のアプリケーションプログラムを書き込むことができる。また、使用中のアプリケーションプログラムに影響を与えずに、更新用のアプリケーションプログラムが書き込まれるので、アプリケーションプログラムを安全に更新できる。
また、領域選択フラグでの選択にしたがってアプリケーションプログラムを起動し、領域選択フラグでの非選択にしたがってアプリケーションプログラムを書き込むので、1つの領域選択フラグだけでアプリケーションプログラムの起動と書込を制御できる。また、1つの領域選択フラグだけを変更すればよいので、処理を簡易にできる。また、アプリケーションプログラムの受信に失敗した場合、あるいはアプリケーションプログラムの書き込みに失敗した場合、領域選択フラグを変更しないので、安全性を向上できる。
本発明の一態様の概要は、次の通りである。本発明のある態様の通信装置10は、ブートプログラムを書き込むためのブート領域40、アプリケーションプログラムを書き込み可能な第1領域42と第2領域44とを有するプログラム用メモリ30と、プログラム用メモリ30における第1領域42と第2領域44のいずれかが選択された領域選択フラグ46を記憶するデータ用メモリ32と、プログラム用メモリ30に書き込むべきアプリケーションプログラムを受信する通信インターフェイス34と、プログラム用メモリ30におけるブート領域40に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した領域選択フラグ46での選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に書き込まれたアプリケーションプログラムを起動する制御部36とを備える。制御部36は、通信インターフェイス34において受信したアプリケーションプログラムを、データ用メモリ32に記憶した領域選択フラグ46での非選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に書き込んでから、データ用メモリ32に記憶した領域選択フラグ46を変更して、再起動させる。
制御部36は、データ用メモリ32に記憶した領域選択フラグ46が第1領域42を選択している場合、プログラム用メモリ30における第1領域42に書き込まれたアプリケーションプログラムを起動し、制御部36は、データ用メモリ32に記憶した領域選択フラグ46が第1領域42を選択している場合、プログラム用メモリ30における第2領域44に、通信インターフェイス34において受信したアプリケーションプログラムを書き込んでから、データ用メモリ32に記憶した領域選択フラグ46を第2領域44に変更してもよい。
制御部36は、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、あるいは通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合、データ用メモリ32に記憶した領域選択フラグ46を維持してもよい。
プログラム用メモリ30における第1領域42あるいは第2領域44には、本通信装置10の検査プログラムが書き込まれていてもよい。
本発明のさらに別の態様は、制御方法である。この方法は、ブートプログラムを書き込むためのブート領域40、アプリケーションプログラムを書き込み可能な第1領域42と第2領域44とを有するプログラム用メモリ30と、プログラム用メモリ30における第1領域42と第2領域44のいずれかが選択された領域選択フラグ46を記憶するデータ用メモリ32と、プログラム用メモリ30に書き込むべきアプリケーションプログラムを受信する通信インターフェイス34とを備える通信装置10における制御方法であって、プログラム用メモリ30におけるブート領域40に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した領域選択フラグ46での選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に書き込まれたアプリケーションプログラムを起動するステップと、通信インターフェイス34において受信したアプリケーションプログラムを、データ用メモリ32に記憶した領域選択フラグ46での非選択に応じて、プログラム用メモリ30における第1領域42あるいは第2領域44に書き込んでから、データ用メモリ32に記憶した領域選択フラグ46を変更して、再起動させるステップと、を備える。
(実施例2)
次に、実施例2を説明する。実施例2は、実施例1と同様に、短距離/小電力機器に対応した通信装置に関し、簡易に、かつ安全にアプリケーションプログラムを更新することを目的とする。さらに、実施例2では、実施例1よりもアプリケーションプログラムのサイズが大きい場合を想定する。その場合、実施例1のように、MCUの不揮発性メモリに、アプリケーションプログラムを書き込み可能な2つの領域を設けることが困難になる。そのため、実施例2では、外付けのメモリをMCUに接続し、更新用のアプリケーションプログラムは、外付けのメモリに書き込ませる。また、通信装置は、MCUのEEPROMに、更新フラグを記憶する。更新フラグは、更新用のアプリケーションプログラムが外付けのメモリに存在するか否かを示す。
次に、実施例2を説明する。実施例2は、実施例1と同様に、短距離/小電力機器に対応した通信装置に関し、簡易に、かつ安全にアプリケーションプログラムを更新することを目的とする。さらに、実施例2では、実施例1よりもアプリケーションプログラムのサイズが大きい場合を想定する。その場合、実施例1のように、MCUの不揮発性メモリに、アプリケーションプログラムを書き込み可能な2つの領域を設けることが困難になる。そのため、実施例2では、外付けのメモリをMCUに接続し、更新用のアプリケーションプログラムは、外付けのメモリに書き込ませる。また、通信装置は、MCUのEEPROMに、更新フラグを記憶する。更新フラグは、更新用のアプリケーションプログラムが外付けのメモリに存在するか否かを示す。
通信装置におけるMCUのCPUは、起動する際に更新フラグを参照し、更新用のアプリケーションプログラムが外付けのメモリに存在しなければ、MCUの不揮発性メモリに書き込まれたアプリケーションプログラムを起動する。一方、更新用のアプリケーションプログラムが外付けのメモリに存在すれば、CPUは、外付けメモリからMCUの不揮発性メモリに更新用のアプリケーションプログラムをコピーする。コピー終了後、CPUは、更新フラグを変更してから、通信装置を再起動させる。実施例2に係る通信システム100は、図1と同様のタイプである。ここでは、差異を中心に説明する。
図6は、本発明の実施例2に係る通信装置10の構成を示す。通信装置10は、マイクロコントロールユニット20、通信部22、追加メモリ24を含む。また、マイクロコントロールユニット20は、プログラム用メモリ30、データ用メモリ32、通信インターフェイス34、制御部36、RAM38、メモリインターフェイス50を含む。
プログラム用メモリ30は、これまでとデータ構造が異なる。図7(a)−(b)は、プログラム用メモリ30、追加メモリ24のデータ構造を示し、特に、図7(a)は、プログラム用メモリ30のデータ構造を示す。プログラム用メモリ30は、ブート領域60、アプリケーション領域62を含む。ここで、ブート領域60は、アドレス「0x00000000」からアドレス「0x00001FFF」で特定される。また、アプリケーション領域62は、アドレス「0x00002000」からアドレス「0x0001FFFF」で特定される。ブート領域60は、これまでのブート領域40と同様であるので、ここでは説明を省略する。なお、ブートプログラムは、後述のデータ用メモリ32に記憶された更新フラグを確認するように動作する。
アプリケーション領域62は、アプリケーションプログラムを書き込み可能な領域である。アプリケーション領域62は、これまでの第1領域42、第2領域44と同様の機能を有するが、それらよりもサイズが大きい。つまり、アプリケーション領域62には、第1領域42、第2領域44よりも大きなサイズのアプリケーションプログラムを書き込み可能である。図6に戻る。
追加メモリ24は、外付けFlash ROMであり、前述の外付けメモリに相当する。メモリインターフェイス50は、マイクロコントロールユニット20における追加メモリ24とのインターフェイスであり、追加メモリ24に接続する。メモリインターフェイス50は、例えば、SPI等に相当する。図7(b)は、追加メモリ24のデータ構造を示す。追加メモリ24は、追加領域64、未使用領域66を含む。ここで、追加領域64は、アドレス「0x00000000」からアドレス「0x0001E000」で特定される。また、未使用領域66は、アドレス「0x0001E001」からアドレス「0x0001FFFF」で特定される。つまり、追加領域64とアプリケーション領域62は同一のサイズであり、未使用領域66とブート領域60は同一のサイズであり、追加メモリ24とプログラム用メモリ30も同一のサイズである。追加領域64は、更新用のアプリケーションプログラムを書き込み可能な領域である。更新用のアプリケーションプログラムは、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを更新するために使用される。図6に戻る。
データ用メモリ32は、これまでとデータ構造が異なる。図8は、データ用メモリ32のデータ構造を示す。データ用メモリ32は、更新フラグ68を含む。更新フラグ68では、追加メモリ24における更新可能なアプリケーションプログラムの存在あるいは不存在が示される。ここで、更新フラグ68は、更新可能なアプリケーションプログラムが追加メモリ24に存在する場合、「1」の値を有し、更新可能なアプリケーションプログラムが追加メモリ24に不存在である場合、「0」の値を有する。そのため、更新フラグ68は、1ビットで構成される。また、通信装置10の出荷時において、更新フラグ68は、更新可能なアプリケーションプログラムが追加メモリ24に不存在であることを示す「0」に設定される。図6に戻る。通信部22および通信インターフェイス34は、これまでと同様であるので、ここでは説明を省略する。
制御部36に関して、ここでも、特に、アプリケーションプログラムの起動および更新を中心に説明する。まず、起動を説明する。制御部36は、起動の際、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムをまず実行する。ブートプログラムは、データ用メモリ32に記憶した更新フラグ68が不存在の「0」であれば、プログラム用メモリ30のアドレス「0x00002000」にアクセスする。アドレス「0x00002000」はアプリケーション領域62の先頭アドレスであるので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。なお、データ用メモリ32に記憶した更新フラグ68が存在の「1」である場合の処理については、後述する。また、前述のごとく、通信装置10の出荷時において、更新フラグ68は「0」に設定されているので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。
次に、更新を説明する。通信インターフェイス34が更新用のアプリケーションプログラムを入力した場合、制御部36は、更新用のアプリケーションプログラムを追加メモリ24の追加領域64に書き込む。また、制御部36は、更新用のアプリケーションプログラムの書込を終了すると、データ用メモリ32に記憶した更新フラグ68を変更する。具体的に説明すると、制御部36は、更新可能なアプリケーションプログラムが追加メモリ24に存在することを示す「1」に更新フラグ68を変更する。さらに、制御部36は、更新フラグ68の変更を終了すると、通信装置10を再起動させる。
これに続いて、前述の起動の処理が実行されるが、ブートプログラムは、データ用メモリ32に記憶した更新フラグ68を確認する。更新フラグ68が存在の「1」である場合、制御部36は、追加メモリ24の追加領域64に書き込まれたアプリケーションプログラムをプログラム用メモリ30におけるアプリケーション領域62にコピーする。また、制御部36は、コピーが終了すると、データ用メモリ32に記憶した更新フラグ68を、不存在の「0」に変更する。さらに、制御部36は、更新フラグ68の変更を終了すると、通信装置10を再起動させる。その結果、前述の起動の処理が開始される。
ここで、制御部36は、通信部22、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、データ用メモリ32に記憶した更新フラグ68を維持する。つまり、制御部36は、更新フラグ68を変更しない。また、制御部36は、通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合も、データ用メモリ32に記憶した更新フラグ68を維持する。
以上の構成による通信システム100の動作を説明する。図9(a)−(b)は、通信装置10による処理手順を示すフローチャートである。図9(a)は、起動処理の手順を示す。制御部36は、ブート領域60に書き込まれたブートプログラムを実行する(S50)。データ用メモリ32に記憶した更新フラグ68が「0」である場合(S52のY)、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する(S54)。一方、データ用メモリ32に記憶した更新フラグ68が「0」でない場合(S52のN)、制御部36は、追加メモリ24からアプリケーション領域62にアプリケーションプログラムをコピーする(S56)。制御部36は、データ用メモリ32に記憶した更新フラグ68を「0」に変更する(S58)。制御部36は、通信装置10を再起動させる(S60)。
図9(b)は、更新処理の手順を示す。通信インターフェイス34は、アプリケーションプログラムを受信する(S70)。制御部36は、アプリケーションプログラムを追加メモリ24に書き込み(S72)、データ用メモリ32に記憶した更新フラグ68を「1」に変更する(S74)。制御部36は、通信装置10を再起動させる(S76)。
本発明の実施例によれば、アプリケーション領域が設けられたプログラム用メモリとは別に追加メモリを使用するので、使用中のアプリケーションプログラムと更新用のアプリケーションプログラムとを別のメモリに書き込むことができる。また、使用中のアプリケーションプログラムと更新用のアプリケーションプログラムとが別のメモリに書き込まれるので、大きなサイズのアプリケーションプログラムに対応できる。また、使用中のアプリケーションプログラムと更新用のアプリケーションプログラムとを別のメモリに書き込むので、使用中のアプリケーションプログラムに影響を与えずに、更新用のアプリケーションプログラムを書き込むことができる。また、使用中のアプリケーションプログラムに影響を与えずに、更新用のアプリケーションプログラムが書き込まれるので、アプリケーションプログラムを安全に更新できる。
また、更新フラグでの選択にしたがってアプリケーションプログラムを起動し、更新フラグでの非選択にしたがってアプリケーションプログラムをコピーするので、1つの更新フラグだけでアプリケーションプログラムの起動とコピーを制御できる。また、1つの更新フラグだけを変更すればよいので、処理を簡易にできる。また、アプリケーションプログラムの受信に失敗した場合、あるいはアプリケーションプログラムの書き込みに失敗した場合、更新フラグを変更しないので、安全性を向上できる。
本発明の一態様の概要は、次の通りである。本発明の別の態様もまた、通信装置10である。この装置は、ブートプログラムを書き込むためのブート領域60、アプリケーションプログラムを書き込み可能なアプリケーション領域62を有するプログラム用メモリ30と、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリ24と、追加メモリ24における更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグ68を記憶するデータ用メモリ32と、追加メモリ24に書き込むべきアプリケーションプログラムを受信する通信インターフェイス34と、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した更新フラグ68が不存在を示していれば、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを起動する制御部36とを備える。制御部36は、通信インターフェイス34において受信したアプリケーションプログラムを追加メモリ24に書き込んでから、データ用メモリ32に記憶した更新フラグ68を存在を示すように変更して、再起動させ、制御部36は、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した更新フラグ68が存在を示していれば、追加メモリ24に書き込まれたアプリケーションプログラムをプログラム用メモリ30におけるアプリケーション領域62にコピーしてから、データ用メモリ32に記憶した更新フラグ68を不存在を示すように変更して、再起動させる。
制御部36は、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、あるいは通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合、データ用メモリ32に記憶した更新フラグ68を維持してもよい。
プログラム用メモリ30におけるアプリケーション領域62には、本通信装置10の検査プログラムが書き込まれていてもよい。
本発明のさらに別の態様もまた、制御方法である。この方法は、ブートプログラムを書き込むためのブート領域60、アプリケーションプログラムを書き込み可能なアプリケーション領域62を有するプログラム用メモリ30と、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリ24と、追加メモリ24における更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグ68を記憶するデータ用メモリ32と、追加メモリ24に書き込むべきアプリケーションプログラムを受信する通信インターフェイス34とを備える通信装置10における制御方法であって、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した更新フラグ68が不存在を示していれば、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを起動するステップと、通信インターフェイス34において受信したアプリケーションプログラムを追加メモリ24に書き込んでから、データ用メモリ32に記憶した更新フラグ68を存在を示すように変更して、再起動させるステップと、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムを実行しながら、データ用メモリ32に記憶した更新フラグ68が存在を示していれば、追加メモリ24に書き込まれたアプリケーションプログラムをプログラム用メモリ30におけるアプリケーション領域62にコピーしてから、データ用メモリ32に記憶した更新フラグ68を不存在を示すように変更して、再起動させるステップと、を備える。
(実施例3)
次に、実施例3を説明する。実施例3は、実施例2に実施例1を組み合わせた通信装置に関する。そのため、外付けメモリには、アプリケーションプログラムを書き込み可能な第1領域と第2領域とが設けられる。また、第1領域と第2領域とを識別するために、領域選択フラグも使用される。実施例3に係る通信システム100、通信装置10は、図1、図6と同様のタイプである。ここでは、差異を中心に説明する。
次に、実施例3を説明する。実施例3は、実施例2に実施例1を組み合わせた通信装置に関する。そのため、外付けメモリには、アプリケーションプログラムを書き込み可能な第1領域と第2領域とが設けられる。また、第1領域と第2領域とを識別するために、領域選択フラグも使用される。実施例3に係る通信システム100、通信装置10は、図1、図6と同様のタイプである。ここでは、差異を中心に説明する。
図6の追加メモリ24は、これまでとデータ構造が異なる。図10(a)−(b)は、本発明の実施例3に係るプログラム用メモリ30、追加メモリ24のデータ構造を示す。図10(a)は、プログラム用メモリ30のデータ構造を示すが、図7(a)と同様であるので、ここでは説明を省略する。図10(b)は、追加メモリ24のデータ構造を示す。追加メモリ24は、第1領域70、第2領域72、未使用領域66を含む。ここで、第1領域70は、アドレス「0x00000000」からアドレス「0x0001DFFF」で特定される。また、第2領域72は、アドレス「0x0001E000」からアドレス「0x0003BFFF」で特定される。さらに、未使用領域66は、アドレス「0x0003C000」からアドレス「0x0001FFFF」で特定される。第1領域70と第2領域72は、更新用のアプリケーションプログラムを書き込み可能な領域である。前述のごとく、更新用のアプリケーションプログラムは、プログラム用メモリ30におけるアプリケーション領域62に書き込まれたアプリケーションプログラムを更新するために使用される。図6に戻る。
データ用メモリ32は、これまでとデータ構造が異なる。図11は、本発明の実施例3に係るデータ用メモリ32のデータ構造を示す。データ用メモリ32は、更新フラグ68に加えて、領域選択フラグ46も含む。領域選択フラグ46では、追加メモリ24における第1領域70と第2領域72のいずれかが選択される。そのため、領域選択フラグ46は、第1領域70を示すための「1」、第2領域72を示すための「2」のいずれかの値を有する。なお、領域選択フラグ46は、実施例1と同様に示されてもよい。また、通信装置10の出荷時において、更新フラグ68は、更新可能なアプリケーションプログラムが追加メモリ24に不存在であることを示す「0」に設定されるとともに、領域選択フラグ46は、第2領域72を示すための「2」に設定される。図6に戻る。
制御部36に関して、ここでも、特に、アプリケーションプログラムの起動および更新を中心に説明する。まず、起動を説明する。制御部36は、起動の際、プログラム用メモリ30におけるブート領域60に書き込まれたブートプログラムをまず実行する。ブートプログラムは、データ用メモリ32に記憶した更新フラグ68が不存在の「0」であれば、プログラム用メモリ30のアドレス「0x00002000」にアクセスする。その際、ブートプログラムは、データ用メモリ32に記憶した領域選択フラグ46を確認しない。
アドレス「0x00002000」はアプリケーション領域62の先頭アドレスであるので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。なお、データ用メモリ32に記憶した更新フラグ68が存在の「1」である場合の処理については、後述する。また、前述のごとく、通信装置10の出荷時において、更新フラグ68は「0」に設定されているので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。
アドレス「0x00002000」はアプリケーション領域62の先頭アドレスであるので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。なお、データ用メモリ32に記憶した更新フラグ68が存在の「1」である場合の処理については、後述する。また、前述のごとく、通信装置10の出荷時において、更新フラグ68は「0」に設定されているので、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する。
次に、更新を説明する。通信インターフェイス34が更新用のアプリケーションプログラムを入力した場合、制御部36は、データ用メモリ32に記憶した領域選択フラグ46を確認する。制御部36は、領域選択フラグ46での非選択に応じて、追加メモリ24における第1領域70あるいは第2領域72に、更新用のアプリケーションプログラムを書き込む。さらに、制御部36は、書込を終了すると、データ用メモリ32に記憶した領域選択フラグ46を変更する。例えば、領域選択フラグ46が第1領域70を示すための「1」である場合、制御部36は、非選択である第2領域72に更新用のアプリケーションプログラムを書き込み、領域選択フラグ46を「2」に変更する。一方、領域選択フラグ46が第2領域72を示すための「2」である場合、制御部36は、非選択である第1領域70に更新用のアプリケーションプログラムを書き込み、領域選択フラグ46を「1」に変更する。これに続いて、制御部36は、データ用メモリ32に記憶した更新フラグ68を変更する。具体的に説明すると、制御部36は、更新可能なアプリケーションプログラムが追加メモリ24に存在することを示す「1」に更新フラグ68を変更する。さらに、制御部36は、更新フラグ68の変更を終了すると、通信装置10を再起動させる。
これに続いて、前述の起動の処理が実行されるが、ブートプログラムは、データ用メモリ32に記憶した更新フラグ68および領域選択フラグ46を確認する。更新フラグ68が存在の「1」である場合、領域選択フラグ46での選択に応じて、追加メモリ24における第1領域70あるいは第2領域72に書き込まれたアプリケーションプログラムをプログラム用メモリ30におけるアプリケーション領域62にコピーする。具体的に説明すると、領域選択フラグ46が第1領域70を示すための「1」である場合、制御部36は、第1領域70に書き込まれた更新用のアプリケーションプログラムをアプリケーション領域62に複写する。一方、領域選択フラグ46が第2領域72を示すための「2」である場合、制御部36は、第2領域72に書き込まれた更新用のアプリケーションプログラムをアプリケーション領域62に複写する。また、制御部36は、コピーが終了すると、データ用メモリ32に記憶した更新フラグ68を、不存在の「0」に変更する。さらに、制御部36は、更新フラグ68の変更を終了すると、通信装置10を再起動させる。その結果、前述の起動の処理が開始される。
ここで、制御部36は、通信部22、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、データ用メモリ32に記憶した更新フラグ68および領域選択フラグ46を維持する。つまり、制御部36は、更新フラグ68および領域選択フラグ46を変更しない。また、制御部36は、通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合も、データ用メモリ32に記憶した更新フラグ68および領域選択フラグ46を維持する。
以上の構成による通信システム100の動作を説明する。図12(a)−(b)は、本発明の実施例3に係る通信装置10による処理手順を示すフローチャートである。図12(a)は、起動処理の手順を示す。制御部36は、ブート領域60に書き込まれたブートプログラムを実行する(S100)。データ用メモリ32に記憶した更新フラグ68が「0」である場合(S102のY)、制御部36は、アプリケーション領域62に書き込まれたアプリケーションプログラムを起動する(S104)。
一方、データ用メモリ32に記憶した更新フラグ68が「0」でない場合(S102のN)、データ用メモリ32に記憶した領域選択フラグ46が「1」であれば(S106のY)、制御部36は、第1領域70からアプリケーション領域62にアプリケーションプログラムをコピーする(S108)。一方、データ用メモリ32に記憶した領域選択フラグ46が「1」でない場合(S106のN)、制御部36は、第2領域72からアプリケーション領域62にアプリケーションプログラムをコピーする(S110)。制御部36は、データ用メモリ32に記憶した更新フラグ68を「0」に変更する(S112)。制御部36は、通信装置10を再起動させる(S114)。
図12(b)は、更新処理の手順を示す。通信インターフェイス34は、アプリケーションプログラムを受信する(S120)。データ用メモリ32に記憶した領域選択フラグ46が「1」であれば(S122のY)、制御部36は、第2領域72にアプリケーションプログラムを書き込み(S124)、領域選択フラグ46を「2」に変更する(S126)。一方、データ用メモリ32に記憶した領域選択フラグ46が「1」でなければ(S122のN)、制御部36は、第1領域70にアプリケーションプログラムを書き込み(S128)、領域選択フラグ46を「1」に変更する(S130)。制御部36は、データ用メモリ32に記憶した更新フラグ68を「1」に変更する(S132)。制御部36は、通信装置10を再起動させる(S134)。
本発明の実施例によれば、追加メモリに2つの領域を設けるので、異なったバージョンの更新用のアプリケーションプログラムを書き込むことができる。また、異なったバージョンの更新用のアプリケーションプログラムが書き込まれるので、最新の更新用のアプリケーションプログラムに不具合が生じた場合であっても前の更新用のアプリケーションプログラムに戻すことができる。また、前の更新用のアプリケーションプログラムに戻されるので、通信装置の運用に与える影響を低減できる。また、前の更新用のアプリケーションプログラムに戻されるので、アプリケーションプログラムを安全に更新できる。
また、更新フラグでの選択にしたがってアプリケーションプログラムを起動し、更新フラグと領域制御フラグでの非選択にしたがってアプリケーションプログラムをコピーするので、更新フラグと領域制御フラグだけでアプリケーションプログラムの起動とコピーを制御できる。また、更新フラグと領域制御フラグだけを変更すればよいので、処理を簡易にできる。また、アプリケーションプログラムの受信に失敗した場合、あるいはアプリケーションプログラムの書き込みに失敗した場合、更新フラグと領域制御フラグを変更しないので、安全性を向上できる。
本発明の一態様の概要は、次の通りである。追加メモリ24は、アプリケーションプログラムを書き込み可能な第1領域70と第2領域72とを有してもよい。データ用メモリ32は、追加メモリ24における第1領域70と第2領域72のいずれかが選択された領域選択フラグ46も記憶し、制御部36は、通信インターフェイス34において受信したアプリケーションプログラムを、データ用メモリ32に記憶した領域選択フラグ46での非選択に応じて、追加メモリ24における第1領域70あるいは第2領域72に書き込んでから、データ用メモリ32に記憶した領域選択フラグ46も変更して、再起動させ、制御部36は、データ用メモリ32に記憶した領域選択フラグ46での選択に応じて、追加メモリ24における第1領域70あるいは第2領域72に書き込まれたアプリケーションプログラムをプログラム用メモリ30におけるアプリケーション領域62にコピーしてもよい。
制御部36は、通信インターフェイス34がアプリケーションプログラムの受信に失敗した場合、あるいは通信インターフェイス34において受信したアプリケーションプログラムの書き込みに失敗した場合、データ用メモリ32に記憶した更新フラグ68および領域選択フラグ46を維持してもよい。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素あるいは各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例1において、プログラム用メモリ30は次のように使用されてもよい。例えば、プログラム用メモリ30における第1領域42に、製造時に使用すべき本通信装置10の検査プログラムが書き込まれ、第2領域44に、アプリケーションプログラムが書き込まれてもよい。この場合、領域選択フラグ46によって、製造時に第1領域42が選択され、出荷時に第2領域44が選択される。なお、第1領域42にアプリケーションプログラムが書き込まれ、第2領域44に検査プログラムが書き込まれてもよい。本変形例によれば、第1領域42に書き込まれた検査プログラムは将来的に消去されるので、製造検査時しか使わない検査プログラムによるメモリの消費を抑制できる。
実施例2、3において、プログラム用メモリ30、追加メモリ24は次のように使用されてもよい。例えば、プログラム用メモリ30におけるアプリケーション領域62に、本通信装置10の検査プログラムが書き込まれ、追加メモリ24に、アプリケーションプログラムが書き込まれてもよい。この場合、更新フラグ68によって、製造時に検査プログラムが起動され、出荷時にアプリケーションプログラムのコピーが実行される。本変形例によれば、アプリケーション領域62に書き込まれた検査プログラムは出荷時に消去されるので、製造検査時しか使わない検査プログラムによるメモリの消費を抑制できる。
実施例1乃至3において、マイクロコントロールユニット20は、通信インターフェイス34を含み、通信インターフェイス34は、通信部22に接続される。しかしながらこれに限らず例えば、マイクロコントロールユニット20は、通信インターフェイス34の代わりに通信部22を含んでもよい。ここで、マイクロコントロールユニット20に含まれた通信インターフェイス34は、受信部とされてもよい。本変形例によれば、構成の自由度を向上できる。
10 通信装置、 12 基地局装置、 14 ネットワーク、 16 サーバ装置、 20 マイクロコントロールユニット、 22 通信部、 30 プログラム用メモリ、 32 データ用メモリ、 34 通信インターフェイス(受信部)、 36 制御部、 38 RAM、 100 通信システム。
Claims (6)
- ブートプログラムを書き込むためのブート領域、アプリケーションプログラムを書き込み可能なアプリケーション領域を有するプログラム用メモリと、
前記プログラム用メモリにおける前記アプリケーション領域に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリと、
前記追加メモリにおける更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグを記憶するデータ用メモリと、
前記追加メモリに書き込むべきアプリケーションプログラムを受信する受信部と、
前記プログラム用メモリにおける前記ブート領域に書き込まれたブートプログラムを実行しながら、前記データ用メモリに記憶した前記更新フラグが不存在を示していれば、前記プログラム用メモリにおける前記アプリケーション領域に書き込まれたアプリケーションプログラムを起動する制御部とを備え、
前記制御部は、前記受信部において受信したアプリケーションプログラムを前記追加メモリに書き込んでから、前記データ用メモリに記憶した前記更新フラグを存在を示すように変更して、再起動させ、
前記制御部は、前記プログラム用メモリにおける前記ブート領域に書き込まれたブートプログラムを実行しながら、前記データ用メモリに記憶した前記更新フラグが存在を示していれば、前記追加メモリに書き込まれたアプリケーションプログラムを前記プログラム用メモリにおけるアプリケーション領域にコピーしてから、前記データ用メモリに記憶した前記更新フラグを不存在を示すように変更して、再起動させることを特徴とする通信装置。 - 前記制御部は、前記受信部がアプリケーションプログラムの受信に失敗した場合、あるいは前記受信部において受信したアプリケーションプログラムの書き込みに失敗した場合、前記データ用メモリに記憶した前記更新フラグを維持することを特徴とする請求項1に記載の通信装置。
- 前記追加メモリは、アプリケーションプログラムを書き込み可能な第1領域と第2領域とを有し、
前記データ用メモリは、前記追加メモリにおける前記第1領域と前記第2領域のいずれかが選択された領域選択フラグも記憶し、
前記制御部は、前記受信部において受信したアプリケーションプログラムを、前記データ用メモリに記憶した前記領域選択フラグでの非選択に応じて、前記追加メモリにおける前記第1領域あるいは前記第2領域に書き込んでから、前記データ用メモリに記憶した前記領域選択フラグも変更して、再起動させ、
前記制御部は、前記データ用メモリに記憶した前記領域選択フラグでの選択に応じて、前記追加メモリにおける前記第1領域あるいは前記第2領域に書き込まれたアプリケーションプログラムを前記プログラム用メモリにおけるアプリケーション領域にコピーすることを特徴とする請求項2に記載の通信装置。 - 前記制御部は、前記受信部がアプリケーションプログラムの受信に失敗した場合、あるいは前記受信部において受信したアプリケーションプログラムの書き込みに失敗した場合、前記データ用メモリに記憶した前記更新フラグおよび前記領域選択フラグを維持することを特徴とする請求項3に記載の通信装置。
- 前記プログラム用メモリにおける前記アプリケーション領域には、本通信装置の検査プログラムが書き込まれていることを特徴とする請求項1から4のいずれか1項に記載の通信装置。
- ブートプログラムを書き込むためのブート領域、アプリケーションプログラムを書き込み可能なアプリケーション領域を有するプログラム用メモリと、前記プログラム用メモリにおける前記アプリケーション領域に書き込まれたアプリケーションプログラムを更新するためのアプリケーションプログラムを書き込み可能な追加メモリと、前記追加メモリにおける更新可能なアプリケーションプログラムの存在あるいは不存在が示された更新フラグを記憶するデータ用メモリと、前記追加メモリに書き込むべきアプリケーションプログラムを受信する受信部とを備える通信装置における制御方法であって、
前記プログラム用メモリにおける前記ブート領域に書き込まれたブートプログラムを実行しながら、前記データ用メモリに記憶した前記更新フラグが不存在を示していれば、前記プログラム用メモリにおける前記アプリケーション領域に書き込まれたアプリケーションプログラムを起動するステップと、
前記受信部において受信したアプリケーションプログラムを前記追加メモリに書き込んでから、前記データ用メモリに記憶した前記更新フラグを存在を示すように変更して、再起動させるステップと、
前記プログラム用メモリにおける前記ブート領域に書き込まれたブートプログラムを実行しながら、前記データ用メモリに記憶した前記更新フラグが存在を示していれば、前記追加メモリに書き込まれたアプリケーションプログラムを前記プログラム用メモリにおけるアプリケーション領域にコピーしてから、前記データ用メモリに記憶した前記更新フラグを不存在を示すように変更して、再起動させるステップと、
を備えることを特徴とする制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019192147A JP2020017315A (ja) | 2019-10-21 | 2019-10-21 | 制御方法およびそれを利用した通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019192147A JP2020017315A (ja) | 2019-10-21 | 2019-10-21 | 制御方法およびそれを利用した通信装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015178745A Division JP2017054372A (ja) | 2015-09-10 | 2015-09-10 | 制御方法およびそれを利用した通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020017315A true JP2020017315A (ja) | 2020-01-30 |
Family
ID=69580786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019192147A Pending JP2020017315A (ja) | 2019-10-21 | 2019-10-21 | 制御方法およびそれを利用した通信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020017315A (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816408A (ja) * | 1994-06-29 | 1996-01-19 | Mitsubishi Electric Corp | 情報処理装置 |
JP2006155364A (ja) * | 2004-11-30 | 2006-06-15 | Funai Electric Co 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 |
JP2011138525A (ja) * | 2011-01-18 | 2011-07-14 | Sii Data Service Kk | ハンディターミナル |
JP2011145810A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Mach Co Ltd | プログラムデータの書き換え方法及び機器制御システム |
JP2011164827A (ja) * | 2010-02-08 | 2011-08-25 | Nippon Avionics Co Ltd | フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法 |
-
2019
- 2019-10-21 JP JP2019192147A patent/JP2020017315A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816408A (ja) * | 1994-06-29 | 1996-01-19 | Mitsubishi Electric Corp | 情報処理装置 |
JP2006155364A (ja) * | 2004-11-30 | 2006-06-15 | Funai Electric Co 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 |
JP2011145810A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Mach Co Ltd | プログラムデータの書き換え方法及び機器制御システム |
JP2011164827A (ja) * | 2010-02-08 | 2011-08-25 | Nippon Avionics Co Ltd | フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法 |
JP2011138525A (ja) * | 2011-01-18 | 2011-07-14 | Sii Data Service Kk | ハンディターミナル |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110231952B (zh) | 一种ecu程序备份及循环升级控制方法及装置 | |
TWI363298B (en) | Communication device and firmware update method thereof | |
US7664923B2 (en) | Method and system for updating software | |
CN104572229B (zh) | 嵌入式系统的固件升级方法以及固件升级装置 | |
US20050060528A1 (en) | Booting and boot code update method and system thereof | |
US20150074386A1 (en) | Boot method and boot system | |
JP2009544095A (ja) | Ota可能な携帯端末のプログラム更新システム及び方法 | |
KR20040008007A (ko) | 무선단말기 펌웨어 업그레이드 방법 | |
CN110580167A (zh) | 一种系统升级方法、智能设备及服务器 | |
JPWO2015098811A1 (ja) | 電子機器 | |
JP5084853B2 (ja) | ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム | |
JP2009009391A (ja) | 更新処理ソフトウェア自己更新方法および携帯端末装置 | |
JPWO2019207729A1 (ja) | 産業用コンピュータ、産業用コンピュータシステム、オペレーティングシステム更新方法及びプログラム | |
WO2017043026A1 (ja) | 制御方法およびそれを利用した通信装置 | |
JP2020017315A (ja) | 制御方法およびそれを利用した通信装置 | |
JP2006277216A (ja) | マルチos搭載可能なプラットホームにおける自動fwアップデート方法 | |
JP2016103261A (ja) | ファームウェアのダウンロード方法及びファームウェア組込機器 | |
CN102298531A (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
US11768669B2 (en) | Installing application program code on a vehicle control system | |
JP5094531B2 (ja) | ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム | |
JPWO2012077604A1 (ja) | 処理装置、プログラム更新方法、およびプログラム | |
CN117270914B (zh) | 一种终端设备的系统升级方法、装置、设备和介质 | |
JP2005346403A (ja) | 情報処理装置及び情報処理システム | |
JP2005242930A (ja) | 情報処理装置、プログラム更新方法、プログラム更新プログラム、およびプログラム更新プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2006011906A (ja) | ソフトウェアインストール方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201222 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20210706 |