インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

18.6.3.2. デバイス・トランザクション

デバイスとしてコンフィグレーションされている場合、USB OTGコントローラーは単一のFIFOバッファーを使用し、すべてのOUTエンドポイントのデータを受信します。受信FIFOバッファーは、受信したデータパケットのステータス (バイトカウント、データのパケットID (PID)、受信データの有効性など) を保持します。データが受信されると、DMAコントローラーはFIFOバッファーからデータを読み出します。FIFOバッファーのオーバーフロー状態が発生すると、コントローラーはNAKでOUTパケットに応答し、内部でポインターを巻き戻します。

INエンドポイントの場合、コントローラーは各エンドポイントに専用の送信バッファーを使用します。アプリケーションでは、USBホストが非周期的なエンドポイントにアクセスする順序を予測する必要はありません。送信中にFIFOバッファーのアンダーラン状態が発生すると、コントローラーは巡回冗長コード (CRC) を反転し、USBリンクでパケットを破損しているとしてマークします。

アプリケーションは、トランザクション・レベルの動作において、エンドポイントごとに一度に1つのデータパケットを処理します。ソフトウェアは、各パケットの完了時に割り込みを受信します。アプリケーションは、USBリンクで受信したハンドシェイク応答に基づき、トランザクションを再試行するか、次のトランザクションに進むかを決定します。これは、転送内のすべてのパケットが完了するまで行われます。