KR101033177B1 - Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof - Google Patents

Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof Download PDF

Info

Publication number
KR101033177B1
KR101033177B1 KR1020080096875A KR20080096875A KR101033177B1 KR 101033177 B1 KR101033177 B1 KR 101033177B1 KR 1020080096875 A KR1020080096875 A KR 1020080096875A KR 20080096875 A KR20080096875 A KR 20080096875A KR 101033177 B1 KR101033177 B1 KR 101033177B1
Authority
KR
South Korea
Prior art keywords
program
usb
information
hub
usb device
Prior art date
Application number
KR1020080096875A
Other languages
Korean (ko)
Other versions
KR20100037670A (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 (주)인터넷커머스코리아
Priority to KR1020080096875A priority Critical patent/KR101033177B1/en
Publication of KR20100037670A publication Critical patent/KR20100037670A/en
Application granted granted Critical
Publication of KR101033177B1 publication Critical patent/KR101033177B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07732Physical layout of the record carrier the record carrier having a housing or construction similar to well-known portable memory devices, such as SD cards, USB or memory sticks

Abstract

본 발명은 업무 프로그램의 자동 테스트 과정 동안 USB 장치의 동작을 가상적으로 대행하는 에뮬레이터 및 그 동작 방법에 관한 것으로서, 에뮬레이터는, 슬레이브 컨트롤러, 네트워크 인터페이스 장치, 호스트 컨트롤러, 메모리, 및 CPU를 포함한다. 슬레이브 컨트롤러는 업무 프로그램이 설치된 PC에 접속되고, 네트워크 인터페이스 장치는 외부의 통신망에 접속된다. 호스트 컨트롤러는 USB 허브에 접속한 USB 장치로부터 장치 정보 및 상세 정보를 수신한다. 메모리는 제어 프로그램들을 저장한다. CPU는 제어 프로그램들 중 일부를 실행시키고, 장치 정보 및 상세 정보에 기초하여 USB 장치를 인식한다. CPU는 슬레이브 컨트롤러를 통하여 PC로부터 USB 장치에 대한 동작 요청 데이터를 수신할 때, 네트워크 인터페이스 장치로부터 재현 명령을 수신하였는지의 여부에 따라, USB 장치의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작, 또는 PC와 USB 장치간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 선택적으로 실행한다. 본 발명에 따르면, 사람에 의한 USB 장치의 조작이 필요 없는 업무 프로그램의 완전한 자동 테스트가 실현될 수 있고, 업무 프로그램의 테스트 시간이 단축될 수 있다.

Figure R1020080096875

USB 장치, USB 허브, 업무 프로그램, 자동 테스트 프로그램

The present invention relates to an emulator for virtually acting on the operation of a USB device during an automatic test process of a business program, and an operating method thereof. The emulator includes a slave controller, a network interface device, a host controller, a memory, and a CPU. The slave controller is connected to the PC on which the work program is installed, and the network interface device is connected to the external communication network. The host controller receives device information and detailed information from a USB device connected to a USB hub. The memory stores the control programs. The CPU executes some of the control programs and recognizes the USB device based on the device information and the detailed information. When the CPU receives the operation request data for the USB device from the PC through the slave controller, the first virtual USB hub operation virtually acts on behalf of the operation of the USB device according to whether or not a reproduction command is received from the network interface device. Or selectively execute a second virtual USB hub operation that interfaces the communication between the PC and the USB device. According to the present invention, a fully automatic test of a work program requiring no operation of a USB device by a person can be realized, and the test time of the work program can be shortened.

Figure R1020080096875

USB device, USB hub, business program, automatic test program

Description

업무 프로그램의 자동 테스트 과정 동안 USB 장치의 동작을 가상적으로 대행하는 에뮬레이터 및 그 동작 방법{Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof}Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method

본 발명은 PC(personal computer)에 연결되는 보조 장치에 관한 것으로서, 더욱 상세하게는, USB(universal serial bus) 장치의 동작을 대행하는 에뮬레이터(emulator) 및 그 동작 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an auxiliary device connected to a personal computer (PC), and more particularly, to an emulator and a method of operating the same for acting on a universal serial bus (USB) device.

일반적으로, PC에는 다양한 종류의 USB 장치들이 연결될 수 있다. 예를 들어, 은행이나 증권회사와 같은 금융 기관 내에서 사용되는 금융 업무용 PC에는, 각종 금융 업무의 전산화를 위한 주변기기로서, 핀 패드(pin pad), 직불카드 발급기, IC 리더기(integrated circuit reader), 통장 프린터(printer), 및 통장 리더기 등과 같은 USB 장치들이 연결될 수 있다.Generally, various types of USB devices can be connected to a PC. For example, a financial business PC used in a financial institution such as a bank or a securities company includes a pin pad, a debit card issuer, an integrated circuit reader, USB devices such as bankbook printers and bankbook readers can be connected.

사용자는 금융 업무용 PC를 통하여 금융 업무를 실행하면서, 금융 업무에 필요한 해당 USB 장치를 선택적으로 조작할 수 있다. 예를 들어, 자금 이체 업무와 같이 통장 계좌의 비밀번호를 입력해야 하는 금융 업무를 실행할 때, 사용자는 핀 패드에 비밀번호를 입력할 수 있다. 또, 거래 내역을 통장에 인쇄하는 통장 인자 업무를 실행할 때, 사용자는 통장 프린터에 통장을 삽입하는 조작을 할 수 있다.The user can selectively operate the corresponding USB device necessary for the financial business while executing the financial business through the financial business PC. For example, when performing a financial task that requires a password for a bank account, such as a money transfer task, a user may enter a password on a pin pad. In addition, when executing the bankbook printing job of printing the transaction details on the bankbook, the user can operate to insert the bankbook into the bankbook printer.

한편, 금융 업무용 PC에는 각종 금융 업무를 처리하는 금융 업무 프로그램이 설치된다. 새로운 금융 업무의 실행 기능을 추가하거나, 또는 특정 금융 업무의 실행 기능을 개선하기 위해, 프로그램 개발자에 의해, 좀 더 강화된 기능의 금융 업무 프로그램이 지속적으로 개발되고 있다. 새로 개발된 금융 업무 프로그램은 금융 기관의 금융 시스템에 적용되기 전에 테스트 되고, 이 테스트 과정에서 금융 업무 프로그램이 정상적으로 동작하는지의 여부가 검증된다.On the other hand, the financial business PC is installed with a financial business program that processes various financial business. In order to add the execution function of a new financial task or to improve the execution function of a specific financial task, a program of a more advanced financial task program is continuously developed. The newly developed financial business program is tested before it is applied to the financial institution's financial system, and this test verifies whether the financial business program is operating normally.

종래의 테스트 과정은 테스트 담당자의 수작업에 의해 이루어져 왔다. 즉, 테스트 담당자가 금융 업무용 PC와 USB 장치들을 각각의 금융 거래 업무별로 직접 조작한 후, 금융 업무용 PC에 표시된 금융 거래 업무의 처리 결과 화면을 보고, 금융 업무 프로그램이 정상적으로 동작하는지의 여부를 판단한다. 테스트 담당자의 수작업에 의한 테스트의 경우, 테스트 시간 및 비용이 증가하는 문제점이 있다.Conventional test procedures have been performed by manual test personnel. That is, the tester directly manipulates the financial business PC and the USB devices for each financial transaction task, and then views the processing result screen of the financial transaction task displayed on the financial business PC to determine whether the financial business program is operating normally. . In the case of manual testing by a tester, there is a problem in that test time and cost increase.

최근에는 테스트 시간 및 비용을 줄이기 위해, 금융 업무 프로그램을 자동으로 테스트하는 테스트 프로그램들이 개발되고 있다. 하지만 테스트 프로그램이 금융 업무 프로그램을 자동으로 테스트하는 동안에도, USB 장치(즉, 주변기기)의 동작이 필요한 금융 업무가 테스트 될 때에는, 테스트 담당자가 직접 해당 USB 장치를 조작해야만 한다.Recently, test programs have been developed to automatically test financial business programs in order to reduce test time and costs. However, even when the test program automatically tests the banking program, when a banking job that requires the operation of a USB device (i.e., a peripheral device) is tested, the tester must directly operate the USB device.

이처럼 USB 장치의 동작과 관련한 업무를 처리하는 업무 프로그램에 대한 테스트에 있어서는, 사람의 조작이 필요없는 완전한 자동 테스트의 실현이 어렵다. 따라서 업무 프로그램의 완전한 자동 테스트를 위해서는, 테스트 프로그램이 업무 프로그램을 자동으로 테스트하는 동안, 사람이 직접 조작하지 않더라도 USB 장치의 동작을 자동으로 대행할 수 있는 장치가 필요하다.As described above, in the test of the work program that handles the work related to the operation of the USB device, it is difficult to realize the fully automatic test that does not require human operation. Therefore, for a fully automatic test of the work program, while the test program automatically tests the work program, a device capable of automatically acting for the operation of the USB device even if a person does not directly operate.

따라서, 본 발명이 이루고자 하는 기술적 과제는 자동 테스트 프로그램이 업무 프로그램을 자동으로 실행시켜 테스트하는 동안, 업무 프로그램의 실행 과정에 필요한 USB 장치의 동작을 가상적으로 대행함으로써, 사람에 의한 USB 장치의 조작이 필요 없는 업무 프로그램의 완전한 자동 테스트를 실현할 수 있는 에뮬레이터를 제공하는 데 있다.Accordingly, the technical problem to be achieved by the present invention is to virtually substitute the operation of the USB device required for the execution of the work program while the automatic test program automatically executes the work program to test the operation of the USB device by humans. The goal is to provide an emulator that enables fully automated testing of unnecessary business programs.

본 발명이 이루고자 하는 다른 기술적 과제는 자동 테스트 프로그램이 업무 프로그램을 자동으로 실행시켜 테스트하는 동안, 업무 프로그램의 실행 과정에 필요한 USB 장치의 동작을 가상적으로 대행함으로써, 사람에 의한 USB 장치의 조작이 필요 없는 업무 프로그램의 완전한 자동 테스트를 실현할 수 있는 에뮬레이터의 동작 방법을 제공하는 데 있다.Another technical problem to be solved by the present invention is to virtually substitute the operation of the USB device required for the execution of the work program while the automatic test program automatically executes the work program, thereby requiring the manipulation of the USB device by a person. It is to provide a method of operation of the emulator that can realize fully automatic test of missing business program.

상기한 기술적 과제를 달성하기 위한 본 발명에 따른 에뮬레이터는, 제1 USB(universal serial bus) 포트(port)를 통하여, 업무 프로그램 및 자동 테스트 프로그램이 설치된 PC(personal computer)에 접속되는 슬레이브 컨트롤러; 통신 포트를 통하여, 외부의 통신망에 접속되는 네트워크 인터페이스 장치; 제2 USB 포트를 통하여, 외부의 USB 허브(hub)에 접속되고, 상기 USB 허브에 접속한 적어도 하나의 USB 장치에 주소를 할당하고, 상기 적어도 하나의 USB 장치로부터 장치 정보 및 상세 정보를 수신하는 호스트 컨트롤러; 상기 적어도 하나의 USB 장치의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작, 또는 상기 PC와 상기 적어도 하나의 USB 장치 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행하기 위한 제어 프로그램들을 저장하는 메모리; 및 상기 제어 프로그램들 중 일부를 실행시키고, 상기 호스트 컨트롤러로부터 수신되는 상기 장치 정보 및 상기 상세 정보에 기초하여 상기 적어도 하나의 USB 장치를 인식하는 CPU(central processor unit)를 포함한다.
여기에서, 상기 자동 테스트 프로그램은 상기 업무 프로그램이 실행되는 동안 발생하는 이벤트들을 기록하고, 기록한 상기 이벤트들을 상기 업무 프로그램에서 재현함으로써 상기 업무 프로그램을 자동으로 실행시켜 테스트하는 프로그램이다.
상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 기록될 때, 상기 PC는 기록 명령을 출력하고, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 상기 업무 프로그램에서 재현될 때, 상기 PC는 재현 명령을 출력한다.
상기 네트워크 인터페이스 장치는, 상기 통신망을 통하여 접속한 상기 PC로부터 수신되는 기록 명령 또는 재현 명령을 상기 CPU에 출력한다.
상기 CPU는 상기 슬레이브 컨트롤러를 통하여 상기 장치 정보 및 상기 상세 정보를 상기 PC에 전송함으로써 상기 적어도 하나의 USB 장치의 접속 상태를 상기 PC에 통보한다. 그리고, 상기 CPU는 상기 슬레이브 컨트롤러를 통하여 상기 PC로부터 상기 재현 명령을 수신한 후 상기 적어도 하나의 USB 장치에 대한 동작 요청 데이터를 수신할 때, 상기 네트워크 인터페이스 장치를 통하여 상기 PC에 상기 적어도 하나의 USB 장치에 대한 테스트용 입력 데이터를 요청하여 수신하고, 상기 테스트용 입력 데이터에 기초하여 테스트용 입력 정보를 생성하여 상기 슬레이브 컨트롤러를 통하여 상기 PC에 전송함으로써, 제1 가상의 USB 허브 동작을 실행한다.
상기 CPU는 상기 기록 명령을 수신한 후, 상기 적어도 하나의 USB 장치에 대한 동작 요청 데이터를 수신할 때, 상기 호스트 컨트롤러를 통하여 상기 적어도 하나의 USB 장치의 동작에 따른 입력 데이터를 수신하고, 상기 적어도 하나의 USB 장치의 동작에 따른 입력 데이터에 기초하여 생성한 제1 및 제2 입력 정보를 상기 슬레이브 컨트롤러 및 상기 네트워크 인터페이스 장치를 통하여 각각 상기 PC에 전송하고, 상기 동작 요청 데이터만을 수신할 때, 상기 제1 입력 정보를 상기 슬레이브 컨트롤러를 통하여 상기 PC에 전송함으로써, 제2 가상의 USB 허브 동작을 실행한다.
상기 테스트용 입력 데이터는 상기 자동 테스트 프로그램에 의해 생성되고, 상기 PC가 상기 슬레이브 컨트롤러로부터 수신한 상기 테스트용 입력 정보는, 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안 상기 업무 프로그램에 적용되며, 상기 PC가 상기 슬레이브 컨트롤러로부터 수신한 상기 제1 입력 정보는, 상기 업무 프로그램이 실행되는 동안 상기 업무 프로그램에 적용된다.
상기 PC가 상기 네트워크 인터페이스 장치를 통하여 상기 CPU로부터 수신한 상기 제2 입력 정보는 상기 자동 테스트 프로그램에 의해 상기 이벤트들 중 하나로서 기록된다.
상기 CPU가 상기 제1 가상의 USB 허브 동작을 실행하는 동안 상기 적어도 하나의 USB 장치는 동작을 정지하고, 상기 PC는 상기 CPU의 상기 제1 가상의 USB 허브 동작에 의해 상기 적어도 하나의 USB 장치가 동작하는 것으로 인식하며, 상기 업무 프로그램이 상기 PC에서 실행될 때, 상기 업무 프로그램에 의해 처리되는 업무들 중 일부는 상기 적어도 하나의 USB 장치의 동작과 관련한 업무를 포함한다.
According to an aspect of the present invention, an emulator includes: a slave controller connected to a personal computer (PC) on which a work program and an automatic test program are installed through a first universal serial bus (USB) port; A network interface device connected to an external communication network through a communication port; A second USB port is connected to an external USB hub, assigns an address to at least one USB device connected to the USB hub, and receives device information and detailed information from the at least one USB device. A host controller; A control program for executing a first virtual USB hub operation for virtually acting on the operation of the at least one USB device, or a second virtual USB hub operation for interfacing communication between the PC and the at least one USB device; Memory for storing the sound; And a central processor unit (CPU) that executes some of the control programs and recognizes the at least one USB device based on the device information and the detailed information received from the host controller.
Here, the automatic test program is a program for automatically executing and testing the business program by recording events occurring while the business program is executed and reproducing the recorded events in the business program.
When the events are recorded by the automatic test program in the PC, the PC outputs a recording command, and when the events are reproduced in the work program by the automatic test program in the PC, the PC reproduces the command. Outputs
The network interface device outputs to the CPU a write command or a reproduce command received from the PC connected via the communication network.
The CPU notifies the PC of the connection state of the at least one USB device by transmitting the device information and the detailed information to the PC through the slave controller. And when the CPU receives the operation request data for the at least one USB device after receiving the reproduction command from the PC through the slave controller, the at least one USB to the PC through the network interface device. Request and receive test input data for the device, and generate test input information based on the test input data and transmit the test input information to the PC through the slave controller, thereby executing the first virtual USB hub operation.
When the CPU receives the operation request data for the at least one USB device after receiving the write command, the CPU receives input data according to the operation of the at least one USB device through the host controller, When transmitting the first and second input information generated based on the input data according to the operation of one USB device to the PC through the slave controller and the network interface device, respectively, and receives only the operation request data, The second virtual USB hub operation is executed by transmitting first input information to the PC through the slave controller.
The test input data is generated by the automatic test program, and the test input information received by the PC from the slave controller is applied to the work program while the events are reproduced in the work program. The first input information received from the slave controller is applied to the work program while the work program is executed.
The second input information received by the PC from the CPU via the network interface device is recorded as one of the events by the automatic test program.
The at least one USB device stops operation while the CPU is executing the first virtual USB hub operation, and the PC is configured to cause the at least one USB device to be disconnected by the first virtual USB hub operation of the CPU. Recognized to operate, when the task program is executed on the PC, some of the tasks processed by the task program include tasks related to the operation of the at least one USB device.

삭제delete

삭제delete

상기한 다른 기술적 과제를 달성하기 위한 본 발명에 따른 에뮬레이터의 동작 방법은, 에뮬레이터가, 제1 USB 포트를 통하여, 업무 프로그램 및 자동 테스트 프로그램이 설치된 PC(personal computer)에 접속되는 단계; 제2 USB 포트를 통하여 접속된 외부의 USB 허브에 USB 장치가 접속될 때, 상기 에뮬레이터에 의해, 상기 USB 장치를 인식하는 단계; 상기 에뮬레이터에 의해, 상기 PC에 상기 USB 장치의 접속 상태를 통보하는 단계; 상기 에뮬레이터에 의해, 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신하는 단계; 상기 에뮬레이터에 의해, 외부의 통신망을 통하여 상기 PC로부터 재현 명령을 수신하였는지의 여부를 판단하는 단계; 상기 에뮬레이터에 의해, 상기 재현 명령을 수신한 경우, 상기 통신망을 통하여 테스트용 입력 정보를 상기 PC에 출력함으로써, 상기 USB 장치의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작을 실행하는 단계; 및 상기 에뮬레이터에 의해, 상기 재현 명령을 수신하지 않은 경우, 동작 제어 신호를 상기 USB 장치에 출력하고, 상기 USB 장치의 동작에 따른 입력 정보를 상기 PC에 출력함으로써, 상기 PC와 상기 USB 장치 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행하는 단계를 포함한다.
여기에서, 상기 업무 프로그램이 상기 PC에서 실행될 때, 상기 업무 프로그램에 의해 처리되는 업무들 중 일부는 상기 USB 장치의 동작과 관련한 업무를 포함한다.
상기 자동 테스트 프로그램은 상기 업무 프로그램이 실행되는 동안 발생하는 이벤트들을 기록하고, 기록한 상기 이벤트들을 상기 업무 프로그램에서 재현함으로써 상기 업무 프로그램을 자동으로 실행시켜 테스트하는 프로그램이다.
상기 제1 가상의 USB 허브 동작은, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안, 상기 에뮬레이터가 상기 통신망을 통하여 상기 PC로부터 상기 재현 명령을 수신한 후 상기 제1 USB 포트를 통하여 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신할 때, 상기 에뮬레이터가 상기 PC에 상기 USB 장치에 대한 테스트용 입력 데이터를 요청하여 수신하고, 상기 테스트용 입력 데이터에 기초하여 상기 테스트용 입력 정보를 생성하여 상기 제1 USB 포트를 통하여 상기 PC에 전송하는 동작이다.
상기 제2 가상의 USB 허브 동작은, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 기록되는 동안, 상기 통신망을 통하여 상기 PC로부터 기록 명령을 수신한 후, 상기 제1 USB 포트를 통하여 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신할 때, 상기 USB 허브를 통하여 상기 USB 장치의 동작에 따른 입력 데이터를 수신하고, 상기 USB 장치의 동작에 따른 입력 데이터에 기초하여 생성한 제1 및 제2 입력 정보를 상기 제1 USB 포트 및 상기 통신망을 통하여 각각 상기 PC에 전송하고, 상기 동작 요청 신호만을 수신할 때, 상기 제1 입력 정보를 상기 통신망을 통하여 상기 PC에 전송하는 동작이다.
상기 테스트용 입력 데이터는 상기 자동 테스트 프로그램에 의해 생성되고, 상기 PC가 상기 에뮬레이터로부터 수신한 상기 테스트용 입력 정보는, 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안 상기 업무 프로그램에 적용되며, 상기 PC가 상기 에뮬레이터로부터 수신한 상기 제1 입력 정보는, 상기 업무 프로그램이 실행되는 동안 상기 업무 프로그램에 적용된다.
상기 PC가 상기 통신망을 통하여 상기 에뮬레이터로부터 수신한 상기 제2 입력 정보는 상기 자동 테스트 프로그램에 의해 상기 이벤트들 중 하나로서 기록되고, 상기 에뮬레이터가 상기 제1 가상의 USB 허브 동작을 실행하는 동안 상기 USB 장치는 동작을 정지하며, 상기 PC는 상기 에뮬레이터의 상기 제1 가상의 USB 허브 동작에 의해 상기 USB 장치가 동작하는 것으로 인식한다.
According to another aspect of the present invention, there is provided a method of operating an emulator, including: connecting an emulator to a personal computer (PC) on which a work program and an automatic test program are installed through a first USB port; Recognizing, by the emulator, the USB device when the USB device is connected to an external USB hub connected through a second USB port; Notifying, by the emulator, the connection state of the USB device to the PC; Receiving, by the emulator, an operation request signal for the USB device from the PC; Determining, by the emulator, whether a reproduction command has been received from the PC via an external communication network; Executing, by the emulator, a first virtual USB hub operation that virtually acts on the operation of the USB device by outputting test input information to the PC through the communication network; And by the emulator, when the reproduction command is not received, outputting an operation control signal to the USB device, and outputting input information according to the operation of the USB device to the PC, thereby communicating between the PC and the USB device. And executing a second virtual USB hub operation that interfaces with each other.
Here, when the task program is executed on the PC, some of the tasks processed by the task program include tasks related to the operation of the USB device.
The automatic test program is a program for automatically executing and testing the work program by recording events occurring while the work program is executed and reproducing the recorded events in the work program.
The first virtual USB hub operation may be performed after the emulator receives the reproduction command from the PC through the communication network while the events are reproduced in the work program by the automatic test program in the PC. When receiving the operation request signal for the USB device from the PC through the USB port, the emulator requests and receives the test input data for the USB device from the PC, and based on the test input data, the emulator The test input information is generated and transmitted to the PC through the first USB port.
The second virtual USB hub operation may receive a recording command from the PC through the communication network while the events are recorded by the automatic test program on the PC, and then from the PC through the first USB port. When receiving the operation request signal for the USB device, the first and second received input data according to the operation of the USB device through the USB hub, and generated based on the input data according to the operation of the USB device When the input information is transmitted to the PC through the first USB port and the communication network, respectively, and only the operation request signal is received, the first input information is transmitted to the PC through the communication network.
The test input data is generated by the automatic test program, and the test input information received by the PC from the emulator is applied to the work program while the events are reproduced in the work program. The first input information received from the emulator is applied to the work program while the work program is running.
The second input information received by the PC from the emulator via the communication network is recorded as one of the events by the automatic test program, and the USB while the emulator executes the first virtual USB hub operation. The device stops operating, and the PC recognizes that the USB device is operating by the first virtual USB hub operation of the emulator.

상술한 것과 같이, 본 발명에 따른 에뮬레이터 및 그 동작 방법은, 자동 테스트 프로그램이 업무 프로그램을 자동으로 실행시켜 테스트하는 동안, 업무 프로그램의 실행 과정에 필요한 USB 장치의 동작을 가상적으로 대행할 수 있으므로, 사람에 의한 USB 장치의 조작이 필요 없는 업무 프로그램의 완전한 자동 테스트를 실현할 수 있다. 그 결과, 업무 프로그램의 테스트 시간이 단축될 수 있다.As described above, the emulator and its operation method according to the present invention can virtually substitute the operation of the USB device required for the execution process of the business program while the automatic test program automatically executes and tests the business program. It is possible to realize a fully automatic test of the work program that does not require human operation of the USB device. As a result, the test time of the work program can be shortened.

또한, 본 발명에 따른 에뮬레이터는 가상의 USB 허브 기능을 포함하므로, 하나의 에뮬레이터가 복수의 USB 장치의 동작을 대행할 수 있다. 따라서, 업무 프로그램의 자동 테스트를 위해, 업무 프로그램이 설치된 PC에, 복수의 USB 장치의 동작을 각각 대행하는 복수의 에뮬레이터가 접속될 필요가 없고, 하나의 에뮬레이터만 접속되면 되므로, 복수의 에뮬레이터의 제작에 따른 비용이 절감될 수 있다.In addition, since the emulator according to the present invention includes a virtual USB hub function, one emulator can act on a plurality of USB devices. Therefore, for the automatic test of the work program, it is not necessary to connect a plurality of emulators for each operation of a plurality of USB devices to the PC on which the work program is installed, and only one emulator needs to be connected. The cost can be reduced.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.Hereinafter, with reference to the accompanying drawings will be described a preferred embodiment of the present invention. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various forms, and only the present embodiments are intended to complete the disclosure of the present invention and to those skilled in the art. It is provided for complete information.

도 1은 본 발명의 일 실시예에 따른 에뮬레이터의 개략적인 구성과, 에뮬레이터에 연결된 PC, USB 허브 및 USB 장치들을 나타내는 도면이다. 도 1에는, 도면의 간략화를 위해, 본 발명과 관련된 부분들만이 도시되고, 각 구성 요소들 간의 송수신 신호들에 대한 도시가 생략된다. 에뮬레이터(emulator)(100)는 슬레이브 컨트롤러(slave controller)(110), 네트워크 인터페이스(network interface) 장치(120), 메모리(memory)(130), CPU(central processor unit)(140), 호스트 컨트롤러(host controller)(150), 및 전원 공급부(160)를 포함한다.1 is a schematic diagram of an emulator and a PC, a USB hub, and USB devices connected to the emulator according to an embodiment of the present invention. In FIG. 1, only parts related to the present invention are shown for simplicity of the drawings, and illustrations of transmission / reception signals between respective components are omitted. The emulator 100 may include a slave controller 110, a network interface device 120, a memory 130, a central processor unit 140, a host controller ( host controller 150, and a power supply unit 160.

슬레이브 컨트롤러(110)는 USB(universal serial bus) 포트(port)(101)를 통하여, PC(personal computer)(200)에 접속된다. 즉, 에뮬레이터(100)의 USB 포트(101)가 PC(200)의 USB 포트(201)에 접속된다. 이 후, 슬레이브 컨트롤러(110)는 PC(200)의 호스트 컨트롤러(210)와 통신한다. 네트워크 인터페이스 장치(120)는 통신 포트(102)를 통하여 외부의 통신망(300)에 접속된다. 네트워크 인터페이스 장치(120)는 통신망(300)에 접속한 PC(200)의 네트워크 인터페이스 장치(220)와 통신할 수 있고, 통신망(300)에 접속한 외부의 제어 장치(미도시)와 통신할 수 있다.The slave controller 110 is connected to a personal computer (PC) 200 through a universal serial bus (USB) port 101. That is, the USB port 101 of the emulator 100 is connected to the USB port 201 of the PC 200. Thereafter, the slave controller 110 communicates with the host controller 210 of the PC 200. The network interface device 120 is connected to the external communication network 300 through the communication port 102. The network interface device 120 may communicate with the network interface device 220 of the PC 200 connected to the communication network 300, and may communicate with an external control device (not shown) connected to the communication network 300. have.

메모리(130)는 논리 허브(hub) 프로그램(141), 주제어 프로그램(142), 운영체제 프로그램(143), 및 가상 드라이버(virtual driver) 프로그램들(VD1∼VDK)(K는 정수)을 포함하는 제어 프로그램들을 저장한다. 상기 제어 프로그램들은 USB 장치(U1∼UK 중 적어도 하나)의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작, 또는 PC(200)와 USB 장치(U1∼UK 중 적어도 하나) 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행하기 위한 프로그램들이다. 에뮬레이터(100)는 입력 장치(170)를 더 포함할 수 있다. 입력 장치(170)는 사용자의 조작에 따라, CPU(140)가 추가의 가상 드라이버 프로그램을 메모리(130)에 저장하도록, CPU(140)에 상기 추가의 가상 드라이버 프로그램을 입력한다.The memory 130 includes a control including a logical hub program 141, a main control program 142, an operating system program 143, and virtual driver programs VD1 to VDK (K is an integer). Save the programs. The control programs mutually interface a first virtual USB hub operation that virtually acts on an operation of a USB device (at least one of U1 to UK), or communication between the PC 200 and the USB device (at least one of U1 to UK). Programs for executing a second virtual USB hub operation. The emulator 100 may further include an input device 170. The input device 170 inputs the additional virtual driver program to the CPU 140 so that the CPU 140 stores the additional virtual driver program in the memory 130 according to a user's operation.

CPU(140)는 전원 공급부(160)로부터 내부 전원(IPWR)을 공급받으면 이를 인식하고, 논리 허브 프로그램(141), 주제어 프로그램(142), 및 운영체제 프로그램(143)을 실행시킨다. CPU(140)는 호스트 컨트롤러(150)로부터 수신되는 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)에 기초하여 해당 USB 장치를 인식한다. 장치 정보들(DVF1∼DVFK) 각각은 USB 장치들(U1∼UK) 각각에 대한, USB 장치의 이름, USB 스펙 버전(spec version) 정보, 및 USB 장치에 전송되는 통신 패킷(packet)의 최대 길이 정보를 포함한다. 상세 정보들(DSF1∼DSFK) 각각은 USB 장치들(U1∼UK) 각각에 대한, 제조회사 ID(identification), 제품번호, 펌웨어(firm ware) 버전 정보, 및 제조회사 이름을 포함한다.The CPU 140 recognizes the internal power source IPWR from the power supply unit 160 and executes the logical hub program 141, the main control program 142, and the operating system program 143. The CPU 140 recognizes the corresponding USB device based on the device information (one of the DVF1 to the DVFK) and the detailed information (one of the DSF1 to the DSFK) received from the host controller 150. Each of the device information DVF1 to DVFK includes a name of the USB device, USB spec version information, and a maximum length of a communication packet transmitted to the USB device for each of the USB devices U1 to UK. Contains information. Each of the detailed information DSF1 to DSFK includes a manufacturer identification, a product number, firmware version information, and a manufacturer name for each of the USB devices U1 to UK.

CPU(140)는 슬레이브 컨트롤러(110)를 통하여 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)를 PC(200)에 전송함으로써, 해당 USB 장 치(U1∼UK 중 하나)의 접속 상태를 PC(200)에 통보한다(즉, 해당 USB 장치(U1∼UK 중 하나)가 에뮬레이터(100)에 접속되었음을 PC(200)에 알린다). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 PC(200)로부터 USB 장치(U1∼UK 중 하나)에 대한 동작 요청 데이터(RQD1∼RQDK 중 하나)를 수신할 때, 네트워크 인터페이스 장치(120)로부터 재현 명령(RPCMD)을 수신하였는지의 여부를 판단한다.The CPU 140 transmits the device information (one of the DVF1 to the DVFK) and the detailed information (one of the DSF1 to the DSFK) to the PC 200 through the slave controller 110, thereby providing one of the corresponding USB devices (U1 to UK). The PC 200 is notified of the connection state (that is, the PC 200 is informed that the corresponding USB device (one of U1 to UK) is connected to the emulator 100). When the CPU 140 receives the operation request data (one of RQD1 to RQDK) for the USB device (one of U1 to UK) from the PC 200 via the slave controller 110, the CPU 140 from the network interface device 120. It is determined whether or not a reproduction command (RPCMD) has been received.

