KR20080109043A - 범용직렬버스 연결 - Google Patents

범용직렬버스 연결 Download PDF

Info

Publication number
KR20080109043A
KR20080109043A KR1020087026003A KR20087026003A KR20080109043A KR 20080109043 A KR20080109043 A KR 20080109043A KR 1020087026003 A KR1020087026003 A KR 1020087026003A KR 20087026003 A KR20087026003 A KR 20087026003A KR 20080109043 A KR20080109043 A KR 20080109043A
Authority
KR
South Korea
Prior art keywords
peripheral
host
serial bus
universal serial
command
Prior art date
Application number
KR1020087026003A
Other languages
English (en)
Other versions
KR101003295B1 (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 노키아 코포레이션
Publication of KR20080109043A publication Critical patent/KR20080109043A/ko
Application granted granted Critical
Publication of KR101003295B1 publication Critical patent/KR101003295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)

Abstract

USB 연결의 경우에, 호스트는 그 호스트의 USB 인터페이스를 통한 그 호스트로의 주변기기의 연결을 탐지한다. 그리고 나서 그 호스트는, 그 호스트의 능력에 관한 정보를 포함하는, 정보제공적 명령을 발생시킨다. 이 정보제공적 명령은 그 주변기기로 그 USB 인터페이스를 통하여 전송되도록 제공된다. 그 주변기기는 그 정보제공적 명령을 수신하고, 예컨대 진입될 적합한 USB 모드를 선택하기 위해 또는 호스트 자체가 되는 것에 관해 결정하기 위해 그 포함된 정보를 평가할 수도 있다. 대안적으로 또는 부가적으로, 그 호스트는 주변기기의 모든 USB 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하기 위한 요청 명령을 발생시킬 수도 있다.

Description

