UARTとは?マイクロコントローラ(MCU)のシリアルインタフェースの種類と特徴

UART(Universal Asynchronous Receiver/Transmitter

本方式は古くよりパソコンと周辺機器とのインタフェースに用いられています。通信速度は低速ですが、GNDレベルを共通にする以外は、送信信号線と受信信号線各1本の配線で済みますので、高速転送を必要としない多くのケースで採用されています。
通信方式としは、送信側、受信側それぞれでタイマを持ち、予め決められたタイミングでデータを受信、あるいは送信を行います。


【 送信 】
初期信号は、必ずHレベルであり、また、送信の開始時は、必ずLレベルへの立下りからスタートします。その後、あらかじめ決められたタイミング毎に送信したいデータを1ビットずつ送信します。送信するデータを最上位ビットから送るのか、最下位ビットから送るのかは、予め通信機器間で取り決めておく必要があります。また、送信終了後は、必ずHレベルにする必要があります。
なお、送信データ末尾には、受信側が受け取ったデータが正しいかどうか、チェックするためのパリティビットを付加することもできます。


図1.1 UART送信フォーマット例

図1.1 UART送信フォーマット例


【 受信 】
初期信号レベルは、必ずHレベルであるため、受信側は信号が立ち下がるタイミングを待ち続けます。信号立下りをトリガとして、受信タイマを起動し、予め取り決められたタイミング、ビット長でデータの取り込みを行います。データをすべて受信したら、信号線はHレベルになりますので、このHレベルを確認して、送受信が完了したことになります。但し、何らかの理由で最後の信号レベルがHレベルでなかった場合は、フレーミングエラーとなり、例えば、データの再送信を要求するなどのエラー処理が必要です。


図1.2 UART受信サンプリングタイミング

図1.2 UART受信サンプリングタイミング例


次のコラム:SPIとは?マイクロコントローラ(MCU)のシリアルインタフェースの種類と特長