ちょっと知りたいARCNET物理層基礎講座

 弊社[ArcScan]のご購入前の予備知識としてARCNET物理層基礎講座を開設しております。弊社アナライザーは、あらゆる局面を解析するために時系列データを精密な時間情報と共に長時間PCのハードディスクに保存しています。

そのデータをどのように使うかはある程度ARCNETの基礎知識が必要です。ご購入を検討されているお客様は、是非このページでARCNETの基本を習得して頂いてアークネットアナライザー[ArcScan]を有効活用して頂きたいと思います。

説明の中でメディア・トランシーバー、伝送線路ケーブル、トークン・パッシングを含めて物理層として説明しております。またパケットデータプロトコルを論理層と定義して説明しております。

1. ARCNET物理層基礎講座

ARCNET物理層基礎講座案内画面-1
ARCNET物理層基礎講座案内画面-1

ARCNET物理層基礎講座は、弊社製 ARCNET アナライザーをご購入予定のお客様が特にARCNETに特長的なトークン(ITT)の役割とリンク確立 通信プロトコルの仕組み基本中の基本を理解して頂くために開設しております。

1-1. ARCNETとは?

1-2. トークンとは?

 ARCNETとは、1977年に米国 Datapoint社によって提唱された改良型トークンパッシング・プロトコルのローカルエリアネットワークです。リアルタイム性と簡便さで主に工業用ネットワークとして現在でも世界中で数多く使用されています。

ネットワークシステムの場合、たくさんのノードがどういう規則のもとでネットワークを使用していくのか、どこにネットワークの使用権があるのかが大事です。ARCNETは、ネットワークの使用権を循環させることで実現しています。この方式をトークンパッシング方式と言います。皆さんが日頃からお使いのイーサーネットは、衝突しながら調停していくコリジョン方式と呼ばれます。

ARCNETは、トークンパッシングをチップ自体がハードウェアシーケンサーのマイクロコードで実行するのでリンク確立のプロトコルの実装をほぼ必要としません。他の通信方式に比べてリンク確立のソフトウェアの負担が少ないため低コストで開発が可能ですので現在でも世界中で使用されてます。

 ARCNETプロトコルでは、トークンとは実はARCNETプロトコルで定義されているメッセージのITTがその役割を果たしています。このITTをネットワーク中に循環させることによって、ノードに使用権が渡されます。そして、このトークンを渡されたノードが唯一送信を行うことができ、送信するものがなければ直ちに次へトークン(使用権)を渡さなければなりません。

 このプロトコルでは、基本的に衝突がなく、使用権を平等に各ノードへ渡され、ひとつのノードが優先的にネットワークをコントロールすることがなく、あるノードだけが大きな負荷を受けることもない。大事なことは、比較的高速なリアルタイム性を要求される工業用ネットワークとして最適なネットワークシステムと言えます。現在でも世界中で数多くのシステムで使用されている事を考えれば納得がいきます。

このネットワーク使用権を各ノードが平等に恒久的に得るために、トークンが循環し続ける必要が有ります。

ここで何らかの要因でトークン循環プロトコルが崩れると上位プロトコルで有るパケット転送プロトコルは二次的に致命的な不具合が発生します。バケットデータの消失、ACKプロトコルの消失等によりシステム上は致命的不具合の発生となり、システム異常の報告となりますがほとんどのシステムでは詳細なレポートは出ません。

弊社の[ArcScan]のようにトークンを含めて全メッセージを時間情報を含めて長時間記録出来るような計測器レベルで無ければ詳細な解析は不可能だからです。

通信用語では、お互いのノードの認識を一般的にリンク確立とも言い物理層レベルでの扱いになりますので、論理層レベル(パケットモニター)では、トークンの観測はできません。

このトークン循環プロトコルの仕組みをページの最後に動画で説明しております。アークネットの設計・開発でデバッグする際に大変重要な概念です。

1-3. 実際のトークンを見る!

トークンの表示例
トークンの表示例

 弊社製ARCNETアナライザー [ArcScan] で捉えたトークンの実態です。
実はプロトコル・メッセージのITTを使用しています。ITTがプロトコル上のルールに則って順番に各々のノードから規則正しく送信しています。

ノードID=01,ノードID=02,ノードID=03,ノードID=04,ノードID=05 これを繰り返しています。そして・・・

