RS-485 シリアルインターフェイスの説明

Jason Kelly/著

RS-485 シリアルインターフェイスの説明

無数のシリアルインターフェイスがあることから、それぞれの違いや、どれをいつ使うのかを理解するのは難しいかもしれません。私の尊敬する工学教授がいつも言っていますが、「規格の素晴らしいところは、多数の規格がありそこから選ぶことができるということです。」今日のエンコーダーは、かつてないほどスマートで進化しており、エンジニアはよりシンプルな直交インクリメンタルセンサーを廃棄し、シリアルインターフェイスを備えた高速アブソリュートエンコーダーを採用することが必要となります。そして産業分野のアプリケーションに対しては、すべてのシリアルインターフェイスが等しく作られているわけではありません。高速スピードと産業レベルの堅牢性の両方に対応する、RS-485シリアルインターフェイスは、回転エンコーダーやその他のモーションコントロール機器向けに広く実装されています。

RS-485とは?

RS-485は、電気機器の二地点間通信用の電子インターフェイスと物理層を定義する産業仕様です。このRS-485規格は、電気的にノイズが多い環境で長距離のケーブル敷設を可能にし、同一バス上で複数のデバイスをサポートできます。

RS-485を使用するタイミング、その理由、場所について

RS-485は、1998年にこの規格が作成されて以来、幅広いコンピュータ自動化システムで使用されています。マルチドロップ(同一バス上の複数デバイス)と長距離のケーブル敷設を可能にするこの規格により、産業スペースや自動化スペースで頻繁に使用されているということが容易に理解できます。RS-485は、多数のデバイスが巨大なスペースに分散しているシアターアプリケーションにも使われています。

さらに、RS-485規格が提供するノイズ耐性により、インターフェイスは非常に汎用性が高いものとなっています。エンジニアは、長距離のケーブル配線だけでなく、自動車業界など、エンドアプリケーションでどのようなノイズが発生するかが不明なアプリケーションにも実装されています。電気的にノイズの多い環境で、高速かつ長距離のケーブル長に渡り、そして同一バス上で複数のデバイスを使ってRS-485を使用できる能力は、シリアルインターフェイスを必要とするほとんどのアプリケーションに対して最適な実装となります。

RS-485規格

RS-485は、TIA-485またはEIA-485としても知られている、通信プロトコルのドライバーとレシーバーの電気的特性を定義する基準です。オープンシステム相互接続(OSI)は、最終アプリケーションから、電気層を通し、最終的には図1の物理層に至るまで通信システムのさまざまな層のキャラクタリゼーションを試みます。

オープンシステム相互接続(OSI)モデルの図
図1:オープンシステム相互接続(OSI)モデル

OSIモデルの物理層

OSIモデルの物理層は、デバイスと物理転送メディアとの間の生データの転送を担います。これはデジタルデータへの電気信号の変換を処理し、同時に電圧、タイミング、データレートなどを定義します。

RS-485は2つの信号ライン、「A」と「B」を使用し、これは平衡され、差動でなければなりません。平衡信号は、各信号線で同じインピーダンスを持つツイストペアケーブルでペアを共有する2本の信号線です。これらの信号線のインピーダンスが一致しているだけでなく、レシーバーとトランスミッター側のインピーダンスも一致している必要があります。図2は、典型的なマルチドロップRS-485ネットワークを示しています。各デバイスが差動RS-485トランシーバを持ち、デバイス間のリンクはツイストペアケーブルと終端抵抗から構成されています。

すべてのネットワークが等しくつくられたものではなく、デバイス配置も異なることから、デバイスの配置に使用できるさまざまなトポロジーが存在します。例えば、以下の図2の終端は、ケーブルの最初と最後にのみ使用します。

典型的なRS-485ネットワークトポロジーの図
図2:典型的なRS-485ネットワークトポロジー

平衡ケーブルを使用することで、差動信号使用時のノイズ低減が可能になります。これらの信号、「A」と「B」は差動ペアと呼ばれ、1つの信号はオリジナル信号と一致し、もう1つはオリジナル信号と完全に逆となります。このことから、これは相補信号と呼ばれることがあります。

