私は、PCへのRS232通信を使用するデバイスを使用しています。デバイスに対してTXピンとRXピンを定義しているため、混乱が生じています。定義では、TXがデバイスからデータを送信するピンであることを意味します。私の考えでは、これはRXというラベルが付いているはずです。これはコンピューターが受け取るピンだからです。
ピンはどのように定義する必要がありますか?それらは各デバイスに関連するものですか、それとも「コントローラー」に関連するものですか?
私は、PCへのRS232通信を使用するデバイスを使用しています。デバイスに対してTXピンとRXピンを定義しているため、混乱が生じています。定義では、TXがデバイスからデータを送信するピンであることを意味します。私の考えでは、これはRXというラベルが付いているはずです。これはコンピューターが受け取るピンだからです。
ピンはどのように定義する必要がありますか?それらは各デバイスに関連するものですか、それとも「コントローラー」に関連するものですか?
回答:
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です)ケーブルを使用して、さまざまなコネクタピンをリンクできます。
信号名を使用する多くのバスのような構成とは異なり、シリアル通信は伝統的にピンに機能名を使用します。そのため、デバイスが何らかのピンで送信する場合、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ピンにどこかに接続されています。
RS232デバイスには「マスター/スレーブ」または「クライアント/サーバー」の関係がないため、通常はデバイスに関連しています。SPIプロトコルにはマスター/スレーブアーキテクチャがあるため、「MISO」(マスターインスレーブアウト)および「MOSI」(学生への演習として残されています)というラベルが付けられています。これはデバイスレベルです。個々の回路設計者がネット名として何を選択するかについて話すことはできません。
残念ながら、エンジニアにとってこれは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コネクタを使用させることです。それは過去のすべての自由を減らしました。
RXD>
矢印が表示されています。これは、そのピンから信号が出ていることを意味します。入力ではなく出力であることは確かです。