もし送信したいメッセージが有れば、自分宛てのトークンを受信したら、次のノードへトークンを送信する代わりにメッセージを送信することができます。

2. 接続方法を教えて!

2-1. ARCNET物理層とは?

ARCNET物理層基礎講座案内画面-2
ARCNET物理層基礎講座案内画面-2

 ARCNETは、通信手段ですからある装置とある装置は何らかの方法で通信を行う必要があります。通信も有線通信方式、無線通信方式、光通信方式他、色々な通信方式がありますがARCNETは、有線通信方式、一般的ではありませんが一部光通信方式を採用しています。この通信方式によって通信ケーブルと通信デバイスが決定されます。これらを含めて説明します。

ARCNET物理層と論理層の説明
ARCNET物理層と論理層の説明

 弊社では、ARCNETアナライザーの説明を行う上でARCNET物理層ARCNET論理層とに分けて説明しています。

ARCNET物理層は、リンク確立のためのトークンの循環、通信ケーブルとそれをドライブする通信デバイスまでを物理層としています。パケット送受信に関わるプロトコルはアークネット論理層として説明しています。

2-2. 通信ケーブルとは?

2-3. 通信デバイスとは?

 通信ケーブルとは、ARCNETシステムのノード間の伝送線路を形成するケーブルの総称です同軸ケーブル、またはツイストペアケーブルが主に用いられますが、重要なシステムでは、光ケーブルも使用されています。

同軸ケーブルには、特性インピーダンスの違いがあり主に75Ω系、93Ω系が使用されています。ノード間が比較的近距離の場合 または筐体内のARCNETによるボード間通信にはツイストペア線が用いられます。その場合の伝送線路特性インピーダンスは100Ωから130Ω近辺の値になります。

光ケーブルは、伝送線路が光ファィバーですので絶対的に電波伝搬による空間ノイズの影響がありませんので信頼性は非常に高くなりますが、光・電気変換が必要な事といもずる式に接続するパーティライン方式が使用できませんのでコスト的に高くなります。同軸ケーブル、ツイストペア線共にケーブルに適合した終端抵抗で整合を取る必要があります。

 通信デバイスとは、各々のノードが接続された伝送線路をドライブするICでARCNETメーカー推奨の通信デバイスとしてHYCシリーズ、または市販のRS-485を使用します。

HYCシリーズの特長は、パルストランスを使用してノード・ノード間は絶縁されます。特に長距離のノード・ノード間の接地電位差の解消、伝送線路ノイズの抑圧等で優れています。

RS-485の特長は、コスト面で有利です。またパーティラインを組む際、システム設計のサージ耐量、ノイズ抑圧回路の付加に左右されますが一般的に多くのノードを接続することが可能です。

3. 通信の仕組みを教えて!

3-1. ARCNETメッセージとは?

ARCNET物理層基礎講座案内画面-3
ARCNET物理層基礎講座案内画面-3

 それでは基本的なARCNET通信の仕組みをご説明します。

ARCNET通信は、5種類のメッセージ3個のシステムタイマーを持っています。基本的にパケットプロトコルは、非常に単純明快な仕組みで動いていますがトークンプロトコルは少し複雑です。

ARCNETメッセージ例
ARCNETメッセージ例

ARCNETは、図で示したメッセージ ITTFBEACKNAKPACKETを使用します。

ITTの役割は、1-2.トークンとは ?で詳しく説明していますがネットワーク接続の要でノードがネットワークに接続しているか?常にトークンを巡回しながらリンク確立状態を監視しています。

例えると体育の授業で点呼されている状態です。つまり先生から[番号!]って言われると先頭の人から順番に自分の番号を叫ぶあの状態です。もし生徒が発言したければ、この点呼された時に発言(メッセージ送出)する事ができます。 この点呼は、ある一定の周期で巡って来て必ず発言権を得る事が出来ます。これがARCNETのリアルタイム性の高いネットワークと言われる所以です。もちろん体育の授業で点呼中の発言はできませんが・・・・怒られます。

言い換えるとアークネットプロトコルは、通常は通信の大半をトークンで占められると言っても過言ではありません。ノード間のリンク確立を維持するためトークンを常に循環させているためです。ただしパケットデータ量の多い特殊なシステムでは、トークンの数は極端に少なくなって驚くほど転送効率が高いシステムもございます。

3-2. パケット送受信例を見る!

