Current Language
×
Japanese (Japan)

言語の選択:

トグル・メニュー
Current Language
×
Japanese (Japan)

言語の選択:

ダウンロード

マニュアル、データシート、ソフトウェアなどのダウンロード:

ダウンロード・タイプ
型名またはキーワード

フィードバック

オシロスコープを使用したUSB 2.0問題のトラブルシュート


はじめに

USBをベースとしたシステムは身の回りに数多くあり、製品内の内部接続で使用される組込みシステムや、コンピュータと周辺機器を接続するための一般的な外部接続があります。USBインタフェースの大きな利点は、ホスト・デバイスから周辺デバイスに電源を供給できることです。

Universal Serial Bus(USB)は今日のパーソナル・コンピュータ(PC)の主流なインタフェースになっており、それまでの外部シリアル/パラレル・バスと置き換わっています。1995年に登場して以来、USBは元々のPC用途以外にも使用されるようになり、さまざまな種類の電気デバイスで数多く使用されるようになりました。

USBは、システム間通信だけの拡張にとどまりません。例えば、チップ間通信ではIC_USB(Inter-Chip USB)とHSIC(High-Speed Inter-Chip)が使われます。

USB 2.0は成熟した規格であり、ビルディング・ブロックの多くは強固です。しかし、このバスはノイズ、基板レイアウト、終端などの要素によって影響を受けることがあります。通信障害が発生した場合、まずオシロスコープを使用してタイミングと振幅の情報を調べ、デコード機能がある場合はプロトコル診断のための情報を調べます。

USBバスが正しく動作している場合でも、特定の条件でシステムに問題が発生することがあります。このような場合、特定のUSBバスの値でトリガすることで重要な時間基準が得られ、システムレベルのバグのトラブルシュートに役立ちます。

本アプリケーション・ノートの概要

  • USB 2.0の物理レイヤとパケット構造の概要から、トラブルシュートに役立つ詳細な情報を説明します。
  • USB 2.0のデコード機能を装備したオシロスコープのデコード設定方法を説明します。
  • USB 2.0のデコード機能を装備したオシロスコープのシリアル・バス・データの読み方を説明します。
  • USB 2.0のデコード機能を装備したオシロスコープで可能なトリガ、検索について説明します。

テクトロニクスのオシロスコープにシリアル・トリガ/解析のオプション機能を装備すると、USB 2.0バスに携わる組込みシステム・エンジニアのための強力なツールになります。このアプリケーション・ノートでは、5シリーズMSOを使用してUSBシリアル・バスのデコードとトリガを説明します。

サポート可能なシリアル・バス規格は、オシロスコープによって異なります。オシロスコープでサポートされるバスの詳細については、付録Aまたは当社ウェブ・サイト(jp.tektronix.com)をご覧ください。

USB 2.0

概要

2000年に発表されたUSB 2.0の仕様は、今日使われているほとんどのUSBデバイスに対応しています。USB 1.1仕様から進化したUSB 2.0仕様では、USB 1.1仕様でサポートされたロースピードとフルスピード・インタフェースに、新たにハイスピード・インタフェースが追加されました。USB 2.0仕様の補則では、IC_USB、HSIC、その他の機能強化が図られています。

USB 3.0仕様は、2008年に発表されました。USB 3.0はSuperSpeed USBとも呼ばれ、 転送速度はUSB 2.0の10倍になっています。SuperSpeed USBは、USB 2.0デバイスの 下位互換性をとっています。2013年には、USB 3.0仕様に10Gbpsを加えたUSB 3.1仕 様が発表されました。5GbpsをGen 1、10GbpsをGen 2としています。USB 3.0/3.1 はUSB 2.0に加えられる仕様であり、USB 2.0と置き換わるものではありません。 SuperSpeed USBのデバイスは、USB 2.0デバイスのフレームワーク・コマンドとディ スクリプションを満足する必要があります。

USB-IF(USB Implementers Forum)がUSBの規格と技術を管理、運営しています。USBの仕様は、USB-IFのウェブ・サイト(www.usb.org)で確認することができます。

動作原理

USBの速度 ビット・レート ビット周期
Low-Speed USB 2.0 1.5Mbps 667ns
Full-Speed USB 2.0 12Mbps 83.3ns
High-Speed USB 2.0 480Mbps 2.08ns
SuperSpeed USB 5Gbps(USB 3.0/USB 3.1 Gen 1) 5Gbps 200ps
SuperSpeed USB 10Gbps(USB 3.1 Gen 2) 10Gbps 100ps

USBには4種類の速度があります。ハイスピード・デバイスはフルスピードで開始し、その後ハイスピードに移行します。USB 2.0では、ホスト・コントローラに接続されている最も遅いデバイスによって転送速度は制限されます。

SuperSpeed USBでは2種類のホスト・コントローラが使用され、1つはSuperSpeedUSBデバイス用に、もう1つはUSB 2.0デバイスで使用されます。USB 2.0のシステムと同様、USB 3.0/3.1デバイスの速度は最も遅いデバイスによって制限されます。

テクトロニクスのオシロスコープには、USBのシリアル・トリガ/解析機能を持ったものがあります(付録Aを参照)。すべてのオシロスコープ・モデルで、ロースピードおよびフルスピードUSBのトリガ、デコード、サーチが実行できます。ハイスピードUSB信号は、1GHz以上の帯域を持ったオシロスコープが必要です。

2001 SPECIFIED CALIBRATION INTERVALS

USBのネットワークは、1台のホスト・コントローラと1~127台のデバイスで構成されます。USBはツリー型トポロジであり、オプションのハブでさらに拡張することができます。ホストのみがマスタとなり、すべてのバス・トラフィックを制御します。ホストはすべての通信とデバイスを初期化し、デバイスはホストに対して割り込むことはできません。

2001 SPECIFIED CALIBRATION INTERVALS

各デバイスは、最大16のデータ・エンドポイントを持つことができます。デバイス・エンドポイントは論理的な通信経路で、データを送信するデータ・ソースになったり、データを受信するデータ・シンクになったりします。エンドポイント0は必須であり、ホストがデバイスと通信するために使用されます。パイプは、デバイスのエンドポイントとホストのアプリケーション・ソフトウェア間を結ぶ論理的な接続のことです。

USBネットワークの接続は、電源投入時またはデバイスがホットプラグされる際に発生するコンフィグレーション・プロセスであるエニュメレーション時に動的に設定されます。以下のようなシーケンスになります。

  1. ホストがUSBバス上にデバイスを認識する。
  2. アドレス0、エンドポイント0のSETUPトークン(パケット)でデバイスをポーリングする。
  3. デバイスをユニークなアドレス1~127にアサインする。
  4. ホストはデバイスの速度とデータ転送タイプを識別する。
  5. デバイス・クラスを決定する。デバイス・クラスでは、プリンタ、マス・ストレージ、ビデオ、オーディオ、ヒューマン・インタフェースなどのデバイスの機能が定義される。

電気的構成

ホストは、アップストリームでAコネクタを、デバイスはダウンストリームでBコネ クタを使用します。それぞれのコネクタには、標準、ミニ、マイクロという3種類 の形状があります。2014年に発表されたタイプCではどちらも同じCコネクタを使 用します。USB 2.0のケーブルは4線で構成され、2本は、ホストからの電源(5V(赤) とグランド(黒))を供給します。コネクタは、電源とグランドのピンがデータ・ピン より先に接続するように設計されています。ホストは、パワー・マネージメントによっ て100mAから500mAまでの電流を供給します。例えば、デバイスへの電力はホス トまたはハブでモニタされており、過電流になると電力は切り離されます(なお、 タイプCでは標準で3Aまでの電流を給電可能、さらに2012年に発表されたUSB PD では最大100Wの電力を給電可能な他、受給電の向きを反転させることもできます)。

2001 SPECIFIED CALIBRATION INTERVALS

Data +(D+緑)とData -(D-白)のツイスト差動ペア線はホストによって制御され、半二重差動シグナリングにより双方向通信で使用されます。オシロスコープは、受動プローブまたはアクティブ・アナログ・プローブ、またはデジタル・ロジック・プローブでそれぞれの信号を取込むことができます。

シグナリング

USBの速度 ロー・ステート ハイ・ステート
Low-Speed <0.3V >2.8V
Full-Speed <0.3V >2.8V
High-Speed 0V±10mV 400mV±10%

