UART(RS-232C)について

ここではUARTについての基本的な事項について記載します。

まず"UART"とは"Universal Asynchronous Receiver Transmitter"の略で、調歩同期式のシリアル通信のことです。人によっては"RS-232C"と呼ぶ人もいます。この2つは厳密には違うものですが同一の意味として使用しても問題ないと思います。
それぞれの定義は以下の様になっているそうです。
  • UART
    -> 調歩同期式のシリアル通信を実現する回路
  • RS-232C
    -> シリアル通信の規格
所長は通信のインタフェースという意味で、完全に同じものとしてこれらの言葉を使用しています。
※単純に"シリアル通信"とも言えますが、"SPI"や"USB"などもシリアル通信に含まれるので通じないことが多いです
※"シリアルポート"は通じるかもしれません


接続方法
PCについているD-sub9ピンからの信号出力は9Vとか12Vである可能性が高いので、CMOSレベルのモジュールと接続する際には電圧変換のドライバICが必要です(RS-232CのドライバICは以下のものが有名)。

近年ではUSBでPCに接続し、CMOSレベル(3.3V~5V)でUSRT通信できるモジュールが一般的に入手できます(FTDIのチップが乗ったものが有名)。

PC側にドライバ("Virtual COM Portドライバ"通称VCPドライバ)を入れることで仮想のシリアルポートとしてPCから利用できます。
マイコンと接続する場合は"GND"と"TX"と"RX"の3線を接続すればOKです(双方向でなければ2線でも良い)。RS-232Cの定義ではCTSとかDTRなどの他の信号線もありますが、これらを接続しなくても通信は使用できます。これらの信号線は、例えば相手の通信を止めるような、より複雑な制御用途として定義されています(このような制御はフロー制御と呼ばれます)。


"UART"は今やほとんどのマイコンに搭載されているので使えるようになると便利です。所長はICクリップワイヤを使用してマイコンとPCを接続して、初期の動作確認やデバッグに使用しています。



"UART"通信について
  • 定常状態が"H"
    通信をしていないときの信号線は"H"レベルです。
  • 調歩同期式
    各通信パラメータについて、通信機器同士合わせておく必要があります(これが調歩同期式です)。合っていない場合は通信が失敗します(正しくないデータのやり取りになる)。


基本的な波形を以下に示します。※データビット長は8bit
基本としてはスタートビットとストップビットにデータビットが挟まれている形です。スタートビットは"L"でストップビットは"H"です。また、データビットはLSBから送られます。

基本形

パリティビットはデータビットの後ろにつきます。パリティには奇数パリティと偶数パリティがあります。

パリティビットあり

パリティなしの実例です。

データ"0x35"をパリティなしで送信

奇数パリティはデータビット中の"H"の数が偶数であれば"H"、奇数であれば"L"になります。つまりは全体として"H"の数が奇数となるようにします。

データ"0x35"を奇数パリティで送信

偶数パリティは奇数パリティの逆で、スタートビットとストップビット間のデータの"H"の数が偶数になるようにパリティをつけます。

データ"0x35"を偶数パリティで送信

その他の設定としてはストップビットが1bitか2bitの設定があります。


ボーレート
ボーレートとは簡単にいえば速度を表すものです。1秒間に何bitのデータが転送できるかを示したもので、単位は"bps"(bit per second)を使用します。つまりボーレートが決まれば1bitを転送する時間が決まりますので、波形上での1bitの長さも決まります。
 ボーレート  1bit転送時間
 9600  104usec
 19200  52usec
 115200  8.6usec


エラー
UART通信がうまく行かなかった場合はエラーが発生します(基本的には受信側で発生)。
  • フレーミングエラー
    ストップビットがあるはずの場所で観測できなかった場合に起こるエラーです。例えば送信側のボーレートが受信側よりも小さかった場合、ストップビットの位置にデータビットがきてしまうのでストップビットが"L"になってしまう可能性があります。このときフレーミングエラーが起きます。
  • オーバーランエラー
    受信側の機器には受信バッファという送信されたデータを一時的に格納する場所があります。そこにデータが入った後、データを取り出すということが必要ですがそれをしなかった場合、後から送信されたデータが前に受信したデータを上書きしてしまうということが起きます。これがオーバーランエラーです。これは受信側のプログラムに問題があるということになります。

UART通信ソフト
PCでUART通信をする場合、PC側にUART通信プログラムが必要になります。ここではフリーで使用できるUART通信ソフトを紹介します。
  • Tera Term

    ターミナルソフトですがシリアル接続にも対応していますのでUARTで通信できます。ファイル単位での通信が行えるので大量のデータの送受信に役に立ちます。


最終更新:2013/2/4