この記事では、USB Type-C 対応システムと Windows の相互運用性をテストする方法について説明します。 USB Type-C コネクタを公開するシステムおよびデバイスに対して、デバイスおよびシステムの製造元がさまざまな機能テストとストレス テストを実行するためのガイドラインを提供します。 これは、リーダーが公式の USB 仕様と xHCI 相互運用性テスト手順に精通していることを前提としています。 USB 仕様は 、USB.ORG からダウンロードできます。
USB Type-C ConnEx ボードを使用してこれらのテストを実行するには、 USB Type-C ConnEx を使用した USB Type-C システムのテストに関するページを参照してください。
テスト製品は、次のカテゴリの 1 つ以上に属することができます。
- システム: デスクトップ、ノート PC、タブレット、サーバー、または USB ポートが露出している電話 Type-C。 デスクトップ エディション (Home、Pro、Enterprise、Education)、Windows 10 Mobile、その他のバージョンの Windows 10 など、システムで Windows 10 のバージョンが実行されている必要があります。
- Dock: 複数のポートを公開する USB Type-C デバイス。
- デバイス:システムまたはドックに接続できる Type-C ポートを備えた任意の USB デバイス。 このカテゴリには、USB Type-C 仕様で定義されているアクセサリと代替モードをサポートする従来の USB デバイスとデバイスが含まれます。
公式仕様と手順
USB Type-C 相互運用性テスト手順は、機能テスト (FT) とストレス テスト (ST) の 2 つのセクションに分かれています。 各テスト セクションでは、テスト ケースについて説明し、テストに適用されるカテゴリを識別します。 製品は、該当するカテゴリ全体に対してテストする必要があります。 特定のテストケースには、追加情報に関する関連するヒントやアドバイスへのリンクが含まれています。 このドキュメントでは、USB Type-C の機能とエクスペリエンスについて説明します。 USB Type-C ソリューションには、USB ハブや USB コントローラーなどの他の USB コンポーネントが含まれている場合があります。 USB ハブとコントローラーの詳細なテストについては、USB-IF の xHCI 相互運用性テスト手順 と Windows ハードウェア認定キットの両方で説明します。
- デバイス列挙: デバイス列挙の主要な側面が機能していることを確認します。
- システムブート:製品が通常のシステムブートを阻害していないことを確認します。
- システムの電源切り替え: 製品は、影響を受けないことを確認することで、システムの電力遷移とウェイクアップ機能を低い電力状態からテストします。
- 選択的一時停止: 選択的一時停止遷移を確認します。
- ドック識別: ドック内のデバイス記述子が適切に実装されていることを確認します。
- 代替モード ネゴシエーション: サポートされている代替モードを確認します。
- 充電と電源供給 (PD): USB Type-C で充電を確認します。
- ロールのスワップ: ロールのスワップを確認します。
ストレス テスト セクションでは、一定期間にわたってデバイスの安定性をテストするストレスとエッジ ケースのシナリオの手順について説明します。 ストレス テストには、従来の USB 検証 (USB 以外の Type-C) 用のカスタム デバイスである Microsoft USB テスト ツール (MUTT) デバイスが必要です。 今後の USB Type-C テスト デバイスを使用して、より多くのテストと自動化を実現できます。
- システム電源切り替え: システム電源イベントの繰り返し後に製品の信頼性をテストします。
- 転送イベント: 複数の転送イベントと接続イベントを生成します
- プラグ アンド プレイ (PnP): さまざまな PnP シーケンスを生成します。
- デバイス トポロジ: 製品を使用して、さまざまなデバイスとトポロジをテストします。
FT ケース 1: デバイス列挙
適用対象: システム、ドック、デバイス
デバイスの列挙が機能していることを確認するには:
テスト システムを再起動し、Windows にサインインします。
テスト システムで デバイス マネージャー を開きます。 [スタート] から、[検索] テキスト ボックスに「devmgmt.msc」と入力します。
デバイスを USB Type-C 対応システムに接続します。 必要に応じて、デバイスの電源がオンになっているか、外部電源に接続されていることを確認します。
- システム: USB Type-C デバイスをシステムに接続します。
- デバイス: USB Type-C 対応システムにデバイスを接続します。
- ドック: USB 3.0 デバイスと、代替モードをサポートしているか、USB Type-C アクセサリである USB Type-C デバイスをドックに接続します。 ドックをシステムに接続します。
デバイス ノードがデバイス マネージャーに追加されていることを確認 します。 詳細については、「デバイスの 追加を確認する方法」を参照してください。
接続されているデバイスがエラーなしで機能することを確認します。
デバイスを切断し (該当する場合はドッキング)、 デバイス マネージャーで変更を確認します。 ドックとデバイスは デバイス マネージャーに表示されません。 詳細については、「 デバイスの削除を確認する方法」を参照してください。
USB Type-C ケーブルの向きを反転または裏返しし、手順 3 から 6 を繰り返します。
FT ケース 2: システム ブート
適用対象: システム、ハブ、デバイス
テスト対象の製品が通常のシステム ブート プロセスを阻害していないことを確認する
テスト システムを再起動し、Windows にサインインします。
次の USB デバイスを、公開されている USB Type-C ポートを持つシステムに接続します。
システム: 次の図に示すように、USB Type-C を USB Type-A アダプターに使用して、これらのデバイスをシステムの公開された USB Type-C ポートに接続します。
- USB ハブ
- USB キーボード
- USB 3.0 フラッシュ ドライブ
ドック: これらのデバイスをテスト中のドックで公開されているポートに接続します。
- USB ハブ
- USB キーボード
- USB 3.0 フラッシュ ドライブ
デバイス: デバイスを、システムの公開されている USB Type-C ポートに接続します。
テスト システムで デバイス マネージャー を開きます。 [スタート] から、[検索] テキスト ボックスに「devmgmt.msc」と入力します。
デバイス ノードがデバイス マネージャーに追加されていることを確認 します。 詳細については、「デバイスの 追加を確認する方法」を参照してください。
システムを再起動します。システムがシャットダウンして正常に起動していることを確認します。 システム障害 (存在する場合) を調査します。
システムまたはドックのテストの場合:
- UEFI/BIOS が USB フラッシュ ドライブを起動可能なメディアとして認識し、そこからシステムを起動できることを確認します。
- UEFI/BIOS が USB キーボードを認識し、UEFI/BIOS の入力に使用できることを確認します。
システムが起動したら、デバイスがデバイス マネージャーに表示されていることを確認し、デバイスが適切に列挙されたことを示します。
接続されているすべてのデバイスのデバイス機能を検証します。
システムの場合は、USB Type-C ドックをシステムに接続し、これらのデバイスをドックに接続して、手順 3 から 8 を繰り返します。
- USB ハブ
- USB キーボード
- USB 3.0 フラッシュ ドライブ
FT ケース 3: システムの電源切り替え
適用対象: システム、ドック、デバイス
低い電源状態から切り替えることで、製品がシステムの電源切り替えとウェイクアップ機能に影響しないことを確認します
- テスト システムを再起動し、Windows にサインインします。
- USB 3.0 ハブをシステムの公開されている USB Type-C ポートに接続します。 詳細については、「 デバイスをシステムに接続する方法」を参照してください。
- USB デバイスをハブに接続します。
- テスト システムで デバイス マネージャー を開きます。
- デバイス マネージャーでデバイスが追加されていることを確認します。 詳細については、「デバイスの 追加を確認する方法」を参照してください。
- スタート メニューまたはオートメーションを使用して、スリープや休止状態などの低い電源状態にシステムを送信します。
- システムを低い電源状態から起動します。 デバイスがリモート ウェイクをサポートしている場合は、デバイスを使用してシステムをスリープ解除します。 詳細については、「 システム ウェイクのトラブルシューティング」を参照してください。 それ以外の場合は、(電源ボタンまたはキーボードを使用して) システムを正常に起動します。
- デバイスがまだ機能していることを確認します。 詳細については、「 デバイスの機能を確認する方法」を参照してください。
スリープ (S3)、休止状態 (S4)、ハイブリッド スリープなど、使用可能な他のシステム電源状態に対してこのテストを繰り返します。
注
電源状態への移行を簡略化するには、Windows Driver Kit (WDK) に含まれる pwrtest.exe を使用します。 詳細については、 PwrTest を参照してください。
FT 事例 4: 選択的一時停止
適用対象: Dock、デバイス
デバイスが選択的な一時停止に移行することを確認する
- テスト デバイスとシステムの間に USB バス アナライザーを接続します。 詳細については、「 アナライザーを使用した選択的中断の確認」を参照してください。
- キャプチャ セッションを開始します。
- デバイスが選択的サスペンド状態に入ることを許可します。 デバイスでアクティブな転送がないことを確認しながら、15 秒間待ちます。 たとえば、テスト デバイスがフラッシュ ドライブの場合は、開いているファイルがないことを確認します。キーボードまたはマウスの場合は、デバイスをアイドル状態のままにします。
- アクションを実行して、選択的な中断状態からデバイスを起動します。 たとえば、フラッシュ ドライブでファイルを開きます。キーボードの場合は、キーを押すか、マウスを動かします。
- デバイスがアナライザーで選択的な中断状態に入っていることを確認します。
選択的中断の追加情報は、次のソースから入手できます。
FT ケース 5: ドック識別
適用対象: ドック
- テスト システムを再起動し、Windows にサインインします。
- USB Type-C ドックをシステムに接続します。
- ドックの状態が正しく識別されていることを確認します。
FT ケース 6: 代替モード ネゴシエーション
適用対象: システム、ドック、デバイス
サポートされているモードの代替モード ネゴシエーションを確認する
テスト システムを再起動し、Windows にサインインします。
テスト システムで デバイス マネージャー を開きます。 [スタート] から、[検索] テキスト ボックスに「devmgmt.msc」と入力します。
代替モード対応 USB Type-C デバイスをシステム上の代替モード対応 USB Type-C ポートに接続します。 デバイスとシステムの両方が少なくとも 1 つの代替モードを共有し、必要に応じて、デバイスが電源または外部電源に接続されていることを確認します。
注
Type-C ドングル/アダプターの場合は、適切な周辺機器の電源がオンになっていることを確認し、ドングル/アダプターの非Type-C 端に接続します。
代替モードのデバイスが デバイス マネージャーに追加されていることを確認します。 場合によっては、代替モード デバイスがモニター デバイスまたは別のバス デバイスとして表示されることがあります。 詳細については、「デバイスの 追加を確認する方法」を参照してください。
デバイスを切断し、 デバイス マネージャーで変更を確認します。 ハブとデバイスが デバイス マネージャーに表示されなくなります。 詳細については、「 デバイスの削除を確認する方法」を参照してください。
USB Type-C ケーブルの向きを反転または回転し、手順 2 から 5 を繰り返します。
FT ケース 7: 充電と電力配信 (PD)
適用対象: USB 電源配信プロトコルをサポートするシステム、ドック、デバイス
USB Type-C で充電を確認する
USB-IF で定義されている USB 電源供給テスト を実行します。
テスト システムを再起動し、Windows にサインインします。
システムに対して次の手順を実行します。
- USB Type-C ケーブルで 2 つのシステムを接続します。 1 つのシステムのみが現在受信していることを確認します。
- システムに複数の USB Type-C ポートが含まれている場合は、同じシステム上の 2 つの USB Type-C ポートを USB Type-C ケーブルで接続します。 システムが自ら充電していないことを確認します。
- バンドルされた USB Type-C 充電器 (バンドルされている場合) をシステムの USB Type-C ポートに接続します。 システムが充電中であることを確認します。
- 他のソースの USB Type-C 充電器で手順 3c を繰り返します。
- USB Type-C デバイスを、USB Type-C ポートが公開されているシステムに接続します。 デバイスが電流を受け取っていることを確認します。
ドックに対して次の手順を実行します。
- USB Type-C ケーブルを使用して、USB Type-C 対応システムにドックを接続します。
- ドックが接続されているシステムを充電中であることを確認します。
デバイスに対して次の手順を実行します。
- デバイスを USB Type-C 対応システムに接続します。 デバイスがシステムから電源を受け取るのを確認します。
- (省略可能)デバイスを USB Type-C 対応システムに接続します。 デバイスがシステムに課金されたことを確認します。
FT ケース 8: ロールスワップ
適用対象: システム
ロールのスワップを確認する
- テスト システムを再起動し、Windows にサインインします。
- USB Type-C ケーブルで 2 つのシステムを接続します。
- 各システムの現在の役割を確認します。
- ロールをスワップするために必要な手順を実行します。
- 各システムの現在の役割が変更されたことを確認します。
ST ケース 1: システム電源切り替え
適用対象: システム、ドック、デバイス
- テスト システムを再起動します。
- USB SuperMUTT デバイスを、公開されている USB Type-C ポートに接続します。
- テスト 中に DF - Sleep with IO を 実行します。
- USB Type-C テスト デバイスで手順 3 を繰り返します。
ST ケース 2: 転送イベント
適用対象: システム、ドック、デバイス
- テスト システムを再起動します。
- USB SuperMUTT デバイスを、公開されている USB Type-C ポートに接続します。
- DF - リブート再起動 テストを、IO の前後で実行します。
- USB Type-C テスト デバイスで手順 3 を繰り返します。
ST ケース 3: プラグ アンド プレイ
適用対象: システム、ドック、デバイス
- テスト システムを再起動します。
- USB SuperMUTT デバイスを、公開されている USB Type-C ポートに接続します。
- DF - Sleep and PNP with IO Before and After テストを実行します。
- USB Type-C テスト デバイスで手順 3 を繰り返します。
ST ケース 4: デバイス トポロジ
適用対象: システム、ドック、デバイス
テスト システムを再起動します。
USB Type-C A/V アダプターを使用して、次の図に示すようにすべての機能を使用できるように、A/V アダプターのすべてのポートを接続します。
テスト対象のシステムの USB Type-C ポートが増える場合は、手順 2 を繰り返します。
テスト 中に DF - Sleep with IO を 実行します。
注
テスト中に、USB Type-C A/V ドングルを介して接続されたデバイスからの障害 (ビデオの歪みやオーディオのドロップオフなど) がないことを確認します。
機能システム相互運用性テスト計画
予想される期間: 20 分
この計画の目的は、システムがさまざまな種類の周辺機器と充電器で動作できるかどうかを判断することです。 このテスト計画では、システムの OEM 以外のソースからのテストに重点を置いています。
システム: USB Type-C ポートが公開されている Windows 10 システム。
周辺機器
- USB Type-A から USB Type-C へのアダプター - USB 3.0 ハブ - USB マウス - USB 3.0 フラッシュドライブ
- USB Type-C ストレージ ドライブ
- USB Type-C ビデオ (ドングルは許容されます)
電源:USB Type-C 充電器
FT ケース 1: USB Type-C ドングルのデバイス列挙を実行します。 各デバイスが列挙され、期待どおりに機能することを確認します。 この図は、USB Type A ドングルをテストするために推奨されるトポロジを示しています。
FT ケース 6: リスト内の残りの周辺機器の代替モード ネゴシエーションを実行します。 各デバイスが列挙され、期待どおりに機能することを確認します。
FT ケース 7 の縮小版を実行する: USB Type-C 充電器を使用して充電 と電源供給 (PD) します。 2 台のコンピューターを必要とするセクションをスキップし、Microsoft 以外の電源アダプターでシステムが充電 (電源を受け入れる) できることを確認するだけです。
ユーザビリティ システムの相互運用性テスト計画
予想される期間: 60 分
この計画の目的は、USB Type-C 周辺機器を使用して、このシステムが最も一般的なユーザー シナリオを実行できるかどうかを判断することです。 このテスト 計画では、 機能システムの相互運用性テスト計画に記載されているテストが正常に完了したことを前提とします。 ユーザビリティ テスト計画では、一般的なユーザー、システム、デバイスのシナリオに重点を置いています。
システム: USB Type-C ポートが公開されている Windows 10 システム。
周辺機器
- USB Type-A から USB Type-C へのアダプター - USB 3.0 ハブ - USB マウス - USB 3.0 フラッシュドライブ
- USB Type-C ストレージ ドライブ
- USB Type-C ビデオ (ドングルは許容されます)
- USB Type-C A/V ドングル (ビデオ、USB、場合によってはオーディオの両方を 1 つのアダプターとして含む)
電源:異なるサプライヤーの2つのUSB Type-C 充電器。
FT ケース 3: USB から Type-C ドングルへのシステム電源切り替えをリスト内の各周辺機器で実行する。 各デバイスが列挙され、システムの電源状態が変化する前と後に期待どおりに機能することを確認します。
- 図に示されたように、USB Type-A から USB Type-C に変換するアダプターを構成します。
次の図に示すように、USB Type-C A/V ドングルを構成します。
FT ケース 2 を実行する: 前の図に示すように構成された USB Type-C A/V ドングルのみでシステム ブートし、次のシナリオを検証します。
- すべてのデバイスが接続された状態でシステムが起動し、USB Type-C A/V ドングルを介して接続されたモニターにビデオディスプレイが表示されます。
- システムは、USB Type-C A/V ドングルを介して接続された USB ディスクから起動します。
完全な相互運用性テスト計画
予想される期間: 180 分以上
完全な相互運用性テスト計画では、より大規模なユーザー シナリオのセットについて説明します。 デバイスのシステムが USB-IF 認定の準備をしているときに、これらのテストを実行します。
システム
- USB Type-C ポートが公開されている Windows 10 システム。
- USB Type-C ポートが公開されている別の Windows 10 システム。 別の製品ラインまたは OEM からのシステムをお勧めします。
周辺機器
- USB Type-A から USB Type-C へのアダプター, USB Type-A から USB Type-C へのアダプター, USB 3.0 ハブ, USB マウス, USB 3.0 フラッシュドライブ
- USB Type-C ストレージ ドライブ - USB Type-C ビデオ (ドングルは許容可能) - USB Type-C A/V ドングル (ビデオ、オーディオ、USB を 1 つのユニットとして含む)
電源:異なるサプライヤーの2つのUSB Type-C 充電器。
すべての機能ストレステストケースを実行します。 USB Type-C A/V の推奨される構成を次の図に示します。
デバイスの追加を確認する方法
- デバイスが接続されている USB ホスト コントローラーを識別します。
- 新しいデバイスがデバイス マネージャーの正しいノードの下に表示されていることを確認 します。
- USB 3.0 ポートに接続されている USB 3.0 ハブの場合は、USB 3.0 のダウンストリームとフル スピード ハブのダウンストリームの 2 つのデバイスが表示されます。
デバイスの削除を確認する方法
- デバイス マネージャーでデバイスを識別します。
- テスト手順を実行して、システムからデバイスを削除します。
- デバイスがデバイス マネージャーに存在しなくなったことを確認 します。
- USB 3.0 ハブの場合は、両方のデバイス (SuperSpeed ハブとコンパニオン ハブ) が削除されていることを確認します。 この場合、デバイスを削除できないと、デバイスの障害が発生する可能性があります。 関連するすべてのコンポーネントを調査して、適切な根本原因をトリアージする必要があります。
デバイスの機能を確認する方法
- デバイスが USB ハブの場合は、ハブのダウンストリームにあるデバイスが機能していることを確認します。 ハブ上の使用可能なポートに他のデバイスを接続できることを確認します。
- デバイスが HID デバイスの場合は、その機能をテストします。 USB キーボードが入力され、USB マウスがカーソルを移動し、ゲーム デバイスがゲーム コントローラーのコントロール パネルで機能していることを確認します。
- USB オーディオ デバイスは、サウンドの再生や録音を行う必要があります。
- ストレージ デバイスにはアクセス可能で、200 MB 以上のサイズのファイルをコピーできる必要があります。
- デバイスにスキャンと印刷などの複数の機能がある場合は、スキャンと印刷の両方の機能をテストしてください。
- デバイスが USB Type-C の場合は、該当する USB モードと代替モードが機能していることを確認します。
デバイスをシステムに接続する方法
- USB 3.x デバイスで、テスト デバイスに適した USB 3.x ケーブルが使用されていることを確認します。
- システムがデバイスを認識しない場合は、同じ種類の別のケーブルでデバイスを接続して、不適切なケーブルまたはコネクタを確認します。
システム ウェイクのトラブルシューティング
システムをウェイクアップできないデバイスのトラブルシューティングを行うには:
- デバイスがウェイクアップ可能であることを確認します。
- デバイスが接続されているホスト コントローラーが、システムをスリープ解除するように設定されていることを確認します。
不足している電源状態のトラブルシューティング
テスト システムがスリープ状態または休止状態に達できない場合は、システム内のすべてのデバイスに最新のデバイス ドライバーがインストールされていることを確認します。 最も一般的な原因の 1 つは、システムでサポートされていないビデオ カードです。
ETW を使用して問題をログに記録する
USB 2.0 ポートに対して ETW を有効にするには、 Windows 7 USB コア スタックの ETW を参照してください。
USB 3.0 のログ記録を有効にするには、代わりに次のコマンドを実行します (または 、Logman で USB イベント トレースをキャプチャする方法を参照してください)。
logman start usbtrace -ets -o usbtrace.etl -nb 128 640 -bs 128
logman update usbtrace -ets -p Microsoft-Windows-USB-UCX Default
logman update usbtrace -ets -p Microsoft-Windows-USB-USBHUB3 Default
ログがキャプチャされたら、テスト シナリオを実行します。
次のコマンドを使用してトレースを停止します。
logman stop usbtrace -ets
アナライザーを使用して選択的な中断を確認する
USB 2.0 および 3.0 トラフィックを分析するには、LeCroy Voyager M3i、Advisor T3、TotalPhase Beagle 5000 などの USB アナライザー デバイスが必要です。 これらのアナライザーは、選択的な中断機能を確認するために必要なリンク状態情報をキャプチャして表示できます。
たとえば、TotalPhase アナライザーを使用してトラフィックをキャプチャすると、出力に次のようなイベントが表示されます。
テストでデバイスが中断状態に移行する必要がある場合は、 <Suspend> イベントを、デバイスが中断状態になると予想した時刻と関連付けることができます。
アナライザーを使用して LPM U1 と U2 の遷移を確認する
アナライザー トレースでは、すべてのリンク状態遷移を明示的に表示する必要があります。ステートメントは、イベントで "Rx U0 -> U2" として表示されます。 たとえば、LeCroy ソフトウェアを使用して、[ レポート ] タブで USB3 リンク状態タイミング ビューを選択します。 このオプションは、リンクの状態を時間軸に表示します。 場合によっては、アナライザーで U1 から U2 への遷移が正しく表示されないことがあります。 リンク状態が U1 に入っているのに、U2 から回復しているのが表示される場合があります。
デバイス マネージャーでの選択的な中断の無効化
デバイス マネージャーで USB デバイスで選択的な中断を無効にするには、まずデバイス ツリーでデバイス ノードを見つけます。 この例では、ハブで選択的な中断を無効にします。
そのデバイスを右クリックし、 [プロパティ] を選択します。 次に、[ 電源管理 ] タブを選択します。
選択的な一時停止を無効にするには、[ コンピューターがこのデバイスの電源をオフにして 電源を切ることを許可する] チェック ボックスがオフになっていることを確認します。
USB Type-C ケーブルの裏返しまたは逆にすること
USB Type-C ケーブルは、ケーブルの向きに関係なく、ユーザーの機能を維持することを目的としています。 ケーブルの反転は、ケーブルを取り外し、180度回転させてから再挿入することによって行います。
テスト結果の報告
次の詳細情報を提供してください。
- 失敗したテストの前に実行されたテストの一覧 (順番)。
- この一覧では、失敗または合格したテストを指定する必要があります。
- テストに使用されたシステム、デバイス、ドック、またはハブ。 必要に応じて追加情報を取得できるように、make、model、Web サイトを含めます。