UARTとRS-232の違いは?


80

ほとんどの場合、RS-232とUARTはシリアル通信理論で一緒になります。両方とも同じですか?私の測定から、UARTはRS-232プロトコルのハードウェア形式であると結論付けました。私は正しいですか?


1
上記の回答は、違いについての洞察を与えました。ただし、このトピックについて詳しく説明しているナショナルインスツルメンツのリンクを追加して、これらの回答に追加したいと思います。リンクは次のとおりです。RS-232、RS-422、RS-485シリアル通信の一般概念
devangmotwani

回答:


80

いいえ、UARTとRS-232は同じではありません。

UARTは、一連のビットを送受信します。UARTの出力では、これらのビットは通常、ロジックレベルの電圧で表されます。これらのビットは、RS-232、RS-422、RS-485、またはおそらく独自仕様になります。

RS-232は電圧レベルを指定します。これらの電圧レベルの一部は負であり、±15Vにも達する可能性があることに注意してください。電圧振幅が大きいと、RS-232の干渉に対する耐性が高まります(ある程度ではありますが)。

マイクロコントローラUARTは、このような電圧レベルを単独で生成できません。これは、追加のコンポーネントRS-232ラインドライバーを使用して行われます。RS-232ラインドライバの典型的な例はMAX232です。データシートを見ると、このICにチャージポンプがあり、+ 5Vから±10Vを生成することがわかります。

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


4
私が読んだRS-232の定義は、ビットのシーケンスやタイミングについてはまったく言及していません。実際、非同期NRZスタート/ストッププロトコルを説明する公式の標準を見つけたことがありません。
Wouter van Ooijen

1
RS-232はビットのシーケンスを指定しません。
スリーブマン

どうやら、UART文字形式の開発はベル電話会社によって支配されていたため、変種は生まれませんでした。その結果、スタート/データ/パリティ/ストップビット形式が独立した標準の対象になることはありませんでした。業界全体での使用は非常に均一であったため、「公式」の定義は必要ありませんでした。これは物理リンクには当てはまらないため、RS-232が開発されました。
WhatRoughBeast

3
UARTの文字フォーマットはBellのモデムより前のもので、ASCIIのTeletypeハードウェア(パリティ付き8ビット)で、その前はBaudotでした。
Whit16年

33

UART(またはUSART)-ユニバーサル(同期)非同期受信機/送信機

これは、本質的にはシリアル通信インターフェースです。「ユニバーサル」部分とは、さまざまな特定のシリアルプロトコルをサポートするように構成できることを意味します。この用語は一般的なものであり、特定の標準を表すものではありません。少なくとも、シリアルデータストリームを送信し、シリアルデータストリームを受信TXするRX回線があることを意味します。

RS-232-2つのデバイス間の信号を定義し、信号名、その目的、電圧レベル、コネクタ、およびピン配列を定義する標準。

これは、機器の相互運用性を可能にする特定のインターフェイス標準です。2つのハードウェアにはUARTがある場合がありますが、それらが損傷することなく接続すること、または同じピン配置と電圧標準を持っていることを知らない場合、または相互接続に固有のコンバーターまたは特別に配線されたケーブルを含む場合を除き、適切に通信することはわかりませんこれら2つの特定のデバイス。特別なコンバーターやケーブルの必要性を回避するために、メーカーはRS-232標準に従うことを選択できます。そうすると、標準のRS-232ケーブルで2つが接続されることがわかります。

ただし、UARTもRS-232規格も、ラインTXRXラインで送信されるものを定義しません。一般に、RS-232を使用する場合、1つのスタートビットと1つのストップビットを持つ単純な8ビットNRZエンコードを使用します。現在製造されているほとんどの機器はこのエンコードを使用していますが、そうする必要はありません。パリティビットを含む、または7または9ビットを使用する古い機器を見つけることができます。UARTはその上で、これらの様々なプロトコルをサポートするように構成することができるTXRXのライン。

UARTは通常、RS-232と直接インターフェースしません。UARTの出力をRS-232が必要とする+/- 12V標準に変換する必要があります。通常、完全なRS-232インターフェイスには、UARTとRS-232レベルコンバーターの両方が含まれます。さらに、RS-232規格には、TXおよび以外のいくつかの信号ピンの定義が含まれておりRX、接続する必要のある機器に応じて使用する必要があります。これらもレベル変換する必要があり、UARTはこれらの信号をサポートする場合としない場合があります。そうでない場合は、ソフトウェア/ファームウェアで直接制御する必要があります。

したがって、UARTはRS-232インターフェイスの実装に役立ちますが、RS-232インターフェイス自体ではありません。


標準RS-232ケーブル?そのようなことはありません。私の機器バッグには、RS-232用のアダプターが約12個入っています。RS-232はDB-25コネクタを指定しますが、DD-9、RJ45、din8およびその他のコネクタを見ました。モデムをPCに接続する以外に、rs232プロジェクトでCOTSケーブルを使用することはできませんでした。幸いなことに、2、3個のアダプターを使用する場合やカスタムケーブルを使用する場合の90%は、簡単に作成できます。
14年

記録のためだけに:私は、USARTの「S」が「シリアル」ではなく「同期」を表していると思います。こちらをご覧ください。USARTは、同期通信モードも可能にする古いUARTチップに対する「拡張」です。
ロレンツォドナティ14

14

UARTは、PCバスラインからのパラレルデータを、ラインドライバーを介してRS-232、RS-422、およびRS-485デバイスに送信するためのシリアルデータに変換するように機能します。UARTチップのクロックピンは、プログラム可能なクロックソースから供給されます。クロック速度は、デバイスが使用するボーレート設定によって決まります。クロック速度は16ボーレートです。UARTチップのクロックピンにオシロスコーププローブを配置し、周波数を決定してから16で割ることが、未知のボーレートを決定する1つの方法です。


5
「パラレルデータをシリアルデータに変換する」+1
-TisteAndii
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.