目次
マイコンを使ったプロジェクトでは、外部デバイスと通信する機会が頻繁にあります。
その中でも最も基本的で広く使われているのがシリアル通信です。
しかし、シリアル通信とは何か?
そして、どのように動作するのかについて意外と理解が曖昧なまま使っている方も多いのではないでしょうか。
本記事では、シリアル通信とパラレル通信の違いから、シリアル通信の仕組み、実際の使い方までを分かりやすく解説。
シリアル通信とパラレル通信の違い
シリアル通信は、1本のデータライン(と場合によってクロックライン)を使って、1ビットずつ順番にデータを送信する方法です。
少ない配線で済むため、コストを抑えた設計が可能です。
一方で、パラレル通信は複数本のデータラインを使い、一度に複数ビットを送信します。
速度は速いものの、配線が多くなりやすく、長距離通信には向きません。
現代では圧倒的にシリアル通信が主流の接続方法となっています。
シリアル通信は少ない配線で効率的な通信が可能で、特に小型デバイスやIoTで重宝されています。
マイコンを使う場合シリアル通信を選択するのが一般的です。
パラレル通信は問題点も多く、昨今は使用されることが少なくなってきています。
- 信号のタイミングずれ(スキュー): 長距離通信では、複数のデータライン間で信号の到着タイミングにずれが生じ、データ受信が困難になることがあります。
- クロストーク(信号干渉): 配線が密集していると、隣り合ったデータライン間で電気的干渉が発生し、データの正確性に影響を与えます。
- 配線数の増加: 複数のデータラインが必要なため、回路設計が複雑化し、製造コストが増加します。
- ノイズ耐性の低さ: 配線が多いほど外部からのノイズに影響されやすく、長距離通信ではエラー率が増加します。
信号線自体のコスト面でどうしてもシリアルが優位なのはわかりますが、他にもシリアルにするメリットがあります。
40年ほど前までは通信に専用のICが必要だったシリアル通信が、現在は半導体技術の進歩によってマイコン内にシリアル通信機能が内蔵できるようになりました。
シリアル通信の仕組み
シリアル通信では、データは1ビットずつ順番に送信されます。
これにより、1本のデータラインで効率的に通信が可能です。
- ボーレート:1秒間に送信されるビット数(例:9600bps)
- スタートビットとストップビット:データの始まりと終わりを示す信号
- パリティビット(任意):エラー検出のためのビット
I2Sは名前が似ているため、I2Cと混同しがちですが、全くの別物なので注意しましょう。
I2Sは音声データの転送に特化したプロトコルであり、データはPCM(デジタルオーディオデータ)で送信されます。
【シリアル通信】非同期と同期の違い
非同期通信はクロック信号を共有せずにデータを送受信する通信方式であり、送信側と受信側が同じボーレートで動作する必要があります。
短距離通信やシンプルなテストに向いています。
同期通信はクロック信号を送信側と受信側で共有し、タイミングを同期させてデータを送受信します。
複数デバイスでの通信が必要だったり、より高速な通信が必要な場合に便利です。
同期通信の場合
同期通信の場合、通常、データラインとクロックラインの2本の信号線が必要です。
ただし、場合によっては追加の線が必要になることがありますので豆知識として順番にチェックしていきましょう。
必要なケーブルの種類
基本的な2本の信号線
- データライン:データのやり取りを行うための線です。
SPIの場合、複数のデータライン(MOSI, MISO)があることもあります。 - クロックライン:通信のタイミングを同期させるための信号です。
送信側がクロック信号を生成し、受信側がそれに従ってデータを解釈します。
追加のライン(場合による)
- チップセレクト(CS):SPI通信では、特定のスレーブデバイスを選択するために使われる信号。
- グランド(GND):共通の基準電位を確立するために必要です。
同期通信の配線例
I2C(2線式)
- SCL(クロック): マスターが生成するクロック信号。
- SDA(データ): 双方向データライン。
SPI(3線式以上)
- SCK(クロック): クロック信号。
- MOSI(マスターからスレーブへのデータ)。
- MISO(スレーブからマスターへのデータ)。
- CS(チップセレクト): スレーブデバイスを選択。
同期通信ではクロック信号が必要になるため、非同期通信(例えばUART)と比べて配線が増える傾向にあります。
ただし、クロック信号を利用することでデータのタイミングが正確になり、高速で安定した通信が可能になりますので手間をかける意味があります。
用途に応じて必要な信号線を考慮し、配線設計を行うことが重要です!
ボーレートとビットレートの違い
少しここで豆知識コラムとしてボーレートとビットレートの違いについて知っておきましょう。
定番のシリアル通信を徹底解説
UART
(ユーアート:Universal Asynchronous Receiver Transmitter)
- 概要: 非同期通信の基本プロトコル。
スタートビットとストップビットを使ってデータを送受信します。 - 特徴:簡単な配線で済み、クロック信号が不要。
主に1対1の通信で使用されます。 - 用途: マイコンとPCの接続やデバッグ通信。
SPI
(エスピーアイ:Serial Peripheral Interface)
- 概要: 同期通信プロトコルで、クロック信号を利用してデータをやり取りします。
- 特徴:高速通信が可能。
MOSI(データ送信)、MISO(データ受信)、SCK(クロック)、CS(チップセレクト)の4本の線を使用。 - 用途: センサーやディスプレイ、SDカードとの通信。
I2C
(アイツーシー:Inter-Integrated Circuit)
- 概要: 同期通信プロトコルで、2本の信号線(SDA:データ、SCL:クロック)で複数のデバイスを接続できます。
- 特徴:配線がシンプル。
1つのマスターと複数のスレーブデバイス間で通信可能。 - 用途: 温度センサーやEEPROMとの接続。
CAN
(キャン:Controller Area Network)
- 概要: 複数のデバイス間で通信するためのプロトコル。
主に自動車産業で使用されます。 - 特徴:高い耐障害性と信頼性。
2本の通信線で多くのデバイスを接続可能。 - 用途: 自動車のECU間通信や産業機器のネットワーク。
シリアル通信は、マイコンを用いた通信方法の中でも基本中の基本です。
その仕組みを理解することで、より高度なプロジェクトに応用できます。
次は、実際にSPIやI2Cなどのプロトコルを学び、プロジェクトで活用してみましょう!

