JP3548911B2 - Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded - Google Patents
Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded Download PDFInfo
- Publication number
- JP3548911B2 JP3548911B2 JP2001076968A JP2001076968A JP3548911B2 JP 3548911 B2 JP3548911 B2 JP 3548911B2 JP 2001076968 A JP2001076968 A JP 2001076968A JP 2001076968 A JP2001076968 A JP 2001076968A JP 3548911 B2 JP3548911 B2 JP 3548911B2
- Authority
- JP
- Japan
- Prior art keywords
- trigger detection
- trigger
- setting
- frame
- network
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Description
【0001】
【発明の属する技術分野】
本発明はプロトコルアナライザ、トリガ検知装置、トリガ検知のためのプログラムが記録された記録媒体及びボードに関し、詳しくはプロトコルアナライザを利用してネットワークを流れるフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別するプロトコルアナライザ、トリガ検知装置、トリガ検知のためのプログラムが記録された記録媒体及びボードに関する。
【0002】
【従来の技術】
一般に、ネットワークには複数の端末をつないだり、制御装置や被制御装置をつなげて、データのやりとりやフレームやメッセージの通信を行なっている。
特にファクトリー・オートメーション(FA)の分野では、プログラマブル・コントローラを使う際に、リモートI/O通信することがある。この場合、プログラマブル・コントローラ側にマスタ局、I/O機器(デバイス)側にスレーブ局を設け、例えばデバイスネットと呼ばれるネットワーク上でデータやメッセージのやりとりを行なっている。
しかし、デバイス側で間違ったフレームを出したり、フレーム送信タイミングがおかしかったり、正常フレームが送出されても、途中でノイズによりデータがつぶれたりすると、プログラマブル・コントローラとデバイス間の通信エラーがおきる。
そこで、ネットワークに関する不具合の原因を追求したり、ネットワークの状態を正確に把握するために、ネットワーク上を流れるフレームを収集し解析を行なう装置として、プロトコルアナライザと呼ばれるものがある。
【0003】
例えば、ネットワークはCANプロトコルと呼ばれるプロトコルを利用したデバイスネットと呼ばれるネットワークより構成される。
デバイスネットは、ファクトリー・オートメーション等に適用される分散型のネットワークで、ネットワークには各種通信装置や制御機器が接続され、伝送路には各種通信装置や制御機器に対する入力情報(メッセージ)及び各種通信装置や制御機器からの出力情報(メッセージ)等がフレームとして流れている。
ここで、プロトコルアナライザは、フレームを取りこぼさない、複雑なトリガ検知条件を設定したい等のユーザニーズを満たしつつ、ネットワークに流れるメッセージをネットワークに負荷をかけることなくモニタするものである。
プロトコルアナライザの基本的な機能は以下の2点である。
(1)フレーム収集機能
(2)フレーム表示機能
フレーム収集機能とは、ネットワーク上を流れるフレームを収集する機能で、予め設定したトリガ条件に基づいて、フレームを選択的にメモリに記憶する。フレームを選択するときには、後述するフィルタリング機能によって通過したフレームだけを収集するという方式が採用されている。
【0004】
また、フレーム表示機能とは、収集したフレームをユーザに理解できる形式で表示する機能で、モニタ画面を介して各フレームの間隔を示す時間情報を時系列に表示する等の処理を行なう。また、収集したフレーム情報を加工して表示する場合もある。例えば、収集した全フレーム中におけるフレームの種類ごとの占有比率等である。
【0005】
また、上記基本機能に加えて、以下の機能もある。
(3)フィルタリング機能
フィルタリング機能とは、事前に設定された分析対象のフレーム以外は収集せず、指定されたフレームのみを選択的に収集する機能である。この機能を使用することによって限られたリソース、つまりメモリ容量を有効に使用することができる。例えば、ノードやスレーブにアドレス番号を付し、特定のアドレス番号に着目して、そのアドレス番号を含むフレームだけを選択的に収集して、不必要なフレームのバッファリングで収集用のメモリを不必要に消費することを防止できる。
【0006】
また、上記基本機能に加えて、以下の機能もある。
(4)トリガ検知機能
すでに述べたように、プロトコルアナライザはネットワークの不具合解析や状態把握に用いられるが、この場合、事前に設定した条件によりフレームを収集するタイミングを制御したいという要求がある。例えば、特定のフレームを検知すると収集を開始する、あるいは常時FIFO(First In First Out)でフレームを収集しておき、特定のフレームを検知したらそこで収集を停止するという制御をしたいという要求である。
【0007】
ここで、「設定された条件に合致したことを検知する機能」をトリガ検知機能といい、このような収集のタイミングを制御する条件をトリガ検知条件という。
ところで、トリガ検知機能については以下のユーザニーズがある。
(1)フレームを取りこぼさない
(2)複雑なトリガ検知条件を設定したい
(3)トリガ検知条件を簡易に設定したい
【0008】
これらの各ニーズについて以下、説明する。
(1)フレームを取りこぼさない
トリガ検知処理としては、ネットワーク上にフレームが流れるごとに設定された条件に合致しているかどうかを判断する。つまり、フレームが流れるたびに、1つづつのフレームについてトリガ検知の判断をしている。
毎回の判断は、次のフレームが流れる前までに完了しておかないと追いつかないこととなる。換言すると、フレーム検知としてのトリガ検知処理は少なくとも次のフレームがくるまでの一定時間内に判断結果を出す必要がある。もし、トリガ検知処理に時間を要し、判断終了前にネットワーク上に次のフレームが流れれば、このフレームのトリガ検知処理ができずに、フレームを取りこぼすことがある。ネットワークの解析というプロトコルアナライザの本来の目的から考えて、ネットワーク上のフレームを取りこぼすことは致命的な欠陥となる。
【0009】
(2)複雑なトリガ検知条件を設定したい
ネットワークを解析するにあたっては、できるだけフレームを収集する条件を絞り込んで必要なものだけを収集したいというニーズがある。例えば、ある特定のビットパターンが検出されたら収集を開始するといった単一な条件だけでなく、複数の条件を組み合わせてトリガ検知をしたいということである。
【0010】
例えば、1101というビットパターンを含んだフレームは頻繁にネットワークに流れており、これだけでは異常ではないが、この1101の後に1110というビットパターンのフレームが流れる場合は異常と考えられるようなケースがあるとする。この場合は、「1101のビットパターンフレームの後に1110というビットパターンのフレームが流れる」という2つの条件の組み合わせをトリガ条件とできると便利である。
【0011】
また、フレーム内にアプリケーションとして意味を持つI/Oデータ(入出力データ)が含まれるような場合に、このI/Oデータに対して条件を設定できると便利な場合がある。
【0012】
ところで、(1)の「フレームを取りこぼさない」ことを保証するためには、常に以下の式が満たされている必要がある。
【0013】
T Frame Interval>T Detect+T Overhead
【0014】
ここで、
T Frame Interval=次のフレーム受信までの時間
T Detect=受信したフレームのトリガ検知判断の処理時間
T Overhead=フレームを受信してからトリガ検知判断処理が開始されるまでの時間+トリガ検知判断処理が終了してから次のフ
レーム受信準備が完了するまでの時間
【0015】
ところで、当然のことながら、トリガ検知条件を複雑にするにしたがい、検知処理判断に必要な処理時間T Detectは増大する。従って、(1)の「フレームを取りこぼさない」という要求と(2)の「複雑なトリガ検知条件を設定したい」という要求は互いに相反する要求といえる。
【0016】
(3)トリガ検知条件を簡易に設定したい
トリガ検知条件は簡易に設定できることが望ましい。特に、(2)の「複雑なトリガ検知条件を設定したい」という要求を満たすためには、できるだけ分かりやすく、容易にその条件が設定できることが望ましい。
【0017】
以上がプロトコルアナライザ及びプロトコルアナライザで使用されるトリガ検知の説明であるが、次に、従来のトリガ検知方法を説明する。
【0018】
すでに述べたように、トリガ検知処理は、ネットワークを流れるメッセージをリアルタイムに取得し、ユーザの設定した検知条件に一致するか否か判断する必要がある。同時に、メッセージの取りこぼしを起こさないため、次のメッセージを受信するまでの間に現在の受信処理を完了し、次の受信に備える必要がある。
【0019】
すなわち、トリガ検知処理は限られた時間内で処理を完了しなければならない。
【0020】
そこで、従来は、この時間的制約のため、シンプルな検知方法しか実現できなかった。
【0021】
トリガ検知の具体的な方法としては、Mask&Matchという方式が採用される。Mask&Matchは受信したメッセージの一部をユーザが指定したマスク値でマスクし、マスク後の値がMatch値と一致するかどうかで評価する方法である。
【0022】
いま、これを図12を参照しながら説明すると、受信データ(a)をMask値(b)でマスクしてMask後の値(c)を得、この値がMatch値(d)と一致するかどうか調べる。
【0023】
例えば、1番目のデータでは、受信データ(a)は「0011」、Mask値(b)は「0011」なので、Mask後の値(c)は「0011」となる。
【0024】
なお、Mask後の値(c)は、受信データ(a)の「0011」とMask値(b)の「0011」のそれぞれの同位ビットの乗算値として得られる。
【0025】
ここで、1番目のデータでは、Mask後の値(c)は「0011」であり、Match値(d)も同じく「0011」である。従って、1番目のデータ受信はトリガ検知となる。
【0026】
図13は、従来のメッセージ受信処理の概要を示すフローチャートである。この処理は、一例としてデバイスネットと呼ばれるネットワーク上をCANプロトコルと呼ばれるプロトコルでCANフレームが流れる場合の処理である。
CANフレームは後述するように、19ビットのCANヘッダフィールド、最大64ビットのDATAフィールド、25ビットのCANトレイラフィールドより構成されている。
【0027】
図13においてメッセージ受信処理が開始されると(ステップ100)、CANフレームを内部バッファ(図示せず)に転送するという受信メッセージの処理1が行なわれる(ステップ102)。
【0028】
次に、トリガ検知を実行するか否か調べられる(ステップ104)。これは、例えば図示しないパソコン画面上でトリガ検知ボタンが押されてトリガ検知モードに入っているか否か調べているもので、トリガ非検知モードでトリガ検知を実行しない場合は(ステップ104でNO)、ステップ108に進むが、トリガ検知モードでトリガ検知を実行する場合は(ステップ104でYES)、トリガ検知処理を実行する(ステップ106)。すなわち、Mask&Matchの処理を行なう。
【0029】
次に、ステップ108では、受信メッセージの処理2を行ない、1フレームのメッセージ受信処理を終了する(ステップ110)。なお、ステップ108の受信メッセージの処理2では、ステップ106のMask&Matchの処理でトリガ検知と判別された場合は、以後、キャプチャリング(受信フレームの取り込み)処理等を行なう。
【0030】
次に、Mask&Matchによる上記ステップ106のトリガ検知処理の詳細を図14のフローチャートを参照しながら説明する。
【0031】
この処理では、トリガ検知が開始されると(ステップ120)、データ格納アドレスから期待データを取得する(ステップ122)。期待データを取得するとは、データ収集が開始されても、予め設定したアドレス値をもつものしか収集しない等のフィルタを設けているので、このフィルタを通過したデータだけを取り出すということである。これは、すでに述べたように、例えば、ノードやスレーブにアドレス番号を付しているので、特定のアドレス番号に着目して、そのアドレス番号を含むフレームだけを選択的に収集するということである。
【0032】
次に、内部メモリよりMask値を取得し(ステップ124)、受信データをMask値にてマスクする(ステップ126)。
【0033】
次に、内部メモリよりMatch値を取得し(ステップ128)、マスク後のデータがMatch値と一致するか否か調べる(ステップ130)。
【0034】
ここで、マスク後のデータがMatch値と一致しない場合は(ステップ130でNO)、トリガ検知を終了する(ステップ134)。
【0035】
一方、マスク後のデータがMatch値と一致する場合は(ステップ130でYES)、一致した場合の処理をして(ステップ132)、トリガ検知を終了する(ステップ134)。
【0036】
なお、ステップ132の一致した場合の処理をするとは、トリガ検知でデータ収集を開始するとか、それまでやってきたデータ収集を終了するとか、一致したデータのみを収集するという処理をすることをいう。
【0037】
【発明が解決しようとする課題】
ところで、すでに述べたように、ユーザのトリガ検知に関するニーズは、単一のMask&Matchにとどまらず、もっと複雑なトリガ検知条件が設定できるようにすることであり、且つトリガ検知条件を簡易に設定できるようにすることである。
【0038】
例えば、図12の例では、1番目のデータは、受信データ(a)は「0011」であり、Mask値(b)は「0011」であり、Mask後の値(c)は「0011」であり、Match値(d)も同じく「0011」である。従って、トリガ検知の条件を満たしている。
【0039】
ところで、2番目のデータは、受信データ(a)は「1011」であり、Mask値(b)は「0011」であり、Mask後の値(c)は「0011」であり、Mask値(b)も同じく「0011」である。従って、同じくトリガ検知の条件を満たしている。
【0040】
つまり、受信データ(a)は異なるのに、同じMask値(b)、同じMatch値(d)を用いてもトリガ検知の条件を満たしていると判断されている。
【0041】
従って、図12のトリガ検知条件では、1番目のデータがトリガ条件に一致しているのか、2番目のデータがトリガ条件に一致しているのか不明である。
【0042】
そこで、複雑なトリガ検知条件が設定できるようにしたいというニーズがある。
【0043】
従来は、このニーズをさまざまな条件が設定できる汎用のプログラムで満たしていた。しかし、さまざまな条件が設定できる汎用のプログラムで満たそうとすると、後述するように、純粋なトリガ検知処理であるMask&Matchの部分以外に分岐処理等の冗長な処理が入り、受信処理が最小受信間隔以内に収まらないという問題点があった。
【0044】
例えば、2通りのMask&Matchの設定が可能で、1つ目のMask&Matchを設定1、2つ目のMask&Matchを設定2とすると、以下のような設定条件が可能である。
(1)設定1のみ
(2)設定2のみ
(3)設定1 AND 設定2
(4)設定1以外
(5)設定2以外
(6)設定1以外 AND 設定2
(7)設定1 AND 設定2以外
(8)設定1以外 AND 設定2以外
(9)設定1以外 OR 設定2
(10)設定1 OR 設定2以外
(11)設定1以外 OR 設定2以外
【0045】
ここで、上記設定条件のうち、
(1)の設定1のみ、
(2)の設定2のみ、
(3)の設定1 AND 設定2、
の3つの設定条件が設定可能な汎用プログラムを利用してトリガ検知処理をする場合、その処理手順は図15のフローチャートに示すようになる。
【0046】
すなわち、トリガ検知が開始されると(ステップ140)、設定1のMask&Matchの処理を行ない(ステップ142)、続いて、設定2のMask&Matchの処理を行なう(ステップ144)。
【0047】
ところで、図15に示す検知処理プログラムは、上記(1),(2),(3)のいずれの設定条件にも対応できるよう汎用性が付与され、点線170で囲まれたプログラムを含んでいる。
すなわち、まず、トリガ設定条件の設定内容が調べられ、まず、トリガ設定条件は設定1のみか否か調べられる(ステップ146)。ここで、トリガ設定条件が設定1のみでない場合は(ステップ146でNO)、ステップ148に進むが、トリガ設定条件が設定1のみの場合は(ステップ146でYES)、設定1の評価を行なう(ステップ152)。すなわち、設定1のマスク値によるマスク後のデータが設定1のMatch値と一致するか否かの評価が行なわれる。
【0048】
次に、ステップ146で設定1のみでないと判別されて、ステップ148に進んだ場合は、トリガ設定条件は設定2のみか否か調べられる(ステップ148)。ここで、トリガ設定条件が設定2のみでない場合は(ステップ148でNO)、ステップ150に進むが、トリガ設定条件が設定2のみの場合は(ステップ148でYES)、設定2の評価を行なう(ステップ154)。すなわち、設定2のマスク値によるマスク後のデータが設定2のMatch値と一致するか否かの評価が行なわれる。
【0049】
次に、ステップ148で設定2のみでないと判別されて、ステップ150に進んだ場合は、トリガ設定条件は設定3の「設定1 AND 設定2」か否かが調べられる(ステップ150)。ここで、トリガ設定条件が設定3の「設定1 AND 設定2」でない場合は(ステップ150でNO)、ステップ158に進むが、トリガ設定条件が設定3の「設定1 AND 設定2」の場合は(ステップ150でYES)、「設定1 AND 設定2」の評価を行なう(ステップ156)。すなわち、設定1のマスク値によるマスク後のデータが設定1のMatch値と一致し、且つ、設定2のマスク値によるマスク後のデータが設定2のMatch値と一致するか否かの評価が行なわれる。
【0050】
そして、続くステップ158では、評価結果が真か否か調べられ、評価結果が真でなければ(ステップ158でNO)、トリガ検知を終了するが(ステップ162)、評価結果が真ならば(ステップ158でYES)、トリガ検知時の処理を行ない(ステップ160)、トリガ検知を終了する(ステップ162)。
【0051】
以上が、3つの設定条件が設定可能な場合のトリガ検知処理の処理手順である。
【0052】
ところで、上記処理では、設定1,2のMask&Matchの処理(ステップ142,144の処理)以外に、点線170で囲んだ処理を行なっているが、点線170で囲んだ処理は分岐処理を含んだ冗長な処理である。
【0053】
例えば、設定条件が設定3「設定1 AND 設定2」の場合、点線170で囲んだ処理のうち、ステップ156以外の処理は不用な処理である。
【0054】
つまり、トリガ設定条件を複雑にしたいが、この場合は、冗長な不要処理が増え、処理時間が延びて取りこぼしのおそれがある。
また、トリガ設定条件を複雑にすると、プログラムの表記が難しくなるという問題点があった。
【0055】
そこで、本発明は、
(1)設定内容が複雑となっても、高速処理ができて取りこぼしがなく
(2)且つ、設定内容が複雑となっても、簡易な表記でプログラムが作成できるようにしたプロトコルアナライザ、トリガ検知装置、トリガ検知のためのプログラムが記録された記録媒体及びボードを提供することを目的とする。
【0056】
【課題を解決するための手段】
上記目的を達成するため、本発明は、
ヘッダとデータフィールドを含むフレームが通信されるネットワークに接続され、所定のトリガ検知条件に基づいてネットワークを流れるフレームのうち必要なフレームを取り込むプロトコルアナライザにおいて、
Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的組み合わせにより設定されたトリガ検知条件のそれぞれが論理表記に適した言語によって表記されたトリガ検知命令をコンパイルした結果が格納されるメモリと、
ネットワークを流れる上記フレームを受信する受信処理と、上記メモリから上記コンパイルされたトリガ検知命令を読み出して実行することにより、受信処理したフレームについてトリガ検知か否かを判別する判別処理と、判別処理の結果がトリガ検知である場合に処理するトリガ検知時処理と、を行うトリガ検知判別部と、
上記トリガ検知判別部のトリガ検知時処理に基づいて取り込んだフレームを記憶する記憶部と、
を有することを特徴とする。
【0057】
ここで、ネットワークとは、伝送路を介してプログラマブルコントローラや各種デバイス(制御機器)が接続されてデータの送受信が行なわれるもので、実施形態では、デバイスネットというネットワーク10が図1に示されている。
【0058】
フレームとは、ネットワークで伝送されるデータの伝送単位をいい、実施形態では、CANフレームと呼ばれるフレームが図4に示されている。
【0059】
トリガ検知を説明すると、従来技術の欄でも説明したようにネットワークに関する不具合の原因を追求したり、ネットワークの状態を正確に把握するために、ネットワーク上を流れるフレームを収集し解析を行ないたい場合がある。この場合、特定のノードが出すフレームや、特定のビットパターンを持つフレームかどうか区別するために、トリガ検知条件を用いる。つまりトリガ検知条件とは収集しないフレームとそれ以外のフレームとを区別して判断するための判断条件である。フレーム収集するにあたっては事前にトリガ検知条件を設定し、この設定された条件に基づきトリガ検知処理を行なう実施形態では、図1に示したトリガ検知装置20がトリガ検知処理を行なう。
【0060】
また、本発明のプロトコルアナライザは、更にトリガ検知条件を設定するためのアプリケーション実行部を有し、
このアプリケーション実行部は、ユーザによって、Mask&Matchの使用とIDの指定とデータフィールドの使用とを選択的に組み合わせてトリガ検知条件が複数設定され、
上記言語をラダー言語とし、上記設定されたトリガ検知条件のそれぞれをラダー言語で表記されて上記トリガ検知命令が設定される
ことを特徴とする。
【0061】
実施形態では、図7のトリガ条件設定画面(ダイアログボックス)を呼び出し、パソコン上の操作でラダー言語によるトリガ検知条件が設定される。そして、「OK」ボタンをクリックするとアプリケーション実行部21(パソコン)でラダーニーモニックに変換され、共有メモリ41にダウンロードされる。
【0062】
そして、アプリケーション実行部21(パソコン)側からモニタ開始の指示があると、共有メモリ41からニーモニックで記述されたトリガ検知条件を呼び出しコンパイルする。コンパイルされたトリガ検知条件はバイナリ変換され、第1のRAM44に格納される。
【0063】
上記アプリケーション実行部は、
上記トリガ検知判別部へネットワーク監視開始とネットワーク監視終了とを管理し、
上記記憶部に記憶した取り込みフレームを読み出して表示するように構成することもできる。
【0064】
また、上記アプリケーション実行部は、
上記トリガ検知条件を設定する際に、ダイアログボックスを提供するもので、
そのダイアログボックス上にてMask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせを設定可能とするように構成することもできる。
【0067】
また、本発明のトリガ検知装置は、ネットワークを流れるヘッダとデータフィールドとを含むフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別するトリガ検知装置において、
上記トリガ検知条件を、Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせにより設定するとともに、設定したトリガ検知条件のそれぞれを論理表記に適した命令語によりトリガ検知命令を設定するトリガ検知命令設定手段と、
上記トリガ検知命令設定手段で設定されたトリガ検知命令をコンパイルするトリガ検知命令コンパイル手段と、
上記トリガ検知命令コンパイル手段によってコンパイルされたトリガ検知命令を格納されるメモリと、ネットワークを流れる上記フレームを受信する受信処理と、上記メモリのトリガ検知命令に基づいて上記受信処理したフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別する判別処理と、判別処理の結果が条件合致である場合に処理するトリガ検知時処理と、を行うトリガ検知判別部と、
上記トリガ検知判別部のトリガ検知時処理に基づいて取り込んだフレームを記憶する記憶部と、
を有することを特徴とする。
【0068】
本発明では、トリガ検知命令設定手段でトリガ検知条件をトリガ検知の論理表記に適した命令語で設定し、トリガ検知命令コンパイル手段でトリガ検知命令設定手段で設定されたトリガ検知命令をコンパイルする。
【0069】
つまり、トリガ検知の都度、トリガ検知条件をトリガ検知の論理表記に適した命令語で設定し、設定されたトリガ検知命令をコンパイルする。
【0070】
つまり、トリガ検知命令処理に応じてその都度コンパイルするので、従来のような汎用性を持たせたプログラムに比べて処理ステップが必要なものだけになる。そのぶん、処理時間が節約でき、従来に比べて複雑なトリガ条件を設定しても、フレームの取りこぼしのおそれがなくなる。
【0071】
また、本発明のボードは、ネットワークを流れるヘッダとデータフィールドとを含むフレームが予め設定された所定のトリガ検知条件に合致するか否か判別するボードであって、
ホストに対して接続し、共有メモリを含むホストインタフェースと、
ネットワークを流れる上記フレームを取り込むネットインタフェースと、
Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせにより設定された上記トリガ検知条件を論理表記に適した命令語により示したトリガ検知命令を上記共有メモリから読み出してコンパイルし、バイナリ命令に変換する変換手段と、
上記変換手段にて変換されたトリガ検知命令を格納するメモリと、
上記メモリに格納されたトリガ検知命令を実行し、上記ネットインタフェースから取り込んだフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別する判別手段と、
上記判別手段の判別結果に基づいて所定のトリガ検知条件に合致するフレームを収集するフレーム収集部と、
を有することを特徴とする。
【0072】
実施形態では、ボードは図3に示すアプリケーション実行部21で、パソコンの拡張バスにつながれる増設ボードにあたる。また、ネットインタフェースは図3のネットインタフェース(ネットI/F)24である。また、トリガ検知命令コンパイル手段及び判別手段はMPU42に相当する。また、メモリは第1のRAM44であり、フレーム収集部は共有メモリ41である。
【0073】
【発明の実施の形態】
以下、本発明に係るプロトコルアナライザ、トリガ検知装置、トリガ検知のためのプログラムが記録された記録媒体及びボードの実施の形態を図面に基づいて説明する。
【0074】
図1は、本実施形態に係るトリガ検知装置が適用されたネットワーク構成を示すものである。
【0075】
本実施形態では、ネットワーク10はCANプロトコルと呼ばれるプロトコルを利用したデバイスネット(DeviceNet)と呼ばれるネットワークより構成されている。
【0076】
デバイスネットは、ファクトリー・オートメーション等に適用される分散型のネットワークで、ネットワークには各種通信装置や制御機器が接続され、伝送路には各種通信装置や制御機器に対する入力情報(メッセージ)及び各種通信装置や制御機器からの出力情報(メッセージ)等がフレームとして流れている。
【0077】
すなわち、ネットワーク10には、例えば、通信装置12−1(Slave1)、通信装置12−2(Slave2)、通信装置13(Scanner)、……が伝送路11を介して接続され、伝送路11には本実施形態に係わるトリガ検知装置20が接続されている。具体的には、通信装置12−1(Slave1)、通信装置12−2(Slave2)は、プログラマブルコントローラ、デバイス、リモートI/O等である。
【0078】
ここで、トリガ検知装置20は、フレームを取りこぼさない、複雑なトリガ検知条件を設定したい等のユーザニーズを満たしつつ、ネットワークに流れるメッセージをネットワーク10に負荷をかけることなくモニタするもので、プロトコルアナライザより構成できる。なお、プロトコルアナライザの機能等はすでに説明したので、重複した説明は省略する。
【0079】
図2は、トリガ検知装置20のシステム構成を示すもので、トリガ検知装置20は、アプリケーション実行部21と、アプリケーション実行部21とホストインタフェース22を介して接続されたトリガ検知実行ボード23より構成され、トリガ検知実行ボード23はネットインタフェース24を介して伝送路11と接続されている。
【0080】
ここで、アプリケーション実行部21はパソコン等より構成され、トリガ検知のためのトリガ検知条件が設定されるほか、ユーザの指示をトリガ検知実行ボード23に伝え、トリガ検知実行ボード23の実行結果をユーザに伝える。
【0081】
なお、アプリケーション実行部21では、具体的には、トリガ条件の設定、キャプチャフィルタの設定、ネットワーク監視開始命令の実行、ネットワーク監視終了命令の実行、キャプチャデータ(収集データ)の表示等の処理が行なわれるが、これらの詳細は後に述べる。
【0082】
トリガ検知実行ボード23は、アプリケーション実行部21の指示のもとトリガ検知等を行なうボードで、ホストインタフェース22を介してアプリケーション実行部21の図示しないバススロット(拡張バススロット)に装着される。
なお、ボード23がつながるのはPCIバス(インテル社提唱の拡張バス規格)やISAバス(IBM社提唱の拡張バス規格)と呼ばれる拡張バスである。以下、このようなバスを拡張バスという。
【0083】
なお、トリガ検知実行ボード23は、具体的には、アプリケーション実行部21で設定されたトリガ条件のコンパイル処理やアプリケーション実行部21からの指示に基づいてネットワーク監視、トリガ検知、特定のフレームの取り込み等の処理を行なうが、これらの詳細は後に述べる。
【0084】
次に、トリガ検知実行ボード23の構成を図3を参照しながら説明する。
【0085】
トリガ検知実行ボード23は、拡張バスインタフェース(拡張バス I/F)40、共有メモリ41、MPU42、ROM43、第1のRAM44、第2のRAM45、CAN制御部46、トランシーバー47、ネットインタフェース(ネットI/F)24より構成されている。
【0086】
ここで、拡張バスインタフェース(拡張バス I/F)40は、アプリケーション実行部21の図示しない拡張バスバススロットに装着されるもので、アプリケーション実行部21とトリガ検知実行ボード23とのインタフェースをとる。
【0087】
共有メモリ41は、アプリケーション実行部21とトリガ検知実行ボード23の共有メモリとなるもので、アプリケーション実行部21で設定したトリガ検知命令の書き込み等、あるいはトリガ検知実行ボード23で収集したデータのバッファリング等が行なわれる。
【0088】
なお、拡張バスインタフェース(拡張バス I/F)40と共有メモリ41より図2に示したホストインタフェース22が構成されている。
【0089】
MPU42はトリガ検知実行ボード23全体を統括制御するもので、共有メモリ41に書き込まれたトリガ検知命令をアプリケーション実行部21の指示のもとコンパイルして第1のRAM44に格納する処理、アプリケーション実行部21の指示のもとネットワーク監視、トリガ検知、特定のフレームの取り込み処理等を行なう。
【0090】
ROM43は、MPU42で実行されるシステムプログラムが格納される。
【0091】
第1のRAM44は、アプリケーション実行部21によって共有メモリ41に書き込まれたトリガ検知命令がMPU42によってコンパイルされたとき、コンパイルされたトリガ検知命令を格納する。
【0092】
第2のRAM45はトリガ検知のため収集されたデータが一時的に格納されるメモリで、この第2のRAM45への格納時、格納データのトリガ検知が行なわれる。この第2のRAM45にデータを取り込むに際しては、データのアドレス等に基づいたフィルタリング処理が行なわれ、共有メモリ41のバッファが無駄な情報で埋められることが防止されている。なお、第2のRAM45には1つのデータのみ取り込まれ、必要なデータは共有メモリのバッファに格納され、不必要なデータはそのまま破棄される。なお、RAM44,45は1つのRAMで構成し、2つの領域に分割してもよい。
【0093】
CAN制御部46は、ディジタルデータに変換された入力データからCANフレームを取り出すものである。
【0094】
トランシーバー47は、CAN制御部46からの信号に基づき伝送路11上に電圧を発生させるものである。
【0095】
ネットインタフェース(ネットI/F)24は、伝送路11とトリガ検知実行ボード23とのインタフェースをとるものである。
【0096】
次に、図1に示したネットワーク10の伝送路11を流れるデバイスネットのメッセージフォーマットについて説明する。
【0097】
デバイスネットはCANプロトコルのフレーム構造を利用し、フレーム・ヘッダの中の11ビット(CAN Identifier Bits)とデータフィールドにデバイスネットとしての意味を持たせている。
【0098】
図4は、CANのフレーム構成を示すものであるが、CANフレーム30は、19ビットのCAN HEADER(31)、0〜64ビットのDATA FIELD(32)、25ビットのCAN TRAILER(33)より構成されている。
【0099】
また、図5は、図4に示したCAN HEADER31の詳細を示すものであるが、1ビットのStart of Frame(31−1)、11ビットのCAN Identifier(31−2)、1ビットのRTR Bit(31−3)、6ビットのControl(31−4)より構成されている。
【0100】
ところで、上記の如き、CANフレーム構成において、CANフレームの受信間隔は、CANフレーム間のインターフレームスペースが最小の3ビットで、CANフレーム30のDATA FIELD(32)が0ビットのとき最小となる。
【0101】
このとき、ビット長は、以下のようになる。
【0102】
CAN HEADER+DATA FIELD+CAN TRAILER
+インターフレームスペース
=19+0+25+3
=47(ビット)
【0103】
従って、デバイスネットで最速の通信速度である500Kbpsを使用した場合、
47÷500,000=0.000094(sec)
となり、
94μsecが最小受信間隔となる。
【0104】
また、トリガ検知処理の最長処理時間は以下の式を満足するものでなければならない。
【0105】
最小受信間隔(94μsec)>受信処理+受信データ転送処理+トリガ検知処理
【0106】
上記の如き本実施形態の構成及び上記の如き条件のもと、本実施形態では以下のようにトリガ検知を行なっている。
【0107】
まず、図6のフローチャートを参照しながら、本実施形態におけるトリガ検知の概要を説明する。
【0108】
ところで、本実施形態による図6の処理と図15に示した従来例の処理の差異は、図15における点線170内の処理が図6ではステップ206の処理に置き換わったことと、ステップ206の処理の前段にアプリケーション実行部21の処理であるステップ214、216の処理が追加されたことである。
【0109】
従って、ステップ200(図15のステップ140と同じ)、ステップ202(図15のステップ142と同じ)、ステップ204(図15のステップ144と同じ)、ステップ208(図15のステップ158と同じ)、ステップ210(図15のステップ160と同じ)、ステップ212(図15のステップ162と同じ)の処理の説明は図15の説明に譲り、重複した説明は省略する。
【0110】
図6において、ステップ214、216の処理はパソコン等で構成されるアプリケーション実行部21で行なわれる処理であり、ステップ200〜212の処理はトリガ検知実行ボード23で行なわれる処理である。
【0111】
まず、アプリケーション実行部21で行なわれるステップ214の処理は、トリガ検知のためのプログラムが記録された記録媒体のプログラムに基づいて、ユーザがトリガ検知命令を設定する処理である。具体的には後述する図8に示すダイアログボックスがユーザに提供され、このダイアログボックス上で設定される。
図8では、設定1と設定2の2種類の条件設定を可能としている。そして、各設定では、CAN IDのMask&Match指定とデータフィールドのMatching指定を可能としている。なお、図8では、「複数指定」が選択されている。
ここでは、トリガ検知の論理表記に適した言語を採用することにより、複雑なトリガ設定を簡易な表記方法で表現することが可能である。このような言語として例えばラダー言語がある。
【0112】
次に、ステップ214で設定された簡易な言語で表記されたトリガ検知命令をトリガ検知実行ボード23の共有メモリ41(ホストインタフェース22を構成する)にダウンロードする(ステップ216)。例えばステップ214でトリガ検知命令がラダー言語で表記されている場合、ラダーニーモニックで書き込まれる。
【0113】
トリガ検知実行ボード23のMPU42はこれをコンパイルし、さらにバイナリ命令に変換して第1のRAM44に格納する。
【0114】
トリガ検知実行ボード23は第1のRAM44に格納されたトリガ検知命令に基づいてトリガ検知を行なう(ステップ206)。
【0115】
すでに述べたように、ステップ214で設定されるトリガ検知命令は、高度なトリガ検知の論理表記に適した、且つ簡易な言語を採用でき、複雑なトリガ設定を簡易な表記方法で表現できるようにしている。
【0116】
つまり、新たなトリガ検知のたびに、最も適したトリガ検知条件を設定しコンパイルする。例えば、図15において、設定3の検知条件でトリガ検知するのであったら、点線170内でステップ156の処理だけ含むプログラムを作る。従って、図15の点線170の処理のように分岐のある冗長な処理はなくなり、複雑なトリガ検知処理を短時間で行なえるようになる。
【0117】
図7には、図6のステップ214で設定されるトリガ命令の設定にあたり、トリガ検知の論理表記に簡易な言語を採用した表記例が示されており、2通りのMask&Matchの設定によりトリガ検知する場合の設定内容が示されている。
図7において、(a)にはラダー表記が示されており、(b)にはニーモニック表記が示されている。
【0118】
すなわち、「設定1」は「Trigger1の条件(Mask&Match)に一致し、且つデータフレームのオフセット2バイト目のデータが0x41または0x40のとき」である。
【0119】
また、「設定2」は「Trigger2の条件(Mask&Match)の一致するとき」である。
【0120】
ここで、「設定1」又は「設定2」のどちらか一方の条件が成立したときトリガ検知と判断する。
【0121】
本実施形態では、これらの設定条件をトリガ検知の論理表記に適した言語で表記する。
【0122】
次に、本実施形態に係わるトリガ検知装置20の動作をアプリケーション実行部21における動作とトリガ検知実行ボード23における動作に分けてそれぞれ説明する。
【0123】
アプリケーション実行部21における動作
(1)トリガの設定
(イ)この処理では、まず、トリガ設定画面(ダイアログボックス)をユーザに提供する。図8には、この画面を利用してトリガを設定した場合の画面例が示されている。
【0124】
この画面は、図7の設定条件で画面設定した場合の画面例である。
【0125】
「設定1」は「Trigger1の条件(Mask&Match)に一致し、且つデータフレーム(データフィールド)のデータが設定値のとき」である。
【0126】
また、「設定2」は「Trigger2の条件(Mask&Match)の一致するとき」である。
【0127】
ここで、「設定1」又は「設定2」のどちらか一方の条件が成立したとき(OR)トリガ検知と判断する。
【0128】
なお、上記設定例は、「設定1 OR 設定2」であるが、設定1と設定2の組み合わせには以下のものがある。
(1)設定1のみ
(2)設定2のみ
(3)設定1 AND 設定2
(4)設定1 OR 設定2
(5)設定1以外
(6)設定2以外
(7)設定1以外 AND 設定2
(8)設定1 AND 設定2以外
(9)設定1以外 AND 設定2以外
(10)設定1以外 OR 設定2
(11)設定1 OR 設定2以外
(12)設定1以外 OR 設定2以外
(13)設定1以外 THEN 設定2
(14)設定1 THEN 設定2以外
(15)設定1以外 THEN 設定2以外
【0129】
ここで、「設定1 THEN 設定2」とは、設定1に一致するメッセージを検知したら、以降設定2に一致するメッセージを待つ。そして、設定2の条件に一致するメッセージを受信したときトリガ条件が成立したと判断する、という意味である。
【0130】
(ロ)次に、ユーザが図8の画面上で設定した設定内容をホストインタフェース22の共有メモリ41にダウンロードする。
【0131】
この処理は、図8の画面上でトリガ条件が設定されると「OK」ボタンをクリックすることによってアプリケーション実行部21側においてラダーニーモニックが自動生成され、この自動生成されたラダーニーモニックが共有メモリ41にダウンロードされることによって行なわれる。
【0132】
(ハ)次に、ホストインタフェース22を介し、MPU42に対して、共有メモリ41に書き込まれたトリガ検知の設定内容をコンパイルして第1のRAM44に格納するよう指示する。
【0133】
(2)キャプチャフィルタの設定
(イ)この処理では、まず、キャプチャフィルタ設定画面(ダイアログボックス)をユーザに提供する。図9には、キャプチャフィルタ設定のための画面例が示されている。キャプチャフィルタは、取り込んだフレームを全てトリガ検知するの対象とするのではなく、予めトリガ検知の対象となるフレームを絞り込むために設ける。例えばフレームのアドレスが特定のアドレスのものだけ通過させる。(ロ)ユーザが画面上で設定した設定内容は、ホストインタフェース22の共有メモリ41にラダーニーモニックで書き込む。なお、すでに述べたように、このフィルタを通過したデータのみ第2のRAM45に格納される。
【0134】
(3)ネットワーク監視開始命令
(イ)ネットワーク監視開始のボタンを画面上でユーザに提供する。
(ロ)ユーザがボタンを押すと、ホストインタフェース22を介してMPU42に対してネットワーク監視開始を指示する。
【0135】
(4)ネットワーク監視終了命令
(イ)ネットワーク監視終了のボタンを画面上でユーザに提供する。
(ロ)ユーザがボタンを押すと、ホストインタフェース22を介してMPU42に対してネットワーク監視終了を指示する。
【0136】
(5)キャプチャデータ表示
トリガ検知実行ボード23からネットワーク監視終了通知を受け、トリガ検知実行ボード23がホストインタフェース22の共有メモリ41に書き込んでいるキャプチャデータを読み出し、画面でユーザに提供する。図10にこのときの表示例を示す。
【0137】
トリガ検知実行ボード23における動作
(1)トリガ設定
(イ)アプリケーション実行部21からトリガ検知命令のコンパイル命令を受け取る。
(ロ)これによってホストインタフェース22の共有メモリ41に書き込まれているラダーニーモニックのトリガ検知命令を読み出し、MPU42が実行可能な命令セットを生成する(コンパイル処理)。
(ハ)次に、バイナリ命令に変換し、第1のRAM44に書きこむ。
【0138】
(2)ネットワーク監視、トリガ検知、フレーム取り込み
(イ)アプリケーション実行部21からネットワーク監視開始命令を受け取る。(ロ)ネットワーク監視を開始する。
(ハ)設定内容に従ってトリガ検知処理を行なう。設定には以下のようなものが可能である。これらの設定はアプリケーション実行部21においてユーザが指定する。
【0139】
・設定例1 トリガ条件に一致したフレームを検知してからフレームの取り込みを開始する。取り込んだフレームは共有メモリ41にバッファリングするが、共有メモリ41が一杯になったところでフレーム取り込み処理を終了し、アプリケーション実行部21に監視終了通知を行なう。
【0140】
・設定例2 アプリケーション実行部21からネットワーク監視命令を受け取ると直ちに共有メモリ41へのフレーム取り込みを開始し、トリガ条件に一致するフレームを検知したところで取り込みを終了し、アプリケーション実行部21に監視終了通知を行なう。
【0141】
設定例2では、トリガ条件に一致する前にバッファが一杯になった場合は、FIFO(First In First Out)により、最新のデータが残る形式で取り込みを続け、やはりトリガ条件に一致したところで取り込みを終了する。
【0142】
なお、本実施形態では、ネットワークの監視が終了する原因には以下の3つの場合がある。
(1)アプリケーション実行部21からネットワーク監視終了命令を受けた場合(2)上記設定1の場合で、トリガ条件に一致したフレームを検知してからフレームの取り込みを開始し、共有メモリ41が一杯になったとき
(3)上記設定例2の場合で、トリガ条件に一致するフレームを検知したとき
【0143】
(ニ)設定2の場合には、フレーム取り込みの際には、アプリケーション実行部21によりホストインタフェース22の共有メモリ41に設定されているフィルタ条件に一致するフレームのみを選択的に取り込み、バッファに格納する。格納バッファは、ホストインタフェース22の共有メモリ41を使用する。
【0144】
図11は、トリガ検知実行ボード23におけメッセージ受信処理とその処理時間を示すフローチャートである。
【0145】
この処理では、メッセージ受信処理が開始されると(ステップ220)、データの転送等の受信処理が行なわれる(ステップ222)。
【0146】
次に、設定1のMask&Matchの処理を行ない(ステップ224)、続いて、設定2のMask&Matchの処理を行なう(ステップ226)。
【0147】
続いて、第1のRAM44に格納されたトリガ検知命令に基づきトリガ検知命令を実行する(ステップ228)。
【0148】
続いてトリガ検知か否かが調べられ(ステップ230)、トリガ検知でない場合は(ステップ230でNO)、ステップ234に進むが、トリガ検知の場合は(ステップ230でYES)、トリガ検知時の処理を行なう(ステップ232)。
【0149】
そして、続くステップ234では、メッセージキャプチャ等の受信処理が行なわれ、トリガ検知を終了する(ステップ236)。
【0150】
ところで、この処理は、すでに述べたように、94μsec以内に行なう必要があるが、MPU42の動作クロックが16Mhzの場合ステップ228におけるトリガ検知命令の実行処理時間は約4μsecである。これは、すでに述べたように、例えば、図15において、設定3のトリガ検知条件でトリガ検知する場合、点線170内のステップ156の処理のみ行なえばよいからである。
【0151】
従って、フレームを取りこぼすことなく、複雑な検知条件を設定できる等の効果を奏する。
【0152】
以上説明したように、本実施形態では、アプリケーション実行部21で都度トリガ検知条件を設定し、設定したトリガ検知条件は、ホストインタフェース22の共有メモリ41に書き込む。次に、トリガ検知実行ボード23はアプリケーション実行部21からトリガ命令のコンパイル命令を受け取ると、ホストインタフェース22の共有メモリ41に書き込まれているトリガ命令を読み出し、MPU42が実行可能な命令セットを生成(コンパイル処理)、第1のRAM44に書き込むようにした。
【0153】
従って、その時々のトリガ検知の態様に応じて柔軟なトリガ検知条件を設定でき、図15に示した従来例のような汎用的なロジックを採用した場合の冗長な処理がなくなる。従って、複雑なトリガ条件の設定が可能となる。
【0154】
また、トリガ検知命令を簡易な表記方法で表現できるので、コンパイル処理を簡単に行なうことができる。
【0155】
また、図15の点線170に示す如き分岐命令が存在しないために、複雑な条件の場合でも高速に判定処理が行なえる。
【0156】
【発明の効果】
以上説明したように、本発明では、ネットワークを流れるフレームが予め設定された所定のトリガ検知条件に合致するか否か判別するトリガ検知装置において、上記トリガ検知条件をトリガ検知の論理表現に適した命令語で設定するトリガ検知命令設定手段と、上記トリガ検知命令設定手段で設定されたトリガ検知命令をコンパイルするトリガ検知命令コンパイル手段と、を有し、上記トリガ検知命令コンパイル手段でコンパイルされたトリガ検知命令に基づいてネットワークを流れるフレームが予め設定された所定のトリガ検知条件に合致するか否か判別するようにしたので、その時々のトリガ検知の態様に応じて柔軟なトリガ検知条件を設定でき、複雑なトリガ条件の設定が可能となる。
また、従来では、取りこぼしするおそれのあるような複雑な検知条件の設定をしても、高速処理するので、取りこぼしがない。
【図面の簡単な説明】
【図1】本発明に係るトリガ検知装置が適用されたネットワーク構成を示す図。
【図2】図1に示したトリガ検知装置20のシステム構成を示す図。
【図3】図2に示したトリガ検知実行ボード23の構成を示すブロック図。
【図4】CANのフレーム構成を示す図。
【図5】図4に示したCAN HEADER31の詳細を示す図。
【図6】本実施形態におけるトリガ検知装置の概要を説明する図。
【図7】図6のステップ214で設定されるトリガ命令の設定にあたり、2通りのMask&Matchの設定によりトリガ検知する場合の設定内容を示す図。
【図8】トリガ設定画面(ダイアログ)をユーザに提供する場合の画面例。
【図9】キャプチャフィルタ設定画面(ダイアログ)をユーザに提供する場合の画面例。
【図10】トリガ検知実行ボード23からネットワーク監視終了通知を受け、トリガ検知実行ボード23がホストインタフェース22の共有メモリ41に書き込んでいるキャプチャデータを読み出し、画面でユーザに提供する場合の表示例。
【図11】トリガ検知実行ボード23における処理手順とその処理時間を示すフローチャート。
【図12】Mask&Matchでトリガ検知する場合の説明図。
【図13】従来のメッセージ受信処理の概要を示すフローチャート。
【図14】Mask&Matchでトリガ検知する場合の処理手順を示すフローチャート。
【図15】ユーザのニーズを汎用のプログラムで満たそうとする場合、純粋なトリガ検知処理であるMask&Matchの部分以外に分岐処理等の冗長な処理が入り(例えば、図15の点線170内の処理)、受信処理が最小受信間隔以内に収まらないことを説明するための説明図。
【符号の説明】
10 ネットワーク
11 伝送路
12−1、12−2 通信装置
13 通信装置
20 トリガ検知装置
21 アプリケーション実行部
22 ホストインタフェース
23 トリガ検知実行ボード
24 ネットインタフェース
40 拡張バスインタフェース(拡張バス I/F)
41 共有メモリ
42 MPU
43 ROM
44 第1のRAM
45 第2のRAM
46 CAN制御部
47 トランシーバー[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a protocol analyzer, a trigger detection device, a recording medium on which a program for trigger detection is recorded, and a board. More specifically, a frame flowing through a network using a protocol analyzer meets predetermined trigger detection conditions. The present invention relates to a protocol analyzer, a trigger detection device, a recording medium on which a program for trigger detection is recorded, and a board for determining whether or not to perform the determination.
[0002]
[Prior art]
Generally, a plurality of terminals are connected to a network, and a control device and a controlled device are connected to exchange data and communicate frames and messages.
Particularly, in the field of factory automation (FA), remote I / O communication may be performed when using a programmable controller. In this case, a master station is provided on the programmable controller side and a slave station is provided on the I / O device (device) side, and data and messages are exchanged, for example, on a network called a device net.
However, even if a wrong frame is output on the device side, the frame transmission timing is wrong, or even if a normal frame is transmitted, if data is lost due to noise on the way, a communication error occurs between the programmable controller and the device.
Therefore, there is a device called a protocol analyzer as a device for collecting and analyzing frames flowing on the network in order to pursue a cause of a network-related problem or to accurately grasp the state of the network.
[0003]
For example, the network includes a network called a device net using a protocol called a CAN protocol.
The device net is a distributed network applied to factory automation and the like. Various communication devices and control devices are connected to the network, and input information (messages) and various communication for the various communication devices and control devices are connected to the transmission path. Output information (messages) and the like from devices and control devices flow as frames.
Here, the protocol analyzer monitors messages flowing through the network without imposing a load on the network, while satisfying user needs such as not to miss frames and to set complicated trigger detection conditions.
The basic functions of the protocol analyzer are the following two points.
(1) Frame collection function
(2) Frame display function
The frame collection function is a function of collecting frames flowing on a network, and selectively stores the frames in a memory based on a preset trigger condition. When selecting a frame, a method is adopted in which only frames passed by a filtering function described later are collected.
[0004]
The frame display function is a function of displaying collected frames in a format that can be understood by the user, and performs processing such as displaying time information indicating the interval between frames in a time series via a monitor screen. In some cases, the collected frame information is processed and displayed. For example, the occupation ratio of each type of frame in all collected frames is used.
[0005]
In addition to the above basic functions, there are the following functions.
(3) Filtering function
The filtering function is a function of selectively collecting only specified frames without collecting frames other than the analysis target frames set in advance. By using this function, limited resources, that is, memory capacity can be used effectively. For example, an address number is assigned to a node or a slave, focusing on a specific address number, selectively collecting only frames including that address number, and unnecessarily collecting memory by buffering unnecessary frames. Unnecessary consumption can be prevented.
[0006]
In addition to the above basic functions, there are the following functions.
(4) Trigger detection function
As described above, the protocol analyzer is used for analyzing the failure of the network and grasping the state. In this case, there is a demand to control the timing of collecting the frames according to the conditions set in advance. For example, there is a request to start collection when a specific frame is detected, or to collect frames by first-in first-out (FIFO) at all times, and stop the collection when a specific frame is detected.
[0007]
Here, the "function of detecting that the set condition is met" is called a trigger detection function, and such a condition for controlling the timing of collection is called a trigger detection condition.
The trigger detection function has the following user needs.
(1) Do not drop the frame
(2) I want to set complicated trigger detection conditions
(3) Want to easily set trigger detection conditions
[0008]
Each of these needs is described below.
(1) Do not drop the frame
In the trigger detection processing, it is determined whether or not a set condition is met each time a frame flows on the network. That is, each time a frame flows, the trigger detection is determined for each frame.
Each determination must be completed before the next frame flows to catch up. In other words, the trigger detection processing as frame detection needs to output a determination result at least within a certain time until the next frame comes. If it takes time for the trigger detection process and the next frame flows on the network before the judgment is completed, the frame may be missed because the trigger detection process for this frame cannot be performed. In view of the original purpose of the protocol analyzer, which is to analyze the network, dropping a frame on the network is a fatal flaw.
[0009]
(2) I want to set complicated trigger detection conditions
In analyzing a network, there is a need to narrow down conditions for collecting frames as much as possible and to collect only necessary ones. For example, it is desired that trigger detection be performed by combining a plurality of conditions, in addition to a single condition such as starting collection when a specific bit pattern is detected.
[0010]
For example, a frame including a bit pattern of 1101 frequently flows through the network, and this is not abnormal alone. However, when a frame of a bit pattern of 1110 flows after this 1101, there may be a case where it is considered abnormal. I do. In this case, it is convenient if a combination of the two conditions of “a frame of a bit pattern of 1110 flows after a bit pattern frame of 1101” can be used as a trigger condition.
[0011]
Further, when I / O data (input / output data) having a meaning as an application is included in a frame, it is sometimes convenient to be able to set conditions for the I / O data.
[0012]
By the way, in order to guarantee that (1) “the frame is not dropped”, the following expression must always be satisfied.
[0013]
T Frame Interval> T Detect + T Overhead
[0014]
here,
T Frame Interval = time until next frame reception
T Detect = processing time of trigger detection judgment of received frame
T Overhead = time from reception of frame to start of trigger detection determination process + next frame after trigger detection determination process ends
Time to complete preparation for receiving a frame
[0015]
By the way, as a matter of course, as the trigger detection conditions become more complicated, the processing time T Detect increases. Therefore, the request of (1) "to not drop a frame" and the request of (2) "to set a complicated trigger detection condition" are mutually contradictory requests.
[0016]
(3) Want to easily set trigger detection conditions
It is desirable that the trigger detection condition can be set easily. In particular, in order to satisfy the requirement of (2) “I want to set a complicated trigger detection condition”, it is desirable that the condition can be set as easily as possible and easily.
[0017]
The above is the description of the protocol analyzer and the trigger detection used in the protocol analyzer. Next, a conventional trigger detection method will be described.
[0018]
As described above, in the trigger detection process, it is necessary to acquire a message flowing through the network in real time and determine whether or not the message matches a detection condition set by the user. At the same time, in order to prevent a message from being missed, it is necessary to complete the current reception process before receiving the next message and prepare for the next reception.
[0019]
That is, the trigger detection process must be completed within a limited time.
[0020]
Therefore, conventionally, only a simple detection method can be realized due to the time constraint.
[0021]
As a specific method of trigger detection, a method called Mask & Match is adopted. Mask & Match is a method of masking a part of a received message with a mask value specified by a user and evaluating whether or not the masked value matches the Match value.
[0022]
Now, this will be described with reference to FIG. 12. The received data (a) is masked with a mask value (b) to obtain a value (c) after the mask, and whether this value matches the match value (d)? Find out.
[0023]
For example, in the first data, the received data (a) is “0011” and the mask value (b) is “0011”, so the value (c) after the mask is “0011”.
[0024]
Note that the value (c) after the mask is obtained as a multiplied value of the same-order bits of “0011” of the received data (a) and “0011” of the mask value (b).
[0025]
Here, in the first data, the value (c) after Mask is “0011”, and the Match value (d) is also “0011”. Therefore, the first data reception is a trigger detection.
[0026]
FIG. 13 is a flowchart showing an outline of a conventional message receiving process. This process is, for example, a process when a CAN frame flows on a network called a device net using a protocol called a CAN protocol.
As described later, the CAN frame includes a 19-bit CAN header field, a 64-bit DATA field, and a 25-bit CAN trailer field.
[0027]
In FIG. 13, when the message receiving process is started (step 100), a received
[0028]
Next, it is checked whether or not to execute trigger detection (step 104). This is, for example, whether or not the trigger detection button is pressed on a personal computer screen (not shown) to enter a trigger detection mode. If trigger detection is not executed in the trigger non-detection mode (NO in step 104). The process proceeds to step 108, but if trigger detection is to be performed in the trigger detection mode (YES in step 104), trigger detection processing is performed (step 106). That is, the processing of Mask & Match is performed.
[0029]
Next, in
[0030]
Next, details of the trigger detection processing in
[0031]
In this process, when trigger detection is started (step 120), expected data is obtained from the data storage address (step 122). Acquiring expected data means that even if data collection is started, a filter is provided such that only data having a preset address value is collected. Therefore, only data that has passed this filter is extracted. As described above, for example, since an address number is assigned to a node or a slave, attention is paid to a specific address number, and only frames including the address number are selectively collected. .
[0032]
Next, a mask value is obtained from the internal memory (step 124), and the received data is masked with the mask value (step 126).
[0033]
Next, a Match value is acquired from the internal memory (Step 128), and it is checked whether or not the masked data matches the Match value (Step 130).
[0034]
Here, if the masked data does not match the Match value (NO in step 130), the trigger detection ends (step 134).
[0035]
On the other hand, if the data after masking matches the Match value (YES in step 130), processing for the matching is performed (step 132), and the trigger detection ends (step 134).
[0036]
Note that the processing in the case of a match in
[0037]
[Problems to be solved by the invention]
By the way, as described above, the user's need for trigger detection is not limited to a single Mask & Match, but also allows more complicated trigger detection conditions to be set, and allows the trigger detection conditions to be easily set. It is to be.
[0038]
For example, in the example of FIG. 12, the first data is that the received data (a) is “0011”, the mask value (b) is “0011”, and the value after masking (c) is “0011”. And the Match value (d) is also “0011”. Therefore, the condition for trigger detection is satisfied.
[0039]
By the way, the second data is that the received data (a) is “1011”, the mask value (b) is “0011”, the value after the mask (c) is “0011”, and the mask value (b) is ) Is also “0011”. Therefore, the condition for trigger detection is also satisfied.
[0040]
That is, it is determined that the trigger detection condition is satisfied even when the same Mask value (b) and the same Match value (d) are used, although the received data (a) is different.
[0041]
Therefore, in the trigger detection condition of FIG. 12, it is unknown whether the first data matches the trigger condition or the second data matches the trigger condition.
[0042]
Therefore, there is a need to be able to set complicated trigger detection conditions.
[0043]
In the past, this need was met with a general-purpose program that could set various conditions. However, if a general-purpose program that can set various conditions is to be satisfied, redundant processing such as branch processing is performed in addition to a part of pure trigger detection processing such as Mask & Match, which will be described later. There was a problem that it did not fit within.
[0044]
For example, if two types of Mask & Match can be set, and the first Mask & Match is set to 1 and the second Mask & Match is set to 2, the following setting conditions are possible.
(1) Only setting 1
(2) Only setting 2
(3)
(4) Other than setting 1
(5) Other than setting 2
(6) Other than setting 1 AND setting 2
(7)
(8) Other than setting 1 AND Other than setting 2
(9) Other than setting 1 OR setting 2
(10)
(11) Other than setting 1 OR Other than setting 2
[0045]
Here, among the above setting conditions,
Only setting 1 in (1)
Only setting 2 of (2),
(3) setting 1 AND setting 2,
When a trigger detection process is performed using a general-purpose program in which the three setting conditions can be set, the processing procedure is as shown in the flowchart of FIG.
[0046]
That is, when the trigger detection is started (Step 140), the process of Mask & Match of
[0047]
By the way, the detection processing program shown in FIG. 15 is provided with versatility so that it can correspond to any of the setting conditions (1), (2), and (3), and includes a program surrounded by a dotted
That is, first, the setting content of the trigger setting condition is checked, and first, it is checked whether or not the trigger setting condition is only the setting 1 (step 146). If the trigger setting condition is not only setting 1 (NO in step 146), the process proceeds to step 148. If the trigger setting condition is only setting 1 (YES in step 146), setting 1 is evaluated (step 146). Step 152). That is, whether or not the data after the masking by the mask value of the setting 1 matches the Match value of the setting 1 is evaluated.
[0048]
Next, when it is determined in
[0049]
Next, when it is determined in
[0050]
Then, in the
[0051]
The above is the processing procedure of the trigger detection processing when three setting conditions can be set.
[0052]
By the way, in the above processing, the processing enclosed by the dotted
[0053]
For example, when the setting condition is setting 3 “setting 1 AND setting 2”, processing other than
[0054]
That is, the trigger setting conditions are required to be complicated, but in this case, redundant unnecessary processing increases, and the processing time is prolonged, and there is a possibility that the processing may be missed.
Further, if the trigger setting conditions are complicated, there is a problem that the notation of the program becomes difficult.
[0055]
Therefore, the present invention
(1) Even if the setting contents are complicated, high-speed processing can be performed and there is no loss
(2) To provide a protocol analyzer, a trigger detection device, a recording medium on which a program for trigger detection is recorded, and a board, in which a program can be created in a simple notation even if the setting contents become complicated. With the goal.
[0056]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides
Frames including header and data fields are communicatedIn a protocol analyzer that is connected to the network and captures necessary frames among frames flowing through the network based on predetermined trigger detection conditions,
The result of compiling a trigger detection instruction in which each of the trigger detection conditions set by the selective combination of the use of Mask & Match, the designation of the ID, and the use of the data field is written in a language suitable for the logical notation is stored.Memory and
A receiving process for receiving the frame flowing through the network; andRead and execute the compiled trigger detection instructionAccordingly, a determination process of determining whether or not the received frame has been detected as a trigger is performed, and a trigger detection process performed when the result of the determination process is a trigger detection.A trigger detection determination unit,
Based on the trigger detection processing of the trigger detection determination unitA storage unit for storing the captured frame;
It is characterized by having.
[0057]
Here, the network is a network in which a programmable controller and various devices (control devices) are connected via a transmission line to transmit and receive data. In the embodiment, a
[0058]
A frame refers to a transmission unit of data transmitted on a network. In the embodiment, a frame called a CAN frame is shown in FIG.
[0059]
Explaining trigger detection, as described in the background of the related art section, there are cases where it is necessary to collect and analyze frames flowing on the network in order to pursue the cause of network problems or to accurately grasp the state of the network. is there. In this case, a trigger detection condition is used to distinguish whether a frame is output from a specific node or has a specific bit pattern. That is, the trigger detection condition is a determination condition for distinguishing and determining a frame not to be collected from other frames. In collecting frames, trigger detection conditions are set in advance, and in the embodiment in which trigger detection processing is performed based on the set conditions, the
[0060]
Further, the protocol analyzer of the present invention further has an application execution unit for setting a trigger detection condition,
The application execution unit sets a plurality of trigger detection conditions by selectively combining use of Mask & Match, designation of an ID, and use of a data field by a user.
The above language is a ladder language, and each of the set trigger detection conditions is described in a ladder language, and the above trigger detection command is set.
It is characterized by the following.
[0061]
In the embodiment, a trigger condition setting screen (dialog box) of FIG. 7 is called, and a trigger detection condition in a ladder language is set by an operation on a personal computer. Then, when the “OK” button is clicked, the ladder mnemonic is converted by the application execution unit 21 (personal computer) and downloaded to the shared
[0062]
Then, when there is an instruction to start monitoring from the application execution unit 21 (personal computer), a trigger detection condition described by a mnemonic is called from the shared
[0063]
The application execution unit,
The trigger detection determination unit manages network monitoring start and network monitoring end,
It is also possible to read out and display the captured frame stored in the storage unit.
[0064]
Also,The application execution unit,
When setting the above trigger detection conditions, provide a dialog box,
It is also possible to configure so that a selective combination of use of Mask & Match, designation of ID, and use of data field can be set on the dialog box.
[0067]
Further, the trigger detection device of the present invention is a trigger detection device that determines whether or not a frame including a header and a data field flowing through a network meets a predetermined trigger detection condition set in advance.
The trigger detection conditions are set by a selective combination of the use of Mask & Match, the designation of an ID, and the use of a data field, and each of the set trigger detection conditions is set by a command word suitable for a logical notation. Trigger detection instruction setting means for performing
Trigger detection instruction compiling means for compiling the trigger detection instruction set by the trigger detection instruction setting means,
A memory for storing the trigger detection command compiled by the trigger detection command compiling means, a reception process for receiving the frame flowing through the network, and the frame subjected to the reception process based on the trigger detection command for the memory are preset. A trigger detection determining unit that performs a determination process of determining whether the predetermined trigger detection condition is satisfied, and a trigger detection process that is performed when a result of the determination process matches the condition;
A storage unit for storing a frame captured based on the trigger detection processing of the trigger detection determination unit,
It is characterized by having.
[0068]
In the present invention, the trigger detection condition is set by the trigger detection command setting means with a command word suitable for the logical notation of trigger detection, and the trigger detection command set by the trigger detection command setting means is compiled by the trigger detection command compilation means.
[0069]
That is, each time a trigger is detected, the trigger detection condition is set with a command word suitable for the logical notation of the trigger detection, and the set trigger detection command is compiled.
[0070]
In other words, the program is compiled each time the trigger detection instruction is processed, so that only those steps that require processing steps are required in comparison with a conventional program having general versatility. As a result, the processing time can be saved, and even if a complicated trigger condition is set as compared with the related art, there is no possibility that a frame is missed.
[0071]
Further, the board of the present invention is a board that determines whether or not a frame including a header and a data field flowing through a network matches a predetermined trigger detection condition set in advance,
A host interface that connects to the host and includes shared memory;
A net interface for capturing the frame flowing through the network,
Reading and compiling a trigger detection command indicating the trigger detection condition set by a selective combination of the use of Mask & Match, the designation of an ID, and the use of a data field by a command suitable for a logical notation from the shared memory; Conversion means for converting to binary instructions;
A memory for storing the trigger detection instruction converted by the conversion means,
Executing a trigger detection instruction stored in the memory, and determining whether or not the frame captured from the net interface meets a predetermined trigger detection condition set in advance;
A frame collection unit that collects frames that meet a predetermined trigger detection condition based on the determination result of the determination unit;
It is characterized by having.
[0072]
In the embodiment, the board corresponds to an extension board connected to an extension bus of a personal computer in the
[0073]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of a protocol analyzer, a trigger detection device, a recording medium on which a program for trigger detection is recorded, and a board according to the present invention will be described with reference to the drawings.
[0074]
FIG. 1 shows a network configuration to which a trigger detection device according to the present embodiment is applied.
[0075]
In the present embodiment, the
[0076]
The device net is a distributed network applied to factory automation and the like. Various communication devices and control devices are connected to the network, and input information (messages) and various communication for the various communication devices and control devices are connected to the transmission path. Output information (messages) and the like from devices and control devices flow as frames.
[0077]
That is, for example, the communication device 12-1 (Slave 1), the communication device 12-2 (Slave 2), the communication device 13 (Scanner),... Are connected to the
[0078]
Here, the
[0079]
FIG. 2 shows a system configuration of the
[0080]
Here, the
[0081]
The
[0082]
The trigger
The
[0083]
The trigger
[0084]
Next, the configuration of the trigger
[0085]
The trigger
[0086]
Here, the extension bus interface (extension bus I / F) 40 is attached to an extension bus bus slot (not shown) of the
[0087]
The shared
[0088]
The
[0089]
The
[0090]
The
[0091]
The
[0092]
The
[0093]
The
[0094]
The
[0095]
The net interface (net I / F) 24 interfaces the
[0096]
Next, a message format of a device net flowing through the
[0097]
The device net uses the frame structure of the CAN protocol, and gives 11 bits (CAN Identifier Bits) and a data field in the frame header to have a meaning as a device net.
[0098]
FIG. 4 shows a CAN frame configuration. The
[0099]
FIG. 5 shows details of the
[0100]
By the way, in the CAN frame configuration as described above, the reception interval of the CAN frame becomes minimum when the inter-frame space between the CAN frames is the minimum 3 bits, and when the DATA FIELD (32) of the
[0101]
At this time, the bit length is as follows.
[0102]
CAN HEADER + DATA FIELD + CAN TRAILER
+ Inter frame space
= 19 + 0 + 25 + 3
= 47 (bits)
[0103]
Therefore, when using the fastest communication speed of 500 Kbps on the device net,
47 ÷ 500,000 = 0.000094 (sec)
Becomes
94 μsec is the minimum reception interval.
[0104]
The longest processing time of the trigger detection processing must satisfy the following expression.
[0105]
Minimum reception interval (94 μsec)> reception processing + reception data transfer processing + trigger detection processing
[0106]
Under the configuration of the present embodiment as described above and the conditions as described above, in the present embodiment, trigger detection is performed as follows.
[0107]
First, an outline of trigger detection in the present embodiment will be described with reference to the flowchart of FIG.
[0108]
By the way, the difference between the processing of FIG. 6 according to the present embodiment and the processing of the conventional example shown in FIG. 15 is that the processing within the dotted
[0109]
Therefore, Step 200 (same as
[0110]
In FIG. 6, the processing of
[0111]
First, the process of
In FIG. 8, two types of condition settings, setting 1 and setting 2, can be set. In each setting, it is possible to specify Mask & Match of the CAN ID and Matching of the data field. In FIG. 8, “multiple designation” is selected.
Here, by adopting a language suitable for the logical notation of trigger detection, it is possible to express a complicated trigger setting by a simple notation method. For example, there is a ladder language as such a language.
[0112]
Next, the trigger detection command written in the simple language set in
[0113]
The
[0114]
The trigger
[0115]
As described above, the trigger detection instruction set in
[0116]
That is, each time a new trigger is detected, the most suitable trigger detection condition is set and compiled. For example, in FIG. 15, if a trigger is detected under the detection condition of setting 3, a program including only the processing of
[0117]
FIG. 7 shows a notation example in which a simple language is used for the logical notation of trigger detection in setting the trigger command set in
In FIG. 7, (a) shows ladder notation, and (b) shows mnemonic notation.
[0118]
That is, “setting 1” is “when the condition of Trigger 1 (Mask & Match) is matched and the data of the second byte of the data frame is 0x41 or 0x40”.
[0119]
“Setting 2” is “when the condition (Mask & Match) of
[0120]
Here, when either of the conditions of “Setting 1” or “
[0121]
In the present embodiment, these setting conditions are described in a language suitable for the logical notation of trigger detection.
[0122]
Next, the operation of the
[0123]
Operation in
(1) Trigger setting
(A) In this process, first, a trigger setting screen (dialog box) is provided to the user. FIG. 8 shows an example of a screen when a trigger is set using this screen.
[0124]
This screen is an example of a screen when the screen is set under the setting conditions of FIG.
[0125]
“Setting 1” is “when the condition of Trigger 1 (Mask & Match) is matched and the data of the data frame (data field) is the setting value”.
[0126]
“Setting 2” is “when the condition (Mask & Match) of
[0127]
Here, when either of the conditions of “Setting 1” or “
[0128]
Although the above setting example is “setting 1 OR setting 2”, combinations of setting 1 and setting 2 include the following.
(1) Only setting 1
(2) Only setting 2
(3)
(4)
(5) Other than setting 1
(6) Other than setting 2
(7) Other than setting 1 AND setting 2
(8)
(9) Other than setting 1 AND Other than setting 2
(10) Other than setting 1 OR setting 2
(11)
(12) Other than setting 1 OR Other than setting 2
(13) Other than setting 1 THEN setting 2
(14)
(15) Other than setting 1 Other than THEN setting 2
[0129]
Here, "setting 1 THEN setting 2" means that when a message matching setting 1 is detected, a message matching setting 2 is waited for thereafter. Then, when a message matching the condition of setting 2 is received, it is determined that the trigger condition is satisfied.
[0130]
(B) Next, the setting contents set by the user on the screen of FIG. 8 are downloaded to the shared
[0131]
In this process, when a trigger condition is set on the screen in FIG. It is performed by being downloaded to.
[0132]
(C) Next, via the
[0133]
(2) Capture filter setting
(A) In this process, first, a capture filter setting screen (dialog box) is provided to the user. FIG. 9 shows an example of a screen for setting a capture filter. The capture filter is not provided for trigger detection of all the captured frames, but is provided in advance to narrow down the frames for trigger detection. For example, only frames having specific addresses are passed. (B) The setting contents set on the screen by the user are written to the shared
[0134]
(3) Network monitoring start command
(B) Provide a button for starting network monitoring to the user on the screen.
(B) When the user presses the button, the user instructs the
[0135]
(4) Network monitoring end command
(B) A button for ending network monitoring is provided to the user on the screen.
(B) When the user presses the button, the user instructs the
[0136]
(5) Capture data display
Upon receiving the network monitoring end notification from the trigger
[0137]
Operation in the trigger
(1) Trigger setting
(A) A compile instruction of a trigger detection instruction is received from the
(B) As a result, the ladder mnemonic trigger detection instruction written in the shared
(C) Next, the instruction is converted into a binary instruction and written into the
[0138]
(2) Network monitoring, trigger detection, frame capture
(A) A network monitoring start command is received from the
(C) Perform trigger detection processing in accordance with the settings. The following settings are possible. These settings are specified by the user in the
[0139]
・ Setting example 1 Frame capture starts after detecting a frame that matches the trigger condition. The fetched frame is buffered in the shared
[0140]
Setting Example 2 Frame acquisition to the shared
[0141]
In the setting example 2, if the buffer becomes full before the trigger condition is matched, the capture is continued by the FIFO (First In First Out) in a format in which the latest data remains. finish.
[0142]
In the present embodiment, there are the following three cases that cause the network monitoring to end.
(1) In the case of receiving a network monitoring end command from the application execution unit 21 (2) In the case of the
(3) In the case of the above setting example 2, when a frame matching the trigger condition is detected.
[0143]
(D) In the case of the
[0144]
FIG. 11 is a flowchart showing the message reception processing and the processing time in the trigger
[0145]
In this process, when the message receiving process starts (step 220), a receiving process such as data transfer is performed (step 222).
[0146]
Next, the process of Mask & Match of setting 1 is performed (step 224), and subsequently, the process of Mask & Match of setting 2 is performed (step 226).
[0147]
Subsequently, a trigger detection command is executed based on the trigger detection command stored in the first RAM 44 (step 228).
[0148]
Subsequently, it is checked whether or not a trigger is detected (step 230). If the trigger is not detected (NO in step 230), the process proceeds to step 234. If the trigger is detected (YES in step 230), the process at the time of trigger detection is performed. Is performed (step 232).
[0149]
Then, in the following
[0150]
By the way, as described above, this processing needs to be performed within 94 μsec. However, when the operation clock of the
[0151]
Accordingly, there is an effect that a complicated detection condition can be set without dropping a frame.
[0152]
As described above, in the present embodiment, the trigger detection condition is set each time by the
[0153]
Therefore, flexible trigger detection conditions can be set according to the trigger detection mode at each time, and redundant processing when a general-purpose logic is employed as in the conventional example shown in FIG. 15 is eliminated. Therefore, complicated trigger conditions can be set.
[0154]
In addition, since the trigger detection command can be expressed in a simple notation, the compiling process can be easily performed.
[0155]
Further, since there is no branch instruction as shown by a dotted
[0156]
【The invention's effect】
As described above, according to the present invention, in a trigger detection device that determines whether a frame flowing in a network meets a predetermined trigger detection condition set in advance, the trigger detection condition is suitable for a logical expression of trigger detection. Trigger detection command setting means for setting by a command word, and trigger detection command compilation means for compiling the trigger detection command set by the trigger detection command setting means, wherein the trigger compiled by the trigger detection command compilation means Based on the detection command, it is determined whether or not a frame flowing through the network meets a predetermined trigger detection condition, so that a flexible trigger detection condition can be set according to a trigger detection mode at each time. Thus, complicated trigger conditions can be set.
Further, in the related art, even if a complicated detection condition that may be missed is set, high-speed processing is performed, so that there is no missing.
[Brief description of the drawings]
FIG. 1 is a diagram showing a network configuration to which a trigger detection device according to the present invention is applied.
FIG. 2 is a diagram showing a system configuration of a
FIG. 3 is a block diagram showing a configuration of a trigger
FIG. 4 is a diagram showing a CAN frame configuration.
FIG. 5 is a diagram showing details of a
FIG. 6 is a diagram illustrating an outline of a trigger detection device according to the embodiment.
FIG. 7 is a diagram showing setting contents when trigger detection is performed by setting two types of Mask & Match when setting a trigger instruction set in
FIG. 8 is a screen example when a trigger setting screen (dialog) is provided to a user.
FIG. 9 is a screen example when a capture filter setting screen (dialog) is provided to a user.
FIG. 10 is a display example in a case where a network monitoring end notification is received from the trigger
FIG. 11 is a flowchart showing a processing procedure and a processing time in the trigger
FIG. 12 is an explanatory diagram when trigger detection is performed by Mask & Match.
FIG. 13 is a flowchart showing an outline of a conventional message receiving process.
FIG. 14 is a flowchart showing a processing procedure when a trigger is detected by Mask & Match.
FIG. 15 shows a case where a general-purpose program is used to satisfy the user's needs. In addition to a Mask & Match portion that is a pure trigger detection process, redundant processes such as a branch process are included (for example, a process within a dotted
[Explanation of symbols]
10 Network
11 Transmission line
12-1, 12-2 Communication device
13 Communication device
20 Trigger detection device
21 Application execution unit
22 Host interface
23 Trigger detection execution board
24 Net Interface
40 Expansion bus interface (extension bus I / F)
41 Shared memory
42 MPU
43 ROM
44 First RAM
45 Second RAM
46 CAN control unit
47 transceiver
Claims (6)
Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的組み合わせにより設定されたトリガ検知条件のそれぞれが論理表記に適した言語によって表記されたトリガ検知命令をコンパイルした結果が格納されるメモリと、
ネットワークを流れる上記フレームを受信する受信処理と、上記メモリから上記コンパイルされたトリガ検知命令を読み出して実行することにより、受信処理したフレームについてトリガ検知か否かを判別する判別処理と、判別処理の結果がトリガ検知である場合に処理するトリガ検知時処理と、を行うトリガ検知判別部と、
上記トリガ検知判別部のトリガ検知時処理に基づいて取り込んだフレームを記憶する記憶部と、
を有することを特徴とするプロトコルアナライザ。 In a protocol analyzer which is connected to a network in which frames including a header and a data field are communicated and captures necessary frames among frames flowing through the network based on predetermined trigger detection conditions,
A memory for storing a result of compiling a trigger detection instruction in which each of the trigger detection conditions set by the selective combination of the use of Mask & Match, the designation of the ID, and the use of the data field is written in a language suitable for the logical notation ; ,
A receiving process of receiving the frame flowing through the network; a reading process of reading out the compiled trigger detection command from the memory to execute the command; and a determining process of determining whether or not the received frame has been detected as a trigger. A trigger detection processing unit that performs processing when a trigger is detected when the result is trigger detection ;
A storage unit for storing a frame captured based on the trigger detection processing of the trigger detection determination unit ,
A protocol analyzer, comprising:
このアプリケーション実行部は、ユーザによって、Mask&Matchの使用とIDの指定とデータフィールドの使用とを選択的に組み合わせてトリガ検知条件が複数設定され、
上記言語をラダー言語とし、上記設定されたトリガ検知条件のそれぞれをラダー言語で表記されて上記トリガ検知命令が設定される
ことを特徴とする請求項1に記載のプロトコルアナライザ。 The protocol analyzer further has an application execution unit for setting a trigger detection condition,
The application execution unit sets a plurality of trigger detection conditions by selectively combining use of Mask & Match, designation of an ID, and use of a data field by a user.
The protocol analyzer according to claim 1, wherein the language is a ladder language, and each of the set trigger detection conditions is described in a ladder language and the trigger detection command is set .
上記トリガ検知判別部へネットワーク監視開始とネットワーク監視終了とを管理し、
上記記憶部に記憶した取り込みフレームを読み出して表示するものである
ことを特徴とする請求項2に記載のプロトコルアナライザ。The application execution unit,
The trigger detection determination unit manages network monitoring start and network monitoring end,
The protocol analyzer according to claim 2, wherein the captured frame stored in the storage unit is read out and displayed .
上記トリガ検知条件を設定する際に、ダイアログボックスを提供するもので、
そのダイアログボックス上にてMask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせを設定可能としている
ことを特徴とする請求項2に記載のプロトコルアナライザ。 Above Symbol application execution unit,
When setting the above trigger detection conditions, provide a dialog box,
In the dialog box, it is possible to set a selective combination of use of Mask & Match, designation of ID, and use of data field.
The protocol analyzer according to claim 2, wherein:
上記トリガ検知条件を、Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせにより設定するとともに、設定したトリガ検知条件のそれぞれを論理表記に適した命令語によりトリガ検知命令を設定するトリガ検知命令設定手段と、
上記トリガ検知命令設定手段で設定されたトリガ検知命令をコンパイルするトリガ検知命令コンパイル手段と、
上記トリガ検知命令コンパイル手段によってコンパイルされたトリガ検知命令を格納されるメモリと、ネットワークを流れる上記フレームを受信する受信処理と、上記メモリのトリガ検知命令に基づいて上記受信処理したフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別する判別処理と、判別処理の結果が条件合致である場合に処理するトリガ検知時処理と、を行うトリガ検知判別部と、
上記トリガ検知判別部のトリガ検知時処理に基づいて取り込んだフレームを記憶する記憶部と、
を有することを特徴とするトリガ検知装置。In a trigger detection device that determines whether a frame including a header and a data field flowing through a network matches a predetermined trigger detection condition set in advance,
The trigger detection conditions are set by a selective combination of the use of Mask & Match, the designation of an ID, and the use of a data field, and each of the set trigger detection conditions is set by a command word suitable for a logical notation. Trigger detection instruction setting means for performing
Trigger detection instruction compiling means for compiling the trigger detection instruction set by the trigger detection instruction setting means,
A memory for storing the trigger detection command compiled by the trigger detection command compiling means , a reception process for receiving the frame flowing through the network, and the frame subjected to the reception process based on the trigger detection command for the memory are preset. A trigger detection determining unit that performs a determination process of determining whether the predetermined trigger detection condition is satisfied, and a trigger detection process that is performed when a result of the determination process matches the condition;
A storage unit for storing a frame captured based on the trigger detection processing of the trigger detection determination unit,
A trigger detection device comprising:
ホストに対して接続し、共有メモリを含むホストインタフェースと、
ネットワークを流れる上記フレームを取り込むネットインタフェースと、
Mask&Matchの使用とIDの指定とデータフィールドの使用との選択的な組み合わせにより設定された上記トリガ検知条件を論理表記に適した命令語により示したトリガ検知命令を上記共有メモリから読み出してコンパイルし、バイナリ命令に変換する変換手段と、
上記変換手段にて変換されたトリガ検知命令を格納するメモリと、
上記メモリに格納されたトリガ検知命令を実行し、上記ネットインタフェースから取り込んだフレームが予め設定された所定のトリガ検知条件に合致するか否かを判別する判別手段と、
上記判別手段の判別結果に基づいて所定のトリガ検知条件に合致するフレームを収集するフレーム収集部と、
を有することを特徴とするボード。A board for determining whether a frame including a header and a data field flowing through a network matches a predetermined trigger detection condition set in advance,
A host interface that connects to the host and includes shared memory;
And the net interface to capture the frame through the network,
The trigger detection instruction shown by instruction words Mask & Match use the ID of the specification and selective combining by set the trigger detection condition of use of the data fields for the logical representation compile reads from the shared memory, Conversion means for converting to binary instructions;
A memory for storing the trigger detection instruction converted by the conversion means ,
Executing a trigger detection instruction stored in the memory, and determining whether or not the frame captured from the net interface meets a predetermined trigger detection condition set in advance; and
A frame collection unit that collects frames that match a predetermined trigger detection condition based on the determination result of the determination unit;
A board comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001076968A JP3548911B2 (en) | 2000-03-17 | 2001-03-16 | Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-76909 | 2000-03-17 | ||
JP2000076909 | 2000-03-17 | ||
JP2001076968A JP3548911B2 (en) | 2000-03-17 | 2001-03-16 | Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001333138A JP2001333138A (en) | 2001-11-30 |
JP3548911B2 true JP3548911B2 (en) | 2004-08-04 |
Family
ID=26587858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001076968A Expired - Lifetime JP3548911B2 (en) | 2000-03-17 | 2001-03-16 | Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3548911B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3900470B2 (en) | 2002-01-08 | 2007-04-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Digital signal measuring apparatus and traffic observation method |
DE502006009063D1 (en) * | 2006-11-06 | 2011-04-21 | Tektronix Int Sales Gmbh | Apparatus and method for combining a protocol test and a bit error rate measurement |
-
2001
- 2001-03-16 JP JP2001076968A patent/JP3548911B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001333138A (en) | 2001-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018076650A1 (en) | Method and device for monitoring axi bus, and computer readable storage medium | |
JP2002540751A (en) | Fault data synchronization via peer-to-peer communication networks | |
CN112333044B (en) | Shunting equipment performance test method, device and system, electronic equipment and medium | |
CN110907748A (en) | Distribution lines travelling wave fault acquisition and analysis device and fault positioning system | |
CN110769175B (en) | Intelligent analysis system, method and device | |
JP3548911B2 (en) | Protocol analyzer, trigger detection device, recording medium and board on which program for trigger detection is recorded | |
JPH09248739A (en) | Monitoring device for operation condition | |
JP2004312354A (en) | Environmental monitor system, data logger used therein, and program thereof | |
US6493655B1 (en) | Apparatus for measuring throughput and method of measuring throughput | |
JP2005004529A (en) | Environment monitoring system, and data collection device and data logger for use in this system | |
JPH07321783A (en) | Network monitor equipment | |
US20230188439A1 (en) | Traffic Monitoring Device, Traffic Monitoring Method, and Traffic Monitoring Program | |
JPH09130871A (en) | Time series data transmitter | |
JP3428195B2 (en) | How to record received data using protocol analyzer | |
JP3891237B2 (en) | COMMUNICATION DATA MONITORING DEVICE, COMMUNICATION DATA MONITORING METHOD, AND RECORDING MEDIUM CONTAINING COMMUNICATION DATA MONITORING PROGRAM | |
JP2004248172A (en) | Osi layer 1 transmission data monitoring device | |
JP3789309B2 (en) | Serial bus tester | |
CN113016039A (en) | System and method for processing waveform data in a medical device | |
JPH1168874A (en) | Analytic system for transmission information | |
JPH05113949A (en) | Bus data collection system | |
JP2007264972A (en) | On-site information gathering system and on-site information gathering method | |
JP3424710B2 (en) | Prevention of missing data | |
JP2002314622A (en) | Device for collecting digital modulation and demodulation system data and baseband processor | |
JPH09289510A (en) | Protocol analyzer | |
JP3431516B2 (en) | Information transmission system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040305 |
|
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: 20040324 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3548911 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: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100430 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110430 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |