KR20080030472A - Usb 테스트 회로 - Google Patents

Usb 테스트 회로 Download PDF

Info

Publication number
KR20080030472A
KR20080030472A KR1020070089296A KR20070089296A KR20080030472A KR 20080030472 A KR20080030472 A KR 20080030472A KR 1020070089296 A KR1020070089296 A KR 1020070089296A KR 20070089296 A KR20070089296 A KR 20070089296A KR 20080030472 A KR20080030472 A KR 20080030472A
Authority
KR
South Korea
Prior art keywords
packet
signal
usb
test
data
Prior art date
Application number
KR1020070089296A
Other languages
English (en)
Inventor
마코토 나가노
Original Assignee
오끼 덴끼 고오교 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오끼 덴끼 고오교 가부시끼가이샤 filed Critical 오끼 덴끼 고오교 가부시끼가이샤
Publication of KR20080030472A publication Critical patent/KR20080030472A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/267Reconfiguring circuits for testing, e.g. LSSD, partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

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패킷 등의 측정 대상이 아닌 복수의 패킷을 수신하지 않고, 신호 품질의 테스트용의 측정 대상 패킷을 생성 및 출력할 수 있으며, 테스트 시간을 단축할 수 있다.
Figure P1020070089296
USB 테스트 회로, 측정 대상 패킷, 직렬I/F블록, 동작 모드 정보

Description

