シリアル通信とは?今さら聞けないマイコンの通信方法を徹底解説!

この記事はPRリンクを含みます

マイコンを使ったプロジェクトでは、外部デバイスと通信する機会が頻繁にあります。

その中でも最も基本的で広く使われているのがシリアル通信です。

しかし、シリアル通信とは何か?
そして、どのように動作するのかについて意外と理解が曖昧なまま使っている方も多いのではないでしょうか。

USBケーブル

今さら聞けないがテーマですので、メモしておきますが、USBケーブルもシリアル通信の代表格なんです。
みなさんいつも何気なく使っているはずですよね。

本記事では、シリアル通信とパラレル通信の違いから、シリアル通信の仕組み、実際の使い方までを分かりやすく解説します。
これを読めば、マイコン通信の基本をしっかり理解できるはずです!

Profile

この記事を担当:こうたろう

1986年生まれ
音大卒業後日本、スウェーデン、ドイツにて音楽活動
ドイツで「ピアノとコントラバスのためのソナタ」をリリースし、ステファン・デザイアーからマルチマイクREC技術を学び帰国
金田式DC録音のスタジオにて音響学を学ぶ
独立後芸術工房Pinocoaを結成しアルゼンチンタンゴ音楽を専門にプロデュース
その後写真・映像スタジオで音響担当を経験し、写真を学ぶ
現在はヒーリングサウンド専門の音楽ブランド[Curanz Sounds]を立ち上げ、ピアニスト, 音響エンジニア, マルチメディアクリエーターとして活動中
当サイトでは音響エンジニアとしての経験、写真スタジオで学んだ経験を活かし、制作機材の解説や紹介をしています。
♪この記事には広告リンクを含みます♪

Profile

【さらなる専門家の監修】録音エンジニア:五島昭彦

学生時代に金田明彦氏に弟子入り。
ワンポイント録音の魅力に取り憑かれ、Panasonic半導体部門を経て、退職後金田式DC録音の専門スタジオ:タイムマシンレコードを設立。
ジャズは北欧系アーティストを中心に様々な美しい旋律を録音。
クラシック関係は国内外の様々なアーティストのレコーディングを担当しており、民族音楽にも精通。
現在は金田式DC録音のDSDレコーディングを中心にアコースティック楽器の収録を軸に活動中。
世界で唯一、金田明彦氏直系の弟子であり、金田明彦氏自らが手がけた金田式DC録音システムを使用している。

シリアル通信とパラレル通信の違い

シリアル通信は、1本のデータライン(と場合によってクロックライン)を使って、1ビットずつ順番にデータを送信する方法です。

少ない配線で済むため、コストを抑えた設計が可能です。

一方で、パラレル通信は複数本のデータラインを使い、一度に複数ビットを送信します。

速度は速いものの、配線が多くなりやすく、長距離通信には向きません。

現代では圧倒的にシリアル通信が主流の接続方法となっています。

比較項目 シリアル通信 パラレル通信
データ転送方法 1ビットずつ順番に送信 複数ビットを同時に送信
速度 低速(ただし高速化可能) 高速
配線の本数 少ない(2~3本程度) 多い(8本以上が一般的)
コスト 低い 高い
通信距離 長距離に適している 短距離向き
ノイズ耐性 高い(クロストークが少ない) 低い(配線が多いほど影響を受けやすい)
主な用途 小型デバイスや長距離通信 プリンターや内部バス通信

シリアル通信は少ない配線で効率的な通信が可能で、特に小型デバイスやIoTで重宝されています。
マイコンを使う場合シリアル通信を選択するのが一般的です。

パラレル通信は問題点も多く、昨今は使用されることが少なくなってきています。

  • 信号のタイミングずれ(スキュー): 長距離通信では、複数のデータライン間で信号の到着タイミングにずれが生じ、データ受信が困難になることがあります。
  • クロストーク(信号干渉): 配線が密集していると、隣り合ったデータライン間で電気的干渉が発生し、データの正確性に影響を与えます。
  • 配線数の増加: 複数のデータラインが必要なため、回路設計が複雑化し、製造コストが増加します。
  • ノイズ耐性の低さ: 配線が多いほど外部からのノイズに影響されやすく、長距離通信ではエラー率が増加します。

シリアル通信が主流な他の理由

信号線自体のコスト面でどうしてもシリアルが優位なのはわかりますが、他にもシリアルにするメリットがあります。
40年ほど前までは通信に専用のICが必要だったシリアル通信が、現在は半導体技術の進歩によってマイコン内にシリアル通信機能が内蔵できるようになりました。

シリアル通信の仕組み

シリアル通信では、データは1ビットずつ順番に送信されます。

これにより、1本のデータラインで効率的に通信が可能です。

  • ボーレート:1秒間に送信されるビット数(例:9600bps)
  • スタートビットとストップビット:データの始まりと終わりを示す信号
  • パリティビット(任意):エラー検出のためのビット

代表的なシリアル通信プロトコル

  1. UART(Universal Asynchronous Receiver Transmitter)
    • 非同期通信の基本プロトコル。スタートビットとストップビットを使用。
  2. SPI(Serial Peripheral Interface)
    • 同期通信プロトコル。クロックラインを使用し、高速通信が可能。
  3. I2C(Inter-Integrated Circuit)
    • 同期通信プロトコル。複数デバイス間で通信できる。

I2Sは名前が似ているため、I2Cと混同しがちですが、全くの別物なので注意しましょう。

I2Sは音声データの転送に特化したプロトコルであり、データはPCM(デジタルオーディオデータ)で送信されます。

