2012-04-26 2 views
0

デバイスモードでSynopsys OTGコアを使用しています。このエンドポイント専用の周期的FIFOを使用して、マイクロフレームあたり最大転送(1024バイトの3パケット)のアイソクロナスIN高速エンドポイント(USB 2.0)をプログラミングします。それは99 +%の時間で動作します。しかし、転送が切り捨てられることもあります。たとえば、最初の1024バイトは(正しいDATA2 PIDではなく)DATA0 PIDでバスに送られ、残りの2048バイトは送信されません。私はパケット数、マルチカウント、最大パケットサイズ、転送サイズを正しくプログラムしているので、何が起こっているのか分かりません。USBデバイスモードでSynopsys USB OTGコントローラ(2.65a)がアイソクロナスINを切り捨てることがあります

明らかにこれは非常に具体的な質問であり、私は答えを得ることはあまり期待できませんが、暗闇の中のショットは試してみる価値があると思いました。前もって感謝します。

答えて

1

アイソクロナス転送はパケット配信を保証しません。したがって、ホストコントローラに他のアクティブな転送がある場合、アイソクロナスパケットを静かにドロップします。保証梱包配送が必要な場合は、バルク転送を使用する必要があります(ただし、納品時間は保証されません)。

アイソクロナスは、サウンド配信やビデオストリーミングなど、一定の配信時間が必要なアプリケーションに最適ですが、一部のフレームの損失は問題ありません。

この仕様ではバスに制限が設けられているため、フルスピードバスで周期的な転送(割り込みおよび等時性)のためにフレームの90%以下を割り当てることができます。高速バスでは、この制限は、定期的な転送のために割り当てることができるマイクロフレームの80%を超えないように低減される。 (c)http://www.beyondlogic.org/usbnutshell/usb4.shtml

関連する問題