JP5009795B2 - 定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ - Google Patents

定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ Download PDF

Info

Publication number
JP5009795B2
JP5009795B2 JP2007523618A JP2007523618A JP5009795B2 JP 5009795 B2 JP5009795 B2 JP 5009795B2 JP 2007523618 A JP2007523618 A JP 2007523618A JP 2007523618 A JP2007523618 A JP 2007523618A JP 5009795 B2 JP5009795 B2 JP 5009795B2
Authority
JP
Japan
Prior art keywords
time
value
timer
message
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007523618A
Other languages
English (en)
Other versions
JP2008508794A (ja
Inventor
ブライアン エー. フランチュック
ロジャー アール. ベンソン
Original Assignee
フィッシャー−ローズマウント システムズ, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フィッシャー−ローズマウント システムズ, インコーポレイテッド filed Critical フィッシャー−ローズマウント システムズ, インコーポレイテッド
Publication of JP2008508794A publication Critical patent/JP2008508794A/ja
Application granted granted Critical
Publication of JP5009795B2 publication Critical patent/JP5009795B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Description

発明の詳細な説明
[発明の背景]
本発明は、プロセス制御システムにおける、現場計器及び他のデバイスに使用する通信コントローラに関する。具体的には、本発明は、通信コントローラにおいて、データパケットの受信及び処理の遅延が小さいシステム及び方法である。
一般的な工業プラントでは、分散制御システム(DCS)が、プラントで実行される多くの工業処理を制御するのに使用されている。一般的に、プラントには、コンピュータシステムを備えた集中制御室があり、コンピュータシステムには、コンピュータ技術において周知のユーザ入力部/出力部(I/O)と、ディスクI/Oと、他の周辺デバイスとが具備されている。コンピュータシステムには、コントローラとプロセスI/Oサブシステムとが連結されている。
プロセスI/Oサブシステムには、I/Oポートが具備されており、このI/Oポートには、プラント全体における種々のフィールドデバイスが接続されている。フィールドデバイスとしては、さまざまな種類の解析装置、シリコン圧力センサ、容量圧力センサ、抵抗温度検出器、熱電対、ひずみゲージ、リミットスイッチ、オン/オフスイッチ、流量送信器、圧力送信器、静電容量レベルスイッチ、計量器、トランスデューサ、バルブ固定装置、バルブコントローラ、アクチュエータ、ソレノイド、表示灯がある。“フィールドデバイス”という用語は、これらデバイスとともに、分散制御システムにおいて機能する他のいかなるデバイスも含む。
以前より、アナログ式フィールドデバイスは、1つの2線ツイストペアによって制御室に接続された各デバイスとともに、2線ツイストペア電流閉ループによって制御室に接続されている。アナログ式フィールドデバイスは、特定範囲内で、電気信号に応答したり、電気信号を送信することができる。通常の形態では、一般的に、ペアになっている2つの導線間におおよそ20−25ボルトの電位差が生じ、閉ループに4−20ミリアンプの電流が流れる。制御室へ信号を送信するアナログ式フィールドデバイスは、検出したプロセス変量に比例した電流を用いて電流閉ループを流れる電流を調節する。他方、制御室の制御に従って動作するアナログ式フィールドデバイスは、閉ループを流れる電流の大きさによって制御される。尚、閉ループを流れる電流の大きさは、プロセスI/OシステムのI/Oポートによって調節される一方、プロセスI/OシステムのI/Oポートは、コントローラによって制御される。また、能動的な電子機器を備えた従来の2線式アナログデバイスは、閉ループから40ミリワットまでの電力の供給を受けることが可能である。より大きな電力を必要とするアナログ式フィールドデバイスは、一般的に、4つの導線を介して制御室に接続され、4つの導線のうちの2つの導線が、デバイスに電力を供給する。このようなデバイスは、当技術分野において4線式デバイスとして知られ、2線式デバイスのような電力の制限がない。
アナログ式フィールドデバイスとは対照的に、従来のディジタル式フィールドデバイスは、2値信号を送信したり、2値信号に対して応答する。一般的に、ディジタル式フィールドデバイスは、24ボルト信号(ACもしくはDC)、または、110もしくは240ボルトAC信号、または、5ボルトDC信号で動作する。当然のことながら、ディジタル式デバイスは、特定の制御環境で必要とされるあらゆる電気仕様に従って動作するように設計されてもよい。ディジタル入力フィールドデバイスは、制御室との接続の確立及び切断のいずれか一方を行う単なるスイッチである一方、ディジタル出力フィールドデバイス
は、制御室から信号があるか否かに従って動作するようになっている。
以前より、従来のフィールドデバイスの多くは、信号入力もしくは信号出力のいずれか一方を行うだけであり、信号入力もしくは信号出力は、フィールドデバイスが実行する主要機能に直接関連していた。例えば、従来のアナログ式抵抗温度センサが実現する唯一の機能は、2線式ツイストペアを介して流れる電流を変化させることで温度を送信することである一方、従来のアナログ式バルブ保定装置が実現する唯一の機能は、2線式ツイストペアを流れる電流の大きさに基づき、バルブを開位置と閉位置との間に位置させることである。
最近では、電流閉ループにディジタルデータを重畳するハイブリッドシステムが分散制御システムに用いられている。制御技術における1つのハイブリッドシステムがハイウェイ・アドレッサブル・リモート・トランスデューサ(HART)として知られており、このハイブリッドシステムは、ベル202モデム仕様に類似している。HARTシステムは、電流閉ループにおける電流の大きさを用いてプロセス変量を検出する(従来のシステムと同様)だけでなく、電流閉ループ信号にディジタルキャリア信号を重畳する。キャリア信号は、比較的遅く、二次プロセス変量を1秒間におおよそ2,3回の頻度で更新できる信号である。一般的に、ディジタルキャリア信号は、二次的な診断情報を送信するのに用いられるものであって、フィールドデバイスの主要制御機能を実現するのに用いられるものではない。キャリア信号に重畳される情報の例としては、二次プロセス変量、(センサ診断と、デバイス診断と、配線診断と、プロセス診断とを含む)診断情報、動作温度、センサの温度、補正情報、デバイスID番号、建設資材、設定もしくはプログラミング情報などがある。したがって、1つのハイブリッド式フィールドデバイスは、種々の入出力変数を持つことができ、種々の機能を実現できる。
HARTは、業界標準の一般的なシステムである。しかしながら、HARTは、速度が比較的遅い。業界における他社は、より速度が速い独自仕様のディジタル送信仕様を開発したものの、これらの仕様は、一般的に、競合他社が使用したり、入手できるものではない。
最近、より新しい制御プロトコルがアメリカ計測学会(ISA)によって策定された。この新しいプロトコルは、一般的に、フィールドバスと呼ばれている。フィールドバスは、マルチドロップ・シリアル・ディジタル双方向通信プロトコルであり、分散制御システムにおける、現場計器と、監視ユニットや模擬ユニットといった他のプロセスデバイスとを接続するためのものである。フィールドバスによって、以前のプロセス制御ループ法におけるディジタル通信を強化しつつ、フィールドバス閉ループに連結されたプロセスデバイスに電力を供給する能力を維持するとともに、固有の安全要求に合致させることもできる。
合理的に標準化された2つの工業用フィールドバスプロトコルとして、ファウンデーション・フィールドバスと、プロフィバスとがある。フィールドバスプロトコルの物理層は、アメリカ計測学会規格であるISA−S50.02−1992と、1995年の2つの拡張案とに定義されている。フィールドバスプロトコルでは、2つのサブプロトコルが定義されている。H1フィールドバスネットワークは、最大31.25(キロビット/秒)(Kbps)の速度でデータを送信するとともに、ネットワークに接続されたフィールドデバイスに電力を供給する。H1物理層サブプロトコルは、1992年の9月に承認されたISA規格の第11節第2部に定義されている。H2フィールドバスネットワークは、最大2.5(メガビット/秒)(Mbps)の速度でデータを送信するものの、ネットワークに接続されたフィールドデバイスに電力を供給せず、余剰の伝送媒体を備えている。
フィールドバスは、膨大な量のプロセスデータをディジタル通信するという有用な能力を発揮する。したがって、フィールドバス通信の効率を最大限にすることが可能なプロセス制御デバイスの開発を継続する必要がある。
[発明の概要]
本発明は、定期的に定期メッセージを送信し、時間的に正確なタイミングで送信する必要がない不定期メッセージを送信する能力をも有し、ネットワーク上のデバイスに用いられる通信コントローラである。この通信コントローラは、現在時刻を提供する内部タイマを保持している。各定期メッセージのために、レジスタには、次回定期事象時刻が読み込まれている。現在時刻と次回定期事象時刻との間で減算が実行され、その結果、タイマが加算される毎に残り時間値が更新される。残り時間が0以下になると、次回定期事象トリガーが生成され、定期メッセージの送信が開始される。
不定期メッセージを送信する必要があるときには、残り時間値がチェックされ、次回定期事象の前にどれだけ時間が残っているのか確認される。残り時間は、不定期メッセージの送信に要する時間の大きさと比較される。次回定期事象の前に送信を完了できるように不定期メッセージが十分短ければ、この不定期メッセージは直ちに送信処理される。他方、不定期メッセージを完全な形で送信できる前に次回定期事象トリガーが発生するような場合には、不定期メッセージの送信は、次回定期事象トリガーの後まで保留される。
[詳細な説明]
<プロセス制御システムの概要>
本発明は、プロセス制御システムにおける現場計器と他のデバイスとに用いられる通信コントローラに関する。通信コントローラの用途は、メッセージとタイマ管理とのリンク層処理の大部分を実行することで、アプリケーションプロセッサもしくはCPUを解放し、アプリケーションプロセッサもしくはCPUが他の機能を実行できるようにすることである。本詳細な説明のために、ファウンデーション・フィールドバス通信プロトコルを用いるシステムを背景にして通信コントローラを説明する。ただし、通信コントローラは、パケットに基づいた通信プロトコルに対して一般的適用性を有している。
フィールドバス物理層は、物理層プロトコルデータユニット(PhPDU)の形式で通信プロトコルデータを送受信する物理手段の電気的特性を定義している。さらに、フィールドバス物理層は、シンボル符号化、メッセージフレーム化、エラー検出方法を定義している。ISAフィールドバス規格は、3つの信号伝送速度と2つの結合モードとを定義している。本説明のため、ISAのS50.02規格第2部における第11節に定義されたH1物理層を背景にして本発明を説明する。この節は、低電力の選択肢を有した、31.25Kbps、電圧モード、導線媒体を対象としている。この選択肢によれば、通信媒体に接続されたデバイスは、通信媒体から動作電力の供給を受けることができる。物理層は、危険な環境のための固有の安全要求に合致させることができる。このプロトコルは、規格によって定義された電圧及び電流の制限に従って、低級ツイストペア線で動作し、多数のデバイスに対応するものである。
図1は、一般的なプロセス制御システム10を示している。このプロセス制御システム10は、セグメント12と、電源14と、5つのデバイスとを備えている。尚、5つのデバイスは、リンク・アクティブ・スケジューラ(LAS)デバイス20、リンク・マスタ(LM)デバイス22、基本デバイス24,26,28である。セグメント12は、1対の導線上で32基のデバイスまで対応することができる。一般的に、セグメント12は、ループ実行速度と、電力と、固有の安全要求とに基づいて、4〜16基のデバイスを有することになる。
LASデバイス20は、セグメント12上のデバイス間でなされる全ての通信の主要スケジュールを維持する。LASデバイス20は、コンペル・データ(CD)と、データ・リンク・プロトコル・データ・ユニット(DLPDUs)とを各デバイスへ送信し、各デバイスが、その後に返信するようにスケジュールされる巡回データを返信することで全体的な通信の信頼性を向上させる。LASデバイス20は、セグメント12上のデータリンク時刻(DL時刻)の局部的な起点として機能する。DLPDUは、セグメント12をわたって通信されるPhPDUメッセージのデータ内容である。
LMデバイス22は、万が一、LASデバイス20が故障した場合、もしくは正常に動作しなくなった場合に、LASデバイス20の役割を引き継ぐように構成されている。図1には、LMデバイス22しか図示されていないが、複数のリンク・マスタ・デバイスをセグメント上に設けることができる。複数のリンク・マスタ・デバイスを設けることによって、リンク・アクティブ・スケジューラと第1のリンク・マスタとの双方が故障しても、第2のリンク・マスタがリンク・アクティブ・スケジューラを引き継ぐことができる。リンク・アクティブ・スケジューラがいったん機能しなくなると、リンク・マスタがリンク・アクティブ・スケジューラの機能を引き継ぐ。
各デバイスは、V(TN)と称する固有のアドレスを有している。尚、V(TN)は、ローカルノードID(This_Node)を表す。図1に示す例では、LASデバイス20は、V(TN)=20というアドレス;LMデバイス22は、V(TN)=22というアドレス;基本デバイス24は、V(TN)=A5というアドレス;基本デバイス26は、V(TN)=F3というアドレス;基本デバイス28は、V(TN)=F5というアドレスを有している。
LASデバイス20は、セグメント12上の全てのデバイスにパス・トークン(PT)メッセージとプローブ・ノード(PN)メッセージとを送信する。他のデバイス(LASデバイス22及び基本デバイス24,26,28)はそれぞれ、リターン・トークン(RT)メッセージとプローブ・レスポンス(PR)メッセージとをLASデバイス20に適宜返信する。
基本デバイス24,26,28はそれぞれ、LASデバイス20によって送信された各々に対するPTメッセージとPNメッセージとを確認する必要があるだけである。PTメッセージ及びPNメッセージは、符号化された宛先アドレス(DA)をDLPDUの第2バイトに有している。LASデバイス20は、セグメント12上の全てのデバイスに対して、トークン(PT)の転送、もしくはノード(PN)の調査を1つづつ行う。
基本デバイス24,26,28は、各々の固有アドレス(DA=V(TN))と一致する宛先アドレスを有するPTメッセージを受信すると、LASデバイス20に対してRTメッセージで応答する。基本デバイス24,26,28は、DA=V(TN)を有するPN DLPDUを受信すると、PRメッセージで応答することを要求される。
LASデバイス20からのPTメッセージ、PNメッセージ、及びLASデバイス20へのRTメッセージ、PRメッセージの送信によって、特定の基本デバイス24,26,28が受信や応答する必要がない種々のメッセージがセグメント12上に生成される。基本デバイス24,26,28はそれぞれ、その特定のデバイス宛のPTメッセージ及びPNメッセージに応答する必要があるだけである。LASデバイス20からの他のデバイス宛のPTメッセージ及びPNメッセージ、さらに、他のデバイスからのLASデバイス20宛のRTメッセージ及びPRメッセージに頻繁に割り込まれることにより、これら“妨害割込”を処理する過度の処理時間が生じ得る。基本デバイス24,26,28のために、DLPDUフィルタリングを用いて、基本デバイスが処理しなければならない割込の数
を低減できる。他方、LASデバイス20は、セグメント12上の各メッセージを処理しなければならない。
セグメント12上の全てのデバイスは、データをマンチェスタ符号化ベースバンド信号としてセグメント12上に送信する。マンチェスタ符号化によって、“0”及び“1”は、ビット周期内で起こるロウからハイへの変化と、ハイからロウへの変化とでそれぞれ表される。フィールドバスでは、公称ビット時間は32マイクロ秒(μ秒)であり、16μ秒で変化を生じる。マンチェスタ符号化法は、拡張され、非データプラス(N+)、非データマイナス(N−)といった2つの追加シンボルを含んでいる。但し、ビット周期中に変化は起こらず、マンチェスタ符号化ベースバンド信号は、ハイ(N+)もしくはロウ(N−)のままとなる。
<メッセージフォーマット>
図2に、メッセージをセグメント12上に送信するのに用いられる物理層プロトコルデータユニット(PhPDU)のフォーマットを示す。PhPDUは、プリアンブルと、スタート・デリミタ(SD)と、データリンク・プロトコル・データ・ユニット(DLPDU)と、エンド・デリミタ(ED)とを含んでいる。プリアンブルは、PhPDUメッセージの最初の数ビットである。フィールドバス仕様では、1〜8バイトのプリアンブルが許容されている。メッセージを受信するデバイスは、プリアンブルを用いて、到来するメッセージと同期する。図2に示すように、プリアンブルにおける最初のバイト列は、1 0 1 0 1 0 1 0となっている。
スタート・デリミタ(SD)は、プリアンブルの直後に続く。1つのメッセージにつき1つのSDがある。フィールドバス仕様では、SDは、非文字データ(N+及びN−)を有している必要がある。この非文字データは、常に、相互補完関係にある一対としてSDメッセージに現れる。この符号化方法によって、SDは独特のものとなり、SDとメッセージのデータ部分(DLPDU)との混同が生じることがない。図2に示すSDの列は、1 N+ N− 1 0 N− N+ 0となっている。
DLPDUは、可変長メッセージである。DLPDUは、その最初のバイトとしてフレーム制御(FC)バイトを含み、その最後の2バイトとしてフレーム・チェック・シーケンス(FCS)チェックサムを含んでいる。DLPDUの長さは、可変であり、最小3バイト(RTメッセージの場合)から例えばおおよそ300バイトのジャバリミットまでである。
エンド・デリミタ(ED)は、DLPDUに続く。EDは、セグメント12上へ送信されたあらゆるPhPDUメッセージの最後のバイトを表している。SDと同様に、EDは、相互補完関係にある一対の非文字データを含んでいる。この符号化方法によって、EDは独特のものとなり、EDとDLPDUとの混同が生じることがない。図2に示すエンド・デリミタの列は、1 N+ N− N+ N− 1 0 1となっている。
また、図2は、キャリア検出信号を示している。キャリア検出信号の用途は、(a)到来するPhPDUメッセージがセグメント12上へ送出される時期、もしくは(b)デバイスがセグメント12上にメッセージを送信している時期を示すことである。
送信開始(SOT)は、送信イネーブル(TxE)がアクティブになったとき、つまり、PhPDUメッセージのプリアンブルがセグメント12へ最初に送出されたときに発生する。
活動開始(SOA)は、キャリア検出信号がアクティブになり、キャリア検出信号が少
なくとも1ビット時間、もしくは2ビット時間(おおよそ16〜32μ秒)の間、安定したのちに発生する。この時間は、メッセージを受信するデバイスの内部クロックに対して、いつキャリア検出がアクティブになるかに依存する。キャリア検出信号が安定したのちに活動開始(SOA)が発生することによって、デバイスの通信コントローラは、プリアンブルの前半で起こる可能性が非常に高いノイズ異常を無視できる。追加時間は、ビット境界との同期に用いられ、それによりセグメント12上の短いノイズバーストが活動として誤解釈される可能性が排除される。送信メッセージの場合、送信イネーブルがいったんアクティブになると(つまり、PhPDUのプリアンブルがセグメント12へ送出されると)、SOAが発生する。
メッセージ開始(SOM)は、受信メッセージのFCバイトが検出されたときの最初のビットの始まりで発生する。
SOM_xmtは、メッセージ送信開始であり、送信メッセージのFCバイトが検出されたときの最初のビットの始まりで発生する。
SOMfは、フィルタ処理された受信DLPDUのSOMである。SOMfは、デバイス内の通信コントローラが、到来するメッセージをフィルタ処理するか判定するのに十分な情報を検出すると発生する。
メッセージ終了(EOM)は、EDにおける最後のビットの終わりが受信メッセージに現れると発生する。送信終了(EOT)は、送信メッセージにおけるEDの最後のビットの終わりで発生する。
活動終了(EOA)は、キャリア検出信号が非アクティブになったときに発生する。EOAは、送信DLPDU及び受信DLPDUの双方で発生する。
<デバイス・アーキテクチャ>
図3は、基本デバイス24における通信部のブロック図を示している。尚、基本デバイス24における通信部は、デバイス20−28の各々のアーキテクチャを代表するものである。基本デバイス24は、中央処理装置(CPU)30と、ランダム・アクセス・メモリ(RAM)32と、フラッシュ・メモリ34と、通信コントローラ36と、媒体接続装置(MAU)38とを備えている。
図3に示す本実施形態では、CPU30は、モトローラ社製68LC302、モトローラ社製Mcore2075、モトローラ社製PowerPC850、アトメル社製ThumbプロセッサAT91M40800などといったマイクロプロセッサである。CPU30は、8ビット以上のプロセッサである。
図3に示す本実施形態では、通信コントローラ36は、特定用途向け集積回路(ASIC)素子であり、MAU38とCPU30との間のインターフェイスとして機能する。通信コントローラ36は、セグメント12に接続された外部のアナログ回路との間で符号化されたマンチェスタデータの送受信を行う。通信コントローラ36は、MAU38からシリアルデータを受信したのち、受信したデータを符号化し、符号化したデータをバイトに変換して、プリアンブル、SD、ED(そして、任意にFCSバイト)を除去し、リンク層が読み取るメッセージデータを供給する。データ送信に向け、通信コントローラ36は、リンク層からDLPDUデータのバイトを受信して、プリアンブルとSDとを付加し、任意にFCSの生成を行い、EDを付加する。通信コントローラ36は、続いてシリアルに符号化されたマンチェスタデータを形成し、マンチェスタデータは、セグメント12上への送信のためにMAU38へ送信される。
通信コントローラ36とMAU38との間の通信は、RxS、RxA、TxS、TxEといった4つの信号を介して確立される。尚、RxSは、受信されたマンチェスタ符号化シリアルデータである。RxAは、受信データのキャリア検出信号である。TxSは、送信された符号化シリアルデータである。TxEは、送信イネーブル信号である。
本発明の他の実施形態では、通信コントローラ36は、CPU30と同一の集積回路上に形成され得る。さらに、RAM32及びフラッシュ・メモリ34は、いくつかの実施形態において、CPU30と一体化されてもよい。LASデバイス20の場合、CPU30、RAM32、フラッシュ・メモリ34は、プロセス制御システム10のホストコンピュータシステムの一部であってもよい。
MAU38は、セグメント12とのネットワーク接続を確立する。MAU38は、集積回路であってもよいし、個別の素子を用いてMAU38を形成することもできる。
<通信コントローラ36>
図4は、通信コントローラ36の機能ブロック図である。本実施形態では、通信コントローラ36は、デバウンス回路42と、ディジタル位相同期回路(PLL)44と、フロントエンドステートマシン46と、受信メッセージフィルタリング48と、受信ファースト・イン・ファースト・アウト(FIFO)メモリ50と、送信ステートマシン52と、送信FIFOメモリ54と、受信/送信事象マネージャ58と、レジスタ群60と、クロック生成回路62と、発振器64と、タイマ群68と、CPUインターフェイス回路70とを備えている。
到来するメッセージをMAU38が検出すると、RxA入力にて、キャリア検出信号が通信コントローラ36へ供給され、RxS入力にて、到来する非同期のマンチェスタデータが供給される。RxA入力及びRxS入力は、フロントエンドステートマシン46へ送出される。ディジタルPLL44は、到来するシリアルマンチェスタ符号化データからクロックを正常化してクロックを再生する。そして、この再生されたクロックは、フロントエンドステートマシン46のタイミングを決定するのに用いられる。
フロントエンドステートマシン46は、到来するシリアルビットストリームRxSを検出する。フロントエンドステートマシン46は、プリアンブル、SD、EDを除去し、DLPDUを受信FIFOメモリ50へ格納する。フロントエンドステートマシン46は、受信メッセージフィルタリング48とともに、特定のフレーム制御、加えて、他のデバイス宛のプローブ・ノード(PN)メッセージ、パス・トークン(PT)メッセージを除外するように構成され得る。フロントエンドステートマシン46は、受信FIFOメモリ50へ書き込まれたバイト数のトラックを保持する。FCSは、各メッセージの終わりに自動的に確認され、任意に受信FIFOメモリ50へ格納され得る。
また、フロントエンドステートマシン46は、フロントエンドステートマシン46が検出した特定の事象を表す信号を送出する。この信号としては、SOM事象パルス、SOMf事象パルス、EOM事象パルス、SOA事象パルス、EOA事象パルスがある。
フロントエンドステートマシン46は、RxA線がアクティブになると作動する。そして、フロントエンドステートマシン46は、プリアンブル領域のエッジに同期し、RxS信号のマンチェスタ符号化データを復号する。SOA事象は、フロントエンドステートマシン46が起動したことを示す。
プリアンブルが検出されると、フロントエンドステートマシン46は、スタート・デリ
ミタ(SD)列を待つ。SDが検出されると、フロントエンドステートマシン46は、シリアルデータストリームをオクテットに変換し、シリアルデータストリームを8ビットのバイト毎に受信FIFOメモリ50に書き込む。フロントエンドステートマシン46は、エンド・デリミタ(ED)が検出されるまで、もしくは受信FIFOメモリ50が満杯になるまで、データの新たなオクテットを受信FIFO50に書き込み続ける。
EDが検出されると、フロントエンドステートマシン46は、RxA線が非アクティブになるのを待つ。尚、RxA線が非アクティブになることは、EOA事象によって示される。
RxA線が非アクティブになることで、フロントエンドステートマシン46は初期状態に復帰する。フロントエンドステートマシン46は、フィールドバス・セグメント12上の次の活動まで(つまり、再度RxAにてキャリア検出信号が供給されるまで)初期状態のままでいる。
フィルタリング回路は、基本デバイスにとって重要ではないメッセージに関するIRQ負荷を軽減するために基本デバイスで用いられている。対照的に、LASとして構成されたデバイスは、セグメント上の全てのメッセージを受信しなければならないため、フィルタリングを無効にしなければならない。フィルタリングが無効であると、全ての受信メッセージが受信FIFOメモリ50へ格納されるようになり、全ての受信メッセージがレジスタ群60、そしてCPU60へと転送されるようになる。SOMfは、フィルタ処理された受信DLPDUのメッセージ開始信号である。SOMfは、到来するメッセージがフィルタ処理されることを判定するのに十分な情報を受信メッセージが検出したとフロントエンドステートマシン46が判定すると発生する。
フィルタリングが有効になると、フィルタ処理されたメッセージは受信FIFOメモリ50に格納されない。フィルタ処理されたメッセージによって、SOMfが生成されないようになり、事象やIRQが発生しないようになる。
フィルタ処理されたメッセージの例としては、リターン・トークン(RT)、アイドル、要求インターバル(RI)、プローブ応答(PR)DLPDUメッセージがある。これらは、フレーム制御(FC)バイトに基づいて特定され、フィルタリングが有効な状態では、常に拒否されるようになる。パス・トークン(PT)メッセージ及びプローブ・ノード(PN)メッセージは、メッセージの宛先アドレスがデバイスのアドレスと一致した場合に受信されるようになる。宛先アドレスが一致しない場合には、PTメッセージ及びPNメッセージは拒否される。
FCバイトに基づいてメッセージの種類に関してフィルタリングできることと、宛先アドレスに基づいてメッセージの種類に関してフィルタリングできることとによって、CPU30が処理しなければならない割込要求(IRQs)の数が制限され、それによってソフトウェア割込の負荷が軽減される。
フロントエンドステートマシン46及び受信FIFOメモリ50は、MAU38からのシリアルデータフレームを構文解析するのに用いられる。CPU30は、受信FIFOメモリ50からデータを読み込み、読み込んだデータをCPU30のローカルメモリ空間に格納して、受信DLPDUを復号する。
受信FIFOメモリ50は、8ビット幅を1バイトとした63バイトである。受信FIFOメモリ50は、3つまでの完全な受信メッセージ(合計63バイトまで)の全てのDLPDUバイトを格納することになる。フロントエンドステートマシン46は、フィルタ
処理されたRxS信号からシリアルデータストリームを復号し、復号したシリアルデータストリームを8ビット並列形式のバイトに変換する。バイトの形成ののち、フロントエンドステートマシン46は、書込ポインタによって指し示された場所へ符号化データを格納する書込パルスを生成する。書込動作が完了したのち、書込ポインタは、次のDLPDUバイトを格納するようにインクリメントされる。
CPU30は、受信FIFOメモリ50に対する読込ポインタと連動する。レジスタ群60の受信FIFOレジスタ(実際のDLPDUデータを含んでいる)からのあらゆる読込によって、8ビットデータは、受信FIFOメモリ50からデータバス上に直ちに送出され、CPU30に読み込まれる。読込動作が完了したのち、読込ポインタはインクリメントされる。読込ポインタのインクリメントは、受信FIFOメモリ50が空になるまで継続され得る。
受信FIFOメモリ50にてオーバーフロー状態が発生するのを防止するため、レジスタ群60には、受信FIFOメモリ50が満杯状態に近づくとIRQの生成を許可するレジスタがある。IRQ生成の閾値は変更可能である。
送信ステートマシン52は、送信FIFOメモリ54から送信されるDLPDUデータを読み込む。プリアンブル、SD、EDが自動的に挿入される。送信ステートマシン52を起動するためには、PDU間トリガー、もしくはその代わりに次回定期事象トリガーがアクティブとなって、送信動作を開始する必要がある。送信ステートマシン52は、送信されたバイト数のトラックを保持する。アンダーフローもしくは送信カウント違反があると、エラー状態が指し示される。FCSは、DLPDUの最後の2バイトとして任意に自動送信され得る。
送信ステートマシン52は、MAU38へのTxS線上のインターフェイス回路70を介して供給され、セグメント12上に送出されるマンチェスタシリアルデータを符号化する。また、送信ステートマシン52は、EDの最後のビットが発生して最初のプリアンブルにおける最初のビットが送信されたときに送信イネーブル(TxE)線をアクティブ状態にする。また、送信ステートマシン52は、TxE線をアクティブ状態にするときに、送信開始(SOT)事象信号を生成し、TxE線が非アクティブに復帰するときに、送信終了(EOT)事象信号を生成する。
送信FIFOメモリ54は、送信されるべきメッセージに必要とされる全てのDLPDUバイトである合計63バイトまでを格納する。変更可能な閾値は、送信FIFOメモリ54がほぼ空になる時期をCPU30に伝えるIRQを送信するように設定され得る。63バイトよりも多くのバイトが送信される必要がある場合には、CPU30は、送信FIFOメモリ54により多くのデータを追加できるようにすることを通知される。CPU30への通知は、全てのDLPDUのバイトが書き込まれるまで継続する。CPU30が書込ポインタを用いて送信FIFO54に書込を行う一方で、送信ステートマシン52が読込ポインタを用いて送信FIFOメモリ54からバイトを読み込む。
通信コントローラ36は、事象発生時に機能し、多数の事象の発生を処理できなければならない。事象の例としては、受信メッセージのSOM、EOM、あるいはEOA、またあるいは送信メッセージのEOTがある。受信/送信事象マネージャ58は、3つの受信メッセージと1つの送信メッセージとの合計までで起こる全ての事象を管理する。
図4に示すように、受信/送信事象マネージャ58は、rcvmsg1、rcvmsg2、rcvmsg3と称される3つの受信メッセージオブジェクトと、xmtmsgと称される1つの送信メッセージオブジェクトとを備えている。さらに、受信/送信事象マネ
ージャ58は、メッセージキューマネージャ(MsgQmngr)80と、事象マネージャ(EventMngr)82と、送信マネージャ(xmtmngr)84と、事象MUX86とを備えている。
受信FIFOメモリ50は、3つまでの完全な受信メッセージのDLPDUバイトを格納することができる。これら3つのメッセージはそれぞれ、対応するオブジェクトrcvmsg1と、rcvmsg2と、rcvmsg3とを備えている。各オブジェクトは、全てのIRQの状態と、メッセージエラーと、各オブジェクトに対応する受信メッセージのために発生するタイムスタンプとを含んでいる。この情報は、メッセージの事象データを構成する。
全てのIRQの状態、メッセージエラー、送信メッセージのために発生するタイムスタンプは、xmtmsgオブジェクトに格納される。格納情報は、送信メッセージの事象データを構成する。
MsgQmngr80は、3つの受信メッセージオブジェクトの選定及び有効化を制御する。1度につき1つの受信メッセージオブジェクトのみがアクティブになることができる。MsgQmngr80によって、事象は、アクティブになっている受信メッセージオブジェクトと連動できる。CPU30によって他の3つの受信メッセージが認識される前に4つ目のメッセージが受信された場合には、MsgQmngr80は、事象データが読み込まれるまで、もしくは事象データが認識されるまで、さらなるいずれのメッセージの受信も無効とする。
EventMngr82は、事象の発生順序を管理する。事象が発生すると、事象マネージャ82は、各事象に発生順序識別子(OOO_ID)を割り当てる。発生順序識別子を各事象に割り当てることにより、CPU30は、事象が発生する毎に事象を1つづつ読み込むことができる。CPU30は、各事象の発生時に各事象を認識しなければならない。第1の事象が認識されたのち、第1の事象に続く事象は、CPU30が読み込めるように待機されるようになる。
Xmtmngr84は、PDU間トリガー(InterPDU_trig)と次回定期事象トリガーとを監視して、送信トリガーコマンド(Xmt_Trig_Cmd)を送信ステートマシン52に発行し、次のメッセージの送信を開始させる。
通信コントローラ36は、レジスタ群60を備えている。CPU30は、Reg00〜Reg3Fと称されたレジスタに書込や読込を行うことができる。また、割込(IRQs)は、レジスタ群60を介して処理される。
クロック生成回路62は、外部クロックを受信し、この外部クロックを使用するか、もしくはクロック生成回路62内部の発振器64からのクロック信号で通信コントローラ36に必要な全てのクロック信号を生成する。
クロック生成回路62は、好ましくは、クロック生成回路62のノードタイマ及びオクテットタイマの双方のクロックレートを更新する能力を備えている。クロックレートを更新できることによって、通信コントローラ36は、当該通信コントローラ36のノード時刻とリンク・アドレス・スケジューラ(LAS20)との関係を同期させることができる。オクテット時刻は、内部メッセージタイミングを図るために用いられる一方、ノード時刻は、セグメント12全体で共通の時刻の検出値を共有するために用いられる。
タイマ群68は、異なる時刻の検出値を表す2つのグループに分割される。第1セット
のタイマ群は、セグメントタイマ群と称され、CPU30のソフトウェア制御のもとで、クロック生成回路62によって生成される可変クロックレートに基づいて動作する。第2セットのタイマ群は、メッセージタイマ群と称され、固定レートクロックで動作する。
通信コントローラ36には、2つのセグメントタイマがある。第1セグメントタイマは、ノードタイマであり、ノードタイマは、31.25μ秒(32kHz)のクロックレートを有している。ノードタイマは、次回機能ブロック実行時刻と、リンク予定時刻V(LST)と、データリンク時刻(DL−Time)とを提供するために用いられる。
第2セグメントタイマは、オクテットタイマであり、オクテットタイマは、2μ秒(500kHz)のクロックレートを有している。オクテットタイマは、次回定期事象トリガー(次回定期事象トリガーは、特定時刻でメッセージを送信するために送信ステートマシン52に接続している)に用いられる。クロックレートが調節されると、ノードタイマ及びオクテットタイマは、同じレートで互いに追従するようになる。つまり、ノードタイマとオクテットタイマとを駆動するクロック信号は、共通の可変クロックから得られている。
メッセージタイマ群は、フィールドバスメッセージ事象(送信及び受信)に基づいて、起動及び停止する。メッセージタイマ群は、非活動タイマと、PDU間遅延タイマと、受信応答タイマと、送信応答タイマと、デリゲートトークン復帰タイマとを備えている。
非活動タイマは、減算カウンタである。非活動タイマは、2つのPhPDU間のアイドル時間を測定するのに用いられる。非活動タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、セグメント12上のあらゆる送信メッセージとに作用する。非活動タイマは、起動を命令されると、16μ秒毎に減算を行うようになる。非活動タイマの起動時点は、レジスタ群60の1つに予め読み込まれた変更可能な設定時点から決定される。非活動タイマの減算は、受信メッセージもしくは送信メッセージのいずれか一方に関連した事象を介して解除もしくは停止され得る。非活動タイマがいったん0に到達もしくは失効すると、IRQが生成される。非活動タイマは、IRQが認識されるまで0のままとなる。IRQがハイのままであると、発生するさらなるメッセージ事象は、このIRQが認識されるまで非活動タイマに作用しない。
PDU間遅延タイマは、加算カウンタである。PDU間遅延タイマは、V(MID)閾値レジスタとともに用いられ、送信メッセージもしくは受信メッセージの間の無送信最小時間(もしくは隙間時間)を保証するフィールドバスV(MID)最小PDU間遅延を実現する。PDU間遅延タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、セグメント12上のあらゆる送信メッセージとに作用される。フィールドバス活動がないときには、PDU間遅延タイマは、加算を継続する。カウント値がレジスタ群60の1つに格納された、予め決められた値以上になると、PDU間トリガー信号がアクティブになる。PDU間トリガー信号は、PDU間遅延時間に達したことを判定するのに用いられる。PDU間トリガー信号は、xmtmngr84に接続し、DLPDUの送信を開始できるという命令を与える。
受信応答タイマは、減算カウンタである。受信応答タイマは、加入デバイスがコンペル・データ(CD)DLPDUに対する即時応答を監視できるようにするために用いられる。また、受信応答タイマは、デバイスがオンラインされるときに当該デバイスが当該デバイスのアドレスを監視するのに用いられる。受信応答タイマは、起動を命令されると、16μ秒毎に減算を行うようになる。受信応答タイマ起動時点は、レジスタ群60の1つに予め読み込まれた変更可能な16ビットの設定時点から決定される。受信応答タイマの減算は、SOM事象もしくはSOT事象のいずれか一方を介して解除もしくは停止され得る
。受信応答タイマがいったん0に到達もしくは失効すると、IRQが生成される。受信応答タイマは、IRQが確認されるまで0のままとなる。IRQがハイのままであると、発生するさらなるメッセージ事象は、このIRQが確認されるまで受信応答タイマに作用しない。
送信応答タイマは、減算カウンタである。送信応答タイマによって、デバイスは、種々のDLPDU(つまり、コンペル・データ、パス・トークン)の送信後の即時応答を監視することができる。送信応答タイマは、起動を命令されると、16μ秒毎に減算を行う。送信応答タイマの起動点は、レジスタ群60の1つに予め読み込まれた変更可能な設定点から決定される。送信応答タイマの減算は、プローブ・ノード(PN)のSOM事象もしくはSOT事象を除く送信されたあらゆるDLPDUのSOM事象もしくはSOT事象のいずれか一方を介して、解除もしくは停止され得る。送信応答タイマがいったん0に到達もしくは失効すると、IRQが生成される。送信応答タイマは、IRQが認識されるまで0のままとなる。IRQがハイのままであると、発生するさらなるメッセージ事象は、このIRQが認識されるまで送信応答タイマに作用しない。
デリゲートトークン復帰タイマは、減算カウンタである。デリゲートトークン復帰タイマは、他のデバイスからのデリゲートトークンを受信するアイドル時間を監視するのに用いられる。デリゲートトークン復帰タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、セグメント12上のあらゆる送信メッセージとに作用する。デリゲートトークン復帰タイマは、起動を命令されると、16μ秒毎に減算を行うようになる。デリゲートトークン復帰タイマの起動時点は、レジスタ群60の1つに予め読み込まれた変更可能な設定時点から決定される。デリゲートトークン復帰タイマの減算は、受信メッセージもしくは送信メッセージのいずれか一方に関連する事象を介して解除もしくは停止され得る。デリゲートトークン復帰タイマがいったん0に到達もしくは失効すると、IRQが生成される。デリゲートトークン復帰タイマは、このIRQが認識されるまで0のままとなる。IRQがハイのままであると、さらなるメッセージ事象が発生しても、このIRQが認識されるまでデリゲートトークン復帰タイマは作用されない。
<定期メッセージ及び不定期メッセージの自動協調>
リンク・アクティブ・スケジューラ(LAS)デバイス20は、2つの異なる種類のメッセージを送信する必要がある。第1のメッセージ種類であるコンペル・データ(CD)DLPDUは、正確に定期的に送信されなければならない。このメッセージは、“定期メッセージ”と称される。第2のメッセージ種類は、“不定期メッセージ”と称される。不定期メッセージは、正確な時刻で送信される必要がない。不定期メッセージは、複数の定期メッセージ間の空き時間に送信される。
定期メッセージのタイムスケジュールは、設定中にLASデバイス20にダウンロードされる。スケジュールの正確な詳細は設定時まで不明であるため、LASデバイス20は、動的にプログラミングを行う能力と、スケジュールを実行する能力とを有していなければならない。同様に、リンク・マスタ(LM)デバイス22が、リンク・アクティブ・スケジューラの役割を担わなければならない場合には、LMデバイス22は、動的にプログラミングを行う能力と、スケジュールを実行する能力とを有していなければならない。
過去においては、ソフトウェアが、LASデバイスにおけるスケジュール実行の大きな役割を負ってきた。ソフトウェアは、次回定期事象が発生する時刻をまず計算する。ソフトウェアは、現在時刻を読み込み、読み込んだ現在時刻を次回定期事象時刻と比較することで、残り時間を監視する。また、ソフトウェアは、残り時間に基づいて不定期DLPDUを送信するか否かを判定する。このソフトウェアの集中アプローチは、いくつかの問題
を抱えている。第一に、ソフトウェアは、現在時刻の読込、もしくは計算を行い、現在時刻を次回定期事象時刻と比較して、残り時間を算出しなければならない。“残り時間”を算出する際のオーバーヘッドは、デバイス性能に対して重大な影響を与える。それは、LASデバイスは、各DLPDUを送信する前に計算を行わなければならないからである。第二に、2つの異なる時間基準(ノード時刻及びオクテット時刻)が用いられていることである。定期事象の残り時間は、ローカル・リンク・スケジューリング時刻(LST)として、ノード・タイマに基づいて測定される。他方、不定期メッセージを送信するのに要する時間は、メッセージ中のオクテットの数に基づいている。その結果、不定期メッセージを送信する時間があるか否かを判定する場合には、常に、時間基準の一方を他方の時間基準に変換する計算が必要となる。
第三に、不定期メッセージの送信要求には、次回定期事象時刻にできる限り近い正確なタイミングが必要である。このような正確なタイミングをソフトウェアで達成することはしばしば困難であり、待ち時間の問題に陥りやすい。
本発明では、CPU30のソフトウェアよりもむしろ通信コントローラ36によって、自動スケジューリングと、定期メッセージ及び不定期メッセージの協調とが達成される。
本発明では、ノード時刻とオクテット時刻とが同期されている。次回定期事象時刻の値は、ソフトウェアによってレジスタに書き込まれ、オクテットタイマが加算される毎に残り時間の動的な計算が実行されるように、次回定期事象時刻の値は、オクテット時刻カウントと加算され得る。残り時間値は、次回定期事象トリガーを生成するのに用いられ、また、ソフトウェアによって読込可能である。残り時間は、不定期メッセージの長さを判定するのに必要な時刻の検出値と同じ検出値のオクテット時刻であるため、ソフトウェアは、不定期メッセージを送信できるか否かを即座に判定できる。
通信コントローラ36は、正確な時刻の検出値が維持され、正確な時刻の検出値が通信コントローラ36及びCPU30、さらにセグメント12に接続された他のデバイス内で使用され得るように、事象の自動タイムスタンプを実行する。図1に図示するように、プロセス制御システム10は、セグメント12に動的に接続されたデバイス20〜28の間で常に送受信されるメッセージを有している。前述したように、物理層では、各メッセージは、物理層プロトコルデータユニット(PhPDU)を構成している。時刻情報を必要とするPhPDUの受信及び送信に付随される特定の事象がある。本発明では、特定の事象の発生時にセグメントタイマ群のスナップショットを取得することで、通信コントローラ36内で自動タイムスタンプが発生する。
受信PhPDUに付随されるのは、活動開始(SOA)事象である。活動開始事象は、フロントエンドステートマシン46が受信PhPDU活動を検出したときに発生する。受信PhPDUに付随される他の事象は、メッセージ終了(EOM)事象である。メッセージ終了事象は、エンド・デリミタ(ED)の終了で発生する。EOM事象は、CPU30上で実行中のソフトウェアへの割込要求(IRQ)を生成し、受信メッセージが発生したことを示す。受信/送信事象マネージャ58は、レジスタ群60を介してCPU30に事象IRQを供給する役割を担っている。
送信PhPDUに付随されるのは、送信終了(EOT)事象である。送信終了事象は、ネットワークへの送信PhPDUの送信が完了した際、つまり、EDの終了の際に発生する。EOT事象によって、受信/送信事象マネージャ58は、CPU30のソフトウェアへのIRQを生成し、メッセージの送信が完了したことを示す。
受信メッセージ及び送信メッセージの双方の各事象が発生する時刻をCPU30のソフ
トウェアが把握することは重要である。1つの複雑な点は、ソフトウェアが用いる2種類の時刻の検出値、つまり、DL時刻(データリンク時刻)とオクテット時刻とが存在することである。DL時刻及びオクテット時刻の双方は、単調に増加するカウントである。これら2種類の時刻の検出値は、これら2種類の時刻の検出値それぞれの時間基準のために異なるクロックレートを必要とする。DL時刻は、おおよそ32KHz(31.25μ秒)の調節可能なクロックレートに基づいている一方、オクテット時刻は、おおよそ500KHz(2μ秒)の調節可能なクロックレートに基づいている。
CPU30のソフトウェアは、EOM事象もしくはEOT事象のいずれか一方のIRQを取得したのちに事象時刻値を判定できるものの、IRQ生成からソフトウェアが実際にDL時刻もしくはオクテット時刻を読み込むことができるまでの時間を表すソフトウェア待ち時間が存在する。ソフトウェア待ち時間は、IRQ発生時にソフトウェアが実行中のタスクに依存して変化し得る。さらに、双方の時間基準の時刻値がソフトウェアによって必要とされているため、ソフトウェアがタイマの1つから時刻値を読み込み、読み込んだ時刻値を他の時間基準に変換するのに要するオーバーヘッドが存在する。
SOA事象のIRQがない点において他の問題が存在する。SOAの受信は、非同期の事象である。SOAのIRQを有することには問題がある。それは、セグメント12上のノイズバーストが、SOA事象の検出を生じさせてしまうからである。
CPU30のソフトウェアは、ノイズのあるセグメント12によって生じる不必要なSOAのIRQに応答し、容易に過負荷状態になってしまう可能性がある。
SOAが実際に発生したときに、ソフトウェアが時刻を計算することにも問題があるであろう。それは、プリアンブルのバイトの数が不明であるからである。メッセージ開始(SOM)事象にて、つまり、受信DLPDUの開始が検出された時点にてIRQが生成される可能性がある。しかし、プリアンブルは、最小1バイトから最大8バイトであるので、ソフトウェアが計算する時刻値は、256マイクロ秒から2,048マイクロ秒までの範囲に及ぶ可能性がある。
コントローラ36は、DL時刻及びオクテット時刻の双方の受信PhPDU事象及び送信PhPDU事象のタイムスタンプを正確かつ自動的に行うのに必要なハードウェアを提供する。
図5は、2つのセグメントタイマであるノードタイマ68A及びオクテットタイマ68Bを用いる自動タイムスタンプ機能に使用されるセグメントタイマの構築を図示する機能ブロック図である。
図5に示されているのは、可変クロック生成回路62、クロック周波数調節レジスタ60A、可変リンクタイマオフセットレジスタ60B、データリンク時刻オフセットレジスタ60C、次回機能ブロック実行時刻レジスタ60D、次回定期事象レジスタ60E、残り時間レジスタ60F、スナップショットレジスタ60G〜60J、加算器90,92、減算器94、比較器96,98である。
ノードタイマ68A及びオクテットタイマ68Bは、2つの異なる時刻の検出値を提供するのに用いられるセグメントタイマである。ノードタイマ68A及びオクテットタイマ68Bのクロック信号は、クロック周波数調節レジスタ60Aの制御下にある可変クロック生成回路62によって供給される。双方のクロック信号の周波数は、デバイス(この場合、基本デバイス24)で使用されるクロックレートをLAS20のクロックレートと同期させるために制御される。
ノードタイマ68Aは、32KHzのクロック信号で動作する単調増加タイマである。ノードタイマ68Aにおけるカウントは、ノード時刻C(NT)、データリンク時刻(DL時刻)、リンク予定時刻V(LST)を生成するのに用いられる。ノードタイマ68Aの他の重要な用途は、次回機能ブロック実行時刻割込を生成することである。
オクテットタイマ68Bは、500KHzのクロック信号で動作し、オクテットに基づく単調増加タイマである。オクテットタイマ68Bの重要な用途の1つは、次回定期事象トリガーを生成することである。
可変リンク時刻オフセットレジスタ60Bは、LAS20のローカルリンクスケジューリング時刻V(LST)に対する特定のデバイス(この例ではデバイス24)の符号付きオフセット(もしくは差分)を表す値であるV(LSTO)を提供する。LAS20の時間基準は、時刻配信(TD)DLPDUがLAS20から受信されたときに決定される。TD DLPDUは、LAS20によってデバイスに送信され、セグメント12上の全ての他のデバイスは、協調し、DL時刻の検出値の進行レートに同期することができる。可変リンク時刻オフセットレジスタ60Bは、ノードタイマ68Aの現在値に加算され、デバイス24のローカルリンク予定時刻V(LST)が生成される。
データリンク時刻オフセットレジスタ60Cは、データリンク時刻オフセットV(DLTO)を含み、データリンク時刻オフセットV(DLTO)は、デバイス24がLAS20のDL時刻とデバイス24のDL時刻のあらゆる差分を補正するのに用いられる。LAS20は、可変V(DLTO)をTD DLPDUを介して全てのデバイスに送信する。DL時刻は、加算器92によって形成され、加算器92は、V(DLTO)レジスタの値をV(LST)レジスタの値に加算する。加算結果は、デバイス24のローカルDL時刻を形成する。次回機能ブロック実行レジスタ60Dにより、次回機能ブロックが送信されるときにCPU30に割込を行うという設定を行うことが可能となる。この設定は、比較器96がV(LST)とレジスタ60Dに格納された設定時点とを比較することで達成される。
動作方法は、概略的には以下のとおりである。LASスケジュールが起動する直前に、通信コントローラ36のソフトウェアが、オクテット時刻の値とローカルリンク予定時刻の値とを取得する。値の取得は、双方の値のタイムスタンプを生成するスナップショットを取得することによって達成される。オクテット時刻は、レジスタ60Hに格納される一方、ローカルリンク予定時刻(LST)は、レジスタ60Jに取得される。これらのタイムスタンプを用いることで、ソフトウェアは、オクテット時刻に基づくLASスケジュールのバージョンを計算する。
ソフトウェアが計算を完了したのち、ソフトウェアは、スケジュールの実行を開始する。ソフトウェアは、まず、次回定期事象の次回定期事象時刻(NSET)を計算し、計算した値を次回定期事象レジスタ60Eに書き込む。
そして、ソフトウェアは、次回定期事象までの残り時間を残り時間レジスタ60Fを読み込むだけで監視する。レジスタ60Fの値はオクテットタイマ68Bが加算される毎に更新される。
十分な時間が残っていれば、ソフトウェアは、不定期DLPDUメッセージがセグメント12上に送信されるように不定期DLPDUメッセージを送信FIFOメモリ54に送信する。残り時間が短すぎれば、ソフトウェアは、DLPDUを送信FIFO54に送信しない。
次回定期事象が差し迫っているときには、ソフトウェアは、次回定期事象トリガーが生成された時点でCD DLPDUを送信するように通信コントローラ36に送信要求する。CD DLPDUがいったん送信されると、ソフトウェアは、次回定期事象のNSETを待ち行列に入れ、NSETの値をレジスタ60Eに読み込む。そして、この周期が再始動する。
本発明は、ソフトウェアのオーバーヘッドを取り除き、常に正確な単位で正確な時刻を読み込んだり、もしくは計算したり、いつDLPDUを送信すべきか判定するにあたり、当該正確な時刻をNSETと比較する必要性をなくす。その代わりに、これらの機能は、通信コントローラ36が図5に示すセグメントタイマ機能を用いることで自動的に実行される。さらに、プロセッサ待ち時間に影響され得るソフトウェアタイマではなく、送信が実際に行われる通信コントローラ36内部のタイマに基づいて、送信が始動されるため、スケジューリングのジッターが低減される。
次回定期事象レジスタ60Eによれば、オクテットタイマ68Bによって保持されるオクテット時刻に基づいて予め決められた時刻にDLPDUを送信する設定が可能である。トリガー機構は、次回定期事象レジスタ60Eとオクテット時刻との間で減算器94にて減算を行うことで実現されている。次回定期事象設定時点が次回定期事象レジスタ60Eに書き込まれたのち、送信要求が実行され得る。レジスタ60Eの値とオクテット時刻との差分がいったん0以下になると、次回定期事象トリガーが生成される。次回定期事象トリガーは、受信/送信事象マネージャ58のxmtmngr84に供給される。次回定期事象トリガーによって、DLPDUをセグメント12上に送信する命令が発行される。残り時間レジスタ60Fによって、CPU30は、次回定期事象トリガーが発行される前に残り時間を判定することができる。
スナップショットレジスタ60G〜60Jは、始動されたときに、ノード時刻C(NT)と、オクテット時刻と、DL時刻と、ローカルリンク予定時刻V(LST)とを格納する。スナップショットパルスが発生した時点で、これらの時刻値は同時に取得される。タイマ68A,68Bは、カウントを継続するものの、肝心な事象のスナップショット時刻値は、レジスタ60G〜60Jに取得されることになる。
本発明は、好ましい実施形態を参照しながら説明されているが、当業者は、本発明の精神及び範囲を逸脱することなく、形態の変更及び詳細な変更が可能であることを認識するであろう。
通信媒体セグメント上のデバイス間のディジタル通信を行うプロセス制御システムの図面である。 図1のプロセス制御システムにおけるデバイス間の通信のためのメッセージフォーマットを示す。 プロセス制御システムにおけるデバイスのブロック図である。 図3のデバイスにおける通信コントローラの機能ブロック図である。 定期メッセージ及び不定期メッセージの送信タイミングを制御するのに用いられるクロック生成、セグメントタイマ、レジスタの機能ブロック図である。

Claims (17)

  1. 定期メッセージ及び不定期メッセージを送信することによってネットワーク上で通信を行うデバイスであって、
    該デバイスは、
    送信されるメッセージを生成する中央処理装置(CPU)と、
    前記ネットワークへの接続を行う媒体接続装置(MAU)と、
    前記CPUと前記MAUとの間に接続され、次回の定期メッセージが送信されるまでの残り時間を表す残り時間値を提供する通信コントローラであって、該通信コントローラは、第1時刻値を提供する第1タイマを備え、該残り時間値が、前記1タイマが加算される毎に、格納された次回定期事象時刻から前記第1時刻値を減算することで更新される、通信コントローラと
    を備え
    前記通信コントローラは、さらに、前記第1時刻値よりも分解能が低い第2時刻値を提供する第2タイマを備え、
    前記第1時刻値は、内部メッセージタイミングを図るために用いられる一方、前記第2時刻値は前記ネットワークのセグメント全体で共通の時刻の検出値を共有するために用いられる、
    ことを特徴とするデバイス。
  2. 請求項1記載のデバイスであって、
    前記CPUは、前記残り時間値が不定期メッセージの送信に要する時間よりも大きい場合に、該不定期メッセージを送信し、前記残り時間値が不定期メッセージの送信に要する時間未満である場合に、該不定期メッセージの送信を保留する
    ことを特徴とするデバイス。
  3. 請求項1記載のデバイスであって、
    定期メッセージは、前記残り時間値が0に達したときに送信される
    ことを特徴とするデバイス。
  4. 請求項1記載のデバイスであって、
    前記通信コントローラは、前記次回定期事象時刻と前記残り時間値とをレジスタに格納する
    ことを特徴とするデバイス。
  5. 請求項記載のデバイスであって、
    ソフトウェアの命令に応じて、前記通信コントローラは、前記第1タイマ及び前記第2タイマの双方から生じるタイムスタンプ値を格納する
    ことを特徴とするデバイス。
  6. 請求項記載のデバイスであって、
    前記第1タイマは、前記第1時刻値としてオクテット時刻を生成するオクテットタイマであり、前記第2タイマは、前記第2時刻値としてノード時刻を生成するノードタイマである
    ことを特徴とするデバイス。
  7. 請求項記載のデバイスであって、
    前記ノード時刻に基づいて、前記通信コントローラは、データリンク時刻とリンク予定時刻とを生じる
    ことを特徴とするデバイス。
  8. 請求項記載のデバイスであって、
    前記通信コントローラは、タイムスタンプ値として、前記オクテット時刻と、前記ノード時刻と、前記データリンク時刻と、前記リンク予定時刻とを格納する
    ことを特徴とするデバイス。
  9. 請求項記載のデバイスであって、
    オクテット時刻に基づくメッセージ送信予定は、前記タイムスタンプ値から得られる
    ことを特徴とするデバイス。
  10. 請求項1記載のデバイスであって、
    前記通信コントローラは、複数の時刻値を同時に生成し、ソフトウェアの命令に応じて、該時刻値の各々をタイムスタンプ値として格納する
    ことを特徴とするデバイス。
  11. ネットワーク上の定期メッセージ及び不定期メッセージのタイミングを制御する方法であって、
    該方法は、前記ネットワーク上のデバイスによって実行され、
    前記デバイス内の第1タイマによって、内部メッセージタイミングを図るために用いられる第1時刻値を提供することと、
    前記デバイス内の第2タイマによって、前記ネットワークのセグメント全体で共通の時刻の検出値を共有するために用いられ、前記第1時刻値よりも分解能が低い第2時刻値を提供することと、
    前記第1タイマと前記第2タイマとから複数の時刻値を取得することと、
    該時刻値の各々をタイムスタンプ値としてレジスタに格納することと、
    次回定期事象時刻を含むメッセージ送信予定を前記タイムスタンプ値から取得することと、
    前記第1タイマが加算される毎に、前記第1タイマによって生成された現在時刻値を前記次回定期事象時刻から減算して、次回の定期メッセージが送信されるまでの残り時間を表す残り時間値を更新することと、
    前記残り時間が不定期メッセージを送信するのに要する時間よりも大きいときに、該不定期メッセージを送信することと
    を含むことを特徴とする方法。
  12. 請求項11記載の方法であって、さらに、
    前記残り時間値が不定期メッセージの送信に要する時間未満である場合に、該不定期メッセージの送信を保留することを含む
    ことを特徴とする方法。
  13. 請求項11記載の方法であって、さらに、
    前記残り時間値が0になると、定期メッセージを送信することを含む
    ことを特徴とする方法。
  14. 請求項11記載の方法であって、
    前記第1タイマは、前記第1時刻値としてオクテット時刻を生成するオクテットタイマであり、前記第2タイマは、前記第2時刻値としてノード時刻を生成するノードタイマである
    ことを特徴とする方法。
  15. プロセス制御ネットワーク上への定期メッセージ及び不定期メッセージの送信を制御する方法であって、
    前記方法は、前記プロセス制御ネットワーク上のデバイスによって実行され、
    内部メッセージタイミングを図るために用いられるローカル内部時刻の検出値を前記デバイス内の第1タイマから提供することと、
    前記ネットワークのセグメント全体で共通の時刻の検出値を共有するために用いられ、前記ローカル内部時刻の検出値よりも分解能が低い、ノード時刻の検出値を前記デバイス内の第2タイマから提供することと、
    前記ローカル内部時刻の検出値と前記ノード時刻の検出値とに基づいたタイムスタンプ値をスナップショットレジスタに転送することと、
    前記タイムスタンプ値から次回定期事象時刻を取得することと、
    前記次回定期事象時刻までの残り時間を表す残り時間値をハードウェアに保持することと、
    前記残り時間値が不定期メッセージの送信に要する時間よりも大きいときに、該不定期メッセージを送信することと
    を含むことを特徴とする方法。
  16. 請求項15記載の方法であって、さらに、
    前記残り時間値が不定期メッセージの送信に要する時間未満である場合に、該不定期メッセージの送信を保留することを含む
    ことを特徴とする方法。
  17. 請求項15記載の方法であって、さらに、
    前記残り時間値が0になると、定期メッセージを送信することを含む
    ことを特徴とする方法。
JP2007523618A 2004-07-30 2005-07-15 定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ Active JP5009795B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/903,698 US7496099B2 (en) 2004-07-30 2004-07-30 Communication controller for coordinating transmission of scheduled and unscheduled messages
US10/903,698 2004-07-30
PCT/US2005/025202 WO2006020054A2 (en) 2004-07-30 2005-07-15 Communication controller for coordinating transmission of scheduled and unscheduled messages

Publications (2)

Publication Number Publication Date
JP2008508794A JP2008508794A (ja) 2008-03-21
JP5009795B2 true JP5009795B2 (ja) 2012-08-22

Family

ID=35732094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007523618A Active JP5009795B2 (ja) 2004-07-30 2005-07-15 定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ

Country Status (5)

Country Link
US (1) US7496099B2 (ja)
EP (1) EP1779597A4 (ja)
JP (1) JP5009795B2 (ja)
CN (1) CN101124560B (ja)
WO (1) WO2006020054A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873506B2 (en) * 2003-06-30 2011-01-18 Agere Systems Inc. Simulation framework with support for multiple integrated circuits having potentially differing characteristics
US8060668B2 (en) * 2004-09-08 2011-11-15 Fisher-Rosemount Systems, Inc. Low latency data packet reception and processing
US7590519B2 (en) * 2005-11-08 2009-09-15 Microsoft Corporation Distributed system simulation: slow message relaxation
US8547855B1 (en) * 2006-03-21 2013-10-01 Cisco Technology, Inc. Method and apparatus to schedule multiple probes for active or passive monitoring of networks
US8068429B2 (en) * 2007-05-31 2011-11-29 Ixia Transmit scheduling
KR101415201B1 (ko) * 2007-08-28 2014-07-04 삼성전자주식회사 통신 시스템에서 고속의 비디오 스트림 서비스를 위한스케줄링 방법 및 장치
GB201114079D0 (en) * 2011-06-13 2011-09-28 Neul Ltd Mobile base station
US20130229960A1 (en) * 2011-11-28 2013-09-05 Qualcomm Incorporated Methods and devices for facilitating transmitter circuit power regulation
US8856415B2 (en) * 2012-02-01 2014-10-07 National Instruments Corporation Bus arbitration for a real-time computer system
US9891142B2 (en) * 2014-11-21 2018-02-13 Rockwell Automation Technologies, Inc. Time-stamping and synchronization for single-wire safety communication
US9846423B2 (en) 2014-12-22 2017-12-19 Rockwell Automation Technologies, Inc. Smart taps for a single-wire industrial safety system
US9841142B2 (en) 2014-12-22 2017-12-12 Rockwell Automation Technologies, Inc. Single-wire industrial safety system with safety device diagnostic communication
US9797552B2 (en) 2014-12-22 2017-10-24 Rockwell Automation Technologies, Inc. Diagnostics and enhanced functionality for single-wire safety communication
US11281191B2 (en) 2020-04-29 2022-03-22 Rockwell Automation Germany Gmbh & Co. Kg Global e-stop in an industrial safety system with local and global safety input devices
CN115118671B (zh) * 2022-05-30 2024-01-26 中国信息通信研究院 用于令牌环调度的方法及装置、电子设备、存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2730287B2 (ja) * 1990-10-17 1998-03-25 日本電気株式会社 マイクロコンピュータ
JPH1097505A (ja) * 1996-09-24 1998-04-14 Hitachi Ltd 情報伝送方法および情報伝送システム
DE69909791T2 (de) * 1998-05-26 2004-04-22 Dow Global Technologies, Inc., Midland Verteilte rechnerumgebung mit echt-zeit ablauffolgenlogik und zeit-deterministischer architektur
US6564268B1 (en) * 1999-03-17 2003-05-13 Rosemount Inc. Fieldbus message queuing method and apparatus
JP4616535B2 (ja) * 1999-12-23 2011-01-19 シテイシャン ネットワークス インコーポレイテッド パケットスケジューリングを用いるネットワーク交換方法
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
JP2002185552A (ja) * 2000-12-11 2002-06-28 Matsushita Electric Ind Co Ltd 通信処理装置及び通信処理方法
US7065586B2 (en) * 2000-12-22 2006-06-20 Radiance Technologies, Inc. System and method for scheduling and executing data transfers over a network
US20030165116A1 (en) * 2002-03-01 2003-09-04 Fallon Michael F. Traffic shaping procedure for variable-size data units

Also Published As

Publication number Publication date
JP2008508794A (ja) 2008-03-21
WO2006020054A2 (en) 2006-02-23
CN101124560B (zh) 2012-01-18
EP1779597A2 (en) 2007-05-02
US7496099B2 (en) 2009-02-24
WO2006020054A3 (en) 2007-09-07
EP1779597A4 (en) 2010-02-10
CN101124560A (zh) 2008-02-13
US20060023691A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
JP4847955B2 (ja) 自動タイムスタンプを備える通信コントローラ
JP5009795B2 (ja) 定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ
JP5069110B2 (ja) メッセージ受信中における送信を防止するシステム及び方法
JP4860620B2 (ja) 低遅延のデータパケット受信及び処理
JP5006197B2 (ja) ネットワーク上における事象発生順序の管理
JP4938667B2 (ja) データキューから部分的に受信されたメッセージの破棄
US7444427B2 (en) System and method for preventing transmission during message reception
JP4596448B2 (ja) バスシステムの加入者におけるプログラム中断を発生させる方法,その装置及びバスシステム
JP4898815B2 (ja) 1つの信号の測定値とネットワーク上の1つの通信デバイスとの関連付け

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110707

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110801

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110901

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120531

R150 Certificate of patent or registration of utility model

Ref document number: 5009795

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250