TXおよびRXとは何ですか?


11

私は、PCへのRS232通信を使用するデバイスを使用しています。デバイスに対してTXピンとRXピンを定義しているため、混乱が生じています。定義では、TXがデバイスからデータを送信するピンであることを意味します。私の考えでは、これはRXというラベルが付いているはずです。これはコンピューターが受け取るピンだからです。

ピンはどのように定義する必要がありますか?それらは各デバイスに関連するものですか、それとも「コントローラー」に関連するものですか?


6
送信側以外の観点からTX / RXを見たことはありません。TXは送信側が送信し、RXが受信するピンです。あなたが提案するようなネーミングに出会ったことはありません。
モーテンジェンセン

13
RS232ピンの命名は、DTE(データ端末機器)とDCE(データ通信機器)の観点から物事を定義し、完全な混乱を引き起こすことができたため、少し特殊なケースです。DCEにはRXピンにデータ出力があり、TXピンに入力があり、DTEはその逆です。理論的には、コネクタの性別から何が何であるかがわかりますが、実際には十分なメーカーがこれを間違え、信頼性の低いガイドにしています。D9とD25の小さな箱を、小さなジャンパー線と共通の信号線にあるLEDのキットで購入できる理由があります。
ダン・ミルズ

1
あなたの誕生日のとき、私はあなたにプレゼントを受け取りません。
ctrl-alt-delor

1
@MortenJensenは、送信側の観点から名前が付けられている場合、どちらもTXと呼ばれるべきです。
user253751

2
@TerryCarmenピン名とデータフローの方向が規格ごとに逆になっているDCEには当てはまりません。DTE Tx-> DCE TxおよびDTE Rx-> DCE Rx、そう、奇妙でくだらないが、それはそれが何であるかです。
ダン・ミルズ

回答:


23

RS-232標準が最初にどのように使用されていたかをすばやく確認すれば、理解しやすいかもしれません。

注:以下のすべてのピン番号は、元の25ピンDコネクターを指します。後のPCで使用される9ピンコネクタの番号が変更されました。

バックグラウンド

DTE =データ端末機器-昔は、これは通常、端末またはプリンター、またはそれらをエミュレートする機器でした。

DCE =データ通信機器-昔は、これは通常モデムまたは他のWANインターフェースでした。

元の25ピンDコネクタのピン2(「送信データ」として規格に記載され、「回路BA」、「V24。番号103」)データでなければならないから DTE DCE。

元の25ピンDコネクタのピン3(「受信データ」として規格に記載され、「回路BB」、「V24。番号104」)データでなければならないから DCE DTE。

これは、端末とモデムをつなぐケーブルが「ストレート」であることを意味します-データの発信元であるケーブルの一端の端末(DTE)のピン2は、もう一方のモデム(または同様の)のピン2に接続されましたそのデータが受信されたケーブルの終わり(DCE)。モデムは、通信リンクを使用して、そのリンクの反対側にある機器にそのデータを送信しました。

ピン3「受信データ」は、反対方向のデータ信号でした。ピン3のモデム(DCE)によって送信され、ピン3の端末(DTE)によって受信されました。

したがって、送信されたものと受信されたもののラベル付けは、DTE(つまり端末)の観点からのものであることがわかります。これは、一般的な接続がDCEとDTEの間にある場合にすべて理にかなっています。

ただし、最近使用している機器は(RS-232を使用せず、代わりにTTLまたはその他の電圧UARTプロトコルインターフェイスを使用している場合でも)通常、すべて事実上DTEです(1つの例外はモデムです)。1つのDTEのピン2(出力)をDTEとして構成された別の機器のピン2(別の出力)に接続しても意味がありません(ロジックレベル信号を使用すると、ハードウェアが損傷する可能性もあります)。ここで、「クロス」または「ヌルモデム」(つまり、モデムなし)ケーブルの使用が開始されます。

あなたの質問

私は、PCへのRS232通信を使用するデバイスを使用しています。デバイスに対してTXピンとRXピンを定義しているため、混乱が生じています。定義では、TXがデバイスからデータを送信するピンであることを意味します。私の考えでは、これはRXというラベルが付いているはずです。これはコンピューターが受け取るピンだからです。

ピンはどのように定義する必要がありますか?それらは各デバイスに関連するものですか、それとも「コントローラー」に関連するものですか?

