1. ホーム
  2. 製品・技術情報
  3. RS-422/485について

製品・技術情報

RS-422/485について

  • 2009.12.10

アプリケーションノート / 第5章 ソフトウェア

始めに

RS-422、RS-485は、ハードウェアの仕様書です。ソフトウェアのプロトコルは、どの仕様書にも説明はありません。システムに適するプロトコルを規定するのは、システム・デザイナに任されています。この章は、プロトコルの標準を作ろうとしている訳ではありませんが、ソフトウェアを開発するか、ソフトウェアを購入するか、システム・デザイナが考える必要のある問題点のいくつかを説明します。

RS-422 システム

RS-422システムのソフトウェアは、通常の一対一のRS-232C通信システムと少し異なります。RS-422は、RS-232Cの仕様を超えて単純にノード間の距離を延長するのに使用されます。RS-422は、またこの章の後で説明される4線式のマスター/スレーブ・ネットワークのマスター・ノードとしても使用可能です。RS-422システムのソフトウェアを選購入するか、ソフトウェアを開発する時に、デザイナーは、システムの中でハードウェアが使用する信号に通じている必要があります。多くのRS-422システムでは、長い距離に渡って追加導線を張るコストの事を考えて、RS-232Cのシステムで良く見られるハードウェアのハンドシェーク・ラインを組み込みません。 

RS-485 のドライバー制御

RS-422 と RS-485の基本的な違いとして、RS-485ドライバーは、トライステート・モードのハイインピーダンスに出来ることで、これにより他のドライバーは、同じペアー線上に送信する事が可能です。RS-485ドライバーをトライステートにするのに二つの方式があります。最初の方式は、ドライバーをイネーブル、ディゼーブルにするために、通常RTSのハンドシェーク・ラインである制御ラインを使用します。これは、ドライバーをイネーブルにするために送信を始める前にホストソフトウェアが、RTSラインを上げ、次に送信が完了した後にRTSラインを下げることが必要です。ネットワーク上で一度に一つのRS-485ドライバーだけをイネーブルに出来ますが、二つのドライバーが同時にラインを制御しようとする、ライン競合と呼ばれる状態を防ぐためにドライバーは、送信後に出来るだけ早くディゼーブルになることが重要です。オペレーティング・システムによっては、タイムリーな方法でRTSを下げるのが困難な場合があり、このようなドライバーの方式は、完全に避ける必要があります。

RS-485ドライバー制御の2番目の方式は、自動送信データの制御です。このタイプの制御には、データが送信されている事を検知する特別な回路が必要で、送信終了の1文字長以内にドライバーをディゼーブルにするのと同様にドライバーを自動でイネーブルにします。これはソフトウェアのオーバーヘッド、プログラマーの潜在的な落とし穴を押さえますので、ドライバーの制御方式として好まれています。

RS-485 レシーバの制御

RS-485レシーバは、イネーブル信号を持っています。2線式のRS-485システムは、ドライバーをループバックの形でレシーバに接続しますので、この機能は大抵送信している間ローカルデータのエコーを止める為に、レシーバをディゼーブルにして使用します。その他のアプローチとして、RS-485のレシーバをイネーブルにしたままにし、そのラインに競合が起きた事を表示するエラーに対するループバックデータを監視します。良いループバック信号が、データの品質を補償する訳ではありませんが、エラー検出の度合いを示します。

マスター/スレーブ・システム

マスター/スレーブタイプのシステムは、スレーブ・ノードの各々にコマンドを発行し、レスポンスを処理するノードを一つ持っています。スレーブ・ノードは、通常マスター・ノードからの要求無しにデータを送信しません、またお互いに通信をすることもありません。それぞれのスレーブは、特定のアドレスを持つ必要があり、他のノードから独立してアドレスが振られます。このタイプのシステムは、2線式、4線式として構築する事が可能です。4線式システムは、システムの複雑さを回避するために大抵RS-422のマスター(ドライバーは、常にイネーブル)とRS-485のスレーブを使用します。

4線式 マスター/スレーブ・システム

このシステムは、ドライバーとレシーバが常にイネーブルですので、システムの中に2本の余分な導線を引く費用で、ホストでのソフトウェアの複雑性を防ぎます。マスター・ノードは、単純にスレーブのアドレスを使用してコマンドを発行します。ここでは、データ・エコーや折り返しの遅延を考慮する必要はありません。スレーブ送信機の各々は、同じペアー線を共有しますが、マスターは同時に複数のノードからのデータを要求しないこと、またはデータ衝突が発生することに留意する必要があります。

2線式 マスター/スレーブ・システム

2線式システムは、システムが多少複雑になります。RS-485ドライバーは、他のノードが共有ペアー線を使用出来るように、使用されない時にはトライステートにする必要があります。 送信の最後とトライステート状態の間の遅延時間は、このシステムでは非常に重要なパラメータになります。もしマスターがラインをトライステートにする前にスレーブが応答を始めると、衝突が発生しデータが消失してしまいます。システム・デザイナは、スレーブ・ノードのそれぞれのレスポンス時間または往復時間の遅延を知る必要があり、またマスターはその時間内にドライバーがトライステートになることを確認する必要があります。B+B SmartWorxのAutomatic Send Data制御回路を使用したRS-232C - RS-485コンバータは、正にハードウェア制御を行い、送信最後の一文字の長さ以内にドライバーをトライステートにします。

複数マスター型のRS-485システム

複数マスター型のRS485システムの中のそれぞれのノードは、データ衝突予測を行うノード自身の送信を開始する事が出来ます。このタイプのシステムには、デザイナーが、ライン争奪検知、送信認知、エラーデータの再送システム等の方法を含む、より洗練されたエラー検知の方法を取り入れる必要があります。

ポート給電型のコンバータを使用したシステム

RS-232Cポートから電源を得る、RS-232C とRS-422 または RS-485のコンバータは、データシステムの中では、一般的になりつつあります。RS-232C とRS-422 または RS-485のコンバータのタイプを使用したシステムの中では、使用しないハンドシェーク出力を高い電圧状態に設定するのは良い方法です。このことにより、使用される全てのコンバータを動作可能な最良の状態にします。