- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear supporter
I want to translate the following KBA. Please confirm to my work.
Video streaming through multiple endpoints in EZ-USB™ FX3 – KBA233574
Regards,
Nino
- Labels:
-
EZ-USB FX3
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, Nino-san
Sorry for late reply.
I had an issue to log-on.
Yes, confirm to work on this KBA.
Thanks,
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Jenna
The following shows the translated version in Japanese for targeted KBA.
Please conform and double check.
Regards,
Nino
--------------------------------------------------------------------------------------------------------
EZ-USB™ FX3の複数の終端を介した画像ストリーミング – KBA233574
Version: **
質問: EZ-USB™ FX3を1つ使用して、2つの画像センサーから画像をストリーミングできますか?
回答:
はい、FX3+FPGAソリューションを使用できます。スレーブFIFOインターフェースは、FPGAと通信するために使用できます
(スレーブFIFOインターフェースの詳細に関しては、AN65974 - EZ-USB FX3 スレーブFIFOインターフェースを用いた設計を参照してください)。
1つのFX3を使用して2つの画像センサーからのストリーミングは、2つのDMAチャネルを生成することで実現できます。
例えば、生成された2つのDMAチャネルは以下の場合です:
DMAチャネル-1は、ProducerソケットをCY_U3P_PIB_SOCKET_0, CY_U3P_PIB_SOCKET_1とし、ConsumerソケットをCY_U3P_UIB_SOCKET_CONS_1とします。
DMAチャネル-2は、ProducerソケットをCY_U3P_PIB_SOCKET_2, CY_U3P_PIB_SOCKET_3とし、ConsumerソケットをCY_U3P_UIB_SOCKET_CONS_2とします。
FPGAは、2つの画像センサーからのデータを保存するために2つのFIFOを維持できます。FPGAコードは、データをフェッチし、FX3に送信するFIFOに応じてアドレスライン(A0とA1)を変更する必要があります。
センサー1データは、FPGAのFIFO1に格納され、センサー2データはFPGAのFIFO2に格納される必要があります。
ブランキング期間の間では、FPGAはFIFOを切り替えることができ、データをストリーミングするためにFX3の適切なDMAチャネルを選択するアドレスラインを変更できます。つまり、データがFIFO1から来ている場合、2ビットアドレスラインA0:A1は、つまりDMAチャネル1のCY_U3P_PIB_SOCKET_0 またはCY_U3P_PIB_SOCKET_1を選択するためにピンポン方式で、代替的に00または01で駆動される必要があります。
同様に、データがFIFO2から来ている場合、FPGAは代替的に2ビットアドレスラインA0:A1を10または11として駆動し、DMAチャネル2のCY_U3P_PIB_SOCKET_2またはCY_U3P_PIB_SOCKET_3を選択する必要があります。
注: ピンポンDMAバッファを理解するには、 AN75779 - How to implement an image sensor interface using EZ-USB FX3 in a USB video class (UVC) fra... の3および4章を参照してください。
画像データは、DMAチャネルを介したUSBブロックに転送される上の例で述べたようにDMAチャネルに対応したPIBソケットにより受信されます。2つのセンサーからの2つの画像ストリームとしては、2つのDMAチャネルを使用してストリーミングされ、デバイスは2つのUVCインターフェース、すなわちFX3-UVC-1 およびFX3-UVC-2を持つ複合デバイスとして列挙する必要があります。ArmCap、VLCメディアプレーヤーのようなホストアプリケーションでは、ユーザーはUVCインターフェースを選択するためのオプションを取得して、画像ストリーミングを開始します。両方のセンサーからのストリーミングが同時に開始される場合、ホストアプリケーションの2つのインスタンスを開き、適切なUVCインターフェースが選択される必要があります。
図1.2つのUVCインターフェースを持つ複合デバイス
2つのUVCインターフェースで列挙するデバイスでは、2つのセットのUVC記述子をサポートするためにUSB記述子を修正する必要があります。これに加えて、ファームウェアは両方のインターフェースのUVC特有の要求も処理する必要があります。
2つのUVCインターフェースとUVC特有の要求処理を持つ仮のファームウェアが、このKBAに添付されています。ファームウェアで使用されているGPIFステートマシンのヘッダーファイル(cyfxgpif2config.h)は、ダミーのステートマシンです。ユーザーは、アプリケーションに基づいたカスタムGPIFステートマシンヘッダーファイルを使用する必要があります。2つのCY_U3P_DMA_TYPE_MANUAL_MANY_TO_ONE DMAチャネルは、30FPS画像ストリームで2つの640* 480 (VGA) YUY2をストリーミングするファームウェアで使用されます。デフォルトのAN75779 UVCファームウェアに従って、UVCヘッダはファームウェアに追加されます。
cyu3imagesensor.c およびcyu3imgagesensor.h もこのプロジェクトで生成され、保存されます。cyu3imagesensor.cファイルは、画像センサーおよびFPGAを構成し、制御するために使用されます。このファイルでは、一部の構造が、有効な値なしで定義されます。実際の設定とこれらの値を入れ替えるる必要があります。一般的に、CyFx3_ImageSensor_Sleep、CyFx3_ImageSensor_Wakeup、およびCyFx3_ImageSensor_Trigger_Autofocusとして使用されるAPIでは、cyu3imagesensor.c および cyu3imagesensor.h ファイルも利用できます。これらの定義に対応するコードを付け加えてください。
注: KBAに添付したファームウェアは、テンプレートプロジェクトで、ユーザーアプリケーションに応じて修正する必要があります。
添付
Labels USB: 3.0 - Super Speed