UART(非同期シリアル通信)の説明
マスコット
  UART(非同期シリアル通信)と
 RS232Cについて簡単に説明します。




目次

1. UARTの概要

2. UARTの説明
  1) 信号接続
  2) 通信速度

  3) データフォーマット
    a) データ 1byte の構成
    b) データの例
    c) パリティありの場合の、データ 1byte の構成

  4) 信号線のレベル
    a) CMOSレベル
    b) RS232Cレベル

送受信試験器 SCTester の販売



1. UARTの概要
  UARTは Universal Asynchronous Receiver Transmitter の頭文字をとったもので、
 非同期シリアル通信と呼ばれます。

  シリアル通信とは、一本の信号線でデータをやりとりするために
 1bit ずつデータを送り出すことをいいます。

  送信側が、1bit ずつ送り出し、受信側が 1bit ずつ取り込みます。

  通常、UART という場合、送受信を行うために、
 送信と受信に1本ずつで計2本の信号線を使用します。

  また、送受信する機器同士の GND を接続します。
 よって、信号線は、最低 3本 接続することになります。
  UARTで信号レベルを

    0 : +3V ~ +15V
    1 : -3V ~ -15V

 と規定したものを、RS232C と呼んでいます。



2. UARTの説明
  本説明では、送信データ TXD と 受信データ RXD の2本のみを使用して、
 通信を行う場合を想定しています。

  信号線上に送出される bitデータ について説明します。



1) 信号接続
  信号接続は以下のようになります。

  機器A と 機器B とで通信するものとします。

  機器A             機器B

  送信 : TXD  --→  受信 : RXD

  受信 : RXD  ←--  送信 : TXD

       GND   -        GND
  お互いの通信速度とデータフォーマットを同一にして送受信を行います。



2) 通信速度
  1秒間に何bitsのデータを受け渡すのかを
 bps(bit per second) という単位で表します。

  通常 ボーレート(Baudrate)と言います。
  例えば、1秒間に 9600bits 受け渡すなら 9600bps と表記します。

  9600bpsの場合、下図のように 1bitの時間は (1 / 9600) 秒(Sec) になります。

UART_Baudrate

  通信速度には、1200bps, 2400bps, 4800bps, 9600bps, 19200bps,
 38400bps, 57600bps, 115200bps などがあります。



3) データフォーマット

 a) データ 1byte の構成
  最近ではほとんどの場合、

     データ     : 8bits
     パリティ    : なし
     ストップビット : 1bit

  が、使用されます。

  この場合、下図、 図2. 3) a) のような形で 1byte が構成されます。
  (CPUのピンにおける信号のレベルです。)
UART_Format_1byte

  通常、通信がない場合、信号は Highレベル になっています。

  データ開始を Lowレベル 1bit で知らせます。(Start bit)

  データ終了を Highレベル 1bit で知らせます。(Stop bit)


 b) データの例
  データ 1byte は 8bits で構成されています。
  例えば ASCIIコードの 0x31(HEXデータ) は 数字の '1' を表しますが、
 bitデータで表すと 0 0 1 1 0 0 0 1 の 8bits です。

  HEXデータ 0x31 は信号線に下図のように出力されます。
  信号線のレベル 0 または 1 はCPUのピンのレベルで表しています。

UART_Data_Example


 c) パリティありの場合の、データ 1byte の構成
     データ     : 8bits
     パリティ    : あり
     ストップビット : 1bit
  の場合、 下図 図2.3) c) のような形で 1byte が構成されます。
  (CPUのピンにおける信号のレベルです。)

UART_Format_1byte_with_Parity

   スタートビット と ストップビット の間のビット数は 9bits になります。

   パリティがODDの場合は、この 9bits のなかの 1 の数が奇数になるように
  パリティビットを付けます。

   パリティがEVENの場合は、この 9bits のなかの 1 の数が偶数になるように
  パリティビットを付けます。

   データ 8bits の値が 0 0 1 1 0 0 0 1 の場合、
  パリティビットを含めた 9bits の値は、

      ODD の場合 : 0 0 1 1 0 0 0 1 0
      EVENの場合 : 0 0 1 1 0 0 0 1 1

  となります。



4) 信号線のレベル

 a) CMOSレベル
  UART(非同期シリアル通信)の信号は、CPUのピンにおいてはCMOSレベルです。

  信号 0 が 0V、 1 が +3.3V です。

  HEXデータ 0x31 を出力した場合、CMOS の信号線のレベルは
 前述の 図2.3) b) のようになります。


 b) RS232Cレベル
  CPUのUARTの送受信信号をRS232CドライバICに接続して、
 外部と接続した場合、信号はRS232Cレベルになり、
 RS232Cインターフェースの機器と接続できます。

  現在のRS232CドライバICは、

    信号 0 の状態が +7V
    信号 1 の状態が -7V

 ぐらいになっています。

  HEXデータ 0x31 を出力した場合、RS232C の信号線のレベルは
 下図のようになります。

UART_Level_RS232C



送受信試験器 SCTester の販売
SCTester_I2C_ADT7410_S0_G_ON
  シリアル通信の送受信試験を行う装置です。

  I2C送受信 と UART送受信 の装置があります。

  以下の3種類です。
  1) I2C送受信試験器 SCTester I2C
  2) UART送受信試験器 SCTester UART
  3) UART送受信モニタ SCMonitor UART

  左の写真は、I2C対応 温度センサモジュール
 ADT7410 を接続して送受信を行っている様子です。


送受信試験器 SCTester をご覧ください。


A+-2C (ええ加減にC) のページに戻る




 メールアドレス: apm2c.sumi@gmail.com

 なんでも、気軽に ご相談ください。
 担当:おの

マスコット
  えがおのでんし 案内