PR
スポンサーリンク

【入門】RS485とは?仕様、配線、終端抵抗などわかりやすく解説!

サムネ:【入門】RS485とは?仕様、配線、終端抵抗などわかりやすく解説!

皆さんこんにちは!メカ旦那です。

通信ケーブルでよく聞く「RS485」。
差動通信でノイズに強い特長があり、工場やビルなど信頼性が求められる場所で利用されている規格です。

奥が深いですが、イラストを用いてわかりやすく解説します!

通信仕様

第1層(物理層)

通信には多数の規格(ルール)があり、組み合わせる事で1つの送受信が成立しています。電気に関する事、データ伝送に関する事、ユーザーが使うアプリに関する事など、その「機能」に着目して規格を分類する手法をOSI参照モデルと言います。

OSI参照モデル:電気に関する事、データ伝送に関する事、ユーザーが使うアプリに関する事など、その「機能」に着目して規格を分類する手法をOSI参照モデルと言います。RS485は第1層(物理層)の規格になります。電気的な事を規定しています。

それぞれの層は完全に独立しているわけではなく、例えば下位層の規格利用を前提に、上位層の仕様が設計されていたりする事も多いです。

RS485は第1層(物理層)の規格になります。電気的な事を規定しています。

特徴

物理層を含む規格は多数ありますが、特徴で分類するとこんな感じです。

特徴:RS485はデジタル、シリアル、非同期、差動、半二重(2線式)もしくは全二重(4線式)

の通信です。

RS485は

  • デジタル
  • シリアル
  • 非同期
  • 差動
  • 半二重(2線式)もしくは全二重(4線式)

の通信です。
よくわかりませんね、、、一つずつ解説します!

アナログ / デジタル

アナログとデジタルの違い:アナログは連続的な値を取りますが、デジタルは0と1の2値を用います。RS485はデジタル。

アナログは連続的な値を取りますが、デジタルは0と1の2値を用います。例えば電話やラジオはアナログですが、PC、マイコンだとデジタル通信が主流になります。RS485はデジタルです。

パラレル / シリアル

パラレルとシリアルの違い:パラレルは複数の信号線でまとめて通信します。対して、シリアルは1本の信号線を用いて通信します。RS485はシリアル。

デジタルは0と1を多数のbitで送受信します。パラレルは複数の信号線でまとめて通信するのに対し、シリアルは1本の信号線を用いて通信します。例としてパラレルはプリンター、シリアルはマウスやキーボードで利用されています。

一見、パラレル通信の方が一度に多くのデータを送信でき効率的に思えますが、配線が長くなると、各信号の時間ズレが発生し、上手く送受信できないことがあります。シリアルはその時間ズレが無い上に配線数が少なく済むため、最近の高速通信ではシリアルが主流になっています。RS485もシリアル通信です。

クロック同期 / 非同期

クロック同期と非同期の違い:クロックが共有されている状態はクロック同期と呼ばれています。対して共有はされていませんが、各々独自のクロックを持って通信することを非同期(調歩同期)と言います。RS485は非同期。

デバイス間で送受信する際、いつ送るのか、いつ受け取るのか、といったタイミング(クロック)を両者で認識する必要があります。クロックが共有されている状態はクロック同期と呼ばれています。対して共有はされていませんが、各々独自のクロックを持って通信することを非同期(調歩同期)と言います。イメージは、クロック同期が同じ壁掛け時計を見ながら通信、非同期はそれぞれの腕時計を見ながら通信、ですかね。

同期通信はクロックが共有されているため、送受信にズレが生じないです。一方、非同期はクロック専用の信号線が不要なため配線数を少なくできるのが特長です。RS485は非同期通信になります。

シングルエンド / 差動

シングルエンドと差動の違い:信号電圧がある基準電圧より低い状態を0、高い状態を1とする方式をシングルエンド(不平衡) と呼びます。対して、信号が2つあり、電圧の差分から0,1を判別する方式を差動(平衡)と言います。RS485は差動。

デジタル通信なので、何を0とするのか、1とするのかの基準があります。信号電圧がある基準電圧より低い状態を0、高い状態を1とする方式をシングルエンド(不平衡) と言います。対して、信号が2つあり、電圧の差分から0,1を判別する方式を差動(平衡、ディファレンシャル)と言います。

