DE112011104457T5 - Verfahren und gerät zum integrieren von treibern eines tragbaren gerätes in das tragbare gerät - Google Patents

Verfahren und gerät zum integrieren von treibern eines tragbaren gerätes in das tragbare gerät Download PDF

Info

Publication number
DE112011104457T5
DE112011104457T5 DE112011104457T DE112011104457T DE112011104457T5 DE 112011104457 T5 DE112011104457 T5 DE 112011104457T5 DE 112011104457 T DE112011104457 T DE 112011104457T DE 112011104457 T DE112011104457 T DE 112011104457T DE 112011104457 T5 DE112011104457 T5 DE 112011104457T5
Authority
DE
Germany
Prior art keywords
portable device
driver
host system
storage medium
host
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
DE112011104457T
Other languages
English (en)
Inventor
J. K. Kriegelstein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112011104457T5 publication Critical patent/DE112011104457T5/de
Withdrawn legal-status Critical Current

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
    • 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
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing 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/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
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

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

Ein tragbares Gerät kann mit einem Host-System unter Verwendung einer Verbindungstechnologie wie zum Beispiel Universal Serial Bus (USB) oder die IEEE 1934, entweder drahtgebunden oder drahtlos, verbunden werden. Ein Treiber, der es dem tragbaren Gerät ermöglicht, ordnungsgemäß mit dem Host-System zu interagieren, kann in einem nichtflüchtigen Speicher im Inneren des tragbaren Gerätes gespeichert sein. Wenn das tragbare Gerät mit dem Host-System verbunden ist, so kann das tragbare Gerät automatisch den in ihm gespeicherten Treiber in dem Host-System installieren, wenn festgestellt wird, dass das Host-System keine Treiber für das tragbare Gerät hat oder die Treiber in dem Host-System älter sind als die Treiber, die in dem tragbaren Gerät gespeichert sind. Wenn das tragbare Gerät mit dem Internet verbunden ist, so kann das Gerät des Weiteren das Internet nach den neuesten Treibern durchsuchen. Das tragbare Gerät kann die im Internet gefundenen neuesten Treiber herunterladen und in dem Host-System installieren und gegebenenfalls den in dem tragbaren Gerät gespeicherten Treiber entsprechend aktualisieren.

Description

  • HINTERGRUND
  • 1. TECHNISCHES GEBIET
  • Diese Offenbarung betrifft allgemein tragbare Geräte, die mit einem elektronischen Gerät gekoppelt sind, und betrifft insbesondere ein tragbares Gerät mit einem integrierten Treiber, das den Treiber automatisch installieren kann, sobald das Gerät mit einem elektronischen Host-Gerät gekoppelt ist.
  • 2. BESCHREIBUNG
  • Es gibt eine Reihe von Verbindungstechnologien, die helfen, tragbare Geräte mit einem elektronischen Host-Gerät zu verbinden. Tragbare Geräte sind Computerperipheriegeräte wie zum Beispiel Kameras, Mäuse, Tastaturen, Drucker, Flash-Laufwerke, externe Festplatten, Medien-Wiedergabegeräte, Netzwerkadapter usw. Bei dem elektronischen Host-Gerät kann es sich um einen Desktop-Computer, einen Laptop-Computer, einen Tablet-Computer, einen Netbook-Computer, ein Smartphone und so weiter handeln. Ein Host-Gerät kann auch mit einem anderen elektronischen Host-Gerät als ein Peripheriegerät gekoppelt sein. Zu Verbindungstechnologien gehören beispielsweise Universal Serial Bus (USB), die IEEE 1934-Schnittstelle und eSATA.
  • USB ist ein Industriestandard für eine serielle Bus-Schnittstelle zum Herstellen einer Kommunikation zwischen Geräten und einem Host, wie zum Beispiel einem Personalcomputer (PC). USB unterstützt einen Funktionsdaten- und Steuerungsaustausch zwischen dem USB-Host und einem USB-Gerät als ein Satz unidirektionaler oder bidirektionaler Pipes. USB-Datentransfers finden zwischen Host-Software und einem bestimmten Endpunkt in einem USB-Gerät statt. Der USB-Host interagiert mit USB-Geräten über einen USB-Host-Controller (HC). Die USB-Systemsoftware im Host verwaltet die Interaktionen zwischen USB-Geräten und Host-basierter Gerätesoftware. Der USB-Standard unterstützt Plug-and-Plag und Hot-Swapping.
  • Die IEEE 1934-Schnittstelle ist ein Standard für eine serielle Busschnittstelle für bandbreitenintensive Kommunikation und isochronen Echtzeit-Datentransfer. Sie kann von PCs und digitalen Audio/Video-Anwendungen verwendet werden. Diese Schnittstelle kann auch als FireWire, i.LINK oder Lynx bezeichnet werden. Die IEEE 1934 kann eine Anzahl von Peripheriegeräten (beispielsweise 63) in einer Baumkettentopologie verbinden. Sie kann dafür verwendet werden, in vielen Anwendungen die parallele Small Computer System Interface(SCSI)-Verbindung zu ersetzen. Sie erlaubt eine Peer-to-Peer-Gerätekommunikation, wie zum Beispiel eine Kommunikation zwischen einem Scanner und einem Drucker ohne Nutzung von Systemspeicher oder der Central Processing Unit (CPU). Sie ist für die Unterstützung von Plug-and-Plag und Hot-Swapping ausgelegt.
  • eSATA, was für „external Serial Advanced Technology Attachment” (SATA) steht, ist eine Abart des SATA-Schnittstellenstandards. Die SATA-Schnittstelle ist eine Busschnittstelle zum Verbinden von Host-Bus-Adaptern mit Massenspeichergeräten, wie zum Beispiel Festplattenlaufwerken und optischen Laufwerken. eSATA ist für externe Konnektivität ausgelegt, zum Beispiel zum Verbinden eines PC mit einem externen Festplattenlaufwerk.
  • Unabhängig davon, welche Verbindungstechnologie verwendet wird, ist es normalerweise notwendig, einen Gerätetreiber eines tragbaren Gerätes in dem Host zu installieren, damit ein Benutzer das tragbare Gerät nutzen und mit dem Host interagieren kann. Zum Beispiel wird eine Digitalkamera mit einem USB-Port normalerweise mit einer Installations-CD geliefert, die einen Treiber für die Digitalkamera enthält. Um ein digitales Bild zwischen einem PC und der Digitalkamera über die USB-Verbindung zu übertragen, muss zuerst der Treiber auf dem PC installiert werden. Gleichermaßen muss ein Treiber auf einem PC installiert werden, um Videodaten zwischen einem Camcorder mit einem IEEE 1934-Port und dem PC über die IEEE 1934 zu übertragen.
  • In der Regel hat jedes tragbare Gerät seinen eigenen Treiber, der normalerweise nicht von einem zweiten Gerät mitgenutzt werden kann, selbst wenn das andere Gerät vom gleichen Typ, aber von einem anderen Hersteller ist. Somit muss ein Benutzer die Installations-CD für ein tragbares Gerät zur späteren Verwendung aufheben. Wenn zum Beispiel ein PC abstürzt und anschließend neu installiert werden muss, so muss der Benutzer die CD zur Hand haben, um den Treiber für das tragbare Gerät erneut zu installieren. Aber möglicherweise kann der Benutzer die Installations-CD dann nicht mehr finden. Darum kann es sich als unzweckmäßig herausstellen, eine Treiber-CD für ein tragbares Gerät zu verwenden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Merkmale und Vorteile des offenbarten Gegenstandes werden aus der folgenden detaillierten Beschreibung des Gegenstandes ersichtlich, worin Folgendes dargestellt ist:
  • 1 zeigt ein beispielhaftes System, bei dem tragbare Geräte mit einem Host-Gerät unter Verwendung der USB-Schnittstelle verbunden sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 2 zeigt ein weiteres beispielhaftes System, wobei tragbare Geräte mit einem Host-Gerät unter Verwendung der Drahtlos-USB-Schnittstelle verbunden sind, gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 3 ist ein Funktions-Blockschaubild eines USB-Gerätes gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 4 ist ein Funktions-Blockschaubild eines Gerätes unter Verwendung einer drahtlosen USB-Verbindung gemäß einer Ausführungsform der vorliegenden Erfindung;
  • 5 veranschaulicht ein Funktions-Blockschaubild eines tragbaren Gerätes, das mit einem Host-Gerät unter Verwendung einer Verbindungstechnologie verbunden werden kann, gemäß einer Ausführungsform der vorliegenden Erfindung; und
  • 6 ist ein Flussdiagramm, das einen Prozess zum Initiieren von USB-Operationen veranschaulicht, wenn ein USB-Gerät mit einem Host gekoppelt ist, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG
  • Gemäß Ausführungsformen des offenbarten Gegenstandes in dieser Anmeldung kann ein Treiber für ein tragbares Gerät in das tragbare Gerät selbst integriert sein. Der Treiber kann in einem nicht-flüchtigen Speicher innerhalb des tragbaren Gerätes gespeichert sein. Wenn das tragbare Gerät entweder drahtgebunden oder drahtlos mit einem Host-Gerät gekoppelt ist, so kann das tragbare Gerät durch das Betriebssystem (Operating System, OS) des Host-Gerätes erkannt werden. Wenn der Treiber des tragbaren Gerätes zuvor auf dem Host-Gerät installiert wurde, so kann das tragbare Gerät die Kommunikation mit dem Host-Gerät aufnehmen und kann durch den Benutzer direkt verwendet werden. Wenn das Host-Gerät das tragbare Gerät nicht erkennt, oder wenn kein funktionierender Treiber für das tragbare Gerät in dem Host-Gerät installiert ist, so kann das tragbare Gerät für das OS des Host als ein Flash-Laufwerk erscheinen. Gemäß einer Ausführungsform der vorliegenden Erfindung kann ein Auto-Ausführungsprogramm, das in einem nicht-flüchtigen Speicher des tragbaren Gerätes gespeichert ist, ablaufen, um den in dem nicht-flüchtigen Speicher des tragbaren Gerätes gespeicherten Treiber auf dem Host-Gerät zu installieren. Wenn das Host-Gerät mit dem Internet verbunden ist, so kann das Auto-Ausführungsprogramm das neueste Update des Treibers über das Internet abrufen und den in dem nicht-flüchtigen Speicher des tragbaren Gerätes gespeicherten Treiber aktualisieren. In einer Ausführungsform kann das Auto-Ausführungsprogramm periodisch auf Updates für das Laufwerk prüfen und das lokal in dem tragbaren Gerät gespeicherte Laufwerk aktualisieren.
  • Einige Geräte können mehr als einen Treiber benötigen, um mit einem Host zu interagieren. Im Interesse der Prägnanz und besseren Lesbarkeit der Beschreibung wird in der Spezifikation, den Zeichnungen, den Ansprüchen und der Zusammenfassung, die weiter unten folgen, nur der alleinige Begriff „Treiber” verwendet, um einen oder mehrere Treiber zu bezeichnen, selbst wenn der Begriff auf Zahlwörter wie zum Beispiel „ein” folgt.
  • Wenn in der Spezifikation von „einer Ausführungsform” des offenbarten Gegenstandes die Rede ist, so bedeutet das, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform des offenbarten Gegenstandes enthalten ist. Die verschiedenen Erwähnungen von „in einer Ausführungsform” in der Spezifikation beziehen sich also nicht unbedingt alle auf dieselbe Ausführungsform.
  • 1 zeigt ein beispielhaftes System 100, bei dem tragbare Geräte mit einem Host-Gerät unter Verwendung der USB-Schnittstelle verbunden sind. Das System 100 enthält einen Prozessor 110, einen Speicher-Controller-Hub (Memory Controller Hub, MCH) 120 und einen Eingabe/Ausgabe(E/A)-Controller-Hub (Input/Output Controller Hub, ICH) 140. Obgleich ein einzelner Prozessor in der Figur gezeigt ist, kann das System 100 auch mehrere Prozessoren enthalten. Jeder Prozessor, wie zum Beispiel der Prozessor 110, kann einen oder mehrere Verarbeitungskerne haben und ist mit der System-Zwischenverbindung 115 gekoppelt.
  • Die System-Zwischenverbindung 115 stellt Schnittstellensignale bereit, damit der Prozessor 110 mit anderen Prozessoren oder Geräten, beispielsweise dem MCH 120, kommunizieren kann. Die System-Zwischenverbindung 115 kann eine Einzelprozessor- oder eine Mehrprozessor-Konfiguration unterstützen. Die System-Zwischenverbindung 115 kann ein Front Side Bus (FSB), eine Links-basierte Punkt-zu-Punkt-Zwischenverbindung oder irgendeine andere Art von Zwischenverbindung sein und kann parallel, sequenziell, als Pipeline konfiguriert, asynchron, synchron oder eine beliebige Kombination davon sein.
  • Der MCH 120 kann mit der System-Zwischenverbindung 115 gekoppelt sein. Der MCH 120 besorgt die Steuerung und Konfiguration von Speicher- und Eingabe/Ausgabe-Geräten, wie zum Beispiel des Systemspeichers 130 und des ICH 140. Der MCH 120 kann in einen Chipsatz integriert sein, der mehrere Funktionen integriert, wie zum Beispiel den isolierten Ausführungs-Modus, Host-zu-Peripherie-Busschnittstelle oder Speichersteuerung. Der Chipsatz kann auch Funktionen des ICH 140 integrieren. Im Interesse einer übersichtlicheren Darstellung sind nicht alle Peripherie-Busse gezeigt. Es wird in Betracht gezogen, dass das System 100 auch Peripherie-Busse wie zum Beispiel Peripheral Component Interconnect(PCI)-, Accelerated Graphics Port (AGP)- und Industry Standard Architecture(ISA)-Bus usw.
  • enthalten kann. Der MCH 120 enthält einen Speicher-Controller 125, der die Kommunikation zwischen dem Prozessor 110 und dem Speicher 130 steuert. Der Prozessor 110 und der MCH 120 kommunizieren über die System-Zwischenverbindung 115. In einer alternativen Ausführungsform können die Funktionen der MCH 120 in den Prozessor 110 integriert sein, und der Prozessor 110 kann direkt mit dem ICH 140 gekoppelt sein.
  • Der Hauptspeicher 130 kann Daten und Sequenzen von Anweisungen speichern, die durch den Prozessor 110 oder ein anderes in dem System enthaltenes Gerät ausgeführt werden. Der Speicher-Controller 125 kann auf den Hauptspeicher 130 in Reaktion auf Speichertransaktionen zugreifen, die dem Prozessor 110 und anderen Geräten in dem Computersystem 100 zugeordnet sind. Der Hauptspeicher 130 kann verschiedene Speichervorrichtungen umfassen, die adressierbare Speicherpositionen bieten, von denen der Speicher-Controller 125 Daten lesen kann und/oder in die der Speicher-Controller 125 Daten schreiben kann. Der Hauptspeicher 130 kann eine oder mehrere verschiedene Arten von Speichervorrichtungen umfassen, wie zum Beispiel Dynamic Random Access Memory(DRAM)-Vorrichtungen, Synchronous DRAM(SDRAM)-Vorrichtungen, Double Data Rate (DDR) SDRAM-Vorrichtungen oder andere Speichervorrichtungen.
  • Der Eingabe/Ausgabe-Controller-Hub (ICH) 140 kann mit dem MCH 120 unter Verwendung einer Hochgeschwindigkeits-Chip-zu-Chip-Zwischenverbindung 135 wie zum Beispiel einer Direct Media Interface (DMI) oder einer anderen Art von Chip-zu-Chip-Schnittstelle gekoppelt sein. DMI unterstützt gleichzeitige Transferraten von 2 Gigabit/Sekunde über zwei unidirektionale Pfade. Der ICH 130 hat eine Anzahl von Funktionen, die dafür ausgelegt sind, E/A-Funktionen zu unterstützen. Der ICH 140 kann auch in einen Chipsatz – zusammen mit oder separat von dem MCH 120 – integriert sein, um E/A-Funktionen auszuführen. Der ICH 140 kann eine Anzahl von Schnittstellen und E/A-Funktionen enthalten, wie zum Beispiel PCI-Busschnittstelle, Prozessor-Schnittstelle, Interrupt-Controller, Direct Memory Access(DMA)-Controller, Energiemanagementlogik, Timer, Universal Serial Bus(USB)-Schnittstelle, Massenspeicher-Schnittstelle, Low Pin Count(LPC)-Schnittstelle usw. Das E/A-Gerät 175 und das E/A-Gerät 180 können mit dem ICH 140 über eine PCI-Busschnittstelle oder jede andere Art von Schnittstelle gekoppelt sein.
  • Insbesondere enthält der ICH 140 einen USB-Host-Controller (HC) 145, der mit dem USB-Bus 150 gekoppelt ist. Obgleich in der Figur nicht gezeigt, kann der ICH 140 mehr als einen USB-Host-Controller enthalten. Der USB-Host-Controller 145 kann einen oder mehrere USB-Ports bereitstellen. Der USB-Host-Controller 145 enthält eine Anzahl von Host-Controller-Registern im Sinne des USB-Standards (beispielsweise USB-2.0, USB-3.0). Zu Beispielen dieser Register gehören USB-Befehlsregister, USB-Statusregister, USB-Interrupt-Enable-Register, USB-Frame-Number-Register, USB-Frame-List-Base-Address-Register, USB-Start of Frame-(SOF)-Register, USB-Port-0-Status- und -Steuerregister und USB-Port-1-Status- und -Steuerregister. Der USB-Bus 150 ist mit einer Anzahl von USB-Geräten gekoppelt, wie zum Beispiel einer USB-Tastatur 155, einer USB-Maus 160, einer USB-Kamera 165 und anderen USB-Geräten 170.
  • Ein Datentransfer (Transaktion) zwischen einem USB-Host-Controller und einem USB-Gerät wird initiiert, wenn der Host-Controller ein USB-Paket sendet, das die Art und Richtung des Datentransfers, die Adresse des USB-Gerätes und eine Endpunktnummer in dem Gerät identifiziert. Ein Endpunkt ist ein eindeutig identifizierbarer Abschnitt eines USB-Gerätes, der den Terminus eines Kommunikationsflusses zwischen dem USB-Host und dem USB-Gerät darstellt. Die Endpunkt-Richtung kann IN (zum Host) oder OUT (vom Host) sein.
  • Der Daten- und Steuerungsaustausch zwischen dem USB-Host und dem USB-Gerät wird als ein Satz unidirektionaler oder bidirektionaler Logik-Pipes unterstützt. Eine Logik-Pipe ist eine logische Abstraktion zwischen dem USB-Host und einem Endpunkt in einem USB-Gerät, um Daten- und Steuerungspakete zwischen dem USB-Host und dem USB-Gerät auszutauschen. Das USB-Gerät kann Daten über mehrere Logik-Pipes (Pipe-Bündel) zu einem Host übertragen. Zum Beispiel kann eine separate unidirektionale Logik-Pipe für den Transport von Daten zu einem OUT-Endpunkt in dem USB-Gerät und eine weitere unidirektionale Logik-Pipe für den Transport von Daten zu dem USB-Host von einem IN-Endpunkt in dem USB-Gerät geben.
  • Wenn ein USB-Gerät (beispielsweise eine USB-Kamera 165) erstmals mit einen USB-Host (beispielsweise dem System 100 in 1) über einen USB-Port verbunden wird, so stellt der USB-Host-Controller 145 fest, ob das Gerät unterstützt wird. Wenn es unterstützt wird, so wird der Gerätetreiber, der für die Kommunikation zwischen dem Host und dem Gerät benötigt wird, geladen. Wenn ein USB-Gerät von sehr häufiger Art ist (beispielsweise eine USB-Tastatur 155), so kann der Host den Treiber für das Gerät haben. In diesem Fall kann der Treiber vom Host selbst geladen werden. Wenn der Gerätetreiber nicht im Host gefunden werden kann, so kann der Host das Internet durchsuchen (wenn er mit dem Internet verbunden ist), um den Gerätetreiber zu finden. Wenn der Gerätetreiber im Internet gefunden werden kann, so kann er zu dem Host heruntergeladen werden. Sehr oft wird ein USB-Gerät mit einem Installationsmedium (beispielsweise CD) geliefert, auf dem der Gerätetreiber gespeichert ist. Der Gerätetreiber kann von dem Installationsmedium geladen werden. Sobald der Gerätetreiber auf den Host geladen wurde, braucht er das nächste Mal, wenn das Gerät wieder mit dem Host verbunden wird, nicht erneut geladen zu werden.
  • In der Praxis kann der Gerätetreiber für ein USB-Gerät im Host beschädigt worden oder verloren gegangen sein (beispielsweise im Zuge einer Neuinstallation nach einem Systemabsturz). Wenn ein solches Problem eintritt, so muss der Gerätetreiber im Host repariert oder neu installiert werden. Jedoch kann es sein, dass das Installationsmedium nicht mehr auffindbar ist, oder das Medium kann beschädigt sein. Es ist nicht immer möglich, den Treiber für ein bestimmtes Gerät im Internet zu finden. Es ist klar, dass der Nutzer in einem solchen Fall ein Problem hat.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann der Treiber eines USB-Gerätes im Inneren des Geräts selbst gespeichert sein. Zum Beispiel kann der Treiber der USB-Kamera 165 in 1 in einem Flash-Speicher gespeichert sein, der sich in ihr selbst befindet. Wenn die USB-Kamera 165 zum ersten Mal mit dem System 100 verbunden wird, so kann der Treiber der USB-Kamera 165 automatisch in dem System 100 installiert werden. Die USB-Kamera 165 kann periodisch das Internet nach Updates für den Treiber durchsuchen und das Update in den Flash-Speicher im Inneren der USB-Kamera 165 herunterladen. Wenn eine Neuinstallation des Treibers erforderlich ist, so kann auf diese Weise der aktualisierte Treiber aus der USB-Kamera 165 installiert werden, ohne dass man das ursprüngliche Installationsmedium finden muss. Ein Benutzer braucht kein Installationsmedium aufzuheben.
  • 2 zeigt ein weiteres beispielhaftes System 200, wobei tragbare Geräte mit einem Host-Gerät unter Verwendung der Drahtlos-USB-Schnittstelle verbunden sind. Das System 200 ist mit ähnlichen Komponenten wie das System 100 in 1 gezeigt, außer denen, die sich auf die USB-Schnittstelle beziehen. Insbesondere enthält das System 200 einen Drahtlos-USB-Host-Controller 210, der eine drahtlose Verbindung zwischen dem System 200 und Drahtlos-USB-Geräten ermöglicht, wie zum Beispiel der Drahtlos-USB-Kamera 220, der Drahtlos-USB-Maus 230, der Drahtlos-USB-Tastatur 250 und anderen Drahtlos-USB-Geräten 240. Außerdem kann der Drahtlos-USB-Host-Controller 210 Funktionen eines festverdrahteten USB-Host-Controllers, wie zum Beispiel USB-Host-Controller 145, ausführen. Gleichermaßen kann ein Drahtlos-USB-Gerät (beispielsweise 220) seinen Treiber in einem Flash-Speicher in sich selbst gespeichert haben. Wenn das Drahtlos-USB-Gerät zum ersten Mal drahtlos mit dem System 200 verbunden wird, so kann der darin gespeicherte Treiber in dem System 200 installiert werden, wodurch das Drahtlos-USB-Gerät mit dem System 200 kommunizieren kann. Das Drahtlos-USB-Gerät kann ebenfalls das Internet nach Updates des Treibers durchsuchen und das Update herunterladen zu dem darin befindlichen Flash-Speicher periodisch.
  • Obgleich die 1 und 2 Beispiele unter Verwendung der USB-Verbindung zeigen, können auch andere Verbindungstechnologien verwendet werden. In einer Ausführungsform kann eine IEEE 1934-Schnittstelle verwendet werden. Ein tragbares IEEE 1934-Gerät kann mit einem Host (beispielsweise 100) drahtgebunden oder drahtlos verbunden sein. Der Treiber für das tragbare Gerät kann in einem Flash-Speicher oder einem anderen nicht-flüchtigen Speicher im Inneren des Gerätes gespeichert sein. Wenn das Gerät zum ersten Mal mit dem Host verbunden wird, so kann der Treiber in dem Host installiert werden. Das Gerät kann das Internet nach Updates für seinen Treiber durchsuchen und das Update periodisch in dem nicht-flüchtigen Speicher im Inneren des Gerätes speichern. In einer weiteren Ausführungsform kann die eSATA-Schnittstelle verwendet werden, um ein tragbares Gerät mit einem Host entweder drahtgebunden oder drahtlos zu verbinden. Der Treiber des tragbaren eSATA-Gerätes kann in einem nicht-flüchtigen Speicher im Inneren des Gerätes gespeichert sein und kann in dem Host installiert werden, wenn das tragbare eSATA Gerät zum ersten Mal mit dem Host verbunden wird. Der darin gespeicherte Treiber kann periodisch durch Herunterladen von Updates aus dem Internet aktualisiert werden.
  • 3 ist ein Funktions-Blockschaubild eines USB-Gerätes 300 gemäß einer Ausführungsform der vorliegenden Erfindung. Das USB-Gerät 300 enthält ein Speichermedium 310, einen Taktgenerator 320, einen USB-Geräte-Controller 330, einen USB-Verbinder 340 und eine USB-Schnittstelle 350. Das Speichermedium 310 kann einen Flash-Speicher oder andere Arten von nicht-flüchtigem Speicher zum Speichern eines Treibers für das USB-Gerät 300 enthalten. Das Speichermedium 310 kann auch andere Daten für das USB-Gerät 310 speichern, wie zum Beispiel Instruktionen, die durch den USB-Geräte-Controller 330 zum Steuern der Operationen des USB-Gerätes 300 verwendet werden. Der Taktgenerator 320 kann einen Oszillator zum Erzeugen des Haupttaktsignals für das USB-Gerät 300 enthalten. Der Taktgenerator 320 kann außerdem den Datenausgang des USB-Gerätes 300 durch einen Phasenregelkreis (Phase-Locked Loop, PLL).
  • Der USB-Verbinder 340 bildet eine physische Schnittstelle zu einem Host-Gerät wie zum Beispiel einem PC. Der USB-Standard spezifiziert verschiedene Arten von Verbindern. Zum Beispiel ist der Standardtyp A-Verbinder ein abgeflachtes Rechteck, das in eine Buchse an einem USB-Host oder einem Hub eingesteckt wird und sowohl Strom als auch Daten transportiert. Den Standardtyp A-Verbinder findet man häufig an USB-Tastaturen, Mäuse oder Flash-Laufwerken. Als ein weiteres Beispiel hat der Standardtyp B-Verbinder eine quadratische Form mit abgeschrägten äußeren Ecken und wird in der Regel in eine stromaufwärts angeordnete Buchse an einem Gerät gesteckt, das ein abnehmbares Kabel verwendet (beispielsweise ein Drucker). Es gibt noch andere Arten von Verbindern, wie zum Beispiel USB-mini- und -micro-Verbinder, die in der Regel für kleinere Geräte verwendet werden, wie zum Beispiel Mobiltelefone und Digitalkameras.
  • Die USB-Schnittstelle 350 bietet Schnittstellenfunktionen zwischen einem Host und dem USB-Gerät 300. Zum Beispiel kann die USB-Schnittstelle 350 einen Sender zum Senden von Daten von dem USB-Gerät 300 zu dem Host und einen Empfänger zum Empfangen von Daten von dem Host zu dem USB-Gerät 300 enthalten. Der Sender und der Empfänger können zu einem Sender/Empfänger kombiniert werden, um die Sende- und Empfangsfunktionen auszuführen. Die USB-Schnittstelle 350 kann auch ein Modul enthalten, um die Daten gemäß dem USB-Standard zu formatieren, bevor die Daten an den Host gesendet werden, und um die von dem Host empfangenen Daten vorzuverarbeiten (beispielsweise die benötigten Informationen aus dem USB-formatierten Datenstrom zu extrahieren), bevor die Daten verarbeitet werden. Das Formatieren der Daten kann enthalten, die Daten zu komprimieren, und die Vorverarbeitung kann enthalten, die Daten zu dekomprimieren. Außerdem kann die USB-Schnittstelle 350 einen Teil oder alle der Protokollfunktionen ausführen, die durch den USB-Standard benötigt werden.
  • Der USB-Geräte-Controller 330 steuert die Operationen anderer Komponenten in dem USB-Gerät 300. In einer Ausführungsform kann der USB-Geräte-Controller 330 einen kleinen Mikrocontroller mit einer kleinen Menge On-Chip-Speicher enthalten. Der Mikrocontroller kann eine Central Processing Unit (CPU) enthalten. In einer Ausführungsform kann der USB-Geräte-Controller 330 die Funktionen eines USB-Flash-Laufwerks simulieren, wodurch das USB-Gerät 300 für einen Host als ein Flash-Laufwerk erscheint, wenn es mit dem Host verbunden ist. Der USB-Geräte-Controller kann ein Modul 335 enthalten, um Auto-Installation und Sicherheitsprobleme zu handhaben. Das Modul 335 kann in Software, Firmware, Hardware oder Kombinationen davon implementiert werden. Wenn das USB-Gerät 300 mit einem Host verbunden wird, so würde der Host das Gerät 300 aufgrund der simulierten USB-Flash-Laufwerksfunktionen des Geräte-Controllers 330 als ein Flash-Laufwerk erkennen. Das Modul 335 überprüft zuerst, ob der Host den notwendigen Treiber für das USB-Gerät 330 hat, um ordnungsgemäß mit dem Host zu interagieren. Wenn nicht, so kann das Modul 335 in dem Host die Installation des in dem Speichermedium 310 gespeicherten Treibers initialisieren. Wenn der Host bereits den Treiber für das USB-Gerät 330 hat, so würde das Modul 335 des Weiteren den Treiber in dem Host mit dem in dem Speichermedium 310 gespeicherten Treiber vergleichen. Wenn der in dem Speichermedium 310 gespeicherte Treiber neuer ist als der Treiber in dem Host, so kann das Modul 330 den Treiber in dem Host mit dem in dem Speichermedium 310 gespeicherten Treiber aktualisieren. Das Modul 335 kann des Weiteren einem Benutzer die Wahl lassen, ob er den Treiber in dem Host aktualisieren möchte, bevor der Aktualisierungsprozess ausgeführt wird.
  • In einer Ausführungsform kann das Modul 335 des Weiteren das Internet (wenn der Host mit dem Internet verbunden ist) nach Updates für den in dem Speichermedium 310 gespeicherten Treiber oder nach aktuelleren Treibern durchsuchen. Wenn ein neuerer Treiber oder ein Update gefunden wird, so kann das Modul 335 überprüfen, ob der neuere Treiber der Updates durch Viren verseucht ist. Das Modul 335 kann das OS des Hosts anstoßen, einen solchen Virus-Check auszuführen. Wenn kein Virus gefunden wird, so kann das Modul 335 den Benutzer fragen, ob er den neueren Treiber der Updates herunterladen möchte. Wenn es gestattet wird, so kann das Modul 335 den neueren Treiber oder das Update herunterladen und in dem Host installieren. Wenn die Installation erfolgreich ist, so kann der neuere Treiber oder das Update in dem Speichermedium 310 gespeichert werden. Je nachdem, wie die heruntergeladenen Updates funktionieren, können die heruntergeladenen Updates den in dem Speichermedium gespeicherten Treiber aktualisieren oder einfach die Updates separat in dem Speichermedium 310 speichern. Wenn die Updates separat in dem Speichermedium gespeichert werden, so prüft das Modul 335 sowohl den ursprünglich gespeicherten Treiber als auch eventuelle Updates in dem Speichermedium 310, wenn es entscheidet, den Treiber zu installieren oder des Treiber in dem Host zu aktualisieren, wenn das USB-Gerät das nächste Mal mit einem Host verbunden wird. In einer weiteren Ausführungsform braucht das Modul 335 nicht jedes Mal das Internet nach Updates für den Treiber zu durchsuchen, wenn das USB-Gerät mit dem Host verbunden wird. Das Modul 335 kann sich entscheiden, periodisch (beispielsweise alle 2 Monate) auf Updates für den Treiber zu überprüfen. Gleichermaßen kann das Modul 335 auch das Internet nach Fixes oder Firmware-Updates für das Gerät 300 durchsuchen, während es nach einem Treiber oder Update für den Treiber im Internet sucht. Wenn ein Treiber oder Update gefunden wird, so kann das Modul 335 es über ein Host-System zu dem Gerät 300 herunterladen, um Bugs zu bereinigen, die das Gerät hat, und/oder um die Firmware des Gerätes zu aktualisieren. Fixes und/oder Firmware-Updates werden auf Viren gescannt, und ein Benutzer wird vor dem Herunterladen um Erlaubnis gefragt.
  • Des Weiteren kann das Modul 335 Daten verschlüsseln, bevor die Daten an den Host gesendet werden, und kann Daten entschlüsseln, nachdem die Daten von dem Host empfangen wurden. In einer Ausführungsform können die Verschlüsselungs- und Entschlüsselungsfunktionen durch die USB-Schnittstelle 350 ausgeführt werden.
  • 4 ist ein Funktions-Blockschaubild eines Gerätes 400 unter Verwendung einer drahtlosen USB-Verbindung. Das Gerät 400 enthält ein Speichermedium 410, einen Taktgenerator 420, einen USB-Geräte-Controller 430, einen USB-Verbinder 440 und eine USB-Schnittstelle 450. Das Speichermedium 410, der Taktgenerator 420 und der USB-Verbinder 440 können dem Speichermedium 310, dem Taktgenerator 320 bzw. dem USB-Verbinder 340 in dem USB-Gerät 300 ähneln. Der USB-Verbinder 440 kann das Anschließen des Gerätes 400 an einen Host drahtgebunden oder über einen physischen Verbinder gestatten. Neben den Funktionen, die eine festverdrahtete USB-Geräteschnittstelle (beispielsweise die USB-Schnittstelle 350 in 3) in der Regel bietet, bildet die Drahtlos-USB-Schnittstelle 450 eine Drahtlos-Schnittstelle zwischen dem Gerät 400 und einem Host. Die Drahtlos-USB-Schnittstelle 450 kann einen Drahtlossignalsender und einen Drahtlossignalempfänger bereitstellen.
  • Der USB-Geräte-Controller 430 kann dem in 3 gezeigten USB-Gerät 330 ähneln. Er kann Funktionen ähnlich denen des oben beschriebenen USB-Geräte-Controllers 335 ausführen. Des Weiteren würde der USB-Geräte-Controller 430 das Überprüfen, Vergleichen, Installieren oder Aktualisieren, Suchen und Herunterladen von Updates ausführen, so wie es für den USB-Geräte-Controller 335 oben beschrieben wurde, wenn das Gerät 400 drahtlos mit einem Host verbunden ist.
  • 5 veranschaulicht ein Funktions-Blockschaubild eines tragbaren Gerätes 500, das mit einem Host-Gerät unter Verwendung einer Verbindungstechnologie gemäß einer Ausführungsform der vorliegenden Erfindung verbunden werden kann. Ähnlich dem in 4 gezeigten Gerät 400 kann das tragbare Gerät 500 ein Speichermedium 510, einen Taktgenerator 520, einen Geräte-Controller 530, einen Geräteverbinder 540 und eine Geräteschnittstelle 550 enthalten. Jedoch kann das tragbare Gerät 500 eine andere Verbindungstechnologie als die USB-Technologie zum Verbinden mit einem Host verwenden. Zum Beispiel kann das tragbare Gerät 500 IEEE 1934 oder eine eSATA-Schnittstelle verwenden, um sich mit einem Host entweder drahtgebunden oder drahtlos zu verbinden. Mit Ausnahme der Verbindungstechnologie können das Speichermedium 510, der Taktgenerator 520, der Geräte-Controller 530, der Geräteverbinder 540 und die Geräteschnittstelle 550 dem Speichermedium 410, dem Taktgenerator 420, dem Geräte-Controller 430, dem Geräteverbinder 440 bzw. der Drahtlos-Geräteschnittstelle 450, die in 4 gezeigt und oben beschrieben wurden, ähneln und ähnliche Funktionen ausführen.
  • 6 ist ein Flussdiagramm, das einen Prozess 600 zum Initiieren von USB-Operationen veranschaulicht, wenn ein USB-Gerät mit einem Host gemäß einer Ausführungsform der vorliegenden Erfindung gekoppelt ist. Bei Block 605 wird ein Gerät mit einem Host durch eine Verbindungstechnologie verbunden, wie zum Beispiel die USB-Schnittstelle oder eine andere Art von Schnittstelle (beispielsweise IEEE 1934, eSATA). Die Verbindung kann drahtgebunden oder drahtlos realisiert werden. Bei Block 610 wird festgestellt, ob das Gerät durch den Host erkannt wird. Wenn nicht, so kann sich das Gerät bei Block 615 selbst konfigurieren, um dem Host als ein externes Speicherlaufwerk zu erscheinen, wie zum Beispiel ein USB-Flash-Laufwerk. Bei Block 625 kann des Weiteren festgestellt werden, ob das Gerät durch den Host erkannt wird. Wenn nicht, so kann empfohlen werden, dass ein Benutzer das Gerät oder den Host bei Block 630 überprüft. Das kann an einem Defekt des Gerätes oder schlicht an der Tatsache liegen, dass der Host einfach kein externes Speicherlaufwerk unterstützt. Der Benutzer muss dann möglicherweise Hilfe von dem Host- und/oder Gerätehersteller anfordern.
  • Wenn das Gerät bei Block 610 oder bei Block 625 durch den Host erkannt wird, so kann bei Block 620 des Weiteren festgestellt werden, ob der Host den notwendigen Treiber für das Gerät hat, um ordnungsgemäß mit dem Host zu interagieren. Wenn ja, so kann bei Block 635 des Weiteren festgestellt werden, ob der Treiber in dem Host älter ist als der in einem Speichermedium (beispielsweise Flash-Speicher) gespeicherte Treiber in dem Gerät. Wenn nicht, so kann das Gerät mit dem Host verwendet werden. Bei Block 650 kann das Speichermedium in dem Gerät geschützt werden, so dass der darin gespeicherte Inhalt (beispielsweise Gerätetreiber) nicht beschädigt wird (zum Beispiel aus Versehen durch einen Benutzer überschrieben wird). In einer Ausführungsform kann das Speichermedium in dem Gerät vor auf dem Host ablaufenden Anwendungen verborgen werden. In einer anderen Ausführungsform kann dem Benutzer eine Option gegeben werden, auf das Speichermedium in dem Gerät zuzugreifen, aber er erhält eine Mitteilung, wenn die Gefahr besteht, dass der darin gespeicherte Inhalt beschädigt wird.
  • Wenn bei Block 620 festgestellt wird, dass der Host keinen Treiber für das Gerät hat, oder wenn bei Block 635 festgestellt wird, dass der Treiber in dem Host älter ist als der Treiber in dem Gerät, so kann bei Block 640 der neueste Treiber für das Gerät in dem Host installiert werden. Wenn eine Internet-Verbindung vorhanden ist, so kann das Internet nach dem neuesten Treiber für das Gerät durchsucht werden. Wenn der Treiber, der in dem Speichermedium in dem Gerät gespeichert ist, älter ist als der neueste Treiber, der im Internet gefunden wird, so kann der im Internet gefundene neueste Treiber heruntergeladen und in dem Host installiert werden. In einer Ausführungsform können die neuesten Updates für den Treiber im Internet gefunden werden. Diese Updates können heruntergeladen und zusammen mit dem in dem Gerät gespeicherten Treiber installiert werden. Während das Internet nach dem neuesten Treiber oder den neuesten Updates für den Treiber durchsucht wird, kann auch nach Fixes oder Firmware-Updates für das Gerät gesucht werden. Wenn welche gefunden werden, so werden sie heruntergeladen, um Bugs zu bereinigen, die das Gerät hat, und/oder um die Firmware des Gerätes zu aktualisieren. Die Fixes oder Firmware-Updates können gegebenenfalls in dem Speichermedium in dem Gerät gespeichert werden. Wenn keine Internet-Verbindung besteht, oder wenn der im Internet gefundene neueste Treiber nicht neuer ist als der in dem Gerät gespeicherte Treiber, oder wenn der neueste Treiber oder die Updates für den Treiber, die im Internet gefunden wurden, nicht erfolgreich installiert wurden, so wird der in dem Gerät befindliche Treiber in dem Host installiert. Bei Block 645 kann der in dem Gerät gespeicherte Treiber bei Bedarf aktualisiert werden. Wenn der neueste Treiber oder die Updates für den Treiber, die im Internet gefunden wurden, neuer sind als der in dem Gerät gespeicherte Treiber und erfolgreich in dem Host installiert wurden, so können der neueste Treiber oder die Updates für den Treiber, die im Internet gefunden wurden, dafür verwendet werden, den in dem Gerät gespeicherten Treiber zu aktualisieren. In einer Ausführungsform kann der im Internet gefundene aktualisierte Treiber in dem Gerät zusammen mit dem vorhandenen Treiber gespeichert werden. Nachdem der Treiber in dem Gerät aktualisiert wurde, kann das Speichermedium in dem Gerät bei 650 geschützt werden, wie es oben beschrieben wurde.
  • Aus Sicherheitsgründen wird jede aus dem Internet heruntergeladene Datei auf Viren gescannt. Wenn kein Virus gefunden wird, so wird ein Benutzer als nächstes um Erlaubnis gefragt, bevor die Datei heruntergeladen wird.
  • Obgleich eine beispielhafte Ausführung des offenbarten Gegenstandes mit Bezug auf Block- und Flussdiagramme in den 16 beschrieben wird, leuchtet dem Durchschnittsfachmann ein, dass noch viele andere Verfahren zum Implementieren des offenbarten Gegenstandes alternativ verwendet werden können. Zum Beispiel kann die Reihenfolge der Ausführung von Blöcken in Flussdiagrammen verändert werden, und/oder einige der Blöcke in den beschriebenen Block- und Flussdiagrammen können geändert, weggelassen oder kombiniert werden.
  • In der vorangegangenen Beschreibung wurden verschiedene Aspekte des offenbarten Gegenstandes beschrieben. Zum Zweck der Erläuterung wurden konkrete Zahlen, Systeme und Konfigurationen dargelegt, um ein gründliches Verständnis des Gegenstandes zu ermöglichen. Jedoch ist dem Fachmann, der in den Genuss dieser Offenbarung kommt, klar, dass der Gegenstand auch ohne die konkreten Details praktiziert werden kann. In anderen Fällen wurden allgemein bekannte Merkmale, Komponenten oder Module weggelassen, vereinfacht, kombiniert oder geteilt, um die wesentlichen Aspekte des offenbarten Gegenstandes nicht in den Hintergrund treten zu lassen.
  • Obgleich der offenbarte Gegenstand mit Bezug auf veranschaulichende Ausführungsformen beschrieben wurde, darf diese Beschreibung nicht in einem einschränkenden Sinn ausgelegt werden. Verschiedene Modifizierungen der veranschaulichenden Ausführungsformen sowie andere Ausführungsformen des Gegenstandes, die dem einschlägig bewanderten Fachmann offenkundig sind, werden als in den Geltungsbereich des offenbarten Gegenstandes fallend angesehen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 1934-Schnittstelle [0002]
    • IEEE 1934-Schnittstelle [0004]
    • IEEE 1934 [0004]
    • IEEE 1934-Port [0006]
    • IEEE 1934 [0006]
    • IEEE 1934-Schnittstelle [0031]
    • IEEE 1934-Gerät [0031]
    • IEEE 1934 [0040]
    • IEEE 1934 [0041]

