KR20130017969A - Usb 장치, 및 그것을 포함하는 usb 시스템 - Google Patents

Usb 장치, 및 그것을 포함하는 usb 시스템 Download PDF

Info

Publication number
KR20130017969A
KR20130017969A KR1020110080733A KR20110080733A KR20130017969A KR 20130017969 A KR20130017969 A KR 20130017969A KR 1020110080733 A KR1020110080733 A KR 1020110080733A KR 20110080733 A KR20110080733 A KR 20110080733A KR 20130017969 A KR20130017969 A KR 20130017969A
Authority
KR
South Korea
Prior art keywords
usb
function
memory
drivers
driver
Prior art date
Application number
KR1020110080733A
Other languages
English (en)
Other versions
KR101761126B1 (ko
Inventor
양승수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110080733A priority Critical patent/KR101761126B1/ko
Priority to US13/468,707 priority patent/US9336022B2/en
Publication of KR20130017969A publication Critical patent/KR20130017969A/ko
Application granted granted Critical
Publication of KR101761126B1 publication Critical patent/KR101761126B1/ko

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/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
    • 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
    • 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 메모리를 포함한다.

Description

USB 장치, 및 그것을 포함하는 USB 시스템{USB device and USB system comprising the same}
본 발명은 USB 장치, 및 USB 장치를 포함하는 USB 시스템에 관한 것이다.
USB 장치는 다양한 모드(mode)로 동작할 수 있으며, 각각의 모드 별로 다른 기능을 제공할 수 있다. 다만, USB 장치의 각각의 모드마다, 필요한 기능 드라이버(function driver)가 다르다. 그러므로, USB 장치의 모드가 변경되면, 변경될 모드에서 USB 장치가 원활히 동작하기 위해 필요한 기능 드라이버가 USB 장치의 휘발성 메모리에 로딩되어야 한다.
기능 드라이버는 비휘발성 메모리로부터 휘발성 메모리로 로딩될 수 있다. 예컨대, 비휘발성 메모리에는, 각 모드마다 필요로 하는 다수의 기능 드라이버가 조합을 이루어 저장될 수 있다. 예컨대, 제1 조합은, USB 장치를 제1 모드로 동작시키기 위해 필요한 기능 드라이버의 조합일 수 있고, 제2 조합은, USB 장치를 제2 모드로 동작시키기 위해 필요한 기능 드라이버의 조합일 수 있다. 그러므로, USB 장치의 모드가 변경되면, 우선, 휘발성 메모리에 로딩되어 있는 기능 드라이버를 전부 언로딩할 수 있다. 그리고, 변경될 모드에 필요한 기능 드라이버의 조합에 포함된 기능 드라이버를, 비휘발성 메모리로부터 휘발성 메모리로 로딩할 수 있다.
그런데, USB 장치의 모드 변경 전 휘발성 메모리에 로딩된 기능 드라이버 중, USB 장치의 모드 변경 후에도 계속 사용될 기능 드라이버가 있을 수 있다. 그러므로, 휘발성 메모리에 로딩된 기능 드라이버를 전부 언로딩하는 것은 비효율적일 수 있다.
본 발명이 해결하려는 과제는, USB 장치의 모드 변경시, 변경될 모드에서 불필요한 기능 드라이버만 언로딩하고, 변경될 모드에서 계속 사용하는 기능 드라이버는 로딩 상태를 유지하고, 새롭게 필요한 기능 드라이버를 추가 로딩하여, 기능 드라이버의 로딩/언로딩의 효율성을 높일 수 있는 USB 장치 및 USB 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 USB 장치의 일 실시예는 각기 다른 L개의 기능 드라이버(function driver)를 저장하는 제1 메모리, 및 제1 동작시, 상기 제1 메모리로부터 각기 다른 M(단, M≤L)개의 기능 드라이버를 로딩하고, 제2 동작시, 상기 M개의 기능 드라이버 중 N(단, N<M)개의 기능 드라이버는 로딩된 상태를 유지하면서, 상기 제1 메모리로부터 각기 다른 A(단, A<L)개의 기능 드라이버를 추가 로딩하는 제2 메모리를 포함한다.
상기 과제를 해결하기 위한 본 발명의 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 장치를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 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 장치의 인터페이스 넘버 할당 방법을 설명하기 위한 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1 및 도 2를 참조하여, 본 발명의 제1 실시예에 따른 USB 장치 및 USB 시스템을 설명한다. 도 1 및 도 2는 본 발명의 제1 실시예에 따른 USB 장치 및 USB 시스템을 설명하기 위한 블록도들이다.
도 1을 참조하면, USB 시스템(1)은 USB 장치(100)와 USB 호스트(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 통신을 할 수 있다.
USB 호스트(200)는 USB 호스트 포트(230)를 포함할 수 있다. USB 호스트 포트(230)는 상술한 바와 같이, USB 장치(100)의 USB 장치 포트(130)와 유/무선 USB 통신을 할 수 있다.
도 2를 참조하면, USB 장치(100)에는 운영체제(OS; Operating System)(140)가 탑재될 수 있다. 운영체제(140)로서, 예컨대, 안드로이드(android)가 이용될 수 있으나, 이에 제한되지 않는다.
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) 기능 드라이버가 있지만, 이에 제한되지 않는다.
USB 장치(100)는 다양한 모드로 동작할 수 있다. USB 장치(100)는 각각의 모드마다 다른 기능을 제공할 수 있다. 예컨대, USB 장치(100)는, 테더링(tethering) 모드로 동작할 수 있으며, 테더링 모드에서 USB 장치(100)는 테더링 장치로서 기능할 수 있다. 다만, USB 장치(100)가 특정 모드로 동작하기 위해서, 특정 USB 기능 드라이버가 필요할 수 있다. 그리고, USB 장치(100)의 모드마다, 필요로 하는 USB 기능 드라이버의 종류가 다를 수 있다.
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)로부터 언로딩되어 비활성화될 수 있다.
USB 장치(100)에서, USB 복합 장치 스위칭 프로그램(195)과 같은 응용 프로그램(190)이 실행될 수 있다. USB 복합 장치 스위칭 프로그램(195)은, 사용자로부터 USB 장치(100)를 어떠한 모드로 동작시킬 것인가에 대한 정보를 입력받고, 스위칭 신호를 생성할 수 있다. 스위칭 신호는 USB 장치(100)의 변경될 모드에 대한 정보를 포함할 수 있다.
스위칭 신호는, USB 복합 장치 스위칭 프로그램(195)으로부터 USB 복합 구성 프로그램(160)으로 전달될 수 있다. USB 복합 구성 프로그램(160)은, 스위칭 신호를 입력받아, USB 장치(100)가 어떠한 모드로 변경될 것인지 알 수 있다. 그리고, USB 복합 구성 프로그램(160)은, USB 장치(100)가 변경될 모드에서 동작하기 위해 필요한 USB 기능 드라이버(170)를 포함하는 USB 복합 드라이버(150)를 구성할 수 있다.
USB 장치 컨트롤러 드라이버(180)는, USB 장치(100)가 USB 호스트(200)와 유/무선 USB 통신을 할 수 있는 인터페이스를 제공할 수 있다. 예컨대, 후술될 USB 장치(100)의 디스크립터를 수신하여, USB 호스트(200)로 디스크립터를 전송할 수 있다. 그리고, USB 호스트 컨트롤러 드라이버(280)는, USB 호스트(200)가 USB 장치(100)와 유/무선 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, 도 4, 도 6, 및 도 8을 참조하여, 제1 실시예에 따른 USB 장치의 복합 드라이버 구성 방법의 제1 동작을 설명한다.
도 3, 도 6을 참조하면, USB 장치(도 1의 100)를 기본 모드로 동작시키기 위해 필요한 USB 기능 드라이버를 제2 메모리(120)에 로딩할 수 있다(S100). 구체적으로, USB 복합 구성 프로그램(도 2의 160 참조)은, USB 장치(100)를 기본 모드로 동작시키기 위해 필요한 USB 기능 드라이버를 제1 메모리(110)로부터 제2 메모리(120)로 로딩시킬 수 있으며, 제2 메모리(120)에 로딩된 USB 기능 드라이버는 제1 USB 복합 드라이버를 구성할 수 있다.
제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 기능 드라이버만을 보수하면 되기 때문에, 보수 비용을 줄일 수 있다.
다시 도 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 복합 드라이버를 구성할 수 있다.
도 4를 참조하여, USB 기능 드라이버를 제2 메모리(도 6의 120 참조)에 로딩하는 과정을 구체적으로 설명한다.
우선, 제2 메모리(120)에 로딩될 USB 기능 드라이버가 사용할 영역을 할당할 수 있다(S410). 그리고, USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 인터페이스 디스크립터(interface descriptor)의 정보를 로딩될 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터 정보에 맞게 변경할 수 있다(S420).
그리고, 로딩될 USB 기능 드라이버가 필요로 하는 엔드포인트(endpoint)의 개수만큼의 엔드포인트 넘버를 USB 장치 컨트롤러 드라이버(180)로부터 할당받을 수 있다(S430). 그리고, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터에, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버를 저장할 수 있다(S440). 구체적으로, 로딩될 USB 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터의 'bEndpointAddress' 값을, USB 장치 컨트롤러 드라이버(180)로부터 할당받은 엔드포인트 넘버로 설정할 수 있다.
마지막으로, USB 장치 컨트롤러 드라이버(180)에 전달될 엔드포인트 디스크립터 정보를, 로딩될 기능 드라이버가 소유하고 있는 엔드포인트 디스크립터 정보로 변경할 수 있다(S450).
도 8을 참조하면, 제2 메모리(120)는 USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 디스크립터를 포함한다. USB 장치 컨트롤러 드라이버(180)에 전달될 디스크립터는, 데이터를 저장하는 디스크립터로, 디바이스 디스크립터, 컨피그레이션 디스크립터, 인터페이스 디스크립터, 엔드포인트 디스크립터와, 로직상 구별되는 기능 디스크립터(function descriptor)를 포함할 수 있다. 기능 디스크립터는 제2 메모리(120)에 로딩된 USB 기능 드라이버에 대응되는 디스크립터로서, USB 기능 드라이버와 관련된 인터페이스 디스크립터와 엔드포인트 디스크립터를 포함할 수 있다.
제2 메모리(120)는 로딩된 M개의 USB 기능 드라이버(도 6의 172 참조)에 각각 대응되는 M개의 기능 디스크립터를 포함한다. 제2 메모리(120) 내의 인터페이스 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 인터페이스 디스크립터의 정보로 변경된다. 그리고, 제2 메모리(120) 내의 엔드포인트 디스크립터 정보는 M개의 USB 기능 드라이버(172)가 소유하고 있는 엔드포인트 디스크립터의 정보로 변경된다.
이어서, 도 2, 도 3, 도 5, 도 7, 도 8, 및 도 10을 참조하여, 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법의 제2 동작을 설명한다.
도 2, 및 도 3을 참조하면, 제1 동작을 마친 후, USB 장치(100)는 스위칭 신호를 수신하기 위해 대기할 수 있다(S200). 구체적으로, USB 장치(100)는, USB 복합 장치 스위칭 프로그램(195)으로부터 스위칭 신호가 생성되어, USB 복합 구성 프로그램(160)으로 스위칭 신호가 전달될 때까지 대기할 수 있다.
USB 복합 장치 스위칭 프로그램(195)으로부터 USB 복합 구성 프로그램(160)으로 스위칭 신호가 전달되면, USB 장치(100)는 USB 장치(100)의 현재 모드와 변경될 모드가 동일한지 비교할 수 있다(S300). 스위칭 신호는 변경될 모드에 대한 정보를 포함하고 있다. USB 장치(100)의 현재 모드와 변경될 모드가 동일하다면, USB 복합 드라이버를 재구성할 필요가 없다. 그러므로, USB 장치(100)의 현재 모드와 변경될 모드가 동일한 경우, 새로운 스위칭 신호가 전달될 때까지 대기할 수 있다.
그러나, USB 장치(100)의 현재 모드와 변경될 모드가 서로 상이하면, USB 장치(100)는 USB 복합 드라이버를 재구성할 수 있다.
도 3, 도 6을 참조하면, 우선, 현재 제2 메모리(120)에 로딩된 USB 기능 드라이버 중 USB 장치(100)의 변경될 모드에서 사용되지 않는 USB 기능 드라이버를, 제2 메모리(120)로부터 언로딩 할 수 있다(S400). 사용하지 않는 USB 기능 드라이버를 제2 메모리(120)로부터 언로딩함으로써, 제2 메모리(120)의 영역을 효율적으로 사용할 수 있고, 사용하지 않는 USB 기능 드라이버에 의한 오동작을 방지할 수 있다.
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 기능 드라이버일 수 있다.
결과적으로, USB 복합 구성 프로그램(도 2의 160 참조)은, N개의 USB 기능 드라이버(173)와 A개의 USB 기능 드라이버(174)를 포함하도록 제2 USB 복합 드라이버를 구성할 수 있다. 제2 USB 복합 드라이버는, USB 장치(100)가 변경될 모드로 동작하는데 필요한 인터페이스를 제공할 수 있다.
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)를 효율적으로 사용할 수 있다.
결과적으로, 제2 메모리(120)로부터 M-N개의 USB 기능 드라이버가 언로딩되고, 제2 메모리(120)에는 N개의 USB 기능 드라이버(173)가 로딩된 상태를 유지할 수 있다. 변경될 모드에서 사용될 N개의 USB 기능 드라이버(173)가 로딩된 상태를 유지하기 때문에, 제2 복합 드라이버를 구성하기 위해, N개의 USB 기능 드라이버(173)를 별도로 로딩할 필요가 없다. 그러므로, USB 장치(100)에서 모드의 전환이 있는 경우, 불필요한 동작을 제거함으로써 USB 장치(100)의 빠른 응답성을 확보할 수 있다.
도 5를 참조하여, USB 기능 드라이버를 제2 메모리(120)로부터 언로딩하는 과정을 구체적으로 설명한다.
우선, 제2 메모리(도 6의 120 참조)에서 언로딩될 USB 기능 드라이버가 할당하여 사용중인 영역을 해제(free)할 수 있다(S510). 그리고, 제2 메모리(120)에서, 언로딩될 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터와 엔드포인트 디스크립터를 위해 할당된 영역을 해제할 수 있다(S520). 그리고, USB 장치 컨트롤러 드라이버(도 2의 180 참조)가 할당한 엔드포인트 리소스의 사용을 중단하고, USB 장치 컨트롤러 드라이버(180)에게 엔드포인트 리소스를 더 이상 사용하지 않음을 알릴 수 있다(S530).
언로딩의 과정을 통해, 변경될 모드에서 사용하지 않을 영역의 할당을 해제함으로써, 제2 메모리(120)를 효율적으로 사용할 수 있다. 또한, USB 장치(100)에서 USB 통신을 위해 사용할 수 있는 엔드포인트 리소스는 한정되어 있는데, 변경될 모드에서 사용하지 않을 엔드포인트 리소스의 사용을 중단함으로써, 유한한 엔드포인트 리소스를 효율적으로 사용할 수 있다. 현 단계에서, 사용이 중단된 엔드포인트 리소스는, 예컨대, 추가 로딩될 USB 기능 드라이버를 위해 사용될 수도 있다.
도 9를 참조하면, 제2 메모리(120)에는, 변경될 모드에서 사용될 N개의 USB 기능 드라이버(도 6의 173 참조)에 관한 정보를 담고 있는 기능 디스크립터가 존재한다. 다만, 제2 메모리(120)에, 언로딩된 M-N개의 USB 기능 드라이버에 관한 정보를 담고 있는 기능 디스크립터는 없다 즉, 제2 메모리(120)에서, M-N개의 USB 기능 드라이버가 소유하고 있는 인터페이스 디스크립터와 엔드포인트 디스크립터를 위해 할당된 영역이 해제되었다.
이어서, 도 3 및 도 6을 참조하여, 변경될 USB 장치(100)의 모드에서 사용될 USB 기능 드라이버 중 현재 제2 메모리(120)에 로딩되어 있지 않은 USB 기능 드라이버를 제1 메모리(110)로부터 제2 메모리(120)로 로딩할 수 있다(S500). 부가적으로 필요한 USB 기능 드라이버만을 제2 메모리(120)에 추가 로딩함으로써, USB 기능 드라이버를 로딩하는데 걸리는 시간을 최소화할 수 있으므로, USB 장치(100)의 빠른 응답성을 확보할 수 있다.
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)로 로딩할 수 있다.
도 9를 참조하면, 제2 메모리(120)는, A개의 USB 기능 드라이버(도 6의 174 참조)에 관한 기능 디스크립터를 포함한다. 구체적으로, 추가 로딩된 A개의 USB 기능 드라이버(174)에 대한 인터페이스 정보 및 엔드포인트 리소스에 관한 정보가 기능 디스크립터에 포함될 수 있다.
이어서, 다시 도 3을 참조하면, USB 장치(도 2의 100 참조)의 변경될 모드의 동작을 위해 제2 메모리(도 2의 120 참조)에 로딩된 기능 디바이스들에 인터페이스 넘버를 할당할 수 있다(S600). 구체적으로, USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 제공될 인터페이스 디스크립터의 'bInterfaceNumber'의 정보를 변경하여 인터페이스 넘버를 할당할 수 있다. 인터페이스 넘버의 할당 방법은 USB 장치(100)의 각 모드마다 다를 수 있다.
예컨대, 기능 디바이스들에 할당되는 인터페이스 넘버는 0부터 순차적으로 증가하도록 할당될 수 있지만, 이에 제한되지 않는다. USB 장치(100)의 특정 모드를 위해 사용되는 기능 디바이스들의 인터페이스 넘버를 할당하는 방식이 정해져 있다면, 해당 방식에 따라 기능 디바이스들에 인터페이스 넘버가 부여될 수 있다.
이어서, USB 장치 컨트롤러 드라이버(180)에 전달된 디바이스 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S700).
이어서, USB 장치 컨트롤러 드라이버(180)에 전달될 컨피그레이션 디스크립터 정보를, USB 장치(100)의 변경될 모드에 맞도록 변경할 수 있다(S800).
상술한 바와 같이, 제2 동작시, USB 장치(100)가 변경될 모드에서 동작하기 위해 필요한 USB 기능 드라이버가 제2 메모리(120)에 로딩될 수 있다. 그리고, USB 장치 컨트롤러 드라이버(180)로 전달될 디스크립터 정보가, 변경될 모드에 맞도록 변경될 수 있다. 변경된 디스크립터는 USB 장치 컨트롤러 드라이버(180)로 전달되며, USB 장치 컨트롤러 드라이버(180)는 수신된 디스크립터를 USB 호스트 컨트롤러 드라이버(280)로 전송할 수 있다. 그리고, 제공된 디스크립터를 바탕으로, USB 통신이 진행될 수 있다.
다만, 제2 동작은 loop 형식으로 반복될 수 있다. 즉, USB 장치 컨트롤러 드라이버(180)에 전달될 컨피그레이션 디스크립터 정보를 변경될 모드에 맞게 변경한 후에, USB 장치(100)는 새로운 스위칭 신호를 수신하기 위해 대기하여, 제2 동작을 계속 반복할 수 있다.
도 10 내지 도 15를 참조하여, 본 발명의 제1 실시예에 따른 USB 장치(100)의 복합 드라이버 구성 방법을 구체적인 예를 들어 설명한다.
우선, 도 10 및 도 11을 참조하여, USB 장치(도 2의 100 참조)의 제1 동작을 설명한다.
도 10을 참조하여, 제1 메모리(110)로부터 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)를 제2 메모리(120)로 로딩할 수 있다.
제1 메모리(110)에는, USB 장치(100)에서 사용될 수 있는 각기 다른 다수의 기능 드라이버가 저장될 수 있다. 그리고, 기능 드라이버는 각각 한 개씩 저장될 수 있다. 제1 메모리(110)에는 예컨대, RNDIS 기능 드라이버(175), ACM 기능 드라이버(176), ADB 기능 드라이버(177), MTP 기능 드라이버(178), UMS 기능 드라이버(179)를 포함할 수 있다.
USB 장치(100)의 기본 모드에서, 예컨대, ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)가 사용될 수 있다. 그러므로, USB 장치(100)의 제1 동작에서, 제1 메모리(110)로부터 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)가 제2 메모리(120)로 로딩될 수 있다. 그리고, 각각의 기능 드라이버마다 인터페이스 넘버(I0, I1, I2, I3)가 할당될 수 있다.
도 11을 참조하면, 제2 메모리(120)에 USB 장치 컨트롤러 드라이버(도 2의 180 참조)에 전달될 디스크립터가 위치할 수 있다. 도 11의 디스크립터는, USB 장치(100)가 기본 모드로 동작하기 위한 디스크립터일 수 있다. 그리고, 인터페이스 디스크립터에 인터페이스 넘버(I0, I1, I2, I3)가 할당되어 있는 것을 확인할 수 있다.
이어서, 도 10, 및 도 12를 참조하여, USB 장치(100)의 제2 동작을 설명한다.
도 10을 참조하며, USB 복합 구성 프로그램(도2 의 160 참조)이 스위칭 신호를 수신하고, 현재의 모드와 변경될 모드가 다르다는 것을 확인하면, 제2 메모리(120)에 ADB 기능 드라이버(177), UMS 기능 드라이버(179)는 로딩된 상태를 유지하고, ACM 기능 드라이버(176)를 추가 로딩할 수 있다.
현재 제2 메모리(120)에 로딩된 ADB 기능 드라이버(177), UMS 기능 드라이버(179)는 USB 장치(100)의 변경될 모드에서도 사용될 기능 드라이버이므로, 로딩된 상태를 유지할 수 있다. 다만, USB 장치(100)의 변경될 모드에서 사용될 기능 드라이버 중, ACM 기능 드라이버(176)는 현재 제2 메모리(120)에 로딩되어 있지 않다. 그러므로, ACM 기능 드라이버(176)를 제1 메모리(110)로부터 제2 메모리(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)를 할당받았다.
이어서, 도 10, 도 13을 참조하여, USB 장치(100)의 다른 제2 동작을 설명한다.
도 10를 참조하면, USB 복합 구성 프로그램(도 2의 160 참조)이 새로운 스위칭 신호를 수신하고, 현재의 모드와 변경될 모드가 다르다는 것을 확인하면, 제2 메모리(120)로부터 ADB 기능 드라이버(177)만 언로딩될 수 있다.
현재 로딩된 UMS 기능 드라이버(179)와 ACM 기능 드라이버(176)는, USB 장치(100)의 변경될 모드에서 사용되기 때문에, 로딩된 상태를 유지할 수 있다. 그러나, 현재 로딩된 ADB 기능 드라이버(177)는, USB 장치(100)의 변경될 모드에서 사용되지 않기 때문에, 제2 메모리(120)로부터 언로딩될 수 있다.
도 13을 참조하면, UMS 기능 드라이버(179)와 ACM 기능 드라이버(176)에 새롭게 인터페이스 넘버(I0, I1, I2, I3, I4)가 할당된 것을 확인할 수 있다. 이 때, 인터페이스 넘버는 0부터 순차적으로 할당되었다.
도 2, 도 6, 및 도 14를 참조하여, 본 발명의 제2 실시예에 따른 USB 장치 및 USB 시스템을 설명한다. 본 발명의 제1 실시예와의 차이점을 위주로 설명한다. 도 14은 본 발명의 제2 실시예에 따른 USB 장치의 인터페이스 넘버 할당 방법을 설명하기 위한 블록도이다.
도 2, 및 도 14를 참조하면, USB 호스트(200)는, USB 장치(100)의 USB 기능 드라이버에 대응되는 호스트 기능 드라이버를 포함한다. USB 장치(100)의 USB 기능 드라이버와 USB 호스트(200)의 호스트 기능 드라이버는 로직적으로 연결될 수 있다. 이를 위해, 호스트 기능 드라이버와, 이에 대응되는 USB 기능 드라이버는 동일한 인터페이스 넘버를 할당받을 수 있다.
USB 호스트(200)에서, Inf 파일(file)은 호스트 기능 드라이버, 및 호스트 기능 드라이버의 인터페이스 넘버를 관리할 수 있다. 예컨대, Inf 파일에는 USB 장치(100)의 특정 모드의 동작에 필요한 USB 기능 드라이버에 대응되는 호스트 기능 드라이버와, 호스트 기능 드라이버에 할당된 인터페이스 넘버가 저장될 수 있다. 본 발명의 제1 실시예의 USB 시스템에서도, USB 호스트(200)는, USB 장치(100)의 각각의 모드마다 필요한 USB 기능 드라이버에 대응되는 호스트 기능 드라이버, 및 호스트 기능 드라이버에 할당된 인터페이스 넘버를 저장하는 Inf 파일이 구성되는 것으로 가정되었다. 그러므로, 본 발명의 제1 실시예의 USB 시스템에서, USB 장치(100)의 모드가 변경되어 로딩되는 USB 기능 드라이버가 바뀔 때마다, USB 호스트(200)는 새로운 Inf 파일을 구성할 필요가 있었다.
그러나, 본 발명의 제2 실시예에 따른 USB 시스템에서, USB 호스트(200)는, 기존에 저장된 Inf 파일을 이용하여, USB 장치(100)의 모드가 변경되더라도, 새로운 Inf 파일을 구성하지 않을 수 있다. 본 발명의 제2 실시예에 따른 USB 시스템에서는, USB 장치(100)의 제2 메모리(120)에 새롭게 로딩된 USB 기능 드라이버에 대응되는 호스트 기능 드라이버를 보유하는 Inf 파일을 찾고, 해당 Inf 파일에서 호스트 기능 드라이버의 인터페이스 넘버와 동일한 인터페이스 넘버를 새롭게 로딩된 USB 기능 드라이버에 할당할 수 있다.
도 6을 참조하여, 구체적으로 본 발명의 제2 실시예에 따른 USB 장치의 인터페이스 넘버 할당 방법을 설명한다.
제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 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받을 수 있다.
제2 동작 시, 로딩상태를 유지하는 N개의 USB 기능 드라이버(173)의 인터페이스 넘버는 유지될 수 있다. 그리고, 제2 메모리(120)에 새롭게 로딩되는 A개의 기능 드라이버(174)는, A개의 기능 드라이버(174)에 대응되는 호스트 기능 드라이버를 포함하는 제2 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받을 수 있다. 그러므로, USB 호스트(200)는, 모드가 변경되더라도 새롭게 Inf 파일을 생성하지 않고, 기존에 생성된 Inf 파일을 재사용할 수 있다.
도 14를 참조하면, 모드 변경 전에도 로딩되었던 ADB 기능 드라이버(177), 및 UMS 기능 드라이버(179)는 기존의 제1 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 유지한다. 그리고, 추가 로딩된 MTP 기능 드라이버(178)는 제2 Inf 파일의 MTP 호스트 기능 드라이버(278)에 할당된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받는다. 이 때문에, USB 장치(100)의 모드가 변경되더라도, USB 호스트(200)는 변경될 모드에 대응되는 새로운 Inf 파일을 생성하지 않아도 된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
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 호스트 컨트롤러 드라이버