シングルエンドは信号線が1本で済むメリットがありますが、ノイズが入った時に0を1(もしくはその逆)と誤認識してしまう恐れがあります。対して差動信号は信号線は2本いるものの、電圧差を見ている関係上、ノイズによる影響が少ないメリットがあります。RS485は差動になります。 

全二重 / 半二重

全二重と半二重の違い:データを送受信する際、2本の伝送路で別々に行う方式を全二重通信(フルデュプレックス)と呼びます。対して、1本でまとめて行う方式を半二重通信(ハーフデュプレックス)と言います。RS485は半二重。

データを送受信する際、2本の伝送路で別々に行う方式を全二重通信(フルデュプレックス)と呼びます。対して、1本でまとめて行う方式を半二重通信(ハーフデュプレックス)と言います。全二重は送受信を同時に行うことができるのに対し、半二重は同時に行えません。ただし信号線が1本で済むのがメリットです。

RS485は後述の通り配線が2種類ありますが、2線式だと半二重4線式だと全二重になります。

配線

ポイント

続いて実際の配線についてです。

ポイントは

  • 2線式と4線式がある
  • 信号端子はA、Bの2種類ある
  • 終端抵抗が必要
  • ツイストペアケーブルを使用する
  • GNDを合わせる

です!

2線式、4線式

2線式:ノード同士を2本の電線で結ぶ方式を2線式と言います。2線式は半二重通信のため同時送受信ができません。
4線式:ノード同士を4本で結ぶ方式を4線式と言います。全二重通信のため同時送受信が可能です。

RS485には2線式と4線式、2種類の配線があります。その名の通り、ノード同士を2本の電線で結ぶ方式を2線式、4本で結ぶ方式を4線式と言います。

特徴として、2線式半二重通信のため同時送受信ができません。一方4線式全二重通信のため同時送受信が可能です

項目2線式4線式
バスの配線数24
伝送路半二重全二重
同時送受信
送受信方向切り替え必要
(バスでのデータ衝突を防ぐため)
不要
マルチドロップ(多対多)
接続
容易難しい
用途FA、ビル設備など金融端末、医療機器など

どちらも一長一短ありますが、省配線、低コスト、マルチドロップが容易、の点から2線式が広く使われています。

ちなみに後で説明する電気仕様(信号端子A/B、終端抵抗)については両者とも同じになります。

信号端子A、B

信号端子はA、Bの2種類を使います。A、Bの電圧(Va、Vb)は以下を満たす必要があります。

信号端子A、B:

ドライバー出力時 
Va、Vbの差が1.5V以上ある事

レシーバー入力時
Va、Vbの差が0.2V以上ある事

コモンモード電圧 
(Va + Vb)/2 が−7〜+12Vの範囲に入っている事 

つまりVa , Vbが極端に大きいのはNG
  • ドライバー出力時 
    • Va、Vbの差が1.5V以上ある事
  • レシーバー入力時
    • Va、Vbの差が0.2V以上ある事
  • コモンモード電圧 
    • (Va + Vb)/2 が−7〜+12Vの範囲に入っている事 
    • つまりVa , Vbが極端に大きいのはNG
  • Va、Vbの高低と、0、1の関係性は規格で定められておらず、製品による。
メカ坊や
メカ坊や

なるほど、差動信号だから電圧差が重要なんですね~

メカ旦那
メカ旦那

その通りです!

ちなみに電圧差は規定しているものの、電圧値そのものに条件はありません。これはRS485が「工場やビルなど様々な環境で使えるように」を前提に設計されており、電圧値は各メーカーで自由に決めれるようにしているためです。

一方、同じ差動信号のCANは電圧差以外に、電圧値そのものにも規格を定めています。これはメイン用途を自動車向けにしており、「1本のバスに様々なメーカーの機器が繋がっても、故障が起きないように」を前提に設計されており、仮に各機器で信号電圧値が異なると一部のトランシーバが故障し、車の事故に繋がるリスクがあるためです。

終端抵抗

配線図にもありましたが、バス両端に抵抗120Ω×2個並列に接続する必要があります。これは終端抵抗(ターミネータ)と呼ばれています。

終端抵抗の役割は信号反射を防ぐことです。

