interface:rs485

RS485

平衡型のインターフェース,RS422はドライバ(送信)とレシーバ(受信)が1対1で通信する.レシーバは複数接続することが可能.要は1:Nの通信が可能. これをマルチドロップ呼ぶ

RS422はTIA/EIA-422という平衡型デジタルインターフェース回路の電気的特性を定めた技術標準(規格) この規格では,1つのドライバのみが最大10のレシーバにデータを送ることが可能. データの方向は常に一方向である.
通信線にはツイストペアケーブル(規格にあるのはAWG24)を使用し,ノイズ耐性を高める.LANケーブルとか使うと手軽. 最大4000フィートのライン長,最大50Mbpsのデータ・レートが規定されている.しかしこれは両方を同時に満たせるわけではない.
ちなみに10Mbps以上では通信ができないとうことではなく,10Mbps以上での挙動が規格に記載されていないというだけ.実際にEIA-422も電気的特性しか定まってないので,やろうと思えば10Mbps以上でも通信ができないことはない. 10mまでは35Mbps,1200mでは100kbps

このRS422を拡張し,複数のドライバ,レシーバを接続して双方向の通信を可能としたのがRS485. TIA/EIA-485により定められており,接続可能なデバイス数が10から32に増えている.
コモンモード電圧も±7Vから-7V~+12Vに拡張,低作動電圧範囲は±2Vから±1.5Vになった.
後述する半二重通信では,N:Nが最大それぞれ32まで接続,通信が可能.
ドライバの出力能力が規格で決まってるため,レシーバの負荷(入力インピーダンスのこと)がより小さいと,接続可能なレシーバの数が増える.
RS485で定まっているレシーバ一つの負荷は12kΩ

市販のシリアルサーボによく使われる通信規格,TTLも参照
差動通信なので耐ノイズ性が高い
RS485の活線挿抜はICに負担が大きい.しかし各メーカが頑張って活線挿抜に耐えられるようにデバイスを作ろうとしてる.

全二重通信と半二重通信があるが,マイコンで使用する場合は線を減らすため,半二重通信が用いられることが多い.
1つのマスターに対して複数のスレーブをバスでぶら下げることが多い.
スター結線は規格上あまりよろしくないが,配線長が1mもしないような短い線ならそれほど問題にならない(はず).
ロボワンとかNHKロボコンクラスのロボットのサイズなら正直スター結線でいけそう.
でもできるならバス配線にしたほうはいいにこしたことはない.

差動信号による通信に,ノイズ耐性が高いことが挙げられる.しかし,やはり限度はある.
差動だから2本だけではいいということはない,コモンモード電圧が規定を超えると通信できないので,それぞれのシグナルGNDは接続する. コモンモードのGNDループが大きいとコモンモード電圧が大きくなるので,極力小さくすることが大切.
ノーマルモードノイズ,コモンモードノイズの切り分けが大切,ノイズ対策難しい…
コモンモード電圧を低減するための素子として,コモンモードチョークコイル(コモンモードフィルタ)が挙げられる.
差動通信の基本として,通したい信号の周波数にてディファレンシャルモード損失(インピーダンス)は低く、コモンモードのインピーダンスは高いほうがいい.
この特性はMixed Mode S-parameterと言われる.

  • ディファレンシャル挿入損失($S_{\rm dd21}$):差動信号の損失,損失が小さいほどよい.この損失が3dBになる周波数をカットオフ周波数と定義してる.
  • コモンモード減衰量($S_{\rm cc21}$):コモンモードの損失,減衰が大きいほどよい
  • モード変換($S_{\rm cd21}$):差動信号の一部がコモンモードに変換,変換量が小さいほどよい.

世間から見るとRS485やCANに対応したコモンモードの周波数は結構低め。USB2.0でも480Mbps,他の差動を使う企画もGbpsというオーダーである。
RS485と通信の周波数が近しいものは、車載の通信であるCAN,CAN,FD,FlexRayが近いのでこの辺りで探すのがベター(1Mbps- 10Mbps)
MURATA CMCC products application list and supported products For Signal line
コモンモードノイズフィルター基礎講座
差動伝送ラインを雑音から守るコモンモードフィルタ(後編)
信号ライン用コモンモードチョークコイルの特性と選び方
2015年10月 | [アプリケーションノート] コモンモードフィルタ/チョーク 世界最小クラスの車載Ethernet用コモンモードフィルタ

RS485トランシーバ(ドライバ)における主な消費電力は3つ

  • IC自体の静止電流
  • バスの抵抗負荷
  • バスの容量負荷

このため,バスに接続されているノードの数(負荷の大きさ)によってトランシーバが必要な電力は異なってくるので気をつける.
最大負荷ぶら下げていても駆動できるくらいの電力を消費するという前提で見積もったほうが良い.

How to calculate the power dissipation of high-speed RS-485 transceivers
AN-805 Calculating Power Dissipation for Differential Line Drivers
RS-485 Drivers Calculating the Power Dissipation
How to calculate the power dissipation of high-speed RS-485 transceivers

RS485ドライバはバスの負荷に対して十分な電流を流せることが必要である.終端抵抗を除いた375Ωの同相負荷に対して-7V~+12Vの間で32mAの電流を流せる必要がある.
375Ωというの12kΩの負荷が32並列した時の合成抵抗である.
この時12kΩの抵抗を単位負荷という模様.
ここはもう少し理解をふかめてまとめたい. 