이 후, CPU(140)는 재현 명령(RPCMD)의 수신 여부에 따라, USB 장치(U1∼UK 중 적어도 하나)의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작, 또는 PC(200)와 USB 장치(U1∼UK 중 적어도 하나) 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 선택적으로 실행한다. CPU(140)가 상기 제1 가상의 USB 허브 동작을 실행하는 동안 해당 USB 장치(U1∼UK 중 하나)는 동작을 정지하고, PC(200)는 CPU(140)의 상기 제1 가상의 USB 허브 동작에 의해 해당 USB 장치(U1∼UK 중 하나)가 동작하는 것으로 인식한다.Thereafter, the CPU 140 may operate with the first virtual USB hub or the PC 200 to virtually substitute the operation of the USB device (at least one of U1 to UK) according to whether or not the reproduction command RPCMD is received. A second virtual USB hub operation for interfacing communication between USB devices (at least one of U1 to UK) is selectively executed. While the CPU 140 executes the first virtual USB hub operation, the corresponding USB device (one of U1 to UK) stops operation, and the PC 200 determines the first virtual USB hub of the CPU 140. By operation, the USB device (one of U1 to UK) is recognized as operating.

호스트 컨트롤러(150)는 USB 포트(103)를 통하여, 외부의 USB 허브(400)에 접속된다. 즉, 에뮬레이터(100)의 USB 포트(101)가 USB 허브(400)의 USB 포트(401)에 접속된다. 호스트 컨트롤러(150)는 USB 허브(400)에 접속한 USB 장치(U1∼UK 중 적어도 하나)에 주소(AD1∼ADK 중 적어도 하나)를 할당한다. 호스트 컨트롤러(150)는 USB 장치(U1∼UK 중 적어도 하나)로부터 장치 정보(DVF1∼DVFK 중 적어도 하나) 및 상세 정보(DSF1∼DSFK 중 적어도 하나)를 수신한다. 호스트 컨트롤러(150)는 USB 장치(U1∼UK 중 적어도 하나)에 할당한 주소(AD1∼ADK 중 적어도 하나)와 함께 장치 정보(DVF1∼DVFK 중 적어도 하나) 및 상세 정보(DSF1∼DSFK 중 적어도 하나) 를 저장한다. 호스트 컨트롤러(150)는 CPU(140)가 상기 제2 가상의 USB 허브 동작을 실행할 때, CPU(140)와 USB 장치(U1∼UK 중 적어도 하나) 간의 통신을 인터페이스 한다. 이때, 호스트 컨트롤러(150)는 주소(AD1∼ADK 중 적어도 하나)를 이용하여 USB 장치(U1∼UK 중 적어도 하나)를 식별한다.The host controller 150 is connected to an external USB hub 400 through the USB port 103. That is, the USB port 101 of the emulator 100 is connected to the USB port 401 of the USB hub 400. The host controller 150 assigns an address (at least one of AD1 to ADK) to a USB device (at least one of U1 to UK) connected to the USB hub 400. The host controller 150 receives device information (at least one of DVF1 to DVFK) and detailed information (at least one of DSF1 to DSFK) from the USB device (at least one of U1 to UK). The host controller 150 includes at least one of device information (at least one of DVF1 to DVFK) and detailed information (DSF1 to DSFK) together with an address (at least one of AD1 to ADK) assigned to a USB device (at least one of U1 to UK). Save). The host controller 150 interfaces communication between the CPU 140 and the USB device (at least one of U1 to UK) when the CPU 140 executes the second virtual USB hub operation. At this time, the host controller 150 identifies the USB device (at least one of U1 to UK) by using the address (at least one of AD1 to ADK).

