(57)【要約】【課題】  プログラム変更時の負担を小さくすることができる電子機器を提供する。【解決手段】  プログラムエリア７１をバージョンアップ毎に書き換えられる書換エリア９１と通常エリア９２に区分する。通常エリア９２の基本プログラムエリア１０１に基本プログラムを記憶し、テーブルエリア１０２に共通ライブラリ８４の各関数を記憶した固定アドレスを記憶して、各関数と対応する固定アドレスとが関連付けられた関数テーブル１０３を構築する。書換エリア９１の中継エリア１１２に、アプリケーションプログラム８１が関数を実行しようとした際に呼び出され、通常エリア９２内の関数テーブル１０３を参照して対応する固定アドレスに記憶された関数を呼び出して実行する関数呼び出し用のプログラムを記憶する。【選択図】        図３
2005050227.tif 000002
【特許請求の範囲】
【請求項１】
プログラムエリアに記憶されたプログラムに従って処理を実行する電子機器であって、前記プログラムエリアに、処理手順を決定するアプリケーションプログラムと、該アプリケーションプログラムで呼び出されて実行される呼出プログラムを備えたハードウエアに依存する基本プログラムとが記憶され、このプログラムエリアに記憶された記憶内容が通信で送られてきた通信内容に書き換えられる電子機器において、
前記プログラムエリアを、前記通信内容に書き換えられる書換エリアと通常エリアとに区分し、
該通常エリアに、前記基本プログラムが記憶された基本プログラムエリアと、前記呼出プログラムを記憶した固定アドレスを示すテーブルが記憶されたテーブルエリアとを設定する一方、
前記書換エリアに、前記アプリケーションプログラムが記憶されるアプリケーションエリアと、当該書換エリアから前記通常エリアへの中継処理用の中継エリアとを設定し、
該中継エリアに、前記アプリケーションプログラムが前記呼出プログラムを実行しようとした際に呼び出され、前記通常エリア内の前記テーブルを参照して対応する固定アドレスに記憶された前記呼出プログラムを呼び出して実行する中継プログラムを記憶したことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信によってプログラムが変更される電子機器に関する。
【背景技術】
【０００２】
従来、ビル等を離れた場所から監視する際には、電子機器である監視装置が用いられていた。
【０００３】
この監視装置は、温度監視などを無人で行えるように構成されており、温度センサを用いた測定機能や監視機能及び通信機能をソフトウェアにより実現している。
【０００４】
また、この監視装置は、仕様変更や仕様追加などに対応する為に、通信回線を利用してプログラムを変更するリモートアップデート機能を備えている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この監視装置にあっては、ソフトウェアに静的なリンクでしか構築できないＯＳやデバイスドライバ等のハードウエアに依存した基本プログラムを利用する場合、これらの基本プログラムも通信時に一括してリモートアップデートしなければならず、通信するプログラムの容量が大きくなってしまう。
【０００６】
つまり、図６に示すように、アプリケーションプログラム７０１と、このアプリケーションプログラム７０１を実行するために必要な基本プログラム７０２の関数等を、図７に示すように、リンクして一括してコンパイルするとともに、このコンパイルされたオブジェクトプログラム７０３を送信してフラッシュメモリ７０４に記憶させる構造上、変更が生じない関数７０５に関してもリモートアップデートを実行する度に送信しなければならなかった。
【０００７】
このため、携帯電話パケット網を利用する端末を使用して通信を行う場合、プログラムサイズの増大に比例して電話料金も増大するという問題があった。
【０００８】
本発明は、このような従来の課題に鑑みてなされたものであり、プログラム変更時の負担を小さくすることができる電子機器を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
前記課題を解決するために本発明の電子機器にあっては、プログラムエリアに記憶されたプログラムに従って処理を実行する電子機器であって、前記プログラムエリアに、処理手順を決定するアプリケーションプログラムと、該アプリケーションプログラムで呼び出されて実行される呼出プログラムを備えたハードウエアに依存する基本プログラムとが記憶され、このプログラムエリアに記憶された記憶内容が通信で送られてきた通信内容に書き換えられる電子機器において、前記プログラムエリアを、前記通信内容に書き換えられる書換エリアと通常エリアとに区分し、該通常エリアに、前記基本プログラムが記憶された基本プログラムエリアと、前記呼出プログラムを記憶した固定アドレスを示すテーブルが記憶されたテーブルエリアとを設定する一方、前記書換エリアに、前記アプリケーションプログラムが記憶されるアプリケーションエリアと、当該書換エリアから前記通常エリアへの中継処理用の中継エリアとを設定し、該中継エリアに、前記アプリケーションプログラムが前記呼出プログラムを実行しようとした際に呼び出され、前記通常エリア内の前記テーブルを参照して対応する固定アドレスに記憶された前記呼出プログラムを呼び出して実行する中継プログラムを記憶した。
【００１０】
すなわち、プログラムエリアは、通信で書き換えられる書換エリアと通常エリアとに区分されており、ハードウエアに依存する為にシステムの見直し等以外で書き換えられることの無い基本プログラムは、前記通常エリアに設定された基本プログラムエリアに記憶される一方、仕様変更や仕様追加などのバージョンアップ時に書換を要するアプリケーションプログラムは、前記書換エリアのアプリケーションエリアに記憶される。このため、基本プログラムの変更を伴わないアプリケーションプログラム変更時には、当該アプリケーションプログラムが記憶された書換エリアのみが書き換えられる。
【００１１】
このとき、前記通常エリアには、前記アプリケーションプログラムで使用する呼出プログラムが記憶されており、この呼出プログラムの固定アドレスは、テーブルエリアにテーブルとして記憶されている。つまり、該テーブルと前記呼出プログラムとの両者は、通常時には書き換えられない通常エリアに記憶されており、前記テーブルにおいて、前記呼出プログラムの固定アドレスを、書換によって変更されない絶対値として示すことができる。
【００１２】
また、前記書換エリアには、当該書換エリアから前記通常エリアへの中継処理用の中継エリアが設定されており、該中継エリアには、前記アプリケーションプログラムが前記基本プログラムの呼出プログラムを実行しようとした際に呼び出され、前記通常エリア内の前記テーブルを参照して対応する固定アドレスに記憶された前記呼出プログラムを呼び出して実行する中継プログラムが記憶されている。このため、アプリケーションプログラムが記憶された書換エリアと、前記呼出プログラムが記憶された通常エリアとが区分されていることを意識すること無く、前記呼出プログラムを実行することができる。
【００１３】
このとき、通信内容に書き換えられる書換エリアには、書換時に内容が変更されるアプリケーションプログラムと、該アプリケーションプログラムから呼出プログラムを実行する際に前記通常エリア内の呼出プログラムを実行させるための中継プログラムとが記憶されている。このため、前記中継プログラムの呼出を、前記通常エリアの影響を受けること無く、当該書換エリア内での相対アドレスを用いて行うことができる。
【発明の効果】
【００１４】
以上説明したように本発明の電子機器にあっては、基本プログラムの変更を伴わないアプリケーションプログラム変更時において、当該アプリケーションプログラムが記憶された書換エリアのみを書き換えることができる。このため、プログラム変更時に、アプリケーションプログラムのみならず、変更が生じない基本プログラムも一括して書き換えなければならなかった従来と比較して、書き換え用のプログラム容量を小さくすることができる。
【００１５】
したがって、プログラムを通信で書き換えるリモートアップデート時には、通信データ量を抑えることで通信時の負担を軽減し、通信料金を削減することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施の形態を図面に従って説明する。図１は、本実施の形態にかかる電子機器である遠隔監視装置１を複数備えたシステムを示す図であり、各遠隔監視装置１，・・・は、監視対象となるビル等に設置されている。
【００１７】
各遠隔監視装置１，・・・は、無線通信を利用して携帯電話パケット網１１に接続できるように構成されており、該携帯電話パケット網１１を介して、ネットワークであるインターネット１２に接続できるように構成されている。
【００１８】
この前記インターネット１２には、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）２１を介してホストコンピュータ２２が接続されており、該ホストコンピュータ２２は、前記各遠隔監視装置１，・・・と通信することで、各遠隔監視装置１，・・・からデータを収集できるように構成されている。また、仕様変更や仕様追加によるソフトウエアのバージョンアップ時には、オブジェクトファイルを各遠隔監視装置１，・・・送信することで、各遠隔監視装置１，・・・のプログラムを遠隔地から変更できるように構成されている。
【００１９】
前記遠隔監視装置１は、図２に示すように、ＣＰＵ３１を中心に構成されている。このＣＰＵ３１のＣＰＵコア３２には、システムタイマとして利用する第１タイマ３３と、時計の代わりとして利用する第２タイマ３４とが接続されており、前記ＣＰＵコア３２は、第１のＳＩＯ３５を介して、第１のＲＳ２３２Ｃポート３６に接続されている。この第１のＲＳ２３２Ｃポート３６には、保守用のパソコン３７を接続できるように構成されており、外部から保守管理ができるように構成されている。
【００２０】
また、前記ＣＰＵコア３２は、第２のＳＩＯ４１を介して第２のＲＳ２３２Ｃポート４２に接続されており、この第２のＲＳ２３２Ｃポート４２には、無線通信を利用したデータ通信用のテレメトリング端末である携帯電話４３が接続されている。これにより、この携帯電話４３によってＩＳＰへＰＰＰ（Ｐｏｉｎｔｏ−ｔｏ−Ｐｏｉｔｏ  Ｐｒｏｔｏｃａｌ）接続した後、インターネット１２を経由して、前記ホストコンピュータ２２に接続して通信できるように構成されている。
【００２１】
さらに、前記ＣＰＵコア３２は、ＩＯポート５１を介して、監視箇所に設置された接点センサや温度センサ等の監視センサ５２が接続されており、例えば窓の開放や火災の発生等を監視データとして取得できるように構成されている。
【００２２】
そして、前記ＣＰＵコア３２には、外部バス６１を介して、ＲＯＭ６２とＲＡＭ６３とが接続されている。
【００２３】
前記ＲＯＭ６２は、記憶内容を電気信号により書換可能なフラッシュメモリによって構成されており、当該ＲＯＭ６２には、図３に示すように、プログラム等を記憶するプログラムエリア７１が設定されている。これにより、前記ＣＰＵ３１が、このプログラムによる処理手順に従って動作することで、当該遠隔監視装置１を作動できるように構成されている。
【００２４】
前記プログラムエリア７１には、前記ＣＰＵ３１の処理手順を決定するアプリケーションプログラム８１と、図２のブロック図に示した各ブロックを作動させるハードウエアに依存した基本プログラムとが記憶されている。この基本プログラムは、ＩＯポート５１等の周辺回路用にプログラムされたデバイスドライバ８２、ＣＰＵ３１固有のファームウエアであるＯＳ８３、共通ライブラリ８４、及び通信時に使用されるプロトコルスタック８５とによって構成されており、前記共通ライブラリ８４は、前記アプリケーションプログラム８１で呼び出されて実行される呼出プログラムとしての複数の関数によって構成されている。
【００２５】
そして、前記プログラムエリア７１に記憶された記憶内容は、前記携帯電話４３を利用した無線通信により前記インターネット１２経由で前記ホストコンピュータ２２からオブジェクトファイルが送られて来た際に、通信内容であるオブジェクトファイルに書き換えられるように構成されている。
【００２６】
このプログラムエリア７１は、バージョンアップ毎に前記オブジェクトファイルに書き換えられる書換エリア９１と、その他の通常エリア９２とに区分されている。
【００２７】
該通常エリア９２には、基本プログラムエリア１０１とテーブルエリア１０２とが設定されており、前記基本プログラムエリア１０１には、前記デバイスドライバ８２と前記ＯＳ８３と前記共通ライブラリ８４と前記プロトコルスタック８５とからなる前記基本プログラムが記憶されている。また、前記テーブルエリア１０２には、前記共通ライブラリ８４の各関数を記憶した固定アドレスが記憶されており、各関数と対応する固定アドレスとが関連付けられた関数テーブル１０３が構築されている。
【００２８】
一方、前記書換エリア９１には、前記アプリケーションプログラム８１が記憶されたアプリケーションエリア１１１と、当該書換エリア９１から前記通常エリア９２への中継処理用の中継エリア１１２とが設定されている。該中継エリア１１２には、前記アプリケーションプログラム８１が前記関数を実行しようとした際に呼び出され、前記通常エリア９２内の前記関数テーブル１０３を参照して対応する固定アドレスに記憶された関数を呼び出して実行する関数呼び出し用のプログラムが記憶されている。
【００２９】
すなわち、前記プログラムエリア７１は、図４に示すように、バージョンアップ時には変更されない前記通常エリア９２が「Ａ０００００００ｈ」番地〜「Ａ０００１ＦＦＦｈ」番地までの領域に設定されており、バージョンアップ毎に書き換えられる前記書換エリア９１は、「Ａ０００２０００ｈ」番地以降の領域に設定されている。この書換エリア９１には、前記中継エリア１１２と前記アプリケーションエリア１１１とが「Ａ０００２０００ｈ」番地から順に記憶されている。
【００３０】
前記通常エリア９２の「Ａ０００００００ｈ」番地〜「Ａ００００ＦＦＦｈ」番地までの領域には、前記基本プログラムエリア１０１が設定されており、前記共通ライブラリ８４を構成する第１関数１２１及び第２関数１２２（関数実体）は、この基本プログラムエリア１０１内に記憶されている。また、前記通常エリア９２の「Ａ０００１０００ｈ」番地〜「Ａ０００１ＦＦＦｈ」番地までの領域には、前記テーブルエリア１０２が設定されており、図５にも示すように、前記第１関数１２１が記憶された先頭番地を示す第１固定アドレス１２５「Ａ０００１０００ｈ」、及び前記第２関数１２２が記憶された先頭番地を示す第２固定アドレス１２６「Ａ０００１００４ｈ」は、このテーブルエリア１０２内に記憶されている。
【００３１】
そして、前記アプリケーションエリア１１１には、前記アプリケーションプログラム８１の第１ファイル１３１や第２ファイル１３２等が記憶されており、前記中継エリア１１２には、前記アプリケーションプログラム８１が前記第１関数１２１を実行しようとした際に呼び出され、前記通常エリア９２内の前記関数テーブル１０３の第１固定アドレス１２５を参照して、その第１アドレス１２５先に記憶された第１関数１２１を呼び出して実行する第１中継プログラム１３５と、前記アプリケーションプログラム８１が前記第２関数１２２を実行しようとした際に呼び出され、前記関数テーブル１０３の第２固定アドレス１２６を参照して、その第２アドレス１２６先に記憶された第２関数１２２を呼び出して実行する第２中継プログラム１３６等が記憶されている。
【００３２】
以上の構成にかかる本実施の形態において、ＲＯＭ６２内のプログラムエリア７１は、通信によって書き換えられる書換エリア９１と通常エリア９２とに区分されており、ハードウエアに依存する為にシステムの見直し等以外では書き換えられることの無いデバイスドライバ８２やＯＳ８３や共通ライブラリ８４やプロトコルスタック８５からなる基本プログラムは、前記通常エリア９２に設定された基本プログラムエリア１０１に記憶される一方、仕様変更や仕様追加などのバージョンアップ時に書き換えられるアプリケーションプログラム８１は、前記書換エリア９１のアプリケーションエリア１１１に記憶されている。このため、基本プログラムの変更を伴わないアプリケーションプログラム８１変更時には、当該アプリケーションプログラム８１が記憶された書換エリア９１のみの書き換えを行うことができる。
【００３３】
このとき、前記通常エリア９２には、前記アプリケーションプログラム８１で使用する関数１２１，１２２が記憶されており、各関数１２１，１２２の固定アドレス１２５，１２６は、テーブルエリア１０２に関数テーブル１０３として記憶されている。つまり、この関数テーブル１０３と前記各関数１２１，１２２との両者は、通常時には書き換えられない通常エリア９２に記憶されており、前記関数テーブル１０３において、前記各関数１２１，１２２の各固定アドレス１２５，１２６を、書換によって変更されることの無い絶対値として示すことができる。
【００３４】
一方、前記書換エリア９１には、当該書換エリア９１から前記通常エリア９２への中継処理用の中継エリア１１２が設定されており、該中継エリア１１２には、前記アプリケーションプログラム８１が前記基本プログラムの各関数１２１，１２２を実行しようとした際に呼び出され、前記通常エリア９２内の前記関数テーブル１０３を参照して対応する固定アドレス１２５，１２６先に記憶された前記関数１２１，１２２を呼び出して実行する各中継プログラム１３５，１３６が記憶されている。このため、アプリケーションプログラム８１が記憶された書換エリア９１と、前記各関数１２１，１２２が記憶された通常エリア９２とが区分されていることを意識すること無く、前記各関数１２１，１２２を実行することができる。
【００３５】
このとき、通信で書き換えられる書換エリア９１には、書換時に内容が変更されるアプリケーションプログラム８１と、該アプリケーションプログラム８１から各関数１２１，１２２を実行する際に前記通常エリア９２内の各関数１２１，１２２を実行させるための各中継プログラム１３５，１３６とが記憶されている。
【００３６】
このため、この中継プログラム１３５，１３６の呼出を、前記通常エリア９２からの影響を受けること無く、当該書換エリア９１内での相対アドレスを用いて行うことができる。よって、図４に示したように、この書換エリア９１に記憶される部分のみをコンパイルして独立したオブジェクトファイル１４１を作成し、このオブジェクトファイル１４１を、前記ＲＯＭ６２におけるプログラムエリア７１の書換エリア９１の先頭番地である「Ａ０００２０００ｈ」番地から書き込むことによって、プログラムエリア７１の部分書換を不具合無く実現することができる。
【００３７】
以上のように、本実施の形態にあっては、基本プログラムの変更を伴わないアプリケーションプログラム８１変更時において、当該アプリケーションプログラム８１が記憶された書換エリア９１のみを書き換えることができる。このため、プログラム変更時に、アプリケーションプログラム８１のみならず、変更が生じない基本プログラムも一括してコンパイルしてオブジェクトファイルを作成し、このオブジェクトファイルに書き換えなければならなかった従来と比較して、書き換え用のプログラム容量を小さくすることができる。
【００３８】
したがって、通信でプログラムを書き換えるリモートアップデート時には、通信データ量を抑えることで通信時の負担を軽減し、通信料金を削減することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施の形態のシステムを示す構成図である。
【図２】同実施の形態を示すブロック図である。
【図３】同実施の形態のプログラムエリアを示す説明図である。
【図４】同実施の形態の動作を示す説明図である。
【図５】図４の詳細を示す説明図である。
【図６】従来のプログラムエリアを示す説明図である。
【図７】同従来例の動作を示す説明図である。
【符号の説明】
【００４０】
１    遠隔監視装置
１２    インターネット
２２    ホストコンピュータ
３２    ＣＰＵ
４３    携帯電話
６２    ＲＯＭ
７１    プログラムエリア
８１    アプリケーションプログラム
９１    書換エリア
９２    通常エリア
１０１    基本プログラムエリア
１０２    テーブルエリア
１０３    関数テーブル
１１１    アプリケーションエリア
１１２    中継エリア
１２１    第１関数
１２２    第２関数
１２５    第１固定アドレス
１２６    第２固定アドレス
１３５    第１中継プログラム
１３６    第２中継プログラム
【図１】
2005050227.tif 000003
【図２】
2005050227.tif 000004
【図３】
2005050227.tif 000005
【図４】
2005050227.tif 000006
【図５】
2005050227.tif 000007
【図６】
2005050227.tif 000008
【図７】
2005050227.tif 000009