Arduino 等で利用できる組込み向けプロトコルのメモ

  • 知識
Share:

I2C

  • 2 本1 (電源・GND を除く)
  • 同じ配線に複数のスレーブノードを接続できるが,アドレスが 7 bit しかなく一般に出荷時設定だと同じ製品で全て同一なので衝突しないよう気をつける必要がある
  • そこそこの速度(標準モードの場合 100Kbps2
  • ロイヤリティフリーで,現在は NXP が規格を管理している
  • 便利なので様々な用途で使われており,対応デバイスが多い

SPI

  • 3 本 + SS (Slave Select, CS とも) = 4 本3 (電源・GND を除く)
  • スレーブの数と同数の SS 線が必要
  • 他と比べてかなり速い(10Mbps 以上4
  • 現在明示的な標準化はされていないので,互換性は保証されない3
  • フラッシュメモリの接続などで内部的に使われていることが多い
  • MMC カード(SD / SDHC /SDXC カード)には規格上 SPI モードがあるので,コマンドを送ってモードを切り替えればそのまま大容量の SPI フラッシュメモリとして動作させることができる

UART

  • 2 本5 (GND を除く)
  • 2 台のデバイス間の通信しかできない
  • 非常に遅く(一般的には 9600Kbps = 9.6Kbps),事前にクロックを適切に設定する必要がある
  • 通信用バスとして見るといいところがないが,単純さゆえに多くのコントローラに搭載されているので,デバッグ用ポートとして広く普及している
  • 通常は PC 用の RS-232C に準拠で,いわゆるシリアル通信

1-Wire

  • 1 本 (GND を除く)
  • 同じ配線に複数のスレーブノードを接続できる(配線が楽)
  • 低速(Standard Mode の場合 16Kbps6)だが通信距離が長い(最長 500m2
  • I2C のアドレスに相当するものとしてユニークな ID が振ってあるので,割り当てに悩まず繋ぐことができる2
  • Maxim Integrated 社の専用規格(ただし,似た仕組み・特徴のシリアル通信は安価なセンサで広く採用されており,"1-Wire like" として言及されていることがある)

アナログ

  • 1 本 (電源・GND を除く)
  • 素子の数と同数のアナログピンが必要
  • 電圧をアナログ値として読み取るだけなのでドライバがなくてもある程度なんとかなる
  • コントローラによって分解能が違う (10-12bit)
  • 高分解能の外部 ADC も利用可能 (16bit-)
  1. UM10204I2C bus specification and user manual
  2. Ibid.
  3. AN-1248 アプリケーション・ノート
  4. SPI vs I2C Protocol Differences and Things to Consider - Saleae Articles
  5. UART――多様な非同期通信に対応可能なハードウェア通信プロトコル | アナログ・デバイセズ
  6. はじめての 1-Wire® | テクニカルスクエア |丸文

コメントを残す

投稿にあたり,完全な IP アドレスが保存されます(公開されません)。

コメントはスパムフィルタで処理され,承認後に公開されます。