シングルエンドのインターフェイスでは、レシーバーは設置のために信号を参照し、所定の電圧レベルに基づいて信号状態を解決します(これらは、信号がロジックハイまたはロジックローのどちらであるかを決定するため、ロジックレベルと呼ばれます)。しかし、電圧が落ちたりスルーレートが減少する傾向にある長距離ケーブルでは、信号エラーがしばしば発生します。差動アプリケーションでは、ホストがオリジナルのシングルエンド信号を生成します。その後、これは差動トランスミッターへと行きます。このトランスミッターは、差動ペアを生成してケーブル配線に送信します。2つの信号を発生することで、レシーバーはもはや接地に対して電圧レベルを参照せず、代わりにその信号を互いに参照します。これはつまり、レシーバーは特定の電圧レベルではなく、2つの信号の間の差異を常に見ていることになります。その後、この差動レシーバーは信号のペアを単一のシングルエンド信号へと戻して再構成します。これは、ホストが要求する適切な論理レベルを使用したホストデバイスによって阻害される可能性があります(図3)。このタイプのインターフェースでは、異なる電圧レベルのデバイスを、差動トランシーバー間で通信する方法で互いに動作することも可能です。すべてが共に動作することで、長いケーブル長に渡るシングルエンドアプリケーションで発生する信号の劣化を克服します。

差動ドライバーで駆動し、レシーバーで再構成されたエンコーダー出力の図
図3:差動ドライバで駆動し、レシーバにより再構成されたエンコーダー出力

長いケーブル長で発生する問題は、信号の劣化だけではありません。システム内のケーブルが長ければ長いほど、電気ノイズと干渉がケーブルへ、そして最終的には電気システムへとかかる可能性が高くなります。ノイズがケーブルに入ると、電圧を様々に倍増させますが、平衡ツイストペアケーブルを使用するメリットとなるのは、このノイズが各信号線に対して等しく入ることです。例えば、プラス1ボルトのスパイクは、Aで+1V、Bで+1Vになります。差動レシーバーは互いに信号を相殺して信号を再構築するので、両方の信号線に等しく示されたノイズは無視されます(図4)。この信号線両方で同じ電圧を無視できるというレシーバーの機能は、同相信号除去比と呼ばれます。

両信号に共通のノイズを無視している差動レシーバーの図
図4:両信号に共通のノイズを無視している差動レシーバー

RS-485の物理層のその他の主なメリットとしては、信号電圧仕様です。RS-485は特定のバス電圧の使用を必要としませんが、代わりに、必要な最小差動電圧を指定し、これはシグナルAの電圧とBの電圧間の差分になります。このバスは、レシーバー側で+/- 200mVの最小差分電圧を必要とし、一般的にはすべてのRS-485デバイスが様々な電圧で伝送しているにも関わらず、同じ入力電圧範囲を持ちます。つまり、すべてのRS-485デバイスは、7 ~ 12Vの電圧範囲を受信でき、エンジニアは、その範囲内の任意の伝送電圧でホストシステムを設計できます。これにより、設計者は既存の基板電圧を使用するRS-485システムを作成することができます。

そのため、デバイスが規格の全電圧範囲をサポートしていることを確認するために、製品の仕様を確認することが重要です。例えば、Same SkyのRS-485エンコーダーは、基板上で3.3Vを使用するため、RS-485 3.3Vのトランスミッターを使用します。ただし、このエンコーダーは0Vと12Vの間の入力耐性でもあります。これにより、受信機と送信機の両方で±200mVの最小差動電圧を満たすことができれば、問題なく0~12Vの間の複数の異なる送信電圧で同じRS-485バスを共有することができます。ケーブル長は長くなり、それにより信号線の電圧降下も起こることから、これは特に重要です。ホストデバイスは、+/-1Vの差動電圧で伝送できますが、長いケーブル長では電圧が+/-200mVに低下する可能性があり、これはRS-485では全く問題なく受け入れられます(図5)。

RS-485の最小バス信号レベルの図
図5:RS-485の最小バス信号レベル
物理層が定義されたOSIモデルの図
図6:物理層が定義されたOSIモデル

OSIモデルのデータリンク層

RS-485は、同一バス上の複数のデバイスがある、双方向で通信できるデュプレックス通信システムです。RS-485は、上記の図に示したように、1本の通信線のみを持つ半二重として頻繁に使用されています(「A」と「B」をペアとして)。半二重では、デバイスが、ホストがバスの制御をアサートし、他のすべてのデバイスをリッスンしてコマンドを送信するのと同じ線を使用して順番に実行されます。目的の受信者はそのアドレスをリッスンし、そのデバイスが制御をアサートして応答します。逆に、シリアル周辺機器インターフェイス(SPI)やユニバーサル非同期レシーバートランスミッタ(UART)などの全二重システムでは、専用の入力線と出力線を使用して同時に通信できます。

データ層RS-485では、一般に、ホストUARTが全二重でシリアル通信を駆動および受信するシリアル通信にUARTを使用します。これは、物理層を構成し、RS-485バス上で使用するために信号を半二重差動フォーマットに変換するRS-485差分トランシーバに接続します。次に、ホストはUARTを介してRS-485と通信し、送受信を切り替えるタイミングがトランシーバに通知されます。スレーブデバイスも、同じ方法でUARTを使用します。