Claims (21)

  1. Tragbares Gerät, das Folgendes umfasst: ein Speichermedium zum Speichern eines Treibers für das tragbare Gerät; eine Schnittstelle zum Bereitstellen von Schnittstellenfunktionen, die mit einer Verbindungstechnologie kompatibel ist, die zum Verbinden des tragbaren Gerätes mit einem Host-System verwendet wird; und einen Geräte-Controller, um zu bestimmen, ob der in dem Speichermedium gespeicherte Treiber in dem Host installiert werden soll, und wenn ja, den Treiber in dem Host zu installieren.
  2. Tragbares Gerät nach Anspruch 1, wobei die Verbindungstechnologie eine standardmäßige Universal Serial Bus(USB)-Technologie, eine standardmäßige Drahtlos-USB-Technologie, eine IEEE 1934-Schnittstelle oder eine Drahtlos-IEEE 1934-Schnittstelle ist.
  3. Tragbares Gerät nach Anspruch 1, wobei das Host-System einen Personalcomputer, ein Smartphone, einen Tablet-Computer oder einen Netbook-Computer umfasst.
  4. Tragbares Gerät nach Anspruch 1, wobei das Speichermedium einen nicht-flüchtigen Speicher umfasst.
  5. Tragbares Gerät nach Anspruch 1, wobei der Geräte-Controller das Host-System auf einen Treiber für das tragbare Gerät überprüft, und wenn kein Treiber in dem Host-System gefunden wird, der Geräte-Controller den in dem Speichermedium gespeicherten Treiber in dem Host-System installiert; wenn festgestellt wird, dass das Host-System einen Treiber für das tragbare Gerät hat, der Geräte-Controller den in dem Host-System gefundenen Treiber und den in dem Speichermedium gespeicherten Treiber vergleicht; und wenn der in dem Host-System gefundene Treiber älter ist als der in dem Speichermedium gespeicherte Treiber, der Geräte-Controller den in dem Speichermedium gespeicherten Treiber in dem Host-System installiert.
  6. Tragbares Gerät nach Anspruch 1, wobei der Geräte-Controller das Internet nach einem Treiber für das tragbare Gerät, der neuer ist als der in dem Speichermedium gespeicherte Treiber, oder einem Update für den in dem Speichermedium gespeicherten Treiber durchsucht, und wenn ein Treiber oder Update gefunden wird, der Geräte-Controller den neueren Treiber oder das Update aus dem Internet herunterlädt und den neueren Treiber oder das Update in dem Speichermedium speichert.
  7. Tragbares Gerät nach Anspruch 6, wobei der Geräte-Controller einen Benutzer um Erlaubnis fragt, bevor er den neueren Treiber oder das Update aus dem Internet herunterlädt und bevor er den neueren Treiber oder das Update in dem Speichermedium speichert.
  8. Tragbares Gerät nach Anspruch 1, wobei der Geräte-Controller ein Modul umfasst, um bei Bedarf den Treiber automatisch im Speicher des Host-Systems zu installieren.
  9. Tragbares Gerät nach Anspruch 1, wobei der Geräte-Controller das tragbare Gerät so konfiguriert, dass es dem Host-System als ein externes Speicherlaufwerk angezeigt wird.
  10. Tragbares Gerät nach Anspruch 1, wobei der Geräte-Controller den Inhalt in dem Speichermedium schützt, wenn das tragbare Gerät mit dem Host-System verbunden ist.
  11. Verfahren, das Folgendes umfasst: Feststellen, ob ein tragbares Gerät durch ein Host-System erkannt wird, wenn das tragbare Gerät mit dem Host-System verbunden ist, wobei das tragbare Gerät einen Treiber hat, der in einem Speichermedium im Inneren des tragbaren Gerätes gespeichert ist; wenn das tragbare Gerät durch das Host-System erkannt wird, Bestimmen einer neuesten Treiberversion für das tragbare Gerät; und wenn das Host-System nicht über die neueste Treiberversion für das tragbare Gerät verfügt, Installieren der neuesten Treiberversion in dem Host-System aus dem tragbaren Gerät oder dem Internet.
  12. Verfahren nach Anspruch 11, wobei das Bestimmen einer neuesten Treiberversion für das tragbare Gerät Folgendes umfasst: wenn es eine Internet-Verbindung gibt, Durchsuchen des Internets nach einer neuesten Treiberversion für das tragbare Gerät; Auswählen einer aktualisierten Treiberversion zwischen der im Internet gefundenen neuesten Treiberversion, wenn es eine Internet-Verbindung gibt, und dem in dem Speichermedium gespeicherten Treiber; Verwenden der aktualisierten Treiberversion als die neueste Treiberversion, wenn das Host-System keinen Treiber für das tragbare Gerät hat; und Auswählen einer neueren Treiberversion zwischen der aktualisierten Treiberversion und dem Treiber für das tragbare Gerät in dem Host-System, wenn das Host-System einen Treiber als die neueste Treiberversion hat.
  13. Verfahren nach Anspruch 12, das des Weiteren umfasst, wenn das Internet die neueste Treiberversion für das tragbare Gerät hat, die neueste Treiberversion in das Host-System herunterzuladen.
  14. Verfahren nach Anspruch 11, das des Weiteren umfasst, wenn die neueste Treiberversion erfolgreich in dem Host-System installiert wurde, den in dem Speichermedium gespeicherten Treiber mit der neuesten Treiberversion zu aktualisieren, wenn der in dem Speichermedium gespeicherte Treiber nicht die neueste Treiberversion ist, wobei das Aktualisieren das Speichern des neuesten Updates für den in dem Speichermedium gespeicherten Treiber in dem Speichermedium enthält.
  15. Verfahren nach Anspruch 11, das des Weiteren umfasst, den Inhalt in dem Speichermedium vor Beschädigung zu schützen.
  16. Verfahren nach Anspruch 11, das des Weiteren umfasst, das tragbare Gerät so zu konfigurieren, dass es dem Host-System als ein externes Speicherlaufwerk erscheint, wenn das tragbare Gerät nicht durch das Host-System erkannt wird, wenn das tragbare Gerät erstmals mit dem Host-System verbunden wird.
  17. Verfahren nach Anspruch 11, wobei das tragbare Gerät unter Verwendung einer Standard-USB-Technologie, einer Drahtlosstandard-USB-Technologie, einer IEEE 1934-Schnittstelle oder einer Drahtlos-IEEE 1934-Schnittstelle an das Host-System angeschlossen wird.
  18. Verfahren, das Folgendes umfasst: Erkennen des tragbaren Gerätes als eine externe Speichervorrichtung, wenn ein tragbares Gerät mit einem Host-System verbunden wird; Kommunizieren mit dem tragbaren Gerät, um es dem tragbaren Gerät zu ermöglichen, eine neueste Treiberversion für das tragbare Gerät festzustellen; und Erlauben, dass das tragbare Gerät die neueste Treiberversion aus dem tragbaren Gerät oder dem Internet in dem Host-System installiert, wenn das Host-System nicht die neueste Treiberversion für das tragbare Gerät hat.
  19. Verfahren nach Anspruch 18, das des Weiteren umfasst, es dem tragbaren Gerät zu ermöglichen, das Internet nach einer neuesten Treiberversion für das tragbare Gerät zu durchsuchen.
  20. Verfahren nach Anspruch 19, das des Weiteren umfasst, wenn das Internet die neueste Treiberversion für das tragbare Gerät hat, zu überprüfen, ob die neueste Treiberversion durch Viren infiziert ist, und wenn nicht, es dem tragbaren Gerät zu erlauben, die neueste Treiberversion in das Host-System herunterzuladen.
  21. Verfahren nach Anspruch 18, wobei das tragbare Gerät mit dem Host-System unter Verwendung einer Standard-USB-Technologie, einer Drahtlos-Standard-USB-Technologie, einer IEEE 1934-Schnittstelle oder einer Drahtlos-IEEE 1934-Schnittstelle verbunden wird.
