EZ-USB® SX2™上のアイソクロノスまたはバルクエンドポイントを介したデータのストリーミング - KBA211686 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by keni_4440091 Version: **
Translation - English: Streaming Data through Isochronous or Bulk Endpoints on EZ-USB® SX2™ - KBA211686
質問:
バルクまたはアイソクロノスエンドポイント経由のデータをストリーミングするためのSX2の構成方法
回答:
EZ-USB SX2はコードダウンロードのためのRAMを必要としないシリアルインターフェースエンジン(SIE)専用のデバイスです。レジスタを初期化し、デバイスを列挙するために外部マスターが必要です。SX2はペリフェラルからのデータをバッファし、USB経由で、またその逆でホストに送信だけです。SX2は、宛先にコミットする前にペリフェラルまたはホストから受信したデータを変更する事はできません。SX2の終端を適切に高セする事によって外部マスターからUSBホストへ、またUSBホストから外部マスターへデータをストリーミングことが可能になります。SX2を介したデータのストリーミングは、スレーブAUTOモード動作用に構成されたEZ-USB FX2LPを通したデータのストリーミングと同等になります。
SX2の終端
SX2は1つの制御終端(EP0)および、EZ-USB FX2LPのような4つの構成可能なデータ終端(EP2、EP4、EP6、およびEP8)をサポートし、専用の終端RAMを占有します。データ終端はバルク、割込み、またはアイソクロノスとして構成可能になります;4-KB FIFOバッファスペースと共有するダブル、トリプルまたはクアッドバッファ終端(図1)。
図1.高速終端構成
電源投入リセットでの初期設定の終端メモリー構成は下記の様になります:
- EP2: バルクアウト, 512 バイト, 2x バッファード
- EP4: バルクアウト, 512 バイト, 2x バッファード
- EP6: バルクイン, 512 バイト, 2x バッファード
- EP8: バルクイン, 512 バイト, 2x バッファード
終端レジスタ構成 SX2は、終端バッファのサイズ、長さおよび方向を制御する構成レジスタを含んでいます。外部マスターは、記述子に応じて機能する終端向けのこれらのレジスタに適切な値を書き込む必要があります。例えば、IN終端として終端2を構成するためには、終端2に適切に記述子を書き込む事に加えて、SX2コマンドレジスタEP2CFGは、INとしてSX2終端2バッファの方向を構成するために対応する値を書き込まれる必要があります。SX2レジスタのリストに関しては、SX2 データシートを参照して下さい。 下記のように、1つのサンプル終端構成を考えてみましょう:
- 終端2: バルクアウト, 512 バイト, 高速モードで2x バッファード
- 終端4: バルクイン, 512 バイト, 高速モードで2x バッファード
- 終端6: 割込みイン, 1024 バイト, 高速モードで2x バッファード
この構成を実現するためにレジスタに書き込まれる値は下記になります。(SX2 データシートに記載のあるレジスタ名は、値と並んでコメントとしてリストされていることに注意して下さい。):
0xAA, //IFCONFIG // MHz=1=48 ASYNC=1 FLAGD=1
0xA8, //FLAGA - fixed EP2EF, FLAGB - fixed EP6EF
0xFD, //FLAGC - fixed EP4FF, FLAGD - fixed EP8FF
0x00, //POLAR // 全ての信号はlowアクティブ
0xA2, //EP2CFG // 方向をOUTに設定
0xE0, //EP4CFG // 方向をINに設定
0xFA, //EP6CFG // 方向をINに設定
0x00, //EP8CFG // 無効な終端
0x02, //EP2PKTLENH // Zerolen=0 Wordwide=0
0x00, //EP2PKTLENL
0x02, //EP4PKTLENH // Zerolen=0 Wordwide=0
0x00, //EP4PKTLENL
0x22, //EP6PKTLENH // Zerolen=1 Wordwide=0
0x00, //EP6PKTLENL
0x22, //EP8PKTLENH // Zerolen=1 Wordwide=0
0x00, //EP8PKTLENL
0x82, //EP2PFH
0x00, //EP2PFL
0x82, //EP4PFH
0x00, //EP4PFL
0x82, //EP6PFH
0x00, //EP6PFL
0x82, //EP8PFH
0x00, //EP8PFL
0x01, //EP2ISOINPKTS
0x01, //EP4ISOINPKTS
0x01, //EP6ISOINPKTS
0x01, //EP8ISOINPKTS
0xFF //INTENABLE
アイソクロノス終端構成と同様に、適切な値が対応するEPxCFGレジスタに対して設定される必要があります。EPxCFGレジスタフィールド定義に関してはSX2 データシートを参照して下さい。
注意:SX2はこれらの終端構成レジスタの動的な変更をサポートするために設定されていません。デバイスが特定の構成で列挙された後に終端構成を変更する機能を必要とする場合、構成の変更後にFIFOのアクセスに多少の遅延が考えられます。例えば、EP2PKTLENHの書き込み後、FIFOに書き込む前に、READY信号がアサートされた時から測定して少なくとも35 us待つ必要があります。この遅延は異なるレジスタで異なり、規定されません。
SX2は、的確な値がSX2構成レジスタに書き込まれ、記述子がSX2にロードされた後、要求される終端構成で正常に列挙されることができます。
外部インターフェース
外部マスターへのペイロードデータは、USBドメインからペリフェラルまたはインターフェースドメインに自動的に転送され、外部マスターの制御の基、スレーブFIFOインターフェースを介して転送されます。同様に、スレーブFIFOインターフェースを介してSX2に外部マスターによって送信されるペイロードデータは、ペリフェラルまたはインターフェースドメインからUSBドメインに自動的に転送されます。スレーブFIFOアーキテクチャはFIFO制御信号(IFCLK, CS#, SLRD, SLWR, SLOE, PKTEND, およびFIFOADR[2:0])によて制御されるFIFOメモリーとして終端(終端RAMの中)を使用します。SX2には、FIFOまたはコマンドインターフェース(表1)のどちらかを選択するために使用される3つのアドレスピン(FIFOADR[2:0])があります。外部マスターからスレーブFIFOインターフェース(同期または非同期)にアクセスする方法の詳細はSX2 データシートを参照して下さい。
表1.FIFOアドレスライン設定
Address/ |
Endpoint |
FIFOADR2 |
FIFOADR1 |
FIFOADR0 |
FIFO2 |
EP2 |
0 |
0 |
0 |
FIFO4 |
EP4 |
0 |
0 |
1 |
FIFO6 |
EP6 |
0 |
1 |
0 |
FIFO8 |
EP8 |
0 |
1 |
1 |
COMMAND |
EP0/SX2 |
1 |
0 |
0 |
RESERVED |
- |
1 |
0 |
1 |
RESERVED |
- |
1 |
1 |
0 |
RESERVED |
- |
1 |
1 |
1 |
このように、適切な終端を選択するために、正しい終端構成および外部マスターからの正しいアドレシングは、その終端を通してシームレスデータのストリーミングを可能にします。
ここにあるSX2の他のノリッジベースアーティクルを参照して下さい。