FX2LP™のアイソクロナス転送のスループット - KBA87932 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by NoTa_4591161 Version: *A
Original kBA: Throughput for Isochronous Transfers for FX2LP™ - KBA87932
質問:
FX2LPを使用したアイソクロナス転送のスループットは、バッファ長、MaxPktSize、およびwMaxPacketSizeの関係を示していますか?
回答:
ISO転送の場合、バッファ長とエンドポイントの転送サイズは、エンドポイントのMaxPktSizeの8倍の倍数です。
例えば:
wMaxPktSizeが0x1400(バイナリ= 0001 0100 0000 0000)の場合
MaxPktSize = [バイナリ100 0000 0000] * [バイナリ10 + 1] = 1024 * 3 = 3072
FX2LPで使用できるFIFOバッファスペースは最大4096バイトです。したがって、1つのエンドポイントを使用している場合は、4Kを割り当てることができます。
EP2FIFOCFGレジスタでクワッドバッファリング用に構成されたエンドポイント2を使用する必要があります。
EP2 FIFOは最大4096バイト、EP6 FIFOは最大2048バイト、EP4およびEP8 FIFOは最大1024バイトの長さにできることに注意してください。
したがって、4KBのエンドポイントRAMしか使用できない場合、アイソクロナス転送では、アイソクロナスパケットごとに1024バイトしか転送できません。
最大帯域幅を実現するために、USB 2.0仕様では、単一のデバイスがマイクロフレームごとに最大3つのアイソクロナスパケットをリクエストできるようになっています。これにより、マイクロフレームの最大帯域幅は3072バイトになります。マイクロフレームは125マイクロ秒であり、スループットは24 Mバイト/秒です。
マイクロフレームあたりの転送数は、エンドポイントディスクリプタのwMaxPacketSizeフィールドで定義されます。このフィールドのビット12とビット11は、マイクロフレームごとの追加トランザクションの数を指定し、次のように設定できます。
00 =なし(マイクロフレームごとに1回の転送、たとえば1024バイト)。
01 = 1追加(マイクロフレームあたり2回の転送、たとえば、マイクロフレームあたり2048バイト)。
10 = 2追加(マイクロフレームあたり3回の転送、たとえば、マイクロフレームあたり3072バイト)。
11 =予約済み