コンテンツにスキップ

USB

USBとは

USB(Universal Serial Bus)は、パソコンと周辺機器を接続するための通信規格である。

現在では

  • キーボード
  • マウス
  • USBメモリ
  • スマートフォン
  • マイコン開発ボード

など幅広い機器で利用されている。


USBの特徴

USBには以下の特徴がある。

  • 通信と電源供給を同時に行える
  • ホットプラグに対応している
  • 多くのOSで標準サポートされている
  • 高速通信が可能
  • 接続方法が統一されている

USBでできること

USBは単なる電源ケーブルではない。

実際には

電源供給
+
データ通信

を同時に行っている。


例えば

PC
 ↓
USB
 ↓
STM32

の場合

  • STM32へ給電
  • シリアル通信
  • ファームウェア書き込み

などを行える。


USBコネクタの種類

USBには様々なコネクタが存在する。


USB Type-A

最も一般的なUSBコネクタ。

PC
USBハブ

などで使用される。


USB Type-B

プリンタなどで利用される。


Micro USB

昔のスマートフォンや開発ボードで利用された。


USB Type-C

現在主流のコネクタ。

特徴

  • 表裏がない
  • 高速通信対応
  • 高出力給電対応

USBの配線

USB 2.0では基本的に4本の線を利用する。

信号 説明
VBUS 電源
D+ 通信線
D- 通信線
GND グランド

イメージ

USB

VBUS
D+
D-
GND

USBの電源

USBは機器へ電力を供給できる。

USB 2.0では一般的に

5V

が供給される。


PC
 ↓
USB
 ↓
STM32

STM32では

5V
 ↓
LDO/DCDC
 ↓
3.3V

へ変換して利用する。


USB通信の仕組み

USBは

Host

Device

で構成される。


Host

通信を管理する側。

  • PC
  • Raspberry Pi
  • スマートフォン

Device

接続される側。

  • STM32
  • USBメモリ
  • マウス

イメージ

PC
(Host)
   │
 USB
   │
STM32
(Device)

USBの通信速度

USBには複数の規格が存在する。

規格 理論速度
USB 1.1 Low Speed 1.5Mbps
USB 1.1 Full Speed 12Mbps
USB 2.0 High Speed 480Mbps
USB 3.0 5Gbps
USB 3.1 10Gbps
USB 3.2 20Gbps

STM32では

USB Full Speed
(12Mbps)

がよく利用される。


USBデバイスクラス

USBには様々な機器の種類が定義されている。


HID

Human Interface Device

  • マウス
  • キーボード
  • ゲームパッド

CDC

Communication Device Class

仮想シリアルポートとして動作する。

USB
 ↓
COMポート

STM32開発で最もよく利用される。


MSC

Mass Storage Class

USBメモリとして認識される。


Audio

オーディオ機器用。


STM32でのUSB

STM32にはUSBコントローラが内蔵されているものがある。


STM32F103

STM32F4

STM32G4

など。


CubeMXで

USB Device

を有効化できる。


USB CDC

STM32ではCDCモードが非常によく利用される。


PCから見ると

COM3

COM5

などのシリアルポートとして認識される。


イメージ

PC
 ↓
USB
 ↓
仮想UART
 ↓
STM32

UARTとの違い

項目 USB UART
通信速度 高い 普通
配線 専用規格 単純
PC接続 直接可能 USB変換が必要
実装難易度 高い 低い

USBとシリアル通信

多くの開発ボードでは

USB
 ↓
USB-UART変換IC
 ↓
STM32 UART

となっている。


そのため

USB通信

に見えても実際はUARTである場合が多い。


USB Type-Cについて

USB Type-Cはコネクタ形状の名前である。


よくある誤解

Type-C = 高速

ではない。


実際には

Type-C

はコネクタ形状であり、

内部の通信規格は

USB2.0

USB3.0

USB3.2

など様々である。


USBとESD対策

USBコネクタは外部へ露出する。

そのため

静電気

の影響を受けやすい。


実際の基板では

USBコネクタ
 ↓
ESD保護素子
 ↓
STM32

という構成がよく利用される。


Asterでの利用例

Asterでは以下の用途で利用できる。

デバッグ

PC
 ↓
USB
 ↓
AC

ログ出力

STM32
 ↓
USB CDC
 ↓
PC

ファームウェア更新

USB
 ↓
ブートローダ

Raspberry Pi接続

Raspberry Pi
 ↓
USB
 ↓
STM32

よくあるトラブル

D+とD-を逆接続

通信できない。


GND未接続

通信が不安定になる。


ESD対策不足

静電気で故障する。


Type-CだからUSB3.0だと思い込む

実際はUSB2.0の場合も多い。


まとめ

USBは通信と電源供給を同時に行える汎用インターフェースである。

  • HostとDeviceで通信する
  • 電源供給が可能
  • D+とD-でデータ通信を行う
  • STM32ではCDCがよく利用される
  • Type-Cはコネクタ形状の名称である
  • ESD対策が重要

組み込み開発ではデバッグ、ログ取得、ファームウェア更新など様々な場面で利用される重要な通信規格である。