メディア

マイコンの通信機能 UARTとI2C 、SPIの違いQ&Aで学ぶマイコン講座(115)(2/3 ページ)

» 2026年05月26日 08時00分 公開
解説します

仕組み、方式の違い

(1)UART

 クロック線の無い非同期通信ですが、外部にクロックを出していないだけで、内部ではクロックに同期して動作します。送信側と受信側で、動作周波数を合わせることで、同期をとりますが、送信側と受信側のクロックは位相が違いますので、周波数精度が悪い場合は、データが欠落したり、同じビットを二重取り込みしたりすることがあります。そのため、UARTの転送内部クロックの周波数精度には注意が必要です。また、ボーレート、データ長、パリティ、ストップビットなども事前に一致させる必要があります(図2(a)参照)

(2)I2C

 SDA(データ線)をSCL(クロック線)に同期させた同期式のシリアル通信です。スレーブ側のアドレスを指定しますので、複数デバイスを同一バスに接続可能です。プルアップ抵抗でバス線をHighに保ち、各デバイスがLowに引き下げて通信するオープンドレイン方式です。スタートコンディション、アドレス、R/Wビット、ACK/NACK、ストップコンディションというプロトコルで通信します(図2(b)参照)

(3)SPI

 この中では最も多くのバスラインを使います。最低でも次の4本を使用します。

 SCLK(クロック)、MOSI(マスター出力/スレーブ入力)、MISO(マスター入力/スレーブ出力)、SS(スレーブセレクト、スレーブごとに1本、これはLowの時だけ通信が有効、CSと呼ぶ場合もある)

 データ線(MOSI、MISO)は、SCLKに同期して通信します。マスターがクロック(SCLK)を出し、そのタイミングでビットをシフトイン/アウトするシンプルな構造です。クロック極性と位相(CPOL/CPHA)は合わせる必要があります。(図2(c)参照)

<strong>図2:通信フォーマット</strong>[クリックで拡大] 図2:通信フォーマット[クリックで拡大]
STM32C562xxリファレンスマニュアルから抜粋

使い方の違い

(1)UART

 高速な1対1通信なので、マイコン間やマイコンと周辺装置間のポイントツーポイント通信に使われます。マイコンを搭載するシステム開発時に、UARTをUSBシリアル変換器経由でPCに接続して、printfを利用したログ出力やコマンド入力としてよく使われます。

 ハードウェアフロー制御(受信できない状態になるとRTSを不許可状態にし、相手側の送信を止める)を使う場合は、RTS(Request To Send)とCTS(Clear To Send)の2本の信号線が追加になります(図3(a)参照)

<strong>図3:信号線の構成</strong>[クリックで拡大] 図3:信号線の構成[クリックで拡大]

(2)I2C

 マスター側は通常のマイコンです。前述しましたが、複数デバイスを同一バスに接続可能です。その際、スレーブから転送終了のトリガーのかけ方には、割り込みを使ってマスターに知らせる方法と、マスター側が転送完了フラグをポーリングする方法の2通りあります。割り込みを使う方法の時には、各スレーブに割り込み出力、マスターに割り込み入力を設けなければなりません。割り込みを使う場合の方が、レスポンスが速いですが、ハードウェアが重くなります。

 スレーブ側にセンサー、RTC、EEPROM、IOエキスパンダーなどを接続し、「レジスタアドレス」に対して読み書きする感覚で使う事ができます。比較的配線が少なくて済み、プリント基板内で複数のICを制御するときに向いています(図3(b)参照)

(3)SPI

 通常マスターはマイコンが担当します。スレーブ側のデバイスはSS(またはCS)で選択します。スレーブデバイスとして複数のデバイスを接続し、SS(またはCS)を使って通信相手を選択できます。その場合、各スレーブデバイスにSS(またはCS)を設けて、SS(またはCS)SをLowにしたデバイスだけがバスに応答できるようになります。レジスタやコマンドをシフトレジスタに流し込むイメージで使います(図3(c)参照)

Copyright © ITmedia, Inc. All Rights Reserved.

特別協賛PR
スポンサーからのお知らせPR
Pickup ContentsPR
Special SitePR
あなたにおすすめの記事PR

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.