DE112011104457T 2010-12-20 2011-12-06 Verfahren und gerät zum integrieren von treibern eines tragbaren gerätes in das tragbare gerät Withdrawn DE112011104457T5 (de)

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 (1)

Publication Number Publication Date
DE112011104457T5 true DE112011104457T5 (de) 2013-09-19

Family

ID=46236273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011104457T Withdrawn DE112011104457T5 (de) 2010-12-20 2011-12-06 Verfahren und gerät zum integrieren von treibern eines tragbaren gerätes in das tragbare gerät

Country Status (8)

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

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

Family Cites Families (22)

* 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 株式会社ルネサステクノロジ アップロード機能付き記憶装置
US8488143B2 (en) * 2002-08-07 2013-07-16 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting printer internet protocol addresses
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
TWI312467B (en) * 2006-05-19 2009-07-21 Avermedia Tech Inc External device and operating method applied thereto
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 ドライバ更新システム
US8984539B2 (en) * 2010-02-24 2015-03-17 Hewlett-Packard Development Company, L.P. Loading a device driver from a 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

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
IEEE 1934
IEEE 1934-Gerät
IEEE 1934-Port
IEEE 1934-Schnittstelle

Also Published As

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

Similar Documents

Publication Publication Date Title
DE112011104457T5 (de) Verfahren und gerät zum integrieren von treibern eines tragbaren gerätes in das tragbare gerät
US9767067B2 (en) Baseboard management systems and methods with distributed intelligence for multi-node platforms
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE112017001430T5 (de) In-band-retimer-registerzugriff
US9563442B2 (en) Baseboard management controller and method of loading firmware
US9043776B2 (en) Transferring files to a baseboard management controller (‘BMC’) in a computing system
DE102018123817A1 (de) Vorrichtung für den direkten hostzugriff auf den speicherort einer speichervorrichtung
DE102019109130A1 (de) System, verfahren und einrichtung für dvsec für eine effiziente peripheriegeräteverwaltung
DE102018007025A1 (de) System, Verfahren und Einrichtung zur SRIS-Modus-Auswahl für PCIe
DE102018005753A1 (de) Serdes link training
DE102018115683A1 (de) Domänenübergreifende sicherheit in kryptographisch partionierter cloud
US20160054927A1 (en) System management controller and method of configuration file backup and recovery
DE102017121465A1 (de) Datenprotokoll zum verwalten von peripheriegeräten
US10282190B2 (en) System and method for updating a UEFI image in an information handling system
US20230384979A1 (en) Data processing method, apparatus, and system
DE202015009482U1 (de) System einer Festplattenvollverschlüsselung mit Prüfung der Kompatibilität der Boot-Platte
US10853307B2 (en) System and method for a host application to access and verify contents within non-volatile storage of an information handling system
US20140281095A1 (en) Computing device and method for integrating thunderbolt chip on motherboard
DE102020115989A1 (de) Dynamische Präsentation von Zwischenverbindungsprotokollfähigkeitsstrukturen
US20090254863A1 (en) Systems and Methods for Accessing System Utilities
DE112008001050T5 (de) Symbiotische Speichervorrichtungen
US11354259B1 (en) Computer system configurations based on accessing data elements presented by baseboard management controllers
DE112016002462T5 (de) Handhabung einer Partitionsrücksetzung in einem Mehrwurzelsystem
CN104598202A (zh) 命令行管理装置及方法
WO2020113382A1 (zh) 硬件升级方法、装置、设备和存储介质

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MAUCHER JENKINS, DE

Representative=s name: MAUCHER BOERJES JENKINS, DE

Representative=s name: MAUCHER JENKINS PATENTANWAELTE & RECHTSANWAELT, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0001000000

Ipc: G06F0013100000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0001000000

Ipc: G06F0013100000

Effective date: 20131210

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee