(57)【要約】      （修正有）【課題】フィールドバス通信の効果を最大限にすることが可能なプロセス制御デバイスを提供する。【解決手段】プロセス制御システムにおけるデバイス群は、通信媒体セグメント上でデータメッセージによって通信する。各デバイスは、データキューと、受信メッセージオブジェクトのキューとを含んだ通信コントローラを含む。データキューは、通信媒体上で受信された複数のメッセージを格納する。受信メッセージオブジェクトは、データキューにおける、対応するメッセージに関する情報を格納する。【選択図】図５
2011239469.tif 000002
【特許請求の範囲】
【請求項１】
通信媒体上で通信を行うデバイスであって、
該デバイスは、
前記通信媒体上でメッセージの受信及び送信を行う媒体接続装置（ＭＡＵ）と、
受信されたメッセージに格納されたデータの処理と、送信されるメッセージに格納されるデータの生成とを行う中央処理装置（ＣＰＵ）と、
前記ＭＡＵと前記ＣＰＵとを接続する通信コントローラであって、データキューと、受信メッセージオブジェクトのキューとを含み、前記データキューが、前記通信媒体上で受信された複数のメッセージを格納し、前記受信メッセージオブジェクトがそれぞれ、前記データキューにおける、対応するメッセージに関する情報を格納している、通信コントローラと
を備えていることを特徴とするデバイス。
【請求項２】
請求項１に記載のデバイスであって、
前記データキューは、書込ポインタと読込ポインタとを含み、
前記書込ポインタは、前記通信媒体から受信された新たなメッセージを格納するための前記データキューにおける記憶位置に対応し、
前記読込ポインタは、前記ＣＰＵが前記データキューからメッセージを読み込むための前記データキューにおける記憶位置に対応している
ことを特徴とするデバイス。
【請求項３】
請求項２に記載のデバイスであって、
前記書込ポインタ及び前記読込ポインタは、先入れ先出し（ＦＩＦＯ）キューとして前記データキューを実行する
ことを特徴とするデバイス。
【請求項４】
請求項２に記載のデバイスであって、
各受信メッセージオブジェクトは、
前記ＣＰＵにおけるソフトウェアによって読込可能なオーバーフロー属性であって、前記通信媒体からメッセージを受信中に、前記データキューにオーバーフローが発生したか否かを示すオーバーフロー属性と、
前記ＣＰＵにおけるソフトウェアによって読込可能なアンダーフロー属性であって、データの不足によって前記データキューからの読込が失敗したか否かを示すアンダーフロー属性と、
前記ＣＰＵにおけるソフトウェアによって読込可能なデータ準備完了属性であって、前記データキューがほぼ満杯であることを示すデータ準備完了属性と、
前記データキューからの位置情報を格納する終了位置属性と、
前記受信メッセージオブジェクトの選択及び有効化を行う有効フラグと
を含んでいることを特徴とするデバイス。
【請求項５】
請求項４に記載のデバイスであって、
メッセージが前記通信媒体上で受信されると、前記書込ポインタの値が、対応する受信メッセージオブジェクトにおける終了位置属性に継続的に転送される
ことを特徴とするデバイス。
【請求項６】
請求項４に記載のデバイスであって、
前記アンダーフロー属性は、前記読込ポインタが前記終了位置属性と同一の値を有しているときに、受信メッセージオブジェクトに設定される
ことを特徴とするデバイス。
【請求項７】
請求項４に記載のデバイスであって、
前記データキューは、該データキューが予め決められた閾値となっている深さよりも大きい深さに達すると、前記データ準備完了の信号を設定する
ことを特徴とするデバイス。
【請求項８】
請求項１に記載のデバイスであって、
前記データキューは、リングバッファに格納されている
ことを特徴とするデバイス。
【請求項９】
通信媒体上で受信したメッセージを処理する通信コントローラであって、
該通信コントローラは、
前記通信媒体から受信されたメッセージを格納する受信データメモリであって、前記メッセージが、書込ポインタ位置の前記受信データメモリに書き込まれ、読込ポインタ位置の前記受信データメモリから読み込まれる、受信データメモリと、
該受信データメモリに格納されたメッセージに関連する情報を格納する複数の受信メッセージオブジェクトであって、各受信メッセージオブジェクトが前記受信データメモリに格納されたメッセージに対応している、複数の受信メッセージオブジェクトと
を備えていることを特徴とする通信コントローラ。
【請求項１０】
請求項９に記載の通信コントローラであって、さらに、
前記受信データメモリにおける有効なメッセージを該有効なメッセージに対応する受信メッセージオブジェクトに関連付けるメッセージキューマネージャを備えている
ことを特徴とする通信コントローラ。
【請求項１１】
請求項１０に記載の通信コントローラであって、
前記有効なメッセージが前記通信媒体から受信されると、前記書込ポインタの値が、対応する受信メッセージオブジェクトにおける終了位置の値に継続的に転送される
ことを特徴とする通信コントローラ。
【請求項１２】
請求項１１に記載の通信コントローラであって、
前記受信データメモリは、前記読込ポインタが前記有効な受信メッセージオブジェクトにおける前記終了位置の値と同一の値を有するときに、前記有効なメッセージに対応する前記受信メッセージオブジェクトにアンダーフロー属性を設定する
ことを特徴とする通信コントローラ。
【請求項１３】
請求項９に記載の通信コントローラであって、
前記受信データメモリは、該受信データメモリが容量限度に近づいたときに、全ての受信メッセージオブジェクトにデータ準備完了属性を設定する
ことを特徴とする通信コントローラ。
【請求項１４】
請求項９に記載の通信コントローラであって、
前記書込ポインタ及び前記読込ポインタは、読込処理中及び書込処理中に記憶位置を変更し、先入れ先出し（ＦＩＦＯ）キューとして前記データキューを実行する
ことを特徴とする通信コントローラ。
【請求項１５】
プロセス制御ネットワーク上のデバイスによって受信されたメッセージを処理する方法であって、
該方法は、
前記プロセス制御ネットワークからメッセージを受信することと、
前記メッセージに関連する情報を格納する受信メッセージオブジェクトを更新することと、
データキューを格納する受信データメモリに前記メッセージを書き込むことと
を含んでいることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、
前記メッセージを書き込むことは、
受信メッセージオブジェクトキューにおける第１の取得可能な受信メッセージオブジェクトに有効フラグを設定することと、
前記受信データメモリにおける書込ポインタ位置を判定することと、
前記書込ポインタ位置で始まる前記受信データメモリに前記メッセージを書き込むことと、
前記メッセージが前記受信データメモリに書き込まれるまで前記書込ポインタ位置をインクリメントすることと
を含んでいることを特徴とする方法。
【請求項１７】
請求項１６に記載の方法であって、さらに、
前記受信データメモリがほぼ満杯の場合に、前記受信メッセージオブジェクトにデータ準備完了属性を設定すること
を含んでいることを特徴とする方法。
【請求項１８】
請求項１６に記載の方法であって、さらに、
前記プロセス制御ネットワークからメッセージを受信中に、前記受信データメモリが満杯になると、オーバーフロー属性を前記受信メッセージオブジェクトに設定すること
を含んでいることを特徴とする方法。
【請求項１９】
請求項１６に記載の方法であって、さらに、
前記メッセージが前記プロセス制御ネットワークから受信されると、前記書込ポインタの値を前記受信メッセージオブジェクトにおける終了位置属性に転送すること
を含んでいることを特徴とする方法。
【請求項２０】
請求項１５に記載の方法であって、
受信メッセージオブジェクトを更新することは、
メッセージ割込要求（ＩＲＱｓ）と、メッセージエラーと、メッセージ状態と、受信データメモリ情報とを含む前記受信メッセージオブジェクトに保持された複数の属性を更新すること
を含んでいることを特徴とする方法。
【請求項２１】
請求項１５に記載の方法であって、さらに、
前記メッセージを先入れ先出し（ＦＩＦＯ）の順序で中央処理装置（ＣＰＵ）に供給すること
を含んでいることを特徴とする方法。
【請求項２２】
請求項２１に記載の方法であって、
前記メッセージをＣＰＵに供給することは、
受信メッセージオブジェクトキューの前部に受信メッセージオブジェクトの有効フラグを設定することと、
前記受信データメモリおける読込ポインタ位置を判定することと、
前記読込ポインタで始まる前記メッセージを前記ＣＰＵに転送することと、
前記メッセージが前記ＣＰＵに転送されるまで前記読込ポインタ位置をインクリメント
することと、
前記受信メッセージオブジェクトキューから前記受信メッセージオブジェクトを削除することと
を含んでいることを特徴とする方法。
【請求項２３】
請求項２２に記載の方法であって、さらに、
前記読込ポインタが前記受信メッセージオブジェクトにおける終了位置属性と同一の値を有しているときに、前記受信メッセージオブジェクトにアンダーフロー属性を設定すること
を含んでいることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[発明の背景]
本発明は、プロセス制御システムにおける、現場計器及び他のデバイスに使用する通信コントローラに関する。具体的には、本発明は、通信コントローラにおいて、データパケットの受信及び処理の遅延が小さいシステム及び方法である。
【背景技術】
【０００２】
一般的な工業プラントでは、分散制御システム（ＤＣＳ）が、プラントで実行される多くの工業処理を制御するのに使用されている。一般的に、プラントには、コンピュータシステムを備えた集中制御室があり、コンピュータシステムには、コンピュータ技術において周知のユーザ入力部／出力部（Ｉ／Ｏ）と、ディスクＩ／Ｏと、他の周辺デバイスとが具備されている。コンピュータシステムには、コントローラとプロセスＩ／Ｏサブシステムとが連結されている。
【０００３】
プロセスＩ／Ｏサブシステムには、Ｉ／Ｏポートが具備されており、このＩ／Ｏポートには、プラント全体における種々のフィールドデバイスが接続されている。フィールドデバイスとしては、さまざまな種類の解析装置、シリコン圧力センサ、容量圧力センサ、抵抗温度検出器、熱電対、ひずみゲージ、リミットスイッチ、オン／オフスイッチ、流量送信器、圧力送信器、静電容量レベルスイッチ、計量器、トランスデューサ、バルブ固定装置、バルブコントローラ、アクチュエータ、ソレノイド、表示灯がある。“フィールドデバイス”という用語は、これらデバイスとともに、分散制御システムにおいて機能する他のいかなるデバイスも含む。
【０００４】
以前より、アナログ式フィールドデバイスは、１つの２線ツイストペアによって制御室に接続された各デバイスとともに、２線ツイストペア電流閉ループによって制御室に接続されている。アナログ式フィールドデバイスは、特定範囲内で、電気信号に応答したり、電気信号を送信することができる。通常の形態では、一般的に、ペアになっている２つの導線間におおよそ２０−２５ボルトの電位差が生じ、閉ループに４−２０ミリアンプの電流が流れる。制御室へ信号を送信するアナログ式フィールドデバイスは、検出したプロセス変量に比例した電流を用いて電流閉ループを流れる電流を調節する。他方、制御室の制御に従って動作するアナログ式フィールドデバイスは、閉ループを流れる電流の大きさによって制御される。尚、閉ループを流れる電流の大きさは、プロセスＩ／ＯシステムのＩ／Ｏポートによって調節される一方、プロセスＩ／ＯシステムのＩ／Ｏポートは、コントローラによって制御される。また、能動的な電子機器を備えた従来の２線式アナログデバイスは、閉ループから４０ミリワットまでの電力の供給を受けることが可能である。より大きな電力を必要とするアナログ式フィールドデバイスは、一般的に、４つの導線を介して制御室に接続され、４つの導線のうちの２つの導線が、デバイスに電力を供給する。このようなデバイスは、当技術分野において４線式デバイスとして知られ、２線式デバイスのような電力の制限がない。
【０００５】
アナログ式フィールドデバイスとは対照的に、従来のディジタル式フィールドデバイスは、２値信号を送信したり、２値信号に対して応答する。一般的に、ディジタル式フィールドデバイスは、２４ボルト信号（ＡＣもしくはＤＣ）、または、１１０もしくは２４０ボルトＡＣ信号、または、５ボルトＤＣ信号で動作する。当然のことながら、ディジタル式デバイスは、特定の制御環境で必要とされるあらゆる電気仕様に従って動作するように設計されてもよい。ディジタル入力フィールドデバイスは、制御室との接続の確立及び切断のいずれか一方を行う単なるスイッチである一方、ディジタル出力フィールドデバイスは、制御室から信号があるか否かに従って動作するようになっている。
【０００６】
以前より、従来のフィールドデバイスの多くは、信号入力もしくは信号出力のいずれか一方を行うだけであり、信号入力もしくは信号出力は、フィールドデバイスが実行する主要機能に直接関連していた。例えば、従来のアナログ式抵抗温度センサが実現する唯一の機能は、２線式ツイストペアを介して流れる電流を変化させることで温度を送信することである一方、従来のアナログ式バルブ保定装置が実現する唯一の機能は、２線式ツイストペアを流れる電流の大きさに基づき、バルブを開位置と閉位置との間に位置させることである。
【０００７】
最近では、電流閉ループにディジタルデータを重畳するハイブリッドシステムが分散制御システムに用いられている。制御技術における１つのハイブリッドシステムがハイウェイ・アドレッサブル・リモート・トランスデューサ（ＨＡＲＴ）として知られており、このハイブリッドシステムは、ベル２０２モデム仕様に類似している。ＨＡＲＴシステムは、電流閉ループにおける電流の大きさを用いてプロセス変量を検出する（従来のシステムと同様）だけでなく、電流閉ループ信号にディジタルキャリア信号を重畳する。キャリア信号は、比較的遅く、二次プロセス変量を１秒間におおよそ２，３回の頻度で更新できる信号である。一般的に、ディジタルキャリア信号は、二次的な診断情報を送信するのに用いられるものであって、フィールドデバイスの主要制御機能を実現するのに用いられるものではない。キャリア信号に重畳される情報の例としては、二次プロセス変量、（センサ診断と、デバイス診断と、配線診断と、プロセス診断とを含む）診断情報、動作温度、センサの温度、補正情報、デバイスＩＤ番号、建設資材、設定もしくはプログラミング情報などがある。したがって、１つのハイブリッド式フィールドデバイスは、種々の入出力変数を持つことができ、種々の機能を実現できる。
【０００８】
ＨＡＲＴは、業界標準の一般的なシステムである。しかしながら、ＨＡＲＴは、速度が比較的遅い。業界における他社は、より速度が速い独自仕様のディジタル送信仕様を開発したものの、これらの仕様は、一般的に、競合他社が使用したり、入手できるものではない。
【０００９】
最近、より新しい制御プロトコルがアメリカ計測学会（ＩＳＡ）によって策定された。この新しいプロトコルは、一般的に、フィールドバスと呼ばれている。フィールドバスは、マルチドロップ・シリアル・ディジタル双方向通信プロトコルであり、分散制御システムにおける、現場計器と、監視ユニットや模擬ユニットといった他のプロセスデバイスとを接続するためのものである。フィールドバスによって、以前のプロセス制御ループ法におけるディジタル通信を強化しつつ、フィールドバス閉ループに連結されたプロセスデバイスに電力を供給する能力を維持するとともに、固有の安全要求に合致させることもできる。
【００１０】
合理的に標準化された２つの工業用フィールドバスプロトコルとして、ファウンデーション・フィールドバスと、プロフィバスとがある。フィールドバスプロトコルの物理層は、アメリカ計測学会規格であるＩＳＡ−Ｓ５０．０２−１９９２と、１９９５年の２つの拡張案とに定義されている。フィールドバスプロトコルでは、２つのサブプロトコルが定義されている。Ｈ１フィールドバスネットワークは、最大３１．２５（キロビット／秒）（Ｋｂｐｓ）の速度でデータを送信するとともに、ネットワークに接続されたフィールドデバイスに電力を供給する。Ｈ１物理層サブプロトコルは、１９９２年の９月に承認されたＩＳＡ規格の第１１節第２部に定義されている。Ｈ２フィールドバスネットワークは、最大２．５（メガビット／秒）（Ｍｂｐｓ）の速度でデータを送信するものの、ネットワークに接続されたフィールドデバイスに電力を供給せず、余剰の伝送媒体を備えている。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
フィールドバスは、膨大な量のプロセスデータをディジタル通信するという有用な能力
を発揮する。したがって、フィールドバス通信の効果を最大限にすることが可能なプロセス制御デバイスの開発を継続する必要がある。
【課題を解決するための手段】
【００１２】
[発明の概要]
本発明は、ネットワーク上のデバイスに用いられる通信コントローラであって、通信媒体上で受信したメッセージを処理する。通信コントローラは、データキューと、受信メッセージオブジェクトのキューとを含んでいる。データキューは、通信媒体上で受信した複数のメッセージを格納する。受信メッセージは、好ましくは、受信データメモリの書込ポインタ位置に書き込まれ、受信データメモリの読込ポインタ位置から読み込まれる。また、通信コントローラは、複数の受信メッセージオブジェクトを含んでいる。各受信メッセージオブジェクトは、データキューにおける、対応するメッセージに関する情報を格納している。
【００１３】
各受信メッセージオブジェクトは、好ましくは、オーバーフローと、アンダーフローと、データ準備完了と、終了位置と、有効フラグとを含む複数の属性を格納している。オーバーフロー属性は、通信媒体からメッセージを受信中に、データキューにオーバーフローが発生したか否かを示す。アンダーフロー属性は、データの不足によって、データキューからの読込に失敗したか否かを示す。データ準備完了属性は、デバイスに保存された、閾値となっているキュー深さに基づいて、データキューがほぼ満杯であることを示す。終了位置属性は、データキューからの位置情報を格納する。有効フラグは、受信メッセージオブジェクトを選択し、選択した受信メッセージオブジェクトを有効化する。
【図面の簡単な説明】
【００１４】
【図１】通信媒体セグメント上のデバイス間のディジタル通信を行うプロセス制御システムの図面である。
【図２】図１のプロセス制御システムにおけるデバイス間の通信のためのメッセージフォーマットを示す。
【図３】プロセス制御システムにおけるデバイスのブロック図である。
【図４】図３のデバイスにおける通信コントローラの機能ブロック図である。
【図５】通信媒体セグメント上で受信されたデータパケットを処理する受信／送信事象マネージャの機能ブロック図である。
【発明を実施するための形態】
【００１５】
[詳細な説明]
＜プロセス制御システムの概要＞
本発明は、プロセス制御システムにおける現場計器と他のデバイスとに用いられる通信コントローラに関する。通信コントローラの用途は、メッセージとタイマ管理とのリンク層処理の大部分を実行することで、アプリケーションプロセッサもしくはＣＰＵを解放し、アプリケーションプロセッサもしくはＣＰＵが他の機能を実行できるようにすることである。本詳細な説明のために、ファウンデーション・フィールドバス通信プロトコルを用いるシステムを背景にして通信コントローラを説明する。ただし、通信コントローラは、パケットに基づいた通信プロトコルに対して一般的適用性を有している。
【００１６】
フィールドバス物理層は、物理層プロトコルデータユニット（ＰｈＰＤＵ）の形式で通信プロトコルデータを送受信する物理手段の電気的特性を定義している。さらに、フィールドバス物理層は、シンボル符号化、メッセージフレーム化、エラー検出方法を定義している。ＩＳＡフィールドバス規格は、３つの信号伝送速度と２つの結合モードとを定義している。本説明のため、ＩＳＡのＳ５０．０２規格第２部における第１１節に定義されたＨ１物理層を背景にして本発明を説明する。この節は、低電力の選択肢を有した、３１．２５Ｋｂｐｓ、電圧モード、導線媒体を対象としている。この選択肢によれば、通信媒体に接続されたデバイスは、通信媒体から動作電力の供給を受けることができる。物理層は、危険な環境のための固有の安全要求に合致させることができる。このプロトコルは、規格によって定義された電圧及び電流の制限に従って、低級ツイストペア線で動作し、多数のデバイスに対応するものである。
【００１７】
図１は、一般的なプロセス制御システム１０を示している。このプロセス制御システム１０は、セグメント１２と、電源１４と、５つのデバイスとを備えている。尚、５つのデバイスは、リンク・アクティブ・スケジューラ（ＬＡＳ）デバイス２０、リンク・マスタ（ＬＭ）デバイス２２、基本デバイス２４，２６，２８である。セグメント１２は、１対の導線上で３２基のデバイスまで対応することができる。一般的に、セグメント１２は、ループ実行速度と、電力と、固有の安全要求とに基づいて、４〜１６基のデバイスを有す
ることになる。
【００１８】
ＬＡＳデバイス２０は、セグメント１２上のデバイス間でなされる全ての通信の主要スケジュールを維持する。ＬＡＳデバイス２０は、コンペル・データ（ＣＤ）と、データ・リンク・プロトコル・データ・ユニット（ＤＬＰＤＵｓ）とを各デバイスへ送信し、各デバイスが、その後に返信するようにスケジュールされる巡回データを返信することで全体的な通信の信頼性を向上させる。ＬＡＳデバイス２０は、セグメント１２上のデータリンク時刻（ＤＬ時刻）の局部的な起点として機能する。ＤＬＰＤＵは、セグメント１２をわたって通信されるＰｈＰＤＵメッセージのデータ内容である。
【００１９】
ＬＭデバイス２２は、万が一、ＬＡＳデバイス２０が故障した場合、もしくは正常に動作しなくなった場合に、ＬＡＳデバイス２０の役割を引き継ぐように構成されている。図１には、ＬＭデバイス２２しか図示されていないが、複数のリンク・マスタ・デバイスをセグメント上に設けることができる。複数のリンク・マスタ・デバイスを設けることによって、リンク・アクティブ・スケジューラと第１のリンク・マスタとの双方が故障しても、第２のリンク・マスタがリンク・アクティブ・スケジューラを引き継ぐことができる。リンク・アクティブ・スケジューラがいったん機能しなくなると、リンク・マスタがリンク・アクティブ・スケジューラの機能を引き継ぐ。
【００２０】
各デバイスは、Ｖ（ＴＮ）と称する固有のアドレスを有している。尚、Ｖ（ＴＮ）は、ローカルノードＩＤ（Ｔｈｉｓ＿Ｎｏｄｅ）を表す。図１に示す例では、ＬＡＳデバイス２０は、Ｖ（ＴＮ）＝２０というアドレス；ＬＭデバイス２２は、Ｖ（ＴＮ）＝２２というアドレス；基本デバイス２４は、Ｖ（ＴＮ）＝Ａ５というアドレス；基本デバイス２６は、Ｖ（ＴＮ）＝Ｆ３というアドレス；基本デバイス２８は、Ｖ（ＴＮ）＝Ｆ５というアドレスを有している。
【００２１】
ＬＡＳデバイス２０は、セグメント１２上の全てのデバイスにパス・トークン（ＰＴ）メッセージとプローブ・ノード（ＰＮ）メッセージとを送信する。他のデバイス（ＬＡＳデバイス２２及び基本デバイス２４，２６，２８）はそれぞれ、リターン・トークン（ＲＴ）メッセージとプローブ・レスポンス（ＰＲ）メッセージとをＬＡＳデバイス２０に適宜返信する。
【００２２】
基本デバイス２４，２６，２８はそれぞれ、ＬＡＳデバイス２０によって送信された各々に対するＰＴメッセージとＰＮメッセージとを確認する必要があるだけである。ＰＴメッセージ及びＰＮメッセージは、符号化された宛先アドレス（ＤＡ）をＤＬＰＤＵの第２バイトに有している。ＬＡＳデバイス２０は、セグメント１２上の全てのデバイスに対して、トークン（ＰＴ）の転送、もしくはノード（ＰＮ）の調査を１つづつ行う。
【００２３】
基本デバイス２４，２６，２８は、各々の固有アドレス（ＤＡ＝Ｖ（ＴＮ））と一致する宛先アドレスを有するＰＴメッセージを受信すると、ＬＡＳデバイス２０に対してＲＴメッセージで応答する。基本デバイス２４，２６，２８は、ＤＡ＝Ｖ（ＴＮ）を有するＰＮ  ＤＬＰＤＵを受信すると、ＰＲメッセージで応答することを要求される。
【００２４】
ＬＡＳデバイス２０からのＰＴメッセージ、ＰＮメッセージ、及びＬＡＳデバイス２０へのＲＴメッセージ、ＰＲメッセージの送信によって、特定の基本デバイス２４，２６，２８が受信や応答する必要がない種々のメッセージがセグメント１２上に生成される。基本デバイス２４，２６，２８はそれぞれ、その特定のデバイス宛のＰＴメッセージ及びＰＮメッセージに応答する必要があるだけである。ＬＡＳデバイス２０からの他のデバイス宛のＰＴメッセージ及びＰＮメッセージ、さらに、他のデバイスからのＬＡＳデバイス２０宛のＲＴメッセージ及びＰＲメッセージに頻繁に割り込まれることにより、これら“妨
害割込”を処理する過度の処理時間が生じ得る。基本デバイス２４，２６，２８のために、ＤＬＰＤＵフィルタリングを用いて、基本デバイスが処理しなければならない割込の数を低減できる。他方、ＬＡＳデバイス２０は、セグメント１２上の各メッセージを処理しなければならない。
【００２５】
セグメント１２上の全てのデバイスは、データをマンチェスタ符号化ベースバンド信号としてセグメント１２上に送信する。マンチェスタ符号化によって、“０”及び“１”は、ビット周期内で起こるロウからハイへの変化と、ハイからロウへの変化とでそれぞれ表される。フィールドバスでは、公称ビット時間は３２マイクロ秒（μ秒）であり、１６μ秒で変化を生じる。マンチェスタ符号化法は、拡張され、非データプラス（Ｎ＋）、非データマイナス（Ｎ−）といった２つの追加シンボルを含んでいる。但し、ビット周期中に変化は起こらず、マンチェスタ符号化ベースバンド信号は、ハイ（Ｎ＋）もしくはロウ（Ｎ−）のままとなる。
【００２６】
＜メッセージフォーマット＞
図２に、メッセージをセグメント１２上に送信するのに用いられる物理層プロトコルデータユニット（ＰｈＰＤＵ）のフォーマットを示す。ＰｈＰＤＵは、プリアンブルと、スタート・デリミタ（ＳＤ）と、データリンク・プロトコル・データ・ユニット（ＤＬＰＤＵ）と、エンド・デリミタ（ＥＤ）とを含んでいる。プリアンブルは、ＰｈＰＤＵメッセージの最初の数ビットである。フィールドバス仕様では、１〜８バイトのプリアンブルが許容されている。メッセージを受信するデバイスは、プリアンブルを用いて、到来するメッセージと同期する。図２に示すように、プリアンブルにおける最初のバイト列は、１  ０  １  ０  １  ０  １  ０となっている。
【００２７】
スタート・デリミタ（ＳＤ）は、プリアンブルの直後に続く。１つのメッセージにつき１つのＳＤがある。フィールドバス仕様では、ＳＤは、非文字データ（Ｎ＋及びＮ−）を有している必要がある。この非文字データは、常に、相互補完関係にある一対としてＳＤメッセージに現れる。この符号化方法によって、ＳＤは独特のものとなり、ＳＤとメッセージのデータ部分（ＤＬＰＤＵ）との混同が生じることがない。図２に示すＳＤの列は、１  Ｎ＋  Ｎ−  １  ０  Ｎ−  Ｎ＋  ０となっている。
【００２８】
ＤＬＰＤＵは、可変長メッセージである。ＤＬＰＤＵは、その最初のバイトとしてフレーム制御（ＦＣ）バイトを含み、その最後の２バイトとしてフレーム・チェック・シーケンス（ＦＣＳ）チェックサムを含んでいる。ＤＬＰＤＵの長さは、可変であり、最小３バイト（ＲＴメッセージの場合）から例えばおおよそ３００バイトのジャバリミットまでである。
【００２９】
エンド・デリミタ（ＥＤ）は、ＤＬＰＤＵに続く。ＥＤは、セグメント１２上へ送信されたあらゆるＰｈＰＤＵメッセージの最後のバイトを表している。ＳＤと同様に、ＥＤは、相互補完関係にある一対の非文字データを含んでいる。この符号化方法によって、ＥＤは独特のものとなり、ＥＤとＤＬＰＤＵとの混同が生じることがない。図２に示すエンド・デリミタの列は、１  Ｎ＋  Ｎ−  Ｎ＋  Ｎ−  １  ０  １となっている。
【００３０】
また、図２は、キャリア検出信号を示している。キャリア検出信号の用途は、（ａ）到来するＰｈＰＤＵメッセージがセグメント１２上へ送出される時期、もしくは（ｂ）デバイスがセグメント１２上にメッセージを送信している時期を示すことである。
【００３１】
送信開始（ＳＯＴ）は、送信イネーブル（ＴｘＥ）が有効になったとき、つまり、ＰｈＰＤＵメッセージのプリアンブルがセグメント１２へ最初に送出されたときに発生する。
活動開始（ＳＯＡ）は、キャリア検出信号が有効になり、キャリア検出信号が少なくと
も１ビット時間、もしくは２ビット時間（おおよそ１６〜３２μ秒）の間、安定したのちに発生する。この時間は、メッセージを受信するデバイスの内部クロックに対して、いつキャリア検出が有効になるかに依存する。キャリア検出信号が安定したのちに活動開始（ＳＯＡ）が発生することによって、デバイスの通信コントローラは、プリアンブルの前半で起こる可能性が非常に高いノイズ異常を無視できる。追加時間は、ビット境界との同期に用いられ、それによりセグメント１２上の短いノイズバーストが活動として誤解釈される可能性が排除される。送信メッセージの場合、送信イネーブルがいったん有効になると（つまり、ＰｈＰＤＵのプリアンブルがセグメント１２へ送出されると）、ＳＯＡが発生する。
【００３２】
メッセージ開始（ＳＯＭ）は、受信メッセージのＦＣバイトが検出されたときの最初のビットの始まりで発生する。
ＳＯＭ＿ｘｍｔは、メッセージ送信開始であり、送信メッセージのＦＣバイトが検出されたときの最初のビットの始まりで発生する。
【００３３】
ＳＯＭｆは、フィルタ処理された受信ＤＬＰＤＵのＳＯＭである。ＳＯＭｆは、デバイス内の通信コントローラが、到来するメッセージをフィルタ処理するか判定するのに十分な情報を検出すると発生する。
【００３４】
メッセージ終了（ＥＯＭ）は、ＥＤにおける最後のビットの終わりが受信メッセージに現れると発生する。送信終了（ＥＯＴ）は、送信メッセージにおけるＥＤの最後のビットの終わりで発生する。
【００３５】
活動終了（ＥＯＡ）は、キャリア検出信号が無効になったときに発生する。ＥＯＡは、送信ＤＬＰＤＵ及び受信ＤＬＰＤＵの双方で発生する。
＜デバイス・アーキテクチャ＞
図３は、基本デバイス２４における通信部のブロック図を示している。尚、基本デバイス２４における通信部は、デバイス２０−２８の各々のアーキテクチャを代表するものである。基本デバイス２４は、中央処理装置（ＣＰＵ）３０と、ランダム・アクセス・メモリ（ＲＡＭ）３２と、フラッシュ・メモリ３４と、通信コントローラ３６と、媒体接続装置（ＭＡＵ）３８とを備えている。
【００３６】
図３に示す本実施形態では、ＣＰＵ３０は、モトローラ社製６８ＬＣ３０２、モトローラ社製Ｍｃｏｒｅ２０７５、モトローラ社製ＰｏｗｅｒＰＣ８５０、アトメル社製ＴｈｕｍｂプロセッサＡＴ９１Ｍ４０８００などといったマイクロプロセッサである。ＣＰＵ３０は、８ビット以上のプロセッサである。
【００３７】
図３に示す本実施形態では、通信コントローラ３６は、特定用途向け集積回路（ＡＳＩＣ）素子であり、ＭＡＵ３８とＣＰＵ３０との間のインターフェイスとして機能する。通信コントローラ３６は、フィールドバスセグメント１２に接続された外部のアナログ回路との間で符号化されたマンチェスタデータの送受信を行う。通信コントローラ３６は、ＭＡＵ３８からシリアルデータを受信したのち、受信したデータを符号化し、符号化したデータをバイトに変換して、プリアンブル、ＳＤ、ＥＤ（そして、任意にＦＣＳバイト）を除去し、リンク層が読み取るメッセージデータを供給する。データ送信に向け、通信コントローラ３６は、リンク層からＤＬＰＤＵデータのバイトを受信して、プリアンブルとＳＤとを付加し、任意にＦＣＳの生成を行い、ＥＤを付加する。通信コントローラ３６は、続いてシリアルに符号化されたマンチェスタデータを形成し、マンチェスタデータは、フィールドバスセグメント１２上への送信のためにＭＡＵ３８へ送信される。
【００３８】
通信コントローラ３６とＭＡＵ３８との間の通信は、ＲｘＳ、ＲｘＡ、ＴｘＳ、ＴｘＥ
といった４つの信号を介して確立される。尚、ＲｘＳは、受信されたマンチェスタ符号化シリアルデータである。ＲｘＡは、受信データのキャリア検出信号である。ＴｘＳは、送信された符号化シリアルデータである。ＴｘＥは、送信イネーブル信号である。
【００３９】
本発明の他の実施形態では、通信コントローラ３６は、ＣＰＵ３０と同一の集積回路上に形成され得る。さらに、いくつかの実施形態において、ＲＡＭ３２及びフラッシュ・メモリ３４もＣＰＵ３０と一体化されてもよい。ＬＡＳデバイス２０の場合、ＣＰＵ３０、ＲＡＭ３２、フラッシュ・メモリ３４は、プロセス制御システム１０のホストコンピュータシステムの一部であってもよい。
【００４０】
ＭＡＵ３８は、フィールドバスセグメント１２とのネットワーク接続を確立する。ＭＡＵ３８は、集積回路であってもよいし、個別の素子を用いてＭＡＵ３８を形成することもできる。
【００４１】
＜通信コントローラ３６＞
図４は、通信コントローラ３６の機能ブロック図である。本実施形態では、通信コントローラ３６は、デバウンス回路４２と、ディジタル位相同期回路（ＰＬＬ）４４と、フロントエンドステートマシン４６と、受信メッセージフィルタリング４８と、受信先入れ先出し（ＦＩＦＯ）メモリ５０と、送信ステートマシン５２と、送信ＦＩＦＯメモリ５４と、送信ドライバ回路５６と、受信／送信事象マネージャ５８と、レジスタ群６０と、クロック生成回路６２と、発振器６４と、タイマ群６８と、ＣＰＵインターフェイス回路７０とを備えている。
【００４２】
到来するメッセージをＭＡＵ３８が検出すると、ＲｘＡ入力にて、キャリア検出信号が通信コントローラ３６へ供給され、ＲｘＳ入力にて、到来する非同期のマンチェスタデータが供給される。ＲｘＡ入力及びＲｘＳ入力は、フロントエンドステートマシン４６へ送出される。ディジタルＰＬＬ４４は、到来するシリアルマンチェスタ符号化データからクロックを正常化してクロックを再生する。そして、この再生されたクロックは、フロントエンドステートマシン４６のタイミングを決定するのに用いられる。
【００４３】
フロントエンドステートマシン４６は、到来するシリアルビットストリームＲｘＳを検出する。フロントエンドステートマシン４６は、プリアンブル、ＳＤ、ＥＤを除去し、ＤＬＰＤＵを受信ＦＩＦＯメモリ５０へ格納する。フロントエンドステートマシン４６は、受信メッセージフィルタリング４８とともに、特定のフレーム制御、加えて、他のデバイス宛のプローブ・ノード（ＰＮ）メッセージ、パス・トークン（ＰＴ）メッセージを除外するように構成され得る。フロントエンドステートマシン４６は、受信ＦＩＦＯメモリ５０へ書き込まれたバイト数のトラックを保持する。ＦＣＳは、各メッセージの終わりに自動的に確認され、任意に受信ＦＩＦＯメモリ５０へ格納され得る。
【００４４】
また、フロントエンドステートマシン４６は、フロントエンドステートマシン４６が検出した特定の事象を表す信号を送出する。この信号としては、ＳＯＭ事象パルス、ＳＯＭｆ事象パルス、ＥＯＭ事象パルス、ＳＯＡ事象パルス、ＥＯＡ事象パルスがある。
【００４５】
フロントエンドステートマシン４６は、ＲｘＡ線が有効になると作動する。そして、フロントエンドステートマシン４６は、プリアンブル領域のエッジに同期し、ＲｘＳ信号のマンチェスタ符号化データを復号する。ＳＯＡ事象は、フロントエンドステートマシン４６が起動したことを示す。
【００４６】
プリアンブルが検出されると、フロントエンドステートマシン４６は、スタート・デリミタ（ＳＤ）列を待つ。ＳＤが検出されると、フロントエンドステートマシン４６は、シ
リアルデータストリームをオクテットに変換し、シリアルデータストリームを８ビットのバイト毎に受信ＦＩＦＯメモリ５０に書き込む。フロントエンドステートマシン４６は、エンド・デリミタ（ＥＤ）が検出されるまで、もしくは受信ＦＩＦＯメモリ５０が満杯になるまで、データの新たなオクテットを受信ＦＩＦＯ５０に書き込み続ける。
【００４７】
ＥＤが検出されると、フロントエンドステートマシン４６は、ＲｘＡ線が無効になるのを待つ。尚、ＲｘＡ線が無効になることは、ＥＯＡ事象によって示される。
ＲｘＡ線が無効になることで、フロントエンドステートマシン４６は初期状態に復帰する。フロントエンドステートマシン４６は、フィールドバス・セグメント１２上の次の活動まで（つまり、再度ＲｘＡにてキャリア検出信号が供給されるまで）初期状態のままでいる。
【００４８】
フィルタリング回路は、基本デバイスにとって重要ではないメッセージに関するＩＲＱ負荷を軽減するために基本デバイスに用いられている。対照的に、ＬＡＳとして構成されたデバイスは、セグメント上の全てのメッセージを受信しなければならないため、フィルタリングを無効にしなければならない。フィルタリングが無効であると、全ての受信メッセージが受信ＦＩＦＯメモリ５０へ格納されるようになり、全ての受信メッセージがレジスタ群６０、そしてＣＰＵ６０へと転送されるようになる。ＳＯＭｆは、フィルタ処理された受信ＤＬＰＤＵのメッセージ開始信号である。ＳＯＭｆは、到来するメッセージがフィルタ処理されることを判定するのに十分な情報を受信メッセージが検出したとフロントエンドステートマシン４６が判定すると発生する。
【００４９】
フィルタリングが有効になると、フィルタ処理されたメッセージは受信ＦＩＦＯメモリ５０に格納されない。フィルタ処理されたメッセージによって、ＳＯＭｆが生成されないようになり、事象やＩＲＱが発生しないようになる。
【００５０】
フィルタ処理されたメッセージの例としては、リターン・トークン（ＲＴ）、アイドル、要求インターバル（ＲＩ）、プローブ応答（ＰＲ）ＤＬＰＤＵメッセージがあり、これらのメッセージは、常に拒否されるようになる。これらは、フレーム制御（ＦＣ）バイトに基づいて特定される。パス・トークン（ＰＴ）メッセージ及びプローブ・ノード（ＰＮ）メッセージは、メッセージの宛先アドレスがデバイスのアドレスと一致した場合に受信されるようになる。宛先アドレスが一致しない場合には、ＰＴメッセージ及びＰＮメッセージは拒否される。
【００５１】
ＦＣバイトに基づいてメッセージの種類に関してフィルタリングできることと、宛先アドレスに基づいてメッセージの種類に関してフィルタリングできることとによって、ＣＰＵ３０が処理しなければならない割込要求（ＩＲＱｓ）の数が制限され、それによってソフトウェア割込の負荷が軽減される。
【００５２】
フロントエンドステートマシン４６及び受信ＦＩＦＯメモリ５０は、ＭＡＵ３８からのシリアルデータフレームを構文解析するのに用いられる。ＣＰＵ３０は、受信ＦＩＦＯメモリ５０からデータを読み込み、読み込んだデータをＣＰＵ３０のローカルメモリ空間に格納して、受信ＤＬＰＤＵを復号する。
【００５３】
受信ＦＩＦＯメモリ５０は、８ビット幅を１バイトとした６３バイトである。受信ＦＩＦＯメモリ５０は、３つまでの完全な受信メッセージ（合計６３バイトまで）の全てのＤＬＰＤＵバイトを格納することになる。フロントエンドステートマシン４６は、フィルタ処理されたＲｘＳ信号からシリアルデータストリームを復号し、復号したシリアルデータストリームを８ビット並列形式のバイトに変換する。バイトの形成ののち、フロントエンドステートマシン４６は、書込ポインタによって指し示された場所へ符号化データを格納
する書込パルスを生成する。書込動作が完了したのち、書込ポインタは、次のＤＬＰＤＵバイトを格納するようにインクリメントされる。
【００５４】
ＣＰＵ３０は、受信ＦＩＦＯメモリ５０に対する読込ポインタと連動する。レジスタ群６０の受信ＦＩＦＯレジスタ（実際のＤＬＰＤＵデータを含んでいる）からのあらゆる読込によって、８ビットデータは、受信ＦＩＦＯメモリ５０からデータバス上に直ちに送出され、ＣＰＵ３０に読み込まれる。読込動作が完了したのち、読込ポインタはインクリメントされる。読込ポインタのインクリメントは、受信ＦＩＦＯメモリ５０が空になるまで継続され得る。
【００５５】
受信ＦＩＦＯメモリ５０にてオーバーフロー状態が発生するのを防止するため、レジスタ群６０には、受信ＦＩＦＯメモリ５０が満杯状態に近づくとＩＲＱの生成を許可するレジスタがある。ＩＲＱ生成の閾値は変更可能である。
【００５６】
送信ステートマシン５２は、送信ＦＩＦＯメモリ５４から送信されるＤＬＰＤＵデータを読み込む。プリアンブル、ＳＤ、ＥＤが自動的に挿入される。送信ステートマシン５２を起動するためには、ＰＤＵ間トリガー、もしくはその代わりに次回定期事象トリガーが有効となって、送信動作を開始する必要がある。送信ステートマシン５２は、送信されたバイト数のトラックを保持する。アンダーフローもしくは送信カウント違反があると、エラー状態が指し示される。ＦＣＳは、ＤＬＰＤＵの最後の２バイトとして任意に自動送信され得る。
【００５７】
送信ステートマシン５２は、ＭＡＵ３８へのＴｘＳ線上のインターフェイス回路７０を介して供給され、フィールドバスセグメント１２上に送出されるマンチェスタシリアルデータを符号化する。また、送信ステートマシン５２は、ＥＤの最後のビットが発生して最初のプリアンブルにおける最初のビットが送信されたときに送信イネーブル（ＴｘＥ）線を有効状態にする。また、送信ステートマシン５２は、ＴｘＥ線を有効状態にするときに、送信開始（ＳＯＴ）事象信号を生成し、ＴｘＥ線が無効に復帰するときに、送信終了（ＥＯＴ）事象信号を生成する。
【００５８】
送信ＦＩＦＯメモリ５４は、送信されるべきメッセージに必要とされる全てのＤＬＰＤＵバイトである合計６３バイトまでを格納することになる。変更可能な閾値は、送信ＦＩＦＯメモリ５４がほぼ空になる時期をＣＰＵ３０に伝えるＩＲＱを送信するように設定され得る。６３バイトよりも多くのバイトが送信される必要がある場合には、ＣＰＵ３０は、送信ＦＩＦＯメモリ５４により多くのデータを追加できるようにすることを通知される。ＣＰＵ３０への通知は、全てのＤＬＰＤＵのバイトが書き込まれるまで継続する。ＣＰＵ３０が書込ポインタを用いて送信ＦＩＦＯ５４に書込を行う一方で、送信ステートマシン５２が読込ポインタを用いて送信ＦＩＦＯメモリ５４からバイトを読み込む。
【００５９】
通信コントローラ３６は、事象発生時に機能し、多数の事象の発生を処理できなければならない。事象の例としては、受信メッセージのＳＯＭ、ＥＯＭ、あるいはＥＯＡ、またあるいは送信メッセージのＥＯＴがある。受信／送信事象マネージャ５８は、３つの受信メッセージと１つの送信メッセージとの合計までで起こる全ての事象を管理する。
【００６０】
図４に示すように、受信／送信事象マネージャ５８は、ｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３と称される３つの受信メッセージオブジェクトと、ｘｍｔｍｓｇと称される１つの送信メッセージオブジェクトとを備えている。さらに、受信／送信事象マネージャ５８は、メッセージキューマネージャ（ＭｓｇＱｍｎｇｒ）８０と、事象マネージャ（ＥｖｅｎｔＭｎｇｒ）８２と、送信マネージャ（ｘｍｔｍｎｇｒ）８４と、事象ＭＵＸ８６とを備えている。
【００６１】
受信ＦＩＦＯメモリ５０は、３つまでの完全な受信メッセージのＤＬＰＤＵバイトを格納することができる。これら３つのメッセージはそれぞれ、対応するオブジェクトｒｃｖｍｓｇ１と、ｒｃｖｍｓｇ２と、ｒｃｖｍｓｇ３とを備えている。各オブジェクトは、全てのＩＲＱの状態と、メッセージエラーと、各オブジェクトに対応する受信メッセージのために発生するタイムスタンプとを含んでいる。この情報は、メッセージの事象データを構成する。
【００６２】
全てのＩＲＱの状態、メッセージエラー、送信メッセージのために発生するタイムスタンプは、ｘｍｔｍｓｇオブジェクトに格納される。格納情報は、送信メッセージの事象データを構成する。
【００６３】
ＭｓｇＱｍｎｇｒ８０は、３つの受信メッセージの選定及び有効化を制御する。一度につき１つの受信メッセージオブジェクトのみが有効になることができる。ＭｓｇＱｍｎｇｒ８０によって、事象は、有効になっている受信メッセージと連動できる。ＣＰＵ３０によって他の３つの受信メッセージが認識される前に４つ目のメッセージが受信された場合には、ＭｓｇＱｍｎｇｒ８０は、事象データが読み込まれるまで、もしくは事象データが認識されるまで、さらなるいずれのメッセージの受信も無効とする。
【００６４】
ＥｖｅｎｔＭｎｇｒ８２は、事象の発生順序を管理する。事象が発生すると、事象マネージャ８２は、各事象に発生順序識別子（ＯＯＯ＿ＩＤ）を割り当てる。発生順序識別子を各事象に割り当てることにより、ＣＰＵ３０は、事象が発生する毎に事象を１つづつ読み込むことができる。ＣＰＵ３０は、各事象の発生時に各事象を認識しなければならない。第１の事象が認識されたのち、第１の事象に続く事象は、ＣＰＵ３０が読み込めるように待機されるようになる。
【００６５】
Ｘｍｔｍｎｇｒ８４は、ＰＤＵ間トリガー（ＩｎｔｅｒＰＤＵ＿ｔｒｉｇ）と次回定期事象トリガーとを監視して、送信トリガーコマンド（Ｘｍｔ＿Ｔｒｉｇ＿Ｃｍｄ）を送信ステートマシン５２に発行し、次のメッセージの送信を開始させる。
【００６６】
通信コントローラ３６は、レジスタ群６０を備えている。ＣＰＵ３０は、ＲＥＧ００〜ＲＥＧ３Ｆと称されたレジスタに書込や読込を行うことができる。また、割込（ＩＲＱｓ）は、レジスタ群６０を介して処理される。
【００６７】
クロック生成回路６２は、外部クロックを受信し、この外部クロックを使用するか、もしくはクロック生成回路６２内部の発振器６４からのクロック信号で通信コントローラ３６に必要な全てのクロック信号を生成する。
【００６８】
クロック生成回路６２は、好ましくは、クロック生成回路６２のノードタイマ及びオクテットタイマの双方のクロックレートを更新する能力を備えている。クロックレートを更新できることによって、通信コントローラ３６は、当該通信コントローラ３６のノード時刻とリンク・アドレス・スケジューラ（ＬＡＳ２０）との関係を同期させることができる。オクテット時刻は、内部メッセージタイミングを図るために用いられる一方、ノード時刻は、フィールドバスセグメント１２全体で共通の時刻の検出値を共有するために用いられる。
【００６９】
タイマ群６８は、異なる時刻の検出値を表す２つのグループに分割される。第１セットのタイマ群は、セグメントタイマ群と称され、ＣＰＵ３０のソフトウェア制御のもとで、クロック生成回路６２によって生成される可変クロックレートに基づいて動作する。第２セットのタイマ群は、メッセージタイマ群と称され、固定レートクロックで動作する。
【００７０】
通信コントローラ３６には、２つのセグメントタイマがある。第１セグメントタイマは、ノードタイマであり、ノードタイマは、３１．２５μ秒（３２ｋＨｚ）のクロックレートを有している。ノードタイマは、次回機能ブロック実行時刻と、リンク予定時刻Ｖ（ＬＳＴ）と、データリンク時刻（ＤＬ−Ｔｉｍｅ）とを提供するために用いられる。
【００７１】
第２セグメントタイマは、オクテットタイマであり、オクテットタイマは、２μ秒（５００ｋＨｚ）のクロックレートを有している。オクテットタイマは、次回定期事象トリガー（次回定期事象トリガーは、特定時刻でメッセージを送信するために送信ステートマシン５２に接続している）に用いられる。クロックレートが調節されると、ノードタイマ及びオクテットタイマは、同じレートで互いに追従するようになる。つまり、ノードタイマとオクテットタイマとを駆動するクロック信号は、共通の可変クロックから得られている。
【００７２】
メッセージタイマ群は、フィールドバスメッセージ事象（送信及び受信）に基づいて、起動及び停止する。メッセージタイマ群は、非活動タイマと、ＰＤＵ間遅延タイマと、受信応答タイマと、送信応答タイマと、デリゲートトークン復帰タイマとを備えている。
【００７３】
非活動タイマは、デクリメントカウンタである。非活動タイマは、２つのＰｈＰＤＵ間のアイドル時間を測定するのに用いられる。非活動タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、フィールドバスセグメント１２上のあらゆる送信メッセージとに作用する。非活動タイマは、起動を命令されると、１６μ秒毎にデクリメントを行うようになる。非活動タイマの起動時点は、レジスタ群６０の１つに予め読み込まれた変更可能な設定時点から決定される。非活動タイマのデクリメントは、受信メッセージもしくは送信メッセージのいずれか一方に関連した事象を介して解除もしくは停止され得る。非活動タイマがいったん０に到達もしくは失効すると、ＩＲＱが生成される。非活動タイマは、ＩＲＱが認識されるまで０のままとなる。ＩＲＱがハイのままであると、発生するさらなるメッセージ事象は、このＩＲＱが認識されるまで非活動タイマに作用しない。
【００７４】
ＰＤＵ間遅延タイマは、インクリメントカウンタである。ＰＤＵ間遅延タイマは、Ｖ（ＭＩＤ）閾値レジスタとともに用いられ、送信メッセージもしくは受信メッセージの間の無送信最小時間（もしくは隙間時間）を保証するフィールドバスＶ（ＭＩＤ）最小ＰＤＵ間遅延を実現する。ＰＤＵ間遅延タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、フィールドバスセグメント上のあらゆる送信メッセージとに作用される。フィールドバス活動がないときには、ＰＤＵ間遅延タイマは、インクリメントを継続する。カウント値がレジスタ群６０の１つに格納された、予め決められた値以上になると、ＰＤＵ間トリガー信号が有効になる。ＰＤＵ間トリガー信号は、ＰＤＵ間遅延時間に達したことを判定するのに用いられる。ＰＤＵ間トリガー信号は、ｘｍｔｍｎｇｒ８４に接続し、ＤＬＰＤＵの送信を開始できるという命令を与える。
【００７５】
受信応答タイマは、デクリメントカウンタである。受信応答タイマは、加入デバイスがコンペル・データ（ＣＤ）ＤＬＰＤＵに対する即時応答を監視できるようにするために用いられる。また、受信応答タイマは、デバイスがオンラインされるときに当該デバイスが当該デバイスのアドレスを監視するのに用いられる。受信応答タイマは、起動を命令されると、１６μ秒毎にデクリメントを行うようになる。受信応答タイマ起動時点は、レジスタ群６０の１つに予め読み込まれた変更可能な１６ビットの設定時点から決定される。受信応答タイマのデクリメントは、ＳＯＭ事象もしくはＳＯＴ事象のいずれか一方を介して解除もしくは停止され得る。受信応答タイマがいったん０に到達もしくは失効すると、ＩＲＱが生成される。受信応答タイマでは、ＩＲＱが生成されるためには、ＩＲＱが有効化
される必要がある。受信応答タイマは、ＩＲＱが確認されるまで０のままとなる。ＩＲＱがハイのままであると、発生するさらなるメッセージ事象は、このＩＲＱが確認されるまで受信応答タイマに作用しない。
【００７６】
送信応答タイマは、デクリメントカウンタである。送信応答タイマによって、デバイスは、種々のＤＬＰＤＵ（つまり、コンペル・データ、パス・トークン）の送信後の即時応答を監視することができる。送信応答タイマは、起動を命令されると、１６μ秒毎にデクリメントを行う。送信応答タイマの起動点は、レジスタ群６０の１つに予め読み込まれた変更可能な設定点から決定される。送信応答タイマのデクリメントは、プローブ・ノード（ＰＮ）のＳＯＭ事象もしくはＳＯＴ事象を除く送信されたあらゆるＤＬＰＤＵのＳＯＭ事象もしくはＳＯＴ事象のいずれか一方を介して、解除もしくは停止され得る。送信応答タイマがいったん０に到達もしくは失効すると、ＩＲＱが生成される。送信応答タイマは、ＩＲＱが認識されるまで０のままとなる。ＩＲＱがハイのままであると、発生するさらなるメッセージ事象は、このＩＲＱが認識されるまで送信応答タイマに作用しない。
【００７７】
デリゲートトークン復帰タイマは、デクリメントカウンタである。デリゲートトークン復帰タイマは、他のデバイスからのデリゲートトークンを受信するアイドル時間を監視するのに用いられる。デリゲートトークン復帰タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、フィールドバスセグメント１２上のあらゆる送信メッセージとに作用する。デリゲートトークン復帰タイマは、起動を命令されると、１６μ秒毎にデクリメントを行うようになる。デリゲートトークン復帰タイマの起動時点は、レジスタ群６０の１つに予め読み込まれた変更可能な設定時点から決定される。デリゲートトークン復帰タイマのデクリメントは、受信メッセージもしくは送信メッセージのいずれか一方に関連する事象を介して解除もしくは停止され得る。デリゲートトークン復帰タイマがいったん０に到達もしくは失効すると、ＩＲＱが生成される。デリゲートトークン復帰タイマは、このＩＲＱが認識されるまで０のままとなる。ＩＲＱがハイのままであると、さらなるメッセージ事象が発生しても、このＩＲＱが認識されるまでデリゲートトークン復帰タイマは作用されない。
【００７８】
＜低遅延のデータパケット処理＞
セグメント１２から情報のパケットを受信しているときに、データパケットを受信ＦＩＦＯメモリ５０に待機させることで、ソフトウェア遅延が発生する。データパケット自体に加え、通信コントローラ３６は、受信状態（例えば、パケットのバイトがネットワークから依然として受信中であるか否かという状態）に関する情報を保持しなければならない。通信コントローラ３６は、多数のデータのパケットを受信ＦＩＦＯ５０に待機させる能力があるため、データパケットを受信状態に関連する情報と関連付けることができることが不可欠である。通信コントロールシステムのハードウェアは、一般的に、例えば、ＣＰＵ３０におけるソフトウェアによって外部から提供される、データパケットを受信状態に関連する情報と関連付けるという必要な動作を模擬するように設計され得る。
【００７９】
図５は、セグメント１２上のＭＡＵ３８によって受信されたデータパケットの処理を管理する受信／送信事象マネージャ５８の機能ブロック図である。受信／送信事象マネージャ５８は、メッセージキューマネージャ（ＭｓｇＱｍｎｇｒ）８０と、事象ＭＵＸ８６と、受信メッセージオブジェクトキュー１００と、マルチプレクサ１０２，１０６，１０８とを含んでいる。受信メッセージオブジェクトキュー１００は、ｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３と称された、３つの受信メッセージオブジェクトのための空間を含んでいる。ＭｓｇＱｍｎｇｒ８０は、ＭＵＸ１０２を介して、受信メッセージオブジェクトｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３に接続されている。マルチプレクサ１０６，１０８は、本発明の範囲外であるものの、受信／送信事象マネージャ５０における各種部品間の接続を図示するために図５に表されている。ＭＵＸ１０６は、レジス
タ群６０におけるレジスタＲｅｇ１５からの入力に基づいて、受信メッセージオブジェクトとＭＵＸ１０８とに出力を供給し、ＭＵＸ１０８の出力は、ＭｓｇＱｍｎｇｒ８０に入力される。また、ＭＵＸ１０６の出力は、ＯＲゲート１１０を介して、ＭｓｇＱｍｎｇｒ８０に入力される。事象マネージャ８２及び送信マネージャ８４は、図４では受信／送信事象マネージャ５８内に表されているものの、説明を明確にするために、図５では省略されている。また、図５に表されているのは、有効なメッセージの受信メッセージオブジェクト及び送信メッセージオブジェクトに関連付けられた事象データを格納するレジスタ群６０の部分（Ｒｅｇ１５〜Ｒｅｇ１Ｆ）である。
【００８０】
受信／送信事象マネージャ５８によって、ＣＰＵ３０は、順に発生した各メッセージの各々に関連付けられた受信メッセージオブジェクト（ｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３）を読み込むことができる。有効なメッセージの受信メッセージオブジェクトは、レジスタ群６０を介して、具体的にはレジスタＲｅｇ１５〜Ｒｅｇ１Ｆにおいて、ＣＰＵ３０が読込可能である。有効なメッセージの送信メッセージオブジェクトは、レジスタＲｅｇ１６，Ｒｅｇ１７，Ｒｅｇ１Ｂにおいて、ＭＡＵ３８が送信可能である。各受信メッセージオブジェクトは、メッセージＩＲＱと、エラーと、状態と、受信ＦＩＦＯメモリ５０に関する情報及びデータとの組み合わせを格納している。
【００８１】
受信ＦＩＦＯメモリ５０に関する情報及びデータは、ソフトウェアによって読込可能な種々の属性を含んでおり、種々の属性は、オブジェクトが対応するメッセージの受信状態に関連している。これらの属性としては、オーバーフローと、アンダーフローと、データ準備完了と、終了位置と、有効フラグとがある。オーバーフロー属性は、設定されると、ネットワークからメッセージを受信中に、受信ＦＩＦＯメモリ５０のオーバーフローが発生したことを示す論理的属性である。アンダーフロー属性は、データの不足によって、受信ＦＩＦＯメモリ５０から読み込む最後の試みが失敗したことを示す論理的属性である。データ準備完了属性は、受信ＦＩＦＯメモリ５０が満杯状態に近づいており、受信ＦＩＦＯメモリ５０のオーバーフローを防止するために受信ＦＩＦＯ５０の読込が必要であることを示す論理的属性である。終了位置属性は、受信ＦＩＦＯメモリ５０からの位置情報を格納する整数属性である。受信メッセージオブジェクトの有効フラグは、有効フラグに対応するメッセージが有効中であるときにＭｓｇＱｍｎｇｒ８０によって設定される。
【００８２】
ＭｓｇＱｍｎｇｒ８０は、３つの受信メッセージの選択及び有効化を制御する。ＭｓｇＱｍｎｇｒ８０は、ＭＵＸ１０２を介して選択されたときの受信メッセージオブジェクトの有効フラグ（ＲｃｖＭｓｇ１＿ｓｅｌ信号、ＲｃｖＭｓｇ２＿ｓｅｌ信号、ＲｃｖＭｓｇ３＿ｓｅｌ信号）を介して制御される。したがって、一度につき１つの受信メッセージオブジェクト（ｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３）のみが有効になり得る。ＭｓｇＱｍｎｇｒ８０によって、事象は、有効な受信メッセージと関連付けられ得る。
【００８３】
作動時に、ＭＡＵ３８は、セグメント１２からメッセージを受信する。メッセージがセグメント１２から受信されると、受信メッセージオブジェクトキュー１００における受信メッセージオブジェクトの有効フラグが設定される。例えば、ＭＡＵ３８がメッセージを受信したときに、受信ＦＩＦＯメモリ５０にデータが一切格納されていない場合には、ＭｓｇＱｍｎｇｒ８０によって、ＲｃｖＭｓｇ１＿ｓｅｌ信号が設定されることで、受信メッセージオブジェクトキュー１００におけるｒｃｖｍｓｇ１が有効になる。
【００８４】
フロントエンドステートマシン４６は、シリアルデータストリームを復号し、シリアルデータストリームを８ビットパラレル形式のバイトに変換する。バイトの形成後、フロントエンドステートマシン４６は、書込ポインタによって指し示された、受信ＦＩＦＯ５０における記憶位置に、符号化されたデータを格納する書込パルスを生成する。メッセージ
ＤＬＰＤＵデータが受信ＦＩＦＯメモリ５０に書き込まれているときに、受信ＦＩＦＯメモリ５０に対する書込ポインタの現在の位置が、有効な受信メッセージオブジェクトの終了位置属性に継続的に転送され、書込ポインタは、各バイトが書き込まれた後に引き続いてインクリメントされる。受信メッセージオブジェクトが受信メッセージオブジェクトキュー１００に加えられた順序と同じ順序でデータが受信ＦＩＦＯメモリ５０に加えられるため、受信ＦＩＦＯメモリ５０と受信メッセージオブジェクトキュー１００との間で一致した順序が維持される。
【００８５】
フロントエンドステートマシン４６から受信ＦＩＦＯメモリ５０へデータを転送している最中に、受信ＦＩＦＯメモリ５０は、当該受信ＦＩＦＯメモリ５０が当該受信ＦＩＦＯメモリ５０の６３バイトの格納限度に近づいているか否かを継続的に監視する。受信ＦＩＦＯメモリ５０における未読バイト数がデータ準備完了属性の閾値と一致、もしくは閾値よりも大きい場合には、有効な受信メッセージオブジェクトによってＩＲＱが生成される。このＩＲＱは、有効な受信メッセージオブジェクトにおけるデータ準備完了属性を設定する。データ準備完了ＩＲＱを生成するための閾値は、変更可能である。データ準備完了属性は、受信ＦＩＦＯメモリ５０からデータが読み込まれた後に引き続いて、ソフトウェアによってクリアされ得る。データが受信ＦＩＦＯメモリ５０から読み込まれる前に受信ＦＩＦＯメモリ５０が満杯になると、受信ＦＩＦＯメモリ５０は、全ての受信メッセージオブジェクトに信号を送信して、オーバーフロー属性を設定する。オーバーフロー属性を設定することで、データキューからデータが読み込まれ、ソフトウェアがオーバーフロー属性をクリアするまで、受信ＦＩＦＯメモリ５０にさらなるデータが書き込まれるのを防止するようになる。有効な受信メッセージオブジェクトのみにオーバーフロー属性が設定されるようになるため、ソフトウェアは、どの受信メッセージオブジェクト（ｒｃｖｍｓｇ１、もしくはｒｃｖｍｓｇ２、もしくはｒｃｖｍｓｇ３）がオーバーフロー状態であったのかを判定することができる。
【００８６】
ＭｓｇＱｍｎｇｒ８０は、３つの受信メッセージの選択及び有効化を制御する。３つのメッセージのうちの少なくとも１つがＣＰＵ３０によって認識される前に４つ目のメッセージが受信されている場合には、ＭｓｇＱｍｎｇｒ８０は、事象データが読込もしくは認識されるまで、ＲｃｖＭｓｇＱＭｕｘ＿ｅｎｂを強制的にロウ（無効）に設定することで、さらなるメッセージが受信されるのを無効にする。ＲｃｖＭｓｇＱＭｕｘ＿ｅｎｂを強制的にロウ（無効）に設定することで、全てのＲｃｖＭｓｇ＿ｓｅｌ信号がロウとなる。４つ目の受信メッセージが到来するのをＭｓｇＱｍｎｇｒ８０に防止させることで、受信メッセージオブジェクトｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３の破損が防止される。
【００８７】
ＣＰＵ３０は、受信メッセージオブジェクトキュー１００に位置する３つの受信メッセージオブジェクト（ｒｃｖｍｓｇ１、ｒｃｖｍｓｇ２、ｒｃｖｍｓｇ３）を通して、受信ＦＩＦＯメモリ５０に対する読込ポインタと連動する。ＣＰＵ３０が、格納されたＤＬＰＤＵデータを受信ＦＩＦＯメモリ５０から読み込む準備が完了すると、ＣＰＵ３０におけるソフトウェアは、レジスタ群３０におけるレジスタＲｅｇ１Ｄを介して、ＧｅｔＤａｔａＢｙｔｅ＿ｉｎコマンドを生成する。レジスタＲｅｇ１Ｄからのあらゆる読込によって、受信ＦＩＦＯメモリ５０からのデータが、ＣＰＵ３０による読込のために直ちにデータバス上に置かれる。ＧｅｔＤａｔａＢｙｔｅ＿ｉｎ信号は、３つの受信メッセージオブジェクトの全てに入力される。一度につき、３つの受信メッセージオブジェクトのうちの１つだけが、ＣＰＵ３０で読込可能（もしくは確認可能）である。ＥｖｅｎｔＭＵＸ＿ｓｅｌ（２：０）信号は、ＭＵＸ１０６を介して読み込まれる、ＣＰＵ３０にとって現在確認可能な受信メッセージオブジェクトを選択する。ＲｃｖＭｓｇ１＿ｖｉｓｉｂｌｅ、ＲｃｖＭｓｇ２＿ｖｉｓｉｂｌｅ、ＲｃｖＭｓｇ３＿ｖｉｓｉｂｌｅといった３つの確認可能信号があり、これら信号はそれぞれ、受信メッセージオブジェクトｒｃｖｍｓｇ１、ｒｃ
ｖｍｓｇ２、ｒｃｖｍｓｇ３に対応している。
【００８８】
例えば、ＲｃｖＭｓｇ１＿ｖｉｓｉｂｌｅが有効な場合には、受信メッセージオブジェクトｒｃｖｍｓｇ１から出力されるＧｅｔＤａｔａＢｙｔｅ１信号が生成されることになる。ＧｅｔＤａｔａＢｙｔｅ１信号によって、受信ＦＩＦＯメモリ５０に対する読込ポインタが、１つの位置分インクリメントされる。ＧｅｔＤａｔａＢｙｔｅ２及びＧｅｔＤａｔａＢｙｔｅ３は、ＧｅｔＤａｔａＢｙｔｅ１と同時にＣＰＵ３０で確認することができないため、無効のままとなる。３つのＧｅｔＤａｔａＢｙｔｅ出力のうちの１つが常に有効になっているため、３つのＧｅｔＤａｔａＢｙｔｅはＯＲゲート１１４を通過して、読込ポインタのインクリメントパルスを生成する。続いて受信メッセージオブジェクトｒｃｖｍｓｇ１からの読込動作が実行されると、読込ポインタは、ｒｃｖｍｓｇ１の終了位置の値と比較される。この比較によって、ＣＰＵ３０は、受信ＦＩＦＯメモリ５０における、ｒｃｖｍｓｇ１に関連付けられた特定のメッセージのバイト数を把握することができる。
【００８９】
読込ポインタの値が終了位置の値と等しいと、確認可能な受信メッセージオブジェクトが取得可能なデータがなく、受信ＦＩＦＯメモリ５０は、確認可能な受信メッセージオブジェクトに関して空であると見なされる。確認可能な受信メッセージオブジェクトが取得可能なデータがないときには、内部的な空フラグが有効となる。空フラグが有効のときに追加の読込コマンドが生成される場合には、確認可能な受信メッセージオブジェクトのアンダーフロー属性が設定されることになる。このアンダーフロー属性は、レジスタ群６０におけるレジスタＲｅｇ１７で読込可能である。空フラグによって、読込ポインタのインクリメントが発生するのを防止し、これによって、適切なポインタ位置と、ＤＬＰＤＵデータの関連付けの完全性とが維持される。受信ＦＩＦＯメモリ５０が最大３つの異なる受信メッセージオブジェクトに関連付けられたＤＬＰＤＵデータを格納しているときに、適切なポインタ位置と、ＤＬＰＤＵデータの関連付けの完全性とが維持されることは、非常に重要である。
【００９０】
ＣＰＵ３０は、レジスタ群６０におけるＲｅｇ１Ｆの読込動作を実行することによって、受信ＦＩＦＯメモリ５０から読み出す、確認可能な受信メッセージオブジェクトのバイト数を判定することが可能である。レジスタＲｅｇ１Ｆから読み出される値は、終了位置と読込ポインタとの間における位置の差である。例えば、受信メッセージオブジェクトｒｃｖｍｓｇ１が確認可能であり、ＣＰＵ３０がレジスタＲｅｇ１Ｆから０８ｈを読み込む場合には、ＣＰＵ３０は、ｒｃｖｍｓｇ１に関連付けられた全てのＤＬＰＤＵデータの読込を完了するのに、（Ｒｅｇ１Ｄを介して）８回の読込動作が必要になるものと考えられる。８回の読込動作によって、確実に、確認可能な受信メッセージオブジェクトに関連付けられた全てのＤＬＰＤＵデータが受信ＦＩＦＯメモリ５０から適切に読み出される。ＣＰＵ３０は、確認可能な受信メッセージオブジェクトに関して、レジスタ群６０のレジスタＲｅｇ１５〜Ｒｅｇ１Ｆを読み込み、続いて、これらレジスタからの情報に基づいて、対応する動作を行う。
【００９１】
確認可能な受信メッセージ情報オブジェクトに関する全ての情報（ＩＲＱ状態、エラー状態、ＤＬＰＤＵデータ、タイムスタンプ値など）がＣＰＵ３０によって処理された後、Ｅｖｅｎｔ＿Ａｃｋ（事象認識）信号が生成され、ＣＰＵ３０が受信メッセージオブジェクトキュー１００における確認可能な受信メッセージオブジェクトに関連付けられたデータの削除を完了したことを合図する。このＥｖｅｎｔ＿Ａｃｋ信号は、レジスタ群６０におけるレジスタＲｅｇ１５への書込動作を実行することによって生成されるものであり、事象マネージャ８２と受信ＦＩＦＯメモリ５０に入力され、ＥｖｅｎｔＭＵＸ＿ｓｅｌ（２：０）信号を更新する。ＥｖｅｎｔＭＵＸ＿ｓｅｌ（２：０）信号の更新によって、受信メッセージオブジェクトキュー１００における次の受信メッセージオブジェクトの認識
可能な信号（つまり、ｒｃｖｍｓｇ２）が有効になり、次の受信メッセージオブジェクトに関する事象データレジスタ群６０が、ＣＰＵ３０にとって認識可能になる。そして、前述の読込順序が、次の受信メッセージオブジェクトのために実行され得る。
【００９２】
要約すれば、ネットワーク上で受信したメッセージをハードウェアで処理する従来のやり方では、受信メッセージを格納するための個別のデータキュー要素と、メッセージに関する情報を格納するための、各個別のデータキュー要素に関連付けられた受信メッセージオブジェクトとが必要になる。さらに、ソフトウェア遅延を考慮して、ハードウェア設計者は、大きなデータキューを設けて、メッセージがネットワークから受信されたときにデータキューのオーバーフローが生じるのを回避しなければならない。大きなデータキューを設けるやり方では、データキュー深さの要求に起因する拡張性の問題を被ることになる。本発明は、通信コントローラであって、単一のデータキューと、受信メッセージオブジェクトのキューとを含んでいる。データキューは、通信媒体上で受信されたメッセージを格納する。受信メッセージは、好ましくは、書込ポインタ位置の受信データメモリに書き込まれ、読込ポインタ位置の受信データメモリから読み込まれる。また、通信コントローラは、受信メッセージオブジェクトを含んでいる。各受信メッセージオブジェクトは、データキューにおける、対応するメッセージに関する情報を格納している。つまり、いかなる余分なデータキューのオーバーヘッドを招くことのない規模となり得るキューの一案を表している。さらに、データキュー格納要求全体に大きな影響を与えることなく、未知のソフトウェア遅延を考慮して、データキュー深さを大きくすることができる。
【００９３】
本発明は、好ましい実施形態を参照しながら説明されているが、当業者は、本発明の精神及び範囲を逸脱することなく、形態の変更及び詳細な変更が可能であることを認識するであろう。
【図１】
2011239469.tif 000003
【図２】
2011239469.tif 000004
【図３】
2011239469.tif 000005
【図４】
2011239469.tif 000006
【図５】
2011239469.tif 000007
【手続補正書】
【提出日】平成23年8月29日(2011.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信媒体上で受信した複数のメッセージを処理する通信コントローラであって、
該通信コントローラは、
前記通信媒体から受信された前記複数のメッセージを格納する受信データメモリであって、前記複数のメッセージの各々が、書込ポインタ位置の前記受信データメモリに書き込まれ、読込ポインタ位置の前記受信データメモリから読み込まれる、受信データメモリと、
該受信データメモリに格納された前記複数のメッセージに関連する情報を格納する複数の受信メッセージオブジェクトのための空間を含む受信メッセージオブジェクトキューであって、前記複数の受信メッセージオブジェクトの各々が前記受信データメモリに格納された前記複数のメッセージの各々に対応している、受信メッセージオブジェクトキューと
を備え、
前記情報は、前記メッセージの事象データと、前記メッセージの受信状態に関連している属性とを含み、
前記複数の受信メッセージオブジェクトの各々が前記受信メッセージオブジェクトキューに加えられた順序と同じ順序で前記複数のメッセージの各々が前記受信データメモリに加えられる
ことを特徴とする通信コントローラ。
【請求項２】
請求項１に記載の通信コントローラであって、
前記情報は、オーバーフローと、アンダーフローと、データ準備完了と、終了位置と、有効フラグとを含む一群から選択可能である
ことを特徴とする通信コントローラ。
【請求項３】
請求項１または請求項２に記載の通信コントローラであって、さらに、
前記受信データメモリにおける前記複数のメッセージのうちの有効なメッセージを、前記複数の受信メッセージオブジェクトのうちの対応する受信メッセージオブジェクトに関連付けるメッセージキューマネージャを備えている
ことを特徴とする通信コントローラ。
【請求項４】
請求項３に記載の通信コントローラであって、
前記有効なメッセージが前記通信媒体から受信されると、前記書込ポインタの値が、前記対応する受信メッセージオブジェクトにおける終了位置の値に継続的に転送される
ことを特徴とする通信コントローラ。
【請求項５】
請求項４に記載の通信コントローラであって、
前記受信データメモリは、前記読込ポインタが前記有効な受信メッセージに対応する前記受信メッセージオブジェクトにおける前記終了位置の値と同一の値を有するときに、前記有効なメッセージに対応する前記受信メッセージオブジェクトにアンダーフロー属性を設定する
ことを特徴とする通信コントローラ。
【請求項６】
請求項２に記載の通信コントローラであって、
前記受信データメモリは、該受信データメモリが容量限度に近づいたときに、全ての受信メッセージオブジェクトにデータ準備完了属性を設定する
ことを特徴とする通信コントローラ。
【請求項７】
請求項１または請求項２に記載の通信コントローラであって、
前記書込ポインタ及び前記読込ポインタは、読込処理中及び書込処理中に記憶位置を変更し、先入れ先出し（ＦＩＦＯ）キューとして前記データキューを実行する
ことを特徴とする通信コントローラ。
【請求項８】
通信媒体上で通信を行うデバイスであって、
該デバイスは、
前記通信媒体上でメッセージの受信及び送信を行う媒体接続装置（ＭＡＵ）と、
受信されたメッセージに格納されたデータの処理と、送信されるメッセージに格納されるデータの生成とを行う中央処理装置（ＣＰＵ）と、
前記ＭＡＵと前記ＣＰＵとを接続する、請求項１乃至請求項７のいずれかに記載の通信コントローラと
を備えていることを特徴とするデバイス。
【請求項９】
プロセス制御ネットワーク上のデバイスによって受信された複数のメッセージを処理する方法であって、
該方法は、
前記プロセス制御ネットワークから前記複数のメッセージを受信することと、
前記複数のメッセージに関連する情報を格納する複数の受信メッセージオブジェクトを受信メッセージオブジェクトキューに格納することと、
データキューを格納する受信データメモリに前記複数のメッセージを書き込むことと
を含み、
前記情報は、前記複数のメッセージの各々の事象データと、前記複数のメッセージの各々の受信状態に関連している属性とを含み、
前記複数の受信メッセージオブジェクトの各々が前記受信メッセージオブジェクトキューに加えられた順序と同じ順序で前記複数のメッセージの各々が前記受信データメモリに加えられる
ことを特徴とする方法。
【請求項１０】
請求項９に記載の方法であって、
前記情報は、オーバーフローと、アンダーフローと、データ準備完了と、終了位置と、有効フラグとを含む一群から選択される
ことを特徴とする方法。
【請求項１１】
請求項９または請求項１０に記載の方法であって、
前記複数のメッセージを書き込むことは、
前記受信メッセージオブジェクトキューにおける第１の取得可能な受信メッセージオブジェクトに有効フラグを設定することと、
前記受信データメモリにおける書込ポインタ位置を判定することと、
前記書込ポインタ位置で始まる前記受信データメモリに前記複数のメッセージの各々を書き込むことと、
前記複数のメッセージの各々が前記受信データメモリに書き込まれるまで前記書込ポインタ位置をインクリメントすることと
を含んでいることを特徴とする方法。
【請求項１２】
請求項１０または請求項１１に記載の方法であって、さらに、
前記受信データメモリがほぼ満杯の場合に、前記受信メッセージオブジェクトにデータ準備完了属性を設定すること
を含んでいることを特徴とする方法。
【請求項１３】
請求項１２に記載の方法であって、さらに、
前記プロセス制御ネットワークから前記複数のメッセージの１つを受信中に、前記受信データメモリが満杯になると、オーバーフロー属性を前記受信メッセージオブジェクトに設定すること
を含んでいることを特徴とする方法。
【請求項１４】
請求項１１に記載の方法であって、さらに、
前記複数のメッセージの各々が前記プロセス制御ネットワークから受信されると、前記書込ポインタの値を前記受信メッセージオブジェクトにおける終了位置属性に転送すること
を含んでいることを特徴とする方法。
【請求項１５】
請求項９に記載の方法であって、さらに、
前記複数の受信メッセージオブジェクトの各々を更新すること
を含んでいることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法であって、
受信メッセージオブジェクトを更新することは、
メッセージ割込要求（ＩＲＱｓ）と、メッセージエラーと、メッセージ状態と、受信データメモリ情報とを含む前記複数の受信メッセージオブジェクトの各々に保持された複数の属性を更新すること
を含んでいることを特徴とする方法。
【請求項１７】
請求項９に記載の方法であって、さらに、
前記複数のメッセージを先入れ先出し（ＦＩＦＯ）の順序で中央処理装置（ＣＰＵ）に供給すること
を含んでいることを特徴とする方法。
【請求項１８】
請求項１７に記載の方法であって、
前記複数のメッセージをＣＰＵに供給することは、
前記受信メッセージオブジェクトキューの前部に受信メッセージオブジェクトの有効フラグを設定することと、
前記受信データメモリにおける読込ポインタ位置を判定することと、
前記読込ポインタ位置で始まる前記メッセージを前記ＣＰＵに転送することと、
前記メッセージが前記ＣＰＵに転送されるまで前記読込ポインタ位置をインクリメントすることと、
前記受信メッセージオブジェクトキューから前記受信メッセージオブジェクトを削除することと
を含んでいることを特徴とする方法。
【請求項１９】
請求項１８に記載の方法であって、さらに、
前記読込ポインタが前記受信メッセージオブジェクトにおける終了位置属性と同一の値を有しているときに、前記受信メッセージオブジェクトにアンダーフロー属性を設定すること
を含んでいることを特徴とする方法。