【シリアル通信】非同期と同期の違い

非同期通信はクロック信号を共有せずにデータを送受信する通信方式であり、送信側と受信側が同じボーレートで動作する必要があります。
短距離通信やシンプルなテストに向いています。

同期通信はクロック信号を送信側と受信側で共有し、タイミングを同期させてデータを送受信します。

複数デバイスでの通信が必要だったり、より高速な通信が必要な場合に便利です。

比較項目 非同期通信 同期通信
クロック信号 不要 必要
データタイミング スタート/ストップビットで管理 クロック信号で管理
配線数 少ない(TX、RXの2本) 多い(データ線+クロック線)
速度 比較的遅い 高速通信が可能
代表的なプロトコル UART SPI、I2C

同期通信の場合

同期通信の場合、通常、データラインクロックラインの2本の信号線が必要です。
ただし、場合によっては追加の線が必要になることがありますので豆知識として順番にチェックしていきましょう。

必要なケーブルの種類

基本的な2本の信号線

  1. データライン:
    • データのやり取りを行うための線です。
    • SPIの場合、複数のデータライン(MOSI, MISO)があることもあります。
  2. クロックライン:
    • 通信のタイミングを同期させるための信号です。
    • 送信側がクロック信号を生成し、受信側がそれに従ってデータを解釈します。

追加のライン(場合による)

  • チップセレクト(CS):
    • SPI通信では、特定のスレーブデバイスを選択するために使われる信号。
  • グランド(GND):
    • 共通の基準電位を確立するために必要です。

同期通信の配線例

I2C(2線式)

  • SCL(クロック): マスターが生成するクロック信号。
  • SDA(データ): 双方向データライン。

SPI(3線式以上)

  • SCK(クロック): クロック信号。
  • MOSI(マスターからスレーブへのデータ)
  • MISO(スレーブからマスターへのデータ)
  • CS(チップセレクト): スレーブデバイスを選択。

同期通信ではクロック信号が必要になるため、非同期通信(例えばUART)と比べて配線が増える傾向にあります。

ただし、クロック信号を利用することでデータのタイミングが正確になり、高速で安定した通信が可能になりますので手間をかける意味があります。

用途に応じて必要な信号線を考慮し、配線設計を行うことが重要です!

ボーレートとビットレートの違い

少しここで豆知識コラムとしてボーレートとビットレートの違いについて知っておきましょう。

ポイント

ボーレート(baud rate)は、1秒間に送信される信号の変化回数を表します。
一方、ビットレート(bit rate)は、1秒間に送信されるビット数を示します。
両者は似ていますが、異なる概念ですので注意してください。

たとえば、ボーレート(信号が何回変化するか)が9600で、1回の信号変化(シンボル)に1ビットが含まれる場合、ビットレート(実際に送信されるデータ量)も9600bps(ビット/秒)になります。
ただし、1シンボルに2ビット含まれる場合、ビットレートは9600×2で19200bpsになります。

イメージとしては、ボーレートは道路の「信号機の切り替え回数」、ビットレートはその道路を通過する「車の数」です。

この違いを理解することで、シリアル通信の設定がよりスムーズになります。

定番のシリアル通信を徹底解説

UART

(ユーアート:Universal Asynchronous Receiver Transmitter)

  • 概要: 非同期通信の基本プロトコル。スタートビットとストップビットを使ってデータを送受信します。
  • 特徴:
    • 簡単な配線で済み、クロック信号が不要。
    • 主に1対1の通信で使用されます。
  • 用途: マイコンとPCの接続やデバッグ通信。

SPI

(エスピーアイ:Serial Peripheral Interface)

  • 概要: 同期通信プロトコルで、クロック信号を利用してデータをやり取りします。
  • 特徴:
    • 高速通信が可能。
    • MOSI(データ送信)、MISO(データ受信)、SCK(クロック)、CS(チップセレクト)の4本の線を使用。
  • 用途: センサーやディスプレイ、SDカードとの通信。

高速通信ならSPI

短距離のIC通信では高速で双方向通信できるのが特徴です。

UARTでは約10kbpsから100kbps程度が一般的な速度であるのに対し、SPI通信では、普通のマイコンで1Mbps,専用のICを使う等の工夫をすることで、最大で10Mbps以上の速度を出せる場合もあるほどです。

I2C

(アイツーシー:Inter-Integrated Circuit)

  • 概要: 同期通信プロトコルで、2本の信号線(SDA:データ、SCL:クロック)で複数のデバイスを接続できます。
  • 特徴:
    • 配線がシンプル。
    • 1つのマスターと複数のスレーブデバイス間で通信可能。
  • 用途: 温度センサーやEEPROMとの接続。

マイコン

I2C通信は複数のデバイスを容易に接続できるため、マイコンに複数のセンサーをつなぐような使い方に便利です。

SPIがペリフェラル(センサー)が増えると信号線の数が増えるのに対し、I2C通信では信号線の数が変わらないのが特徴です。

CAN

(キャン:Controller Area Network)

  • 概要: 複数のデバイス間で通信するためのプロトコル。主に自動車産業で使用されます。
  • 特徴:
    • 高い耐障害性と信頼性。
    • 2本の通信線で多くのデバイスを接続可能。
  • 用途: 自動車のECU間通信や産業機器のネットワーク。

シリアル通信は、マイコンを用いた通信方法の中でも基本中の基本です。その仕組みを理解することで、より高度なプロジェクトに応用できます。

次は、実際にSPIやI2Cなどのプロトコルを学び、プロジェクトで活用してみましょう!