2016-10-26 18 views
0

2つのシリアルポートを1つのシリアルポートに接続します。 3つのシステムが存在すると仮定し、A、BおよびC2つのシリアルポートを1つのシリアルポートに接続します。

enter image description here

A、B及びCが接続され、互いにスター結線のようなシリアル通信(RS232ポート)を使用。 だから、ここに状況です。 システムCがシステムAとシステムBにデータを送信すると、両方のシステムにデータが送信されます。しかし、システムAまたはシステムBがデータを送信すると、システムCはそれを受信しません。

したがって、シリアルポートデバイスと他のシリアルポートデバイス(複数デバイス)との通信方法を知りたいと思います。

+1

:-)同時に通信しないように配置しないことです。 RS-232はポイントツーポイントプロトコルです。 RS-485などのマルチポイントプロトコルを使用できます。 http://www.embedded.com/design/connectivity/4023975/Serial-Protocols-Compared – sawdust

答えて

1

これは単純に機能しません。 2つのTX回線を1つのRX回線に接続する必要がありますが、RS-232(Ethernetなどとは異なります)は共有メディアプロトコルではなく、TXコリジョンを検出できません(2つの装置が同時に話そうとする場合)。

受信した内容を他のデバイスに転送するデバイスを中央に実装する必要があります。それでも、中断されたメッセージ(例えば、改行文字で停止する)を防ぐために、他の装置が話しているプロトコルを知っていなければならない。

-2

はい、これは、少なくとも特定の制限がある場合、または明確に規定された電圧条件では、絶対に機能します。

  • Cのためにあなたの配線を保つ:TX - > A:RXおよびB:RX

  • 他の方向のために、Cのための一つの信号にA + B TXデータを合成:RXピン例えば、Lammert Bies' circuit for Half duplex RS232 spy/monitor/sniffer cableまたはこのSpy Cable circuitに示されているように、ダイオードと抵抗器を備えた「半二重」配線方式を使用することによって、 AとBがRS232電圧仕様でうまくいけば、どちらの変種もOK IMHOで動作するはずです。

  • 制限:AとBは同時にデータを送信できません。つまり、「半二重」のみです。 AとBが同時に送信されると、未定義/ガベージデータが送信されます。

btwさらに、Stackoverflow posts that confirm this worksがある。 2つのupvotesを受け取った2番目の答えを確認してください。

+0

を参照してください。このような業界グレードのデバイスであっても、ダイオード/抵抗のソリューションは文書化され、使用されています。http://www.bb- elec.com/Products/Serial-Connectivity/Serial-Data-Tools-Adapters/Data-Taps.aspxもちろん、あなたがエレクトロニクスに対する一般的な嫌悪感を持っているならば、ダイオード/抵抗器を使用して、それらをバニーのようにダジとみなしてください。おそらく、RS232/RS422/RS485の全領域から離れてください。 –

0

Atx-> Brx、Btx-> Crx、Crtx-> Arxの順に接続して、各デバイスがメッセージを転送しなくてはなりません。これはどんなドジ/抵抗ホクムポカムも必要としません。

このアプローチの大きな利点は、ノード上の任意の制限が動作しません

関連する問題