設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識
●エニュメレーションはデバイス接続認識のプロセス
USBデバイスをパソコンに接続すると,Windowsが自動的にデバイスを認識し,その後でドライバをインストールします.ジャンパ設定などは不要で,ホットプラグによるプラグ・アンド・プレイに対応しています.
自動認識するためにすべてのUSBデバイスにはデバイス・デスクリプタのテーブルがあります.デスクリプタには,デバイスの属性やドライバをインストールする際に必要となる情報のすべてが記述されています.
USBプラグを接続すると,ホストは以下の手順でサインオン(sign-on)シーケンスを開始します.
- ホストはゲット・デスクリプタデバイス(Get Descriptor-Device)をアドレス0に送出する.すべてのUSBデバイスの接続直後のアドレスは'0'である.
- USBデバイスからの応答によって,デバイスが送信可能なパケット・サイズとサポートしているエンドポイント番号をホストが知る.
- ホストはセット・アドレス(Set Address)リクエストを送って,デバイスにアドレスを割り付ける.
- ホストはゲット・デスクリプタ(Get Descriptor)リクエストを送って,デバイスの追加情報を要求する.これにより,ホストはデバイスとの通信に必要なすべての情報を入手する.
この一連のサインオン・シーケンスを「エニュメレーション」と呼んでいます.
USB 2.0規格では,ハイスピード・モード対応のデバイスに対してフルスピード・モードのエニュメレーション機能が要求されます.つまり,ハイスピード・モード対応のデバイスのエニュメレーションはフルスピード・モードで実行されるということです.ホストとの間でハイスピードへの切り替え合意が成立した時点で,デバイスはハイスピード・モードになります.
参考・引用*文献
(1) Serial ATA Working Groupのホームページ
http://www.serialata.org/
(2) PCI-SIGのホームページ
http://www.pcisig.com/home
(3) Cypress Semiconductor社のLINに関するアプリケーション・ノート
http://www.cypress.com/cfuploads/support/app_notes/an2045.pdf
(4) Cypress Semiconductor社のCMLに関するアプリケーション・ノート
http://www.cypress.com/cfuploads/support/app_notes/CML_LVDS.pdf
かけす・としお
日本サイプレス(株)
◆筆者プロフィール◆
17才で第2級アマチュア無線技士,多重無線技士,高圧電気工事士免許,および第2級無線通信士のモールスも含めて合格した.20才で第2級無線技術士,21才で第2種情報処理技術者の資格を取得.学校ではアナログ伝送理論が専門だった.NTT,東京エレクトロン,テラダイン,防衛関連企業などを経て,現在は日本サイプレスの設計サポート担当エンジニア.