Claims (10)

  1. 각기 다른 L개의 기능 드라이버(function driver)를 저장하는 제1 메모리, 및
    제1 동작시, 상기 제1 메모리로부터 각기 다른 M(단, M≤L)개의 기능 드라이버를 로딩하고,
    제2 동작시, 상기 M개의 기능 드라이버 중 N(단, N<M)개의 기능 드라이버는 로딩된 상태를 유지하면서, 상기 제1 메모리로부터 각기 다른 A(단, A<L)개의 기능 드라이버를 추가 로딩하는 제2 메모리를 포함하는 USB 장치.
  2. 제1 항에 있어서,
    상기 제2 메모리는, 상기 제2 동작시, 상기 M개의 기능 드라이버 중 상기 N개의 기능 드라이버를 제외한 (M-N)개의 기능 드라이버를 상기 제2 메모리로부터 언로딩하는 USB 장치.
  3. 제2 항에 있어서,
    상기 M개의 기능 드라이버를 로딩하는 것은,
    상기 제2 메모리에 상기 M개의 기능 드라이버가 사용할 영역을 할당하고,
    상기 M개의 기능 드라이버가 사용할 엔드포인트 리소스를 할당하는 것을 포함하는 USB 장치.
  4. 제3 항에 있어서,
    상기 (M-N)개의 기능 드라이버를 상기 제2 메모리로부터 언로딩하는 것은,
    상기 제2 메모리에서 상기 (M-N)개의 기능 드라이버에 할당된 영역을 해제하고,
    상기 (M-N)개의 기능 드라이버에 할당된 엔드포인트 리소스를 해제하는 것을 포함하는 USB 장치.
  5. 제1 항에 있어서,
    상기 L개의 기능 드라이버는 제1 내지 제L 기능 드라이버를 포함하고,
    상기 제1 내지 제L 기능 드라이버는 상기 제1 메모리에 각각 1개씩 저장된 USB 장치.
  6. 제1 항에 있어서,
    상기 제1 메모리는, 복합 구성 프로그램을 포함하되,
    상기 복합 구성 프로그램은 상기 제1 메모리로부터 상기 M개 및 상기 N개의 기능 드라이버를 상기 제2 메모리로 로딩시키는 USB 장치.
  7. 제1 항에 있어서,
    상기 M개의 기능 드라이버는 상기 USB 장치가 제1 모드로 동작하기 위해 사용되고,
    상기 N개의 기능 드라이버와 상기 A개의 기능 드라이버는 상기 USB 장치가 제2 모드로 동작하기 위해 사용되는 USB 장치.
  8. 제1 항에 있어서,
    상기 M개의 기능 드라이버와 상기 A개의 기능 드라이버는 서로 다른 USB 장치.
  9. 호스트 기능 드라이버의 인터페이스 넘버가 저장된 제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 장치를 포함하는 USB 시스템.
  10. 제9 항에 있어서,
    상기 제2 동작시, 상기 A개의 기능 드라이버는 제2 Inf 파일에 저장된 인터페이스 넘버와 동일한 인터페이스 넘버를 할당받는 것을 더 포함하는 USB 시스템.
