マイクロコントローラ(MCU)とは?マイコンのUART、SPI、I2Cについて

マイクロコントローラ(MCU)の2つのインタフェース

パラレルインタフェースとシリアルインタフェースの概要と回路例

マイコンが他のデバイスとデータをやり取りする方法には、大きく分けて2つの種類があります。

  • パラレルインタフェース

  • シリアルインタフェース

パラレルインタフェースは、例えば、8ビット長のデータを1クロックで送受信する方法です。理論的に転送速度は高速ですが、データビット長分の配線を必要とし、機器の小型化を妨げる要因になります。それに対して少ない信号線で送受信を行う方法がシリアルインタフェースです。例えば、8ビット長のデータであれば1本の信号線を用い、時間を区切って1ビットずつ合計8回送受信します。


■パラレルインタフェース(バスインタフェース)回路例

図1.1 8ビットSRAMとのインタフェース回路例

図1.1 8ビットSRAMとのインタフェース回路例


■シリアルインタフェース回路例

図1.2 UARTにおける接続例

図1.2 UARTにおける接続例


かつてパラレルインタフェースは高速、シリアルインタフェースは低速とされてきました。しかし、デバイスの進化と差動信号*1によりノイズ耐性を高め、メガHz・ギガHzといった高速シリアルインタフェースも一般的になってきました。パラレルインタフェースを高速化しようとした場合、複数の信号線を同期させることが難しいといったこともあり、現在ではパラレルインタフェースに比べ、シリアルインタフェースのほうが高速な送受信を実現しています。


*1:差動信号
正と負の2本の信号線を用い、その差分をデータとして扱うことにより、外部ノイズの影響を受けにくく高速で高品質な通信が可能な方式。高速なシリアル通信で取り入れられている。 但し、高速シリアルインタフェースを実現する場合、信号線の干渉ケアなどが必要であり、また、消費電流やコストの増加が見込まれます。一方、高速転送でないシリアルインタフェースであれば、信号線の干渉ケアは少なくて済み、消費電流やコストの増加も防ぐことが可能ですので、依然として多くのマイコンに搭載され、多くのアプリケーションで利用され続けています。 本文では、差動信号を用いず、汎用的なマイコンに搭載されているシリアルインタフェースについて解説します。


マイクロコントローラ(MCU)のシリアルインタフェースの種類と特徴

汎用的なマイコンに搭載されているUART、SPI、I2Cの3種類のシリアルインタフェースについて、概要を説明します。


種類 概要・特徴 詳細解説
UART UARTは、クロック信号を使わず、送信線と受信線でデータを送受信する非同期シリアル通信インターフェースです。配線や制御が比較的シンプルで低コストなため、マイコン間通信、センサー接続、PCとの通信、デバッグ用ログ出力などに広く使われます。 UARTの詳細を見る
SPI SPIは、クロック線に同期してデータを送受信する同期式シリアル通信インターフェースです。高速通信に適し、配線はやや多いものの制御が単純で、センサー、メモリ、表示デバイスなど、マイコン周辺機器との接続に広く使われます。 SPIの詳細を見る
I2C I2Cは、クロック線とデータ線の2本で複数デバイスを接続できる同期式シリアル通信インターフェースです。配線数を抑えられ、アドレス指定で周辺機器を識別できるため、センサー、EEPROM、RTCなど低~中速通信の機器接続に広く使われます。 I2Cの詳細を見る