例えば2つのノードでの送受信時、終端抵抗が無いと配線とレシーバーのインピーダンス差により反射が生じて元の電圧波形がおかしくなり、受信側の誤検知に繋がります。一方、終端抵抗のインピーダンスは配線とほぼ同じの為、電流はほぼ抵抗に流れ、レシーバーに流れる電流が小さくなり、反射を防ぐ事ができます。

終端抵抗:バス両端に抵抗120Ω×2個を並列に接続する必要があります。これは終端抵抗(ターミネータ)と呼ばれています。終端抵抗の役割は信号反射を防ぐことです。

ツイストペアケーブル

信号線A、Bはツイストペアケーブル(2本の電線をより合わせたもの)にした方が良いです。

RS485は差動信号の為ノイズには強いのですが、信号線が離れていると、一方は強くノイズが出て、もう一方は出ない事があります。そうすると、受信側で意図しない電圧差を検知してしまい誤動作に繋がります。ツイストペアにする事で信号線間の配線距離が近いため、同じようにノイズが表れ、結果電圧差への影響が少なくなります。

ツイストペアケーブル:信号線A、Bはツイストペアケーブル(2本の電線をより合わせたもの)にした方が良いです。RS485は差動信号の為ノイズには強いのですが、信号線が離れていると、一方は強くノイズが出て、もう一方は出ない事があります。そうすると、受信側で意図しない電圧差を検知してしまい誤動作に繋がります。ツイストペアにする事で信号線間の配線距離が近いため、同じようにノイズが表れ、結果電圧差への影響が少なくなります。

GNDを合わせる

どのシリアル通信もそうですが、信号電圧によって0、1が決まります。ここで各ノードでGND電位が合ってないと、例えば送信側から出力した電圧が、受信側では意図せず高くなってしまい認識できないという現象が発生します。その為配線図の通りGND間は繋げるようにしてください。 

トランシーバ

内部回路

もっとRS485を詳しく理解したい方向けに、入出力の仕組みについて解説します。

RS485機能を持つPC/マイコンには、基板上にトランシーバが実装されています(無い場合は類似する回路が組み込まれています)。

以後、この「MAX3485ED」を例に、一般的な仕様について解説します。

通信の流れは、

  • CPUからUARTで出力した信号を、トランシーバでRS485に変換し、外部へ出力する 
  • 外部からの入力はその逆

です。

UARTって何?という方はぜひこちらもご覧ください!

配線のイメージはこちらです。

回路図:RS485トランシーバには、電源、A,B、DI、DE、RO、/REピンがある。

一般的なピンの役割はこちらです。

トランシーバ ピン
  • Vcc, GND:電源
  • A, B
    • RS485の入出力端子
  • DI (Driver Input)
    • CPUのUART TXを接続。入力された信号はドライバーでRS485へ変換・出力され、最終的にA/Bから出力される。
  • DE (Driver Enable)
    • データ衝突防止用の送信方向切替端子で、2線式で使用します。
    • HIGH(1)にする事でドライバー出力(UART→RS485への変換)が有効になる。
  • RO (Receiver Output)
    • CPUのUART RXを接続。A/Bに入ってきたRS485は、レシーバーに入力され、UARTに変換・出力し、最終的にこの端子から出力される。
  • /RE (Receiver Enable)
    • データ衝突防止用の送信方向切替端子で、2線式で使用します。
    • LOW(0)にする事でレシーバー出力(RS485→UARTへの変換)が有効になる。

わかりやすいように、各ピンに入力する値によって出力がどう変わるかを送信方向別に整理してみました。

■送信時 CPU → (DE,DI)トランシーバ(A,B) → 外部機器 

DEDI(UART Tx)A (RS485)B (RS485)
00 もしくは 1Hi-ZHi-Z
1001
1110
例:MAX3485ED    Hi-Z = ハイインピーダンス(0でも1でもない不定な状態)

■受信時 外部機器 →(A,B)トランシーバ(/RE, RO) → CPU 

A (RS485)B (RS485)A-B/RERO
(UART Rx)
Hi-ZHi-ZHi-Z01
01<= -0.2 V00
10>= +0.2 V01
1Hi-Z
例:MAX3485ED    Hi-Z = ハイインピーダンス(0でも1でもない不定な状態)

このように、送信方向をDE, /REで制御し、それに合わせてDI, ROで入出力を行っています。

