FX3 / CX3:UVC拡張ユニットアプリケーション – KBA230466 - Community Translated (JA)

Version 1

    Community Translated by NoTa_4591161          Version: **

     

    Translation - English: FX3/CX3: UVC Extension Unit Application – KBA230466

     

    質問1
    ベンダー固有の機能をUVCファームウェアに追加することは可能でしょうか?

     

    回答:
    はい、ベンダー固有の機能をUVCファームウェアに追加できますUSBビデオクラスの仕様に従って、拡張ユニットでは、標準のUSBベンダーリクエストと同様に、ベンダー固有の機能を追加できます。AN75779 - USBビデオクラス(UVC)フレームワークでEZ-USB FX3を使用してイメージセンサーインターフェイスを実装する方法はUVC拡張ユニットを実装します。拡張ユニットコントロールのサンプル、デバイスファームウェアバージョンの取得または設定は、AN75779ファームウェアに実装されています。

    拡張ユニット制御の実装の詳細についてはAN75779サンプルプロジェクトの拡張ユニット制御の実装 -KBA219280をご参照願います。

     

    質問2
    UVC拡張ユニットとどのように通信しますか?

    AN75779ファームウェアでは、拡張ユニットは空ですが、サンプルデザインが実装されており、デバイスファームウェアのバージョンを取得または設定できるようになっています。デバイスは、複数の拡張ユニットをサポートできます。

    拡張ユニットが使用されている場合、標準のホストアプリケーションは、その機能を認識するように設計されていない限り、その機能を認識しません。カスタム拡張コントロールとホストアプリケーションは、これらのコントロールをクエリするように設計できます。

    このナレッジベースの記事(KBA)には、AN75779ファームウェアからデバイスファームウェアバージョンを取得または設定するためのサンプルホストアプリケーション(コンソールアプリ)が用意されています。このサンプルホストアプリケーションは、Visual Studio 2015VS 2015)でビルドされています。SetGetExtensionUnit APIを使用して、SET/GET要求をUVCデバイスの拡張ユニットに送信します。

     

    質問3
    UVC Extension Unitサンプルホストアプリケーションの使用中にエラー0x80070492が発生します。その理由は何でしょうか?

     

    回答:
    UVC拡張ユニットサンプルアプリケーションを使用してUVCファームウェアの拡張ユニットと通信しているときに、1示すようにエラーが発生する可能性があります。

     

    1 . エラー0x80070492

        

    エラー0x80070492E_PROP_SET_UNSUPPORTED あり、指定されたプロパティセットがサポートされていない場合に発生します。このサンプルホストアプリケーションで設定されるプロパティは、使用されるGUIDに対応しています。このエラーは、拡張ユニットのGUIDとホストアプリケーションのGUIDの間に不一致がある場合に発生します。

    このエラーを解決するには:

    • Visual Studioを使用して生成されたGUIDcyfxuvcdscr.cファイルの拡張ユニットディスクリプタの16バイトのGUIDフィールドを更新します。
    • デフォルトのAN75779ファームウェアを使用している場合は、UVC_EXTENSION_UNITマクロが有効になっているかどうかを確認してください。

     

    質問4

    UVC Extension Unitサンプルホストアプリケーションの使用中にエラー0x80070490が発生します。その理由は何でしょうか?回答UVCファームウェアの拡張ユニットでUVC拡張ユニットサンプルアプリケーションを使用しているときに、2示すようにエラーが発生する可能性があります。

     

    2 . エラー0x80070490    

     

    エラー0x80070490E_PROP_ID_UNSUPPORTEDです。これは、指定されたプロパティ識別子がサポートされていない場合に発生します。このサンプルホストアプリケーションのプロパティ識別子は、デバイスでサポートされているbmControlに対応し、拡張ユニットディスクリプタで言及されています。このエラーは、SET / GET要求がファームウェアで正しく処理されていない場合、またはホストアプリケーションが要求を処理するコントロールがUVCデバイスでサポートされていない場合に発生します。 このエラーを解決するには:

    • ホストアプリケーションとUVCデバイスでサポートされているベンダー固有のコントロールが同じであることを確認します。4示すように、拡張ユニットディスクリプタのbmControlフィールドを確認できます
    • ファームウェアで、ホストアプリケーションからのSET/GET要求がAN75779サンプルプロジェクト-KBA219280の拡張ユニット制御の実装に基づいて正しく処理されることを確認します。

    たとえば、サンプルホストアプリケーションでは、0x01ベンダー固有のコントロールがサポートされています。したがって、SET/GET要求は、ホストから0x01コントロールにアドレス指定されて送信されます。UVCデバイスは0x01制御をサポートし、ホストからのSET / GET要求を処理し、要求に正しく応答できる必要があります。 3に示すAN75779サンプルファームウェアのディスクリプタは、0x01制御をサポートしています

     

    3 . 拡張ユニット - bmControlフィールド 

     

      4. デバイスがサポートする制御に対処するSET/GET要求の処理  

     

      5. コントロール定義

      3示すように、ディスクリプタにお客様固有のbmControlを追加して有効にすることができます。コントロールをサポートするには、ホストアプリケーションを変更する必要があります。

    • ホストアプリケーションからのSET/GET要求に応答して、予期したデータが制御インターフェースを介して送信されることを確認します。
    • ホストから要求されたデータ長がUVCデバイスでサポートされている長さと一致していることを確認してください。

    質問5
    拡張ユニットを有効にしたCX3サンプルコードはありますでしょうか?

    回答:
    CX3のサンプルコードは、拡張ユニットをサポートし、ベンダー固有のリクエストを処理するように変更できます。このKBAに添付されているサンプルコードCX3OV5640は、UVC_EEXTENSION_UNITマクロを有効にすると、ベンダー固有の機能をUVCデバイスに追加します。このファームウェアは、このKBAに添付されているサンプルホストアプリケーションでテストされています。

    KBAが添付されたファームウェアを使用してCX3デバイスをプログラミングすると、CX3VID/PIDとしてFX3デバイスとして列挙され、ファームウェアで拡張製品の文字列ディスクリプタが変更されて、ファームウェアが拡張ユニットホストアプリケーションと互換性を持つようになります。