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