ロースピードとフルスピードのデバイスでは、電圧レ ベルは名目上等価ですが、ハイスピード・デバイスで は非常に低くなっています。デバイスが接続されてい ない場合は、ホストはD+とD-の両方をプルダウンし ます。これを、シングルエンドゼロ(SE0)ステートと 呼びます。デバイスがバスに接続されると、プルアッ プ抵抗がデバイスの初期速度を示します。

データ・ステート 差動電圧
Jステート ロースピード・デバイス:
D-をプルアップし、負の差動電圧になる
ハイ/フルスピード・デバイス:
D+をプルアップし、正の差動電圧になる
Kステート ロースピード・デバイス:
D+をプルアップし、正の差動電圧になる
ハイ/フルスピード・デバイス:
D-をプルアップし、正の差動電圧になる

データ伝送では、NRZI(Non Return Zero Inverted)符 号化方式と、J、Kと呼ばれる2種類のデータ・ステート を使用します。Jステート、Kステートを表す差動電圧は、 ロースピードとフルスピードのデバイスで正負が逆転 します。ステートが変化しない期間を制限するトラン ジション数を少なくするため、規格ではビット・スタッ フィングが必要になります。LSB(Least Significant Bit) が最初に送られ、MSB(Most Significant Bit)が最後に 送られます。

パケット

パケットは、USB通信の基本単位です。パケットは、SYNCフィールド(SYNC)で始まり、パケット識別子(PID)が続きます。PIDに続くフィールドは、パケットの種類(フレーム開始パケット、トークン・パケット、データ・パケット等)によって異なります(ハンドシェイク・パケットの場合はフィールドがありません)。エンドオブパケット(EOP)でパケットを終了します。

2001 SPECIFIED CALIBRATION INTERVALS

Jのアイドル・ステートに続いて、ロースピードとフルスピードではパケットは8ビットのSYNCフィールドが始まります。SYNCは3つのKJペアであり、その後に2つのKが続きます。

ハイスピードのSYNCフィールドでは15のKJペアの後に2つのKが続きます。ハブではSYNCフィールドを減らすことが許されており、最小で5つのKJペアと2つのKになることがあります。

PIDは2番目のパケット・バイトであり、4ビットのPIDと、エラー・チェックのための反転した4ビットPIDからなります。PIDの4ビット・パターンにより、17種類のパケットを区分します。パケットは、トークン、データ、ハンドシェイク、スペシャルの4つのグループに分けられます。

最初のPIDの4ビットが後の反転した4ビットと一致しない場合、PIDの符号化エラーとなります。LSBが最初に、MSBが最後にバス上に送られます。

EOP(End Of Packet)は3ビットからなり、2ビットのSE0と1ビットのJステートで構成されています。

USBパケットのタイプ パケット バイナリ値
トークン OUT
IN
SOF
SETUP
0001
1001
0101
1101
データ DATA0
DATA1
DATA2
MDATA
0011
1011
0111
1111
ハンドシェイク ACK
NAK

STALL
NYET
0010
1010
1110
0110
スペシャル PRE
ERR
SPLIT
PING
Reserved
1100
1100
1000
0100
0000

ハンドシェイク・パケット

2001 SPECIFIED CALIBRATION INTERVALS

データ・パケットが正常に受信されたときに送られるACKや、データ・パケットを受信できないときに送られるNAKなどのハンドシェイク・パケットは、シンク・バイト、PIDバイト、EOPで構成されます。

トークン・パケット

2001 SPECIFIED CALIBRATION INTERVALS

常にホストに送られるトークン・パケットは、SYNC、PID、および11ビットのアドレス、5ビットのCRC(Cyclic Redundancy Check)からなる2バイトとEOPで構成されます。

OUT、IN、SETUPトークンの11ビット・アドレスは、7ビットのデバイス・アドレスと4ビットのエンドポイント識別子に分かれています。

アドレス0は特殊な用途であり、ホストがデバイスにアドレスを指定するエニュメレーション・プロセスの始めではデバイスのアドレスは割り当てられていません。エニュメレーション・プロセスの後半において、ホストはデバイスにゼロでないアドレスを割り当てます。

すべてのデバイスはエンドポイント0を持っています。エンドポイント0はデバイスの制御とステータスで使用されます。他のエンドポイントは、データを転送するデータ・ソース、データを受信するデータ・シンクで使用されます。

ホスト送信の場合は、デバイスに対してまずOUTトークンを送り、データ・パケットを送ります。受信の場合、ホストがデバイスにINトークンを送り、それに反応したデバイスからのデータ・パケットまたはNAKなどのハンドシェイク・パケットを受け取ります。

データ・パケット

2001 SPECIFIED CALIBRATION INTERVALS

データ・パケットは、PIDバイト、データ・バイト、16ビットのCRCとEOPで構成されます。

DATA0とDATA1というパケットがあり、それぞれ1と0にトグルできる1ビットのシーケンスの番号を持っています。シーケンス番号は、停止や再送信の自動要求待ちに使用されます。パケットDATA0とパケットDATA1は、転送が正常に行われると交互に切り替わります。転送エラーが発生すると、データ・パケットは同じシーケンス番号で再送されます。

正常なデータ転送においては、ホストがデバイスにDATA0パケットを送り、デバイスがハンドシェイクACKパケットを返し、続いてホストがDATA1パケットを送ることになります。

ホストがデバイスからのハンドシェイクACKパケットを受信しないか、またはNAKパケットを受信した場合、ホストはDATA0パケットを再送します。デバイスがACKパケットを送り、ホストの使ったシーケンス番号と同じシーケンス番号でデバイスがデータ・パケットを受信した場合、デバイスはデータ・パケットを認識し、古いデータは無視します。

SOF(Start Of Frame)

2001 SPECIFIED CALIBRATION INTERVALS

SOFは非同期データと同期をとるために使用されます。11ビットのフレーム番号は、SOFパケットが送信されるたびに1ずつ増えます。

2001 SPECIFIED CALIBRATION INTERVALS
2001 SPECIFIED CALIBRATION INTERVALS

USB 2.0のデコード設定

Add New Busボタンをタップするか、前面パネルのBusボタンを押すと、USBバスが設定できます。信号速度、入力チャンネル、信号の種類、電圧スレッショルドなどの基本パラメータを設定します。

USB 2.0の信号は、差動ペアで伝送されます。それぞれの信号は、受動プローブ、アクティブ・アナログ・プローブ、デジタル・ロジック・プローブで取込むことができます。左に示す設定メニューでは、2つのシングルエンド・アナログ入力が設定され、PCとマウス間のロースピードUSB 2.0トラフィックを取込みます。

USB 2.0バスの読み方

オシロスコープは、ホストとロースピードUSBマウス間の通信を表示しています。USBホストはINトークンを送り、データを要求します。マウスは動いていないため、NAKを返します。

2001 SPECIFIED CALIBRATION INTERVALS

マウスが動くと、位置の変化を示すデータ・バイトをホストに返します。

2001 SPECIFIED CALIBRATION INTERVALS

この例は、PCとUSBドライブ間のフルスピードUSB 2.0のトラフィックを示しています。FlexChannel®入力にロジック・プローブを接続して信号を取込みます。シングルエンド・プローブでロースピードUSBバスを取込み、デコードすることもできますが、差動プローブを使用すると、信号忠実度が増し、ノイズ耐性が上がります。ハイスピードUSB信号では、差動プローブが必要になります。

2001 SPECIFIED CALIBRATION INTERVALS
2001 SPECIFIED CALIBRATION INTERVALS

ファームウェアを担当するエンジニアにとっては、Result Tableの形式の方が便利かもしれません。バスの動きがタイムスタンプとともに表示されるため、ソフトウェアのリストとの比較が容易で、実行速度が簡単に計算できます。

Results Tableは、波形表示とリンクしています。表の行をタップすると、オシロスコープは対応するバス信号、デコードされたバス波形を自動的にズームして、ディスプレイ下部に表示します。

2001 SPECIFIED CALIBRATION INTERVALS

USB 2.0バスのトリガ

次の手順では、設計のデバッグ、検証時に特定のバス・イベントを検出し、取込み、表示するようにオシロスコープを設定します。

この例では、差動プローブを使ってPCとハイスピードUSBメモリ・デバイス間のUSB延長ケーブルを調べます。オシロスコープは、12 01の16進値で始まるデータ・パケットにトリガします。

オシロスコープは、次のUSBバス要素にトリガできます。