USB 테스트 회로{USB Testing Circuit}
본 발명은, 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가 컴플라이언스 테스트 등의 테스트 모드로 동작할 때, 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 신호에 의해 출력한다.
그러나, 특허문헌 1에 기재된 USB기능의 평가 장치는, USB기능에 대하여 송출한 테스트패턴을 IN토큰 유지 회로로 일시적으로 유지하고, USB기능으로부터의 회신 데이터를 패킷 타입 판별 회로로 판별하여, 이 데이터가 NAK타입인 경우에는 유지하고 있는 IN토큰을 재송출하고, DATA타입 또는 STALL타입인 경우에는 유지하고 있었던 IN토큰을 파기함으로써, DATA패킷의 회신의 준비가 완료할 때까지의 시간을 의식하지 않고 프로그래밍을 행할 수 있고, 테스트패턴의 설계 효율을 향상시킬 수 있다.
또한 특허문헌 2에 기재된 USB시뮬레이션 장치는, 테스트 항목 및 시뮬레이션상의 명령을 기억하는 기억매체를 가지고, 트랜잭션 관리부에서 트랜잭션마다 테스트 항목을 관리하며, 수신 데이터 판정부에서 응답 신호를 판정하여, 그 판정 결과에 따라 그 후의 처리를 분기함으로써, 다음 트랜잭션에서 실행하는 테스트 항목이나 송신하는 데이터를 선택할 수 있다.
[특허문헌 1] 일본국 공개특허공보 특개2001-86141호
[특허문헌 2] 일본국 공개특허공보 특개2001-245017호
그러나, 종래의 USB기능을 탑재하는 시스템 LSI에서는, USB의 테스트를 행하여 신호 품질 관측용의 패킷을 USB PHY로부터 출력하기 위해서는, 측정에 직접 관계없는 장황한 복수의 패킷을 USB Device콘트롤러에 송신할 필요가 있기 때문에, 신호 품질관측에 필요로 하는 테스트 시간이 길어진다. 예를 들면, 상기의 특허문헌 1 또는 2에 기재된 장치에서는, 수신한 SETUP패킷이나 DATA패킷 등의 측정 대상이 아닌 패킷에 따라, ACK신호를 송신하고 있다.
통상, 이 SETUP패킷은, 8비트의 SYNC, 8비트의 PID, 7비트의 ADDR, 4비트의 ENDP 및 5비트의 CRC5를 가지는 32비트의 패킷이며, 또 DATA패킷은, 8비트의 SYNC, 8비트의 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인 경우에는 32bit×667nsec+96 bit×667nsec의 수식에서 산출되는 85usec이상의 수신 시간을 단축할 수 있고, Full Speed인 경우에는 32 bit×83nsec+96 bit×83nsec의 수식에서 산출되는 5.7 usec이상의 수신 시간을 단축할 수 있으며, High Speed인 경우에는 32bit ×2nsec + 96bit × 2nsec의 수식에서 산출되는 256nsec이상의 수신 시간을 단축할 수 있다.
또한 본 발명의 USB 테스트 회로에서는, 신호 품질의 테스트용의 측정 대상 패킷을 출력할 때, 외부에서 측정 대칭이 아닌 패킷을 생성하여 LSI에 송신할 필요가 없기 때문에, 테스트 패턴의 작성 및 디버그에 필요한 공정수를 삭감할 수 있다.
다음에 첨부된 도면을 참조하여, 본 발명에 의한 USB 테스트 회로의 실시예를 상세하게 설명한다. 예를 들면, 본 발명의 USB 테스트 회로(10)는, 도 1에 나타내는 바와 같이, 본 회로의 동작 모드에 관한 정보를 나타내는 신호를 직렬 I/F블록(12)에 입력하고, 그 정보를 패킷 타입 레지스터(14), 엔드리스 플래그 레지스터(16) 및 송신 바이트수 레지스터(18)에 유지하며, 이 정보에 따른 측정 대상 패킷인 송신 데이터를 데이터 패턴 생성 블록(20) 및 송신 데이터 송출 블록(22)으로 생성하는 것으로, 또한 송신 데이터를 유효하게 하는 타이밍을 유효 타이밍 생성 블록(24)에서 생성하는 것이다. 또한 본 회로(10)는, 송신 데이터 출력을 반복할 경우의 출력 간격을 패킷간 타이밍 생성 블록(26)에서 결정한다. 또한, 본 발명의 이해에 직접 관계 없는 부분은, 도시를 생략하여, 장황한 설명을 피한다.
본 회로(10)는, USB기능을 가지는 시스템 LSI등의 USB장치에 적용되어, USB컴플라이언스 테스트에 있어서, 신호 품질을 관측하기 위한 ACK패킷이나 테스트 패킷 등의 측정 대상 패킷을 생성하여 출력하는 것으로, 이것들의 패킷을 외부의 USB 호스트 장치가 수신하여 신호 품질을 관측한다.
본 회로(10)가 적용되는 LSI(50)는, 도 2에 나타내는 바와 같이 CPU(52)를 내장하여 동작하는 것으로, 이 CPU(52)가 시스템 버스(58)를 통해 다른 회로에 접속하여 그 회로의 기능을 실행하면 되고, 본 실시예에서는, 시스템 버스(58)에 USB Device콘트롤러(56)를 접속하여 USB기능을 가진다. 이 LSI(50)는, USB Full Speed, Low Speed 및 High Speed등의 여러 가지 전송 속도 모드의 어느 하나를 선택하여, 선택한 모드에 의해 패킷을 송수신할 수 있다.
본 회로(10)는, USB물리층 테스트 시간 단축 회로이며, 예를 들면 도 2에 나타내는 바와 같이, 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)는, 패킷 송신이 가능한 상태 인지의 여부를 나타내는, 1비트의 송신 허가 신호를 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를 통해 1비트 마다 입력한다. 또한 이 블록(12)은, 본 회로(10)를 초기화하는 1비트의 리셋트 신호(106)를 직렬I/F를 통해 입력하고, USB PHY(54) 에서 생성되는 클록 신호(108)도 입력한다.
직렬I/F블록(12)은, test_sin신호(102)에 의해, 측정 대상 패킷의 종류, 테스트 출력의 빈도 및 측정 대상 패킷의 바이트수 등의 정보를 얻을 수 있다. 이 블록(12)은, 예를 들면 ACK패킷인지 테스트 패킷인지를 나타내는 측정 대상 패킷의 종류를 얻어, 반복인지 1회뿐인지를 나타내는 엔드리스 플래그를 출력 빈도로서 얻고, 1패킷의 바이트수를 나타내는 송신 바이트수를 얻는다.
또한 직렬I/F블록(12)은, test_sin신호(102)을 추출하는 타이밍을 나타내는 strobe신호(112)를 생성하는 것으로, strobe신호(112)의 간격을 나타내는 내부신호로서 strobe_interval(110)을 가지고, strobe_interval(110), test_stb신호(104) 및 클록 신호(108)를 사용하여 1비트의 strobe신호(112)를 생성한다. 이 블록(12)은, High레벨의 strobe신호(112)에 따라 test_sin신호(102)가 나타내는 정보를 본 회로(10)의 내부 레지스터에 래치한다. 이 블록(12)은, 예를 들면, 0부터 2까지의 3비트 폭을 가지고 클록 신호(108)에 동기하여 0, 1, 2, 3의 순으로 변화되는 strobe_interval[2:0](110)을 가진다.
본 실시예의 직렬I/F블록(12)은, High레벨의 리셋트 신호(108)를 입력한 후 에, High레벨의 test_stb신호(104)를 검출하고나서 수 클록 후의 타이밍에, 즉 test_sin신호(102)를 확실하게 추출할 수 있는 타이밍에, strobe신호(112)를 1클록만 High레벨로 하여 생성한다. 본 회로(10)에서는, test_stb신호(104)의 주기를 미리 결정해 두면, 블록(12)이, test_sin신호(102)를 확실하게 추출할 수 있는 타이밍을 미리 결정해 둘 수 있다.
직렬I/F블록(12)은, 이와 같이 High레벨로 한 strobe신호(112)를 Low레벨로 할 때, strobe_interval(110)을 0으로 설정하여 다시 클록 신호(108)에 따라 카운트시키고, 2부터 3으로 변화되는 타이밍에 strobe신호(112)를 다시 1클록만 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)은, 내부신호로서 0부터 4까지의 5비트 폭을 가지는 strobe수[4:0](114)를 가져도 된다.
직렬I/F블록(12)은, strobe신호(112)를 High레벨로 할 때마다, test_sin신호(102)의 1비트의 데이터를 본 회로(10)의 내부 레지스터에 보내, strobe수(114)의 값에 따른 레지스터 위치에 기록하는 것으로, 본 실시예에서는, test_sin신 호(102)가 나타내는 패킷 타입(116)을 패킷 타입 레지스터(14)에, 엔드리스 플래그(118)를 엔드리스 플래그 레지스터(16)에, 및 송신 바이트수(120)를 송신 바이트수 레지스터(18)에 각각 보낸다.
본 실시예에 있어서, 패킷 타입 레지스터(14), 엔드리스 플래그 레지스터(16) 및 송신 바이트수 레지스터(18)는, 각각, 0부터 2까지의 3비트 폭을 가지는 패킷 타입[2:0](116), 1비트의 엔드리스 플래그(118) 및 0부터 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)가 출력하는 1비트의 송신 데이터마다 패턴 카운트 신호(126)를 결정한다. 본 실시예의 카운터(32)는, 내부신호로서 0부터 5까지의 6비트 폭을 가지는 패턴 카운트 신호[5:0](126)를 가지는 것이면 된다.
데이터 패턴 생성 블록(20)은, 본 회로(10)가 출력하는 송신 데이터의 하위 데이터 및 상위 데이터의 각각 대응하여, 0부터 7까지의 8비트 폭을 가지는 하위 데이터 패턴과, 8부터 15까지의 8비트 폭을 가지는 상위 데이터 패턴을 데이터 패턴(124)으로서 생성해도 된다. 이 블록(20)은, 하위 데이터 및 상위 데이터의 각각에 관한 유효 타이밍 신호(130)에 따라 하위 데이터 패턴 및 상위 데이터 패턴을 생성해도 좋다.
이 데이터 패턴 생성 블록(20)은, 출력하는 패킷의 사이즈에 따라 데이터 패턴(124)을 결정해도 되며, 1바이트의 ACK패킷을 출력하는 경우에는 하위 데이터 패턴만을 생성하고, 2바이트 이상의 패킷인 경우에는 하위 및 상위 데이터 패턴의 양쪽을 생성할 수 있다.
또한 데이터 패턴 생성 블록(20)이, 패킷간 타이밍 생성 블록(26)으로부터 High레벨의 반복 신호(132)를 입력하면, 카운터(32)는, 다음 송신 데이터로 인해 패턴 카운트 신호(126)를 0으로 초기화한다. 이것에 의해, 카운터(32)가 반복 신호(132)에 따라 클록 신호(108)의 카운트를 반복하여 패턴 카운트 신호(126)를 새롭게 생성하고, 블록(20)은, 다음 송신 데이터를 위한 데이터 패턴(124)을 생성한다.
송신 데이터 송출 블록(22)은, 데이터 패턴 생성 블록(20)으로부터 공급되는 데이터 패턴(124)에 의거하여 송신 데이터(134)를 생성하고, 본 실시예에서는, 셀렉터(34)가 패킷 타입(122) 및 데이터 패턴(124)에 근거하는 송신 데이터(134)를 결정한다. 송출 블록(22)은, 0부터 15까지의 16비트 폭을 가지는 송신 데이터[15:0](134)를 생성하는 것이면 된다.
이 송신 데이터 송출 블록(22)은, 유효 타이밍 신호(130)에 따른 타이밍으로 송신 데이터(134)를 UMTI I/F로 송출하는 것으로, 본 실시예에서는, High레벨의 유효 타이밍 신호(130)에 따라, 측정 대상 패킷인 송신 데이터(134)를 PHY(54)측의 UTMI I/F를 통해 PHY(54)에 출력한다.
또한 송신 데이터 송출 블록(22)은, 예를 들면, 하위 데이터 패턴 및 상위 데이터 패턴의 각각의 데이터 패턴(124)을 얻어, 각각에 관한 유효 타이밍 신호(130)에 따라 1개의 송신 데이터(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)은, 내부신호로서 0부터 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)에 동기하여 카운트다운 하고, 0이 되면 유효 타이밍 신호(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)를 1클록만 High레벨로 하여 출력한다.
카운터(38)는, 예를 들면, 유효 타이밍 생성 블록(24)으로부터 High레벨의 interval_enable신호(142)를 입력하면 interval_count(144)의 카운트 업을 시작하고, Low레벨의 interval_enable신호(142)를 입력하면 interval_count(144)를 초기 화하는 것이면 된다. 이 카운터(38)는, 내부신호로서 0부터 15까지의 16비트 폭을 가지는 interval_count[15:0](144)를 가지면 된다.
다음에 본 실시예에 있어서의 USB 테스트 회로(10)에 대해서, 전송 속도 모드가 Full Speed일 경우의 신호 품질을 관측하기 위해 ACK패킷을 생성 및 출력하는 동작을 도 3 또는 도 6의 타이밍 차트를 참조하면서 설명한다. 이들의 도 3, 도 4, 도 5, 도 6은, 순차 연속한 타이밍 차트이다.
본 실시예의 본 회로(10)에서는, 우선, 도 3에 나타내는 바와 같이 30MHz의 클록 신호(108)가 입력하여 각 부가 동작하고, 또 High레벨의 리셋트 신호(106)가 입력하여 각부의 내부신호 등의 값을 모두 초기화한다.
또한 본 회로(10)에서는, test_sin신호(102) 및 test_stb신호(104)의 테스트 신호가 외부로부터 직렬I/F를 통해 직렬I/F블록(12)에 입력한다. 여기에서는, 68클록 분의 길이의 test_sin신호(102)가, 시각 t202부터 시각 t222까지 동안 입력하며, 그 내용은, 패킷 타입이 ACK패킷을 나타내고, 엔드리스 플래그가 반복을 나타내고, 송신 바이트수가 1바이트를 나타낸다.
이 블록(12)에서는, 예를 들면 test_stb신호(104)가 항상 감시되어, 시각 t202에 있어서, High레벨의 test_stb신호(104)가 비로소 검출되면, 그 수 클록 후, 본 실시예에서는 2클록후의 시각 t204에, strobe신호(112)가 1클록 분만 High레벨이 된다.
이 strobe신호(112)가 Low레벨로 바뀌면, strobe_interval(110)이 클록 신호(108)에 동기하여 0부터 3까지 카운트 업 되고, 이 strobe_interval(110)이 2부 터 3이 되는 시각 t206에 있어서, strobe신호(112)가 다시 1클록 분만 High레벨이 된다.
이와 같이, strobe신호(112)의 변화에 따라, strobe_interval(110)의 카운트 업이 반복되고, 그 때마다, strobe신호(112)이 High레벨이 되며, 또한 strobe신호(112)가 Low레벨이 될 때마다, strobe신호(112)의 수가 strobe수(114)로서 카운트된다.
또한 strobe신호(112)가 Low레벨이 되면, 이 때에 직렬I/F블록(12)에 입력하는 1비트의 test_sin신호(102)가 내부 레지스터에 보내지고, 그 때의 strobe수(114)에 따른 레지스터 위치에 기록된다.
본 실시예에서는, 시각 t208에 있어서, test_sin신호(102)의 3비트째의 데이터가 입력되며, 이 1비트의 데이터(116)는 패킷 타입의 일부를 나타내는 것으로, 그 때의 strobe수(114)와 함께 패킷 타입 레지스터(14)에 보내진다. 이 레지스터(14)에 있어서, 그 비트 데이터(116)는, strobe수(114)에 따른 레지스터 위치에 기록된다.
마찬가지로 하여, 시각 t210 및 t212에 있어서, test_sin신호(102)의 4 및 5비트째의 데이터가 패킷 타입의 일부를 나타내는 데이터(116)로서 패킷 타입 레지스터(14)에 보내지고, 각각의 strobe수(114)에 따른 레지스터 위치에 기록된다. 이와 같이하여, 0부터 2까지의 3비트 폭을 가지는 패킷 타입(116)이 레지스터(14)에 래치된다.
또한 시각 t214에 있어서, test_sin신호(102)의 6비트째의 데이터가 입력되 고, 이것은 1비트의 엔드리스 플래그(118)이며, 그 때의 strobe수(114)와 함께 엔드리스 플래그 레지스터(16)에 보내진다. 이 레지스터(16)에 있어서, 엔드리스 플래그(118)는, strobe수(114)에 따른 레지스터 위치에 기록된다.
또한, 시각 t216에 있어서, test_sin신호(102)의 7비트째의 데이터가 입력되고, 이 1비트의 데이터(120)는 송신 바이트수의 일부를 나타내는 것으로, 그 때의 strobe수(114)와 함께 송신 바이트수 레지스터(18)에 보내진다. 이 레지스터(18)에 있어서, 그 비트 데이터(120)는, strobe수(114)에 따른 레지스터 위치에 기록된다.
같은 방법으로, 시각 t218부터 시각 t220까지 동안, strobe신호(112)가 Low레벨이 될 때마다, test_sin신호(102)로부터 1비트의 데이터가 얻어지고, 각각 송신 바이트수의 일부를 나타내는 데이터(120)로서 송신 바이트수 레지스터(18)에 보내져, 각각의 strobe수(114)에 따른 레지스터 위치에 기록된다. 여기에서는, 시각 t218부터 시각 t220까지 동안, strobe신호(112)는 10회 Low레벨이 되며, 즉 8∼17비트째의 데이터가 얻어진다. 이와 같이하여, 0부터 10까지의 11비트 폭을 가지는 송신 바이트수(120)가 레지스터(18)에 래치된다.
또한 본 실시예의 직렬I/F블록(12)에 있어서, strobe신호(112)는, 미리 결정된 소정의 strobe회수, 여기에서는 18회만 High레벨이 되어, 시각 t224에서 18회째의 strobe신호(112)가 Low레벨이 되고, strobe 수(114)가 18회가 된다.
그러나, 도 5에 나타내는 바와 같이, 직렬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레벨이 된다. 여기에서는, 1바이트의 ACK패킷을 출력하므로, 송신 데이터 중 하위 비트 데이터에 작용하는 하위 유효 타이밍 신호만이 High레벨이 된다.
이 High레벨의 유효 타이밍 신호(130)는, 데이터 패턴 생성 블록(20) 및 송신 데이터 송출 블록(22)에 공급된다.
그 후에 시각 t226에 있어서, 이 생성 블록(20)에서는, 송신 허가 신호(128)가 Low레벨이므로, 카운터(32)의 패턴 카운트 신호(126)가 카운트되지 않고, 0 값의 데이터 패턴(124)이 송출 블록(22)에 공급된다. 따라서, 송출 블록(22)에서는, 이 데이터 패턴(124)과 ACK패킷을 나타내는 패킷 타입(122)에 따라, 셀렉터(34)에서 0의 값의 ACK패킷(134)이 생성되어서 출력된다.
다음에 시각 t228에 있어서 송신 허가 신호(128)가 High레벨이 되면, 유효 타이밍 생성 블록(24)의 카운터(36)에서는, 송신 바이트수(136)가 클록 신호(108) 에 따라 0이 될 때까지 카운트다운 되고, 본 실시예에서는, 송신 바이트수(136)가 1바이트이므로, 1클록 후의 시각 t230에서 0이 된다.
또한 시각 t228에서는, 데이터 패턴 생성 블록(20)의 카운터(32)에 있어서, High레벨의 유효 타이밍 신호(130) 및 송신 허가 신호(128)에 따라 카운트가 시작 하고, 그 카운트 값을 나타내는 패턴 카운트 신호(126) 및 ACK패킷을 나타내는 패킷 타입(122)에 따른 데이터 패턴(124)이 셀렉터(30)에서 얻어진다.
여기에서는, 하위 유효 타이밍 신호만이 High레벨이므로, 하위 데이터 패턴만이 얻어지고, 0을 나타내는 상위 데이터 패턴과 함께 데이터 패턴(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에서 0이 되면, 유효 타이밍 신호(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)가 1부터 순차적으로 카운트된다. 이 interval_count(144)가 시각 t232에서 소정의 패킷 간격에 도달하면, 반복 신호(132)가 1클록만 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호스트 장치에 송신하는 동작을 도 7의 시퀀스 차트를 참조하여 간단히 설명한다.
도 7에 나타내는 바와 같이, USB 테스트 회로(10)에 있어서, test_sin신호나 test_stb신호 등의 테스트 신호에 따라 ACK패킷이 생성되면, 본 회로(10)가 탑재되는 USB장치의 USB PHY(54)에 출력되고, 또한 USB I/F를 통해 USB호스트 장치에 송신된다.
이와 같이, 본 회로(10)에서는, 신호 품질의 측정 대상이 아닌 패킷을 수신하지 않고, ACK패킷을 출력할 수 있으며, 불필요 패킷의 수신 시간이 생략된다.
또한 본 발명의 USB 테스트 회로(10)에서는, 도 7에 나타내는 바와 같이 ACK패킷의 생성 및 출력이 반복되어도, 측정 대상이 아닌 패킷을 수신하지 않으므로, 테스트 시간을 효과적으로 단축할 수 있다.
본 실시예의 USB 테스트 회로(10)에서는, test_sin신호(102)로부터 동작 모드에 관한 정보를 추출하여 설정하기 위해서 68클록을 필요로 하지만, USB PHY(54)에서는, 리셋트나 터미네이션 저항의 캘리브레이션 등의 초기화처리가 행해져, 이 처리에 수십μsec∼수msec을 필요로 하고, 본 회로(10)에 있어서의 동작 모드 정보설정은, PHY(54)에 있어서의 초기화 처리와 평행 동작할 수 있기 때문에, 여분인 테스트 시간으로는 간주되지 않는다.
다음에 본 실시예에 있어서의 USB 테스트 회로(10)에 대해서, 전송 속도 모드가 High Speed일 경우의 신호 품질을 관측하기 위해 테스트 패킷을 생성 및 출력하는 동작을 도 8 및 도 11의 타이밍 차트를 참조하면서 설명한다. 이들의 도 8, 도 9, 도 10, 도 11은, 순차 연속한 타이밍 차트이다.
여기에서, 입력하는 test_sin신호(102)는, 패킷 타입이 테스트 패킷을 나타내고, 엔드리스 플래그가 반복을 나타내고, 송신 바이트수가 56바이트를 나타낸다. 이것들이 패킷 타입 레지스터(14), 엔드리스 플래그 레지스터(16) 및 송신 바이트수 레지스터(18)에 유지될 때까지의 동작은, 도 3 및 도 4를 참조하여 설명한 실시예와 동일하므로, 여기에서는 생략한다.
도 8에 나타내는 바와 같이 우선, 본 실시예의 직렬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)에 따라 0이 될 때까지 카운트다운 되지만, 본 실시예에서는, 그 중간의 시각 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)가 0이 되고, 유효 타이밍 신호(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)가 1클록만 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까지의 동작과 같은 방법으로, 도 10에 나타내는 바와 같이 시각 t266∼t268까지의 기간에 있어서, 유효 타이밍 생성 블록(24)의 카운터(36)에서는 송신 바이트수(136)의 카운트다운이 행해지고, 데이터 패턴 생성 블록(20)에서는 카운터(32)에 있어서의 패턴 카운트 신호(126)의 생성 및 셀렉터(30)에 있어서의 데이터 패턴(124)의 생성이 행해지고, 송신 데이터 송출 블록(22)에서는 셀렉터(34)에 있어서의 송신 데이터(134)의 생성이 행해진다.
그 후에 반복을 나타내는 엔드리스 플래그(140)에 따라, 시각 t262∼t268까지의 동작이 반복된다.
또한 본 실시예에 있어서의 USB 테스트 회로(10)가 생성한 테스트 패킷을 USB호스트 장치에 송신하는 동작을 도 12의 시퀀스 차트를 참조하여 간단히 설명한다.
도 8에 나타내는 바와 같이 USB 테스트 회로(10)에 있어서, test_sin신호나 test_stb신호 등의 테스트 신호에 따라 테스트 패킷이 생성되면, 본 회로(10)가 탑재되는 USB장치의 USB PHY(54)에 출력되고, 또한 USB I/F를 통해 USB호스트 장치에 송신된다.
이와 같이, 본 회로(10)에서는, 신호 품질의 측정 대상이 아닌 패킷을 수신하지 않고, 테스트 패킷을 출력할 수 있으며, 불필요 패킷의 수신 시간이 생략된다.
또한 본 발명의 USB 테스트 회로(10)에서는, 도 8에 나타내는 바와 같이 테스트 패킷의 생성 및 출력이 반복되어도, 측정 대상이 아닌 패킷을 수신하지 않으므로, 테스트 시간을 효과적으로 단축할 수 있다.
도 1은 본 발명의 USB 테스트 회로의 일 실시예를 나타내는 블럭도이다.
도 2는 도 1에 나타낸 USB 테스트 회로가 적용되는 시스템 LSI를 개략적으로 나타내는 블럭도이다.
도 3은 도 1에 나타낸 USB 테스트 회로의 Full Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 4는 도 1에 나타낸 USB 테스트 회로의 Full Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 5는 도 1에 나타낸 USB 테스트 회로의 Full Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 6은 도 1에 나타낸 USB 테스트 회로의 Full Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 7은 도 1에 나타낸 USB 테스트 회로에 의한 ACK패킷 출력의 동작 순서를 설명하는 시퀀스 차트이다.
도 8은 도 1에 나타낸 USB 테스트 회로의 High Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 9는 도 1에 나타낸 USB 테스트 회로의 High Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 10은 도 1에 나타낸 USB 테스트 회로의 High Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 11은 도 1에 나타낸 USB 테스트 회로의 High Speed모드 시의 동작 순서를 설명하는 타이밍 차트이다.
도 12는 도 1에 나타낸 USB 테스트 회로에 의한 테스트 패킷 출력의 동작 순서를 설명하는 시퀀스 차트이다.
[부호의 설명]
10 : USB 테스트 회로 12 : 직렬 I/F블록
14 : 패킷 타입 레지스터 16 : 엔드리스 플래그 레지스터
18 : 송신 바이트 수 레지스터 20 : 데이터 패턴 생성 블록
22 : 송신 데이터 송출 블록 24 : 유효 타이밍 생성 블록
26 : 패킷간 타이밍 생성 블록 30 : 패턴 셀렉터
32,36,38 : 카운터 34 : 셀렉터