専用の送受信ラインを持つUARTにより、全二重、半二重、または単信としても動作することができます。つまり、データは1行でしか送受信しないということです。RS-485は通常半二重であるため、接続されているUARTは、半二重でも動作します。

UARTのRS-485への一般的な用途の図
図7:UARTのRS-485への一般的な用途

UARTインターフェイスは非同期であるため、通信にはクロックが含まれません。ホストデバイスとスレーブデバイスは、独自の内部クロックを使用する必要があり、両方のデバイスがデータを送信するクロックレートを把握する必要があります。これは、バス上のリスニングデバイスがデータをキャプチャできるクロックを含む、シリアル周辺インターフェイス(SPI)などの1本の信号線である、同期システムとは異なります。

さらに、UARTは一般に、ほとんどのデバイスが使用する標準フォーマットを持っていますが、多くのオプションはこの標準を変更するように構成できます。UARTのアイドル状態は電圧が高いため、UARTは、スタートビットと呼ばれる低パルスを使用し、その後8ビットのデータと続き、ハイストップビットで完了します(図8)。

UARTデータフレーミングの図
図8:UARTデータフレーミング

ホストプロセッサはIOピンを使用して、送信モードでRS-485トランシーバをプットし、UART TX線から1バイトをRS-485トランシーバのデータ(DまたはDI)線に送信します。このトランシーバは、シングルエンド型UARTビットストリームをA線とB線上の差動ビットストリームに変換します(図3)。データがトランシーバから離れた直後に、ホストがトランシーバの受信モードを切り替えます。スレーブシステムは同一です。つまり、すなわち、スレーブのRS-485トランシーバが受信ビットストリームを受信し、シングルエンド信号に変換、スレーブUART RXラインを介してホストデバイスに送信します。スレーブの応答準備ができたら、ホストが受信している間に、ホストが元々送信していたように送信します(図9)。

ホストがスレーブ応答でRS-485バスを通してコマンド送信している図
図9:ホストがコマンドをRS-485バスを通して送信し、スレーブが応答
データリンク層が定義されたOSIモデルの図
図10:データリンク層が定義されたOSIモデル

OSIモデルのネットワーク層

ネットワーク層は、RS-485バス上に発生したデバイス間の実際の通信を処理します。RS-485は主に電気仕様なので、会話はここで終了しますが、マルチドロップをサポートするにつれ、OSIモデルでそれに対処する必要があります。

ネットワーク層を対処するための設定されている仕様はありませんが、RS-485バスは、バスの衝突を避けるために、マスターによって適切に管理される必要があります。複数のデバイスが一度に通信しようとすると、バスの衝突が発生し、これはネットワークに非常に有害な影響をもたらす可能性があります。衝突が発生する場合、トランスミッターは両端で衝突し、効果的に両方が短絡を生み出します。これにより、各デバイスが大量の電流を消費し、それによりトランシーバが過熱シャットダウンしていしまう可能性があります。

衝突防止のため、マスターがバスを制御し、個々のデバイスに呼び出します。これは多くの場合、特定のデバイスのみが認識するコマンドセットを持つことや、各デバイスに対して特定のアドレスを持つことで達成されます。バスはすべてのデバイス間で共有されるため、各デバイスはマスターから送信されるコマンド/アドレスを確認しますが、応答するのは個々のデバイスがアサートされたときだけです。

図11 ネットワーク層が定義されたOSIモデルのAlt-Text
図11:ネットワーク層が定義されたOSIモデル

OSIモデルのアプリケーション層

OSIモデルは一連のルールではなく、エンジニアがシステムをキャラクタリゼーションするのに役立つモデルです。RS-485は、アプリケーション層内でキャラクタリゼーションされるバスの実際の実装を伴うOSIモデルの最初の3層内に十分に包含されています。この層は、デバイスが使用するアドレスやコマンドセットと、データの解釈をカバーします。また、設計者へ返されると予測できるデータ量と、バス自体の制御も含まれます。

例えば、Same Sky RS-485エンコーダのアプリケーションは、デバイスからの絶対位置を要求するホストになります。ホストがエンコーダの位置コマンド(アドレス)を送信する場合、エンコーダーは2フルバイトで応答します。次に、ホストはこれらのバイトを解読し、絶対位置が何かを理解します。同時に、コマンドを送信する頻度と、コマンドを送信するデバイスを決定します。簡潔にいうと、アプリケーション層はRS-485バスの実装です。

RS-485規格では、アドレス指定要件を持つ物理層とデータリンク層のみを定義することから、アプリケーション層は、様々な専有またはオープンな通信プロトコルを採用することができます。エンジニアはModbusなどの既存のプロトコルを採用するか、独自のアプリケーションを定義することができます。例えば、Same Skyのエンコーダーは、非常に簡素化されたアドレス指定構造を使用してデバイスをアサートし、迅速なターンアラウンドと最小限の処理時間を可能にします。各エンコーダーのアドレスは1バイトの上位6ビットのみで、下位2ビットがコマンドになります。これにより、エンコーダーは、マスターから1バイトの後で応答を開始できるため、モーション制御アプリケーションにおいて重要な高速ターンアラウンドタイムが保証されます。

すべての7層を持つOSIモデルの図
図12:完全に定義されたOSIモデル

Same SkyのRS-485のエンコーダー

Same SkyのRS-485エンコーダーは高速位置プロトコルを使用し、エンコーダーが1バイト時間内に位置と応答できるようにします。上述したとおり、このフォーマットは64の固有のエンコーダアドレスをサポートします。エンコーダーのアドレスは1バイトの上位6ビットで、下位2ビットがコマンドになります。これらのアドレスは、Same SkyのAMT Viewpoint™ ソフトウェアプログラミングモジュールを介して構成可能です。これらのエンコーダーには、バージョンに応じてさまざまなコマンドがあり、すべてのデバイスは、リセットやゼロ位置の設定などの拡張コマンドをサポートします。

図13:Same SkyのRS-485エンコーダーのアドレス形式
低2ビット 六角 コマンド
00 0x00 読み取り位置
01 0x01 リードターンカウンタ(マルチターンエンコーダーのみ)
10 0x02 拡張コマンドを示す
11 0x03 予約済み

Same Skyのアブソリュート・エンコーダーは、解像度12ビットまたは14ビットを特長としますが、このすべては各位置要求に対して2バイトで応答します。2フルバイトは16ビットになります。これは、エンコーダーはチェックサム計算に上位2ビットを使用できます。アプリケーション層のこの部分により、ホストはエンコーダーから送信されたデータを検証できます。12ビットのエンコーダーの場合は、トランスミッションは上位2ビットにチェックビットを持ち、下位2ビットがゼロで、位置データを含むその間は12ビットになります。

これらのアブソリュートエンコーダーには、回転数をカウントできるように、マルチターンサポート付きもあります。これは14ビットの符号付きカウンタで、データはチェックサムを含む上位2ビットと同じ位置で送信されます。カウンターは符号付であることから、正転と負転はカウントできますが、1ビットのデータが犠牲になります。これは、-8192から8191まで数えられることを意味します。

さらに、Same Skyのアブソリュート・エンコーダーは、2Mbps、ターンアラウンド時間が3マイクロ秒で動作する高速バージョンもあります。ただし、高速で厳しいタイミングの要件を管理できないアプリケーションについては、調整可能なデータレートバージョンがあります。これらのバージョンでは、AMT Viewpointとプログラミングモジュールを使用して周波数のリストから選択でき、速い速度が不要な場合に実装が簡単になります。

結論

高速、長いケーブル長、電気ノイズ耐性、同一バス上の複数デバイスをサポートするRS-485は、幅広い用途で汎用性があるため、回転エンコーダーで人気のシリアルインターフェイスになりました。RS-485インターフェイスを持つエンコーダーの利用を検討している設計者たちは、システム全体の通信における様々な層、実装、ベストプラクティスなど、上記の詳細を理解することで利益を得ることができます。堅牢性と産業レベルの堅牢性の追加を提供する、Same SkyのRS-485インターフェイス付きの静電容量式AMTアブソリュート・エンコーダーは、高精度、低消費電流、環境汚染物質への耐性を備えているため、モーションコントロールアプリケーションにとって魅力的なオプションです。

本投稿に関するコメント、または今後当社で取り上げるべきトピックはありますか? blog@sameskydevices.com にメールでご連絡ください
Jason Kelly

Jason Kelly

モーションコントロール設計とアプリケーションエンジニア

Same SkyのAMTエンコーダーとモーションコントロール製品の設計エンジニアとして、 Jason Kellyはサポートアクセサリやソフトウェアインターフェイス、顧客ツールの作成を含む、広範囲の新しいエンコーダーデザインに取り組んでいます。Same Skyの革新的なAMTエンコーダーとその分野の顧客に対するサポートで彼が重視しているのは、エンジニアリング設計とプラクティスです。彼がラボで設計していないときは、自宅を改造したりトラックの修理をしたり、また彼の妻や家族と一緒に米国北東部の人に知られていない大自然を探索したりして過ごします。