KR101761126B1 - USB device and USB system comprising the same - Google Patents

USB device and USB system comprising the same Download PDF

Info

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
Application number
KR1020110080733A
Other languages
Korean (ko)
Other versions
KR20130017969A (en
Inventor
양승수
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020110080733A priority Critical patent/KR101761126B1/en
Priority to US13/468,707 priority patent/US9336022B2/en
Publication of KR20130017969A publication Critical patent/KR20130017969A/en
Application granted granted Critical
Publication of KR101761126B1 publication Critical patent/KR101761126B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • 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 device and USB system comprising the same}A USB device, and a USB system comprising the same,

본 발명은 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 &lt; 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 &amp;le; L) number of function drivers from the first memory while maintaining N (where N &lt; 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 system 1 includes a USB device 100 and a USB host 200.

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 device 100 may include first and second memories 110 and 120, and a USB device port 130. The first memory 110 may be a non-volatile memory, and the second memory 120 may be a volatile memory. The USB device port 130 is physically connected to the USB host port 230 of the USB host 200 to perform USB communication. The USB device port 130 and the USB host port 230 may be connected, for example, directly or via a cable. However, the present invention is not limited thereto, and the USB device port 130 and the USB host port 230 are not physically connected to each other and can perform wireless USB communication.

USB 호스트(200)는 USB 호스트 포트(230)를 포함할 수 있다. USB 호스트 포트(230)는 상술한 바와 같이, USB 장치(100)의 USB 장치 포트(130)와 유/무선 USB 통신을 할 수 있다.The USB host 200 may include a USB host port 230. The USB host port 230 can perform wire / wireless USB communication with the USB device port 130 of the USB device 100, as described above.

도 2를 참조하면, USB 장치(100)에는 운영체제(OS; Operating System)(140)가 탑재될 수 있다. 운영체제(140)로서, 예컨대, 안드로이드(android)가 이용될 수 있으나, 이에 제한되지 않는다.Referring to FIG. 2, an operating system (OS) 140 may be installed in the USB device 100. As the operating system 140, for example, android may be used, but is not limited thereto.

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 device 100 may include a USB composite driver 150 and a USB device controller driver 180. The USB composite driver 150 may be defined as a driver including a USB function driver 170. The USB function driver 170 includes, for example, a UMS (Usb Mass Storage) function driver, a RNDIS (Remote Network Driver Interface Specification) function driver, and an MTP (Media Transfer Protocol) function driver.

USB 장치(100)는 다양한 모드로 동작할 수 있다. USB 장치(100)는 각각의 모드마다 다른 기능을 제공할 수 있다. 예컨대, USB 장치(100)는, 테더링(tethering) 모드로 동작할 수 있으며, 테더링 모드에서 USB 장치(100)는 테더링 장치로서 기능할 수 있다. 다만, USB 장치(100)가 특정 모드로 동작하기 위해서, 특정 USB 기능 드라이버가 필요할 수 있다. 그리고, USB 장치(100)의 모드마다, 필요로 하는 USB 기능 드라이버의 종류가 다를 수 있다.The USB device 100 may operate in various modes. The USB device 100 can provide different functions for each mode. For example, the USB device 100 may operate in a tethering mode, and in the tethering mode, the USB device 100 may function as a tethering device. However, in order for the USB device 100 to operate in a specific mode, a specific USB function driver may be required. The type of USB function driver required may be different for each mode of the USB device 100. [

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 device 100 can be configured by the USB composite configuration program 160. [ Specifically, the USB composite configuration program 160 activates a USB function driver necessary for the operation of the USB device 100 in a specific mode and deactivates an unnecessary USB function driver, 150). For example, a USB function driver required for operation of the USB device 100 in a specific mode may be loaded and activated in the second memory 120 (FIG. 1), and an unnecessary USB function driver may be unloaded from the second memory 120 And can be deactivated.

USB 장치(100)에서, USB 복합 장치 스위칭 프로그램(195)과 같은 응용 프로그램(190)이 실행될 수 있다. USB 복합 장치 스위칭 프로그램(195)은, 사용자로부터 USB 장치(100)를 어떠한 모드로 동작시킬 것인가에 대한 정보를 입력받고, 스위칭 신호를 생성할 수 있다. 스위칭 신호는 USB 장치(100)의 변경될 모드에 대한 정보를 포함할 수 있다.In the USB device 100, an application program 190 such as a USB composite device switching program 195 may be executed. The USB composite apparatus switching program 195 receives information on the mode in which the USB device 100 is to be operated by the user and generates a switching signal. The switching signal may include information about a mode of the USB device 100 to be changed.

스위칭 신호는, 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 apparatus switching program 195 to the USB composite configuration program 160. [ The USB composite configuration program 160 receives the switching signal and can know which mode the USB device 100 is to be changed to. The USB composite configuration program 160 may configure the USB composite driver 150 including the USB function driver 170 necessary for the USB device 100 to operate in a mode in which the USB device 100 is to be changed.

USB 장치 컨트롤러 드라이버(180)는, USB 장치(100)가 USB 호스트(200)와 유/무선 USB 통신을 할 수 있는 인터페이스를 제공할 수 있다. 예컨대, 후술될 USB 장치(100)의 디스크립터를 수신하여, USB 호스트(200)로 디스크립터를 전송할 수 있다. 그리고, USB 호스트 컨트롤러 드라이버(280)는, USB 호스트(200)가 USB 장치(100)와 유/무선 USB 통신을 할 수 있는 인터페이스를 제공할 수 있다.The USB device controller driver 180 may provide an interface through which the USB device 100 can perform wire / wireless USB communication with the USB host 200. [ For example, a descriptor of the USB device 100 to be described later may be received and the descriptor may be transferred to the USB host 200. [ The USB host controller driver 280 can provide an interface through which the USB host 200 can perform wire / wireless USB communication with the USB device 100.

도 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 USB device 100 in the basic mode from the first memory 110 to the second memory 120 And the USB function driver loaded in the second memory 120 may constitute a first USB composite driver.

제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 USB function drivers 171 may be stored in the first memory 110. Referring to FIG. 7, the L USB function drivers 171 may include first through Lth USB function drivers 171_1 through 171_L. The first through the L-th USB function drivers 171_1 through 171_L provide interfaces for providing different functions, and may be stored in the first memory 110, respectively. Since only one USB function driver of the same kind is stored in the first memory 110, the area occupied by the USB function driver in the first memory 110 can be minimized. Therefore, the use of unnecessary memory can be reduced. Also, when repairing the USB function driver, only one USB function driver needs to be repaired for each type of USB function driver, so that the maintenance cost can be reduced.

다시 도 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 USB device 100 to operate in the basic mode may be, for example, a different M (M? L) USB function drivers 172 . Therefore, M USB function drivers 172, which are different from the first memory 110, can be loaded into the second memory 120 by the USB composite configuration program (see 160 in FIG. 2). The M USB function drivers 172 loaded in the second memory 120 may constitute a first USB composite driver.

도 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 second memory 120 may be allocated (S410). The information of the interface descriptor to be transferred to the USB device controller driver (see 180 in FIG. 2) may be changed according to the interface descriptor information owned by the USB function driver to be loaded (S420).

그리고, 로딩될 USB 기능 드라이버가 필요로 하는 엔드포인트(endpoint)의 개수만큼의 엔드포인트 넘버를 USB 장치 컨트롤러 드라이버(180)로부터 할당받을 수 있다(S430). 그리고, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터에, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버를 저장할 수 있다(S440). 구체적으로, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터의 'bEndpointAddress' 값을, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버로 설정할 수 있다.In operation S430, the USB device controller driver 180 may allocate an end point number corresponding to the number of endpoints required by the USB function driver to be loaded. Then, the end point number assigned by the USB device controller driver 180 may be stored in the end point descriptor owned by the USB function driver to be loaded (S440). Specifically, the 'bEndpointAddress' value of the endpoint descriptor owned by the USB function driver to be loaded can be set to the end point number allocated from the USB device controller driver 180.

마지막으로, USB 장치 컨트롤러 드라이버(180)에 전달될 엔드포인트 디스크립터 정보를, 로딩될 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터 정보로 변경할 수 있다(S450).Lastly, the end point descriptor information to be transferred to the USB device controller driver 180 may be changed to the end point descriptor information owned by the function driver to be loaded (S450).

도 8을 참조하면, 제2 메모리(120)는 USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 디스크립터를 포함한다. USB 장치 컨트롤러 드라이버(180)에 전달될 디스크립터는, 데이터를 저장하는 디스크립터로, 디바이스 디스크립터, 컨피그레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터와, 로직상 구별되는 기능 디스크립터(function descriptor)를 포함할 수 있다. 기능 디스크립터는 제2 메모리(120)에 로딩된 USB 기능 드라이버에 대응되는 디스크립터로서, USB 기능 드라이버와 관련된 인터페이스 디스크립터와 엔드포인트 디스크립터를 포함할 수 있다.Referring to FIG. 8, the second memory 120 includes a descriptor to be transmitted to a USB device controller driver (see 180 in FIG. 2). The descriptor to be transmitted to the USB device controller driver 180 is a descriptor for storing data and may include a device descriptor, a configuration descriptor, an interface descriptor, an end point descriptor, and a logic descriptor. The function descriptor is a descriptor corresponding to the USB function driver loaded in the second memory 120, and may include an interface descriptor and an end point descriptor related to the USB function driver.

제2 메모리(120)는 로딩된 M개의 USB 기능 드라이버(도 6의 172 참조)에 각각 대응되는 M개의 기능 디스크립터를 포함한다. 제2 메모리(120) 내의 인터페이스 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 인터페이스 디스크립터의 정보로 변경된다. 그리고, 제2 메모리(120) 내의 엔드포인트 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 엔드포인트 디스크립터의 정보로 변경된다.The second memory 120 includes M function descriptors corresponding respectively to the loaded M USB function drivers (see 172 in Fig. 6). The interface descriptor information in the second memory 120 is changed to the information of the interface descriptors owned by the M USB function drivers 172. [ The end point descriptor information in the second memory 120 is changed to the information of the end point descriptors owned by the M USB function drivers 172.

이어서, 도 2, 도 3, 도 5, 도 7, 도 8, 및 도 10을 참조하여, 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법의 제2 동작을 설명한다.Next, a second operation of the composite driver configuration method of the USB device 100 according to the first embodiment will be described with reference to Figs. 2, 3, 5, 7, 8, and 10. Fig.

도 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 device 100 may wait to receive the switching signal (S200). Specifically, the USB device 100 can wait until a switching signal is generated from the USB composite device switching program 195 and a switching signal is transmitted to the USB composite configuration program 160. [

USB 복합 장치 스위칭 프로그램(195)으로부터 USB 복합 구성 프로그램(160)으로 스위칭 신호가 전달되면, USB 장치(100)는 USB 장치(100)의 현재 모드와 변경될 모드가 동일한지 비교할 수 있다(S300). 스위칭 신호는 변경될 모드에 대한 정보를 포함하고 있다. USB 장치(100)의 현재 모드와 변경될 모드가 동일하다면, USB 복합 드라이버를 재구성할 필요가 없다. 그러므로, USB 장치(100)의 현재 모드와 변경될 모드가 동일한 경우, 새로운 스위칭 신호가 전달될 때까지 대기할 수 있다.When a switching signal is transferred from the USB composite apparatus switching program 195 to the USB composite configuration program 160, the USB device 100 can compare whether the current mode of the USB device 100 is the same as the mode to be changed (S300) . The switching signal includes information on a mode to be changed. If the current mode of the USB device 100 is the same as the mode to be changed, there is no need to reconfigure the USB composite driver. Therefore, if the current mode of the USB device 100 is the same as the mode to be changed, it can wait until a new switching signal is transmitted.

그러나, USB 장치(100)의 현재 모드와 변경될 모드가 서로 상이하면, USB 장치(100)는 USB 복합 드라이버를 재구성할 수 있다.However, if the current mode and the mode to be changed of the USB device 100 are different from each other, the USB device 100 can reconfigure the USB compound driver.

도 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 device 100 among the USB function drivers currently loaded in the second memory 120 is transferred from the second memory 120 (S400). By unloading the unused USB function driver from the second memory 120, it is possible to efficiently use the area of the second memory 120 and to prevent malfunction caused by the unused USB function driver.

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 function drivers 173, and different USB function drivers 174. Specifically, the N USB function drivers 173 are included in the M USB function drivers 172, and the A USB function drivers 174 are included in the L USB function drivers 171. The N USB function drivers 173 and the A USB function drivers 174 may be different USB function drivers.

결과적으로, 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 USB function drivers 173 and A USB function drivers 174. The second USB composite driver may provide an interface necessary for the USB device 100 to operate in a mode to be changed.

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 USB function drivers 173 and the A USB function drivers 174, first of all the USB function drivers loaded in the second memory 120, And the USB function driver not included in the A USB function drivers 174 can be unloaded from the second memory 120. [ For example, among the M USB function drivers 172, M-N USB function drivers not included in the N USB function drivers 173 can be unloaded from the second memory 120. Since the M-N USB function drivers are not used in the mode to be changed, the second memory 120 can be efficiently used by unloading from the second memory 120.

결과적으로, 제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 second memory 120 and the N USB function drivers 173 may be loaded in the second memory 120. It is not necessary to load the N USB function drivers 173 separately in order to configure the second compound driver since the N USB function drivers 173 to be used in the mode to be changed are maintained in the loaded state. Therefore, when the mode is switched in the USB device 100, it is possible to ensure quick response of the USB device 100 by eliminating unnecessary operations.

도 5를 참조하여, USB 기능 드라이버를 제2 메모리(120)로부터 언로딩하는 과정을 구체적으로 설명한다.The process of unloading the USB function driver from the second memory 120 will be described in detail with reference to FIG.

우선, 제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 second memory 120, the allocated area for the interface descriptor and the endpoint descriptor owned by the USB function driver to be unloaded may be released (S520). Then, the use of the end point resource allocated by the USB device controller driver (see 180 in FIG. 2) is stopped, and the USB device controller driver 180 can be informed that the end point resource is no longer used (S530).

언로딩의 과정을 통해, 변경될 모드에서 사용하지 않을 영역의 할당을 해제함으로써, 제2 메모리(120)를 효율적으로 사용할 수 있다. 또한, USB 장치(100)에서 USB 통신을 위해 사용할 수 있는 엔드포인트 리소스는 한정되어 있는데, 변경될 모드에서 사용하지 않을 엔드포인트 리소스의 사용을 중단함으로써, 유한한 엔드포인트 리소스를 효율적으로 사용할 수 있다. 현 단계에서, 사용이 중단된 엔드포인트 리소스는, 예컨대, 추가 로딩될 USB 기능 드라이버를 위해 사용될 수도 있다.Through the unloading process, the second memory 120 can be efficiently used by deallocating the unused area in the mode to be changed. Also, the endpoint resources that can be used for the USB communication in the USB device 100 are limited. By stopping the use of the endpoint resources not to be used in the mode to be changed, finite endpoint resources can be efficiently used . At this stage, the deprecated endpoint resource may be used, for example, for a USB function driver to be further loaded.

도 9를 참조하면, 제2 메모리(120)에는, 변경될 모드에서 사용될 N개의 USB 기능 드라이버(도 6의 173 참조)에 관한 정보를 담고 있는 기능 디스크립터가 존재한다. 다만, 제2 메모리(120)에, 언로딩된 M-N개의 USB 기능 드라이버에 관한 정보를 담고 있는 기능 디스크립터는 없다 즉, 제2 메모리(120)에서, M-N개의 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터와 엔드포인트 디스크립터를 위해 할당된 영역이 해제되었다.Referring to FIG. 9, in the second memory 120, there is a function descriptor containing information on N USB function drivers (see 173 in FIG. 6) to be used in the mode to be changed. However, in the second memory 120, there is no function descriptor containing information on unloaded MN function drivers. Namely, in the second memory 120, the interface descriptors owned by the MN function drivers The allocated area for the endpoint descriptor has been released.

이어서, 도 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 USB device 100 to be changed, a USB function driver that is not currently loaded in the second memory 120 is removed from the first memory 110 2 memory 120 (S500). The additional time required for loading the USB function driver can be minimized by additionally loading only the necessary USB function driver into the second memory 120, so that the quick response of the USB device 100 can be ensured.

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 USB function drivers 173 and A USB function drivers 174 to configure the second USB composite driver 150 to include N USB function drivers 173 and A USB function drivers 174, It is possible to load a USB function driver that is not currently loaded into the second memory 120 into the second memory 120. The loading time of the USB function driver can be minimized by additionally loading only the USB function driver that is not currently loaded among the USB function drivers required for operating the USB device 100 in the mode in which the USB device 100 is to be changed. More specifically, since the A function drivers 174 of the USB function drivers to be used in the mode to be changed are not currently loaded in the second memory 120, the A function drivers 174 of the A function memory 174 from the first memory 110, May be loaded into the second memory 120.

도 9를 참조하면, 제2 메모리(120)는, A개의 USB 기능 드라이버(도 6의 174 참조)에 관한 기능 디스크립터를 포함한다. 구체적으로, 추가 로딩된 A개의 USB 기능 드라이버(174)에 대한 인터페이스 정보 및 엔드포인트 리소스에 관한 정보가 기능 디스크립터에 포함될 수 있다.Referring to Fig. 9, the second memory 120 includes function descriptors related to A USB function drivers (see 174 in Fig. 6). Specifically, the interface information for the A loaded USB function drivers 174 and the information about the end point resources may be included in the function descriptor.

이어서, 다시 도 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 USB device 100. [

예컨대, 기능 디바이스들에 할당되는 인터페이스 넘버는 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 device 100 is determined, the interface numbers may be assigned to the function devices according to the method.

이어서, USB 장치 컨트롤러 드라이버(180)에 전달된 디바이스 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S700).Subsequently, the device descriptor information transferred to the USB device controller driver 180 may be changed to match the mode to be changed of the USB device 100 (S700).

이어서, USB 장치 컨트롤러 드라이버(180)에 전달될 컨피그레이션 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S800).Subsequently, the configuration descriptor information to be transferred to the USB device controller driver 180 may be changed to match the mode to be changed of the USB device 100 (S800).

상술한 바와 같이, 제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 USB device 100 to operate in the mode to be changed can be loaded into the second memory 120. [ The descriptor information to be transmitted to the USB device controller driver 180 may be changed to match the mode to be changed. The changed descriptor is transferred to the USB device controller driver 180, and the USB device controller driver 180 can transmit the received descriptor to the USB host controller driver 280. Then, based on the provided descriptor, the USB communication can proceed.

다만, 제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 device controller driver 180 to the mode to be changed, the USB device 100 waits to receive a new switching signal and can repeat the second operation repeatedly .

도 10 내지 도 15를 참조하여, 본 발명의 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법을 구체적인 예를 들어 설명한다.10 to 15, a method of constructing a composite driver of the USB device 100 according to the first embodiment of the present invention will be described with reference to specific examples.

우선, 도 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 ADB function driver 177 and the UMS function driver 179 can be loaded into the second memory 120 from the first memory 110 with reference to FIG.

제1 메모리(110)에는, USB 장치(100)에서 사용될 수 있는 각기 다른 다수의 기능 드라이버가 저장될 수 있다. 그리고, 기능 드라이버는 각각 한 개씩 저장될 수 있다. 제1 메모리(110)에는 예컨대, RNDIS 기능 드라이버(175), ACM 기능 드라이버(176), ADB 기능 드라이버(177), MTP 기능 드라이버(178), UMS 기능 드라이버(179)를 포함할 수 있다.In the first memory 110, a plurality of different function drivers that can be used in the USB device 100 may be stored. The function drivers may be stored one by one. The first memory 110 may include an RNDIS function driver 175, an ACM function driver 176, an ADB function driver 177, an MTP function driver 178, and an UMS function driver 179, for example.

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 USB device 100, for example, the ADB function driver 177 and the UMS function driver 179 can be used. Therefore, in the first operation of the USB device 100, the ADB function driver 177 and the UMS function driver 179 can be loaded into the second memory 120 from the first memory 110. [ The interface numbers I0, I1, I2, and I3 may be assigned to the respective function drivers.

도 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 second memory 120. The descriptor of FIG. 11 may be a descriptor for the USB device 100 to operate in the basic mode. It can be confirmed that the interface numbers I0, I1, I2, and I3 are assigned to the interface descriptors.

이어서, 도 10, 및 도 12를 참조하여, USB 장치(100)의 제2 동작을 설명한다.Next, a second operation of the USB device 100 will be described with reference to Figs. 10 and 12. Fig.

도 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 ADB function driver 177 is inserted into the second memory 120, , The UMS function driver 179 can maintain the loaded state and load the ACM function driver 176 additionally.

현재 제2 메모리(120)에 로딩된 ADB 기능 드라이버(177), UMS 기능 드라이버(179)는 USB 장치(100)의 변경될 모드에서도 사용될 기능 드라이버이므로, 로딩된 상태를 유지할 수 있다. 다만, USB 장치(100)의 변경될 모드에서 사용될 기능 드라이버 중, ACM 기능 드라이버(176)는 현재 제2 메모리(120)에 로딩되어 있지 않다. 그러므로, ACM 기능 드라이버(176)를 제1 메모리(110)로부터 제2 메모리(120)로 추가 로딩시킬 수 있다.The ADB function driver 177 and the UMS function driver 179 currently loaded in the second memory 120 can maintain the loaded state since they are function drivers to be used in the mode of the USB device 100 to be changed. Of the function drivers to be used in the mode to be changed of the USB device 100, the ACM function driver 176 is not currently loaded in the second memory 120. [ Therefore, the ACM function driver 176 may be additionally loaded from the first memory 110 to the second memory 120. [

도 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 second memory 120, an ACM function descriptor is added in addition to the ADB function descriptor and the UMS function descriptor. 11, the interface numbers I0, I1, I2 and I3 of the ADB function driver 177 and the UMS function driver 179 correspond to the interfaces of the ADB function driver 177 and the UMS function driver 179, And the additional loaded ACM function driver 176 is assigned a new interface number I4, I5, I6.

이어서, 도 10, 도 13을 참조하여, USB 장치(100)의 다른 제2 동작을 설명한다.Next, another second operation of the USB device 100 will be described with reference to Figs. 10 and 13. Fig.

도 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 UMS function driver 179 and the ACM function driver 176 can be maintained in the loaded state since they are used in the mode to be changed of the USB device 100. [ However, the currently loaded ADB function driver 177 can be unloaded from the second memory 120, since it is not used in the mode in which the USB device 100 is to be changed.

도 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 UMS function driver 179 and the ACM function driver 176. FIG. At this time, the interface numbers are sequentially allocated from 0.

도 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 host 200 includes a host function driver corresponding to the USB function driver of the USB device 100. The USB function driver of the USB device 100 and the host function driver of the USB host 200 can be logically connected. To this end, the host function driver and the corresponding USB function driver can be assigned the same interface number.

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 USB host 200, the Inf file (file) can manage the interface number of the host function driver and the host function driver. For example, the Inf file may store the host function driver corresponding to the USB function driver necessary for the operation of the specific mode of the USB device 100 and the interface number assigned to the host function driver. Also in the USB system of the first embodiment of the present invention, the USB host 200 stores the host function driver corresponding to the USB function driver required for each mode of the USB device 100 and the interface number assigned to the host function driver It is assumed that an Inf file is constructed. Therefore, in the USB system of the first embodiment of the present invention, whenever the mode of the USB device 100 is changed to change the USB function driver to be loaded, the USB host 200 needs to configure a new Inf file.

그러나, 본 발명의 제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 USB device 100 is changed by using the existing Inf file, the USB host 200 can not construct a new Inf file have. In the USB system according to the second embodiment of the present invention, an Inf file holding a host function driver corresponding to a newly loaded USB function driver in the second memory 120 of the USB device 100 is searched, The same interface number as the interface number of the host function driver can be assigned to the newly loaded USB function driver.

도 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 USB function drivers 172 are loaded in the second memory 120, the USB host (200 in FIG. 1) has M host function drivers corresponding to the M USB function drivers 172 A first Inf file to be stored can be configured. The M USB function driver 172 and the M host function drivers can be assigned the same interface number. The interface numbers allocated to the M host function drivers can be stored in the first Inf file. As a result, the M USB function drivers 172 can be assigned the same interface number as the interface number stored in the first Inf file.

제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 USB function drivers 173 that maintain the loading state can be maintained. The A function drivers 174 newly loaded into the second memory 120 store the same interface numbers as the interface numbers stored in the second Inf file including the host function drivers corresponding to the A function drivers 174 Can be assigned. Therefore, even if the mode is changed, the USB host 200 can reuse the previously generated Inf file without generating a new Inf file.

도 14를 참조하면, 모드 변경 전에도 로딩되었던 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)는 기존의 제1 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 유지한다. 그리고, 추가 로딩된 MTP 기능 드라이버(178)는 제2 Inf 파일의 MTP 호스트 기능 드라이버(278)에 할당된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받는다. 이 때문에, USB 장치(100)의 모드가 변경되더라도, USB 호스트(200)는 변경될 모드에 대응되는 새로운 Inf 파일을 생성하지 않아도 된다.Referring to FIG. 14, the ADB function driver 177 and the UMS function driver 179, which were loaded before the mode change, maintain the same interface number as the interface number stored in the existing first Inf file. The additional loaded MTP function driver 178 is assigned the same interface number as the interface number assigned to the MTP host function driver 278 of the second Inf file. Therefore, even if the mode of the USB device 100 is changed, the USB host 200 does not have to generate a new Inf file corresponding to the mode to be changed.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 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 장치 포트와 상기 외부 장치 사이의 파일 전송을 가능하게 하고,
상기 복수의 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.
제1 항에 있어서,
인터페이스 정보를 포함하는 디스크립터 정보를 수신하는 USB 컨트롤러 드라이버를 더 포함하는 USB 장치.
The method according to claim 1,
And a USB controller driver for receiving descriptor information including interface information.
제1 항에 있어서,
상기 복수의 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.
제1 항에 있어서,
상기 복수의 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.
제1 항에 있어서,
상기 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.
비휘발성 메모리 및 휘발성 메모리를 포함하고, 상기 비휘발성 메모리는 L개의 USB 기능 드라이버를 저장하는 USB 장치의 동작 방법에 있어서,
타겟 동작 모드가 현재 동작 모드와 서로 다를 때, 엔드포인트 리소스를 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.
제6 항에 있어서,
상기 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.
제7 항에 있어서,
상기 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.
제6 항에 있어서,
상기 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.
제6 항에 있어서,
상기 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.
KR1020110080733A 2011-08-12 2011-08-12 USB device and USB system comprising the same KR101761126B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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