ログイン

無料会員登録

シリアル通信①

パート1

ソフトウェア② 外部の情報を知るための周辺知識

次のパートへ

パート 1

ソフトウェア② 外部の情報を知るための周辺知識

次のパートへ

シリアル通信①

学習のゴール

UART (ユーアート)、I2C (アイツーシー)について学習しよう!

シリアル通信

シリアル通信は、1ビットずつ順番にデータを送受信する通信・転送方式です。
シリアル通信には、データ信号とは別にクロック信号を転送して転送データを同期させるクロック同期式と、同期信号を利用せずに、受信側と送信側でデータフォーマット、データ転送速度を一致させておく非同期式があります。

image.png

UART

UARTはUniversal Asynchronous Receiver Transmitter (汎用非同期式通信回路)の頭文字をとったもので、代表的なシリアル通信の1つです。(非同期式)

UARTの後に登場したUSARTというものもあり、こちらは同期式の信号変換に対応しています。

URATの信号と接続方法

UARTでは、信号を送受信するために送信(TxD)と受信(RxD)に1本ずつ、また送受信する機器同士のGNDを接続するので、信号線は最低3本必要になります。
また、通信は1対1でのみ成立します。

その中で信号レベルを次のように規定したものをRS232Cと呼んでいます。

image.png

UARTでは以下のように接続し、お互いの通信速度とデータフォーマットを合わせることで送受信を可能にしています。

image.png

UARTの通信方法

UARTは通信を開始する前に、通信速度の他に、データ部分の長さ (7 or 8ビット)、誤り検出符号のパリティビット (有/無、奇数/偶数)、ストップビットの長さ (1 or 2ビット)などを、あらかじめ決めておく必要があります。

通信はスタートビット(1ビット:0)から始まり、ストップビット(1 or 2ビット:1)までを1フレームと呼び、この1フレームで1つのデータとして扱います。

image.png

image.png

通信速度

通信速度は1秒間に何bitのデータを送るかで表現され、単位はbps (bit per second)を使います。
例えば、1秒間に9600bit送るなら9600bpsです。

UARTは通信速度を決めて通信するため、データの送信(受信)時間は単純な計算式で算出できます。
例えば、9600bpsの場合、1bitを送信するのにかかる時間は (1/9600)秒 (Sec)です。

image.png

I2C

I2C (Inter-Integrated Circuit)は、フィリップス社が提唱した方式で、主にセンサやEEPROMメモリなど高速通信を実現する方式です。

近距離直結したデバイスとの高速通信の場合に使用されますが、離れた装置間の通信には向いていません。

image.png

信号と接続方法

通信はマスタ側 (メイン)とスレーブ側 (レプリカ)に役割が分かれ、2本の信号線を用いて通信します。
また、マスタ1つに対し、スレーブは複数接続できます。

image.png

通信フォーマット

I2Cの通信は、スタートコンディション (Start Condition)と呼ばれる、通信の最初を示す信号から始まり、スレーブアドレス (Slave Address)や応答を示すACKなどを含めたデータおよび、ストップコンディション (Stop Condition)と呼ばれる通信の最後を示す信号までを1つのフォーマットとして通信します。 image.png

image.png

また、通信全体はマスタが管理し、スレーブ側がデータを送信したい場合でも、最初にマスタ側が受信側になることをスレーブに対して送信し、その後スレーブ側がマスタに対してデータを送信する必要があります。

1 シリアル通信①