Claims (12)

  1. USB(Universal Serial Bus)기능을 가지는 USB장치에 탑재되어, 상기 USB기능을 테스트하는 USB 테스트 회로에 있어서,
    상기 회로는,
    상기 회로의 동작 모드 정보를 포함하는 테스트 신호를 외부기기로부터 입력하는 입력 수단과,
    신호 품질의 테스트용의 측정 대상 패킷을 생성하여 출력하는 생성 수단과,
    상기 생성 수단은, 상기 입력 수단에 입력된 상기 동작 모드 정보에 따라 상기 측정 대상 패킷을 생성하는 것을 특징으로 하는 USB 테스트 회로.
  2. 제 1항에 있어서,
    상기 생성 수단은, 상기 측정 대상 패킷을 UTMI(USB2.0 Transceiver Macrocell Interface)I/F를 통해 상기 USB장치의 물리층에 출력하는 것을 특징으로 하는 USB 테스트 회로.
  3. 제 1항에 있어서,
    상기 USB장치는, 복수의 전송 속도 모드 중 어느 하나를 선택하여 동작하는 것이며,
    상기 생성 수단은, 상기 USB장치에서 선택된 상기 전송 속도 모드에 따른 상기 측정 대상 패킷을 생성하는 것을 특징으로 하는 USB 테스트 회로.
  4. 제 3항에 있어서,
    상기 복수의 전송 속도 모드는, Full Speed, Low Speed 및 High Speed인 것을 특징으로 하는 USB 테스트 회로.
  5. 제 3항에 있어서,
    상기 생성 수단은,
    여러 가지의 데이터 패턴을 미리 정해 두고, 상기 동작 모드 정보에 따라 상기 데이터 패턴을 선택하고, 상기 선택한 데이터 패턴에 따라 상기 측정 대상 패킷을 생성하는 것을 특징으로 하는 USB 테스트 회로.
  6. 제 3항에 있어서,
    상기 생성 수단은, 상기 측정 대상 패킷의 1비트의 데이터마다, 상기 데이터 패턴을 선택하는 것을 특징으로 하는 USB 테스트 회로.
  7. 제 1항에 있어서,
    상기 입력 수단은, 상기 테스트 신호를 상기 외부기기로부터 직렬 입력하는 것을 특징으로 하는 USB 테스트 회로.
  8. 제 1항에 있어서,
    상기 입력 수단은, 생성을 원하는 측정 대상 패킷의 패킷 타입을 포함하는 상기 동작 모드 정보를 입력하는 것을 특징으로 하는 USB 테스트 회로.
  9. 제 1항에 있어서,
    상기 입력 수단은, 측정 대상 패킷의 생성 및 출력을 반복할 지 여부를 나타내는 엔드리스 플래그를 포함하는 상기 동작 모드 정보를 입력하는 것을 특징으로 하는 USB 테스트 회로.
  10. 제 1항에 있어서,
    상기 입력 수단은, 생성을 원하는 측정 대상 패킷의 1패킷당 송신 바이트수 를 포함하는 상기 동작 모드 정보를 입력하는 것을 특징으로 하는 USB 테스트 회로.
  11. 제 1항에 있어서,
    상기 입력 수단은, 상기 동작 모드 정보의 각 비트 데이터에 동기하는 타이밍 신호를 포함하는 테스트 신호를 입력하고, 상기 타이밍 신호에 따른 타이밍으로서, 상기 USB장치에 있어서의 클록 신호에 동기하는 타이밍이며, 상기 동작 모드 정보의 각 비트 데이터를 추출하는 것을 특징으로 하는 USB 테스트 회로.
  12. 제 1항에 있어서,
    상기 USB장치는, 시스템 LSI(Large Scale Integration)인 것을 특징으로 하는 USB 테스트 회로.
