【文献】
G.Montenegro et al.,Transmission of IPv6 Packets over IEEE802.15.4 Networks,RFC4944,2007年 9月
(58)【調査した分野】(Int.Cl.,DB名)
第1のネットワークルーティングプロトコル、データリンクプロトコル、および物理プロトコルを含む、第1の通信プロトコルを使用する、第1の通信ネットワーク上で通信するための通信デバイスであって、
前記物理プロトコルを使用してデータパケットを受信および送信する、第1の通信ネットワークに連結される物理層要素と、
前記データリンクプロトコルを使用して前記データパケットを符号化および復号する、第1の物理層要素に連結されるデータリンク層スタック要素と、
第1のネットワークルーティング情報が前記第1のネットワークルーティングプロトコルに準拠する、前記第1のネットワークルーティング情報を前記第1の通信ネットワーク上で送信されるデータパケットに追加することによって、前記通信ネットワーク上で送信されるデータパケットを符号化するように動作する、および前記第1の通信ネットワークを介して受信されるデータパケットから第1のネットワークルーティング情報を読み取ることによって、前記第1の通信ネットワークを介して受信されるデータパケットを復号するように動作する、前記データリンク層スタック要素に連結される第1のネットワークルーティング層スタック要素であって、前記第1のネットワークルーティング情報は、前記第1のネットワークルーティングプロトコルに準拠する、第1のネットワークルーティング層スタック要素と、
前記第1のネットワークルーティング層スタック要素を使用して、前記第1の通信ネットワーク上で通信するアプリケーションを実行する、前記第1のネットワークルーティング層スタック要素に連結される第1のアプリケーション層スタック要素と、
第2のネットワークルーティングプロトコルに準拠するデータパケット内の第2のネットワークルーティング情報を符号化および復号するように動作する、前記第1のネットワークルーティング層スタック要素に連結される第2のネットワークルーティング層スタック要素であって、前記第2のネットワークルーティング層スタック要素は、第2のネットワークルーティング情報が前記第1のネットワークルーティングプロトコルとは異なる第2のネットワークルーティングプロトコルに準拠する、前記第2のネットワークルーティング情報を前記第1の通信ネットワーク上で送信されるデータパケットに追加することによって、前記通信ネットワーク上で送信されるデータパケットを符号化するように動作し、および前記第1のネットワークルーティング層スタック要素から受信されるデータパケットから第2のネットワークルーティング情報を読み取ることによって、前記第1のネットワークルーティング層スタック要素から受信されるデータパケットを復号するように動作し、前記第2のネットワークルーティング情報は、前記第2のネットワークルーティングプロトコルに準拠する、第2のネットワークルーティング層スタック要素と、
前記第2のネットワークルーティング層スタック要素を使用するデータパケットを使用して通信する、アプリケーションを実行する、前記第2のネットワークルーティング層スタック要素に連結される第2のアプリケーション層スタック要素と、
を備え、
前記第1のネットワークルーティング層スタック要素は、
前記データパケットが、前記第2のネットワークルーティングプロトコルと関連付けられるデータを含むかどうかを判定するように、前記第1のネットワークルーティングプロトコルに準拠する前記データリンク層スタック要素から、データパケット内の第1のネットワークルーティング情報を復号し、
前記復号されたデータパケットが前記第2のネットワークルーティングプロトコルと関連付けられるデータを含まない場合、前記復号されたデータパケットを前記第1のアプリケーション層スタック要素に送達し、
前記復号されたデータパケットが前記第2のネットワークルーティングプロトコルと関連付けられるデータを含む場合、前記復号されたデータパケットを前記第2のネットワークルーティング層スタック要素に送達し、
前記第1のネットワークルーティング層スタック要素は、前記第1のアプリケーション層スタック要素および前記第2のネットワークルーティング層スタック要素の両方を介して受信される、データパケットを符号化する、
通信デバイス。
前記第2のネットワークルーティング層スタック要素は、その中に前記第2のネットワークルーティング情報を含むデータパケットを生じるように、前記第1のネットワークルーティング層スタック要素から受信される2つ以上のデータパケット断片を組み立てる、デフラグメンタを含む、請求項2に記載の通信デバイス。
前記第1のネットワークルーティング層スタック要素は、前記第1のネットワークルーティングプロトコルに準拠する前記データリンク層スタック要素から受信された前記データパケット内の第1のネットワークルーティング情報内の識別子を読み取ることによって、前記第1のネットワークルーティング情報を復号する、請求項1〜3のいずれか一項に記載の通信デバイス。
前記第1のネットワークルーティング層スタック要素は、データパケットが前記第2のネットワークルーティングプロトコルと関連付けられるデータを含むという識別子を、前記第2のネットワークルーティング層スタック要素から受信されるデータパケット内の前記第1のネットワークルーティング情報内に配置することによって、前記第2のネットワークルーティング層スタック要素から受信される前記データパケット内の第1のネットワークルーティング情報を符号化する、請求項1〜4のいずれか一項に記載の通信デバイス。
前記第1の通信ネットワークのトランスポートプロトコルに従って、データパケットのトランスポート情報符号化および復号を行う、前記第1のネットワークルーティング層スタック要素と前記第1のアプリケーション層スタック要素との間に連結される第1のトランスポート層スタック要素をさらに含む、請求項1〜5のいずれか一項に記載の通信デバイス。
第2の通信ネットワークのトランスポートプロトコルに従って、データパケットのトランスポート情報符号化および復号を行う、前記第2のネットワークルーティング層スタック要素と前記第2のアプリケーション層スタック要素との間に連結される第2のトランスポート層スタック要素をさらに含む、請求項6に記載の通信デバイス。
【発明を実施するための形態】
【0014】
一般的に言えば、複数の異なる通信ネットワーク上で、IPデータフレーム等の第1のネットワークルーティングプロトコルに基づいて作成されるデータフレームをシームレスに伝達するためのシステムおよび方法は、第1のネットワークルーティングプロトコル、例えば、インターネットプロトコルバージョン6(IPv6)プロトコル、または任意の他の明示宛先あるいはアドレス指定ルーティングプロトコル、またはネットワークトポロジーアドレス指定プロトコルと関連付けられる、ネットワークルーティングプロトコル情報(ネットワークルーティング情報とも呼ばれる)を伴って構成されるデータフレームを作成または受信することと、第1のネットワークルーティング情報を維持しながら、WirelessHARTネットワークルーティングプロトコル、または任意の他のメッシュネットワーク、暗示宛先あるいはアドレス指定または非ネットワークトポロジーアドレスベースのルーティングプロトコル等の第2のネットワークルーティングプロトコルによって定義されるようなネットワークルーティングプロトコル情報を追加することと、データフレーム内で第1のネットワークルーティングプロトコルのネットワークルーティング情報を維持しながら、第2の通信ネットワーク上でデータフレームを伝達するために第2の通信ネットワークのネットワークルーティング機構およびプロシージャを使用することとを含む。また、本システムおよび方法は、データフレームが方向付けられるアプリケーションを有するデバイス、または第2の通信ネットワーク内のゲートウェイデバイスにおいて等、例えば、第2の通信ネットワーク内の端末デバイスにおいて、データフレームを復号してもよく、インターネット等の第1のネットワークルーティングプロトコルに準拠する通信ネットワーク内の元のデータフレームの通信を指図するため、または第1のネットワークルーティングプロトコルに準拠するデータフレームを用いてメッセージに応答するために、第1のネットワークルーティングプロトコルのネットワークルーティング情報を使用してもよい。
【0015】
背景として、概して、本明細書では明示宛先(明示アドレス指定とも呼ばれる)ルーティングプロトコルおよび暗示宛先(本明細書では、暗示アドレス指定とも呼ばれる)ルーティングプロトコルと呼ばれる、2つのタイプのネットワークルーティングプロトコルがある。明示宛先または明示アドレス指定ネットワークルーティングプロトコルは、概して、ネットワーク上でルートされるデータパケットの内側に配置されるネットワークルーティング情報の一部として、1つ以上の宛先または宛先アドレスを定義し、そのアドレスは、ネットワーク内の中間デバイスがネットワーク内でルーティングを行うために十分である。送信されているパケット内のネットワークルーティング情報内の宛先情報または宛先アドレスは、パケットが送達されるネットワーク内のデバイスまたは論理位置(宛先)を明示的に(すなわち、それら自体で、または独力で)定義する。このアドレス情報は、データパケットを宛先アドレスと関連付けられる宛先デバイスにルートするために(ネットワーク内のデバイスによって作成されるルーティングテーブルとともに)使用される。データパケットのIP宛先アドレスは、概して、ネットワーク上のデバイスがネットワーク内でデータパケットをルートすることを可能にするために、パケットから必要とされる唯一の情報であるため、IPアドレス指定またはIPネットワークルーティングプロトコルは、明示宛先またはアドレス指定ルーティングプロトコルの特定の実施例である。実際に、IPアドレス指定は、宛先アドレスを伴うデバイスに到達するために必要とされる、ルートまたはネットワークトポロジーの関数である、アドレス(例えば、宛先アドレス)を使用する。つまり、IPアドレスは、それを通して宛先デバイスが到達可能である中間デバイスへパケットを送信するように、デバイスがネットワーク内でパケットをルートすることを可能にするか、または支援するよう、ネットワークのトポロジー内のデバイスの場所(IPアドレスが割り当てられる)の関数として、作成されるか、または割り当てられる。したがって、IPアドレス指定は、ネットワークトポロジーベースまたは依存性であるため、本明細書ではネットワークトポロジーベースのアドレス指定プロトコルとも呼ばれる。概して、中間ルーティングデバイスにおける不十分な出力により、またはデバイス間の距離によるネットワーク内のデバイス間の通信チャネルの損失により、ネットワーク内で失われている(ルートされていない)パケットの懸念がほとんどまたは全くないため、多くの2点間有線または高出力ネットワークルーティングプロトコル(IPルーティングプロトコルを含む)は、明示宛先ルーティングまたは宛先アドレス指定ルーティング(ネットワークトポロジーベースのアドレス指定を含む)を使用する。
【0016】
他方で、暗示宛先ルーティングまたは暗示アドレス指定ルーティングは、パケットがネットワークを通してルートされる方法を定義するために、データパケット内の宛先アドレス以外の他の情報を使用する。いくつかの暗示宛先ルーティング技法は、例えば、ネットワークを通した種々のルートを定義するグラフが定義され、次いで、特定のデータパケットがネットワークを通してルートされるであろう方式を示すために使用される、グラフルーティングと呼ばれる概念を使用する。グラフルーティングの使用により、各データパケットは、特定のパケットのためにネットワーク内でルーティングを行うために使用されるグラフを識別する、グラフ識別子(グラフID)の形態で、ネットワークルーティング情報を提供される。場合によっては、グラフルーティングを使用するネットワークルーティングプロトコルはまた、パケットの中で提供されるネットワークルーティング情報内に1つ以上の宛先アドレスも含むが、これらのアドレスは、パケットのネットワークルーティング情報内のグラフIDまたは他の情報と併せて使用され、したがって、それら自体で、かつ独力で、通信ネットワーク内でルーティングを行うために十分ではない。当然ながら、グラフルーティングは、暗示宛先ルーティング技法の一実施例にすぎない。
【0017】
実際に、多くのメッシュ無線ネットワークは、通信スタックまたはネットワーク内のデバイスの電力(バッテリ)容量に過度な負荷をかけることなく、接続性を確保するように、データパケットがネットワークを通して特定の方式でルートされることを確実にする必要があるため、およびこれらのネットワークは、ルーティングに宛先アドレスを使用せず、または使用する場合は、ネットワーク内のデバイスの場所に依存する方式で宛先アドレスを割り当てず(アドレスがネットワークトポロジー依存性ではない)、それにより、宛先アドレスのみに基づいてネットワークルーティングを行うことを困難にするため、これらのネットワークは、グラフルーティング技法等の暗示ネットワークルーティング技法を使用する。これらの理由により、ほとんどのメッシュネットワークルーティングプロトコルは、IPアドレスルーティング等の明示宛先ルーティングを使用せず、実際には、そのようなルーティングプロトコルと互換性がない。
【0018】
一般的に言えば、メッシュネットワークは、各ノードが各自のデータを捕捉して広めるだけでなく、他のノードのための中継としての機能も果たさなければならず、したがって、各ノードが、ネットワーク内でデータを伝搬するように協働しなければならない、あるタイプのネットワーキングである、メッシュネットワーキング(トポロジー)を使用する。無線メッシュネットワーク(WMN)は、メッシュトポロジーにおいて組織化される無線ノードで構成される通信ネットワークである。無線メッシュネットワークはしばしば、メッシュクライアント、メッシュルータ、およびゲートウェイを含む。メッシュクライアントが、しばしば、ラップトップ、携帯電話、および他の無線デバイスである一方で、メッシュルータは、インターネットに接続し得るが、その必要はない、ゲートウェイを往復してトラフィックを転送する。単一のネットワークとして稼働する無線ノードの受信可能域は、メッシュクラウドと呼ばれることもある。このメッシュクラウドへのアクセスは、無線ネットワークを作成するように相互と調和して稼働する無線ノードに依存している。メッシュネットワークは、信頼性があり、冗長性を提供する。1つのノードがもはや動作できなくなったとき、他のノードは、直接的に、または1つ以上の中間ノードを通して、依然として相互と通信することができる。メッシュネットワークルーティング技法の実施例は、ZigBeeネットワークによって使用されるアドホックオンデマンド距離ベクトルルーティング、およびWirelessHARTネットワークで採用されるグラフルーティングを含む。AODVでは、宛先デバイスを見出すために、デバイスが、ルート要求をその隣接デバイス等の全てにブロードキャストする。次いで、隣接デバイスは、宛先に到達するまで、要求をそれらの隣接デバイス等にブロードキャストする。いったん宛先に到達すると、それは、ソースに戻る最低費用の経路を辿るユニキャスト伝送を介して、そのルート返信を送信する。いったんソースが返信を受信すると、経路における次のホップおよび経路費用を用いて、宛先アドレスのそのルーティングテーブルを更新するであろう。経路費用は、距離に対応するホップの数を含んでもよい。
【0019】
ここで
図1を参照すると、異なる通信ネットワークと関連付けられる複数の異なる物理ネットワーク内で、またはそれにわたって、データフレームまたはデータメッセージをルートするために、複数の異なるネットワークルーティングプロトコルのネットワークルーティング情報を使用する、通信方法を実装するように使用され得る、通信システム例5が図示されている。この実施例では、本通信方法は、WirelessHART通信ネットワーク等のメッシュネットワークルーティングプロトコルまたは非ネットワークトポロジーベースのアドレス指定プロトコルのような、暗示宛先ルーティングプロトコル等の第1のネットワークルーティングプロトコルを使用するルーティングをサポートしない、1つ以上の通信ネットワークを介して、IPプロトコル、とりわけ、IPv6ネットワークプロトコルのような、明示宛先ルーティングプロトコルまたはネットワークトポロジーアドレスベースのプロトコル等の第1のネットワークルーティングプロトコルを使用して作成される、データフレームをルートする、または送信するために使用されるであろう。したがって、一般的に言えば、本明細書で提供される実施例で説明される第1のネットワークルーティングプロトコルは、(明示宛先ルーティングプロトコルである、およびネットワークトポロジーアドレス指定ベースのルーティングプロトコルである)IPアドレス指定を使用するIPv4またはIPv6ネットワークルーティングプロトコル等のIPネットワークルーティングプロトコルとなり、このIPアドレス指定は、例えば、TCP/IPプロトコル、UDP/IPプロトコル、またはICMP/IPプロトコル(全て、概して本明細書では、IPネットワークルーティングプロトコルと呼ばれる)であってもよいが、それらに限定されない。また、第2のネットワークルーティングプロトコルは、暗示宛先ルーティングプロトコルまたは非IPネットワークルーティングプロトコル、例えば、IPアドレス、またはIPルーティングあるいはネットワークトポロジーベースのアドレス指定ルーティングプロトコルを使用またはサポートしない、ネットワークルーティングプロトコルとして、以下で提供される実施例で説明されるであろう。そのようなプロトコルの実施例は、WirelessHARTプロトコル、ZigBeeプロトコル等を含む。しかしながら、ネットワークルーティングプロトコルの他のタイプおよび特定の実施例を、本明細書で説明される第1および第2のネットワークルーティングプロトコルとして使用することができ、本明細書で説明される第1および第2のネットワークルーティングプロトコルは、それぞれ、IPおよび非IPプロトコルに限定されないことが理解されるであろう。例えば、本明細書で説明される通信およびルーティング技法は、第1の暗示宛先ルーティングプロトコル、または非IPネットワークルーティングプロトコルあるいは非ネットワークトポロジーアドレス指定ベースのプロトコルのデータパケットが、第2の暗示宛先ルーティングプロトコル、または非IPネットワークルーティングプロトコルあるいは非ネットワークトポロジーアドレス指定ベースのプロトコルを使用する通信ネットワーク上で送信されることを可能にするために、使用することができる。別の実施例として、本明細書で説明される通信およびルーティング技法は、IPネットワークルーティングプロトコルではない第1の明示宛先ルーティングプロトコルのデータパケットが、第2の明示宛先ルーティングプロトコル(IPまたは非IPベース)を使用する通信ネットワーク上で送信されることを可能にするために使用することができ、または、第1の暗示宛先、非IP、または非ネットワークトポロジーベースのアドレス指定ネットワークルーティングプロトコルのデータパケットが、例えば、Pネットワークルーティングプロトコルではない、第2の明示宛先ルーティングプロトコルを使用する通信ネットワーク上で送信されることを可能にするために使用することができる。当然ながら、第1および第2のタイプのネットワークの他の組み合わせも、本明細書で説明される通信およびルーティング技法を実装するために使用することができる。
【0020】
一般的に言えば、
図1の通信システム5は、IPネットワークルーティングプロトコルまたは非IPネットワークルーティングプロトコルのいずれかを実装し得る1つ以上の他の物理ネットワークに接続する、インターネット10の形態でIP通信ネットワークを含む。この場合、インターネットネットワーク10上の通信は、IPv6ネットワークルーティングプロトコルを使用するが、インターネット10上の通信はまた、または代わりに、IPv4ネットワークルーティングプロトコルまたは他のIPルーティングプロトコルを使用することができると推定されるであろう。
図1のインターネット10に接続されているものとして図示される通信ネットワークは、WirelessHARTネットワーク12、ZIGBEEネットワーク13、Bluetooth(登録商標)ピコネット14、セルラーネットワーク15、および無線ローカルエリアネットワーク(WLAN)/ローカルエリアネットワーク(LAN)16を含む。理解されるように、ネットワーク12〜16は、その中でネットワーク通信を行うように、異なるネットワークルーティングプロトコル(本明細書ではルーティングプロトコルとも呼ばれる)を実装または使用してもよく、これらの通信を行うために異なるデータリンクおよび物理層プロトコルを使用してもよい。Bluetooth(登録商標)ネットワーク、WLAN/LANネットワーク、およびセルラーネットワーク等を用いた、多くの場合において、通信ネットワークが、IPネットワークルーティングまたはネットワークトポロジーアドレス指定ルーティングあるいは別の明示宛先ルーティングプロトコルをサポートしてもよい一方で、WirelessHARTネットワーク等を用いた他の場合においては、通信ネットワークが、ネットワークルーティング活動にIPアドレス指定を使用しなくてもよいため、このネットワークは、IPネットワークルーティングプロトコルまたはネットワークトポロジーアドレス指定ルーティングあるいは他の明示宛先ルーティングプロトコルを使用またはサポートしなくてもよい。例えば、上述のように、WirelessHARTネットワークは、典型的には、WirelessHARTネットワーク内でメッセージのルーティングを行うために、グラフルーティングと呼ばれる概念を使用する。
【0021】
以下で説明される通信方法は、WirelessHARTネットワーク12内のデバイスが、IPv6またはIPv4データフレームを作成すること、および非IPネットワークルーティングプロトコルではないWirelessHARTネットワーク12のネットワークルーティングプロトコルが、ルーティング目的でIPアドレス指定を使用またはサポートしないため、このネットワークルーティングプロトコルを使用して、WirelessHARTネットワーク12上でこれらのデータフレームを伝達することを可能にするために、使用されてもよい。また、理解されるように、WirelesHARTネットワークが、メッシュネットワークルーティングプロトコルを実装する一方で、インターネット10および1つ以上の他の通信ネットワーク13〜16は、2点間ルーティングプロトコル等の非メッシュネットワークルーティングプロトコルを使用してもよい。いずれにしても、この通信方法を使用して、これらのIPv6データフレームは、WirelessHARTネットワーク12内の他のデバイスに、または
図1で図示される他の通信ネットワーク13〜16のうちの1つ以上の中のデバイスに送信され、それらによって復号されてもよい。同様に、以下で説明される通信方法は、WirelessHARTネットワーク12内のデバイスが、IPv6データフレームとしてIPv6データフレームを受信して復号し、したがって、デバイスがIPネットワークルーティング準拠通信ネットワーク(すなわち、IPネットワークルーティング機構を使用する通信ネットワーク)に接続された場合と本質的に同様に、これらのデータフレームを使用し、それらに応答することを可能にするために使用されてもよい。この場合、WirelessHARTネットワーク12内の受信デバイスは、WirelessHARTネットワーク12内の別のデバイスから、または
図1の他のネットワーク13〜16のうちのいずれか1つの中のデバイスから、IPv6データフレームを受信してもよい。
【0022】
一般的に言えば、本明細書で説明される通信方法を実装するために、IPv6使用可能WirelessHARTゲートウェイ11aは、WirelessHARTネットワーク12をインターネット10に接続する。同様に、
図1で図示されるように、他のゲートウェイデバイス11b、11c、11d、および11eは、ZigBeeネットワーク13、Bluetooth(登録商標)ピコネット14、セルラーネットワーク15、およびWLAN/LAN16のそれぞれを、インターネット10に接続する。ゲートウェイデバイス11ならびに通信ネットワーク12〜16内の1つ以上のデバイスは、以下でさらに詳細に説明される通信方法のステップまたは態様を実装するように動作して、例えば、IPベースの通信が、WirelessHARTネットワーク12内の2つのデバイス(またはアプリケーション)間で、またはWirelessHARTネットワーク12内の第1のデバイス(またはアプリケーション)とネットワーク13〜16のうちの別のネットワーク内の第2のデバイス(またはアプリケーション)との間で起こることを可能にしてもよい。
【0023】
より具体的には、WirelessHARTネットワーク12内のデバイス(ゲートウェイデバイス11aを含む)は、IPネットワークルーティングプロトコル通信を使用またはサポートしないネットワークルーティングプロトコルおよび/またはデータリンク層プロトコルを使用する、通信ネットワークの中または外へIPデータフレームをシームレスに送信することができるよう、非IPネットワークルーティング情報およびIPネットワークルーティング情報の両方を含むように構成されるデータフレームを使用して、WirelessHARTネットワーク12の物理層を介してデータフレームを受信および伝送するように動作してもよい。実施例として、
図1のIPv6使用可能WirelessHARTゲートウェイ11aは、インターネット10を介して、IPv6ネットワークルーティングプロトコルに従って情報とともにカプセル化されたデータフレームを受信してもよく、そのようなデータフレームは、インターネット10内の802.3プロトコルデータリンク層および/または任意の標準あるいはサポートされた物理層を使用して、インターネット10上で通信チャネルを通して伝送される。IPv6使用可能WirelessHARTゲートウェイ11aによってインターネット10から受信されるデータフレームは、本来、例えば、標準IPv6データフレームとして、ZIGBEEネットワーク13、Bluetooth(登録商標)ピコネット14、セルラーネットワーク15、またはWLAN/LAN16のうちのいずれか1つの中で動作するデバイス内のアプリケーションによって伝送または作成されていてもよい。次いで、IPv6使用可能WirelessHARTゲートウェイ11aは、WirelessHART準拠ネットワークルーティングプロトコルを使用して、WirelessHARTネットワーク12内で動作するデバイス内のネットワーク位置(例えば、アプリケーション)へ、受信したIPv6データフレームを伝送し、それにより、ネットワーク13〜16のうちの1つの中に位置するデバイスとWirelessHARTネットワーク12内に位置するデバイスとの間で、IPv6メッセージまたはデータフレームを送達するように動作してもよい。同様に、WirelessHARTゲートウェイ11aは、WirelessHARTネットワーク12内のIP使用可能デバイスによって作成され、したがって、IPv6ネットワークルーティングプロトコルに従って最初にカプセル化され、次いで、修正され、本明細書でさらに詳細に説明される方式で構成されるWirelessHARTネットワークルーティングプロトコルを使用して、WirelessHARTネットワーク12を介してルートされる、データフレームまたはメッセージを受信してもよい。WirelessHARTゲートウェイ11aは、WirelessHARTネットワーク12によって使用される802.15.4データリンク層および物理プロトコルを介して、これらのデータフレームまたはメッセージを受信してもよい。次いで、IPv6使用可能WirelessHARTゲートウェイ11aは、IPネットワークルーティングまたはアドレス指定を使用して、データフレームを他のネットワーク13〜16のうちの1つの中のデバイスに送信するために、受信したメッセージまたはデータフレーム内のIPネットワークルーティング情報を使用してもよい。当然ながら、この場合、IPv6使用可能WirelessHARTゲートウェイ11aは、標準802.3物理層通信プロトコルおよびIPv6ネットワークプロトコル技法を使用して、インターネット10を介して、受信したIPv6データフレームをアプリケーションまたはデバイスに伝送するように動作する。
【0024】
理解されるように、WirelessHARTネットワーク12内のデバイスは、802.15.4標準に準拠する通信チャネルを介して、データフレームを受信および伝送してもよい。しかしながら、以下でさらに詳細に説明されるように、WirelessHARTネットワーク12上のIPv6使用可能WirelessHARTゲートウェイ11aまたは他のIP使用可能デバイスは、WirelessHARTネットワーク12上でIPv6データフレームを送信するとき、例えば、6LoWPAN標準に従って、IPv6データフレームをいくつかの断片に断片化してもよい。この場合、デバイスは、WirelessHARTネットワークルーティングプロトコルおよび802.15.4データリンク層プロトコルに準拠する通信チャネルを介して、IPv6データフレーム断片をWirelessHARTデバイスに伝送してもよい。この場合、IPv6使用可能WirelessHARTゲートウェイ11aは、WirelessHARTネットワーク12上でIPv6データフレーム断片を送信するように、WirelessHARTネットワークルーティングプロトコルに対応するヘッダ情報とともに、これらのIPv6データフレーム断片をカプセル化してもよい。その後、WirelessHARTプロトコルヘッダに含まれる情報は、IPv6データフレーム断片を意図したWirelessHARTデバイスまたはアプリケーションにルートするために、WirelessHARTネットワーク12内の1つ以上のWirelessHARTデバイスによって利用されてもよい。有意なこととして、WirelessHARTネットワーク12内で動作するWirelessHARTデバイスは、非IPアプリケーションデータまたはペイロードを伝達または交換し続けてもよい。これは、ネットワーク内非IP通信、ならびにネットワーク内および間両方のIP通信を同時に可能にしながら、後方互換性を推進する。
【0025】
ネットワーク上でルートされている特定のWirelessHARTメッセージまたはデータフレームが、標準WirelessHARTメッセージであるか、またはカプセル化IPv6データメッセージであるかを、ネットワーク12上のWirelessHARTデバイスが認識することを可能にするために、メッセージを生成するIPv6使用可能WirelessHARTゲートウェイ11aまたは他のデバイスは、そのデータフレームがIPv6データフレームまたは標準WirelessHARTデータフレームであることを示すフラグを、データフレームのWirelessHARTネットワークルーティング情報の中に含んでもよい。フラグは、WirelessHARTネットワークルーティング情報の中に1つ以上のデータフィールドを備えてもよい。好ましくは、非IP使用可能およびIP使用可能WirelessHARTデバイス間の後方互換性および相互運用性を推進するために、フラグは、WirelessHARTネットワークルーティング情報の中の以前に使用されていないデータフィールドを利用してもよい。
【0026】
理解されるように、IPv6データフレームが断片化され、WirelessHARTネットワーク12上で送信されるとき、
図1のWirelessHARTネットワーク12内のIPv6使用可能WirelessHARTゲートウェイ11aまたは他のデバイスは、802.15.4通信プロトコルに従って動作する通信チャネルを介して、WirelessHARTネットワークルーティングプロトコル情報とともにカプセル化されたIPv6データフレーム断片を受信するであろう。IPv6データフレーム断片は、上記で示されるように、6LoWPAN標準に準拠してもよい。次いで、IPv6使用可能WirelessHARTゲートウェイ11aまたは他のWirelessHARTデバイスは、データフレームがIPv6データフレームに対応することを示すフラグを、データフレーム断片のWirelessHARTネットワークルーティング情報の中で検出してもよい。この場合、次いで、IPv6使用可能WirelessHARTゲートウェイ11aまたは他のWirelessHARTデバイスは、IPv6データフレームを生成するように6LoWPANデータフレームを組み立て直す。次いで、WirelessHARTゲートウェイ11aは、標準IPv6通信を使用して、IPv6データフレームを、ZIGBEEネットワーク13、Bluetooth(登録商標)ピコネット14、セルラーネットワーク15、および/またはWLAN/LAN16内のデバイスに送信するために、IPv6データフレームおよび標準IPルーティングソフトウェアおよびハードウェアのIP宛先アドレス情報を使用してもよい。当然ながら、組み立て直されたデータフレームのIPアドレスが、受信デバイス内のアプリケーションを示す場合、データフレームは、IPv6データフレームとしてアプリケーションに送達され、標準IPv6準拠技法に従って処理される。
【0027】
IPv6使用可能通信は、概して、WirelessHARTネットワーク12である非IPネットワークに関して起こるものとして
図1で説明されているが、これらの場合において、ネットワーク13〜16上のデバイスが、WirelessHART物理層、データリンク層、およびネットワークルーティング層プロトコルの代わりに、これらの他のネットワークによってサポートまたは特定される、物理層、データリンク層、およびネットワークルーティング層プロトコルを使用するであろうことを除いて、本明細書で説明される同一の技法を使用して、ZIGBEEネットワーク13、Bluetooth(登録商標)ピコネット14、セルラーネットワーク15、および/またはWLAN/LAN16(これらのネットワークが、例えば、非IPネットワークルーティングプロトコルを使用するとき)内等の、他の非IPネットワーク内でIPv6ベースの通信を行うために、同一の技法を使用できることが理解されるであろう。
【0028】
非IPネットワーク、すなわち、ネットワークルーティングを行うためにIPネットワークルーティングプロトコルを使用しないネットワークを介して、IPデータフレームを符号化してルートすることができる、特定の方式をさらに十分に説明するために、データフレーム全般、具体的にはIPデータフレームが作成され、通信ネットワークを介してルートされる、一般的な方式を説明することが役立つであろう。まず第1に、データフレームが作成されてルートされる、いくつかの異なる層またはレベルがあると留意することが重要であり、これらの異なるレベルが相互に関連し、ネットワーク通信を行うために現在使用されている種々の異なるネットワークおよび通信プロトコルで使用される方式を理解することが必要である。一般的に言えば、通信ネットワーク上で送信されるデータフレームは、典型的には開放型システム間相互接続(OSI)モデルを使用して定義される、いくつかの通信スタック層と関連付けられる、またはそれらによって提供される情報を含む。
【0029】
一般的に言えば、OSIモデルは、7つの基本層を使用してネットワークプロトコルを実装するためのネットワーキングフレームワークを定義する。メッセージを作成し、通信チャネル上で次のステーションに送信するように、1つのステーションの中の上層から始まって、そのステーションの中の底層へ進んで、1つの層から次の層へ制御が渡される。受信ステーションにおいて、制御が底層に提供され、受信したメッセージの復号を行うように、上層まで階級を再び横断する。一般的に言えば、OSIモデルの7つの層は、アプリケーション層(層7と呼ばれる上層)、プレゼンテーション層(層6)、セッション層(層5)、トランスポート層(層4)、ネットワーク層(層3)、データリンク層(層2)、および物理層(層1)を含む。概して、アプリケーション層は、アプリケーションおよびエンドユーザプロセスをサポートする。アプリケーション層における全ては、アプリケーション特有であり、アプリケーション層(またはアプリケーション層におけるアプリケーション)は、通信相手、サービスの質、ユーザ認証、プライバシー、データ構文への制約等を定義してもよい。この層はまた、ファイル転送、Eメール、および他のネットワークサービスのためのアプリケーションサービスも提供する。構文層と呼ばれることもある、プレゼンテーション層は、アプリケーション形式からネットワーク形式へ、およびその逆も同様に変換することによって、データ表現(例えば、暗号化)の差異からの独立を提供する。したがって、プレゼンテーション層は、データを、例えば、このデータが符号化または暗号化されている場合にアプリケーション層が受け入れることができる形式に変換するように稼働する。したがって、この層は、ネットワークにわたって送信されるデータをフォーマットして暗号化し、互換性の問題を低減または排除する。
【0030】
セッション層は、アプリケーション間の接続を確立し、管理し、および終了させ、概して、通信の両端でアプリケーション間の会話、交換、および対話を設定し、協調させ、終了させる。セッション層はまた、セッションおよび接続協調を扱う。トランスポート層は、終端システムまたはホスト間のトランスペアレントなデータの転送を提供し、終端間エラー回復およびフロー制御に関与する。したがって、この層は、完全なデータ転送を確保する。ネットワーク層は、種々のデータリンク上の一連の交換が、どのようしてネットワーク内の任意の2つのノード間でデータを送達することができるかを説明する。ネットワーク層は、ネットワークのアドレス指定、切替、およびルーティング構造を定義し、ノードからノードへデータを伝送するための仮想回路として知られている、論理経路を作成または定義する。重要なこととして、ネットワーク層は、ネットワークルーティングおよび転送機能、ならびにネットワークアドレス指定方式、インターネット機能、エラー処理、ふくそう制御、およびパケット順序制御を定義する。
【0031】
データリンク層は、データパケットをビットに符号化し、およびビットから復号し、特定の媒体上で伝送されるデータビットの論理的組織を説明する。この層は、物理層におけるパケットのフレーミング、アドレス指定、およびチェックサム(エラー処理)を定義する。データリンク層は、概して、媒体アクセス制御(MAC)層および論理リンク制御(LLC)層を含む、2つの副層に分割される。MAC副層は、ネットワーク上のコンピュータが、どのようにしてデータへのアクセスおよびこのデータを伝送する許可を獲得するかを制御する。LLC層は、フレーム同期化、フロー制御、およびエラーチェックを制御する。物理層は、電気および機械レベルでネットワークを通して、例えば、電気インパルス、光、または無線信号を介して、ビットストリームを伝える。物理層は、ケーブル、カード、およびネットワークハードウェアの物理的態様の定義を含む、キャリア上でデータを送信および受信するハードウェア手段を提供する。
【0032】
重要なこととして、いくつかのプロトコルが、最も顕著には、トランスポート層(層4)、ネットワーク層(層3)、データリンク層(層2)、および物理層(層1)を含む、これらの層のうちのいくつかのために定義されている。例えば、ユニバーサルデータグラムプロトコル(UDP)、伝送制御プロトコル(TCP)、およびインターネット制御メッセージプロトコル(ICMP)を含む、種々のトランスポート層プロトコルが存在する。これらのプロトコルは、例えば、IPネットワーク層プロトコルとともに使用される、特定のトランスポート層規則およびプロシージャを提供する。加えて、最も広範には、IPv4およびIPv6ネットワーク層プロトコル等のIPプロトコル、およびWirelessHARTネットワーク層プロトコルを含む多くの非IPネットワーク層プロトコルを含む、種々のネットワーク層プロトコルが存在する。ネットワーク層プロトコルは、概して、ネットワーク内の1つの論理点からネットワーク内の別の論理点へメッセージまたはデータフレームをルートするために使用される規則およびプロシージャを定義し、なおもさらに、ネットワークルーティングが起こることを可能にするためにデータパケットの中へ配置される必要があるネットワーク層情報を定義する。ネットワーク層プロトコルはまた、本明細書ではネットワークルーティングプロトコルとも呼ばれる。なおもさらに、例えば、802.3データリンク層プロトコル(Ethernet(登録商標))、802.15.4物理層プロトコル(例えば、WirelessHART物理層プロトコルによって使用される)等を含む、種々の物理層またはデータリンク層プロトコルが定義されている。種々の異なるネットワークが、異なるデータリンク層プロトコルを使用しながら、同一のネットワーク層プロトコルを使用してもよく、または逆も同様であることが理解されるであろう。また、あるデータリンク層プロトコルは、あるネットワーク層プロトコルと互換性がなくてもよい。この問題の一般的な理由は、ネットワーク層プロトコルが、データリンク層プロトコルによって許容されるメッセージサイズよりも長い最大メッセージサイズまたは長を定義し得ることである。
【0033】
本明細書で説明される通信技法は、上記で説明されるいくつかの層を利用してもよいが、いくつかの実装では、本通信方法は、「層状」アプローチを避け、命令の単一モノリシックブロックとして以下で説明される機能性を実装してもよい。このアプローチは、メモリが制約されたデバイスにおいて本通信方法を実装するときに特に魅力的である。しかしながら、命令の単一モノリシックブロックは、依然として、本明細書で説明される層状アプローチで使用される要素またはスタック要素を含む。
【0034】
典型的には、コンピュータデバイスに常駐するコンピュータデバイスおよび/またはアプリケーションは、デバイスが接続される通信ネットワークの物理層上で送信されるメッセージを作成(符号化)するようにOSIモデルの種々の層を実装するか、または下方に横断するため、あるいは通信ネットワークの物理層上で受信されるメッセージを復号するようにOSIモデルの種々の層を上方に横断するために、ネットワークまたは通信スタックを利用してもよい。したがって、デバイスの通信スタックは、データフレームを伝送する前に特定のプロトコルに従ってデータフレームをパッケージ化またはカプセル化するように、あるいはデバイスにおいて受信されるデータフレームを非パッケージ化または復号して、復号されたメッセージを、メッセージが方向付けられるアプリケーションに提供するように、スタックの種々の層における種々のプロトコルによって定義されるプロシージャを実装する、プロセッサにおいて実行されるアプリケーションを備えてもよい。プロトコルに従ってデータフレームをパッケージ化することは、データフレームに現在作用している層のプロトコルによって定義されるようなヘッダおよび/またはトレーラ情報を付加し、次いで、そのデータフレームをスタックの次の下層に渡すことを含んでもよい。同様に、データフレームを非パッケージ化することは、スタックの特定の層のデータフレームからヘッダおよび/またはトレーラ情報を除去および復号し、非パッケージ化されたデータフレームをスタックの中の次の上位層に渡すことを含む。スタックの中の特定の層のデータフレームのヘッダおよび/またはトレーラセクションの中の情報は、典型的には、適切な層における特定のプロトコル標準によって定義される規則に準拠する。例えば、TCP/IPプロトコルに従ってデータフレームをパッケージ化することは、(スタックのトランスポート層において)TCPヘッダをデータフレームに付加し、後に、(スタックのネットワーク層において)IPヘッダを結果として生じるデータフレームに付加することを含む。TCPヘッダは、TCPプロトコルに準拠し、IPヘッダは、例えば、IPv4またはIPv6標準に準拠する。IPv6プロトコルのうちの特定のものが、http://www.ietf.org/rfc/rfc2460.txtで入手可能な仕様で説明されている。他のネットワーク層プロトコルの実施例は、WirelessHARTプロトコル、ZigBeeネットワーク層プロトコル等を含む。当然ながら、特定のネットワークプロトコルに従ってパッケージ化されるデータフレームは、802.3標準(Ethernet(登録商標))、802.11a/b/g/n標準(Wi−Fi)、802.15.4標準、802.16標準(Wimax)、CDMA、GSM、LTE等のセルラー標準等の一組のデータリンク層プロトコルまたは物理層プロトコルのうちのいずれか1つに準拠する通信チャネルを介して、伝送されてもよい。
【0035】
図2Aは、データフレームまたはデータメッセージがデバイスの通信スタックの種々のOSI層を通して下方に処理される際に、データフレームまたはデータメッセージを作成する方式を図示する、チャートを描写する。具体的には、(アプリケーション層における)アプリケーションが、アプリケーションによって任意の所望の方式で定義される一組のビットおよびバイトとして、元のデータメッセージ20を作成し、このメッセージをトランスポート層に提供する。概して、メッセージを層に「提供すること」は、層のアプリケーションプログラミングインターフェース(API)または「ラッパ」を呼び出すことによって達成されてもよい。当業者はまた、層の「ラッパ機能を呼び出すこと」によってメッセージを提供してもよい。(ここで、セッションおよびプレゼンテーション層の詳細は、詳細に論議されず、スタックのトランスポート層で遂行されると仮定されるであろう。)スタックのトランスポート層は、(
図2で図示されるように)アプリケーションからのデータメッセージをペイロードとして扱い、使用されているトランスポート層プロトコルによって定義されるように、ヘッダ(およびおそらくトレーラ)情報をそこに付加する。本明細書ではトランスポート層情報22と呼ばれる、ヘッダ(およびおそらくトレーラ)情報は、セッション情報の定義(例えば、セッションID)、使用されているトランスポートプロトコルのタイプの定義または指示等を含んでもよい。結果として生じるメッセージ23は、
図2で図示されるように、トランスポート層からのメッセージ23をペイロードとして扱う、スタックのネットワーク層に提供される。ネットワーク層において、ネットワークルーティング情報またはネットワークルーティングプロトコル情報24は、付加的なヘッダおよびトレーラ情報(ヘッダセクションとして
図2で図示される)の形態でペイロード23に付加される。ネットワークルーティング情報24は、例えば、ネットワークソースおよび宛先の識別(IPネットワークルーティングプロトコルのソースIPアドレスおよび宛先IPアドレス、またはWirelessHARTネットワークルーティングプロトコルのグラフID等)、タイムアウト情報(有効期限情報)、チェックサム情報、メッセージまたはペイロード長情報、種々の目的で使用されるフラグ等を含んでもよい。
【0036】
その後、ネットワーク層によって作成されるようなメッセージは、データリンク層に提供され、そこで、ネットワーク層によって作成されたメッセージは、ペイロード25として扱われ、付加的なデータリンク情報26が、通信ネットワークで使用されているデータリンクプロトコルによって定義されるように、ヘッダおよび/またはトレーラセクションの形態で追加される。具体的には、データリンク層は、典型的には、デバイスソースおよび宛先識別(ソースおよび宛先MACアドレス等)の形態のデータリンク情報、停止および開始ビット等の媒体制御情報、フロー制御ビット、長さ情報、チェックサム情報、および順序情報を含む断片化情報等を追加する。場合によっては、スタックの物理層と関連付けられるアプリケーションは、物理層プロトコル情報をデータフレームに追加する。
【0037】
データリンク層によって作成されるようなメッセージは、物理層上へ出力され、物理層上で、データリンクヘッダ情報26の中の宛先アドレスによって定義されるようなデバイスへ送信される。理解されるように、デバイス内で復号されているとき、メッセージは、受信デバイスのスタックの上方に進み、スタックの各層は、メッセージを復号し、メッセージの適切な処理を行うために層によって使用される適切なヘッダおよびトレーラ情報を取り除く。したがって、受信デバイスにおいて、スタックのデータリンク層は、メッセージが正しく受信されており、(例えば、データリンク情報26内のMACアドレスによって定義されるような)このデバイスにアドレス指定されているかどうかを判定するように、データリンクヘッダおよびトレーラ情報26を取り除いて復号するであろう。もしそうであれば、データリンク層におけるメッセージのペイロード部分25は、送信および受信ネットワークアドレスまたは他のルーティング情報を判定するように、ネットワーク層ヘッダおよびトレーラ情報24を取り除く、ネットワーク層に提供される。スタックのネットワーク層は、このメッセージを受信するものであるネットワーク内の論理点、およびこのメッセージをネットワーク内の正しい点にルートする適切な方式を判定するために、このネットワークルーティング情報を使用してもよい。ネットワーク内のネットワークアドレスまたは論理点が、受信デバイスまたは受信デバイス内のアプリケーションと関連付けられると仮定すると、次いで、残りのペイロード23が、残りのメッセージ20をアプリケーション層内の適切なアプリケーションに与える前に、メッセージを処理するためにスタックのトランスポート層によって使用される、メッセージ、データタイプ等で使用するトランスポート層プロトコルを判定するように、トランスポート層情報22を取り除いて復号する、トランスポート層に提供される。
【0038】
理解されるように、ネットワークルーティング情報(またはネットワークプロトコル情報)は、概して、データフレームの意図した受信側であるコンピュータデバイスまたはアプリケーションの論理アドレスに対応する、情報を含む。データフレームのネットワークルーティング情報はまた、データフレームを伝送したコンピュータデバイスの論理アドレスに対応する、情報を含んでもよい。例えば、データフレームをカプセル化するIPネットワークプロトコルのIPヘッダは、ソースIPアドレスおよび宛先IPアドレスを含む。ソースIPアドレスは、データフレームを伝送するコンピュータデバイスまたはアプリケーションの論理アドレスに対応し、宛先IPアドレスは、データフレームの意図した受信側であるコンピュータデバイスまたはアプリケーションの論理アドレスに対応する。(コンピュータデバイスは、1つよりも多くの論理IPアドレスを有してもよい。)ルータ等の中間デバイスは、例えば、データフレームを、データフレームの意図した受信側であるコンピュータデバイスに「ルートする」か、または転送するために、IPアドレスを利用する。
【0039】
しかしながら、本明細書で説明される通信方法は、第1のネットワークルーティングプロトコルまたは技法(明示宛先またはアドレス指定ルーティング技法、非メッシュネットワークルーティング技法、あるいはネットワークトポロジーアドレス指定ベースのルーティング技法等)に準拠し、かつそれらを使用して復号可能であるが、第2の異なるネットワークルーティングプロトコルまたは技法(暗示宛先またはアドレス指定ルーティング技法、メッシュネットワークルーティング技法、あるいは非ネットワークトポロジーアドレス指定ベースの技法等)を使用する通信ネットワークを介して送信される、データメッセージを作成する能力を提供するように、上記で説明されるデータフレーム作成および復号プロセスを変更する。一般的に言えば、新しい通信方法は、メッセージが通信ネットワーク上で送信される際にメッセージに符号化される、複数の異なるネットワークルーティングプロトコルと関連付けられるネットワークルーティング情報またはネットワークプロトコル情報を有する、メッセージを作成する。この特徴は、メッセージが、第1のネットワークルーティングプロトコルを使用して送信されるメッセージとして作成されることを可能にするが、次いで、メッセージが、実際には、第2のネットワークルーティングプロトコルを使用するか、またはそれに準拠する通信ネットワーク上で送信されることを可能にする。加えて、メッセージは、アプリケーション層までメッセージを復号する必要なく、異なるネットワークルーティングプロトコルを使用する2つの通信ネットワーク間の接合点に配置されるゲートウェイデバイスにおいて容易に変換されてもよい。代わりに、ゲートウェイデバイスは、第2のネットワークから第1のネットワークへメッセージを送達するときに、第2のネットワークルーティングプロトコル情報を取り除くか、または第2のネットワーク内のデバイスによって受信されるようにメッセージを第2のネットワークの中へ送信するときに、第2のネットワークルーティングプロトコル情報を追加する必要しかない。
【0040】
図2Bおよび3は、例えば、WirelessHART通信ネットワーク上でルートされ、IPデータフレームとして、WirelessHART通信ネットワーク上でIP使用可能WirelessHARTゲートウェイ等の別のIP使用可能WirelessHARTデバイスによって復号されることが可能である、IPデータフレームをIP使用可能WirelessHARTデバイスの中で作成する方法を説明するために使用されるであろう。具体的には、
図2Bが、データフレームが本明細書で説明される通信技法に従って作成される際のこのデータフレームを図示する一方で、
図3は、
図2Bのデータフレームを生成するために使用される通信技法のステップを図示するフローチャート40を描写する。
【0041】
具体的には、
図3のフローチャート40のブロック41では、メッセージ30が、IPv4またはIPv6プロトコルによって提供されるもの等の標準IPルーティングを使用して符号化および送信されるであろうと仮定して、WirelessHARTデバイスのアプリケーション層におけるアプリケーションが、データメッセージ30(
図2B)を生成する。所望であれば、WirelessHARTデバイスのアプリケーション層内のこのアプリケーションまたは別のアプリケーションは、最初に、DNS(ドメイン名システム)サービスを実施または実装するように、およびデバイス、ウェブサイト、サーバ、ルータ、Eメール受信側等の特定のネットワークエンティティのIPアドレス(例えば、IPv6またはIPv4アドレス)をWirelessHARTデバイスに提供するようにゲートウェイデバイスに要求するメッセージを、(WirelessHARTネットワークルーティングプロトコルを使用するWirelessHARTネットワーク上で)ゲートウェイデバイスに送信してもよい。この場合、WirelessHARTデバイスは、最初に、ウェブサイトホスト名またはEメールサーバホスト名、あるいはDNSサービスによって使用される任意の他の名前等のネットワークエンティティ(例えば、第2またはIPネットワーク内のエンティティ)のドメイン名を提供してもよい。DNSサービス(IPネットワーク上のゲートウェイまたは別のデバイスにおいて実装され得る)を介してネットワークエンティティのIPアドレスを取得した後、次いで、ゲートウェイデバイスは、WirelessHARTネットワークルーティングプロトコルを使用して、WirelessHARTネットワーク上で、ネットワークエンティティのIPアドレスをWirelessHARTデバイス内のアプリケーションに返信し、次いで、アプリケーションは、IPv6またはIPv4データパケットを使用して通信するために、このIPアドレスを使用してもよい。アプリケーションは、他のIP使用可能デバイスを用いて通信を行うためにIPベースのソケットアドレス指定を使用する、ソケットベースのアプリケーションであってもよい。
【0042】
いずれにしても、ブロック42では、アプリケーションメッセージが、IP使用可能WirelessHARTデバイスのスタックのトランスポート層の中で処理され、TCPヘッダおよびトレーラ情報等の典型的なIPベースのトランスポート層情報をデータメッセージ30(スタックのトランスポート層で作成されているデータフレームのペイロードセクションとして扱われる)に追加する。
【0043】
次に、IP使用可能デバイスのスタックのネットワーク層で実施され得るブロック43が、IPソースおよび宛先アドレス情報等のIP準拠ネットワークルーティング情報、データパケット長情報等をデータフレームに追加する。このIPネットワークルーティング情報は、ヘッダ情報34aとして
図2Bで図示され、第1のネットワークルーティングプロトコル(この場合はIPネットワークルーティングプロトコル)と関連付けられるか、またはそれによって定義されるものとして例証される。上述のように、IP宛先アドレスは、IP宛先アドレスを判定するようにDNSサービスを行うか、または呼び出すゲートウェイデバイスとの通信を介して、取得されてもよい。次に、所望であれば、
図3のブロック44が、IPネットワークルーティングによってサポートされるサイズまたは長さのデータフレームをサポートしない、ネットワークルーティングプロトコル、データリンク層プロトコル、または物理層プロトコルを使用して、ブロック43によって生じさせられたIPデータフレームが通信ネットワーク上で送信されることを可能にするように、ブロック43によって生じさせられたデータフレームを断片化してもよい。そのような断片化は、概して、その中で送信されるデータパケットのサイズまたは長さを、従来のIPネットワークルーティングによってサポートされるサイズよりも小さいサイズに限定する、低出力IPネットワークで一般的である。より低い出力のIPネットワークで使用される、1つの一般的な断片化技法は、あるサイズを超える各IPv6データパケットを、ネットワークのデータリンクおよび物理層プロトコルによってサポートされる長さまたはサイズを有する複数のパケットまたは断片化データフレームに断片化する、6LoWPANプロトコルである。6LoWPAN断片化技法は、本明細書では断片化およびデフラグ目的で使用されるものとして説明されるが、他のタイプの断片化技法も使用することができる。加えて、場合によっては、例えば、第2のネットワークルーティングプロトコルまたは物理ネットワークが、第1のネットワークプロトコルの長さまたはサイズのデータフレームをサポートする場合において、いかなる断片化も必要とされなくてもよい。これらの場合において、ブロック44を省略することができる。
【0044】
いずれにしても、断片化が行われると仮定すると、ブロック46(第2のネットワークルーティングプロトコルを使用するネットワークルーティングを行うことと関連付けられる、スタックのネットワーク層で実施され得る)が、ブロック44からのデータパケットをペイロードとして扱い、第2のネットワークルーティングプロトコルによって定義されるようなネットワークルーティング情報を各データフレームまたは断片化データフレームに追加する。この点におけるデータパケットは、ブロック43(またはブロック44)によって作成されたパケット35に追加されるヘッダ情報として、第2のネットワークルーティング情報34bを含むものとして
図2Bで図示される。この第2のネットワークルーティング情報34bは、例えば、WirelessHARTネットワーク内のグラフルーティングのグラフID、ならびに、例えば、WirelessHARTプロトコルのWirelessHARTネットワークルーティング層によって定義されるような、データパケットの他のネットワークルーティング情報を含んでもよい。当然ながら、他のメッシュネットワーキング、暗示宛先またはアドレス指定、非ネットワークトポロジーアドレス指定ベース、あるいは非IPネットワークルーティングプロトコル等の他のネットワークルーティングプロトコルを、第2のネットワークルーティングプロトコルとして使用することができる。加えて、このレベルでデータパケットに追加されるネットワークルーティング情報の一部として、ブロック46は、基礎的データパケットまたはデータフレーム35が、実際には、第2のネットワークルーティングプロトコルではなく第1のネットワークルーティングプロトコルと関連付けられるデータフレームであることを示すように、ネットワークルーティング情報34bの別様に未使用の部分またはビットの中にフラグ(ビット39として
図2Bで図示される1ビットフラグ等)を追加または設定する。より具体的には、典型的には、特定のネットワークルーティングプロトコルによって各データパケットに追加されるネットワークルーティング情報の中に未使用のビットまたはバイトがある。ネットワークルーティングプロトコルを復号するデバイスは、典型的には、復号プロセス中にこれらのビットを無視する。しかしながら、この場合、これらの別様に未使用のビットまたはバイトのうちの1つ以上は、基礎的データパケットが、本来、第1のネットワークルーティングプロトコルまたは第2のネットワークルーティングプロトコルと関連付けられているものであるかどうかを示すフラグとして、使用されてもよい。例えば、第2のネットワークルーティングプロトコルのネットワークルーティング情報34bの中の特定のビットを「1」に設定することにより、基礎的データパケット35がIPv6データパケットであることを示してもよい一方で、第2のネットワークルーティングプロトコルのネットワークルーティング情報の中のこの特定のビットを「0」に設定することは、基礎的データが、本来、第2のネットワークルーティングプロトコルを使用して作成またはカプセル化されているデータ(例えば、本来、WirelessHARTデータフレームとして作成されたデータフレーム)を示してもよい。当然ながら、そのようなフラグまたは指示は、単一のビット、複数のビット、バイト、複数のバイト等の任意の所望の長さであってもよい。
【0045】
次に、
図3のブロック47では、スタックのデータリンク層が、(ヘッダおよび/またはトレーラ情報の形態の)データリンク情報36を、ブロック46によって作成される結果として生じたパケット37に追加してもよく、データリンク層情報36は、第2の通信ネットワークで使用されている特定のデータリンクプロトコルによって定義される。次いで、ブロック48が、第2の通信ネットワークの物理層によって定義されるように、物理層情報38を、ブロック47からの結果として生じたパケットに追加してもよい。次いで、ブロック49が、データパケット(その中に第1および第2の両方のネットワークルーティングプロトコルの両方のネットワークルーティング情報を有する)を送信または伝送してもよい。
【0046】
一般的に言えば、第2のネットワークルーティングプロトコルを使用する通信ネットワーク(すなわち、第2の通信ネットワーク)内の受信デバイスにおいて、パケットの種々の物理およびデータリンク層情報が、取り除かれて復号され、典型的な方式で使用されるであろう。また、受信デバイスのスタックは、第2のネットワークルーティングプロトコルのネットワークルーティング情報を取り除いて復号する、ネットワーク層を有するであろう。このプロセス中に、受信デバイスのスタックのネットワーク層は、基礎的データパケットが第1または第2のネットワークルーティングプロトコルパケットであるかどうかを示すために、フラグまたは他の指示として使用されている、この第2のネットワークルーティング情報の特定のビットまたはバイトを復号し、その情報をさらなる処理のために使用するであろう。具体的には、フラグまたは指示が、復号されると、基礎的パケットが、第2のネットワークルーティングプロトコルを使用する典型的または通常パケットであることを示す場合、パケットは、第2の通信ネットワークプロトコルに従って動作するスタックのトランスポート層に渡される。他方で、フラグまたは他の指示が、復号されると、例えば、基礎的パケットがIPv6パケットである(すなわち、第1のネットワークルーティングプロトコルと関連付けられる)ことを示す場合には、パケットは、第1のネットワークルーティングプロトコルに従ってパケットの復号およびルーティングを処理する、スタックのネットワーク層に渡される。例えば、パケットがIPv6パケットである場合において、ネットワークスタックは、元のIPv6パケットを形成するように一連の受信したパケットを集結することによって、パケットをデフラグしてもよく、次いで、典型的な方式でトランスポート層復号および処理を行うように、デフラグされたIPv6パケットを、第1のネットワーク通信プロトコルに従って構成されるスタックのトランスポート層に提供してもよい。このように、IPv6パケットは、処理のためにデバイス内の正しいアプリケーションに提供されるか、またはIPネットワークルーティングを使用して別のネットワーク上でルートされてもよい。
【0047】
しかしながら、理解されるように、第1のネットワーク通信プロトコル(すなわち、第1のネットワークルーティングプロトコルに依存するもの)を使用して作成されるデータパケットは、第2の通信ネットワーク(ルーティング通信用の第2のネットワークルーティングプロトコルを使用する)上で送信され、第1のネットワークルーティングプロトコルおよび第2のネットワークルーティングプロトコルの両方に対する、またはそれらによって定義されるようなネットワークルーティング情報を含む。この通信技法は、ネットワーク通信用の第1のネットワークルーティングプロトコルを使用しない通信ネットワークに接続されるデバイスでもある、任意のデバイスの中で第1のネットワーク通信プロトコル(IPネットワークルーティングプロトコル等の第1のネットワークルーティングプロトコルに依存する)を使用してネットワーク上で伝送されるであろうということに従って、またはそのように仮定して、データパケットが作成されることを可能にする。この通信技法はまた、第2の通信ネットワークが第1のネットワークルーティングプロトコルを使用するルーティングを使用またはサポートしないときでさえも、第1のネットワークルーティングプロトコルを使用しない第2の通信ネットワーク上のデバイスが、第2の通信ネットワーク上で第1のネットワークルーティングプロトコルに従って作成されるデータパケットを送信および受信することも可能にする。この特徴は、第2の通信ネットワーク上のデバイスが、第1のネットワークルーティングプロトコルに準拠するデータパケットを使用して相互に通信することを可能にし、加えて、第2の通信ネットワーク上のデバイスが、第1のネットワークルーティングプロトコルに従って構成されるデータパケットを使用して、異なる通信ネットワーク(例えば、第1のネットワークルーティングプロトコルを使用するルーティングをサポートするネットワーク)上のデバイスと直接通信することを可能にする。
【0048】
ここで、この通信技法を使用して生じ得る通信のタイプのいくつかの実施例を、さらに詳細に論議する。以下で提供される実施例のうちのいくつかでは、第1の通信ネットワーク上の第1のコンピュータデバイスが、第1のネットワークルーティングプロトコル、例えば、TCP/IPを使用する、1つのネットワーク通信プロトコルに従ってデータフレームを作成し、これらのデータフレームを、第2のネットワークルーティングプロトコル、例えば、WirelessHARTプロトコルを使用する、第2の通信ネットワーク上に位置する第2のコンピュータデバイスへ伝送する。(しかしながら、上述のように、ネットワークルーティングプロトコルの他のタイプまたは具体的実施例を第1および第2の通信ネットワークで使用することができる。)以下の実施例では、第1のコンピュータデバイスは、802.3標準等のデータリンク層通信プロトコルに準拠する通信チャネルを介して、データフレームを伝送してもよく、第2のコンピュータデバイスは、802.15.4標準等の同一または異なるデータリンクプロトコルに準拠する通信チャネルを介して、データフレームを受信してもよい。本明細書で使用されるように、データリンクプロトコルはまた、概して、物理層プロトコルとも呼ばれる。
【0049】
上述のように、データリンクプロトコルまたは標準は、とりわけ、特定の通信プロトコルに準拠する通信チャネルを介した通信トランザクション中に伝送または受信され得る、データフレームの最大サイズを定義する。データフレームの最大サイズは、概して、最大伝送単位(MTU)サイズと呼ばれる。例えば、802.15.4標準に準拠する通信チャネルを介して伝送されるデータフレームのMTUサイズは、典型的には、102バイトである。802.11標準に準拠する通信チャネルを介して伝送されるデータフレームのMTUは、典型的には、2272バイトである。802.3標準に準拠する通信チャネルを介したデータフレームのMTUは、1500バイトである。
【0050】
別個に、ネットワークルーティングプロトコル標準はまた、ネットワークルーティングプロトコルに従ってパッケージ化されるデータフレームのMTUサイズを定義してもよい。例えば、IPv6標準は、典型的には1280バイトであるものとして、データフレームのMTUを定義する。したがって、いくつかのシナリオでは、単一のトランザクションにおいて、802.15.4標準に準拠する通信チャネルを介してIPv6データフレームを伝送することが不可能であり得る。これらのシナリオにおいて、IPv6データフレームが802.15.4標準に準拠する通信チャネルを介して伝送される前に、IPv6データフレームは、いくつかのデータフレームに断片化されてもよい。データフレーム断片は、受信デバイスにおいてデータフレーム断片の再組立を可能にする情報とともにカプセル化されてもよく、IPv6データフレームの意図した受信側であるコンピュータデバイスにおいて組み立て直されてもよい。断片化および再組立は、6LoWPAN等のプロトコルを利用することによって行われてもよい。断片化の結果として、IPv6データ断片のうちのいくつかまたは全てが、IPヘッダを含まなくてもよい。
【0051】
以下で説明される実施例では、IPv6データフレームの断片は、WirelessHARTプロトコルに準拠するデータフレームを処理するように構成されるコンピュータデバイス間のIPv6データフレームのルーティングを促進するように、第2のネットワークルーティングプロトコル、例えば、WirelessHARTネットワークルーティングプロトコルに対応するヘッダ情報とともにカプセル化されてもよい。いくつかの実施例では、上述のように、WirelessHARTネットワークプロトコルヘッダは、データフレームがIPv6データフレームであることを示すフラグを含んでもよい。ここで、コンピュータデバイスは、WirelessHARTネットワークプロトコル情報とともにカプセル化されるIPv6データフレーム断片、およびWirelessHARTネットワークプロトコル情報とともにカプセル化される非IPv6データフレームを受信および伝送するように構成されてもよい。
【0052】
一般的に言えば、本明細書で説明される通信技法は、ある場合では、第1のタイプのデータフレームを作成すること、すなわち、IPプロトコル等の第1のネットワークプロトコルを使用することと、そのデータフレームを、第1のネットワークプロトコルに従ったネットワークルーティングを使用するネットワーク上で、非IPプロトコル等の第2の異なるネットワークルーティングプロトコルを使用する第2の通信ネットワークに接続される第2のデバイスへ送信することとを伴う。第2のデバイスは、第2のネットワークルーティングプロトコルによって定義されるネットワークルーティング情報を有するデータフレームの中で、その中に第1のネットワークルーティング情報を伴うデータフレームをカプセル化し、データフレームを、第2のネットワークルーティングプロトコルを使用する第2の通信ネットワーク上で、第1のタイプのデータフレーム(例えば、IPデータフレーム)を生じるように受信したデータフレームを復号する第3のデバイスへ送信またはルートする。
図4Aのフローチャート200は、この方法をさらに詳細に図示し、その上で通信が起こる種々の通信ネットワーク内の異なるデバイスにおいて講じられる、またはデバイスによって行われる、いくつかのステップを含む。
【0053】
具体的には、
図4Aのフローチャート200のブロック202、204、および206は、IPネットワークルーティングプロトコル(例えば、IPv6)等の第1のネットワークルーティングプロトコルを使用する第1の通信ネットワークに接続された第1のデバイスにおいて実施される。ブロック208、210、および212は、第1の通信ネットワークと、第1のネットワークルーティングプロトコルとは異なるWirelessHART通信ネットワーク等の第2のネットワークルーティングプロトコルを使用する第2の通信ネットワークとの間の接合点に位置する、ゲートウェイデバイス等の第2のデバイスにおいて実施される。(ここでは、WirelessHART通信ネットワークは、典型的には、プロセスプラントおよび他のタイプの製造プラントで通信を実装するためにプロセス制御業界で使用される、特殊メッシュネットワークであると留意されるであろう。一般的に言えば、WirelessHARTネットワークプロトコルは、プロセス制御ネットワーク内でより良好なルーティングを可能にするように、プロセス制御またはプロセスシステムコマンド等の種々の他のタイプの情報がデータパケットのネットワークルーティング情報の中に配置されることを求める。そのようなコマンドは、IPネットワークルーティングプロトコルによってサポートされていない。)ブロック214、216、218、および220は、第1の通信ネットワーク上の第1のデバイスによって作成される元のデータパケットを受信するデバイスである、第2の通信ネットワークに接続された受信デバイスにおいて実施される。
【0054】
具体的には、ブロック202では、第1の通信ネットワーク(例えば、IPベースの通信ネットワーク)上の第1のデバイス内のアプリケーションが、第1のネットワークルーティングプロトコル(この実施例についてはIPv6プロトコル等のIPプロトコルであると仮定される)を使用する通信ネットワーク上で、アプリケーションデータパケットまたはメッセージをルートすることと一致する方式で、そのメッセージを生成する。ブロック204は、第1のネットワークルーティングプロトコルに準拠する第1のネットワークルーティング情報とともに、(そのように所望される場合、スタックのプレゼンテーション層、セッション層、およびトランスポート層によって処理されるような)アプリケーションメッセージをカプセル化するように動作する。この実施例では、ブロック204の出力は、インターネット等のIPネットワーク上で伝送する準備ができている標準IPv6データパケットであってもよい。次に、ブロック206は、例えば、IPアドレスルーティングを使用して、第1のネットワークルーティングプロトコルを使用する第1の通信ネットワークまたはチャネルにわたって、カプセル化アプリケーションデータパケットを伝送させる。当然ながら、ブロック206は、第1の通信ネットワーク上でIPv6データパケットを送信する前に、通信スタックのデータリンクおよび物理層においてデータパケットを処理してもよい。
【0055】
次に、例えば、第1の通信ネットワークを第2の通信ネットワークに接続するゲートウェイデバイス内のブロック208が、データフレームを受信して復号し、データフレームの第1のネットワークルーティング情報内のIPアドレスが第2の通信ネットワーク上のデバイスに対するものである、またはそれと関連付けられることを認識する。次いで、ゲートウェイデバイス内のブロック208は、第2のネットワークルーティングプロトコルに準拠し、元のIPv6データパケット内のIPアドレスと関連付けられる第2の通信ネットワーク上に位置するデバイスへデータパケットをルートするように構成される、第2のネットワークルーティング情報とともに、受信したデータパケット(第1のネットワークルーティングプロトコルのネットワークルーティング情報を含む)をフレームに入れることによって、第2の通信ネットワークによって使用される第2のネットワークルーティングプロトコルに準拠するデータフレームを生成する。必要または所望であれば、ブロック208は、それらの作成されたデータパケットのそれぞれ(またはデータパケット断片)上に第2のネットワークルーティング情報を配置する前に、受信したIPv6データパケットからいくつかのデータパケットを作成するために、例えば、6LoWPAN断片化技法を使用して、受信したIPv6データパケットを断片化するように動作してもよい。
【0056】
加えて、ブロック210は、作成されているパケット内の基礎的データフレームが、第1のネットワークルーティングプロトコルと関連付けられるアプリケーションデータを有することを示す、フラグを、データパケットの第2のネットワークルーティング情報の中に設定すること等によって、指標を生成する。次いで、ゲートウェイデバイス内のブロック212は、データパケット内の第2のネットワークルーティングプロトコル情報を使用する第2のネットワークルーティングプロトコルに従って動作する、第2の通信ネットワークまたは第2の通信ネットワーク上のチャネルにわたって、データフレームを伝送させる。
【0057】
受信デバイス、すなわち、元のデータフレームのIPアドレスと関連付けられるが、第2の通信ネットワーク上に位置するデバイスにおけるブロック214は、データフレームの第2のネットワークルーティング情報に基づいて、スタックの物理、データリンク、およびネットワーク層において、データフレームを受信して復号する。このデバイス内のブロック216は、受信したデータパケットの第2のネットワークルーティング情報の中の指標またはフラグの存在または非存在を検出するように動作する。そのようなフラグが存在しない場合、または基礎的データパケットが本来、第2のネットワークルーティングプロトコルと関連付けられたデータパケットとして作成されたことをフラグが示す場合、ブロック218は、データパケットを、処理するために、第2のネットワーク通信プロトコルと関連付けられる受信デバイスのスタックのトランスポート層に提供する。しかしながら、指標が存在する場合、または基礎的データパケットが、本来、第1のネットワークルーティングプロトコル(例えば、IPプロトコル)と関連付けられたデータパケットとして作成されたことをフラグが示す場合、ブロック220は、パケットを復号して処理するように、データを、第1のネットワークルーティング情報を使用する受信デバイスのスタックのネットワーク層に提供する。スタックのこのネットワーク層は、最初に、元のIPv6データパケットを組み立て直すように、一連のそのような受信したパケットをデフラグしてもよく、次いで、IPネットワークルーティングプロトコルを使用して受信デバイスに送信されたかのように、IPv6データパケットが受信デバイスのスタックの中のアプリケーションまたはアプリケーション層に送達され得るように、標準IPネットワーク層およびトランスポート層処理を使用して、IPv6データパケットを処理してもよい。
【0058】
同様に、本明細書で説明される通信技法は、第1のタイプのデータフレームを作成すること、すなわち、IPプロトコル等の第1の通信ネットワークと関連付けられる第1のネットワークプロトコルを使用することと、最初に、そのデータフレームを、第2のネットワークルーティングプロトコル(第1のネットワークルーティングプロトコルとは異なる)を使用する第2のネットワーク上で、第1の通信ネットワークにも接続される第2のデバイスへ送信することとを伴うことができる。この場合、第1のデバイスは、第2のネットワークルーティング情報とともに、その中に第1のネットワークルーティングプロトコル情報を有するデータフレームをカプセル化し、第2のネットワークルーティングプロトコルを使用する第2の通信ネットワーク上で、データフレームを第2のデバイスに送信またはルートする。次いで、第2のデバイスは、第1のタイプのデータフレーム(例えば、IPデータフレーム)を生じるように、第2のネットワークルーティングプロトコルを使用して、受信したデータフレームを復号し、次いで、第1のネットワークルーティングプロトコルを使用する第1の通信ネットワーク上で、復号されたデータフレームを送信する。
図4Bのフローチャート250は、その上で通信が起こる種々の通信ネットワーク内の異なるデバイスにおいて講じられる、またはデバイスによって行われる、いくつかのステップを含むものとして、この方法をさらに詳細に図示する。
【0059】
具体的には、
図4Bのフローチャート250のブロック252、254、256、258、および260は、WirelessHARTネットワークルーティングプロトコル等の第2のネットワークルーティングプロトコルを使用する、第2の通信ネットワークに接続された第1のデバイスにおいて実施される。ブロック262、264、および268は、第1の通信ネットワーク(例えば、IPベースの通信ネットワーク)と、第2のネットワークルーティングプロトコルを使用する第2の通信ネットワークとの間の接合点に位置する、ゲートウェイデバイス等の第2のデバイスにおいて実施される。ブロック270は、第2の通信ネットワーク上の第1のデバイスによって作成される元のデータパケットを受信するデバイスである、第1の通信ネットワークに接続された受信デバイスにおいて実施されてもよい。
【0060】
具体的には、ブロック252が、第2の通信ネットワーク上のIP使用可能デバイス(例えば、IP使用可能WirelessHARTデバイス)内で実施され、データパケットが第1の通信プロトコルに準拠する通信ネットワーク上で送信されるであろう(例えば、IPネットワークプロトコルに準拠するデータパケット)と仮定して、アプリケーションデータパケットを生成する。したがって、このデータパケットを生成するアプリケーションは、ソケットベースのアプリケーションであってもよい。
図4Aに関して上述のように、このデータパケットで使用されるIPアドレスは、最初に、例えば、IPネットワークに接続されるWirelessHART通信ネットワーク上で、ゲートウェイデバイスと通信し、WirelessHARTデバイスによって提供されるドメイン名の正しいIPアドレスを判定するように、ゲートウェイデバイスにDNSサービスを行わせる(例えば、DNSサーバの役割を果たさせる)ことによって、取得されてもよい。IP使用可能デバイスのブロック254は、例えば、IPアドレス指定情報をデータメッセージに追加することによって、第1のネットワークルーティングプロトコルに準拠する第1のネットワークルーティング情報とともに、(IP使用可能デバイス内のスタックの適切なプレゼンテーション、セッション、およびトランスポート層によって処理された後の)アプリケーションメッセージをカプセル化する。次に、ブロック256は、第2のネットワークルーティングプロトコルに準拠する第2のネットワークルーティング情報とともに、ブロック254からのアプリケーションデータパケットをフレームに入れることによって、第2のネットワークルーティングプロトコルに準拠するデータフレームを生成する。この場合、ブロック256は、第2のネットワークルーティング情報を断片化データパケットのそれぞれに追加する前に、第2の通信ネットワークによって許容されるサイズに準拠する一組のデータパケットを作成するように、ブロック254によって作成されたデータパケットを断片化してもよい。ブロック258もまた、基礎的データフレームが、第1のネットワークルーティングプロトコルと関連付けられるアプリケーションデータ(例えば、IPv6データパケット)を有することを示す指標を、それぞれのそのようなデータパケットの第2のネットワークルーティング情報内に生成または配置する。次いで、ブロック260は、これらのパケット内の第2のネットワークルーティング情報を使用する第2のネットワークルーティングプロトコルに従って動作する、第2の通信ネットワークのチャネルにわたって、ブロック256および258によって作成されたデータフレームを伝送させる。
【0061】
例えば、その異なる入力において、第2の通信ネットワークおよび第1の通信ネットワークの両方に接続される、ゲートウェイデバイスにおいて実施されるブロック262は、第2の通信ネットワークを介して受信されるデータフレームを受信し、これらのデータフレーム内の第2のネットワークルーティング情報に基づいて復号する。ブロック264は、基礎的IPデータの存在を示す、受信したデータフレームの第2のネットワークルーティング情報の中の指標またはフラグの存在を検出するように、このゲートウェイデバイス内で動作する。そのようなフラグがデータパケットの中に存在しない場合、ブロック266は、データを復号して処理するように第2の通信プロトコルに従って動作する受信デバイスのトランスポート層にデータパケットを提供してもよく、または第2の通信ネットワークを介して、そのデータにさらなるルーティングを行ってもよい。しかしながら、フラグが存在するか、または設定されている場合、ブロック268は、例えば、元のIPv6データパケット内にIPネットワークルーティング情報を含む、その元のIPv6データパケットを生じるように、第2の通信ネットワーク上で受信される複数のデータパケットからIPデータフレーム情報を復号して組み立て直すことによって、基礎的IPデータフレームを回収する。次いで、ブロック268は、第1のネットワークルーティングプロトコルを使用する第1の通信ネットワークの通信チャネルを介して、データパケットを受信側に伝送するために、その組み立て直されたIPv6データパケット内のIPネットワークルーティング情報(例えば、IPアドレス情報)を使用してもよい。ブロック270では、受信デバイス(すなわち、第1のデバイスによって作成されるようなIPv6データパケットのIP宛先アドレスを有するデバイス)が、任意の公知または標準の方式で、IPv6データパケットを受信して復号してもよい。
【0062】
理解されるように、これらの基本的通信技法は、その中の通信にIPベースのルーティングを使用またはサポートしない、プロセスプラント通信ネットワーク等の通信ネットワーク内で、またはそれにわたって、IPデータメッセージングまたは通信(例えば、IPv6データフレーム等のIPデータフレームのメッセージング)を提供するために、種々の異なるシナリオで使用することができる。いくつかのこれらのシナリオを、以下で実施例のみとして説明する。
【0063】
図5は、プロセスプラント内のフィールドデバイスが、インターネット51を介して、およびIPネットワークルーティングをサポートしないWirelessHART通信ネットワークであり得る、1つ以上のプロセス制御ベースの通信ネットワーク53および71を介して、IPv6データフレームを受信および伝送するように、本明細書で説明される通信方法を実装する、通信ネットワーク例50を図示する。一般に、化学、石油、または他のプロセスプラントで使用されるもの等のプロセス制御システムは、プロセス内で感知および物理的制御機能を果たす、フィールドデバイス59〜65および76〜81として
図5で図示される、フィールドデバイスを含む。フィールドデバイス59〜65および76〜81のそれぞれは、例えば、弁、弁ポジショナ、スイッチ、センサ(例えば、温度、圧力、または流速センサ)、ポンプ、ファン、コントローラ、入出力デバイス等であってもよい。フィールドデバイスは、弁を開放または閉鎖すること、およびプロセスパラメータの測定を行うこと等の、プロセスまたはプロセス制御ループ内の制御および/または物理的機能を果たす。無線通信ネットワーク53および71では、フィールドデバイス59〜65および76〜81は、WirelessHARTデータフレームおよびIPv6データフレーム等のデータフレームの生産装置および消費装置である。IPv6データフレームを作成、受信、および使用することが可能である、ネットワーク53および71内のデバイスを、本明細書ではIP使用可能デバイスと呼ぶ。
【0064】
概して、WirelessHARTネットワーク53および71内で、コンピュータデバイスは、データフレームをデータフレームの意図した受信側であるコンピュータデバイスへルートするために、WirelessHARTネットワークルーティング技法を利用する。フィールドデバイスは、典型的であるように、WirelessHARTネットワーク53および71上で典型的なWirelessHARTデータフレームを作成して伝送してもよい。しかしながら、上記の論議から理解されるように、データフレームはまた、WirelessHARTネットワークルーティング情報とともにカプセル化されたIPv6データフレーム断片を含んでもよく、またはWirelessHARTネットワークルーティング情報とともにカプセル化された非IPv6データフレーム断片を含んでもよい。この状況において、例えば、IPv6使用可能WirelessHARTゲートウェイ54は、好適なプロトコル、例えば、6LoWPANを利用して、インターネット51から受信されるIPv6データフレームを断片化するステップ、およびデータフレーム断片がWirelessHARTネットワーク53内でルートされることを可能にするWirelessHARTネットワークプロトコル情報とともに、データフレーム断片をカプセル化するステップを行ってもよい。
【0065】
図5で図示されるように、ネットワーク53と関連付けられるIPv6使用可能WirelessHARTゲートウェイ54、およびネットワーク71と関連付けられるIPv6使用可能WirelessHARTゲートウェイ70は、インターネット51に接続される。IPv6使用可能WirelessHARTゲートウェイ54および70はそれぞれ、独立型デバイスとして、ワークステーション(図示せず)の拡張スロットの中へ挿入可能なカードとして、プログラマブルロジックコントローラ(PLC)ベースのシステムの入出力サブシステムの一部として、または任意の他の方式で実装されてもよい。プロトコルおよびコマンド変換に加えて、IPv6使用可能WirelessHARTゲートウェイ54および70は、それぞれ、WirelessHART通信ネットワーク53および71のスケジューリング方式のタイムスロットおよびスーパーフレーム(時間的に同等に離間された通信タイムスロットのセット)によって使用される同期クロッキングを提供してもよい。
【0066】
加えて、WirelessHART通信ネットワーク53は、ルータデバイス57および58を含んでもよい。ルータデバイス57は、例えば、1つの無線ネットワークデバイスから別の無線ネットワークデバイスへデータフレームを転送する、ネットワークデバイスである。ルータデバイスの役割を果たしているネットワークデバイスは、どの無線ネットワークデバイスが特定のデータフレームの次の受信側であるかを決定するために、内部ルーティングテーブルを使用する。ルータ57等の独立型ルータは、WirelessHART通信ネットワーク53上の全てのデバイスがルーティングをサポートするシナリオで必要とされなくてもよい。しかしながら、WirelessHART通信ネットワーク53内でルーティング57等の専用ルータを有すること(例えば、ネットワークを拡張すること、またはネットワーク内のフィールドデバイスの電力を節約すること)が有益であり得る。
【0067】
WirelessHART通信ネットワーク53はまた、IPv6使用可能WirelessHARTフィールドデバイス62、63、64、および65を含むものとしても図示される。IPv6使用可能WirelessHARTフィールドデバイス62は、例えば、WirelessHARTネットワークルーティングプロトコル情報内でカプセル化された6LoWPAN IPv6データフレーム断片を受信して処理することが可能であり得、かつWirelessHARTネットワークルーティングプロトコル情報内でカプセル化された6LoWPAN IPv6データフレーム断片を作成してルートすることが可能であり得る。同様に、IPv6使用可能WirelessHARTフィールドデバイス62は、例えば、WirelessHARTプロトコルヘッダとともにカプセル化された非IPv6データフレームを別のWirelessHARTフィールドデバイスへルートすることが可能であり得る。ルーティングを行うために、WirelessHARTフィールドデバイス62は、例えば、特定のデータフレームをカプセル化するWirelessHARTネットワークルーティングヘッダの中のルーティング情報を利用する。
【0068】
WirelessHART通信ネットワーク53はまた、従来のWirelessHARTフィールドデバイス59、60、および61を含んでもよい。WirelessHARTフィールドデバイス59、60、および61は、WirelessHARTネットワークプロトコル情報とともにカプセル化されたデータフレームを受信および伝送することが可能である。WirelessHARTフィールドデバイス59、60、および61はまた、WirelessHARTネットワークプロトコルヘッダ内にカプセル化された6LoWPAN IPv6データフレーム断片を、データフレーム断片の意図した受信側であるIPv6使用可能WirelessHARTフィールドデバイスへルートすることも可能であり得る。ルーティングを行うために、WirelessHARTフィールドデバイス59は、例えば、ルーティングを行うように6LoWPAN IPv6データフレーム断片をカプセル化する、WirelessHARTネットワークルーティングプロトコルヘッダの中のルーティング情報を利用する。WirelessHART使用可能フィールドデバイス59、60、および61は、その中にIPv6データフレームを含む、そのようなデータフレームを含む、WirelessHARTメッセージまたはデータフレームをルートすることが可能であるが、これらのデバイスは、IPv6データフレーム自体を復号または使用することが可能ではない。
【0069】
WirelessHARTネットワーク53内のルータ58は、例えば、フィールドデバイス59からのWirelessHARTネットワークプロトコルヘッダとともにカプセル化されたデータフレームを受信することが可能であり得る。ルータ58は、例えば、WirelessHARTネットワークプロトコルヘッダの中のルーティング情報に基づいて、データフレームを隣接フィールドデバイス60へルートしてもよい。
【0070】
図5のシステム例では、WirelessHART通信ネットワーク71は、IPv6使用可能WirelessHARTゲートウェイデバイス70、1つ以上のルータデバイス74および75、いくつかのIPv6使用可能フィールドデバイス79、80、81、および82、ならびにいくつかの従来のWirelessHARTフィールドデバイス76、77、および78を含む。上述のデバイスは、802.15.4標準に準拠する通信チャネルを介して、データフレームを伝送および受信してもよい。この場合、WirelessHART通信ネットワーク71内のコンピュータデバイス82は、ハンドヘルドコンピュータデバイスであってもよい。コンピュータデバイス82は、802.15.4標準に準拠する通信チャネルを介してWirelessHART通信ネットワーク71内でデータフレームを伝送および受信することが可能である、アダプタを提供されてもよい。加えて、コンピュータデバイス82は、IPv6使用可能フィールドデバイス82から、WirelessHARTネットワークプロトコル情報内にカプセル化されたIPv6データフレーム断片、およびWirelessHARTネットワークプロトコル情報内にカプセル化された非IPv6データフレームを受信および伝送してもよい。所望であれば、コンピュータデバイス82は、非IPv6使用可能フィールドデバイス81から、WirelessHARTネットワークプロトコル情報内にカプセル化された非IPv6データフレームを受信および伝送してもよい。これらの実施例のそれぞれでは、データフレームをカプセル化するWirelessHARTネットワークプロトコルヘッダ内のルーティング情報は、データフレームのWirelessHARTネットワーキングルーティング情報に基づいて、WirelessHARTネットワーク71内のデータフレームをデータフレームの意図した受信側であるデバイスへルートするために、中間IPv6使用可能WirelessHARTデバイスおよび非IPv6使用可能WirelessHARTデバイスによって利用される。
【0071】
本明細書で説明される1つのシナリオでは、異なるWirelessHARTネットワーク53および71内の2つのIPv6使用可能WirelessHARTデバイスはまた、ネットワーク53および71のそれぞれの上で送信され、かつインターネット51を介してネットワーク53および71の間で送信される、IPv6データフレームを使用して、相互と通信してもよい。実施例として、ネットワーク71内のコンピュータデバイス82は、これらのネットワークにわたって、およびインターネット51上で送信されるIPv6データフレームを伝送および受信することによって、例えば、他方のWirelessHARTネットワーク53内に位置する、IPv6使用可能フィールドデバイス63と通信してもよい。このシナリオでは、コンピュータデバイス82において実行する、ウェブブラウザ等のアプリケーションが、IPv6データフレームを生成してもよい。実施例のみとして、データフレームの中のデータは、IPv6使用可能フィールドデバイス63からのウェブページデータの要求に対応してもよい。コンピュータデバイス82は、ウェブページ要求に対応する1つ以上のIPv6データフレームを生成するためにTCP/IPネットワークプロトコルスタックを利用してもよい。
【0072】
再度、上述のように、コンピュータデバイス82は、最初に、標準WirelessHARTメッセージングを使用して、WirelessHARTネットワーク71を通してゲートウェイデバイス71へ通信することによって、(例えば、デバイスまたはデバイス63のホストと関連付けられる)IPv6データフレームを生成するために使用する1つまたは複数のIPアドレスを判定してもよい。この場合、デバイス82は、デバイス63において到達されるウェブサイトまたは他のホストのドメイン名等の名前を有するメッセージを送信し、DNSサービスを実装して(またはインターネット51上のDNSサーバとしての役割を果たし、あるいはDNSサーバに連絡して)IPアドレスに対するドメイン名を解決するように、ゲートウェイデバイス71に要求してもよい。次いで、ゲートウェイデバイス70は、デバイス82がその中に正しいIPv6宛先アドレスを伴う(例えば)IPv6データパケットを作成することを可能にするように、このIPアドレスをデバイス82に返信してもよい。デバイス82は、ゲートウェイデバイス72からIPアドレスDNSサービスを要求するために標準WirelessHARTメッセージングを使用することができるが、デバイス82はまた、本明細書で説明される通信技法を使用して(すなわち、WirelessHARTネットワークルーティング情報の中にそのようなIPデータフレームをカプセル化し、処理するためにカプセル化データフレームをゲートウェイデバイス70に送信し、ゲートウェイデバイス70内のIPまたはソケットベースのアプリケーションによって復号することによって)別のネットワークエンティティのIPアドレスを要求するために、ゲートウェイデバイス70にアドレス指定されたIPv6データパケットを使用することもできる。同様に、ゲートウェイデバイス70は、WirelessHARTネットワークルーティング情報の中にカプセル化されたIPデータメッセージを介して、または標準WirelessHARTメッセージングを介して、WirelessHARTネットワーク71上で判定されたIPアドレスを返信することができる。
【0073】
いったん作成されると、次いで、IPv6データフレームは、6LoWPANプロトコルスタックによって断片化されてもよく、1つ以上の断片は、
図3のフローチャート40に関して説明される方式でデータフレームをIPv6使用可能WirelessHARTゲートウェイ70に送信するように設計されている、WirelessHARTネットワークルーティング情報内でカプセル化されてもよい。次いで、コンピュータデバイス82は、WirelessHARTネットワークルーティングを使用して、WirelessHARTネットワーク71内の802.15.4準拠通信チャネルを介して、データ断片をIPv6使用可能WirelessHARTゲートウェイ70へ伝送してもよい。データフレーム断片は、IPv6使用可能WirelessHARTゲートウェイ70によって受信されてもよく、IPv6使用可能WirelessHARTゲートウェイ70は、ウェブページ要求に対応するIPv6データフレームを生成するように、いくつかのデータフレーム断片を組み立て直してもよい。
【0074】
次いで、IPv6使用可能WirelessHARTゲートウェイ70は、インターネット51を介してIPv6データフレームをIPv6使用可能WirelessHARTゲートウェイ54へルートするために、組み立て直されたIPv6データフレームのIPv6ヘッダの中で入手可能な宛先IPアドレス情報を利用してもよい。この場合、IPv6データパケットの宛先IPアドレスは、IPv6使用可能フィールドデバイス63のIPv6アドレスに対応し、ゲートウェイ54は、ネットワーク53内のデバイスのIPアドレスのリストを記憶するであろう。当然ながら、IPv6使用可能WirelessHARTゲートウェイ70は、インターネットを介したIPv6使用可能WirelessHARTゲートウェイ54への適切なルートを判定するために、典型的または利用可能なTCP/IPルーティングプロトコルを利用してもよい。
【0075】
次いで、IPv6使用可能WirelessHARTゲートウェイ54は、ネットワーク53上でIPv6データフレームをIP使用可能フィールドデバイス63に送信するために、
図3のフローチャート40の後部分の方法を使用してもよい。具体的には、ゲートウェイ54は、受信したIPv6データフレームを1つ以上の6LoWPANデータフレーム断片に断片化してもよく、次いで、WirelessHARTネットワーク53内のデバイス63にアドレス指定またはルートされる方式で、そのネットワーク上でデータフレーム断片を伝送する前に、WirelessHARTネットワークルーティングプロトコル情報内でデータフレーム断片をカプセル化してもよい。WirelessHARTネットワークルーティングプロトコル情報は、例えば、中間WirelessHARTデバイス59、58、および65が、(WirelessHARTネットワークルーティング情報内でカプセル化された)IPv6データフレーム断片をIPv6使用可能WirelessHARTフィールドデバイス63へルートすることを可能にする、WirelessHARTルーティング情報を含む。
【0076】
IPv6使用可能WirelessHARTフィールドデバイス63は、WirelessHART通信ネットワーク53を介して、いくつかのWirelessHARTデータパケットの中の(WirelessHARTネットワークルーティング情報の中でカプセル化された)いくつかのデータ断片を受信し、データフレームがデバイス63に意図されていることを判定するように、WirelessHARTネットワークルーティング情報を使用してデータ断片を復号してもよい。その場合、デバイスは、コンピュータデバイス82によって伝送されるウェブページ要求に対応するIPv6データフレームを生成するように、異なるデータパケットからいくつかのデータフレーム断片を組み立て直し、この要求を、IPv6データフレームが最初に送信されたアプリケーションに提供する。デバイスは、デバイス63内の適正な宛先を判定するために、IPv6データパケットの中のIPアドレス情報を使用してもよい。次いで、IPv6使用可能WirelessHARTフィールドデバイス63は、例えば、同一の方法論を使用して、すなわち、WirelessHARTネットワーク53、インターネット51、およびWirelessHARTネットワーク71を介して、これらのIPv6データパケットを作成して送信することによって、ウェブページデータに対応するハイパーテキストマークアップ言語(html)IPv6データフレームを、要求デバイス82へ戻して伝送してもよい。具体的には、上記で詳述されるもののような類似ステップを実装することによって、html IPv6データフレームは、ネットワーク53内の1つ以上のWirelessHARTフィールドデバイス、IPv6使用可能WirelessHARTゲートウェイ54、インターネット51、IPv6使用可能WirelessHARTゲートウェイ70、およびネットワーク71内の1つ以上のWirelessHARTフィールドデバイスを介して、コンピュータデバイス82によって送信または受信されてもよい。
【0077】
コンピュータデバイス82はまた、好適な通信プロトコルを利用することによって、1つ以上の他の通信ネットワークと通信してもよい。例えば、
図1を参照して、コンピュータデバイス82は、ゲートウェイデバイス70を介してセルラーネットワーク15と通信してもよい。別のシナリオでは、コンピュータデバイス82は、ゲートウェイデバイス70を介してWLANネットワーク16と通信してもよい。なおもさらに、IPメッセージまたはデータパケットは、WirelessHARTネットワーク53または71のうちの1つの中の第1のIP使用可能フィールドデバイスによって作成され、本明細書で説明される通信技法を使用して、同一のWirelessHARTネットワーク53または71内の別のIP使用可能フィールドデバイスへ送信されてもよく、それにより、非IP通信ネットワーク上の2つデバイス間のIPメッセージングを可能にする。この場合、理解されるように、第1のIP使用可能フィールドデバイスによって作成されるIPデータメッセージは、上記で説明される方式で、そのデータをWirelessHART通信ネットワーク53または71上で送信するために使用される、WirelessHARTネットワークルーティング情報を用いて符号化されるであろう。しかしながら、この場合、これらのデバイスが、適切なWirelessHARTネットワーク53または71内のデバイスのIPアドレス間の関連を定義するリンクまたはルーティングテーブル、およびこれらのデバイスのWirelessHARTネットワークルーティング情報を記憶するため、メッセージは、依然としてゲートウェイデバイス54または70のうちの1つを通過する必要があり得る。しかしながら、別の場合において、IP使用可能デバイス自体が、ネットワーク内通信用のIPアドレスおよびルーティングテーブルを記憶してもよく、かつWirelessHARTネットワーク内のルーティングのためにデータパケットのヘッダの中に配置される必要があるWirelessHARTネットワークルーティング情報を判定するために、これらのIPルーティングテーブルを使用してもよい。
【0078】
図6は、WirelessHART通信プロトコルに従って動作するWirelessHARTフィールドデバイスが、インターネット101を介して、コンピュータデバイス115、116、および117からIPv6データフレームを受信し、かつそれらへIPv6データフレームを伝送するように動作し得る、別のWirelessHART通信ネットワーク例100を図示する。コンピュータデバイス115、116、および117は、WLAN、GSM、CDMA、Bluetooth(登録商標)、ZIGBEE等のプロトコルを実装するネットワーク等の非WirelessHARTネットワークを介して、インターネット101に通信可能に連結されてもよい。
【0079】
WirelessHART通信ネットワーク100は、IPv6使用可能WirelessHARTゲートウェイ102、いくつかのWirelessHARTルータ105および106、いくつかのIPv6使用可能WirelessHARTフィールドデバイス107、108、109、および110、ならびにいくつかの非IPv6使用可能WirelessHARTフィールドデバイス111、112、および113を含む。
図6で図示されるように、IPv6使用可能WirelessHARTゲートウェイ102は、インターネット101に、およびネットワーク100内のいくつかのフィールドデバイス103、104、および111に通信可能に連結される。
【0080】
一実施例では、コンピュータデバイス115は、インターネット101およびWirelessHARTネットワーク100の構造の両方を使用して、IPv6使用可能WirelessHARTデバイス107からIPv6データフレームを受信し、かつそこへIPv6データフレームを伝送する。コンピュータデバイス115は、例えば、
図1で描写されるように、WLANネットワーク16を介してインターネット101に通信可能に連結されてもよい。しかしながら、これらの実施例では、コンピュータデバイス115は、IPv6使用可能通信能力のみを有すると仮定され、WirelessHARTネットワーク100内で直接通信することはできないであろう。しかしながら、コンピュータデバイス115は、無線周波数識別(RFID)スキャナ115−1等の好適な近距離通信(NFC)スキャナを含んでもよい。IPv6使用可能WirelessHARTフィールドデバイス107は、RFIDタグ118を提供されてもよく、このタグは、IPv6使用可能WirelessHARTフィールドデバイス107の識別に対応する識別コードまたはID(例えば、IPアドレス)を記憶してもよい。プラント内のユーザは、例えば、RFIDスキャナ115−1を介して、デバイス107上のRFIDタグをコンピュータデバイス115の中へスキャンしてもよい。RFIDタグ上の情報は、IPv6使用可能WirelessHARTフィールドデバイス107と関連付けられ得る、IPv6アドレス、ウェブURL、または他のデータに対応してもよい。別のシナリオでは、コンピュータデバイス115は、IPv6使用可能WirelessHARTフィールドデバイス107のIPv6アドレスまたはウェブURLを受信して、コンピュータデバイス115がフィールドデバイス107と通信することを可能にするように、RFIDタグ118から受信される情報を伴う遠隔データベースに問い合わせを行ってもよい。
【0081】
ウェブブラウザ等のコンピュータデバイス115上で実行するアプリケーションは、例えば、フィールドデバイス107のIPアドレスを使用してIPv6使用可能WirelessHARTフィールドデバイス107へ伝送される、ウェブページデータの要求に対応するIPv6データフレームを生成してもよい。そのようなものとして、IPv6データフレームのIPヘッダの中の宛先IPアドレスは、IPv6使用可能WirelessHARTフィールドデバイス107のIPv6アドレスに対応してもよい。コンピュータデバイス115は、WLANネットワーク16を介して、IPv6データフレームを、例えば、インターネット101の中へ伝送してもよい。IPv6データフレームは、最終的に、標準IPv6またはIPネットワークルーティングプロトコル技法を使用して、インターネット101を介してIPv6使用可能WirelessHARTゲートウェイ102へルートされ、それによって受信されてもよい。以前に説明されたように、IPv6使用可能WirelessHARTゲートウェイ102は、IPv6データフレームのIP宛先アドレスと関連付けられるデバイスがWirelessHARTネットワーク100内にあることを判定するために、IPルーティングテーブルを使用してもよく、ネットワーク100上で情報をそのデバイスへ送信するために必要とされる、WirelessHARTネットワークルーティング情報を判定してもよい。次いで、IPv6使用可能WirelessHARTゲートウェイ102は、受信したIPv6データフレームを断片化し、これらのデータフレームをネットワーク100内のデバイス107へルートするために必要とされるWirelessHARTネットワークルーティング情報を用いてデータフレーム断片のそれぞれを符号化してもよい。ゲートウェイ102はまた、基礎的パケットまたは情報がIPv6データパケットに由来する、またはそれと関連付けられることを示すフラグを用いて、このWirelessHARTネットワークルーティング情報を符号化してもよく、次いで、WirelessHARTネットワークルーティングを使用するWirelessHARTネットワーク100を介して、符号化されたデータフレームをフィールドデバイス107へ(またはフィールドデバイス107と関連付けられるアプリケーションまたはIPアドレスへ)送信してもよい。一実施例では、WirelessHARTゲートウェイ102は、6LoWPANプロトコルに従ってIPv6データフレームを断片化してもよく、次いで、グラフID等のIPv6使用可能WirelessHARTフィールドデバイス107のWirelessHARTアドレス指定情報を含む、WirelessHARTネットワークルーティングプロトコルヘッダの中に結果として生じるデータフレーム断片をカプセル化してもよい。当然ながら、WirelessHARTゲートウェイ102は、802.15.4標準に従って動作する通信チャネル等の低出力通信チャネルを介して、WirelessHARTカプセル化IPv6データフレーム断片をWirelessHARTネットワーク100の中へ伝送する。
【0082】
この実施例では、IPv6使用可能フィールドデバイス107は、ネットワーク100上で、標準WirelessHART通信を介してWirelessHARTカプセル化IPv6データフレームを受信する。IPv6使用可能フィールドデバイス107は、WirelessHARTカプセル化パケットを受信すると、コンピュータデバイス115によって伝送されるIPv6データフレームに対応するIPv6データフレームを生成するように、いくつかのデータフレーム断片を組み立て直し、このデータフレームを、パケットがアドレス指定されたフィールドデバイス107内のアプリケーションに提供してもよい。次いで、IPv6使用可能フィールドデバイス107は、コンピュータデバイス115によって要求される情報を含むIPv6データフレームを生成し、本明細書で説明される技法を使用して、これらのIPv6データフレームをコンピュータデバイス115へ送信してもよい。以前に説明されたように、フィールドデバイス107において作成されるIPv6データフレームは、断片化されてもよく、断片は、フィールドデバイス107内のWirelessHARTネットワーク層プロトコルヘッダとともにカプセル化されてもよい。次いで、IPv6使用可能フィールドデバイス107は、インターネット101を介してデバイス115へ送信するために、WirelessHARTネットワーク100を介してデータフレーム断片をWirelessHARTゲートウェイデバイス102へ伝送してもよい。IPv6使用可能WirelessHARTゲートウェイ102は、IPv6使用可能フィールドデバイス107によって生成されるIPv6データフレームに対応するIPv6データフレームを生成するように、受信したデータフレーム断片を組み立て直してもよい。次いで、IPv6使用可能WirelessHARTゲートウェイ102は、IPv6データフレームのIPアドレスを使用して、インターネット101を介してIPv6データフレームをデバイス115のIPアドレスへ伝送する。コンピュータデバイス115は、例えば、WLANネットワーク16を介してIPv6データフレームを受信してもよく、IPv6データフレームの中の情報を復号し、ウェブブラウザの中で、例えば、ユーザに表示してもよい。したがって、この実施例では、WirelessHART通信能力を持たないデバイス115は、デバイス間の通信がWirelessHART通信プロトコル(IPv6データフレームルーティングをサポートしない)を使用して起こらなければならない、WirelessHARTネットワーク上のフィールドデバイス107と直接的にIPv6データパケットを通信させるために、本明細書で説明される通信技法を使用してもよい。したがって、この技法は、たとえWirelessHART通信ネットワークがIPベースの通信をサポートしなくても、WirelessHARTネットワーク100外のデバイスの中で作動するアプリケーションが、IPベースの通信を使用してWirelessHARTネットワーク内のデバイスと通信することを可能にする。この技法はまた、たとえWirelessHART通信ネットワークがIPベースの通信を本質的にサポートしなくても、IPベースの通信またはソケットベースのアプリケーションを使用して、WirelessHARTネットワーク外のデバイスと通信するように、WirelessHARTネットワーク100内のデバイスの中で作動するアプリケーションの使用も可能にする。したがって、これらの利点は、標準IP使用可能アプリケーション(非常に普及し、公知である)が、IPベースの通信を使用しないWirelessHARTネットワーク等の特殊通信ネットワーク内のデバイス内で使用されること、およびそれらと通信することを可能にする。したがって、これらの技法は、ひいては、WirelessHART通信ネットワーク、またはIPベースのネットワークルーティングをサポートまたは使用しない、あるいはIPアドレス指定をサポートしない他の通信ネットワークにわたって標準IPベースの通信が起こることを可能にする。
【0083】
別の実施例では、QRリーダ116が、IPv6使用可能WirelessHARTフィールドデバイス109に添着されたQRコード119から情報を読み取ってもよい。情報は、例えば、IPベースの通信を使用してIPv6使用可能WirelessHARTフィールドデバイス109と通信するためのIPv6アドレスを含んでもよい。QRリーダ116は、有線または無線ネットワークを介してインターネット101に通信可能に連結されてもよく、デバイス115に関して説明されるのと同様に、インターネット101を介して、IPv6使用可能WirelessHARTフィールドデバイス109へIPv6データフレームを伝送し、かつそこから受信するために、QRコード119から読み取られた情報を利用してもよい。別の実施例では、バーコードリーダ117が、IPv6使用可能WirelessHARTフィールドデバイス120に添着されたバーコード120を読み取ってもよい。バーコードリーダ117は、インターネット101を介して、IPv6使用可能WirelessHARTフィールドデバイス109へIPv6データフレームを伝送し、かつそこから受信するために、バーコード120の中で符号化された情報を利用してもよい。当然ながら、ネットワーク100内のIPv6使用可能フィールドデバイスと通信して、これらのデバイスから情報を取得する、および情報をこれらのデバイスへ送信する(コマンド、命令、データの要求等)ために、多くの他のタイプのアプリケーションが使用されてもよい。したがって、ある場合では、オペレータまたは技術者が、IPベースのネットワークルーティングを使用しないWirelessHARTまたは他のネットワーク内のフィールドデバイスから任意のタイプの情報を取得する、または任意の性質の情報をこれらのデバイスへ送信するよう、これらのデバイスと通信するようにインターネットに接続されたデバイス内のIPベースのアプリケーションを使用してもよい。
【0084】
図7は、一方で、IPv6データフレームをインターネットから受信し、かつそこへ伝送するように、他方で、WirelessHARTネットワークを介してIPv6データパケットをルートするように、本明細書で説明される通信技法の部分を実装するために使用され得る、ネットワークプロトコルスタック例300のブロック図である。この場合、通信プロトコルスタック300は、例えば、
図1のIPv6使用可能WirelessHARTゲートウェイ11aにおいて、あるいは
図5のゲートウェイデバイス54または70のいずれか一方において、あるいは
図6のゲートウェイデバイス102において、実装されてもよい。スタック300を実装するデバイスは、汎用コンピュータであってもよく、または代替として、例えば、フィールドデバイス(プロセスコントローラであり得る)またはプロセス制御ネットワークと関連付けられる、特殊用途組み込みコンピュータデバイスであってもよい。通信プロトコルスタック300を備える、いくつかの機能ブロックが、ソフトウェア命令、ハードウェア、ファームウェア、ASIC等を使用して実装されてもよい。ソフトウェア命令が使用される場合において、ソフトウェア命令は、ハードウェアマイクロプロセッサによって実行され得るいくつかのブロックを含んでもよく、これらのブロックは、ソフトウェアメッセージング待ち行列、ソフトウェアコールバック、メモリバッファ、バス等を介して、相互と通信可能に、かつプログラムで連結されてもよい。ソフトウェアブロックは、IPv6データフレームを受信および伝送するために、タイマ、ハードウェア割り込み、高速イーサネットコントローラ、シリアル通信コントローラ等のいくつかのハードウェアリソースを使用してもよい。
図7に示されていないが、通信プロトコルスタック300は、リアルタイムオペレーティングシステム(RTOS)とプログラムで連動してもよい。RTOSの実施例は、PSOS、UCOS、RTLinux等を含む。上述のように、通信プロトコルスタック300を構成する、いくつかの機能ブロックのうちのいくつかまたは全ては、特定用途向け集積回路(ASIC)において、またはそのように所望される場合はフィールドプログラマブルゲートアレイ(FPGA)デバイスあるいは他のハードウェア/ファームウェアデバイスにおいて実装されてもよい。
【0085】
図7のシステムでは、スタック300は、概して、第1の分岐303および第2の分岐305を含む。第1の分岐は、概して、IPネットワークルーティング準拠通信ネットワークを使用して、イーサネットインターフェース301を介して、IPv6データフレーム等のIPデータフレームを受信および復号すること、または符号化および伝送することと関連付けられる。第2の分岐305は、概して、WirelessHARTアクセスポイント313を介して、WirelessHART通信ネットワーク等の非IPネットワークルーティング準拠通信システム上で、IPv6データパケットまたは他のタイプのパケットを受信および復号すること、または符号化および伝送することと関連付けられる。分岐303および305は、相互に、および概して、IPv6データフレーム通信に依存する、またはそれを使用するスタックの上層(スタック300のトランスポートおよび層等)に接続される。
【0086】
より具体的には、通信プロトコルスタック300の第1の分岐303は、この場合、単一の物理的インターフェースを含み得る、イーサネットインターフェース301に接続するイーサネットドライバ302を含む。他の場合において、イーサネットインターフェース301は、2つ以上の物理的インターフェースを含んでもよい。IPv4、IPv6、およびIPv4カプセル化IPv6データフレームは、イーサネットインターフェース301を介してインターネットから受信(進入)され、かつそこへ伝送(退出)されてもよく、したがって、物理層スタック要素および/またはデータリンク層スタック要素を実装する。この実施例では、イーサネットインターフェース301は、IEEE 802.3標準に従って動作するように適合される。しかしながら、イーサネットインターフェース301は、任意の他の数の同期、非同期、および/または等時シリアル通信標準に従って動作してもよく、イーサネットドライバ302はまた、必要に応じてイーサネットインターフェース301を構成してもよい。当然ながら、典型的であるように、イーサネットドライバ302は、イーサネットインターフェース301を介して受信されるデータフレームの完全性を受信して検証し、イーサネットドライバ302は、スタック300が操作されるデバイスの中に位置する1つ以上のメモリバッファの中に受信したデータフレームを記憶してもよい。イーサネットドライバ302は、データフレームがイーサネットインターフェース301を介して受信されるとき、および/またはデータフレームがメモリバッファの中に記憶されるときに、IPv4カプセル化/脱カプセル化ブロック304に警告してもよく、イーサネットドライバ302は、メモリバッファの中の受信したデータフレームの場所に対応する指示をIPv4カプセル化/脱カプセル化ブロック304に提供してもよい。イーサネットドライバ302はまた、イーサネットインターフェース301を介して、IPv4脱カプセル化/カプセル化ブロック304から受信されるデータフレームを伝送してもよい。
【0087】
IPv4カプセル化/脱カプセル化ブロック304は、イーサネットインターフェース301を介して受信されるデータフレームを処理するように動作する。IPv4カプセル化/脱カプセル化ブロック304は、受信されるデータフレームがIPv4データフレーム、IPv6データフレーム、またはIPv4カプセル化IPv6データフレームであるかどうかを判定してもよい。所望であれば、IPv4カプセル化/脱カプセル化ブロック304は、IPv6データフレームを生成するように、IPv4カプセル化IPv6データフレームに作用してもよい。IPv4カプセル化/脱カプセル化ブロック304はまた、受信したIPv4カプセル化IPv6データフレームの脱カプセル化の完了中または後に、IPSec暗号化/解読ブロック306に警告してもよい。
【0088】
当然ながら、IPv4カプセル化/脱カプセル化ブロック304はまた、IPsec暗号化/解読ブロック306からデータフレームを受信してもよく、IPv4カプセル化/脱カプセル化ブロック304は、IPsec暗号化/解読ブロック306から受信されるデータフレームがIPv4データフレームまたはIPv6データフレームであるかどうかを判定してもよい。IPv4カプセル化/脱カプセル化ブロック304は、IPsec暗号化/解読ブロック306から受信されるIPv6データフレームから、IPv4カプセル化IPv6データフレームを生成するように構成されてもよい。IPv4カプセル化/脱カプセル化ブロック304は、IPsec暗号化/解読ブロック306から受信されるIPv4データフレームをカプセル化しないように動作してもよい。いずれにしても、IPv4カプセル化/脱カプセル化ブロック304は、イーサネットドライバ302にIPv4カプセル化IPv6データフレームまたはIPv4データフレームを提供する。以前に説明されたように、イーサネットドライバ302は、イーサネットインターフェース301を介して、IPv4脱カプセル化/カプセル化ブロック304から受信されるデータフレームを伝送してもよい。純IPv6ネットワークでは、IPv4カプセル化/脱カプセル化ブロック304が必要とされなくてもよい。
【0089】
IPSec暗号化/解読ブロック306は、IPv4カプセル化/脱カプセル化ブロック304から脱カプセル化IPv6データフレームおよび/またはIPv4データフレームを受信する。そのようにすると、IPsec暗号化/解読ブロック306は、受信されるデータフレームが暗号化されているかどうかを判定する。必要であれば、IPsec暗号化/解読ブロック306は、1つ以上の暗号化/解読アルゴリズムを使用して、受信したデータフレームを解読してもよい。暗号化/解読アルゴリズムの一般的実施例の部分的リストは、データ暗号化標準(DES)、高度暗号化標準(AES)等を含む。暗号化/解読を行うために、IPsec暗号化/解読ブロック306は、暗号化/解読キーのプログラミングおよび交換を可能にするプロトコル(図示せず)を実装してもよい。終了したとき、IPsec暗号化/解読ブロック306は、データフレームルーティングブロック308に解読されたデータフレームを提供する。
【0090】
他方で、IPsec暗号化/解読ブロック306はまた、データフレームルーティングブロック308からデータフレームを受信し、好適な暗号化アルゴリズムを用いてデータフレームを暗号化するように構成される。この場合、IPsec暗号化/解読ブロック306は、イーサネットインターフェース301を介して伝送される、暗号化されたデータフレームまたは暗号化されていないデータフレームのいずれか一方を、IPv4カプセル化/脱カプセル化ブロック304に提供する。
【0091】
概して、ネットワークルーティング層スタック要素を実装し得る、または含み得る、データフレームルーティングブロック308は、1つ以上のデータフレーム提供側からデータフレームを受信する。受信したデータフレームの中の情報に基づいて、データフレームルーティングブロック308は、受信したデータフレームをデータフレームの1つ以上の意図した受信側へ伝送し、その受信側は、スタック300のアプリケーション層内のアプリケーション、またはイーサネット通信ネットワーク上にあり、スタック分岐303を介して到達可能なデバイス、あるいはWirelessHARTネットワーク上にあり、スタック分岐305を介して到達可能なデバイスの中のアプリケーションのいずれか一方である。当然ながら、1つの場合におけるデータフレームの意図した受信側はまた、他の場合においてデータフレーム提供側として動作してもよい。一般的に言えば、
図7のスタックの中の直近のデータフレーム提供側およびデータフレーム受信側は、IPsec暗号化/解読ブロック306、6LoWPAN適合層310、およびこの場合、TCP、UDP、またはICMPトランスポートプロトコルを使用する、トランスポート層スタック311を含む。
【0092】
動作中、IPsec暗号化/解読ブロック306からデータフレームを受信すると、データフレームルーティングブロック308は、受信したデータフレームの意図した受信側デバイスのIPアドレスを判定するように、受信したデータフレームを調べる。データフレームルーティングブロック308は、データフレームの意図した受信側がIP拡張ゲートウェイ自体であると判定してもよく、その場合、データフレームルーティングブロック308は、データフレームが利用可能であるという指示で、トランスポート層スタック311に警告してもよい。トランスポート層スタック311の詳細(所望であれば、スタック300の中のネットワーク層スタック要素の一部であり得るか、またはそれを実装し得る)を、以降でさらに詳細に論議する。代替として、データフレームルーティングブロック308は、データフレームの意図した受信側デバイスが、無線アクセスポイント313を介してデータフレームルーティングブロック308が位置するIP使用可能ゲートウェイデバイスに接続された、WirelessHARTネットワーク内に位置する1つ以上のIPv6使用可能WirelessHARTデバイスであると判定してもよい。この場合、データフレームルーティングブロック308は、データフレームを6LoWPAN適合層310に提供する。なおもさらに、データフレームルーティングブロック308は、データフレームの意図した受信側デバイスが、イーサネットインターフェース301を介して、データフレームルーティングブロック308が位置するIP使用可能ゲートウェイデバイスに接続された、1つ以上のデバイスであると判定してもよい。この場合、データフレームルーティングブロック308は、データフレームをIPSec暗号化/解読ブロック306に提供する。
【0093】
データフレームルーティングブロック308は、特定のデータフレームをルートする場所を判定する際にデータフレームルーティングブロック308を支援するように、1つまたはいくつかの「ルーティングテーブル」(ルーティングテーブル309として
図7で図示される)を維持してもよい。概して、ルーティングテーブル309は、1つまたはいくつかのルート入力を含み、各ルート入力は、サブネットマスク、別のゲートウェイまたはルータのIPアドレス等を含んでもよい。ルーティングテーブル309の中の入力は、データフレームがインターネットに接続された意図した受信側デバイスに到達するために、データフレームが送信され得る、次のゲートウェイ/ルータのアドレスまたは場所を判定するように、データフレームルーティングブロック308によって利用されてもよい。IPルーティングテーブル309の中でデータフレームルーティングブロック308によって維持されるルーティングテーブル入力は、構成可能であり得、ルーティングテーブル309は、インターネットから、または場合によってはWirelessHARTネットワークを介して受信される、ルート入力を用いて更新されてもよい。
【0094】
データフレームルーティングブロック308はまた、6LoWPAN適合層310からIPv6データフレームを、および/またはIP使用可能ゲートウェイのネットワーク層スタック311からIPv6データフレームを受信してもよい。データフレームルーティングブロック308は、受信したIPv6データフレームの意図した受信側デバイスのIPアドレスを判定してもよく、ルーティングテーブル309の中の情報に基づいて、データフレームルーティングブロック308は、IPv6データフレームを適切なルート入力と関連付けてもよい。次いで、データフレームルーティングブロック308は、IPv6データフレームを、関連ルート入力とともにIPsec暗号化/解読ブロック306へ伝送してもよく、またはIPv6パケットのIPアドレスがWirelessHARTネットワーク内のデバイスと関連付けられる場合、処理してWirelessHARTネットワーク上で送信するためにIPv6データフレームを第2の分岐305へ送信してもよい。
【0095】
一般的に言えば、WirelessHARTネットワーク上でIPv6データパケットを送信するために、データフレームが、IP使用可能ゲートウェイデバイスが接続されるWirelessHARTネットワーク内のデバイスへ、またはデバイスと関連付けられるIPアドレスへ送信される必要があることを、データフレームルーティングブロック308が判定するときに、6LoWPAN適合層310は、データフレームルーティングブロック308からIPv6データフレームを受信する。この場合、6LoWPAN適合層310は、データフレームルーティングブロック308から受信されるIPv6データフレームから、1つ以上の6LoWPANデータフレームを生成するように、データフレーム断片を行い、そうする際に、6LoWPAN適合層310は、生成された6LoWPANデータフレームのそれぞれを、IPv6データフレームの意図した受信側のIPv6アドレスと関連付けてもよい。当然ながら、IPv6データフレームの意図した受信側のIPv6アドレスは、IPv6データフレーム自体から回収されてもよい。
【0096】
しかしながら、
図7で図示されるように、6LoWPAN適合層310は、WirelessHARTネットワーク上にある、またはそれに接続されるデバイスへ送達されるように、スタック300を実装するゲートウェイデバイス内のトランスポート層スタック要素311(少なくとも部分的に、IPネットワーク用のネットワーク層スタック要素も実装し得る)から直接、IPv6データフレームを受信してもよい。この場合、6LoWPAN適合層310は、トランスポート層スタック311から受信されるIPv6データフレームから、1つ以上の6LoWPANデータフレームを生成するように動作する。一般的に言えば、6LoWPAN適合層310が、データフレームルーティングブロック308から、および/またはスタック311から、IPv6データフレームを受信するとき、6LoWPAN適合層310は、受信される各IPv6データフレームに対する1つ以上の6LoWPANデータフレームを生成する。次いで、6LoWPAN適合層310は、分岐305において、1つ以上の6LoWPANデータフレームをWirelessHARTネットワーク層315(WirelessHART通信ネットワーク用のネットワーク層スタック要素である)へ伝送する。この通信の一部として、WirelessHARTネットワーク層315は、6LoWPAN適合ブロック310によって作成される1つ以上の6LoWPANデータフレームの意図した受信側のIPv6アドレスを受信してもよく、またはWirelessHARTネットワーク層315は、データフレーム自体からそのようなIPアドレスを判定してもよい。
【0097】
当然ながら、理解されるように、6LoWPAN適合層310はまた、WirelessHARTネットワーク層315から6LoWPANデータフレームを受信してもよい。この場合において、6LoWPANブロック310は、これらのデータフレームをデフラグすることによって、すなわち、IPv6データフレームを生じるように種々の6LoWPANデータフレームまたは断片化データフレームからのデータペイロードを組み合わせることによって、受信した6LoWPANデータフレームから1つ以上のIPv6データフレームを生成するように動作する。この場合、6LoWPANブロック310は、生成されたIPv6データフレームをデータフレームルーティングブロック308へ、またはトランスポート層スタック311へ伝送してもよい。
【0098】
ここで、WirelessHARTネットワーク層315が6LoWPANブロック310から6LoWPANデータフレームを受信するとき、WirelessHARTネットワーク層315は、6LoWPANデータフレームの中にある、またはそれと関連付けられるIPアドレス(元のIPv6データフレームのIPアドレスであろう)を有するWirelessHARTネットワーク内のデバイスの場所またはルーティング情報を判定するように、スタック300の動作の一部として記憶または保持される、WirelessHARTルーティングまたはリンキングテーブル316にアクセスしてもよい。当然ながら、WirelessHARTルーティングまたはリンキングテーブル316は、いくつかのルーティングテーブル入力および各ルーティングを含んでもよく、またはリンキングテーブル入力は、WirelessHARTネットワーク上のIPv6使用可能WirelessHARTデバイスのIPv6アドレス、およびIPv6使用可能WirelessHARTデバイスのWirelessHARTルーティング情報を含んでもよい。したがって、ルーティングまたはリンキングテーブル316は、WirelessHARTルーティングプロトコルを使用して、WirelessHART通信ネットワーク内のデバイスに到達することを可能にするように、これらのデバイスの特定のIPアドレス(すなわち、第1のネットワークルーティングプロトコルの中のルーティング情報)を、これらのデバイスのグラフID等のWirelessHARTルーティング情報(すなわち、第2のネットワークルーティングプロトコルのルーティング情報)と結び付ける、情報を記憶する。この場合、WirelessHARTネットワーク層315は、WirelessHARTルーティングテーブル316からのIPv6アドレスを有するWirelessHARTデバイスのWirelessHARTルーティング情報を「調べる」ために、6LoWPANデータフレームのそれぞれと関連付けられるIPv6アドレスを利用してもよい。次いで、WirelessHARTネットワーク層315は、これらのデータパケット内でIPv6プロトコルのネットワークルーティング情報を維持しながら、データパケットをWirelessHARTネットワーク内のデバイスへルートするために必要とされる、WirelessHARTネットワークルーティングプロトコルに対応するネットワークルーティング情報とともに、6LoWPANデータフレームのそれぞれをカプセル化してもよい。加えて、WirelessHARTネットワーク層315は、基礎的データパケットがIPv6データパケットである、またはIPv6データパケットに基づく(すなわち、IPv6データパケットの6LoWPAN断片である)ことを指示するフラグを用いて、WirelessHARTネットワークルーティング情報を符号化してもよい。
【0099】
当然ながら、WirelessHARTネットワーク層315はまた、シリアルポートドライバ312からWirelessHARTカプセル化6LoWPANデータフレームを受信してもよい。この場合、WirelessHARTネットワーク層315は、これらのデータパケットからWirelessHARTネットワークルーティング情報を取り除き、生成された6LoWPANデータフレームを6LoWPAN適合層310に提供することによって、受信したWirelessHARTカプセル化6LoWPANデータフレームから1つ以上の6LoWPANデータフレームを生成してもよい。
【0100】
シリアルドライバ312は、WirelessHARTネットワーク内で通信を提供するように、シリアル受信機/伝送機デバイス(図示せず)と連動してもよい(データリンク層スタック要素および物理層スタック要素を実装し得る)。一実施例では、シリアル受信機/伝送機デバイスが、RS−232プロトコルに従って動作してもよい一方で、他の別の実施例では、シリアル受信機/伝送機デバイスは、RS−485プロトコルに従って動作してもよい。本明細書に記載されるシリアルプロトコルは、実施例としての機能を果たすのみであり、一般に、任意の好適な有線または無線、直列または並列プロトコルが利用されてもよい。いずれにしても、シリアルドライバ312は、例えば、シリアル受信機/伝送機デバイスを介して、WirelessHARTカプセル化6LoWPANデータフレームを
図6のアクセスポイント103および104等のWirelessHARTアクセスポイント(AP)へ伝送する。当然ながら、シリアルドライバ312は、シリアル受信機/伝送機デバイスを介して、WirelessHARTアクセスポイント(AP)からWirelessHARTカプセル化6LoWPANデータフレームを受信してもよい。
【0101】
以前に論議されたように、(例えば、IPルーティングテーブル309を使用して)トランスポート層スタック311がIPv6データフレームの意図した受信側であることをデータフレームルーティングブロック308が判定するとき、データフレームルーティングブロック308は、データフレームがTCP、UDP、またはICMPデータフレームに対応するかどうかを判定するように、受信したデータフレーム(具体的には、そのデータフレームのヘッダ内のトランスポート情報)を調べてもよい。受信したデータフレームが、それぞれ、TCP、UDP、またはICMPデータフレームに対応することを判定すると、データフレームルーティングブロック308は、パケットのTCPブロック311−1、UDPブロック311−2、またはICMPブロック311−3に警告し、パケットをスタック311のトランスポート層の適切な部分に提供してもよい。この場合、1つ以上の標準および/またはカスタムアプリケーションが、スタック300が位置するデバイスのアプリケーション層314内に存在してもよく、これらの標準アプリケーションは、例えば、ファイル転送プロトコル(FTP)、TELNET、ハイパーテキスト転送プロトコル(HTTP)、簡易ネットワーク管理プロトコル(SNMP)、動的ホスト制御プロトコル(DHCP)等を実装するものを含んでもよい。カスタムアプリケーションは、例えば、IP使用可能ゲートウェイの監視および構成を含む、特定のタスクを行うものを含んでもよい。アプリケーション層314の中に常駐するアプリケーションは、アプリケーションプログラミングフレームワークおよびインターフェース315によって提供されるソフトウェアフレームワーク内で実行してもよい。常駐アプリケーションは、TCPブロック311−1、UDPブロック311−2、またはICMPブロック311−3からデータフレームを受信するために、アプリケーションプログラミングフレームワークおよびインターフェース層315の中に常駐するソフトウェアモジュールを利用してもよい。場合によっては、アプリケーションプログラミングフレームワークおよびインターフェース層315は、実行アプリケーションがデータフレームを受信、処理、および送信することを可能にするように、「ソケット」インターフェースを提供してもよい。加えて、常駐アプリケーションは、受信したデータフレームに応答して、データフレームを生成してもよい。常駐アプリケーションは、自律的に、または受信したデータフレームに応答して、データフレームを生成してもよく、常駐アプリケーションは、アプリケーションプログラミングフレームワークおよびインターフェース層315の中に常駐するソフトウェアモジュールを利用することによって、生成されたデータフレームを伝送してもよい。これらのモジュールは、ひいては、生成されたデータフレームを、TCPブロック311−1、UDPブロック311−2、またはICMPブロック311−3のうちのいずれか1つに伝送してもよい。次いで、TCPブロック311−1、UDPブロック311−2、またはICMPブロック311−3は、付加的な情報をデータフレームに付加し、イーサネットインターフェース301またはWirelessHARTアクセスポイント313のいずれかを介して、何らかの他のデバイスへ送達するために、データフレームをデータフレームルーティングブロック308へ伝送してもよい。
【0102】
図8は、WirelessHART通信およびIPv6データフレーム(または任意の他のIPデータフレーム)を使用する通信を実装するように、例えば、
図5のフィールドデバイス109等のIP使用可能WirelessHARTフィールドデバイスにおいて実装され得る、別のネットワークプロトコルスタック例320のブロック図である。一般的に言えば、プロトコルスタック320は、WirelessHART通信プロトコルの物理層およびデータリンク層、ならびにスタック320の拡張WirelessHARTネットワーク層を実装する、一般的な一組の下層321を有する。プロトコルスタック320はまた、2組の上層323および325も含み、一組の上層のそれぞれは、WirelessHART通信ネットワークプロトコル(323)またはIP通信ネットワークプロトコル(325)のいずれか一方のトランスポートおよびアプリケーション層を実装することに関与する。ここで、一般的な一組の下層321は、WirelessHART通信ネットワークと関連付けられる802.15.4プロトコル標準に準拠する通信チャネルを介してデータフレームを受信および伝送する、802.15.4PHYブロック322を含むものとして図示される。通信チャネルは、例えば、
図6のWirelessHART通信ネットワーク100内の通信チャネルに対応してもよい。802.15.4PHYブロック322は、デジタル減衰器、シンセサイザ、アナログフィルタ、アナログ・デジタル変換器(ADC)、およびデジタル・アナログ変換器等のハードウェアデバイス、ならびにWirelessHART通信ネットワーク内の任意の他のデバイスと通信する。そうするために、802.15.4PHYブロック322は、受信したデータフレームの完全性をフィルタにかけ、復調し、および検証するアルゴリズム、伝送前に802.15.4プロトコル標準に準拠する形式にデータフレームを変換するアルゴリズム、および802.15.4プロトコル標準に準拠するようにデータフレームの伝送をスケジュールに入れるアルゴリズムを実装する。一般的な場合のように、802.15.4PHYブロック322は、WirelessHART媒体アクセス制御(MAC)ブロック324に接続され、802.15.4プロトコル標準に準拠するデータフレームが受信されるときに指示をブロック324に伝送する。802.15.4PHYブロック322(物理層スタック要素または物理層要素である)はまた、データフレームが802.15.4プロトコル標準に準拠する通信チャネルを介して伝送されるために利用可能であるときに、WirelessHART MACブロック324から指示を受信し、そのような場合において、WirelessHARTネットワーク上で、そのデータフレームをWirelessHARTネットワーク内の別のデバイスへ伝送するように、標準方式で動作する。
【0103】
一般に、WirelessHART MACブロック324は、WirelessHARTデータリンク層プロトコルに従って受信したデータフレームのルーティングを実装するステップを行い、したがって、データリンク層スタック要素である。WirelessHART MACブロック324は、WirelessHARTネットワーク内の受信したデータフレームの意図した受信側デバイスを判定するように、受信したデータフレームのWirelessHARTデータリンク層プロトコルヘッダを調べてもよい。例えば、WirelessHART MACブロック324は、受信したデータフレームの意図した受信側を判定するように、WirelessHARTデータリンク層プロトコルヘッダの中の宛先アドレスフィールドを利用してもよい。1つのシナリオでは、受信したデータフレームのWirelessHARTプロトコルヘッダの中の宛先アドレスは、WirelessHART MACブロック324を実装するフィールドデバイスのWirelessHART MACアドレスに対応してもよい。この場合、WirelessHART MACブロック324は、このデータパケットの存在を示す指示を拡張WirelessHARTネットワーク層326へ伝送してもよく、かつネットワーク層326の中で処理するためにパケットを転送してもよい。別のシナリオでは、WirelessHART MACブロック324は、別のフィールドデバイスが受信したデータフレームの意図した受信側であることを判定してもよい。このシナリオでは、WirelessHART MACブロック324は、802.15.4PHYブロック322を介して、受信したデータフレームをデータフレームの意図した受信側へ伝送してもよい。
【0104】
WirelessHART MACブロック324はまた、拡張WirelessHARTネットワークブロック326(WirelessHARTネットワーク用のネットワーク層スタック要素である)からデータフレームを受信してもよい。理解されるように、WirelessHART MACブロック324は、WirelessHARTデータリンクプロトコルヘッダとともに、WirelessHARTネットワーク上で送信されるデータフレームをカプセル化してもよい。WirelessHART MACブロック324は、例えば、1つまたは複数の意図した受信側のデバイスの宛先アドレスに対応する情報を用いて、WirelessHARTデータリンクプロトコルヘッダを更新してもよい。以前に説明されたように、WirelessHART MACブロック324は、データフレームが伝送されるために利用可能であることを802.15.4PHYブロック322に指示してもよい。
【0105】
拡張WirelessHARTネットワークブロック326は、例えば、受信したデータフレームのWirelessHARTプロトコルヘッダの中の宛先アドレスが、フィールドデバイスがデータフレームの意図した受信側であることを示すときに、WirelessHART MACブロック324から指示を受信するように動作する。以前に説明されたように、伝送デバイス、例えば、
図1のIPv6使用可能WirelessHARTゲートウェイ11、またはWirelessHARTネットワーク内の別のフィールドデバイスは、データフレームが基礎的IPv6データパケットまたはデータフレームと関連付けられることを示すフラグを、IPv6データフレーム断片をカプセル化するWirelessHARTネットワークルーティングプロトコルヘッダの中に含んでもよい。拡張WirelessHARTネットワークブロック326は、WirelessHARTネットワーク層プロトコルヘッダの中のフラグまたは指示の検出に基づいて、受信したデータフレームがIPv6データフレーム断片であるかどうか、または代わりに、受信したデータフレームが標準WirelessHARTデータパケットであるかどうかを判定してもよい。パケットがIPv6パケットまたは断片を含有することを示すフラグを検出すると、拡張WirelessHARTネットワークブロック326は、IPv6データフレーム断片を待ち行列にコピーしてもよく、かつ1つ以上のIPv6データフレーム断片が待ち行列にコピーされるという指示を、第2組の上層325内の6LoWPANブロック328に提供してもよい。
【0106】
加えて、動作中、拡張WirelessHARTネットワークブロック326は、WirelessHARTネットワークルーティングプロトコルを使用してWirelessHARTネットワーク上で送信するために、6LoWPANブロック328からIPv6データフレーム断片を受信してもよい。そうするために、WirelessHARTネットワークブロック326は、これらのパケット内にIPネットワークルーティングプロトコル情報の全てを維持しながら、WirelessHARTネットワークルーティングプロトコルヘッダとともに受信したIPv6データフレームをカプセル化する。しかしながら、拡張WirelessHARTネットワークブロック326はまた、WirelessHARTデータパケット(またはネットワークルーティングプロトコルヘッダ)がIPv6データフレーム断片をカプセル化することを示すフラグまたは他の指示を、WirelessHARTネットワークルーティングプロトコルヘッダの中に設定する。
【0107】
一組のパケットが、IPデータパケットと関連付けられるスタック325の第2組の上層へ送達されるとき、6LoWPANブロック328は、拡張WirelessHARTネットワークブロック326から受信される1つ以上のIPv6データフレーム断片を組み立て直してIPv6データフレームを生成するように動作する。6LoWPANブロック328は、6LoWPANブロック328がIPv6データフレームを生成するときに、指示をIPv6ネットワークルーティング層ブロックおよびトランスポート層プロトコルブロック330へ伝送してもよい。6LoWPANブロック328はまた、IPv6ネットワークルーティング層ブロックおよびトランスポートプロトコルブロック330からIPv6データフレームを受信してもよく、この場合、6LoWPANブロック328は、6LoWPAN断片化技法を使用して、IPv6データフレームを1つ以上のデータフレーム断片に断片化するように動作する。そうすると、6LoWPANブロック328は、パケットが伝送されるべきであるWirelessHARTデバイスの指示とともに、指示を拡張WirelessHARTネットワークブロック326へ伝送し、および/またはWirelessHARTネットワークルーティングプロトコルを使用してWirelessHART通信ネットワーク上で送信するために、ネットワークブロック326に生成されたデータフレーム断片を提供する。多くの場合において、この指示は、WirelessHARTネットワーク内のゲートウェイデバイスへのものであってもよい。いずれにしても、6LoWPANブロック328の構造および機能要素は、
図9を参照してさらに詳細に論議される。
【0108】
また、スタック325の第2組の上層内で、IPv6ネットワークルーティング層ブロックおよびトランスポートプロトコルブロック330は、ネットワークルーティング層スタック要素、ならびにIPベースのネットワークルーティングプロトコル活動およびトランスポート層プロトコル処理を行うトランスポート層スタック要素を実装し、6LoWPANブロック328によって提供されるIPv6データフレームを復号するか、またはアプリケーションプログラミングインターフェース(API)332を介してアプリケーションブロック334によって提供されるIPv6データフレームを符号化するかのいずれかである、UDP、TCP、またはICMPトランスポートブロックのうちのいずれかまたは全てを含んでもよい。アプリケーションプログラミングインターフェースの実施例は、ソケットインターフェースを含む。当然ながら、ブロック330はまた、IPv6データパケットの中のネットワークルーティング情報の符号化および復号等のネットワークルーティング層活動も行う。別個に、アプリケーションブロック334の中で実行するアプリケーションは、アプリケーションプログラミングインターフェース332を介して、フィールドデバイス特有の情報336にアクセスし、それを制御し、および構成してもよい。アプリケーションブロック334(IPまたはソケットベースのアプリケーション層スタック要素であるか、またはそれを実装する)の中で実行するアプリケーションは、制約アプリケーションプロトコル(CoAP)に準拠してもよい。CoAPプロトコルの詳細は、tools.ietf.org/html/draft−ietf−core−coap−03というウェブURLで入手可能である。
【0109】
実施例として、アプリケーションブロック334で実行するアプリケーションは、WirelessHART通信ネットワーク100を介して、遠隔コンピュータデバイス、例えば、
図6のデバイス116から、フィールドデバイス状態情報の要求を受信してもよい。アプリケーションは、アプリケーションプログラミングインターフェース332を介してフィールドデバイス状態情報を回収し、コンピュータデバイス116へ送達されるように、IPv6トランスポートプロトコルブロック330、6LoWPANブロック328、およびスタックの一般的な一組の下層321を介して、1つ以上のIPv6データフレームとして状態情報を伝送してもよい。
図6を参照して以前に説明されたように、IPv6データフレームは、WirelessHART通信ネットワーク100を介してコンピュータデバイス116へ伝送されてもよい。
【0110】
以前に論議されたように、拡張WirelessHARTネットワークブロック326は、WirelessHART MACブロック324から受信される着信データパケットを処理し、そのデータパケットのネットワークルーティング情報内のフラグの存在を検出することによって、WirelessHARTネットワークルーティングプロトコルヘッダによってカプセル化されたデータフレームがIPv6データフレーム断片に対応することを判定してもよい。しかしながら、受信したデータフレームをカプセル化するWirelessHARTプロトコルヘッダがフラグを含まない(またはフラグが基礎的IPv6データパケットを示すように設定されていない)場合において、拡張WirelessHARTネットワークブロック326は、標準WirelessHARTデータパケットの存在の指示を、スタック323の第1組の上層内のWirelessHARTトランスポートブロック338へ伝送する。次いで、WirelessHARTトランスポート層スタック要素を実装するWirelessHARTトランスポートブロック338は、このデータパケットにアクセスし、標準WirelessHARTトランスポート層処理を使用してデータパケットを処理し、受信したデータフレームを処理した後に指示をHARTアプリケーションブロック340(WirelessHARTアプリケーション層スタック要素であるか、またはそれを実装する)へ伝送してもよい。次いで、アプリケーションブロック340は、任意の公知または所望の方式でデータパケットを処理するように、WirelessHART準拠アプリケーションを実装する。
【0111】
理解されるように、拡張WirelessHARTネットワークブロック326は、WirelessHARTトランスポートブロック338から、WirelessHARTネットワークを介して伝送するためのWirelessHARTデータフレームを受信してもよい。前述のように、WirelessHARTネットワークブロック326は、WirelessHARTネットワークプロトコルヘッダとともに、受信したWirelessHARTデータフレームをカプセル化するように動作してもよい。しかしながら、この場合、データフレームがWirelessHARTトランスポートブロック338から受信され、したがって、標準WirelessHARTデータパケットであるため、拡張WirelessHARTネットワークブロック326は、IPv6データフレーム断片としてWirelessHARTトランスポートブロック338から受信されるデータフレームにフラグを付けない。この動作の結果として、WirelessHARTネットワークブロック326は、WirelessHART通信ネットワーク上でWirelessHARTパケットを送信するように、公知のWirelessHARTネットワークルーティングプロトコルプロシージャに従ってWirelessHARTパケットを処理する。
【0112】
前述のように、
図7のアプリケーション層314の中に常駐するアプリケーション、および
図8のアプリケーションブロック334は、APIを利用することによって動作するように適合されてもよい。APIにおける機能性の起動を含むプログラミング情報が、ソフトウェア開発キット(SDK)の形態で、フィールドデバイスベンダによって入手可能にされてもよい。動作中、第三者ソフトウェア開発者が、CD−ROM等の有形で非一過性の媒体を介してSDKを受容してもよい。開発者は、SDKを利用することによって、汎用コンピュータ上でカスタムアプリケーションを作成してもよい。そのようなカスタムアプリケーションは、そのように所望される場合、インターネットおよびWirelessHARTネットワークを介してフィールドデバイスに「プッシュ配信」されてもよい。代替として、ベンダは、オンラインアプリケーションストアでそのようなカスタムアプリケーションを「ホスト」してもよい。プラントオペレータは、インターネットおよびWirelessHARTネットワークを介して、オンラインアプリケーションストアから、カスタムアプリケーションをフィールドデバイスへ選択的に「引き出し」てもよい。
【0113】
図9は、それぞれ、受信した6LoWPANデータフレームからIPv6データフレームを、および受信したIPv6データフレームから6LoWPANデータフレームを生成し得る、6LoWPANブロック例350のブロック図である。6LoWPANブロック350は、
図7の6LoWPAN適合層310に対応してもよく、その場合、6LoWPANブロック350は、インターフェース360を介してデータフレームルーティングブロック308(
図7)と通信してもよい。6LoWPANブロック350はまた、インターフェース361を介して、WirelessHARTネットワーク層315(
図7)と通信してもよい。別の実施例では、6LoWPANブロック350は、
図8の6LoWPANブロック328に対応してもよい。この実施例では、6LoWPANブロック350は、
図8のIPv6トランスポートプロトコルブロック330からIPv6データフレームを受信し、かつそこから伝送してもよく、6LoWPANブロック350は、
図8の拡張WirelessHARTネットワークブロック326からIPv6データフレーム断片を受信し、かつそこから伝送してもよい。
【0114】
図9で図示されるように、6LoWPANブロック350は、断片化モジュール353に通信可能に連結されるヘッダ圧縮モジュール351と、ヘッダ解凍モジュール352に通信可能に連結される再組立モジュール354とを含んでもよい。ここで、ヘッダ圧縮モジュール351は、インターフェース360−1を介してIPv6データフレームを受信してもよく、かつ6LoWPAN準拠圧縮IPv6ヘッダを生成するように受信したIPv6データフレームに作用してもよい。ヘッダ圧縮モジュール351に連結される断片化モジュール353は、ヘッダ圧縮モジュール351から、圧縮IPv6ヘッダを含むIPv6データフレームを受信し、IPv6データフレームをいくつかの6LoWPAN準拠データフレームに「断片化」するように動作する。断片化モジュール353は、「断片ヘッダ」をいくつかの6LoWPANデータフレームのそれぞれに付加してもよい。断片化モジュール例353は、
図10Aを参照して以下で説明される。断片ヘッダは、いくつかの6LoWPANデータフレームを元のIPv6データフレームへ組み立て直すことを可能にする情報を含んでもよい。当然ながら、再組立は、IPv6データフレームの意図した受信側であるデバイスにおいて、または中間デバイスにおいて行われてもよい。6LoWPANプロトコルに従った、圧縮IPv6ヘッダの生成およびIPv6データフレームの断片化に関する情報は、RFC 4944, “Transmission of IPv6 Packets over IEEE 802.15.4 Networks”で、より具体的に説明されている。
【0115】
図9の断片化モジュール353は、例えば、インターフェース361−1を介して、IPv6データフレームから生成されるいくつかの6LoWPAN準拠データフレームをWirelessHARTネットワーク層315へ伝送してもよい。このプロセスの一部として、断片化モジュール353は、いくつかの6LoWPAN準拠データフレームの意図した受信側のIPv6アドレスをWirelessHARTネットワーク層315に提供してもよい。以前に説明されたように、WirelessHARTネットワーク層315は、いくつかの6LoWPANデータフレームの意図した受信側であるIPv6使用可能WirelessHARTデバイスのWirelessHARTルーティング情報を、WirelessHARTルーティングテーブル316(
図7)から「参照する」ために、IPv6アドレスを利用してもよい。当然ながら、そのような参照テーブルは、本明細書で説明される他のIP使用可能WirelessHARTデバイスのうちのいずれかの中に存在してもよい。
【0116】
別個に、
図9の6LoWPANブロック350は、例えば、インターフェース361−2を介して、WirelessHARTネットワーク層315から6LoWPANデータフレーム断片を受信してもよい。6LoWPANデータフレーム自体は、IPv6使用可能WirelessHARTデバイスによってIPv6フレームから生成されてもよい。次いで、再組立モジュール354が、受信した6LoWPANデータフレームからIPv6データフレームを生成してもよい。受信した6LoWPANデータフレーム断片のそれぞれは、典型的には、断片ヘッダを含み、再組立モジュール354は、任意の公知の方式でIPv6データフレームを組み立て直すために断片ヘッダを利用するであろう。再組立モジュール例354が、
図10Bを参照して以下で説明される。再組立モジュール354は、(データパケットのIPアドレス等のIPネットワークルーティングプロトコル情報とともに)元のIPv6ヘッダを作成するように圧縮IPv6ヘッダを「解凍」するヘッダ解凍モジュール352へ、組み立て直されたIPv6データフレームを伝送してもよい。次いで、ヘッダ解凍モジュール352は、インターフェース360−2を介して、IPv6データフレームを、例えば、
図7のデータフレームルーティングブロック308へ伝送する。
【0117】
図10Aは、6LoWPANブロック350において実装され得る、断片化モジュール例500を描写する。この場合、待ち行列501が、ヘッダ圧縮モジュール351から1つ以上のIPv6データフレームを受信してもよく、フラグメンタ502が、1つ以上のIPv6データフレームが待ち行列501の中で受信されるときに指示を受信してもよい。フラグメンタ502は、標準6LoWPAN断片化技法を使用して、待ち行列501から回収される1つ以上のIPv6データを断片化してもよく、かつ送信バッファ503の中に断片を記憶してもよい。ここで、一組の断片503−1、503−2、および503−3のそれぞれは、6LoWPANデータフレームからの異なる断片に対応し、これらの断片のサイズ(長さ)は、他の予期されたWirelessHARTネットワークルーティング、データリンク、および物理層情報がそれに追加された後に、各断片が、WirelessHARTプロトコル内のデータパケットの最大許容サイズ内に収まるであろうということを確実にするように選択されてもよい。以前に論議されたように、フラグメンタ502は、断片ヘッダをいくつかの6LoWPANデータフレーム503−1、503−2、503−3等のそれぞれに付加してもよい。所望であれば、6LoWPANデータフレーム503−1...503−3が送信バッファ503の中に記憶される前に、断片ヘッダが、6LoWPANデータフレーム503−1...503−3のそれぞれに付加されてもよい。送信バッファ503は単一の連続バッファとして描写されているが、他の実施形態では、送信バッファ503は、いくつかの不連続バッファを含んでもよい。
【0118】
フラグメンタ502はまた、そのそれぞれが送信バッファ503の中の場所を参照する、いくつかのポインタ504−1...504−3を含み得る、送信バッファマップ504を含んでもよい。これらのポインタのそれぞれは、6LoWPANデータフレームの開始を示してもよい。所望であれば、各ポインタはまた、対応する6LoWPANデータフレームの状態を示し得る、状態ブロックと関連付けられてもよい。フラグメンタ502は、送信バッファマップ504に基づいて送信バッファ503にアクセスしてもよく、かつ6LoWPANデータフレーム503−1...503−2のそれぞれをアウトバウンド待ち行列505に転送してもよい。この場合、フラグメンタ502は、6LoWPANデータフレーム503−1...503−2のそれぞれがアウトバウンド待ち行列505に転送された後に指示をWirelessHARTネットワーク層315へ伝送してもよく、以前に論議されたように、フラグメンタ502は、6LoWPANデータフレーム503−1...503−3等の意図した受信側のIPアドレスをWirelessHARTネットワーク層315に提供してもよい。
【0119】
図10Bは、例えば、6LoWPAN適合モジュール350において実装され得る、再組立モジュール例520を描写する。ここで、再組立モジュール520は、1つ以上の6LoWPANデータフレームがインバウンド待ち行列521の中で受信されるときに、WirelessHARTネットワーク層(例えば、ネットワーク層315)から指示を受信するリアセンブラ522を含む。リアセンブラ522は、インバウンド待ち行列521から受信バッファ523の中へ6LoWPANデータフレームのそれぞれを転送してもよい。次いで、リアセンブラ522は、標準または周知の6LoWPAN再組立技法を使用してIPv6データフレームを生成するように作成されるときに、6LoWPANデータフレームのそれぞれに付加された断片ヘッダを利用してもよい。リアセンブラ522は、特定のIPv6データフレームを構成する6LoWPANデータフレームのそれぞれの受信を追跡するために、受信側バッファマップ524を利用してもよい。1つのシナリオでは、WirelessHARTネットワーク層315は、順番に反して6LoWPANデータフレームを受信してもよく、リアセンブラ522は、データフレーム断片を含むデータパケットの全てがインバウンド待ち行列521の中で受信されて記憶されたときに、IPv6データフレームを依然として組み立て直してもよい。
【0120】
図11Aは、IPデータフレームとしてインターネットを介して受信され、低出力断片化技法を使用して、WirelessHARTネットワークルーティングプロトコル等の第2のネットワークルーティングプロトコルを介して伝送され得る、データフレーム例550の説明図を描写する。例証の目的で、データフレーム550は、IPv6データフレームであってもよく、インターネットを介してIPv6使用可能WirelessHARTゲートウェイにおいて受信されると仮定される。
図11Aで見られるように、データフレーム550は、遠隔コンピュータデバイスによって生成され得るアプリケーションペイロードデータ550−1、ならびにIPデータパケット作成およびルーティングの通常動作に従ってそこに付加される、種々の他のヘッダおよびトレーラを含む。
【0121】
好適なプロトコルが、IPv6データフレーム550を1つ以上のデータフレーム断片552−1...552−nに断片化するために利用されてもよい。この実施例では、IPv6データフレーム550は、6LoWPANプロトコルに準拠する方法を使用して断片化されてもよいが、他の断片化技法が代わりに使用されてもよい。各データフレーム断片は、データフレーム断片552−1が断片ヘッダ情報553−1とともにカプセル化されるものとして例証されるように、6LoWPAN断片ヘッダ情報553とともにカプセル化されてもよい。データフレーム断片ヘッダ情報が、断片ヘッダ、圧縮IPプロトコルヘッダ、および(IPトランスポートプロトコル用の)圧縮トランスポートプロトコルヘッダを含むものとして例証される一方で、各データフレーム断片のペイロードは、元のIPv6データパケットのアプリケーションペイロード550−1の一部分である。
【0122】
理解されるように、データフレーム断片552−1等の各データフレーム断片は、WirelessHARTネットワーク等の低出力ネットワーク内でデータフレーム断片552−1のルーティングを可能にするように、好適な第2のネットワークルーティングプロトコルヘッダとともにカプセル化される。この実施例では、データフレーム552−1は、WirelessHARTカプセル化IPv6データフレーム断片554を生成するようにWirelessHARTプロトコルヘッダとともにカプセル化されてもよい。WirelessHARTプロトコルヘッダは、WirelessHARTネットワークルーティングヘッダ554−1と、WirelessHARTデータリンク層ヘッダ554−2とを備える。WirelessHARTカプセル化IPv6データフレーム断片554はさらに、WirelessHART通信ネットワークを介して伝送される前に、低出力通信標準、例えば、802.15.4標準に準拠する、物理的ヘッダ554−3および物理的トレーラ554−4とともにカプセル化されてもよい。
【0123】
WirelessHARTプロトコルに対応するデータフィールドの中の1つまたはいくつかのビットは、データフレーム断片がIPv6データフレームに対応することを受信デバイスに示すように割り振られてもよい。
図11Bは、HARTネットワークルーティングヘッダ554−1のDLPDUフィールド560を図示する。この実施例では、WirelessHARTヘッダがIPv6データフレーム断片をカプセル化することを受信デバイスに示すために、ビット7(参照番号561によって示される)がフラグとして利用される。ビット7(561)は、WirelessHARTデータフレームがWirelessHARTデータフレーム内のIPv6データフレーム断片の存在を示すように伝送される前に、「1」に設定されてもよい。
図7および8を参照すると、WirelessHARTネットワーク層315および拡張WirelessHARTネットワークブロック326は、データフレームが伝送される前に、WirelessHARTネットワークルーティングプロトコルヘッダのDLPDUフィールド560のビット7(561)を論理「1」に設定してもよい。
【0124】
図11Cは、WirelessHARTネットワークルーティングヘッダ554−1の制御バイト565に対応し、制御バイト565の中のデータフィールドも、または代わりに、WirelessHARTプロトコルヘッダが暗号化された通信チャネルを介して受信されるデータフレーム断片をカプセル化するかどうかを示すように割り振られてもよい。例えば、データフレーム断片が暗号化されたWirelessHART通信チャネルを介して受信されるかどうかを示すために、ビット4(参照番号566で示される)が利用されてもよい。この実施例では、ビット5(567)が、データフレーム断片内のセキュリティヘッダの場所を示すために利用される。
【0125】
以下の表1は、WirelessHARTネットワークルーティング情報内で暗号化およびセキュリティを提供するために使用され得る、制御バイトのビット4(566)およびビット5(567)の一組の可能な組み合わせを示す。
【表1】
【0126】
ビット4およびビット5の設定は、IPv6使用可能WirelessHARTゲートウェイにおいて、およびWirelessHARTネットワーク内のフィールドデバイスの中で構成されてもよい。表1を参照すると、ビット4が論理「0」であるように構成される場合において、WirelessHART通信ネットワーク内で動作するフィールドデバイスは、データフレームを受信および伝送するために安全なIP通信を利用してもよい。代替として、フィールドデバイスは、安全でない通信チャネルを介して通信してもよい。安全なIP通信チャネルが利用される場合において、アプリケーションは、安全な通信を実施することに関与し得る。
【0127】
ビット4(566)が論理「1」に構成され、ビット5(567)が論理「1」に構成される場合において、IPv6使用可能WirelessHARTゲートウェイは、WirelessHARTネットワークヘッダ554−1の後にセキュリティヘッダを挿入するように、WirelessHARTネットワーク層において方法を実装してもよい。これらの場合において、IPv6使用可能WirelessHARTは、安全なIP通信チャネルを介してインターネットからIPv6データフレームを受信してもよいが、IPv6データフレーム断片は、IPv6使用可能WirelessHARTゲートウェイにおいて断片化される前に解読されてもよい。
【0128】
ビット4(566)が論理「1」に構成され、ビット5(567)が論理「0」に構成される場合において、IPv6使用可能WirelessHARTゲートウェイは、6LoWPANデータフレーム断片ヘッダ554−5の後にセキュリティヘッダを挿入するように、WirelessHARTネットワーク層において方法を実装してもよい。受信フィールドデバイスが、IPv6データフレーム断片を受信および伝送するときに、適切なセキュリティ機構を実施するようにビット4およびビット5を解釈するであろう。
【0129】
図8を参照して論議されたように、拡張WirelessHARTネットワークブロック326は、受信したデータフレームのビット7(561)が設定されていない(0)ことを判定してもよい。この場合、拡張WirelessHARTネットワークブロック326は、標準WirelessHART通信を使用して、処理するために指示を着信データフレームのWirelessHARTトランスポートブロック338へ伝送する。データフレーム554は、例えば、どのWirelessHARTプロトコルまたはWirelessHARTアプリケーションにデータフレーム554アプリケーションペイロードが対応するかを判定するために、WirelessHARTトランスポートブロック338および/またはHARTアプリケーションブロック340によって利用される情報を含み得る、WirelessHARTプロトコル指標フィールドを含んでもよい。
【0130】
図6のネットワーク例を再び参照すると、IPv6使用可能WirelessHARTフィールドデバイス108は、受信したIPv6データフレーム断片の意図した受信側が、他のIPv6使用可能フィールドデバイスである状況で、WirelessHART通信ネットワーク100を介して、WirelessHARTプロトコルカプセル化IPv6データフレーム断片を受信してもよい。IPv6使用可能フィールドデバイス108はまた、受信したIPv6データフレーム断片の意図した受信側が他のIPv6使用可能フィールドデバイスである状況で、WirelessHART通信ネットワーク100を介して、WirelessHARTプロトコルカプセル化非IPv6データフレームを受信してもよい。ここで、WirelessHART通信ネットワーク内でIPv6データフレーム断片をルートするようにWirelessHARTフィールドデバイスにおいて実装され得るいくつかの方法を、さらに詳細に論議する。理解されるように、IPv6使用可能WirelessHARTフィールドデバイス、場合によっては、非IPv6使用可能WirelessHARTフィールドデバイスは、WirelessHART通信ネットワーク内でIPv6データフレーム断片および標準WirelessHARTデータフレームをルートするために、以下で論議されるいくつかの方法のうちのいずれか1つを利用するように構成されてもよい。場合によっては、以下で論議される先述の方法は、2つの他のIPv6使用可能WirelessHARTフィールドデバイスの間でIPv6データフレーム断片をルートするために、単一の中間IPv6使用可能WirelessHARTデバイスまたは単一の中間非IPv6使用可能WirelessHARTデバイスを使用するが、いくつかの中間IPv6使用可能WirelessHARTデバイスまたは非IPv6使用可能WirelessHARTデバイスが、WirelessHART通信ネットワーク内でIPv6データフレームの「マルチホップ」ルーティングを可能にするために、以下で論議される方法で中間デバイスとして使用されてもよい。
【0131】
図12は、WirelessHART通信ネットワーク例600内のIPv6使用可能WirelessHARTフィールドデバイスにおいて実装され得る、ルーティング方法例の説明図を描写する。ネットワーク600内の種々の異なるIPv6使用可能WirelessHARTフィールドデバイスのネットワーク通信スタック601、602、および603はそれぞれ、別個のIPv6使用可能WirelessHARTフィールドデバイスにおいて実装される。理解されるように、スタック601、602、および603は、
図8のスタック320の記述と同一または同様であり得、概して、それに従って動作してもよい。この場合、ネットワーク通信スタック602は、中間WirelessHARTフィールドデバイスにおいて実装され、ネットワーク通信スタック601および603を実装するフィールドデバイス間で、WirelessHARTデータフレームおよびWirelessHARTデータフレームの中にカプセル化されたIPv6データフレーム断片の両方をルートするように動作する。理解されるように、IPv6データフレーム断片は、IPv6データフレーム断片のそれぞれ1つをカプセル化するWirelessHARTプロトコルヘッダに含まれる情報(ネットワークルーティング情報、データリンク層情報、および物理層プロトコル情報を含む)に基づいて、通信ネットワーク600上でルートされる。
【0132】
1つのシナリオ例では、スタック601内のHARTアプリケーションブロック601−1の中で実行するアプリケーションは、スタック603を実装するデバイスのHARTアプリケーションブロック603−1の中で実行するアプリケーションに意図されたWirelessHARTデータフレームを生成する。アプリケーションブロック601−1は、WirelessHARTネットワークルーティング情報をデータパケットに追加し、ネットワーク600上での処理およびルーティングのために、このデータパケットをWirelessHART MAC(データリンク)層601−6および物理層601−7へ送信することによって、データパケットを処理する拡張WirelessHARTネットワークブロック601−2へ送達するために、そのデータフレームをWirelessHARTトランスポートブロック601−3に提供する。別のシナリオ例では、アプリケーションブロック601−4の中で実行するアプリケーションが、スタック603を実装するデバイスのアプリケーションブロック603−4の中で実行するIPv6アプリケーションに意図されたIPv6データフレームを生成する。
図8を参照して以前に説明されたように、スタック601のIPトランスポート層の中の6LoWPANブロック601−5は、アプリケーションブロック601−4の中で実行するアプリケーションから受信されるIPv6データフレームを断片化する。この場合、拡張WirelessHARTネットワークブロック601−2は、スタック601−2、601−6、および601−7の下層を使用して、上記で説明されるように、WirelessHARTプロトコルヘッダともに、(アプリケーションブロック601−4および6LoWPANブロック601−5からの)IPv6データフレーム断片のそれぞれをカプセル化する。当然ながら、拡張WirelessHARTネットワークブロック601−2は、WirelessHART通信ネットワークを介してデータフレームを伝送する前に、ネットワーク通信スタック603を実装するWirelessHARTフィールドデバイスの論理アドレス、またはそこへのルートに対応するルーティング情報を用いて、それぞれのそのようなデータフレームに対応するWirelessHARTプロトコルヘッダを更新する。この情報は、WirelessHARTネットワーク内のデバイスのIPアドレスを、これらのデバイスに到達するためのWirelessHARTルーティング情報に関係付ける、ルーティングテーブル(
図12では示されていない)の中に記憶されてもよい。拡張WirelessHARTネットワークブロック601−2はまた、伝送前に、WirelessHARTプロトコルヘッダがIPv6データフレーム断片をカプセル化することを示すフラグを用いて、IPv6データフレーム断片に対応するデータフレームのWirelessHARTプロトコルヘッダを符号化する。
【0133】
ネットワーク上で送信された後、通信スタック602を実装するIPv6使用可能フィールドデバイスは、いくつかのWirelessHART符号化IPv6データフレーム断片またはWirelessHARTパケットを受信し、スタック602の物理層602−7、データリンク層602−6、およびネットワーク層602−2の部分の中で、これらのパケットを処理する。両方の場合において、各データパケット(WirelessHARTデータパケットまたはWirelessHARTプロトコルヘッダとともにカプセル化されたIPv6データフレーム断片のいずれか一方)のWirelessHARTネットワークルーティング情報は、パケットがWirelessHARTネットワーク600内で別のデバイスへ送信されるものであることを示すであろう。通信スタック602の下層602−7、602−6、および602−2は、パケットを、次のWirelessHARTデバイス、この場合はスタック603を実装するデバイスへ送信する前に、このパケットの中の適切なWirelessHARTネットワークルーティング、データリンク、および物理層情報を復号および再符号化するように、標準WirelessHARTネットワークルーティングおよびデータリンクおよび物理リンクアドレス指定を使用して、パケットを処理する。理解されるように、データパケット(WirelessHARTデータパケットまたはWirelessHARTネットワークルーティング情報とともにカプセル化されるIPv6データパケット)が、スタック602を実装するデバイス内のアプリケーションにアドレス指定されないため、各データパケットは、このデバイスを通してルートされるように、スタック602のWirelessHARTネットワークブロック602−2まで処理される必要しかない。したがって、この場合、拡張WirelessHARTネットワークブロック602−2は、(WirelessHARTネットワークおよびデータリンクルーティングプロトコルを使用して)ネットワークおよびデータリンク層ルーティングを行って、受信したデータフレーム断片またはWirelessHARTパケットを、通信スタック603を実装するIPv6使用可能フィールドデバイスへ送信するために、受信したデータフレーム断片のそれぞれをカプセル化するWirelessHARTプロトコルヘッダの中、またはWirelessHARTパケットの中の情報を利用する。経路610は、IPv6および非IPv6データフレームの両方が横断し得る、例証的なルートに対応し、点線は、標準WirelessHARTパケットまたはIPv6符号化パケットがスタック601、602、603内で横断する、異なる経路を示す。
【0134】
当然ながら、メッセージまたはデータパケットがスタック603を実装するデバイスにおいて受信されるとき、メッセージは、
図8に関して上記で説明されるように拡張WirelessHARTネットワークブロック603−2まで処理される。この場合、パケットは、最終的に、データパケットのネットワークルーティング情報を介して、スタック603を実装するデバイスの中のアプリケーションにアドレス指定されるため、ネットワークブロック603−2は、復号および処理のために、復号されたパケットをWirelessHARTトランスポートブロック603−3(パケットがWirelessHARTパケットまたはデータフレームであるとき)またはIPトランスポート層603−5(パケットが断片化IPv6データフレームを含有する)のいずれかに提供する。当然ながら、後者の場合、IPネットワークルーティング情報は、受信側アプリケーションのIPアドレスを使用および判定することができ、それにより、スタック603のアプリケーション層603−4の中の正しいアプリケーションへ送達するために、IPv6データフレームを適切なソケットへ送達するように、ブロック603−5において維持される。
【0135】
図13は、WirelessHART通信ネットワーク例600内のIPv6使用可能WirelessHARTフィールドデバイスにおいて実装され得る、別のルーティング方法例を図示する。この通信方法は、1つの違い以外、
図12に関して説明されるものと非常に類似する。この方法では、(スタック602を実装する)中間IPv6使用可能WirelessHARTフィールドデバイスは、WirelessHARTプロトコルヘッダの中に含まれる情報を利用することによって非IPv6データフレーム断片をルートするが、WirelessHARTネットワーク600上で再断片化IPv6データフレーム断片を返送する前に、IPv6データフレーム断片を組み立て直して再断片化する。この技法は、WirelessHARTネットワーク上でデータフレームまたはメッセージをルートするかどうか、またはどのようにしてルートするかを判定するためにIPアドレスを使用する必要があり得る、あるいはIPv6データパケット内のIPネットワークルーティング情報の中のデータを使用するIPベースのセキュリティ技法を実装し得る、ルータまたはゲートウェイ等のIPv6使用可能WirelessHARTデバイスにおいて必要とされてもよい。
【0136】
ルート線660によって
図13で図示されるように、スタック601を実装するIPv6使用可能WirelessHARTデバイスは、ネットワーク600上で送信されるWirelessHARTパケットおよび/またはIPv6データパケットを作成し、これらのパケットは、通信ネットワーク600上に配置されるように、上記で説明されるようにスタック601の中で処理される。通信スタック602を実装する中間IPv6使用可能WirelessHARTフィールドデバイスは、標準WirelessHARTルーティング技法を介して、IPv6データフレーム断片および非IPv6データフレーム(例えば、WirelessHARTデータフレーム)を受信する。受信したパケットは、上記で説明されるように、下スタック層602−7、602−6、および602−2の中で処理される。しかしながら、ここで、WirelessHARTネットワークブロック602−2は、データフレームがIPv6データフレーム断片であることを示す、WirelessHARTプロトコルヘッダの中のフラグの存在を検出するように動作し、そのようなフラグが検出されたとき、拡張WirelessHARTネットワークブロック602−2は、IPv6データフレーム断片を6LoWPANブロック602−5へルートする。次いで、拡張WirelessHARTネットワークブロック602−5は、例えば、これらのパケットをデフラグし、次いで、標準IPルーティングに必要とされ得るようなIPアドレスおよびセキュリティ情報を取得するように、これらのパケットからIPv6ネットワーク層情報を読み取ることによって、データフレーム断片からIPv6ネットワーク層情報を復号する。このアクションは、ブロック602−5を通る経路660の点線部分によって示される。ここで、6LoWPANブロック602−5は、IPv6データフレームを再生するように、6LoWPAN断片ヘッダの中の情報を利用して、いくつかのIPv6データフレーム断片を組み立て直す。次いで、6LoWPANブロック602−5は、生成されたIPv6データフレームのIPヘッダの中の宛先IPアドレス情報および/またはセキュリティ情報を復号して利用し、セキュリティ処理を行ってもよい。加えて、ブロック602−5は、通信スタック603を実装するIPv6使用可能WirelessHARTフィールドデバイス、すなわち、IPv6アドレス指定を使用してIPv6データフレームがアドレス指定されるデバイスに対応する、WirelessHARTアドレス情報を調べてもよい。次いで、6LoWPANブロック652−2は、WirelessHART通信ネットワーク600を介してデータフレームが送信されるべきであるWirelessHARTデバイスに関する情報とともに、拡張WirelessHARTネットワークブロック602−2を介してIPv6データフレーム断片を返送する前に、生成されたIPv6データフレームをいくつかのIPv6データフレーム断片に断片化してもよい。次いで、拡張WirelessHARTネットワークブロック602−2は、WirelessHARTネットワークルーティング情報をこれらのフレームに追加し、WirelessHART通信ネットワーク600上でのルーティングのためにスタック602の下位レベル602−6および602−7において処理するために、これらのフレームを送信する。
【0137】
スタック603を実装する受信デバイスにおいて、データパケットは、上記で説明されるように処理され、データフレームのタイプに基づいて、適切なアプリケーション層あるいはブロック603−1または603−4に提供される。当然ながら、スタック602を実装する1つだけの中間デバイスが、
図13で図示されるが、1つよりも多くの中間デバイスが、経路660内に位置することができ、それぞれのそのような中間デバイスが、スタック602に関して上記で説明される処理を行うことができる。
【0138】
図14は、WirelessHART通信ネットワーク上でWirelessHARTデータパケットおよびIPv6データパケットの両方をルートするか、または送達するために使用することができる、さらに別のルーティングまたは通信方法を図示する。
図14の実施例では、ルーティングは、
図12に関して上記で説明されるのと同様に行われる。しかしながら、この場合、中間デバイスのうちの1つ以上は、非IP使用可能フィールドデバイスであってもよいため、IPベースのネットワークスタックのネットワーク、トランスポート、およびアプリケーション層を含まない。しかしながら、
図14で図示されるように、各データパケットが、再符号化され、ルートの中の次のデバイスへ送信される前に、WirelessHARTネットワーク層ブロック602−2までしか処理されないため、これらの中間デバイスを通して、IPベースのデータフレームおよびWirelessHARTデータフレームの両方を依然としてルートすることができる。つまり、この場合、WirelessHARTネットワークの中の中間デバイスを通したルーティングは、WirelessHARTネットワークルーティングプロトコル情報のみを使用して起こることができるため、これらのデバイスは、IPv6使用可能である必要がない。結果として、スタック602の中のネットワーク層ブロック602−2は、基礎的IPv6データパケットの存在を認識するか、またはこれらのタイプのデータパケットの存在を示すフラグをWirelessHARTネットワークルーティング層情報の中へ符号化する必要がないため、このブロックは、「拡張」WirelessHARTネットワーク層である必要がない。
【0139】
例えば、
図7および8を参照して以前に論議されたように、アプリケーション層314およびアプリケーションブロック334は、WirelessHART通信ネットワークを介して、生成されたIPv6データフレームを受信および伝送するために、アプリケーションプログラミングフレームワークおよびインターフェース315ならびにアプリケーションプログラミングインターフェース332を利用し得る、カスタムアプリケーションを含んでもよい。
図6のIPv6使用可能WirelessHARTフィールドデバイス107、108、109、および110のベンダは、例えば、いくつかのシナリオでは、第三者アプリケーション開発者がカスタムアプリケーションを作成して配布することを可能にするように、ソフトウェア開発キット(SDK)を作成してもよい。そのようなSDKは、例えば、CD−ROMを介して提供されてもよく、またはインターネットを介してサーバ(図示せず)からダウンロードされてもよい。
【0140】
図15は、開発者が、例えば、IPv6データフレームを受信および伝送するために、
図7のアプリケーションプログラミングインターフェース315を利用し得る、フィールドデバイス特有のカスタムアプリケーションを開発することを可能にする、汎用コンピュータ701上にインストールされ得る、SDK例700のブロック図を提供する。WirelessHART通信ネットワーク716内で動作するIPv6使用可能WirelessHARTフィールドデバイス715上で実行されたとき、カスタムアプリケーションは、例えば、IPv6使用可能WirelessHARTフィールドデバイス715から、フィールドデバイス特有の構成および状態情報を回収し、別のコンピュータデバイス(例えば、デバイス701)へのゲートウェイ720を介して、IPv6データフレームの中のこの情報をインターネット717へ伝送するように構成されてもよい。
【0141】
SDK例700は、
図6で参照されるIPv6使用可能WirelessHARTフィールドデバイス107、108、109、および110、ならびに、例えば、ベンダによって製造されるIPv6使用可能WirelessHARTフィールドデバイス715のうちのいくつかまたは全てのモデルの情報を記憶し得る、フィールドデバイスデータベース702を含んでもよい。当然ながら、フィールドデバイスデータベース702は、IPv6使用可能WirelessHARTフィールドデバイスのより新しいモデルを用いて、周期的に更新されてもよい。IPv6使用可能WirelessHARTフィールドデバイスの特定のモデルの情報は、サポートされたアプリケーションプログラミングインターフェース、IPv6使用可能WirelessHARTフィールドデバイスの特定のモデルの中に存在するマイクロプロセッサ群を示すプロセッサ識別子等を含んでもよい。
【0142】
フィールドデバイスプロセッサツール連鎖データベース704は、実行可能なカスタムアプリケーションを生成するために利用され得る、コンパイラおよびリンカを含んでもよい。当業者であれば、各マイクロプロセッサ群が、ソフトウェアコードをコンパイルして実行可能なカスタムアプリケーションを生成するために各自の一意的なツール連鎖を必要とし得ることを認識するであろう。
【0143】
本明細書で説明されるいくつかのデータベースは、汎用コンピュータ701のローカルにあってもよく、または代替として、インターネット717に接続された別のコンピュータデバイスに位置し、または「マップ」されてもよい。グラフィカルユーザインターフェース(GUI)モジュール706は、第三者ソフトウェア開発者(プログラマ)がSDK700と相互作用することを可能にしてもよい。当然ながら、GUI706は、例えば、キーボードおよびマウス718を介して、プログラマ入力を受信してもよい。また、GUI706は、例えば、表示モニタ719を介して、ウィンドウベースのソフトウェアインターフェースを提供してもよい。プログラマは、フィールドデバイスセレクタ707を介して、例えば、フィールドデバイスデータベース702から、IPv6使用可能WirelessHARTフィールドデバイス715の特定のモデルを選択するように、SDK700と相互作用してもよい。フィールドデバイスセレクタ707は、例えば、GUI706において、ドロップダウンメニューとして表されてもよい。
【0144】
構築エンジン708は、プログラマがフィールドデバイスセレクタ707を介してIPv6使用可能WirelessHARTフィールドデバイスを選択するときに、フィールドデバイスプロセッサツール連鎖データベース704から適切なツール連鎖を自動的に選択するために使用されてもよい。当然ながら、選択されるツール連鎖は、例えば、IPv6使用可能WirelessHARTフィールドデバイス715の選択されたモデルの中に存在するマイクロプロセッサに対応するであろう。
【0145】
GUI706は、プログラマがコードエディタモジュール710にソフトウェアアプリケーション(ソースコード)を書き込むことを可能にする。プログラマは、ソフトウェアアプリケーションをコンパイルし、例えば、IPv6使用可能WirelessHARTフィールドデバイス715のモデルのアプリケーションブロック334の中で実行され得るカスタムアプリケーションを生成するように、構築エンジン708に命令してもよい。構築エンジン708は、以前に選択されたツール連鎖を利用するであろう。
【0146】
次いで、プログラマは、フィールドデバイスエミュレータ712を介して、実行可能なカスタムアプリケーションを有効にし、試験してもよい。フィールドデバイスエミュレータ712は、例えば、IPv6使用可能WirelessHARTフィールドデバイス715の選択されたモデルの中に存在するアプリケーションプログラミングインターフェース334を含む、ソフトウェア環境を提供してもよい。
【0147】
実行可能なカスタムアプリケーションおよび対応するソースコードは、そのように所望される場合、アプリケーションデータベース714の中に記憶されてもよい。プラントオペレータが、所望されるときに、インターネット717を介して、実行可能なカスタムアプリケーションをデバイス715等のIPv6使用可能WirelessHARTフィールドデバイスにダウンロードしてもよい。カスタムアプリケーションは、例えば、IPv6使用可能WirelessHARTフィールドデバイス715のアプリケーションブロック334において実行し、ブロック336においてデバイス特有の機能と相互作用するためにAPI332を利用してもよい。同様に、カスタムアプリケーションは、API332に含まれる機能性および本明細書で説明される技法を利用することによって、WirelessHART通信ネットワーク717を介して、インターネット717からIPv6データフレームを受信し、かつそこへ伝送してもよい。
【0148】
上述のように、上記の通信方法例および/またはこれらの方法を実装するための装置のうちの少なくともいくつかは、コンピュータプロセッサ上で作動する1つ以上のソフトウェアおよび/またはファームウェアプログラムによって実装されてもよい。しかしながら、全体的または部分的のいずれかで、本明細書で説明される方法および/または装置例のうちのいくつかまたは全てを実装するように、特定用途向け集積回路、プログラマブルロジックアレイ、および他のハードウェアデバイスを含むが、それらに限定されない、専用ハードウェア実装を、同様に構築することができる。さらに、分散処理またはコンポーネント/オブジェクト分散処理、並列処理、または仮想マシン処理を含むが、それらに限定されない、代替的なソフトウェア実装もまた、本明細書で説明される方法および/またはシステム例を実装するように構築することができる。
【0149】
また、本明細書で説明されるソフトウェアおよび/またはファームウェア実装例は、磁気媒体(例えば、磁気ディスクまたはテープ)、光ディスク等の磁気光学または光学媒体、あるいはメモリカードまたは1つ以上の読取専用(不揮発性)メモリを収納する他のパッケージ、ランダムアクセスメモリ、または他の書換可能(揮発性)メモリ等のソリッドステート媒体等の、有形コンピュータ可読記憶媒体上に記憶されることにも留意されたい。したがって、本明細書で説明されるソフトウェアおよび/またはファームウェア例は、上記で説明されるもの等の有形記憶媒体または後続記憶媒体上に記憶することができる。上記の明細書が、特定の標準およびプロトコルを参照して構成要素および機能例を説明する限りでは、本特許の範囲は、そのような標準およびプロトコルに限定されないことが理解される。例えば、インターネットおよび他のパケット交換ネットワーク伝送のための標準のそれぞれ(例えば、伝送制御プロトコル(TCP)/インターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)/IP、ハイパーテキストマークアップ言語(HTML)、ハイパーテキスト転送プロトコル(HTTP))、IPv4、IPv6、WirelessHART等は、現在の最先端技術の実施例を表す。そのような標準は、周期的に、同一の一般機能性を有する、より速い、またはより効率的な同等物に取って代わられる。したがって、同一の機能を有する代替標準およびプロトコルは、本特許によって考慮される同等物であり、添付請求項の範囲内に含まれることを目的としている。
【0150】
加えて、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む、方法および装置例を開示するが、そのようなシステムは、例証的にすぎず、限定的と見なされるべきではないことに留意されたい。例えば、これらのハードウェアおよびソフトウェア構成要素のうちのいずれかまたは全てを、独占的にハードウェアで、独占的にソフトウェアで、独占的にファームウェアで、あるいはハードウェア、ファームウェア、および/またはソフトウェアの何らかの組み合わせで、具現化できることが考慮される。したがって、上記の明細書は、方法、システム、および/または機械がアクセス可能な媒体例を説明するが、実施例は、そのようなシステム、方法、および機械がアクセス可能な媒体を実装する唯一の方法ではない。したがって、ある方法、システム、および/または機械がアクセス可能な媒体例が本明細書で説明されているが、本特許の対象範囲は、それらに限定されない。