0

RS232 接続の準備が必要な電子デバイスを構築しています。各ポートに 3 つ以上のピン (Tx、Rx、GND) を確保する必要があるかどうかを知りたいです。

残りの信号 (ハンドシェイク用に作成されたもの) を使用しない場合: デバイスとの通信に問題が発生する可能性はありますか?

4

1 に答える 1

4

一般的に、はい、それは問題です。クライアント側でポートを構成する方法についてクライアントに具体的な指示を与えることができる場合にのみ回避できる種類の問題. これは決して問題ではありません。それが適切に行われていない場合、データ転送は行われず、その理由を見つけるのは非常に厄介です。サポートコールを受けることはほぼ確実です。

多くの標準プログラムは、DTR 信号、つまり DSR に注意を払います。Data Terminal Ready は、デバイスの電源が入っており、クライアントが受信するものはすべて電気ノイズによって生成されていないことを示します。DSR がなければ、彼らはあなたが送信したものを無視するだけです。実装は非常に簡単で、電源に接続するだけです。

非常に一般的なのは、RTS/CTS シグナルによるフロー制御です。クライアント プログラムで有効にすると、Request To Send シグナルをオンにするまで何も送信されません。フロー制御が必要ない場合は、実装が非常に簡単です。DTR のように論理的に高く接続するだけで、クライアント プログラムの構成は問題になりません。

DCD と Ring はモデム信号であり、一般的なデバイスにはほとんど関係ありません。それらを論理的に低く結び付けます。

実装が非常に簡単で、多くの事故やサポートコールを回避し、配線してください。

そして、実際にフロー制御なしで生活できるかどうかを検討してください。クライアント エンドで問題が発生することはほとんどありません。最新のマシンは、シリアル ポートで一般的な種類のデータ レートに非常に簡単に対応できます。必ずしもそうであるとは限りません。通常の制限は、受信バッファ用に予約できる RAM の量と組み込みプロセッサの速度です。最新のマシンは、非常に簡単にデータを送信できます。UART FIFO、受信割り込みハンドラ、またはデータ処理コードが追いつかない場合、避けられないデータ損失に対処するのは非常に困難です。RTS/CTS または Xon/Xoff ハンドシェークを使用している場合、またはマスター/スレーブ プロトコルを使用している場合、または十分に低いボーレートに慣れている場合は問題ありません。

于 2014-03-12T10:32:55.257 に答える