(57)【要約】【課題】書き込み対象データがロストする可能性を低減すること。【解決手段】制御部１０２は、プログラム領域に格納された複数のデータの各々について書き込み保護の重要度を設定する。制御部１０２は、自端末装置１００内の故障が検出されると、検出された故障と設定済みのプライオリティとに基づいて、プライオリティを変更する。制御部１０２は、例えば、故障個所に関するプログラムのプライオリティを下げる。制御部１０２は、複数のデータのうち、変更後のプライオリティに基づくデータが格納された部分領域の書き込み保護を解除する。制御部１０２は、例えば、解除後の部分領域に記憶されたデータの消去を記憶部１０１に指示する。制御部１０２は、消去後の部分領域を、書き込み対象データを格納可能な領域に設定する。【選択図】図１
2017199162.tif 000002
【特許請求の範囲】
【請求項１】
自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
制御部を有することを特徴とする端末装置。
【請求項２】
前記制御部は、
解除後の前記部分領域に記憶されたデータの消去を前記記憶部に指示し、
消去後の前記部分領域を、書き込み対象データを格納可能な領域に設定する、
ことを特徴とする請求項１に記載の端末装置。
【請求項３】
前記記憶部は、前記プログラム領域と異なる領域に前記書き込み対象データを格納可能な領域を有することを特徴とする請求項２に記載の端末装置。
【請求項４】
センシングを行う検知部を有し、
前記書き込み対象データは、前記検知部によってセンシングされたデータに基づくデータであることを特徴とする請求項２または３に記載の端末装置。
【請求項５】
コンピュータに、
自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
処理を実行させることを特徴とする障害対応制御プログラム。
【請求項６】
コンピュータが、
自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
処理を実行することを特徴とする障害対応制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置、障害対応制御プログラム、および障害対応制御方法に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）により様々な端末装置がネットワークに繋がり、端末装置の設置数が急速に増加している。ＩｏＴにおいて端末装置には、辺境地におけるデータ収集など人が介在しない状況で動作することが求められる場合がある。このような場合、端末装置はメンテナンスの回数が少なく故障に対して耐性が強いことが望まれる。端末装置に含まれる主要なデバイスや内蔵メモリを冗長に設けることにより端末装置の一部に故障が発生しても継続して動作させる技術がある。
【０００３】
先行技術としては、例えば、データをメモリ上に記録する際に、データの重要度や古さを示す情報と共に記録してデータに対してライトプロテクトを設定し、その後ユーザにとって重要度が低下したデータや古いデータのライトプロテクトを解除する技術がある（例えば、以下特許文献１参照。）。また、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）において書き込みを禁止するプロテクト領域が任意に設定可能であり、プロテクト領域への書き込みが必要な時には、書き込み許可を行うことにより書き込みが可能となるように制御する技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−２８１９３７号公報
【特許文献２】特開平０５−２０２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、端末装置において故障が発生した場合に、メモリへの書き込み対象データがロストする場合がある。例えば、端末装置内の無線機によるネットワークへの送信が完了するまでの間に一時的にメモリへデータを格納する場合、無線機が故障すると、データをネットワークへ送信できず、メモリのデータ領域がフルになり、書き込み対象データがロストする場合がある。
【０００６】
１つの側面では、本発明は、書き込み対象データがロストする可能性を低減することができる端末装置、障害対応制御プログラム、および障害対応制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度を設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する端末装置、障害対応制御プログラム、および障害対応制御方法が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、書き込み対象データがロストする可能性を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明にかかる端末装置による一動作例を示す説明図である。
【図２】図２は、システム例を示す説明図である。
【図３】図３は、センサモジュールのハードウェア構成例を示すブロック図である。
【図４】図４は、不揮発メモリのメモリマッピング情報例を示す説明図である。
【図５】図５は、故障判定回路の詳細例を示す説明図である。
【図６】図６は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その１）である。
【図７】図７は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その２）である。
【図８】図８は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その３）である。
【図９】図９は、センサモジュールによる書き込み保護解除の処理手順例を示すシーケンス図（その１）である。
【図１０】図１０は、センサモジュールによる書き込み保護解除の処理手順例を示すシーケンス図（その２）である。
【図１１】図１１は、無線機および故障判定回路による故障判定処理手順例を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる端末装置、障害対応制御プログラム、および障害対応制御方法の実施の形態を詳細に説明する。
【００１１】
図１は、本発明にかかる端末装置による一動作例を示す説明図である。端末装置１００は、故障発生時にデータ領域を拡張することができるコンピュータである。ここで、端末装置１００は書き込み対象のデータをデータ領域に格納するが、端末装置１００のメモリ容量には制約がある。
【００１２】
従来技術では、端末装置１００において故障が発生した場合に、記憶領域への書き込み対象データがロストする場合がある。例えば、端末装置１００は、センサにより収集したデータを無線機によりネットワークに送信する場合に、一時的にデータを不揮発メモリなどに格納する場合を考える。このような場合に、無線機が故障すると、データをネットワークへ送信できず、メモリの格納領域が一杯になり、書き込み対象データがロストする場合がある。
【００１３】
ここで、上述したように端末装置１００の一部の故障を想定して不揮発メモリなどについて冗長な設計を行う技術がある。しかし、冗長な設計を行うと、端末装置１００の値段が高くなったり、端末装置１００が大型化する。また、端末装置１００などは、小型な機器である場合が多く、バッテリなどで駆動する。このため、不揮発メモリが冗長であると、消費電力が増大し、バッテリ切れなどが発生する可能性が高くなる。
【００１４】
そこで、本実施の形態では、端末装置１００は、書き込みが保護されたプログラム領域のデータごとに重要度を設けておき、検出した故障と設定済みの重要度とに基づき重要度を変更し、変更後の重要度に基づくデータの領域の書き込み保護を解除する。書き込み保護が解除されたデータの領域に書き込み対象データを書き込みことができるため、書き込み対象データのロストの可能性を低減させることができる。
【００１５】
端末装置１００は、例えば、記憶部１０１と、制御部１０２と、を有する。記憶部１０１は、例えば、不揮発メモリである。記憶部１０１の領域は、例えば、各種のプログラムデータを格納可能なプログラム領域と、書き込み対象データを格納可能なデータ領域と、に大別される。
【００１６】
制御部１０２は、プログラム領域に格納された複数のデータの各々についてデータが格納された部分領域についての書き込み保護の重要度を設定する。ここでの重要度は、数値や文字列などで表され、段階については特に限定しない。重要度については、プライオリティとも称する。図１の例では、プライオリティが「Ｈｉｇｈ」、「Ｍｉｄ」、「Ｌｏｗ」の３段階で表される。また、複数のデータは、プログラムデータである。
【００１７】
ここでは、データに関連する個所に故障が発生しても、消去しないデータについては、「Ｈｉｇｈ」が設定される。データに関連する個所に故障が発生した場合に、消去可能なデータについては、「Ｍｉｄ」が設定される。データに関連する個所に故障が発生し、消去するデータについては、「Ｌｏｗ」が設定される。
【００１８】
図１の例では、制御部１０２は、第１プログラムおよび第２プログラムについてのプライオリティを「Ｍｉｄ」に設定し、第３プログラムについてのプライオリティを「Ｈｉｇｈ」に設定する。第１プログラムは、例えば、通信に関するプログラムである。第２プログラムは、例えば、インターフェースに関するプログラムである。第３プログラムは、例えば、システム全体を制御するためのプログラムである。
【００１９】
また、プログラム領域は、予め書き込みが保護される。ここで、プログラム領域は、例えば、ブロック単位で書き込みが保護可能とする。そのため、プログラム領域の各データは、例えば、ブロック単位で区切ることが可能なようにプログラム領域内に格納されることとする。「Ｅｎａｂｌｅ」であると、書き込みが保護されていることを示し、「Ｄｉｓａｂｌｅ」であると、書き込みが保護されていないことを示す。例えば、第１プログラムから第３プログラムの書き込み保護については、「Ｅｎａｂｌｅ」が設定されてある。
【００２０】
制御部１０２は、端末装置１００内の故障が検出されると、検出された故障と設定済みのプライオリティとに基づいて、プライオリティを変更する。制御部１０２は、例えば、故障個所に関するプログラムのプライオリティを下げる。
【００２１】
制御部１０２は、例えば、通信部などが故障した場合、第１プログラムのプライオリティを下げるように変更する。また、制御部１０２は、例えば、インターフェースなどが故障した場合、第２プログラムのプライオリティを下げるように変更する。また、制御部１０２は、例えば、故障に応じたデータについてのプライオリティが「Ｈｉｇｈ」の場合、プライオリティを変更しない。図１の例では、制御部１０２は、第１プログラムのプライオリティを「Ｍｉｄ」から「Ｌｏｗ」に下げる。
【００２２】
そして、制御部１０２は、複数のデータのうち、変更後のプライオリティに基づくデータが格納された部分領域の書き込み保護を解除する。制御部１０２は、変更後のプライオリティが「Ｌｏｗ」である第１プログラムが格納された部分領域の書き込み保護を解除する。これにより、書き込み保護が解除された部分領域に対して書き込み対象データを書き込むことができる。制御部１０２は、例えば、解除後の部分領域に記憶されたデータの消去を記憶部１０１に指示する。そして、制御部１０２は、消去後の部分領域を、書き込み対象データを格納可能な領域に設定する。これにより、書き込み対象データのロストの可能性を低減させることができる。
【００２３】
図２は、システム例を示す説明図である。システム２００は、例えば、複数のセンサモジュール２０１と、基地局２０２やサーバ２０３、クライアント端末装置２０５と、を有する。
【００２４】
複数のセンサモジュール２０１−１〜２０１−６の各々は、例えば、上述した端末装置１００である。複数のセンサモジュール２０１−１〜２０１−６は、例えば、農場２１０内の様々な位置に設けられる。本実施の形態では、センサモジュール２０１が農場２１０に設けられる例を挙げるが、家や道路、崖、水中など様々な場所に設けられてよく、特に限定しない。複数のセンサモジュール２０１−１〜２０１−６の各々は、例えば、設置個所についてセンシングしたデータを記憶して各タイミングで基地局２０２やサーバ２０３に送信する。データを送信するタイミングは、農場２１０の監視内容に応じて変化させてよいが、例えば、１日ごとであったり、１時間ごとであってもよく、特に限定しない。
【００２５】
基地局２０２やサーバ２０３は、複数のセンサモジュール２０１−１〜２０１−６の各々から取得したデータを、ネットワーク２０４を介してクライアント端末装置２０５へ送信する。そして、クライアント端末装置２０５は、例えば、取得したデータを管理、運用することにより農場２１０の状態を監視する。
【００２６】
また、クライアント端末装置２０５は、例えば、センサモジュール２０１ごとに時系列に取得したデータを保持しておくことにより、データを受け付けていないセンサモジュール２０１などを特定することができる。これにより、クライアント端末装置２０５は、データを送信できないような故障が発生したセンサモジュール２０１を検出することができる。また、クライアント端末装置２０５は、例えば、複数のセンサモジュール２０１−１〜２０１−６のデータを比較することにより異常なデータであるセンサモジュール２０１を特定することができる。これにより、クライアント端末装置２０５は、データが異常となるような故障が発生したセンサモジュール２０１を検出することができる。
【００２７】
（センサモジュール２０１のハードウェア構成例）
図３は、センサモジュールのハードウェア構成例を示すブロック図である。センサモジュール２０１は、マイコン３０１と、各種のセンサ３０２と、無線機３０３と、ＲＡＭ３０４と、不揮発メモリ３０５と、故障判定回路３０６と、を有する。センサモジュール２０１は、書き込み保護解除回路３０７と、バッテリ３０８と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３０９と、アンテナ３１０と、を有する。
【００２８】
マイコン３０１は、例えば、センサモジュール２０１の全体の制御やデータ処理を行う制御部１０２である。具体的に、マイコン３０１は、不揮発メモリ３０５に記憶されたプログラムをＲＡＭ３０４にロードして実行することにより、全体の制御やデータ処理を行う。例えば、マイコン３０１は、センサ３０２がセンシングしたデータを処理する。
【００２９】
各種のセンサ３０２は、設置個所における所定の変位量を検出する検知部である。センサ３０２としては、例えば、設置個所の温度を検出する気温センサ３１１、設置個所の地熱を検出する地熱センサ３１２、設置個所の湿度を検出する湿度センサ３１３、設置個所の風力を検出する風力センサ３１４などが挙げられる。図示省略するが、センサ３０２としては、圧力センサ、光電センサなどであってもよい。
【００３０】
無線機３０３は、例えば、通信部である。無線機３０３は、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）などである。無線機３０３は、例えば、アンテナ３１０を介して受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３１０を介して送信する。アンテナ３１０は、基地局２０２やサーバ２０３、他のセンサモジュール２０１などと無線通信する電波を送受信する。ＲＡＭ３０４は、マイコン３０１における処理の一時データを格納する。
【００３１】
不揮発メモリ３０５は、例えば、記憶部１０１である。不揮発メモリ３０５は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。例えば、不揮発メモリ３０５としては、フラッシュメモリが挙げられる。不揮発メモリ３０５は、書き込み保護の機能を有する。不揮発メモリ３０５は、書き込み保護解除回路３０７からの信号に応じて、領域ごとに書き込み保護を行うか否かを設定可能とする。不揮発メモリ３０５がＮＡＮＤ型のフラッシュメモリである場合に、例えば、不揮発メモリ３０５は、書き込み保護が「Ｅｎａｂｌｅ」となると、内部高電圧発生回路の動作がリセットされ、不揮発メモリ３０５における書き込みや消去の動作が禁止となる。
【００３２】
故障判定回路３０６は、マイコン３０１、センサ３０２、無線機３０３などの各部の故障を検出する故障判定部である。故障判定回路３０６は、後述するように、各部を流れる電流値や電圧値に基づいて故障を検出してもよい。電流値や電圧値に基づいて無線機３０３の故障を検出するための故障判定回路３０６の簡単な例については、図５を用いて後述する。また、故障判定回路３０６は、例えば、無線機３０３の通信状況に応じて無線機３０３の故障を検出してもよい。故障判定回路３０６は、例えば、センサ３０２のセンシングデータに応じてセンサ３０２の故障を検出してもよい。
【００３３】
書き込み保護解除回路３０７は、例えば、マイコン３０１からの指示に応じて、不揮発メモリ３０５の各領域について書き込み保護の「Ｄｉｓａｂｌｅ」と「Ｅｎａｂｌｅ」とを制御するための解除信号を出力する。書き込み保護解除回路３０７は、例えば、不揮発メモリ３０５の領域について書き込み保護を「Ｄｉｓａｂｌｅ」とする場合、解除信号を「ＯＦＦ」とし、不揮発メモリ３０５の領域について書き込み保護を「Ｅｎａｂｌｅ」とする場合、解除信号を「ＯＮ」とする。
【００３４】
バッテリ３０８は、センサモジュール２０１の動作に要する電力を蓄える。ＰＭＵ３０９は、バッテリ３０８によって蓄えられた電力を、センサモジュール２０１の各部に駆動電源として供給する制御を行う。
【００３５】
また、図示省略するが、ハーベスタなどを有していてもよい。ハーベスタは、センサモジュール２０１の設置個所における外部環境、例えば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタは、センサ３０２によって検出された変位量に応じて発電を行ってもよい。
【００３６】
図４は、不揮発メモリのメモリマッピング情報例を示す説明図である。メモリマッピング情報４００は、例えば、領域ごとに、データ容量、プライオリティ、故障判定を示す情報である。図示省略するが、メモリマッピング情報４００は、不揮発メモリ３０５上の物理アドレス空間と論理アドレス空間のアドレス・マッピングとの対応関係を示す情報である。メモリマッピング情報４００は、例えば、不揮発メモリ３０５内の先頭などの所定の領域に記憶される。
【００３７】
データ容量は、領域に格納されるデータのサイズである。プログラム領域についてのプライオリティは、書き込み保護についての重要度である。データ領域についてのプライオリティは、データの重要度である。プライオリティについては、上述したように、「Ｈｉｇｈ」、「Ｍｉｄ」、「Ｌｏｗ」によって表す。
【００３８】
メモリマッピング情報４００によれば、不揮発メモリ３０５の合計データ容量は、２００［ＫＢ］である。不揮発メモリ３０５には、プログラム領域と、データ領域と、がある。プログラム領域には各種プログラムが記憶される。また、データ領域には収集データが記憶される。
【００３９】
まず、プログラム領域には、システム制御プログラム、データ書き込み制御プログラム、無線機制御プログラム、センサ制御プログラム、故障判定制御プログラム、故障個所書き換えプログラムなどが記憶される。マイコン３０１は、不揮発メモリ３０５に記憶された各プログラムを各種使用内容に応じて読み出して、各プログラムにコーディングされている処理を実行する。本発明にかかる障害対応制御プログラムは、システム制御プログラム、故障判定制御プログラム、故障個所書き換えプログラムなどのプログラムによって実現される。
【００４０】
システム制御プログラムは、センサモジュール２０１の全体を制御するプログラムである。システム制御プログラムのデータ容量は、１２０［ＫＢ］である。また、システム制御プログラムのプライオリティは、予め「Ｈｉｇｈ」に設定される。
【００４１】
データ書き込み制御プログラムは、各種のセンサ３０２によって検出されたデータを指定された領域に順に書き込むプログラムである。データ書き込み制御プログラムのデータ容量は、１６［ＫＢ］である。また、データ書き込み制御プログラムのプライオリティは、予め「Ｈｉｇｈ」に設定される。
【００４２】
無線機制御プログラムは、無線機３０３による通信を制御するプログラムである。無線機制御プログラムのデータ容量は、２０［ＫＢ］である。無線機制御プログラムのプライオリティは、予め「Ｍｉｄ」に設定される。
【００４３】
センサ制御プログラムは、センサ３０２ごとに用意されセンサ３０２を制御するプログラムである。センサ制御プログラムのデータ容量は、それぞれ５［ＫＢ］である。センサ制御プログラムのプライオリティは、通常時に「Ｍｉｄ」に設定される。センサ制御プログラムは、例えば、センサ３０２からセンシングのデータを取得し、データ領域に取得したデータを収集データとして記憶させる。また、センサ制御プログラムは、例えば、センサ３０２からセンシングのデータを取得し、取得したデータを閾値と比較して比較結果を収集データとして記憶させる。
【００４４】
故障判定制御プログラムは、無線機３０３などの各構成部における故障の判定を制御するプログラムである。故障判定制御プログラムのデータ容量は、１２［ＫＢ］である。故障判定制御プログラムのプライオリティは、予め「Ｍｉｄ」に設定される。
【００４５】
故障個所書き換えプログラムは、故障が発生した場合にメモリマッピング情報４００のプライオリティなどの変更を行うプログラムである。故障個所書き換えプログラムのデータ容量は、８［ＫＢ］である。故障個所書き換えプログラムのプライオリティは、予め「Ｍｉｄ」に設定される。
【００４６】
データ領域には書き込み対象データが記憶される。書き込み対象データは、例えば、外部から取得したデータであったり、特に限定しない。ここでは、書き込み対象データは、例えば、センシングされたデータに基づくデータである。各種センサ３０２からセンシングされたデータに基づくデータとは、例えば、センシングされたデータそのものであってもよいし、センシングされたデータと閾値との比較結果や、センシングされたデータと閾値との差分値などであってもよい。ここでは、センシングされたデータそのものを書き込み対象データとする。ここで、書き込み対象データを収集データとも称する。データ領域のデータ容量は、４［ＫＢ］である。収集データのプライオリティは、予め「Ｈｉｇｈ」に設定される。
【００４７】
図５は、故障判定回路の詳細例を示す説明図である。故障判定回路３０６は、電圧計５０１と電流計５０２とを有する。電圧計５０１と電流計５０２とはＰＭＵ３０９から無線機３０３に供給する電源ラインに設けられる。これにより、故障判定回路３０６は、無線機３０３に印加される電圧値、無線機３０３で消費する電流値をモニタできる。
【００４８】
故障判定回路３０６は、無線機３０３が起動したとき、電圧計５０１および電流計５０２によって測定された電圧値および電流値がそれぞれの所定の範囲内であるか否かを判定する。所定の範囲は、例えば、予め定められてあり、故障判定回路３０６内のバッファなどに記憶されてある。例えば、故障判定回路３０６によって電圧値および電流値のいずれもが所定の範囲内であると判定された場合、無線機３０３は、データを基地局２０２やサーバ２０３などに送信する。
【００４９】
また、故障判定回路３０６は、無線機３０３によるデータの送信時に電圧計５０１および電流計５０２によって測定された電圧値および電流値がそれぞれの所定の範囲内であるか否かを判定する。
【００５０】
ここで、故障判定回路３０６は、電圧値および電流値のいずれもが所定の範囲内であると判定した場合、故障していないと判定する。一方、故障判定回路３０６は、電圧値および電流値のいずれもが所定の範囲内でないと判定した場合、故障していると判定する。例えば、無線機３０３が短絡モードで故障しているときは電圧垂下し、消費電流が増加する。このため、故障判定回路３０６は、電圧値と電流値とのうちの少なくともいずれか一方が所定の範囲よりも大きい場合、故障と判断する。また、無線機３０３が解放モードや非動作で故障しているときには電流が流れない状態となるため、故障判定回路３０６は、電流値と電圧値とのうちの少なくともいずれか一方がそれぞれ所定の範囲よりも小さい場合、故障であると判定する。
【００５１】
また、故障判定回路３０６は、例えば、無線機３０３が基地局２０２やサーバ２０３からの応答を受信できない場合に、無線機３０３が故障したと判定する。
【００５２】
また、故障判定回路３０６は、各種のセンサ３０２によるセンシングデータがそれぞれの所定の範囲内であるか否かを判断することにより各種のセンサ３０２が故障したか否かを判定してもよい。また、故障判定回路３０６は、無線機３０３と同様に電流計や電圧計などによって各種のセンサ３０２が故障しているか否かを判定してもよい。
【００５３】
例えば、気温センサ３１１についての所定の範囲を「−１０度」から「４０度」とする。気温センサ３１１によって検知された気温が「−４０度」であると、故障判定回路３０６は、検知された気温が「０度」から「４０度」内でないため、気温センサ３１１が故障したと判断する。
【００５４】
つぎに、マイコン３０１は、センサモジュール２０１における故障が検出されると、故障個所に応じたプログラムについてのプライオリティを変更する。ここで、プライオリティを変更するとは、マイコン３０１がプライオリティを変更するための書き込み要求を不揮発メモリ３０５へ通知していることである。
【００５５】
また、マイコン３０１は、例えば、プライオリティを変更する際に、通知された故障個所に応じたプログラムについての現状のプライオリティを確認後に、プライオリティの変更を行ってもよい。例えば、故障個所に応じたプログラムについてのプライオリティが「Ｈｉｇｈ」であれば、マイコン３０１は、プライオリティの変更を行わない。故障個所に応じたプログラムについてのプライオリティが「Ｍｉｄ」であれば、マイコン３０１は、プライオリティを「Ｌｏｗ」に変更する。
【００５６】
または、マイコン３０１は、現状のプライオリティを確認せずに、故障個所に応じたプログラムについてのプライオリティを「Ｌｏｗ」にする書き込み要求を不揮発メモリ３０５へ通知してもよい。そして、不揮発メモリ３０５は、プライオリティが「Ｈｉｇｈ」の場合については書き込み要求に対する書き込み要求を行わず、プライオリティが「Ｌｏｗ」の場合については書き込み要求に対する書き込み要求を行うようにしてもよい。
【００５７】
ここで、無線機３０３が故障しているという通知を故障判定回路３０６から受け付けた例について説明する。図６の例では、マイコン３０１は、メモリマッピング情報４００を参照して、無線機３０３に関する無線機制御プログラムについてのプライオリティを「Ｍｉｄ」から「Ｌｏｗ」に変更する。例えば、無線機３０３が故障した場合については、マイコン３０１は、無線機制御プログラムだけでなく、故障判定制御プログラムについてのプライオリティを「Ｍｉｄ」から「Ｌｏｗ」にしてもよい。
【００５８】
また、故障判定回路３０６は、例えば、メモリマッピング情報４００の無線機制御プログラムのプライオリティを変更するための指示をマイコン３０１に通知し、マイコン３０１は、指示に応じてプライオリティを変更してもよい。
【００５９】
図６は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その１）である。図６（１）に示すように、プログラムの領域については、ライトプロテクトがすべて「Ｅｎａｂｌｅ」であり、収集データの領域については、ライトプロテクトが「Ｄｉｓａｂｌｅ」となっている。
【００６０】
ここで、マイコン３０１は、無線機３０３が故障していると故障判定回路３０６から通知を受け付けると、故障個所書き換えプログラムを読み出して実行する。そして、マイコン３０１は、故障個所書き換えプログラムによって、故障個所である無線機３０３に対応する無線機制御プログラムと、データ書き込み制御プログラムと、のライトプロテクトを解除するように書き込み保護解除回路３０７へ指示する。
【００６１】
これにより、図６（２）に示すように、無線機制御プログラムと、データ書き込み制御プログラムと、のライトプロテクトが「Ｅｎａｂｌｅ」から「Ｄｉｓａｂｌｅ」に変更される。
【００６２】
図７は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その２）である。つぎに、マイコン３０１は、故障個所書き換えプログラムによって、無線機制御プログラムが格納された領域を解放するように不揮発メモリ３０５へ指示する。
【００６３】
これにより、図７（３）に示すように、不揮発メモリ３０５は、無線機制御プログラムを消去する。
【００６４】
そして、マイコン３０１は、故障個所書き換えプログラムによって、無線機制御プログラムが格納されていた領域を収集データの格納領域となるようにデータ書き込み制御プログラムに記述されたデータ書き込み領域を変更する。
【００６５】
図７（４）に示すように、データ書き込み制御プログラムに記述されたデータ書き込み領域を示すアドレスは、アドレス「０ｘｘＡ〜０ｘｘＦ」であったが、無線機制御プログラムが格納されていた領域を表すアドレス「９ｘｘＡ〜１２ｘｘＦ」が追加される。
【００６６】
これにより、データ書き込み制御プログラムが、マイコン３０１によって実行されると、無線機制御プログラムが格納されていた領域は収集データの書き込み領域として使用可能となる。
【００６７】
図８は、ライトプロテクト制御および記憶内容の変化例を示す説明図（その３）である。図８（５）に示すように、マイコン３０１は、データ書き込み制御プログラムをライトプロテクトするように書き込み保護解除回路３０７へ通知する。これにより、データ書き込み制御プログラムのライトプロテクトが「Ｄｉｓａｂｌｅ」から「Ｅｎａｂｌｅ」に変更になる。
【００６８】
また、図示省略するが、マイコン３０１は、メモリマッピング情報４００について、無線機制御プログラムについてのプライオリティを「Ｈｉｇｈ」に変更する。これにより、他の構成部に故障が発生した場合において過去に無線機制御プログラムが格納されていた部分領域に対してマイコン３０１による処理が行われなくなり、収集データを格納しておくことができる。
【００６９】
ここで、上述したように、不揮発メモリ３０５の記憶容量が２００［ＫＢ］であり、不揮発メモリ３０５の記憶領域のうちの９８［％］の領域がプログラム領域であり、不揮発メモリ３０５の記憶領域のうちの２［％］の４［ＫＢ］の領域がデータ領域である。例えば、各種のセンサ３０２が１回あたりに取得するデータのサイズが１０［Ｂ］であり、マイコン３０１がセンサ３０２から１時間に１回データを取得する場合、データ領域には、４０回分のデータの蓄積が可能である。このため、センサモジュール２０１は、１．５日に１回程度、蓄積データを基地局２０２やサーバ２０３に送信し、つぎの収集データのためにデータ領域を解放することになる。
【００７０】
センサモジュール２０１の無線機３０３に故障が生じた場合、データ領域から取得したデータが解放されないため、故障から１．５日経過後には、あらたに取得したデータは随時ロストすることになる。本実施の形態では、故障個所である無線制御プログラムが記憶されたプログラム領域を解放すると、２０［ＫＢ］の領域がデータ領域として拡張されるため、あらたに２００回分のデータが蓄積可能となる。２００回／２４時間は、８．３日分である。これにより、センサモジュール２０１の修理や交換を実施するための十分な時間が確保でき、データのロストを抑制することができる。
【００７１】
（センサモジュール２０１による書き込み保護解除の処理手順）
図９から図１０は、センサモジュールによる書き込み保護解除の処理手順例を示すシーケンス図である。故障判定回路３０６は、故障があるか否かを判断する（ステップＳ９０１）。そして、故障があると判断された場合（ステップＳ９０１：Ｙｅｓ）、故障判定回路３０６は、故障個所をマイコン３０１へ通知し（ステップＳ９０２）、一連の処理を終了する。故障がないと判断された場合（ステップＳ９０１：Ｎｏ）、故障判定回路３０６は、ステップＳ９０１へ戻る。ステップＳ９０１およびステップＳ９０２の故障判定処理手順の詳細例については、図１０に示す。
【００７２】
マイコン３０１は、故障個所の通知を故障判定回路３０６から受け付けると、故障個所の書き換え処理を開始する。まず、マイコン３０１は、通常動作を停止する（ステップＳ９１１）。ここで、通常動作を停止するとは、例えば、システム制御プログラムの実行を一時中断することである。
【００７３】
マイコン３０１は、通知された故障個所に応じたプログラムについてのプライオリティを変更する（ステップＳ９１２）。不揮発メモリ３０５は、該当領域に書き込みを行う（ステップＳ９４１）。不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９４２）。
【００７４】
そして、マイコン３０１は、故障個所書き換えプログラムを読み出す（ステップＳ９１３）。ここでは、マイコン３０１は、不揮発メモリ３０５に対して故障個所書き換えプログラムの読み出し指示を通知する。つぎに、不揮発メモリ３０５は、読み出し指示された領域のデータを読み出し、マイコン３０１へ送る（ステップＳ９４３）。これにより、故障個所書き換えプログラムが読み出される。
【００７５】
マイコン３０１は、読み出された故障個所書き換えプログラムを実行する。そして、マイコン３０１は、メモリマッピング情報４００を参照して、各領域のプライオリティを確認する（ステップＳ９１４）。つぎに、不揮発メモリ３０５は、読み出し指示された領域のデータを読み出し、マイコン３０１へ送る（ステップＳ９４４）。
【００７６】
マイコン３０１は、書き込み保護解除回路３０７に対して、プライオリティに基づく故障個所に関するプログラムおよびデータ書き込み制御プログラムの書き込み保護の解除を指示する（ステップＳ９１５）。プライオリティに基づく故障個所に関するプログラムは、上述例では、プライオリティが「Ｌｏｗ」のプログラムである。
【００７７】
書き込み保護解除回路３０７は、故障個所に関するプログラムおよびデータ書き込み制御プログラムの書き込み保護の解除信号をＯＮにする（ステップＳ９３１）。そして、不揮発メモリ３０５は、故障個所に関するプログラムおよびデータ書き込み制御プログラムが記憶された領域の書き込み保護をＤｉｓａｂｌｅにする（ステップＳ９４５）。不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９４６）。
【００７８】
マイコン３０１は、不揮発メモリ３０５に対して故障個所に関するプログラムの領域の解放を指示する（ステップＳ９１６）。つぎに、不揮発メモリ３０５は、指示された該当領域のデータを消去する（ステップＳ９４７）。そして、不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９４８）。
【００７９】
つぎに、マイコン３０１は、データ書き込み制御プログラムについて収集データの書き込み先の追加を指示する（ステップＳ９１７）。ここでは、マイコン３０１は、例えば、故障個所に関するプログラムの領域を、収集データの書き込み先に追加の指示を行う。不揮発メモリ３０５は、指示に応じて該当領域に書き込みを行う（ステップＳ９４９）。そして、不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９５０）。
【００８０】
マイコン３０１は、データ書き込み制御プログラムの領域の書き込み保護を指示する（ステップＳ９１８）。そして、書き込み保護解除回路３０７は、解除信号をＯＦＦする（ステップＳ９３２）。不揮発メモリ３０５は、データ書き込み制御プログラムが記憶された領域の書き込み保護をＥｎａｂｌｅにする（ステップＳ９５１）。
【００８１】
そして、不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９５２）。マイコン３０１は、不揮発メモリ３０５からの完了通知を受け付けると、データ消去後の領域のプライオリティを「Ｈｉｇｈ」に変更する（ステップＳ９１９）。不揮発メモリ３０５は、指示に応じて該当領域に書き込みを行う（ステップＳ９５３）。そして、不揮発メモリ３０５は、マイコン３０１に対して完了を通知する（ステップＳ９５４）。そして、故障個所の書き換え処理を完了し、通常動作を開始する（ステップＳ９２０）。ここで、通常動作を開始するとは、例えば、システム制御プログラムの実行の続きを行う。
【００８２】
（無線機３０３および故障判定回路３０６による故障判定処理手順）
図１１は、無線機および故障判定回路による故障判定処理手順例を示すシーケンス図である。ここでは、データ送信時に故障を判定する例を説明するが、判定のタイミングについては特に限定しない。
【００８３】
データの送信タイミングになると、無線機３０３は、起動する（ステップＳ１１０１）。つぎに、無線機３０３が起動されると、故障判定回路３０６は、測定した電圧値は所定の範囲内か否かを判断する（ステップＳ１１１１）。電圧値が所定の範囲内である場合（ステップＳ１１１１：Ｙｅｓ）、故障判定回路３０６は、測定した電流値は所定の範囲内か否かを判断する（ステップＳ１１１２）。
【００８４】
電圧値が所定の範囲内でない場合（ステップＳ１１１１：Ｎｏ）、または電流値が所定の範囲内でない場合（ステップＳ１１１２：Ｎｏ）、故障判定回路３０６は、故障個所をマイコン３０１など各部へ通知する（ステップＳ１１１３）。そして、故障判定回路３０６は、ステップＳ１１１４へ移行する。電流値が所定の範囲内である場合（ステップＳ１１１２：Ｙｅｓ）、故障判定回路３０６は、ステップＳ１１１４へ移行する。
【００８５】
無線機３０３は、データの送信を開始する（ステップＳ１１０２）。無線機３０３がデータの送信を開始すると、故障判定回路３０６は、電圧値が所定の範囲内か否かを判断する（ステップＳ１１１４）。電圧値が所定の範囲内であると判断された場合（ステップＳ１１１４：Ｙｅｓ）、故障判定回路３０６は、電流値が所定の範囲内であるか否かを判断する（ステップＳ１１１５）。
【００８６】
電圧値が所定の範囲内でないと判断された場合（ステップＳ１１１４：Ｎｏ）、または電流値が所定の範囲内でないと判断された場合（ステップＳ１１１５：Ｎｏ）、故障判定回路３０６は、ステップＳ１１１６へ移行する。故障判定回路３０６は、故障個所をマイコン３０１などの各部へ通知し（ステップＳ１１１６）、一連の処理を終了する。電流値が所定の範囲内であると判断された場合（ステップＳ１１１５：Ｙｅｓ）、故障判定回路３０６は、一連の処理を終了する。無線機３０３は、送信を完了する（ステップＳ１１０３）。そして、無線機３０３は、停止し（ステップＳ１１０４）、一連の処理を終了する。
【００８７】
以上説明したように、端末装置１００は、書き込みが保護されたプログラム領域のデータごとに重要度を設けておき、検出した故障と設定済みの重要度とに基づき重要度を変更し、変更後の重要度に基づくデータの領域の書き込み保護を解除する。書き込み保護が解除されたデータの領域に書き込み対象データを書き込むことができるため、書き込み対象データのロストの可能性を低減させることができる。
【００８８】
端末装置１００は、解除後の部分領域に記憶されたデータの消去を記憶部に指示し、消去後の部分領域を、書き込み対象データを格納可能な領域に設定する。これにより、書き込み対象データの格納領域を拡張させることができる。
【００８９】
また、記憶部は、プログラム領域と異なる領域に書き込み対象データを格納可能な領域を有する。これにより、予め決められたデータ領域に書き込み対象データを格納し、故障発生時に当該データ領域が足りない場合に、拡張された領域に書き込み対象データを書き込むことができる。
【００９０】
また、端末装置１００は、センサを有し、センサによってセンシングされたデータを書き込み対象データとする。センサモジュールなどのようにメンテナンスが困難な端末装置に故障が発生した場合における書き込み対象データのロストの可能性を低減させることができる。
【００９１】
また、端末装置１００は、書き込み対象データを外部に送信する通信部を有し、通信部の故障を電流値または電圧値に基づいて検出する。これにより、通信部の故障を簡単に検出することができる。
【００９２】
また、端末装置１００は、書き込み対象データを外部に送信する通信部を有し、通信部の故障を通信状況に基づいて検出する。これにより、通信部の故障を簡単に検出することができる。
【００９３】
なお、本実施の形態で説明した障害対応制御方法は、障害対応制御プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。上述したように、障害対応制御プログラムは、システム制御プログラム、故障判定制御プログラム、故障個所書き換えプログラムなどに分割されてもよい。障害対応制御プログラムは、不揮発メモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、障害対応制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【００９４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９５】
（付記１）自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
制御部を有することを特徴とする端末装置。
【００９６】
（付記２）前記制御部は、
解除後の前記部分領域に記憶されたデータの消去を前記記憶部に指示し、
消去後の前記部分領域を、書き込み対象データを格納可能な領域に設定する、
ことを特徴とする付記１に記載の端末装置。
【００９７】
（付記３）前記記憶部は、前記プログラム領域と異なる領域に前記書き込み対象データを格納可能な領域を有することを特徴とする付記２に記載の端末装置。
【００９８】
（付記４）センシングを行う検知部を有し、
前記書き込み対象データは、前記検知部によってセンシングされたデータに基づくデータであることを特徴とする付記２または３に記載の端末装置。
【００９９】
（付記５）前記記憶部に記憶された前記書き込み対象データを外部に送信する通信部を有し、
前記制御部は、
前記通信部の故障が検出されると、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更することを特徴とする付記２〜４のいずれか一つに記載の端末装置。
【０１００】
（付記６）前記通信部の電流値または電圧値に基づいて前記通信部の故障を検出する故障検出部を有し、
前記制御部は、
前記故障検出部によって前記通信部の故障が検出されると、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更することを特徴とする付記５に記載の端末装置。
【０１０１】
（付記７）前記通信部の通信状況に基づいて前記通信部の故障を検出する故障検出部を有し、
前記制御部は、
前記故障検出部によって前記通信部の故障が検出されると、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更することを特徴とする付記５または６に記載の端末装置。
【０１０２】
（付記８）コンピュータに、
自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
処理を実行させることを特徴とする障害対応制御プログラム。
【０１０３】
（付記９）コンピュータが、
自端末装置内の故障が検出されると、書き込みが保護されたプログラム領域に格納された複数のデータの各々について、前記データが格納された部分領域についての書き込み保護の重要度が設定された記憶部を参照して、検出された前記故障と設定済みの前記重要度とに基づいて、前記重要度を変更し、
前記複数のデータのうち、変更後の前記重要度に基づくデータが格納された部分領域の書き込み保護を解除する、
処理を実行することを特徴とする障害対応制御方法。
【符号の説明】
【０１０４】
１００  端末装置
１０１  記憶部
１０２  制御部
２００  システム
２０１  センサモジュール
２０２  基地局
２０３  サーバ
２０４  ネットワーク
２０５  クライアント端末装置
２１０  農場
３０１  マイコン
３０２  センサ
３０３  無線機
３０４  ＲＡＭ
３０５  不揮発メモリ
３０６  故障判定回路
３０７  書き込み保護解除回路
３０８  バッテリ
３０９  ＰＭＵ
３１０  アンテナ
３１１  気温センサ
３１２  地熱センサ
３１３  湿度センサ
３１４  風力センサ
４００  メモリマッピング情報
５０１  電圧計
５０２  電流計
【図１】
2017199162.tif 000003
【図２】
2017199162.tif 000004
【図３】
2017199162.tif 000005
【図４】
2017199162.tif 000006
【図５】
2017199162.tif 000007
【図６】
2017199162.tif 000008
【図７】
2017199162.tif 000009
【図８】
2017199162.tif 000010
【図９】
2017199162.tif 000011
【図１０】
2017199162.tif 000012
【図１１】
2017199162.tif 000013