(58)【調査した分野】(Int.Cl.,DB名)
前記切替制御部は、前記仮想スタックの切り替えを、前記通信装置の外部若しくは内部で生ずるイベント、時間、又は前記通信装置の状況に基づいて行うことを特徴とする請求項1又は請求項2記載の通信装置。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施形態による通信装置について詳細に説明する。
【0014】
〔第1実施形態〕
図1は、本発明の第1実施形態による通信装置の要部構成を示すブロック図である。
図1に示す通り、本実施形態の通信装置1は、仮想スタック保存部11(保存部)、仮想スタック実行部12(実行部)、切替制御部13、及び無線通信インターフェイス部14を備えており、複数の無線通信規格に準拠した通信が可能である。例えば、通信装置1は、省電力動作を行いつつ、産業用無線通信規格であるISA100.11aに準拠した無線通信及びWirelessHART(登録商標)に準拠した無線通信が可能なフィールド機器である。
【0015】
仮想スタック保存部11は、例えばフラッシュROM(Read Only Memory)やEEPROM(Electrically Erasable and Programmable ROM)等の不揮発性メモリで実現され、通信装置1で用いられる仮想スタックVS1(第1仮想スタック)及び仮想スタックVS2(第2仮想スタック)を保存する。ここで、仮想スタックVS1,VS2は、通信装置1のハードウェア構成の都合によって、通信装置1の機能を実現するアプリケーションプログラムと、アプリケーションプログラムが通信を行うために必要となるプロトコルスタックを実現する通信プログラムとが対にされたものである。
【0016】
図2は、本発明の第1実施形態における仮想スタックの一例を示す図である。
図2に示す通り、仮想スタックVS1は、アプリケーションプログラムAP1(第1アプリケーションプログラム)と通信プログラムP11〜P13(第1通信プログラム)とが対にされたもの、及びパラメータPM1を含んでいる。アプリケーションプログラムAP1は、通信装置1の機能(例えば、流量測定機能、温度測定機能、その他の機能)を実現するプログラムである。
【0017】
通信プログラムP11〜P13は、上述した無線通信規格ISA100.11aに準拠したプロトコルスタックST1(第1プロトコルスタック)を実現するプログラムである。具体的に、通信プログラムP11はプロトコルスタックST1のデータリンク層を実現し、通信プログラムP12はプロトコルスタックST1のネットワーク装置を実現し、通信プログラムP13はプロトコルスタックST1のトランスポート層を実現する。
【0018】
より具体的に、通信プログラムP11は、IEEE802.15.4なる無線通信規格で規定されるデータリンク層を実現する。通信プログラムP12は、インターネットプロトコルの一種であるIPv6で規定されるネットワーク層を実現する。通信プログラムP13は、インターネットプロトコルで規定されるUDP(User Datagram Protocol:ユーザデータグラムプロトコル)をトランスポート層として実現する。
【0019】
パラメータPM1は、アプリケーションプログラムAP1及び通信プログラムP11〜P13の少なくとも一方で用いられるパラメータである。このパラメータPM1には、アプリケーションプログラムAP1で用いられるパラメータとして、例えば暗号処理に用いられるキー情報や暗号アルゴリズムを示す情報、測定した流量や温度等の単位を示す情報等が含まれる。また、通信プログラムP11〜P13で用いられるパラメータとして、データの送信先や送信元を示す情報、通信ネットワークを識別するための情報(サブネットID)等が含まれる。
【0020】
これに対し、仮想スタックVS2は、アプリケーションプログラムAP2(第2アプリケーションプログラム)と通信プログラムP21〜P23(第2通信プログラム)とが対にされたもの、及びパラメータPM2を含んでいる。アプリケーションプログラムAP2は、アプリケーションプログラムAP1と同様に、通信装置1の機能を実現するプログラムである。尚、アプリケーションプログラムAP2で実現される機能は、アプリケーションプログラムAP1で実現される機能と同じであっても良く、異なっていても良い。
【0021】
通信プログラムP21〜P23は、上述した無線通信規格WirelessHART(登録商標)に準拠したプロトコルスタックST2(第2プロトコルスタック)を実現するプログラムである。具体的に、通信プログラムP21はプロトコルスタックST2のデータリンク層を実現し、通信プログラムP22はプロトコルスタックST2のネットワーク装置を実現し、通信プログラムP23はプロトコルスタックST2のトランスポート層を実現する。
【0022】
パラメータPM2は、アプリケーションプログラムAP2及び通信プログラムP21〜P23の少なくとも一方で用いられるパラメータである。このパラメータPM2には、パラメータPM1と同様に、アプリケーションプログラムAP2で用いられるパラメータとして、例えば暗号処理に用いられるキー情報や暗号アルゴリズムを示す情報、測定した流量や温度等の単位を示す情報等が含まれ、通信プログラムP21〜P23で用いられるパラメータとして、データの送信先や送信元を示す情報、通信ネットワークを識別するための情報(サブネットID)等が含まれる。
【0023】
尚、本実施形態では、説明を簡単にするために、2つの仮想スタックVS1,VS2が仮想スタック保存部11に保存されている場合を例に挙げて説明する。但し、仮想スタック保存部11には、仮想スタック保存部11の容量が許容される限り、任意の数の仮想スタックを保存することが可能である。
【0024】
仮想スタック実行部12は、仮想スタック保存部11に保存された仮想スタックVS1,VS2の何れか一方を実行する。この仮想スタック実行部12は、CPU(中央処理装置)及びRAM(Random Access Memory)等の揮発性のメモリで実現され、切替制御部13の制御によって仮想スタック保存部11から読み出された仮想スタックを揮発性メモリに記憶しつつ実行する。尚、仮想スタック実行部12の一部をなす揮発性メモリの容量は、仮想スタックVS1,VS2を実行させ得る容量に設定されている。また、
図1では、理解を容易にするために、仮想スタック実行部12に読み出された仮想スタックを、破線の仮想スタックVS0として表現している。
【0025】
切替制御部13は、仮想スタック実行部12で実行させる仮想スタックVS1,VS2の切り替えを行う。例えば、切替制御部13は、通信装置1の外部若しくは内部で生ずるイベント、時間、又は通信装置1の状況(コンテキスト)に基づいて仮想スタック実行部12で実行させる仮想スタックVS1,VS2の切り替えを行う。
図3は、本発明の第1実施形態における仮想スタックの切り替え条件を説明するための図であって、(a)は通信装置1の外部又は内部で生ずるイベントが切り替え条件とされた場合の説明図であり、(b)は時間が切り替え条件とされた場合の説明図であり、(c)は通信装置1の状況が切り替え条件とされた場合の説明図である。
【0026】
図3(a)に示す通り、通信装置1の外部で生ずるイベントE1又は内部で生ずるイベントE2が切り替え条件とされている場合には、切替制御部13は、切替テーブルTB(イベントE1,E2の種類毎に切り替え対象の仮想スタックを示す情報が規定されたテーブル)を参照して仮想スタックVS1,VS2の切り替えを行う。ここで、上記のイベントE1は、例えば流量や温度等の測定結果を通知するためのイベントであり、上記のイベントE2は、例えば仮想スタック実行部12で実行されている仮想スタックにより行われた通信結果を示すイベントである。
【0027】
尚、切替制御部13は、上記の切替テーブルTBを参照することなく仮想スタックVS1,VS2の切り替えを行う場合がある。例えば、仮想スタック保存部11に2つの仮想スタックVS1,VS2のみが保存されており、イベントE1,E2が生じたときに必ず仮想スタック実行部12で実行されている仮想スタック(例えば、仮想スタックVS1)を、実行されていない仮想スタック(例えば、仮想スタックVS2)に切り替える必要がある場合である。このような場合には、切替テーブルTBを省略することができる。
【0028】
図3(b)に示す通り、時間が切り替え条件とされている場合には、切替制御部13は、タイマTMで計時される時間を参照して仮想スタックVS1,VS2の切り替えを行う。例えば、予め設定された時刻が到来した場合、或いは仮想スタック実行部12で実行されている仮想スタックの実行時間が予め設定された時間になった場合に、切替制御部13は、仮想スタックVS1,VS2の切り替えを行う。尚、
図3(b)に示す例では、切替制御部13の外部にタイマTMが設けられているが、タイマTMは切替制御部13の内部に設けられていても良い。
【0029】
図3(c)に示す通り、通信装置1の状況が切り替え条件とされている場合には、切替制御部13は、通信装置1の状況を認識し、予め規定された切替規則CRを参照しつつ仮想スタックVS1,VS2の切り替えを行う。ここで、上記の切替規則CRは、仮想スタックVS1,VS2の切り替えが必要になる規則(ルール)を規定したものである。この切替規則CRには、例えば特定の仮想スタックが用いられる場合にだけ通信障害が発生する状況に通信装置1がなったこと、通信装置1に設けられている電池の残量が一定以下の状況になったこと、或いは通信装置1が起動又は再起動される状況になったこと等が規定されている。
【0030】
無線通信インターフェイス部14は、通信装置1の外部から無線信号で送信されてきたデータを受信するとともに、通信装置1の外部に送信すべきデータを無線信号にして送信する。この無線通信インターフェイス部14は、例えばIEEE802.15.4なる無線通信規格で規定される物理層に相当する。
【0031】
次に、上記構成における通信装置1の動作について簡単に説明する。
図4は、本発明の第1実施形態による通信装置の動作を示すフローチャートである。尚、
図4に示すフローチャートは、通信装置1の電源が投入されて通信装置1が起動されることによって開始される。通信装置1が起動すると、まず仮想スタック保存部11から予め規定された(デフォルトの)仮想スタックが切替制御部13によって読み出される(ステップS11)。尚、ここでは、仮想スタックVS1が読み出されるとする。
【0032】
仮想スタック保存部11から読み出された仮想スタックVS1は、切替制御部13によって仮想スタック実行部12に出力されて実行される(ステップS12)。これにより、
図2に示すプロトコルスタックST1と、アプリケーションプログラムAP1による通信装置1の機能(例えば、流量測定機能、温度測定機能、その他の機能)が実現され、通信装置1は、上述した無線通信規格ISA100.11aに準拠した無線通信が可能な状態になる。
【0033】
以上の処理が終了すると、仮想スタックの切り替え条件が成立したか否かが切替制御部13で判断される(ステップS13)。例えば、
図3(a)に示す通り、通信装置1の外部で生ずるイベントE1又は内部で生ずるイベントE2が切り替え条件とされている場合には、切替制御部13にイベントE1又はイベントE2が入力されたか否かが判断される。また、
図3(b)に示す通り、時間が切り替え条件とされている場合には、切替制御部13によってタイマTMが参照され、予め設定された時刻が到来したか否か、或いは仮想スタック実行部12で実行されている仮想スタックVS1の実行時間が予め設定された時間になったか否かが判断される。或いは、
図3(c)に示す通り、通信装置1の状況が切り替え条件とされている場合には、切替制御部13によって切替規則CRが参照され、通信装置1の状況が切替規則CRで規定された状況になったか否かが判断される。
【0034】
仮想スタックの切り替え条件が成立していないと判断した場合(ステップS13の判断結果が「NO」の場合)には、ステップS13の判断が再び切替制御部13で行われる。これに対し、仮想スタックの切り替え条件が成立したと判断した場合(ステップS13の判断結果が「YES」の場合)には、仮想スタック保存部11から実行させるべき(切り替えるべき)仮想スタックが切替制御部13によって読み出される(ステップS14)。尚、ここでは、仮想スタックVS2が読み出されるとする。
【0035】
仮想スタック保存部11から読み出された仮想スタックVS2は、切替制御部13によって仮想スタック実行部12に出力されて実行される(ステップS15)。これにより、
図2に示すプロトコルスタックST2と、アプリケーションプログラムAP2による通信装置1の機能が実現され、通信装置1は、上述した無線通信規格WirelessHART(登録商標)に準拠した無線通信が可能な状態になる。以降、ステップS13〜S15の処理が繰り返される。
【0036】
以上の通り、本実施形態では、アプリケーションプログラムとアプリケーションプログラムが通信を行うために必要となるプロトコルスタックを実現する通信プログラムとが対にされた仮想スタックVS1,VS2を仮想スタック保存部11に保存し、仮想スタック実行部12に実行させる仮想スタックVS1,VS2を切替制御部13によって切り替えるようにしている。このため、省電力動作を行うために通信装置1のハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【0037】
〔第2実施形態〕
図5は、本発明の第2実施形態による通信装置の要部構成を示すブロック図である。
図5に示す通り、本実施形態の通信装置2は、
図1に示す通信装置1が備える仮想スタック実行部12に代えて仮想スタック実行部21を設けた構成である。この仮想スタック実行部21は、
図1に示す仮想スタック実行部12と同様に、仮想スタックVS1,VS2の何れか一方を実行するものであるが、仮想スタック実行部21で実行される仮想スタックの間で受け渡される情報を保持する領域である情報保持領域R1を備える。かかる情報保持領域R1を設けることにより、切替制御部13によって切り替えられる仮想スタックVS1,VS2間で情報の受け渡しを円滑に行うことが可能になる。
【0038】
図6は、本発明の第2実施形態の応用例による通信装置の要部構成を示すブロック図である。
図6に示す通り、本応用例の通信装置2′は、
図5に示す通信装置2と同様に、仮想スタック保存部11、仮想スタック実行部21、切替制御部13、及び無線インターフェイス14を備える構成である。しかしながら、本応用例の通信装置2′は、仮想スタック保存部11に保存される仮想スタックVS1が
図5に示す通信装置2とは相違する。
【0039】
具体的に、
図5に示す通信装置2の仮想スタック保存部11に保存される仮想スタックVS1は、
図2に示す通り、アプリケーションプログラムAP1と通信プログラムP11〜P13とが対にされたもの、及びパラメータPM1を含むものであった。これに対し、
図6に示す通信装置2′が備える仮想スタック保存部11に保存される仮想スタックVS1は、仮想スタックVS11(第1部分)と仮想スタックVS12(第2部分)とに分割されている。このように、仮想スタックVS1を仮想スタックVS11,VS12に分割するのは、仮想スタックVS1に含まれるアプリケーションプログラムAP1のプログラムサイズが、通信装置2′で実行することができない大きさであっても、アプリケーションプログラムAP1の実行を可能にするためである。
【0040】
図7は、本発明の第2実施形態の応用例における仮想スタックの一例を示す図である。
図7に示す通り、仮想スタックVS1の一部をなす仮想スタックVS11は、通信プログラムP11〜P13、アプリケーションプログラムAP11、及びパラメータPM11を含む。通信プログラムP11〜P13は、
図2に示すものと同じものであり、上述した無線通信規格ISA100.11aに準拠したプロトコルスタックST1を実現するプログラムである。
【0041】
アプリケーションプログラムAP11は、アプリケーションプログラムAP1のうちの、プロトコルスタックST1を介したデータの送受信を司るプログラムである。パラメータPM11は、通信プログラムP11〜P13及びアプリケーションプログラムAP11の少なくとも一方で用いられるパラメータであり、例えばデータの送信先や送信元を示す情報、通信ネットワークを識別するための情報(サブネットID)が含まれる。
【0042】
これに対し、仮想スタックVS1の残りの部分をなす仮想スタックVS12はアプリケーションプログラムAP12及びパラメータPM12を含む。アプリケーションプログラムAP12は、アプリケーションプログラムAP1のうちのアプリケーションプログラムAP11を除く残りのプログラムである。例えば、プロトコルスタックST1を介して送信すべきデータの暗号化処理(前処理)、プロトコルスタックST1を介して受信したデータの復号処理(後処理)、及び通信装置2′の機能(例えば、流量測定機能、温度測定機能、その他の機能)を実現するプログラムである。パラメータPM12は、アプリケーションプログラムAP12の実行時に用いられるパラメータであり、例えば暗号処理に用いられるキー情報や暗号アルゴリズムを示す情報、測定した流量や温度の単位を示す情報が含まれる。
【0043】
ここで、本応用例では、アプリケーションプログラムAP1が、プロトコルスタックST1を介したデータの送受信を司るプログラムであるアプリケーションプログラムAP11と、残りのアプリケーションプログラムAP12とに分割されている例について説明するが、アプリケーションプログラムAP1の分割の仕方は任意である。但し、仮想スタックVS11,VS12の実行が不可能になる事態が生じず、且つ、通信装置2′の処理(例えば、データの送受信処理)に支障が生じないことが条件である。
【0044】
尚、
図5に示す通信装置2の仮想スタック実行部21は、
図1に示す通信装置1の仮想スタック実行部12と同様に、仮想スタック保存部11に保存された仮想スタックVS1,VS2の何れか一方を実行するものであった。これに対し、
図6に示す通信装置2′が備える仮想スタック実行部21は、仮想スタックVS11,VS12、VS2の何れか1つを実行することが可能である。
【0045】
また、通信装置2′が備える切替制御部13は、仮想スタック実行部21で実行させる仮想スタックVS11,VS12,VS2の切り替えが可能である。具体的に、切替制御部13は、
図3(a)を用いて説明した場合と同様に、通信装置2′の内部で生ずるイベントE2(具体的には、仮想スタック実行部21で実行されている仮想スタックVS0から出力されるイベント)が入力された場合に、仮想スタック実行部21で実行させる仮想スタックVS11,VS12の切り替えを行う。
【0046】
例えば、切替制御部13は、無線通信規格ISA100.11aに準拠した無線通信によって通信装置2′の外部からデータが送信されてくる場合には、仮想スタック保存部11から仮想スタックVS11を読み出して仮想スタック実行部21に実行させる。そして、受信処理が終了した旨を示すイベントE2が仮想スタックVS11(仮想スタックVS0)から出力されたときに、仮想スタック実行部21で実行させる仮想スタックを仮想スタックVS11から仮想スタックVS12に切り替えて受信処理が行われたデータに対する復号処理(後処理)を行わせる。
【0047】
また、例えば、切替制御部13は、無線通信規格ISA100.11aに準拠した無線通信によって通信装置2′の外部にデータを送信すべき場合には、仮想スタック保存部11から仮想スタックVS12を読み出して仮想スタック実行部21に実行させて暗号化処理(前処理)を行わせる。そして、暗号化処理が終了した旨を示すイベントE2が仮想スタックVS12(仮想スタックVS0)から出力されたときに、仮想スタック実行部21で実行させる仮想スタックを仮想スタックVS12から仮想スタックVS11に切り替えて暗号化処理が行われたデータの送信処理を行わせる。
【0048】
更に、切替制御部13は、仮想スタック実行部21で実行される仮想スタックVS12(仮想スタックVS0)の状態が不定となった場合(例えば、ウォッチドッグタイマにより不具合が検出された場合等)に、必ずプロトコルスタックST1を実現する通信プログラムP11〜P13が含まれる仮想スタックVS11を仮想スタック実行部21に実行させる。これは、例えば仮想スタックVS12の実行中に生じた不具合を遠隔で復旧するために、通信装置2′を通信可能な状態にするためである。このように、通信装置2′で生じた不具合を遠隔で復旧することができれば、作業員が通信装置2′の設置場所に赴いて復旧作業を行う必要が無くなり、早期に通信装置2′を復旧させることが可能になる。
【0049】
次に、上記構成における通信装置2′の動作について簡単に説明する。尚、以下では通信装置2′の外部から無線通信規格ISA100.11aに準拠した無線通信によって送信されてきたデータを受信する際の動作(受信動作)と、通信装置2′の外部に送信すべきデータを無線通信規格ISA100.11aに準拠した無線通信によって送信する際の動作(送信動作)とを例に挙げて説明する。ここで、通信装置2′は、消費電力を低減するために、予め規定されたスケジュールで間欠動作を行うものとする。このため、通信装置2′は、予め規定されたタイミングで送信動作を行うとともに、送信動作が行われるタイミングとは異なる予め規定されたタイミングで受信動作を行う。
【0050】
〈受信動作〉
図8は、本発明の第2実施形態の応用例による通信装置の受信動作を示すフローチャートである。受信動作が行われる場合には、まず仮想スタック保存部11に保存された仮想スタックVS11が切替制御部13によって読み出されて、仮想スタック実行部12で実行される(ステップS21)。これにより、
図7に示すプロトコルスタックST1と、プロトコルスタックST1を介したデータの送受信機能(アプリケーションプログラムAP11による機能)とが通信装置2′で実現される。
【0051】
仮想スタックVS11が実行されている状態で、通信装置2′の外部から通信装置2′宛のデータが送信されてくると、このデータは無線通信インターフェイス部14で受信される(ステップS22)。無線通信インターフェイス部14で受信されたデータは、仮想スタック実行部12に出力され、仮想スタックVS11による受信処理(パケット処理等)が行われる(ステップS23)。尚、仮想スタックVS11による受信処理は、通信プログラムP11〜P13によって実現されるプロトコルスタックST1とパラメータPM11とを用いて行われる。受信処理が行われたデータは、仮想スタック実行部12の情報保持領域R1に保持される(ステップS24)。
【0052】
仮想スタックVS11による受信処理が終了すると、受信処理が終了した旨を示すイベントE2が仮想スタックVS11(仮想スタックVS0)から切替制御部13に出力される(ステップS25)。すると、切替制御部13は、仮想スタック実行部12で実行させる仮想スタックを仮想スタックVS11から仮想スタックVS12に切り替える(ステップS26)。これにより、
図7に示すアプリケーションプログラムAP12の機能が実現され、プロトコルスタックST1を介して受信したデータの復号処理(後処理)等が行われる(ステップS27)。尚、復号処理は、情報保持領域R1に保持されたデータがアプリケーションプログラムAP12により読み出され、仮想スタックVS12に含まれるパラメータPM12を用いて行われる。このようにして、通信装置2′に送信されてきたデータが受信される。
【0053】
以上の受信処理で得られたデータは、例えばアプリケーションプログラムAP12で実現される機能(例えば、流量測定機能、温度測定機能、その他の機能)で用いられる。尚、ステップS26,S27の処理で不具合が生じた場合には、例えば仮想スタックVS12の実行中に生じた不具合の遠隔での復旧を可能にするために、仮想スタック実行部12で実行される仮想スタックが、切替制御部13によって仮想スタックVS12から仮想スタックVS11に切り替えられる。
【0054】
〈送信動作〉
図9は、本発明の第2実施形態の応用例による通信装置の送信動作を示すフローチャートである。送信動作が行われる場合には、まず仮想スタック保存部11に保存された仮想スタックVS12が切替制御部13によって読み出されて、仮想スタック実行部12で実行される(ステップS31)。これにより、
図7に示すアプリケーションプログラムAP12の機能が実現される。仮想スタックVS12が実行されると、外部に送信すべきデータを取得する処理が行われる(ステップS32)。例えば、アプリケーションプログラムAP12の実行によって通信装置2′に流量測定機能が実現されている場合には、流量を測定して流量データを取得する処理が行われ、通信装置2′に温度測定機能が実現されている場合には、温度を測定して温度データを取得する処理が行われる。
【0055】
外部に送信すべきデータが取得されると、このデータは仮想スタック実行部12において暗号化処理(前処理)される(ステップS33)。尚、暗号化処理は、仮想スタックVS12に含まれるパラメータPM12を用いて行われる。暗号化処理が行われたデータは、仮想スタック実行部12の情報保持領域R1に保持される(ステップS34)。
【0056】
仮想スタックVS12による暗号化処理が終了すると、暗号化処理が終了した旨を示すイベントE2が仮想スタックVS12(仮想スタックVS0)から切替制御部13に出力される(ステップS35)。すると、切替制御部13は、仮想スタック実行部12で実行させる仮想スタックを仮想スタックVS12から仮想スタックVS11に切り替える(ステップS36)。これにより、
図7に示すプロトコルスタックST1と、プロトコルスタックST1を介したデータの送受信機能(アプリケーションプログラムAP11による機能)とが実現される。
【0057】
仮想スタックVS12によって暗号化されたデータは、仮想スタック実行部12において仮想スタックVS11による送信処理(パケット処理等)が行われる(ステップS37)。尚、仮想スタックVS11による送信処理は、通信プログラムP11〜P13によって実現されるプロトコルスタックST1とパラメータPM11とを用いて行われる。仮想スタックVS11による送信処理が終了したデータは、仮想スタック実行部12から無線通信インターフェイス部14に出力されて無線信号にして送信される。このようにして、通信装置2′から外部にデータが送信される。
【0058】
尚、ステップS31〜S35の処理で不具合が生じた場合には、仮想スタック実行部12で実行される仮想スタックが、切替制御部13によって仮想スタックVS12から仮想スタックVS11に切り替えられる。これは、受信処理の場合と同様に、例えば仮想スタックVS12の実行中に生じた不具合の遠隔での復旧を可能にするためである。
【0059】
以上の通り、本応用例では、仮想スタックVS1を仮想スタックVS11と仮想スタックVS12とに分割し、仮想スタック実行部12に実行させる仮想スタックVS11,VS12を切替制御部13によって切り替えるようにしている。このため、仮想スタックVS1に含まれるアプリケーションプログラムAP1のプログラムサイズが、通信装置2′で実行することができない大きさであっても、アプリケーションプログラムAP1の実行をが可能になる。また、第1実施形態と同様に、通信装置2′が、省電力動作を行うためにハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【0060】
〔第3実施形態〕
図10は、本発明の第3実施形態による通信装置の要部構成を示すブロック図である。
図10に示す通り、本実施形態の通信装置3は、
図1示す通信装置1が備える仮想スタック実行部12及び切替制御部13に代えて仮想スタック実行部31及び切替制御部32をそれぞれ設けるとともに、無線通信インターフェイス部14に代えて2つの無線通信インターフェイス部14a,14bを設けた構成である。また、仮想スタック保存部11には、3つの仮想スタックVS11〜VS13が保存されている。尚、仮想スタック保存部11に保存される加増スタックの数は、仮想スタック保存部11の容量が許容される限り任意である。
【0061】
仮想スタック実行部31は、
図1に示す仮想スタック実行部12と同様に、仮想スタック保存部11から読み出された仮想スタックを実行するものである。但し、仮想スタック保存部11に保存された仮想スタックVS1〜VS3のうちの何れか2つの仮想スタックを同時に実行することが可能な点において、
図1に示す仮想スタック実行部12とは相違する。尚、
図10では、理解を容易にするために、仮想スタック実行部31で実行される仮想スタックを、破線の仮想スタックVS01,VS02として表現している。
【0062】
切替制御部32は、仮想スタック実行部31で実行させる仮想スタックの切り替えを行うものであるが、仮想スタック実行部31で実行される1つの仮想スタックのみの切り替え、或いは仮想スタック実行部31で実行される2つの仮想スタックの双方の切り替えを行うことが可能である。この切替制御部32は、予め規定された排他制御規則ERを参照しつつ仮想スタックの切り替えを行う。
【0063】
ここで、上記の排他制御規則ERは、仮想スタック実行部31で実行される仮想スタックVS01,VS02により使用される無線通信インターフェイス部の競合を防止するための規則を規定したものである。この排他制御規則ERには、例えば仮想スタック実行部31で実行される仮想スタックVS01に無線通信インターフェイス部14aを使用させ、仮想スタックVS02に無線通信インターフェイス部14bを使用させる規則等が規定されている。
【0064】
無線通信インターフェイス部14a,14bは、
図1に示す無線通信インターフェイス部14と同様に、通信装置3の外部から無線信号で送信されてきたデータを受信するとともに、通信装置3の外部に送信すべきデータを無線信号にして送信する。これら無線通信インターフェイス部14a,14bは、例えばIEEE802.15.4なる無線通信規格で規定される物理層に相当するものである。
【0065】
上記構成における通信装置3の動作は、
図1に示す通信装置1の動作とおおよそ同様であり、
図4に示すフローチャートに従った動作が行われる。つまり、電源が投入されて通信装置3が起動すると、まず仮想スタック保存部11から予め規定された2つの仮想スタック(例えば、仮想スタックVS1,VS2)が切替制御部32によって読み出され(ステップS11)、仮想スタック実行部31で実行される(ステップS12)。
【0066】
以上の処理が終了すると、仮想スタックの切り替え条件が成立したか否かが切替制御部32で判断される(ステップS13)。そして、仮想スタックの切り替え条件が成立していないと判断した場合(判断結果が「NO」の場合)には、ステップS13の判断が再び切替制御部32で行われる。これに対し、仮想スタックの切り替え条件が成立したと判断した場合(判断結果が「YES」の場合)には、仮想スタック保存部11から実行させるべき(切り替えるべき)仮想スタック(例えば、仮想スタックVS2,VS3)が切替制御部32によって読み出され(ステップS14)、仮想スタック実行部31で実行される(ステップS15)。
【0067】
以上の通り、本実施形態においては、アプリケーションプログラムとアプリケーションプログラムが通信を行うために必要となるプロトコルスタックを実現する通信プログラムとが対にされた仮想スタックVS1〜VS3を仮想スタック保存部11に保存し、仮想スタック実行部31に実行させる仮想スタックを切替制御部32によって切り替えるようにしている。このため、省電力動作を行うために通信装置3のハードウェア構成が必要最小限とされていても、省電力動作を行いつつ異なる無線通信規格に準拠した通信を行う複数の機能を実現することが可能である。
【0068】
尚、以上説明した第3実施形による通信装置3のように、複数の無線通信インターフェイス部14a,14bが設けられている場合には、
図11に示す通り、無線通信インターフェイス部を特定する情報を仮想スタックに含めても良い。
図11は、仮想スタックの他の例を示す図である。
図11に示す仮想スタックVSは、
図2に示す仮想スタックVS1に対し、無線通信インターフェイス部14a,14bのうちの何れか一方を特定する物理層識別子D1(特定情報)を含めたものである。
【0069】
このような仮想スタックVSが仮想スタック実行部(例えば、仮想スタック実行部31)で実行されると、仮想スタックVSに含まれる物理層識別子D1が切替制御部(例えば、切替制御部32)で参照される。そして、切替制御部の制御によって、仮想スタックVSが実行されることによって実現されるプロトコルスタックST1と、物理層識別子D1で特定される無線通信インターフェイス部との間でデータの入出力が行われる。
【0070】
以上、本発明の実施形態による通信装置について説明したが、本発明は上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上記実施形態では、無線通信を行う通信装置1〜3を例に挙げて説明したが、無線通信を行う通信装置のみならず、有線通信を行う通信装置にも適用可能である。