외부 전원(EPWR)이 전원 공급부(160)에 입력될 때, 전원 공급부(160)는 외부 전원(EPWR)에 기초하여 내부 전원(IPWR)을 생성하고, 내부 전원(IPWR)을 에뮬레이터(100) 내의 각 장치들, 즉, 슬레이브 컨트롤러(110), 네트워크 인터페이스 장치(120), 메모리(130), CPU(140), 호스트 컨트롤러(150), 입력 장치(170)에 공급한다.When the external power source EPWR is input to the power supply unit 160, the power supply unit 160 generates the internal power source IPWR based on the external power source EPWR, and generates the internal power source IPWR within the emulator 100. Each device is supplied to the slave controller 110, the network interface device 120, the memory 130, the CPU 140, the host controller 150, and the input device 170.

PC(200)는 호스트 컨트롤러(210), 네트워크 인터페이스 장치(220), 메모리(230), CPU(240), 및 주변 장치부(250)를 포함한다. 메모리(230)에는 업무 프로그램(241), 자동 테스트 프로그램(242), 운영체제 프로그램(243), 및 드라이버 프로그램들(D1∼DK)이 저장될 수 있다. 주변 장치부(250)에 포함된 입력부(미도시)를 통한 사용자의 입력에 따라, CPU(240)가 업무 프로그램(241)과 자동 테스트 프로그램(242)을 실행시킬 수 있다.The PC 200 includes a host controller 210, a network interface device 220, a memory 230, a CPU 240, and a peripheral device unit 250. The memory program 230 may store a business program 241, an automatic test program 242, an operating system program 243, and driver programs D1 to DK. According to a user's input through an input unit (not shown) included in the peripheral device unit 250, the CPU 240 may execute the work program 241 and the automatic test program 242.

CPU(240)에서 자동 테스트 프로그램(242)이 실행될 때, 자동 테스트 프로그램(242)은 업무 프로그램(241)이 실행되는 동안 발생하는 이벤트들을 기록한다. 이 후, 자동 테스트 프로그램(242)은 기록한 상기 이벤트들을 업무 프로그램(241)에서 재현함으로써, 업무 프로그램(241)을 자동으로 실행시켜 테스트한다. 여기에서, 이벤트는 업무 프로그램(241)의 각 업무 처리 화면을 이루는 구성 요소들(예를 들어, 버튼(button), 콤보 박스(combo box), 텍스트(text) 입력란, 레이블(label) 등)에서 발생하는 이벤트를 의미한다. 예를 들어, 사용자가 특정 업무 처리 화면에서 특정 업무를 실행하기 위해 특정 버튼을 클릭(click)한 경우, 해당 버튼에서 "클릭"의 이벤트가 발생한 것이다. 또, 사용자가 특정 업무 처리 화면에서 텍스트 입력란에 특정 텍스트를 입력한 경우, 해당 텍스트 입력란에서 "텍스트 입력"의 이벤트가 발생한 것이다.When the automatic test program 242 is executed in the CPU 240, the automatic test program 242 records events that occur while the business program 241 is executed. Thereafter, the automatic test program 242 reproduces the recorded events in the work program 241, thereby automatically executing and testing the work program 241. In this case, the event is a component of each business processing screen of the business program 241 (for example, a button, a combo box, a text field, a label, and the like). It means an event that occurs. For example, when a user clicks a specific button to execute a specific task on a specific task processing screen, an event of "click" has occurred in the corresponding button. In addition, when a user inputs a specific text in a text input box on a specific work processing screen, an event of "text input" occurs in the text input box.

한편, 자동 테스트 프로그램(242)은 업무 프로그램(241)의 이벤트들을 기록할 때, 네트워크 인터페이스 장치(220)를 통하여 기록 명령(RCCMD)을 에뮬레이터(100)에 전송할 수 있다. 자동 테스트 프로그램(242)이 상기 이벤트들을 업무 프로그램(241)에서 재현할 때, 네트워크 인터페이스 장치(220)를 통하여 재현 명령(RPCMD)을 에뮬레이터(100)에 전송할 수 있다. 선택적으로, 자동 테스트 프로그램(242)은 통신망(300)에 접속한 외부의 제어 장치(미도시)에 설치될 수도 있다. 이 경우, 에뮬레이터(100)는 상기 제어 장치로부터 기록 명령(RCCMD) 또는 재현 명령(RPCMD)을 수신한다.Meanwhile, the automatic test program 242 may transmit a recording command RCCMD to the emulator 100 through the network interface device 220 when recording the events of the work program 241. When the automatic test program 242 reproduces the events in the work program 241, the reproducing command (RPCMD) may be transmitted to the emulator 100 through the network interface device 220. Optionally, the automatic test program 242 may be installed in an external control device (not shown) connected to the communication network 300. In this case, the emulator 100 receives a write command RCCMD or a reproduce command RPCMD from the control device.

업무 프로그램(241)이 CPU(240)에서 실행될 때, 업무 프로그램(241)에 의해 처리되는 업무들 중 일부는 USB 장치(U1∼UK 중 적어도 하나)의 동작과 관련한 업무를 포함한다. 예를 들어, 업무 프로그램(241)이 은행이나 증권회사와 같은 금융 기관에서 사용되는 금융 업무 프로그램인 경우, USB 장치(U1∼UK)는 핀 패드(pin pad), 직불카드 발급기, IC 리더기(integrated circuit reader), 통장 프린터(printer), 및 통장 리더기 등을 포함할 수 있다. 이 경우, 금융 업무 프로그램 에 의해 실행되는 자금 이체 업무는, 핀 패드에 해당 계좌의 비밀번호가 입력되어야만 처리될 수 있는 업무로서, USB 장치의 동작과 관련된 업무에 해당한다. 또, 금융 업무 프로그램에 의해 실행되는 통장 인자 업무는, 통장 프린터에 통장이 삽입되어야만 처리될 수 있는 업무로서, USB 장치의 동작과 관련된 업무에 해당한다.When the work program 241 is executed in the CPU 240, some of the tasks processed by the work program 241 include tasks related to the operation of the USB device (at least one of U1 to UK). For example, if the business program 241 is a financial business program used by a financial institution such as a bank or a securities company, the USB device U1 to UK may be a pin pad, a debit card issuer, or an IC reader. a circuit reader, a bankbook printer, a bankbook reader, and the like. In this case, the money transfer task executed by the financial affairs program is a task that can be processed only when a password of the corresponding account is input to the pin pad, and corresponds to a task related to the operation of the USB device. In addition, the bankbook printing job executed by the financial business program is a job that can be processed only when the bankbook is inserted into the bankbook printer and corresponds to a job related to the operation of the USB device.

다음으로, 도 2 내지 도 8을 참고하여, 에뮬레이터(200)의 동작 과정을 좀 더 상세히 설명한다. 도 2에는 도면의 간략화를 위해 일부 장치들의 도시가 생략된다. 한편, 도 3에 도시되지 않았지만, 외부 전원(EPWR)이 에뮬레이터(100)에 공급되면, 전원 공급부(160)가 외부 전원(EPWR)에 기초하여, 내부 전원(IPWR)을 생성하고, 내부 전원(IPWR)을 에뮬레이터(100)내의 각 장치들에 공급한다. 그 결과, CPU(140)가 내부 전원(IPWR)의 공급을 인식하고, 메모리(130)에 저장된 제어 프로그램들 중 일부인, 논리 허브 프로그램(141), 주제어 프로그램(142), 및 운영체제 프로그램(143)을 실행한다. 설명의 편의상, 에뮬레이터(100)에 외부 전원(EPWR)이 공급되어, CPU(140)에서 논리 허브 프로그램(141), 주제어 프로그램(142), 및 운영체제 프로그램(143)이 실행되고 있는 것으로 가정하여, 에뮬레이터(200)의 동작 과정을 설명하기로 한다.Next, the operation of the emulator 200 will be described in more detail with reference to FIGS. 2 to 8. 2, some of the devices are omitted for simplicity of the drawings. Although not shown in FIG. 3, when the external power source EPWR is supplied to the emulator 100, the power supply unit 160 generates the internal power source IPWR based on the external power source EPWR, and generates an internal power source ( IPWR) is supplied to each device in the emulator 100. As a result, the CPU 140 recognizes the supply of the internal power source IPWR, and is a logical hub program 141, a main control program 142, and an operating system program 143 which are some of the control programs stored in the memory 130. Run For convenience of explanation, assuming that the external power source EPWR is supplied to the emulator 100 so that the logical hub program 141, the main control program 142, and the operating system program 143 are executed in the CPU 140. An operation process of the emulator 200 will be described.

먼저, 도 3을 참고하면, 에뮬레이터(100)가 업무 프로그램(241)이 설치된 PC(200)에 접속된다(단계 1001). 에뮬레이터(100)는 USB 포트(103)를 통하여 접속된 외부의 USB 허브(400)에 USB 장치(U1∼UK 중 하나)가 접속되는지의 여부를 판단한다(단계 1002). 에뮬레이터(100)는 USB 허브(400)에 USB 장치(U1∼UK 중 하나)가 접속될 때, USB 허브(400)에 접속된 USB 장치(U1∼UK 중 하나)를 인식한다(단계 1003). 에뮬레이터(100)는 PC(200)에 USB 장치(U1∼UK 중 하나)의 접속 상태를 통보한다(단계 1004).First, referring to FIG. 3, the emulator 100 is connected to a PC 200 in which a work program 241 is installed (step 1001). The emulator 100 determines whether a USB device (one of U1 to UK) is connected to an external USB hub 400 connected through the USB port 103 (step 1002). When the USB device 400 (one of U1 to UK) is connected to the USB hub 400, the emulator 100 recognizes the USB device (one of U1 to UK) connected to the USB hub 400 (step 1003). The emulator 100 notifies the PC 200 of the connection state of the USB device (one of U1 to UK) (step 1004).

이 후, 에뮬레이터(100)는 USB 허브(400)에 추가의 USB 장치(U1∼UK 중 다른 하나)가 접속되는지의 여부를 판단한다(단계 1005). USB 허브(400)에 추가의 USB 장치(U1∼UK 중 다른 하나)가 접속될 경우, 에뮬레이터(100)는 상기 단계 1003 내지 단계 1005의 동작을 반복한다. USB 허브(400)에 추가의 USB 장치(U1∼UK 중 다른 하나)가 접속되지 않을 때, 에뮬레이터(100)는 USB 포트(101)를 통하여 PC(200)로부터 USB 장치(U1∼UK 중 하나)에 대한 동작 요청 신호(RQS1∼RQSK 중 하나)를 수신한다(단계 1006).Thereafter, the emulator 100 determines whether an additional USB device (the other one of U1 to UK) is connected to the USB hub 400 (step 1005). When an additional USB device (another one of U1 to UK) is connected to the USB hub 400, the emulator 100 repeats the operations of steps 1003 to 1005. When no additional USB device (other of U1 to UK) is connected to the USB hub 400, the emulator 100 is connected to the USB device (one of U1 to UK) from the PC 200 via the USB port 101. Receive an operation request signal (one of RQS1 to RQSK) for step 1006.

에뮬레이터(100)는 외부의 통신망(300)을 통하여 재현 명령(RPCMD)을 수신하였는지의 여부를 판단한다(단계 1007). 재현 명령(RPCMD)을 수신한 경우, 에뮬레이터(100)는 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 PC(200)에 출력함으로써, USB 장치(U1∼UK 중 하나)의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작을 실행한다(단계 1008). 에뮬레이터(100)는 가상의 USB 허브 기능을 포함하므로, 복수의 USB 장치의 동작을 대행할 수 있다. 따라서, PC(200)에는 하나의 에뮬레이터(100)만 접속되어도, 업무 프로그램(241)의 자동 테스트가 가능해진다. 만약, 에뮬레이터(100)가 가상의 USB 허브 기능을 포함하지 않는다면, 복수의 USB 장치의 동작을 각각 대행하는 복수의 에뮬레이터가 PC(200)에 접속되어야 하고, 이 경우, 복수의 에뮬레이터의 제작에 따른 비용이 발생된다.The emulator 100 determines whether a reproduction command RPCMD has been received through the external communication network 300 (step 1007). When receiving the reproduction command RPCMD, the emulator 100 outputs test input information (one of TSF1 to TSFK) to the PC 200 to virtually act on the operation of the USB device (one of U1 to UK). The first virtual USB hub operation is performed (step 1008). Since the emulator 100 includes a virtual USB hub function, the emulator 100 can perform operations of a plurality of USB devices. Therefore, even if only one emulator 100 is connected to the PC 200, the automatic test of the work program 241 is possible. If the emulator 100 does not include a virtual USB hub function, a plurality of emulators that respectively perform operations of a plurality of USB devices should be connected to the PC 200, and in this case, according to the manufacture of the plurality of emulators There is a cost.

재현 명령(RPCMD)을 수신하지 않은 경우, 에뮬레이터(100)는 동작 제어 신 호(CTL1∼CTLK 중 하나)를 USB 장치(U1∼UK 중 하나)에 출력하고, USB 장치(U1∼UK 중 하나)의 동작에 따른 입력 정보(FIF1∼FIFK 중 하나, 또는 SIF1∼SIFK 중 하나)를 PC(200)에 출력함으로써, PC(200)와 USB 장치(U1∼UK 중 하나) 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행한다(단계 1009).If the reproduction command (RPCMD) is not received, the emulator 100 outputs an operation control signal (one of CTL1 to CTLK) to the USB device (one of U1 to UK), and the USB device (one of U1 to UK). Outputting input information (one of FIF1 to FIFK or one of SIF1 to SIFK) according to the operation of the PC 200 to the PC 200, thereby interfacing communication between the PC 200 and the USB device (one of U1 to UK). 2 Perform a virtual USB hub operation (step 1009).

에뮬레이터(100)는 USB 포트(101)를 통하여 PC(200)로부터 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신되는지의 여부를 판단한다(단계 1010). 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신될 때, 에뮬레이터(100)는 상기 단계 1007 내지 단계 1010의 동작을 반복한다. 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신되지 않을 때, 에뮬레이터(100)는 동작을 정지한다.The emulator 100 determines whether an additional operation request signal (the other one of RQS1 to RQSK) is received from the PC 200 via the USB port 101 (step 1010). When an additional operation request signal (the other of RQS1 to RQSK) is received, the emulator 100 repeats the operations of steps 1007 to 1010 above. When no additional operation request signal (the other of RQS1 to RQSK) is received, the emulator 100 stops operating.

도 4는 도 3에 도시된 PC에 접속하는 과정을 좀 더 상세히 나타낸 흐름도이다.4 is a flowchart illustrating a process of connecting to a PC illustrated in FIG. 3 in more detail.

먼저, 에뮬레이터(100)의 USB 포트(101)가 PC(200)의 USB 포트(201)에 연결된다(단계 1101). 이때, 호스트 컨트롤러(210)는 PC(200)에 어떤 장치가 접속되었는지를 인식하기 위해, 제1 요청 신호(FRQS1)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)가 설정된 통신 프로토콜(protocol) 형식의 통신 신호인, 제1 요청 신호(FRQS1)를 논리 데이터 형식의 제1 요청 데이터(FRQD1)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)가 제1 요청 데이터(FRQD1)를 수신한다(단계 1102).First, the USB port 101 of the emulator 100 is connected to the USB port 201 of the PC 200 (step 1101). In this case, the host controller 210 transmits a first request signal FRQS1 to the slave controller 110 to recognize which device is connected to the PC 200. The slave controller 110 converts the first request signal FRQS1, which is a communication signal of a set communication protocol type, into first request data FRQD1 of a logical data type, and outputs it to the CPU 140. As a result, the CPU 140 receives the first request data FRQD1 (step 1102).

CPU(140)에서 실행되는 논리 허브 프로그램(141)은 제1 요청 데이터(FRQD1)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 장치 정보 데이터(HDVF)를 생성한다(단계 1103).The logical hub program 141 executed in the CPU 140 generates the device information data HDVF for the virtual USB hub implemented by the logical hub program 141 as a response to the first request data FRQD1. (Step 1103).

CPU(140)는 슬레이브 컨트롤러(110)를 통하여 장치 정보 데이터(HDVF)를 호스트 컨트롤러(210)에 전송한다(단계 1104). 이를 좀 더 상세히 설명하면, 슬레이브 컨트롤러(110)가 논리 데이터 형식의 장치 정보 데이터(HDVF)를 설정된 통신 프로토콜 형식의 통신 신호인, 장치 정보 신호(HDVFS)로 변환하여 호스트 컨트롤러(210)에 전송한다. 상술한 것과 같이, 슬레이브 컨트롤러(110)는 호스트 컨트롤러(210)로부터 수신되는 설정된 통신 프로토콜 형식의 모든 통신 신호를 논리 데이터 형식의 데이터로 변환하여 CPU(140)에 출력한다. 또, 슬레이브 컨트롤러(110)는 CPU(140)로부터 수신되는 논리 데이터 형식의 모든 데이터를 설정된 통신 프로토콜 형식의 통신 신호로 변환하여 호스트 컨트롤러(210)에 전송한다.The CPU 140 transmits the device information data HDVF to the host controller 210 through the slave controller 110 (step 1104). In more detail, the slave controller 110 converts the device information data HDVF in a logical data format into a device information signal HDVFS, which is a communication signal in a set communication protocol format, and transmits the same to the host controller 210. . As described above, the slave controller 110 converts all communication signals of the set communication protocol format received from the host controller 210 into data of logical data format and outputs them to the CPU 140. In addition, the slave controller 110 converts all data of the logical data format received from the CPU 140 into a communication signal of the set communication protocol format and transmits it to the host controller 210.