The RS-485 unit load and maximum number of bus connections

接続されているすべてのデバイスが受信状態で待機しているとき,バスラインなどれからも駆動されないためHighZとなる. プルアップ,プルダウン抵抗を付けて未定義状態を回避する実装が重要.電位差が200mVになるように抵抗値を決める.バイアス電圧によって抵抗値が変わるので注意. RS-485/RS-422 回路の実装ガイドを参照すると良い. フェイルセーフのために抵抗を加えた場合,RS485バスから見るとわりかし大きい負荷となる.この結果,接続できるノードの数がかなり減るので注意する.

RS-485 Networks
RS-485 basics: two ways to fail-safe bias your network

半二重通信の場合

VCCは回路や接続するマイコン次第,5Vのものが多いが3.3Vで駆動する製品もある.
ROのプルアップ抵抗はRS485のバスがアイドル時の電位を固定するためだと思われる.
RS485のバス部分のA,BはD+,D-とという表記もされる.
コネクタ部分は市販のRS485通信式のサーボモータを参照した.必要に応じで変える.

半二重通信の場合,スレーブの振る舞い
マイコンなどで構成する場合の通信のフローとして,

  1. 受信状態で待つ.たいていはRS485トランシーバを受信状態(/RE,DEをLow)にしておく.
  2. バスからデータが来たらとりあえず受け取ってパケットの解析
  3. パケットが自分宛てだったらその命令を実行する,そうでなければ破棄,再び受信状態で待機.
  4. パケットによって自分からの送信が必要な場合,送信状態(/RE,DEをHigh)になってバスにデータを送信.
  5. 全部完了したら受信状態(/RE,DEをLow)で再び待つ.

RS485にスレーブとしてぶら下がってる場合,基本的に受信状態にしておく,マイコンなどからGPIOで制御する.パケットの解析ソフトウェアで行い,送信する場合にはGPIOで/RE.DEをHighにしてからデータを送信する.
/RE.DEは独立のピンであるが,1つのGPIOで切り替えしても運用上問題ない,市販のサーボモータもこのような構成のもと半二重通信をしているものが多い.
自動方向制御機能付き絶縁型 RS-485 リピータ

USB-RS485 Converter Cables
USB-RS485変換ケーブル.FTDIのチップがのっており,PCからは仮想COMポートとしてアクセス,最高3MBbps
RS485よりもFTDIのUSB-RS232チップの通信速度の限界が先に来てる模様.

番号 信号 線の色
1 GND BLACK
2 D- (B) YELLOW
3 5V RED
4 終端(120Ω) BROWN
5 D+ (A) ORANGE
6 終端(120Ω) GREEN

秋月電子をはじめとした通販サイトで変えるFTDIのチップや搭載されている通信ボードは標準で最高3Mbpsまでの模様.
これはどうやら搭載されているチップがFT2XXだからの模様. FT-2XXXはUSB Full-Speedまで対応のものがほとんど. FTDIのチップのH Seriesという後ろにHが付いている型番のものはUSB High-Speedに対応しているため,10Mbpsも可能になる. USB 2.0のHigh-Speedは480Mbpsまで出るけどそれを表示するソフトウェアとかビューワが対応しているか,OSのドライバ側が対応してるかなどの問題がありそう.
H seriesのデバイスドライバを使えば解決するのだろうか? 自作も気になるけどそのへんがネックになりそう.

参考文献

TI
RS-485 basics
RS-485 の基礎 概要 ( RS-485 basics: Introduction )
TIA/EIA-485(RS-485)のインターフェイス回路
RS-422 and RS-485 Standards Overview and System Configurations
RS-485 basics: the RS-485 receiver
RS-485 basics: The RS-485 Driver
RS-485 の基礎 RS-485 ドライバ ( RS-485 basics: The RS-485 Driver )
RS-485 basics: two ways to fail-safe bias your network
Top 10 RS-485 design tips
MAXIM
チュートリアル RS-485:今なお最も堅牢な通信
RS-485の長距離化と高速化はどこまで可能か?
RS-485 CABLE SPECIFICATION GUIDE
UNDERSTANDING COMMON-MODE SIGNALS

Analog Devices
RS-485/RS-422 回路の実装ガイド
フィールドバス使用時の通信速度と距離の向上 RS-485の長距離化と高速化はどこまで可能か?
RS485やRS422を使ってシステム構築したがとてもノイズに弱い、すぐ止まる
RS232CとRS422
3.2.(3) RS422 と RS485
GMRを使うRS-485アイソレーター、高速データ伝送に最適
RS-422/485について

ROBOTIS e-Manual v1.31.30 XM Series
2.4 シリアル通信のハードウエアと基本仕様を決定する
通信デバイスがなぜか故障、その陰に“活線挿抜”アリ!! (1/2)
RS-422 AND RS-485APPLICATIONS EBOOK
Using Digi products in the real world: Issues of grounding, isolation, and surges
RS485 信号線のノイズ除去について
Communication via the RS485 interface
Frequently Asked Questions about RS-485
RS485: more on transmission line termination & material + reality check
Understanding EIA-485 Networks
3.2.(3) RS422 と RS485

  • interface/rs485.txt
  • 最終更新: 2024/03/24
  • by yuqlid