KR101548437B1 - 휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치 - Google Patents

휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치 Download PDF

Info

Publication number
KR101548437B1
KR101548437B1 KR1020137015862A KR20137015862A KR101548437B1 KR 101548437 B1 KR101548437 B1 KR 101548437B1 KR 1020137015862 A KR1020137015862 A KR 1020137015862A KR 20137015862 A KR20137015862 A KR 20137015862A KR 101548437 B1 KR101548437 B1 KR 101548437B1
Authority
KR
South Korea
Prior art keywords
driver
portable device
host system
storage medium
usb
Prior art date
Application number
KR1020137015862A
Other languages
English (en)
Other versions
KR20130095807A (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 KR20130095807A publication Critical patent/KR20130095807A/ko
Application granted granted Critical
Publication of KR101548437B1 publication Critical patent/KR101548437B1/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/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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Transfer Systems (AREA)

Abstract

휴대용 디바이스가 유선 또는 무선으로 범용 직렬 버스(USB) 또는 IEEE 1934와 같은 접속 기술을 사용하여 호스트 시스템에 접속될 수 있다. 휴대용 디바이스가 호스트 시스템과 적절하게 상호작용할 수 있게 하는 드라이버가 휴대용 디바이스 내부의 비휘발성 메모리에 저장될 수 있다. 휴대용 디바이스가 호스트 시스템에 접속될 때, 호스트 시스템이 휴대용 디바이스용 드라이버를 갖지 않거나 호스트 시스템 내의 드라이버가 휴대용 디바이스에 저장된 드라이버에 의해 구식이라는 것이 결정되면 휴대용 디바이스는 그 안에 저장된 드라이버를 호스트 시스템에 자동으로 설치할 수 있다. 인터넷 접속될 때, 휴대용 디바이스는 최신의 드라이버를 찾기 위해 인터넷을 더 탐색할 수 있다. 휴대용 디바이스는 인터넷에서 발견된 최신의 드라이버를 호스트 시스템에 다운로딩하고 설치할 수 있고, 적절한 경우에 휴대용 디바이스에 저장된 드라이버를 그에 따라 업데이트할 수 있다.

Description

휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치{METHOD AND APPARATUS FOR INTEGRATING DRIVER(S) OF A PORTABLE DEVICE INTO THE PORTABLE DEVICE}
본 개시물은 일반적으로 전자 디바이스에 커플링된 휴대용 디바이스들에 관한 것으로, 더욱 구체적으로는, 디바이스가 호스트 전자 디바이스에 커플링되면 드라이버를 자동으로 설치할 수 있는 통합된 드라이버를 갖는 휴대용 디바이스에 관한 것이다.
호스트 전자 디바이스에 휴대용 디바이스들의 접속을 돕는 다수의 접속 기술들이 존재한다. 휴대용 디바이스들은 카메라들, 마우스들, 키보드들, 프린터들, 플래시 드라이브들, 외장 하드 드라이브들, 미디어 플레이어들, 네트워크 어댑터들 등과 같은 컴퓨터 주변 디바이스들을 포함한다. 호스트 전자 디바이스는 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿, 넷북 컴퓨터, 스마트 폰 등을 포함할 수 있다. 호스트 디바이스는 또한 주변 디바이스로서 또다른 호스트 전자 디바이스에 커플링될 수 있다. 접속 기술들은 범용 직렬 버스(USB), IEEE 1934 인터페이스, 및 eSATA를 포함하지만 이에 제한되지 않는다.
USB는 디바이스들과 개인 컴퓨터(PC)와 같은 호스트 사이의 통신을 확립하기 위한 직렬 버스 인터페이스용 산업 표준이다. USB는 단방향 또는 양방향 파이프들의 세트로서 USB 호스트와 USB 디바이스 사이에서 기능적 데이터 및 제어 교환을 지원한다. USB 데이터 전송들은 호스트 소프트웨어와 USB 디바이스상의 특정한 종점(endpoint) 사이에서 발생한다. USB 호스트는 USB 호스트 제어기(HC)를 통해 USB 디바이스들과 상호작용한다. 호스트 상의 USB 시스템 소프트웨어는 USB 디바이스들과 호스트 기반 디바이스 소프트웨어 사이의 상호작용들을 관리한다. USB 표준은 플러그 앤 플레이(plug and play) 및 핫 스와핑(hot swapping)을 지원한다.
IEEE 1934 인터페이스는 고대역폭 통신 및 등시성(isochronous) 실시간 데이터 전송용 직렬 버스 인터페이스 표준이다. 이것은 PC들, 디지털 오디오/비디오 애플리케이션들에 의해 사용될 수 있다. 이러한 인터페이스를 FireWire, i.LINK, 또는 Lynx로 또한 지칭할 수 있다. IEEE 1934는 트리 체인 토폴로지에서 다수의 주변기기들(예를 들어, 63개)을 접속할 수 있다. 이것은 다수의 애플리케이션들에서 병렬 소형 컴퓨터 시스템 인터페이스(SCSI) 접속을 대체하기 위해 사용될 수 있다. 이것은 스캐너와 프린터 사이의 통신과 같은 피어-투-피어 디바이스 통신이 시스템 메모리 또는 중앙 처리 장치(CPU)를 사용하지 않고 발생하게 한다. 이것은 플러그 앤 플레이 및 핫 스와핑을 지원하도록 설계된다.
external Serial Advanced Technology Attachment (SATA)를 나타내는 eSATA는 SATA 인터페이스 표준의 변형이다. SATA 인터페이스는 호스트 버스 어댑터들을 하드 디스크 드라이브들 및 광 드라이브들과 같은 대용량 저장 디바이스들에 접속하는 버스 인터페이스이다. eSATA는 예를 들어, PC를 외장 하드 디스크 드라이브에 접속하는 외부 접속을 위해 설계된다.
어느 접속 기술이 사용되든, 사용자가 호스트와 상호작용하도록 휴대용 디바이스를 사용하기 위해 휴대용 디바이스의 디바이스 드라이버를 호스트에 설치하는 것이 일반적으로 필요하다. 예를 들어, USB 포트를 갖는 디지털 카메라에는 일반적으로, 디지털 카메라용 드라이버를 포함하는 설치 컴팩트 디스크(CD)가 동반된다. USB 접속을 통해 PC와 디지털 카메라 사이에서 디지털 사진을 전송하기 위해, 드라이버가 PC에 먼저 설치될 필요가 있다. 유사하게, IEEE 1934를 통해 IEEE 1934 포트를 갖는 캠코더와 PC 사이에서 비디오 데이터를 전송하기 위해 드라이버를 PC에 설치할 필요가 있다.
통상적으로, 각 휴대용 디바이스는, 다른 디바이스가 동일한 타입이지만 상이한 제조자에 의해 제조되는 경우에도, 보통 다른 디바이스와 공유될 수 없는 자체 드라이버를 갖는다. 따라서, 사용자는 추후 사용을 위해 휴대용 디바이스용 설치 CD를 보관할 필요가 있다. 예를 들어, PC가 고장이 나서 나중에 재조립될 필요가 있는 경우에, 사용자는 휴대용 디바이스용 드라이버를 다시 설치하기 위해 CD를 찾을 필요가 있다. 이때, 사용자는 설치 CD를 더 이상 찾지 못할 수 있다. 따라서, 휴대용 디바이스용 드라이버 CD를 갖는 것은 매우 불편하다.
개시된 주제의 특징들 및 이점들은 이 주제의 아래의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명의 일 실시예에 따른, USB 인터페이스를 사용하여 휴대용 디바이스들이 호스트 디바이스에 접속되는 일 예시적인 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른, 무선 USB 인터페이스를 사용하여 휴대용 디바이스들이 호스트 디바이스에 접속되는 다른 예시적인 시스템을 도시한다.
도 3은 본 발명의 일 실시예에 따른 USB 디바이스의 기능 블록도이다.
도 4는 본 발명의 일 실시예에 따른 무선 USB 접속을 이용하는 디바이스의 기능 블록도이다.
도 5는 본 발명의 일 실시예에 따른 접속 기술을 사용하여 호스트 디바이스에 접속될 수 있는 휴대용 디바이스의 기능 블록도를 예시한다.
도 6은 본 발명의 일 실시예에 따른, USB 디바이스가 호스트에 커플링될 때 USB 동작들을 개시하는 프로세스를 예시하는 플로우차트이다.
본 출원에서의 개시된 주제의 실시예들에 따르면, 휴대용 디바이스용 드라이버가 휴대용 디바이스 자체와 통합될 수 있다. 드라이버는 휴대용 디바이스 내의 비휘발성 메모리에 저장될 수 있다. 휴대용 디바이스가 호스트 디바이스에 유선 또는 무선으로 커플링될 때, 휴대용 디바이스는 호스트 디바이스의 운영 체제(OS)에 의해 인식될 수 있다. 호스트 디바이스가 이전에 설치된 휴대용 디바이스의 드라이버를 가지면, 휴대용 디바이스는 호스트 디바이스와의 통신을 시작할 수도 있고 사용자에 의해 직접적으로 사용될 수 있다. 호스트 디바이스가 휴대용 디바이스를 인식하지 못하거나 휴대용 디바이스에 대한 호스트 디바이스에 설치된 작동 드라이버를 갖지 않으면, 휴대용 디바이스는 호스트의 OS에 플래시 드라이브로서 나타날 수 있다. 휴대용 디바이스의 비휘발성 메모리에 저장된 자동 실행 프로그램이 본 발명의 일 실시예에 따라 휴대용 디바이스의 비휘발성 메모리에 저장된 드라이버를 호스트 디바이스에 설치하도록 구동할 수 있다. 호스트 디바이스가 인터넷에 접속되면, 자동 실행 프로그램은 인터넷을 통해 드라이버의 최신의 업데이트를 검색하여, 휴대용 디바이스의 비휘발성 메모리에 저장된 드라이버를 업데이트할 수 있다. 일 실시예에서, 자동 실행 프로그램은 드라이버에 대한 임의의 업데이트를 주기적으로 검사하여, 휴대용 디바이스에 로컬로 저장된 드라이브를 업데이트할 수 있다.
몇몇 디바이스들은 호스트와 상호작용하기 위해 2개 이상의 드라이버를 필요로 할 수 있다. 설명의 간결함 및 편의를 위해, 단일의 용어 "드라이버"가 아래의 명세서, 도면들, 청구항들 및 요약 전반적으로, "일(a)" 또는 "하나의(one)"와 같은 수치 용어들에 후속하더라도, 오직 단일 용어 "드라이버"는 하나의 드라이버 또는 다중의 드라이버들을 지칭하기 위해 사용될 것이다.
개시된 주제의 "일 실시예" 또는 "실시예"에 대한 본 명세서에서의 참조는, 실시예와 관련하여 설명된 특정한 특성, 구조, 또는 특징이 개시된 주제의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반적으로 다양한 장소들에 나타나는 어구 "일 실시예에서"의 출현이 반드시 동일한 실시예를 모두 지칭하지는 않는다.
도 1은 USB 인터페이스를 사용하여 휴대용 디바이스들이 호스트 디바이스에 접속되는 일 예시적인 시스템(100)을 도시한다. 시스템(100)은 프로세서(110), 메모리 제어기 허브(MCH: 120), 및 입/출력(I/O) 제어기 허브(ICH: 140)를 포함한다. 도면에 하나의 프로세서가 도시되어 있지만, 시스템(100)에는 2개 이상의 프로세서들이 존재할 수 있다. 프로세서(110)와 같은 각 프로세서는 하나 이상의 프로세싱 코어를 가질 수 있고 시스템 상호접속(interconnect)(115)에 커플링된다.
시스템 상호접속(115)은 프로세서(110)가 다른 프로세서들 또는 디바이스들, 예를 들어, MCH(120)와 통신하게 하기 위해 인터페이스 신호를 제공한다. 시스템 상호접속(115)은 단일-프로세서 또는 멀티프로세서 구성을 지원할 수 있다. 시스템 상호접속(115)은 전면 버스(Front Side Bus: FSB), 링크 기반 점 대 점 상호접속, 또는 임의의 다른 타입의 상호접속일 수 있고, 병렬, 순차적, 파이프라인(pipelined), 비동기, 동기, 또는 이들의 임의의 조합일 수 있다.
MCH(120)는 시스템 상호접속(115)에 커플링될 수 있다. MCH(120)는 시스템 메모리(130) 및 ICH(140)와 같은 메모리 및 입/출력 디바이스들의 제어 및 구성을 제공한다. MCH(120)는 분리 실행 모드(isolated execution mode), 호스트-주변기기 버스 인터페이스, 메모리 제어와 같은 다중의 기능들을 통합하는 칩세트에 통합될 수 있다. 칩세트는 또한 ICH(140)의 기능들을 통합할 수 있다. 명확성을 위해, 모든 주변기기 버스들이 도시되지는 않는다. 시스템(100)이 주변기기 컴포넌트 상호접속(PCI), 가속 그래픽 포트(AGP), 및 산업 표준 아키텍처(ISA) 버스 등과 같은 주변기기 버스들을 또한 포함할 수 있다는 것이 예상된다. MCH(120)는 프로세서(110)와 메모리(130) 사이의 통신을 제어하는 메모리 제어기(125)를 포함한다. 프로세서(110) 및 MCH(120)는 시스템 상호접속(115)을 통해 통신한다. 대안의 실시예에서, MCH(120)에서의 기능들은 프로세서(110)에 통합될 수도 있고 프로세서(110)는 ICH(140)에 직접 커플링될 수 있다.
메인 메모리(130)가 프로세서(110) 또는 시스템에 포함된 임의의 다른 디바이스에 의해 실행되는 명령들의 시퀀스들 및 데이터를 저장할 수 있다. 메모리 제어기(125)는 프로세서(110), 및 컴퓨팅 시스템(100)에서의 다른 디바이스들과 연관된 메모리 트랜잭션들에 응답하여 메인 메모리(130)에 액세스할 수 있다. 메인 메모리(130)는 메모리 제어기(125)가 데이터를 판독할 수 있고/있거나 데이터를 기록할 수 있는 어드레스가능한 저장 위치들을 제공하는 다양한 메모리 디바이스들을 포함할 수 있다. 메인 메모리(130)는 동적 랜덤 액세스 메모리(DRAM) 디바이스들, 동기 DRAM(SDRAM) 디바이스들, 이중 데이터 레이트(DDR) SDRAM 디바이스들, 또는 다른 메모리 디바이스들과 같은 하나 이상의 상이한 타입의 메모리 디바이스들을 포함할 수 있다.
입/출력 제어기 허브(ICH: 140)는 직접 미디어 인터페이스(DMI)와 같은 고속 칩 대 칩 상호접속(135), 또는 임의의 다른 타입의 칩 대 칩 인터페이스를 사용하여 MCH(120)에 커플링될 수 있다. DMI는 2개의 단방향 레인들을 통해 2 기가비트/초 동기 전송 레이트를 지원한다. ICH(130)는 I/O 기능들을 지원하도록 설계된 다수의 기능들을 갖는다. ICH(140)는 또한, I/O 기능들을 수행하기 위해 MCH(120)와 함께 또는 그와 별개로 칩세트에 통합될 수 있다. ICH(140)는 PCI 버스 인터페이스, 프로세서 인터페이스, 인터럽트 제어기, 직접 메모리 액세스(DMA) 제어기, 전력 관리 로직, 타이머, 범용 직렬 버스(USB) 인터페이스, 대용량 저장 인터페이스, LPC(low pin count) 인터페이스 등과 같은 다수의 인터페이스들 및 I/O 기능들을 포함할 수 있다. I/O 디바이스(175) 및 I/O 디바이스(180)는 PCI 버스 인터페이스 또는 임의의 다른 타입의 인터페이스들을 통해 ICH(140)에 커플링될 수 있다.
특히, ICH(140)는 USB 버스(150)에 커플링된 USB 호스트 제어기(HC: 145)를 포함한다. 도면에 도시하지는 않았지만, ICH(140)는 더 많은 USB 호스트 제어기를 포함할 수 있다. USB 호스트 제어기(145)는 하나 이상의 USB 포트들을 제공할 수 있다. USB 호스트 제어기(145)는 USB 표준(예를 들어, USB 2.0, USB 3.0)에 정의된 바와 같이 다수의 호스트 제어기 레지스터들을 포함한다. 이들 레지스터들의 예들로는, USB 커맨드 레지스터, USB 상태 레지스터, USB 인터럽트 인에이블 레지스터, USB 프레임 번호 레지스터, USB 프레임 리스트 베이스 어드레스 레지스터, USB SOF(start of frame) 레지스터, USB 포트 0 상태 및 제어 레지스터, 및 USB 포트 1 상태 및 제어 레지스터를 포함한다. USB 버스(150)는 USB 키보드(155), USB 마우스(160), USB 카메라(165), 및 다른 USB 디바이스들(170)과 같은 다수의 USB 디바이스들에 커플링된다.
USB 호스트 제어기와 USB 디바이스 사이의 데이터 전송(트랜잭션)은, 데이터 전송의 타입 및 방향, USB 디바이스의 어드레스 및 디바이스에서의 종점 수를 식별하는 USB 패킷을 호스트 제어기가 전송할 때 개시된다. 종점은 USB 호스트와 USB 디바이스 사이의 통신 흐름의 종단인 USB 디바이스의 고유하게 식별가능한 부분이다. 종점 방향은 인(IN)(호스트로) 또는 아웃(OUT)(호스트로부터)일 수 있다.
USB 호스트와 USB 디바이스 사이의 데이터 및 제어 교환은 단방향 또는 양방향 논리 파이프들의 세트로서 지원된다. 논리 파이프는 USB 호스트와 USB 디바이스 사이에서 데이터 및 제어 패킷들을 교환하기 위한 USB 호스트와 USB 디바이스에서의 종점 사이의 논리적 추상(abstraction)이다. USB 디바이스는 복수의 논리적 파이프들(파이프 번들)을 통해 데이터를 호스트에 전송할 수 있고, 예를 들어, 데이터를 USB 디바이스에서의 아웃 종점에 전송하는 별개의 단방향 논리적 파이프 및 USB 디바이스에서의 인 종점으로부터 USB 호스트에 데이터를 전송하는 다른 단방향 논리적 파이프가 존재할 수 있다.
USB 디바이스(예를 들어, USB 카메라(165))가 USB 포트를 통해 USB 호스트(예를 들어, 도 1의 시스템(100))에 먼저 접속될 때, USB 호스트 제어기(145)는 디바이스가 지원되는지를 결정한다. 디바이스가 지원되면, 호스트와 디바이스 사이의 통신에 필요한 디바이스 드라이버가 로딩된다. USB 디바이스가 매우 일반적(예를 들어, USB 키보드(155))일 때, 호스트는 디바이스용 드라이버를 가질 수 있다. 이러한 경우에서, 드라이버는 호스트 자체로부터 로딩될 수 있다. 디바이스 드라이버가 호스트에서 발견될 수 없으면, 호스트는 (인터넷에 접속된 경우에) 디바이스 드라이버를 찾기 위해 인터넷을 탐색할 수 있다. 디바이스 드라이버가 인터넷상에서 발견되면, 호스트에 다운로딩될 수 있다. 매우 종종, USB 디바이스에는 디바이스 드라이버가 저장되어 있는 설치 매체(예를 들어, CD)가 동반된다. 디바이스 드라이버는 설치 매체로부터 로딩될 수 있다. 디바이스 드라이버가 호스트에 로딩되면, 다음에 디바이스가 호스트에 재접속될 때에 다시 로딩될 필요가 없다.
실제로, 호스트에서의 USB 디바이스용 디바이스 드라이버는 (예를 들어, 복구(rebuilding)로 인해) 손상되거나 손실될 수 있다. 이러한 문제가 발생할 때, 디바이스 드라이버는 호스트에서 수리되거나 재설치될 필요가 있다. 그러나, 설치 매체가 발견되지 않을 수도 있거나, 그 매체가 손상될 수도 있다. 인터넷상에서 특정한 디바이스용 드라이버를 찾는 것이 항상 가능하지는 않다. 명백하게, 이것은 사용자에게 문제점일 수 있다.
본 발명의 일 실시예에 따르면, USB 디바이스의 드라이버는 디바이스 자체 내부에 저장될 수 있다. 예를 들어, 도 1의 USB 카메라(165)는 자신의 드라이버를 자신의 내부의 플래시 메모리에 저장시킬 수 있다. USB 카메라(165)가 시스템(100)에 최초 접속될 때, USB 카메라(165)의 드라이버는 시스템(100)에 자동으로 설치될 수 있다. 주기적으로, USB 카메라(165)는 드라이버에 대한 임의의 업데이트를 위해 인터넷을 탐색할 수도 있고, USB 카메라(165) 내부의 플래시 메모리에 업데이트들을 다운로딩할 수 있다. 이러한 방식으로, 드라이버의 재설치가 필요할 때, 원래의 설치 매체를 찾는 부담없이 업데이트된 드라이버가 USB 카메라(165)로부터 재설치될 수 있다. 사용자는 다른 아이템을 유지하지 않아도 된다.
도 2는 무선 USB 인터페이스를 사용하여 휴대용 디바이스들이 호스트 디바이스에 접속되는 다른 예시적인 시스템(200)을 도시한다. USB 인터페이스와 관련된 것들을 제외하고 도 1에서의 시스템(100)과 유사한 컴포넌트들을 갖는 시스템(200)이 도시되어 있다. 특히, 시스템(200)은 시스템(200)과 무선 USB 카메라(220), 무선 USB 마우스(230), 무선 USB 키보드(250), 및 다른 무선 USB 디바이스들(240)과 같은 무선 USB 디바이스들 사이의 무선 접속을 용이하게 하는 무선 USB 호스트 제어기(210)를 포함한다. 또한, 무선 USB 호스트 제어기(210)는 USB 호스트 제어기(145)와 같은 유선 USB 호스트 제어기의 기능들을 또한 수행할 수 있다. 유사하게는, 무선 USB 디바이스(예를 들어, 220)는 자신의 드라이버를 자신 내부의 플래시 메모리에 저장시킬 수 있다. 무선 USB가 시스템(200)에 무선으로 먼저 접속될 때, 그 안에 저장된 드라이버가 시스템(200)에 설치될 수 있으며, 이것은 무선 USB 디바이스가 시스템(200)과 통신하게 할 것이다. 무선 USB 디바이스는 드라이버에 대한 임의의 업데이트를 찾기 위해 인터넷을 또한 탐색할 수 있고, 내부의 플래시 메모리에 업데이트들을 주기적으로 다운로딩할 수 있다.
도 1 및 도 2가 USB 접속을 사용하는 예들을 도시하지만, 다른 접속 기술들이 또한 사용될 수 있다. 일 실시예에서, IEEE 1934 인터페이스가 사용될 수 있다. 휴대용 IEEE 1934 디바이스가 유선 또는 무선으로 호스트(예를 들어, 100)에 접속될 수 있다. 휴대용 디바이스는 자신의 드라이버를 디바이스 내부의 플래시 메모리 또는 다른 비휘발성 메모리에 저장시킬 수 있다. 디바이스가 호스트에 먼저 접속될 때, 드라이버가 호스트에 설치될 수 있다. 디바이스는 그것의 드라이버에 대한 업데이트들을 찾기 위해 인터넷을 탐색할 수 있고 디바이스 내부의 비휘발성 메모리에 업데이트들을 주기적으로 저장할 수 있다. 다른 실시예에서, eSATA 인터페이스는 유선 또는 무선으로 휴대용 디바이스를 호스트에 접속하기 위해 사용될 수 있다. 휴대용 eSATA 디바이스의 드라이버는 디바이스 내부의 비휘발성 메모리에 저장될 수 있고, 휴대용 eSATA 디바이스가 호스트에 먼저 접속될 때 호스트에 설치될 수 있다. 내부에 저장된 드라이버는 인터넷으로부터 업데이트들을 주기적으로 다운로딩함으로써 업데이트될 수 있다.
도 3은 본 발명의 일 실시예에 따른 USB 디바이스(300)의 기능 블록도이다. USB 디바이스(300)는 저장 매체(310), 클록 생성기(320), USB 디바이스 제어기(330), USB 커넥터(340), 및 USB 인터페이스(350)를 포함한다. 저장 매체(310)는 USB 디바이스(300)에 대한 드라이버를 저장하기 위해 플래시 메모리 또는 다른 타입의 비휘발성 메모리를 포함할 수 있다. 저장 매체(310)는 USB 디바이스(300)의 동작들을 제어하기 위해 USB 디바이스 제어기(330)에 의해 사용된 명령들과 같은 USB 디바이스(310)에 대한 다른 데이터를 또한 저장할 수 있다. 클록 생성기(320)는 USB 디바이스(300)에 대한 메인 클록 신호를 생성하기 위한 오실레이터를 포함할 수 있다. 클록 생성기(320)는 위상 고정 루프(PLL)를 통해 USB 디바이스(300)의 데이터 출력을 또한 제어할 수 있다.
USB 커넥터(340)는 PC와 같은 호스트 디바이스에 대한 물리적 인터페이스를 제공한다. USB 표준은 여러 타입의 커넥터들을 특정한다. 예를 들어, 표준 타입 A 커넥터는 USB 호스트상의 리셉터클(receptacle) 또는 허브에 삽입하는 편평한 직사각형(flattened rectangle)이고 전력과 데이터 양자를 반송한다. 표준 타입 A 커넥터는 USB 키보드, 마우스, 또는 플래시 드라이브상에서 빈번하게 볼 수 있다. 다른 예에 대해, 표준 타입 B 커넥터는 경사진 외부 코너들을 갖는 각형(square shape)을 갖고, 통상적으로 착탈식 케이블을 사용하는 디바이스(예를 들어, 프린터)상의 업스트림 리셉터클에 플러그한다. 모바일 폰들 및 디지털 카메라들과 같은 더 작은 디바이스들에 대해 통상적으로 사용되는 USB 미니(mini) 및 마이크로 커넥터들과 같은 다른 타입의 커넥터들이 존재한다.
USB 인터페이스(350)는 호스트와 USB 디바이스(300) 사이의 인터페이싱 기능들을 제공한다. 예를 들어, USB 인터페이스(350)는 USB 디바이스(300)로부터 호스트로 데이터를 송신하기 위한 송신기 및 호스트로부터 USB 디바이스(300)로 데이터를 수신하기 위한 수신기를 포함할 수 있다. 송신기 및 수신기는 송신 및 수신 기능들을 수행하기 위해 트랜시버로서 함께 결합될 수 있다. USB 인터페이스(350)는 데이터를 호스트에 송신하기 이전에 USB 표준에 따라 데이터를 포맷하고 데이터를 처리하기 이전에 호스트로부터 수신된 데이터를 전처리(pre-process)(예를 들어, USB-포맷 데이터 스트림으로부터 필요한 정보를 추출)하기 위한 모듈을 또한 포함할 수 있다. 데이터의 포맷팅은 데이터를 압축하는 것을 포함할 수 있고 전처리는 데이터를 압축해제하는 것을 포함할 수 있다. 또한, USB 인터페이스(350)는 USB 표준에 의해 요구되는 프로토콜 기능들 중 일부 또는 모두를 수행할 수 있다.
USB 디바이스 제어기(330)는 USB 디바이스(300)에서의 다른 컴포넌트들의 동작들을 제어한다. 일 실시예에서, USB 디바이스 제어기(330)는 소량의 온-칩 메모리를 갖는 소형 마이크로제어기를 포함할 수 있다. 마이크로제어기는 중앙 처리 장치(CPU)를 포함할 수 있다. 일 실시예에서, USB 디바이스 제어기(330)는 USB 플래시 드라이브의 기능을 시뮬레이션할 수 있고, 이것은 USB 디바이스(300)가 호스트에 접속될 때 USB 디바이스(300)를 호스트에 대해 플래시 드라이브인 것으로 보이게 한다. USB 디바이스 제어기는 자동 설치 및 보안 이슈들을 처리하기 위한 모듈(335)을 포함할 수 있다. 모듈(335)은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. USB 디바이스(300)가 호스트에 접속될 때, 호스트는 디바이스 제어기(330)의 시뮬레이션된 USB 플래시 드라이브 기능으로 인해 디바이스(300)를 플래시 드라이브로서 인식한다. 모듈(335)은 USB 디바이스(330)가 호스트와 적절하게 상호작용하기 위해 필요한 드라이버를 호스트가 갖는지를 먼저 검사한다. 필요한 드라이버를 갖지 않으면, 모듈(335)은 저장 매체(310)에 저장된 드라이버의 호스트 내의 설치를 초기화할 수 있다. 호스트가 USB 디바이스(330)에 대한 드라이버를 이미 가지면, 모듈(335)은 호스트 내의 드라이버를 저장 매체(310)에 저장된 드라이버와 더 비교한다. 저장 매체(310)에 저장된 드라이버가 호스트 내의 드라이버 보다 많이 업데이트된 것이면, 모듈(330)은 저장 매체(310)에 저장된 드라이버로 호스트 내의 드라이버를 업데이트할 수 있다. 모듈(335)은 업데이팅 프로세스를 수행하기 이전에 사용자가 호스트 내의 드라이버를 업데이트하기 원하는지의 선택을 사용자에게 더 제공할 수 있다.
일 실시예에서, 모듈(335)은 저장 매체(310)에 저장된 드라이버에 대한 임의의 업데이트들 또는 더 업데이트된 드라이버를 찾기 위해 (호스트가 인터넷에 접속된 경우에) 인터넷을 더 탐색할 수 있다. 더 업데이트된 드라이버 또는 업데이트들이 발견되면, 모듈(335)은 업데이트들의 더 업데이트된 드라이버가 바이러스에 의해 감염되었는지를 검사할 수 있다. 모듈(335)은 이러한 바이러스 검사를 수행하기 위해 호스트의 OS를 인보크할 수 있다. 바이러스가 발견되지 않으면, 모듈(335)은 사용자가 업데이트들의 더 업데이트된 드라이버를 다운로딩하기 원하는지 사용자에게 질문할 수 있다. 허용되는 경우에, 모듈(335)은 더 업데이트된 드라이버 또는 업데이트들을 다운로딩할 수 있고 이들을 호스트에 설치할 수 있다. 설치가 성공적이면, 더 업데이트된 드라이버 또는 업데이트들은 저장 매체(310)에 저장될 수 있다. 다운로딩된 업데이트들이 작동하는 방식에 의존하여, 다운로딩된 업데이트들은 저장 매체에 저장된 드라이버를 업데이트할 수 있거나 저장 매체(310)에 개별적으로 업데이트들을 단순히 저장할 수 있다. 업데이트들이 저장 매체에 개별적으로 저장되면, 모듈(335)은 USB 디바이스가 다음에 호스트에 접속될 때 드라이버를 설치할지 호스트에서 드라이버를 업데이트할지를 결정하기 위해, 원래 저장된 드라이버 및 저장 매체(310)에서의 임의의 업데이트들 양자를 고려할 것이다. 다른 실시예에서, 모듈(335)은 USB 디바이스가 호스트에 접속될 때 마다 드라이버에 대한 업데이트들을 찾기 위해 인터넷을 탐색하지 않을 수 있다. 모듈(335)은 드라이버에 대한 업데이트들을 주기적으로(예를 들어, 2달 마다) 검사하는 것을 선택할 수 있다. 유사하게는, 모듈(335)은 인터넷상에서 드라이버 또는 드라이버에 대한 업데이트를 탐색하면서 디바이스(300)에 대한 임의의 픽스(fix)들 또는 펌웨어 업데이트들을 찾기 위해 인터넷을 또한 탐색할 수 있다. 이들 중 어느 것이 발견되면, 모듈(335)은 디바이스가 가질 수도 있는 임의의 버그들을 픽스하고/하거나 디바이스의 펌웨어를 업데이트하기 위해 호스트 시스템을 통해 디바이스(300)에 그것을 다운로딩할 수 있다. 픽스들 및/또는 펌웨어 업데이트들은 바이러스에 대해 스캔되고 이들을 다운로딩하기 이전에 사용자에게 허가가 요청된다.
추가로, 모듈(335)은 데이터가 호스트에 전송되기 이전에 데이터를 암호화할 수 있고, 데이터가 호스트로부터 수신된 이후에 데이터를 암호해독할 수 있다. 일 실시예에서, 암호화 및 암호해독화 기능들은 USB 인터페이스(350)에 의해 수행될 수 있다.
도 4는 무선 USB 접속을 사용하는 디바이스(400)의 기능 블록도이다. 디바이스(400)는 저장 매체(410), 클록 생성기(420), USB 디바이스 제어기(430), USB 커넥터(440), 및 USB 인터페이스(450)를 포함한다. 저장 매체(410), 클록 생성기(420), 및 USB 커넥터(440)는 USB 디바이스(300)에서의 저장 매체(310), 클록 생성기(320), 및 USB 커넥터(340) 각각과 유사할 수 있다. USB 커넥터(440)는 디바이스(400)가 유선 또는 물리적 커넥터를 통해 호스트에 접속하게 할 수 있다. 무선 USB 인터페이스(450)는 유선 USB 디바이스 인터페이스(예를 들어, 도 3의 USB 인터페이스(350))가 통상적으로 제공하는 기능들을 수행하는 것에 부가하여, 디바이스(400)와 호스트 사이의 무선 인터페이스를 제공한다. 무선 USB 인터페이스(450)는 무선 신호 송신기 및 무선 신호 수신기를 제공할 수 있다.
USB 디바이스 제어기(430)는 도 3에 도시되어 있는 바와 같은 USB 디바이스(330)와 유사할 수 있다. 이것은 상술한 바와 같은 USB 디바이스 제어기(335)의 기능들과 유사한 기능들을 수행할 수 있다. 추가로, USB 디바이스 제어기(430)는 디바이스(400)가 호스트에 무선으로 접속될 때, USB 디바이스 제어기(335)에 대해 상술한 바와 같이, 업데이트들의 검사, 비교, 설치/업데이트, 탐색 및 다운로딩을 수행한다.
도 5는 본 발명의 일 실시예에 따른 접속 기술을 사용하여 호스트 디바이스에 접속될 수 있는 휴대용 디바이스(500)의 기능 블록도를 예시한다. 도 4에 도시된 디바이스(400)와 유사하게, 휴대용 디바이스(500)는 저장 매체(510), 클록 생성기(520), 디바이스 제어기(530), 디바이스 커넥터(540), 및 디바이스 인터페이스(550)를 포함할 수 있다. 그러나, 휴대용 디바이스(500)는 호스트에 접속하기 위해 USB 기술과는 상이한 접속 기술을 사용할 수 있다. 예를 들어, 휴대용 디바이스(500)는 유선 또는 무선으로 호스트에 접속하기 위해 IEEE 1934 또는 eSATA 인터페이스를 사용할 수 있다. 접속 기술을 제외하고는, 저장 매체(510), 클록 생성기(520), 디바이스 제어기(530), 디바이스 커넥터(540), 및 디바이스 인터페이스(550)는 도 4에 도시되어 있고 상술한 바와 같은 저장 매체(410), 클록 생성기(420), 디바이스 제어기(430), 디바이스 커넥터(440), 및 무선 디바이스 인터페이스(450) 각각과 유사할 수 있고 그것의 유사한 기능들을 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른, USB 디바이스가 호스트에 커플링될 때 USB 동작들을 개시하는 프로세스(600)를 예시하는 플로우차트이다. 블록 605에서, 디바이스가 USB 인터페이스 또는 임의의 다른 타입의 인터페이스들(예를 들어, IEEE 1934, eSATA)과 같은 접속 기술을 통해 호스트에 접속된다. 접속은 유선 또는 무선을 통할 수 있다. 블록 610에서, 디바이스가 호스트에 의해 인식되는지가 결정된다. 인식되지 않으면, 블록 615에서, 디바이스는 USB 플래시 드라이브와 같은 외부 저장 드라이브로서 호스트에 보여지도록 자체를 구성할 수 있다. 블록 625에서, 디바이스가 호스트에 의해 인식되는지가 더 결정될 수 있다. 인식되지 않으면, 블록 630에서, 사용자가 디바이스 또는 호스트를 검사하는 것이 권장될 수 있다. 이것은 디바이스의 결함으로 인한 것이거나 호스트가 외부 저장 드라이브를 단순히 지원하지 않는다는 사실로 인한 것일 수 있다. 사용자는 호스트 및/또는 디바이스 제조자(들)로부터의 도움을 얻을 필요가 있을 수 있다.
디바이스가 블록 610 또는 블록 625에서 호스트에 의해 인식되면, 블록 620에서, 디바이스가 호스트와 적절하게 상호작용하기 위해 필요한 드라이버를 그 호스트가 갖는지가 더 결정될 수 있다. 예이면, 블록 635에서, 호스트 내의 드라이버가 디바이스 내의 저장 매체(예를 들어, 플래시 메모리)에 저장된 드라이버에 의해 구식인지가 더 결정될 수 있다. 아니오이면, 디바이스는 호스트와 사용될 수 있다. 블록 650에서, 디바이스에서의 저장 매체는, 그 안에 저장된 콘텐츠(예를 들어, 디바이스 드라이버)가 위태로워지지 않도록(예를 들어, 사용자에 의해 갑자기 덮어쓰기(overwrite)되지 않도록) 보호될 수 있다. 일 실시예에서, 디바이스에서의 저장 매체는 호스트에서 구동하는 애플리케이션으로부터 은닉될 수 있다. 다른 실시예에서, 사용자에게는 디바이스 내의 저장 매체에 액세스하는 옵션이 제공될 수 있지만, 저장 매체에 저장된 콘텐츠가 위태로워질 가능성이 있을 때 마다 프롬프트(prompt)될 것이다.
블록 620에서, 호스트가 디바이스에 대한 드라이버를 갖지 않는다는 것이 결정되거나, 블록 635에서, 호스트 내의 드라이버가 디바이스 내의 드라이버에 의해 구식이라는 것이 결정되면, 블록 640에서 디바이스에 대한 최신 드라이버가 호스트에 설치될 수 있다. 인터넷 접속이 있을 때, 인터넷 탐색이 디바이스에 대한 최신 드라이버를 찾기 위해 실시될 수 있다. 디바이스 내의 저장 매체에 저장된 드라이버가 인터넷에서 발견된 최신 드라이버에 의해 구식이면, 인터넷에서 발견된 최신 드라이버는 호스트에 다운로딩되고 설치될 수 있다. 일 실시예에서, 드라이버에 대한 최신 업데이트들은 인터넷에서 발견될 수 있다. 이들 업데이트들은 디바이스에 저장된 드라이버에 따라 다운로딩되고 설치될 수 있다. 최종 드라이버 또는 드라이버에 대한 최신 업데이트들을 찾기 위해 인터넷을 탐색하는 동안, 디바이스에 대한 임의의 픽스 또는 펌웨어 업데이트가 또한 탐색될 수 있다. 임의의 것이 발견되면, 이것은 디바이스가 가질 수도 있는 임의의 버그들을 픽스하고/하거나 디바이스의 펌웨어를 업데이트하도록 다운로딩된다. 임의의 픽스 또는 펌웨어 업데이트는 디바이스 내의 저장 매체에 저장되거나 저장되지 않을 수 있다. 인터넷 접속이 없거나, 인터넷상에서 발견된 최신 드라이버가 디바이스에 저장된 드라이버 보다 더 이상 최신이 아니거나, 인터넷으로부터 발견된 드라이버에 대한 최신 드라이버 또는 업데이트들이 성공적으로 설치되지 않으면, 디바이스에서의 드라이버가 호스트에 설치된다. 블록 645에서, 디바이스에 저장된 드라이버는 필요한 경우에 업데이트될 수 있다. 인터넷에서 발견된 최신의 드라이버 또는 드라이버에 대한 업데이트들이 디바이스에 저장된 드라이버 보다 많이 업데이트되고 호스트에 성공적으로 설치되면, 인터넷에서 발견된 최신의 드라이버 또는 드라이버에 대한 업데이트들은 디바이스에 저장된 드라이버를 업데이트하기 위해 사용될 수 있다. 일 실시예에서, 인터넷에서 발견된 업데이트된 드라이버는 기존의 드라이버에 따라 디바이스에 저장될 수 있다. 디바이스 내의 드라이버가 업데이트된 이후에, 디바이스 내의 저장 매체는 상술한 바와 같이 650에서 보호될 수 있다.
인터넷으로부터 무엇이든 다운로딩되는 데이터 파일의 보안을 위해, 이 파일은 바이러스에 대해 스캐닝된다. 바이러스가 발견되지 않으면, 파일이 다운로딩되기 이전에 사용자에게 허가가 더 요청된다.
개시된 주제의 예시적인 실시예를 도 1 내지 도 6의 블록도 및 흐름도를 참조하여 설명하였지만, 당업자는 개시된 주제를 구현하는 다수의 다른 방법들이 대안으로 사용될 수도 있다는 것을 쉽게 이해할 것이다. 예를 들어, 흐름도들에서 블록들의 실행의 순서는 변경될 수도 있고/있거나 설명한 블록도/흐름도에서의 블록들 중 일부가 변경, 제거, 또는 조합될 수 있다.
선행하는 설명에서, 개시된 주제의 다양한 양태들을 설명하였다. 설명을 위해, 특정한 수들, 시스템들 및 구성들이 주제의 완전한 이해를 제공하기 위해 설명되었다. 그러나, 주제가 특정한 상세들 없이도 실시될 수도 있다는 것이 본 개시물의 이익을 갖는 당업자에게 명백하다. 다른 경우들에서, 널리 공지된 특징들, 컴포넌트들, 또는 모듈들은 설명한 주제를 모호하게 하지 않기 위해 생략되고, 단순화되고, 조합되거나 분할되었다.
개시된 주제를 예시적인 실시예들을 참조하여 설명하였지만, 이러한 설명은 제한하는 관점으로 해석되는 것으로 의도되지 않는다. 개시된 주제가 속하는 당업자에게 명백한 주제의 예시적인 실시예들 뿐만 아니라 다른 실시예들의 다양한 변형들이 개시된 주제의 범위 내에 있는 것으로 여겨진다.

Claims (27)

  1. 휴대용 디바이스로서,
    상기 휴대용 디바이스용 드라이버를 저장하기 위한 저장 매체;
    상기 휴대용 디바이스를 호스트 시스템에 접속하기 위해 사용된 접속 기술과 호환가능한 인터페이싱 기능들을 제공하기 위한 인터페이스; 및
    디바이스 제어기
    를 포함하고,
    상기 디바이스 제어기는, 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되는지 - 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되지 않으면, 상기 휴대용 디바이스 자체가 상기 호스트 시스템에 대하여 플래시 드라이브로서 보이고, 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되면 상기 휴대용 디바이스가 외부 플래시 드라이브 대신 상기 휴대용 디바이스의 주요 기능을 위해 동작함 -, 및 상기 저장 매체에 저장된 드라이버를 상기 호스트 시스템에 설치할지를 결정하고, 설치를 결정한 경우에, 상기 드라이버를 상기 호스트 시스템에 설치하고,
    상기 호스트 시스템에서 드라이버가 발견되지 않으면, 상기 디바이스 제어기는 상기 저장 매체에 저장된 드라이버를 설치하고,
    상기 호스트 시스템이 상기 휴대용 디바이스용 드라이버를 갖는다는 것이 발견되면, 상기 디바이스 제어기는 상기 호스트 시스템에서 발견된 드라이버와 상기 저장 매체에 저장된 드라이버를 비교하며,
    상기 호스트 시스템에서 발견된 드라이버가 상기 저장 매체에 저장된 드라이버보다 더 업데이트된 경우에, 상기 디바이스 제어기는 상기 호스트 시스템에 저장된 드라이버를 설치하고,
    상기 호스트 시스템에서 발견된 드라이버가 상기 저장 매체에 저장된 드라이버보다 덜 업데이트된 경우에, 상기 디바이스 제어기는 상기 호스트 시스템에 저장된 드라이버를 업데이트하는, 휴대용 디바이스.
  2. 제1항에 있어서,
    상기 접속 기술은 표준 범용 직렬 버스(USB) 기술, 표준 무선 USB 기술, IEEE 1934 인터페이스, 또는 무선 IEEE 1934 인터페이스 중 하나 이상인, 휴대용 디바이스.
  3. 제1항에 있어서,
    상기 호스트 시스템은 개인 컴퓨터, 스마트 폰, 태블릿 컴퓨터, 또는 넷북 컴퓨터 중 하나를 포함하는, 휴대용 디바이스.
  4. 제1항에 있어서,
    상기 저장 매체는 비휘발성 메모리를 포함하는, 휴대용 디바이스.
  5. 제1항에 있어서,
    상기 디바이스 제어기는, 상기 호스트 시스템에 상기 드라이버를 전송하기 전에 상기 드라이버를 암호화하기 위한 로직을 포함하는, 휴대용 디바이스.
  6. 제1항에 있어서,
    상기 디바이스 제어기는 상기 저장 매체에 저장된 드라이버보다 더 업데이트된 상기 휴대용 디바이스용 드라이버 또는 상기 저장 매체에 저장된 드라이버에 대한 업데이트를 찾기 위해 인터넷을 탐색하고; 발견되면, 상기 디바이스 제어기는 상기 더 업데이트된 드라이버 또는 상기 업데이트를 인터넷으로부터 다운로딩하고, 상기 더 업데이트된 드라이버 또는 상기 업데이트를 상기 저장 매체에 저장하는, 휴대용 디바이스.
  7. 제6항에 있어서,
    상기 디바이스 제어기는 상기 더 업데이트된 드라이버 또는 상기 업데이트를 인터넷으로부터 다운로딩하기 이전에 그리고 상기 더 업데이트된 드라이버 또는 상기 업데이트를 상기 저장 매체에 저장하기 이전에 사용자에게 허가를 요청하는, 휴대용 디바이스.
  8. 제1항에 있어서,
    상기 디바이스 제어기는 필요한 경우에, 상기 저장 드라이버 내의 드라이버를 상기 호스트 시스템에 자동으로 설치하기 위한 모듈을 포함하는, 휴대용 디바이스.
  9. 제1항에 있어서,
    상기 디바이스 제어기는 상기 호스트 시스템에 외부 저장 드라이브로서 보이도록 상기 휴대용 디바이스를 구성하는, 휴대용 디바이스.
  10. 제1항에 있어서,
    상기 디바이스 제어기는 상기 휴대용 디바이스가 상기 호스트 시스템에 커플링될 때, 상기 저장 매체 내의 콘텐츠를 보호하는, 휴대용 디바이스.
  11. 휴대용 디바이스가 호스트 시스템에 접속될 때 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되는지를 결정하는 단계 - 상기 휴대용 디바이스는 상기 휴대용 디바이스 내부의 저장 매체에 저장된 드라이버를 갖고, 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되지 않으면, 상기 휴대용 디바이스는 상기 휴대용 디바이스 자체를 상기 호스트 시스템에 대하여 플래시 드라이브로서 보이도록 구성하고, 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되면 상기 휴대용 디바이스는 외부 플래시 드라이브 대신 상기 휴대용 디바이스의 주요 기능을 위해 동작함 -;
    상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되는 경우에, 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 결정하는 단계;
    상기 호스트 시스템이 상기 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 갖지 않으면, 상기 휴대용 디바이스로부터 또는 인터넷으로부터 상기 가장 업데이트된 버전의 드라이버를 상기 호스트 시스템에 설치하는 단계; 및
    최신의 버전의 드라이버가 상기 호스트 시스템에 성공적으로 설치되면, 상기 저장 매체에 저장된 드라이버가 상기 최신의 버전의 드라이버가 아닌 경우에 상기 최신의 버전의 드라이버로 상기 저장 매체에 저장된 드라이버를 업데이트하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 결정하는 단계는,
    인터넷 접속이 있으면, 최신의 버전의 상기 휴대용 디바이스용 드라이버를 찾기 위해 인터넷을 탐색하는 단계;
    인터넷 접속이 있는 경우에 인터넷으로부터 발견된 상기 최신의 버전의 드라이버와 상기 저장 매체에 저장된 드라이버 사이에서 업데이트된 버전의 드라이버를 선택하는 단계;
    상기 호스트 시스템이 상기 휴대용 디바이스용 드라이버를 갖지 않으면, 상기 가장 업데이트된 버전의 드라이버로서 상기 업데이트된 버전의 드라이버를 사용하는 단계; 및
    상기 호스트 시스템이 상기 가장 업데이트된 버전의 드라이버로서 드라이버를 가지면, 상기 업데이트된 버전의 드라이버와 상기 호스트 시스템 내의 상기 휴대용 디바이스용 드라이버 사이에서 더 업데이트된 버전의 드라이버를 선택하는 단계
    를 포함하는 방법.
  13. 제12항에 있어서,
    인터넷이 상기 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 가지면, 상기 가장 업데이트된 버전의 드라이버를 상기 호스트 시스템에 다운로딩하는 단계를 더 포함하는 방법.
  14. 제11항에 있어서,
    상기 휴대용 디바이스는, 상기 호스트 시스템에 상기 드라이버를 전송하기 전에 상기 드라이버를 암호화하기 위한 로직을 포함하는 방법.
  15. 제11항에 있어서,
    상기 저장 매체 내의 콘텐츠가 위태로워지는 것으로부터 보호하는 단계를 더 포함하는 방법.
  16. 제11항에 있어서,
    상기 휴대용 디바이스가 상기 호스트 시스템에 초기에 커플링될 때, 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되지 않으면 상기 호스트 시스템에 외부 저장 드라이브로서 보이도록 상기 휴대용 디바이스를 구성하는 단계를 더 포함하는 방법.
  17. 제11항에 있어서,
    상기 휴대용 디바이스는 표준 USB 기술, 무선 표준 USB 기술, IEEE 1934 인터페이스, 또는 무선 IEEE 1934 인터페이스 중 하나를 사용하여 상기 호스트 시스템에 커플링하는 방법.
  18. 휴대용 디바이스가 호스트 시스템에 커플링될 때 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되지 않으면 상기 휴대용 디바이스를 외부 저장 디바이스로서 인식하는 단계 - 상기 휴대용 디바이스가 상기 호스트 시스템에 의해 인식되면, 상기 휴대용 디바이스는 외부 플래시 드라이브 대신 상기 휴대용 디바이스의 주요 기능을 위해 동작함 -;
    상기 휴대용 디바이스가 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 결정할 수 있게 하기 위해 상기 휴대용 디바이스와 통신하는 단계;
    상기 호스트 시스템이 상기 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 갖지 않으면, 상기 휴대용 디바이스가 상기 휴대용 디바이스로부터 또는 인터넷으로부터 상기 가장 업데이트된 버전의 드라이버를 상기 호스트 시스템에 설치하게 하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 휴대용 디바이스가 최신 버전의 상기 휴대용 디바이스용 드라이버를 찾기 위해 인터넷을 탐색하는 것을 용이하게 하는 단계를 더 포함하는 방법.
  20. 제19항에 있어서,
    인터넷이 상기 가장 업데이트된 버전의 상기 휴대용 디바이스용 드라이버를 가지면, 상기 가장 업데이트된 버전의 드라이버가 바이러스들에 의해 감염되었는지를 검사하는 단계, 및 감염되지 않았으면, 상기 휴대용 디바이스가 상기 가장 업데이트된 버전의 드라이버를 상기 호스트 시스템에 다운로딩하게 하는 단계를 더 포함하는 방법.
  21. 제18항에 있어서,
    상기 휴대용 디바이스는 표준 USB 기술, 무선 표준 USB 기술, 또는 IEEE 1934 인터페이스, 및 무선 IEEE 1934 인터페이스 중 하나를 사용하여 상기 호스트 시스템에 커플링하는 방법.
  22. 명령어들을 갖는 머신 판독가능한 저장 매체로서, 상기 명령어들은, 실행될 때, 머신으로 하여금 제11항 내지 제17항 중 어느 한 항에 따른 방법을 수행하게 하는 머신 판독가능한 저장 매체.
  23. 명령어들을 갖는 머신 판독가능한 저장 매체로서, 상기 명령어들은, 실행될 때, 머신으로 하여금 제18항 내지 제21항 중 어느 한 항에 따른 방법을 수행하게 하는 머신 판독가능한 저장 매체.
  24. 제1항에 있어서,
    상기 디바이스 제어기용 클록 신호를 생성하는 오실레이터를 갖는 클록 생성기를 더 포함하고, 상기 클록 생성기는 상기 디바이스 제어기에 커플링되는 휴대용 디바이스.
  25. 제1항에 있어서,
    상기 디바이스 제어기는 레지스터들을 포함하는 휴대용 디바이스.
  26. 제1항에 있어서,
    상기 디바이스 제어기는 무선 제어기인 휴대용 디바이스.
  27. 삭제
KR1020137015862A 2010-12-20 2011-12-06 휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치 KR101548437B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/973,446 2010-12-20
US12/973,446 US8862787B2 (en) 2010-12-20 2010-12-20 Method and apparatus for integrating driver(s) of a portable device into the portable device
PCT/US2011/063436 WO2012087558A2 (en) 2010-12-20 2011-12-06 Method and apparatus for integrating driver(s) of a portable device into the portable device

Publications (2)

Publication Number Publication Date
KR20130095807A KR20130095807A (ko) 2013-08-28
KR101548437B1 true KR101548437B1 (ko) 2015-08-28

Family

ID=46236273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137015862A KR101548437B1 (ko) 2010-12-20 2011-12-06 휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치

Country Status (8)

Country Link
US (1) US8862787B2 (ko)
JP (1) JP5852130B2 (ko)
KR (1) KR101548437B1 (ko)
CN (1) CN204331708U (ko)
DE (1) DE112011104457T5 (ko)
GB (1) GB2499949B (ko)
TW (1) TWI512622B (ko)
WO (1) WO2012087558A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862787B2 (en) 2010-12-20 2014-10-14 Intel Incorporation Method and apparatus for integrating driver(s) of a portable device into the portable device
US20130139184A1 (en) * 2011-11-30 2013-05-30 Lsi Corporation Method for embedding a host driver within a device
US9355277B2 (en) * 2012-08-31 2016-05-31 Ncr Corporation Installable secret functions for a peripheral
GB201304872D0 (en) * 2013-03-15 2013-05-01 Imp Innovations Ltd Treatment
CN103309708A (zh) * 2013-05-31 2013-09-18 南京熊猫电子股份有限公司 一种usb设备在主机自动安装驱动程序的方法
JP6146212B2 (ja) * 2013-08-30 2017-06-14 セイコーエプソン株式会社 印刷システムおよび印刷システムの制御方法
US9503428B2 (en) 2014-10-10 2016-11-22 Zanguli Llc Secure device and proxy for secure operation of a host data processing system
JP6418003B2 (ja) * 2015-02-25 2018-11-07 アイコム株式会社 多機能マイクロホン及びその多機能マイクロホンを用いた無線通信装置のファームアップ方法
US10963406B2 (en) * 2019-06-18 2021-03-30 Intel Corporation Persistent universal serial bus (USB) device enumeration
US11755518B2 (en) * 2021-06-28 2023-09-12 Dell Products L.P. Control of Thunderbolt/DisplayPort multiplexor for discrete USB-C graphics processor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030810A1 (en) * 2002-08-07 2004-02-12 Lozano Rosa Aurora Method and apparatus for detecting printer internet protocol addresses
US20070288936A1 (en) * 2006-05-19 2007-12-13 Avermedia Technologies, Inc. External device and operating method applied thereto

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009480A (en) * 1997-09-12 1999-12-28 Telxon Corporation Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
US7237101B1 (en) * 2000-02-12 2007-06-26 International Business Machines Corporation Methods and apparatus for self describing devices
JP3898869B2 (ja) * 2000-03-28 2007-03-28 ペンタックス株式会社 画像データ入力装置
US7574481B2 (en) 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
JP2002342251A (ja) 2001-05-15 2002-11-29 Sharp Corp 通信インタフェース装置
JP4236830B2 (ja) 2001-07-09 2009-03-11 株式会社ルネサステクノロジ アップロード機能付き記憶装置
US7365614B2 (en) * 2004-03-22 2008-04-29 Mobius Microsystems, Inc. Integrated clock generator and timing/frequency reference
JP2005321907A (ja) 2004-05-07 2005-11-17 Kyocera Corp デバイスドライバの提供方法、情報機器、及び周辺機器
US7624392B2 (en) 2004-05-18 2009-11-24 Oki Semiconductor Co., Ltd. USB device set
US7293117B2 (en) 2004-06-10 2007-11-06 Microsoft Corporation Self-installing peripheral device with memory wherein in response to user request for additional storage peripheral device being configured to remove installation software stored on memory
TWI331742B (en) * 2004-09-15 2010-10-11 Ind Tech Res Inst Brightness control circuit and display device using the same
US7716741B2 (en) * 2005-01-12 2010-05-11 International Business Machines Corporation Method and system for offloading real-time virus scanning during data transfer to storage peripherals
US7801561B2 (en) * 2006-09-28 2010-09-21 Sandisk Corporation Methods of configuring a generic bluetooth controller of a flash drive to be compatible with multiple bluetooth peripheral devices
JP2008139916A (ja) * 2006-11-30 2008-06-19 Canon Inc 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラム
TW200933487A (en) * 2008-01-30 2009-08-01 Ralink Technology Corp External device auto-run a driver installation and method thereof
US8243294B2 (en) 2008-04-10 2012-08-14 Eastman Kodak Company Simplified walk-up print driver installation
US20100011404A1 (en) * 2008-07-14 2010-01-14 Sony Corporation Tv software upgrade using tv internet adapter
JP2010067198A (ja) 2008-09-12 2010-03-25 Dainippon Printing Co Ltd ドライバ更新システム
EP2539806A4 (en) * 2010-02-24 2014-07-30 Hewlett Packard Development Co DRIVER FOR ONE DEVICE
US8862787B2 (en) 2010-12-20 2014-10-14 Intel Incorporation Method and apparatus for integrating driver(s) of a portable device into the portable device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030810A1 (en) * 2002-08-07 2004-02-12 Lozano Rosa Aurora Method and apparatus for detecting printer internet protocol addresses
US20070288936A1 (en) * 2006-05-19 2007-12-13 Avermedia Technologies, Inc. External device and operating method applied thereto

Also Published As

Publication number Publication date
JP2014502400A (ja) 2014-01-30
JP5852130B2 (ja) 2016-02-03
KR20130095807A (ko) 2013-08-28
WO2012087558A3 (en) 2012-08-16
DE112011104457T5 (de) 2013-09-19
CN204331708U (zh) 2015-05-13
TWI512622B (zh) 2015-12-11
GB2499949A (en) 2013-09-04
US8862787B2 (en) 2014-10-14
GB201310719D0 (en) 2013-07-31
GB2499949B (en) 2018-08-29
TW201229908A (en) 2012-07-16
WO2012087558A2 (en) 2012-06-28
US20120159521A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
KR101548437B1 (ko) 휴대용 디바이스의 드라이버(들)를 휴대용 디바이스에 통합하는 방법 및 장치
US10282192B1 (en) Updating device code through a bus
US9589156B2 (en) System and method for intercept of UEFI block I/O protocol services for bios based hard drive encryption support
US11567895B2 (en) Method, apparatus and system for dynamic control of clock signaling on a bus
TWI676895B (zh) 擴充座組配技術
US10515040B2 (en) Data bus host and controller switch
TWI393009B (zh) 資料共享及傳輸之系統及方法
US20170228228A1 (en) Remote launch of deploy utility
KR101043842B1 (ko) Ulpi phy 인터페이스 표준을 사용하는 usb 2.0 링크 전력 관리 부록의 물리적 장치(phy) 지원
KR100654675B1 (ko) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법
US10853307B2 (en) System and method for a host application to access and verify contents within non-volatile storage of an information handling system
JP5528034B2 (ja) ブレード・センタにおいてブレード・サーバを管理するための方法、装置、およびプログラム
US8527667B2 (en) Apparatuses and methods for transferring data
US11354259B1 (en) Computer system configurations based on accessing data elements presented by baseboard management controllers
US7850082B1 (en) Extended universal serial bus (USB) card reader
US6651184B1 (en) Isochronous transfer mode on a universal serial bus with error correction algorithms
US20070174034A1 (en) Transparent intellectual network storage device
KR102262099B1 (ko) 랜섬웨어 차단 방법 및 이를 위한 장치
WO2009152864A1 (en) Network - file system bridge

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
FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 5