(57)【特許請求の範囲】
【請求項１】
所定の通信規格に準拠した通信を行う通信装置において、
前記所定の通信規格で規定されるプロトコルスタックを実現する通信プログラム及び前記通信装置の機能を実現するアプリケーションプログラムのうちの前記プロトコルスタックを介したデータの送受信を司るプログラムを含む第１仮想プログラムと、前記アプリケーションプログラムのうちの残りのプログラムを含む第２仮想プログラムとを保存する保存部と、
前記第１，第２仮想プログラムの何れか一方を実行する実行部と、
前記実行部で実行させる仮想プログラムの切り替えを行う切替制御部と
を備えることを特徴とする通信装置。
【請求項２】
前記実行部は、前記第１仮想プログラムと前記第２仮想プログラムとの間で受け渡される情報を保持する情報保持領域を備えることを特徴とする請求項１記載の通信装置。
【請求項３】
前記切替制御部は、外部からデータが送信されてきた場合には、前記第１仮想プログラムを前記実行部に実行させてデータの受信処理を行わせ、前記第１仮想プログラムでの受信処理が終了したときに、前記実行部で実行させる仮想プログラムを前記第１仮想プログラムから前記第２仮想プログラムに切り替えて前記受信処理が行われたデータに対する後処理を行わせることを特徴とする請求項１又は請求項２記載の通信装置。
【請求項４】
前記第１仮想プログラムは、前記受信処理で用いられるパラメータを含み、
前記第２仮想プログラムは、前記後処理で用いられるパラメータを含む
ことを特徴とする請求項３記載の通信装置。
【請求項５】
前記切替制御部は、外部にデータを送信すべき場合には、前記第２仮想プログラムを前記実行部に実行させてデータの前処理を行わせ、前記第２仮想プログラムでの前処理が終了したときに、前記実行部で実行させる仮想プログラムを前記第２仮想プログラムから前記第１仮想プログラムに切り替えて前記前処理が行われたデータの送信処理を行わせることを特徴とする請求項１から請求項４の何れか一項に記載の通信装置。
【請求項６】
前記第１仮想プログラムは、前記送信処理で用いられるパラメータを含み、
前記第２仮想プログラムは、前記前処理で用いられるパラメータを含む
ことを特徴とする請求項５記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関する。
【背景技術】
【０００２】
従来から、プラントや工場等においては、高度な自動操業を実現すべく、フィールド機器と呼ばれる現場機器（測定器、操作器）と、これらの制御を行う制御装置とが通信手段を介して接続された分散制御システム（ＤＣＳ：Distributed Control System）が構築されている。このような分散制御システムの基礎をなす通信システムは、有線によって通信を行うものが殆どであったが、近年においてはＩＳＡ１００．１１ａやＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）等の産業用無線通信規格に準拠した無線通信を行うものも実現されている。
【０００３】
ここで、上記のＩＳＡ１００は、国際計測制御学会（ＩＳＡ：International Society of Automation）で策定されたプラント等における計測・制御等に用いられる無線通信規格である。これに対し、上記のＷｉｒｅｌｅｓｓＨＡＲＴは、米国のＨＡＲＴ（Highway Addressable Remote Transducer）通信協会によって提唱され、センサネットワーク（複数のセンサ付無線端末を空間に散在させ、それらが協調して環境や物理的状況を採取することを可能とする無線ネットワーク）を基礎とする無線通信規格である。
【０００４】
以下の特許文献１には、近距離・低消費電力の無線通信規格であるＺｉｇＢｅｅ（登録商標）に準拠した無線センサネットワークと、インターネットプロトコル（ＩＰ：Internet Protocol）技術を用いて相互接続されたコンピュータネットワークであるＩＰネットワークとを相互接続する技術が開示されている。具体的に、以下の特許文献１では、Ｚｉｇｂｅｅに準拠した無線センサネットワークを介した通信を実現するプロトコルスタックと、ＩＰネットワークを介した通信を実現するプロトコルスタックとを備えるゲートウェイを設けることで、これらのネットワークを相互接続している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８９７８８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したＩＰネットワークに接続されるコンピュータは、処理能力の高いＣＰＵ（中央処理装置）や大容量のメモリ等を備えるものが多い。このようなコンピュータは、複数のアプリケーションプログラム及び複数の通信プロトコルを実現するプログラムが予め組み込まれており、複数のアプリケーションを並列して動作させることが可能であるとともに、アプリケーション毎に使用する通信プロトコルを切り替えることが可能である。
【０００７】
これに対し、上述したフィールド機器や上述したセンサネットワークで用いられる機器は、省電力動作を行う必要があることから、必要最小限のハードウェア構成とされることが多い。具体的には、特定のアプリケーションを動作させ得るとともに特定の通信プロトコルによる通信を可能とし得る処理能力を有するＣＰＵと、これらアプリケーション及び通信プロトコルを実現するプログラムを実行させ得る容量を有するメモリを備える構成にされることが多い。
【０００８】
ここで、上述のアプリケーションプログラムは、上述のＩＰネットワークに接続されるコンピュータで用いられるものであっても、上述の省電力動作を行う必要のある機器で用いられるものであっても、新たな機能を追加する目的、或いは、既存の機能を強化する目的でバージョンアップされることがある。ＩＰネットワークに接続されるコンピュータは、大容量のメモリを備えるため、バージョンアップ等によりアプリケーションプログラムのサイズが増加しても問題が生ずることは殆どない。しかしながら、上述の省電力動作を行う必要のある機器は、必要最小限のハードウェア構成とされることが多いため、バージョンアップ等によりアプリケーションプログラムのサイズが増加してしまうと、メモリ不足によってアプリケーションプログラムを実行させることができなくなってしまう場合があるという問題がある。
【０００９】
また、フィールド機器やセンサネットワークに接続される機器は、ハードウェアの拡張性に制約があるものが多い。例えば、フラッシュメモリ等の低速なメモリは外部インターフェイスにより容易に拡張できるものの、プログラムや実行時のパラメータ等を格納できるような高速なメモリを接続できる外部バスを持つものは少ない。このため、上記のようなプログラムサイズの増加に対して高速なメモリを接続し、プログラムを実行させ得る容量を拡張することは困難である。
【００１０】
本発明は上記事情に鑑みてなされたものであり、プログラムサイズが増加してもアプリケーションプログラムの実行が不可能になる事態を回避することができる通信装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の通信装置は、所定の通信規格に準拠した通信を行う通信装置（１）において、前記所定の通信規格で規定されるプロトコルスタック（ＳＴ）を実現する通信プログラム（Ｐ１１〜Ｐ１３）及び前記通信装置の機能を実現するアプリケーションプログラム（Ｐ２０）のうちの前記プロトコルスタックを介したデータの送受信を司るプログラム（Ｐ２１）を含む第１仮想プログラム（Ｐ１）と、前記アプリケーションプログラムのうちの残りのプログラム（Ｐ２２）を含む第２仮想プログラム（Ｐ２）とを保存する保存部（１１）と、前記第１，第２仮想プログラムの何れか一方を実行する実行部（１２）と、前記実行部で実行させる仮想プログラムの切り替えを行う切替制御部（１３）とを備えることを特徴としている。
この発明によると、プロトコルスタックを実現する通信プログラム及びアプリケーションプログラムの一部（プロトコルスタックを介したデータの送受信を司るプログラム）を含む第１仮想プログラムと、アプリケーションプログラムの残りを含む第２仮想プログラムとの何れか一方が切替制御部の制御の下で実行部において実行される。
また、本発明の通信装置は、前記実行部が、前記第１仮想プログラムと前記第２仮想プログラムとの間で受け渡される情報を保持する情報保持領域（Ｒ１）を備えることを特徴としている。
また、本発明の通信装置は、前記切替制御部が、外部からデータが送信されてきた場合には、前記第１仮想プログラムを前記実行部に実行させてデータの受信処理を行わせ、前記第１仮想プログラムでの受信処理が終了したときに、前記実行部で実行させる仮想プログラムを前記第１仮想プログラムから前記第２仮想プログラムに切り替えて前記受信処理が行われたデータに対する後処理を行わせることを特徴としている。
ここで、本発明の通信装置は、前記第１仮想プログラムが、前記受信処理で用いられるパラメータ（ＰＭ１）を含み、前記第２仮想プログラムが、前記後処理で用いられるパラメータ（ＰＭ２）を含むことを特徴としている。
また、本発明の通信装置は、前記切替制御部が、外部にデータを送信すべき場合には、前記第２仮想プログラムを前記実行部に実行させてデータの前処理を行わせ、前記第２仮想プログラムでの前処理が終了したときに、前記実行部で実行させる仮想プログラムを前記第２仮想プログラムから前記第１仮想プログラムに切り替えて前記前処理が行われたデータの送信処理を行わせることを特徴としている。
ここで、本発明の通信装置は、前記第１仮想プログラムが、前記送信処理で用いられるパラメータ（ＰＭ１）を含み、前記第２仮想プログラムが、前記前処理で用いられるパラメータ（ＰＭ２）を含むことを特徴としている。
【発明の効果】
【００１２】
本発明によれば、プロトコルスタックを実現する通信プログラム及びアプリケーションプログラムの一部（プロトコルスタックを介したデータの送受信を司るプログラム）を含む第１仮想プログラムと、アプリケーションプログラムの残りを含む第２仮想プログラムとの何れか一方を切替制御部の制御の下で実行部において実行するようにしているため、プログラムサイズが増加してもアプリケーションプログラムの実行が不可能になる事態を回避することができるという効果がある。また、仮想プログラムサイズの増加に対応する際にも、保存部を拡張することで容易に対応できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態による通信装置の要部構成を示すブロック図である。
【図２】本発明の第１実施形態における仮想プログラムの一例を示す図である。
【図３】本発明の第１実施形態における仮想プログラムの切り替え条件を説明するための図である。
【図４】本発明の第１実施形態による通信装置の受信動作を示すフローチャートである。
【図５】本発明の第１実施形態による通信装置の送信動作を示すフローチャートである。
【図６】本発明の第２実施形態による通信装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態による通信装置について詳細に説明する。
【００１５】
〔第１実施形態〕
図１は、本発明の第１実施形態による通信装置の要部構成を示すブロック図である。図１に示す通り、本実施形態の通信装置１は、仮想プログラム保存部１１（保存部）、仮想プログラム実行部１２（実行部）、切替制御部１３、及び無線通信インターフェイス部１４を備えており、所定の無線通信規格に準拠した通信を行う。例えば、通信装置１は、産業用無線通信規格であるＩＳＡ１００に準拠した無線通信を行うフィールド機器である。
【００１６】
仮想プログラム保存部１１は、例えばフラッシュＲＯＭ（Read Only Memory）やＥＥＰＲＯＭ（Electrically Erasable and Programmable ＲＯＭ）等の不揮発性メモリで実現され、通信装置１で用いられる仮想プログラムＰ１（第１仮想プログラム）及び仮想プログラムＰ２（第２仮想プログラム）を保存する。ここで仮想プログラムＰ１，Ｐ２は、通信装置１のハードウェア構成の都合によって、複数のプログラムや分割されたプログラムが含まれるプログラムである。
【００１７】
図２は、本発明の第１実施形態における仮想プログラムの一例を示す図である。図２に示す通り、仮想プログラムＰ１は、通信プログラムＰ１１〜Ｐ１３、アプリケーションプログラムＰ２１、及びパラメータＰＭ１を含む。通信プログラムＰ１１〜Ｐ１３は、上記の無線通信規格に準拠したプロトコルスタックＳＴを実現するプログラムである。具体的に、通信プログラムＰ１１はプロトコルスタックＳＴのデータリンク層を実現し、通信プログラムＰ１２はプロトコルスタックＳＴのネットワーク装置を実現し、通信プログラムＰ１３はプロトコルスタックＳＴのトランスポート層を実現する。
【００１８】
例えば、通信プログラムＰ１１は、ＩＥＥＥ８０２．１５．４なる無線通信規格で規定されるデータリンク層を実現する。通信プログラムＰ１２は、インターネットプロトコルの一種であるＩＰｖ６で規定されるネットワーク層を実現する。通信プログラムＰ１３は、インターネットプロトコルで規定されるＵＤＰ（User Datagram Protocol：ユーザデータグラムプロトコル）をトランスポート層として実現する。
【００１９】
アプリケーションプログラムＰ２１は、通信装置１の機能（例えば、流量測定機能、温度測定機能、その他の機能）を実現するアプリケーションプログラムＰ２０のうちの、プロトコルスタックＳＴを介したデータの送受信を司るプログラムである。パラメータＰＭ１は、通信プログラムＰ１１〜Ｐ１３及びアプリケーションプログラムＰ２１の実行時に用いられるパラメータであり、例えばデータの送信先や送信元を示す情報、通信ネットワークを識別するための情報（サブネットＩＤ）が含まれる。
【００２０】
これに対し、仮想プログラムＰ２はアプリケーションプログラムＰ２２及びパラメータＰＭ２を含む。アプリケーションプログラムＰ２２は、アプリケーションプログラムＰ２０のうちのアプリケーションプログラムＰ２１を除く残りのプログラムである。例えば、プロトコルスタックＳＴを介して送信すべきデータの暗号化処理（前処理）、プロトコルスタックＳＴを介して受信したデータの復号処理（後処理）、及び上述した通信装置１の機能（例えば、流量測定機能、温度測定機能、その他の機能）を実現するプログラムである。パラメータＰＭ２は、アプリケーションプログラムＰ２２の実行時に用いられるパラメータであり、例えば暗号処理に用いられるキー情報や暗号アルゴリズムを示す情報、測定した流量や温度の単位を示す情報が含まれる。
【００２１】
ここで、本実施形態では、アプリケーションプログラムＰ２０が、プロトコルスタックＳＴを介したデータの送受信を司るプログラムであるアプリケーションプログラムＰ２１と、残りのアプリケーションプログラムＰ２２とに分割されている例について説明するが、アプリケーションプログラムＰ２０の分割の仕方は任意である。但し、アプリケーションプログラムＰ２０の実行が不可能になる事態が生じず、且つ、通信装置１の処理（例えば、データの送受信処理）に支障が生じないことが条件である。
【００２２】
仮想プログラム実行部１２は、仮想プログラム保存部１１に保存された仮想プログラムＰ１，Ｐ２の何れか一方を実行する。この仮想プログラム実行部１２は、ＣＰＵ（中央処理装置）及びＲＡＭ（Random Access Memory）等の揮発性のメモリで実現され、切替制御部１３の制御によって仮想プログラム保存部１１から読み出された仮想プログラムを揮発性メモリに記憶しつつ実行する。尚、仮想プログラム実行部１２の一部をなす揮発性メモリの容量は、仮想プログラムＰ１，Ｐ２を実行させ得る容量に設定されている。また、図１では、理解を容易にするために、仮想プログラム実行部１２に読み出された仮想プログラムを、破線の仮想プログラムＰ０として表現している。
【００２３】
また、仮想プログラム実行部１２は、仮想プログラム実行部１２で実行される仮想プログラムの間で受け渡される情報を保持する領域である情報保持領域Ｒ１を備える。この情報保持領域Ｒ１には、例えば、仮想プログラムＰ１で受信処理が行われたデータ、仮想プログラムＰ２で暗号化処理が行われたデータ等のデータが保持される。かかる情報保持領域Ｒ１を設けることにより、切替制御部１３によって切り替えられる仮想プログラムＰ１，Ｐ２間で情報の受け渡しを円滑に行うことが可能になる。
【００２４】
切替制御部１３は、仮想プログラム実行部１２で実行させる仮想プログラムＰ１，Ｐ２の切り替えを行う。具体的に、切替制御部１３は、図３に示す通り、仮想プログラム実行部１２で実行されている仮想プログラムＰ０からイベント信号Ｅ１が出力された場合に、仮想プログラム実行部１２で実行させる仮想プログラムＰ１，Ｐ２の切り替えを行う。図３は、本発明の第１実施形態における仮想プログラムの切り替え条件を説明するための図である。
【００２５】
例えば、切替制御部１３は、通信装置１の外部からデータが送信されてくる場合には、仮想プログラム保存部１１から仮想プログラムＰ１を読み出して仮想プログラム実行部１２に実行させる。そして、受信処理が終了した旨を示すイベント信号Ｅ１が仮想プログラムＰ１（仮想プログラムＰ０）から出力されたときに、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ１から仮想プログラムＰ２に切り替えて受信処理が行われたデータに対する復号処理（後処理）を行わせる。
【００２６】
また、例えば、切替制御部１３は、通信装置１の外部にデータを送信すべき場合には、仮想プログラム保存部１１から仮想プログラムＰ２を読み出して仮想プログラム実行部１２に実行させて暗号化処理（前処理）を行わせる。そして、暗号化処理が終了した旨を示すイベント信号Ｅ１が仮想プログラムＰ２（仮想プログラムＰ０）から出力されたときに、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ２から仮想プログラムＰ１に切り替えて暗号化処理が行われたデータの送信処理を行わせる。
【００２７】
更に、切替制御部１３は、仮想プログラム実行部１２で実行される仮想プログラムＰ０の状態が不定となった場合（例えば、ウォッチドッグタイマにより不具合が検出された場合等）に、必ずプロトコルスタックＳＴを実現する通信プログラムＰ１１〜Ｐ１３が含まれる仮想プログラムＰ１を仮想プログラム実行部１２に実行させる。これは、例えば仮想プログラムＰ２の実行中に生じた不具合を遠隔で復旧するために、通信装置１を通信可能な状態にするためである。このように、通信装置１で生じた不具合を遠隔で復旧することができれば、作業員が通信装置１の設置場所に赴いて復旧作業を行う必要が無くなり、早期に通信装置１を復旧させることが可能になる。
【００２８】
無線通信インターフェイス部１４は、通信装置１の外部から無線信号で送信されてきたデータを受信するとともに、通信装置１の外部に送信すべきデータを無線信号にして送信する。この無線通信インターフェイス部１４は、例えばＩＥＥＥ８０２．１５．４なる無線通信規格、ＩＥＥＥ８０２．１１ｎなる無線通信規格、或いはＩＥＥＥ８０２．１１ａなる通信規格で規定される物理層に相当する。
【００２９】
次に、上記構成における通信装置１の動作について簡単に説明する。尚、以下では通信装置１の外部から無線信号で送信されてきたデータを受信する際の動作（受信動作）と、通信装置１の外部に送信すべきデータを無線信号にして送信する際の動作（送信動作）とを例に挙げて説明する。ここで、通信装置１は、消費電力を低減するために、予め規定されたスケジュールで間欠動作を行うものとする。このため、通信装置１は、予め規定されたタイミングで送信動作を行うとともに、送信動作が行われるタイミングとは異なる予め規定されたタイミングで受信動作を行う。
【００３０】
〈受信動作〉
図４は、本発明の第１実施形態による通信装置の受信動作を示すフローチャートである。受信動作が行われる場合には、まず仮想プログラム保存部１１に保存された仮想プログラムＰ１が切替制御部１３によって読み出されて、仮想プログラム実行部１２で実行される（ステップＳ１１）。これにより、図２に示すプロトコルスタックＳＴと、プロトコルスタックＳＴを介したデータの送受信機能（アプリケーションプログラムＰ２１による機能）とが通信装置１で実現される。
【００３１】
仮想プログラムＰ１が実行されている状態で、通信装置１の外部から通信装置１宛のデータが送信されてくると、このデータは無線通信インターフェイス部１４で受信される（ステップＳ１２）。無線通信インターフェイス部１４で受信されたデータは、仮想プログラム実行部１２に出力され、仮想プログラムＰ１による受信処理（パケット処理等）が行われる（ステップＳ１３）。尚、仮想プログラムＰ１による受信処理は、通信プログラムＰ１１〜Ｐ１３によって実現されるプロトコルスタックＳＴとパラメータＰＭ１とを用いて行われる。受信処理が行われたデータは、仮想プログラム実行部１２の情報保持領域Ｒ１に保持される（ステップＳ１４）。
【００３２】
仮想プログラムＰ１による受信処理が終了すると、受信処理が終了した旨を示すイベント信号Ｅ１が仮想プログラムＰ１（仮想プログラムＰ０）から切替制御部１３に出力される（ステップＳ１５）。すると、切替制御部１３は、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ１から仮想プログラムＰ２に切り替える（ステップＳ１６）。これにより、図２に示すアプリケーションプログラムＰ２２の機能が実現され、プロトコルスタックＳＴを介して受信したデータの復号処理（後処理）等が行われる（ステップＳ１７）。尚、復号処理は、情報保持領域Ｒ１に保持されたデータがアプリケーションプログラムＰ２２により読み出され、仮想プログラムＰ２に含まれるパラメータＰＭ２を用いて行われる。このようにして、通信装置１に送信されてきたデータが受信される。
【００３３】
以上の受信処理で得られたデータは、例えばアプリケーションプログラムＰ２２で実現される機能（例えば、流量測定機能、温度測定機能、その他の機能）で用いられる。尚、ステップＳ１６，Ｓ１７の処理で不具合が生じた場合には、例えば仮想プログラムＰ２の実行中に生じた不具合の遠隔での復旧を可能にするために、仮想プログラム実行部１２で実行される仮想プログラムが、切替制御部１３によって仮想プログラムＰ２から仮想プログラムＰ１に切り替えられる。
【００３４】
〈送信動作〉
図５は、本発明の第１実施形態による通信装置の送信動作を示すフローチャートである。送信動作が行われる場合には、まず仮想プログラム保存部１１に保存された仮想プログラムＰ２が切替制御部１３によって読み出されて、仮想プログラム実行部１２で実行される（ステップＳ２１）。これにより、図２に示すアプリケーションプログラムＰ２２の機能が実現される。仮想プログラムＰ２が実行されると、外部に送信すべきデータを取得する処理が行われる（ステップＳ２２）。例えば、アプリケーションプログラムＰ２２の実行によって通信装置１に流量測定機能が実現されている場合には、流量を測定して流量データを取得する処理が行われ、通信装置１に温度測定機能が実現されている場合には、温度を測定して温度データを取得する処理が行われる。
【００３５】
外部に送信すべきデータが取得されると、このデータは仮想プログラム実行部１２において暗号化処理（前処理）される（ステップＳ２３）。尚、暗号化処理は、仮想プログラムＰ２に含まれるパラメータＰＭ２を用いて行われる。暗号化処理が行われたデータは、仮想プログラム実行部１２の情報保持領域Ｒ１に保持される（ステップＳ２４）。
【００３６】
仮想プログラムＰ２による暗号化処理が終了すると、暗号化処理が終了した旨を示すイベント信号Ｅ１が仮想プログラムＰ２（仮想プログラムＰ０）から切替制御部１３に出力される（ステップＳ２５）。すると、切替制御部１３は、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ２から仮想プログラムＰ１に切り替える（ステップＳ２６）。これにより、図２に示すプロトコルスタックＳＴと、プロトコルスタックＳＴを介したデータの送受信機能（アプリケーションプログラムＰ２１による機能）とが実現される。
【００３７】
仮想プログラムＰ２によって暗号化されたデータは、仮想プログラム実行部１２において仮想プログラムＰ１による送信処理（パケット処理等）が行われる（ステップＳ２７）。尚、仮想プログラムＰ１による送信処理は、通信プログラムＰ１１〜Ｐ１３によって実現されるプロトコルスタックＳＴとパラメータＰＭ１とを用いて行われる。仮想プログラムＰ１による送信処理が終了したデータは、仮想プログラム実行部１２から無線通信インターフェイス部１４に出力されて無線信号にして送信される。このようにして、通信装置１から外部にデータが送信される。
【００３８】
尚、ステップＳ２１〜Ｓ２５の処理で不具合が生じた場合には、仮想プログラム実行部１２で実行される仮想プログラムが、切替制御部１３によって仮想プログラムＰ２から仮想プログラムＰ１に切り替えられる。これは、受信処理の場合と同様に、例えば仮想プログラムＰ２の実行中に生じた不具合の遠隔での復旧を可能にするためである。
【００３９】
以上の通り、本実施形態では、通信装置１のハードウェア構成の都合によって複数のプログラムや分割されたプログラムが含まれる仮想プログラムＰ１，Ｐ２を仮想プログラム保存部１１に保存し、仮想プログラム実行部１２に実行させる仮想プログラムＰ１，Ｐ２を切替制御部１３によって切り替えるようにしている。このため、通信装置１の機能を実現するアプリケーションプログラムＰ２０のプログラムサイズが多少増加しても、アプリケーションプログラム２０の実行が不可能になる事態を回避することができる。
【００４０】
〔第２実施形態〕
次に、本発明の第２実施形態による通信装置について説明する。本実施形態の通信装置は、第１実施形態による通信装置１と同様に、仮想プログラム保存部１１〜無線インターフェイス１４を備える構成である。しかしながら、本実施形態の通信装置は、仮想プログラム保存部１１に保存される仮想プログラムＰ１，Ｐ２が第１実施形態のものとは相違する。
【００４１】
具体的に、前述した第１実施形態では、仮想プログラムＰ１，Ｐ２に含まれるアプリケーションプログラムＰ２０が、データの送受信を司る機能の有無を基準として、データの送受信を司るアプリケーションプログラムＰ２１と、残りのアプリケーションプログラムＰ２２とに分割されていた。これに対し、本実施形態では、仮想プログラムＰ１，Ｐ２に含まれるアプリケーションプログラムＰ２０が、実行頻度を基準として、通常動作時に用いられるアプリケーションプログラムＰ２１と、非通常動作時に用いられる（必要に応じて実行される）アプリケーションプログラムＰ２２とに分割されている。
【００４２】
ここで、上記の通常動作時に用いられるアプリケーションプログラムＰ２１は、アプリケーションプログラムＰ２０のうちの、プロトコルスタックＳＴを介したデータの送受信を司るプログラムと流量測定機能、温度測定機能等を実現するプログラムとを含むプログラムである。これに対し、非通常動作時に用いられるアプリケーションプログラムＰ２２は、アプリケーションプログラムＰ２０のうちの、メンテナンス用の処理や公開鍵暗号による鍵交換処理を行うプログラムである。
【００４３】
つまり、図２を参照して説明すると、本実施形態において、仮想プログラムＰ１は、プロトコルスタックＳＴを実現する通信プログラムＰ１１〜Ｐ１３、上記の通常動作時に用いられるアプリケーションプログラムＰ２１、及びパラメータＰＭ１を含む。ここで、パラメータＰＭ１には、通信を行うための送信先、送信元、サブネットＩＤといった情報と、測定した流量や温度の単位を示す情報とが含まれる。これに対し、仮想プログラムＰ２は、上記の非通常動作時に用いられるアプリケーションプログラムＰ２２及びパラメータＰＭ２を含む。ここで、パラメータＰＭ２には、非通常動作時に要となる情報（例えば、証明書の秘密鍵や認証局（ＣＡ：Certification Authority）の公開鍵等）が含まれる。
【００４４】
尚、本実施形態の切替制御部１３は、通信による外部からのイベントによって仮想プログラムＰ２１，Ｐ２２の切り替えを行う。具体的に、切替制御部１３は、起動時には通常動作を行う仮想プログラムＰ１を仮想プログラム実行部１２で実行させる。その後、外部から非通常動作のパケット（鍵交換やメンテナンスのためのパケット）を受信して仮想プログラムＰ１（仮想プログラムＰ０）からのイベント信号Ｅ１が出力された場合に、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ２に切り替える。
【００４５】
次に、本実施形態による通信装置の動作について簡単に説明する。図６は、本発明の第２実施形態による通信装置の動作を示すフローチャートである。尚、図６に示すフローチャートは、電源が投入されて通信装置が起動されることによって開始される。
【００４６】
〈通常動作〉
通信装置が起動すると、まず仮想プログラム保存部１１に保存された仮想プログラムＰ１が切替制御部１３によって読み出されて、仮想プログラム実行部１２で実行される（ステップＳ３１）。これにより、図２に示すプロトコルスタックＳＴと、プロトコルスタックＳＴを介したデータの送受信機能及び流量測定機能等を実現するプログラム（アプリケーションプログラムＰ２１による機能）が通信装置で実現され、通常動作が行われる（ステップＳ３２）。尚、通常動作時には、無線通信インターフェイス１４を介したデータの送受信が行われる。
【００４７】
通常動作時において、仮想プログラム実行部１２は、仮想プログラムＰ１（仮想プログラムＰ０）に従って非通常動作のパケットを受信したか否かを判断する（ステップＳ３３）。具体的には、鍵交換やメンテナンスのためのパケットを、無線通信インターフェイス部１４を介して受信したか否かを判断する。非通常動作のパケットを受信していないと仮想プログラム実行部１２が判断した場合（判断結果が「ＮＯ」の場合）には通常動作が繰り返される（ステップＳ３２）。
【００４８】
これに対し、非通常動作のパケットを受信したと判断した場合（ステップＳ３３の判断結果が「ＹＥＳ」の場合には、仮想プログラムＰ１（仮想プログラムＰ０）は、プロトコルスタックＳＴでパケットを処理する。そして、仮想プログラムＰ１（仮想プログラムＰ０）は、その処理結果（例えば、鍵交換情報）を情報保持領域Ｒ１に保持するとともに、イベント信号Ｅ１を切替制御部１３に出力する（ステップＳ３４）。
【００４９】
〈非通常動作〉
仮想プログラムＰ１（仮想プログラムＰ０）からのイベント信号Ｅ１が入力されると、切替制御部１３は、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ１から仮想プログラムＰ２に切り替える（ステップＳ３５）。これにより、図２に示すアプリケーションプログラムＰ２２の機能が通信装置で実現され、非通常動作が行われる。具体的には、情報保存領域Ｒ１に保持された鍵交換情報が仮想プログラムＰ２（仮想プログラムＰ０）によって取り出され、パラメータＰＭ２に含まれる秘密鍵を用いた復号処理が行われる（ステップＳ３６）。
【００５０】
復号処理が終了すると、その処理結果が情報保持領域Ｒ１に保持されるとともに、仮想プログラムＰ２（仮想プログラムＰ０）から切替制御部１３に対してイベント信号Ｅ１が出力される（ステップＳ３７）。仮想プログラムＰ１（仮想プログラムＰ０）からのイベント信号Ｅ１が入力されると、切替制御部１３は、仮想プログラム実行部１２で実行させる仮想プログラムを仮想プログラムＰ２から仮想プログラムＰ１に切り替え、これにより、再び通常動作が行われる（ステップＳ３１，Ｓ３２）。
【００５１】
尚、再び通常動作が行われると、情報保持領域Ｒ１に保持された復号処理の処理結果が仮想プログラムＰ１（仮想プログラムＰ０）によって取り出され、これにより得られた鍵を用いて通常動作が行われる。尚、ステップＳ３５〜Ｓ３７の処理で不具合が生じた場合には、仮想プログラム実行部１２で実行される仮想プログラムが、切替制御部１３によって仮想プログラムＰ２から仮想プログラムＰ１に切り替えられる。これは、第１実施形態と同様に、例えば仮想プログラムＰ２の実行中に生じた不具合の遠隔での復旧を可能にするためである。
【００５２】
以上の通り、本実施形態では、通信装置のハードウェア構成の都合によって、アプリケーションプログラムＰ２０を、実行頻度を基準としてアプリケーションプログラムＰ２１，Ｐ２２に分割して仮想プログラムＰ１，Ｐ２にそれぞれ含め、これら仮想プログラムＰ１，Ｐ２を切替制御部１３によって切り替えるようにしている。これにより、省電力動作を行う必要がある機器にとってはプログラムサイズが大きくなる傾向があるプログラム（例えば、公開鍵暗号による鍵交換処理を行うプログラム）のプログラムサイズが多少増加しても、アプリケーションプログラム２０の実行が不可能になる事態を回避することができる。
【００５３】
以上、本発明の実施形態による通信装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、通信装置１が、ＩＳＡ１００に準拠した無線通信を行うフィールド機器である場合を例に挙げて説明したが、ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）に準拠した無線通信を行うフィールド機器であってもよい。また、本発明は、無線通信を行う通信装置のみならず、有線通信を行う通信装置にも適用可能である。
【符号の説明】
【００５４】
１                通信装置
１１              仮想プログラム保存部
１２              仮想プログラム実行部
１３              切替制御部
Ｐ１，Ｐ２        仮想プログラム
Ｐ１１〜Ｐ１３    通信プログラム
Ｐ２０            アプリケーションプログラム
Ｐ２１，Ｐ２２    アプリケーションプログラム
ＰＭ１，ＰＭ２    パラメータ
Ｒ１              情報保持領域
ＳＴ              プロトコルスタック
【図１】
0005494727.tif 000002
【図２】
0005494727.tif 000003
【図３】
0005494727.tif 000004
【図４】
0005494727.tif 000005
【図５】
0005494727.tif 000006
【図６】
0005494727.tif 000007