当サイトのコンテンツはご自身の判断と責任においてご利用ください。営利目的の利用は固くお断りします

更新2022/05/04

UARTの基本

マイコンを使う上で避けて通れない技術の一つがシリアル通信です。
本章は、その中のUARTというデバイス(装置)について簡単に説明します。

UARTは、ほとんどのマイコンに搭載されている通信装置で、今でも良く使われている規格というかデバイス(装置)の一つです。
そして、このUARTは、IC間通信・RS232CやUSBなどに応用できる基本的な技術です。
マイコンを扱う方は、必ずマスターしましょう。

UART概要

UARTというのは Universal Asynchronous Receiver Transmitter の略でシリアル通信装置の一種です。
1バイト8ビットのデータを1本の電線で送るために、時系列にデータを分解して、1ビットづつ出力(送信)または入力(受信)します。
もともとは、ナショナルセミコンダクター製の16450や16550A等のICが源流らしいのですが、今ではICというよりはUARTという技術自体が業界標準となっています。
最も基本的なシリアル通信規格であるので、IC間のデータ交換や、RS232C規格やUSB規格の通信に変換するなどしてFA機器間やPC間で使用されます。

マイコンメーカーによっては、UART以外に独自の呼び方をするメーカーもあります。
例えば、PICはUSARTと呼び、ルネサス製H8マイコンはUART機能を持った内蔵デバイスのことをSCIといいます。
UARTは、装置(デバイス)のことを指し示すことは既に述べたとおりですが、UARTで扱う信号の電圧がTTLやCMOS ICと同じ電圧レベルであるため、中にはUARTのことをTTL、CMOSやロジック通信と呼ぶ方もいるようです。

実際の配線例と注意点

UARTの一番簡単な使い方で、主流でもある使い方は、送信・受信・GNDの3線式構成となります。
ただし、UARTはノイズに弱いため遠距離の通信には向いていません。
通信速度や使用する周囲環境にもよりますが、同一基板内か、せいぜい30cm以下の通信用です。

以下回路図は、PIC16F690同士をUARTで接続する場合の配線例です。

基本的にはTX端子を、相手のRX端子に接続します。
同じ電源を使用していれば、単純にこれだけでお互い通信が可能です。
TXは送信、RXは受信という意味の略で良く使われるので覚えておきましょう。
マイコンによっては、TXDやRXDなど若干違う言い方をします。

回路図中のR1とR2は、電源を入れた瞬間の誤通信防止と、回路インピーダンスを下げてノイズレベルを下げるために付加します。
ソフトウエア等で電源オンの誤通信をフィルタリング出来る場合などは不要な事もありますが、信号線のノイズ耐性を上げるためにもできる限り入れましょう。

UARTのコネクタ

UARTには、標準化されたコネクタはありません。
標準のコネクタがあったとしても、使用することはありません。
機器内のデバイス間通信で使われることが多いため、直接配線でコネクタを必要としないか、適当なコネクタを使用することがほとんどです。

通信フォーマット

UARTは一般には調歩同期式と呼ばれる方式で送受信を行います。
これは、タイミングをとるための同期クロック線を不要にしたフォーマットで、3線のみで通信を行うことができます。

調歩同期式の通信フォーマットは以下のようになります。

スタートビットからストップビットまでが1バイト分の転送です。
(上図はPIC16F690の場合)

データの転送がない時は、Hレベル(5Vや3Vなどのマイコンの電源電圧)となっており、データを転送する時には、データを送る側TXが最初にスタートビットと呼ばれる一定期間Lレベルのパルスを出します。
受け側は、このスタートビット、つまり今までHレベルだったのがLレベル(0Vなど)になったことで、転送が開始されるということを認識します。
スタートビットが終了後、次に転送したい1バイトデータのビット0側(LSBともいう)から順に送信されます。

例えばビット0が1の場合は一定期間Hレベル(5V)、ビット1が0の場合はLレベル(0V)というようになります。
そして、1バイト(8ビット)を転送し終えた次に、パリティビットと呼ばれるエラーチェック用のビットが送られます。
パリティビットはマイコンが勝手に計算して付加するので、使用する側は意識する必要はほとんどありません。
尚、パリティビットはソフトウエアで付加するしないの設定ができますが、一部のマイコン(PIC16F690など)は、最初から付加しないと固定されていることもあります。(上記図はパリティビットなし)
パリティビットが送られた後は、ストップビットと呼ばれるHレベルのパルスが設定に応じて1ヶまたは2ヶ分の期間送られます。

当然ですが、各パルスの幅やパリティビット、ストップビットの数など、お互い送受信するマイコンは同じ設定をしなければなりません。
これらは事前にプログラムで設定さえしておけば、マイコン内蔵のUARTハードウエアが設定した通り自動的行ってくれます。

マイコンでUARTを使用するためのパラメータ例

マイコンによって設定内容と設定する方法は異なります。
UARTの設定は、使うマイコンのマニュアルを確認しながら行う必要があります。
一般的には、以下のパラメータが必須で、他にもそのマイコン特有の設定が必要となります。

・通信速度
良くある設定速度(ボーレート)は以下の通りです。(単位:bps=ビット/秒)
 110bps、150bps、300bps、600bps、1200bps、2400bps
 4800bps、9600bps、19200bps、38400bps
他には、115kbpsなどマイコンが対応している場合もあります。

・データビット数
8ビットか7ビットかを選択します。
7ビットを選ぶことはほとんどありません。
一般的には、8ビットを設定します。
7ビットは昔のアスキーコードが7ビットで足りた時代の名残りのようなものです。

・パリティビット
1となっているビットの数が偶数個になるようにこのビットを付加する場合を偶数パリティ、逆に奇数となるようにするのが奇数パリティといいます。
ノイズなどによるデータ化けの判定のための付加ビットで、付加することでエラー判定しやすくなりますが、1ビット分転送時間が余分に必要となるため、使用環境が良好な場合は付加しません。
基本的には、事前に設定すればマイコンのUARTが自動で付加とエラー判定を行います。

・ストップビットの数
1ビットまたは2ビットを選択します。
2ビットを選ぶことはほとんどありません。
基本は、1ビットです。

(最新)

(中の人)


電子回路とファームウェア専門の元エンジニアが、初心者の頃の疑問や勉強・経験で知った「そうだったのか」を2009年から書いています。 ⇒続き

ページの先頭へ戻る
シェア
Tweet このエントリーをはてなブックマークに追加