タイトル:ハブポートの手動制御 – KBA224206 - Community Translated (JA)

Version 4

    Community Translated by keni_4440091          Version: **

     

    Translation - English: https://community.cypress.com/docs/DOC-15371

     

    質問:

    ハブポートを手動でユーザーが制御する方法

     

    回答:

    一般的に、ハブの全てのポートは自動的にハブ自身によって、またはホストによって制御されます; つまり、ユーザーは細かい注意を払う必要がありません。しかし、場合によって、ユーザーはポートの幾つかの機能を手動で制御する必要があります。これは、ハブにset futureコマンド(または他のハブクラスコマンド)を送信する事で完了できます。

    例えば、HX2VLのポートインジケーターを設定するため、これらの手順に従って下さい:

     

    1. USB仕様の基本知識

    下記のスクリーンショットは、USB 2.0仕様の表11-15、ハブクラス要求(11.24.2章、クラス仕様要求)から抽出されています。全てのUSBハブクラス要求が表示され、SetPortFeatureは赤い箱でハイライトされています。

     

    SetPortFeatureは、ポート状態の中で報告されている値を設定するUSBハブクラス要求の一つです。bmRequestType0x23で、このクラス要求の方向、タイプおよび目標を示します。bRequestは、USBクラス要求コードであるSET_FEATURE(0x03)です。wValueは機能セレクターで、ハブクラスの16の有効な機能セレクターがあります。従って、目的はハブのポートインジケーターを実装するためのものです。表11-17USB 2.0仕様のハブクラス機能セレクター(11.24.2章、クラス特有要求)から抽出される下記のスクリーンショットの赤い箱の中に示されるハブにお PORT_INDICATOR(0x16)が選択されます。

     

     

    機能セレクターがPORT_INDICATORの場合、wIndexフィールドの最上位バイトは特有インジケータモードを判定するセレクターで、かつwIndexフィールドの最下位バイトは選択されたポートを指します。下記のスクリーンショットは、ポートインジケータモードおよび関連する値を示す、USB 2.0仕様のポートインジケータ選択コード(11.24.2.13章、ポート機能の設定)から抽出されています。自動モードの初期設定値は(0)です。赤い箱は手動モードおよびその値をハイライトしています。例えば、wIndex値が0x0103の場合、ハブのポート3のポートインジケーターカラーの設定は琥珀色に変化します。

     

    3 ポートインジケーター選択コード

    1. コマンド送信手順
    • 最初の手順では、ハブがポートインジケーター機能をサポートしていることを確認しますが、殆どすべてのハブでサポートされています。
    • ホストにハブを接続し、正常に列挙されることを確認します。
    • BUS HOUNDを開き、デバイスを見つけ、そしてコマンドを送るウィンドウを開くためにダブルクリックします。
    • 下記のコマンドを送信します。
    • ポートインジケーターの変化を観察します。