UARTの概要

オシロスコープとプローブの基礎

UARTの概要

UARTとは?

UARTとは、Universal Asynchronous Receiver/Transmitter(汎用非同期送受信機)の頭字語で、2つのデバイス間でシリアルデータを交換するためのプロトコルまたは一連の規則を定義します。UARTの仕組みは非常に単純で、送信機と受信機の間の2本のラインのみを使用して双方向に送受信を行います。その両端は、グランドにも接続されます。UART内での通信方式には、単向通信(一方向のみにデータを伝送)、半二重通信(双方向で通信はできるが、送受信は同時に行えない)、全二重通信(送受信を同時に行える)の3つがあります。UART内では、データはフレームの形で送信されます。これらのフレームのフォーマットと内容については後述します。

UART内では、データはフレームの形で送信されます。

UART内では、データはフレームの形で送信されます。

UARTの用途

UARTは、最も早くから使用されていたシリアルプロトコルの1つです。かつて主流だったシリアルポートは、そのほとんどがUARTベースでした。RS-232インタフェースを使用したデバイスや外付けモデムが、UARTの用途の代表的なものです。
最近では、UARTの使用率は下がってきており、チップとコンポーネントの間のプロトコルもSPIやI2Cにその座を譲りつつあります。最新のコンピューターや周辺機器では、シリアルポートによる通信に替わってイーサネットやUSBなどのテクノロジーが主流となっています。ただし、UARTにも、仕組みが簡単、低コスト、実装が簡単という利点があるため、低速および低スループットの用途には根強く残っています。

UARTプロトコルのタイミングと同期

UARTの利点として最も大きいのは、それが非同期式であることです。送信機と受信機は、共通のクロック信号を共有しません。これにより、プロトコルは大きく簡素化することができます。ただし、送信機と受信機には特定の要件が加わります。両者ともクロックを共有しないため、同じビットタイミングを実現するには、両端が同時に、事前に取り決めた速度で送信する必要があります。現在使用されている最も一般的なUARTのボーレートは、4800、9600、19200、57600、および115200です。同じボーレートにすることに加え、UART接続では両サイドで同じフレーム構造およびパラメータを使用する必要があります。UARTフレームに注目すれば、このことがよく理解できます。

UARTフレームのフォーマット

UARTフレームにはスタートおよびストップビット、データビット、パリティービット(オプション)が含まれています。それぞれの説明については後述します。

UARTフレームにはスタートおよびストップビット、データビット、パリティービット(オプション)が含まれています。それぞれの説明については後述します。

ほとんどのデジタルシステムでは、「ハイ」電圧レベルは論理「1」を示すのに使用され、「ロー」電圧レベルは論理「0」を示すのに使用されます。UARTプロトコルは、これらのレベルに対して特定の電圧または電圧範囲を定義していないため、「ハイ」は「マーク」、「ロー」は「スペース」と呼ばれることもあります。アイドル状態(データが送信されていない状態)では、ラインは「ハイ」に保持されます。これにより、損傷したラインまたは送信機を容易に検出できます。

スタートおよびストップビット

UARTは非同期式のため、送信機はデータビットを従える信号を必要とします。これは、スタートビットを使用することで達成されます。スタートビットは、アイドルハイ状態からロー状態への遷移のことで、直後にユーザーのデータビットが続きます。
データビットが終わると、ストップビットがユーザーのデータの終了を指示します。ストップビットは、ハイまたはアイドル状態へ遷移して戻るか、あるいは追加ビット時間中にハイ状態に留まるか、いずれかの状態を作り出します。後者のストップビットは、オプションで設定できます。通常は、受信機に次のフレームのための準備時間を与えます。しかし、実際には一般的ではありません。

データビット

データビットとは、ユーザーのデータまたは「有用な」ビットで、スタートビットの直後に続きます。ユーザーのデータのビット数は5~9の範囲で使用できますが、7~8ビットが最も一般的です。これらのデータビットは、通常は最下位ビットが最初に送信されます。

例:
7ビットASCIIで大文字の「S」を送信したい場合、ビットシーケンスは1 0 1 0 0 1 1となります。これが送信される前に、まず最下位ビットが最初になる順序に並べ替えられ、1 1 0 0 1 0 1となります。最後のデータビットが送信されると、ストップビットによってフレームが終了し、ラインがアイドル状態に戻ります。

  • 7ビットASCIIの「S」(0×52)=1 0 1 0 0 1 1
  • 最下位ビットが最初になる順序=1 1 0 0 1 0 1
スタートおよびストップビット

スタートおよびストップビット

データビット

データビット

パリティービット

UARTフレームには、エラー検出に使用されるパリティービットをオプションで含めることもできます。このビットは、データビットの最後尾とストップビットの間に挿入されます。パリティービットの値は、使用されるパリティーのタイプ(偶数か奇数か)によって変わります。

  • 偶パリティーの場合、このビットはフレーム内の1の総数が偶数になるように設定されます。
  • 奇パリティーの場合、このビットはフレーム内の1の総数が奇数になるように設定されます。

例:
大文字の「S」(1 0 1 0 0 1 1)は、3個の0と4個の1から成っています。偶パリティーを使用する場合、1の総数がすでに偶数なので、パリティービットは0になります。奇パリティーを使用する場合、フレームの1の総数が奇数になるように、パリティービットを1にする必要があります。
パリティービットで検出できるのは、単一の反転ビットのみです。2個以上のビットが反転している場合、単一のパリティービットを使用して信頼性の高い検出を行うことはできません。

パリティービットの例

パリティービットの例

UARTの概要

「UARTの概要」のビデオを視聴して理解を深める

このビデオでは、UART(Universal Asynchronous Receiver/Transmitter、汎用非同期送受信機)シリアルプロトコルの技術概要について説明します。さらに、フレーム構造と各フレームビットの意義についても解説します。

まとめ

  • UARTとはUniversal Asynchronous Receiver/Transmitter(汎用非同期送受信機)の頭字語で、シリアルデータを交換するための、仕組みが簡単な、2本のラインを使用するプロトコルです。
  • 非同期式とは、クロックを共有しないことを意味します。そのためUARTが機能するには、接続の両サイドで同じビットまたはボーレートを設定する必要があります。
  • スタートおよびストップビットは、ユーザーのデータがどこから始まりどこで終わるか、あるいはデータがどのように「フレーミング」されるかを指示するために使用されます。
  • パリティービットは、単一ビットのエラーを検出するためにオプションで使用できます。
  • UARTは現在も広く使用されているシリアルデータプロトコルですが、最近では、多くの用途でSPI、I2C、USB、イーサネットなどのテクノロジーへと置き換わっています。

UARTやその他のシリアルプロトコルに関するご質問等がございましたら、弊社のエキスパートがお答えします。