RS-422とRS-485の規格の本質的な差は、ドライバ(送信器)が電気的に常時出力かトライステート出力かである。
ドライバが常時出力であるRS-422では、ドライバどうしを結線することは許されない。そのため1本のバスは必ず片方向通信になる。これに対し、ドライバがトライステート出力であるRS-485では、ドライバどうしを結線することができる。そのため1本のバスで双方向通信が可能となる。2線か4線か、片方向か全二重か半二重か、一対一か一対多か多対多かの組み合わせは、このドライバの電気的仕様から決まることである。
RS-422 | 4線全二重 | 一対一 (point-to-point) | (1) |
2線片方向 | 一対多 (multi-drop) | (2) | |
RS-485 |
2線半二重 | 一対一 (point-to-point) | (3) |
2線半二重 | 多対多 (multi-point) | (4) | |
4線半二重 | 一対多 (multi-drop) | (5) |
(1)は一対一の全二重通信。RS-422の典型的な形であり、UART通信をそのまま差動伝送に変換した形である。
(2)は一対多であるが、複数ドライバの結線は許されないので複数レシーバのみの片方向通信である。「RS-422は一対多の通信が可能」というのはあくまで片方向通信の話だという点に注意。
(3)は一対一の半二重通信。これは次に述べる多対多の半二重通信の特殊な形(N=1)といえる。
(4)は多対多の半二重通信。RS-485の典型的な形である。この形は電気的には全てのノードが対等である。しかし、通信プロトコル上はどれか一つのノードがマスターとなって実質的には一対多の通信をおこなうことが多い。
(5)は一対多の全二重通信。前述のようにRS-485では(4)の形で一対多通信をおこなうことが多く、この形をとることは少ない。
また、言うまでもないが、多対多で全二重などということは理屈上ありえない。