KR1020110080733A 2011-08-12 2011-08-12 Usb 장치, 및 그것을 포함하는 usb 시스템 KR101761126B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110080733A KR101761126B1 (ko) 2011-08-12 2011-08-12 Usb 장치, 및 그것을 포함하는 usb 시스템
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 (ko) 2011-08-12 2011-08-12 Usb 장치, 및 그것을 포함하는 usb 시스템

Publications (2)

Publication Number Publication Date
KR20130017969A true KR20130017969A (ko) 2013-02-20
KR101761126B1 KR101761126B1 (ko) 2017-07-25

Family

ID=47678253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110080733A KR101761126B1 (ko) 2011-08-12 2011-08-12 Usb 장치, 및 그것을 포함하는 usb 시스템

Country Status (2)

Country Link
US (1) US9336022B2 (ko)
KR (1) KR101761126B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101969726B1 (ko) * 2012-05-02 2019-04-17 삼성전자주식회사 범용 직렬 버스 호스트 식별 방법 및 그 전자 장치
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
CN104216840B (zh) 2014-09-11 2018-03-23 青岛海信移动通信技术股份有限公司 一种usb设置和对外部设备进行操作的方法及装置
CN105550133A (zh) * 2015-12-08 2016-05-04 天津津航计算技术研究所 基于zynq的axis-fifo桥电路及利用该电路进行数据传输的方法
CN106250057B (zh) * 2016-07-26 2019-06-04 青岛海信移动通信技术股份有限公司 一种显示存储设备的方法和装置
WO2019075620A1 (zh) * 2017-10-16 2019-04-25 华为技术有限公司 数据处理系统
US10394722B1 (en) * 2018-08-07 2019-08-27 Dell Products L.P. Managing alt-mode interfaces of a USB Type-C device
KR20210096917A (ko) * 2020-01-29 2021-08-06 삼성전자주식회사 외부 전자 장치의 리소스를 인식하는 방법 및 이를 지원하는 전자 장치