KR1020070089296A 2006-09-29 2007-09-04 Usb 테스트 회로 KR20080030472A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2006-00266655 2006-09-29
JP2006266655A JP4422134B2 (ja) 2006-09-29 2006-09-29 Usbテスト回路

Publications (1)

Publication Number Publication Date
KR20080030472A true KR20080030472A (ko) 2008-04-04

Family

ID=39255850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070089296A KR20080030472A (ko) 2006-09-29 2007-09-04 Usb 테스트 회로

Country Status (4)

Country Link
US (1) US8099633B2 (ko)
JP (1) JP4422134B2 (ko)
KR (1) KR20080030472A (ko)
CN (1) CN101154177B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI413905B (zh) * 2010-03-24 2013-11-01 Inventec Corp 通用序列匯流排埠測試裝置
CN102866946A (zh) * 2012-08-15 2013-01-09 深圳市同洲电子股份有限公司 读写功能的测试方法及设备
TWI498577B (zh) * 2013-12-12 2015-09-01 Inventec Corp 差分信號測試系統及其方法
CN105511997A (zh) * 2014-09-26 2016-04-20 神讯电脑(昆山)有限公司 Usb3.0接口测试用治具
US9684578B2 (en) * 2014-10-30 2017-06-20 Qualcomm Incorporated Embedded universal serial bus (USB) debug (EUD) for multi-interfaced debugging in electronic systems
CN105700981A (zh) * 2014-11-28 2016-06-22 神讯电脑(昆山)有限公司 测试用u盘
US10339093B2 (en) * 2016-03-29 2019-07-02 Intel Corporation USB interface using repeaters with guest protocol support
CN109388528A (zh) * 2017-08-04 2019-02-26 神讯电脑(昆山)有限公司 Usb测试方法及usb装置的测试治具
US10402288B2 (en) * 2017-10-12 2019-09-03 Getac Technology Corporation USB-testing method and testing fixture board for USB device
JP7259371B2 (ja) * 2019-02-05 2023-04-18 セイコーエプソン株式会社 回路装置および電子機器
CN110471812A (zh) * 2019-07-23 2019-11-19 广东以诺通讯有限公司 一种usb和串口调试复用的方法
JP7139486B1 (ja) * 2021-04-27 2022-09-20 富士通クライアントコンピューティング株式会社 拡張装置、プログラムおよび情報処理システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09127199A (ja) * 1995-10-30 1997-05-16 Toshiba Corp 論理回路及びその試験方法
JP3409749B2 (ja) * 1999-09-09 2003-05-26 エヌイーシーマイクロシステム株式会社 Usbファンクションの評価装置及びその方法
JP3750467B2 (ja) 2000-02-28 2006-03-01 横河電機株式会社 Usbシミュレーション装置、及び、記憶媒体
DE60135735D1 (de) * 2000-04-05 2008-10-23 Nxp Bv Verfahren und prüfschnittstelle zum überprüfen von digitalschaltungen
US6629169B2 (en) * 2001-03-14 2003-09-30 Winband Electronics Corp. Apparatus and method for testing of USB device
JP3952780B2 (ja) * 2002-01-09 2007-08-01 株式会社日立製作所 信号送受信装置、回路、およびループバックテスト方法
DE10239814B4 (de) * 2002-08-29 2008-06-05 Advanced Micro Devices, Inc., Sunnyvale Erweiterte Testmodusunterstützung für Hostcontroller
JP3632692B2 (ja) 2003-01-30 2005-03-23 セイコーエプソン株式会社 テスト回路、集積回路及びテスト方法
JP3632691B2 (ja) * 2003-01-30 2005-03-23 セイコーエプソン株式会社 テスト回路、集積回路及びテスト方法
US20050097403A1 (en) * 2003-10-20 2005-05-05 Ker-Min Chen USB interface and testing method thereof
US7587202B2 (en) * 2004-09-07 2009-09-08 Research In Motion Limited Method for conducting digital interface and baseband circuitry tests using digital loopback
KR100849223B1 (ko) * 2006-07-27 2008-07-31 삼성전자주식회사 Usb 장치 테스트 방법 및 그 시스템
JP5096024B2 (ja) * 2007-03-19 2012-12-12 株式会社リコー Usbコントローラ及びusbコントローラ試験方法
CN101599035A (zh) * 2008-06-05 2009-12-09 鸿富锦精密工业(深圳)有限公司 Usb端口测试装置及方法

