USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで

桑野 雅彦

tag: 組み込み

技術解説 2007年3月15日

● USBターゲット・コントローラのエンドポイント構造

 USBにおけるデータのやり取りは,エンドポイントと呼ばれるバッファを介して行われます.

 USBコントローラによっては,エンドポイントがRAMとして見え,ランダム・アクセスが可能になっているものもあれば,FIFO構造になっていて,順番に読み出しや書き込みを行う必要があるもの,またはそれらの双方の組み合わせが可能なものもあります.たいていの場合,エンドポイントは複数個実装されており,それぞれに番号を付けて管理しています.

● ディスクリプタとは

 ファームウェアによるエンドポイントの読み書きと併せて,USBターゲットとしてのもう一つの重要な要素にディスクリプタがあります.ディスクリプタそのものは単なるデータの塊であり,一般にはUSBターゲット開発時に,ファームウェアに初期値付きの配列として定義する,固定した内容のものです.

 例えばパソコンにUSBキーボードを接続すると,ほとんどの場合はドライバの追加インストールが不要で,すぐにデバイスを使うことができます.これは,USBキーボードには「私はUSB仕様に準拠したUSBキーボードです」という情報が記述されいるためです.それを認識したホストは,OSに標準で用意されているUSB標準キーボード・ドライバを読み込むため,ドライバのインストールがいらないのです.このようにUSB周辺機器がどのようなものなのか,その仕様を詳細に列挙したデータ列をディスクリプタと呼びます.

 ディスクリプタは一つではありません.どれほど仕様が簡単なターゲットでも,複数のディスクリプタが必要です.最低限必要なディスクリプタは,

  • デバイス・ディスクリプタ
  • コンフィグレーション・ディスクリプタ
  • インターフェース・ディスクリプタ
  • エンドポイント・ディスクリプタ

です.エンドポイント・ディスクリプタは,使用するエンドポイントの個数分だけ必要です.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日