JP2008512943A - データキューから部分的に受信されたメッセージの破棄 - Google Patents

データキューから部分的に受信されたメッセージの破棄 Download PDF

Info

Publication number
JP2008512943A
JP2008512943A JP2007531182A JP2007531182A JP2008512943A JP 2008512943 A JP2008512943 A JP 2008512943A JP 2007531182 A JP2007531182 A JP 2007531182A JP 2007531182 A JP2007531182 A JP 2007531182A JP 2008512943 A JP2008512943 A JP 2008512943A
Authority
JP
Japan
Prior art keywords
message
received
received message
write pointer
data
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.)
Granted
Application number
JP2007531182A
Other languages
English (en)
Other versions
JP2008512943A5 (ja
JP4938667B2 (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 JP2008512943A publication Critical patent/JP2008512943A/ja
Publication of JP2008512943A5 publication Critical patent/JP2008512943A5/ja
Application granted granted Critical
Publication of JP4938667B2 publication Critical patent/JP4938667B2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40221Profibus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

プロセス制御システムにおけるデバイス群は、通信媒体セグメント上でデータメッセージによって通信する。各デバイスは、受信データメモリと、複数の受信メッセージオブジェクトとを含んだ通信コントローラを含んでいる。メッセージが受信されると、受信メッセージオブジェクトが有効化され、受信データメモリにおける書込ポインタの元の位置が、受信メッセージオブジェクトに格納される。メッセージの受信中に、ハードウェアデバイスがメッセージを無視することを決定すると、受信メッセージオブジェクトは、無効化され、これによって、受信データメモリへのさらなるメッセージの書込を防止する。そして、書込ポインタは、好ましくは、受信メッセージオブジェクトに格納されたときの元の位置に戻される。

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)の速度でデータを送信するものの、ネットワークに接続されたフィールドデバイスに電力を供給せず、余剰の伝送媒体を備えている。
フィールドバスは、膨大な量のプロセスデータをディジタル通信するという有用な能力を発揮する。したがって、フィールドバス通信の効果を最大限にすることが可能なプロセス制御デバイスの開発を継続する必要がある。
[発明の概要]
本発明は、複数のメッセージを格納可能なデータキューから部分的に受信されたメッセージを破棄するシステム及び方法である。メッセージが受信されたときに、データキューにおける書込ポインタの元の位置が格納される。そして、受信メッセージは、書込ポインタの元の位置で始まるデータキューに書き込まれる。受信メッセージがデータキューに書き込まれると、書込ポインタの位置がインクリメントされる。メッセージが破棄される場合には、書込ポインタは元の位置に戻され、通信デバイスによって受信された次のメッセージが、破棄される受信メッセージを上書きする。
好ましい実施形態では、データキューは、通信コントローラにおける受信データメモリに格納されている。また、通信コントローラは、複数の受信メッセージオブジェクトを含んでいる。メッセージが受信されたときに、受信メッセージオブジェクトは有効になり、受信データメモリにおける書込ポインタの元の位置が、有効な受信メッセージオブジェクトに格納される。そして、受信メッセージは、書込ポインタの元の位置で始まる受信データメモリに書き込まれる。メッセージが受信データメモリに書き込まれると、書込ポインタ位置はインクリメントされる。メッセージが無視されることをハードウェアデバイスが判定すると、有効な受信メッセージオブジェクトは無効化され、受信データメモリへのさらなるメッセージの書き込みを防止する。そして、書込ポインタは、好ましくは、受信メッセージオブジェクトに格納されたのと同様の元の位置に戻される。
[詳細な説明]
<プロセス制御システムの概要>
本発明は、プロセス制御システムにおける現場計器と他のデバイスとに用いられる通信コントローラに関する。通信コントローラの用途は、メッセージとタイマ管理とのリンク層処理の大部分を実行することで、アプリケーションプロセッサもしくは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と、送信ドライバ回路56と、受信/送信事象マネージャ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間遅延タイマは、フィルタ処理された受信メッセージ及びフィルタ処理されていない受信メッセージの双方と、フィールドバスセグメント上のあらゆる送信メッセージとに作用される。フィールドバス活動がないときには、PDU間遅延タイマは、インクリメントを継続する。カウント値がレジスタ群60の1つに格納された、予め決められた値以上になると、PDU間トリガー信号が有効になる。PDU間トリガー信号は、PDU間遅延時間に達したことを判定するのに用いられる。PDU間トリガー信号は、xmtmngr84に接続し、DLPDUの送信を開始できるという命令を与える。
受信応答タイマは、デクリメントカウンタである。受信応答タイマは、加入デバイスがコンペル・データ(CD)DLPDUに対する即時応答を監視できるようにするために用いられる。また、受信応答タイマは、デバイスがオンラインされるときに当該デバイスが当該デバイスのアドレスを監視するのに用いられる。受信応答タイマは、起動を命令されると、16μ秒毎にデクリメントを行うようになる。受信応答タイマ起動時点は、レジスタ群60の1つに予め読み込まれた変更可能な16ビットの設定時点から決定される。受信応答タイマのデクリメントは、SOM事象もしくはSOT事象のいずれか一方を介して解除もしくは停止され得る。受信応答タイマがいったん0に到達もしくは失効すると、IRQが生成される。受信応答タイマでは、IRQが生成されるためには、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が認識されるまでデリゲートトークン復帰タイマは作用されない。
<部分的に受信されたメッセージの破棄>
通信ハードウェアは、一般的に、ネットワークから受信されたメッセージをフィルタ処理し、ソフトウェアに関連するメッセージのみを通過させる役割を担っている。メッセージのフィルタ処理は、ハードウェアに対して特別な問題、つまり、メッセージフィルタは、メッセージをフィルタ処理するか否かを決定する前に、メッセージを部分的に受信する必要があり得るという問題をもたらす。メッセージフィルタがメッセージをフィルタ処理すると決定した場合には、部分的に受信されたメッセージは破棄される必要がある。メッセージフィルタがメッセージをフィルタ処理しないと決定した場合には、ハードウェアは、既に部分的に受信された部分を含め、メッセージ全体をソフトウェアに送る必要がある。
図5は、通信コントローラ36によって受信されたデータパケットの処理を管理する受信/送信事象マネージャ58の機能ブロック図である。受信/送信事象マネージャ58は、メッセージキューマネージャ(MsgQmngr)80と、事象マネージャ82と、事象MUX86と、受信メッセージオブジェクトキュー100と、マルチプレクサ102,106,108,112とを含んでいる。受信メッセージオブジェクトキュー100は、rcvmsg1、rcvmsg2、rcvmsg3と称された、3つの受信メッセージオブジェクトのための記憶空間を含んでいる。また、受信/送信事象マネージャ58は、現在位置ポインタ(CurPosition)116と、ポインタ有効化論理118と、書込ポインタ120と、読込ポインタ122とを含んでいる。また、図5に表されているのは、受信FIFOメモリ50、及び受信メッセージオブジェクト及び送信メッセージオブジェクトに関連付けられた事象データを格納するレジスタ群60の部分(Reg15〜Reg1F)である。
受信/送信事象マネージャ58によって、CPU30は、発生した各メッセージの各々に関連付けられた受信メッセージオブジェクト(rcvmsg1、rcvmsg2、rcvmsg3)を順に読み込むことができる。各受信メッセージオブジェクトは、メッセージIRQと、エラー状態と、一般的なメッセージ情報とを含むメッセージ属性の組み合わせを格納している。受信メッセージオブジェクトに関連付けられたDLPDUデータは、受信FIFOメモリ50に格納される。
送信メッセージオブジェクト(xmtmsg)は、送信マネージャ(xmtmngr)84、送信ステートマシン52、送信FIFOメモリ54、タイマ68からの入力を受け入れる。これらの入力から、CPU30は、レジスタ群60におけるレジスタReg16,Reg17,Reg1Bにおける、送信IRQと、エラー状態と、タイムスタンプ情報とを読み込むことができる。Xmtmngr84、送信FIFOメモリ54、送信ステートマシン52は、図4では受信/送信事象マネージャ58内に表されているものの、これらは、送信メッセージに関連するだけであるので、説明を明確にするために、図5では省略されている。
MsgQmngr80によって、特定の受信メッセージ事象が、セグメント12からの有効な受信メッセージに関連付けられる。有効な受信メッセージは、RcvMsg1_sel信号、RcvMsg2_sel信号、RcvMsg3_sel信号を形成するMUX102を介して制御される。一度につき、これら選択信号のうちの1つのみが有効になり得る。したがって、メッセージが有効中に、1つの受信メッセージオブジェクト(rcvmsg1,rcvmsg2,rcvmsg3)のみが、当該受信メッセージオブジェクトに関連付けられた受信事象を有することになる。複数の入力が、受信メッセージオブジェクトキュー100に入力される。これら信号としては、読込ポインタ122の現在位置値と、書込ポインタ120と、(受信FIFOを読み込むための)GetDataByte_inと、フロントエンドステートマシン46からの信号と、タイマ68からの現在時刻値とがある。3つの選択信号(RcvMsg1_sel、RcvMsg2_sel、RcvMsg3_sel)によって、入力信号が、1つの受信メッセージオブジェクトのみに適切に関連付けられる。
受信メッセージオブジェクトキュー100に3つの未確認な受信メッセージオブジェクトが依然あるときに、受信メッセージ後にEOA事象パルスが発生すると、MsgQmngr80は、RcvMsgQMux_enb信号を強制的にロウ(無効)に設定することで、4つ目のメッセージが受信されるのを無効にする。4つ目のメッセージが受信されるのを無効にすることで、4つ目の受信メッセージが、受信FIFOメモリ50におけるDLPDUデータを破損してしまうことを防止する。RcvMsgQMux_enb信号を再度有効にするには、CPU30は、1つ目の受信メッセージオブジェクトが発生する(つまり、時間的に最も古いメッセージが発生する)のを確認しなければならない。CPU30は、レジスタ群60におけるレジスタReg15に書込を行うことで、Event_Ack(事象確認)信号を生成し、続いて、ORゲート110の出力からRcvMsg_Ack信号を生成する。
EventMngr82は、事象MUX86における選択を制御し、3つの受信メッセージオブジェクト(rcvmsg1,rcvmsg2,rcvmsg3)のうちの1つ、もしくは送信メッセージオブジェクト(xmtmsg)の読込を多重化する。有効なメッセージの受信メッセージオブジェクトは、レジスタ群60におけるレジスタReg15〜Reg1Fを介して、CPU30が読込可能である。CPU30は、レジスタReg15における下位2ビットを読み込み、処理される次の事象が、受信メッセージ(“01”)であるのか、送信メッセージ(“10”)であるのか、それとも、処理する事象がない(“00”)のかを判定する。受信メッセージの場合には、MUX106は、RcvMsg1_visible、RcvMsg2_visible、RcvMsg3_visible、RcvMsg1_Ackn、RcvMsg2_Ackn、RcvMsg3_Acknといった6つの信号を形成する。最初の3つの信号(RcvMsg1_visible、RcvMsg2_visible、RcvMsg3_visible)は、互いに排他的であり、3つの受信メッセージオブジェクトのいずれが、CPU30による処理のために事象MUX86を通過するのかを選択する。したがって、一度につき、たった1つの受信メッセージオブジェクトの、関連付けられた事象情報と属性データとが処理され得る。事象は、セグメント12から受信された順序と同じ順序で処理される。
RcvMsg1_Ackn信号、RcvMsg2_Ackn信号、RcvMsg3_Ackn信号は、CPU30によって全ての事象データが処理された後に、現在確認可能な受信メッセージオブジェクトを認識するのに用いられる。これら3つの信号は、入力として、ORゲート110へ供給され、RcvMsg_Ack信号は、ORゲート110の出力段で生成される。RcvMsg_Ack信号は、入力として、MsgQmngr80と読込ポインタ122に供給される。
また、MsgQmngr80は、CurMsg_Ack(現在メッセージ認識)信号を生成するのに用いられるMUX108を制御する。“現在メッセージ”は、セグメント12上の有効な受信メッセージであって、CPU30が処理している事象データの受信メッセージ(つまり、CPU30が確認可能なメッセージ)である。CurMsg_Ack信号は、MsgQmngr80によって用いられ、(ポインタ有効化論理118を介して)書込ポインタ120を制御するとともに、CurPosition116を制御する。受信メッセージオブジェクトが確認可能であって、受信メッセージオブジェクトに対応する選択信号が有効(例えば、RcvMsg1_visible=RcvMsg1_sel=1)であるときに、CurMsg_Ack信号は有効となる。
CPU30は、GetDataByte_in信号を介して、受信FIFOメモリ50に対する読込ポインタ122と連動する。読込のためにCPU30が現在確認可能な受信メッセージオブジェクトを介してのみ(つまり、受信メッセージオブジェクトのRcvMsg_visible信号が有効であるときのみ)、CPUは、読込ポインタ122にアクセスできる。CPU30が、格納されたDLPDUデータを受信FIFOメモリ50から読み込む準備が完了しているときに、CPU30におけるソフトウェアは、レジスタ群60におけるレジスタReg1Dを介して、GetDataByte_in指令を生成する。レジスタ群60におけるレジスタReg1Dからのあらゆる読込によって、受信FIFOメモリ50からのデータが、CPU30による読込のために直ちにデータバス上に置かれる。GetDataByte_in信号は、3つの受信メッセージオブジェクトの全てに入力されるものの、これら3つの受信メッセージオブジェクトのうちの1つだけが、CPU30で一度につき読込可能(もしくは確認可能)である。EventMUX_sel(2:0)信号は、MUX106を介して読み込まれる、CPU30にとって現在確認可能な受信メッセージオブジェクトを選択する。例えば、RcvMsg1_visibleが有効な場合には、GetDataByte1信号が受信メッセージオブジェクトrcvmsg1を介して生成される。GetDataByte1信号、GetDataByte2信号、GetDataByte3信号は、入力として、ORゲート114に入力され、ORゲート114の出力は、全体的なGetDataByte信号である。全体的なGetDataByte信号が有効であるときには、受信FIFOメモリ50の読込ポインタ122が、1つの位置分インクリメントされる。rcvmsg1からの読込動作が実行されると、読込ポインタ122は、rcvmsg1の終了位置値と比較される。この比較によって、CPU30は、受信FIFOメモリ50における、rcvmsg1に関連付けられたメッセージのバイト数を把握することができる。
フロントエンドステートマシン46は、シリアルデータストリームを復号し、シリアルデータストリームを8ビットパラレル形式のバイトに変換する。バイトの形成後、フロントエンドステートマシン46は、書込ポインタ120によって指し示された、受信FIFO50における記憶位置に、復号されたデータを格納する書込パルスを(RcvDataByteを介して)生成する。書込パルスは、書込ポインタ120をインクリメントし、次のDLPDUバイトが書き込まれるのに備える。有効な受信メッセージのDLPDUデータが受信FIFOメモリ50に書き込まれているときに、受信FIFOメモリ50における書込ポインタの現在の値がCurPosition116に継続的に転送される。受信メッセージオブジェクトが受信メッセージオブジェクトキュー100に加えられた順序と同じ順序でDLPDUデータが受信FIFOメモリ50に加えられるため、受信FIFOメモリ50と受信メッセージオブジェクトキュー100との間で一致した順序が維持される。
受信FIFOメモリ50に格納されたデータは、最大3つの完全な受信メッセージオブジェクト(最大63バイト)のDLPDUデータを格納する。各受信メッセージオブジェクトは、ソフトウェアによって読込可能な種々の属性を格納するレジスタを含んでおり、種々の属性は、(MsgQmngr80によって選択されたときの)有効な受信メッセージの受信状態に関連している。これらの属性としては、オーバーフローと、アンダーフローと、データ準備完了と、メッセージの終了位置(EndPosition)と、有効フラグとがある。
オーバーフロー属性は、設定されると、セグメント12からの受信メッセージからDLPDUデータを格納中に、受信FIFOメモリ50のオーバーフロー状態が発生したことを示す論理的属性である。CPU30によってDLPDUデータが受信FIFOメモリ50から読み込まれる前に、受信FIFOメモリ50が満杯になると、受信FIFOメモリ50は、全ての受信メッセージオブジェクトへの信号を有効にし、オーバーフロー状態が発生したことを合図する。オーバーフロー状態が発生したことを合図することで、少なくとも1つのDLPDUデータのバイトが受信FIFOメモリ50から読み込まれるまで、受信FIFOメモリ50へさらなるデータが書き込まれることが防止されることになる。オーバーフロー状態が発生すると、オーバーフロー属性が、確認可能な受信メッセージオブジェクトに設定される。オーバーフロー属性を設定された受信メッセージオブジェクトが確認可能になり、CPU30に読み込まれると、オーバーフロー属性は、CPU30によって読み込まれ、処理される。CPU30は、レジスタReg16の適切なビットに書込を行うことによって、設定されたオーバーフロー属性を認識する(続いて、オーバーフロー属性をクリアする)。
アンダーフロー属性は、データの不足によって、受信FIFOメモリ50から読み込む最後の試みが失敗したことを示す論理的属性である。受信FIFOメモリ50が空であるとき(つまり、読み込むべきDLPDUバイトが一切存在しないとき)に、CPU30がGetDataByte_in信号の生成を試みると、アンダーフロー属性が発生する。アンダーフロー属性が発生すると、読込ポインタ122がインクリメントされなくなり、これによって、読込ポインタ122の適切な位置を維持する。アンダーフロー状態が発生すると、アンダーフロー属性が、確認可能な受信メッセージオブジェクトに設定される。CPU30は、レジスタReg16の適切なビットに書込を行うことによって、設定されたアンダーフロー属性を認識する(続いて、アンダーフロー属性をクリアする)。
全ての受信メッセージに対して、書込のためにデータがフロントエンドステートマシン46から受信FIFOメモリ50に転送されている間、受信FIFOメモリ50は、当該受信FIFOメモリ50が、当該受信FIFOメモリ50の記憶限度である63バイトに近づいているか否かを継続的に監視する。データ準備完了属性は、受信FIFOメモリ50が満杯状態に近づいており、受信FIFOメモリ50のオーバーフロー状態を防止するために、CPU30による読込が直ちに必要であることを示す、変更可能な論理的属性である。受信FIFOメモリ50において未読になっているDLPDUデータのバイト数がデータ準備完了の閾値と一致、もしくは閾値よりも大きくなると、IRQが、有効になっている受信メッセージオブジェクトにて生成される。受信メッセージオブジェクトがCPU30で確認可能になり、読み込まれると、データ準備完了属性は、CPU30によって読み込まれ、処理され得る。CPU30は、レジスタReg16の適切なビットに書込を行うことによって、設定されたデータ準備完了属性を認識する(続いて、データ準備完了属性をクリアする)。
終了位置属性は、現在有効なメッセージに対してDLPDUデータが書き込まれているときにおける、受信FIFOメモリ50における書込ポインタ120の位置を格納する整数属性である。現在有効な受信メッセージオブジェクトの終了位置属性は、書込ポインタ120がインクリメントされる毎に継続的に更新される。DLPDUデータのバイトが受信FIFOメモリ50から読み込まれると、読込ポインタ122がインクリメントされる。読込ポインタ122の値が終了位置属性の値と一致すると、現在確認可能な受信メッセージオブジェクトへのさらなるデータは、受信FIFOメモリ50に格納されない。確認可能な受信メッセージオブジェクトが取得可能なデータが一切ないときには、空フラグが設定され、確認可能な受信メッセージオブジェクトのGetDataByte出力をCPU30が生成することを防止する。空フラグは、読込ポインタ122の適切な位置付けと、DLPDUデータの関連付けの完全性との維持に貢献する。各受信メッセージオブジェクトの終了位置属性は、MUX112に入力され、確認可能な受信メッセージオブジェクトの終了位置属性の値は、読込ポインタ122に送出される。
有効フラグは、CPU30によって処理中の受信メッセージオブジェクト(つまり、確認可能な受信メッセージオブジェクト)がまた(RcvMsg_sel信号を介して)選択もされていることを示す論理的属性である。受信メッセージのEOAが検出されると、有効フラグがロウに戻る。メッセージがセグメント12から受信されると、現在選択されている受信メッセージオブジェクトは、当該受信メッセージオブジェクト内部で更新された、当該受信メッセージオブジェクトに関連付けられたメッセージ属性を有している。例えば、MAU38がメッセージを受信したときに受信FIFOメモリ50にDLPDUデータが一切格納されていなければ、MsgQmngr80によって、RcvMsg1_sel信号が設定され、受信メッセージオブジェクトrcvmsg1における有効フラグ属性が有効になる。有効フラグが受信メッセージオブジェクトに設定されているときに、書込ポインタ120の現在の位置が、選択された受信メッセージオブジェクトの終了位置属性に格納される。
特定の受信メッセージに対して、CPU30は、特定の受信メッセージの全てのDLPDUデータが受信FIFOメモリ50に格納される前に、メッセージ全体を処理する必要があるか否かを判定してもよい。例えば、セグメント12上の20バイトのメッセージが受信処理中である場合を想定すると、受信メッセージオブジェクトrcvmsg1が選択され(RcvMsg1_sel=1)、受信メッセージオブジェクトrcvmsg1が確認可能(RcvMsg1_visible=1)になる。少数のDLPDUバイトが受信FIFOメモリ50に書き込まれた後、CPU30は、レジスタReg1Fを読み込み、受信FIFOメモリ50に書き込まれたrcvmsg1のDLPDUのバイト数を判定できる。レジスタReg1Fから読み込んだ値は、rcvmsg1の終了位置属性の値と、読込ポインタ122の値との差である。そして、CPU30は、受信FIFOメモリ50に格納された部分的なメッセージを、レジスタReg1Dを介して受信してもよい。この部分的なメッセージから、CPU30は、処理する必要のない残りのバイトを判定してもよく、メッセージの残りの部分は破棄(つまり、フィルタ処理)され得る。この時点で、CPU30は、レジスタReg15への書込動作を実行することでEvent_Ack信号を生成する。Event_Ack信号は、MUX108を介して、CurMsg_Ack信号を生成する。
Event_Ack信号の生成によって、一連の事象が発生し、次の受信メッセージのために受信FIFOメモリ50を準備する。まず、CurMsg_Ack信号が生成されると、MsgQmngr80によって、RcvMsgQMUX_enb信号が無効にされる。RcvMsgQ_enb信号がロウになると、有効な受信メッセージオブジェクトの入力で発生する、追加的なあらゆる事象が無視される。CPU30は、受信メッセージの残りの部分を読み込む処理時間を確保して、デバイス24における別の処理を実行することができる。そして、有効な受信メッセージオブジェクトに設定された属性状態(例えば、オーバーフロー、アンダーフローなど)は、対応するRcvMsg_Ackn信号(例えば、受信メッセージオブジェクトrcvmsg1のRcvMsg1_Ackn信号)によってクリアされる。続いて、CurMsg_Ack信号は、受信FIFOメモリ50に対する書込ポインタ120のインクリメントを制御するポインタ有効化論理118を無効にする。ポインタ有効化論理118を無効にする動作によって、有効な受信メッセージオブジェクトに関連付けられた、有効な受信メッセージのあらゆる追加的なDLPDUバイトが、受信FIFOメモリ50に書き込まれてしまうことを防止する。残りのDLPDUデータは、フロントエンドステートマシン46によって復号されるものの、格納されることはない。また、CurMsg_Ack信号によって、CurPosition116の現在の値が書込ポインタ120にコピーされる。(ORゲート110から出力された)RcvMsg_Ack信号によって、MUX112から出力された、有効な受信メッセージオブジェクトの終了位置値のサンプリングが開始され、続いて、サンプリングされた終了位置値の読込ポインタ122へのコピーが開始される。続いて、書込ポインタ120及び読込ポインタ122が同一の値に変更される。
部分的に受信され、破棄されたメッセージの活動終了(EOA)事象パルスが発生すると、受信メッセージオブジェクトキュー100における次の受信メッセージオブジェクトのRcvMsg_sel信号が有効になる。新たなメッセージがセグメント12上で受信されると、新たなメッセージは、受信FIFOメモリ50に書き込まれる。次の受信メッセージオブジェクトのDLPDUデータにおける最初のバイトは、書込ポインタ120の新たに変更された値に格納される。その結果、破棄されたメッセージにおける部分的に受信された部分は、新たなメッセージによって上書きされる。
要約すれば、メッセージのフィルタ処理は、ハードウェアに対して特別な問題、つまり、メッセージフィルタは、メッセージをフィルタ処理するか否かを決定する前に、メッセージを部分的に受信する必要があり得るという問題をもたらす。ソフトウェアによるメッセージフィルタ処理が、メッセージの残りの部分をフィルタ処理すると決定した場合には、部分的に受信されたメッセージは破棄される必要がある。本発明は、受信データメモリから部分的に受信されたメッセージを破棄するシステム及び方法である。メッセージが受信されると、受信メッセージオブジェクトは有効になり、受信データメモリにおける書込ポインタ120の現在の位置が検出され、有効な受信メッセージオブジェクトに格納される。そして、受信メッセージは、書込ポインタ120の元の位置で始まる受信FIFOメモリ50に書き込まれる。メッセージが受信FIFOメモリ50に書き込まれると、書込ポインタ120の位置がインクリメントされる。CPU30がメッセージを無視することを決定すると、有効な受信メッセージオブジェクトは無効となり、これによって、このメッセージに関連付けられた残りの事象を無視する。さらに、受信データメモリが無効になることで、無視されたメッセージに関連付けられたDLPDUデータを受信FIFOメモリ50にさらに書き込んでしまうことを防止する。メッセージが無視されると、読込ポインタ122は、CPU30が残りのメッセージをフィルタ処理することを決定した時点での受信FIFOメモリ50に位置付けられる。そして、書込ポインタ120は、好ましくは、受信FIFOメモリ50における、読込ポインタ122と同じ位置に変更される。
メッセージにおける全てのDLPDUデータが受信される前に、ソフトウェアがメッセージを無視できることによって、CPU30の貴重な処理時間が確保される。さらに、受信FIFOメモリ50は、最大3つの受信メッセージオブジェクトのDLPDUデータを格納可能であるため、書込ポインタ120及び読込ポインタ122の位置の検出及び制御を適切にハードウェアに継続させ、DLPDUデータと適切な受信メッセージオブジェクトとの関連付けを維持することが重要である。書込ポインタ120と読込ポインタ122との正しい位置合わせの重要性は、関連付けられた大量のDLPDUデータを有する受信メッセージが破棄されるときや、低電力用途のためにCPUを低いクロック周波数で動作させる場合など、CPU処理時間がさらに一層重要である状況において、より一層明確になる。
本発明は、好ましい実施形態を参照しながら説明されているが、当業者は、本発明の精神及び範囲を逸脱することなく、形態の変更及び詳細な変更が可能であることを認識するであろう。
通信媒体セグメント上のデバイス間のディジタル通信を行うプロセス制御システムの図面である。 図1のプロセス制御システムにおけるデバイス間の通信のためのメッセージフォーマットを示す。 プロセス制御システムにおけるデバイスのブロック図である。 図3のデバイスにおける通信コントローラの機能ブロック図である。 通信媒体セグメント上で受信されたデータパケットを処理する受信/送信事象マネージャの機能ブロック図である。

Claims (13)

  1. 通信媒体上で通信を行うデバイスであって、
    該デバイスは、
    前記通信媒体上でメッセージの受信及び送信を行う媒体接続装置(MAU)と、
    受信されたメッセージに格納されたデータの処理と、送信されるメッセージに格納されるデータの生成とを行う中央処理装置(CPU)と、
    前記MAUと前記CPUとを接続する通信コントローラであって、データキューと、受信メッセージオブジェクトのキューとを含み、前記データキューが、前記通信媒体上で受信された複数のメッセージを格納し、各受信メッセージオブジェクトが、前記データキューに格納されたメッセージに対応している、通信コントローラと
    を備え、
    前記通信媒体上でメッセージを受信すると、第1の受信メッセージオブジェクトが有効になり、書込ポインタの元の位置を前記データキューに格納し、
    前記メッセージが無視される場合には、前記第1の受信メッセージオブジェクトが無効になる
    ことを特徴とするデバイス。
  2. 請求項1に記載のデバイスであって、
    受信メッセージオブジェクトを有効化するために有効フラグが設定され、該受信メッセージオブジェクトを無効化するために該有効フラグがクリアされる
    ことを特徴とするデバイス。
  3. 請求項1に記載のデバイスであって、
    前記受信メッセージオブジェクトが無効のときに、前記書込ポインタが、該受信メッセージオブジェクトに格納された元の位置に変更される
    ことを特徴とするデバイス。
  4. 請求項1に記載のデバイスであって、
    前記メッセージの事象終了信号が受信されると、第2の受信メッセージオブジェクトが有効化される
    ことを特徴とするデバイス。
  5. 請求項1に記載のデバイスであって、
    前記データキューは、リングバッファに格納されている
    ことを特徴とするデバイス。
  6. メッセージ全体が受信される前に、通信デバイスにおいて該メッセージをフィルタ処理する方法であって、
    該方法は、
    第1の受信メッセージオブジェクトを有効化することと、
    受信データメモリにおける書込ポインタの元の位置を前記第1の受信メッセージオブジェクトに格納することと、
    前記書込ポインタの前記元の位置で始まる前記受信データメモリに前記メッセージを書き込むことと、
    前記メッセージが前記受信データメモリに書き込まれると、前記書込ポインタの位置をインクリメントすることと、
    前記通信デバイスがメッセージを無視することを決定したときに、前記メッセージの受信中に前記第1の受信メッセージオブジェクトを無効化することと
    を含んでいることを特徴とする方法。
  7. 請求項6に記載の方法であって、
    前記メッセージから活動開始信号を受信したときに、前記第1の受信メッセージオブジェクトは、有効化される
    ことを特徴とする方法。
  8. 請求項6に記載の方法であって、さらに、
    前記書込ポインタを前記元の書込ポインタの位置に戻すこと
    を含んでいることを特徴とする方法。
  9. 請求項8に記載の方法であって、
    前記書込ポインタを前記元の書込ポインタの位置に戻すことは、
    前記第1の受信メッセージオブジェクトに格納された前記元の書込ポインタの位置に前記書込ポインタを変更する
    ことを含んでいることを特徴とする方法。
  10. 請求項8に記載の方法であって、さらに、
    前記メッセージの事象終了信号が受信されると、第2の受信メッセージオブジェクトを有効化すること
    を含んでいることを特徴とする方法。
  11. 請求項6に記載の方法であって、
    前記第1の受信メッセージオブジェクトを有効化することは、
    該第1の取得可能な受信メッセージオブジェクトの有効フラグを設定すること
    を含んでいることを特徴とする方法。
  12. 請求項6に記載の方法であって、
    前記第1の受信メッセージオブジェクトを無効化することは、
    該第1の取得可能な受信メッセージオブジェクトの有効フラグを非設定にすること
    を含んでいることを特徴とする方法。
  13. 通信媒体上で受信された複数のメッセージを格納する、通信デバイスのデータキューから受信メッセージを削除する方法であって、
    該方法は、
    書込ポインタの元の位置を前記データキューに格納することと、
    前記書込ポインタの前記元の位置で始まる前記データキューに前記受信メッセージを書き込むことと、
    前記受信メッセージが前記データキューに書き込まれると、前記書込ポインタの位置をインクリメントすることと、
    前記受信メッセージが削除される場合に、前記書込ポインタを前記元の位置に戻し、前記通信デバイスによって受信された次のメッセージを前記受信メッセージに上書きすることと
    を含んでいることを特徴とする方法。
JP2007531182A 2004-09-08 2005-08-15 データキューから部分的に受信されたメッセージの破棄 Active JP4938667B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/936,142 US7694061B2 (en) 2004-09-08 2004-09-08 Discarding a partially received message from a data queue
US10/936,142 2004-09-08
PCT/US2005/029198 WO2006028670A2 (en) 2004-09-08 2005-08-15 Discarding a partially received message from a data queue

Publications (3)

Publication Number Publication Date
JP2008512943A true JP2008512943A (ja) 2008-04-24
JP2008512943A5 JP2008512943A5 (ja) 2008-10-02
JP4938667B2 JP4938667B2 (ja) 2012-05-23

Family

ID=36036807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007531182A Active JP4938667B2 (ja) 2004-09-08 2005-08-15 データキューから部分的に受信されたメッセージの破棄

Country Status (5)

Country Link
US (1) US7694061B2 (ja)
EP (1) EP1810118B1 (ja)
JP (1) JP4938667B2 (ja)
CN (1) CN101052937B (ja)
WO (1) WO2006028670A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200717246A (en) * 2005-06-24 2007-05-01 Koninkl Philips Electronics Nv Self-synchronizing data streaming between address-based producer and consumer circuits
US10819791B2 (en) * 2013-10-11 2020-10-27 Ge Aviation Systems Llc Data communications network for an aircraft
US9679347B2 (en) 2014-02-18 2017-06-13 Qualcomm Incorporated Shader pipeline with shared data channels
US9960853B2 (en) * 2016-10-04 2018-05-01 The United States Of America As Represented By The Secretary Of The Navy System and method for a differential pulse position modulation encoder and decoder

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61234149A (ja) * 1985-04-09 1986-10-18 Nec Corp 受信バツフア装置
JPH0713881A (ja) * 1993-06-28 1995-01-17 Hitachi Ltd 通信処理装置
JP2000194655A (ja) * 1998-09-30 2000-07-14 Stmicroelectronics Inc 記述子リング内の記述子をアップデ―トすることによるデ―タの転送制御方法及びシステム
JP2001036588A (ja) * 1999-07-15 2001-02-09 Seiko Epson Corp データ転送制御装置及び電子機器
JP2002344539A (ja) * 2001-05-15 2002-11-29 Ricoh Co Ltd Fifo装置
JP2002351824A (ja) * 2001-02-28 2002-12-06 Samsung Electronics Co Ltd 通信システム及び通信方法
US6799229B1 (en) * 2000-09-05 2004-09-28 Lsi Logic Corporation Data-burst-count-base receive FIFO control design and early packet discard for DMA optimization

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507760A (en) * 1982-08-13 1985-03-26 At&T Bell Laboratories First-in, first-out (FIFO) memory configuration for queue storage
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
US5016221A (en) * 1989-12-01 1991-05-14 National Semiconductor Corporation First-in, first-out (FIFO) memory with variable commit point
US5533034A (en) * 1992-06-26 1996-07-02 Matsushita Electric Industrial Co., Ltd. High speed data transfer device having improved efficiency
US5485572A (en) * 1994-04-26 1996-01-16 Unisys Corporation Response stack state validation check
JPH08307617A (ja) * 1995-05-10 1996-11-22 Canon Inc 通信装置
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US6385672B1 (en) * 1997-05-30 2002-05-07 3Com Corporation System to optimize packet buffer utilization via selectively partitioned transmit and receive buffer portions
US6307860B1 (en) * 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
US6246682B1 (en) * 1999-03-05 2001-06-12 Transwitch Corp. Method and apparatus for managing multiple ATM cell queues
US6564268B1 (en) * 1999-03-17 2003-05-13 Rosemount Inc. Fieldbus message queuing method and apparatus
US6539024B1 (en) * 1999-03-26 2003-03-25 Alcatel Canada Inc. Method and apparatus for data buffer management in a communications switch
US6496885B1 (en) * 1999-07-14 2002-12-17 Deere & Company Method for processing network messages
JP3961371B2 (ja) * 2002-08-21 2007-08-22 富士通株式会社 情報処理装置
US6754744B2 (en) * 2002-09-10 2004-06-22 Broadcom Corporation Balanced linked lists for high performance data buffers in a network device
CN1222882C (zh) * 2002-12-05 2005-10-12 华为技术有限公司 一种任务间通信的实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61234149A (ja) * 1985-04-09 1986-10-18 Nec Corp 受信バツフア装置
JPH0713881A (ja) * 1993-06-28 1995-01-17 Hitachi Ltd 通信処理装置
JP2000194655A (ja) * 1998-09-30 2000-07-14 Stmicroelectronics Inc 記述子リング内の記述子をアップデ―トすることによるデ―タの転送制御方法及びシステム
JP2001036588A (ja) * 1999-07-15 2001-02-09 Seiko Epson Corp データ転送制御装置及び電子機器
US6799229B1 (en) * 2000-09-05 2004-09-28 Lsi Logic Corporation Data-burst-count-base receive FIFO control design and early packet discard for DMA optimization
JP2002351824A (ja) * 2001-02-28 2002-12-06 Samsung Electronics Co Ltd 通信システム及び通信方法
JP2002344539A (ja) * 2001-05-15 2002-11-29 Ricoh Co Ltd Fifo装置

Also Published As

Publication number Publication date
US20060070079A1 (en) 2006-03-30
WO2006028670A3 (en) 2006-11-30
EP1810118A2 (en) 2007-07-25
US7694061B2 (en) 2010-04-06
WO2006028670A2 (en) 2006-03-16
EP1810118B1 (en) 2020-04-15
JP4938667B2 (ja) 2012-05-23
CN101052937A (zh) 2007-10-10
CN101052937B (zh) 2011-06-08
EP1810118A4 (en) 2013-12-25

Similar Documents

Publication Publication Date Title
JP5069110B2 (ja) メッセージ受信中における送信を防止するシステム及び方法
JP4847955B2 (ja) 自動タイムスタンプを備える通信コントローラ
JP5009795B2 (ja) 定期メッセージ及び不定期メッセージの送信を協調させる通信コントローラ
JP4860620B2 (ja) 低遅延のデータパケット受信及び処理
JP2002539550A (ja) フィールドバスメッセージキューイング方法および装置
JP5006197B2 (ja) ネットワーク上における事象発生順序の管理
EP1941367B1 (en) Detection of noise within an operating frequency on a network
JP4938667B2 (ja) データキューから部分的に受信されたメッセージの破棄
US7444427B2 (en) System and method for preventing transmission during message reception
EP1941384B1 (en) Associating a signal measurement with a communication device on a network

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080814

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110126

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20111221

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120119

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: 20120207

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: 20120223

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

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4938667

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250