KR101464571B1 - 가상 usb 복합 디바이스 열거 - Google Patents
가상 usb 복합 디바이스 열거 Download PDFInfo
- Publication number
- KR101464571B1 KR101464571B1 KR1020137008306A KR20137008306A KR101464571B1 KR 101464571 B1 KR101464571 B1 KR 101464571B1 KR 1020137008306 A KR1020137008306 A KR 1020137008306A KR 20137008306 A KR20137008306 A KR 20137008306A KR 101464571 B1 KR101464571 B1 KR 101464571B1
- Authority
- KR
- South Korea
- Prior art keywords
- usb
- host
- peripheral device
- current draw
- program code
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Power Sources (AREA)
- Telephone Function (AREA)
Abstract
시뮬레이팅되는 허브를 가지는 가상 유니버셜 직렬 버스(USB) 복합 디바이스를 구현하기 위한 시스템은 USB 버스 상에서 다수의 독립 기능들을 나타내기 위해, USB 주변 디바이스와 같은 단일 물리적 USB 디바이스를 인에이블시킨다. 단일 물리적 USB 디바이스 상에서의 논리적 기능들은 전체 디바이스를 재-열거하지 않고, 그리고 다른 기능들의 상태에 영향을 주지 않고 동적으로 추가 및 제거될 수 있다. 논리 기능들은 또한 USB 하드웨어에 대한 액세스를 가지는 시스템 내의 다수의 프로세서들 중 임의의 프로세서 상에서 독립적으로 구현될 수 있다. 각각의 프로세서는 가상 허브를 통해 하나 이상의 USB 디바이스들로서 열거할 수 있다. 논리 기능들의 초기화는 방전된 배터리를 가지는 디바이스에서 USB 호스트로부터 충전 전류 레벨을 유지하기 위해 가상 USB 허브를 통해 수행될 수 있다.
Description
관련 출원에 대한 교차 참조
본 출원은 2010년 8월 30일에 출원된 MALAMANT 등에 대한 미국 가 특허출원 제61/378,159호를 우선권으로 청구한다.
본 개시내용의 양상들은 일반적으로 유니버셜 직렬 버스(USB) 디바이스들에 관한 것이고, 더 구체적으로는 가상 USB 디바이스의 열거(enumeration)에 관한 것이다.
유니버셜 직렬 버스(USB) 호스트 이를테면 USB 호스트 개인용 컴퓨터들(PC 호스트들)은 다수의 USB 주변 디바이스들의 플러그-앤-플레이 동작을 인에이블시키도록 설계된다. 즉, USB 주변 디바이스들은 이들이 USB 호스트의 USB 포트에 물리적으로 접속되는 경우 USB 호스트와 통신하도록 자동으로 구성된다. USB 호스트들은 최대 127개까지의 USB 주변 디바이스들을 핸들링할 수 있고, USB 버스에 부착된 각각의 디바이스에 대한 드라이버들을 동적으로 로드 및 언로드하기 위한 메커니즘을 제공할 수 있다.
USB 호스트들과는 달리, USB 주변 디바이스들은 일반적으로 다양한 USB 기능들에 대한 드라이버들을 동적으로 로드 및 언로드 할 수 없다. 오히려, USB 주변 디바이스들은, 이들이 USB 호스트에 물리적으로 접속되는 경우 기능들의 미리 정의된 정적 세트를 USB 호스트에 열거한다. 정적 기능들의 세트는 일반적으로 런타임 동안 확장되지 않을 수 있다. 특정한 더 새로운 USB 주변 디바이스들은 다수의 USB 기능들을 가능하게 할 수 있다. 그러나, 이러한 디바이스들은 기능성들에 대한 USB 드라이버들을 동적으로 로드 및 언로드하기 위한 USB 주변 디바이스들의 불능으로 인해 원하는 기능성들을 구성하기 위한 제한된 능력만을 가질 수 있다.
특정 복합 USB 디바이스들은 다수의 USB 기능들로 하여금 단일 USB 포트 상에서 USB 호스트에 열거하도록 허용할 수 있다. USB 규격들은 복합 디바이스들로 하여금 단일 USB 포트 상에서 다수의 기능들로 열거하도록 허용하게 함으로써 이러한 디바이스들을 설계하기 위한 특정 방법들을 설명한다.
도 1은 USB 규격들에 따라 디바이스 내의 다수의 논리 기능들을 표현할 수 있는 USB 디스크립터(descriptor) 계층(100)을 도시한다. USB 열거의 적어도 3개 스테이지들은 USB 디바이스가 호스트에 플러그인 되는 경우 발생할 수 있다. 디바이스 디스크립터(102)는 디바이스에 대한 USB 열거를 나타낸다. 다수의 구성 디스크립터들(104)은 디바이스의 다양한 구성들에 대한 USB 열거를 나타낸다. 다수의 인터페이스 디스크립터들(106)은 각각 USB 기능성들 중 대응하는 기능성에 대한 USB 열거를 나타낼 수 있다. 다수의 엔드포인트 디스크립터들(108)은 특정 인터페이스 데이터 채널들에 대한 할당들을 열거한다. 엔드포인트 디스크립터들(108)은, 특정 기능성이 예를 들어, USB 호스트와 데이터를 주고 받으며 전송하도록 특정 데이터 채널들에 액세스 가능하게 한다.
도 1에 도시된 디스크립터 계층(100)이 정적이므로, 추가적인 인터페이스들은 일반적으로, 디바이스의 물리적 접속해제 및 재접속이 발생하거나 시뮬레이팅되지 않는 한, 계층에 추가되지 않을 수 있다. 특정 USB 디바이스들은 USB 호스트로부터/로 USB 디바이스의 접속해제 및 재접속을 시뮬레이팅하기 위해 USB 호스트에 USB 디바이스를 접속시키는 USB 회로를 내부적으로 개방 및 폐쇄함으로써 디스크립터 계층(100)의 재구성을 허용한다. 그러나, 이 방법은 모든 논리 인터페이스들의 접속해제 및 재접속으로 인해 에러가 흔히 발생하기 쉬우며, 이는 기대되지 않은 방식으로 활성 애플리케이션 세션들을 허물 수 있다.
USB 기능성의 재-열거를 허용하기 위한 USB 회로의 개방 및 폐쇄는 또한, 예를 들어, USB 주변 디바이스의 방전(dead) 배터리를 충전하는 프로세스에서 문제가 될 수 있다. USB 규격에 따라, USB 주변 디바이스는 USB 주변 디바이스가 열거되기 전에 USB 호스트로부터 최대 100mA까지 인출할 수 있으며, USB 디바이스가 열거한 이후 USB 호스트로부터 최대 500mA 까지 요청할 수 있다. 그러나, USB 주변 디바이스는 자신의 운영 체제를 로딩하기 위해 100mA를 초과하여 인출해야만 할지도 모른다. 방전된 배터리로부터 복원되기 위해, USB 디바이스는 부트 로딩 프로세스에서 조기에 USB 호스트에 열거할 수 있다. 초기 열거는 USB 주변 운영 체제를 로딩하기 전에 발생할 수 있으며, 오직 최대 100mA까지의 전류만을 사용할 수 있다.
방전된 배터리를 이용하여 부트(boot) 프로세스 동안 전력을 추가로 보존하기 위해, USB 주변 디바이스는 예를 들어, USB 휴먼 인터페이스 디바이스(HID) 클래스 디바이스와 같은 더 단순한 USB 주변 디바이스로서 초기에 열거할 수 있다. USB 주변 디바이스의 초기 열거가 완료된 이후, USB 주변 디바이스는 USB 호스트로부터 최대 500mA까지 요청할 수 있다. 추가 전류가 USB 주변 운영 체제의 로딩을 완료하기 위해 사용될 수 있다. 운영 체제가 로딩되면, USB 주변 디바이스는 운영 체제에 의해 특정된 바와 같이, USB 호스트에 자신의 실제 기능성들을 표현하기 위해 일반적으로 재-열거할 것이다.
재열거는 위에서 설명된 바와 같이 USB 디바이스의 재접속을 시뮬레이팅하기 위해 USB 회로를 개방 및 폐쇄함으로써 수행될 수 있다. 그러나, USB 규격은 이후 약 500mA로부터 100mA 미만의 사전-열거 레벨로 충전 전류의 감소를 지시할 것이다. 따라서, 기능상으로 USB 디바이스를 재-열거하기 위해 USB 회로를 개방 및 폐쇄하는 것은 배터리가 충분히 충전될 때까지 USB 컴플라이언트(compliant) 방식으로 수행될 수 없다.
USB 주변 디바이스의 접속해제/재접속의 시뮬레이팅은 다른 원치 않는 부작용들을 야기할 수 있다. 예를 들어, 특정 운영 체제들에서의 하드웨어 포트들의 네이밍은 운영 체제가 USB 디바이스의 물리적 접속해제/재접속을 인지할 경우 자동으로 업데이트될 수 있다. 이는 리네이밍된 포트들에 액세스 중인 프로세스들에서의 에러들을 야기할 수 있다.
USB 규격들은 임베디드 USB 허브를 가지는 단일 복합 디바이스 패키지 내의 다수의 USB 디바이스들을 패키징(packaging)하는 방법을 정의한다. 임베디드 USB 허브를 포함하는 복합 디바이스의 예는 도 2를 참조하여 설명된다. 루트 허브(202)는 USB 호스트(204)에 직접 접속될 수 있고, 다수의 USB 디바이스들(206)은 루트 허브(202)를 통해 USB 호스트(204)에 접속될 수 있다. 다수의 추가 디바이스들(208)은 다수의 추가적인 USB 허브들(210)을 통해 루트 허브(202)에 접속될 수 있다. 특정 복합 디바이스들은 하나 이상의 접속된 USB 디바이스들(208)을 가지는 USB 허브(210)를 포함할 수 있다.
하나 이상의 USB 허브들을 통해 USB 호스트에 USB 디바이스를 접속시키는 것은 전술된 USB 디바이스의 충전과 연관된 문제점들 중 일부를 해결할 수 있다. USB 허브는 비교적 단순한 디바이스이므로, 이는 재-열거 단계 없이 초기 부트 로딩 프로세스 동안 열거될 수 있다. USB 허브의 초기 열거 이후, USB 허브는 100mA 미만으로부터 약 500mA로 USB 호스트로부터 자신의 전류 인출을 증가시킬 수 있고, 배터리가 충전될 때까지 500mA를 계속 인출할 수 있다. 최대 500mA까지의 전류 인출은 디바이스들이 USB 허브를 통한 구성에 추가되거나 이로부터 제거됨에 따라 일정하게 유지될 수 있다.
USB 허브들과 같은 디바이스들이 단일 USB 포트 상의 다수의 기능들을 열거할 수 있지만, 이러한 기능들은 정적으로 정의되며, 런타임 동안 변경되지 않을 수 있다. 또한, USB 호스트 운영 체제들은 이러한 복합 USB 디바이스들을 이용하여 USB 호스트의 상호작용들을 제한할 수 있는 다수의 규격들 또는 제한들을 가질 수 있다. 독점적(Proprietary) 드라이버들은 전용 제품 식별(ID)들이 예를 들어 논리 기능들의 각각의 가능한 조합에 대해 할당될 수 있는 이들 운영 체제 제한들을 갖는 복합 디바이스들을 위해 개발될 수 있다.
USB 주변 디바이스들 상에 동적으로 구성가능한 USB 기능성을 제공하기 위한 노력들은 USB 주변 디바이스의 프라이머리 프로세서 내의 복합 드라이버들을 구현하는 것을 포함하였다. 그러나, 이러한 복합 드라이버들은, 이들이 가능한 USB 기능성들의 모든 조합들을 관리하고 각각의 조합에 대한 별도의 제품 ID를 할당하므로, 본질적으로 제한된다. 일부 구현예들은 시스템 설계의 시간에서 공지된 기능들의 슈퍼 세트에 대한 제품 ID를 정의하고, 특정 시나리오에 기초하여 기능들의 서브세트로 열거된다. 어느 경우든, 새로운 USB 기능성의 추가는 복잡하며, 모든 기능들의 재-열거를 수반한다.
전용 USB 허브 칩들은 복합 디바이스 구현예를 위해 USB 주변 디바이스들에 추가되었다. 특정 임베디드 USB 기능들에 추가하여 나타낸 하나 이상의 다운스트림 포트들을 가지는 복합 USB 허브 디바이스들이 또한 시중에서 이용가능하다. 이러한 복합 디바이스의 일 예는 도 3에 도시된다. 도 3에 도시된 디바이스(300)는 SD 카드 슬롯들(302) 및 임베디드 카드 리더 기능을 가지는 USB 복합 허브의 예이다. USB 복합 디바이스들은 상이한 프로세서들 상에 호스팅되는 다수의 독립 기능들을 핸들링할 수 있다. 그러나, USB 복합 디바이스들은 각각의 프로세서에 대한 독립적인 물리적 USB 인터페이스들 상에서의 추가적인 전력 소모 및 추가적인 비용을 수반한다. 추가로, 임베디드 USB 허브 칩에 부착된 각각의 프로세서는 여전히 독립 USB 디바이스와 동일한 제한들을 가진다.
예를 들어, 마이크로-B 포트 또는 마이크로-AB 포트와 같은 단일 USB 포트를 가지는 특정 멀티-프로세서 시스템들에 대해, 각각의 프로세서는 USB 버스 상에서 특정 USB 기능성을 나타낼 수 있다. 다수의 USB 기능성들은 단일 프라이머리 프로세서에 대한 대응하는 USB 드라이버들을 호스팅함으로써 나타난다. 이는, 예를 들어, 멀티-프로세서 시스템들 내의 다른 프로세서들, 즉, 세컨더리 프로세서들이 프라이머리 프로세서를 통해 USB 하드웨어와 통신하기 위해 추가적인 프로세싱의 부담이 증가할 수 있으므로, 비효율적일 수 있다.
본 개시내용의 양상들에 따라, 가상 USB 허브 기능성은 충전 전류 레벨의 감소 없이 제2 디바이스 기능성 열거가 발생하도록 작동될 수 있다. 가상 USB 허브 기능성의 작동은 낮은 배터리 전력을 가지는 디바이스들에 의해 수행될 수 있고, 따라서, 이들은 제2 디바이스 기능성을 열거하는 것과 동시에 신속한 충전을 위해 호스트로부터 높은 레벨의 전류를 계속 인출해 낼 수 있다. 디바이스는 가상 허브로서 낮은 전류 레벨에서 초기 열거를 수행하고, 충전을 위해 더 높은 전류 레벨을 요청하며, 이후 가상 허브를 통해 제2 기능성을 열거하는 동안 높은 전류 레벨을 유지할 수 있다.
본 개시내용의 양상들은 유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류인출을 사용하여 가상 허브로서 USB 주변 디바이스를 열거하는 단계, 및 USB 주변 디바이스가 가상 허브로서 열거되는 동안 USB 호스트로부터의 높은 전류 인출을 요청하는 단계를 포함하는 방법을 제공한다. 방법은 USB 호스트에 포트 상태 변경 통지를 송신하는 단계 및 높은 전류 인출을 사용하여 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하는 단계를 더 포함한다.
본 개시내용의 양상들은 또한 유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 가상 허브로서 USB 주변 디바이스를 열거하기 위한 수단, 및 USB 주변 디바이스가 가상 허브로서 열거되는 동안 USB 호스트로부터 높은 전류 인출을 요청하기 위한 수단을 포함하는 장치를 제공한다. 장치는 또한 USB 호스트에 포트 상태 변경 통지를 송신하기 위한 수단 및 높은 전류 인출을 사용하여 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하기 위한 수단을 포함한다.
본 개시내용의 양상들은 또한 무선 네트워크에서 무선 통신을 위한 컴퓨터 물건을 제공한다. 컴퓨터 물건은 저장된 프로그램 코드를 가지는 컴퓨터-판독가능한 매체를 포함한다. 프로그램 코드는 유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 가상 허브로서 USB 주변 디바이스를 열거하기 위한 코드, 및 USB 주변 디바이스가 가상 허브로서 열거되는 동안 USB 호스트로부터 높은 전류 인출을 요청하기 위한 코드를 포함한다. 프로그램 코드는 USB 호스트에 포트 상태 변경 통지를 송신하기 위한 프로그램 코드를 더 포함한다. 프로그램 코드는 또한 높은 전류 인출을 사용하여 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하기 위한 코드를 포함한다.
본 개시내용의 양상들은 또한 메모리 및 메모리에 커플링되는 적어도 하나의 프로세서를 포함하는 무선 통신을 위한 장치를 제공한다. 프로세서(들)는 유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 가상 허브로서 USB 주변 디바이스를 열거하고, USB 주변 디바이스가 가상 허브로서 열거되는 동안 USB 호스트로부터 높은 전류 인출을 요청하도록 구성된다. 프로세서(들)는 또한 USB 호스트에 포트 상태 변경 통지를 송신하고, 높은 전류 인출을 사용하여 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하도록 구성된다.
본 개시내용의 추가적인 특징들 및 장점들이 하기에 설명될 것이다. 이러한 개시내용이 본 개시내용의 동일한 목적들을 수행하기 위해 다른 구조들을 수정 또는 설계하기 위한 기반으로서 용이하게 사용될 수 있다는 점이 당업자에 의해 이해되어야 한다. 또한, 이러한 등가적 구성들이 첨부된 청구항들에서 설명된 바와 같은 본 개시내용의 교시들로부터 벗어나지 않는다는 점이 당업자에 의해 인지되어야 한다. 본 발명의 구성 및 동작 방법 모두에 대해, 본 개시내용의 특성인 것으로 간주되는 신규한 특징들은, 추가적인 목적들 및 장점들과 함께, 첨부 도면들과 관련하여 간주될 때 후속하는 설명으로부터 더 양호하게 이해될 것이다. 그러나, 도면들 각각이 오직 예시 및 설명의 목적으로 제공되며, 본 개시내용의 제한들의 한정으로서 의도되지 않는다는 점이 명시적으로 이해될 것이다.
본 교시들의 더욱 완전한 이해를 위해, 첨부 도면들과 함께 취해지는 후속하는 설명에 대한 참조가 이제 이루어진다.
도 1은 종래 기술에 따른 유니버셜 직렬 버스(USB) 디스크립터 계층을 개념적으로 예시하는 블록도이다.
도 2는 종래 기술에 따른 유니버셜 직렬 버스(USB) 복합 디바이스 구성을 개념적으로 예시하는 블록도이다.
도 3은 종래 기술에 따른 유니버셜 직렬 버스(USB) 복합 디바이스의 예시이다.
도 4는 본 개시내용의 양상에 따른 가상 유니버셜 직렬 버스(USB) 허브를 개념적으로 예시하는 블록도이다.
도 5는 본 개시내용의 양상에 따른 가상 유니버셜 직렬 버스(USB) 허브 프로세스를 예시하는 블록도이다.
도 6은 본 개시내용의 양상에 따라 가상 유니버셜 직렬 버스(USB) 허브를 사용하여 USB 주변 디바이스의 방전된 배터리를 충전하기 위한 프로세스를 예시하는 블록도이다.
도 2는 종래 기술에 따른 유니버셜 직렬 버스(USB) 복합 디바이스 구성을 개념적으로 예시하는 블록도이다.
도 3은 종래 기술에 따른 유니버셜 직렬 버스(USB) 복합 디바이스의 예시이다.
도 4는 본 개시내용의 양상에 따른 가상 유니버셜 직렬 버스(USB) 허브를 개념적으로 예시하는 블록도이다.
도 5는 본 개시내용의 양상에 따른 가상 유니버셜 직렬 버스(USB) 허브 프로세스를 예시하는 블록도이다.
도 6은 본 개시내용의 양상에 따라 가상 유니버셜 직렬 버스(USB) 허브를 사용하여 USB 주변 디바이스의 방전된 배터리를 충전하기 위한 프로세스를 예시하는 블록도이다.
본 개시내용의 양상들은 단일 디바이스 내의 다수의 논리 유니버셜 직렬 버스(USB) 기능 엔티티들을 결합시키는 시스템 및 방법을 제공한다. 본 개시내용의 양상들에 따라, 예를 들어, 스마트폰과 같은 USB 주변 디바이스는 호스트의 다양한 시스템들에 액세스하기 위해 USB 호스트에 대한 다수의 USB 기능들을 나타낼 수 있다. 이러한 시스템들의 예들은 다음을 포함한다:
● 임베디드 저장 디바이스들에 대한 직접 액세스를 제공하는 대용량 저장 시스템들
● USB 호스트로부터 주변 장치로, 그리고 그 역으로, 디지털 권한 관리(DRM)에 의해 보호되는 미디어를 포함하는, 미디어 파일들의 전송을 가능하게 하는 멀티미디어 전송 프로토콜(MTP) 시스템들
● 랩톱 호스트에 셀룰러 네트워크 접속성을 제공하는 테더링된 네트워킹 시스템들
● 폰 진단 커맨드들, 로깅, 콘솔 등을 인에이블시키는 디버그 시스템들, 및
● 임베디드 브로드캐스트 TV 수신기로부터 비디오를 스트리밍하는 비디오 시스템들.
본 개시내용의 양상들은 시뮬레이팅된(simulated) 허브를 가지는 가상 복합 디바이스를 구현하기 위한 시스템을 제공한다. 시스템은, 예를 들어, USB 버스 상에 다수의 독립 기능들을 나타내기 위해, USB 주변 디바이스와 같은 단일 물리적 USB 디바이스를 인에이블시킨다. 본 개시내용의 양상들에 따라, 단일 물리적 USB 디바이스 상의 논리 기능들은 전체 디바이스를 재-열거해야 할 필요 없이, 그리고 다른 기능들의 상태에 영향을 주지 않고, 동적으로 추가 및 제거될 수 있다. 논리 기능들은 또한 USB 하드웨어에 대한 액세스를 가지는 시스템 내의 다수의 프로세서들 중 임의의 프로세서 상에서 독립적으로 구현될 수 있다. 각각의 프로세서는 가상 허브를 통해 하나 이상의 USB 디바이스들로서 열거할 수 있다. 논리 기능들의 초기화는 프로세서 및 그 운영 체제가 초기화될 때까지, 또는 논리 기능 자체가 초기화될 때까지 지연될 수 있다.
본 개시내용의 양상들에 따라, 가상 허브를 사용함으로써, 시스템은 파워 업 시간, 리셋 시간 또는 부트 시간에 USB 허브로서 열거하고, 즉시 충전을 시작할 수 있다. 제2 디바이스 기능 열거는 추후 시스템의 동작시까지 지연될 수 있다.
재-열거 동안 충전 전류의 감소는 USB 표준들에 의해 특정된다. 본 개시내용의 양상들에 따라, 가상 USB 허브 기능성은 제2 디바이스 기능성 열거가 디바이스의 초기 열거의 일부분으로서 요청되는 충전 전류 레벨의 감소 없이 발생하는 것을 허용하도록 작동된다. 제2 디바이스 기능 열거는 디바이스가 낮은 배터리 전력을 가지는 경우 호스트로부터의 감소된 전류 레벨을 가지고는 가능하지 않을 수도 있다. 본 개시내용의 양상들에 따라 가상 USB 허브 기능성을 작동시키는 것은 높은 전류 레벨을 인출할 수 있는 디바이스 기능성을 동시에 열거하는 동안 신속한 충전을 위해 호스트로부터 높은 레벨 전류를 인출하기 위해 높은 배터리 전력을 가지고 디바이스들에 의해 수행될 수 있다. 디바이스는 가상 허브로서 낮은 전류 레벨에서 초기 열거를 수행하고, 충전을 위해 더 높은 전류 레벨을 요청하고, 이후 가상 허브를 통해 제2 기능성을 열거하는 동안 높은 전류 레벨을 유지할 수 있다.
본 개시내용의 양상에 따라, 가상 USB 기능성은 디바이스가 미리 결정된 임계 미만의 배터리 충전 레벨 또는 방전된 배터리를 가진다는 결정에 응답하여 디바이스에 의해 선택적으로 작동될 수 있다. 배터리가 미리 결정된 레벨 미만으로 방전되지 않은 경우, 디바이스는 전체 열거 시간을 감소시키기 위해 가상 허브 기능성을 작동시키지 않고 직접 자신의 초기 열거를 수행할 수 있다.
본 개시내용의 예시적인 실시예에 따른 가상 허브 아키텍쳐가 도 4를 참조하여 설명된다. 아키텍쳐의 블록들을 구축하는 것은 다음을 포함한다:
● USB 기능 "A"(1) 및 USB 기능 "B"(7)는 예를 들어, "USB 대용량 저장 드라이버" 또는 "다이얼-업 네트워킹 드라이버"와 같은 논리 USB 기능 소프트웨어 엔티티들이다.
● USB 프로토콜(2), (5) 및 (8)은 디바이스 열거, 다양한 USB 디스크립터들의 준비, 및 제어/벌크/인터럽트/등시성(isochronous) 엔드포인트들을 통한 USB 전송들의 핸들링을 위한 프로시져를 포함하는 범용 USB 프로토콜의 소프트웨어 구현예의 예시들이다.
● USB 디바이스 제어기 드라이버(3) 및 (9)는 엔드포인트 하드웨어 자원들의 할당, USB 인터럽트들의 핸들링, 데이터 수신/전송 프로시져들의 개시 등과 같은 낮은 레벨 프로시져들의 관리를 위한 USB 디바이스 제어기 하드웨어에 대한 액세스를 제공하는 디바이스 드라이버의 예시들이다.
● USB 가상 허브 제어기 드라이버(6)는 USB 디바이스 제어기 드라이버(3) 및 (9)를 확장한다; USB 디바이스 제어기(12) 하드웨어의 초기 초기화의 추가 및 허브-특정 기능성의 관리, 예를 들어, USB 자원 매니저(10)로부터의 접속/접속해제 요청들의 핸들링.
● USB 자원 매니저(10)는 모든 가상 디바이스에 대한 하드웨어 엔드포인트 자원들의 할당을 관리하는 하드웨어 블록이다. 이는 또한, 가상 디바이스들이 인에이블 또는 디스에이블되는 경우, USB 가상 허브 제어기 드라이버(6)에 통지하는 역할을 하며, 이것은 USB 호스트에 대한 포트 접속/접속해제 이벤트들을 시뮬레이팅하도록 가상 허브를 인에이블한다.
● 프로토콜 엔진(11)은, 엔드포인트 관리, 패킷 전송들, 및 인터럽트들 및 레지스터들을 통한 소프트웨어 드라이버들과의 인터페이싱을 포함하여, USB 하드웨어 논리를 핸들링한다.
● USB 디바이스 제어기(12)는 USB 물리층 하드웨어를 제외하고, USB 디지털 하드웨어 블록들을 캡슐화한다.
● USB PHY(13)는 모든 USB 물리층 하드웨어 블록들을 캡슐화한다.
본 개시내용의 양상들에 따른 가상 허브 디바이스는 USB 포트들을 향하는(facing) 외부 다운스트림을 나타내지 않고 단일 시스템 패키지 내의 디바이스 기능들에 대해 다운스트림 포트들 및 그 접속들을 논리적으로 결합시킨다.
본 개시내용의 양상들에 따른 USB 하드웨어 제어기는 설계에서 실제 허브 하드웨어를 포함하는 것보다는 허브 동작을 시뮬레이팅한다. 논리 기능들 각각, 예를 들어, 프라이머리 프로세서(402) 또는 세컨더리 프로세서(404) 중 어느 하나 상의 USB 기능 "A" 또는 USB 기능 "B"는 USB 하드웨어(406)에 직접 접속하고, 마치 그것이 독립 디바이스인 것처럼 자원들을 요청할 수 있다. 예를 들어, USB 기능 "A"는 대용량 저장 기능일 수 있고, USB 기능 "B"는 어떤 진단 능력일 수 있다. USB 기능들 각각은 마치 그것이 USB 허브를 통해 USB 호스트에 접속된 독립 디바이스인 것처럼 USB 호스트에 나타난다.
본 개시내용의 양상들에 따라, 세컨더리 프로세서(404)는 예를 들어 모뎀 프로세서일 수 있고, 프라이머리 프로세서(402)는 예를 들어, 애플리케이션 프로세서일 수 있다. 블록들(4, 5 및 6)은 가상 허브 드라이버에 관련된 컴포넌트들이다. 가상 허브 드라이버(4)는 USB 호스트로부터 온 허브 특정 요청들 모두를 핸들링하는 소프트웨어 컴포넌트일 수 있다.
전술된 방전된 배터리 경우에서, 본 개시내용의 양상들은 허브 기능성을 인에이블시킬 수 있고, 따라서, 이는 허브가 인에이블된 USB 호스트처럼 보일 것이다. 추후에, 가상 USB 디바이스는 운영 체제를 인에이블시킬 수 있고, 예를 들어, 저장 기능성과 같은 실제 기능성들을 열거할 수 있다. 이 예에 따라, 저장 기능성의 열거는, 누군가 허브 포트들 중 하나 상에서 허브 뒤의 저장 디바이스에 금방 플러그인한 것처럼 USB 호스트로 보일 것이다.
본 개시내용의 양상들에 따라, USB 기능 "A"와 같은 특정 논리 엔티티가 열거할 준비가 된 경우, 커맨드들은 엔드포인트 자원들을 할당하고, 접속을 요청하기 위해 USB 디바이스 제어기(12)에 송신된다. 그것이 접속하기를 요청하는 경우, 하드웨어(406)는 가상 허브 드라이버(4)에 대한 인터럽트를 발생시킨다. 인터럽트에 응답하여, 가상 허브 드라이버(4)는 그것이 자신의 포트들 중 하나 상에 새로 접속된 무언가를 가짐을 USB 호스트에 시그널링한다. 이는 USB 하드웨어의 개선된 버전을 사용하여 접속 이벤트들의 논리적 핸들링으로 접속 이벤트들의 물리적 핸들링을 대체한다.
본 개시내용의 양상들에 따라, 다수의 CPU들은 이들이 USB 제어기와 상호작용하는 것처럼 동작할 수 있다. 예를 들어, 다수의 CPU들이 자원들을 할당하기를 원하는 경우, 이들은 이전 설계들과 동일한 방식으로 그렇게 할 수 있다. 다수의 CPU들이 접속하기를 원하는 경우, 이들은 이들이 일반적으로 수행하는 것과 같이 접속을 요청하는 특정 레지스터들을 기록할 수 있다. 가상 허브의 로직은 프로토콜 엔진(11) 내의 다수의 CPU들로부터 은닉된다. USB 자원 매니저(10)는 엔드포인트의 자원들의 할당을 핸들링한다. 허브 로직의 일부는 가상 허브 드라이버(4)에서 구현될 수 있다.
본 개시내용의 양상에 따른 가상 허브 기능성을 제공하기 위한 프로세스가 도 5를 참조하여 설명된다. 프로세스는 블록(502)에서 USB 제어기를 초기화하는 것 및 블록(504)에서 허브 자체에 대한 엔드포인트들을 할당하는 것으로 시작한다. 이후, 블록(506)에서, 가상 허브는 예를 들어, USB 케이블이 디바이스에 접속될 때까지 접속해제 상태가 될 수 있다. USB 케이블이 접속된 이후, 허브 디바이스들은 블록(508)에서 적절한 허브 디스크립터들을 사용하여 열거된다. 디바이스는 이후 블록(510)에서 접속 상태로 트랜지션한다. USB 접속해제에 응답하여, 디바이스들은 접속해제 상태로 리턴한다(블록 506).
접속 상태에서, 특정 동작들이 대응하는 이벤트들에 응답하여 취해진다. 가상 허브는, 예를 들어, USB 호스트로부터 포트-관련 상태 요청을 수신할 수 있다. 블록 512에서, 가상 허브는 다양한 포트들의 상태를 보고함으로써 호스트에 응답할 수 있다. 이 응답은 예를 들어, 포트가 접속되고, 접속해제되거나, 또는 중지되는지의 여부를 호스트에 통지할 수 있다. 가상 허브는 예를 들어, 포트 특징들을 세팅하거나 포트 특징들을 제거(clear)하기 위해, 호스트로부터 포트-관련 커맨드를 수신할 수 있다. 블록(514)에서, 가상 허브는 대응하는 가상 포트 상에 대응하는 동작을 열거하도록 USB 제어기에 요청함으로써 요청에 응답할 수 있다. 가상 허브는 예를 들어, 접속/접속해제 이벤트 또는 원격 웨이크업 이벤트와 같은 가상 포트 이벤트들과 관련된 통지를 USB 제어기로부터 수신할 수 있다. 블록(516)에서, 가상 허브는 인터럽트 엔트포인트를 통해 USB 호스트에 상태 변경 통지를 송신함으로써 통지에 응답할 수 있다. 가상 허브는, 예를 들어, 접속/접속해제 이벤트 또는 중지/재개 이벤트와 같은, 물리적 USB 포트 상의 특정 전기 이벤트들을 인지할 수 있다. 블록(518)에서, 가상 허브는 모든 가상 포트들 상에서의 대응하는 동작들을 열거하도록 USB 제어기에 요청함으로써 전기 이벤트들에 응답할 수 있다. 이들 동작들 중 임의의 동작 이후에, 디바이스는 접속 상태로 리턴한다(블록 510).
본 개시내용의 양상에 따라 가상 허브 기능성을 사용하여 USB 주변 디바이스의 방전된 배터리를 충전하기 위한 프로세스는 도 6을 참조하여 설명된다. 프로세스는 표준 프로토콜 커맨드들에 응답하여 실행된다. 블록(602)에서, USB 호스트는, USB 호스트로부터 낮은 전력 흐름을 사용하여, USB 주변 디바이스를 가상 허브로서 열거한다. 가상 USB 허브는 낮은 전류(<100 mA)를 이용하여 열거하지만, 블록(604)에서, 열거 프로세스 동안, 가상 USB 허브는 열거에 후속하여 승인되는 높은 전류(500 mA)를 요청한다. 이는 세컨더리 USB 기능을 로딩하고 USB 버스 뒤에 열거하기에 충분한 전력을 제공한다. 블록(606)에서, 프로세스는 높은 전류 인출의 적어도 일부분을 이용하여 USB 주변 디바이스의 방전된 배터리를 충전하는 것을 포함한다. 블록(608)에서, 주변 디바이스는 USB 호스트에 포트 상태 변경을 송신한다. 블록(610)에서, 프로세스는 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하는 것을 포함한다. 블록(606)에서 배터리 충전은 가상 USB 허브가 열거된 직후, 그리고 블록(608)에서 제2 USB 기능을 로딩하기 전에 시작할 수 있다.
본 개시내용의 양상들은 USB 기능들의 분산된 관리를 허용하고, USB 호스트로 하여금 단순한 USB 드라이버들을 사용하여 동작하도록 허용한다. USB 주변 디바이스 상에서의 새로운 논리 엔티티들은 이전 구성들과 용이하게 결합될 수 있다.
표준 USB 아키텍쳐들에 따라, 각각의 USB 주변 디바이스에 특정 어드레스가 할당될 수 있다. 디바이스가 먼저 USB 호스트의 USB 포트에 물리적으로 접속되는 경우, USB 호스트 소프트웨어는 그 디바이스에 포트 어드레스를 할당하기 위한 커맨드를 송신한다. 각각의 USB 주변 디바이스는 일반적으로 단일 디바이스 어드레스와 연관되었다. 본 개시내용의 양상들은 다수의 USB 디바이스들이 부착되어 질 수 있는 허브를 시뮬레이팅한다. USB 제어기는, 예를 들어, 트랜잭션 라우팅에 "디바이스 어드레스"의 추가 레벨을 추가함으로써 다수의 USB 디바이스 어드레스들을 핸들링하도록 재설계된다.
USB 2.0 버스는 USB 호스트가 USB 버스 상에서 송신하는 각각의 메시지가 디바이스 어드레스를 포함하는 브로드캐스트 버스이다. 메시지들은 일반적으로 USB 버스에 접속되는 모든 USB 주변 디바이스들에 전달된다. 접속된 USB 주변 디바이스의 USB 하드웨어는 커맨드가 자신만의 디바이스 어드레스와 연관되는지의 여부를 결정하기 위해 각각의 브로드캐스트 커맨드에 포함된 디바이스 어드레스를 검토한다. USB 디바이스는 이후 그 자체에 어드레스지정되는 커맨드들을 프로세싱하고, 다른 것들을 무시할 수 있다. 본 개시내용에 따라, USB 디바이스 하드웨어 제어기는 상이한 논리 엔티티들과 연관된 다수의 상이한 어드레스들과 메시지의 디바이스 어드레스를 비교할 수 있다. USB 자원 매니저는 다수의 논리 엔티티들과 연관된 다수의 논리 드라이버들로부터의 선입선출(FIFO) 할당 요청들을 조정한다. USB 허브 드라이버는 논리 기능들로부터의 요청들에 기초하여 호스트에 대한 접속/접속해제/원격-웨이크업 통지들을 생성한다.
본 개시내용의 양상들은 논리 기능들을 디커플링하며, 따라서, USB 디바이스들은 기능성 구성들의 모든 가능한 치환을 수용해야 하는 것은 아니다. 논리 기능들은 다른 논리 기능들에 영향을 주지 않고 실시간으로 독립적으로 로딩 및 언로딩될 수 있다. 이는 예를 들어, 스마트폰들과 같은 USB 디바이스들에 다수의 애플리케이션들의 간략화된 배치를 가능하게 한다. 따라서, 소프트웨어 애플리케이션들 및 기능성은 오직 USB 호스트 상에서 이전에 사용가능했던 USB 디바이스에 대한 확장가능성의 레벨을 이용할 수 있다.
본 개시내용의 양상들에 따라, 다수의 논리 기능들은 프로세스-간 통신(IPC)을 사용하지 않고 상이한 CPU들 상에서 호스팅될 수 있다. 이는 예를 들어, USB 모뎀과 같은 USB 주변 디바이스에 대한 높은 데이터 레이트를 가능하게 한다. 이러한 높은 데이터 레이트는, 예를 들어, LTE 디바이스들에서 사용될 수 있다.
특정 디바이스 설계는 USB 호스트와 동시에 통신하기 위해 모뎀 및 애플리케이션 프로세서 모두를 인에이블하기 위해 디바이스 내의 물리적 USB 허브를 포함한다. 이는 애플리케이션 프로세서를 통해 먼저 전달하지 않고 USB 하드웨어에 직접 가기 위해 모뎀 프로세서에 의해 높은 데이터 레이트에서 송신되는 데이터를 허용한다. 본 개시내용의 양상들에 따른 가상 USB 허브는 하드웨어 및 소프트웨어의 결합을 이용하여 USB 허브를 시뮬레이팅함으로써, LTE 모뎀과 같은 디바이스의 비용 규모 및 전력 소모를 감소시킬 수 있다.
도 7은 본 개시내용의 양상이 유리하게 사용될 수 있는 예시적인 무선 통신 시스템(700)을 도시하는 블록도이다. 예시의 목적으로, 도 7은 3개의 원격 유닛들(720, 730, 및 750) 및 2개의 기지국들(740)을 도시한다. 무선 통신 시스템들이 더 많은 원격 유닛들 및 기지국들을 가질 수 있다는 점이 인지될 것이다. 원격 유닛들(720, 730, 및 750)은 개시된 가상 USB 복합 디바이스를 포함하는 IC 디바이스들(725A, 725C 및 725B)을 포함한다. 다른 디바이스들이 또한, 기지국들, 스위칭 디바이스들 및 네트워크 장비와 같은 개시된 가상 USB 복합 디바이스를 포함할 수 있다는 점이 인지될 것이다. 도 7은 기지국(740)으로부터 원격 유닛들(720, 730, 및 750)로의 순방향 링크 신호들(780) 및 원격 유닛들(720, 730, 및 750)로부터 기지국(740)으로의 역방향 링크 신호들(790)을 도시한다.
도 7에서, 원격 유닛(720)은 모바일 폰으로서 도시되고, 원격 유닛(730)은 휴대용 컴퓨터로서 도시되고, 원격 유닛(750)은 무선 로컬 루프 시스템 내의 고정 위치 원격 유닛으로서 도시된다. 예를 들어, 원격 유닛들은 모바일 폰들, 태블릿들, 핸드헬드 개인 통신 시스템(PCS) 유닛들, 휴대용 데이터 유닛들, 예를 들어, 개인 데이터 정보 단말(PDA)들, GPS 인에이블 디바이스들, 내비게이션 디바이스들, 셋톱 박스들, 음악 플레이어들, 비디오 플레이어들, 엔터테인먼트 유닛들, 고정 위치 데이터 유닛들, 예를 들어, 미터 판독 장비, 또는 데이터 또는 컴퓨터 명령들을 저장하거나 검색하는 임의의 다른 디바이스, 또는 이들의 임의의 조합일 수 있다. 도 7이 개시내용의 교시들에 따른 원격 유닛들을 예시하지만, 본 개시내용은 이들 예시적인 예시된 유닛들에 제한되지 않는다. 본 개시내용의 양상들이 가상 USB 복합 디바이스를 포함하는 임의의 디바이스에서 적절하게 사용될 수 있다.
펌웨어 및/또는 소프트웨어 구현을 위해, 방법들은 여기서 설명되는 기능들을 수행하는 모듈들(예를 들어, 프로시져들, 함수들 등)을 이용하여 구현될 수 있다. 명령들을 유형적으로 포함하는 임의의 기계-판독가능한 매체는 여기서 설명되는 방법들을 구현할 시에 사용될 수 있다. 예를 들어, 소프트웨어 코드들은 메모리에 저장되고, 프로세서 유닛에 의해 실행될 수 있다. 메모리는 프로세서 유닛 내에서 또는 프로세서 유닛의 외부에서 구현될 수 있다. 여기서 사용되는 바와 같이, 용어 "메모리"는 장기, 단기, 휘발성, 비휘발성 중 임의의 타입 또는 다른 메모리를 참조하며, 메모리의 임의의 특정 타입 또는 메모리들의 개수, 또는 메모리가 저장되는 매체의 타입에 제한되지 않는다.
펌웨어 및/또는 소프트웨어로 구현되는 경우, 기능들은 컴퓨터-판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수 있다. 예들은 컴퓨터 프로그램을 이용하여 인코딩된 컴퓨터-판독가능한 매체 및 데이터 구조를 이용하여 인코딩된 컴퓨터-판독가능한 매체를 포함한다. 컴퓨터-판독가능한 매체는 물리적 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있고; disk 및 disc는, 여기서 사용되는 바와 같이, 컴팩트 disc(CD), 레이저 disc, 광학 disc, 디지털 다목적 disc(DVD), 플로피 disk 및 블루레이 disc를 포함하며, 여기서 disk들은 일반적으로 자기적으로 데이터를 재생하는 반면, disc들은 레이저를 이용하여 광학적으로 데이터를 재생한다. 상기 항목들의 조합들이 또한 컴퓨터-판독가능한 매체 내에 포함되어야 한다.
컴퓨터 판독가능한 매체 상의 저장에 추가하여, 명령들 및/또는 데이터는 통신 장치에 포함되는 전송 매체 상에서 신호들로서 제공될 수 있다. 예를 들어, 통신 장치는 명령들 및 데이터를 표시하는 신호들을 가지는 트랜시버를 포함할 수 있다. 명령들 및 데이터는 하나 이상의 프로세서들로 하여금 청구항들에서 기술된 기능들을 구현하게 하도록 구성된다.
본 개시내용의 양상들에 따라, 장치는 USB 호스트로부터의 낮은 전류 인출을 사용하여 USB 주변 디바이스를 가상 허브로서 열거하기 위한 수단, USB 호스트로부터 높은 전류 인출을 요청하기 위한 수단, 및 높은 전류 인출을 사용하여 가상 허브를 통해 USB 주변 디바이스의 제2 USB 기능성을 열거하기 위한 수단을 가질 수 있다. 일 양상에서, 전술된 수단은 예를 들어, 도 4에 도시된 프라이머리 프로세서(402), 세컨더리 프로세서(404) 및 USB 하드웨어(406)일 수 있다. 또 다른 양상에서, 전술된 수단은 전술된 수단에 의해 인용된 기능들을 수행하도록 구성된 모듈 또는 임의의 장치일 수 있다.
당업자는 여기서의 개시내용과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 모두의 조합들로서 구현될 수 있다는 점을 추가로 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환가능성을 명백하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 이들의 기능성의 견지에서 일반적으로 전술되었다. 이러한 기능성이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지의 여부는 전체 시스템에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자는 각각의 특정 애플리케이션에 대해 가변적인 방식으로 설명된 기능성을 구현할 수 있지만, 이러한 구현 결정들은 본 개시내용의 범위로부터의 이탈로서 해석되지 않아야 한다.
여기서의 개시내용과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 논리, 이산 하드웨어 컴포넌트들, 또는 여기서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합을 이용하여 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
여기서의 개시내용과 관련하여 설명된 방법 또는 알고리즘의 단계들은 직접 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 둘의 조합에서 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, CD-ROM, 또는 당해 기술분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 일체화될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC은 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 사용자 단말 내에 이산 컴포넌트들로서 상주할 수 있다.
하나 이상의 예시적인 설계들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어에서 구현되는 경우, 기능들은 컴퓨터-판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 이를 통해 전송될 수 있다. 컴퓨터-판독가능한 매체는 한 장소에서 또 다른 장소로의 컴퓨터 프로그램의 이전을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 모두를 포함한다. 저장 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 제한이 아닌 예로서, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 또는 명령들 또는 데이터 구조들의 형태인 원하는 프로그램 코드 수단을 전달 또는 저장하기 위해 사용될 수 있고, 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 적절하게 컴퓨터-판독가능한 매체로서 명명된다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선(DSL), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 사용하여 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. disk 및 disc는, 여기서 사용되는 바와 같이, 컴팩트 disc(CD), 레이저 disc, 광학 disc, 디지털 다목적 disc(DVD), 플로피 disk 및 블루레이 disc를 포함하며, disk들은 일반적으로 자기적으로 데이터를 재생하는 반면, disc들은 레이저를 이용하여 광학적으로 데이터를 재생한다. 상기 항목의 조합들은 또한 컴퓨터-판독가능한 매체의 범위 내에 포함되어야 한다.
특정 회로가 설명되었지만, 개시된 회로 모두가 개시내용을 구현하기 위해 요구되는 것은 아니라는 점이 당업자에 의해 이해될 것이다. 또한, 특정 공지된 회로들이 본 개시내용에 대한 초점을 유지하기 위해 설명되지 않았다.
본 개시내용 및 그 장점들이 상세히 설명되었지만, 다양한 변경들, 대안들 및 변형들이 첨부된 청구항들에 의해 정의된 바와 같이 본 개시내용의 기술로부터의 이탈 없이 여기서 이루어질 수 있다는 점이 이해되어야 한다. 예를 들어, 상관적 용어들, 예를 들어, "위" 및 "아래"는 기판 및 전자 디바이스에 대해 사용된다. 물론, 기판 또는 전자 디바이스가 반전된 경우, 위는 아래가 되고, 그 역도 성립한다. 추가로, 측면으로 배향된 경우, 위 및 아래는 기판 또는 전자 디바이스의 측면들을 참조할 수 있다. 또한, 본 출원의 범위는 명세서에 설명된 프로세스, 기계, 제조, 물질의 구성, 수단, 방법들 및 단계들의 특정 실시예들에 제한되도록 의도되지 않는다. 당업자가 본 개시내용으로부터 용이하게 이해할 바와 같이, 여기서 설명된 대응하는 실시예들과 실질적으로 동일한 결과를 달성하거나 또는 실질적으로 동일한 기능을 수행하는, 현재 존재하거나 추후 개발될 프로세스들, 기계들, 제조, 물질의 구성들, 수단, 방법들, 또는 단계들이 본 개시내용에 따라 이용될 수 있다.
본 개시내용의 이전 설명은 당업자로 하여금 본 개시내용을 실시 또는 이용할 수 있도록 제공된다. 본 개시내용에 대한 다양한 수정들은 당업자에게 자명할 것이며, 여기서 정의된 포괄적 원리들은 본 개시내용의 사상 또는 범위로부터 이탈하지 않고 다른 변형들에 대해 적용될 수 있다. 따라서, 본 개시내용은 여기서 설명된 예들 및 설계들에 제한되도록 의도되는 것이 아니라, 여기서 개시된 원리들 및 신규한 특징들과 부합하는 가장 넓은 범위에 따라야 한다. 따라서, 첨부된 청구항들은 이러한 프로세스들, 기계들, 제조, 물질의 구성들, 수단, 방법들 또는 단계들을 그 범위 내에 포함하도록 의도된다.
Claims (23)
- 방법으로서,
유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출(draw)을 사용하여 물리 USB 주변 디바이스를 가상 허브로서 열거(enumerating)하는 단계;
상기 USB 주변 디바이스가 가상 허브로서 열거되는 동안, 상기 USB 호스트로부터의 높은 전류 인출을 요청하는 단계;
상기 USB 호스트에 포트 상태 변경 통지를 송신하는 단계;
상기 높은 전류 인출을 사용하여 상기 가상 허브를 통해 상기 USB 주변 디바이스의 제2 USB 기능성(functionality)을 열거하는 단계; 및
미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리 상태를 식별하는 단계를 포함하는, 방법. - 제1항에 있어서,
상기 높은 전류 인출을 이용하여 상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리를 충전하는 단계를 더 포함하는, 방법. - 제2항에 있어서,
상기 미리 결정된 임계치 이하로 충전된 배터리 상태를 검출하는 것에 응답하여 상기 열거를 상기 가상 허브로서 수행하는 단계를 더 포함하는, 방법. - 제2항에 있어서,
상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리가 상기 USB 호스트로부터의 낮은 전류 인출을 이용하여 상기 제2 USB 기능성의 부트 루틴을 수행할 정도로 충분히 충전되었는지의 여부를 결정하는 단계; 및
상기 미리 결정된 임계치 이하로 충전된 배터리가 충분히 충전되었다고 결정하는 것에 응답하여 상기 USB 호스트에 직접 상기 제2 USB 기능성의 열거를 수행하는 단계
를 더 포함하는, 방법. - 제1항에 있어서,
상기 높은 전류 인출을 사용하여 상기 제2 USB 기능성의 운영 체제를 로딩하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
상기 제2 USB 기능성으로부터 USB 인터페이스 통신을 수신하는 단계; 및
상기 USB 인터페이스 통신을 수신하는 것에 응답하여, 상기 USB 호스트에 대한 포트 접속 이벤트 및 포트 접속해제 이벤트 중 하나를 시뮬레이팅하는 단계를 더 포함하는, 방법. - 제1항에 있어서,
모바일 전화, 셋톱 박스, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드헬드 개인 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나로 상기 USB 주변 디바이스를 통합하는 단계를 더 포함하는, 방법. - 장치로서,
유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 물리 USB 주변 디바이스를 가상 허브로서 열거하기 위한 수단;
상기 USB 주변 디바이스가 가상 허브로서 열거되는 동안, 상기 USB 호스트로부터의 높은 전류 인출을 요청하기 위한 수단;
상기 USB 호스트에 포트 상태 변경 통지를 송신하기 위한 수단;
상기 높은 전류 인출을 사용하여 상기 가상 허브를 통해 상기 USB 주변 디바이스의 제2 USB 기능성을 열거하기 위한 수단; 및
미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리 상태를 식별하기 위한 수단을 포함하는, 장치. - 제8항에 있어서,
모바일 전화, 셋톱 박스, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드헬드 개인 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나로 통합되는, 장치. - 무선 네트워크에서 무선 통신을 위한 컴퓨터-판독가능 저장 매체로서,
상기 컴퓨터-판독가능 저장 매체는 상기 컴퓨터-판독가능 저장 매체 상에 레코딩된 프로그램 코드를 갖고,
상기 프로그램 코드는:
유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 물리 USB 주변 디바이스를 가상 허브로서 열거하기 위한 프로그램 코드;
상기 USB 주변 디바이스가 가상 허브로서 열거되는 동안, 상기 USB 호스트로부터의 높은 전류 인출을 요청하기 위한 프로그램 코드;
상기 USB 호스트에 포트 상태 변경 통지를 송신하기 위한 프로그램 코드;
상기 높은 전류 인출을 사용하여 상기 가상 허브를 통해 상기 USB 주변 디바이스의 제2 USB 기능성을 열거하기 위한 프로그램 코드; 및
미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리 상태를 식별하기 위한 프로그램 코드를 포함하는, 컴퓨터-판독가능 저장 매체. - 제10항에 있어서,
상기 프로그램 코드는:
상기 높은 전류 인출을 이용하여 상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리를 충전하기 위한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 저장 매체. - 제11항에 있어서,
상기 프로그램 코드는:
상기 미리 결정된 임계치 이하로 충전된 배터리 상태를 검출하는 것에 응답하여 상기 열거를 상기 가상 허브로서 수행하기 위한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 저장 매체. - 제11항에 있어서,
상기 프로그램 코드는:
상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리가 상기 USB 호스트로부터의 낮은 전류 인출을 이용하여 상기 제2 USB 기능성의 부트 루틴을 수행할 정도로 충분히 충전되었는지의 여부를 결정하기 위한 프로그램 코드; 및
상기 미리 결정된 임계치 이하로 충전된 배터리가 충분히 충전되었다고 결정하는 것에 응답하여 상기 USB 호스트에 직접 상기 제2 USB 기능성의 열거를 수행하기 위한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 저장 매체. - 제10항에 있어서,
상기 프로그램 코드는:
상기 높은 전류 인출을 사용하여 상기 제2 USB 기능성의 운영 체제를 로딩하기 위한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 저장 매체. - 제10항에 있어서,
상기 프로그램 코드는:
상기 제2 USB 기능성으로부터 USB 인터페이스 통신을 수신하기 위한 프로그램 코드; 및
상기 USB 인터페이스 통신을 수신하는 것에 응답하여, 상기 USB 호스트에 대한 포트 접속 이벤트 및 포트 접속해제 이벤트 중 하나를 시뮬레이팅하기 위한 프로그램 코드를 더 포함하는, 컴퓨터-판독가능 저장 매체. - 제10항에 있어서,
모바일 전화, 셋톱 박스, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드헬드 개인 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나로 통합되는, 컴퓨터-판독가능 저장 매체. - 무선 통신을 위한 장치로서,
메모리; 및
상기 메모리에 커플링된 적어도 하나의 프로세서
를 포함하고, 상기 적어도 하나의 프로세서는:
유니버셜 직렬 버스(USB) 호스트로부터의 낮은 전류 인출을 사용하여 물리 USB 주변 디바이스를 가상 허브로서 열거하고;
상기 USB 주변 디바이스가 가상 허브로서 열거되는 동안, 상기 USB 호스트로부터의 높은 전류 인출을 요청하고;
상기 USB 호스트에 포트 상태 변경 통지를 송신하고;
상기 높은 전류 인출을 사용하여 상기 가상 허브를 통해 상기 USB 주변 디바이스의 제2 USB 기능성을 열거하고; 그리고
미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리 상태를 식별하도록 구성되는, 무선 통신을 위한 장치. - 제17항에 있어서,
상기 적어도 하나의 프로세서는 상기 높은 전류 인출을 이용하여 상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리를 충전하도록 추가로 구성되는, 무선 통신을 위한 장치. - 제18항에 있어서,
상기 적어도 하나의 프로세서는:
상기 미리 결정된 임계치 이하로 충전된 배터리 상태를 검출하는 것에 응답하여 상기 열거를 상기 가상 허브로서 수행하도록 추가로 구성되는, 무선 통신을 위한 장치. - 제18항에 있어서,
상기 적어도 하나의 프로세서는:
상기 미리 결정된 임계치 이하로 충전된 상기 USB 주변 디바이스의 배터리가 상기 USB 호스트로부터의 낮은 전류 인출을 이용하여 상기 제2 USB 기능성의 부트 루틴을 수행할 정도로 충분히 충전되었는지의 여부를 결정하고; 그리고
상기 미리 결정된 임계치 이하로 충전된 배터리가 충분히 충전되었다고 결정하는 것에 응답하여 상기 USB 호스트에 직접 상기 제2 USB 기능성의 열거를 수행하도록 추가로 구성되는, 무선 통신을 위한 장치. - 제17항에 있어서,
상기 적어도 하나의 프로세서는 상기 높은 전류 인출을 사용하여 상기 제2 USB 기능성의 운영 체제를 로딩하도록 추가로 구성되는, 무선 통신을 위한 장치. - 제17항에 있어서,
상기 적어도 하나의 프로세서는:
상기 제2 USB 기능성으로부터 USB 인터페이스 통신을 수신하고; 그리고
상기 USB 인터페이스 통신을 수신하는 것에 응답하여, 상기 USB 호스트에 대한 포트 접속 이벤트 및 포트 접속해제 이벤트 중 하나를 시뮬레이팅하도록 추가로 구성되는, 무선 통신을 위한 장치. - 제17항에 있어서,
모바일 전화, 셋톱 박스, 음악 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 내비게이션 디바이스, 컴퓨터, 핸드헬드 개인 통신 시스템(PCS) 유닛, 휴대용 데이터 유닛, 및 고정 위치 데이터 유닛 중 적어도 하나로 통합되는, 무선 통신을 위한 장치.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37815910P | 2010-08-30 | 2010-08-30 | |
US61/378,159 | 2010-08-30 | ||
US13/214,305 US8850082B2 (en) | 2010-08-30 | 2011-08-22 | Virtual USB compound device enumeration |
US13/214,305 | 2011-08-22 | ||
PCT/US2011/049750 WO2012030832A1 (en) | 2010-08-30 | 2011-08-30 | Virtual usb compound device enumeration |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130081286A KR20130081286A (ko) | 2013-07-16 |
KR101464571B1 true KR101464571B1 (ko) | 2014-11-24 |
Family
ID=44645222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137008306A KR101464571B1 (ko) | 2010-08-30 | 2011-08-30 | 가상 usb 복합 디바이스 열거 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8850082B2 (ko) |
EP (1) | EP2612252B1 (ko) |
JP (2) | JP5674070B2 (ko) |
KR (1) | KR101464571B1 (ko) |
CN (1) | CN103154922B (ko) |
WO (1) | WO2012030832A1 (ko) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201335762A (zh) * | 2012-02-22 | 2013-09-01 | Wistron Corp | 可自動切換記憶模組之掛載模式的電子裝置及其方法 |
WO2013150323A2 (en) * | 2012-04-04 | 2013-10-10 | Kiss Peter | Connector and display device and a computer program product therefore |
US8601180B1 (en) * | 2012-07-03 | 2013-12-03 | Fluiditech Ip Limited | Composite functional transmission line |
US9542347B2 (en) | 2013-03-16 | 2017-01-10 | Intel Corporation | Host interface crossbar for sensor hub |
US9430414B2 (en) | 2013-03-16 | 2016-08-30 | Intel Corporation | Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports |
CN103491248B (zh) * | 2013-09-16 | 2016-01-20 | 华为技术有限公司 | 一种低电量开机的方法及用户设备 |
CN103885868B (zh) * | 2014-04-16 | 2015-08-26 | 福州瑞芯微电子有限公司 | 模拟usb热插拔过程的测试***及装置 |
CN104216840B (zh) | 2014-09-11 | 2018-03-23 | 青岛海信移动通信技术股份有限公司 | 一种usb设置和对外部设备进行操作的方法及装置 |
TWI541657B (zh) * | 2014-09-12 | 2016-07-11 | 亞信電子股份有限公司 | 提供主機即時切換及分享通用串列匯流排(usb)電子設備之電子裝置 |
US9804977B2 (en) * | 2015-04-28 | 2017-10-31 | Microchip Technology Incorporated | Universal serial bus smart hub |
CN105488000B (zh) * | 2015-12-23 | 2018-09-14 | 数安时代科技股份有限公司 | 实现usb设备快速访问的方法和*** |
KR102429516B1 (ko) * | 2016-01-21 | 2022-08-08 | 엔에이치엔클라우드 주식회사 | 단말을 이용한 셋톱박스 입출력 시스템 및 방법 |
US10515025B2 (en) | 2016-08-08 | 2019-12-24 | Cirrus Logic, Inc. | Communication protocol adapter |
CN107797947A (zh) * | 2016-09-05 | 2018-03-13 | 中兴通讯股份有限公司 | 一种usb设备重定向方法和装置 |
US20180143932A1 (en) * | 2016-11-21 | 2018-05-24 | Intel Corporation | Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub |
CN106897242B (zh) * | 2017-01-17 | 2020-09-29 | 建荣集成电路科技(珠海)有限公司 | 一种usb复合设备及其工作方法 |
EP3367210A1 (en) | 2017-02-24 | 2018-08-29 | Thomson Licensing | Method for operating a device and corresponding device, system, computer readable program product and computer readable storage medium |
CN107643999A (zh) * | 2017-09-14 | 2018-01-30 | 航天信息股份有限公司 | 一种内置读写模块的通讯方法 |
TWI685752B (zh) * | 2017-09-20 | 2020-02-21 | 旺玖科技股份有限公司 | 萬用串列匯流排集線器 |
CN109254937B (zh) * | 2018-07-19 | 2021-08-06 | 芯启源(上海)半导体科技有限公司 | Usb集线器、usb设备枚举异常检测方法及计算机存储介质 |
US11604741B2 (en) * | 2019-02-15 | 2023-03-14 | Intel Corporation | Method for dynamically provisioning virtualized functions in a USB device by means of a virtual USB hub |
US11029965B2 (en) * | 2019-03-15 | 2021-06-08 | Intel Corporation | Booting firmware from expansion block storage devices |
CN118075115B (zh) * | 2024-04-19 | 2024-07-09 | 深圳奇迹智慧网络有限公司 | 物联网设备的挂载方法、物联网设备的挂载装置及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070088967A1 (en) | 2005-10-13 | 2007-04-19 | Runbo Fu | Apparatus and method to support USB enumeration of a bus powered handheld device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002185548A (ja) | 2000-12-13 | 2002-06-28 | Hitachi Ltd | 給電手段によりシリアルバスの出力電流を制御可能な情報処理装置 |
TW518502B (en) * | 2001-07-13 | 2003-01-21 | Prolific Technology Inc | USB compound device and the realization method thereof |
JP4153262B2 (ja) * | 2002-08-21 | 2008-09-24 | 富士通株式会社 | バスパワー装置 |
JP4245374B2 (ja) * | 2002-11-01 | 2009-03-25 | 株式会社サスライト | 着脱式デバイスおよび制御回路 |
US6976105B1 (en) | 2002-12-11 | 2005-12-13 | Cypress Semiconductor Corp. | Apparatus and method for attaching multiple devices to a host |
US20080005415A1 (en) * | 2006-06-06 | 2008-01-03 | Lopez Fernando A | Disabling a Universal Serial Bus Port |
JP2008146419A (ja) | 2006-12-12 | 2008-06-26 | Renesas Technology Corp | Usbデバイスおよびコンピュータの周辺デバイス |
US7577776B2 (en) | 2007-05-14 | 2009-08-18 | Aten International Co., Ltd | Multiple virtual USB devices with virtual HUB implemented using one USB device controller |
CN101515260B (zh) | 2008-02-21 | 2010-12-08 | 扬智科技股份有限公司 | 在不拔插装置的情况下切换装置功能的方法 |
JPWO2009125586A1 (ja) | 2008-04-07 | 2011-07-28 | パナソニック株式会社 | デバイス制御方法、デバイス制御プログラムおよびデバイス選択装置 |
KR101329014B1 (ko) * | 2008-10-30 | 2013-11-12 | 삼성전자주식회사 | 휴대단말에서 스위칭 회로의 모드 제어 방법 및 장치 |
TW201020787A (en) | 2008-11-28 | 2010-06-01 | Azurewave Technologies Inc | Method of assigning virtual port numbers and computer readable medium that stores a virtual port number assigning program |
JP2010140269A (ja) | 2008-12-11 | 2010-06-24 | Sony Corp | 端末装置、端末装置の制御方法及び制御プログラム |
-
2011
- 2011-08-22 US US13/214,305 patent/US8850082B2/en not_active Expired - Fee Related
- 2011-08-30 KR KR1020137008306A patent/KR101464571B1/ko active IP Right Grant
- 2011-08-30 WO PCT/US2011/049750 patent/WO2012030832A1/en active Application Filing
- 2011-08-30 EP EP11755198.6A patent/EP2612252B1/en active Active
- 2011-08-30 CN CN201180046946.6A patent/CN103154922B/zh active Active
- 2011-08-30 JP JP2013527223A patent/JP5674070B2/ja not_active Expired - Fee Related
-
2014
- 2014-10-29 JP JP2014220099A patent/JP5878606B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070088967A1 (en) | 2005-10-13 | 2007-04-19 | Runbo Fu | Apparatus and method to support USB enumeration of a bus powered handheld device |
Also Published As
Publication number | Publication date |
---|---|
JP2013542483A (ja) | 2013-11-21 |
EP2612252A1 (en) | 2013-07-10 |
JP2015018583A (ja) | 2015-01-29 |
CN103154922B (zh) | 2016-08-17 |
US8850082B2 (en) | 2014-09-30 |
EP2612252B1 (en) | 2017-09-20 |
US20120054378A1 (en) | 2012-03-01 |
WO2012030832A1 (en) | 2012-03-08 |
JP5674070B2 (ja) | 2015-02-25 |
CN103154922A (zh) | 2013-06-12 |
JP5878606B2 (ja) | 2016-03-08 |
KR20130081286A (ko) | 2013-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101464571B1 (ko) | 가상 usb 복합 디바이스 열거 | |
US11748278B2 (en) | Multi-protocol support for transactions | |
US10445258B1 (en) | Method for creation of device drivers and device objects for peripheral devices | |
US10585816B1 (en) | System and method for serial communication at a peripheral interface device | |
US7206875B2 (en) | Expander device capable of persistent reservations and persistent affiliations | |
US8190798B1 (en) | Client device configuration based on information stored by host device | |
EP3436947B1 (en) | Secure driver platform | |
CN103843302A (zh) | 有状态环境中的网络适配器硬件状态迁移发现 | |
WO2020259523A1 (zh) | 与fpga通信的主机及方法、fpga接口芯片 | |
JP2012515400A (ja) | Usbデバイスの高速起動のためのシステム、装置および方法 | |
TW201902142A (zh) | 混合vgpio狀態交換中的輸入/輸出方向解碼 | |
JP2008539484A (ja) | ユニバーサル・シリアル・バス機能のデリゲーション | |
US8631185B2 (en) | Method and system for transferring high-speed data within a portable device | |
KR20160073294A (ko) | 터치 센서 정보의 통신을 위한 장치, 시스템 및 방법 | |
TW202232335A (zh) | 電源管理積體電路中的次要通訊通道的周邊存取控制 | |
KR20200001208A (ko) | 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치 | |
US8294821B1 (en) | HDMI consumer electronics control common interface | |
CN109189705A (zh) | 一种usb扩展方法、装置、设备、存储介质及*** | |
KR100705381B1 (ko) | 유에스비 호스트에 보안 콘트롤러를 부가하여 유에스비장치를 통제하는 방법 | |
US10439934B2 (en) | Systems and methods for addressing multiple physical and virtual functions in network controller-sideband interface | |
US11829493B2 (en) | Device access control system | |
Zhou et al. | A research of USB device redirection mechanism over IP network in desktop cloud system | |
CN106201938A (zh) | 一种芯片、集线器、电子设备及中断usb信号的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170929 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190924 Year of fee payment: 6 |