호스트 컨트롤러(210)는 장치 정보 신호(HDVFS)를 수신하고, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 허브 주소(HBAD)를 할당하고, 허브 주소(HBAD)를 슬레이브 컨트롤러(110)에 전송한다. 그 결과, CPU(140)가 슬레이브 컨트롤러(110)를 통하여 허브 주소(HBAD)를 수신한다(단계 1105). 허브 주소(HBAD)는 CPU(140)에서 실행되는 논리 허브 프로그램(141)에 전달된다. The host controller 210 receives the device information signal HDVFS, assigns a hub address HBAD to a virtual USB hub implemented by the logical hub program 141, and assigns the hub address HBAD to the slave controller 110. To be sent). As a result, the CPU 140 receives the hub address HBAD via the slave controller 110 (step 1105). The hub address HBAD is passed to the logical hub program 141 running on the CPU 140.

논리 허브 프로그램(141)은 허브 주소(HBAD)를 기록한다(단계 1106). 이 후, 논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)로부터 수신되는 데이터들 중에서 허브 주소(HBAD)를 포함하지 않는 데이터들만을 주제어 프로그램(142)에 전달한다.The logical hub program 141 records the hub address HBAD (step 1106). Thereafter, the logical hub program 141 transmits only data that does not include the hub address HBAD among the data received from the slave controller 110 to the main control program 142.

이 후, 호스트 컨트롤러(210)는 제2 요청 신호(FRQS2)를 슬레이브 컨트롤 러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제2 요청 신호(FRQS2)를 논리 데이터 형식의 제2 요청 데이터(FRQD2)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)가 제2 요청 데이터(FRQD2)를 수신한다(단계 1107).Thereafter, the host controller 210 transmits the second request signal FRQS2 to the slave controller 110. The slave controller 110 converts the second request signal FRQS2 into second request data FRQD2 in a logical data format and outputs the same to the CPU 140. As a result, the CPU 140 receives the second request data FRQD2 (step 1107).

논리 허브 프로그램(141)은 제2 요청 데이터(FRQD2)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 상세 정보 데이터(HDSF)를 생성한다(단계 1108). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 상세 정보 데이터(HDSF)를 호스트 컨트롤러(210)에 전송한다(단계 1109).The logical hub program 141 generates the detailed information data HDSF for the virtual USB hub implemented by the logical hub program 141 as a response to the second request data FRQD2 (step 1108). The CPU 140 transmits the detailed information data HDSF to the host controller 210 through the slave controller 110 (step 1109).

호스트 컨트롤러(210)는 장치 정보 데이터(HDVF)와 상세 정보 데이터(HDSF)에 기초하여, 에뮬레이터(100)를 상기 가상의 USB 허브로 인식한다. 호스트 컨트롤러(210)는 허브 주소(HBAD)와 함께 장치 정보 데이터(HDVF)와 상세 정보 데이터(HDSF)를 저장한다.The host controller 210 recognizes the emulator 100 as the virtual USB hub based on the device information data HDVF and the detailed information data HDSF. The host controller 210 stores the device information data HDVF and the detailed information data HDSF together with the hub address HBAD.

호스트 컨트롤러(210)는 제3 요청 신호(FRQS3)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제3 요청 신호(FRQS3)를 논리 데이터 형식의 제3 요청 데이터(FRQD3)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)가 제3 요청 데이터(FRQD3)를 수신한다(단계 1110).The host controller 210 transmits a third request signal FRQS3 to the slave controller 110. The slave controller 110 converts the third request signal FRQS3 into third request data FRQD3 having a logical data format and outputs the same to the CPU 140. As a result, the CPU 140 receives the third request data FRQD3 (step 1110).

논리 허브 프로그램(141)은 제3 요청 데이터(FRQD3)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 허브 정보 데이터(HDHF)를 생성한다(단계 1111). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 허브 정보 데이터(HDHF)를 호스트 컨트롤러(210)에 전송한다(단계 1112). 여기에서, 허브 정보 데이터(HDHF)는 상기 가상의 USB 허브의 포트 개수와 전원 공급 방식에 대한 정보를 포함한다.The logical hub program 141 generates the hub information data HDHF for the virtual USB hub implemented by the logical hub program 141 as a response to the third request data FRQD3 (step 1111). The CPU 140 transmits the hub information data HDHF to the host controller 210 through the slave controller 110 (step 1112). Here, the hub information data HDHF includes information about the number of ports and a power supply scheme of the virtual USB hub.

호스트 컨트롤러(210)는 허브 정보 데이터(HDHF)에 기초하여, 상기 가상의 USB 허브의 포트 개수를 인식하고, 허브 포트 초기화 명령(ICMD)을 슬레이브 컨트롤러(110)에 전송한다. 그 결과, CPU(140)가 슬레이브 컨트롤러(110)를 통하여 허브 포트 초기화 명령(ICMD)을 수신한다(단계 1113).The host controller 210 recognizes the number of ports of the virtual USB hub based on the hub information data HDHF, and transmits a hub port initialization command ICMD to the slave controller 110. As a result, the CPU 140 receives the hub port initialization command ICMD via the slave controller 110 (step 1113).

논리 허브 프로그램(141)은 허브 포트 초기화 명령(ICMD)에 대한 응답으로서, 초기화 완료 데이터(IEND)를 생성한다(단계 1114). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 초기화 완료 데이터(IEND)를 호스트 컨트롤러(210)에 전송한다(단계 1115).The logical hub program 141 generates initialization completion data IEND as a response to the hub port initialization command ICMD (step 1114). The CPU 140 transmits initialization completion data IEND to the host controller 210 through the slave controller 110 (step 1115).

도 5는 도 3에 도시된 USB 장치를 인식하는 과정을 좀 더 상세히 나타낸 흐름도이다.5 is a flowchart illustrating a process of recognizing the USB device illustrated in FIG. 3 in more detail.

호스트 컨트롤러(150)는 USB 허브(400)에 어떤 USB 장치가 접속되었는지를 인식하기 위해, 제1 정보 요청 신호(DREQS1)를 USB 허브(400)에 접속된 USB 장치(U1∼UK 중 하나)에 전송한다(단계 1201). 호스트 컨트롤러(150)는 USB 장치(U1∼UK 중 하나)로부터 장치 정보(DVF1∼DVFK 중 하나)를 수신한다(단계 1202). 호스트 컨트롤러(150)는 USB 장치(U1∼UK 중 하나)에 대한 주소(AD1∼ADK 중 하나)를 할당한다(단계 1203). 호스트 컨트롤러(150)는 주소(AD1∼ADK 중 하나)를 USB 장치(U1∼UK 중 하나)에 전송한다(단계 1204).The host controller 150 transmits the first information request signal DREQS1 to a USB device (one of U1 to UK) connected to the USB hub 400 in order to recognize which USB device is connected to the USB hub 400. Transmit (step 1201). The host controller 150 receives device information (one of DVF1 to DVFK) from the USB device (one of U1 to UK) (step 1202). The host controller 150 allocates an address (one of AD1 to ADK) for the USB device (one of U1 to UK) (step 1203). The host controller 150 transmits the address (one of AD1 to ADK) to the USB device (one of U1 to UK) (step 1204).

이 후, 호스트 컨트롤러(150)는 제2 정보 요청 신호(DREQS2)를 USB 허브(400)에 접속된 USB 장치(U1∼UK 중 하나)에 전송한다(단계 1205). 호스트 컨트 롤러(150)는 USB 장치(U1∼UK 중 하나)로부터 상세 정보(DSF1∼DSFK 중 하나)를 수신한다(단계 1206). 호스트 컨트롤러(150)는 주소(AD1∼ADK 중 하나), 장치 정보(DVF1∼DVFK 중 하나), 및 상세 정보(DSF1∼DSFK 중 하나)를 저장한다(단계 1207).Thereafter, the host controller 150 transmits the second information request signal DREQS2 to the USB device (one of U1 to UK) connected to the USB hub 400 (step 1205). The host controller 150 receives detailed information (one of DSF1 to DSFK) from the USB device (one of U1 to UK) (step 1206). The host controller 150 stores an address (one of AD1 to ADK), device information (one of DVF1 to DVFK), and detailed information (one of DSF1 to DSFK) (step 1207).

호스트 컨트롤러(150)는 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)를 CPU(140)에 출력한다(단계 1208). CPU(140)에서 실행되는 운영체제 프로그램(143)은 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)에 기초하여, USB 허브(400)에 접속된 USB 장치(U1∼UK 중 하나)를 인식한다. 또, 운영체제 프로그램(143)은 USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)을 메모리(130)에서 검색한다(단계 1209).The host controller 150 outputs device information (one of the DVF1 to DVFK) and detailed information (one of the DSF1 to DSFK) to the CPU 140 (step 1208). The operating system program 143 executed in the CPU 140 is a USB device (U1 to UK) connected to the USB hub 400 based on the device information (one of the DVF1 to DVFK) and the detailed information (one of the DSF1 to the DSFK). To be recognized). The operating system program 143 also searches the memory 130 for a virtual driver program (one of VD1 to VDK) corresponding to the USB device (one of U1 to UK) (step 1209).

운영체제 프로그램(143)은 상기 단계 1209에서의 검색 결과에 따라, USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)이 존재하는지의 여부를 판단한다(단계 1210). USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)이 존재할 때, 운영체제 프로그램(143)은 검색된 가상 드라이버 프로그램(VD1∼VDK 중 하나)을 실행시킨다(단계 1211). USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)이 존재하지 않을 때, 에뮬레이터(100)는 USB 장치의 인식 동작을 종료한다.The operating system program 143 determines whether there is a virtual driver program (one of VD1 to VDK) corresponding to the USB device (one of U1 to UK) according to the search result in step 1209 (step 1210). . When there is a virtual driver program (one of VD1 to VDK) corresponding to the USB device (one of U1 to UK), the operating system program 143 executes the retrieved virtual driver program (one of VD1 to VDK) (step 1211). . When there is no virtual driver program (one of VD1 to VDK) corresponding to the USB device (one of U1 to UK), the emulator 100 ends the recognition operation of the USB device.

도 6은 도 3에 도시된 USB 장치의 접속 상태를 통보하는 과정을 좀 더 상세히 나타낸 흐름도이다.6 is a flowchart illustrating a process of notifying a connection state of the USB device illustrated in FIG. 3 in more detail.

CPU(140)에서 실행되는 주제어 프로그램(142)은 가상 드라이버 프로그램(VD1 ∼VDK 중 하나)의 실행이 완료되었는지의 여부를 판단한다(단계 1301). 주제어 프로그램(142)은 가상 드라이버 프로그램(VD1∼VDK 중 하나)으로부터 해당 USB 장치(U1∼UK 중 하나)에 대한 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)를 수신하면, 가상 드라이버 프로그램(VD1∼VDK 중 하나)의 실행이 완료된 것으로 판단한다. 여기에서, 가상 드라이버 프로그램들(VD1∼VDK) 각각은 자신에 대응하는 USB 장치에 대한 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)를 보유한다.The main control program 142 executed in the CPU 140 determines whether execution of the virtual driver program (one of VD1 to VDK) is completed (step 1301). The main control program 142 receives device information (one of DVF1 to DVFK) and detailed information (one of DSF1 to DSFK) for the corresponding USB device (one of U1 to UK) from the virtual driver program (one of VD1 to VDK). Then, it is determined that execution of the virtual driver program (one of VD1 to VDK) is completed. Here, each of the virtual driver programs VD1 to VDK holds device information (one of DVF1 to DVFK) and detailed information (one of DSF1 to DSFK) for the corresponding USB device.

가상 드라이버 프로그램(VD1∼VDK 중 하나)의 실행이 완료될 때, 주제어 프로그램(142)은 접속 통보 데이터(CNDAT)를 생성한다(단계 1302). 주제어 프로그램(142)은 접속 통보 데이터(CNDAT)를 논리 허브 프로그램(141)에 전달한다.When execution of the virtual driver program (one of VD1 to VDK) is completed, the main control program 142 generates the connection notification data CNDAT (step 1302). The main control program 142 transmits the connection notification data CNDAT to the logical hub program 141.

논리 허브 프로그램(141)은 주제어 프로그램(142)으로부터 수신되는 접속 통보 데이터(CNDAT)를 슬레이브 컨트롤러(110)를 통하여 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1303).The logical hub program 141 transmits the connection notification data CNDAT received from the main control program 142 to the host controller 210 of the PC 200 via the slave controller 110 (step 1303).

호스트 컨트롤러(210)는 가상의 USB 허브(즉, 에뮬레이터(100))에 어떤 장치가 접속되었는지를 인식하기 위해, 제1 장치 정보 요청 신호(DFRQS1)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제1 장치 정보 요청 신호(DFRQS1)를 논리 데이터 형식의 제1 장치 정보 요청 데이터(DFRQD1)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)에서 실행되는 논리 허브 프로그램(141)이 제1 장치 정보 요청 데이터(DFRQD1)를 수신한다(단계 1304).The host controller 210 transmits a first device information request signal DFRQS1 to the slave controller 110 to recognize which device is connected to the virtual USB hub (ie, the emulator 100). The slave controller 110 converts the first device information request signal DFRQS1 into the first device information request data DFRQD1 in a logical data format and outputs it to the CPU 140. As a result, the logical hub program 141 executed in the CPU 140 receives the first device information request data DFRQD1 (step 1304).

제1 장치 정보 요청 데이터(DFRQD1)에는 허브 주소(HBAD)가 포함되어 있지 않으므로, 논리 허브 프로그램(141)은 제1 장치 정보 요청 데이터(DFRQD1)가 자신에게 수신된 데이터가 아닌 것으로 판단하고, 제1 장치 정보 요청 데이터(DFRQD1)를 그대로 주제어 프로그램(142)에 전달한다. 주제어 프로그램(142)은 논리 허브 프로그램(141)을 통하여 수신되는 제1 장치 정보 요청 데이터(DFRQD1)에 응답하여, 가상 드라이버 프로그램(VD1∼VDK 중 하나)으로부터 수신한 장치 정보(DVF1∼DVFK 중 하나)를 논리 허브 프로그램(141)에 전달한다(단계 1305).Since the first device information request data DFRQD1 does not include the hub address HBAD, the logical hub program 141 determines that the first device information request data DFRQD1 is not data received by the first device information request data DFRQD1. 1 The device information request data DFRQD1 is transferred to the main control program 142 as it is. The main control program 142 is one of the device information DVF1 to DVFK received from the virtual driver program (one of the VD1 to VDK) in response to the first device information request data DFRQD1 received through the logical hub program 141. ) Is passed to the logical hub program 141 (step 1305).

논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)를 통하여 장치 정보(DVF1∼DVFK 중 하나)를 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1306). 호스트 컨트롤러(210)는 장치 정보(DVF1∼DVFK 중 하나)를 수신하고, 해당 USB 장치(U1∼UK 중 하나)에 주소(ADD1∼ADDK 중 하나)를 할당한다. 호스트 컨트롤러(210)는 주소(ADD1∼ADDK 중 하나)를 슬레이브 컨트롤러(110)에 전송한다.The logical hub program 141 transmits the device information (one of the DVF1 to the DVFK) to the host controller 210 of the PC 200 via the slave controller 110 (step 1306). The host controller 210 receives device information (one of DVF1 to DVFK) and assigns an address (one of ADD1 to ADDK) to the corresponding USB device (one of U1 to UK). The host controller 210 transmits an address (one of ADD1 to ADDK) to the slave controller 110.

그 결과, 논리 허브 프로그램(141)이 슬레이브 컨트롤러(110)를 통하여 USB 장치(U1∼UK 중 하나)에 대한 주소(ADD1∼ADDK 중 하나)를 수신한다(단계 1307). 논리 허브 프로그램(141)은 주소(ADD1∼ADDK 중 하나)를 주제어 프로그램(142)에 전달한다. 주제어 프로그램(142)은 주소(ADD1∼ADDK 중 하나)를, 가상 드라이버 프로그램(VD1∼VDK 중 하나)으로부터 수신한 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)와 함께 기록한다(단계 1308). 이 후, 주제어 프로그램(142)은 논리 허브 프로그램(141)을 통하여 PC(200)로부터 특정 데이터를 수신할 때, 그 데이터에 포함된 주소(ADD1∼ADDK 중 하나)를 확인함으로써, 수신된 데이터가 어떤 USB 장치를 제어하기 위한 데이터인지를 식별한다.As a result, the logical hub program 141 receives the address (one of ADD1 to ADDK) for the USB device (one of U1 to UK) via the slave controller 110 (step 1307). The logical hub program 141 transfers the address (one of ADD1 to ADDK) to the main control program 142. The main control program 142 includes an address (one of ADD1 to ADDK) along with device information (one of DVF1 to DVFK) and detailed information (one of DSF1 to DSFK) received from the virtual driver program (one of VD1 to VDK). Record (step 1308). Subsequently, when the main control program 142 receives specific data from the PC 200 via the logical hub program 141, the main control program 142 checks an address (one of ADD1 to ADDK) included in the data, thereby receiving the received data. Identifies which USB device is the data to control.