Also Published As

Publication number Publication date
JP4422134B2 (ja) 2010-02-24
CN101154177B (zh) 2012-02-08
US8099633B2 (en) 2012-01-17
US20080082286A1 (en) 2008-04-03
JP2008084273A (ja) 2008-04-10
CN101154177A (zh) 2008-04-02

Similar Documents

Publication Publication Date Title
KR20080030472A (ko) Usb 테스트 회로
KR101297513B1 (ko) 범용 프로토콜 엔진
US6006343A (en) Method and apparatus for streamlined testing of electrical circuits
EP0388001B1 (en) Testing method and apparatus for an integrated circuit
EP1129408B1 (en) Microcomputer with test instruction memory
US6684362B1 (en) Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2 c bus
CN104504187B (zh) 一种基于串行通信接口的fpga在线验证结构和方法
US20030035473A1 (en) Self test circuit for evaluating a high-speed serial interface
US7149927B2 (en) Use of SMBus to provide JTAG support
JP4426655B2 (ja) トリガシーケンシングコントローラ
US6978322B2 (en) Embedded controller for real-time backup of operation states of peripheral devices
KR100230451B1 (ko) 디지털 신호처리 프로세서의 비동기방식 직렬데이터 송수신 방법
EP2704363A2 (en) Transmitting device, transceiver system, and control method
US5271015A (en) Self-diagnostic system for semiconductor memory
US20060294444A1 (en) Apparatus and method for testing PS/2 interface
US20160282408A1 (en) Integrated Circuit Including a Programmable Logic Analyzer with Enhanced and Debugging Capabilities and a Method Therefor
JP4806747B2 (ja) シリアライザ/デシリアライザ・バスコントローラ・インターフェース
US6374372B1 (en) Method of checking parallel port of personal computer using loopback
US7421637B1 (en) Generating test input for a circuit
CN111813616B (zh) 一种基于测试台的多端口uart通用功能测试方法
CN111796977B (zh) 一种基于测试台的多端口uart功能测试方法
CN113505094B (zh) Mcu、主机与多个mcu传输数据的方法
KR101031641B1 (ko) 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법
CN113645093A (zh) 一种待测设备、开发调试系统和通信方法
Ramos et al. A centronics based transducer independent interface (TII) fully compliant with 1451.2 Std.

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid