(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）等の揮発性のメモリで実現され、切替制御部１３の制御によって仮想スタック保存部１１から読み出された仮想スタックを揮発性メモリに記憶しつつ実行する。尚、仮想スタック実行部１２の一部をなす揮発性メモリの容量は、仮想スタックＶＳ１，ＶＳ２を実行させ得る容量に設定されている。また、図１では、理解を容易にするために、仮想スタック実行部１２に読み出された仮想スタックを、破線の仮想スタックＶＳ０として表現している。
【００２５】
切替制御部１３は、仮想スタック実行部１２で実行させる仮想スタックＶＳ１，ＶＳ２の切り替えを行う。例えば、切替制御部１３は、通信装置１の外部若しくは内部で生ずるイベント、時間、又は通信装置１の状況（コンテキスト）に基づいて仮想スタック実行部１２で実行させる仮想スタックＶＳ１，ＶＳ２の切り替えを行う。図３は、本発明の第１実施形態における仮想スタックの切り替え条件を説明するための図であって、（ａ）は通信装置１の外部又は内部で生ずるイベントが切り替え条件とされた場合の説明図であり、（ｂ）は時間が切り替え条件とされた場合の説明図であり、（ｃ）は通信装置１の状況が切り替え条件とされた場合の説明図である。
【００２６】
図３（ａ）に示す通り、通信装置１の外部で生ずるイベントＥ１又は内部で生ずるイベントＥ２が切り替え条件とされている場合には、切替制御部１３は、切替テーブルＴＢ（イベントＥ１，Ｅ２の種類毎に切り替え対象の仮想スタックを示す情報が規定されたテーブル）を参照して仮想スタックＶＳ１，ＶＳ２の切り替えを行う。ここで、上記のイベントＥ１は、例えば流量や温度等の測定結果を通知するためのイベントであり、上記のイベントＥ２は、例えば仮想スタック実行部１２で実行されている仮想スタックにより行われた通信結果を示すイベントである。
【００２７】
尚、切替制御部１３は、上記の切替テーブルＴＢを参照することなく仮想スタックＶＳ１，ＶＳ２の切り替えを行う場合がある。例えば、仮想スタック保存部１１に２つの仮想スタックＶＳ１，ＶＳ２のみが保存されており、イベントＥ１，Ｅ２が生じたときに必ず仮想スタック実行部１２で実行されている仮想スタック（例えば、仮想スタックＶＳ１）を、実行されていない仮想スタック（例えば、仮想スタックＶＳ２）に切り替える必要がある場合である。このような場合には、切替テーブルＴＢを省略することができる。
【００２８】
図３（ｂ）に示す通り、時間が切り替え条件とされている場合には、切替制御部１３は、タイマＴＭで計時される時間を参照して仮想スタックＶＳ１，ＶＳ２の切り替えを行う。例えば、予め設定された時刻が到来した場合、或いは仮想スタック実行部１２で実行されている仮想スタックの実行時間が予め設定された時間になった場合に、切替制御部１３は、仮想スタックＶＳ１，ＶＳ２の切り替えを行う。尚、図３（ｂ）に示す例では、切替制御部１３の外部にタイマＴＭが設けられているが、タイマＴＭは切替制御部１３の内部に設けられていても良い。
【００２９】
図３（ｃ）に示す通り、通信装置１の状況が切り替え条件とされている場合には、切替制御部１３は、通信装置１の状況を認識し、予め規定された切替規則ＣＲを参照しつつ仮想スタックＶＳ１，ＶＳ２の切り替えを行う。ここで、上記の切替規則ＣＲは、仮想スタックＶＳ１，ＶＳ２の切り替えが必要になる規則（ルール）を規定したものである。この切替規則ＣＲには、例えば特定の仮想スタックが用いられる場合にだけ通信障害が発生する状況に通信装置１がなったこと、通信装置１に設けられている電池の残量が一定以下の状況になったこと、或いは通信装置１が起動又は再起動される状況になったこと等が規定されている。
【００３０】
無線通信インターフェイス部１４は、通信装置１の外部から無線信号で送信されてきたデータを受信するとともに、通信装置１の外部に送信すべきデータを無線信号にして送信する。この無線通信インターフェイス部１４は、例えばＩＥＥＥ８０２．１５．４なる無線通信規格で規定される物理層に相当する。
【００３１】
次に、上記構成における通信装置１の動作について簡単に説明する。図４は、本発明の第１実施形態による通信装置の動作を示すフローチャートである。尚、図４に示すフローチャートは、通信装置１の電源が投入されて通信装置１が起動されることによって開始される。通信装置１が起動すると、まず仮想スタック保存部１１から予め規定された（デフォルトの）仮想スタックが切替制御部１３によって読み出される（ステップＳ１１）。尚、ここでは、仮想スタックＶＳ１が読み出されるとする。
【００３２】
仮想スタック保存部１１から読み出された仮想スタックＶＳ１は、切替制御部１３によって仮想スタック実行部１２に出力されて実行される（ステップＳ１２）。これにより、図２に示すプロトコルスタックＳＴ１と、アプリケーションプログラムＡＰ１による通信装置１の機能（例えば、流量測定機能、温度測定機能、その他の機能）が実現され、通信装置１は、上述した無線通信規格ＩＳＡ１００．１１ａに準拠した無線通信が可能な状態になる。
【００３３】
以上の処理が終了すると、仮想スタックの切り替え条件が成立したか否かが切替制御部１３で判断される（ステップＳ１３）。例えば、図３（ａ）に示す通り、通信装置１の外部で生ずるイベントＥ１又は内部で生ずるイベントＥ２が切り替え条件とされている場合には、切替制御部１３にイベントＥ１又はイベントＥ２が入力されたか否かが判断される。また、図３（ｂ）に示す通り、時間が切り替え条件とされている場合には、切替制御部１３によってタイマＴＭが参照され、予め設定された時刻が到来したか否か、或いは仮想スタック実行部１２で実行されている仮想スタックＶＳ１の実行時間が予め設定された時間になったか否かが判断される。或いは、図３（ｃ）に示す通り、通信装置１の状況が切り替え条件とされている場合には、切替制御部１３によって切替規則ＣＲが参照され、通信装置１の状況が切替規則ＣＲで規定された状況になったか否かが判断される。
【００３４】
仮想スタックの切り替え条件が成立していないと判断した場合（ステップＳ１３の判断結果が「ＮＯ」の場合）には、ステップＳ１３の判断が再び切替制御部１３で行われる。これに対し、仮想スタックの切り替え条件が成立したと判断した場合（ステップＳ１３の判断結果が「ＹＥＳ」の場合）には、仮想スタック保存部１１から実行させるべき（切り替えるべき）仮想スタックが切替制御部１３によって読み出される（ステップＳ１４）。尚、ここでは、仮想スタックＶＳ２が読み出されるとする。
【００３５】
仮想スタック保存部１１から読み出された仮想スタックＶＳ２は、切替制御部１３によって仮想スタック実行部１２に出力されて実行される（ステップＳ１５）。これにより、図２に示すプロトコルスタックＳＴ２と、アプリケーションプログラムＡＰ２による通信装置１の機能が実現され、通信装置１は、上述した無線通信規格ＷｉｒｅｌｅｓｓＨＡＲＴ（登録商標）に準拠した無線通信が可能な状態になる。以降、ステップＳ１３〜Ｓ１５の処理が繰り返される。
【００３６】
以上の通り、本実施形態では、アプリケーションプログラムとアプリケーションプログラムが通信を行うために必要となるプロトコルスタックを実現する通信プログラムとが対にされた仮想スタックＶＳ１，ＶＳ２を仮想スタック保存部１１に保存し、仮想スタック実行部１２に実行させる仮想スタックＶＳ１，ＶＳ２を切替制御部１３によって切り替えるようにしている。このため、省電力動作を行うために通信装置１のハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【００３７】
〔第２実施形態〕
図５は、本発明の第２実施形態による通信装置の要部構成を示すブロック図である。図５に示す通り、本実施形態の通信装置２は、図１に示す通信装置１が備える仮想スタック実行部１２に代えて仮想スタック実行部２１を設けた構成である。この仮想スタック実行部２１は、図１に示す仮想スタック実行部１２と同様に、仮想スタックＶＳ１，ＶＳ２の何れか一方を実行するものであるが、仮想スタック実行部２１で実行される仮想スタックの間で受け渡される情報を保持する領域である情報保持領域Ｒ１を備える。かかる情報保持領域Ｒ１を設けることにより、切替制御部１３によって切り替えられる仮想スタックＶＳ１，ＶＳ２間で情報の受け渡しを円滑に行うことが可能になる。
【００３８】
図６は、本発明の第２実施形態の応用例による通信装置の要部構成を示すブロック図である。図６に示す通り、本応用例の通信装置２′は、図５に示す通信装置２と同様に、仮想スタック保存部１１、仮想スタック実行部２１、切替制御部１３、及び無線インターフェイス１４を備える構成である。しかしながら、本応用例の通信装置２′は、仮想スタック保存部１１に保存される仮想スタックＶＳ１が図５に示す通信装置２とは相違する。
【００３９】
具体的に、図５に示す通信装置２の仮想スタック保存部１１に保存される仮想スタックＶＳ１は、図２に示す通り、アプリケーションプログラムＡＰ１と通信プログラムＰ１１〜Ｐ１３とが対にされたもの、及びパラメータＰＭ１を含むものであった。これに対し、図６に示す通信装置２′が備える仮想スタック保存部１１に保存される仮想スタックＶＳ１は、仮想スタックＶＳ１１（第１部分）と仮想スタックＶＳ１２（第２部分）とに分割されている。このように、仮想スタックＶＳ１を仮想スタックＶＳ１１，ＶＳ１２に分割するのは、仮想スタックＶＳ１に含まれるアプリケーションプログラムＡＰ１のプログラムサイズが、通信装置２′で実行することができない大きさであっても、アプリケーションプログラムＡＰ１の実行を可能にするためである。
【００４０】
図７は、本発明の第２実施形態の応用例における仮想スタックの一例を示す図である。図７に示す通り、仮想スタックＶＳ１の一部をなす仮想スタックＶＳ１１は、通信プログラムＰ１１〜Ｐ１３、アプリケーションプログラムＡＰ１１、及びパラメータＰＭ１１を含む。通信プログラムＰ１１〜Ｐ１３は、図２に示すものと同じものであり、上述した無線通信規格ＩＳＡ１００．１１ａに準拠したプロトコルスタックＳＴ１を実現するプログラムである。
【００４１】
アプリケーションプログラムＡＰ１１は、アプリケーションプログラムＡＰ１のうちの、プロトコルスタックＳＴ１を介したデータの送受信を司るプログラムである。パラメータＰＭ１１は、通信プログラムＰ１１〜Ｐ１３及びアプリケーションプログラムＡＰ１１の少なくとも一方で用いられるパラメータであり、例えばデータの送信先や送信元を示す情報、通信ネットワークを識別するための情報（サブネットＩＤ）が含まれる。
【００４２】
これに対し、仮想スタックＶＳ１の残りの部分をなす仮想スタックＶＳ１２はアプリケーションプログラムＡＰ１２及びパラメータＰＭ１２を含む。アプリケーションプログラムＡＰ１２は、アプリケーションプログラムＡＰ１のうちのアプリケーションプログラムＡＰ１１を除く残りのプログラムである。例えば、プロトコルスタックＳＴ１を介して送信すべきデータの暗号化処理（前処理）、プロトコルスタックＳＴ１を介して受信したデータの復号処理（後処理）、及び通信装置２′の機能（例えば、流量測定機能、温度測定機能、その他の機能）を実現するプログラムである。パラメータＰＭ１２は、アプリケーションプログラムＡＰ１２の実行時に用いられるパラメータであり、例えば暗号処理に用いられるキー情報や暗号アルゴリズムを示す情報、測定した流量や温度の単位を示す情報が含まれる。
【００４３】
ここで、本応用例では、アプリケーションプログラムＡＰ１が、プロトコルスタックＳＴ１を介したデータの送受信を司るプログラムであるアプリケーションプログラムＡＰ１１と、残りのアプリケーションプログラムＡＰ１２とに分割されている例について説明するが、アプリケーションプログラムＡＰ１の分割の仕方は任意である。但し、仮想スタックＶＳ１１，ＶＳ１２の実行が不可能になる事態が生じず、且つ、通信装置２′の処理（例えば、データの送受信処理）に支障が生じないことが条件である。
【００４４】
尚、図５に示す通信装置２の仮想スタック実行部２１は、図１に示す通信装置１の仮想スタック実行部１２と同様に、仮想スタック保存部１１に保存された仮想スタックＶＳ１，ＶＳ２の何れか一方を実行するものであった。これに対し、図６に示す通信装置２′が備える仮想スタック実行部２１は、仮想スタックＶＳ１１，ＶＳ１２、ＶＳ２の何れか１つを実行することが可能である。
【００４５】
また、通信装置２′が備える切替制御部１３は、仮想スタック実行部２１で実行させる仮想スタックＶＳ１１，ＶＳ１２，ＶＳ２の切り替えが可能である。具体的に、切替制御部１３は、図３（ａ）を用いて説明した場合と同様に、通信装置２′の内部で生ずるイベントＥ２（具体的には、仮想スタック実行部２１で実行されている仮想スタックＶＳ０から出力されるイベント）が入力された場合に、仮想スタック実行部２１で実行させる仮想スタックＶＳ１１，ＶＳ１２の切り替えを行う。
【００４６】
例えば、切替制御部１３は、無線通信規格ＩＳＡ１００．１１ａに準拠した無線通信によって通信装置２′の外部からデータが送信されてくる場合には、仮想スタック保存部１１から仮想スタックＶＳ１１を読み出して仮想スタック実行部２１に実行させる。そして、受信処理が終了した旨を示すイベントＥ２が仮想スタックＶＳ１１（仮想スタックＶＳ０）から出力されたときに、仮想スタック実行部２１で実行させる仮想スタックを仮想スタックＶＳ１１から仮想スタックＶＳ１２に切り替えて受信処理が行われたデータに対する復号処理（後処理）を行わせる。
【００４７】
また、例えば、切替制御部１３は、無線通信規格ＩＳＡ１００．１１ａに準拠した無線通信によって通信装置２′の外部にデータを送信すべき場合には、仮想スタック保存部１１から仮想スタックＶＳ１２を読み出して仮想スタック実行部２１に実行させて暗号化処理（前処理）を行わせる。そして、暗号化処理が終了した旨を示すイベントＥ２が仮想スタックＶＳ１２（仮想スタックＶＳ０）から出力されたときに、仮想スタック実行部２１で実行させる仮想スタックを仮想スタックＶＳ１２から仮想スタックＶＳ１１に切り替えて暗号化処理が行われたデータの送信処理を行わせる。
【００４８】
更に、切替制御部１３は、仮想スタック実行部２１で実行される仮想スタックＶＳ１２（仮想スタックＶＳ０）の状態が不定となった場合（例えば、ウォッチドッグタイマにより不具合が検出された場合等）に、必ずプロトコルスタックＳＴ１を実現する通信プログラムＰ１１〜Ｐ１３が含まれる仮想スタックＶＳ１１を仮想スタック実行部２１に実行させる。これは、例えば仮想スタックＶＳ１２の実行中に生じた不具合を遠隔で復旧するために、通信装置２′を通信可能な状態にするためである。このように、通信装置２′で生じた不具合を遠隔で復旧することができれば、作業員が通信装置２′の設置場所に赴いて復旧作業を行う必要が無くなり、早期に通信装置２′を復旧させることが可能になる。
【００４９】
次に、上記構成における通信装置２′の動作について簡単に説明する。尚、以下では通信装置２′の外部から無線通信規格ＩＳＡ１００．１１ａに準拠した無線通信によって送信されてきたデータを受信する際の動作（受信動作）と、通信装置２′の外部に送信すべきデータを無線通信規格ＩＳＡ１００．１１ａに準拠した無線通信によって送信する際の動作（送信動作）とを例に挙げて説明する。ここで、通信装置２′は、消費電力を低減するために、予め規定されたスケジュールで間欠動作を行うものとする。このため、通信装置２′は、予め規定されたタイミングで送信動作を行うとともに、送信動作が行われるタイミングとは異なる予め規定されたタイミングで受信動作を行う。
【００５０】
〈受信動作〉
図８は、本発明の第２実施形態の応用例による通信装置の受信動作を示すフローチャートである。受信動作が行われる場合には、まず仮想スタック保存部１１に保存された仮想スタックＶＳ１１が切替制御部１３によって読み出されて、仮想スタック実行部１２で実行される（ステップＳ２１）。これにより、図７に示すプロトコルスタックＳＴ１と、プロトコルスタックＳＴ１を介したデータの送受信機能（アプリケーションプログラムＡＰ１１による機能）とが通信装置２′で実現される。
【００５１】
仮想スタックＶＳ１１が実行されている状態で、通信装置２′の外部から通信装置２′宛のデータが送信されてくると、このデータは無線通信インターフェイス部１４で受信される（ステップＳ２２）。無線通信インターフェイス部１４で受信されたデータは、仮想スタック実行部１２に出力され、仮想スタックＶＳ１１による受信処理（パケット処理等）が行われる（ステップＳ２３）。尚、仮想スタックＶＳ１１による受信処理は、通信プログラムＰ１１〜Ｐ１３によって実現されるプロトコルスタックＳＴ１とパラメータＰＭ１１とを用いて行われる。受信処理が行われたデータは、仮想スタック実行部１２の情報保持領域Ｒ１に保持される（ステップＳ２４）。
【００５２】
仮想スタックＶＳ１１による受信処理が終了すると、受信処理が終了した旨を示すイベントＥ２が仮想スタックＶＳ１１（仮想スタックＶＳ０）から切替制御部１３に出力される（ステップＳ２５）。すると、切替制御部１３は、仮想スタック実行部１２で実行させる仮想スタックを仮想スタックＶＳ１１から仮想スタックＶＳ１２に切り替える（ステップＳ２６）。これにより、図７に示すアプリケーションプログラムＡＰ１２の機能が実現され、プロトコルスタックＳＴ１を介して受信したデータの復号処理（後処理）等が行われる（ステップＳ２７）。尚、復号処理は、情報保持領域Ｒ１に保持されたデータがアプリケーションプログラムＡＰ１２により読み出され、仮想スタックＶＳ１２に含まれるパラメータＰＭ１２を用いて行われる。このようにして、通信装置２′に送信されてきたデータが受信される。
【００５３】
以上の受信処理で得られたデータは、例えばアプリケーションプログラムＡＰ１２で実現される機能（例えば、流量測定機能、温度測定機能、その他の機能）で用いられる。尚、ステップＳ２６，Ｓ２７の処理で不具合が生じた場合には、例えば仮想スタックＶＳ１２の実行中に生じた不具合の遠隔での復旧を可能にするために、仮想スタック実行部１２で実行される仮想スタックが、切替制御部１３によって仮想スタックＶＳ１２から仮想スタックＶＳ１１に切り替えられる。
【００５４】
〈送信動作〉
図９は、本発明の第２実施形態の応用例による通信装置の送信動作を示すフローチャートである。送信動作が行われる場合には、まず仮想スタック保存部１１に保存された仮想スタックＶＳ１２が切替制御部１３によって読み出されて、仮想スタック実行部１２で実行される（ステップＳ３１）。これにより、図７に示すアプリケーションプログラムＡＰ１２の機能が実現される。仮想スタックＶＳ１２が実行されると、外部に送信すべきデータを取得する処理が行われる（ステップＳ３２）。例えば、アプリケーションプログラムＡＰ１２の実行によって通信装置２′に流量測定機能が実現されている場合には、流量を測定して流量データを取得する処理が行われ、通信装置２′に温度測定機能が実現されている場合には、温度を測定して温度データを取得する処理が行われる。
【００５５】
外部に送信すべきデータが取得されると、このデータは仮想スタック実行部１２において暗号化処理（前処理）される（ステップＳ３３）。尚、暗号化処理は、仮想スタックＶＳ１２に含まれるパラメータＰＭ１２を用いて行われる。暗号化処理が行われたデータは、仮想スタック実行部１２の情報保持領域Ｒ１に保持される（ステップＳ３４）。
【００５６】
仮想スタックＶＳ１２による暗号化処理が終了すると、暗号化処理が終了した旨を示すイベントＥ２が仮想スタックＶＳ１２（仮想スタックＶＳ０）から切替制御部１３に出力される（ステップＳ３５）。すると、切替制御部１３は、仮想スタック実行部１２で実行させる仮想スタックを仮想スタックＶＳ１２から仮想スタックＶＳ１１に切り替える（ステップＳ３６）。これにより、図７に示すプロトコルスタックＳＴ１と、プロトコルスタックＳＴ１を介したデータの送受信機能（アプリケーションプログラムＡＰ１１による機能）とが実現される。
【００５７】
仮想スタックＶＳ１２によって暗号化されたデータは、仮想スタック実行部１２において仮想スタックＶＳ１１による送信処理（パケット処理等）が行われる（ステップＳ３７）。尚、仮想スタックＶＳ１１による送信処理は、通信プログラムＰ１１〜Ｐ１３によって実現されるプロトコルスタックＳＴ１とパラメータＰＭ１１とを用いて行われる。仮想スタックＶＳ１１による送信処理が終了したデータは、仮想スタック実行部１２から無線通信インターフェイス部１４に出力されて無線信号にして送信される。このようにして、通信装置２′から外部にデータが送信される。
【００５８】
尚、ステップＳ３１〜Ｓ３５の処理で不具合が生じた場合には、仮想スタック実行部１２で実行される仮想スタックが、切替制御部１３によって仮想スタックＶＳ１２から仮想スタックＶＳ１１に切り替えられる。これは、受信処理の場合と同様に、例えば仮想スタックＶＳ１２の実行中に生じた不具合の遠隔での復旧を可能にするためである。
【００５９】
以上の通り、本応用例では、仮想スタックＶＳ１を仮想スタックＶＳ１１と仮想スタックＶＳ１２とに分割し、仮想スタック実行部１２に実行させる仮想スタックＶＳ１１，ＶＳ１２を切替制御部１３によって切り替えるようにしている。このため、仮想スタックＶＳ１に含まれるアプリケーションプログラムＡＰ１のプログラムサイズが、通信装置２′で実行することができない大きさであっても、アプリケーションプログラムＡＰ１の実行をが可能になる。また、第１実施形態と同様に、通信装置２′が、省電力動作を行うためにハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【００６０】
〔第３実施形態〕
図１０は、本発明の第３実施形態による通信装置の要部構成を示すブロック図である。図１０に示す通り、本実施形態の通信装置３は、図１示す通信装置１が備える仮想スタック実行部１２及び切替制御部１３に代えて仮想スタック実行部３１及び切替制御部３２をそれぞれ設けるとともに、無線通信インターフェイス部１４に代えて２つの無線通信インターフェイス部１４ａ，１４ｂを設けた構成である。また、仮想スタック保存部１１には、３つの仮想スタックＶＳ１１〜ＶＳ１３が保存されている。尚、仮想スタック保存部１１に保存される加増スタックの数は、仮想スタック保存部１１の容量が許容される限り任意である。
【００６１】
仮想スタック実行部３１は、図１に示す仮想スタック実行部１２と同様に、仮想スタック保存部１１から読み出された仮想スタックを実行するものである。但し、仮想スタック保存部１１に保存された仮想スタックＶＳ１〜ＶＳ３のうちの何れか２つの仮想スタックを同時に実行することが可能な点において、図１に示す仮想スタック実行部１２とは相違する。尚、図１０では、理解を容易にするために、仮想スタック実行部３１で実行される仮想スタックを、破線の仮想スタックＶＳ０１，ＶＳ０２として表現している。
【００６２】
切替制御部３２は、仮想スタック実行部３１で実行させる仮想スタックの切り替えを行うものであるが、仮想スタック実行部３１で実行される１つの仮想スタックのみの切り替え、或いは仮想スタック実行部３１で実行される２つの仮想スタックの双方の切り替えを行うことが可能である。この切替制御部３２は、予め規定された排他制御規則ＥＲを参照しつつ仮想スタックの切り替えを行う。
【００６３】
ここで、上記の排他制御規則ＥＲは、仮想スタック実行部３１で実行される仮想スタックＶＳ０１，ＶＳ０２により使用される無線通信インターフェイス部の競合を防止するための規則を規定したものである。この排他制御規則ＥＲには、例えば仮想スタック実行部３１で実行される仮想スタックＶＳ０１に無線通信インターフェイス部１４ａを使用させ、仮想スタックＶＳ０２に無線通信インターフェイス部１４ｂを使用させる規則等が規定されている。
【００６４】
無線通信インターフェイス部１４ａ，１４ｂは、図１に示す無線通信インターフェイス部１４と同様に、通信装置３の外部から無線信号で送信されてきたデータを受信するとともに、通信装置３の外部に送信すべきデータを無線信号にして送信する。これら無線通信インターフェイス部１４ａ，１４ｂは、例えばＩＥＥＥ８０２．１５．４なる無線通信規格で規定される物理層に相当するものである。
【００６５】
上記構成における通信装置３の動作は、図１に示す通信装置１の動作とおおよそ同様であり、図４に示すフローチャートに従った動作が行われる。つまり、電源が投入されて通信装置３が起動すると、まず仮想スタック保存部１１から予め規定された２つの仮想スタック（例えば、仮想スタックＶＳ１，ＶＳ２）が切替制御部３２によって読み出され（ステップＳ１１）、仮想スタック実行部３１で実行される（ステップＳ１２）。
【００６６】
以上の処理が終了すると、仮想スタックの切り替え条件が成立したか否かが切替制御部３２で判断される（ステップＳ１３）。そして、仮想スタックの切り替え条件が成立していないと判断した場合（判断結果が「ＮＯ」の場合）には、ステップＳ１３の判断が再び切替制御部３２で行われる。これに対し、仮想スタックの切り替え条件が成立したと判断した場合（判断結果が「ＹＥＳ」の場合）には、仮想スタック保存部１１から実行させるべき（切り替えるべき）仮想スタック（例えば、仮想スタックＶＳ２，ＶＳ３）が切替制御部３２によって読み出され（ステップＳ１４）、仮想スタック実行部３１で実行される（ステップＳ１５）。
【００６７】
以上の通り、本実施形態においては、アプリケーションプログラムとアプリケーションプログラムが通信を行うために必要となるプロトコルスタックを実現する通信プログラムとが対にされた仮想スタックＶＳ１〜ＶＳ３を仮想スタック保存部１１に保存し、仮想スタック実行部３１に実行させる仮想スタックを切替制御部３２によって切り替えるようにしている。このため、省電力動作を行うために通信装置３のハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【００６８】
尚、以上説明した第３実施形による通信装置３のように、複数の無線通信インターフェイス部１４ａ，１４ｂが設けられている場合には、図１１に示す通り、無線通信インターフェイス部を特定する情報を仮想スタックに含めても良い。図１１は、仮想スタックの他の例を示す図である。図１１に示す仮想スタックＶＳは、図２に示す仮想スタックＶＳ１に対し、無線通信インターフェイス部１４ａ，１４ｂのうちの何れか一方を特定する物理層識別子Ｄ１（特定情報）を含めたものである。
【００６９】
このような仮想スタックＶＳが仮想スタック実行部（例えば、仮想スタック実行部３１）で実行されると、仮想スタックＶＳに含まれる物理層識別子Ｄ１が切替制御部（例えば、切替制御部３２）で参照される。そして、切替制御部の制御によって、仮想スタックＶＳが実行されることによって実現されるプロトコルスタックＳＴ１と、物理層識別子Ｄ１で特定される無線通信インターフェイス部との間でデータの入出力が行われる。
【００７０】
以上、本発明の実施形態による通信装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、無線通信を行う通信装置１〜３を例に挙げて説明したが、無線通信を行う通信装置のみならず、有線通信を行う通信装置にも適用可能である。
【符号の説明】
【００７１】
１〜３                  通信装置
１１                    仮想スタック保存部
１２                    仮想スタック実行部
１３                    切替制御部
１４，１４ａ，１４ｂ    無線通信インターフェイス部
２１                    仮想スタック実行部
３１                    仮想スタック実行部
３２                    切替制御部
ＡＰ１，ＡＰ２          アプリケーションプログラム
ＡＰ１１，ＡＰ１２      アプリケーションプログラム
Ｄ１                    物理層識別子
Ｅ１，Ｅ２              イベント
Ｐ１１〜Ｐ１３          通信プログラム
Ｐ２１〜Ｐ２３          通信プログラム
ＰＭ１，ＰＭ２          パラメータ
Ｒ１                    情報保持領域
ＳＴ１，ＳＴ２          プロトコルスタック
ＶＳ１，ＶＳ２          仮想スタック
ＶＳ１１                仮想スタック
ＶＳ１２                仮想スタック
【図１】
0005673606.tif 000002
【図２】
0005673606.tif 000003
【図３】
0005673606.tif 000004
【図４】
0005673606.tif 000005
【図５】
0005673606.tif 000006
【図６】
0005673606.tif 000007
【図７】
0005673606.tif 000008
【図８】
0005673606.tif 000009
【図９】
0005673606.tif 000010
【図１０】
0005673606.tif 000011
【図１１】
0005673606.tif 000012