KR101761126B1 - USB device and USB system comprising the same - Google Patents
USB device and USB system comprising the same Download PDFInfo
- Publication number
- KR101761126B1 KR101761126B1 KR1020110080733A KR20110080733A KR101761126B1 KR 101761126 B1 KR101761126 B1 KR 101761126B1 KR 1020110080733 A KR1020110080733 A KR 1020110080733A KR 20110080733 A KR20110080733 A KR 20110080733A KR 101761126 B1 KR101761126 B1 KR 101761126B1
- Authority
- KR
- South Korea
- Prior art keywords
- usb
- drivers
- function
- driver
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
USB 장치는 각기 다른 L개의 기능 드라이버(function driver)를 저장하는 제1 메모리, 및 제1 동작시, 상기 제1 메모리로부터 각기 다른 M(단, M≤L)개의 기능 드라이버를 로딩하고, 제2 동작시, 상기 M개의 기능 드라이버 중 N(단, N<M)개의 기능 드라이버는 로딩된 상태를 유지하면서, 상기 제1 메모리로부터 각기 다른 A(단, A<L)개의 기능 드라이버를 추가 로딩하는 제2 메모리를 포함한다.The USB device includes a first memory for storing L different function drivers and a second memory for loading different M (M? L) function drivers from the first memory during the first operation, In operation, N (where N < M) number of function drivers of the M function drivers are loaded and A (L) additional function drivers are loaded from the first memory And a second memory.
Description
본 발명은 USB 장치, 및 USB 장치를 포함하는 USB 시스템에 관한 것이다.The present invention relates to a USB device, and a USB system including a USB device.
USB 장치는 다양한 모드(mode)로 동작할 수 있으며, 각각의 모드 별로 다른 기능을 제공할 수 있다. 다만, USB 장치의 각각의 모드마다, 필요한 기능 드라이버(function driver)가 다르다. 그러므로, USB 장치의 모드가 변경되면, 변경될 모드에서 USB 장치가 원활히 동작하기 위해 필요한 기능 드라이버가 USB 장치의 휘발성 메모리에 로딩되어야 한다.The USB device can operate in various modes and can provide different functions for each mode. However, for each mode of the USB device, the required function driver is different. Therefore, when the mode of the USB device is changed, the function driver necessary for the USB device to smoothly operate in the mode to be changed must be loaded into the volatile memory of the USB device.
기능 드라이버는 비휘발성 메모리로부터 휘발성 메모리로 로딩될 수 있다. 예컨대, 비휘발성 메모리에는, 각 모드마다 필요로 하는 다수의 기능 드라이버가 조합을 이루어 저장될 수 있다. 예컨대, 제1 조합은, USB 장치를 제1 모드로 동작시키기 위해 필요한 기능 드라이버의 조합일 수 있고, 제2 조합은, USB 장치를 제2 모드로 동작시키기 위해 필요한 기능 드라이버의 조합일 수 있다. 그러므로, USB 장치의 모드가 변경되면, 우선, 휘발성 메모리에 로딩되어 있는 기능 드라이버를 전부 언로딩할 수 있다. 그리고, 변경될 모드에 필요한 기능 드라이버의 조합에 포함된 기능 드라이버를, 비휘발성 메모리로부터 휘발성 메모리로 로딩할 수 있다.The function driver may be loaded from the non-volatile memory into the volatile memory. For example, in the nonvolatile memory, a plurality of function drivers required for each mode can be stored in a combination. For example, the first combination may be a combination of the function drivers required to operate the USB device in the first mode, and the second combination may be a combination of the function drivers necessary to operate the USB device in the second mode. Therefore, when the mode of the USB device is changed, all of the function drivers loaded in the volatile memory can be unloaded first. Then, the function driver included in the combination of the function drivers necessary for the mode to be changed can be loaded from the nonvolatile memory into the volatile memory.
그런데, USB 장치의 모드 변경 전 휘발성 메모리에 로딩된 기능 드라이버 중, USB 장치의 모드 변경 후에도 계속 사용될 기능 드라이버가 있을 수 있다. 그러므로, 휘발성 메모리에 로딩된 기능 드라이버를 전부 언로딩하는 것은 비효율적일 수 있다.Among the function drivers loaded in the volatile memory before the mode change of the USB device, there may be a function driver that will continue to be used after the mode change of the USB device. Therefore, it may be inefficient to completely unload the function driver loaded into the volatile memory.
본 발명이 해결하려는 과제는, USB 장치의 모드 변경시, 변경될 모드에서 불필요한 기능 드라이버만 언로딩하고, 변경될 모드에서 계속 사용하는 기능 드라이버는 로딩 상태를 유지하고, 새롭게 필요한 기능 드라이버를 추가 로딩하여, 기능 드라이버의 로딩/언로딩의 효율성을 높일 수 있는 USB 장치 및 USB 시스템을 제공하는 것이다.A problem to be solved by the present invention is to unload unnecessary function drivers only in the mode to be changed when the mode of the USB device is changed, to keep the functioning driver that continues to use in the mode to be changed, And to provide a USB device and a USB system that can increase the efficiency of loading / unloading function drivers.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.
상기 과제를 해결하기 위한 본 발명의 USB 장치의 일 실시예는 각기 다른 L개의 기능 드라이버(function driver)를 저장하는 제1 메모리, 및 제1 동작시, 상기 제1 메모리로부터 각기 다른 M(단, M≤L)개의 기능 드라이버를 로딩하고, 제2 동작시, 상기 M개의 기능 드라이버 중 N(단, N<M)개의 기능 드라이버는 로딩된 상태를 유지하면서, 상기 제1 메모리로부터 각기 다른 A(단, A<L)개의 기능 드라이버를 추가 로딩하는 제2 메모리를 포함한다.According to an aspect of the present invention, there is provided a USB device comprising a first memory for storing L different function drivers, and a second memory for storing M different function drivers from the first memory, (N < M) function drivers from the first memory while maintaining the N (N < M) function drivers loaded in the A (A < L) function drivers.
상기 과제를 해결하기 위한 본 발명의 USB 시스템의 일 실시예는 호스트 기능 드라이버의 인터페이스 넘버가 저장된 제1 및 제2 Inf 파일을 포함하는 USB 호스트, 및 각기 다른 L개의 기능 드라이버를 저장하는 제1 메모리, 및 제1 동작시, 상기 제1 메모리로부터 각기 다른 M(단, M≤L)개의 기능 드라이버를 로딩하고, 상기 M개의 기능 드라이버는 상기 제1 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받고, 제2 동작시, 상기 M개의 기능 드라이버 중 N(단, N<M)개의 기능 드라이버는 로딩된 상태를 유지하면서, 상기 제1 메모리로부터 각기 다른 A(단, A≤L)개의 기능 드라이버를 추가 로딩하고, 상기 N개의 기능 드라이버에 할당된 인터페이스 넘버는 유지되는 제2 메모리를 포함하는 상기 USB 장치를 포함한다.In order to solve the above problems, an embodiment of the USB system of the present invention includes a USB host including first and second Inf files in which an interface number of a host function driver is stored, and a first memory (M L) function drivers from the first memory, and the M function drivers assign the same interface number as the interface number stored in the first Inf file in the first operation (A &le; L) number of function drivers from the first memory while maintaining N (where N < M) And a second memory in which an interface number allocated to the N functional drivers is maintained.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
도 1 및 도 2는 본 발명의 제1 실시예에 따른 USB 장치 및 USB 시스템을 설명하기 위한 블록도들이다.
도 3은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법을 나타낸 순서도이다.
도 4는 기능 드라이버의 로딩(loading)을 설명하기 위한 순서도이다.
도 5는 기능 드라이버의 언로딩(unloading)을 설명하기 위한 순서도이다.
도 6은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법을 설명하기 위한 블록도이다.
도 7은 제1 메모리를 설명하기 위한 블록도이다.
도 8는 제1 동작에 따른 디스크립터를 나타낸 개념도이다.
도 9는 제2 동작에 따른 디스크립터를 나타낸 개념도이다.
도 10은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법의 구체적인 예를 설명하기 위한 블록도이다.
도 11 내지 도 13은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법의 구체적인 예에 따른 디스크립터를 나타낸 개념도이다.
도 14은 본 발명의 제2 실시예에 따른 USB 장치의 인터페이스 넘버 할당 방법을 설명하기 위한 블록도이다.1 and 2 are block diagrams illustrating a USB device and a USB system according to a first embodiment of the present invention.
3 is a flowchart illustrating a method of configuring a composite driver of a USB device according to the first embodiment of the present invention.
4 is a flowchart for illustrating loading of the function driver.
5 is a flowchart for explaining unloading of the function driver.
6 is a block diagram illustrating a method of configuring a composite driver of a USB device according to the first embodiment of the present invention.
7 is a block diagram for explaining the first memory.
8 is a conceptual diagram showing a descriptor according to the first operation.
9 is a conceptual diagram showing a descriptor according to a second operation.
10 is a block diagram for explaining a concrete example of a method of configuring a composite driver of a USB device according to the first embodiment of the present invention.
11 to 13 are conceptual diagrams showing a descriptor according to a specific example of a method of configuring a composite driver of a USB device according to the first embodiment of the present invention.
FIG. 14 is a block diagram illustrating an interface number assigning method of a USB device according to a second embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다. One element is referred to as being "connected to " or" coupled to "another element, either directly connected or coupled to another element, One case. On the other hand, when one element is referred to as being "directly connected to" or "directly coupled to " another element, it does not intervene another element in the middle. Like reference numerals refer to like elements throughout the specification. "And / or" include each and every combination of one or more of the mentioned items.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various elements, components and / or sections, it is needless to say that these elements, components and / or sections are not limited by these terms. These terms are only used to distinguish one element, element or section from another element, element or section. Therefore, it goes without saying that the first element, the first element or the first section mentioned below may be the second element, the second element or the second section within the technical spirit of the present invention.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that the terms "comprises" and / or "comprising" used in the specification are intended to be inclusive in a manner similar to the components, steps, operations, and / Or additions.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.
도 1 및 도 2를 참조하여, 본 발명의 제1 실시예에 따른 USB 장치 및 USB 시스템을 설명한다. 도 1 및 도 2는 본 발명의 제1 실시예에 따른 USB 장치 및 USB 시스템을 설명하기 위한 블록도들이다.A USB device and a USB system according to a first embodiment of the present invention will be described with reference to FIGS. 1 and 2. FIG. 1 and 2 are block diagrams illustrating a USB device and a USB system according to a first embodiment of the present invention.
도 1을 참조하면, USB 시스템(1)은 USB 장치(100)와 USB 호스트(200)를 포함한다.Referring to FIG. 1, a
USB 장치(100)는 제1 및 제2 메모리(110, 120), USB 장치 포트(130)를 포함할 수 있다. 제1 메모리(110)는 비휘발성 메모리일 수 있으며, 제2 메모리(120)는 휘발성 메모리일 수 있다. USB 장치 포트(130)는, USB 호스트(200)의 USB 호스트 포트(230)와 물리적으로 연결되어 USB 통신을 할 수 있다. USB 장치 포트(130)와 USB 호스트 포트(230)는 예컨대, 직접 연결되거나 케이블을 통해 연결될 수 있다. 다만, 이에 제한되지 않으며, USB 장치 포트(130)와 USB 호스트 포트(230)는 물리적으로 연결되지 않고, 무선 USB 통신을 할 수 있다.The
USB 호스트(200)는 USB 호스트 포트(230)를 포함할 수 있다. USB 호스트 포트(230)는 상술한 바와 같이, USB 장치(100)의 USB 장치 포트(130)와 유/무선 USB 통신을 할 수 있다.The
도 2를 참조하면, USB 장치(100)에는 운영체제(OS; Operating System)(140)가 탑재될 수 있다. 운영체제(140)로서, 예컨대, 안드로이드(android)가 이용될 수 있으나, 이에 제한되지 않는다.Referring to FIG. 2, an operating system (OS) 140 may be installed in the
USB 장치(100)는, USB 복합 드라이버(USB composite driver)(150)와 USB 장치 컨트롤러 드라이버(180)를 포함할 수 있다. USB 복합 드라이버(150)는 USB 기능 드라이버(USB function driver)(170)를 포함하는 드라이버로 정의될 수 있다. USB 기능 드라이버(170)로는, 예컨대, UMS(Usb Mass Storage) 기능 드라이버, RNDIS(Remote Network Driver Interface Specification) 기능 드라이버, 및 MTP(Media Transfer Protocol) 기능 드라이버가 있지만, 이에 제한되지 않는다.The
USB 장치(100)는 다양한 모드로 동작할 수 있다. USB 장치(100)는 각각의 모드마다 다른 기능을 제공할 수 있다. 예컨대, USB 장치(100)는, 테더링(tethering) 모드로 동작할 수 있으며, 테더링 모드에서 USB 장치(100)는 테더링 장치로서 기능할 수 있다. 다만, USB 장치(100)가 특정 모드로 동작하기 위해서, 특정 USB 기능 드라이버가 필요할 수 있다. 그리고, USB 장치(100)의 모드마다, 필요로 하는 USB 기능 드라이버의 종류가 다를 수 있다.The
USB 장치(100)의 모드에 따라 필요한 USB 기능 드라이버는, USB 복합 구성 프로그램(160)에 의해 구성(configuring)될 수 있다. 구체적으로, USB 복합 구성 프로그램(160)은, 특정 모드에서 USB 장치(100)의 동작을 위해 필요한 USB 기능 드라이버는 활성화(activate) 시키고, 불필요한 USB 기능 드라이버는 비활성화(deactivate) 시킴으로써, USB 복합 드라이버(150)를 구성할 수 있다. 예컨대, 특정 모드에서 USB 장치(100)의 동작을 위해 필요한 USB 기능 드라이버는 제2 메모리(도 1의 120)에 로딩되어 활성화될 수 있고, 불필요한 USB 기능 드라이버는 제2 메모리(120)로부터 언로딩되어 비활성화될 수 있다.The necessary USB function driver according to the mode of the
USB 장치(100)에서, USB 복합 장치 스위칭 프로그램(195)과 같은 응용 프로그램(190)이 실행될 수 있다. USB 복합 장치 스위칭 프로그램(195)은, 사용자로부터 USB 장치(100)를 어떠한 모드로 동작시킬 것인가에 대한 정보를 입력받고, 스위칭 신호를 생성할 수 있다. 스위칭 신호는 USB 장치(100)의 변경될 모드에 대한 정보를 포함할 수 있다.In the
스위칭 신호는, USB 복합 장치 스위칭 프로그램(195)으로부터 USB 복합 구성 프로그램(160)으로 전달될 수 있다. USB 복합 구성 프로그램(160)은, 스위칭 신호를 입력받아, USB 장치(100)가 어떠한 모드로 변경될 것인지 알 수 있다. 그리고, USB 복합 구성 프로그램(160)은, USB 장치(100)가 변경될 모드에서 동작하기 위해 필요한 USB 기능 드라이버(170)를 포함하는 USB 복합 드라이버(150)를 구성할 수 있다.The switching signal can be transferred from the USB composite
USB 장치 컨트롤러 드라이버(180)는, USB 장치(100)가 USB 호스트(200)와 유/무선 USB 통신을 할 수 있는 인터페이스를 제공할 수 있다. 예컨대, 후술될 USB 장치(100)의 디스크립터를 수신하여, USB 호스트(200)로 디스크립터를 전송할 수 있다. 그리고, USB 호스트 컨트롤러 드라이버(280)는, USB 호스트(200)가 USB 장치(100)와 유/무선 USB 통신을 할 수 있는 인터페이스를 제공할 수 있다.The USB
도 3 내지 도 13을 참조하여, 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법을 설명한다. 도 3은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법을 나타낸 순서도이다. 도 4는 기능 드라이버의 로딩(loading)을 설명하기 위한 순서도이다. 도 5는 기능 드라이버의 언로딩(unloading)을 설명하기 위한 순서도이다. 도 6은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법을 설명하기 위한 블록도이다. 도 7은 제1 메모리를 설명하기 위한 블록도이다. 도 8는 제1 동작에 따른 디스크립터를 나타낸 개념도이다. 도 9는 제2 동작에 따른 디스크립터를 나타낸 개념도이다. 도 10은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법의 구체적인 예를 설명하기 위한 블록도이다. 도 11 내지 도 13은 본 발명의 제1 실시예에 따른 USB 장치의 복합 드라이버의 구성 방법의 구체적인 예에 따른 디스크립터를 나타낸 개념도이다.3 to 13, a method of configuring a composite driver of the USB device according to the first embodiment of the present invention will be described. 3 is a flowchart illustrating a method of configuring a composite driver of a USB device according to the first embodiment of the present invention. 4 is a flowchart for illustrating loading of the function driver. 5 is a flowchart for explaining unloading of the function driver. 6 is a block diagram illustrating a method of configuring a composite driver of a USB device according to the first embodiment of the present invention. 7 is a block diagram for explaining the first memory. 8 is a conceptual diagram showing a descriptor according to the first operation. 9 is a conceptual diagram showing a descriptor according to a second operation. 10 is a block diagram for explaining a concrete example of a method of configuring a composite driver of a USB device according to the first embodiment of the present invention. 11 to 13 are conceptual diagrams showing a descriptor according to a specific example of a method of configuring a composite driver of a USB device according to the first embodiment of the present invention.
우선, 도 3, 도 4, 도 6, 및 도 8을 참조하여, 제1 실시예에 따른 USB 장치의 복합 드라이버 구성 방법의 제1 동작을 설명한다.First, with reference to Figs. 3, 4, 6, and 8, a first operation of the composite driver configuration method of the USB device according to the first embodiment will be described.
도 3, 도 6을 참조하면, USB 장치(도 1의 100)를 기본 모드로 동작시키기 위해 필요한 USB 기능 드라이버를 제2 메모리(120)에 로딩할 수 있다(S100). 구체적으로, USB 복합 구성 프로그램(도 2의 160 참조)은, USB 장치(100)를 기본 모드로 동작시키기 위해 필요한 USB 기능 드라이버를 제1 메모리(110)로부터 제2 메모리(120)로 로딩시킬 수 있으며, 제2 메모리(120)에 로딩된 USB 기능 드라이버는 제1 USB 복합 드라이버를 구성할 수 있다.Referring to FIGS. 3 and 6, a USB function driver necessary for operating the USB device (100 of FIG. 1) in the basic mode may be loaded into the second memory 120 (S100). Specifically, the USB composite configuration program (see 160 in FIG. 2) can load the USB function driver required for operating the
제1 메모리(110)에는 각기 다른 L개의 USB 기능 드라이버(171)가 저장될 수 있다. 도 7을 참조하면, L개의 USB 기능 드라이버(171)는, 각기 다른 제1 내지 제L USB 기능 드라이버(171_1 내지 171_L)를 포함할 수 있다. 제1 내지 제L USB 기능 드라이버(171_1 내지 171_L)는 각기 다른 기능을 제공하기 위한 인터페이스를 제공하며, 제1 메모리(110)에 각각 한 개씩 저장될 수 있다. 이와 같이, 제1 메모리(110)에는 동종의 USB 기능 드라이버가 한 개씩만 저장되어 있으므로, 제1 메모리(110)에서 USB 기능 드라이버가 차지하는 영역을 최소할 수 있다. 그러므로, 불필요한 메모리의 사용을 줄일 수 있다. 또한, USB 기능 드라이버를 보수할 때, 각 종류의 USB 기능 드라이버에 대하여 각각 한 개의 USB 기능 드라이버만을 보수하면 되기 때문에, 보수 비용을 줄일 수 있다.L different
다시 도 3 및 도 6을 참조하면, USB 장치(100)가 기본 모드로 동작하기 위해 필요한 USB 기능 드라이버는, 예컨대, 각기 다른 M(단, M≤L)개의 USB 기능 드라이버(172)일 수 있다. 그러므로, USB 복합 구성 프로그램(도 2의 160 참조)에 의해, 제1 메모리로(110)부터 각기 다른 M개의 USB 기능 드라이버(172)가 제2 메모리(120)로 로딩될 수 있다. 그리고, 제2 메모리(120)에 로딩된 M 개의 USB 기능 드라이버(172)는 제1 USB 복합 드라이버를 구성할 수 있다.Referring again to FIGS. 3 and 6, the USB function driver required for the
도 4를 참조하여, USB 기능 드라이버를 제2 메모리(도 6의 120 참조)에 로딩하는 과정을 구체적으로 설명한다.Referring to FIG. 4, a process of loading the USB function driver into the second memory (see 120 in FIG. 6) will be described in detail.
우선, 제2 메모리(120)에 로딩될 USB 기능 드라이버가 사용할 영역을 할당할 수 있다(S410). 그리고, USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 인터페이스 디스크립터(interface descriptor)의 정보를 로딩될 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터 정보에 맞게 변경할 수 있다(S420).First, an area to be used by the USB function driver to be loaded into the
그리고, 로딩될 USB 기능 드라이버가 필요로 하는 엔드포인트(endpoint)의 개수만큼의 엔드포인트 넘버를 USB 장치 컨트롤러 드라이버(180)로부터 할당받을 수 있다(S430). 그리고, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터에, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버를 저장할 수 있다(S440). 구체적으로, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터의 'bEndpointAddress' 값을, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버로 설정할 수 있다.In operation S430, the USB
마지막으로, USB 장치 컨트롤러 드라이버(180)에 전달될 엔드포인트 디스크립터 정보를, 로딩될 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터 정보로 변경할 수 있다(S450).Lastly, the end point descriptor information to be transferred to the USB
도 8을 참조하면, 제2 메모리(120)는 USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 디스크립터를 포함한다. USB 장치 컨트롤러 드라이버(180)에 전달될 디스크립터는, 데이터를 저장하는 디스크립터로, 디바이스 디스크립터, 컨피그레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터와, 로직상 구별되는 기능 디스크립터(function descriptor)를 포함할 수 있다. 기능 디스크립터는 제2 메모리(120)에 로딩된 USB 기능 드라이버에 대응되는 디스크립터로서, USB 기능 드라이버와 관련된 인터페이스 디스크립터와 엔드포인트 디스크립터를 포함할 수 있다.Referring to FIG. 8, the
제2 메모리(120)는 로딩된 M개의 USB 기능 드라이버(도 6의 172 참조)에 각각 대응되는 M개의 기능 디스크립터를 포함한다. 제2 메모리(120) 내의 인터페이스 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 인터페이스 디스크립터의 정보로 변경된다. 그리고, 제2 메모리(120) 내의 엔드포인트 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 엔드포인트 디스크립터의 정보로 변경된다.The
이어서, 도 2, 도 3, 도 5, 도 7, 도 8, 및 도 10을 참조하여, 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법의 제2 동작을 설명한다.Next, a second operation of the composite driver configuration method of the
도 2, 및 도 3을 참조하면, 제1 동작을 마친 후, USB 장치(100)는 스위칭 신호를 수신하기 위해 대기할 수 있다(S200). 구체적으로, USB 장치(100)는, USB 복합 장치 스위칭 프로그램(195)으로부터 스위칭 신호가 생성되어, USB 복합 구성 프로그램(160)으로 스위칭 신호가 전달될 때까지 대기할 수 있다.Referring to FIGS. 2 and 3, after completing the first operation, the
USB 복합 장치 스위칭 프로그램(195)으로부터 USB 복합 구성 프로그램(160)으로 스위칭 신호가 전달되면, USB 장치(100)는 USB 장치(100)의 현재 모드와 변경될 모드가 동일한지 비교할 수 있다(S300). 스위칭 신호는 변경될 모드에 대한 정보를 포함하고 있다. USB 장치(100)의 현재 모드와 변경될 모드가 동일하다면, USB 복합 드라이버를 재구성할 필요가 없다. 그러므로, USB 장치(100)의 현재 모드와 변경될 모드가 동일한 경우, 새로운 스위칭 신호가 전달될 때까지 대기할 수 있다.When a switching signal is transferred from the USB composite
그러나, USB 장치(100)의 현재 모드와 변경될 모드가 서로 상이하면, USB 장치(100)는 USB 복합 드라이버를 재구성할 수 있다.However, if the current mode and the mode to be changed of the
도 3, 도 6을 참조하면, 우선, 현재 제2 메모리(120)에 로딩된 USB 기능 드라이버 중 USB 장치(100)의 변경될 모드에서 사용되지 않는 USB 기능 드라이버를, 제2 메모리(120)로부터 언로딩 할 수 있다(S400). 사용하지 않는 USB 기능 드라이버를 제2 메모리(120)로부터 언로딩함으로써, 제2 메모리(120)의 영역을 효율적으로 사용할 수 있고, 사용하지 않는 USB 기능 드라이버에 의한 오동작을 방지할 수 있다.3 and 6, a USB function driver not currently used in a mode to be changed of the
USB 장치(도 2의 100 참조)의 변경될 모드에서 사용될 USB 기능 드라이버는 각기 다른 N개의 USB 기능 드라이버(173), 및 각기 다른 A개의 USB 기능 드라이버(174)를 포함할 수 있다. 구체적으로, N개의 USB 기능 드라이버(173)는 M개의 USB 기능 드라이버(172)에 포함되며, A개의 USB 기능 드라이버(174)는 L개의 USB 기능 드라이버(171)에 포함된다. N개의 USB 기능 드라이버(173)와 A개의 USB 기능 드라이버(174)는 서로 다른 USB 기능 드라이버일 수 있다.The USB function driver to be used in the mode to be changed of the USB device (see 100 in FIG. 2) may include N different
결과적으로, USB 복합 구성 프로그램(도 2의 160 참조)은, N개의 USB 기능 드라이버(173)와 A개의 USB 기능 드라이버(174)를 포함하도록 제2 USB 복합 드라이버를 구성할 수 있다. 제2 USB 복합 드라이버는, USB 장치(100)가 변경될 모드로 동작하는데 필요한 인터페이스를 제공할 수 있다.As a result, the USB composite configuration program (see 160 in FIG. 2) can configure the second USB composite driver to include N
N개의 USB 기능 드라이버(173), A개의 USB 기능 드라이버(174)를 포함하도록 제2 USB 복합 드라이버를 구성하기 위해, 우선, 제2 메모리(120)에 로딩된 USB 기능 드라이버 중 N개의 USB 기능 드라이버(173), 및 A개의 USB 기능 드라이버(174)에 포함되지 않는 USB 기능 드라이버를 제2 메모리(120)로부터 언로딩할 수 있다. 예컨대, M개의 USB 기능 드라이버(172) 중, N개의 USB 기능 드라이버(173)에 포함되지 않는 M-N개의 USB 기능 드라이버가 제2 메모리(120)로부터 언로딩될 수 있다. M-N개의 USB 기능 드라이버는, 변경될 모드에서는 사용되지 않기 때문에, 제2 메모리(120)로부터 언로딩하여 제2 메모리(120)를 효율적으로 사용할 수 있다.In order to configure the second USB composite driver to include the N
결과적으로, 제2 메모리(120)로부터 M-N개의 USB 기능 드라이버가 언로딩되고, 제2 메모리(120)에는 N개의 USB 기능 드라이버(173)가 로딩된 상태를 유지할 수 있다. 변경될 모드에서 사용될 N개의 USB 기능 드라이버(173)가 로딩된 상태를 유지하기 때문에, 제2 복합 드라이버를 구성하기 위해, N개의 USB 기능 드라이버(173)를 별도로 로딩할 필요가 없다. 그러므로, USB 장치(100)에서 모드의 전환이 있는 경우, 불필요한 동작을 제거함으로써 USB 장치(100)의 빠른 응답성을 확보할 수 있다.As a result, the M-N USB function drivers may be unloaded from the
도 5를 참조하여, USB 기능 드라이버를 제2 메모리(120)로부터 언로딩하는 과정을 구체적으로 설명한다.The process of unloading the USB function driver from the
우선, 제2 메모리(도 6의 120 참조)에서 언로딩될 USB 기능 드라이버가 할당하여 사용중인 영역을 해제(free)할 수 있다(S510). 그리고, 제2 메모리(120)에서, 언로딩될 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터와 엔드포인트 디스크립터를 위해 할당된 영역을 해제할 수 있다(S520). 그리고, USB 장치 컨트롤러 드라이버(도 2의 180 참조)가 할당한 엔드포인트 리소스의 사용을 중단하고, USB 장치 컨트롤러 드라이버(180)에게 엔드포인트 리소스를 더 이상 사용하지 않음을 알릴 수 있다(S530).First, the USB function driver to be unloaded from the second memory (see 120 in FIG. 6) may allocate and free the area being used (S510). Then, in the
언로딩의 과정을 통해, 변경될 모드에서 사용하지 않을 영역의 할당을 해제함으로써, 제2 메모리(120)를 효율적으로 사용할 수 있다. 또한, USB 장치(100)에서 USB 통신을 위해 사용할 수 있는 엔드포인트 리소스는 한정되어 있는데, 변경될 모드에서 사용하지 않을 엔드포인트 리소스의 사용을 중단함으로써, 유한한 엔드포인트 리소스를 효율적으로 사용할 수 있다. 현 단계에서, 사용이 중단된 엔드포인트 리소스는, 예컨대, 추가 로딩될 USB 기능 드라이버를 위해 사용될 수도 있다.Through the unloading process, the
도 9를 참조하면, 제2 메모리(120)에는, 변경될 모드에서 사용될 N개의 USB 기능 드라이버(도 6의 173 참조)에 관한 정보를 담고 있는 기능 디스크립터가 존재한다. 다만, 제2 메모리(120)에, 언로딩된 M-N개의 USB 기능 드라이버에 관한 정보를 담고 있는 기능 디스크립터는 없다 즉, 제2 메모리(120)에서, M-N개의 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터와 엔드포인트 디스크립터를 위해 할당된 영역이 해제되었다.Referring to FIG. 9, in the
이어서, 도 3 및 도 6을 참조하여, 변경될 USB 장치(100)의 모드에서 사용될 USB 기능 드라이버 중 현재 제2 메모리(120)에 로딩되어 있지 않은 USB 기능 드라이버를 제1 메모리(110)로부터 제2 메모리(120)로 로딩할 수 있다(S500). 부가적으로 필요한 USB 기능 드라이버만을 제2 메모리(120)에 추가 로딩함으로써, USB 기능 드라이버를 로딩하는데 걸리는 시간을 최소화할 수 있으므로, USB 장치(100)의 빠른 응답성을 확보할 수 있다.3 and 6, among the USB function drivers to be used in the mode of the
N개의 USB 기능 드라이버(173), A개의 USB 기능 드라이버(174)를 포함하도록 제2 USB 복합 드라이버(150)를 구성하기 위해, N개의 USB 기능 드라이버(173) 및 A개의 USB 기능 드라이버(174) 중 현재 제2 메모리(120)에 로딩되어 있지 않은 USB 기능 드라이버를 제2 메모리(120)에 로딩할 수 있다. USB 장치(100)가 변경될 모드에서 동작하기 위해 필요한 USB 기능 드라이버 중, 현재 로딩되어 있지 않은 USB 기능 드라이버만을 추가 로딩함으로써, USB 기능 드라이버의 로딩에 걸리는 시간을 최소화할 수 있다. 구체적으로, 현재 제2 메모리(120)에는, 변경될 모드에 사용될 USB 기능 드라이버 중 A개의 USB 기능 드라이버(174)가 로딩되어 있지 않으므로, 제1 메모리(110)로부터 A개의 USB 기능 드라이버(174)를 제2 메모리(120)로 로딩할 수 있다.N
도 9를 참조하면, 제2 메모리(120)는, A개의 USB 기능 드라이버(도 6의 174 참조)에 관한 기능 디스크립터를 포함한다. 구체적으로, 추가 로딩된 A개의 USB 기능 드라이버(174)에 대한 인터페이스 정보 및 엔드포인트 리소스에 관한 정보가 기능 디스크립터에 포함될 수 있다.Referring to Fig. 9, the
이어서, 다시 도 3을 참조하면, USB 장치(도 2의 100 참조)의 변경될 모드의 동작을 위해 제2 메모리(도 2의 120 참조)에 로딩된 기능 디바이스들에 인터페이스 넘버를 할당할 수 있다(S600). 구체적으로, USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 제공될 인터페이스 디스크립터의 'bInterfaceNumber'의 정보를 변경하여 인터페이스 넘버를 할당할 수 있다. 인터페이스 넘버의 할당 방법은 USB 장치(100)의 각 모드마다 다를 수 있다.Referring again to FIG. 3, an interface number may be assigned to the functional devices loaded in the second memory (see 120 in FIG. 2) for operation of the mode to be changed of the USB device (see 100 in FIG. 2) (S600). Specifically, the interface number can be allocated by changing the information of 'bInterfaceNumber' of the interface descriptor to be provided to the USB device controller driver (see 180 in FIG. 2). The assignment method of the interface number may be different for each mode of the
예컨대, 기능 디바이스들에 할당되는 인터페이스 넘버는 0부터 순차적으로 증가하도록 할당될 수 있지만, 이에 제한되지 않는다. USB 장치(100)의 특정 모드를 위해 사용되는 기능 디바이스들의 인터페이스 넘버를 할당하는 방식이 정해져 있다면, 해당 방식에 따라 기능 디바이스들에 인터페이스 넘버가 부여될 수 있다.For example, the interface numbers assigned to functional devices may be allocated to increase sequentially from 0, but are not limited thereto. If a method of assigning the interface numbers of the function devices used for the specific mode of the
이어서, USB 장치 컨트롤러 드라이버(180)에 전달된 디바이스 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S700).Subsequently, the device descriptor information transferred to the USB
이어서, USB 장치 컨트롤러 드라이버(180)에 전달될 컨피그레이션 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S800).Subsequently, the configuration descriptor information to be transferred to the USB
상술한 바와 같이, 제2 동작시, USB 장치(100)가 변경될 모드에서 동작하기 위해 필요한 USB 기능 드라이버가 제2 메모리(120)에 로딩될 수 있다. 그리고, USB 장치 컨트롤러 드라이버(180)로 전달될 디스크립터 정보가, 변경될 모드에 맞도록 변경될 수 있다. 변경된 디스크립터는 USB 장치 컨트롤러 드라이버(180)로 전달되며, USB 장치 컨트롤러 드라이버(180)는 수신된 디스크립터를 USB 호스트 컨트롤러 드라이버(280)로 전송할 수 있다. 그리고, 제공된 디스크립터를 바탕으로, USB 통신이 진행될 수 있다.As described above, in the second operation, the USB function driver necessary for the
다만, 제2 동작은 loop 형식으로 반복될 수 있다. 즉, USB 장치 컨트롤러 드라이버(180)에 전달될 컨피그레이션 디스크립터 정보를 변경될 모드에 맞게 변경한 후에, USB 장치(100)는 새로운 스위칭 신호를 수신하기 위해 대기하여, 제2 동작을 계속 반복할 수 있다.However, the second operation may be repeated in a loop format. That is, after changing the configuration descriptor information to be transferred to the USB
도 10 내지 도 15를 참조하여, 본 발명의 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법을 구체적인 예를 들어 설명한다.10 to 15, a method of constructing a composite driver of the
우선, 도 10 및 도 11을 참조하여, USB 장치(도 2의 100 참조)의 제1 동작을 설명한다.First, the first operation of the USB device (see 100 in Fig. 2) will be described with reference to Figs. 10 and 11. Fig.
도 10을 참조하여, 제1 메모리(110)로부터 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)를 제2 메모리(120)로 로딩할 수 있다.The
제1 메모리(110)에는, USB 장치(100)에서 사용될 수 있는 각기 다른 다수의 기능 드라이버가 저장될 수 있다. 그리고, 기능 드라이버는 각각 한 개씩 저장될 수 있다. 제1 메모리(110)에는 예컨대, RNDIS 기능 드라이버(175), ACM 기능 드라이버(176), ADB 기능 드라이버(177), MTP 기능 드라이버(178), UMS 기능 드라이버(179)를 포함할 수 있다.In the
USB 장치(100)의 기본 모드에서, 예컨대, ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)가 사용될 수 있다. 그러므로, USB 장치(100)의 제1 동작에서, 제1 메모리(110)로부터 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)가 제2 메모리(120)로 로딩될 수 있다. 그리고, 각각의 기능 드라이버마다 인터페이스 넘버(I0, I1, I2, I3)가 할당될 수 있다. In the basic mode of the
도 11을 참조하면, 제2 메모리(120)에 USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 디스크립터가 위치할 수 있다. 도 11의 디스크립터는, USB 장치(100)가 기본 모드로 동작하기 위한 디스크립터일 수 있다. 그리고, 인터페이스 디스크립터에 인터페이스 넘버(I0, I1, I2, I3)가 할당되어 있는 것을 확인할 수 있다.Referring to FIG. 11, the descriptor to be transferred to the USB device controller driver (see 180 in FIG. 2) may be located in the
이어서, 도 10, 및 도 12를 참조하여, USB 장치(100)의 제2 동작을 설명한다.Next, a second operation of the
도 10을 참조하며, USB 복합 구성 프로그램(도2 의 160 참조)이 스위칭 신호를 수신하고, 현재의 모드와 변경될 모드가 다르다는 것을 확인하면, 제2 메모리(120)에 ADB 기능 드라이버(177), UMS 기능 드라이버(179)는 로딩된 상태를 유지하고, ACM 기능 드라이버(176)를 추가 로딩할 수 있다.10, when the USB composite configuration program (see 160 in FIG. 2) receives the switching signal and confirms that the current mode and the mode to be changed are different, the
현재 제2 메모리(120)에 로딩된 ADB 기능 드라이버(177), UMS 기능 드라이버(179)는 USB 장치(100)의 변경될 모드에서도 사용될 기능 드라이버이므로, 로딩된 상태를 유지할 수 있다. 다만, USB 장치(100)의 변경될 모드에서 사용될 기능 드라이버 중, ACM 기능 드라이버(176)는 현재 제2 메모리(120)에 로딩되어 있지 않다. 그러므로, ACM 기능 드라이버(176)를 제1 메모리(110)로부터 제2 메모리(120)로 추가 로딩시킬 수 있다.The
도 12를 참조하면, 제2 메모리(120)에, ADB 기능 디스크립터, 및 UMS 기능 디스크립터, 이외에 ACM 기능 디스크립터가 추가되었다. 인터페이스 디스크립터를 참조하면, ADB 기능 드라이버(177), UMS 기능 드라이버(179)의 인터페이스 넘버(I0, I1, I2, I3)는 도 11의 ADB 기능 드라이버(177), UMS 기능 드라이버(179)의 인터페이스 넘버와 동일하며, 추가 로딩된 ACM 기능 드라이버(176)는 새로운 인터페이스 넘버(I4, I5, I6)를 할당받았다.12, in the
이어서, 도 10, 도 13을 참조하여, USB 장치(100)의 다른 제2 동작을 설명한다.Next, another second operation of the
도 10를 참조하면, USB 복합 구성 프로그램(도 2의 160 참조)이 새로운 스위칭 신호를 수신하고, 현재의 모드와 변경될 모드가 다르다는 것을 확인하면, 제2 메모리(120)로부터 ADB 기능 드라이버(177)만 언로딩될 수 있다.10, when the USB composite configuration program (see 160 in FIG. 2) receives a new switching signal and confirms that the current mode and the mode to be changed are different, the ADB function driver 177 ) Can be unloaded.
현재 로딩된 UMS 기능 드라이버(179)와 ACM 기능 드라이버(176)는, USB 장치(100)의 변경될 모드에서 사용되기 때문에, 로딩된 상태를 유지할 수 있다. 그러나, 현재 로딩된 ADB 기능 드라이버(177)는, USB 장치(100)의 변경될 모드에서 사용되지 않기 때문에, 제2 메모리(120)로부터 언로딩될 수 있다.The currently loaded
도 13을 참조하면, UMS 기능 드라이버(179)와 ACM 기능 드라이버(176)에 새롭게 인터페이스 넘버(I0, I1, I2, I3, I4)가 할당된 것을 확인할 수 있다. 이 때, 인터페이스 넘버는 0부터 순차적으로 할당되었다.13, it can be confirmed that the interface numbers I0, I1, I2, I3, and I4 are newly allocated to the
도 2, 도 6, 및 도 14를 참조하여, 본 발명의 제2 실시예에 따른 USB 장치 및 USB 시스템을 설명한다. 본 발명의 제1 실시예와의 차이점을 위주로 설명한다. 도 14은 본 발명의 제2 실시예에 따른 USB 장치의 인터페이스 넘버 할당 방법을 설명하기 위한 블록도이다.A USB device and a USB system according to a second embodiment of the present invention will be described with reference to FIGS. 2, 6, and 14. FIG. Differences from the first embodiment of the present invention will be mainly described. FIG. 14 is a block diagram illustrating an interface number assigning method of a USB device according to a second embodiment of the present invention.
도 2, 및 도 14를 참조하면, USB 호스트(200)는, USB 장치(100)의 USB 기능 드라이버에 대응되는 호스트 기능 드라이버를 포함한다. USB 장치(100)의 USB 기능 드라이버와 USB 호스트(200)의 호스트 기능 드라이버는 로직적으로 연결될 수 있다. 이를 위해, 호스트 기능 드라이버와, 이에 대응되는 USB 기능 드라이버는 동일한 인터페이스 넘버를 할당받을 수 있다.Referring to FIGS. 2 and 14, the
USB 호스트(200)에서, Inf 파일(file)은 호스트 기능 드라이버, 및 호스트 기능 드라이버의 인터페이스 넘버를 관리할 수 있다. 예컨대, Inf 파일에는 USB 장치(100)의 특정 모드의 동작에 필요한 USB 기능 드라이버에 대응되는 호스트 기능 드라이버와, 호스트 기능 드라이버에 할당된 인터페이스 넘버가 저장될 수 있다. 본 발명의 제1 실시예의 USB 시스템에서도, USB 호스트(200)는, USB 장치(100)의 각각의 모드마다 필요한 USB 기능 드라이버에 대응되는 호스트 기능 드라이버, 및 호스트 기능 드라이버에 할당된 인터페이스 넘버를 저장하는 Inf 파일이 구성되는 것으로 가정되었다. 그러므로, 본 발명의 제1 실시예의 USB 시스템에서, USB 장치(100)의 모드가 변경되어 로딩되는 USB 기능 드라이버가 바뀔 때마다, USB 호스트(200)는 새로운 Inf 파일을 구성할 필요가 있었다.In the
그러나, 본 발명의 제2 실시예에 따른 USB 시스템에서, USB 호스트(200)는, 기존에 저장된 Inf 파일을 이용하여, USB 장치(100)의 모드가 변경되더라도, 새로운 Inf 파일을 구성하지 않을 수 있다. 본 발명의 제2 실시예에 따른 USB 시스템에서는, USB 장치(100)의 제2 메모리(120)에 새롭게 로딩된 USB 기능 드라이버에 대응되는 호스트 기능 드라이버를 보유하는 Inf 파일을 찾고, 해당 Inf 파일에서 호스트 기능 드라이버의 인터페이스 넘버와 동일한 인터페이스 넘버를 새롭게 로딩된 USB 기능 드라이버에 할당할 수 있다.However, in the USB system according to the second embodiment of the present invention, even if the mode of the
도 6을 참조하여, 구체적으로 본 발명의 제2 실시예에 따른 USB 장치의 인터페이스 넘버 할당 방법을 설명한다.Referring to FIG. 6, a method of allocating an interface number of a USB device according to a second embodiment of the present invention will be described in detail.
제1 동작 시, 제2 메모리(120)에 M개의 USB 기능 드라이버(172)가 로딩되면, USB 호스트(도 1의 200)는 M개의 USB 기능 드라이버(172)에 대응되는 M개의 호스트 기능 드라이버가 저장되는 제1 Inf 파일을 구성할 수 있다. M개의 USB 기능 드라이버(172)와 M개의 호스트 기능 드라이버는 동일한 인터페이스 넘버를 할당받을 수 있다. 그리고 M개의 호스트 기능 드라이버에 할당받은 인터페이스 넘버는 제1 Inf 파일에 저장될 수 있다. 결과적으로, M개의 USB 기능 드라이버(172)는 제1 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받을 수 있다.In the first operation, when the M
제2 동작 시, 로딩상태를 유지하는 N개의 USB 기능 드라이버(173)의 인터페이스 넘버는 유지될 수 있다. 그리고, 제2 메모리(120)에 새롭게 로딩되는 A개의 기능 드라이버(174)는, A개의 기능 드라이버(174)에 대응되는 호스트 기능 드라이버를 포함하는 제2 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받을 수 있다. 그러므로, USB 호스트(200)는, 모드가 변경되더라도 새롭게 Inf 파일을 생성하지 않고, 기존에 생성된 Inf 파일을 재사용할 수 있다.In the second operation, the interface numbers of the N
도 14를 참조하면, 모드 변경 전에도 로딩되었던 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)는 기존의 제1 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 유지한다. 그리고, 추가 로딩된 MTP 기능 드라이버(178)는 제2 Inf 파일의 MTP 호스트 기능 드라이버(278)에 할당된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받는다. 이 때문에, USB 장치(100)의 모드가 변경되더라도, USB 호스트(200)는 변경될 모드에 대응되는 새로운 Inf 파일을 생성하지 않아도 된다.Referring to FIG. 14, the
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
1: USB 시스템
100: USB 장치 110: 제1 메모리
120: 제2 메모리 130: USB 장치 포트
140: 운영체제 150: USB 복합 드라이버
160: USB 복합 구성 프로그램 170: USB 기능 드라이버
180: USB 장치 컨트롤러 드라이버 190: 응용 프로그램
195: USB 복합 장치 스위칭 프로그램
200: USB 호스트 230: USB 호스트 포트
280: USB 호스트 컨트롤러 드라이버1: USB system
100: USB device 110: first memory
120: second memory 130: USB device port
140: Operating system 150: USB composite driver
160: USB composite configuration program 170: USB function driver
180: USB Device Controller Driver 190: Application
195: USB Composite Device Switching Program
200: USB host 230: USB host port
280: USB Host Controller Driver
Claims (10)
상기 비휘발성 메모리로부터 상기 복수의 USB 기능 드라이버 중 적어도 하나를 수신하는 휘발성 메모리; 및
외부 장치와 연결되는 USB 장치 포트를 포함하되,
상기 복수의 USB 기능 드라이버 중 하나는 상기 USB 장치 포트와 상기 외부 장치 사이의 파일 전송을 가능하게 하고,
상기 복수의 USB 기능 드라이버 중 M개의 USB 기능 드라이버가 상기 비휘발성 메모리로부터 상기 휘발성 메모리로 로딩될 때, 엔드포인트 리소스가 M개의 USB 기능 드라이버에 각각 할당되고,
상기 M은 양의 정수이고,
N개의 USB 기능 드라이버가 상기 휘발성 메모리로부터 상기 비휘발성 메모리로 언로딩될 때, 상기 N개의 USB 기능 드라이버에 대응되는 엔드포인트 리소스가 해제되고,
상기 N은 상기 M과 다른 양의 정수인 USB 장치.A nonvolatile memory for storing a plurality of USB function drivers each having a different function;
A volatile memory for receiving at least one of the plurality of USB function drivers from the non-volatile memory; And
And a USB device port connected to the external device,
Wherein one of the plurality of USB function drivers enables file transfer between the USB device port and the external device,
When M USB function drivers among the plurality of USB function drivers are loaded into the volatile memory from the nonvolatile memory, end point resources are allocated to M USB function drivers, respectively,
M is a positive integer,
When the N USB function drivers are unloaded from the volatile memory to the nonvolatile memory, the endpoint resources corresponding to the N USB function drivers are released,
And the N is a positive integer different from the M.
인터페이스 정보를 포함하는 디스크립터 정보를 수신하는 USB 컨트롤러 드라이버를 더 포함하는 USB 장치.The method according to claim 1,
And a USB controller driver for receiving descriptor information including interface information.
상기 복수의 USB 기능 드라이버는 RNDIS(Remote Network Driver Interface Specification) 기능 드라이버를 포함하는 USB 장치.The method according to claim 1,
Wherein the plurality of USB function drivers include a Remote Network Driver Interface Specification (RNDIS) function driver.
상기 복수의 USB 기능 드라이버는 ADB(ANDROIDTM debug bridge) 기능 드라이버를 포함하는 USB 장치.The method according to claim 1,
Wherein the plurality of USB function drivers include an ADB (ANDROID TM debug bridge) function driver.
상기 M개의 USB 기능 드라이버가 상기 휘발성 메모리로 로딩될 때, 인터페이스 넘버가 상기 M개의 USB 기능 드라이버에 할당되는 USB 장치.The method according to claim 1,
And an interface number is assigned to the M USB function drivers when the M USB function drivers are loaded into the volatile memory.
타겟 동작 모드가 현재 동작 모드와 서로 다를 때, 엔드포인트 리소스를 M개의 USB 기능 드라이버에 할당하여 상기 M개의 USB 기능 드라이버를 상기 비휘발성 메모리로부터 상기 휘발성 메모리로 로딩하고,
상기 타겟 동작 모드에서 사용되지 않는 N개의 USB 기능 드라이버에 할당된 엔드포인트 리소스를 해제시켜 상기 N개의 USB 기능 드라이버를 상기 휘발성 메모리로부터 언로딩하고,
상기 타겟 동작 모드에서 상기 휘발성 메모리 내의 P개의 USB 기능 드라이버를 유지하되, 상기 P개의 USB 기능 드라이버는 상기 타겟 동작 모드에서 사용되는 것을 포함하되,
상기 L개의 USB 기능 드라이버는 각각 서로 다른 기능을 가지고,
상기 L은 상기 M보다 크거나 같고,
상기 L은 상기 N보다 크거나 같고,
상기 L은 상기 P보다 크거나 같고,
상기 L, M 및 P는 각각 양의 정수인 USB 장치 동작 방법.A non-volatile memory, comprising: a non-volatile memory; and a volatile memory, wherein the non-volatile memory stores L USB function drivers,
When the target operation mode is different from the current operation mode, allocating an endpoint resource to M USB function drivers to load the M USB function drivers from the nonvolatile memory into the volatile memory,
Releasing the endpoint resources allocated to the N USB function drivers not used in the target operation mode to unload the N USB function drivers from the volatile memory,
Maintaining the P USB functional drivers in the volatile memory in the target operating mode, wherein the P USB functional drivers are used in the target operating mode,
The L USB function drivers have different functions,
L is equal to or greater than M,
L is equal to or greater than N,
L is greater than or equal to P,
Wherein L, M, and P are positive integers, respectively.
상기 M개의 USB 기능 드라이버를 로딩하는 것은 인터페이스 넘버를 상기 M개의 USB 기능 드라이버에 각각 할당하는 것을 포함하는 USB 장치 동작 방법.The method according to claim 6,
Wherein loading the M USB function drivers comprises assigning an interface number to the M USB function drivers, respectively.
상기 M개의 USB 기능 드라이버를 상기 비휘발성 메모리로부터 상기 휘발성 메모리로 로딩하기 전에, 상기 타겟 동작 모드를 수신하는 것을 더 포함하는 USB 장치 동작 방법.8. The method of claim 7,
Further comprising receiving the target operating mode prior to loading the M USB functional drivers from the non-volatile memory into the volatile memory.
상기 L개의 USB 기능 드라이버는 ACM(abstract control model) 기능 드라이버를 포함하는 USB 장치 동작 방법.The method according to claim 6,
Wherein the L USB function drivers include an abstract control model (ACM) function driver.
상기 L개의 USB 기능 드라이버는 UMS(USB mass storage) 기능 드라이버를 포함하는 USB 장치 동작 방법.The method according to claim 6,
Wherein the L USB function drivers include a UMS (USB mass storage) function driver.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110080733A KR101761126B1 (en) | 2011-08-12 | 2011-08-12 | USB device and USB system comprising the same |
US13/468,707 US9336022B2 (en) | 2011-08-12 | 2012-05-10 | Universal serial bus (USB) device and a USB system including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110080733A KR101761126B1 (en) | 2011-08-12 | 2011-08-12 | USB device and USB system comprising the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130017969A KR20130017969A (en) | 2013-02-20 |
KR101761126B1 true KR101761126B1 (en) | 2017-07-25 |
Family
ID=47678253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110080733A KR101761126B1 (en) | 2011-08-12 | 2011-08-12 | USB device and USB system comprising the same |
Country Status (2)
Country | Link |
---|---|
US (1) | US9336022B2 (en) |
KR (1) | KR101761126B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021154005A1 (en) * | 2020-01-29 | 2021-08-05 | 삼성전자 주식회사 | Method for recognizing resources of external electronic device, and electronic apparatus supporting same |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101969726B1 (en) * | 2012-05-02 | 2019-04-17 | 삼성전자주식회사 | Method for idntifying universal serial bus host and an electronic device thereof |
US9311504B2 (en) | 2014-06-23 | 2016-04-12 | Ivo Welch | Anti-identity-theft method and hardware database device |
CN104216840B (en) * | 2014-09-11 | 2018-03-23 | 青岛海信移动通信技术股份有限公司 | The method and device that a kind of USB sets and operated to external equipment |
CN105550133A (en) * | 2015-12-08 | 2016-05-04 | 天津津航计算技术研究所 | AXIS-FIFO bridge circuit based on ZYNQ and data transmission method using same |
CN106250057B (en) * | 2016-07-26 | 2019-06-04 | 青岛海信移动通信技术股份有限公司 | A kind of method and apparatus of display storage equipment |
CN110892391A (en) * | 2017-10-16 | 2020-03-17 | 华为技术有限公司 | Data processing system |
US10394722B1 (en) * | 2018-08-07 | 2019-08-27 | Dell Products L.P. | Managing alt-mode interfaces of a USB Type-C device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246455A1 (en) * | 2004-04-29 | 2005-11-03 | Microsoft Corporation | I/O handling in generic USB rivers |
US20070186070A1 (en) | 2006-02-03 | 2007-08-09 | Neoware, Inc. | Computer operating system with selective restriction of memory write operations |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6832273B2 (en) | 2000-12-21 | 2004-12-14 | Microsoft Corporation | System and method to specify extended configuration descriptor information in USB devices |
GB0508576D0 (en) * | 2005-04-27 | 2005-06-01 | Symbian Software Ltd | Delegating universal serial bus functionality |
KR100738955B1 (en) | 2005-12-28 | 2007-07-16 | 에스케이 텔레콤주식회사 | Method for Changing Function Between Multi-Function USB Slave Device and USB Host Device and Multi-Function USB Slave Device therefor |
FR2902254B1 (en) * | 2006-06-09 | 2008-09-26 | Dibcom Sa | PILOTAGE OF A MULTIFUNCTION DEVICE |
KR100867395B1 (en) | 2007-01-04 | 2008-11-06 | (주)엠씨에스로직 | Method and Apparatus for Providing Composite Function by Using USB |
US9003173B2 (en) * | 2007-09-28 | 2015-04-07 | Microsoft Technology Licensing, Llc | Multi-OS (operating system) boot via mobile device |
US9619417B2 (en) * | 2011-06-17 | 2017-04-11 | Alcatel Lucent | Method and apparatus for remote delivery of managed USB services via a mobile computing device |
-
2011
- 2011-08-12 KR KR1020110080733A patent/KR101761126B1/en active IP Right Grant
-
2012
- 2012-05-10 US US13/468,707 patent/US9336022B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050246455A1 (en) * | 2004-04-29 | 2005-11-03 | Microsoft Corporation | I/O handling in generic USB rivers |
US20070186070A1 (en) | 2006-02-03 | 2007-08-09 | Neoware, Inc. | Computer operating system with selective restriction of memory write operations |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021154005A1 (en) * | 2020-01-29 | 2021-08-05 | 삼성전자 주식회사 | Method for recognizing resources of external electronic device, and electronic apparatus supporting same |
Also Published As
Publication number | Publication date |
---|---|
US20130042028A1 (en) | 2013-02-14 |
US9336022B2 (en) | 2016-05-10 |
KR20130017969A (en) | 2013-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101761126B1 (en) | USB device and USB system comprising the same | |
KR101653011B1 (en) | Storage system and method for managing a plurality of storage devices | |
USRE48997E1 (en) | Memory system in which extended function can easily be set | |
CN106707848B (en) | A kind of the control program construction and method for down loading of control system | |
US20100034042A1 (en) | Power consumption-oriented management of a storage system | |
JP5905072B2 (en) | Information processing apparatus, information processing method, and program | |
CN101110039B (en) | Terminal unit self-installing and self-starting system and method thereof | |
EP3200077B1 (en) | Vehicle control device, reprogramming system | |
US20140123121A1 (en) | Rack and method thereof for simultaneously updating basic input output systems | |
JP2008146566A5 (en) | ||
JP2004519751A (en) | How to load software | |
CN101763279A (en) | BootLoader architectural design method | |
JP2010271808A (en) | Storage device and data copying method | |
JP2016035692A (en) | Image processing apparatus, system, information processing method, and program | |
CN109976898B (en) | SPI and Eeprom asynchronous communication method of hierarchical task system | |
CN105159716A (en) | Memory device initialization method and electronic equipment | |
JP6025817B2 (en) | Wireless communication terminal, software update system, and software update method | |
CN103092648A (en) | Method and system of mirror image upgrade and user device and personal computer | |
CN104461705A (en) | Service access method, storage controllers and cluster storage system | |
US20120124596A1 (en) | Device driver for a device | |
CN105022590A (en) | Shared memory data access method and apparatus | |
CN112422704A (en) | Address allocation method and device for multiple devices and storage medium | |
US20190317798A1 (en) | Management apparatus, management system, method for controlling management apparatus, and program | |
CN104991873B (en) | Equipment management interface under software communications architecture and application Load-unload method | |
CN100487684C (en) | Method and apparatus for master/slave direct memory access hardware and software control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |