(57)【要約】【課題】USB機能を有するシステムLSIなどのUSB装置において、信号品質のテスト用の測定対象パケットを生成および出力して、そのUSB機能をテストに供するUSBテスト回路を提供。【解決手段】USBテスト回路10によれば、動作モード情報を示すtest_sin信号102を含むテスト信号がシリアルI/Fを介してシリアルI/Fブロック12に入力され、この動作モード情報に応じてデータパターン生成ブロック20および送信データ送出ブロック22で測定対象パケットを生成し、UTMI I/Fを介してUSB PHY 54へと出力することにより、SETUPパケットやDATAパケットなどの測定対象でない複数のパケットを受信することなく、信号品質のテスト用の測定対象パケットを生成および出力することができ、テスト時間を短縮することができる。【選択図】図１
2008084273.tif 000002
【特許請求の範囲】
【請求項１】
USB（Universal Serial Bus）機能を有するUSB装置に搭載されて、前記USB機能をテストするUSBテスト回路において、該回路は、
該回路の動作モード情報を含むテスト信号を外部機器から入力する入力手段と、
信号品質のテスト用の測定対象パケットを生成して出力する生成手段と、
該生成手段は、前記入力手段に入力された前記動作モード情報に応じて前記測定対象パケットを生成することを特徴とする通信装置。
【請求項２】
請求項１に記載のUSBテスト回路において、前記生成手段は、前記測定対象パケットをUTMI（USB2.0 Transceiver Macrocell Interface）I/Fを介して前記USB装置の物理層に出力することを特徴とするUSBテスト回路。
【請求項３】
請求項１に記載のUSBテスト回路において、前記USB装置は、複数の転送速度モードのいずれかを選択して動作するものであり、
前記生成手段は、前記USB装置で選択された前記転送速度モードに応じた前記測定対象パケットを生成することを特徴とするUSBテスト回路。
【請求項４】
請求項３に記載のUSBテスト回路において、前記複数の転送速度モードは、Full Speed、Low SpeedおよびHigh Speedであることを特徴とするUSBテスト回路。
【請求項５】
請求項３に記載のUSBテスト回路において、前記生成手段は、さまざまなデータパターンをあらかじめ決めておいて、前記動作モード情報に応じて前記データパターンを選択し、該選択したデータパターンに応じて前記測定対象パケットを生成することを特徴とするUSBテスト回路。
【請求項６】
請求項３に記載のUSBテスト回路において、前記生成手段は、前記測定対象パケットの１ビットのデータごとに対して、前記データパターンを選択することを特徴とするUSBテスト回路。
【請求項７】
請求項１に記載のUSBテスト回路において、前記入力手段は、前記テスト信号を前記外部機器からシリアル入力することを特徴とするUSBテスト回路。
【請求項８】
請求項１に記載のUSBテスト回路において、前記入力手段は、生成を所望する測定対象パケットのパケットタイプを含む前記動作モード情報を入力することを特徴とするUSBテスト回路。
【請求項９】
請求項１に記載のUSBテスト回路において、前記入力手段は、測定対象パケットの生成および出力を繰り返すか否かを示すエンドレスフラグを含む前記動作モード情報を入力することを特徴とするUSBテスト回路。
【請求項１０】
請求項１に記載のUSBテスト回路において、前記入力手段は、生成を所望する測定対象パケットの１パケット当たりの送信バイト数を含む前記動作モード情報を入力することを特徴とするUSBテスト回路。
【請求項１１】
請求項１に記載のUSBテスト回路において、前記入力手段は、前記動作モード情報の各ビットデータに同期するタイミング信号を含むテスト信号を入力し、前記タイミング信号に応じたタイミングであって、前記USB装置におけるクロック信号に同期するタイミングで、前記動作モード情報の各ビットデータを取り出すことを特徴とするUSBテスト回路。
【請求項１２】
請求項１に記載のUSBテスト回路において、前記USB装置は、システムLSI（Large Scale Integration）であることを特徴とするUSBテスト回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、USB（Universal Serial Bus）機能を有するシステムLSI（Large Scale Integration）などのUSB装置において、そのUSB機能をテストするUSBテスト回路に関するものである。
【背景技術】
【０００２】
従来から、システムLSIは、CPU（Central Processing Unit）を内蔵して動作し、CPUがシステムバスを介して他の回路に接続してその回路の機能を実行するもので、このバスにUSB Deviceコントローラを接続し、またこのコントローラにUSB物理層（PHYsical Layer：PHY）を接続してUSB機能を有するものがある。このCPUは、USB Deviceコントローラのレジスタに対してデータのリードおよびライトを実行することができる。
【０００３】
USB PHYは、たとえば、UTMI（USB2.0 Transceiver Macrocell Interface）I/Fを介してUSB Deviceコントローラと接続し、またUSB I/Fを介して外部機器と接続する。また、USB PHYは、UTMI I/Fコントローラブロックを有してUTMI I/Fを制御し、またUSB I/Fを介して差動（Differential data Plus / Differential data Minus：DP/DM）信号を送受信する。
【０００４】
USB Deviceコントローラは、USBのプロトコルを制御するコントローラで、システムバスI/Fを介してシステムバスと接続し、またUTMI I/Fを介してUSB PHYと接続する。また、このコントローラは、UTMI I/Fコントローラブロックを有してUTMI I/Fを制御することができ、さらにPID（Protocol Identifier）デコードブロック、High Speedテストパケット生成ブロックおよびACK（Acknowledgment）パケット生成ブロックを含んで構成される。
【０００５】
PIDデコードブロックは、USB I/FのDP/DM信号を経由されて受信されたパケットの種類を判定するもので、たとえばそのパケットをデコードしてPIDを検出し、このPIDに基づいてパケットの種類を判定する。
【０００６】
High Speedテストパケット生成ブロックは、システムLSIがコンプライアンス（Compliance）テストなどのテストモードで動作するときに、High SpeedモードにおけるUSB機能のテストパケットを生成するものである。このブロックは、High Speedモードにおいて、USB DeviceコントローラがUSB I/Fからのテストパケット生成要求を受信すると、テストパケットを生成してUSB PHYに供給し、USB I/Fを介してDP/DM信号により出力する。
【０００７】
ACKパケット生成ブロックは、システムLSIがUSB I/Fを介してパケットを受信したとき、このパケットに対してACKパケットを返す必要が生じた場合に、ACKパケットを生成するものである。このブロックは、生成したACKパケットをUSB PHYに供給し、USB I/Fを介してDP/DM信号により出力する。
【０００８】
このようなシステムLSIがUSBコンプライアンステストを実行して、Full Speed/Low SpeedモードにおけるUSBの信号品質（Signal Quality）を測定するときには、USB DeviceコントローラがSETUPパケットやDATAパケットなどの測定対象でない複数のパケットを受信すると、信号品質の測定対象であるパケットを生成してUSB PHYに供給し、DP/DM信号により出力する。
【０００９】
また、システムLSIがUSBコンプライアンステストを実行して、High SpeedモードにおけるUSBの信号品質を測定するときには、USB Deviceコントローラが複数の測定対象でないパケットを受信すると、信号品質の測定対象のパケットを生成してUSB PHYに供給し、DP/DM信号により出力する。
【００１０】
ところで、特許文献１に記載のUSBファンクションの評価装置は、USBファンクションに対して送出したテストパターンをINトークン保持回路にて一時的に保持し、USBファンクションからの返信データをパケットタイプ判別回路にて判別して、このデータがNAKタイプであった場合は保持しているINトークンを再送出し、DATAタイプまたはSTALLタイプであった場合は保持していたINトークンを破棄することにより、DATAパケットの返信の用意が完了するまでの時間を意識せずにプログラミングを行うことができ、テストパターンの設計効率を向上することができる。
【００１１】
また、特許文献２に記載のUSBシミュレーション装置は、テスト項目およびシミュレーション上の命令を記憶する記憶媒体を有し、トランザクション管理部でトランザクションごとにテスト項目を管理し、受信データ判定部で応答信号を判定し、その判定結果に応じてその後の処理を分岐することにより、次のトランザクションで実行するテスト項目や送信するデータを選択することができる。
【特許文献１】特開2001-86141号
【特許文献２】特開2001-245017号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、従来のUSB機能を搭載するシステムLSIでは、USBのテストを行って信号品質観測用のパケットをUSB PHYから出力するためには、測定に直接関係のない冗長な複数のパケットをUSB Deviceコントローラに送信する必要があるので、信号品質観測に要するテスト時間が長くなる。たとえば、上記の特許文献１または２に記載の装置では、受信したSETUPパケットやDATAパケットなどの測定対象でないパケットに応じて、ACK信号を送信している。
【００１３】
通常、このSETUPパケットは、８ビットのSYNC、８ビットのPID、７ビットのADDR、４ビットのENDPおよび５ビットのCRC5を有する32ビットのパケットであり、またDATAパケットは、８ビットのSYNC、８ビットのPID、64ビットのDATAおよび16ビットのCRC16を有する96ビットのパケットである。したがって、とくにシステムLSIを量産出荷するときに、これらの測定対象でないパケットを受信して開始されるテストを行うと、これらのパケットの受信に長時間を要し、そのテスト時間の長さがLSIのコストに大きく影響する。
【００１４】
また、これらのような従来のUSBテスト機能を有するUSB装置では、測定対象でないパケットに応じて複数のテストパターンを作成するために、工数およびデバッグに多くの時間を必要とする。
【００１５】
本発明はこのような従来技術の欠点を解消し、USB機能を有するシステムLSIなどのUSB装置において、信号品質の観測のために送信する、テスト用の測定対象パケットを短時間で生成および出力して、そのUSB機能のテストに供するUSBテスト回路を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は上述の課題を解決するために、USB機能を有するUSB装置に搭載されて、このUSB機能をテストするUSBテスト回路は、この回路の動作モード情報を含むテスト信号を外部機器から入力する入力手段と、信号品質のテスト用の測定対象パケットを生成して出力する生成手段と、この生成手段は、この入力手段に入力されたこの動作モード情報に応じてこの測定対象パケットを生成することを特徴とする。
【発明の効果】
【００１７】
本発明のUSBテスト回路によれば、シリアルI/Fを介して入力されるtest_sin信号やtest_stb信号などのテスト信号によって制御されて、さまざまな測定対象パケットを生成して出力するので、SETUPパケットやDATAパケットなどの信号品質の測定対象でないパケットを受信することなく、信号品質のテスト用の測定対象パケットを出力することができる。このように、本回路では、測定対称でないパケットの受信時間を省略するので、とくに量産出荷テスト時の時間短縮を実現することができる。
【００１８】
たとえば、SETUPパケットが32ビットで、DATAパケットが96ビットである場合、本発明のUSBテスト回路では、転送速度モードがLow Speedの場合には32 bit×667 nsec＋96 bit×667 nsecの数式で算出される85 usec以上の受信時間を短縮することができ、Full Speedの場合には32 bit×83 nsec＋96 bit×83 nsecの数式で算出される5.7 usec以上の受信時間を短縮することができ、High Speedの場合には32 bit×2 nsec＋96 bit×2 nsecの数式で算出される256 nsec以上の受信時間を短縮することができる。
【００１９】
また、本発明のUSBテスト回路では、信号品質のテスト用の測定対象パケットを出力するときに、外部で測定対称でないパケットを生成してLSIに送信する必要がないので、テストパターンの作成およびデバッグに要する工数を削減することができる。
【発明を実施するための最良の形態】
【００２０】
次に添付図面を参照して、本発明によるUSBテスト回路の実施例を詳細に説明する。たとえば、本発明のUSBテスト回路10は、図１に示すように、本回路の動作モードに関する情報を示す信号をシリアルI/Fブロック12に入力して、その情報をパケットタイプレジスタ14、エンドレスフラグレジスタ16および送信バイト数レジスタ18に保持して、この情報に応じた測定対象パケットである送信データをデータパターン生成ブロック20および送信データ送出ブロック22にて生成するもので、また送信データを有効にするタイミングを有効タイミング生成ブロック24で生成するものである。また、本回路10は、送信データ出力を繰り返す場合の出力間隔をパケット間タイミング生成ブロック26で決定する。なお、本発明の理解に直接関係のない部分は、図示を省略し、冗長な説明を避ける。
【００２１】
本回路10は、USB機能を有するシステムLSIなどのUSB装置に適用されて、USBコンプライアンス（Compliance）テストにおいて、信号品質（Signal Quality）を観測するためのACKパケットやテストパケットなどの測定対象パケットを生成して出力するもので、これらのパケットを外部のUSBホスト装置が受信して信号品質を観測する。
【００２２】
本回路10が適用されるLSI 50は、図２に示すように、CPU 52を内蔵して動作するもので、このCPU 52がシステムバス58を介して他の回路に接続してその回路の機能を実行するものでよく、本実施例では、システムバス58にUSB Deviceコントローラ56を接続してUSB機能を有する。このLSI 50は、USB Full Speed、Low SpeedおよびHigh Speedなどのさまざまな転送速度モードのいずれかを選択して、選択したモードによってパケットを送受信することができる。
【００２３】
本回路10は、USB物理層テスト時短回路であり、たとえば図２に示すように、LSI 50においてUSB物理層（PHYsical Layer：PHY）54とUSB Deviceコントローラ56との間に配置され、USB PHY 54側ではなくコントローラ56側に備えられる。
【００２４】
また、CPU 52は、LSI 50全体の動作を制御、統括するもので、本実施例では、USB Deviceコントローラ56のレジスタに対してデータのリードおよびライトを実行することができる。
【００２５】
USB PHY 54は、UTMI（USB2.0 Transceiver Macrocell Interface）I/Fを介してUSB Deviceコントローラ56と接続し、またUSB I/Fを介して外部機器と接続するもので、本実施例では、UTMI I/Fを介して本回路10と接続し、本回路10を介してコントローラ56と接続する。
【００２６】
また、USB PHY 54は、UTMI I/Fコントローラブロックを有してUTMI I/Fを制御し、またUSB I/Fを介して外部機器と差動（Differential data Plus / Differential data Minus：DP/DM）信号を送受信する。このPHY 54は、パケット送信が可能な状態であるか否かを示す、１ビットの送信許可信号をUTMI I/Fを介して本回路10へと出力する。
【００２７】
本回路10は、通常動作時には、USB PHY 54側のUTMIとUSB Deviceコントローラ56側のUTMIとの間の単なる通信路として機能するが、USBテスト時には、コントローラ56およびCPU 52の動作を必要とせずに、シリアルI/Fから直接制御されて測定対象パケットをPHY 54側のUTMI I/Fに出力し、このパケットをPHY 54からDP/DM信号によって送信する。
【００２８】
USB Deviceコントローラ56は、LSI 50におけるUSBのプロトコルを制御するもので、システムバスI/Fを介してシステムバス58と接続し、またUTMI I/Fを介して本回路10と接続する。このコントローラ56は、たとえばUTMI I/Fコントローラを有してUTMI I/Fを制御するものでよい。
【００２９】
また、USB Deviceコントローラ56は、図示しないが、PIDデコードブロック、High Speedテストパケット生成ブロックおよびACKパケット生成ブロックを含んで構成されて、通常のUSBコンプライアンステスト時にテストパケットやACKパケットを生成することもできる。
【００３０】
また、LSI 50は、外部から信号を入力する外部端子またはテストピンを有し、本回路10は、この端子によって制御される。本回路10は、たとえばシリアルI/Fを介して入力されるtest_sin信号やtest_stb信号などのテスト信号によって制御されて、測定対象パケットを強制的に出力させる。LSI 50は、たとえばパターンジェネレータなどの外部機器からtest_sin信号をこの端子に入力して本回路10に供給する。
【００３１】
本回路10では、シリアルI/Fブロック12が、動作モードに関する情報を示すtest_sin信号102、およびtest_sin信号102の各ビットデータに同期するtest_stb信号104をシリアルI/Fを介して１ビットごとに入力する。また、このブロック12は、本回路10を初期化する１ビットのリセット信号106をシリアルI/Fを介して入力し、USB PHY 54で生成されるクロック信号108も入力する。
【００３２】
シリアルI/Fブロック12は、test_sin信号102によって、測定対象パケットの種類、テスト出力の頻度、および測定対象パケットのバイト数などの情報を得ることができる。このブロック12は、たとえばACKパケットかテストパケットかを示す測定対象パケットの種類を得て、繰り返しか１回だけかを示すエンドレスフラグを出力頻度として得て、１パケットのバイト数を示す送信バイト数を得る。
【００３３】
また、シリアルI/Fブロック12は、test_sin信号102を取り出すタイミングを示すstrobe信号112を生成するもので、strobe信号112の間隔を示す内部信号としてstrobe_interval 110を有し、strobe_interval 110、test_stb信号104およびクロック信号108を用いて１ビットのstrobe信号112を生成する。このブロック12は、Highレベルのstrobe信号112に応じてtest_sin信号102が示す情報を本回路10の内部レジスタにラッチする。このブロック12は、たとえば、０から２までの３ビット幅を有してクロック信号108に同期して０、１、２、３の順に変化するstrobe_interval [2:0] 110を有する。
【００３４】
本実施例のシリアルI/Fブロック12は、Highレベルのリセット信号108を入力した後で、Highレベルのtest_stb信号104を検出してから数クロック後のタイミングで、すなわちtest_sin信号102を確実に取り出せるタイミングで、strobe信号112を１クロックだけHighレベルにして生成する。本回路10では、test_stb信号104の周期をあらかじめ決めておけば、ブロック12が、test_sin信号102を確実に取り出せるタイミングをあらかじめ決めておくことができる。
【００３５】
シリアルI/Fブロック12は、このようにHighレベルにしたstrobe信号112をLowレベルにするとき、strobe_interval 110を０に設定して再びクロック信号108に応じてカウントさせ、２から３に変化するタイミングでstrobe信号112を再び１クロックだけHighレベルにする。ブロック12は、このように、strobe_interval 110のカウントを繰り返してstrobe信号112の生成を繰り返す。
【００３６】
また、本回路10では、test_sin信号102の動作モード情報のビット長をあらかじめ決めておけば、シリアルI/Fブロック12がtest_sin信号102を取り出す回数、すなわちstrobe信号112をHighレベルにする所定のstrobe回数をあらかじめ決めておくことができる。本実施例では、このブロック12は、strobe信号112をカウントして、そのカウンタ値であるstrobe数114が所定のstrobe回数に達した後は、strobe_interval 110のカウントおよびstrobe信号112の生成を停止する。ブロック12は、内部信号として０から４までの５ビット幅を有するstrobe数 [4:0] 114を有してよい。
【００３７】
シリアルI/Fブロック12は、strobe信号112をHighレベルにするごとに、test_sin信号102の１ビットのデータを本回路10の内部レジスタに送って、strobe数114の値に応じたレジスタ位置に書き込むもので、本実施例では、test_sin信号102が示すパケットタイプ116をパケットタイプレジスタ14に、エンドレスフラグ118をエンドレスフラグレジスタ16に、および送信バイト数120を送信バイト数レジスタ18にそれぞれ送る。
【００３８】
本実施例において、パケットタイプレジスタ14、エンドレスフラグレジスタ16および送信バイト数レジスタ18は、それぞれ、０から２までの３ビット幅を有するパケットタイプ[2:0] 116、１ビットのエンドレスフラグ118、および０から10までの11ビット幅を有する送信バイト数[10:0] 120を保持するレジスタでよい。
【００３９】
また、本実施例のパケットタイプレジスタ14は、シリアルI/Fブロック12から得られるstrobe数114を判定して、strobe数114が所定のstrobe回数に達すると、パケットタイプ116をデータパターン生成ブロック20に供給する。さらに、このレジスタ14は、strobe数114が所定のstrobe回数に達すると、エンドレスフラグ118および送信バイト数120を有効タイミング生成ブロック24に供給するようにエンドレスフラグレジスタ16および送信バイト数レジスタ18にそれぞれ指示する。
【００４０】
また、データパターン生成ブロック20は、パケットタイプレジスタ14からパケットタイプ122を得て、このタイプ122がACKパケットを示すかテストパケットを示すかに応じて、決まった順序で決まったデータを出力するようにデータパターン124を決定するもので、たとえば何バイト目にどのデータを出力するかを決定してデータパターン124を生成し、送信データ送出ブロック22へ供給する。
【００４１】
本実施例のデータパターン生成ブロック20は、さまざまなデータパターンをあらかじめ用意して、パターンセレクタ30がいずれかのデータパターン124を選択して決定するものでよく、たとえばこのセレクタ30は、カウンタ32からパターンカウント信号126を得て、パケットタイプ122およびパターンカウント信号126に応じたデータパターン124を決定してよい。
【００４２】
このカウンタ32は、クロック信号108に同期してカウントし、そのカウント値としてパターンカウント信号126を生成してセレクタ30に供給する。カウンタ32は、USB PHY 54からHighレベルの送信許可信号128を入力し、かつ有効タイミング生成ブロック24からHighレベルの有効タイミング信号130を入力するときのみクロック信号108のカウントを行うことができ、本回路10が出力する１ビットの送信データごとにパターンカウント信号126を決定する。本実施例のカウンタ32は、内部信号として０から５までの６ビット幅を有するパターンカウント信号[5:0] 126を有するものでよい。
【００４３】
データパターン生成ブロック20は、本回路10が出力する送信データの下位データおよび上位データのそれぞれに対応して、０から７までの８ビット幅を有する下位データパターンと、８から15までの８ビット幅を有する上位データパターンとをデータパターン124として生成してよい。このブロック20は、下位データおよび上位データのそれぞれに関する有効タイミング信号130に応じて下位データパターンおよび上位データパターンを生成してもよい。
【００４４】
このデータパターン生成ブロック20は、出力するパケットのサイズに応じてデータパターン124を決定してもよく、１バイトのACKパケットを出力する場合は下位データパターンのみを生成し、２バイト以上のパケットである場合は下位および上位データパターンの両方を生成することができる。
【００４５】
また、データパターン生成ブロック20が、パケット間タイミング生成ブロック26からHighレベルの繰り返し信号132を入力すると、カウンタ32は、次の送信データのためにパターンカウント信号126を０に初期化する。これによって、カウンタ32が、繰り返し信号132に応じてクロック信号108のカウントを繰り返してパターンカウント信号126を新たに生成し、ブロック20は、次の送信データのためのデータパターン124を生成する。
【００４６】
送信データ送出ブロック22は、データパターン生成ブロック20から供給されるデータパターン124に基づいて送信データ134を生成し、本実施例では、セレクタ34がパケットタイプ122およびデータパターン124に基づく送信データ134を決定する。送出ブロック22は、０から15までの16ビット幅を有する送信データ[15:0] 134を生成するものでよい。
【００４７】
この送信データ送出ブロック22は、有効タイミング信号130に応じたタイミングで送信データ134をUMTI I/Fへと送出するもので、本実施例では、Highレベルの有効タイミング信号130に応じて、測定対象パケットである送信データ134をPHY 54側のUTMI I/Fを介してPHY 54へと出力する。
【００４８】
また、送信データ送出ブロック22は、たとえば、下位データパターンおよび上位データパターンのそれぞれのデータパターン124を得て、それぞれに関する有効タイミング信号130に応じて１つの送信データ134を生成し、いずれかの有効タイミング信号130がHighであれば送信データ134を出力する。
【００４９】
有効タイミング生成ブロック24は、送信バイト数レジスタ18から得られる送信バイト数136に応じて、送信データ134を有効にするタイミングを示す有効タイミング信号130を生成して出力するものである。
【００５０】
本実施例の有効タイミング生成ブロック24は、test_sin信号102およびtest_stb信号104のテスト信号の入力が完了したと判断すると、有効タイミング信号130をHighにして生成し、入力した送信バイト数136をtemp_data_byte_count 138にロードする。また、生成ブロック24は、この判断時にパケットタイプ122ごとにあらかじめ決めておいた送信バイト数をtemp_data_byte_count 138および送信バイト数136に設定してもよい。生成ブロック24は、内部信号として０から10までの11ビット幅を有するtemp_data_byte_count[10:0] 138を有するとよい。
【００５１】
また、有効タイミング生成ブロック24は、たとえば、シリアルI/Fブロック12におけるstrobe数114が所定のstrobe回数に達して送信バイト数レジスタ18から送信バイト数136を得ると、テスト信号入力の完了を判断できる。
【００５２】
また、この生成ブロック24は、有効タイミング信号130をHighレベルにすると、カウンタ36がこの送信バイト数136のカウントダウンを開始し、たとえば、Highレベルの送信許可信号128を入力してからクロック信号108に同期してカウントダウンし、０になると有効タイミング信号130をLowレベルにする。
【００５３】
さらに、生成ブロック24は、エンドレスフラグレジスタ16から入力するエンドレスフラグ140に応じて、interval_enable信号142を生成してパケット間タイミング生成ブロック26に供給し、次の送信データ出力のためのタイミング生成の有無を知らせることができる。生成ブロック24は、たとえば、Highレベルのエンドレスフラグ140を入力していて、かつ有効タイミング信号130をLowレベルにするときに、interval_enable信号142をHighレベルにしてこのタイミング生成を指示する。
【００５４】
また、生成ブロック24は、パケット間タイミング生成ブロック26から入力する繰り返し信号132に応じて、次の送信データ出力のために有効タイミング信号130を生成することができる。生成ブロック24は、たとえば、繰り返し信号132がHighレベルからLowレベルになるときに、temp_data_byte_count 138の値を送信バイト数レジスタ18の送信バイト数136にロードしてカウンタ36のカウントダウンを可能にし、また有効タイミング信号130をHighレベルにする。
【００５５】
また、パケット間タイミング生成ブロック26は、本回路10が測定対象パケットをUTMI I/Fに繰り返し出力する場合の、所定のパケット出力とその次のパケット出力との時間間隔を制御するものである。本実施例では、次の測定対象パケットの生成タイミングを示す繰り返し信号132を生成してデータパターン生成ブロック20および有効タイミング生成ブロック24に供給する。
【００５６】
パケット間タイミング生成ブロック26は、たとえば、カウンタ38がクロック信号108に応じてカウントアップしてそのカウント値をinterval_count 144とし、またあらかじめ所定のパケット間隔を決めておいて、interval_count 144が所定のパケット間隔に達すると繰り返し信号132を１クロックだけHighレベルにして出力する。
【００５７】
カウンタ38は、たとえば、有効タイミング生成ブロック24からHighレベルのinterval_enable信号142を入力するとinterval_count 144のカウントアップを開始し、Lowレベルのinterval_enable信号142を入力するとinterval_count 144を初期化するものでよい。このカウンタ38は、内部信号として０から15までの16ビット幅を有するinterval_count[15:0] 144を有してよい。
【００５８】
次に、本実施例におけるUSBテスト回路10について、転送速度モードがFull Speedである場合の信号品質を観測するためにACKパケットを生成および出力する動作を図３ないし図６のタイミングチャートを参照しながら説明する。これらの図３、図４、図５、図６は、順次連続したタイミングチャートである。
【００５９】
本実施例の本回路10では、まず、図３に示すように、30MHzのクロック信号108が入力して各部が動作し、またHighレベルのリセット信号106が入力して各部の内部信号などの値をすべて初期化する。
【００６０】
また、本回路10では、test_sin信号102およびtest_stb信号104のテスト信号が外部からシリアルI/Fを介してシリアルI/Fブロック12に入力する。ここでは、68クロック分の長さのtest_sin信号102が、時刻t202から時刻t222までの間入力し、その内容は、パケットタイプがACKパケットを示し、エンドレスフラグが繰り返しを示し、送信バイト数が１バイトを示す。
【００６１】
このブロック12では、たとえばtest_stb信号104が常に監視されて、時刻t202において、Highレベルのtest_stb信号104が初めて検出されると、その数クロック後、本実施例では２クロック後の時刻t204に、strobe信号112が１クロック分だけHighレベルにされる。
【００６２】
このstrobe信号112がLowレベルに変わると、strobe_interval 110がクロック信号108に同期して０から３までカウントアップされ、このstrobe_interval 110が２から３になる時刻t206において、strobe信号112が再度１クロック分だけHighレベルにされる。
【００６３】
このように、strobe信号112の変化に応じて、strobe_interval 110のカウントアップが繰り返されて、その度に、strobe信号112がHighレベルにされ、また、strobe信号112がLowレベルになるごとに、strobe信号112の数がstrobe数114としてカウントされる。
【００６４】
また、strobe信号112がLowレベルになると、このときにシリアルI/Fブロック12に入力する１ビットのtest_sin信号102が内部レジスタに送られ、そのときのstrobe数114に応じたレジスタ位置に書き込まれる。
【００６５】
本実施例では、時刻t208において、test_sin信号102の３ビット目のデータが入力し、この１ビットのデータ116はパケットタイプの一部を示すもので、そのときのstrobe数114と共にパケットタイプレジスタ14に送られる。このレジスタ14において、そのビットデータ116は、strobe数114に応じたレジスタ位置に書き込まれる。
【００６６】
同様にして、時刻t210およびt212において、test_sin信号102の４および５ビット目のデータがパケットタイプの一部を示すデータ116としてパケットタイプレジスタ14に送られ、それぞれのstrobe数114に応じたレジスタ位置に書き込まれる。このようにして、０から２までの３ビット幅を有するパケットタイプ116がレジスタ14にラッチされる。
【００６７】
また、時刻t214において、test_sin信号102の６ビット目のデータが入力し、これは１ビットのエンドレスフラグ118であり、そのときのstrobe数114と共にエンドレスフラグレジスタ16に送られる。このレジスタ16において、エンドレスフラグ118は、strobe数114に応じたレジスタ位置に書き込まれる。
【００６８】
さらに、時刻t216において、test_sin信号102の７ビット目のデータが入力し、この１ビットのデータ120は送信バイト数の一部を示すもので、そのときのstrobe数114と共に送信バイト数レジスタ18に送られる。このレジスタ18において、そのビットデータ120は、strobe数114に応じたレジスタ位置に書き込まれる。
【００６９】
同様にして、時刻t218から時刻t220までの間に、strobe信号112がLowレベルになるごとに、test_sin信号102から１ビットのデータが得られ、それぞれ送信バイト数の一部を示すデータ120として送信バイト数レジスタ18に送られ、それぞれのstrobe数114に応じたレジスタ位置に書き込まれる。ここでは、時刻t218から時刻t220までの間に、strobe信号112は10回Lowレベルになり、すなわち８〜17ビット目のデータが得られる。このようにして、０から10までの11ビット幅を有する送信バイト数120がレジスタ18にラッチされる。
【００７０】
また、本実施例のシリアルI/Fブロック12において、strobe信号112は、あらかじめ決められた所定のstrobe回数、ここでは18回だけHighレベルになり、時刻t224にて18回目のstrobe信号112がLowレベルになり、strobe数114が18回になる。
【００７１】
ところで、図５に示すように、シリアルI/Fブロック12におけるstrobe数114が時刻t224で所定のstrobe回数に達すると、パケットタイプレジスタ14のパケットタイプ122がデータパターン生成ブロック20に供給され、またこのレジスタ14に指示されて、エンドレスフラグレジスタ16および送信バイト数レジスタ18のそれぞれのエンドレスフラグ140および送信バイト数136が有効タイミング生成ブロック24に供給される。本実施例の有効タイミング生成ブロック24では、時刻t224で送信バイト数136が得られると、テスト信号の入力が完了したと判断されて、送信バイト数136がtemp_data_byte_count 138にロードされ、有効タイミング信号130がHighレベルにされる。ここでは、１バイトのACKパケットを出力するため、送信データのうち下位ビットデータに作用する下位有効タイミング信号のみがHighレベルにされる。
【００７２】
このHighレベルの有効タイミング信号130は、データパターン生成ブロック20および送信データ送出ブロック22に供給される。
【００７３】
その後、時刻t226において、この生成ブロック20では、送信許可信号128がLowレベルであるので、カウンタ32のパターンカウント信号126がカウントされず、０の値のデータパターン124が送出ブロック22に供給される。したがって、送出ブロック22では、このデータパターン124とACKパケットを示すパケットタイプ122に応じて、セレクタ34で０の値のACKパケット134が生成されて出力される。
【００７４】
次に、時刻t228において送信許可信号128がHighレベルになると、有効タイミング生成ブロック24のカウンタ36では、送信バイト数136がクロック信号108に応じて０になるまでカウントダウンされ、本実施例では、送信バイト数136が１バイトであるので、１クロック後の時刻t230で０になる。
【００７５】
また、時刻t228では、データパターン生成ブロック20のカウンタ32において、Highレベルの有効タイミング信号130および送信許可信号128に応じてカウントが開始し、そのカウント値を示すパターンカウント信号126およびACKパケットを示すパケットタイプ122に応じたデータパターン124がセレクタ30で得られる。
【００７６】
ここでは、下位有効タイミング信号のみがHighレベルであるので、下位データパターンのみが得られ、０を示す上位データパターンとともにデータパターン124として送信データ送出ブロック22に供給される。
【００７７】
この送出ブロック22では、時刻t228で、ACKパケットを示すパケットタイプ122、および下位データパターンのみを有するデータパターン124に応じて、セレクタ34で下位データのみを有するACKパケット134が生成され、Highを示す有効タイミング信号130に応じてUTMI I/Fを介して出力される。
【００７８】
このように出力されたACKパケット134は、USB PHY 54に供給されて、LSI 50から外部へと送信される。
【００７９】
また、有効タイミング生成ブロック24では、カウンタ36における送信バイト数136が時刻t230で０になると、有効タイミング信号130がLowになるので、データパターン生成ブロック20におけるデータパターン124の生成、および送信データ送出ブロック22における送信データ134の出力が停止する。本実施例では、時刻t230において、送信許可信号128もLowレベルになっているが、これは本回路10の意図することではない。
【００８０】
ところで、本実施例では、繰り返しを示すエンドレスフラグ140が有効タイミング生成ブロック24に供給されている。したがって、この生成ブロック24では、時刻t230において有効タイミング信号130がLowになるときに、Highレベルのinterval_enable信号142がパケット間タイミング生成ブロック26に供給される。
【００８１】
パケット間タイミング生成ブロック26では、Highレベルのinterval_enable信号142に応じて、interval_count 144が１から順にカウントされる。このinterval_count 144が時刻t232で所定のパケット間隔に達すると、繰り返し信号132が１クロックだけHighレベルにされてデータパターン生成ブロック20および有効タイミング生成ブロック24に供給される。
【００８２】
このHighレベルの繰り返し信号132に応じて、データパターン生成ブロック20ではカウンタ32のパターンカウント信号126が初期化され、有効タイミング生成ブロック24では有効タイミング信号130が時刻t234でHighレベルにされ、temp_data_byte_count 138の値が送信バイト数レジスタ18の送信バイト数136にロードされる。また、ブロック24におけるinterval_enable信号142は、有効タイミング信号130がHighレベルになる時刻t234でLowレベルにされる。
【００８３】
これによって、時刻t224〜t230までの動作と同様にして、時刻t234〜t236までの期間において、有効タイミング生成ブロック24のカウンタ36では送信バイト数136のカウントダウンが行われ、データパターン生成ブロック20ではカウンタ32におけるパターンカウント信号126の生成およびセレクタ30におけるデータパターン124の生成が行われ、送信データ送出ブロック22ではセレクタ34における送信データ134の生成が行われる。
【００８４】
その後、繰り返しを示すエンドレスフラグ140に応じて、時刻t230〜t236までの動作が繰り返される。
【００８５】
また、本実施例におけるUSBテスト回路10が生成したACKパケットをUSBホスト装置に送信する動作を図７のシーケンスチャートを参照して簡単に説明する。
【００８６】
図７に示すように、USBテスト回路10において、test_sin信号やtest_stb信号などのテスト信号に応じてACKパケットが生成されると、本回路10が搭載されるUSB装置のUSB PHY 54に出力され、さらにUSB I/Fを介してUSBホスト装置に送信される。
【００８７】
このように、本回路10では、信号品質の測定対象でないパケットを受信することなく、ACKパケットを出力することができ、不要パケットの受信時間が省略される。
【００８８】
また、本発明のUSBテスト回路10では、図７に示すように、ACKパケットの生成および出力が繰り返されても、測定対象でないパケットを受信しないので、テスト時間を効果的に短縮することができる。
【００８９】
本実施例のUSBテスト回路10では、test_sin信号102から動作モードに関する情報を取り出して設定するために68クロックを要するが、USB PHY 54では、リセットやターミネーション抵抗のキャリブレーションなどの初期化処理がなされ、この処理に十数μsec〜数msecを必要し、本回路10における動作モード情報設定は、PHY 54における初期化処理と平行動作できるので、余分なテスト時間とはみなされない。
【００９０】
次に、本実施例におけるUSBテスト回路10について、転送速度モードがHigh Speedである場合の信号品質を観測するためにテストパケットを生成および出力する動作を図８および図１１のタイミングチャートを参照しながら説明する。これらの図８、図９、図１０、図１１は、順次連続したタイミングチャートである。
【００９１】
ここで、入力するtest_sin信号102は、パケットタイプがテストパケットを示し、エンドレスフラグが繰り返しを示し、送信バイト数が56バイトを示す。これらがパケットタイプレジスタ14、エンドレスフラグレジスタ16および送信バイト数レジスタ18に保持されるまでの動作は、図３および図４を参照して説明した実施例と同様であるので、ここでは省略する。
【００９２】
図８に示すように、まず、本実施例のシリアルI/Fブロック12において、strobe数114が時刻t224で所定のstrobe回数に達すると、パケットタイプレジスタ14のパケットタイプ122がデータパターン生成ブロック20に供給され、またこのレジスタ14に指示されて、エンドレスフラグレジスタ16および送信バイト数レジスタ18のそれぞれのエンドレスフラグ140および送信バイト数136が有効タイミング生成ブロック24に供給される。
【００９３】
また、本実施例の有効タイミング生成ブロック24では、時刻t224で送信バイト数136が得られると、テスト信号の入力が完了したと判断されて、送信バイト数136がtemp_data_byte_count 138にロードされ、有効タイミング信号130がHighレベルにされる。ここでは、High Speedモードであるために、送信データの下位ビットデータおよび上位ビットデータにそれぞれ作用する下位有効タイミング信号および上位有効タイミング信号の両方がHighレベルにされる。
【００９４】
このHighレベルの有効タイミング信号130は、データパターン生成ブロック20および送信データ送出ブロック22に供給される。
【００９５】
その後、時刻t252において、この生成ブロック20に入力する送信許可信号128がHighレベルになるので、カウンタ32において、Highレベルの有効タイミング信号130および送信許可信号128に応じてカウントが開始し、そのカウント値を示すパターンカウント信号126およびテストパケットを示すパケットタイプ122に応じたデータパターン124がセレクタ30で得られ、送出ブロック22に供給される。
【００９６】
ここでは、下位有効タイミング信号および上位有効タイミング信号の両方がHighレベルであるので、下位データパターンおよび上位データパターンの両方がデータパターン124として送出ブロック22に供給される。
【００９７】
この送出ブロック22では、このデータパターン124に応じて時刻t254で、テストパケットを示すパケットタイプ122、ならびに下位および上位データパターンの両方を有するデータパターン124に基づいて、セレクタ34で下位および上位データデータの両方を有するテストパケット134が生成され、Highを示す有効タイミング信号130に応じてUTMI I/Fを介して出力される。
【００９８】
このように出力されたテストパケット134は、USB PHY 54に供給されて、LSI 50から外部へと送信される。
【００９９】
また、有効タイミング生成ブロック24のカウンタ36では、56バイトの送信バイト数136がクロック信号108に応じて０になるまでカウントダウンされるが、本実施例では、その途中の時刻t256において、送信許可信号128がLowレベルになり、カウンタ36における送信バイト数136のカウントダウンが停止する。
【０１００】
このとき、データパターン生成ブロック20のカウンタ32におけるパターンカウント信号126のカウントも中止するので、カウンタ32が次にクロック信号108に同期する時刻t258では、前回のパターンカウント信号126がそのままセレクタ30に供給されて、前回と同じデータパターン124が選択されて送出ブロック22に供給される。したがって、送信データ送出ブロック22では、このデータパターン124とテストパケットを示すパケットタイプ122に応じて、セレクタ34で前回と同じテストパケット134が生成されて出力される。
【０１０１】
また、時刻t258で、送信許可信号128が再びHighレベルになると、有効タイミング生成ブロック24のカウンタ36における送信バイト数136のカウントダウンが再開し、データパターン生成ブロック20のカウンタ32におけるパターンカウント信号126のカウントも再開する。
【０１０２】
これによって、カウンタ32では、さらにクロック信号108に同期する時刻t260において、パターンカウント信号126がカウントされて、そのカウント後のパターンカウント信号126およびテストパケットを示すパケットタイプ122に応じたデータパターン124がセレクタ30で得られ、送出ブロック22に供給される。送出ブロック22では、この時刻t260で得られたデータパターン124に応じてテストパケット134が生成される。
【０１０３】
また、有効タイミング生成ブロック24のカウンタ36では、時刻t262において、送信バイト数136が０になり、有効タイミング信号130がLowになる。ここで、データパターン生成ブロック20におけるデータパターン124の生成、および送信データ送出ブロック22における送信データ134の出力が停止する。本実施例では、時刻t262において、送信許可信号128もLowレベルになっているが、これは本回路10の意図することではない。
【０１０４】
ところで、本実施例の有効タイミング生成ブロック24には、繰り返しを示すエンドレスフラグ140が供給されているので、時刻t260において有効タイミング信号130がLowになるときに、Highレベルのinterval_enable信号142がパケット間タイミング生成ブロック26に供給される。
【０１０５】
この生成ブロック26では、上記実施例と同様に、Highレベルのinterval_enable信号142に応じてinterval_count 144がカウントされ、時刻t264で所定のパケット間隔に達すると、繰り返し信号132が１クロックだけHighレベルにされる。
【０１０６】
このHighレベルの繰り返し信号132は、データパターン生成ブロック20および有効タイミング生成ブロック24に供給され、ブロック20ではカウンタ32のパターンカウント信号126が初期化され、ブロック24では時刻t266で有効タイミング信号130がHighレベルにされてinterval_enable信号142がLowレベルにされ、さらにtemp_data_byte_count 138の値が送信バイト数レジスタ18の送信バイト数136にロードされる。
【０１０７】
これによって、時刻t224〜t262までの動作と同様にして、図１０に示すように、時刻t266〜t268までの期間において、有効タイミング生成ブロック24のカウンタ36では送信バイト数136のカウントダウンが行われ、データパターン生成ブロック20ではカウンタ32におけるパターンカウント信号126の生成およびセレクタ30におけるデータパターン124の生成が行われ、送信データ送出ブロック22ではセレクタ34における送信データ134の生成が行われる。
【０１０８】
その後、繰り返しを示すエンドレスフラグ140に応じて、時刻t262〜t268までの動作が繰り返される。
【０１０９】
また、本実施例におけるUSBテスト回路10が生成したテストパケットをUSBホスト装置に送信する動作を図１２のシーケンスチャートを参照して簡単に説明する。
【０１１０】
図８に示すように、USBテスト回路10において、test_sin信号やtest_stb信号などのテスト信号に応じてテストパケットが生成されると、本回路10が搭載されるUSB装置のUSB PHY 54に出力され、さらにUSB I/Fを介してUSBホスト装置に送信される。
【０１１１】
このように、本回路10では、信号品質の測定対象でないパケットを受信することなく、テストパケットを出力することができ、不要パケットの受信時間が省略される。
【０１１２】
また、本発明のUSBテスト回路10では、図８に示すように、テストパケットの生成および出力が繰り返されても、測定対象でないパケットを受信しないので、テスト時間を効果的に短縮することができる。
【図面の簡単な説明】
【０１１３】
【図１】本発明のUSBテスト回路の一実施例を示すブロック図である。
【図２】図１に示したUSBテスト回路が適用されるシステムLSIを概要的に示すブロック図である。
【図３】図１に示したUSBテスト回路のFull Speedモード時の動作手順を説明するタイミングチャートである。
【図４】図１に示したUSBテスト回路のFull Speedモード時の動作手順を説明するタイミングチャートである。
【図５】図１に示したUSBテスト回路のFull Speedモード時の動作手順を説明するタイミングチャートである。
【図６】図１に示したUSBテスト回路のFull Speedモード時の動作手順を説明するタイミングチャートである。
【図７】図１に示したUSBテスト回路によるACKパケット出力の動作手順を説明するシーケンスチャートである。
【図８】図１に示したUSBテスト回路のHigh Speedモード時の動作手順を説明するタイミングチャートである。
【図９】図１に示したUSBテスト回路のHigh Speedモード時の動作手順を説明するタイミングチャートである。
【図１０】図１に示したUSBテスト回路のHigh Speedモード時の動作手順を説明するタイミングチャートである。
【図１１】図１に示したUSBテスト回路のHigh Speedモード時の動作手順を説明するタイミングチャートである。
【図１２】図１に示したUSBテスト回路によるテストパケット出力の動作手順を説明するシーケンスチャートである。
【符号の説明】
【０１１４】
10   USBテスト回路
12  シリアルI/Fブロック
14  パケットタイプレジスタ
16  エンドレスフラグレジスタ
18  送信バイト数レジスタ
20  データパターン生成ブロック
22  送信データ送出ブロック
24  有効タイミング生成ブロック
26  パケット間タイミング生成ブロック
30  パターンセレクタ
32、36、38  カウンタ
34  セレクタ
【図１】
2008084273.tif 000003
【図２】
2008084273.tif 000004
【図３】
2008084273.tif 000005
【図４】
2008084273.tif 000006
【図５】
2008084273.tif 000007
【図６】
2008084273.tif 000008
【図７】
2008084273.tif 000009
【図８】
2008084273.tif 000010
【図９】
2008084273.tif 000011
【図１０】
2008084273.tif 000012
【図１１】
2008084273.tif 000013
【図１２】
2008084273.tif 000014