上記の背景情報から、デバイスがDTEとして機能している場合(ほとんどがモデムまたは他のWANインターフェイスでない限り)、ラベル付けが正しいことがわかります。DTEの一部では、「Transmitted Data」というラベルのピン(25ピンコネクタのピン2)データを送信します。(また、上記で説明したように、DCE(モデムなど)では、「送信データ」と呼ばれるピン(25ピンコネクタのピン2)は実際には入力であり、DTEから信号を受信します。

PCのシリアルポートもDTEとして構成されます(非常に珍しいシリアルポートがない限り、ここでは適用されません。適用されるかどうかはご存知でしょう)。

したがって、DTEデバイス(このデバイス)をDTEデバイス(PC)に接続しています。つまり、「RS-232用語にDCEがありません。つまり、モデムがなく、「ヌルモデム」または「クロス」RS-232です。出力であるこのDTEデバイスのRS-232「送信データ」(おそらくTXとラベル付けされていると思われるもの)であるピンは、RS-232「受信」に接続する必要があります。 PC(DTEデバイス)のデータ」ピン。これは入力です(逆方向へのデータ転送の場合は明らかに逆です)。

これはあなたには当てはまらないようですが、私は付け加えます:生活をより複雑にするために、一部のメーカーはDTE機器をDCEの一部であるかのように効果的にラベル付けすることで「手助け」を試みます。彼らは、データマーク入力そのユーザがちょうど(それはDTEのだ場合は、外部機器からの「TX」を結ぶように、Txのようにピンをだろう、彼らは知っている彼らの機器の「TX」(マークピンにそこから出力されるデータ)入力)。これにより、「お使いのデバイスのTxを当社の機器のTxに接続するだけ」と言うことができます。彼らは助けようとしていると思うが、そのようなラベル付けはしばしば混乱を増すだけである。

ダン・ミルズは、コメントで述べた、RS-232で育った人たちの多くは、と様々な機器を接続する必要が幸せな時間を過ごした少し彼は説明した「ブレイクアウトボックス」を使用して、さまざまなRS-232の実装。これらのブレイクアウトボックスにはLEDがあり、どの信号がアクティブに駆動されているかを示します(これにより、機器がDTEまたはDCEとして構成されているかどうかをすばやく確認できます:その機器でピン2が駆動されますか?はい= DTEです)ケーブルを使用して、さまざまなコネクタピンをリンクできます。


うまくいかない場合の一般的な方法は、ケーブルの一端のピン2と3の接続を交換することです(これはDE-9とDB25の両方のコネクターで機能します)
ピーターベネット

2
本当です。RS-232(ロジックレベル信号ではない)でハードウェアハンドシェイクが言及されていないこの特定の質問の文脈では、ピン2とピン3の交換は試してみる必要があります(誤って2つのRS-232出力を接続してはいけません永久的な損傷)。残念なことに、ハードウェアハンドシェイクが関係していると事態は複雑になります(これらの信号のさまざまな構成に問題がある可能性があるため)。その後、ピン2と3を交換しても問題が解決しない場合や、唯一の問題が解決しない場合があります。これにより、ブレイクアウトボックスの記憶が復活し、ドキュメントに含まれていないもの分析れます。
サムギブソン

1
ああ、イエス、RTS / CTS / DSR / DTR ...片方がソフトウェアのフロー制御を望み、もう片方がRTS / CTSを期待するような楽しいことを始める前でさえ、非常に多くの可能性があります。はい、ドキュメントは常に悪臭を放ちます。USB(主に3種類のがらくたプラグ、ほとんどががらくたソフトウェアスタック)について悩んでいますが、 '232を思い出すと、まったく別のレベルの破綻的でした。
ダン・ミルズ

8

信号名を使用する多くのバスのような構成とは異なり、シリアル通信は伝統的にピンに機能名を使用します。そのため、デバイスが何らかのピンで送信する場合、Txとマークされます。受信すると、Rxとマークされます。明らかに、1つのデバイスのTxを他のデバイスのRXに接続し、その逆も同様です。

遠近感を言えば、あなたが話しているデバイスには「コンピューター」もあります。これは基本的にMCUです。特に双方向の非同期通信の性質を考慮して、あるコンピューターが他のコンピューターのピンの名前を指示する必要があるのはなぜですか?

特殊なケースは、問題のデバイスが古いモデムや最新のFT232コンバーターのようなパススルーの種類である場合です。彼らはコンピューターとの通信に Tx / Rxピンを使用しておらず、コンピューターの通信をさらに下に渡すために使用しています。このため、それらのピンは、信号が通過することにちなんで命名されています。

更新:ポイントを説明するための例をいくつか示します。

おそらく何百万人もの人々が現在Arduinosを使用していますが、一部の人は、それがどのように機能するかを少しでも知らないままです。TxをRxに、RxをTxに、GndをGndに接続します。彼らがしばしば気づかないのは、技術的にヌルモデムを作成していることです。これにより、2つのMCUが互いに通信できます。

現在、同じ人がArduinoにUSB接続を追加したい場合があります。アダプタまたはコンバータチップでTXをTXに、RXをRXに接続します。混乱を避けるため、「TX-IN」および「RX-OUT」と呼ばれることが多いことに注意してください。繰り返しますが、明らかなように見えますが、ほとんど考えられないのは、技術的にはこのUSBアダプターがパススルーデバイスであるということです。RXピンで「言う」ことは、アダプター自体からではなく、回線の反対側のデバイスから来ています。そして、何を推測しますか?TXピンにどこかに接続されています。


これは間違っています。標準ではDTEとDCE(相互に通信する2つのこと)が指定されており、TX / RXはこれらの1つの観点から指定されています(どちらを忘れるか)。この詳細は長年にわたって失われ、ラベルの使用は非常に曖昧になり、経験豊富な電気技術者でさえ間違いを犯しました。
スティーブ

SamGibsonの答えはとても良いです。
スティーブ

2
@Steve「詳細が失われました」?!RS232の仕様はウェブ上にあります!TX / RXの名前は、DTEとDCEがそれらのピンを介して「相互に通信」していないため、DTE側に指定され、複数の制御信号を使用します。それ以外の場合、モデムとコンピューターはお互いに言うことはありません。モデムは単にこれらの信号を通過させます。しかし、ヌルモデムを使用して2つのDTEを接続することはできますか?彼らは両方ともコンピューターであり、お互いに話し合っており、まさにOPの質問で説明されている状況です。
メープル

もちろんDTEからDTEに機能します。ただし、回答にDTEとDCEに関する情報が含まれていなかったことに驚いています。これは、回答が正しい理由を理解するのに役立ちます。私はあなたの答えが間違っていると言ったときに間違った話をしたと思いますが、それはここで他の誤解を永続させます-「詳細が失われた」とはまたは、DCE機器にDTE信号名のラベルを付けます。そして、その詳細を含めないことは、これを少し持続させるのに役立ちます
スティーブ

1
@Steve私は、DTE / DCEに言及することを意図的に避けました。なぜなら、多くの重要な質問制御信号などとは無関係にそこに行くことができないからです。
メープル

6

RS232デバイスには「マスター/スレーブ」または「クライアント/サーバー」の関係がないため、通常はデバイスに関連しています。SPIプロトコルにはマスター/スレーブアーキテクチャがあるため、「MISO」(マスターインスレーブアウト)および「MOSI」(学生への演習として残されています)というラベルが付けられています。これはデバイスレベルです。個々の回路設計者がネット名として何を選択するかについて話すことはできません。


それらには「DTE / DCE」関係がありますが、@ Mapleが説明するように、そこで停止しました。実際、いくつかの深い歴史は彼らが何をしたかを説明できます。
-gbarry

この答えは、人々がRS-232を扱う現在の方法を正確に記述しているものの、技術的に間違っています(@gbarryがDCE / DTEを指摘しているように)。
スティーブ

4

残念ながら、エンジニアにとってこれは2枚の糞の間にある難問です。

本当の論理的な解決策はありません。どちらの方法も論理的に意味があります。

ピン、PCB、ICレイアウト、接続テーブル、ソフトウェアに、IN / OUTという言葉や方向を示す矢印でラベルを付けようとしています。回路図などで「TX-out」「RX-in」「CTS-out」「RTS-in」という言葉を使用します。これにより、あいまいさが完全に解決されます。[私は一般に、TXとRXに正しい名前を付ける、つまりTXを出力にする必要があると考えています]。

これは、信号が絶縁バリアを通過するPCBです。矢印に注意してください。だから誰かがそれをデバッグしたり、コネクタを取り付けようとすると、信号がどの方向に進んでいるかがはっきりとわかります。

ここに画像の説明を入力してください

制御信号はさらに悪化します。(電気的な方向だけでなく、論理的な制御方向もあります)

制御信号には、機能を明示的に示すドキュメントがあります。「CTS(out)は、デバイスがデータを受信する準備ができていることをコンピューターに通知します」

時々、両方の方法が同時に意味をなす場合があります。RXとTXが独自の機能で正しく命名されているチップがあります(チップの観点から)。ただし、ハンドシェイクピンには、接続先のPCピンと一致するCTSおよびRTSという名前が付いています。これは、ソフトウェアおよびステータスライトが参照するものだからです。

近年助けになったのは、デバイスに、ストレートのmfケーブルを使用してPCシリアルポートに直接接続するDE9Fコネクタを使用させることです。それは過去のすべての自由を減らしました。


1
ピンから離れる方向にRXD>矢印が表示されています。これは、そのピンから信号が出ていることを意味します。入力ではなく出力であることは確かです。
パイプ

@pipeチップがコネクタに対して回路基板上のどこにあるかを考えると、ドキュメントのない製品で作業している人にとってはまったく曖昧ではありません。矢印は信号の流れを正確に表しています。[興味深い言語ポイント:「out」/「in」とは異なり、矢印は空間的コンテキスト内でのみ固有の意味を持ちます]
ヘンリークラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.