이 후, 호스트 컨트롤러(210)는 제2 장치 정보 요청 신호(DFRQS2)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제2 장치 정보 요청 신호(DFRQS2)를 논리 데이터 형식의 제2 장치 정보 요청 데이터(DFRQD2)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)에서 실행되는 논리 허브 프로그램(141)이 제2 장치 정보 요청 데이터(DFRQD2)를 수신한다(단계 1309).Thereafter, the host controller 210 transmits the second device information request signal DFRQS2 to the slave controller 110. The slave controller 110 converts the second device information request signal DFRQS2 into the second device information request data DFRQD2 in a logical data format and outputs it to the CPU 140. As a result, the logical hub program 141 executed in the CPU 140 receives the second device information request data DFRQD2 (step 1309).

주제어 프로그램(142)은 논리 허브 프로그램(141)을 통하여 수신되는 제2 장치 정보 요청 데이터(DFRQD2)에 응답하여, 상세 정보(DSF1∼DSFK 중 하나)를 논리 허브 프로그램(141)에 전달한다(단계 1310). 논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)를 통하여 상세 정보(DSF1∼DSFK 중 하나)를 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1311).The main control program 142 transmits the detailed information (one of the DSF1 to the DSFK) to the logical hub program 141 in response to the second device information request data DFRQD2 received through the logical hub program 141 (step). 1310). The logical hub program 141 transmits the detailed information (one of the DSF1 to the DSFK) to the host controller 210 of the PC 200 via the slave controller 110 (step 1311).

그 결과, 호스트 컨트롤러(210)가 상세 정보(DSF1∼DSFK 중 하나)를 수신하고, 주소(ADD1∼ADDK 중 하나), 장치 정보(DVF1∼DVFK 중 하나), 및 상세 정보(DSF1∼DSFK 중 하나)를 저장한다. 또, 호스트 컨트롤러(210)는 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)를 CPU(240)에서 실행되는 운영체제 프로그램(243)에 전달한다. 운영체제 프로그램(243)은 장치 정보(DVF1∼DVFK 중 하나) 및 상세 정보(DSF1∼DSFK 중 하나)에 기초하여, 해당 USB 장치(U1∼UK 중 하나)를 인식한다. 운영체제 프로그램(243)은 USB 장치(U1∼UK 중 하나)에 대응하는 드라이버 프로그램(D1∼DK 중 하나)을 메모리(230)로부터 검색하여 실행시킨다.As a result, the host controller 210 receives the detailed information (one of the DSF1 to DSFK), the address (one of the ADD1 to the ADK), the device information (one of the DVF1 to the DVFK), and one of the detailed information (DSF1 to the DSFK). Save). The host controller 210 also transmits device information (one of the DVF1 to DVFK) and detailed information (one of the DSF1 to the DSFK) to the operating system program 243 that is executed in the CPU 240. The operating system program 243 recognizes the corresponding USB device (one of U1 to UK) based on the device information (one of the DVF1 to DVFK) and the detailed information (one of the DSF1 to the DSFK). The operating system program 243 searches for and executes a driver program (one of D1 to DK) corresponding to the USB device (one of U1 to UK) from the memory 230.

한편, 상술한 단계 1006에서, 에뮬레이터(100)가 PC(200)로부터 수신한 동작 요청 신호(RQS1∼RQSK 중 하나)는, CPU(240)에서 실행되는 드라이버 프로그램(D1∼ DK 중 하나)과, 호스트 컨트롤러(210)에 의해 생성될 수 있다. 이를 좀 더 상세히 설명하면, CPU(240)에서 실행되는 업무 프로그램(241)이 USB 장치(U1∼UK 중 하나)의 동작과 관련한 업무를 처리할 때, 해당 USB 장치(U1∼UK 중 하나)에 대한 동작을 드라이버 프로그램(D1∼DK 중 하나)에 요청할 수 있다. 이때, 드라이버 프로그램(D1∼DK 중 하나)은 업무 프로그램(241)의 요청에 따라 해당 USB 장치(U1∼UK 중 하나)에 대한 USB 장치 제어 데이터(UCTD1∼UCTDK 중 하나)를 생성하여 호스트 컨트롤러(210)에 전달한다. 호스트 컨트롤러(210)는 USB 장치 제어 데이터(UCTD1∼UCTDK 중 하나)에, 해당 USB 장치(U1∼UK 중 하나)에 대한 주소(ADD1∼ADDK 중 하나)를 포함시켜 동작 요청 신호(RQS1∼RQSK 중 하나)를 생성하고, 동작 요청 신호(RQS1∼RQSK 중 하나)를 슬레이브 컨트롤러(110)에 전송한다.On the other hand, in step 1006 described above, the operation request signal (one of RQS1 to RQSK) received by the emulator 100 from the PC 200 is a driver program (one of D1 to DK) executed in the CPU 240, and It may be generated by the host controller 210. In more detail, when the work program 241 executed in the CPU 240 processes a task related to the operation of the USB device (one of U1 to UK), the corresponding USB device (one of U1 to UK) is applied to the work. Can be requested to the driver program (one of D1 to DK). At this time, the driver program (one of D1 to DK) generates USB device control data (one of UCTD1 to UCTDK) for the corresponding USB device (one of U1 to UK) in response to a request of the work program 241, and generates a host controller ( 210). The host controller 210 includes an address (one of ADD1 to ADDK) for the corresponding USB device (one of U1 to UK) in the USB device control data (one of UCTD1 to UCTDK), and among the operation request signals (RQS1 to RQSK). One), and transmits an operation request signal (one of RQS1 to RQSK) to the slave controller 110.

도 7은 도 3에 도시된 제1 가상의 USB 허브 동작을 실행하는 과정을 좀 더 상세히 나타낸 흐름도이다.FIG. 7 is a flowchart illustrating a process of executing the first virtual USB hub operation shown in FIG. 3 in more detail.

먼저, 슬레이브 컨트롤러(110)가 호스트 컨트롤러(210)로부터 수신한 동작 요청 신호(RQS1∼RQSK 중 하나)를 논리 데이터 형식의 동작 요청 데이터(RQD1∼RQDK 중 하나)로 변환한다(단계 1401). 슬레이브 컨트롤러(110)는 동작 요청 데이터(RQD1∼RQDK 중 하나)를 논리 허브 프로그램(141)에 전달한다. 논리 허브 프로그램(141)은 동작 요청 데이터(RQD1∼RQDK 중 하나)를 주제어 프로그램(142)에 전달한다(단계 1402).First, the slave controller 110 converts an operation request signal (one of RQS1 to RQSK) received from the host controller 210 into operation request data (one of RQD1 to RQDK) in a logical data format (step 1401). The slave controller 110 transfers operation request data (one of RQD1 to RQDK) to the logical hub program 141. The logical hub program 141 forwards the operation request data (one of RQD1 to RQDK) to the main control program 142 (step 1402).

주제어 프로그램(142)은 동작 요청 데이터(RQD1∼RQDK 중 하나)에 포함된 주소(ADD1∼ADDK 중 하나)를 이용하여, 상기 단계 1308에서 미리 기록된 장치 정보 들(DVF1∼DVFK)에서, 해당 USB 장치(U1∼UK 중 하나)에 대한 장치 정보(DVF1∼DVFK 중 하나)를 검색한다(단계 1403). 주제어 프로그램(142)은 해당 USB 장치(U1∼UK 중 하나)에 대한 장치 정보(DVF1∼DVFK 중 하나)에 기초하여, 해당 USB 장치의 이름을 확인한다(단계 1404).The main control program 142 uses the address included in the operation request data (one of RQD1 to RQDK) (one of ADD1 to ADDK), and the corresponding USB device information (DVF1 to DVFK) previously recorded in step 1308 is used. The device information (one of DVF1 to DVFK) for the device (one of U1 to UK) is retrieved (step 1403). The main control program 142 checks the name of the USB device based on the device information (one of DVF1 to DVFK) for the USB device (one of U1 to UK) (step 1404).

주제어 프로그램(142)은 USB 장치의 이름을 이용하여, 네트워크 인터페이스 장치(120)를 통하여, PC(200)의 CPU(240)에서 실행되는 자동 테스트 프로그램(242)에, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청한다(단계 1405). 즉, 주제어 프로그램(142)은 USB 장치의 이름을 포함하는 데이터 요청 신호(DTREQ)를 자동 테스트 프로그램(242)에 전송하여, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청한다.The main control program 142 uses the name of the USB device to connect the automatic test program 242 to be executed in the CPU 240 of the PC 200 via the network interface device 120. Test input data (one of TSFD1 to TSFDK) is requested (step 1405). That is, the main control program 142 transmits the data request signal DTREQ including the name of the USB device to the automatic test program 242, and the test input data TSFD1 for the corresponding USB device (one of U1 to UK). Request one of ~ TSFDK).

선택적으로, 자동 테스트 프로그램(242)이 PC(200)에 설치되지 않고, 통신망(300)에 접속된 외부의 제어 장치(미도시)에 설치된 경우, 주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여, 외부의 제어 장치에서 실행되는 자동 테스트 프로그램(242)에, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청할 수 있다.Optionally, when the automatic test program 242 is not installed in the PC 200 and is installed in an external control device (not shown) connected to the communication network 300, the main control program 142 is the network interface device 120. Through the request, the test input data (one of TSFD1 to TSFDK) for the corresponding USB device (one of U1 to UK) can be requested to the automatic test program 242 that is executed by an external control device.

자동 테스트 프로그램(242)은 데이터 요청 신호(DTREQ)에 응답하여, 네트워크 인터페이스 장치(220)를 통하여 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 네트워크 인터페이스 장치(120)에 전송한다.In response to the data request signal DTREQ, the automatic test program 242 transmits test input data (one of TSFD1 to TSFDK) to the network interface device 120 through the network interface device 220.

주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여 수신되는 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)에, 주소(ADD1∼ADDK 중 하나)를 포함시켜, 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 생성한다(단계 1406). 주제어 프로그램(142)은 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 논리 허브 프로그램(141)에 전달한다(단계 1407).The main control program 142 includes an address (one of ADD1 to ADDK) in the test input data (one of TSFD1 to TSFDK) received through the network interface device 120, and the test input information (of TSP1 to TSPK). One) (step 1406). The main control program 142 transmits test input information (one of TSF1 to TSFK) to the logical hub program 141 (step 1407).

논리 허브 프로그램(141)은 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 슬레이브 컨트롤러(110)를 통하여 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1408). 호스트 컨트롤러(210)는 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)로 변환하여, 해당 드라이버 프로그램(D1∼DK 중 하나)에 전달한다. 드라이버 프로그램(D1∼DK 중 하나)은 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 업무 프로그램(241)에 전달한다. 결과적으로, 자동 테스트 프로그램(242)이 미리 기록한 이벤트들을 업무 프로그램(241)에서 재현하여 업무 프로그램(241)을 테스트하는 동안, 테스트용 입력 정보(TSF1∼TSFK 중 하나)가, 업무 프로그램(241)에 적용된다.The logical hub program 141 transmits test input information (one of TSF1 to TSFK) to the host controller 210 of the PC 200 via the slave controller 110 (step 1408). The host controller 210 converts the test input information (one of the TSF1 to TSFK) into test input data (one of the TSFD1 to TSFDK), and transfers it to the corresponding driver program (one of the D1 to DK). The driver program (one of D1 to DK) delivers test input data (one of TSFD1 to TSFDK) to the work program 241. As a result, while the automatic test program 242 reproduces the events recorded in advance in the work program 241 to test the work program 241, the test input information (one of the TSF1 to TSFK) becomes the work program 241. Applies to

도 8은 도 3에 도시된 제2 가상의 USB 허브 동작을 실행하는 과정을 좀 더 상세히 나타낸 흐름도이다.8 is a flowchart illustrating a process of executing a second virtual USB hub operation shown in FIG. 3 in more detail.

슬레이브 컨트롤러(110)가 호스트 컨트롤러(210)로부터 수신한 동작 요청 신호(RQS1∼RQSK 중 하나)를 논리 데이터 형식의 동작 요청 데이터(RQD1∼RQDK 중 하나)로 변환한다(단계 1501). 슬레이브 컨트롤러(110)는 동작 요청 데이터(RQD1∼RQDK 중 하나)를 논리 허브 프로그램(141)에 전달한다. 논리 허브 프로그램(141)은 동작 요청 데이터(RQD1∼RQDK 중 하나)를 주제어 프로그램(142)에 전달한다(단계 1502).The slave controller 110 converts the operation request signal (one of RQS1 to RQSK) received from the host controller 210 into operation request data (one of RQD1 to RQDK) in a logical data format (step 1501). The slave controller 110 transfers operation request data (one of RQD1 to RQDK) to the logical hub program 141. The logical hub program 141 forwards the operation request data (one of RQD1 to RQDK) to the main control program 142 (step 1502).

주제어 프로그램(142)은 동작 요청 데이터(RQD1∼RQDK 중 하나)에 포함된 주소(ADD1∼ADDK 중 하나)를 이용하여, 동작 요청 데이터(RQD1∼RQDK 중 하나)가 어떤 USB 장치(U1∼UK 중 하나)와 관련된 데이터인지를 식별한다. 주제어 프로그램(142)은 해당 USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)에 동작 요청 데이터(RQD1∼RQDK 중 하나)를 전달한다(단계 1503).The main control program 142 uses an address (one of ADD1 to ADDK) included in the operation request data (one of the RQD1 to RQDK), so that the operation request data (one of the RQD1 to RQDK) is stored in any USB device (U1 to UK). Identify whether the data is related to The main control program 142 transfers operation request data (one of RQD1 to RQDK) to a virtual driver program (one of VD1 to VDK) corresponding to the corresponding USB device (one of U1 to UK) (step 1503).

가상 드라이버 프로그램(VD1∼VDK 중 하나)은 동작 요청 데이터(RQD1∼RQDK 중 하나)에 기초하여, 해당 USB 장치(U1∼UK 중 하나)에 대한 동작 제어 데이터(UCD1∼UCDK)를 생성한다(단계 1504). 호스트 컨트롤러(150)는 가상 드라이버 프로그램(VD1∼VDK 중 하나)으로부터 수신한 동작 제어 데이터(UCD1∼UCDK)에 해당 USB 장치(U1∼UK 중 하나)에 대한 주소(AD1∼ADK 중 하나)를 포함시켜 동작 제어 신호(CTL1∼CTLK 중 하나)를 생성한다(단계 1505).The virtual driver program (one of VD1 to VDK) generates operation control data UCD1 to UCDK for the corresponding USB device (one of U1 to UK) based on the operation request data (one of RQD1 to RQDK) (step 1504). The host controller 150 includes an address (one of AD1 to ADK) for the corresponding USB device (one of U1 to UK) in the operation control data UCD1 to UCDK received from the virtual driver program (one of VD1 to VDK). To generate an operation control signal (one of CTL1 to CTLK) (step 1505).

호스트 컨트롤러(150)는 USB 허브(400)를 통하여 동작 제어 신호(CTL1∼CTLK 중 하나)를 해당 USB 장치(U1∼UK 중 하나)에 전송한다(단계 1506). 이 후, 사용자가 해당 USB 장치(U1∼UK 중 하나)를 조작하여 동작시키면, 해당 USB 장치(U1∼UK 중 하나)가 동작에 따른 입력 신호(INSG1∼INSGK 중 하나)를 호스트 컨트롤러(150)에 전송한다. 호스트 컨트롤러(150)는 입력 신호(INSG1∼INSGK 중 하나)를 입력 데이터(IDAT1∼IDATK 중 하나)로 변환하여 CPU(140)에 출력한다. 그 결과, 가상 드라이버 프로그램(VD1∼VDK 중 하나)이 해당 USB 장치(U1∼UK 중 하나)의 동작에 따른 입력 데이터(IDAT1∼IDATK 중 하나)를 수신한다(단계 1507).The host controller 150 transmits an operation control signal (one of CTL1 to CTLK) to the corresponding USB device (one of U1 to UK) via the USB hub 400 (step 1506). Thereafter, when the user operates and operates the corresponding USB device (one of U1 to UK), the host controller 150 outputs an input signal (one of INSG1 to INSGK) corresponding to the operation of the corresponding USB device (one of U1 to UK). To transmit. The host controller 150 converts an input signal (one of INSG1 to INSGK) into input data (one of IDAT1 to IDATK) and outputs it to the CPU 140. As a result, the virtual driver program (one of VD1 to VDK) receives input data (one of IDAT1 to IDATK) according to the operation of the corresponding USB device (one of U1 to UK) (step 1507).

가상 드라이버 프로그램(VD1∼VDK 중 하나)은 입력 데이터(IDAT1∼IDATK 중 하나)를 주제어 프로그램(142)에 전달한다(단계 1508). 주제어 프로그램(142)은 입력 데이터(IDAT1∼IDATK 중 하나)에 주소(ADD1∼ADDK 중 하나)를 포함시켜 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)를 생성한다(단계 1509). 주제어 프로그램(142)은 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)를 논리 허브 프로그램(141)에 전달한다(단계 1510). 논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)를 통하여 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)를 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1511).The virtual driver program (one of VD1 to VDK) transfers the input data (one of IDAT1 to IDATK) to the main control program 142 (step 1508). The main control program 142 generates an input information (one of FIF1 to FIFK) (that is, first input information) by including an address (one of ADD1 to ADDK) in the input data (one of IDAT1 to IDATK) (step 1509). ). The main control program 142 transfers the input information (one of FIF1 to FIFK) (ie, the first input information) to the logical hub program 141 (step 1510). The logical hub program 141 transmits the input information (one of the FIF1 to FIFK) (that is, the first input information) to the host controller 210 of the PC 200 through the slave controller 110 (step 1511).

그 결과, 호스트 컨트롤러(210)가 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)를 입력 데이터(IDAT1∼IDATK 중 하나)로 변환하여, 해당 드라이버 프로그램(D1∼DK 중 하나)에 전달한다. 드라이버 프로그램(D1∼DK 중 하나)은 입력 데이터(IDAT1∼IDATK 중 하나)를 업무 프로그램(241)에 전달한다. 결과적으로, 업무 프로그램(241)이 실행되는 동안, 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)가 업무 프로그램(241)에 적용된다.As a result, the host controller 210 converts the input information (one of FIF1 to FIFK) (that is, the first input information) into input data (one of IDAT1 to IDATK), and the corresponding driver program (one of D1 to DK). To pass on. The driver program (one of D1 to DK) transfers input data (one of IDAT1 to IDATK) to the work program 241. As a result, while the work program 241 is executed, input information (one of FIF1 to FIFK) (ie, first input information) is applied to the work program 241.

이 후, 주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여, 자동 테스트 프로그램(242)으로부터 기록 명령(RCCMD)을 수신하였는지의 여부를 판단한다(단계 1512). 자동 테스트 프로그램(242)으로부터 기록 명령(RCCMD)을 수신하지 않은 경우, 에뮬레이터(100)는 단계 1009의 동작을 종료한다.Thereafter, the main control program 142 determines whether or not the recording command RCCMD has been received from the automatic test program 242 via the network interface device 120 (step 1512). If the write command RCCMD has not been received from the automatic test program 242, the emulator 100 ends the operation of step 1009.

또, 자동 테스트 프로그램(242)으로부터 기록 명령(RCCMD)을 수신한 경우, 주제어 프로그램(142)은 입력 데이터(IDAT1∼IDATK 중 하나)에 해당 USB 장치의 이 름을 포함시켜, 입력 정보(SIF1∼SIFK 중 하나)(즉, 제2 입력 정보)를 생성한다(단계 1513). 주제어 프로그램(142)은 입력 정보(SIF1∼SIFK 중 하나)(즉, 제2 입력 정보)를 네트워크 인터페이스 장치(120)를 통하여 PC(200)의 CPU(240)에서 실행되는 자동 테스트 프로그램(242)에 전송한다(단계 1514). 그 결과, 업무 프로그램(241)이 실행될 때 발생하는 이벤트들을 기록하는 과정 동안, 자동 테스트 프로그램(242)이 에뮬레이터(100)로부터 수신한 입력 정보(SIF1∼SIFK 중 하나)(즉, 제2 입력 정보)를 상기 이벤트들 중 하나로서 기록한다. 이 후, 자동 테스트 프로그램(242)은 기록한 입력 정보(SIF1∼SIFK 중 하나)(즉, 제2 입력 정보)에 기초하여, 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 생성할 수 있다. 사용자에 의해 입력 정보(SIF1∼SIFK 중 하나)(즉, 제2 입력 정보)의 내용이 편집되거나, 또는 새로운 입력 정보가 입력될 경우, 자동 테스트 프로그램(242)은 그 편집된 입력 정보 또는 새로운 입력 정보를 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)로서 출력할 수도 있다.When the recording command RCCMD is received from the automatic test program 242, the main control program 142 includes the name of the corresponding USB device in the input data (one of the IDAT1 to IDATK), and the input information (SIF1 to 1). One of the SIFKs (ie, second input information) (step 1513). The main control program 142 executes the automatic test program 242 which executes the input information (one of the SIF1 to SIFK) (ie, the second input information) on the CPU 240 of the PC 200 via the network interface device 120. (Step 1514). As a result, during the process of recording events occurring when the business program 241 is executed, the input information (one of SIF1 to SIFK) received by the automatic test program 242 from the emulator 100 (that is, the second input information). ) As one of the events. Thereafter, the automatic test program 242 can generate test input data (one of TSFD1 to TSFDK) based on the recorded input information (one of SIF1 to SIFK) (that is, second input information). When the contents of the input information (one of the SIF1 to SIFK) (i.e., the second input information) are edited by the user or new input information is input, the automatic test program 242 executes the edited input information or the new input. The information may be output as test input data (one of TSFD1 to TSFDK).

상기한 실시 예들은 본 발명을 설명하기 위한 것으로서 본 발명이 이들 실시 예에 국한되는 것은 아니며, 본 발명의 범위 내에서 다양한 실시예가 가능하다. 또한, 설명되지는 않았으나, 균등한 수단도 또한 본 발명에 그대로 결합되는 것이라 할 것이다. 따라서 본 발명의 진정한 보호범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.The above embodiments are for explaining the present invention, and the present invention is not limited to these embodiments, and various embodiments are possible within the scope of the present invention. In addition, although not described, equivalent means will also be referred to as being incorporated in the present invention. Therefore, the true scope of the present invention will be defined by the claims below.

도 1은 본 발명의 일 실시예에 따른 에뮬레이터의 개략적인 구성과, 에뮬레이터에 연결된 PC, USB 허브 및 USB 장치들을 나타내는 도면이다.1 is a schematic diagram of an emulator and a PC, a USB hub, and USB devices connected to the emulator according to an embodiment of the present invention.

도 2는 도 1에 도시된 에뮬레이터 및 PC의 동작을 설명하기 위한 상세한 도면이다.FIG. 2 is a detailed diagram for describing an operation of the emulator and the PC illustrated in FIG. 1.

도 3은 도 1에 도시된 에뮬레이터의 동작 과정을 나타내는 흐름도이다.3 is a flowchart illustrating an operation process of the emulator shown in FIG. 1.

도 4는 도 3에 도시된 PC에 접속하는 과정을 좀 더 상세히 나타낸 흐름도이다.4 is a flowchart illustrating a process of connecting to a PC illustrated in FIG. 3 in more detail.

도 5는 도 3에 도시된 USB 장치를 인식하는 과정을 좀 더 상세히 나타낸 흐름도이다.5 is a flowchart illustrating a process of recognizing the USB device illustrated in FIG. 3 in more detail.

도 6은 도 3에 도시된 USB 장치의 접속 상태를 통보하는 과정을 좀 더 상세히 나타낸 흐름도이다.6 is a flowchart illustrating a process of notifying a connection state of the USB device illustrated in FIG. 3 in more detail.

도 7은 도 3에 도시된 제1 가상의 USB 허브 동작을 실행하는 과정을 좀 더 상세히 나타낸 흐름도이다.FIG. 7 is a flowchart illustrating a process of executing the first virtual USB hub operation shown in FIG. 3 in more detail.

도 8은 도 3에 도시된 제2 가상의 USB 허브 동작을 실행하는 과정을 좀 더 상세히 나타낸 흐름도이다.8 is a flowchart illustrating a process of executing a second virtual USB hub operation shown in FIG. 3 in more detail.

〈도면의 주요 부분에 대한 부호의 설명〉Description of the Related Art

100: 에뮬레이터 101, 103: USB 포트100: emulator 101, 103: USB port

102: 통신 포트 110: 슬레이브 컨트롤러102: communication port 110: slave controller

120, 220: 네트워크 인터페이스 장치 130, 230: 메모리120, 220: network interface device 130, 230: memory

140, 240: CPU 150, 210: 호스트 컨트롤러140, 240: CPU 150, 210: Host Controller

160: 전원 공급부 170: 입력 장치160: power supply unit 170: input device

200: PC 250: 주변 장치부200: PC 250: peripheral portion

300: 통신망 400: USB 허브300: network 400: USB hub

U1∼UK: USB 장치U1 to UK: USB device

Claims (20)