パケット送受信例
パケット送受信例

 では実際にパケットデータを送受信する際のトークンの流れとそれぞれのメッセージの役割について説明します。

ARCNETでパケット送信したい場合、勝手に送信する事はプロトコル上出来ません。

ARCNETは、トークン循環プロトコルで各々のノードに対して平等にトークンと言うメッセージが廻ってきます。例えて説明すると学校の体育の授業で整列して、点呼を行いますが、先生の「番号」と言う合図の元で規則的に整列して先頭から1,2,3と各々返事をします。自分の番号の順番が廻ってきたら番号の代わりにメッセージを送ることが可能になりますので送り先の状態を確かめてからパケットを送ることが可能になります。締めくくりとして相手に確実に伝わったかどうか確認メッセージを受信してパケット送信は終わりましたので、次のノードへトークンが遷移して完了します。

 具体的なプロトコルを左図にて説明します。

弊社アナライザーで捉えたトークンの循環の様子をご覧ください。
図の上の方ではトークン[ITT]が順序よく流れているのが確認出来ます。

その後、①から④で示した(FBE-ACK) (PAC-ACK)のパケット転送のシーケンスをご覧ください。

この図では有りませんが、NAKは通信相手が内部処理中で忙しかったら、このメッセージで応答します。[今 忙しいから データ送らないでよ]という意味です。

PACKETは、送りたい相手を特定してデータを送る動作です。私から○○さんに△△個のデータを送りました]つまりデータの小包です。この小包が相手に届いたら受け取った方はACKで答えます。注意する事は、受け取らなかった場合は、NAKでは無く無応答です。相手はタイムアウトによって受け取って貰えなかった事を知ります。

特殊な例としてブロードキャストと呼ばれるあるノードから他のすべてのノードに、つまりネットワーク全体に一度にパケットを送る事も可能です。ただし その場合は、パケットの受け取りのハンドシェークが省略されますので注意が必要です。

4. ARCNETの重要な概念とは?

ARCNET物理層基礎講座案内画面-4
ARCNET物理層基礎講座案内画面-4

 ARCNET通信システムの設計・開発・保守を行う技術の方ARCNETの重要な概念としてバースト・再構築があります。この状態遷移はARCNETシステムの物理層では重要な概念です。この状態遷移は、電源投入時には必ず実行されるハードウェア初期化ルーチンですが伝送線路の不具合発生の場合にも、必ず発生します。この場合は厄介です。

4-1. バーストとは?

 バーストとは、先ほどの体育の時間の例で説明します。 先生が[整列]と叫んだら 生徒は一斉に現在の動作を停止して何もしない状態になり、先生の次の指示を待ちます。ネットワークでは、多くの場合、共通のリセットラインは存在しませんので何らかの形でリンク確立に不具合が生じた場合、各々のノードを同時にリセットする必要があります。

アークネット・プロトコルでは、そのために通常の動作では絶対に有り得ない 特異な信号パターンを流して通信を妨害してタイムアウト発生させます。これによってネットワークシステムを初期化します。つまりバーストとはネットワークの強制的なリセット状態です。

もちろんこの状態では、通信は不可能です。出来るだけこの状態の発生は抑止すべきですが、止むを得ない場合が多々あります。バーストと再構築は基本的にセットになって実行されます。この振る舞いは簡易的なパケットモニターでは確認することはできません。

4-2. 再構築とは?

再構築とは、バーストによってリセットされたノードIDをハードウェアプロトコルによって各々のノードが次にトークンを渡すノードIDを再設定する仕組みです。

設定された最高位のノードから下位に向かって順次ノードIDを+1しながら一致するノードを探します。一致したら、NIDレジスターに設定してこれを繰り返してネットワーク内の全ノードにIDを振り分けることを再構築と言います。

もちろんこの状態では、通信は不可能です。出来るだけこの状態の発生は抑止すべきですが、止むを得ない場合が多々あります。この振る舞いは簡易的なパケットモニターでは確認することはできません。

ではなぜ再構築が起きるのかノイズによるノード離脱・再参加の例を用いてこの不具合が発生する仕組みを最後に動画で説明しております。アークネットの保守管理で大変重要な概念です。

4-3. 難解なトークンプロトコルの仕組みを動画で読み解く!

4-4. システムダウンの元凶トークンプロトコルの破綻を動画で読み解く!