UARTとは

 

UARTとは?

UART(Universal Asynchronous Receiver Transmitter)は調歩同期式シリアル通信のひとつで,
開始と終了の合図を取り決めておいて、その合図にしたがってデータを通信するという方式です。

開始の合図を「スタートビット」、終了の合図を「ストップビット」とし、「スタートビット」と
「ストップビット」の間に「データビット」を挟んで通信します。「データビット」の後に,
通信するデータが正しく転送されたかを確認するための「パリティビット」を付加する場合もあります。


「スタートビット」と「ストップビット」(場合によっては「パリティビット」も)を付加して転送するため,
データ転送の効率は若干悪くなりますが,最も手軽で扱いやすい通信手段といえます。

「パリティビット」はデータの誤りを検出するためのビットで,奇数パリティと偶数パリティの2種類が
あります。

奇数パリティの場合はデータビットの中の1の数が奇数となるようにデータビットの最後に0または1を
付加し、偶数パリティの場合はデータビットの中の1の数が偶数となるようにデータビットの最後に
0または1を付加します。

例えば,11000101という8ビットのデータの場合、1の数は4個で偶数です。奇数パリティの場合,
1の数を奇数個にするためパリティビットは1となります。一方,偶数パリティの場合,1の数を
偶数個にするためパリティビットは0になります。

このようにパリティビットを付加しておくと,転送中にデータ中のいずれかのビットが変わってしまった
場合に,データ中の1のビットの数とパリティビットの値に矛盾が出るので、受信側はデータの誤りに
気づくことができるわけですね。

ところで,前回の話では調歩同期式の場合はクロック信号を使わないと言いましたが,厳密にいうと
お互いのデバイスの内部でそれぞれクロックを発生させ,その内部クロックに合わせてデータの
やり取りを行っています。

もし,送信側と受信側の内部クロックが違っていると,データをやり取りするタイミングが
違ってくるため通信が正しく行われないことになります。

このクロックをボーレートといい、お互いのデバイス間で同じボーレートに設定することで,
送信側と受信側で同じタイミングでデータのやりとりができるようになります。