제1 USB(universal serial bus) 포트(port)를 통하여, 업무 프로그램 및 자동 테스트 프로그램이 설치된 PC(personal computer)에 접속되는 슬레이브 컨트롤러;A slave controller connected to a personal computer (PC) on which a work program and an automatic test program are installed through a first universal serial bus (USB) port; 통신 포트를 통하여, 외부의 통신망에 접속되는 네트워크 인터페이스 장치;A network interface device connected to an external communication network through a communication port; 제2 USB 포트를 통하여, 외부의 USB 허브(hub)에 접속되고, 상기 USB 허브에 접속한 적어도 하나의 USB 장치에 주소를 할당하고, 상기 적어도 하나의 USB 장치로부터 장치 정보 및 상세 정보를 수신하는 호스트 컨트롤러;A second USB port is connected to an external USB hub, assigns an address to at least one USB device connected to the USB hub, and receives device information and detailed information from the at least one USB device. A host controller; 상기 적어도 하나의 USB 장치의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작, 또는 상기 PC와 상기 적어도 하나의 USB 장치 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행하기 위한 제어 프로그램들을 저장하는 메모리; 및A control program for executing a first virtual USB hub operation for virtually acting on the operation of the at least one USB device, or a second virtual USB hub operation for interfacing communication between the PC and the at least one USB device; Memory for storing the sound; And 상기 제어 프로그램들 중 일부를 실행시키고, 상기 호스트 컨트롤러로부터 수신되는 상기 장치 정보 및 상기 상세 정보에 기초하여 상기 적어도 하나의 USB 장치를 인식하는 CPU(central processor unit)를 포함하고,A central processor unit (CPU) for executing some of the control programs and recognizing the at least one USB device based on the device information and the detailed information received from the host controller, 상기 자동 테스트 프로그램은 상기 업무 프로그램이 실행되는 동안 발생하는 이벤트들을 기록하고, 기록한 상기 이벤트들을 상기 업무 프로그램에서 재현함으로써 상기 업무 프로그램을 자동으로 실행시켜 테스트하는 프로그램이고,The automatic test program is a program for automatically executing and testing the business program by recording the events occurring while the business program is executed and reproducing the recorded events in the business program, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 기록될 때, 상기 PC는 기록 명령을 출력하고, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 상기 업무 프로그램에서 재현될 때, 상기 PC는 재현 명령을 출력하고,When the events are recorded by the automatic test program in the PC, the PC outputs a recording command, and when the events are reproduced in the work program by the automatic test program in the PC, the PC reproduces the command. Output 상기 네트워크 인터페이스 장치는, 상기 통신망을 통하여 접속한 상기 PC로부터 수신되는 기록 명령 또는 재현 명령을 상기 CPU에 출력하고,The network interface device outputs a recording command or a reproduction command received from the PC connected through the communication network to the CPU, 상기 CPU는 상기 슬레이브 컨트롤러를 통하여 상기 장치 정보 및 상기 상세 정보를 상기 PC에 전송함으로써 상기 적어도 하나의 USB 장치의 접속 상태를 상기 PC에 통보하고,The CPU notifies the PC of the connection state of the at least one USB device by transmitting the device information and the detailed information to the PC through the slave controller, 상기 CPU는 상기 슬레이브 컨트롤러를 통하여 상기 PC로부터 상기 재현 명령을 수신한 후 상기 적어도 하나의 USB 장치에 대한 동작 요청 데이터를 수신할 때, 상기 네트워크 인터페이스 장치를 통하여 상기 PC에 상기 적어도 하나의 USB 장치에 대한 테스트용 입력 데이터를 요청하여 수신하고, 상기 테스트용 입력 데이터에 기초하여 테스트용 입력 정보를 생성하여 상기 슬레이브 컨트롤러를 통하여 상기 PC에 전송함으로써, 제1 가상의 USB 허브 동작을 실행하고,When the CPU receives the operation request data for the at least one USB device after receiving the reproduction command from the PC through the slave controller, the CPU is connected to the at least one USB device through the network interface device. Request and receive the test input data for the test, and generate test input information based on the test input data and transmit the test input information to the PC through the slave controller to execute the first virtual USB hub operation. 상기 CPU는 상기 기록 명령을 수신한 후, 상기 적어도 하나의 USB 장치에 대한 동작 요청 데이터를 수신할 때, 상기 호스트 컨트롤러를 통하여 상기 적어도 하나의 USB 장치의 동작에 따른 입력 데이터를 수신하고, 상기 적어도 하나의 USB 장치의 동작에 따른 입력 데이터에 기초하여 생성한 제1 및 제2 입력 정보를 상기 슬레이브 컨트롤러 및 상기 네트워크 인터페이스 장치를 통하여 각각 상기 PC에 전송하고, 상기 동작 요청 데이터만을 수신할 때, 상기 제1 입력 정보를 상기 슬레이브 컨트롤러를 통하여 상기 PC에 전송함으로써, 제2 가상의 USB 허브 동작을 실행하고,When the CPU receives the operation request data for the at least one USB device after receiving the write command, the CPU receives input data according to the operation of the at least one USB device through the host controller, When transmitting the first and second input information generated based on the input data according to the operation of one USB device to the PC through the slave controller and the network interface device, respectively, and receives only the operation request data, Send a first input information to the PC via the slave controller to execute a second virtual USB hub operation, 상기 테스트용 입력 데이터는 상기 자동 테스트 프로그램에 의해 생성되고,The test input data is generated by the automatic test program, 상기 PC가 상기 슬레이브 컨트롤러로부터 수신한 상기 테스트용 입력 정보는, 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안 상기 업무 프로그램에 적용되고, 상기 PC가 상기 슬레이브 컨트롤러로부터 수신한 상기 제1 입력 정보는, 상기 업무 프로그램이 실행되는 동안 상기 업무 프로그램에 적용되고,The test input information received by the PC from the slave controller is applied to the work program while the events are reproduced in the work program, and the first input information received by the PC from the slave controller includes: Applied to the work program while the work program is running, 상기 PC가 상기 네트워크 인터페이스 장치를 통하여 상기 CPU로부터 수신한 상기 제2 입력 정보는 상기 자동 테스트 프로그램에 의해 상기 이벤트들 중 하나로서 기록되고,The second input information received by the PC from the CPU via the network interface device is recorded as one of the events by the automatic test program, 상기 CPU가 상기 제1 가상의 USB 허브 동작을 실행하는 동안 상기 적어도 하나의 USB 장치는 동작을 정지하고, 상기 PC는 상기 CPU의 상기 제1 가상의 USB 허브 동작에 의해 상기 적어도 하나의 USB 장치가 동작하는 것으로 인식하고,The at least one USB device stops operation while the CPU is executing the first virtual USB hub operation, and the PC is configured to cause the at least one USB device to be disconnected by the first virtual USB hub operation of the CPU. Recognize it as working, 상기 업무 프로그램이 상기 PC에서 실행될 때, 상기 업무 프로그램에 의해 처리되는 업무들 중 일부는 상기 적어도 하나의 USB 장치의 동작과 관련한 업무를 포함하는 에뮬레이터.When the task program is executed on the PC, some of the tasks processed by the task program include tasks related to the operation of the at least one USB device. 삭제delete 삭제delete 삭제delete 제1항에 있어서,The method of claim 1, 상기 장치 정보는, 상기 적어도 하나의 USB 장치의 이름, 상기 적어도 하나의 USB 장치의 USB 스펙 버전(spec version) 정보, 및 상기 적어도 하나의 USB 장치에 전송되는 통신 패킷(packet)의 최대 길이 정보를 포함하고,The device information may include a name of the at least one USB device, USB spec version information of the at least one USB device, and maximum length information of a communication packet transmitted to the at least one USB device. Including, 상기 상세 정보는, 상기 적어도 하나의 USB 장치에 대한, 제조회사 ID(identification), 제품번호, 펌웨어(firm ware) 버전 정보, 및 제조회사 이름을 포함하고,The detailed information includes a manufacturer ID, a product number, firmware version information, and a manufacturer name for the at least one USB device, 상기 호스트 컨트롤러는, 상기 적어도 하나의 USB 장치에 할당한 주소와 함께 상기 장치 정보 및 상기 상세 정보를 저장하고, 상기 CPU가 상기 제2 가상의 USB 허브 동작을 실행할 때, 상기 CPU와 상기 적어도 하나의 USB 장치 간의 통신을 인터페이스하고, 상기 CPU와 상기 적어도 하나의 USB 장치 간의 통신을 인터페이스 할 때, 상기 주소를 이용하여 상기 적어도 하나의 USB 장치를 식별하는 에뮬레이터.The host controller stores the device information and the detailed information together with an address assigned to the at least one USB device, and when the CPU executes the second virtual USB hub operation, the host and the at least one An emulator for interfacing communication between USB devices and identifying the at least one USB device using the address when interfacing communication between the CPU and the at least one USB device. 제1항에 있어서,The method of claim 1, 상기 CPU는 상기 적어도 하나의 USB 장치의 접속 상태를 상기 PC에 통보한 후, 상기 슬레이브 컨트롤러를 통하여 상기 PC로부터 상기 적어도 하나의 USB 장치에 할당된 추가의 주소를 수신하고, 상기 추가의 주소와 함께 상기 장치 정보 및 상기 상세 정보를 저장하고, 상기 PC로부터 상기 동작 요청 데이터를 수신할 때, 상기 동작 요청 데이터에 포함된 상기 추가의 주소에 기초하여, 상기 적어도 하나의 USB 장치를 식별하는 에뮬레이터.After the CPU notifies the PC of the connection state of the at least one USB device, the CPU receives an additional address assigned to the at least one USB device from the PC via the slave controller, and together with the additional address. An emulator that stores the device information and the detailed information and, upon receiving the operation request data from the PC, based on the additional address included in the operation request data. 제6항에 있어서,The method of claim 6, 상기 PC에는 상기 적어도 하나의 USB 장치에 대응하는 드라이버 프로그램이 더 설치되고, 상기 PC가 상기 장치 정보 및 상기 상세 정보를 수신할 때 상기 드라이버 프로그램이 실행되고,The PC is further provided with a driver program corresponding to the at least one USB device, the driver program is executed when the PC receives the device information and the detailed information, 상기 제어 프로그램들 중 적어도 하나는, 상기 적어도 하나의 USB 장치에 대응하는 가상 드라이버 프로그램이고,At least one of the control programs is a virtual driver program corresponding to the at least one USB device, 상기 CPU는 상기 장치 정보 및 상기 상세 정보를 수신할 때, 상기 가상 드라이버 프로그램을 실행시키고, 상기 CPU가 상기 제2 가상의 USB 허브 동작을 실행하는 동안 상기 가상 드라이버 프로그램을 통하여 상기 적어도 하나의 USB 장치의 동작을 제어하는 에뮬레이터.The CPU executes the virtual driver program when receiving the device information and the detailed information, and the at least one USB device through the virtual driver program while the CPU executes the second virtual USB hub operation. Emulator to control the behavior of. 제7항에 있어서,The method of claim 7, wherein 나머지 제어 프로그램들은,The rest of the control programs 상기 호스트 컨트롤러로부터 수신된 상기 장치 정보 및 상기 상세 정보에 기초하여 상기 적어도 하나의 USB 장치를 인식하고, 상기 적어도 하나의 USB 장치에 대응하는 상기 가상 드라이버 프로그램을 검색하고, 검색된 상기 가상 드라이버 프로그램을 실행시키는 운영체제 프로그램과,Recognize the at least one USB device based on the device information and the detailed information received from the host controller, search for the virtual driver program corresponding to the at least one USB device, and execute the found virtual driver program. Operating system programs, 상기 가상 드라이버 프로그램의 실행이 완료된 후, 상기 가상 드라이버 프로그램으로부터 상기 장치 정보 및 상기 상세 정보를 수신하고, 상기 추가의 주소와 상기 장치 정보 및 상기 상세 정보를 기록하고, 상기 가상 드라이버 프로그램을 통하여, 상기 적어도 하나의 USB 장치의 동작을 제어하거나 또는 상기 적어도 하나의 USB 장치의 동작에 따른 입력 데이터를 수신하고, 상기 네트워크 인터페이스 장치를 통하여 상기 PC와 통신하는 주제어 프로그램과,After the execution of the virtual driver program is completed, the device information and the detailed information are received from the virtual driver program, the additional address, the device information and the detailed information are recorded, and through the virtual driver program, the A main control program that controls the operation of at least one USB device or receives input data according to the operation of the at least one USB device, and communicates with the PC via the network interface device; 상기 PC가 상기 에뮬레이터를 가상의 USB 허브로 인식하도록 동작하고, 상기 슬레이브 컨트롤러와 상기 주제어 프로그램 간의 통신을 인터페이스 하는 논리 허브 프로그램을 포함하는 에뮬레이터.And a logic hub program operative to cause the PC to recognize the emulator as a virtual USB hub and to interface communication between the slave controller and the main control program. 제7항에 있어서,The method of claim 7, wherein 상기 CPU가 추가의 가상 드라이버 프로그램을 상기 메모리에 저장하도록, 상기 CPU에 상기 추가의 가상 드라이버 프로그램을 입력하는 입력 장치; 및An input device for inputting the additional virtual driver program to the CPU such that the CPU stores an additional virtual driver program in the memory; And 외부 전원에 기초하여 내부 전원을 생성하고, 상기 내부 전원을 상기 슬레이브 컨트롤러, 상기 네트워크 인터페이스 장치, 상기 호스트 컨트롤러, 상기 메모리, 상기 CPU, 및 상기 입력 장치에 공급하는 전원 공급부를 더 포함하고,A power supply unit configured to generate internal power based on external power, and supply the internal power to the slave controller, the network interface device, the host controller, the memory, the CPU, and the input device; 상기 CPU는 상기 내부 전원을 공급받을 때, 상기 제어 프로그램들 중 일부를 실행시키는 에뮬레이터.The CPU executing some of the control programs when the internal power is supplied. 에뮬레이터가, 제1 USB 포트를 통하여, 업무 프로그램 및 자동 테스트 프로그램이 설치된 PC(personal computer)에 접속되는 단계;Connecting the emulator through a first USB port to a personal computer (PC) on which a work program and an automatic test program are installed; 제2 USB 포트를 통하여 접속된 외부의 USB 허브에 USB 장치가 접속될 때, 상기 에뮬레이터에 의해, 상기 USB 장치를 인식하는 단계;Recognizing, by the emulator, the USB device when the USB device is connected to an external USB hub connected through a second USB port; 상기 에뮬레이터에 의해, 상기 PC에 상기 USB 장치의 접속 상태를 통보하는 단계;Notifying, by the emulator, the connection state of the USB device to the PC; 상기 에뮬레이터에 의해, 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신하는 단계;Receiving, by the emulator, an operation request signal for the USB device from the PC; 상기 에뮬레이터에 의해, 외부의 통신망을 통하여 상기 PC로부터 재현 명령을 수신하였는지의 여부를 판단하는 단계;Determining, by the emulator, whether a reproduction command has been received from the PC via an external communication network; 상기 에뮬레이터에 의해, 상기 재현 명령을 수신한 경우, 상기 통신망을 통하여 테스트용 입력 정보를 상기 PC에 출력함으로써, 상기 USB 장치의 동작을 가상적으로 대행하는 제1 가상의 USB 허브 동작을 실행하는 단계; 및Executing, by the emulator, a first virtual USB hub operation that virtually acts on the operation of the USB device by outputting test input information to the PC through the communication network; And 상기 에뮬레이터에 의해, 상기 재현 명령을 수신하지 않은 경우, 동작 제어 신호를 상기 USB 장치에 출력하고, 상기 USB 장치의 동작에 따른 입력 정보를 상기 PC에 출력함으로써, 상기 PC와 상기 USB 장치 간의 통신을 상호 인터페이스 하는 제2 가상의 USB 허브 동작을 실행하는 단계를 포함하고,When the emulator does not receive the reproduction command, communication between the PC and the USB device is performed by outputting an operation control signal to the USB device and outputting input information according to the operation of the USB device to the PC. Executing a second virtual USB hub operation to interface with each other; 상기 업무 프로그램이 상기 PC에서 실행될 때, 상기 업무 프로그램에 의해 처리되는 업무들 중 일부는 상기 USB 장치의 동작과 관련한 업무를 포함하고,When the task program is executed on the PC, some of the tasks processed by the task program include tasks related to the operation of the USB device, 상기 자동 테스트 프로그램은 상기 업무 프로그램이 실행되는 동안 발생하는 이벤트들을 기록하고, 기록한 상기 이벤트들을 상기 업무 프로그램에서 재현함으로써 상기 업무 프로그램을 자동으로 실행시켜 테스트하는 프로그램이고,The automatic test program is a program for automatically executing and testing the business program by recording the events occurring while the business program is executed and reproducing the recorded events in the business program, 상기 제1 가상의 USB 허브 동작은, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안, 상기 에뮬레이터가 상기 통신망을 통하여 상기 PC로부터 상기 재현 명령을 수신한 후 상기 제1 USB 포트를 통하여 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신할 때, 상기 에뮬레이터가 상기 PC에 상기 USB 장치에 대한 테스트용 입력 데이터를 요청하여 수신하고, 상기 테스트용 입력 데이터에 기초하여 상기 테스트용 입력 정보를 생성하여 상기 제1 USB 포트를 통하여 상기 PC에 전송하는 동작이고,The first virtual USB hub operation may be performed after the emulator receives the reproduction command from the PC through the communication network while the events are reproduced in the work program by the automatic test program in the PC. When receiving the operation request signal for the USB device from the PC through the USB port, the emulator requests and receives the test input data for the USB device from the PC, and based on the test input data, the emulator Generating test input information and transmitting the test input information to the PC through the first USB port; 상기 제2 가상의 USB 허브 동작은, 상기 PC에서 상기 자동 테스트 프로그램에 의해 상기 이벤트들이 기록되는 동안, 상기 통신망을 통하여 상기 PC로부터 기록 명령을 수신한 후, 상기 제1 USB 포트를 통하여 상기 PC로부터 상기 USB 장치에 대한 동작 요청 신호를 수신할 때, 상기 USB 허브를 통하여 상기 USB 장치의 동작에 따른 입력 데이터를 수신하고, 상기 USB 장치의 동작에 따른 입력 데이터에 기초하여 생성한 제1 및 제2 입력 정보를 상기 제1 USB 포트 및 상기 통신망을 통하여 각각 상기 PC에 전송하고, 상기 동작 요청 신호만을 수신할 때, 상기 제1 입력 정보를 상기 통신망을 통하여 상기 PC에 전송하는 동작이고,The second virtual USB hub operation may receive a recording command from the PC through the communication network while the events are recorded by the automatic test program on the PC, and then from the PC through the first USB port. When receiving the operation request signal for the USB device, the first and second received input data according to the operation of the USB device through the USB hub, and generated based on the input data according to the operation of the USB device Transmitting input information to the PC via the first USB port and the communication network, respectively, and when receiving only the operation request signal, transmitting the first input information to the PC through the communication network; 상기 테스트용 입력 데이터는 상기 자동 테스트 프로그램에 의해 생성되고,The test input data is generated by the automatic test program, 상기 PC가 상기 에뮬레이터로부터 수신한 상기 테스트용 입력 정보는, 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안 상기 업무 프로그램에 적용되고, 상기 PC가 상기 에뮬레이터로부터 수신한 상기 제1 입력 정보는, 상기 업무 프로그램이 실행되는 동안 상기 업무 프로그램에 적용되고,The test input information received by the PC from the emulator is applied to the work program while the events are reproduced in the work program, and the first input information received by the PC from the emulator is the work program. Is applied to the work program while it is running, 상기 PC가 상기 통신망을 통하여 상기 에뮬레이터로부터 수신한 상기 제2 입력 정보는 상기 자동 테스트 프로그램에 의해 상기 이벤트들 중 하나로서 기록되고,The second input information received by the PC from the emulator via the communication network is recorded by the automatic test program as one of the events, 상기 에뮬레이터가 상기 제1 가상의 USB 허브 동작을 실행하는 동안 상기 USB 장치는 동작을 정지하고, 상기 PC는 상기 에뮬레이터의 상기 제1 가상의 USB 허브 동작에 의해 상기 USB 장치가 동작하는 것으로 인식하는 에뮬레이터의 동작 방법.The emulator stops operating while the emulator executes the first virtual USB hub operation, and the PC recognizes that the USB device is operating by the first virtual USB hub operation of the emulator. Method of operation. 제10항에 있어서,The method of claim 10, 상기 USB 허브에 추가의 USB 장치가 접속될 때마다, 상기 인식 단계 및 상기 통보 단계를 반복하는 단계를 더 포함하는 에뮬레이터의 동작 방법.Each time an additional USB device is connected to the USB hub, the method further includes repeating the recognition step and the notification step. 제10항에 있어서,The method of claim 10, 상기 PC로부터 상기 USB 장치에 대한 추가의 동작 요청 신호를 수신할 때마다, 상기 판단 단계와 상기 제1 가상의 USB 허브 동작을 실행하는 단계를 반복하거나, 또는 상기 판단 단계와 상기 제2 가상의 USB 허브 동작을 실행하는 단계를 반복하는 단계를 더 포함하는 에뮬레이터의 동작 방법.Each time an additional operation request signal for the USB device is received from the PC, repeating the determining and executing the first virtual USB hub operation, or the determining and the second virtual USB And repeating the step of executing the hub operation. 제10항에 있어서,The method of claim 10, 상기 에뮬레이터는 슬레이브 컨트롤러, 메모리, CPU, 및 전원 공급부를 포함하고, 상기 CPU는 상기 전원 공급부로부터 내부 전원이 공급될 때, 상기 메모리에 저장된, 상기 제1 또는 제2 가상의 USB 허브 동작을 실행하기 위한 제어 프로그램들 중 일부인, 논리 허브 프로그램, 주제어 프로그램, 및 운영체제 프로그램을 실행하고,The emulator includes a slave controller, a memory, a CPU, and a power supply, wherein the CPU is configured to execute the first or second virtual USB hub operation stored in the memory when internal power is supplied from the power supply. Executes a logical hub program, a main control program, and an operating system program, which are some of the control programs for 상기 PC에 접속되는 단계는,The step of connecting to the PC, 상기 에뮬레이터의 상기 제1 USB 포트가 상기 PC의 USB 포트에 연결된 후, 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러로부터 제1 요청 데이터를 수신하는 단계;After the first USB port of the emulator is connected to a USB port of the PC, receiving, by the CPU, first request data from a host controller of the PC through the slave controller; 상기 CPU에서 실행되는 상기 논리 허브 프로그램에 의해, 상기 제1 요청 데이터에 대한 응답으로서, 상기 논리 허브 프로그램에 의해 구현되는 가상의 USB 허브에 대한 장치 정보 데이터를 생성하는 단계;Generating, by the logical hub program executed in the CPU, device information data for a virtual USB hub implemented by the logical hub program in response to the first request data; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 장치 정보 데이터를 상기 호스트 컨트롤러에 전송하는 단계;Transmitting, by the CPU, the device information data to the host controller through the slave controller; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 호스트 컨트롤러로부터 허브 주소를 수신하는 단계;Receiving, by the CPU, a hub address from the host controller through the slave controller; 상기 CPU에서 실행되는 상기 논리 허브 프로그램에 의해, 상기 허브 주소를 기록하는 단계;Recording the hub address by the logical hub program executed in the CPU; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 호스트 컨트롤러로부터 제2 요청 데이터를 수신하는 단계;Receiving, by the CPU, second request data from the host controller through the slave controller; 상기 논리 허브 프로그램에 의해, 상기 제2 요청 데이터에 대한 응답으로서, 상세 정보 데이터를 생성하는 단계;Generating, by the logical hub program, detailed information data in response to the second request data; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 상세 정보 데이터를 상기 호스트 컨트롤러에 전송하는 단계;Transmitting, by the CPU, the detailed information data to the host controller through the slave controller; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 호스트 컨트롤러로부터 제3 요청 데이터를 수신하는 단계;Receiving, by the CPU, third request data from the host controller through the slave controller; 상기 논리 허브 프로그램에 의해, 상기 제3 요청 데이터에 대한 응답으로서, 허브 정보 데이터를 생성하는 단계;Generating, by the logical hub program, hub information data in response to the third request data; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 허브 정보 데이터를 상기 호스트 컨트롤러에 전송하는 단계;Transmitting, by the CPU, the hub information data to the host controller through the slave controller; 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 호스트 컨트롤러로부터 허브 포트 초기화 명령을 수신하는 단계;Receiving, by the CPU, a hub port initialization command from the host controller through the slave controller; 상기 논리 허브 프로그램에 의해, 상기 허브 포트 초기화 명령에 대한 응답으로서, 초기화 완료 데이터를 생성하는 단계; 및Generating, by the logical hub program, initialization complete data in response to the hub port initialization command; And 상기 CPU에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 초기화 완료 데이터를 상기 호스트 컨트롤러에 전송하는 단계를 포함하고,Transmitting, by the CPU, the initialization completed data to the host controller through the slave controller, 상기 허브 정보 데이터는 상기 가상의 USB 허브의 포트 개수와 전원 공급 방식에 대한 정보를 포함하고,The hub information data includes information about the number of ports and a power supply method of the virtual USB hub, 상기 호스트 컨트롤러는 상기 장치 정보 데이터 및 상기 상세 정보 데이터에 기초하여, 상기 에뮬레이터를 상기 가상의 USB 허브로 인식하는 에뮬레이터의 동작 방법.And the host controller recognizes the emulator as the virtual USB hub based on the device information data and the detailed information data. 제13항에 있어서,The method of claim 13, 상기 CPU로부터 출력되는 상기 장치 정보 데이터, 상기 상세 정보 데이터, 상기 허브 정보 데이터, 및 상기 초기화 완료 데이터는 상기 슬레이브 컨트롤러에 의해 설정된 통신 프로토콜 형식의 제1 통신 신호들로 각각 변환되어 상기 호스트 컨트롤러에 전송되고, 상기 호스트 컨트롤러로부터 출력되는 제2 통신 신호들은 상기 슬레이브 컨트롤러에 의해 논리 데이터 형식의 상기 제1 내지 제3 요청 데이터 들과 상기 허브 포트 초기화 명령으로 각각 변환되어 상기 CPU에 전송되는 에뮬레이터의 동작 방법.The device information data, the detailed information data, the hub information data, and the initialization completion data output from the CPU are converted into first communication signals in a communication protocol format set by the slave controller and transmitted to the host controller. And second communication signals outputted from the host controller are converted into the first through third request data and the hub port initialization command in a logical data format by the slave controller, respectively, and transmitted to the CPU. . 제10항에 있어서,The method of claim 10, 상기 에뮬레이터는 메모리, CPU, 및 호스트 컨트롤러, 및 전원 공급부를 포함하고, 상기 CPU는 상기 전원 공급부로부터 내부 전원이 공급될 때, 상기 메모리에 저장된, 상기 제1 또는 제2 가상의 USB 허브 동작을 실행하기 위한 제어 프로그램들 중 일부인, 논리 허브 프로그램, 주제어 프로그램, 및 운영체제 프로그램을 실행하고,The emulator includes a memory, a CPU, and a host controller, and a power supply, wherein the CPU executes the first or second virtual USB hub operation stored in the memory when internal power is supplied from the power supply. Executes a logical hub program, a main control program, and an operating system program, which are some of the control programs to 상기 USB 장치를 인식하는 단계는,Recognizing the USB device, 상기 호스트 컨트롤러에 의해, 제1 정보 요청 신호를 상기 USB 장치에 전송하는 단계;Sending, by the host controller, a first information request signal to the USB device; 상기 호스트 컨트롤러에 의해, 상기 USB 장치로부터 장치 정보를 수신하는 단계;Receiving, by the host controller, device information from the USB device; 상기 호스트 컨트롤러에 의해, 상기 USB 장치에 대한 주소를 할당하는 단계;Assigning, by the host controller, an address for the USB device; 상기 호스트 컨트롤러에 의해, 상기 USB 장치에 상기 주소를 전송하는 단계;Sending, by the host controller, the address to the USB device; 상기 호스트 컨트롤러에 의해, 제2 정보 요청 신호를 상기 USB 장치에 전송하는 단계;Sending, by the host controller, a second information request signal to the USB device; 상기 호스트 컨트롤러에 의해, 상기 USB 장치로부터 상세 정보를 수신하는 단계;Receiving, by the host controller, detailed information from the USB device; 상기 호스트 컨트롤러에 의해, 상기 주소, 상기 장치 정보, 및 상기 상세 정보를 저장하는 단계;Storing, by the host controller, the address, the device information, and the detailed information; 상기 호스트 컨트롤러에 의해, 상기 장치 정보 및 상기 상세 정보를 상기 CPU에 출력하는 단계;Outputting, by the host controller, the device information and the detailed information to the CPU; 상기 CPU에서 실행되는 상기 운영체제 프로그램에 의해, 상기 장치 정보 및 상기 상세 정보에 기초하여, 상기 USB 장치를 인식하고, 상기 USB 장치에 대응하는 가상 드라이버 프로그램을 상기 메모리에서 검색하는 단계; 및Recognizing, by the operating system program executed in the CPU, the USB device based on the device information and the detailed information, and retrieving a virtual driver program corresponding to the USB device from the memory; And 상기 운영체제 프로그램에 의해, 검색된 상기 가상 드라이버 프로그램을 실행시키는 단계를 포함하는 에뮬레이터의 동작 방법.Executing, by the operating system program, the retrieved virtual driver program. 제15항에 있어서,The method of claim 15, 상기 장치 정보는, 상기 USB 장치의 이름, 상기 USB 장치의 USB 스펙 버전 정보, 및 상기 USB 장치에 전송되는 통신 패킷의 최대 길이 정보를 포함하고,The device information includes a name of the USB device, USB specification version information of the USB device, and maximum length information of a communication packet transmitted to the USB device. 상기 상세 정보는, 상기 USB 장치에 대한, 제조회사 ID, 제품번호, 펌웨어 버전 정보, 및 제조회사 이름을 포함하는 에뮬레이터의 동작 방법.The detailed information includes a manufacturer ID, a product number, firmware version information, and a manufacturer name for the USB device. 제15항에 있어서,The method of claim 15, 상기 에뮬레이터는 슬레이브 컨트롤러를 더 포함하고,The emulator further comprises a slave controller, 상기 PC에 상기 USB 장치의 접속 상태를 통보하는 단계는,Informing the PC of the connection state of the USB device, 상기 가상 드라이버 프로그램의 실행이 완료될 때, 상기 CPU에서 실행되는 상기 주제어 프로그램에 의해, 접속 통보 데이터를 생성하는 단계;Generating execution notification data by the main control program executed in the CPU when execution of the virtual driver program is completed; 상기 논리 허브 프로그램에 의해, 상기 주제어 프로그램으로부터 수신되는 상기 접속 통보 데이터를 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러에 전송하는 단계;Transmitting, by the logical hub program, the connection notification data received from the main control program to a host controller of the PC through the slave controller; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러로부터 제1 장치 정보 요청 데이터를 수신하는 단계;Receiving, by the logical hub program, first device information request data from the host controller of the PC through the slave controller; 상기 주제어 프로그램에 의해, 상기 논리 허브 프로그램을 통하여 수신되는 상기 제1 장치 정보 요청 데이터에 응답하여, 상기 가상 드라이버 프로그램으로부터 수신한 상기 장치 정보를 상기 논리 허브 프로그램에 전달하는 단계;Transmitting, by the main control program, the device information received from the virtual driver program to the logical hub program in response to the first device information request data received through the logical hub program; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 장치 정보를 상기 PC의 호스트 컨트롤러에 전송하는 단계;Transmitting, by the logical hub program, the device information to the host controller of the PC through the slave controller; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러로부터 상기 USB 장치에 대한 추가의 주소를 수신하는 단계;Receiving, by the logical hub program, an additional address for the USB device from the host controller of the PC via the slave controller; 상기 주제어 프로그램에 의해, 상기 논리 허브 프로그램을 통하여 수신되는 상기 추가의 주소를 상기 가상 드라이버 프로그램으로부터 수신한 상기 장치 정보 및 상기 상세 정보와 함께 기록하는 단계;Recording, by the main control program, the additional address received through the logical hub program together with the device information and the detailed information received from the virtual driver program; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러로부터 제2 장치 정보 요청 데이터를 수신하는 단계;Receiving, by the logical hub program, second device information request data from the host controller of the PC through the slave controller; 상기 주제어 프로그램에 의해, 상기 논리 허브 프로그램을 통하여 수신되는 상기 제2 장치 정보 요청 데이터에 응답하여, 상기 상세 정보를 상기 논리 허브 프 로그램에 전달하는 단계; 및Transmitting, by the main control program, the detailed information to the logical hub program in response to the second device information request data received through the logical hub program; And 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 상세 정보를 상기 PC의 호스트 컨트롤러에 전송하는 단계를 포함하는 에뮬레이터의 동작 방법.Transmitting, by the logical hub program, the detailed information to the host controller of the PC through the slave controller. 제17항에 있어서,The method of claim 17, 상기 장치 정보를 상기 PC의 호스트 컨트롤러에 전송하는 단계와, 상기 상세 정보를 상기 PC의 호스트 컨트롤러에 전송하는 단계에 의해, 상기 PC의 호스트 컨트롤러가 수신한 상기 장치 정보 및 상기 상세 정보는, 상기 PC의 CPU에서 실행되는 상기 PC의 운영체제 프로그램에 전달되고, 상기 PC의 운영체제 프로그램이, 상기 장치 정보 및 상기 상세 정보에 기초하여, 상기 USB 장치를 인식하고, 상기 USB 장치에 대응하는 드라이버 프로그램을 상기 PC의 메모리에서 검색하여 실행시키고,The device information and the detailed information received by the host controller of the PC by transmitting the device information to the host controller of the PC and the detailed information to the host controller of the PC, The operating system program of the PC running on the CPU of the PC, the operating system program of the PC, based on the device information and the detailed information, recognizes the USB device, the driver program corresponding to the USB device to the PC Retrieve and run from memory, 상기 PC의 호스트 컨트롤러가, 상기 업무 프로그램의 요청에 따라 상기 드라이버 프로그램에 의해 생성된 USB 장치 제어 데이터에, 상기 추가의 주소를 포함시켜 상기 동작 요청 신호를 생성하고, 상기 동작 요청 신호를 상기 슬레이브 컨트롤러에 전송하는 에뮬레이터의 동작 방법.The host controller of the PC generates the operation request signal by including the additional address in the USB device control data generated by the driver program in response to a request of the business program, and sends the operation request signal to the slave controller. How the emulator works by sending it to. 제13항에 있어서,The method of claim 13, 상기 에뮬레이터는 통신망에 연결되는 네트워크 인터페이스 장치를 더 포함하고,The emulator further includes a network interface device connected to the communication network, 상기 제1 가상의 USB 허브 동작을 실행하는 단계는,The step of executing the first virtual USB hub operation, 상기 슬레이브 컨트롤러에 의해 상기 동작 요청 신호를 논리 데이터 형식의 동작 요청 데이터로 변환하는 단계;Converting, by the slave controller, the operation request signal into operation request data in a logical data format; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러로부터 수신되는 상기 동작 요청 데이터를 상기 주제어 프로그램에 전달하는 단계;Transmitting, by the logical hub program, the operation request data received from the slave controller to the main control program; 상기 주제어 프로그램에 의해, 상기 동작 요청 데이터에 포함된, 상기 통보 단계에서 상기 PC의 호스트 컨트롤러에 의해 할당된 주소를 이용하여, 미리 기록된 장치 정보들에서, 해당 USB 장치에 대한 장치 정보를 검색하는 단계;Retrieving device information on the USB device from the pre-recorded device information using the address assigned by the host controller of the PC in the notification step, by the main control program; step; 상기 주제어 프로그램에 의해, 해당 USB 장치에 대한 장치 정보에 기초하여, 해당 USB 장치의 이름을 확인하는 단계;Confirming, by the main program, a name of the corresponding USB device based on the device information on the corresponding USB device; 상기 주제어 프로그램에 의해, 상기 USB 장치의 이름을 이용하여, 상기 네트워크 인터페이스 장치를 통하여, 상기 PC의 CPU에서 실행되는 상기 자동 테스트 프로그램에, 해당 USB 장치에 대한 테스트용 입력 데이터를 요청하는 단계;Requesting, by the main control program, the input test data for the corresponding USB device from the automatic test program executed in the CPU of the PC through the network interface device using the name of the USB device; 상기 주제어 프로그램에 의해, 상기 네트워크 인터페이스 장치를 통하여 상기 자동 테스트 프로그램으로부터 수신되는 상기 테스트용 입력 데이터에, 상기 PC의 호스트 컨트롤러에 의해 할당된 주소를 포함시켜, 상기 테스트용 입력 정보를 생성하는 단계;Generating, by the main control program, the test input information including the address assigned by the host controller of the PC in the test input data received from the automatic test program through the network interface device; 상기 주제어 프로그램에 의해, 상기 테스트용 입력 정보를 상기 논리 허브 프로그램에 전달하는 단계; 및Transmitting, by the main control program, the test input information to the logical hub program; And 상기 논리 허브 프로그램에 의해, 상기 테스트용 입력 정보를 상기 슬레이브 컨트롤러를 통하여 상기 PC의 호스트 컨트롤러에 전송하는 단계를 포함하고,Transmitting, by the logic hub program, the test input information to the host controller of the PC through the slave controller, 상기 PC의 호스트 컨트롤러가 수신한 상기 테스트용 입력 정보는, 상기 이벤트들이 상기 업무 프로그램에서 재현되는 동안 상기 업무 프로그램에 적용되는 에뮬레이터의 동작 방법.The test input information received by the host controller of the PC is applied to the work program while the events are reproduced in the work program. 제17항에 있어서,The method of claim 17, 프로그램을 자동으로 실행시켜 테스트하는 자동 테스트 프로그램이 더 설치되고, There are more automated test programs installed that run and test the program automatically. 상기 제2 가상의 USB 허브 동작을 실행하는 단계는,The step of executing the second virtual USB hub operation, 상기 슬레이브 컨트롤러에 의해 상기 동작 요청 신호를 논리 데이터 형식의 동작 요청 데이터로 변환하는 단계;Converting, by the slave controller, the operation request signal into operation request data in a logical data format; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러로부터 수신되는 상기 동작 요청 데이터를 상기 주제어 프로그램에 전달하는 단계;Transmitting, by the logical hub program, the operation request data received from the slave controller to the main control program; 상기 주제어 프로그램에 의해, 상기 동작 요청 데이터에 포함된 상기 추가의 주소를 이용하여, 해당 USB 장치에 대응하는 상기 가상 드라이버 프로그램에 상기 동작 요청 데이터를 전달하는 단계;Transmitting, by the main control program, the operation request data to the virtual driver program corresponding to the corresponding USB device using the additional address included in the operation request data; 상기 가상 드라이버 프로그램에 의해, 상기 동작 요청 데이터에 기초하여, 동작 제어 데이터를 생성하는 단계;Generating, by the virtual driver program, operation control data based on the operation request data; 상기 호스트 컨트롤러에 의해, 상기 동작 제어 데이터에 상기 주소를 포함시켜 상기 동작 제어 신호를 생성하는 단계;Generating, by the host controller, the operation control signal by including the address in the operation control data; 상기 호스트 컨트롤러에 의해, 상기 USB 허브를 통하여 상기 동작 제어 신호를 해당 USB 장치에 전송하는 단계;Transmitting, by the host controller, the operation control signal to the corresponding USB device through the USB hub; 상기 가상 드라이버 프로그램에 의해, 상기 호스트 컨트롤러를 통하여, 해당 USB 장치의 동작에 따른 입력 데이터를 수신하는 단계;Receiving, by the virtual driver program, input data according to an operation of a corresponding USB device through the host controller; 상기 가상 드라이버 프로그램에 의해, 상기 입력 데이터를 상기 주제어 프로그램에 전달하는 단계;Transmitting, by the virtual driver program, the input data to the main control program; 상기 주제어 프로그램에 의해, 상기 입력 데이터에 상기 추가의 주소를 포함시켜 상기 제1 입력 정보를 생성하는 단계;Generating, by the main control program, the first input information by including the additional address in the input data; 상기 주제어 프로그램에 의해, 상기 논리 허브 프로그램에 상기 제1 입력 정보를 전달하는 단계;Transmitting, by the main control program, the first input information to the logical hub program; 상기 논리 허브 프로그램에 의해, 상기 슬레이브 컨트롤러를 통하여 상기 제1 입력 정보를 상기 PC의 호스트 컨트롤러에 전송하는 단계;Transmitting, by the logical hub program, the first input information to the host controller of the PC through the slave controller; 상기 주제어 프로그램에 의해, 상기 네트워크 인터페이스 장치를 통하여, 상기 PC의 CPU에서 실행되는 상기 자동 테스트 프로그램으로부터 기록 명령을 수신한 경우, 상기 입력 데이터에 해당 USB 장치의 이름을 포함시켜, 상기 제2 입력 정보를 생성하는 단계; 및When the recording command is received from the automatic test program executed in the CPU of the PC through the network interface device by the main control program, the second input information includes the name of the corresponding USB device in the input data. Generating a; And 상기 주제어 프로그램에 의해, 상기 제2 입력 정보를 상기 네트워크 인터페이스 장치를 통하여 상기 자동 테스트 프로그램에 전송하는 단계를 포함하고,Transmitting, by the main control program, the second input information to the automatic test program via the network interface device; 상기 제2 입력 정보는 상기 자동 테스트 프로그램에 의해 상기 이벤트들 중 하나로서 기록되고, 상기 제1 입력 정보는 상기 업무 프로그램이 실행되는 동안 상기 업무 프로그램에 적용되는 에뮬레이터의 동작 방법.The second input information is recorded by the automatic test program as one of the events, and the first input information is applied to the business program while the business program is running.
KR1020080096875A 2008-10-02 2008-10-02 Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof KR101033177B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080096875A KR101033177B1 (en) 2008-10-02 2008-10-02 Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080096875A KR101033177B1 (en) 2008-10-02 2008-10-02 Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof

Publications (2)

Publication Number Publication Date
KR20100037670A KR20100037670A (en) 2010-04-12
KR101033177B1 true KR101033177B1 (en) 2011-05-11

Family

ID=42214747

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080096875A KR101033177B1 (en) 2008-10-02 2008-10-02 Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof

Country Status (1)

Country Link
KR (1) KR101033177B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174526A (en) * 2022-06-29 2022-10-11 京东方科技集团股份有限公司 Network adaptation method and device between devices, storage medium and electronic device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144335A1 (en) 2001-12-03 2005-06-30 Microsoft Corporation Testing a host's support for peripheral devices
US20060095644A1 (en) 2004-10-29 2006-05-04 Fujitsu Component Limited Selector, selection method, and program product

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144335A1 (en) 2001-12-03 2005-06-30 Microsoft Corporation Testing a host's support for peripheral devices
US20060095644A1 (en) 2004-10-29 2006-05-04 Fujitsu Component Limited Selector, selection method, and program product

Also Published As

Publication number Publication date
KR20100037670A (en) 2010-04-12

Similar Documents

Publication Publication Date Title
JP3667199B2 (en) Integrated PC Card host controller for detection and operation of multiple expansion cards
US6769622B1 (en) System and method for simulating universal serial bus smart card device connected to USB host
US6742055B2 (en) Data transmission system, data transmission terminal, controller and interface method
US8135871B2 (en) Computer system and control method of the same
KR101068380B1 (en) A multi-function peripheral device, corresponding method and electronic system having a peripheral and a host communicating via a single interface
US20050223145A1 (en) System, apparatus and method for migrating computer environment and associated computer readable recording medium
US7568053B2 (en) USB composite device, USB communication system, and USB communication method
US6892254B2 (en) Device driver apparatus for I/O device simulation
US20070204055A1 (en) Communication system, peripheral device and computer progam product
CN101490700A (en) Smart card terminal side data and management framework
EP3117327B1 (en) Universal serial bus emulation of peripheral devices
CN105184337A (en) Intelligent card application detection method and system for NFC equipment
US7930708B2 (en) Device control system, device control method, and device control program
KR101033177B1 (en) Emulator substituting for universal serial bus devices by virtual operation of the emulator, during automation test process of work program, and operation method thereof
JP6036222B2 (en) Device control apparatus, host apparatus and host apparatus control method
US7945714B2 (en) Apparatus and method of tracing descriptors in host controller
US20020099953A1 (en) Debugging of chipcards
JPH09244860A (en) Method, device for controlling display of icon, output system provided with the same device and storage medium for storing procedure of the same method
JP5320780B2 (en) Information processing system, function expansion device, and control method
JP6860796B2 (en) Information processing systems, information processing equipment and programs
TWI259368B (en) Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected
US6009486A (en) Cardbus docking station
CN110967614B (en) Chip testing method, chip testing equipment and chip
JP2007164348A (en) Emulator
KR100807509B1 (en) Conversion device or conversion method from ata device interface to usb host interface for mass storage device

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
FPAY Annual fee payment

Payment date: 20140428

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150428

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee