*データ転送方式 (Control, Interrupt, Bulk, Isochronous) [#title]

USB は、USB 機器の使用用途に合った様々なデータ転送方式が用意されています。

#contents

-www.necel.com/usb/ja/about_usb/USB1_2.html~
NEC エレクトロニクスの「データ転送方式」。データ転送方式について詳しいです。お勧め。


**Control 転送 [#u2df469c]
Control 転送は、USB 機器の PnP に係わるデータ転送を行う方式です。

特徴としては以下の通り。

-''どの機器でも 1 つはサポートされなければならない''~
多くの場合、Endpoint 0 を control pipe として指定しています。Host は Endpoint 0 に対して Address の指定や機器の情報取得を行うからです。
-''Standard/Device class で詳細に定義されている''~
Control 転送では、返却しなければならないデータがUSB の仕様として予め指定されています。
-''10% の帯域確保''~
PnP に係わる重要な転送である為、どんなに USB bus が busy になろうとも 10% の帯域は確保されなければなりません。 


**Interrupt 転送 [#q2d2b91b]
Interrupt 転送は、データ転送の必要がある場合に転送する方式です。

Interrupt 転送という名称より、USB には割り込み信号があってそれを利用すると勘違いされ気味ですが、違います。Interrupt 転送では予め USB 機器を pooling する期間を指定し、Host からマネージメントしてもらう方式を取っています。例えば 10ms に一回は情報を取りに来るよう指定した場合、Host は 10ms 以内にデータが用意されていないかどうか機器に対して問い合わせます。機器はその問い合わせに対して返答することであたかも「割り込み(Interrupt)」が掛かったように見せかけます。

特徴としては以下の通り。

-''少量のデータを一定期間で効率よく転送するのに向いています''~
Keyboard や Mouse 等のデータ転送量が多くなく、一定間隔で pooling することで対応可能な機器に向いています。
-''Low Speed 対応''~
Bulk, Isochronous 転送は Low Speed をサポートしていません。
-''USB 機器例''
--HID(Keyboard, Mouse,...)

**Bulk 転送 [#t1b1f4d8]
Bulk 転送は、大量のデータを効率よく転送する方式です。

特徴としては以下の通り。

-''大量のデータの送信''~
USB Bus 内が使用されていない場合、殆ど Bulk 転送で使用されるようマネージメントされます。
-''Best effort''~
Bulk 転送は他の転送方式と比べると優先順位は低く設定されています。他の優先順位の高いデータ転送と重なった場合には、Bulk 転送にかける時間は削られます。転送に掛ける時間は保障されません。
-''USB 機器例''
--Storage(HDD, CD-R,...)
--Network(有線 LAN, 無線 LAN,Bluetooth,...)
--Imaging(Printer, Scanner, Digital Camera, ...) 


**Isochronous 転送 [#k0bdae18]
Isochronous 転送は、リアルタイムにデータ転送を行う方式です。

特徴としては以下の通り。

-''リアルタイム性の重視''~
データの正確性よりも一定時間が保証されたデータ転送を行います。Audio や Video 等の用途では、一定時間にデータが転送されないと、音飛びやコマ落ちが頻繁に発生してしまい実用に合いません。
-''保証されないデータ''~
転送されたデータが正しいかどうかのチェックを省くことでリアルタイム性を保っています。Audio や Video 等の用途では、仮にデータが化けていたとしても大きな問題にならないからです。
-''USB 機器例''
--Audio
--Video 

//
// 関連情報
//
//*関連情報 [#infor]

//**用語 [#words]
//**特集記事 [#special]
//**インタビュー記事 [#interview]
//**記事リンク集 [#links]
//**Tips [#tips]

//
// News
//
//*News [#news]







// EOF

// [[&ref(vmplayer-s.jpg,nolink,VMware Player で起動した Knoppix 4.0.2);>http://mcn.oops.jp/wiki/index.php?plugin=attach&pcmd=open&file=vmplayer.jpg&refer=VM%2FVMware%2FVMware%20Player]]
// [[&ref(codezine_l.gif,nolink,CodeZine);>http://codezine.jp/]]
// [ [[edit>Edit:Windows Vista/News]] ]