범용직렬버스 연결{USB connection}
본 발명은 범용 직렬 버스(universal serial bus; USB) 연결을 지원하는 방법, 프로세싱 설비(arrangement), 기기, 시스템, 소프트웨어 프로그램 코드 및 소프트웨어 프로그램 제품에 관한 것이다.
콤팩(Compaq), 휴렛팩커드(Hewlett-Packard), 인텔(Intel), 루슨트(Lucent), 마이크로소프트(Microsoft), NEC 및 필립스(Philips)의 2000년 4월 27일 자 "Universal Serial Bus Specification"(USB 명세) 개정판 2.0 문서에서는 호스트(host)로서 작동하는 개인용 컴퓨터(PC) 및 PC 주변기기로서 작동하는 또 하나의 기기 간에 사용하기 편리한 연결(connection)을 가능하게 하는 산업표준(industry-standard) USB를 정의한다. 호스트 및 주변기기는 USB 케이블에 의해 상호연결될 수도 있다. 호스트는 호스트 및 주변기기 간의 모든 데이터 트랜잭션(transaction)들을 일으키는 것을 담당하고, 반면 주변기기는 그 호스트로부터의 버스 요청들(bus requests)에 응답한다.
그 USB 명세에 따르면, 호스트는 주변기기에 의해 지원되는 기능들에 관한 정보를 열거 프로세스(enumeration process) 동안 획득한다. 주변기기를 호스트에 연결할 때, 그 주변기기는 자신의 현재 USB 모드에서 자신이 제공하는 모든 USB 클 래스들(classes) 및 인터페이스들(interfaces)을 이 열거 프로세스에서 더욱 구체적으로 공표할(announce) 것이다. USB 모드라는 용어는 본 문서에서 어떤 기기가 기결정된 USB 클래스들 및/또는 인터페이스들의 집합을 지원하는 기기의 상태를 정의하는 것으로 사용된다. 클래스는 주변기기, 예를 들어 키보드 기능, 프린터 기능 또는 대용량 저장 기능(mass storage function) 등에 의해 제공되는 기능을 식별하는 것이다. 복합(composite) 또는 혼합(compound) 주변기기는 복수의 서로 다른 클래스들을 제공할 수도 있다. 따라서, 주변기기의 여러가지 USB 모드들에서, 호스트는 그 주변기기의 여러가지 기능들에 액세스(access)할 수도 있다. 인터페이스는 호스트에 주변기기의 단일 특징(feature) 또는 기능을 나타내는 말단점(end point)들의 관련 집합이다. 이 말단점들의 관련 집합과 통신하는데 사용되는 프로토콜 및 그 인터페이스 내 각 말단점의 용도는 기기 클래스(device class) 또는 판매자-특정적(vendor-specific) 정의의 부분으로서 명세될 수도 있다. 예를 들어, 3개의 서로 다른 USB 모드들을 가진 모바일 전화는 제1 USB 모드인 "모드 1"에서 무선 모바일 통신(Wireless Mobile Communication; WMC) OBject EXchange (OBEX) 인터페이스, MODEM 인터페이스 및 다소의 사립(proprietary) 인터페이스들을 지원할 수도 있다. 또한 그것은 제2 USB 모드인 "모드 2"에서 단지 대용량 저장 클래스(Mass Storage Class;MSC) 인터페이스만을 지원할 수도 있다. 또한 그것은 제3 USB 모드인 "모드 3"에서, 예컨대 PTP(Picture Transfer Protocol) 및 픽트브리지(PictBridge) 또는 MTP(Media Transfer Protocol)를 위한 기반으로서, 단지 스틸 이미지 캡쳐 기기(Still Image Capture Device; SICD) 인터페이스만을 지원할 수도 있다.
주변기기가 단지 그 주변기기의 현재 USB 모드에서 지원되는 클래스들 및 인터페이스들만을 공표한다는 것은 그 USB 표준의 불리한 점이다. 호스트는 단지 연결 셋업(connection setup)을 다시 시작함으로써만 주변기기의 다른 기능들을 탐지할 수도 있다. 이 새로운 셋업의 범위에서, 주변기기는 그때 어쩌면 새로운 열거 프로세스에서 또 다른 클래스들의 집합을 공표할 수도 있다. 주변기기의 부가적인 클래스들을 탐지하기 위한 대안적인 해결방법에서, 사용자 질의(user query)가 사용될 수도 있다. 이러한 사용자 질의에서, 사용자는 주변기기의 어떤 기능이 사용되어야 할지를 질문받을 수도 있고, 그후에 이 기능은 USB 버스 상에서 호스트에게 공표된다.
그 USB 명세에서, 더욱이 기기는 단지 호스트일 수만 있거나 또는 단지 주변기기일 수만 있다. USB 케이블들이 자신들의 두 말단들 상에서 서로 다른 플러그(plug)들을 가지기 때문에, 기기의 그러한 고정 역할도 그 기기의 커넥터(connector)에 의해 식별될 수 있다. 호스트는 더 구체적으로는 표준 A 콘센트(receptacle)를 구비하고 주변기기는 더 구체적으로는 표준 B 콘센트를 구비한다. 이 해결방법은, USB의 원래 설계된 용도인, 컴퓨터 환경에 상당히 적합하다. 여기서, PC는 항상 호스트이고, 그 PC에 연결되는 기기들은 항상 주변기기들이다. 그러나, USB 인터페이스를 갖춘 주변기기들은 또한 서로 간에 상호작용으로 이익을 얻을 수 있다.
USB 연결의 더 융통성있는 사용은 2003년 6월 23일자 "On-The-Go Supplement to the USB 2.0 Specification" 개정판 1.0a를 이용하여 가능해진다. 그 USB 표준에 대한 USB On-The-Go(OTG) 부가부분들은, PC 및 메모리 카드 리더(memory card reader)와 같은 이러한 명확한 호스트 또는 주변기기 역할을 가지지 않은, 기기들에 대해 USB 연결능력(connectivity)을 허용한다. 이중역할(dual-role) 기기들은 전형적으로, 모바일 전화, PDA(personal digital assistant) 또는 디지털 카메라와 같은, 다중의 기능들을 수행한다. 예를 들면, 모바일 전화는 PC에 연결될 때는 "대용량 저장"이라는 클래스를 제공하는 주변기기이어야 할 수도 있고, 반면에 그것이 프린터 또는 외부 키보드 등에 연결될 때에는 그것은 호스트이어야 할 수도 있다.
USB-OTG에 기반하여, 명백한 호스트 기기는 표준-A 콘센트 또는 미니-A(Mini-A) 콘센트를 구비할 수도 있고, 반면에 명백한 주변 기기는 표준-B 콘센트 또는 미니-B 콘센트를 구비할 수도 있다. 게다가 OTG 기기는 미니-AB 콘센트를 구비하는데, 후자는 호스트들을 위한 미니-A 플러그 또는 주변기기들을 위한 미니-B 플러그 중 어느 한 쪽의 연결을 가능하게 한다. OTG 기기는 제한된 호스트 능력(host capability) 및 명세된 호스트 협상 프로토콜(Host Negotiation Protocol; HNP)을 추가적으로 지원하여야 한다. USB-OTG에서, 관련 기기들의 각자 역할은 이렇게 마찬가지로 USB 케이블로써 할당된다. 그러나, 연결된 기기들이 OTG 기기들이라면, HNP에 기반하여 연결이 설립된 후에 역할 스위치가 수행될 수 있다.
또한, 만약 사용자가 두 USB-OTG 기기들을 연결한다면, 수행될 수 있는 유일한 기능 또는 기능들의 집합은, 사용자가 그 USB 케이블을 연결했던 방식으로써 주변기기 역할이 할당되었던 기기에 의해 공표된 클래스 또는 클래스들의 집합에 연 관되는 것이다. 만약 사용자가 다른 기능 또는 기능들의 집합을 이용하기를 원한다면, 사용자는, 그 주변기기가 제2 클래스 또는 클래스들의 집합을 공표할 것을 바라면서, 예컨대 사용자 인터페이스를 통한 사용자 입력에 의해 "단절 - 재연결"(disconnect - reconnect)을 트리거(trigger)할 수도 있다. 대안적으로, 사용자는, 이전의 호스트가 다음에 주변기기 역할에서 원하는 클래스 또는 클래스들의 집합을 공표할 것을 바라면서, HNP에 기반하여 "역할 스위치"(role switch)를 유발할 수도 있다.
두 기기들 간에 USB 연결의 편리성(usability)을 향상시키는 것이 본 발명의 목적이다. 특히 USB 연결 동안 사용자 경험(user experience)을 향상시키는 것이 본 발명의 목적이다.
제1 방법이 USB 연결의 호스트 측을 위해 제안된다. 상기 방법은, 주변기기에 대해 자신의 USB 인터페이스를 통해 연결된 호스트에서, 상기 호스트의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 발생시키는 것을 포함한다. 상기 방법은 상기 정보제공적 명령을 상기 주변기기로의 상기 USB 인터페이스를 통한 전송에 제공하는 것을 더 포함한다.
또한, 주변기기에 대해 호스트 자신의 USB 인터페이스를 통해 연결된 호스트의 능력에 관한 정보를 포함하는 정보제공적 명령을 발생시키도록 이루어진 제1 프로세싱 설비가 제안된다. 상기 제1 프로세싱 설비는 그 명령을 상기 주변기기로의 상기 USB 인터페이스를 통한 전송에 제공하도록 더 이루어진다.
이 프로세싱 설비는 하드웨어로 및/또는 소프트웨어로 구현될 수 있다는 것이 유념되어야 한다. 그것은 예컨대, 대응되는 기능들을 실현하는 회로를 포함하는 프로세싱 유닛(processing unit) 또는 칩(chip) 또는 칩셋(chipset)에 의해 실행되는 소프트웨어 프로그램 코드를 포함할 수 있다.
또한, 주변기기로서 작동하는 다른 기기와의 USB 연결에서 제1 기기가 호스트로서 작동할 수 있게 하는 USB 인터페이스를 포함하고, 상기 제안된 제1 프로세싱 설비를 포함하는, 제1 기기가 제안된다.
또한, 호스트의 프로세싱 유닛에 의해 실행되어질 때 상기 제안된 제1 방법의 단계들을 실현하도록 이루어진 제1 소프트웨어 프로그램 코드가 제안된다.
또한, 상기 제안된 제1 소프트웨어 프로그램 코드가 판독가능 메모리에 저장되어 있는 제1 소프트웨어 프로그램 제품이 제안된다. 이러한 소프트웨어 프로그램 제품은 예컨대 호스트 기능성(host functionality)을 제공하는 기기로 구현될 별도의 저장 기기 또는 메모리일 수 있다.
게다가, 제2 방법이 USB 연결의 주변기기 측을 위해 제안된다. 상기 제2 방법은, 호스트에 대해 자신의 USB 인터페이스를 통해 연결된 주변기기에서, 상기 호스트로부터 상기 호스트의 능력에 관한 정보를 포함하는 정보제공적 명령을 수신하는 것을 포함한다.
또한, 호스트에 대해 자신의 USB 인터페이스를 통해 연결된 주변기기에서, 상기 호스트로부터 상기 호스트의 능력에 관한 정보를 포함하는 정보제공적 명령을 수신하도록 이루어진 제2 프로세싱 설비가 제안된다. 그 수신된 정보는 결정을 위한 기반으로서 그 프로세싱 설비에 의해 이용될 수도 있다.
또한, 호스트로서 작동하는 다른 기기와의 USB 연결에서 제2 기기가 주변기기로서 작동할 수 있게 하는 USB 인터페이스를 포함하고, 상기 제안된 제2 프로세싱 설비를 포함하는, 제2 기기가 제안된다.
또한, 주변기기의 프로세싱 유닛에 의해 실행되어질 때 상기 제안된 제2 방법의 단계들을 실현하도록 이루어진 제2 소프트웨어 프로그램 코드가 제안된다.
또한, 상기 제안된 제2 소프트웨어 프로그램 코드가 판독가능 메모리에 저장되어 있는 제2 소프트웨어 프로그램 제품이 제안된다. 이러한 소프트웨어 프로그램 제품은 예컨대 주변기기 기능성(peripheral functionality)을 제공하는 기기로 구현될 별도의 저장 기기 또는 메모리일 수 있다.
마지막으로, 상기 제안된 제1 기기 및 주변기기로서 작동하는 추가적인 기기를 포함하는 시스템이 제안된다.
본 발명은 만약 주변기기가 호스트 기기에 의해 지원되는 USB 기능들을 안다면 이익을 얻을 수 있을 것이라는 고려에서 유래한다. 그러므로 주변기기에 대한 USB 연결로써 링크된 호스트가 그 주변기기에게 자신의 능력을 통지하는 것이 제안된다. 이 능력은 주변기기로서 작동할 때 호스트에 의해 제공될 수도 있는 서비스들 뿐만 아니라 호스트에 의해 요청될 수도 있는 서비스들에 관련될 수 있다.
주변기기가 호스트의 USB 능력에 관한 정보를 자동적으로 획득한다는 것이 본 발명의 이점이다. 이것은 주변기기가 예컨대 호스트의 요구조건들에 가장 잘 맞는 USB 모드를 선택하는 것을 가능하게 한다. 더 나아가, 그것은, 예컨대 주변기기가 현재의 호스트에 의해 제공되는 USB 서비스들을 이용하기 위하여 호스트 역할 및 주변기기 역할을 스위치하는데 관여될 수도 있는지 여부를 그 주변기기가 결정하는 것을 가능하게 한다.
호스트가 예를 들어 주변기기에 대한 연결의 탐지시에 그 표시된 정보제공적 명령을 발생시킬 수도 있지만, 마찬가지로 이러한 연결의 탐지에 관계없이 그 표시된 정보제공적 명령을 발생시킬 수도 있다. 호스트는 새로운 때 또는 임의의 다른 시간에 연결을 탐지할 수도 있다.
그 정보제공적 명령에 포함된 그 호스트의 능력에 관한 정보는 그 호스트의 적어도 하나의 USB 모드에서 지원되는 적어도 하나의 클래스의 표시(indication) 및/또는 그 호스트의 적어도 하나의 USB 모드에 대해 제공되는 적어도 하나의 인터페이스의 표시를 포함할 수도 있다. 유리하게도, 그 호스트의 모든 USB 모드들에서의 모든 클래스들 및 모든 인터페이스들은, 그 주변기기에게 종합적인 정보를 제공하기 위해, 그 정보제공적 명령 내에 표시된다.
기존에, 호스트는 또한 주변기기가 진입할 USB 모드를 선택할 수 없다. 현재의 USB 모드와 다른 USB 모드들에서 동작할 때 그 주변기기가 지원할 수도 있는 클래스 및 인터페이스들을 그 호스트는 알고 있지 못하기 때문에, USB 모드 선택은 오직 주변기기 측 상에서만 행해질 수 있고 호스트 측 상에서는 절대 행해질 수 없다. 즉, 호스트는 주변기기를 특정 USB 모드로 강제할 수 없다.
본 발명의 실시예에 따라서, 대조적으로, 호스트는 부가적으로 요청 명령(request command)을 발생시킬 수도 있다. 그 요청 명령은, 주변기기의 모든 USB 모드들에서 제공되는, 모든 클래스들, 및 선택적으로는 모든 인터페이스들의 표시를 검색하기(retrieving) 위해 사용될 수도 있다. 그때 그 요청 명령은 마찬가지로 그 주변기기로의 USB 인터페이스를 통한 전송을 위해 제공될 수도 있다.
호스트 측 상에서, 이것은 주변기기를, 그 호스트의 현재의 요구조건들 또는 현재의 USB 모드 또는 능력에 가장 잘 맞을 수도 있는, 특정한 USB 모드로 강제하는 것을 허용한다. 이 때문에 그 호스트는 그 주변기기의 모든 USB 모드들에서 제공되는 모든 클래스들의 검색되는 표시에 기반하여 원하는 주변기기의 USB 모드를 선택할 수도 있다. 그때 그 호스트는 선택된 USB 모드로 그 주변기기를 강제하기 위한 지정 명령(set command)을 발생시킬 수도 있고 그 지정 명령을 그 주변기기로의 USB 인터페이스를 통한 전송에 제공할 수도 있다. 그 주변기기는 그것이 지정 명령을 수신했는지 여부 및/또는 그것이 표시된 USB 모드에 진입했는지 여부를 그 호스트로의 대응하는 메시지로써 확인할 수도 있다(confirm).
그 주변기기의 현재 USB 모드에서 그 주변기기에 의해 제공되는 적어도 하나의 클래스에 관한 정보를 획득하기 위해 입수 명령(get command)이 그 호스트에서 발생되기 전에 유리하게도 그 정보제공적 명령, 그 요청 명령 및 그 지정 명령이 그 호스트에서 발생된다. 이러한 입수 명령은 예컨대 표준의 Get Device Descriptor 명령일 수 있다. 만일 그 주변기기가 그 Get Device Descriptor 명령을 수신하기 전에 그 주변기기가 정보제공적 명령, 요청 명령 또는 지정 명령을 획득한 것이 아닌 경우, 그것은 이들 명령들이 호스트 측에서 지원되지 않는다거나 또는 적어도 현재의 USB 세션(session)에는 사용되지 않는다는 것을 알 것이다. 그때 그 주변기기는 그 입수 명령의 수신시에 기존의 방식대로 작동할 수도 있다.
그러나, 언제 정보제공적 명령, 요청 명령 및 지정 명령을 사용할지에 대해 어떠한 제약도 전혀 없다는 것이 유념되어야 한다. 그들은 또한 임의의 다른 시간에 사용될 수 있다. 또한, 임의의 다른 USB 명령 전에 그들을 송신할 때, 그 주변기기는, 단절 및 연결 동작의 필요성을 방지할 수도 있는, 새로운 설정(configuration)을 직접 보여줄 수 있다.
그 정보제공적 명령, 그 요청 명령 및 그 지정 명령은 다만 판매자 특정적 명령들(vendor specific commands)이어야 할 필요는 없을 수 있다.
기존에는, 주변기기는 어떤 클래스들 및 인터페이스들을 호스트가 지원하는지를 알고 있지 않다. 만약 그 주변기기가 호스트에 의해 지원되는 클래스들을 안다면, 대조적으로, 그것은 자동적으로 지원 USB 모드에 진입하고 사용자 상호작용 없이 그 지원 USB 모드에서의 클래스들 및 인터페이스들을 열거할 수도 있다. 대안적으로 또는 부가적으로, 그 주변기기는 그 호스트에 의해 지원되는 클래스들에 가장 잘 맞는 제공되는 USB 모드들을 열거할 수 있다. 예를 들면, 만약 두 기기들 간의 공통적 기능성(comman functionality)이 "대용량 저장"이라면, 그 기기들은 알맞은 조합을 용이하게 탐지할 수 있다. 만약 그 기기들 중 하나가 부가적으로 단지 "프린팅"(printing) 클래스만을 지원하고, 그와 다른 기기는 부가적으로 단지 "입력 기기"(input device) 클래스만을 지원한다면, 더욱이 어떠한 다른 적합한 조합들도 발견될 수 없다. 결과적으로, 정확한 조합이 단순한 로직에 의해 주변기기에서 탐지될 수 있고 사용자는 기능을 선택하는 것으로 인해 괴로워져야 할 필요가 없다.
본 발명의 실시예에 따라, 주변기기는 진입될 USB 모드를 선택하기 위한 몇몇 옵션들(options)을 가진다. 그 USB 모드는 호스트의 능력에 관한 수신 정보에 기반하여 선택될 수도 있다. 예컨대, 그 특정한 호스트에 유용한 서비스를 제공하기에 적합한, 정확히 그 주변기기의 하나의 USB 모드가 있을 수도 있다. 또한 그 USB 모드는 그 주변기기를 특정한 USB 모드로 강제하기 위한 그 호스트로부터의 지정 명령에 기반하여 선택될 수도 있다. 자동적인 선택을 위한 이들 옵션들은 사용자 입력의 필요를 제한하기 때문에, 그 자동적인 선택을 위한 이들 옵션들은 사용자 경험을 향상시킨다. 만약 그 주변기기가 특정한 USB 모드를 자동적으로 선택할 수 없다면, USB 모드를 선택하기 위한 사용자 결정을 허용하는 것은 여전히 소정의 액션을 요할 수 있다. 이 경우에, 그 USB 모드는 사용자 입력에 기반하여 선택될 수도 있다.
본 발명은 USB를 지원하는 임의의 기기에 사용될 수 있다. 호스트는 단지 호스트의 역할을 가정할 수 있는 기기일 수도 있고, 주변기기는 단지 주변기기의 역할을 가정할 수 있는 기기일 수도 있다. 대안적으로, 그 호스트 및 그 주변기기 중 적어도 하나는, 호스트의 또는 주변기기의 역할이 할당될 수 있는, OTG 기기일 수 있다. 이 경우에, 호스트 단에 대해 기술된 모든 기능들이 부가적으로 OTG 주변기기 단에서 구현될 수 있다는 것, 그리고 주변기기 단에 대해 기술된 모든 기능들이 부가적으로 OTG 호스트 단에서 구현될 수 있다는 것이 이해되어야 할 것이다.
기존에는, 현재 주변기기가 자신의 호스트역할에서 요청할 수도 있는 서비스들에 대하여 그리고 그것이 주변기기역할에서 제공할 수도 있는 서비스들에 대하여, 그 현재 주변기기가 현재 호스트의 능력에 관한 정보를 획득하는 것이 그 USB 표준으로는 가능하지 않는다는 사실에 따라 호스트 및 주변기기 간의 역할 스위치는 어렵게 된다.
본 발명의 실시예에 따라, 대조적으로, 현재 주변기기는 현재 호스트의 능력에 관한 수신 정보에 기반하여 호스트가 될지 여부를 또한 결정할 수도 있다.
본 발명의 하나의 실시예에서, 제안되는 서비스 발견(service discovery)은 프로토콜의 형태로 정의된다.
모든 기술되는 기능들은 제안되는 시스템, 프로세싱 설비, 기기, 소프트웨어 프로그램 코드 및 소프트웨어 프로그램 제품로 구현될 수 있다는 것이 이해되어야 할 것이다.
호스트 측 상에서의 그리고 주변기기 측 상에서의 지원되는 클래스들은, 키보드 클래스 또는 또 다른 입력 기기 클래스, 프린터 클래스, 예를 들어 디지털 카메라로 하여금 직접 프린터를 통해 이미지를 프린트하는 것을 가능하게 하는 픽트브리지 클래스, SICD 클래스 또는 또 다른 이미징(imaging) 클래스, 대용량 저장 클래스, 오디오 또는 비디오 출력 클래스 등처럼, USB 연결을 통해 서비스를 지원하는데 적합한 임의의 클래스를 포함할 수 있다.
호스트 및 주변기기 간의 USB 연결은 USB 케이블을 통한 연결일 수 있지만, 또한 그것은 한편으로는 주변기기의 USB에 대해 그리고 다른 한편으로는 호스트의 USB에 대해 액세스를 제공하는 소정 종류의 무선 연결일 수 있다는 것이 더 이해되어야 할 것이다.
본 발명의 제2 측면에 있어서, 주변기기에 대해 자신의 USB 인터페이스를 통해 연결된 호스트에서, 상기 주변기기의 모든 USB 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령을 발생시키는 것을 포함하는 방법이 제안된다. 상기 방법은 상기 요청 명령을 상기 주변기기로의 상기 USB 인터페이스를 통한 전송에 제공하는 것을 더 포함한다.
본 발명의 제2 측면에 있어서, 또한 주변기기에 대해 자신의 USB 인터페이스를 통해 연결된 호스트에서, 상기 주변기기의 모든 USB 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령을 발생시키도록 이루어진 프로세싱 설비가 제안된다. 이 프로세싱 설비는 상기 요청 명령을 상기 주변기기로의 상기 USB 인터페이스를 통한 전송에 제공하도록 더 이루어진다.
본 발명의 제2 측면에 있어서, 또한 주변기기로서 작동하는 다른 기기와의 USB 연결에서 해당 기기가 호스트로서 작동할 수 있게 하는 USB 인터페이스를 포함하고, 본 발명의 제2 측면에 관해 제안된 프로세싱 설비를 포함하는, 기기가 제안된다.
본 발명의 제2 측면에 있어서, 또한 호스트의 프로세싱 유닛에 의해 실행되어질 때 본 발명의 제2 측면에 관해 제안된 방법의 단계들을 실현하도록 이루어진 소프트웨어 프로그램 코드가 제안된다.
본 발명의 제2 측면에 있어서, 또한 본 발명의 제2 측면에 관해 제안된 소프트웨어 프로그램 코드가 판독가능 메모리에 저장되어 있는 소프트웨어 프로그램 제품이 제안된다. 이러한 소프트웨어 프로그램 제품은 예컨대 호스트 기능성을 제공하는 기기로 구현될 별도의 저장 기기 또는 메모리일 수 있다.
본 발명의 제2 측면에 있어서, 마지막으로 본 발명의 제2 측면에 관해 제안된 기기 및 주변기기로서 작동하는 추가적인 기기를 포함하는 시스템이 제안된다.
따라서 그 요청 명령은 정보제공적 명령의 발생과 독립적으로 마찬가지로 발생될 수 있다.
본 발명의 제2 측면의 하나의 실시예에서, 호스트는 주변기기의 모든 USB 모드들에서 제공되는 모든 클래스들에 관한 검색 정보에 기반하여 원하는 그 주변기기의 USB 모드를 선택할 수도 있다. 그때 그 호스트는 그 주변기기를 선택된 USB 모드로 강제하기 위한 지정 명령을 발생시킬 수도 있고, 그 지정 명령을 그 주변기기로의 USB 인터페이스를 통한 전송에 제공할 수도 있다.
본 발명의 제2 측면의 방법, 프로세싱 설비, 기기, 소프트웨어 프로그램 코드, 소프트웨어 프로그램 제품 및 시스템이 본 발명의 제1 측면에 관해 소개된 임의의 실시예에 따라 구현될 수 있고 또는 그 임의의 실시예와 결합될 수 있다는 것이 이해되어야 할 것이다.
본 발명의 다른 목적들 및 특징들이 동반된 도면들과 관련하여 고려된 다음의 구체적인 실시예로부터 명확해질 것이다.
도 1은 본 발명의 실시예에 따른 시스템의 도식적인 다이어그램(diagram)이고, 그리고
도 2는 도 1의 시스템에서의 바람직한 메시지 흐름도(flow chart)이다.
도 1은 본 발명의 바람직한 실시예에 따라 두 기기들 간의 USB 연결들의 향상된 편리성을 가능하게 하는 시스템의 도식적 다이어그램이다.
그 시스템은, 예컨대 모바일 단말일 수도 있는 제1 기기(10) 및 예컨대 디지털 카메라일 수도 있는 제2 기기(20)를 포함한다. 기기들(10, 20)이, PDA 또는 PC 등과 같은, 마찬가지의 다양한 다른 유형의 기기들일 수 있다는 것이 이해되어야 할 것이다.
모바일 단말(10)은 CPU(11)를 포함한다. CPU(11)는, 예컨대 디스플레이 및 키패드 등을 포함하는, 모바일 단말(10)의 사용자 인터페이스(12)에 연결된다. 또한 CPU(11)는, 모바일 단말(10)의 USB 인터페이스(14), 예로서 미니-AB 콘센트에 대해 USB(13)를 통해 연결된다. CPU(11)는 또한 모바일 단말(10)의 메모리(15)에 연결된다.
CPU(11)는 모바일 단말(10) 내에 구현되는 다양한 소프트웨어 프로그램 코드를 실행하도록 이루어진다. 이 소프트웨어 프로그램 코드는 예를 들어, CPU(11)에 의해 액세스될 수 있는, 메모리(15) 내에 저장될 수도 있다. 메모리(15)는 예컨대 CPU(11)에 의한 실행을 위한 USB-OTG 소프트웨어 프로그램 코드(16)를 포함할 수도 있다. USB-OTG 소프트웨어 프로그램 코드(16)는 다른 기기에 대한 모바일 단말(10)의 임의의 USB 연결을 관리하는 것을 담당한다. USB-OTG 소프트웨어 프로그램 코드(16)는 이 때문에 연결 탐지기 부분(17), 판매자 특정적 명령 관리자 부분(18), 표준 제어 및 데이터 흐름 관리자 부분(19) 및 기존의 다른 USB-OTG 소프트웨어 프로그램 코드 부분들(미도시)을 포함한다.
모바일 단말(10)은 미도시된 다양한 다른 콤포넌트들을 포함한다는 것이 이해되어야 할 것이다.
디지털 카메라(20)는 디스플레이 및 연관 버튼들 등을 포함하는 사용자 인터페이스(22)를 포함한다. 또한, 디지털 카메라(20)는, 게다가 USB 인터페이스(24), 예로서 미니-AB 콘센트를 포함한다. USB 인터페이스(24)는 칩셋(21) 또는 칩에 대해 USB(23)를 통해 연결된다. 칩셋(21)은 USB-OTG 소프트웨어 프로그램 코드(16)의 부분들과 같은 기능들을 실현한다. 칩셋(21)은 이 때문에 연결 탐지기 부분(27), 판매자 특정적 명령 관리자 부분(28), 표준 제어 및 데이터 흐름 관리자 부분(29) 및 기존의 다른 USB-OTG 프로세싱 콤포넌트들(미도시)를 가진 USB-OTG 프로세싱 회로(26)를 포함한다. 대안적으로, 디지털 카메라(20)는 모바일 단말(10)의 CPU 및 메모리에 대응하는 CPU 및 메모리를 마찬가지로 포함할 수 있다는 것이 이해되어야 할 것이다. 단지 본 발명이 여러가지 방법들로 구현될 수도 있다는 것을 예시하기 위해서 다른 구현이 선택되었다.
칩셋(21)은 또한 사용자 인터페이스(22)에 직접적으로 또는 간접적으로 이어진다.
디지털 카메라(20)는 미도시된 다양한 다른 콤포넌트들을 포함한다는 것이 이해되어야 할 것이다.
이제 도 1의 시스템에서의 본 발명의 실시예에 따른 동작이 도 2의 메시지 흐름도를 참조하여 기술될 것이다.
도 2의 흐름도는 왼쪽 편에 묘사된 호스트와 오른쪽 편에 묘사된 주변기기 간의 메시지 흐름을 표현하고 있다. 그 도면은, USB를 통해 전송되는, 연관 데이터가 아니라, 단지 USB 트랜잭션 레벨만을 표현하고 있다는 것이 유념되어야 한다. 보통의 USB 흐름은 패킷, 선택적인 데이터 패킷 및 핸드셰이크 패킷(handshake packet)을 요한다.
처음에, USB 연결이 모바일 단말(10) 및 디지털 카메라(20) 간에 설립된다 (단계 101). 그 연결은 예컨대 케이블에 의해 설립될 수 있고, 여기에서 모바일 단말(10)은 미니-AB 콘센트(14)에 그 케이블의 미니-A 플러그를 연결함으로써 호스트로 정의되고, 그리고 디지털 카메라(20)는 미니-AB 콘센트(24)에 그 케이블의 미니-B 플러그를 연결함으로써 주변기기로 정의된다.
디지털 카메라(20)의 연결 탐지기 부분(27)은 그 USB 연결 및 주변기기의 할당된 역할을 탐지하고, 호스트가 그 주변기기를 탐지하는 것을 가능하게 하도록 USB에 연관된 풀업 저항기들(pull up resistors)을 세팅한다 (단계 102).
모바일 단말(10)의 연결 탐지기 부분(17)은 그 USB 연결 및 호스트의 할당된 역할을 탐지하고, 그 세팅된 풀업 저항기들에 기인하여 디지털 카메라(20)를 주변기기로서 탐지한다 (단계 103).
그러면 판매자 특정적 명령 관리자(18)는, 모바일 단말(10)의 모든 USB 모드들에서 지원되는 모든 클래스들 및 모든 인터페이스들의 표시를 포함하는, 제1 판매자_특정적(VENDOR_SPECIFIC) 명령을 발생시킨다. 유리하게, 이 정보제공적 명령 은 처음에 송신되지만, 그것은 또한 임의의 더 늦은 시점에 송신될 수도 있다는 것이 유념되어야 한다. 그 정보제공적 명령은 USB(13), 미니-AB 콘센트(14) 및 케이블 연결을 거쳐 디지털 카메라(20)에 전송된다 (단계 104). 그에 의해 모바일 단말(10)은 자기 자신의 USB 능력을 디지털 카메라(20)에게 공시한다.
디지털 카메라(20)는 그 정보 제공적 명령을 미니-AB 콘센트(24)를 통해 수신하고 그것을 USB(23)를 거쳐 칩셋(21)으로 전달한다. 그 정보제공적 명령 내 표시에 기반하여, 디지털 카메라(20)는 이제 어느 클래스들 및 인터페이스들을 모바일 단말(10)이 지원하는지를 알게 된다. 칩셋(21)에서, 판매자 특정적 명령 관리자 부분(28)의 모드 선택 로직은 디지털 카메라(20)의 USB 모드들 중 어떤 모드가 모바일 단말(10)의 USB 능력에 가장 잘 적합한지를 탐지한다. 판매자 특정적 명령 관리자 부분(28)은 그 수신된 명령이 수신확인(acknowledge)되게(미도시)을 그리고 디지털 카메라(20)가 그 선택된 USB 모드로 지정되게 더 처리한다 (단계 105). 호스트(10)의 표시된 USB 기능성들이 주변기기(20)의 몇몇 USB 모드들을 이용하는데 적합하지 않은 경우에 또는 주변기기(20)가 특정적인 종류의 호스트(10)에 대해 어떠한 USB 기능들도 제공하지 않는 경우에, 이러한 선택은 가능하지 않을 수도 있다. 그 경우에, 예컨대, 모바일 단말(10)은 연결된 주변기기 프린터로 하여금 출력정보(printout)를 제공하도록 요청하기 위해 "프린트 모드"(print mode)를 지원할 수도 있고 소정의 호스트가 모바일 단말(10)의 대용량 저장소(mass storage)를 액세스하는 것을 가능하게 하는 "내부 대용량 저장 모드"(internal mass storage mode)를 지원할 수도 있다. 디지털 카메라(20)는 PC와 같은 어떤 호스트가 디지털 카메라(20)의 대용량 저장소에 액세스하는 것을 가능하게 하는 "내부 대용량 저장 모드" 및 이미지 데이터가 대용량 저장소를 제공하는 어떤 주변기기 내에 저장되도록 요청하기 위한 "외부 대용량 저장 모드"(external mass storage mode)를 마찬가지로 지원할 수도 있다. 따라서, 디지털 카메라(20)는 그것이 모바일 단말(10)에게 어떤 기능을 제공할 수 있는 어느 USB 모드도 탐지할 수 없을 수도 있다. 그러나, 모바일 단말(10) 및 그 디지털 카메라는, 디지털 카메라(20)가 모바일 단말(10)에게 어떤 기능을 제공할 수 있는, 하나 이상의 다른 USB 모드들에 진입하도록 이루어질 수 있다는 것이 이해되어야 할 것이다.
판매자 특정적 명령 관리자 부분(18)은 디지털 카메라(20)의 모든 USB 모드들에서 지원되는 모든 클래스들 및 모든 인터페이스들을 검색하기 위한 제2 판매자_특정적 명령을 더 발생시킨다. 이 요청 명령은 USB(13), 미니-AB 콘센트(14) 및 케이블을 거쳐 디지털 카메라(20)로 전송된다 (단계 106).
디지털 카메라(20)는 그 요청 명령을 미니-AB 콘센트(24)를 통해 수신하고 그것을 USB(23)를 거쳐 칩셋(21)으로 전달한다. 칩셋(21)에서, 판매자 특정적 명령 관리자 부분(28)은 그 요청된 정보가 모바일 단말(10)에 의해 검색될 수 있게 처리한다.
모바일 단말(10)은 이러한 방식으로, 디지털 카메라(20)의 현재 USB 모드에서 제공되는 서비스들 뿐만 아니라, 디지털 카메라(20)에 의해 지원되는 모든 USB 모드들에서의 모든 클래스들 및 모든 인터페이스들을 발견한다.
이제 판매자 특정적 명령 관리자 부분(18)은, 디지털 카메라(20)의 기능성들 에 관한 수신 정보에 기반하여, 디지털 카메라(20)의 어떤 USB 모드가 USB 서비스들에 관한 모바일 단말(10)의 현재 요구조건들에 가장 잘 적합한지를 결정할 수도 있다. 이러한 USB 모드가 결정될 수 있는 경우에, 판매자 특정적 명령 관리자 부분(18)은 이 특정적인 USB 모드에 진입하도록 디지털 카메라(20)의 USB 모드를 강제하기 위한 제3 판매자_특정적 명령을 더 발생시킨다 (단계 107). 이 지정 명령은 USB(13), 미니-AB 콘센트(14) 및 케이블을 거쳐 디지털 카메라(20)로 마찬가지로 전송된다 (단계 108).
디지털 카메라(20)는 마찬가지로 그 지정 명령을 미니-AB 콘센트(24)를 통해 수신하고 그것을 USB(23)를 거쳐 칩셋(21)으로 전달한다. 칩셋(21)에서, 판매자 특정적 명령 관리자 부분(28)의 모드 선택 로직은 디지털 카메라(20)가 그 지정 명령에서 요구되는 USB 모드로 지정되게 처리한다 (단계 109). 판매자 특정적 명령 관리자 부분(28)은 그 지정된 USB 모드에 관한 해당 상태 정보를 가진 판매자_특정적 메시지를 더 발생시키고, 이것은 그 지정 명령과 비교하여 역으로 모바일 단말(10)로 전송된다 (단계 110).
어떠한 지정 명령도 수신되지 않은 경우에는, 판매자 특정적 명령 관리자 부분(28)의 모드 선택 로직은 디폴트 USB 모드로 진입되게 처리할 수도 있다. 그러나, 또한 다른 방법들이 어떠한 지정 명령도 수신되지 않는 경우를 위해 구현될 수 있지만, 그들은 그 USB 명세에서 정의된 조건(qualification)에 관한 테스트들의 변화를 요구할 수도 있다는 것이 유념되어야 한다. 도 2에서, 예를 들어 어떠한 지정 명령도 기결정된 시간 후에 수신되지 않고 어떠한 USB 모드도 단계(105)에서 선 택되지 않은 경우에, 판매자 특정적 명령 관리자 부분(28)의 모드 선택 로직은 USB 모드 또는 서비스 선택 메뉴가 디지털 카메라(20)의 사용자 인터페이스(22)의 디스플레이 상에서 사용자에게 표현되게 처리하려고 한다. 사용자는 사용자 인터페이스(22)의 버튼들을 통해 명령을 기입함으로써 원하는 USB 모드를 선택할 수도 있다 (단계 111).
모든 판매자 특정적 명령들에서의 USB 모드 또는 모드들은 클래스 집합들을 구별하기 위한 고유 번호(unique number)로써 단순하게 식별될 수 있다.
일단 모바일 단말(10)이 디지털 카메라(20)를 원하는 USB 모드로 강제했다면 - 또는 USB 모드에 관한 어떠한 세팅(setting)도 원치 않는 경우에, 일단 모바일 단말(10)이 디지털 카메라(20)에 의해 제공되는 모든 USB 기능들을 발견했다면 - 시스템은 표준 USB 동작을 진행한다 (단계 120).
즉, 모바일 단말(10)의 표준 제어 및 데이터 흐름 관리자 부분(19)은, Get Device Descriptor 명령을 발생시키고, 이것은 디지털 카메라(20)로 전송된다 (단계 121).
Get Device Descriptor 명령이 모바일 단말(10)로부터 디지털 카메라(20)로 송신될 때, 본 발명에 따른 발견 국면(discovery phase)은 종료된다. 이 발견 프로세스를 위해 사용되는 판매자_특정적 명령들의 발생 및 전송의 순서는 자유롭게 선택될 수 있다는 것이 이해되어야 할 것이다. 그러나, 유리하게도, 그들은 Get Device Descriptor 명령이 전송되기 전에 완료된다.
Get Device Descriptor 명령의 수신시에, 디지털 카메라(20)의 표준 흐름 관 리자 부분(29)은, 진입되는 USB 모드에서 지원되는 클래스들 및 인터페이스들을 포함하는, 이 진입되는 USB 모드에 관한 기술자(descriptor)를 보내준다(return) (단계 122). 기술자는, USB 주변기기들의 속성들(attributes)을 보고하기 위해 그 USB 주변기기들에 의해 사용되는, 정의된 포맷(format)을 가진 데이터 구조이다. 그러면 표준 제어 및 데이터 흐름 관리자(19)는 원하는 데이터 교환을 진행할 수도 있다.
만약 Get Device Descriptor 명령이 모바일 단말(10)로부터 수신되기 전에 판매자_특정적 명령들에 의한 어떠한 발견도 모바일 단말(10)에 의해 행해지지 않았다면, 디지털 카메라(20)는, 표준화된 USB 행동에 해당할 수도 있는, 디폴트 행동을 실행할 수 있다.
지금까지 기술된 동작이 또한 표준 A 또는 미니-A 콘센트를 구비한 호스트 및 표준 B 또는 미니-B 콘센트를 구비한 주변기기에 의해서도 행해질 수 있다는 것이 유념되어야 할 것이다. 그 경우에, USB-OTG 소프트웨어(16) 또는 USB-OTG 프로세싱 회로(26)는 기술된 기능들을 실현하는 일반적인 USB 소프트웨어(16) 또는 USB 프로세싱 회로(26)일 수 있다.
미니-AB 콘센트들(14, 24)은 호스트 및 주변기기가 그들의 역할을 스위치할 수 있어야 할 경우에 요구된다.
처음부터 미니-AB 콘센트들 간의 연결을 거꾸로 함으로써, 즉, 디지털 카메라(20)에 케이블의 미니-A 플러그를 그리고 모바일 단말(10)에 미니-B 플러그를 연결함으로써, 디지털 카메라(20)는 호스트의 역할을 할 수 있고 모바일 단말(10)은 주변기기의 역할을 할 수 있다. 이 경우에, 도 2를 참조하여 기술된 단계들(103 내지 122)은 단순히 모바일 단말(10) 및 디지털 카메라(20)에 의해 스위치된 역할들로 행해질 것이다.
대안적으로, 초기 역할들은 케이블 연결을 거꾸로 함이 없이 스위치될 수 있다.
모바일 단말(10)이 디지털 카메라(20)에 의해 제공되는 어떠한 USB 서비스를 이용하는 것도 원하지 않는 경우에 또는 모바일 단말(10)이 이러한 USB 서비스를 이용하는 것을 완료하였을 경우에, 디지털 카메라(20)는 USB(23) 상에 더 이상의 진행 중인 활동(activity)이 없다는 것을 탐지할 것이다. USB(23)가 유휴(idle)였던 동안인 기결정된 시간 후에, 디지털 카메라(20)는 그것이 모바일 단말(10)에 의해 제공되는 USB 서비스를 이용할 수 있다는 것을 결정할 수도 있다. 이 때문에, 디지털 카메라(20)는 사용자 인터페이스(22)의 디스플레이를 통해 사용자에게 모바일 단말(10)의 표시된 능력을 표현할 수도 있고 사용자 인터페이스(22)의 버튼들을 통하여 원하는 서비스의 선택을 작동시킬 수도 있다. 사용자 선택 시에, 그때는 호스트 및 주변기기의 역할은 상기에서 언급된 On-The-Go Supplement to the USB 2.0 Specification에 기술된 호스트 협상 프로토콜(Host Negotiation Protocol)에 따라 스위치될 수도 있고, 디지털 카메라(20)가 그것의 풀업 레지스터들을 턴오프(turn off)함으로써 시작한다 (단계 130, 131).
USB 연결의 리셋(reset)이 있는 경우에 또는 새로운 USB 주소가 기기들(10, 20) 중 하나에 대해 지정된 경우에, 동일한 동작들이 새로운 연결에 관하여 행해질 수도 있다 (단계 101 내지 130).
전반적으로, 본 발명에 관한 나타난 실시예는, USB 연결의 호스트 및 주변기기가 최초의 연결 셋업(setup) 동안에 또는 그 연결에서의 변화 후에 서로의 전체적인 USB 능력에 관한 정보를 획득하는 것을 가능하게 하는 것이 명백하고, 이는 기술된 발견 절차가 없으면 감추어질 수도 있다. 결과로서, 주변기기는 적합한 USB 모드를 자동적으로 선택하는 것이 가능해질 수도 있고 그리고/또는 호스트는 적합한 USB 모드에 진입하도록 그 주변기기를 강제하는 것이 가능해질 수도 있다. 사용자 액션의 필요성은 따라서 감소될 수 있고, 이는 또한 부적합한 사용자 선택들을 방지하며, 더 좋은 인간환경공학적(ergonomic) 기기 설계로 귀결된다. 구체적으로 USB-OTG에 관하여, 초기 주변기기는 더 나아가 초기 호스트의 능력을 평가할 수 있다.
정보제공적 명령, 요청 명령, 지정 명령 및 확인(confirmation) 메시지가 판매자 특정적 메시지들인 걸로 제시되었지만, 마찬가지로 그들은 그럼에도 불구하고 표준화된 메시지들일 수 있다는 것이 이해되어야 할 것이다.
기술된 실시예는 본 발명의 갖가지 가능한 실시예들 중 단지 하나만을 구성하고 있다는 것이 유념되어야 할 것이다.

