0 Replies Latest reply on May 10, 2020 3:48 PM by NoTa_4591161

    Community Translation - FX2LP: Dual Virtual COM Port Descriptors - KBA229819

    NoTa_4591161

      Hi,

       

      I would like to translate KBA229819 into Japanese.

       

      Thanks,

      Kenshow


      Original KBA:

      FX2LP: Dual Virtual COM Port Descriptors - KBA229819

      Translated by Kenshow

      ==============================

       

      タイトル: FX2LP:デュアル仮想COMポートディスクリプタ - KBA229819

       

      バージョン:**

       

      質問:

      FX2LPのディスクリプタを設定して2つのCOMポートを持つデュアルCDCデバイスとしてエニュメレートするにはどうのようにするのでしょうか?

       

      回答:

      USB CDC Abstract Control Management (ACM) デバイスでは、次のディスクリプタが必要になります。

      • Standard Device Descriptor
      • Standard Configuration Descriptor
      • Interface Association Descriptor
      • CDC Header Functional Descriptor
      • CDC Union Functional Descriptor
      • Call Management Functional (CM) Descriptor
      • Abstract Control Management (ACM) Descriptor
      • Standard Interface Descriptor for CDC Class Communication Interface
      • Standard Endpoint Descriptor for Interrupt IN Endpoint
      • Standard Interface Descriptor for CDC Class Data Interface
      • Standard Endpoint Descriptor for Bulk IN and Bulk OUT Endpoint

      FX2LPを複数のCOMポート(CDCデバイス)でエニュメレートするには、複合デバイスとしても知られる多機能デバイスとして構成する必要があります。複合デバイスは複数のデバイスクラスをサポートします。つまり、デバイスは複数の機能を同時に実行できます。たとえば、デバイスはキーボードおよびマウスとして機能できます。

      このナレッジベースの記事(KBA)は、FX2LPをデュアルCDCクラスデバイスとして構成するためのものです。

      CDCクラスデバイスには2つのインターフェイスが必要です。

      • コミュニケーションインターフェイス:1つの割り込みエンドポイント
      • データインターフェイス:2つのバルクエンドポイント(INおよびOUT転送にそれぞれ1つ)

       

      Interface Association DescriptorIAD)により、デバイスは、機能に属するインターフェイスをグループ化できます。IADは、通信およびデータインターフェイスを各CDCデバイスの単一のインターフェイスにグループ化するために使用されます。これにより、これらの2つのインターフェイスが結合され、ホストPC上の単一デバイス(CDC)としてエニュメレートされます。

      'x' CDCクラスデバイスを構成するには、 '2x'インターフェイスが必要です( 'x'データインターフェイスと 'x'コミュニケーションインターフェイス)。

      ディスクリプタの定義:

      USB IFは、デバイスファームウェアに1つ以上のIADが存在するかどうかをオペレーティングシステムに通知する特定のクラスとプロトコルコードセットを設定しています。このセクションでは、クラスとプロトコルセットを定義します。

      デバイス用のデバイスクラスディスクリプタは次のように設定します。

      bDeviceClass: 0xEF

      bDeviceSubClass: 0x02

      bDeviceProtocol: 0x01

      高速コンフィグレーションディスクリプタ:

      インターフェイス数を4に設定します。CDCデバイスごとに2つのインターフェイス(コミュニケーションおよびデータインターフェイス)。

      コンフィグレーションディスクリプタが定義された後、各CDCデバイスのIADを初期化する必要があります。その後、コミュニケーションインターフェイスとデータインターフェイスのインターフェイスディスクリプタを初期化します。

      各インターフェイスディスクリプタの後には、対応するエンドポイントディスクリプタが続きます。

      インターフェイスアソシエーションディスクリプタとして、IADの下のインターフェイスコレクションの最初のインターフェイスに、IADのクラスフィールドとサブクラスフィールドと一致するクラスフィールドとサブクラスフィールドを含めることをお勧めします。1を参照してください。

      1. IAD関数クラスとサブクラス

      IADフィールド

      対応するインターフェイス

      フィールド

      bFunctionClass

      bInterfaceClass

      bFunctionSubclassClass

      bInterfaceSubClass

       

      このKBAに添付されているFX2LP記述子ファイル(dscr.A51)には、ホスト上のFX2LP2つのCOMポートを備えたデュアルCDCクラスデバイスとして高速でエニュメレートするために必要なディスクリプタが含まれています。

       

      FX2LPを使用してデュアル仮想COMポートを実装するようにAN58764が変更されているこのスレッドのファームウェアプロジェクトを参照してください。

      ==============================

      11-May-2020

      Kenshow