Family Cites Families (9)

* 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
US7802022B2 (en) * 2004-04-29 2010-09-21 Microsoft Corporation Generic USB drivers
GB0508576D0 (en) * 2005-04-27 2005-06-01 Symbian Software Ltd Delegating universal serial bus functionality
KR100738955B1 (ko) 2005-12-28 2007-07-16 에스케이 텔레콤주식회사 다기능 usb 슬레이브 장치와 usb 호스트 장치 간의기능 변경 방법 및 이를 위한 다기능 usb 슬레이브 장치
US7395394B2 (en) 2006-02-03 2008-07-01 Hewlett-Packard Development Company, L.P. Computer operating system with selective restriction of memory write operations
FR2902254B1 (fr) * 2006-06-09 2008-09-26 Dibcom Sa Pilotage d'un dispositif multifonctions
KR100867395B1 (ko) 2007-01-04 2008-11-06 (주)엠씨에스로직 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

Also Published As

Publication number Publication date
US9336022B2 (en) 2016-05-10
KR101761126B1 (ko) 2017-07-25
US20130042028A1 (en) 2013-02-14

Similar Documents

Publication Publication Date Title
KR101761126B1 (ko) Usb 장치, 및 그것을 포함하는 usb 시스템
US7969809B2 (en) Power consumption-oriented management of a storage system
KR101653011B1 (ko) 복수의 저장 장치를 관리하기 위한 저장 시스템과 방법
US11301140B2 (en) Configuring parameters of non-volatile memory target subsystems for workload request quality of service
US9495116B2 (en) Storage device coordinator and a host device that includes the same
US11435943B2 (en) Storage device sharing attribute information with host device to use host memory buffer and electronic device including the same
US11042331B2 (en) Memory device managing data in accordance with command and non-transitory computer readable recording medium
WO2013128648A1 (ja) 情報処理装置及び電子制御ユニット及び情報処理方法及びプログラム
JP2008146566A5 (ko)
CN109471812B (zh) 存储装置及非易失性存储器的控制方法
WO2017177806A1 (zh) 一种管理资源的方法和装置
KR101856486B1 (ko) 컴퓨팅 디바이스에서 수행되는 오픈 시스템과 메인프레임 시스템 사이의 양방향 호출 방법
CN111338779B (zh) 资源分配方法、装置、计算机设备和存储介质
KR20070090649A (ko) 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법
CN111684431A (zh) 数据存储装置空闲时间处理
CN104461705A (zh) 一种业务访问的方法及存储控制器、集群存储系统
US10439934B2 (en) Systems and methods for addressing multiple physical and virtual functions in network controller-sideband interface
CN102541743B (zh) 用于存储管理的方法、设备和系统
US20160110221A1 (en) Scheduling system, scheduling method, and recording medium
US20190250957A1 (en) System and method of dynamic allocation of hardware accelerator
CN114327246A (zh) 存储介质内数据存储方法、存储介质及计算机设备
US8782304B2 (en) Method for enabling several virtual processing units to directly and concurrently access a peripheral unit
KR101985807B1 (ko) 장비 id를 이용한 동적 기능 할당방법 및 그를 위한 장치
CN108009005A (zh) 一种线程池管理方法及装置
CN111327439B (zh) 非冲突式人机命令交互通道并行工作控制方法及装置

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