Claims (25)

  1. 주변기기(20)에 대해 자신(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)에서, 상기 호스트(10)의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 발생시키는 것; 및
    상기 정보제공적 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 포함하는 방법.
  2. 제1항에 있어서,
    상기 호스트(10)의 능력에 관한 상기 정보는
    - 상기 호스트(10)의 적어도 하나의 범용 직렬 버스 모드에서 지원되는 적어도 하나의 클래스의 표시(indication); 및
    - 상기 호스트(10)의 적어도 하나의 범용 직렬 버스 모드에 대해 제공되는 적어도 하나의 인터페이스의 표시
    중 적어도 하나를 포함하는 방법.
  3. 제1항에 있어서,
    상기 정보제공적 명령은 입수 명령(get command)이 발생되기 전에 상기 호스트(10)에서 발생되고, 상기 입수 명령은 상기 주변기기(20)의 현재 범용 직렬 버스 모드에서 상기 주변기기(20)에 의해 제공되는 적어도 하나의 클래스에 관한 정보를 획득하기 위해 상기 호스트(10)에서 발생되어지는 것인 방법.
  4. 제1항에 있어서,
    - 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령(request command)을, 상기 호스트(10)에서 발생시키는 것; 및
    - 상기 요청 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 더 포함하는 방법.
  5. 제4항에 있어서,
    - 상기 호스트(10)에서, 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 상기 검색되는 정보에 기반하여 원하는 상기 주변기기(20)의 범용 직렬 버스 모드를 선택하는 것;
    - 상기 호스트(10)에서, 상기 주변기기(20)를 선택된 범용 직렬 버스 모드로 강제하기 위한 지정 명령(set command)을 발생시키는 것; 및
    - 상기 지정 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 더 포함하는 방법.
  6. 호스트(10)에 자신(20)의 범용 직렬 버스 인터페이스(24)를 통해 연결되어진 주변기기(20)에서, 상기 호스트(10)로부터 상기 호스트(10)의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 수신하는 것을 포함하는 방법.
  7. 제6항에 있어서,
    상기 주변기기(20)에서, 선택된 범용 직렬 버스 모드에 진입하는 것을 더 포함하고,
    상기 선택된 범용 직렬 버스 모드는
    - 상기 호스트(10)의 능력에 관한 상기 정보;
    - 상기 주변기기(20)를 특정 범용 직렬 버스 모드로 강제하기 위한 상기 호스트(10)로부터의 지정 명령; 및
    - 사용자 입력
    중 하나에 기반하여 선택되는 방법.
  8. 제6항에 있어서,
    상기 주변기기(20)에서 상기 현재의 호스트(10)의 능력에 관한 상기 정보에 기반하여 호스트 자체가 될지 여부를 결정하는 것을 더 포함하는 방법.
  9. 프로세싱 설비(processing arrangement) (11, 16)로서,
    - 상기 프로세싱 설비(11, 16)는, 주변기기(20)에 대해 호스트(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 발생시키도록 이루어지고; 그리고
    - 상기 프로세싱 설비(11, 16)는 상기 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하도록 이루어지는 프로세싱 설비.
  10. 제9항에 있어서,
    상기 프로세싱 설비(11, 16)는, 호스트에 대해 주변기기(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 주변기기(10)에서, 상기 호스트로부터 상기 호스트의 능력에 관한 정보를 포함하는 정보제공적 명령을 수신하도록 더 이루어지는 프로세싱 설비.
  11. 기기(10)로서,
    - 상기 기기(10)가 주변기기로서 작동하는 다른 기기(20)와의 범용 직렬 버스 연결에서 호스트로서 작동할 수 있게 하는 범용 직렬 버스 인터페이스(14); 및
    - 제9항에 따른 프로세싱 설비(11, 16)
    를 포함하는 기기.
  12. 호스트(10)에 대해 자신(20)의 범용 직렬 버스 인터페이스(24)를 통해 연결되어진 주변기기(20)에서, 상기 호스트(10)의 능력(capabilities)에 관한 정보를 포함하는 상기 호스트(10)로부터의 정보제공적 명령(informative command)을 수신하도록 이루어지는 프로세싱 설비(21).
  13. 기기(20)로서,
    - 호스트로서 작동하는 다른 기기(10)에 대한 범용 직렬 버스 연결에서 상기 기기(20)가 주변기기로서 작동할 수 있게 하는 범용 직렬 버스 인터페이스(24); 및
    - 제12항에 따른 프로세싱 설비(21)
    를 포함하는 기기.
  14. 제11항에 따른 기기(10) 및 주변기기로서 작동하는 추가적인 기기(20)를 포함하는 시스템.
  15. 주변기기(20)에 대해 자신(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)의 프로세싱 유닛(11)에 의해 실행되어질 때
    - 상기 호스트(10)의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 발생시키는 것; 및
    - 상기 정보제공적 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터 페이스(14)를 통한 전송에 제공하는 것
    을 실현하도록 이루어지는 소프트웨어 프로그램 코드(16).
  16. 제15항에 따른 소프트웨어 프로그램 코드(16)가 판독가능 메모리(15)에 저장되어 있는 소프트웨어 프로그램 제품.
  17. 주변기기(10)의 프로세싱 유닛(11)에 의해 실행되어질 때
    - 상기 주변기기(10)는 호스트에 대해 상기 주변기기(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결되어져 있어, 상기 호스트로부터 상기 호스트의 능력(capabilities)에 관한 정보를 포함하는 정보제공적 명령(informative command)을 수신하는 것
    을 실현하도록 이루어지는 소프트웨어 프로그램 코드(16).
  18. 제17항에 따른 소프트웨어 프로그램 코드(16)가 판독가능 메모리(15)에 저장되어 있는 소프트웨어 프로그램 제품.
  19. - 주변기기(20)에 대해 자신(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)에서, 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령(request command)을, 발생시키는 것; 및
    - 상기 요청 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 포함하는 방법.
  20. 제19항에 있어서,
    - 상기 호스트(10)에서, 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 상기 검색되는 정보에 기반하여 원하는 상기 주변기기(20)의 범용 직렬 버스 모드를 선택하는 것;
    - 상기 호스트(10)에서, 상기 주변기기(20)를 선택된 범용 직렬 버스 모드로 강제하기 위한 지정 명령(set command)을 발생시키는 것; 및
    - 상기 지정 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 더 포함하는 방법.
  21. 프로세싱 설비(processing arrangement) (11, 16)로서,
    - 상기 프로세싱 설비(11, 16)는, 주변기기(20)에 대해 자신(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)에서, 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령(request command)을, 발생시키도록 이루어지고; 그리고
    - 상기 프로세싱 설비(11, 16)는, 상기 요청 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하도록 이루어지는 프로세싱 설비.
  22. 기기(10)로서,
    - 상기 기기(10)가 주변기기로서 작동하는 다른 기기(20)와의 범용 직렬 버스 연결에서 호스트로서 작동할 수 있게 하는 범용 직렬 버스 인터페이스(14); 및
    - 제21항에 따른 프로세싱 설비(11, 16)
    를 포함하는 기기.
  23. 제22항에 따른 기기(10) 및 주변기기로서 작동하는 추가적인 기기(20)를 포함하는 시스템.
  24. 주변기기(20)에 대해 자신(10)의 범용 직렬 버스 인터페이스(14)를 통해 연결된 호스트(10)의 프로세싱 유닛(11)에 의해 실행되어질 때
    - 상기 주변기기(20)의 모든 범용 직렬 버스 모드들에서 제공되는 모든 클래스들에 관한 정보를 검색하는 요청 명령(request command)을, 호스트(10)에서 발생시키는 것; 및
    - 상기 요청 명령을 상기 주변기기(20)로의 상기 범용 직렬 버스 인터페이스(14)를 통한 전송에 제공하는 것
    을 실현하도록 이루어지는 소프트웨어 프로그램 코드(16).
  25. 제24항에 따른 소프트웨어 프로그램 코드(16)가 판독가능 메모리(15)에 저장되어 있는 소프트웨어 프로그램 제품.
KR1020087026003A 2006-04-26 2006-04-26 범용직렬버스 연결 KR101003295B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2006/051304 WO2007122453A1 (en) 2006-04-26 2006-04-26 Usb connection

Publications (2)

Publication Number Publication Date
KR20080109043A true KR20080109043A (ko) 2008-12-16
KR101003295B1 KR101003295B1 (ko) 2010-12-23

Family

ID=37771068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026003A KR101003295B1 (ko) 2006-04-26 2006-04-26 범용직렬버스 연결

Country Status (5)

Country Link
US (1) US8484394B2 (ko)
EP (2) EP2011014B1 (ko)
KR (1) KR101003295B1 (ko)
CN (1) CN101427228B (ko)
WO (1) WO2007122453A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562159B2 (en) 2006-04-28 2009-07-14 Mediatek Inc. Systems and methods for selectively activating functions provided by a mobile phone
US8571602B2 (en) * 2006-06-09 2013-10-29 Qualcomm Incorporated Universal mobile print agent
KR101147131B1 (ko) * 2006-12-22 2012-05-25 삼성전자주식회사 휴대용 단말기에서 컴퓨터 연결모드 설정 방법 및 장치
US8250245B2 (en) * 2007-04-05 2012-08-21 Seiko Epson Corporation Information processing system, with information processing terminal capable of operating in multiple operation modes when connected to a host device
JP2009151415A (ja) * 2007-12-19 2009-07-09 Seiko Epson Corp 印刷装置およびusbデバイスの認識方法
JP5197112B2 (ja) * 2008-04-04 2013-05-15 キヤノン株式会社 通信装置、その制御方法及びプログラム
KR20100002943A (ko) * 2008-06-30 2010-01-07 삼성전자주식회사 유에스비 디바이스 장치 및 그 모드 인식방법
US20100082846A1 (en) * 2008-10-01 2010-04-01 Kyung Hwan Kim Usb device and method for connecting the usb device with usb host
KR101578728B1 (ko) * 2009-05-22 2015-12-21 엘지전자 주식회사 휴대 단말기
US8626932B2 (en) * 2009-09-01 2014-01-07 Apple Inc. Device-dependent selection between modes for asymmetric serial protocols
JP5882768B2 (ja) * 2012-02-03 2016-03-09 キヤノン株式会社 画像処理装置、その制御方法、プログラム
KR101969726B1 (ko) * 2012-05-02 2019-04-17 삼성전자주식회사 범용 직렬 버스 호스트 식별 방법 및 그 전자 장치
WO2014027224A1 (en) 2012-08-17 2014-02-20 Nokia Corporation Battery hot swap capable apparatus
US9311504B2 (en) 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
US9619156B2 (en) 2014-07-31 2017-04-11 Samsung Electronics Co., Ltd. Storage device, memory card, and communicating method of storage device
CN104216840B (zh) * 2014-09-11 2018-03-23 青岛海信移动通信技术股份有限公司 一种usb设置和对外部设备进行操作的方法及装置
GB2533819B (en) * 2015-01-05 2018-11-07 Displaylink Uk Ltd A docking system
US10122576B2 (en) 2015-03-17 2018-11-06 Microsoft Technology Licensing, Llc Intelligent role selection for dual-role devices
FR3041787A1 (fr) * 2015-09-28 2017-03-31 Orange Procede de transfert d'informations de configuration d'un objet connecte
CN105975303A (zh) * 2016-04-29 2016-09-28 乐视控股(北京)有限公司 升级控制方法及装置
US10585674B2 (en) * 2016-08-22 2020-03-10 Hewlett-Packard Development Company, L.P. Connected devices information
CN108132899A (zh) * 2016-12-01 2018-06-08 中兴通讯股份有限公司 一种传输模式配置方法、装置及***
US11169584B2 (en) * 2020-03-31 2021-11-09 Western Digital Technologies, Inc. Dual-connector storage system and method for simultaneously providing power and memory access to a computing device
US20230133948A1 (en) * 2020-04-22 2023-05-04 Hewlett-Packard Development Company, L.P. Adjustment of display settings

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012103A (en) * 1997-07-02 2000-01-04 Cypress Semiconductor Corp. Bus interface system and method
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6832273B2 (en) 2000-12-21 2004-12-14 Microsoft Corporation System and method to specify extended configuration descriptor information in USB devices
WO2003012577A2 (en) * 2001-07-31 2003-02-13 Silicom Ltd. Device-related software installation
US6732218B2 (en) * 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method
TWI226551B (en) 2003-10-28 2005-01-11 Prolific Technology Inc Multi-function wireless bridge for USB and associated system
JP2005250671A (ja) 2004-03-02 2005-09-15 Sony Corp 通信システム、通信装置、通信方法およびプログラム
TW200513865A (en) * 2004-09-17 2005-04-16 Via Tech Inc USB control circuit with function of switching between host mode and controlled mode and its operating method
US7413129B2 (en) * 2004-09-30 2008-08-19 Stmicroelectronics, Inc. USB device with secondary USB on-the-go function
DE102004057756B4 (de) * 2004-11-30 2009-08-06 Advanced Micro Devices Inc., Sunnyvale USB-Steuerungseinrichtung mit OTG-Steuerungseinheit
US20060129700A1 (en) * 2004-12-09 2006-06-15 Bopardikar Rajendra A Bridging a local bus with a data network
US7707348B2 (en) * 2005-07-13 2010-04-27 Cisco Technology, Inc. Multi-use USB host to Ethernet adapter
US7623828B2 (en) * 2006-01-19 2009-11-24 Nokia Corporation Managing master and slave devices in a communications network
JP4725397B2 (ja) * 2006-04-05 2011-07-13 セイコーエプソン株式会社 Usb複合デバイス,usb通信システム,及びusb通信方法
US20100040041A1 (en) * 2007-03-22 2010-02-18 Nokia Corporatioin Switching role of apparatuses between controller (host) and participant (device) to schedule bi-directional data

Also Published As

Publication number Publication date
EP2469417A1 (en) 2012-06-27
US20090300239A1 (en) 2009-12-03
WO2007122453A1 (en) 2007-11-01
CN101427228B (zh) 2012-02-15
EP2011014A1 (en) 2009-01-07
CN101427228A (zh) 2009-05-06
EP2011014B1 (en) 2012-09-26
KR101003295B1 (ko) 2010-12-23
US8484394B2 (en) 2013-07-09

Similar Documents

Publication Publication Date Title
KR101003295B1 (ko) 범용직렬버스 연결
US8046517B2 (en) Data processing method and device for inputting data to pieces of digital equipment
US8738834B2 (en) Method and apparatus for configuring electronic devices to perform selectable predefined functions using device drivers
US8351060B2 (en) Method of and apparatus to print image directly
US20080009309A1 (en) Bluetooth device capable of selecting profile and data transmission method thereof
JP5076351B2 (ja) 電子機器、そのデータ転送制御方法、そのデータ転送制御プログラム及びデータ転送システム
KR101504654B1 (ko) 외부 디바이스와 이에 도킹되는 휴대 단말 사이의 연결 수립 방법
KR101199384B1 (ko) 플러그 앤 플레이 기능을 구비한 이동 단말기 및 이를 위한방법
US8743432B2 (en) USB device with PictBridge capability
KR20030057250A (ko) Host 기능을 겸비한 USB 디지털 카메라 시스템
US11797470B2 (en) Electronic device and control method thereof
US20120057185A1 (en) Image forming apparatus and method of forming image thereof
JP5707366B2 (ja) Usb端末の制御方法及びこれを実行する装置
CN104205081A (zh) 信息处理***、信息处理方法、服务器、服务器的控制方法和控制程序
JP2014050004A (ja) 撮像装置、その制御方法、プログラム
JP2012063851A (ja) 周辺装置制御回路およびそれを備えた情報処理装置
JP2004318207A (ja) 情報処理装置、情報処理プログラム、及び記録媒体
JP2005130316A (ja) 画像入力装置及び通信プロトコル切り替え方法
JP2024032421A (ja) プログラム、画像形成システム及び画像形成装置
JP2020155897A (ja) 電子黒板、電子黒板管理システム及び電子黒板管理方法
JP2009015865A (ja) 画像入出力システム
JP2019161585A (ja) 情報処理装置、情報処理システム、設定情報の共有方法およびプログラム
JP2005084762A (ja) 印刷ターミナル
JP2006227821A (ja) 周辺機器制御方法
JP2017073757A (ja) 情報処理装置、その制御方法、及びプログラム

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
LAPS Lapse due to unpaid annual fee