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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record 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/067—Record 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/07—Record 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/077—Constructional details, e.g. mounting of circuits in the carrier
- G06K19/0772—Physical layout of the record carrier
- G06K19/07732—Physical 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 장치의 조작이 필요 없는 업무 프로그램의 완전한 자동 테스트가 실현될 수 있고, 업무 프로그램의 테스트 시간이 단축될 수 있다.
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.
USB device, USB hub, business program, automatic test program
Description
본 발명은 PC(personal computer)에 연결되는 보조 장치에 관한 것으로서, 더욱 상세하게는, USB(universal serial bus) 장치의 동작을 대행하는 에뮬레이터(emulator) 및 그 동작 방법에 관한 것이다.BACKGROUND OF THE
일반적으로, 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
슬레이브 컨트롤러(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
메모리(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
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)는 슬레이브 컨트롤러(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)는 재현 명령(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
호스트 컨트롤러(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
외부 전원(EPWR)이 전원 공급부(160)에 입력될 때, 전원 공급부(160)는 외부 전원(EPWR)에 기초하여 내부 전원(IPWR)을 생성하고, 내부 전원(IPWR)을 에뮬레이터(100) 내의 각 장치들, 즉, 슬레이브 컨트롤러(110), 네트워크 인터페이스 장치(120), 메모리(130), CPU(140), 호스트 컨트롤러(150), 입력 장치(170)에 공급한다.When the external power source EPWR is input to the
PC(200)는 호스트 컨트롤러(210), 네트워크 인터페이스 장치(220), 메모리(230), CPU(240), 및 주변 장치부(250)를 포함한다. 메모리(230)에는 업무 프로그램(241), 자동 테스트 프로그램(242), 운영체제 프로그램(243), 및 드라이버 프로그램들(D1∼DK)이 저장될 수 있다. 주변 장치부(250)에 포함된 입력부(미도시)를 통한 사용자의 입력에 따라, CPU(240)가 업무 프로그램(241)과 자동 테스트 프로그램(242)을 실행시킬 수 있다.The
CPU(240)에서 자동 테스트 프로그램(242)이 실행될 때, 자동 테스트 프로그램(242)은 업무 프로그램(241)이 실행되는 동안 발생하는 이벤트들을 기록한다. 이 후, 자동 테스트 프로그램(242)은 기록한 상기 이벤트들을 업무 프로그램(241)에서 재현함으로써, 업무 프로그램(241)을 자동으로 실행시켜 테스트한다. 여기에서, 이벤트는 업무 프로그램(241)의 각 업무 처리 화면을 이루는 구성 요소들(예를 들어, 버튼(button), 콤보 박스(combo box), 텍스트(text) 입력란, 레이블(label) 등)에서 발생하는 이벤트를 의미한다. 예를 들어, 사용자가 특정 업무 처리 화면에서 특정 업무를 실행하기 위해 특정 버튼을 클릭(click)한 경우, 해당 버튼에서 "클릭"의 이벤트가 발생한 것이다. 또, 사용자가 특정 업무 처리 화면에서 텍스트 입력란에 특정 텍스트를 입력한 경우, 해당 텍스트 입력란에서 "텍스트 입력"의 이벤트가 발생한 것이다.When the
한편, 자동 테스트 프로그램(242)은 업무 프로그램(241)의 이벤트들을 기록할 때, 네트워크 인터페이스 장치(220)를 통하여 기록 명령(RCCMD)을 에뮬레이터(100)에 전송할 수 있다. 자동 테스트 프로그램(242)이 상기 이벤트들을 업무 프로그램(241)에서 재현할 때, 네트워크 인터페이스 장치(220)를 통하여 재현 명령(RPCMD)을 에뮬레이터(100)에 전송할 수 있다. 선택적으로, 자동 테스트 프로그램(242)은 통신망(300)에 접속한 외부의 제어 장치(미도시)에 설치될 수도 있다. 이 경우, 에뮬레이터(100)는 상기 제어 장치로부터 기록 명령(RCCMD) 또는 재현 명령(RPCMD)을 수신한다.Meanwhile, the
업무 프로그램(241)이 CPU(240)에서 실행될 때, 업무 프로그램(241)에 의해 처리되는 업무들 중 일부는 USB 장치(U1∼UK 중 적어도 하나)의 동작과 관련한 업무를 포함한다. 예를 들어, 업무 프로그램(241)이 은행이나 증권회사와 같은 금융 기관에서 사용되는 금융 업무 프로그램인 경우, USB 장치(U1∼UK)는 핀 패드(pin pad), 직불카드 발급기, IC 리더기(integrated circuit reader), 통장 프린터(printer), 및 통장 리더기 등을 포함할 수 있다. 이 경우, 금융 업무 프로그램 에 의해 실행되는 자금 이체 업무는, 핀 패드에 해당 계좌의 비밀번호가 입력되어야만 처리될 수 있는 업무로서, USB 장치의 동작과 관련된 업무에 해당한다. 또, 금융 업무 프로그램에 의해 실행되는 통장 인자 업무는, 통장 프린터에 통장이 삽입되어야만 처리될 수 있는 업무로서, USB 장치의 동작과 관련된 업무에 해당한다.When the
다음으로, 도 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
먼저, 도 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
이 후, 에뮬레이터(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
에뮬레이터(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
재현 명령(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
에뮬레이터(100)는 USB 포트(101)를 통하여 PC(200)로부터 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신되는지의 여부를 판단한다(단계 1010). 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신될 때, 에뮬레이터(100)는 상기 단계 1007 내지 단계 1010의 동작을 반복한다. 추가의 동작 요청 신호(RQS1∼RQSK 중 다른 하나)가 수신되지 않을 때, 에뮬레이터(100)는 동작을 정지한다.The
도 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
CPU(140)에서 실행되는 논리 허브 프로그램(141)은 제1 요청 데이터(FRQD1)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 장치 정보 데이터(HDVF)를 생성한다(단계 1103).The
CPU(140)는 슬레이브 컨트롤러(110)를 통하여 장치 정보 데이터(HDVF)를 호스트 컨트롤러(210)에 전송한다(단계 1104). 이를 좀 더 상세히 설명하면, 슬레이브 컨트롤러(110)가 논리 데이터 형식의 장치 정보 데이터(HDVF)를 설정된 통신 프로토콜 형식의 통신 신호인, 장치 정보 신호(HDVFS)로 변환하여 호스트 컨트롤러(210)에 전송한다. 상술한 것과 같이, 슬레이브 컨트롤러(110)는 호스트 컨트롤러(210)로부터 수신되는 설정된 통신 프로토콜 형식의 모든 통신 신호를 논리 데이터 형식의 데이터로 변환하여 CPU(140)에 출력한다. 또, 슬레이브 컨트롤러(110)는 CPU(140)로부터 수신되는 논리 데이터 형식의 모든 데이터를 설정된 통신 프로토콜 형식의 통신 신호로 변환하여 호스트 컨트롤러(210)에 전송한다.The
호스트 컨트롤러(210)는 장치 정보 신호(HDVFS)를 수신하고, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 허브 주소(HBAD)를 할당하고, 허브 주소(HBAD)를 슬레이브 컨트롤러(110)에 전송한다. 그 결과, CPU(140)가 슬레이브 컨트롤러(110)를 통하여 허브 주소(HBAD)를 수신한다(단계 1105). 허브 주소(HBAD)는 CPU(140)에서 실행되는 논리 허브 프로그램(141)에 전달된다. The
논리 허브 프로그램(141)은 허브 주소(HBAD)를 기록한다(단계 1106). 이 후, 논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)로부터 수신되는 데이터들 중에서 허브 주소(HBAD)를 포함하지 않는 데이터들만을 주제어 프로그램(142)에 전달한다.The
이 후, 호스트 컨트롤러(210)는 제2 요청 신호(FRQS2)를 슬레이브 컨트롤 러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제2 요청 신호(FRQS2)를 논리 데이터 형식의 제2 요청 데이터(FRQD2)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)가 제2 요청 데이터(FRQD2)를 수신한다(단계 1107).Thereafter, the
논리 허브 프로그램(141)은 제2 요청 데이터(FRQD2)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 상세 정보 데이터(HDSF)를 생성한다(단계 1108). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 상세 정보 데이터(HDSF)를 호스트 컨트롤러(210)에 전송한다(단계 1109).The
호스트 컨트롤러(210)는 장치 정보 데이터(HDVF)와 상세 정보 데이터(HDSF)에 기초하여, 에뮬레이터(100)를 상기 가상의 USB 허브로 인식한다. 호스트 컨트롤러(210)는 허브 주소(HBAD)와 함께 장치 정보 데이터(HDVF)와 상세 정보 데이터(HDSF)를 저장한다.The
호스트 컨트롤러(210)는 제3 요청 신호(FRQS3)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제3 요청 신호(FRQS3)를 논리 데이터 형식의 제3 요청 데이터(FRQD3)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)가 제3 요청 데이터(FRQD3)를 수신한다(단계 1110).The
논리 허브 프로그램(141)은 제3 요청 데이터(FRQD3)에 대한 응답으로서, 논리 허브 프로그램(141)에 의해 구현되는 가상의 USB 허브에 대한 허브 정보 데이터(HDHF)를 생성한다(단계 1111). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 허브 정보 데이터(HDHF)를 호스트 컨트롤러(210)에 전송한다(단계 1112). 여기에서, 허브 정보 데이터(HDHF)는 상기 가상의 USB 허브의 포트 개수와 전원 공급 방식에 대한 정보를 포함한다.The
호스트 컨트롤러(210)는 허브 정보 데이터(HDHF)에 기초하여, 상기 가상의 USB 허브의 포트 개수를 인식하고, 허브 포트 초기화 명령(ICMD)을 슬레이브 컨트롤러(110)에 전송한다. 그 결과, CPU(140)가 슬레이브 컨트롤러(110)를 통하여 허브 포트 초기화 명령(ICMD)을 수신한다(단계 1113).The
논리 허브 프로그램(141)은 허브 포트 초기화 명령(ICMD)에 대한 응답으로서, 초기화 완료 데이터(IEND)를 생성한다(단계 1114). CPU(140)는 슬레이브 컨트롤러(110)를 통하여 초기화 완료 데이터(IEND)를 호스트 컨트롤러(210)에 전송한다(단계 1115).The
도 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
이 후, 호스트 컨트롤러(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
호스트 컨트롤러(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
운영체제 프로그램(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
도 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
가상 드라이버 프로그램(VD1∼VDK 중 하나)의 실행이 완료될 때, 주제어 프로그램(142)은 접속 통보 데이터(CNDAT)를 생성한다(단계 1302). 주제어 프로그램(142)은 접속 통보 데이터(CNDAT)를 논리 허브 프로그램(141)에 전달한다.When execution of the virtual driver program (one of VD1 to VDK) is completed, the
논리 허브 프로그램(141)은 주제어 프로그램(142)으로부터 수신되는 접속 통보 데이터(CNDAT)를 슬레이브 컨트롤러(110)를 통하여 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1303).The
호스트 컨트롤러(210)는 가상의 USB 허브(즉, 에뮬레이터(100))에 어떤 장치가 접속되었는지를 인식하기 위해, 제1 장치 정보 요청 신호(DFRQS1)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제1 장치 정보 요청 신호(DFRQS1)를 논리 데이터 형식의 제1 장치 정보 요청 데이터(DFRQD1)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)에서 실행되는 논리 허브 프로그램(141)이 제1 장치 정보 요청 데이터(DFRQD1)를 수신한다(단계 1304).The
제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
논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)를 통하여 장치 정보(DVF1∼DVFK 중 하나)를 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1306). 호스트 컨트롤러(210)는 장치 정보(DVF1∼DVFK 중 하나)를 수신하고, 해당 USB 장치(U1∼UK 중 하나)에 주소(ADD1∼ADDK 중 하나)를 할당한다. 호스트 컨트롤러(210)는 주소(ADD1∼ADDK 중 하나)를 슬레이브 컨트롤러(110)에 전송한다.The
그 결과, 논리 허브 프로그램(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
이 후, 호스트 컨트롤러(210)는 제2 장치 정보 요청 신호(DFRQS2)를 슬레이브 컨트롤러(110)에 전송한다. 슬레이브 컨트롤러(110)는 제2 장치 정보 요청 신호(DFRQS2)를 논리 데이터 형식의 제2 장치 정보 요청 데이터(DFRQD2)로 변환하여 CPU(140)에 출력한다. 그 결과, CPU(140)에서 실행되는 논리 허브 프로그램(141)이 제2 장치 정보 요청 데이터(DFRQD2)를 수신한다(단계 1309).Thereafter, the
주제어 프로그램(142)은 논리 허브 프로그램(141)을 통하여 수신되는 제2 장치 정보 요청 데이터(DFRQD2)에 응답하여, 상세 정보(DSF1∼DSFK 중 하나)를 논리 허브 프로그램(141)에 전달한다(단계 1310). 논리 허브 프로그램(141)은 슬레이브 컨트롤러(110)를 통하여 상세 정보(DSF1∼DSFK 중 하나)를 PC(200)의 호스트 컨트롤러(210)에 전송한다(단계 1311).The
그 결과, 호스트 컨트롤러(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
한편, 상술한 단계 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
도 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
주제어 프로그램(142)은 동작 요청 데이터(RQD1∼RQDK 중 하나)에 포함된 주소(ADD1∼ADDK 중 하나)를 이용하여, 상기 단계 1308에서 미리 기록된 장치 정보 들(DVF1∼DVFK)에서, 해당 USB 장치(U1∼UK 중 하나)에 대한 장치 정보(DVF1∼DVFK 중 하나)를 검색한다(단계 1403). 주제어 프로그램(142)은 해당 USB 장치(U1∼UK 중 하나)에 대한 장치 정보(DVF1∼DVFK 중 하나)에 기초하여, 해당 USB 장치의 이름을 확인한다(단계 1404).The
주제어 프로그램(142)은 USB 장치의 이름을 이용하여, 네트워크 인터페이스 장치(120)를 통하여, PC(200)의 CPU(240)에서 실행되는 자동 테스트 프로그램(242)에, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청한다(단계 1405). 즉, 주제어 프로그램(142)은 USB 장치의 이름을 포함하는 데이터 요청 신호(DTREQ)를 자동 테스트 프로그램(242)에 전송하여, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청한다.The
선택적으로, 자동 테스트 프로그램(242)이 PC(200)에 설치되지 않고, 통신망(300)에 접속된 외부의 제어 장치(미도시)에 설치된 경우, 주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여, 외부의 제어 장치에서 실행되는 자동 테스트 프로그램(242)에, 해당 USB 장치(U1∼UK 중 하나)에 대한 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 요청할 수 있다.Optionally, when the
자동 테스트 프로그램(242)은 데이터 요청 신호(DTREQ)에 응답하여, 네트워크 인터페이스 장치(220)를 통하여 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)를 네트워크 인터페이스 장치(120)에 전송한다.In response to the data request signal DTREQ, the
주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여 수신되는 테스트용 입력 데이터(TSFD1∼TSFDK 중 하나)에, 주소(ADD1∼ADDK 중 하나)를 포함시켜, 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 생성한다(단계 1406). 주제어 프로그램(142)은 테스트용 입력 정보(TSF1∼TSFK 중 하나)를 논리 허브 프로그램(141)에 전달한다(단계 1407).The
논리 허브 프로그램(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
도 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
주제어 프로그램(142)은 동작 요청 데이터(RQD1∼RQDK 중 하나)에 포함된 주소(ADD1∼ADDK 중 하나)를 이용하여, 동작 요청 데이터(RQD1∼RQDK 중 하나)가 어떤 USB 장치(U1∼UK 중 하나)와 관련된 데이터인지를 식별한다. 주제어 프로그램(142)은 해당 USB 장치(U1∼UK 중 하나)에 대응하는 가상 드라이버 프로그램(VD1∼VDK 중 하나)에 동작 요청 데이터(RQD1∼RQDK 중 하나)를 전달한다(단계 1503).The
가상 드라이버 프로그램(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
호스트 컨트롤러(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
가상 드라이버 프로그램(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
그 결과, 호스트 컨트롤러(210)가 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)를 입력 데이터(IDAT1∼IDATK 중 하나)로 변환하여, 해당 드라이버 프로그램(D1∼DK 중 하나)에 전달한다. 드라이버 프로그램(D1∼DK 중 하나)은 입력 데이터(IDAT1∼IDATK 중 하나)를 업무 프로그램(241)에 전달한다. 결과적으로, 업무 프로그램(241)이 실행되는 동안, 입력 정보(FIF1∼FIFK 중 하나)(즉, 제1 입력 정보)가 업무 프로그램(241)에 적용된다.As a result, the
이 후, 주제어 프로그램(142)은 네트워크 인터페이스 장치(120)를 통하여, 자동 테스트 프로그램(242)으로부터 기록 명령(RCCMD)을 수신하였는지의 여부를 판단한다(단계 1512). 자동 테스트 프로그램(242)으로부터 기록 명령(RCCMD)을 수신하지 않은 경우, 에뮬레이터(100)는 단계 1009의 동작을 종료한다.Thereafter, the
또, 자동 테스트 프로그램(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
상기한 실시 예들은 본 발명을 설명하기 위한 것으로서 본 발명이 이들 실시 예에 국한되는 것은 아니며, 본 발명의 범위 내에서 다양한 실시예가 가능하다. 또한, 설명되지는 않았으나, 균등한 수단도 또한 본 발명에 그대로 결합되는 것이라 할 것이다. 따라서 본 발명의 진정한 보호범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.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:
102: 통신 포트 110: 슬레이브 컨트롤러102: communication port 110: slave controller
120, 220: 네트워크 인터페이스 장치 130, 230: 메모리120, 220:
140, 240: CPU 150, 210: 호스트 컨트롤러140, 240:
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)
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)
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)
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 |
-
2008
- 2008-10-02 KR KR1020080096875A patent/KR101033177B1/en not_active IP Right Cessation
Patent Citations (2)
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 |