HOME

EZ−USB FX2LPの概要 (その1)

INとOUTの記述

 ホスト(PC)から見たものをUSBではIN、OUTと表現します

ENDPOINT

 エンドポイントという通信路(USB側のメモリで実現)を通してホストと通信します。

EP0は必須で、他のEPは組み合わせて使用します。これには役割があって、以下のようになります。

EP0 (64バイト) コントロール転送専用でホストとコマンドのやり取りができます。数十バイトのデータ転送ならコントロール転送でもできます。

EP1IN,EP1OUT (各64バイト) バルク転送、インタラプト転送できます。 (転送方式は後術)

EP2,EP6 (各512×Bufferingまたは各1024×Buffering) バルク転送、インタラプト転送、アイソクロナス転送でデータ転送ができます。Buffering(バッファ数)は2,3,4の選択ができます。

EP4,EP8 (各512×Buffering) バルク転送、インタラプト転送、アイソクロナス転送でデータ転送ができます。Bufferingは2固定です。

ただし、EP2+EP4+EP6+EP8=4Kバイトの制限があります。例えば、EP2だけで1024×4=4096にすることもできますが、他のEP4、EP6、EP8はサイズ0になります。実際はEP(2,4,6,8)の番号の若い方が優先で、4096バイトになるような組み合わせになるようです。

FX2LPではデフォルトで以下の7つのENDPOINT用バッファが使用できます。EP0以外は使用しなくてもかまいません。

Name

Address

Size(バイト)

EP0BUF

E740−E77F

64

EP1OUTBUF

E780−E7BF

64

EP1INBUF

E7C0−E7FF

64

EP2FIFOBUF

F000−F3FF

1024

EP4FIFOBUF

F400−F7FF

1024

EP6FIFOBUF

F800−FBFF

1024

EP8FIFOBUF

FC00−FFFF

1024

 

転送方式 

 コントロール転送とは、リクエストタイプ(1バイト)、リクエスト番号(1バイト)、Value(2バイト)、Index(2バイト)、Length(2バイト)、Data(64バイト)を設定しコマンド通信します。Dataの内容をOUT(ホスト→ターゲット)、またはIN(ホスト←ターゲット)することができます。リクエスト番号は0x00〜0x0C、0xA0〜0xAFが既に使用または予約されています。

 バルク転送とは、FIFOバッファ(大きな高速メモリ)にあるデータをINまたはOUT転送します。バスが空いているときに転送します。つまりタイミングには左右されない転送になります。

 インタラプト転送とは、FIFOバッファ(大きな高速メモリ)にあるデータをINまたはOUT転送します。マウスのような一定の時間間隔で転送するものに使用します。

 アイソクロナスト転送とは、FIFOバッファ(大きな高速メモリ)にあるデータをINまたはOUT転送します。決まった転送時間があるような画像や音声等の転送等に使用します。

 

 

 

inserted by FC2 system