トリガ対象 概要
Sync 同期フィールド
Handshake Packet タイプを指定:Any、ACK、NAK、STALL、NYET
Special Packet タイプを指定:Any、ERR、SPLIT、PING、RESERVED
Error タイプを指定:PID Check Bits、Token CRC5、Data CRC16またはBit stuffing
Token (Address) Packet タイプを指定:Any、SOF、OUT、IN、SETUP
Data Packet タイプを指定:Any、DATA0、DATA1、DATA2、MDATA、16バイトまでのデータ・パターン
Reset
Suspend
Resume
End of Packet (EOP)
2001 SPECIFIED CALIBRATION INTERVALS

USB 2.0バスの検索

テクトロニクスのオシロスコープにはWave Inspectorの機能を備えているものもあり、トリガ設定と同じイベントを自動的に検索し、マークを付けることができます。例えば、すべての取込みから、アドレス00 hexのSETUPトークン・パケットすべてを検索できます。この例では、特定のバス・イベントを2つ検出しています。マークの付いたそれぞれのイベントは、前面パネルのWave Inspector操作ボタンを押すことでイベント間を簡単に移動できます。

付録 A

テクトロニクスは豊富な機種を取り揃えており、最適な一台をお選びいただけます。

MSO/DPO70000シリーズ DPO7000Cシリーズ 5シリーズMSO MSO/DPO5000シリーズ MDO4000Cシリーズ MDO3000シリーズ MSO/DPO2000シリーズ
周波数帯域 33GHz、25GHz、23GHz、20GHz、16GHz、12.5GHz、8GHz、6GHz、4GHz 3.5GHz、2.5GHz、1GHz、500MHz 2GHz、1GHz、500MHz、350MHz 2GHz、1GHz、500MHz、350MHz 1GHz、500MHz、350MHz、200MHz 1GHz、500MHz、350MHz、200MHz、100MHz 200MHz、100MHz、70MHz
アナログ・チャンネル数 4 4 4、6、8 4 4 2または4 2または4
デジタル・チャンネル数 16(MSO) - 8~64(オプション) 16(MSO) 16(オプション) 16(オプション) 1 16(MSO)
スペクトラム・アナライザ・チャンネル数 - - - - 1(オプション) 1 -
レコード長(全チャンネル、ポイント) 最大62.5M(標準)最大250M(オプション) 25M(標準)最大125M(オプション) 62.5M(標準)125M(オプション) 25M(標準)最大125M(オプション) 20M 10M 1M
サンプル・レート(アナログ) 最高100GS/s 最高40GS/s 最高6.25GS/s 最高10GS/s 最高5GS/s 最高5GS/s 1GS/s
カラー・ディスプレイ 12.1型XGA 12.1型XGA 15.6型HD 10.4型XGA 10.4型XGA 9型WVGA 7型WQVGA
シリアル・バス・トリガ/解析 I2C
SPI
RS-232/422/485/UART
CAN
LIN
FlexRay
USB 2.0/3.1 Gen1
HSIC
10/100BASE-T Ethernet
MIL-STD-1553
8B/10Bデコード
D-PHY MIPI デコード
PCI Express デコード
I2C
SPI
RS-232/422/485/UART
CAN
LIN
FlexRay
USB 2.0
HSIC
10/100BASE-T Ethernet
MIL-STD-1553
8B/10Bデコード
D-PHY MIPI デコード
PCI Express デコード
I2C
SPI
RS-232/422/485/UART
CAN
LIN
FlexRay
USB 2.0
10/100BASE-T Ethernet
I2S/LJ/RJ/TDM
I2C
SPI
RS-232/422/485/UART
CAN
LIN
FlexRay
USB 2.0
HSIC
10/100BASE-T Ethernet
MIL-STD-1553
8B/10Bデコード
D-PHY MIPI デコード
PCI Express デコード
I2C
SPI
RS-232/422/485/UART
CAN
CAN FD
LIN
FlexRay
USB 2.0
I2S/LJ/RJ/TDM
MIL-STD-1553
I2C
SPI
RS-232/422/485/UART
CAN
CAN FD
LIN
FlexRay
USB 2.0
I2S/LJ/RJ/TDM
MIL-STD-1553
I2C
SPI
RS-232/422/485/UART
CAN
LIN
同時に表示可能なシリアル・バス数 16 16 原則、無制限 16 3 2 2