Help us understand the problem. What is going on with this article?

電子工作初心者のために シリアル通信方式を分かりやすくまとめてみた

自分の勉強がてら、シリアル通信方式を分かりやすくまとめました。
絶賛勉強中なので、ツッコミどころがあればご指摘いただけると嬉しいです。

全部読むのが面倒な人の為に、最後にシリアル通信方式比較表でまとめています。

そもそもシリアル通信とは何か?

シリアル通信

データ伝送の間、デジタルデータを1ビットずつ順次伝送する接続方式のこと
シリアル通信
特徴
:slight_smile: 回線数が少なく低コスト
:frowning2: 伝搬速度が遅い
 ⇒パラレル通信と比較し、長距離間のデータ伝送等に有利

パラレル通信

複数の信号線を利用して複数ビットのデータを同時に伝送する方式
パラレル通信
特徴
:slight_smile: 伝送効率が速い
:frowning2: 回線数が多く高コスト
 ⇒同一室内の近距離端末間等で利用される

シリアル通信かパラレル通信か?

ここまで、シリアル通信とパラレル通信、それぞれメリットとデメリットを見てきたが、最近では、通信速度の高度化により、シリアル通信が主流になりつつあるようである。
(詳しい人いたらコメントください)
@sounisi5011 さんよりコメントいただきました。パラレル通信だと信号線同士で時差が生じることがあるが、シリアル通信だとその心配がない、ということのようです。

シリアル通信の同期方式

クロック同期
データ通信用の信号線とは別にクロック信号線を持ち、その信号を用いて送信側と受信側の同期を行う。
以下のような特徴がある。
・ データ通信用の信号線の他にクロック信号線を必要とするため、信号線の本数が増える
・ データ通信用に信号線が確保出来るため、伝送効率が良い
ex.) I2C通信SPI通信

調歩同期/非同期方式
送受信するデータの前後に"start bit""stop bit"を伝送することで、送信側と受信側の同期をする方式。
調歩同期方式とか非同期方式とか呼ばれているよう。名前がややこしい。
以下のような特徴がある。
・ 同期のためのクロック線を必要としないため、信号線が少なくてすむ
・ データ線とスタートクロック同期に比べ伝送効率は悪い
ex.) UART通信

各シリアル通信の特徴をみていく

I2C通信

フィリップス社が提唱した周辺デバイスとのシリアル通信の方式。
一本の信号線がいくつかの役割を担っているイメージ。

特徴
マスタ側とスレーブ側を分け、マスタ側が全ての制御を行う
・ データ通信信号線の方向は双方向
・1バイト転送毎に受信側からACK信号を返送し、互いに確認を取りながら
データ転送を行う
・個々のスレーブがアドレスを持ち、データの中にアドレスが含まれる

:slight_smile: 信号線が少なくて済む (2本の信号線から構成される)
:frowning2: 伝送速度は遅め (100kbps~1Mbps)
I2C通信.png
用途
・同じ基板内など、近距離で直結したデバイスでシリアル通信を行うために使われるのが主。(離れた装置間の通信には不向き)

SPI通信

モトローラ社が提唱した周辺デバイスとのシリアル通信の方式。
それぞれの信号線が各々の役割に集中しているイメージ。

特徴
・ I2C通信同様、マスタ側とスレーブ側を分け、マスタ側が全ての制御を行う
・ データ通信は、 MOSI / MISO信号各々が、”マスタ→スレーブ”、”スレーブ→マスタ”片方向ずつを担う
SS(スレーブセレクト)信号でデータ通信先を指定

:slight_smile: 伝送速度がはやめ (数Mbps)
:frowning2: 信号線が3~4本必要
SPI通信.png
用途
・同じ基板内など、近距離で直結したデバイスでシリアル通信を行うために使われるのが主(離れた装置間の通信には不向き) 

UART通信

調歩同期式によるシリアル通信の方式。
同期のためのクロック線を持たない

特徴
・データ通信のための1〜2本の信号線で構成される
 ー半二重通信(1本):送信と受信を切り替えながら,交互に通信を行う。
半二重通信.png
 ー全二重通信(2本):送信と受信を同時に行うことが可能。ほとんどの UART が対応。
全二重通信.png
・ 1バイトの開始と終了を start bitstop bitで認識

:slight_smile: 信号線が少なくて済む (1~2本)
:frowning2: クロック同期式と比較し伝送速度は低速 (0.1~115kbps)
UART通信.png
用途(追記予定)
・マイコン間通信?
・マイコンと動作モニタ用の端末を通信や、無線LAN用のモジュールとの通信等

シリアル通信方式まとめ

信号線 同期方式 通信速度  接続形態  実際の用途
I2C通信 2本 クロック(同期式) 0.1 ~ 1 Mbps 1対多 デバイスーマイコン間
SPI通信 3~4本 クロック(同期式) 1 ~ 数 Mbps 1対多 デバイスーマイコン間
UART通信 1~2本 タイミング信号(調歩同期/非同期式) 0.1 ~ 115kbps 1対1(一部1対多) マイコンーマイコン間

参考サイト

参考にさせていただいたページは以下の通りです。

SPI通信の使い方: http://www.picfun.com/f1/f05.html
I2C通信の使い方: http://www.picfun.com/c15.html
 →詳細に、かつ分かりやすくまとめてくださっています。もっと知りたい!という方は目を通してみると良いかも。

調歩同期について: https://synapse.kyoto/glossary/glossary.php?word=%E8%AA%BF%E6%AD%A9%E5%90%8C%E6%9C%9F

Gri_Gra
若手技術者です。仕事では主にデータ解析とかやっています。趣味で作るものは仕事に関係あったりなかったり。pythonや機械学習まわりのことを備忘録的に書き留めてこうと思います。 記事に修正点/改善点等あればコメントください。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした