(57)【特許請求の範囲】
【請求項１】
フィールドバス装置（３０）内に設けられ、第１および第２フィールドバスメッセージの少なくとも一部ずつを記憶するための特定用途集積回路であって、
第１送信レートで直列フィールドバスデータを受信するように適合された直列入力インタフェース（３８）と、
第１送信レートよりも速い第２送信レートでフィールドバスデータを提供するように適合されたデータ出力インタフェース（４２）と、
直列入力インタフェースと前記データ出力インタフェースに接続され、複数のフィールドバスデータセグメントを記憶するように適合された受信ＦＩＦＯメモリ（４６）と、
現在の受信ＦＩＦＯメモリ（４６）の読取位置に対応するセグメント位置を示すように適合された第１ポインタ（９０）と、
現在の受信ＦＩＦＯメモリ（４６）の書込位置に対応するセグメント位置を指示するように適合された第２ポインタ（９２）と、
前記第１フィールドバスメッセージのデリミタが確認されたときに、前記第２ポインタが示すセグメント位置に対応するセグメント位置を示す第３ポインタ（９６）と、
受信ＦＩＦＯメモリ（４６）に記憶されたフィールドバスデータセグメントの総数のカウントを維持するように適合されたカウンタ（９４）と、
常時読み出し可能に設けられており、第２フィールドバスメッセージ（Ｍｓｇ２）のデータセグメントが前記受信ＦＩＦＯメモリ（４６）に記憶されているときであっても、受信ＦＩＦＯメモリ（４６）に記憶された第１フィールドバスメッセージ（Ｍｓｇ１）の有効なセグメントカウントを示すように構成されたメッセージセグメントカウンタ（９８）とを備えた特定用途集積回路。
【請求項２】
ＦＩＦＯメモリが空きであるかどうかを指示するように適合された第１フラグと、
ＦＩＦＯメモリが満杯であるかどうかを指示するように適合された第２フラグと、
該特定用途集積回路がフィールドバスメッセージを受信し終わったかどうかを指示するように適合された第３フラグとをさらに備えた請求項１記載の特定用途集積回路。
【請求項３】
第１フィールドバスメッセージの終端セグメントが受信ＦＩＦＯメモリから読み取られたかどうかを指示するように適合された第４フラグをさらに備えた請求項２記載の特定用途集積回路。
【請求項４】
第１フィールドバスメッセージが受信ＦＩＦＯメモリから読み取られる前に、第２フィールドバスメッセージが完全に受信されたかどうかを指示するように適合されたエラーフラグをさらに備えた請求項３記載の特定用途集積回路。
【請求項５】
第１フィールドバスメッセージの終端セグメントが受信ＦＩＦＯメモリから読み取られたかどうか、および第２フィールドバスメッセージが既に受信ＦＩＦＯメモリにあったかどうかを指示するように適合されたステータスフラグをさらに備えた請求項４記載の特定用途集積回路。
【発明の詳細な説明】
【０００１】
発明の背景
プロセス工業では、工業上のプロセスを監視し、制御するのに種々の装置が使用される。この種の装置には、プロセス変数伝送器、プロセスアクチュエータ、プロセス警報装置およびプロセス制御モジュールが含まれている。
【０００２】
プロセス変数伝送器は、工業プロセスに関連したプロセス変数を監視するのに使用される。このようなプロセス変数には圧力、温度、流量、レベル（液面）、ｐＨ、混濁度、密度、濃度、化学組成およびその他の特性が含まれる。プロセスアクチュエータは、弁、ポンプ、ヒータ、アジテータ（かきまぜ機）、ソレノイド、ベント（通気栓）および他のこの種の装置を制御するのに使用される。
【０００３】
プロセス警報装置は、他の装置中のプロセス変数伝送器によって提供された特定プロセス変数を遠隔的に監視し、プロセス変数がプロセス基準から許容できないくらいずれている場合、警報を発生する。プロセス制御モジュールは、プロセス変数伝送器からのプロセスに関連する情報を受信し、受信したプロセス情報の分析を実行し、プロセスアクチュエータを介して補正動作を開始する。一般的に、プロセス制御モジュールは、制御ルームに配置されてユーザ・インターラクション（interaction）を容易にする。
【０００４】
プロセスフィールド環境の揮発特性のために、プロセス装置は爆発性雰囲気および燃焼物質に結合したり、これらに着火するようなスパークを発生してはならない。プロセス装置は、１９９６制定のＮＥＣセクション５００−５０３に規定されたような耐爆性ハウジングを有するか、または本質的安全回路を備えているかのいずれかによって、一般的にはこの設計基準を満足している。プロセス装置が本質的に安全なときは、一般的に、故障条件下においてさえも着火を生じるのに十分なエネルギーを有するスパークは発生できないような低い電力レベルで作動する。
【０００５】
この設計基準は、しばしばフィールド内のプロセス装置に電力を供給するのに、付加的な外部電源が利用できないという事実によってさらに複雑になる。従って、プロセス装置はプロセスループ自体から供給される電力に依存しなければなず、一方では、耐爆性であるか、本質的安全性を有していなければならない。低電力プロセス装置は、プロセス制御ループから供給された電力だけで作動しながら、本質的安全基準に適合することが可能である。
【０００６】
プロセス工業においては、プロセス装置間の高速かつ信頼性のある通信が極めて重要である。過去において、この種の通信には、プロセス制御ループを介して流れる電流量をプロセス変数に基づいて制御するプロセス変数伝送器が含まれていた。電流は制御ルーム内の電流源から供給され、またプロセス変数伝送器はフィールド（設置現場）内のその位置からの電流量を制御していた。例えば、４ミリアンペア信号がゼロの読みを指示し、一方２０ｍＡがフルスケールの読みを指示するのに使用された。技術の進歩に伴って、プロセスとプロセス装置自体に関するより多くの情報を提供するようにという、限りなく増大する需要がある。
【０００７】
ファウンデーション（Foundation：商標名）フィールドバスおよびプロフィバス（Profibus）−ＰＡ（総称して“フィールドバス”と呼ばれる）は、フィールド計器と、プロセス制御システム内の監視ユニットおよびシミュレーションユニットのような他のプロセス装置とを接続することを意図したマルチドロップ直列（multi-drop serial）デジタル通信プロトコルである。フィールドバスプロトコルの物理層は、アメリカ計測学会の規格ＩＳＡ−Ｓ５０．０２−１９９２および１９９５年の拡張草稿２（draft 2 extension）、または１９９３年のＩＥＣ１１５８−２によって規定されている。フィールドバスは前述のプロセス制御ループ法による強化されたデジタル通信を許容し、一方では、フィールドバスループに接続されたプロセス装置への電力供給能力を維持するとともに、さらに本質的安全条件にも適合している。
【０００８】
フィールドバスの導入は、３１，２５０ビット／秒の通信を許容することのできるデジタルプロセスループを最初に提供した。後になって、フィールドバスの改訂が１メガビット／秒および２．５メガビット／秒レートのデジタルシリアル通信を可能にした。それ以外の通信レートもまた計画された。
【０００９】
現在、フィールドバスは、巨大な量のプロセスデータをデジタル的に通信するための相当な能力を提供している。従って、電力消費、コストおよび装置の寸法を最小にしながら、フィールドバスの通信効率を最大にすることが可能なプロセス装置を開発することが引き続き要望されている。
【００１０】
発明の概要
二つのフィールドバスメッセージの少なくとも一部ずつをフィールドバス装置内に記憶することのできる方法および装置が提供される。このフィールドバス装置はメディアアクセスユニット、フィールドバス通信コントローラおよびコントローラを含んでいる。メディアアクセスユニットはフィールドバスループに接続可能で、フィールドバス信号を受信し、また、フィールドバス信号に関するデジタルビットストリームを提供する。フィールドバス通信コントローラは、ビットストリームからの二つのフィールドバスメッセージの少なくとも一部ずつに関するデータセグメントを組立てる（assemble）とともに、前記セグメントを受信ＦＩＦＯ（先入れ先出し）メモリ内に記憶する。コントローラは受信ＦＩＦＯメモリからセグメントを読み取り、フィールドバスメッセージに従って作動するように適合される。
【００１１】
図面の簡単な説明
図１は、本発明の環境を示すフィールドバスプロセス制御システムのブロック図である。図２は、本発明の実施形態によるフィールドバス装置のブロック図である。
図３は、本発明の他の実施形態による他のフィールドバス装置のブロック図である。
図４は、本発明の一実施形態による図２と図３のフィールドバス通信コントローラのブロック図である。
図５Ａ−５Ｃは、図４のフィールドバス通信コントローラのフィールドバス受信ＦＩＦＯメモリの概略図である。
図６は、本発明の一実施形態による受信フィールドバスセグメントを記憶する方法を示すブロック図である。
図７は、フィールドバスメッセージのタイミングを示すタイミング図である。
【００１２】
好ましい実施形態の詳細な説明
本発明は好ましいフィールドバスの実施形態を参照して説明されるが、当該分野の技術者は、添付の請求の範囲によって規定された本発明の概念と範囲から逸脱することなく、形態と詳細において変形、変更がなされ得ることを認識するであろう。
【００１３】
図１はプロセス測定／制御環境を示すフィールドバスプロセス制御システム１０のブロック図である。システム１０はフィールドバスループ１２、ループ端末１４、フィールドバス電源１６およびフィールドバス装置１８、２０、２２、２４、２６および２８を含む。
【００１４】
システム１０は枝状構造（spur implementation）に配線されているが、他の多様な配線様式が可能である。フィールドバス端末１４がフィールドバスループ１２の対向端で終端している。フィールドバス端末１４の各々は、抵抗器およびこれと直列をなすコンデンサとしてモデル化されている。一般的に、コンデンサは約１マイクロファラッドの容量を有し、また抵抗器は約１００オームの抵抗値を有している。フィールドバス電源１６もまたフィールドバスループ１２に接続され、フィールドバスループ１２に接続されたフィールドバス装置１８、２０、２２、２４、２６、２８に電力を供給する。一般的に、フィールドバス装置は、フィールドバスループ１２を介してフィールドバス電源１６によって供給される９ボルトから３５ボルト間の電圧を必要とする。
【００１５】
フィールドバス装置は、前述のように定義されたフィールドバスプロトコルに基づいて通信するための、ハードウエア、ソフトウエア、またはこれら二つの組み合わせを介して適用されるプロセス装置である。しかし、プロセス装置１８、２０、２２、２４、２６および２８はフィールドバス装置の２〜３の例に過ぎない。例えば、フィールドバス装置１８は、制御機能をプロセスに提供するフィールドバスプロセス制御モジュールとして作動するホストデバイスである。フィールドバス装置２０と２２は、例えば、プロセス変数量に関するプロセス情報を提供するプロセス変数伝送器である。
【００１６】
フィールドバス装置２４は、フィールドバスループ１２からフィールドバスメッセージを受信したときに弁を閉じるか、またはある一定の他の作動機能を実行するプロセスアクチュエータである。フィールドバス装置２６は、フィールドバス装置２０と２２からのプロセス変数情報を監視し、フィールドバス装置２０と２２からのプロセス変数情報がプロセス基準から許容できないほどずれているときに、警報を発するプロセス警報器である。フィールドバス装置２８は、故障探知のためにユーザインタフェースに備えられたフィールドバス監視およびシミュレーションユニットのような診断ユニットである。
【００１７】
フィールドバスループ１２は、以上に定義した物理層の仕様に基づいて信号を通過させるのに適した二つまたはそれ以上の導電体を含む、適当なメディア（media）構成をなしている。従って、フィールドバスループ１２は低速フィールドバス、高速フィールドバス、または上述したプロトコルに一致するように構成された他のフィールドバス構造とすることができる。
【００１８】
図２はフィールドバスループ１２に接続されたフィールドバス装置３０のシステムブロック図であり、メディアアクセスユニット３２、フィールドバス通信コントローラ３４およびコントローラ３６を有する。メディアアクセスユニット３２、フィールドバス通信コントローラ３４およびコントローラ３６は別個独立のものとして図示説明されているが、これは明瞭さを強調することを意図したものであり、このような構成要素は単一の特定用途集積回路上に設けられ得るように意図されている。
【００１９】
メディアアクセスユニット３２は、フィールドバスループ１２に接続されてフィールドバスメッセージまたはフレームを表わすアナログ信号を送信および受信するように適合されている。受信動作中、メディアアクセスユニット３２は受信アナログ信号を、連続してコード化されたマンチェスタデータを一般的には含むデジタル信号に変換する。メディアアクセスユニット３２は、第１送信レートでデジタルデータを２方向に提供する直列出力インタフェース３８を含んでいる。例えば、低速フィールドバスは３１，２５０ビット／秒のレートでのデータ送信を提供する。従って、メディアアクセスユニット３２が低速フィールドバスで機能するように適用されている場合、第１送信レートは約３１，２５０ビット／秒になる。
【００２０】
フィールドバス通信コントローラ３４は、特定用途集積回路とすることができ、メディアアクセスユニット３２の直列出力インタフェース３８に接続された直列入力インタフェース４０を含んでいる。フィールドバス通信コントローラ３４は、またメディアアクセスユニット３２によって提供された第１送信レートよりも速い、第２送信レートでデータを提供する、データ出力４２も含んでいる。フィールドバス通信コントローラ３４は、フィールドバスデータを記憶でき、かつ、二つのデータ送信レートの速度マッチングを容易にする、フィールドバス受信ＦＩＦＯメモリ４６をも含む。フィールドバス受信ＦＩＦＯメモリ４６は、受信された順序でデータセグメントを記憶するように適用されたフィールドバス通信コントローラ３４内のメモリ配列である。
【００２１】
コントローラ３６は、フィールドバス通信コントローラ３４のデータ出力インタフェース４２に接続されたデータ入力インタフェース４４を含む。データ入力インタフェースは、データ入力インタフェース４２と並列または直列インタフェースとなるようにして通信するように適合されている。コントローラ３６はマイクロプロセッサまたは直接メモリアクセスコントローラであることができ、そして広い多様な制御機能を提供できる。または、コントローラ３６はフィールドバスループ１２からの単なるログ（log）フィールドバスデータであることもできる。データはフィールドバスプロトコル自体の動作に関連するプロセスデータ、または診断データであることができる。
【００２２】
フィールドバスデータの受信中、メディアアクセスユニット３２は、フィールドバスフォーマットでフィールドバスループ１２からマンチェスタコード化されたデータを受信し、これを論理レベルでマンチェスタコード化デジタルデータに変換する。このデータはポート３８、４０を介してフィールドバス通信コントローラ３４に提供される。フィールドバス通信コントローラ３４はマンチェスタコード化直列ビットストリームを受信し、そのビットをデータセグメントに組立てながら、前記ビットストリームをデコードする。
【００２３】
データセグメントは二つまたはそれ以上のビットのいずれかのグループである。例えば、一つのデータセグメントはニブル、オクテット、バイト、ワードまたは、その他の何かのグループに分けられたものである。データセグメントは受信ＦＩＦＯメモリ４６に記憶され、コントローラ３６によって読み出される。フィールドバスメッセージまたはフレームは、プリアンブル、スタートデリミタ、フィールドバスデータセグメント、フレームチェックシーケンス（ＦＣＳ）セグメントおよびエンドデリミタを含み、それらの各々は一つまたはそれ以上のデータセグメントからなることができる。
【００２４】
記憶されたそれぞれのフィールドバスセグメントはコントローラ３６によって読み取られ、フィールドバスメッセージに対して作用する。任意的に、ＦＣＳセグメントが、データの完全性を目的としてコントローラ３６によって読み取られることができる。
【００２５】
本発明の実施形態の一つの特徴は、フィールドバス通信コントローラ３４の適用を含み、二つのフィールドバスメッセージの少なくとも各一部分が、エラーの発生も、どちらのフィールドバスメッセージのいかなる部分の消失も生ずることなしに、フィールドバス受信ＦＩＦＯメモリ４６内に共存し得るようになることである。
【００２６】
過去においては、コントローラは、第２メッセージからのスタートデリミタがフィールドバスループから受信される前に、フィールドバス受信ＦＩＦＯメモリから所与のフィールドバスメッセージに対応するデータセグメントを完全に読み取ることが必要であった。第１メッセージに対応する全てのデータセグメントがフィールドバス受信ＦＩＦＯメモリから除去されてしまう前に、もしも第２フィールドバスメッセージからのスタートデリミタが受信されたとすると、多数のフィールドバスメッセージの各部分間の境界をトラックする方法がないので、エラーが発生し、両方のフィールドバスメッセージが消失されていた。
【００２７】
この問題の解決を支援するために、予め選択された数のデータセグメントがフィールドバス受信ＦＩＦＯメモリ内に存在するときは、フィールドバス通信コントローラが割込信号をコントローラに提供するように構成されるであろう。フィールドバス通信コントローラからの割込要求が受信されたときは、コントローラが極めて迅速に作動してフィールドバス受信ＦＩＦＯメモリからフィールドバスデータセグメントを読み取るように作動することが重要であり、そうしないと、新しいスタートデリミタの到来（受信）が危うくなり、これに関連するエラーが生じていた。このような結果は、正確な実時間のプロセス情報が事実上必要なプロセス工業においては極めて望ましくないものであった。
【００２８】
図３は、図２に示した実施形態と同様の、本発明の実施形態に基づいて構成されたフィールドバス装置５０のシステムブロック図である。フィールドバス装置５０は、図２に示したフィールドバス装置３０と多くの類似点があり、また同様の要素には同様の参照番号を付している。フィールドバス装置５０はメディアアクセスユニット３２を含んでおり、このユニット３２はフィールドバスループ１２に接続され、直列フィールドバスデータをフィールドバス通信コントローラ３４に提供する。図３に示した実施形態において、フィールドバス通信コントローラ３４は、第２フィールドバスメッセージまたはフレームの一部の開始セグメントのセグメント位置を指示するように適合されたｅｎｄ＿ｐｔｒポインタ５２をむ。
【００２９】
図３に示したように、コントローラ３６はセンサ５６またはアクチュエータ５８に接続されることができ、プロセスを監視または制御する。例えば、センサ５６は圧力センサ、温度センサ、またはいずれか他の適当なセンサとすることができる。アクチュエータ５８は電気的ソレノイド、空気圧弁、またはいずれか他の適当なアクチュエータとすることができる。
【００３０】
フィールドバス装置５０は電源６０も含む。電源６０は、フィールドバスループ１２に接続可能であって、フィールドバスループ１２から電力を受け、メディアアクセスユニット３２、フィールドバス通信コントローラ３４、コントローラ３６、センサ５６およびアクチュエータ５８に接続され、これらの各構成要素に電力を供給する。このようにして、フィールドバス装置５０はフィールドバスループ１２から受けた電力によって完全に給電されるように適合されている。
【００３１】
図４はフィールドバス通信コントローラ３４のシステムブロック図である。フィールドバス通信コントローラ３４は受信状態マシン６２、受信ＦＩＦＯメモリ４６、コントローラレジスタインタフェース／バンク６４、タイマー６６、送信ＦＩＦＯメモリ６８、デュアルＦＩＦＯインタフェース７０、クロックコントロール７２、補助コントローラ・レジスタインタフェース／バンク７４、ジャバタイマー７６、送信状態マシン７８およびループバックモジュール８０を含む。
【００３２】
ライン８２は、図２、３に示したメディアアクセスユニット３２のようなメディアアクセスユニットに接続可能な低速直列インタフェースからなる。受信ラインＲｘＡとＲｘＳは、受信状態マシン６２内のデジタル位相ロックループ（ＰＬＬ）モジュール８４に接続される。位相ロックループモジュール８４は受信状態マシン６２をプリアンブルフィールドと同期させ、ラインＲｘＡが作動したときに、マンチェスタコード化データをデコードする。
【００３３】
一旦プリアンブルが検出されると、受信状態マシン６２がスタートデリミタパターンを待機する。スタートデリミタが極性を転換したことを受信状態マシン６２が検出すると、それはデータの極性を修正する。スタートデリミタがビットストリーム内でのセグメントの境界を決定する。スタートデリミタが受信状態マシン６２によって検出された後、直列ビットストリームが受信状態マシン６２によってデータセグメントに変換され、次にセグメントが受信ＦＩＦＯメモリ４６に書き込まれる。
【００３４】
この受信状態マシン６２は、これがエンドデリミタを検出するまで、新しいデータセグメントを受信ＦＩＦＯメモリ４６へ移送し続ける。一旦、エンドデリミタが検出され、ＦＣＳセグメントが確認されると、受信状態マシン６２がＲｘＡラインが不動作（inactive）になるのを待機する。ＲｘＡラインが不動作になったときに、受信状態マシン６２が初期状態に復帰し、次の作動（active）ＲｘＡ信号を待機する。
【００３５】
受信ＦＩＦＯメモリ４６は受信状態マシン６２からデータセグメントを受取り、コントローラ３６（図２と図３に示した）のようなコントローラがコントローラレジスタインタフェース／バンク６４を介して記憶データセグメントにアクセスすることを許容する。コントローラレジスタインタフェース／バンク６４は、第２送信レートでデータを提供するデータ出力からなる複数のライン８６を含んでいる。第２送信レートは、低速直列インタフェース８２によって提供されるレートよりも速い。ライン８６は、データの送信レートがインタフェース８２のそれよりも速い限り、並列インタフェースまたは直列インタフェースからなることができる。
【００３６】
送信ＦＩＦＯメモリ６８はコントローラレジスタインタフェースバンク６４と送信状態マシン７８とに接続されている。送信ＦＩＦＯメモリ６８と送信状態マシン７８が、フィールドバスループ１２を介してフィールドバス情報を送信するのに使用される。デュアルＦＩＦＯインタフェース７０が、補助コントローラインタフェース／バンク７４だけでなくコントローラレジスタインタフェース／バンク６４にも接続される。デュアルＦＩＦＯインタフェース７０と補助コントローラインタフェース／バンク７４は、センサの直線化のような付加的な機能、またはこれと同様の機能を提供することのできる任意の第２コントローラ（図示省略）とインタフェースするのに使用される。クロックコントロール７２がフィールドバス通信コントローラ３４内に装備され、適当な信号のタイミングを維持する。
【００３７】
図５Ａは、関連するｒｄ＿ａｄｒ（読出しアドレス）ポインタ９０とｗｒｔ＿ａｄｒ（書込みアドレス）ポインタ９２とを有するフィールドバス受信ＦＩＦＯメモリ４６の概念図である。ポインタ９０と９２は、受信ＦＩＦＯメモリ４６内におけるフィールドバスデータセグメントの位置を指示するデータを記憶することができるどのメモリ内にでも設定することができる。例示の目的で、受信ＦＩＦＯメモリ４６は８個のフィールドバスデータセグメント位置を有するように示されている。受信ＦＩＦＯメモリ４６には、３２個のこのようなセグメント位置があるのが好ましいが、任意のどのような数のセグメントも可能である。
【００３８】
ポインタ９０と９２は循環ポインタであり、ポインタが一旦データセグメント位置７を通過してインクリメントされると、このポインタはデータセグメント位置０を指示する。ポインタ９０と９２は、上述の実施形態では３ビットカウンタとすることができるが、８個を超えるセグメント位置が受信ＦＩＦＯメモリ４６によって提供されるならば、ポインタ９０、９２は適当な数のビットを含むことになる。
【００３９】
動作時には、各新しいデータセグメントが受信ＦＩＦＯメモリ４６に記憶されるにつれて、ポインタ９２はインクリメントされる。従って、ポインタ９２は次に利用可能なセグメント位置を指示することになり、そこに受信フィールドバスデータセグメントが記憶されることができる。ポインタ９０は、コントローラ３６（図２と図３に示した）のようなコントローラによって受信ＦＩＦＯメモリ４６から読み取りされる次のフィールドバスデータセグメントの現在位置を指示する。
【００４０】
この種のコントローラは一般的に、ポインタ９０によって指示されたデータセグメントを受信ＦＩＦＯメモリ４６から読み取り；ポインタ９０を次のデータセグメントにインクリメントし；前回の読取り操作の結果として、受信ＦＩＦＯメモリ４６が空きであるかどうかをチェックし；受信ＦＩＦＯメモリ４６が空きになるまで、前述のプロセスを連続的に反復する。このようにして、フィールドバス受信ＦＩＦＯメモリ４６から読み取られた各データセグメントに対して、コントローラは一般的に、各セグメントの読取操作の後にチェック動作を実行し、前回の読取動作の結果として、受信ＦＩＦＯメモリ４６が空きであるかどうかを調べる。
【００４１】
他のタイプのＦＩＦＯメモリ構造も本発明に基づいて使用することができる。例えば、ＦＩＦＯメモリ４６は、データポインタが更新されてＦＩＦＯメモリが有効化（effect）され得るように、リンクされたリストデータ構造を使用して構成されることができる。
【００４２】
図５Ｂは、関連するｒｄ＿ａｄｒポインタ９０、ｗｒｔ＿ａｄｒポインタ９２およびフィールドバス受信ＦＩＦＯカウンタ９４を含むフィールドバス受信ＦＩＦＯメモリ４６の概念図である。カウンタ９４は、受信ＦＩＦＯメモリ４６内に記憶されたフィールドバスデータセグメントの総数のカウントを維持するように適合された４ビット・アップ／ダウンカウンタである。しかし、８個を超えるセグメント位置が受信ＦＩＦＯメモリ４６によって提供される場合は、カウンタ９４は適当な数のビットを含むであろう。カウンタ９４は書込み毎にインクリメントし、また読み取り毎にデクリメントし、このようにして、読み取りと書込みとの両方が同じクロックサイクルで生じた場合には、同じカウントを維持する。
【００４３】
ポインタ９０と９２は図５Ａに関して説明したように機能する。フィールドバスメッセージ（Ｍｓｇｌ）に対応するフィールドバスデータセグメントは、受信ＦＩＦＯの位置１−３に記憶される。従って、フィールドバス受信ＦＩＦＯカウンタ９４は“３”の値を記憶する。受信ＦＩＦＯメモリ４６内に現存するデータセグメントの総数のカウントを提供することにより、コントローラ３６のようなコントローラは、ｒｄ＿ａｄｒポインタ９０によって指示されたセグメントで始まる多数のフィールドバスデータセグメントを反復して「バースト読取り（burst read）」することができる。
【００４４】
図５Ｃは受信ＦＩＦＯメモリ４６、ｒｄ＿ａｄｒポインタ９０、ｗｒｔ＿ａｄｒポインタ９２、カウンタ９４、ｅｎｄ＿ｐｔｒポインタ９６およびメッセージセグメント９８の概念図である。ポインタ９０、９２およびカウンタ９４は、図５Ｂに関して上述したように動作する。Ｅｎｄ＿ｐｔｒポインタ９６は、プレースホルダと考えることができ、第２フィールドバスメッセージの一部の第１データセグメントを指示する。Ｒｃｖ＿ｅｎｄが発生し、かつｑｕｅｕｅ＿ｅｍｐｔｙが“偽”（false：第１フィールドバスメッセージのエンドを指示）のとき、ポインタ９６はｗｒｔ＿ａｄｒポインタ９２にセットされる。
【００４５】
メッセージセグメントカウンタ９８が、コントローラ３６がいつでも読出しできるように設けられており、第２フィールドバスメッセージ（Ｍｓｇ２）のためのデータセグメントも亦フィールドバス受信ＦＩＦＯメモリ４６に記憶されているときでさえも、フィールドバス受信ＦＩＦＯメモリ４６に記憶された第１フィールドバスメッセージ（Ｍｓｇ１）のための有効なセグメントカウントを指示する。メッセージセグメントカウンタ９８を付加することは、コントローラ３６のようなコントローラが、フィールドバスメッセージＭｓｇ１に対応する全てのフィールドバスメッセージセグメントをバースト読み取りすることを可能にさせる。
【００４６】
次のようなデータ構造が、フィールドバス受信ＦＩＦＯメモリ４６内の二つのフィールドバスメッセージの少なくとも一部ずつの記憶を容易にする。このようなデータ構造は、一般的にコントローラレジスタインタフェース／バンク６４（図４に示す）内に記憶される。
【００４７】
Ｑｕｅｕｅ＿ｅｍｐｔｙは、カウンタ９４が０に等しければ、真（true）に設定されるフラグであることができる。フラグは、二つの状態、すなわち、オンまたはオフ状態のみしかとり得ないブールデータ構造である。これらの状態は“真”または“偽”、あるいは１または０と称されることができる。
【００４８】
Ｑｕｅｕｅ＿ｆｕｌｌは、カウンタ９４が受信ＦＩＦＯメモリ４６によって提供されたセグメント位置の総数（すなわち、図５Ａ−５Ｃでは８）に等しいときに、“真”にセットされるフラグであることができる。
【００４９】
Ｒｃｖ＿ｅｎｄ  は、フィールドバスメッセージが受信されてしまったことを指示するパルスであることができる。これはコントローラのための割り込みビットであり、エンドデリミタが確認された後にセットされる。
【００５０】
Ｌａｓｔ＿Ｓｅｇｍｅｎｔ＿Ｒｅａｄは、第１フィールドバスメッセージの最終セグメントがフィールドバス受信ＦＩＦＯメモリ４６からちょうど読み取られ終ったことを指示するパルスである。これは、ｅｎｄ＿ｐｔｒ＿ｖａｌｉｄが“真”、ｑｕｅｕｅ＿ｆｕｌｌが“偽”であり、かつｒｄ＿ａｄｒポインタ９０がｅｎｄ＿ｐｔｒ９６に等しいときにセットされる。
【００５１】
Ｅｎｄ＿ｐｔｒ＿ｖａｌｉｄは、二つのフィールドバスメッセージからのデータが目下フィールドバス受信ＦＩＦＯメモリ４６に記憶されているときを指示する信号である。この信号は、ｅｎｄ＿ｐｔｒの設定（セット）が有効なときを限定するのに使用される。Ｅｎｄ＿ｐｔｒ＿ｖａｌｉｄは、Ｒｃｖ＿ｅｎｄが発生し、かつｑｕｅｕｅ＿ｅｍｐｔｙが“偽”のときに、“真”にセットされる。この信号はリセットの際に、あるいはｌａｓｔ＿ｓｅｇｍｅｎｔ＿ｒｅａｄが発生するか、またはｑｕｅｕｅ＿ｅｍｐｔｙが“真”であるか、またはＭｓｇ＿Ｅｒｒが作動（active）のときに、“偽”にクリアされる。
【００５２】
Ｍｓｇ＿Ｅｒｒは、第１フィールドバスメッセージがフィールドバス受信ＦＩＦＯメモリ４６から完全に空きにされる前に、第２フィールドバスメッセージが完全に受信されてしまったことを指示するエラー割込みフラグであることができる。Ｍｓｇ＿Ｅｒｒは、Ｅｎｄ＿ｐｔｒ＿ｖａｌｉｄがセットされ、Ｒｃｖ＿ｅｎｄが発生されたときにセットされる。
【００５３】
Ｍｓｇ＿Ｅｎｄはコントローラ３６のための状態割込みフラグとなる。このフラグは、第１フィールドバスメッセージの最終ビットが読み取られてしまい、また、第２フィールドバスメッセージの冒頭が既にフィールドバス受信ＦＩＦＯメモリ４６に記憶されていることを指示する。Ｍｓｇ＿Ｅｎｄは、Ｌａｓｔ＿ｓｅｇｍｅｎｔ＿ｒｅａｄが発生し、ｑｕｅｕｅ＿ｅｍｐｔｙが“偽”のときに、“真”にセットされる。
【００５４】
図６は本発明の実施形態による少なくとも二つのフィールドバスメッセージの一部ずつを記憶する方法を実行するステップを示すブロック図である。セグメントは、下記の方法の間のいずれのステップにおいても、受信ＦＩＦＯメモリから読み取りできることに注意しなければならない。
【００５５】
この方法は、変数が予め選択された初期条件に初期化されたときに、ブロック１００で開始される。ＲｘＡラインがハイになったとき、制御（処理）がブロック１０２に移行する。ブロック１０２において、フィールドバス通信コントローラがフィールドバスデータセグメントを受信する。フィールドバスデータセグメントが受信されると、制御がブロック１０４に移行し、ここで受信セグメントが、受信ＦＩＦＯメモリ内のｗｒｔ＿ａｄｒポインタ（ポインタ９２のような）によって指示されたセグメント位置に記憶され；総ＦＩＦＯ受信カウンタ（カウンタ９４のような）がインクリメントされ；セグメントカウンタ（カウンタ９８のような）がインクリメントされ；またｗｒｔ＿ａｄｒポインタがインクリメントされる。
【００５６】
次に、制御がブロック１０６に移行し、受信されたセグメントが、フィールドバスメッセージのための最終セグメントであることを示すエンドデリミタによって追従されているかどうかがチェックされる。もしも受信されたフィールドバスセグメントが最終セグメントでなければ、制御がブロック１０２に戻り、別のセグメントの受信を開始する。ブロック１０６において、受信されたセグメントがフィールドバスメッセージの最終セグメントであることを、フィールドバス通信コントローラが認識すれば、次に制御がブロック１０８に移行し、ここでＲｘＡラインがハイになるのを待機し、その時に制御がブロック１１０に移行する。
【００５７】
ブロック１１０においては、ラベル（Queue Empty?）によって示されたように、受信ＦＩＦＯメモリが空きであるかどうかを、フィールドバス通信コントローラ３４のようなコントローラがチェックして確認する。受信ＦＩＦＯメモリが空きであれば、制御がブロック１０２に戻り、フィールドバスメッセージの第１メッセージとしての蓄積が開始される。これは、他のフィールドバスメッセージの部分が受信ＦＩＦＯメモリ内にまったく存在しないためである。
【００５８】
もしもコントローラ３４が、受信ＦＩＦＯメモリが空きでないことを認識したならば、二つのフィールドバスメッセージの部分間の境界を指示するポインタをセットする必要があるから、制御はブロック１１２に移行する。ブロック１１２において、ポインタ９６のようなＥｎｄ＿ｐｔｒポインタが、ｗｒｔ＿ａｄｒポインタの現在値にセットされる。Ｅｎｄ＿ｐｔｒがセットされた後、制御がブロック１４に移行される。ブロック１１４において、フィールドバスセグメントが受信され、その後制御がブロック１１６に移行する。
【００５９】
ブロック１１６において、受信セグメントが受信ＦＩＦＯメモリに記憶され；ｗｒｔ＿ａｄｒポインタがインクリメントされ；総ＦＩＦＯ受信カウンタがインクリメントされる。次に、制御がブロック１１８に移行し、ブロック１０６と同じ機能が実行されて、受信されたセグメントが第２フィールドバスメッセージのための最終セグメントであるかどうかがチェックされる。受信されたセグメントが最終セグメントでなければ、制御がブロック１１４に戻り、別のセグメントを受信する。
【００６０】
ブロック１１８において、受信されたセグメントが最終セグメントであることを、コントローラ３４が認識すれば、制御がブロック１２０に移行する。ブロック１２０においては、コントローラが、第１フィールドバスメッセージが受信ＦＩＦＯメモリから読み取られた（および、したがって除去された）かどうか確認するようにチェックする。もしも第１フィールドバスメッセージが受信ＦＩＦＯメモリから読み取られてしまっておれば、制御がブロック１０８に戻り、別のスタートデリミタのために待機する。
【００６１】
しかし、もしも第１メッセージが受信ＦＩＦＯメモリから読み取られていなければ、さらに別のフィールドバスメッセージの境界を探索するのに利用可能な追加の資源がまったく存在しないので、“エラー”がセットされる。当該分野の技術者は、上述した方法がコンピュータまたはコンピュータで読取可能な媒体上に記憶されたコンピュータプログラムでプログラムされた他のプロセッサによって実行できることを認識できるであろう。
【００６２】
図７は第１および第２フィールドバスメッセージのタイミング図である。図７に示した時間は、３１，２５０ビット／秒のデータ送信レートを提供する低速フィールドバスに対応している。例示の目的で、各フィールドバスセグメントは、所与のセグメントが２５６マイクロ秒で受信できるような８ビットを含んでいると仮定できる。ＦＣＳの符号を付されたセグメントは、データの完全性を保証するのに使用されるチェックサムに対応する。
【００６３】
ＳＤの符号を付されたセグメントはスタートデリミタを示し、一方ＥＤの符号を付されたセグメントはエンドデリミタを示す。最後に、メッセージ間ギャップ（時間）とプリアンブルのセグメント数はプログラム可能であるが、それぞれの持続時間は、一般的には、２セグメント周期である。従って、既知のフィールドバス通信コントローラと共に動作するコントローラは、５個のデータセグメントの周期、すなわち上述の仮定の下では１．２８ミリ秒以内に、フィールドバス通信コントローラの割り込みに応答しなければならない。さもなければ、フィールドバスメッセージを消失する危険性がある。
【００６４】
これに反して、本発明の実施形態によるフィールドバス通信コントローラと共に動作するコントローラは、データセグメントの最小周期、すなわち、２．３０ミリ秒以内に、フィールドバス通信コントローラの割り込みに応答することを必要とするのみである。これは特に、高い通信量のフィールドバスループのプロセッサのオーバーヘッドを著しく低減することになる。本発明の利点は、フィールドバス通信速度がコントローラの速度よりも高速に増大したときに、より重要になる。
【図面の簡単な説明】
【図１】  本発明の環境を示すフィールドバスプロセス制御システムのブロック図である。
【図２】  本発明の実施形態によるフィールドバス装置のブロック図である。
【図３】  本発明の他の実施形態による他のフィールドバス装置のブロック図である。
【図４】  本発明の一実施形態による図２と図３のフィールドバス通信コントローラのブロック図である。
【図５Ａ】  図４のフィールドバス通信コントローラのフィールドバス受信ＦＩＦＯメモリの概略図である。
【図５Ｂ】  図４のフィールドバス通信コントローラのフィールドバス受信ＦＩＦＯメモリの概略図である。
【図５Ｃ】  図４のフィールドバス通信コントローラのフィールドバス受信ＦＩＦＯメモリの概略図である。
【図６】  本発明の一実施形態による受信フィールドバスセグメントを記憶する方法を示すブロック図である。
【図７】  フィールドバスメッセージのタイミングを示すタイミング図である。
【符号の説明】
１２……フィールドバスループ、３０……フィールドバス装置、３２……メディアアクセスユニット、３４……フィールドバス通信コントローラ、３６……コントローラ、３８……直列出力インタフェース、４０……直列入力インタフェース、４２……データ出力、４４……データ入力インタフェース、４６……フィールドバス受信ＦＩＦＯメモリ
【図１】
0004666770.tif 000002
【図２】
0004666770.tif 000003
【図３】
0004666770.tif 000004
【図４】
0004666770.tif 000005
【図５Ａ】
0004666770.tif 000006
【図５Ｂ】
0004666770.tif 000007
【図５Ｃ】
0004666770.tif 000008
【図６】
0004666770.tif 000009
【図７】
0004666770.tif 000010