Community Translation - Video streaming through multiple endpoints in EZ-USB™ FX3 – KBA233574

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
keni_4440091
Level 7
Level 7
500 replies posted 100 solutions authored 50 solutions authored

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

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Nino-san

Sorry for late reply.

I had an issue to log-on.

Yes, confirm to work on this KBA.

Thanks,

Jenna Jo
0 Likes

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インターフェースが選択される必要があります。

 

keni_4440091_1-1635726612976.png

12つの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に添付したファームウェアは、テンプレートプロジェクトで、ユーザーアプリケーションに応じて修正する必要があります。

 

添付

 

fx3_two_video_stream.zip

 

Labels   USB: 3.0 - Super Speed

Tags: firmware fpga fx3 usb 3.0 video streaming Add tags

0 Likes