GNU/Linux >> Linux の 問題 >  >> Linux

UART(ユニバーサル非同期レシーバ/トランスミッタ)とは

ターゲットオーディエンス

この記事は、読者が電子機器、回路、および用語について基本的な知識を持っていることを前提としています。

はじめに

組み込みデバイス通信の世界では、多くの異なるアプリケーションに使用される少数のプロトコルがあります。 FTPやTCPなど、日常の操作に一般的に使用されるより一般的なプロトコルは、小さな組み込みデバイスでは機能しないか、不適切であることがよくあります(多くの場合、電力やスペースの要件が原因です)。このような場合、UARTなどのより基本的な「金属に至るまで」の通信規格が非常に役立ちます。

UARTとは何ですか?

ウィキペディアユーザーMyself248による画像Exar16550onItronixPCB/CCBY-SA3.0でライセンス供与

UART(Universal Asynchronous Receiver / Transmitter)は、I2Cに似た小型で効率的な通信デバイスです。 UARTは、ほとんどの場合、IC(集積回路)に組み込まれたハードウェアにインストールされ、シリアル形式とパラレル形式の間で通信データを変換します。言い換えると、UARTデバイスはデータのビットのストリーム(ほとんどの場合、パラレル通信用に設計されています)を取得し、それをシリアルデータのビットに変換して、単線またはバスで送信し、送信します。ワイヤのもう一方の端で、別のUARTデバイスがシリアルビットを受信し、それらをデータのパラレルパッケージに変換し直します。名前の「ユニバーサル」の部分は、データ形式とデータの送受信速度の両方の構成可能性を指します。

UARTは、コンピューターで使用されている最も古い通信デバイスの1つであり、年代測定されています。その起源は、コンピューターをテレタイプライターキーボードまたは「テレタイプ」に接続するために使用された1960年代にさかのぼります。 1970年代には、カセットテープのデータの読み取りと書き込みに使用されるプロトコルであり、その後、BBS(掲示板システム)サービスとインターネットの初期のダイヤルアップ時代にモデムとの通信に使用されました。その後、TCPやIPなどのプロトコルを使用するより複雑なデバイスに取って代わられましたが、その設計は組み込みデバイスでも引き続き役立ちます。

UARTの通信方法

上記のように、UARTはパラレル通信とシリアル通信の間で変換することによって機能します。パラレル通信は非常に高速なので、なぜこれを行うのですか?パラレル通信は高速ですが、電力と伝送媒体の両方の点ではるかに高価です。同じバッチのデータを、同期されたパラレルビットではなく、1つずつ、1つずつ、シーケンシャルシリアルビットで送信できます。同時に、一連のワイヤで送信できます。たとえば、アプリケーションのスペースが不足している場合は、1本のワイヤのみを使用する方がはるかに理にかなっています。このため、UARTデバイスは、組み込みシステムなどの低電力で目立たない状況で非常に便利です。

では、正確にはどのように機能するのでしょうか。非同期送信の良いところは、送信者と受信者がクロック信号(貴重なデータスペースを占有する可能性のある信号)を共有しなくてもデータを送信できることです。代わりに、タイミングは両方のユニット間で事前に合意され、特別なビットが各データパッケージ(各「ワード」)に追加されます。 UARTはこれらのビットを使用して相互に同期します。トランスミッタがワードを送信する準備をしているとき、パッケージの先頭に特別なSTARTビットを追加します。このビットは、データパッケージが近づいていることを受信機に警告し、受信機の内部クロックを送信機の内部クロックと同期させます。 (通常、他の送信機/受信機のペアリングの場合、2つのデバイスクロックを同期するために必要なのは、ビット/秒、つまり「ボー」での伝送速度に同意することだけです。)

STARTビット、送信機はワードを送信します。ほとんどのUARTシステムは、5〜10ビットのワード長を使用します。ビット送信は一定のクロック時間で発生し、時間同期受信機は指定された「送信」時間のちょうど中間でバスを調べて、1または0が送信されているかどうかを判断します(バスがHIGHの場合、「1」送信されています。それ以外の場合は「0」です)。最後に、トランスミッタはパリティビット(システムがそのように構成されている場合)とENDビットを送信します。次に、別のSTARTビットで別のワードを開始し、プロセスを続行します。一方、受信側はSTARTビットとSTOPビットを破棄し、必要に応じてパリティビットを使用してワードを記録し、さらにデータをリッスンし続けます。回線がデュプレックス(双方向通信)セットアップの場合、同じプロセスが反対方向に繰り返される可能性があります。一部のUARTシステムでは、ワイヤは必要ありません。赤外線(IR)およびBluetoothデバイスは、UART信号方式を介して送受信するように設定されていることがよくあります。

雑学クイズの歴史 :何も送信されていない場合、回線はLOW(電源が入っていない)ではなく、両方のデバイスによってHIGHに保持されます。この規則は、電信回線がHIGHに保持されていた時代からの引き継ぎであり、各エンドユーザーは回線が途切れることはありません。

UARTの使用は持続します

UARTデバイスは長い間使用されており、高速VPSホスティングサーバーとマネージドサーバーホスティングで今日可能になった高速通信とギガビット転送速度が可能なデバイスと並んで、依然として有用であることが証明されています。

最新のマイクロコントローラーのほとんどにはUARTデバイスが含まれています。 1つのICには、1つのチップ上に1つ、2つ、または8つのUARTを含めることができます(これらの最後の2つの設計はそれぞれDUARTおよびOCTARTと呼ばれます)。人気のある趣味のマイクロコントローラーIDEであるArduinoには、ボードのすべてにUARTインターフェイスが組み込まれています。もう1つの人気のある趣味のデバイスであるRaspberryPiは、UARTデバイスともインターフェイスできます。小さな組み込みデバイスの操作に興味がある人にとっては、使い方を学ぶ価値のあるデバイスです。


Linux
  1. Elasticsearch分散NoSQLデータベース–それは何であり、それを使用する必要がありますか?

  2. rm はどのように機能しますか? rm は何をしますか?

  3. Rails アプリをデプロイするディレクトリはどれですか?

  1. リレーショナルデータベースとは何ですか?

  2. イベントドリブンと非同期の違いは何ですか? epollとAIOの間?

  3. Web サイトのコンテンツを保存するための推奨ディレクトリは何ですか?

  1. NoSQLデータベースとは何ですか? –NoSQLの説明

  2. Spark DataFrameとは何ですか?

  3. Web開発のステートレスおよびステートフルモデルとは何ですか