設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識

掛須利夫

tag: 組み込み 半導体 実装

技術解説 2004年1月30日

●エンドポイントは必要な数だけ用意する

 USBの通信でもっとも使われる用語に「エンドポイント(EP:endpoint)」があります.エンドポイントはUSBデバイス内に置かれたバッファ・レジスタです.ホストとUSBデバイスの間は2線式のより対線ケーブルが1対しかありません.ホスト側のソフトウェアは,論理的にはデバイスに対して「パイプ(pipe)」と呼ばれる複数の通信経路を経て,エンドポイントとデータの送受信を行います.

 エンドポイントには,用途によってコントロール・エンドポイント,デバイス・エンドポイントなどのいくつかの名称があります.エンドポイントとパイプの概念を図15に示します.ホストからデバイス方向(デバイス受信)をOUTエンドポイント,デバイスからホスト方向(デバイス送信)をINエンドポイントと呼びます.

 エンドポイントは4ビットで割り当てられ,最大数はIN=16,OUT=16の合計32です.使用できるエンドポイントの数とサイズは,表3のように通信速度によって異なります.エンドポイントはつねに最大数をサポートする必要はありません.ホストとUSBデバイスの間で必要とする数だけを用意すればよいのです.例えば,米国Cypress Semicon-ductor社が開発したUSB 2.0デバイス・コントローラLSI「FX2(CY7C68013)」では,エンドポイントは,EP0,EP1,EP2,EP4,EP6,EP8の六つです(図16)

 エンドポイントを増やすと通信路を時分割する数が増えてしまい,切り替えによるオーバヘッド時間が増加してスループットが下がります.これを防止するためには,ホストのアプリケーションによって1パケットを複数データで構成して,エンドポイントを共有した場合とエンドポイントをデータごとに分割した場合のスループットを比較してみる必要があります.

f15_01.gif
〔図15〕エンドポイントの概念図
ホストからデバイス方向(デバイス受信)をOUTエンドポイント,デバイスからホスト方向(デバイス送信)をINエンドポイントと呼ぶ.

〔表3〕通信速度とエンドポイント
表では,従来の通信速度をUSB 1.1と示しているが,規格ではUSB 2.0はすべての通信速度を含む.

USB 1.1
ロースピード・モード
USB 1.1
フルスピード・ モード
USB 2.0
ハイスピード・モード
基本速度 1.5Mbps 12Mbps 480Mbps
最大エンドポイント数 3 32 32
最大バルク・
パケット・サイズ
8バイト 64バイト 512バイト
最大バルク転送
スループット
16Kバイト/s 1.1Mバイト/s 56Mバイト/s
最大アイソクロナス・
サイズ
使用不可 1,023バイト 1,024バイト
最大アイソクロナス・
スループット
使用不可 1.0Mバイト/s 24Mバイト/s

f16_01.gif
〔図16〕エンドポイント・バッファの構成
Cypress Semiconductor社のUSB 2.0デバイス・コントローラ「FX2」で使用できる最大エンドポイント・サイズとバッファリング数を示している.使用目的により使い分ける.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日