ちなみに、DE, /REを両方とも有効にした時、DEが優先され、/REは無効となります。

変換器

メカ坊や
メカ坊や

最近のPCやマイコンってRS485ポート見ないですよね~

メカ旦那
メカ旦那

そうなんですよね~
最近は他の通信方式から変換できる変換器が容易に入手できる事もあり、元からポートが付いていないPCがほとんどです。特にUARTUSBの変換器はAmazonで簡単に購入できます。

A/B端子にRS485を、もう片方の端子にUART,USBを繋ぐことで変換できます。

ちなみに、USB変換器は内部で USB ⇔ UART ⇔ RS485 というUARTを介した変換になっています。

RS485を利用する上位規格

前述の通りRS485は第1層(物理層)の規格になりますが、様々な上位プロトコルがRS485を利用しています。代表例について解説します。

RS485を利用する代表的な規格:Modbus RTU / Modbus ASCII
Profibus-DP
BACnet MS/TP
  • Modbus RTU / Modbus ASCII
    • OSIの第1、2、7層で構成。
    • 第1層は他の規格も利用できるが、RS485が事実上の標準となっている。また第2層はUARTが使われている。
    • FA業界(工場自動化設備)で広く利用されており、PLC、インバータでは標準の規格となっている。
  • Profibus-DP
    • OSIの第1、2、7層で構成。
    • 第1層は多少厳密化されているが、RS485ベースとなっている。
    • ドイツ生まれの規格。Modbusと同じくFA業界で利用され、シーメンスで採用されている。
  • BACnet MS/TP
    • OSIの第1、2、6、7層で構成。
    • 第1層はRS485が使われている。
    • 空調・ビル設備では標準の規格となっている。

RS232C、422、485の違い

メカ坊や
メカ坊や

なんか色々調べてたらRS232Cとか422とかも出てきました。違いがよくわからないです。。。

メカ旦那
メカ旦那

紛らわしいですよね… 違いを表にまとめてみました!

RS232C 配線図

RS232Cの簡略回路図

RS422 配線図

RS422の簡略回路図

RS485 配線図

RS485の簡略回路図
項目RS232CRS422RS485
全二重/半二重全二重全二重2線式:半二重
4線式:全二重
シングルエンド/差動シングルエンド差動差動
信号端子TXD、RXD
RTS、CTS
DTR、DSR
RI、DCD
TxD+ (T+, Y)、
TxD- (T-, Z)、
RxD+ (R+, A)、
RxD- (R-, B)、
A、B
終端抵抗不要必要
終端(受信側)1か所
必要
2線式:両端2か所
4線式:両端4か所
接続1対1マルチドロップ
1対N(N=1~10)
マルチドロップ
N対M (N,M=1~32)
最大通信距離15 m1200 m 1200 m
通信速度~ 115 kbps~ 10 Mbps~ 10 Mbps
ノイズ耐性弱い強い強い
用途FA機器
モデム
 昔のプリンタ など
FA機器
ビル管理 など
FA機器
ビル管理
パワコン など

歴史的には RS232C → RS422 → RS485と進化してきた経緯もあり、現在はRS485が最も高性能な規格になっています。

まとめ

RS485の特徴をまとめるとこちらです。

  • データの伝送方式:デジタル、シリアル、非同期、差動
  • 配線:2線式(半二重)と4線式(全二重)がある、信号はA,Bの2種類、終端抵抗が必要、ツイストペアケーブルを使用
  • トランシーバ:CPUのUARTを変換
  • OSI:RS485は第1層。様々な上位プロトコル(Modbus RTU、Profibus-DP、BACnet MS/TP)がRS485を使用。
  • RS232C、RS422との関連:RS485はこの2つから進化した規格。

RS485は最近のPC/マイコンでは見かけなくなりましたが、差動でノイズに強い特長もあり、多くの業界で使用されているので、今回の解説が参考になれば幸いです!

また他のシリアル通信についても解説しているのでぜひご覧ください!

メカ旦那

旧帝大工学部を卒業後、生産設備や産業用ロボットを対象とした電気制御設計職をしています。電験三種も保持しています。電気・電子・制御・通信について初心者向けにやさしく解説します!

メカ旦那をフォローする
通信
スポンサーリンク

コメント