KR101874416B1 - 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션 - Google Patents

주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션 Download PDF

Info

Publication number
KR101874416B1
KR101874416B1 KR1020167021869A KR20167021869A KR101874416B1 KR 101874416 B1 KR101874416 B1 KR 101874416B1 KR 1020167021869 A KR1020167021869 A KR 1020167021869A KR 20167021869 A KR20167021869 A KR 20167021869A KR 101874416 B1 KR101874416 B1 KR 101874416B1
Authority
KR
South Korea
Prior art keywords
usb
delete delete
emulating
test
eup
Prior art date
Application number
KR1020167021869A
Other languages
English (en)
Other versions
KR20160108456A (ko
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
Priority claimed from US14/213,472 external-priority patent/US9811480B2/en
Priority claimed from US14/213,620 external-priority patent/US9772956B2/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20160108456A publication Critical patent/KR20160108456A/ko
Application granted granted Critical
Publication of KR101874416B1 publication Critical patent/KR101874416B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

유니버셜 시리얼 버스 디바이스를 에뮬레이트하기 위한 시스템 및 방법이 개시된다. 예시적 실시예는 USB 연결의 호스트 측 또는 물리적 USB 주변기기들을 에뮬레이트할 수 있는 에뮬레이트된 USB(EUP) 디바이스를 포함할 수 있다. 이 디바이스는 다수의 USB 프로파일들을 지원함으로써 복수의 물리적 USB 주변 디바이스들을 에뮬레이트하도록 소프트웨어로 프로그래밍가능한 마이크로컨트롤러를 가질 수 있다. 특정 물리적 USB 주변 디바이스를 에뮬레이트하기 위해서, EUP 디바이스는 에뮬레이트되는 특정 물리적 USB 주변 디바이스와 관련된 디바이스 식별자들을 포함하는 디스크립터들을 수신할 수 있다. USB 디바이스의 호스트 연결을 에뮬레이트하기 위해서, EUP 디바이스는 에뮬레이션 프로세스로 USB 호스트 모드 버스 신호들을 구성하고, 버스 상에서 USB 프레임들을 개시하고, 디바이스 상태를 에뮬레이션 프로세스로 표시하고, 그리고 디바이스와 에뮬레이션 프로세스 사이에서 패킷들을 중계할 수 있다.

Description

주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션{UNIVERSAL SERIAL BUS EMULATION OF PERIPHERAL DEVICES}
[0001] 컴퓨팅 디바이스들은 컴퓨팅 디바이스들과 주변 디바이스들 사이의 통신 프로토콜들을 정의하는 산업 표준인 USB(Universal Serial Bus)를 통해 마우스들, 키보드들, 프린터들, 스피커들, 스캐너들, 마이크로폰들 및 웹 카메라들과 같은 주변 디바이스들과 연결될 수 있다. USB에 있어서, 호스트 컴퓨팅 디바이스(105)는 USB 디바이스들(107)이 호스트 컴퓨팅 디바이스(105)에(또는 상에) 연결된 USB 포트에 부착되거나 또는 이로부터 제거되는 경우, USB 디바이스들(107)의 상태를 식별 및 관리하기 위해서 버스 이뉴머레이션(enumeration) 프로세스를 사용한다. 호스트/디바이스 관계가 도 1a에 도시된다. 각각의 디바이스(107)는 이뉴머레이션 프로세스에서 일련의 디스크립터 메시지들을 사용하여 자기 자신을 식별한다. 디스크립터 메시지들은 잘 정의된 프로토콜을 사용하며, 도 1b에 도시되는 바와 같이(101), USB 분석기를 사용하여 레코딩될 수 있다. 도 1b는 통신하기 위해서 USB 디바이스와 호스트 컴퓨팅 디바이스 사이에서 전송되는 다양한 커맨드들을 도시한다. 전형적으로, 디바이스 디스크립터는 디바이스 ID, 스트링들 및 보고 디스크립터들을 포함한다. 예시적 디바이스 디스크립터가 도 4a에 도시된다(401). 추가 메시지들은 디바이스들의 입력, 출력들 및 상태들을 정의할 수 있다.
[0002] POS(point of sale) 시스템들과 같은 많은 종래의 컴퓨팅 시스템들은 적절하게 기능하기 위해 다수의 USB 주변 디바이스들을 요구한다. 예를 들어, 컴퓨팅 시스템들은 USB 키보드, USB 마우스 및 USB 스캐너/프린터를 포함할 수 있다. 컴퓨팅 시스템 및 모든 주변 디바이스들과의 상호작용들을 테스트하는 것 및 컴퓨팅 시스템이 정확하게 작동하고 있는지 여부를 결정하는 것은 중요하다. 이 시스템들은 USB 디바이스/호스트 상호작용을 테스트하기 위해서 USB 디바이스와 컴퓨팅 디바이스 사이의 물리적 연결을 요구할 수 있다.
[0003] 테스트들은 테스트 중인 컴퓨팅 디바이스 또는 시스템이 주변기기들에 대해 어떻게 응답하는지를 확인(verify)하고, 또한, 특정 주변기기들을 요구하는 애플리케이션들 및/또는 시스템들이 적절하게 기능함을 확인하여야 한다. 주변기기들과의 시스템의 상호작용을 테스트 및 확인하기 위해서, 시스템에 연결될 수 있는 각각의 주변 디바이스에 대한 수동적 데이터 입력 및 확인(verification) 프로시저들을 수행하는 것이 관례적이다. 각각의 디바이스는 고유한 USB 식별들을 통해 자기 자신을 제시하고 단순한 일반적 인터페이스 테스팅은 각각의 디바이스의 특정 특징들을 확인하지 않기 때문에, 각각의 디바이스에 대해 수동적 입력이 요구된다. 게다가, 특수 키보드들과 같은 특정 USB 주변기기들을 요구하는 시스템 또는 애플리케이션을 테스트하는 경우, 전체 시스템을 사용하여 수동적 테스팅 및 검증(validation)을 수행하는 것이 관례적이다. 이 테스팅 방법들은 에러들이 있기 쉬우며, 정확도를 보장하기 위해서 반복될 필요가 있을 수 있다.
[0004] 발명자들에 의해 인지되는 바와 같이, 에러들을 최소화하고 정확도를 보장하면서, 테스트될 시스템들에서 주변 디바이스들을 자동으로 에뮬레이트하기 위한 방식이 존재하여야 한다.
[0005] 본 명세서는 일반적으로 컴퓨팅 시스템들 내에서 USB 주변 디바이스 상호작용을 테스트하는 것과, 구체적으로, 컴퓨팅 디바이스들 및/또는 시스템들을 테스트하는 경우 다수의 USB 주변기기들을 에뮬레이트할 수 있는 방법들 및 시스템들에 관한 기술들을 설명한다. 본 명세서는 또한, 일반적으로 컴퓨팅 시스템들 내에서 USB 하드웨어 디바이스 상호작용을 테스트하는 것과, 구체적으로, 컴퓨팅 디바이스들 및/또는 시스템들을 테스트하는 경우 다수의 USB 호스트 연결들을 에뮬레이트할 수 있는 방법들 및 시스템들에 관한 기술들을 설명한다.
[0006] 일반적으로, 본 명세서에서 설명되는 청구 대상의 하나의 양상은 컴퓨팅 시스템에서 물리적 주변 디바이스를 에뮬레이트하는 에뮬레이팅 USB(universal serial bus) 하드웨어 디바이스 및 주변 디바이스 상호작용을 테스트하기 위한 컴퓨팅 시스템으로 구현될 수 있다.
[0007] 예시적 에뮬레이팅 USB 하드웨어 디바이스는: 구성 디스크립터들을 저장하기 위한 메모리; 시리얼 인터페이스 칩으로의 USB; 및 다수의 USB 프로파일들을 지원함으로써 복수의 물리적 USB 주변 디바이스들을 에뮬레이트하도록 소프트웨어로 프로그래밍가능한 USB 서포트를 갖는 하나 이상의 마이크로컨트롤러들을 포함한다. 하나 이상의 마이크로컨트롤러들은, 에뮬레이트되는 특정 물리적 USB 주변 디바이스와 관련된 디바이스 식별자들을 포함하는 특정 디스크립터들을 수신함으로써 특정 물리적 USB 주변 디바이스를 에뮬레이트하고; USB 프로토콜에 의해, 테스트 중인 컴퓨팅 디바이스에 대해 응답하고; 그리고 제 2 프로토콜을 사용하여, 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트하는 테스트 실행기(test executor) 컴퓨팅 디바이스와 통신하도록 구성된다.
[0008] 예시적 컴퓨팅 시스템은: 테스팅 프레임워크, 디바이스 에뮬레이션 및 에뮬레이팅 USB 하드웨어 디바이스 통신 드라이버들을 실행시키도록 구성되는 테스트 실행기 컴퓨팅 디바이스; 테스트 중인 컴퓨팅 디바이스; 및 다수의 USB 프로파일들을 지원함으로써 복수의 물리적 USB 주변 디바이스들을 에뮬레이트하고, 테스트 중인 컴퓨팅 디바이스와 제 1 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트(simulate)하도록 소프트웨어로 프로그래밍가능한 적어도 하나의 에뮬레이팅 USB(universal serial bus) 하드웨어 디바이스를 포함한다. 적어도 하나의 에뮬레이팅 USB 하드웨어 디바이스는 에뮬레이트되는 특정 물리적 USB 주변 디바이스와 관련된 디바이스 식별자들을 포함하는 특정 디스크립터들을 수신함으로써 특정 물리적 USB 주변 디바이스를 에뮬레이트하고; USB 프로토콜에 의해, 테스트 중인 컴퓨팅 디바이스에 대해 응답하고; 그리고 제 2 프로토콜을 사용하여, 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트하는 테스트 실행기 컴퓨팅 디바이스와 통신하도록 구성된다.
[0009] 이러한 그리고 다른 실시예들은 다음의 특징들 중 하나 이상의 특징들을 선택적으로 포함할 수 있다. 하나 이상의 마이크로컨트롤러들은, 테스트 실행기 컴퓨팅 디바이스와 상호작용하는 디바이스 에뮬레이션 애플리케이션을 실행시키도록 구성될 수 있으며, 에뮬레이팅 USB 하드웨어 디바이스가 마이크로컨트롤러 상에 저장되는 펌웨어를 재기록하지 않고 상이한 물리적 USB 주변 디바이스를 에뮬레이트하도록 테스트 실행기 컴퓨팅 디바이스에 의해 재구성되게 허용한다. 하나 이상의 마이크로컨트롤러들은 특정 물리적 USB 주변 디바이스 또는 에뮬레이트된 USB 하드웨어 디바이스 중 어느 하나를 테스트 중인 컴퓨팅 디바이스에 연결시키도록, 스위칭 디바이스의 상태를 지시하는 제어 신호를 세팅하기 위한 소프트웨어 커맨드를 수신하도록 구성될 수 있다. 예시적 하드웨어 디바이스는 에뮬레이팅 USB 하드웨어 디바이스에 대한 추가 기능을 제공하는 하나 이상의 마이크로컨트롤러들 상의 하나 이상의 입력/출력 포트들을 포함할 수 있다. 하나 이상의 입력/출력 포트들은 에뮬레이팅 USB 하드웨어 디바이스로의 전력을 제어할 수 있다. 하나 이상의 입력/출력 포트들은 넌(non)-USB 주변 디바이스들에 대한 시리얼 포트일 수 있다. 하나 이상의 입력/출력 포트들은 POS(Point of Sale) 캐시 드로워(cash drawer)와 통신하는 POS 캐시 드로워 포트일 수 있다. 하나 이상의 입력/출력 포트들은 에뮬레이팅 USB 하드웨어 디바이스에 추가 기능을 추가할 수 있는 확장 카드에 연결될 수 있다. 예시적 에뮬레이팅 USB 하드웨어 디바이스는 펌웨어를 재기록하지 않고 제 2 물리적 USB 주변 디바이스를 에뮬레이트하기 위해서 후속하는 세트의 특정 디스크립터들을 수신하도록 구성될 수 있다. 예시적 에뮬레이팅 USB 하드웨어 디바이스는 테스트 실행기 컴퓨팅 디바이스로부터의 상호작용을 요구하지 않고 테스트 중인 컴퓨팅 디바이스로부터 수신되는 특정 메시지들에 자동으로 응답하도록 구성될 수 있다. 예시적 컴퓨터 시스템은 제 2 물리적 USB 주변 디바이스를 에뮬레이트하고 테스트 중인 컴퓨팅 디바이스와 제 2 물리적 디바이스의 USB 상호작용들을 시뮬레이트하는 제 2 에뮬레이팅 USB 하드웨어 디바이스를 포함할 수 있다. 제 1 에뮬레이팅 USB 하드웨어 디바이스로부터의 데이터는 제 2 에뮬레이팅 USB 하드웨어 디바이스로부터의 응답을 타이밍 또는 선택하는데 사용될 수 있다. 테스트 실행기 컴퓨팅 디바이스의 테스팅 프레임워크는 프리-테스트 데이터 캡처, 테스트 케이스 실행, 및 포스트-테스트 데이터 캡처 및 검증을 포함할 수 있다. USB 스위칭 디바이스는 테스트 중인 컴퓨팅 디바이스와의 USB 연결이 에뮬레이팅 USB 하드웨어 디바이스와 에뮬레이팅 USB 디바이스가 에뮬레이트하고 있는 특정 물리적 USB 주변 디바이스 사이에서 스위칭되게 허용할 수 있다.
[0010] 본 명세서에서 설명되는 청구 대상의 추가 양상은 컴퓨팅 시스템에서 USB 디바이스의 호스트 연결을 에뮬레이트하는 에뮬레이팅 USB(universal serial bus) 하드웨어 디바이스 및 주변 디바이스 상호작용 및 호스트 연결들을 테스트하기 위한 컴퓨팅 시스템으로 구현될 수 있다.
[0011] 예시적 에뮬레이팅 USB 하드웨어 디바이스는: 구성 디스크립터들을 저장하기 위한 메모리; 시리얼 인터페이스 칩으로의 USB; 및 소프트웨어를 수신함으로써 물리적 USB 디바이스의 호스트 연결을 에뮬레이트하도록 소프트웨어로 프로그래밍가능한 USB 서포트를 갖는 하나 이상의 마이크로컨트롤러들을 포함하고, 하나 이상의 마이크로컨트롤러들은 USB 호스트 모드 버스 신호들을 구성하고, 시리얼 버스 상에서 USB 프레임들을 개시하고, 디바이스 연결 상태를 디바이스 에뮬레이션 프로세스로 표시하고, 그리고 물리적 USB 디바이스와 디바이스 에뮬레이션 프로세스 사이에서 패킷들을 중계한다.
[0012] 주변 디바이스 상호작용 및 호스트 연결들을 테스트하기 위한 예시적 컴퓨팅 시스템은: 테스팅 프레임워크, 호스트 연결들 및 에뮬레이팅 USB 하드웨어 디바이스 통신 드라이버들을 실행시키도록 구성되는 테스트 실행기 컴퓨팅 디바이스; 테스트 중인 컴퓨팅 디바이스; 물리적 USB 주변 디바이스; 및 물리적 USB 디바이스의 호스트 연결을 에뮬레이트하도록 소프트웨어로 프로그래밍가능한 적어도 하나의 에뮬레이팅 유니버셜 시리얼 버스(USB) 하드웨어 디바이스를 포함하고, 적어도 하나의 에뮬레이팅 유니버셜 시리얼 버스 하드웨어 디바이스는 USB 호스트 모드 버스 신호들을 구성하고; 시리얼 버스 상에서 USB 프레임들을 개시하고; 디바이스 연결 상태를 디바이스 에뮬레이션 프로세스로 표시하고; 그리고 물리적 USB 주변 디바이스와 디바이스 에뮬레이션 프로세스 사이에서 패킷들을 중계하도록 구성된다.
[0013] 이러한 그리고 다른 실시예들은 다음의 특징들 중 하나 이상의 특징들을 선택적으로 포함할 수 있다. 예시적 에뮬레이팅 USB 하드웨어 디바이스는 에뮬레이팅 USB 하드웨어 디바이스에 대한 추가 기능을 제공하는 하나 이상의 마이크로컨트롤러들 상의 하나 이상의 입력/출력 포트들을 포함할 수 있다. 하나 이상의 입력/출력 포트들은 에뮬레이팅 USB 하드웨어 디바이스로의 전력을 제어할 수 있다. 하나 이상의 입력/출력 포트들은 넌-USB 주변 디바이스들에 대한 시리얼 포트일 수 있다. 하나 이상의 입력/출력 포트들은 POS(Point of Sale) 캐시 드로워와 통신하는 POS 캐시 드로워 포트일 수 있다. 하나 이상의 입력/출력 포트들은 에뮬레이팅 USB 하드웨어 디바이스에 추가 기능을 추가할 수 있는 확장 카드에 연결될 수 있다. 하나 이상의 마이크로컨트롤러들은 물리적 USB 호스트 디바이스 또는 에뮬레이트된 USB 하드웨어 디바이스 중 어느 하나를 물리적 USB 디바이스에 연결시키도록, 스위칭 디바이스의 상태를 지시하는 제어 신호를 세팅하기 위한 소프트웨어 커맨드를 수신하도록 구성될 수 있다. 에뮬레이팅 USB 하드웨어 디바이스는 펌웨어를 재기록하지 않고 물리적 USB 주변 디바이스를 에뮬레이트하도록 한 세트의 특정 디스크립터들을 수신하도록 구성될 수 있다. 테스트 실행기 컴퓨팅 디바이스는 수신된 데이터를 모니터링하고, 수신된 데이터를 필터링 및 디스플레이할 수 있다. USB 스위칭 디바이스는 물리적 USB 주변 디바이스와의 USB 연결이 에뮬레이팅 USB 하드웨어 디바이스와 에뮬레이팅 USB 디바이스가 에뮬레이트하는 물리적 호스트 연결 사이에서 스위칭되게 허용하는 컴퓨팅 시스템에 포함될 수 있다.
[0014] 본 발명의 하나 이상의 실시예들의 세부사항들은 단지 예시에 의해 주어지는 첨부한 도면들 및 아래의 설명에 기술된다. 본 발명의 다른 특징들, 양상들 및 이점들은 설명, 도면들 및 청구항들로부터 명백해질 것이다. 다양한 도면들에서의 동일한 참조 번호들 및 표기들은 동일한 엘리먼트들을 표시한다.
[0015] 도 1a는 호스트 컴퓨팅 디바이스와 물리적 USB 주변 디바이스 사이의 관례적 이뉴머레이션 프로세스를 예시하는 블록도이다.
[0016] 도 1b는 통신하기 위해서 USB 디바이스와 호스트 컴퓨팅 디바이스 사이에서 전송되는 다양한 커맨드들을 예시한다.
[0017] 도 2는 예시적 에뮬레이트된 USB 하드웨어 디바이스의 개략도이다.
[0018] 도 3은 USB 스위칭 디바이스와 예시적 에뮬레이트된 USB 하드웨어 디바이스의 개략도이다.
[0019] 도 4a는 특정 USB 주변 디바이스를 에뮬레이트하기 위한 예시적 마이크로컨트롤러를 프로그래밍하는데 사용되는 예시적 의사 코드이다.
[0020] 도 4b는 특정 USB 주변 디바이스를 에뮬레이트하기 위한 예시적 마이크로컨트롤러를 프로그래밍하기 위한 도 4a로부터의 예시적 의사 코드의 연속이다.
[0021] 도 5a는 유니버셜 시리얼 버스 주변 디바이스를 에뮬레이트하기 위한 예시적 방법의 흐름도이다.
[0022] 도 5b는 유니버셜 시리얼 버스 연결을 에뮬레이트하기 위한 예시적 방법의 흐름도이다.
[0023] 도 6a는 POS 테스트 케이스의 예이다.
[0024] 도 6b는 POS 테스트에 대한 컴포넌트들의 예시적 블록도이다.
[0025] 도 7은 USB 연결의 호스트 측을 에뮬레이트하는 예시적 에뮬레이트된 USB 하드웨어 디바이스의 개략도이다.
[0026] 도 8은 예시적 컴퓨팅 디바이스를 예시하는 블록도이다.
[0027] 예시적 실시예에 따라, 적어도 하나의 USB 주변 디바이스를 요구하는 시스템들을 테스트하기 위해서, 주변기기들 및/또는 호스트 연결들을 에뮬레이트하기 위한 EUP(emulated USB peripheral) 하드웨어 디바이스가 존재할 수 있다. 예시적 하드웨어 디바이스는: "EUP(emulated USB peripheral) 디바이스", "에뮬레이트 USB 주변 하드웨어 디바이스" 및 "에뮬레이트된 USB 하드웨어 디바이스"와 같은 몇몇 용어들로 지칭될 수 있다. 이 용어들은 모두 디바이스의 구성에 따라 호스트 또는 디바이스 모드에서 동작하기 위한 능력들을 가질 수 있는 동일한 디바이스를 지칭한다.
[0028] 예시적 EUP 디바이스는 2개의 모드들: 디바이스 모드와 호스트 모드 사이에서 스위칭할 수 있다. 디바이스 모드에서, EUP 디바이스는 다수의 상이한 주변기기들을 에뮬레이트할 수 있다. 호스트 모드에서, EUP 디바이스는 USB 연결의 호스트 측을 에뮬레이트할 수 있다. 또한, EUP 디바이스, 테스트 스크립트들을 실행시키기 위한 테스트 실행기 컴퓨팅 디바이스 및 주변기기의 상호작용들이 테스트되고 있는 시스템(예를 들어, 테스트 중인 컴퓨팅 디바이스)을 포함하는 에뮬레이트된 USB 주변기기 검증 프레임워크가 존재할 수 있다.
디바이스 모드에서의 EUP 디바이스
[0029] 예시적 EUP(emulated USB peripheral) 하드웨어 디바이스는 도 2에 도시되는 바와 같은 USB-투-시리얼 인터페이스 칩(202) 및 USB 서포트를 갖는 하나 이상의 마이크로컨트롤러들(203)을 포함할 수 있다. USB 서포트는 빌트-인(built-in)될 수 있거나 또는 외부 칩을 사용할 수 있다. EUP 디바이스는 USB 채널당 하나의 마이크로컨트롤러를 가질 수 있지만, 다수의 마이크로컨트롤러들 및 USB 채널들을 가질 수 있다. 시리얼 칩(202)은 테스트 실행기 컴퓨팅 디바이스(201)와의 연결을 생성할 수 있다. 테스트 실행기 컴퓨팅 디바이스(201)는 EUP 디바이스가 테스트 중인 컴퓨팅 디바이스(204)와 상호작용할 수 있도록 테스트 애플리케이션 및 EUP 드라이버를 실행시키고 있는 디바이스이다.
[0030] 일부 실시예들에서, 디바이스 모드에서의 EUP 디바이스는 테스트를 목적으로 단독으로 사용되지 않을 수 있다. 예를 들어, EUP 디바이스는 쉽게 이용가능하지 않을 수 있는 주변 디바이스들을 에뮬레이트하거나 또는 레거시 컴퓨팅 디바이스들과 인터페이싱하는데 사용될 수 있다. 이러한 경우들에서, EUP 디바이스는 커맨드들을 수신하기 위해서 테스트 실행기 컴퓨팅 디바이스에 여전히 연결될 수 있으며, 컴퓨팅 디바이스에 연결된다. 그 다음, EUP 디바이스는 이용가능하지 않거나 또는 쉽게 이용가능하지 않은 주변 디바이스로서 또는 레거시 컴퓨팅 디바이스로의 인터페이스로서 컴퓨팅 디바이스와 상호작용한다.
[0031] 마이크로컨트롤러에서의 USB 서포트는 마이크로컨트롤러가 USB에 부착/USB로부터 분리되고, 리셋들을 검출하고, 요청들 또는 메시지들을 수신하고, 메시지들을 전송하게 허용할 수 있다. 디바이스 모드에서, 각각의 마이크로컨트롤러는 USB 주변 디바이스의 하나의 인스턴스를 한 번에 에뮬레이트할 수 있다. USB 인터페이스는 자동으로, EUP 디바이스로 어드레싱되는 패킷들만을 수신하고, 엔드포인트에 의한 유입 패킷들을 차단할 수 있다. 관례적 USB 디바이스들에서, 모든 명령들 및 응답들은 펌웨어로 프로그래밍되고, 메시지들의 선택된 부분들은 테스트 중인 컴퓨팅 디바이스로 그리고 이로부터 포워딩된다. 예시적 실시예에서, EUP 디바이스는 주어진 USB 물리적 디바이스를 에뮬레이트하기 위해서 테스트 중인 컴퓨팅 디바이스와 상호작용하는 애플리케이션을 실행시킨다. EUP 디바이스가 펌웨어의 상단에서 애플리케이션을 실행시키고 있기 때문에, EUP 디바이스는 마이크로컨트롤러 상에 저장된 펌웨어를 재기록하지 않고 상이한 디바이스들을 에뮬레이트하도록 구성될 수 있다.
[0032] 일부 실시예들에서, 도 3에 예시되는 바와 같은 EUP 디바이스(310)에 의해 제어되는 USB 스위칭 디바이스(300)가 존재할 수 있다. 예시적 스위칭 디바이스(301)는 물리적 주변기기(305)를 예시적 시스템에 연결하거나 또는 연결해제하는 하드웨어 컴포넌트로서 구현될 수 있다. 이 스위칭 디바이스(300)는 EUP 디바이스(에뮬레이트된 USB 주변 디바이스)(310)가 컴퓨팅 시스템 내에서의 둘 모두의 상호작용들을 테스트하기 위해서 표현하고 있는 USB 연결이 EUP 디바이스와 물리적 디바이스(305)(USB 주변기기) 사이에서 변경되게 허용할 수 있다. 예시적 스위칭 디바이스(300)는 물리적 디바이스(305)에 대한 전력이 공급되는(Powered) USB 커넥터들 및 테스트 시스템에 연결된 전력 입력 커넥터들을 가질 수 있다. 스위칭 디바이스(300)는 단지 USB 신호 연결들을 스위칭할 수 있다. 테스트 애플리케이션으로부터의 소프트웨어 커맨드는 물리적 USB 주변기기 또는 에뮬레이트된 주변기기가 주어진 시간에 연결되는지 여부를 나타내기 위하여 스위칭 디바이스의 상태를 지시하는 제어 신호를 세팅하기 위해서 EUP 디바이스(310)의 마이크로컨트롤러(303)에 전송될 수 있다. EUP 테스트 실행기 컴퓨팅 디바이스(301)가 연결되지 않거나 또는 테스트들을 위해 사용되고 있지 않다면, 예시적 스위칭 디바이스(300)는 물리적 디바이스(305)에 연결되는 것으로 디폴트될 수 있다. EUP 디바이스(310)가 사용을 위해서 구성되는 경우, EUP 드라이버 소프트웨어는 EUP 디바이스(310)를 시스템으로 스위칭할 수 있다. 테스트 애플리케이션이 스위칭 디바이스(300)를 제어하기 위해서 소프트웨어를 실행시키지 않고 있거나 또는 EUP 디바이스(310)에 전력이 공급되지 않으면, 스위칭 디바이스(300)는 패스 스루 소켓(pass through socket)으로의 연결을 패스 스루하도록 복귀(revert)한다.
[0033] 예시적 EUP 디바이스는 컴퓨팅 디바이스 또는 테스트 중인 시스템으로의 전력을 관리하는 것 및 넌-USB 주변기기 테스팅을 위해서 시리얼 포트들을 제공하는 것과 같은 기능을 제공하기 위한 마이크로컨트롤러 상의 추가 입력들/출력들(IO) 포트들을 포함할 수 있다. 각각의 EUP 마이크로컨트롤러는 주어진 시간에 하나의 물리적 USB 주변 디바이스를 에뮬레이트할 수 있다. 추가적으로, 물리적 USB 주변 디바이스를 에뮬레이트하는 동안, 마이크로컨트롤러는 또한, 하나 이상의 시리얼 디바이스들 및 하나 이상의 물리적 컨택 스위칭 디바이스들의 에뮬레이션을 제공할 수 있다. 일부 실시예들에서, 입력/출력 포트는, 다른 것들 중에서도, 드로워를 개방하기 위한 신호 요청을 감지할 수 있는 POS 캐시 드로워를 에뮬레이트하고, 드로워가 개방됨을 표시하는 신호를 생성할 수 있다. 게다가, 입력/출력 포트는 아직 정의되지 않은 추가 기능을 제공하기 위해서 확장 카드를 EUP 디바이스에 추가시키는데 사용될 수 있다.
[0034] EUP 디바이스가 주변 디바이스를 에뮬레이트하기 위해서, 예시적 EUP 디바이스의 마이크로컨트롤러는 테스트 중인 컴퓨팅 디바이스와 상호작용하기 위한 표준 USB 프로토콜뿐만 아니라 테스트 실행기 디바이스와의 상호작용을 위한 시리얼 프로토콜을 해석하고 이들에 응답하는 일반적 소프트웨어로 프로그래밍될 수 있다. 마이크로컨트롤러를 구성하는데 사용되는 예시적 코드는 도 4a 및 도 4b에 예시된다. 테스트 실행기 컴퓨팅 디바이스는 이 코드를 사용하여, 특정 USB 주변 디바이스와 관련된 특정 디스크립터들을 포함하는 임의의 USB 프로파일을 EUP 마이크로컨트롤러로 로딩할 수 있다. 특정 디스크립터들은 디바이스 ID, 스트링들 및 보고 디스크립터들을 포함할 수 있어서, EUP 디바이스가 특정 디바이스의 특정 모델 및 인스턴스를 에뮬레이트할 수 있게 한다. 예를 들어, 테스트 실행기 컴퓨팅 디바이스는 도 4a에 도시되는 특정 키보드 모델에 대한 특정 디스크립터 정보(401)를 EUP 디바이스에 제공할 수 있다. 디스크립터 정보가 EUP 디바이스로 로딩되는 경우, EUP 디바이스는 디스크립터가 로딩되었던 특정 키보드 모델의 기능을 에뮬레이트한다. 디바이스가 자동으로 응답하거나 또는 테스트 실행기 컴퓨팅 디바이스로 포워딩할 패킷들을 정의하는 테스트 실행기 컴퓨팅 디바이스와 EUP 디바이스 사이에 통신 프로토콜이 존재할 수 있다. 물리적 디바이스가 모든 커맨드에 응답하지 않을 수 있기 때문에, 특정되지 않은 임의의 커맨드는 응답을 발행하지 않을 것이다.
[0035] 테스트 실행기 컴퓨팅 디바이스는 마이크로컨트롤러가 특정 메시지들에 자동으로 응답한다는 것을 특정할 수 있다. 테스트 실행기 컴퓨팅 디바이스는 또한, 리플라이가 테스트 실행기 컴퓨팅 디바이스 상에서 실행되는 디바이스 에뮬레이션 프로세스에 의해 계산될 수 있도록 자기 자신에게 전송되도록 특정 USB 패킷들을 구성할 수 있다. 테스트 실행기 컴퓨팅 디바이스 상의 디바이스 에뮬레이션 프로세스를 사용하는 것은 복잡한 에뮬레이션이 디바이스 상에서 수행되게 허용한다.
[0036] EUP 디바이스는 실제 USB 주변 디바이스가 정상 동작에서 전송할 임의의 메시징을 에뮬레이트할 수 있다. 디스크립터 정보가 EUP 디바이스로 로딩되기 때문에, 이뉴머레이션 프로세스는 테스트 실행기 컴퓨팅 디바이스 상호작용없이 완료될 수 있다. USB 표준은 디바이스가 10 밀리초와 같은 특정 시간량 내에서 이뉴머레이션을 수행하도록 요구한다. 이뉴머레이션 데이터를 예시적 EUP 디바이스의 메모리로 로딩함으로써, EUP 디바이스는 테스트 러너 애플리케이션이 예상되는 시간 프레임 안에 응답하는 것에 의존하지 않고 요구되는 타임아웃 기간 내에 이뉴머레이션을 완료할 수 있다. 더 긴 응답 타임아웃을 갖는 다른 메시지들은 테스트 실행기 컴퓨팅 디바이스 상에서 실행되는 디바이스 이뉴머레이션 프로세스에 의해 생성될 수 있다.
[0037] 표준 USB 버스 이뉴머레이션은 몇몇 단계들을 포함한다. 먼저, USB 디바이스가 부착되는 포트는 USB 디바이스가 연결되고 USB 디바이스가 전력이 공급되는 상태에 있음을 호스트 컴퓨팅 디바이스에 경보한다. 다음으로, USB 호스트는 커맨드를 포트에 전송하며, USB 디바이스에 고유한 어드레스를 할당한다. USB 디바이스의 상태는 어드레싱되는 상태로 변경된다. USB 호스트는 USB 디바이스로부터 구성 정보를 판독하며, USB 디바이스가 어떻게 사용될 것인지를 판정한다. 그 다음, USB 호스트는 디바이스에 구성 값을 할당하며, 구성될 디바이스의 상태를 세팅한다.
[0038] EUP 디바이스는 테스트 실행기 컴퓨팅 디바이스에 의해 사전 저장된 데이터를 사용하여 테스트 이뉴머레이션 중인 컴퓨팅 디바이스로부터의 이뉴머레이션 커맨드들에 응답한다. 이뉴머레이션 프로세스는 실제 물리적 주변 디바이스의 것과 유사할 수 있다.
[0039] 이뉴머레이션 이후, 커맨드들은 테스트 애플리케이션으로부터 EUP 디바이스를 통해 컴퓨팅 디바이스 또는 테스트 중인 시스템에 전송된다. 테스트 중인 컴퓨팅 디바이스로부터의 응답들은 EUP 디바이스로 리턴되고, EUP 디바이스는 그 다음, 그 응답들을 테스트 애플리케이션으로 리턴한다. 이 프로세스를 사용하여, 테스트 애플리케이션은 EUP 디바이스를 통해 테스트되는 디바이스를 에뮬레이트하여, 적절하게 응답을 계속할 수 있다.
[0040] 일부 실시예들에서, 예시적 에뮬레이트된 USB 주변기기 검증 프레임워크는 테스트 실행기 컴퓨팅 디바이스 상에 존재할 수 있다. 이 프레임워크는 주변 USB 디바이스를 에뮬레이트하도록 적어도 하나의 EUP 디바이스를 구성할 수 있다. 그 다음, 프레임워크는 테스트 케이스들의 시퀀스를 실행하고, 가능하다면 테스트 케이스들로부터의 예상되지 않은 출력을 핸들링하고, 예상되는 결과들이 각각의 테스트 케이스로부터 생성되었음을 검증하고, 각각의 테스트 케이스의 성공 또는 실패를 표시할 수 있다. 예를 들어, 예시적 검증 프레임워크는 POS(point of sale) 시스템을 에뮬레이트하도록 제공될 수 있다. POS 시스템 테스트를 수행하기 위해서, 예시적 실시예는 키보드 또는 스캐너와 같은 주변기기들을 에뮬레이트하기 위해서 몇몇 EUP 디바이스들과 함께 POS(point of sale) 단말 및 POS 제어기를 추가적으로 포함할 수 있다. 일부 경우들에서, 단말 및 제어기는 동일한 시스템일 수 있다. 추가적으로, 다수의 단말들 및 다수의 제어기들이 존재할 수 있다. 또한, API 시뮬레이션 서버는 엔드-투-엔드 테스트 환경을 생성하는데 사용될 수 있다. 테스트들은, 테스트 애플리케이션이 시스템 상의 애플리케이션들의 동작 및 제공되는 입력들에 기초하여 테스트 중인 시스템의 동작을 검증하는 것으로 수행될 수 있다.
[0041] 프레임워크는 시스템 구성들을 판독하고 실행할 테스트를 선택할 수 있다. 그 다음, POS 단말이 초기화될 수 있다. 테스트는 시퀀스되고, 그 다음, 실행될 수 있다. 로그들은 테스트가 실행할 때 트랜잭션들 및 응답들을 레코딩할 수 있다. 그 다음, 테스트 프로그램은 수집된 데이터를 취득하고 데이터를 쉬운 검증을 위한 형태로 변환할 수 있다. 수집된 데이터 및 결과들은 후속 조사들(investigations)을 위해 로깅될 수 있다. 일부 경우들에서, 테스트가 정확하게 실행되지 않았다면, 시스템에 대한 문제들을 정정하도록 수동적 개입이 허용될 수 있다.
[0042] 예시적 방법은 USB 서포트 및 시리얼 인터페이스 칩으로의 USB를 갖는 EUP(emulated USB peripheral) 디바이스 상의 마이크로컨트롤러와 테스트 실행기 컴퓨팅 디바이스를 연결시킴으로써 테스트 실행기 컴퓨팅 디바이스에서 시작된다. 마이크로컨트롤러는 도 5a에 예시되는 바와 같이 다수의 USB 프로파일들을 지원함으로써 복수의 물리적 USB 주변 디바이스들을 에뮬레이트할 수 있는 소프트웨어, 이를테면, 디바이스 에뮬레이션 애플리케이션으로 구성될 수 있다(501). 넌-디바이스 특정 USB 애플리케이션은 마이크로컨트롤러의 플래시 메모리에 저장될 수 있다. 소프트웨어는 테스트 중인 컴퓨팅 디바이스와 상호작용하기 위한 표준 USB 프로토콜 및 테스트 실행기 컴퓨팅 디바이스와 상호작용하기 위한 시리얼 프로토콜을 해석하고 이들에 응답할 수 있다. 마이크로컨트롤러는 시리얼 프로토콜을 사용하여, 에뮬레이트되는 특정 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트하는 테스트 실행기 컴퓨팅 디바이스와 통신할 수 있다(502). USB 프로파일을 정의하는 특정 디스크립터들은 EUP 디바이스의 마이크로컨트롤러로 로딩된다(503). 특정 디스크립터들에 의해 정의되는 디바이스 구성은 마이크로컨트롤러의 RAM에 저장될 수 있다. 이 디스크립터들은 마이크로컨트롤러가 에뮬레이트하여야 하는 실제 USB 디바이스와 관련된 디바이스 식별자를 포함한다. 이러한 예시적 경우에서, 마이크로컨트롤러는 POS 스캐너의 디바이스 ID를 통해 로딩될 수 있다. 그 다음, 메시지들은 실제 USB 주변 디바이스와 테스트 중인 컴퓨팅 디바이스 사이의 실제 메시지들을 에뮬레이트하기 위해서 에뮬레이트된 디바이스와 테스트 중인 컴퓨팅 디바이스 사이에서 전송될 수 있다(506). 주변 디바이스에 대한 출력은 마이크로컨트롤러에 의해 테스트 중인 컴퓨팅 디바이스로부터 수신되고, 테스트 실행기 컴퓨팅 디바이스로 포워딩될 수 있다.
[0043] 도 6a는 POS 시스템의 예시적 테스트 케이스를 예시한다. 이러한 테스트 케이스에서, 로열티 카드는 스캔되는 것으로 시뮬레이트되고, 그 다음, 2개의 UPC(Universal Product Code)들은 아이템들이 구입될 때 스캔되는 것으로 시뮬레이트된다. 도 6b는 예시적 시스템을 예시한다. 테스트 실행기 컴퓨팅 디바이스(601)는 테스팅 프레임워크, 디바이스 에뮬레이션들 및 EUP 디바이스 통신 드라이버를 포함하는 하나의 프로세스를 실행시킬 수 있다. 대안적으로, 테스트 실행기 컴퓨팅 디바이스(601)는 프레임워크, 에뮬레이션들 및 통신 드라이버들에 대한 상이한 프로세스들을 실행시킬 수 있다. 예시적 테스팅 프레임워크는: 프리-테스트 데이터 캡처, 테스트 케이스 실행 및 포스트-테스트 데이터 캡처 및 검증을 포함할 수 있다. 도 6b에 예시되는 것과 같은 예시적 시스템에서, 주어진 시간에 시스템에서 다수의 주변 디바이스들을 에뮬레이트하기 위한 하나보다 많은 EUP 디바이스(610a, 610b)가 존재할 수 있다. 예를 들어, 도 6b에 도시되는 바와 같이, 하나의 EUP 디바이스는 바코드 스캐너 USB 디바이스(610a)를 에뮬레이트할 수 있고, 또 다른 EUP 디바이스는 POS 키보드(610b)를 에뮬레이트할 수 있다. 디바이스 에뮬레이션들은 테스트 실행기 컴퓨팅 디바이스를 통해 저장 및 전송될 수 있다. 테스트 실행기 컴퓨팅 디바이스(601)는 EUP 디바이스들과 통신하기 위한 EUP 디바이스 통신 드라이버를 가질 것이다. 각각의 EUP 디바이스에 대한 실행 스레드가 존재할 수 있고, 입력/출력 데이터를 사용하는 EUP 디바이스들 사이의 조정/통신이 존재할 수 있다. 일부 실시예들에서, 하나의 EUP 디바이스는 제 2 EUP 디바이스로부터의 응답을 타이밍 또는 선택하는데 사용되는 데이터를 출력할 수 있다. 예를 들어, 예시적 POS 시스템에서, 키보드 상에 WAIT 라이트(light)가 존재할 수 있으며, 이는 활성화되면 스캐너가 임의의 더 많은 스캔들을 수용하는 것을 중단시킨다. 소프트웨어는 이 관계를 사용하여 POS 입력 버퍼의 초과-실행(over-running)을 회피한다. 대안적으로, 예시적 실시예는 에러 메시지 또는 프롬프트가 존재하였을 경우 전송할 다음 키를 결정하기 위해서 POS 시스템의 디스플레이를 판독할 수 있다.
[0044] 이 테스트 케이스에서, 스캐너(610a)를 에뮬레이트하는 EUP 디바이스는 스캔되는 2개의 물건들의 식별자들 및 수치적 식별자에 의해 로열티 카드를 식별하는 메시지들을 정확하게 전송하도록 예상된다. 키보드(610b)를 에뮬레이트하는 EUP 디바이스는 눌러지는 키보드 키들에 대응하는 입력 스트링들을 정확하게 전송하고, "QTY" 및 "TOTAL"에 대해 릴리스(release)하도록 예상된다. CashOut은, 디스플레이를 보고, 그 다음, 키보드를 통해 올바른 입력을 전송하는 스마트 루틴일 수 있다. 검증은 테스트가 예상되는 바와 같이 수행되었음을 결정할 수 있다. 검증은: 트랜잭션들이 예상되는 바와 같이 발생하였음, 적용되는 쿠폰들의 수가 정확함, 또는 주변 디바이스에 의해 인지되는 고객 번호가 올바름을 확인하는 것을 포함할 수 있다.
[0045] EUP 디바이스는 주어진 시간에서 마이크로컨트롤러당 하나의 주변 디바이스를 에뮬레이트할 수 있다. EUP 디바이스가 하나보다 많은 마이크로컨트롤러를 포함한다면, EUP 디바이스는 각각의 마이크로컨트롤러에 하나의 주변 디바이스를 할당하여, 상이한 주변 디바이스들을 동시에 에뮬레이트할 수 있다.
[0046] POS 시스템 예에서 논의되는 바와 같이, 컴퓨팅 시스템들은 다수의 주변 디바이스 상호작용을 테스트할 필요가 있을 수 있다. 컴퓨팅 시스템은 마우스, 키보드 및 프린터를 통해 기능을 테스트할 필요가 있을 수 있다. 하나의 실시예에서, 하나의 EUP 디바이스는 시리얼 방식으로 각각의 디바이스를 테스트하는데 사용될 수 있다. EUP 디바이스는 상이한 시간에 각각의 주변기기를 에뮬레이트하도록 프로그래밍될 수 있다. 예를 들어, EUP 디바이스는 먼저 마우스를, 그 다음, 키보드를, 그 다음, 프린터를 에뮬레이트할 수 있다. 대안적으로, 다수의 EUP 디바이스들은 컴퓨팅 시스템 내에서 다수의 주변 디바이스들을 에뮬레이트하는데 사용될 수 있다. 예를 들어, 3개의 EUP 디바이스들은 마우스, 키보드 및 프린터를 각각 에뮬레이트하는데 사용될 수 있다. 그 다음, 컴퓨팅 시스템은 주변 디바이스들과의 다수의 상호작용들의 병렬 테스팅을 수행할 수 있다. 다수의 주변기기들을 에뮬레이트함으로써, 상태 라이트들과 같은, 테스트 중인 컴퓨팅 디바이스의 운영 시스템으로부터의 표시자들은 키보드들 또는 스캐너들과 같은 다른 주변기기들에 대해 세팅된 정보의 레이트를 정규화하는데 사용될 수 있다.
호스트 모드에서의 EUP 디바이스
[0047] 일부 실시예들에서, EUP 디바이스는 도 7에 예시되는 바와 같이 USB 연결의 호스트 측을 에뮬레이트할 수 있다. EUP 디바이스는 디바이스 모드에 대해 위에서 논의된 모든 특징들을 포함할 수 있다. 추가적으로, EUP 디바이스의 마이크로컨트롤러 포트는 작동 중인 USB를 구현하여, 디바이스가 디바이스 모드에서 주변기기로서 동작하거나 또는 호스트 모드에서 USB 디바이스의 호스트 엔드로서 동작할 수 있게 할 수 있다.
[0048] 호스트 연결을 에뮬레이트하기 위해서, EUP 마이크로컨트롤러는 도 5b에 예시되는 바와 같이, USB 호스트 모드 버스 신호들을 구성하고(510), 버스 상에서 USB 프레임들을 개시하고(512), 디바이스 상태(연결 또는 연결해제)를 에뮬레이션 프로세스로 표시하고(513), 디바이스와 에뮬레이션 프로세스 사이에서 패킷들을 중계하는(516) 소프트웨어를 수신할 수 있다. 호스트 모드 버스 신호 라인들 D+ 및 D-는 15k 레지스터들을 통해 풀링 다운될 수 있고, USB 프레임 패킷들은 1khz 또는 8khz에서 생성될 수 있다. 호스트 모드에서의 EUP 디바이스의 USB 인터페이스는 패킷들을 특정 디바이스 및 엔드포인트에 전송할 수 있다. 따라서, 패킷 버퍼들은 이들이 디바이스 모드에 있는 것과는 상이하게 호스트 모드에서 핸들링될 수 있다. 예시적 EUP 디바이스에서, 마이크로컨트롤러는 각각의 엔드포인트(각각의 디바이스) 또는 유출 패킷들(호스트)에 대해 사용되는 메모리를 추적하기 위해서 BDT(buffer descriptor table)를 가질 수 있다. 패킷이 전송되고 있으며 데이터를 픽스(fix)하고 있으면, 그것은 RAM 대신에 프로그램 공간에서 테이블로부터 전송될 수 있다. 추가적으로, 디바이스는 또한, 디바이스 모드와 호스트 모드 사이에서 동적으로 변경할 수 있다.
[0049] 스위칭 디바이스는 특정 물리적 USB 호스트 디바이스 또는 에뮬레이트된 USB 하드웨어 디바이스 중 어느 하나의 스위칭이 물리적 USB 주변 디바이스에 연결되게 허용할 수 있다. 이 스위칭 디바이스는 EUP 디바이스가 물리적 USB 주변 디바이스를 에뮬레이트하는 것에 대해 위에서 논의된 스위칭 디바이스와 유사하거나 또는 동일할 수 있다.
[0050] USB 호스트 모드에서 구성되는 EUP 디바이스와 물리적 주변기기를 연결시키기 위한 추가 스위칭 디바이스가 존재할 수 있다. 도 7에 도시되는 바와 같이, EUP 디바이스의 하나의 마이크로컨트롤러는 호스트 모드에 있고, USB 디바이스를 에뮬레이트하고 있는(디바이스 모드) EUP 디바이스의 제 2 마이크로컨트롤러에 또한 연결되는 테스트 실행기 컴퓨팅 디바이스에 연결될 수 있다. 디바이스 모드에서의 EUP 디바이스의 마이크로컨트롤러는 테스트 중인 컴퓨팅 디바이스에 연결될 수 있다. 이 구성은 데이터가 버스 분석기와 유사한 시스템을 통해 추적되게 허용할 수 있다. 새로운 디바이스를 에뮬레이트하기 위한 데이터는 임의의 추가 하드웨어 없이 EUP 디바이스를 통해 수집될 수 있다. 테스트 실행기 컴퓨팅 디바이스는 수신된 데이터를 모니터링하고, 수신된 데이터를 필터링 및 디스플레이할 수 있다. 도 7의 시스템 구성은 또한, USB 주변 디바이스로부터의 데이터가 EUP 디바이스를 실행시키는 소프트웨어에 의해 수정되게 허용할 수 있다. 예를 들어, 에뮬레이팅 USB 디바이스는 USB 마우스의 보고되는 이동 방향들을 반전시킬 수 있어서, 마우스가 거꾸로 뒤집혀서 트랙볼로서 사용될 수 있게 한다. 추가적으로 또는 대안적으로, 2개의 마이크로컨트롤러들(또는 2개의 EUP 디바이스들)의 결합은 의도되는 기능에 따라 데이터를 선택적으로 전달하는데 사용될 수 있다. 도 7은 2개의 마이크로컨트롤러들 ― 하나는 디바이스 모드에 있고, 하나는 호스트 모드에 있음 ― 을 갖는 하나의 EUP 디바이스를 도시하지만, 유사한 구성이 2개의 EUP 디바이스들 또는 더 많은 마이크로컨트롤러들을 갖는 EUP 디바이스를 사용하여 구현될 수 있다. 예를 들어, 하나의 EUP 디바이스는 호스트 모드에서 구성될 수 있고, 다른 EUP 디바이스는 디바이스 모드에서 구성될 수 있다. 대안적으로, EUP 디바이스는 채널당 하나의 마이크로컨트롤러를 갖는 4개의 채널들을 가질 수 있다. 이 예시적 디바이스는 버스 분석기 모드의 2개의 인스턴스들을 제공할 수 있으며, 각각의 인스턴스는 호스트 및 디바이스 채널을 필요로 한다.
호스트 및 디바이스 모드 사이의 스위칭
[0051] USB 인터페이스가 호스트 모드에 대해 구성되는 경우, 적절한 USB 풀-다운 레지스터들이 구성되고, USB 프레임들이 버스 상에서 생성된다. 디바이스가 연결되는 경우, 메시지는 실행기에 전송되고, 실행기는 그 다음, 이뉴머레이션 프로세스를 개시한다. 실행기로부터의 소프트웨어 커맨드는 디바이스 모드에 있을 것인지 아니면 호스트 모드에 있을 것인지를 마이크로컨트롤러에 명령할 수 있다.
하이 -레벨 블록도
[0052] 도 8은 테스트될 컴퓨터 시스템에서 유니버셜 시리얼 버스 디바이스를 에뮬레이트하기 위해 배열되는 예시적 컴퓨터(800)의 하이-레벨 블록도이다. 아주 기본적 구성(801)에서, 컴퓨팅 디바이스(800)는 전형적으로, 하나 이상의 프로세서들(810) 및 시스템 메모리(820)를 포함한다. 메모리 버스(830)는 프로세서(810)와 시스템 메모리(820) 사이에서 통신하기 위해서 사용될 수 있다.
[0053] 원하는 구성에 따라, 프로세서(810)는 마이크로프로세서(
Figure 112016077613353-pct00001
), 마이크로컨트롤러(
Figure 112016077613353-pct00002
), DSP(digital signal processor) 또는 이들의 임의의 결합을 포함하는 임의의 타입을 가질 수 있지만, 이들에 제한되는 것은 아니다. 프로세서(810)는 하나보다 많은 캐싱 레벨들, 이를테면, 레벨 1 캐시(811) 및 레벨 2 캐시(812), 프로세서 코어(813) 및 레지스터들(814)을 포함할 수 있다. 프로세서 코어(813)는 ALU(arithmetic logic unit), FPU(floating point unit), DSP Core(digital signal processing core) 또는 이들의 임의의 결합을 포함할 수 있다. 메모리 제어기(816)는 또한, 프로세서(810)에 의해 사용될 수 있거나, 일부 구현들에서, 메모리 제어기(815)는 프로세서(710)의 내부 부분일 수 있다.
[0054] 원하는 구성에 따라, 시스템 메모리(820)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비-휘발성 메모리 또는 이들의 임의의 결합을 포함하는 임의의 타입을 가질 수 있지만, 이들에 제한되는 것은 아니다. 시스템 메모리(820)는 전형적으로, 운영 시스템(821), 하나 이상의 애플리케이션들(822) 및 프로그램 데이터(824)를 포함한다. 애플리케이션(822)은 유니버셜 시리얼 버스 하드웨어 디바이스를 에뮬레이트하기 위한 방법을 포함할 수 있다. 프로그램 데이터(824)는, 하나 이상의 프로세싱 디바이스들에 의해 실행되는 경우 테스트 중인 컴퓨팅 디바이스에서 유니버셜 시리얼 버스 하드웨어 디바이스를 에뮬레이트하기 위한 방법(823)을 구현하는 명령들을 저장하는 것을 포함한다. 일부 실시예들에서, 애플리케이션(822)은 운영 시스템(821) 상에서 프로그램 데이터(824)를 통해 동작하도록 배열될 수 있다.
[0055] 컴퓨팅 디바이스(800)는 기본적 구성(801)과 임의의 요구되는 디바이스들 및 인터페이스들 사이의 통신들을 가능하게 하기 위한 추가 특징들 또는 기능, 및 추가 인터페이스들을 가질 수 있다.
[0056] 시스템 메모리(820)는 컴퓨터 저장 매체들의 예이다. 컴퓨터 저장 매체들은 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 다른 광학 저장, 자기 카세트들, 자기 테이프, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 디바이스(800)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들에 제한되는 것은 아니다. 임의의 이러한 컴퓨터 저장 매체들은 디바이스(800)의 부분일 수 있다.
[0057] 컴퓨팅 디바이스(800)는 셀 폰, 스마트폰, PDA(personal data assistant), 개인용 미디어 플레이어 디바이스, 태블릿 컴퓨터(태블릿), 무선 웹-와치(web-watch) 디바이스, 개인용 헤드셋 디바이스, 애플리케이션-특정 디바이스, 또는 위의 기능들 중 임의의 것을 포함하는 하이브리드 디바이스와 같은 작은-형태 팩터 휴대용(또는 모바일) 전자 디바이스의 일부분으로서 구현될 수 있다. 컴퓨팅 디바이스(800)는 또한, 랩탑 컴퓨터 및 넌-랩탑 컴퓨터 구성들 둘다를 포함하는 개인용 컴퓨터로서 구현될 수 있다.
[0058] 위의 상세한 설명은 블록도들, 흐름도들 및/또는 예들의 사용을 통해 디바이스들 및/또는 프로세스들의 다양한 실시예들을 설명하였다. 이러한 블록도들, 흐름도들 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 이러한 블록도들, 흐름도들 또는 예들 내에서의 각각의 기능 및/또는 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어 또는 가상적으로 이들의 임의의 결합에 의해 개별적으로 그리고/또는 집합적으로 구현될 수 있다는 것이 당업자들에 의해 이해될 것이다. 하나의 실시예에서, 본원에서 설명되는 청구 대상의 몇몇 부분들은 ASIC(Application Specific Integrated Circuit)들, FPGA(Field Programmable Gate Array)들, DSP(digital signal processor)들, 다른 통합된 포맷들을 통해 또는 웹 서비스로서 구현될 수 있다. 그러나, 당업자들은, 본원에 개시되는 실시예들의 일부 양상들이, 전체적으로 또는 부분적으로, 집적 회로들로, 하나 이상의 컴퓨터들 상에서 실행되는 하나 이상의 컴퓨터 프로그램들로서, 하나 이상의 프로세서들 상에서 실행되는 하나 이상의 프로그램들로서, 펌웨어로서, 또는 가상적으로 이들의 임의의 결합으로서 동등하게 구현될 수 있다는 것과, 회로를 설계하는 것 및/또는 소프트웨어 및/또는 펌웨어에 대한 코드를 기록하는 것이 본 개시 내용을 고려하여 당업자의 기술 분야 내에서 잘 이루어질 것이라는 것을 인지할 것이다. 또한, 당업자들은, 본원에서 설명되는 청구 대상의 메커니즘들이 다양한 형태들로 프로그램 물건으로서 분포될 수 있다는 것과, 본원에서 설명되는 청구 대상의 예시적 실시예가 분포를 실제로 수행하는데 사용되는 특정 타입의 비-일시적 신호 베어링 매체와는 관계없이 적용된다는 것을 인식할 것이다. 비-일시적 신호 베어링 매체의 예들은 다음의 것들: 플로피 디스크, 하드 디스크 드라이브, CD(Compact Disc), DVD(Digital Video Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 레코딩가능한 타입 매체; 및 디지털 및/또는 아날로그 통신 매체와 같은 송신 타입 매체(예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등)를 포함하지만, 이들에 제한되는 것이 아니다.
[0059] 본원에서의 실질적으로 임의의 복수형 그리고/또는 단수형 용어들의 사용에 대해, 당업자들은 문맥 및/또는 애플리케이션에 대해 적절하게, 복수형으로부터 단수형으로 그리고/또는 단수형으로부터 복수형으로 변형할 수 있다. 다양한 단수형/복수형 치환들은 명료함을 위해서 본원에서 명백하게 기술될 수 있다.
[0060] 따라서, 청구 대상의 특정 실시예들이 설명된다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 일부 경우들에서, 청구항들에서 인용되는 동작들은 상이한 순서로 수행될 수 있으며, 여전히 바람직한 결과들을 달성할 수 있다. 또한, 첨부한 도면들에 도시되는 프로세스들은 바람직한 결과들을 달성하기 위해서, 도시되는 특정 순서, 또는 순차적 순서를 반드시 요구하지는 않는다. 특정 구현들에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (36)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 주변 디바이스 상호작용을 테스트하기 위한 컴퓨팅 시스템으로서,
    테스팅 프레임워크, 디바이스 에뮬레이션 및 에뮬레이팅 USB 하드웨어 디바이스 통신 드라이버들을 실행시키도록 구성되는 테스트 실행기 컴퓨팅 디바이스;
    테스트 중인 컴퓨팅 디바이스; 및
    입력 및 출력 디바이스들을 포함하는 다양한 종류들의 USB 디바이스들에 대한 다수의 USB 프로파일들을 지원함으로써 복수의 물리적 USB 주변 디바이스들을 에뮬레이트하고, 상기 테스트 중인 컴퓨팅 디바이스와 제 1 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트(simulate)하도록 소프트웨어로 프로그래밍가능한 복수의 에뮬레이팅 유니버셜 시리얼 버스(USB) 하드웨어 디바이스들을 포함하고,
    상기 복수의 에뮬레이팅 유니버셜 시리얼 버스 하드웨어 디바이스들 각각은,
    에뮬레이트되는 특정 물리적 USB 주변 디바이스와 관련된 디바이스 식별자들을 포함하는 특정 디스크립터들을 수신함으로써 특정 물리적 USB 주변 디바이스를 에뮬레이트하고;
    USB 프로토콜에 의해, 테스트 중인 컴퓨팅 디바이스에 대해 응답하고; 그리고
    제 2 프로토콜을 사용하여, 상기 물리적 USB 주변 디바이스의 USB 상호작용들을 시뮬레이트하는 테스트 실행기 컴퓨팅 디바이스와 통신하도록 구성되고,
    상기 복수의 에뮬레이팅 USB 하드웨어 디바이스들 중 하나로부터의 데이터는 상기 복수의 에뮬레이팅 USB 하드웨어 디바이스들 중 나머지 에뮬레이팅 USB 하드웨어 디바이스로부터의 응답을 타이밍하거나 또는 선택하는데 사용되는,
    컴퓨팅 시스템.
  10. 제 9 항에 있어서,
    상기 복수의 에뮬레이팅 유니버셜 시리얼 버스 하드웨어 디바이스들 중 적어도 하나는, 펌웨어를 재기록하지 않고 제 2 물리적 USB 주변 디바이스를 에뮬레이트하기 위해서 후속하는 세트의 특정 디스크립터들을 수신하도록 추가로 구성되는,
    컴퓨팅 시스템.
  11. 제 9 항에 있어서,
    상기 복수의 에뮬레이팅 유니버셜 시리얼 버스 하드웨어 디바이스들 중 적어도 하나는, 상기 테스트 실행기 컴퓨팅 디바이스로부터의 상호작용을 요구하지 않고 상기 테스트 중인 컴퓨팅 디바이스로부터 수신되는 특정 메시지들에 자동으로 응답하도록 추가로 구성되는,
    컴퓨팅 시스템.
  12. 제 9 항에 있어서,
    상기 복수의 에뮬레이팅 유니버셜 시리얼 버스 하드웨어 디바이스들 중 적어도 하나는, 상기 복수의 에뮬레이팅 USB 하드웨어 디바이스들 중 상기 적어도 하나에 대한 기능을 제공하는 상기 하나 이상의 마이크로컨트롤러들 상의 하나 이상의 입력/출력 포트들을 가지도록 추가로 구성되는,
    컴퓨팅 시스템.
  13. 제 12 항에 있어서,
    상기 하나 이상의 입력/출력 포트들은, 상기 적어도 하나의 에뮬레이팅 USB 하드웨어 디바이스로의 전력을 제어하는,
    컴퓨팅 시스템.
  14. 제 12 항에 있어서,
    상기 하나 이상의 입력/출력 포트들은, 넌-USB 주변 디바이스들에 대한 시리얼 포트인,
    컴퓨팅 시스템.
  15. 제 12 항에 있어서,
    상기 하나 이상의 입력/출력 포트들은, POS(Point of Sale) 캐시 드로워(cash drawer)와 통신하는 POS 캐시 드로워 포트인,
    컴퓨팅 시스템.
  16. 제 12 항에 있어서,
    상기 하나 이상의 입력/출력 포트들은, 상기 적어도 하나의 에뮬레이팅 USB 하드웨어 디바이스에 기능을 추가할 수 있는 확장 카드에 연결되는,
    컴퓨팅 시스템.
  17. 삭제
  18. 삭제
  19. 제 9 항에 있어서,
    상기 테스트 실행기 컴퓨팅 디바이스의 테스팅 프레임워크는, 프리-테스트 데이터 캡처, 테스트 케이스 실행, 및 포스트-테스트 데이터 캡처 및 검증(validation)을 포함하는,
    컴퓨팅 시스템.
  20. 제 9 항에 있어서,
    상기 테스트 중인 컴퓨팅 디바이스와의 USB 연결이 상기 에뮬레이팅 USB 하드웨어 디바이스와 상기 에뮬레이팅 USB 하드웨어 디바이스가 에뮬레이트하고 있는 상기 특정 물리적 USB 주변 디바이스 사이에서 스위칭되게 허용하는 USB 스위칭 디바이스를 더 포함하는,
    컴퓨팅 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020167021869A 2014-03-14 2015-03-13 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션 KR101874416B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/213,620 2014-03-14
US14/213,472 2014-03-14
US14/213,472 US9811480B2 (en) 2014-03-14 2014-03-14 Universal serial bus emulation of peripheral devices
US14/213,620 US9772956B2 (en) 2014-03-14 2014-03-14 Universal serial bus emulation of a host connection
PCT/US2015/020463 WO2015138912A1 (en) 2014-03-14 2015-03-13 Universal serial bus emulation of peripheral devices

Publications (2)

Publication Number Publication Date
KR20160108456A KR20160108456A (ko) 2016-09-19
KR101874416B1 true KR101874416B1 (ko) 2018-07-04

Family

ID=52774597

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167021869A KR101874416B1 (ko) 2014-03-14 2015-03-13 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션

Country Status (7)

Country Link
EP (1) EP3117327B1 (ko)
JP (1) JP6483142B2 (ko)
KR (1) KR101874416B1 (ko)
CN (1) CN105940384B (ko)
BR (1) BR112016021112B1 (ko)
DE (1) DE202015009308U1 (ko)
WO (1) WO2015138912A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110537171B (zh) * 2017-04-21 2023-04-14 雷蛇(亚太)私人有限公司 测试设备及用于对设备驱动器软件进行测试的方法
CN107590067A (zh) * 2017-08-01 2018-01-16 百富计算机技术(深圳)有限公司 通过pos模拟器进行测试的方法及装置
CN108763001A (zh) * 2018-05-25 2018-11-06 郑州云海信息技术有限公司 一种通用串行总线测试发包方法
CN109614332B (zh) * 2018-12-07 2021-11-02 中国航空工业集团公司洛阳电光设备研究所 一种硬件虚拟化分层建模方法
EP3779699B1 (en) * 2019-08-16 2024-06-05 Aptiv Technologies AG Method for checking program execution of a microcontroller, external device, system and non-transitory computer readable medium
CN110532140B (zh) * 2019-08-28 2022-12-13 北京国科环宇科技股份有限公司 一种1553b总线的仿真测试系统
CN113868044B (zh) * 2021-09-01 2024-05-31 中科可控信息产业有限公司 信号测试方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190238A1 (en) * 2005-02-24 2006-08-24 Autor Jeffrey S Methods and systems for managing a device
US20080021693A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Storage Device Simulator
US20090216517A1 (en) * 2008-02-27 2009-08-27 Ophir Herbst Dedicated simulator for testing a usb host solution

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464044B2 (en) * 1998-12-08 2008-12-09 International Business Machines Corporation Method and system for using emulation objects for developing point of sale
JP3750467B2 (ja) * 2000-02-28 2006-03-01 横河電機株式会社 Usbシミュレーション装置、及び、記憶媒体
JP2001244599A (ja) * 2000-02-28 2001-09-07 Ando Electric Co Ltd Icの実装構造及びbga形ic用位置固定シート
JP2004102716A (ja) * 2002-09-10 2004-04-02 Seiko Epson Corp シリアルインターフェースを有する電子装置
US7383547B1 (en) * 2004-12-03 2008-06-03 Lecroy Corporation Apparatus and technique for device emulation
US7752029B2 (en) * 2006-06-23 2010-07-06 Kyocera Mita Corporation Method to change USB device descriptors from host to emulate a new device
US7660937B2 (en) * 2006-06-28 2010-02-09 Hewlett-Packard Development Company, L.P. Emulating a USB host controller
US8069359B2 (en) * 2007-12-28 2011-11-29 Intel Corporation System and method to establish and dynamically control energy consumption in large-scale datacenters or IT infrastructures
US20110307847A1 (en) * 2010-06-10 2011-12-15 Global Unichip Corporation Hybrid system combining TLM simulators and HW accelerators

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060190238A1 (en) * 2005-02-24 2006-08-24 Autor Jeffrey S Methods and systems for managing a device
US20080021693A1 (en) * 2006-07-21 2008-01-24 Microsoft Corporation Storage Device Simulator
US20090216517A1 (en) * 2008-02-27 2009-08-27 Ophir Herbst Dedicated simulator for testing a usb host solution

Also Published As

Publication number Publication date
EP3117327A1 (en) 2017-01-18
WO2015138912A1 (en) 2015-09-17
DE202015009308U1 (de) 2017-02-01
BR112016021112B1 (pt) 2022-09-20
CN105940384B (zh) 2019-09-03
EP3117327B1 (en) 2021-03-03
KR20160108456A (ko) 2016-09-19
CN105940384A (zh) 2016-09-14
JP6483142B2 (ja) 2019-03-13
JP2017508202A (ja) 2017-03-23
BR112016021112A2 (pt) 2018-05-15

Similar Documents

Publication Publication Date Title
KR101874416B1 (ko) 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션
US9811480B2 (en) Universal serial bus emulation of peripheral devices
US9772956B2 (en) Universal serial bus emulation of a host connection
US6498999B1 (en) Method and apparatus for design verification of an integrated circuit using a simulation test bench environment
US8886513B2 (en) Embedded bus emulation
JP2004227588A (ja) Sdioカード開発システム
US7882395B2 (en) Debug device for embedded systems and method thereof
US10254335B2 (en) Controlling a test run on a device under test without directly controlling the test equipment within a vendor test platform testing the device under test
CN116627861B (zh) 基于扩展器的数据处理方法、系统、电子设备及存储介质
WO2014000299A1 (zh) 串口重定向处理方法、设备和系统
US20090216517A1 (en) Dedicated simulator for testing a usb host solution
CN113032246A (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
US11882038B2 (en) Transaction analyzer for communication bus traffic
CN100485637C (zh) 一种基于嵌入式应用系统实现硬件寄存器的方法
CN103095513A (zh) 加密机模拟测试装置及方法
US7047460B1 (en) Method and apparatus for testing a storage interface
KR101265233B1 (ko) 초기 저장장치 생산 및 테스트용 호스트 버스 아답터
JP2007164348A (ja) エミュレータ
Barnes et al. Towards the verification of industrial communication protocols through a simulation environment based on qemu and systemc
CN115599721A (zh) 端口切换方法、系统、计算设备及芯片
CN117421201A (zh) 自动化测试加速器
CN116055331A (zh) 一种全功能以太网物理层芯片模拟器及方法
CN111445989A (zh) 一种精浆分析仪模拟机模拟学习方法
CN109522006A (zh) 嵌入式多媒体播放框架
CN117319255A (zh) 网卡带外管理功能的测试方法、装置、介质以及终端

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant