RS-485の概要
RS-232 と同様、RS-485 はシリアル通信規格です。現在の正式な名称は TIA-485/EIA-485-A ですが、一般に RS-485 規格と呼ばれています。 RS-485 は、産業オートメーション、自動車、ビル管理などの業界で広く使用されています。
RS-485 バスは、短い通信距離や低いデータ レートなどの RS-232 の欠点を克服します。 RS-485 は最大 10 Mbit/s のデータ速度をサポートし、理論上の通信距離は最大 1,200 メートルです。 RS-232 のシングルエンド伝送とは異なり、RS-485 は、一方のワイヤが A として指定され、もう一方のワイヤが B として指定される、一対のツイストペア線を介した差動伝送を使用します。
RS-485物理層
RS-485 物理層は、デバイスと物理伝送媒体の間で生データを送信する役割を果たします。電気信号からデジタル データへの変換を処理すると同時に、電圧レベル、タイミング、データ レート、その他のパラメーターも定義します。
① 差動信号
長距離のケーブル配線では信号が減衰し、ノイズや干渉が発生する可能性が高くなります。-これは、ケーブル A と B の電圧振幅の変化として現れます。ただし、差動線を使用する利点は、2 つの信号の差を差し引くことで干渉が打ち消され、正常な信号が出力されることです。両方の信号線の同一電圧を無視する差動レシーバーの機能は、コモンモード除去と呼ばれます。-。


この規格では、ロジック 1 が +2V ~ +6V、ロジック 0 が -6V ~ -2V であると規定されています。
RS-485 は特定のバス電圧を必要としません。最小の差動電圧のみが考慮されます。ケーブル長が長くなると、受信機が受信する電圧が +/- 200 mV に低下する可能性がありますが、これは RS-485 にとっては完全に許容範囲内ですが、これは RS-485 の利点の 1 つです。
多くのトランシーバーは TIA/EIA-485A 規格を満たすか、それを超えています。ただし、実際のアプリケーションでは、デバイスの指定されたパラメータが優先されます。たとえば、特定のトランシーバーの負の最小入力しきい値は -200 mV です。


② 信号の定義
現在の RS-485 コンバータの多くは RS-422 と互換性があるため、これらのコンバータでは、RS-485 の A+ および B- に対応する T/R+ および T/R- というラベルの付いた信号がよく見られます。
DB9 メス コネクタの場合、RS-485 配線定義は次のとおりです。ピン 6 ~ 9 は該当せず、接続しないでください。
| DB9 | 出力信号 | RS-422 全二重配線 | RS-485 半二重配線 |
| 1 | T/R+ | 送信(A+) | RS-485(A+) |
| 2 | T/R- | 送信(B-) | RS-485(B-) |
| 3 | RXD+ | 受信(A+) | 空の |
| 4 | RXD- | 受信(B-) | 空の |
| 5 | GND | アース線 | アース線 |
③ トポロジ
RS-485 は 2 線構成と 4 線構成の両方をサポートしています。- 4 線構成はポイントツーポイント通信に限定されており、現在ではほとんど使用されていません。{6} 2 線構成がより一般的に使用されます。この構成ではバス トポロジが使用され、最大 32 ノードを 1 つのバス上に接続できます。
I²C と同様、RS-485 バスはマスター-スレーブ モードで動作します。ポイントツー-シングルスレーブ モードとマルチスレーブ モードの両方をサポートしていますが、マルチマスター モードはサポートしていません。-


RS-485トランシーバー
RS-485 は差動伝送を使用します。マイクロコントローラーを使用して RS-485 デバイスを制御したい場合は、CAN バスと同様のトランシーバーが必要になります。次の図は、RS-485 デバイスを制御する MCU を示しています。
トランシーバーの内部には、受信機 (上半分) と送信機 (下半分) があります。以下に、MCU が 485 デバイスとどのように通信するかを理解するために、トランシーバーがどのように機能するかを簡単に説明します。

RS-485トランシーバーの内部構造
どこ:
A と B はバスです。
R は受信機入力です。
RE は受信機イネーブル信号です。
DE は送信機イネーブル信号です。
D は送信機の出力です。
イネーブル信号の場合、文字の上に線があるものはアクティブ ロー(例、上図の RE)です。一方、線のないものはアクティブ ハイ(例、DE)です。-。
受信真理値表
送信機の真理値表は次のとおりです。
1. ドライバ イネーブル ピン DE がロジック ハイの場合、差動出力 A と B はデータ入力 D のロジック状態に従います。D のロジック ハイにより、A がハイになり、B がローになります。この場合、差動出力電圧は VOD=VA – VB として定義され、正になります。 D が Low の場合、出力状態は反転し、B が High になり、A が Low になり、VOD は負になります。
2. DE がローの場合、両方の出力がハイインピーダンスになります。-。この場合、D の論理状態は無関係です。
次の真理表は受信機に適用されます。
1. レシーバのイネーブル ピン (RE) がロジック Low の場合、レシーバはアクティブになります。 VID=VA – VB として定義される差動入力電圧が正で、正の入力しきい値 VIT+ を超えると、レシーバーの出力 R が High になります。 VID が負で、負の入力しきい値 VIT- を下回る場合、レシーバー出力 R は Low になります。 VID が VIT+ と VIT- の間の場合、出力は未定義です。
2. RE がロジック High またはフローティングの場合、VID の大きさや極性に関係なく、レシーバ出力はハイ インピーダンスになります。


RS-485データリンク
RS-485 トランシーバーの動作原理については上で説明しましたが、次に RS-485 データ リンクについて簡単に説明します。まず、わかりやすい UART プロトコルのフレーム形式を見てみましょう。
マスターがスレーブにデータを送信するか、スレーブがマスターにデータを送信するかに関係なく、A ラインと B ラインの両方が使用されます。したがって、RS-485 は通常、半二重モードで使用されます。
ホストの GPIO は、RS-485 トランシーバーの DE ピンを制御して、送信モードを設定します。シングル バイトが UART TXD ラインから RS-485 トランシーバーのデータ (D または DI) ラインに送信されます。トランシーバーは、シングルエンド UART ビット ストリームを A ラインと B ラインの差動ビット ストリームに変換します。データがトランシーバーから送信されると、ホストはトランシーバーをすぐに受信モードに切り替えます。
スレーブはマスターと同様に動作します。スレーブは RS-485 トランシーバーの /RE ピンを制御して受信モードに設定し、マスターから送信されたビット ストリームを受信してシングルエンド信号に変換し、スレーブの UART RXD ライン経由で受信します。スレーブは応答の準備ができると、マスターと同じ方法でデータを送信し、マスターは受信モードに切り替わります。
RS-232 から RS-485 への変換
RS-232とRS-485間の変換が可能です。 1 つの方法は、RS-232 を TTL に変換してから、TTL を RS-485 に変換することです。もちろん、RS-232 から RS-485 への直接変換をサポートするチップもあり、そのようなモジュールの多くはオンラインで入手できます。
RS-232 から RS-485 への変換モジュール
RS-485とCANの違い
RS-485 には標準化されたデータ プロトコル形式はありませんが、CAN バスと多くの類似点があります。たとえば、A&B と CANH&CANL は両方とも差動信号です。どちらも通信にトランシーバーが必要です。両方とも 120 オームの終端抵抗を使用するなど、類似点があります。
| バスの特徴 | CANバス | RS-485バス |
| ハードウェアのコスト | やや高め | 安価 |
| バスの利用 | 自動優先順位調停、高い使用率 | ポーリングを使用します。使用率が低い |
| データ転送速度 | 高い | 低い |
| エラー検出メカニズム | コントローラには、低レベルのデータ送信の精度を保証するチェックサム メカニズムが含まれています。- | 物理層仕様のみ。データリンク層仕様なし |
| 単一ノード障害の影響- | バスには影響なし | バス麻痺 |
| 開発費 | 柔軟なソフトウェア開発、低時間コスト | 開発が難しい |
| システムコスト | 比較的低い | 高い |
一般的な RS-485 回路
以下は、オンラインで見つけた一般的な RS-485 回路です。注意すべき点は次の 2 つです。
1. イネーブル信号 RE および DE は、リソースを節約するために単一の GPIO によって制御できます。 GPIO25 が High レベルを出力すると、RE と DE は 0 V になり、デバイスは受信モードに入ります。 GPIO25 が Low レベルを出力すると、RE と DE は 3.3 V になり、デバイスは送信モードに入ります。
2. 一部の回路では、ピン A にプルアップ抵抗-、ピン B にプルダウン抵抗-が追加されます。この主な理由は、RS-485 バスがアイドル状態にあるとき、電圧レベルが固定されず、-つまり -200 mV と +200 mV の間で変動し、トランシーバーが高レベルまたは低レベルを出力する可能性があるためです。 UART はアイドル時に高レベルを維持する必要があります。このときトランシーバーがローレベルを出力すると、UART はそれをスタートビットとして解釈し、通信エラーが発生する可能性があります。 R_u と R_d の特定の値については、ここでは詳しく説明しません。この点については今後詳しく記事を書く予定です。

2点目については、以下の点にご注意ください。
① A ピンにプルアップ抵抗を接続し、B ピンにプルダウン抵抗を接続すると、逆接続によりデータ通信が失敗する可能性があります。-
② トランシーバーにプルアップ抵抗とプルダウン抵抗が-組み込まれている場合は、-、外付け抵抗を追加する必要はありません。




