DE112014002697T5 - Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport - Google Patents

Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport Download PDF

Info

Publication number
DE112014002697T5
DE112014002697T5 DE112014002697.2T DE112014002697T DE112014002697T5 DE 112014002697 T5 DE112014002697 T5 DE 112014002697T5 DE 112014002697 T DE112014002697 T DE 112014002697T DE 112014002697 T5 DE112014002697 T5 DE 112014002697T5
Authority
DE
Germany
Prior art keywords
accessory
host device
protocol
message
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.)
Granted
Application number
DE112014002697.2T
Other languages
English (en)
Other versions
DE112014002697B4 (de
Inventor
Lawrence G. Bolton
Jason J. Yew
Robert J. Walsh
Awartika Pandey
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112014002697T5 publication Critical patent/DE112014002697T5/de
Application granted granted Critical
Publication of DE112014002697B4 publication Critical patent/DE112014002697B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/02Data link layer protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3814Wireless link with a computer system port
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)

Abstract

Ein Zubehörgerät kann drahtlos mit einer Hostvorrichtung wie einer tragbaren elektronischen Vorrichtung kommunizieren. Vorhandene Zubehörprotokolle, die für drahtgebundene Kommunikation entwickelt wurden, können ohne Änderung verwendet werden, und ein drahtloses Netzwerk, das die zwei Vorrichtungen mit einander verbindet, kann einen Transport oder einen Kanal zur Verbindung der beiden Vorrichtungen bereitstellen. Das Aufbauen eines drahtlosen Kanals kann die aktive Einbeziehung beider Vorrichtungen einschließen. Beispielsweise kann die Hostvorrichtung einen virtuellen Port zur Verwendung durch das Zubehörgerät einrichten und identifizieren, wonach das Zubehörgerät an dem virtuellen Port eine Kommunikation einleiten kann. Eine Hostvorrichtung kann konfiguriert sein, um sich automatisch mit bestimmten Zubehörgeräten bei Erkennung des betreffenden Zubehörgeräts in einem drahtlosen Netzwerk unter unterschiedlichen spezifischen Bedingungen zu verbinden. Eine Verschlüsselung von Zubehörprotokoll-Kommunikationen zwischen einem Zubehörgerät und einer Hostvorrichtung wird auch bereitgestellt.

Description

  • Querverweis auf verwandte Anmeldung
  • Anmeldung Nr. 14/296302, eingereicht am 4. Juni 2014 mit dem Titel „Communication Between Host and Accessory Devices Using Accessory Protocols via Wireless Transport,” die Priorität beansprucht gegenüber der vorläufigen US-Patentanmeldung (Provisional Application) Nr. 61/832650, eingereicht am 7. Juni 2013. Die jeweiligen Offenbarungen beider Anmeldungen werden in ihrer Gesamtheit ausdrücklich hierin übernommen.
  • Hintergrund
  • Die vorliegende Offenbarung behandelt allgemein Kommunikation zwischen einer Hostvorrichtung und einer Zubehörvorrichtung und insbesondere Kommunikation zwischen Host- und Zubehörvorrichtung unter Verwendung von Zubehörprotokollen über drahtlosen Transport.
  • Tragbare elektronische Vorrichtungen können interaktiven Benutzerzugriff auf Datenobjekte einschließlich Mediendateien (Audio, Video, Bilder) in verschiedenen Formaten, Dokumenten, Grafikdateien, personenbezogenen Daten (z. B. Kontakte, Kalender), Formularen usw. speichern. Somit kann ein Benutzer eine tragbare elektronische Vorrichtung betreiben, um Musik zu hören, Filme zu betrachten, persönliche Informationen einzusehen und zu verwalten usw. In einigen Fällen kann eine tragbare elektronische Vorrichtung auch Datenobjekte anlegen, z. B. durch Audio- und Videoaufzeichnung, Aufnehmen von Fotos unter Verwendung von Standbildkameras, Erfassen und Verarbeiten von Benutzereingaben oder Ähnliches.
  • Einige tragbare elektronische Vorrichtungen können auch mit verschiedenen Zubehörgeräten kommunizieren, um die Benutzer-Interaktion mit dem Gerät zu verbessern. Beispielsweise kann die tragbare elektronische Vorrichtung mit eifern Zubehörgerät verbunden sein, das ein größeres Display oder leistungsstärkere Lautsprecher oder eine zweckmäßigere Benutzeroberfläche hat als die tragbare elektronische Vorrichtung. Derartige Zubehörvorrichtungen können verwendet werden, um Medieninhalte und andere auf der tragbaren elektronischen Einrichtung gespeicherte Informationen zu präsentieren und damit zu interagieren.
  • Zusammenfassung
  • Bestimmte Ausführungsformen dieser Erfindung beziehen sich darauf, es einem Zubehörgerät (auch als Zubehörvorrichtung bezeichnet) zu ermöglichen, drahtlos mit einer Hostvorrichtung (auch als Host bezeichnet) wie einer tragbaren elektronischen Vorrichtung zu kommunizieren. Vorhandene Zubehörprotokolle, die für drahtgebundene Kommunikation entwickelt wurden, können ohne Änderung verwendet werden, und ein drahtloses Netzwerk, das zwei Vorrichtungen verbindet, kann einen Transport oder einen Kanal zur Verbindung der beiden Vorrichtungen bereitstellen. Das Aufbauen eines drahtlosen Kanals kann die aktive Einbeziehung beider Vorrichtungen einschließen. Beispielsweise können die Voraussetzungen zum Aufbau eines drahtlosen Kanals zwischen einer Hostvorrichtung und einem Zubehörgerät einschließen, dass die Hostvorrichtung, wie weiter unten beschrieben, einen virtuellen Port zur Verwendung durch das Zubehörgerät einrichtet und identifiziert, wonach das Zubehörgerät an dem virtuellen Port eine Kommunikation einleiten kann. Eine Hostvorrichtung kann konfiguriert sein, um sich automatisch (d. h. ohne Eingriff des Benutzers) mit bestimmten Zubehörgeräten bei Erkennung des betreffenden Zubehörgeräts in einem drahtlosen Netzwerk zu verbinden. Die automatische Verbindungsfunktion kann so gehandhabt werden, dass sie den Erwartungen des Benutzers entspricht. Bei einigen Ausführungsformen können Zubehörprotokoll-Kommunikationen zwischen einem Zubehörgerät und einer Hostvorrichtung selektiv innerhalb des Zubehörprotokolls verschlüsselt werden.
  • Die folgende detaillierte Beschreibung zusammen mit den beigefügten Zeichnungen ermöglicht ein besseres Verständnis der Natur und der Vorteile dieser Erfindung.
  • Kurzbeschreibung der Zeichnungen
  • 1 zeigt eine Hostvorrichtung und ein Zubehörgerät gemäß einer Ausführungsform dieser Erfindung.
  • 2 ist ein vereinfachtes Blockdiagramm eines Systems einschließlich einer Hostvorrichtung und eines Zubehörgeräts gemäß einer Ausführungsform dieser Erfindung.
  • 3 ist ein Blockdiagramm mit der Darstellung weiterer Details in einer Hostvorrichtung gemäß einer Ausführungsform dieser Erfindung.
  • 4 ist ein Blockdiagramm eines Prozesses zum Verbinden eines Zubehörgeräts mit einem Netzwerk gemäß einer Ausführungsform dieser Erfindung.
  • 5 ist ein Ablaufdiagramm eines Prozesses zum Erstellen eines Kanals für die Zubehörprotokoll-Kommunikation gemäß einer Ausführungsform dieser Erfindung.
  • 6 ist ein Ablaufdiagramm eines Prozesses zum Erstellen eines Kanals für die Zubehörprotokoll-Kommunikation gemäß einer Ausführungsform dieser Erfindung.
  • 7 ist ein Ablaufdiagramm eines Prozesses zum Testen einer Verbindung gemäß einer Ausführungsform dieser Erfindung.
  • 8 ist ein Ablaufdiagramm eines Prozesses zum Bestimmen, ob Verbindungsschicht-Verschlüsselung eingesetzt werden soll, gemäß einer Ausführungsform dieser Erfindung.
  • Detaillierte Beschreibung
  • Bestimmte Ausführungsformen dieser Erfindung beziehen sich darauf, es einem Zubehörgerät (auch als Zubehörvorrichtung bezeichnet) zu ermöglichen, drahtlos mit einer Hostvorrichtung (auch als Host bezeichnet) wie einer tragbaren elektronischen Vorrichtung zu kommunizieren. Vorhandene Zubehörprotokolle, die für drahtgebundene Kommunikation entwickelt wurden, können ohne Änderung verwendet werden, und ein drahtloses Netzwerk, das zwei Vorrichtungen verbindet, kann einen Transport oder einen Kanal zur Verbindung der beiden Vorrichtungen bereitstellen. Das Aufbauen eines drahtlosen Kanals kann die aktive Einbeziehung beider Vorrichtungen einschließen. Beispielsweise können die Voraussetzungen zum Aufbau eines drahtlosen Kanals zwischen einer Hostvorrichtung und einem Zubehörgerät einschließen, dass die Hostvorrichtung, wie weiter unten beschrieben, einen virtuellen Port zur Verwendung durch das Zubehörgerät einrichtet und identifiziert, wonach das Zubehörgerät an dem virtuellen Port eine Kommunikation einleiten kann. Eine Hostvorrichtung kann konfiguriert sein, um sich automatisch (d. h. ohne Eingriff des Benutzers) mit bestimmten Zubehörgeräten bei Erkennung des betreffenden Zubehörgeräts in einem drahtlosen Netzwerk zu verbinden. Die automatische Verbindungsfunktion kann so gehandhabt werden, dass sie den Erwartungen des Benutzers entspricht. Bei einigen Ausführungsformen können Zubehörprotokoll-Kommunikationen zwischen einem Zubehörgerät und einer Hostvorrichtung selektiv innerhalb des Zubehörprotokolls verschlüsselt werden.
  • 1 zeigt eine Hostvorrichtung 100 und ein Zubehörgerät 102 gemäß einer Ausführungsform dieser Erfindung.
  • Die Hostvorrichtung 100 kann beispielsweise ein Handheld-Gerät wie ein Medien-Abspielgerät, ein Smartphone oder ein Personal Digital Assistant (PDA), ein Tablet-Computer, ein Laptop-Computer, ein Desktop-Computer oder eine beliebige andere elektronische Einrichtung sein, die Daten versenden und mit anderen Vorrichtungen kommunizieren kann. Bei einigen Ausführungsformen kann die Hostvorrichtung 100 ein tragbares Gerät sein (d. h. ein Gerät, das von einem Benutzer zur Verwendung an unterschiedlichen Orten leicht zwischen verschiedenen Orten bewegt werden kann), wobei dies aber nicht zwingend erforderlich ist. Im gezeigten Beispiel ist die Hostvorrichtung 100 ein Tablet-Computer mit einer Anzeigefläche 104, die vom Rand 106 und einer Steuertaste 108 umgeben ist. Die Hostvorrichtung 100 kann eine drahtlose Kommunikationsschnittstelle 110 haben. (Obwohl die Schnittstelle 110 in 1 durch eine externe Antenne dargestellt ist, können selbstverständlich die ganze Antenne oder ein Teil davon oder andere Hardwarekomponenten der Schnittstelle 110 physisch in einem Gehäuse der Hostvorrichtung 100 angeordnet sein). Die drahtlose Kommunikationsschnittstelle 110 kann die Datenübertragung zwischen von der Host-Einrichtung 300 und verschiedenen externen Geräten definierten virtuellen Ports unterstützen. Konventionelle oder andere drahtlose Protokolle können verwendet werden. Bei einigen Ausführungsformen kann die Hostvorrichtung 100 auch eine physische Verbindung bereitstellen, z. B. über einen Mehrpol-Aufnahmestecker (nicht dargestellt).
  • Das Zubehörgerät 102 kann ein beliebiges Zubehörgerät sein, das mit der Hostvorrichtung 100 interagieren kann, wie z. B. mit einem Lautsprecher-Dock, einer Medienkonsole, einer Automobil-Kopfeinheit, einem Massagesessel, einer Lampe, einer Garagentor-Öffnung oder Ähnlichem. Das Zubehörgerät 102 kann verschiedene Komponenten der Benutzerschnittstelle haben, wie z. B. Lautsprecher 112, ein Display 114 und vom Benutzer zu bedienende Steuerelemente 116. Das Zubehörgerät 102 kann eine drahtlose Kommunikationsschnittstelle 118 haben. (Obwohl die Schnittstelle 118 in 1 durch eine externe Antenne dargestellt ist, können selbstverständlich die ganze Antenne oder ein Teil davon oder andere Hardwarekomponenten der Schnittstelle 118 physisch in einem Gehäuse des Zusatzgeräts 102 angeordnet sein). Die drahtlose Kommunikationsschnittstelle 118 kann die Datenübertragung zwischen vom Zusatzgerät 102 und verschiedenen externen Geräten definierten virtuellen Ports unterstützen. Konventionelle oder andere drahtlose Protokolle können verwendet werden. Bei einigen Ausführungsformen kann das Zubehörgerät 102 auch eine physische Verbindung bereitstellen, z. B. über einen Mehrpol-Aufnahmestecker (nicht dargestellt).
  • Drahtlose Schnittstellen 110 und 118 können drahtlose Kommunikation zwischen der Hostvorrichtung 100 und dem Zubehörgerät 102 unterstützen, z. B. unter Verwendung von Hochfrequenz-Kommunikationstechnologie wie Wi-Fi oder Bluetooth, Nahfeld-Kommunikationstechnik, Infrarot-Kommunikation oder Ähnlichem. Bei einigen Ausführungsformen kann auch ein drahtgebundener Signalpfad bereitgestellt sein, z. B. unter Verwendung von komplementären Steckverbindern, die bei den beiden Vorrichtungen vorhanden sein können. Bei einigen Ausführungsformen können gleichzeitig mehrere Kommunikationspfade oder -kanäle zwischen der Hostvorrichtung 100 und dem Zubehörgerät 102 hergestellt werden, wobei unterschiedliche Informationstypen selektiv über unterschiedliche Pfade geleitet werden.
  • Wie in der Einfügung 120 gezeigt ist, kann die Hostvorrichtung 100 einen Protokoll-Stack zur Unterstützung der Kommunikation mit dem Zubehörgerät 102 bereitstellen. Der Protokoll-Stack kann Anwendungs- und Betriebssystemprogramme 122 enthalten, die Funktionalität für die Hostvorrichtung implementieren können, einschließlich mit dem Zubehörgerät 102 interoperabler Funktionalität. Die Sitzungsschicht 124 kann zwischen den Programmen 122 und unteren Schichten vermitteln, um die Kommunikation unterschiedlicher Kommunikationstypen zwischen den Programmen 122 und dem Zubehörgerät 102 zu optimieren. Die Verbindungsschicht 126 kann Details der Datenübertragung und des Empfangs von der Sitzungsschicht 124 separieren oder verbergen, und der Port 128 kann Signale übertragen und empfangen (über drahtgebundene und/oder drahtlose Kanäle), um die Kommunikation von Daten und/oder Nachrichten 140 auszuführen.
  • Wie in der Einfügung 130 gezeigt ist, kann das Zubehörgerät 102 einen Protokoll-Stack zur Unterstützung der Kommunikation mit der Hostvorrichtung 100 bereitstellen. Dieser Stack kann dem hostseitigen Stack ähneln oder damit identisch sein. In diesem Beispiel können Systemfunktionen 1.32 in Hardware und/oder Software implementiert sein (z. B. als Anwendungs- oder Betriebssystemprogramme, zusätzliche Firmware und/oder dedizierte Logikschaltungen). Die Sitzungsschicht 134 kann zwischen den Funktionen 132 und unteren Schichten vermitteln, um die Kommunikation unterschiedlicher Informationstypen zwischen Systemfunktionen 132 und der Hostvorrichtung 100 zu optimieren. Die Verbindungsschicht 136 kann Details der Datenübertragung und des Empfangs von der Sitzungsschicht 134 separieren oder verbergen, und der Port 138 kann Signale übertragen und empfangen (über drahtgebundene und/oder drahtlose Kanäle), um die Kommunikation von Daten und/oder Nachrichten 140 auszuführen. Die Kommunikation kann bidirektional sein.
  • Die Stacks des Hosts und des Zubehörgeräts können das gleiche Zubehörprotokoll implementieren, das Machrichten- und/oder Paketformate, Nachrichtenparameter und vorzunehmende Vorgänge oder als Reaktion auf spezifische Nachrichten des Protokolls zu erzeugende Effekte definieren kann. Beispiele eines Zubehörprotokolls und ein Protokoll-Stack sind im Folgenden beschrieben.
  • Es versteht sich, dass die Hostvorrichtung und das Zubehörgerät aus 1 der Veranschaulichung dienen und dass Abänderungen und Modifikationen möglich sind. Eine Hostvorrichtung und/oder ein Zubehörgerät können beliebige Kombinationen von Funktionsumfang implementieren. Bei einigen Ausführungsformen kann eine Hostvorrichtung und/oder ein Zubehörgerät gleichzeitige Verbindungen mit mehreren Vorrichtungen haben, z. B. unter Verwendung mehrerer physischer oder logischer Ports.
  • 2 ist ein vereinfachtes Blockdiagramm eines Systems 200 einschließlich einer Hostvorrichtung 202 und eines Zubehörgeräts 204 gemäß einer Ausführungsform dieser Erfindung. Bei dieser Ausführungsform kann die Hostvorrichtung 202 (z. B. als Implementierung der Hostvorrichtung 100 aus 1) Rechen-, Kommunikations- und/oder Medienwiedergabe-Funktionen bereitstellen. Die Hostvorrichtung 202 kann ein Verarbeitungs-Subsystem 210, eine Speichervorrichtung 212, eine Benutzerschnittstelle 214, eine Netzschnittstelle 216 und eine Zubehör-Eingabe/Ausgabe-(I/O)-Schnittstelle 218 einschließen. Die Hostvorrichtung 202 kann auch andere Komponenten einschließen (nicht explizit dargestellt), wie z. B. eine Batterie, Stromsteuerungen und andere Komponenten, die eingesetzt werden können, um verschiedene erweiterte Funktionen bereitzustellen.
  • Die Speichervorrichtung 212 kann z. B. unter Verwendung von Platten, Flash-Speicher oder beliebigen anderen Zwischenspeichermedien oder einer Kombination von Medien implementiert sein, und sie kann flüchtige Medien 30 und/oder nichtflüchtige Medien einschließen. Bei einigen Ausführungsformen kann die Speichervorrichtung 212 Datenobjekte speichern, wie z. B. Audiodateien, Videodateien, Bild- oder Grafikdateien, Informationen zu den Kontakten eines Benutzers (Namen, Adressen, Telefonnummern usw.), Informationen zu den geplanten Terminen und Ereignissen eines Benutzers, Notizen und/oder andere Informationstypen. Bei einigen Ausführungsformen kann die Speichervorrichtung 212 auch ein oder mehrere Anwendungsprogramm(e) zur Ausführung durch das Verarbeitungs-Subsystem 210 speichern (z. B. Videospielprogramme, Informationsverwaltungs-(PIM)-Programme, Medienwiedergabeprogramme usw.) und/oder ein oder mehrere Betriebssystemprogramm(e) oder andere Firmware zum Implementieren und Unterstützen von verschiedenen Funktionsmöglichkeiten auf Geräteebene, einschließlich eines Protokoll-Stacks zur Unterstützung von Kommunikation mit einem Zubehörgerät gemäß einem Zubehörprotokoll.
  • Die Benutzerschnittstelle 214 kann Eingabegeräte einschließlich wie ein Touchpad, einen Touchscreen, ein Scroll-Rad, ein Klick-Rad, eine Wählscheibe, einen Taster, einen Schalter, einen Tastenblock, ein Mikrofon oder Ähnliches, sowie Ausgabevorrichtungen wie einen Bildschirm, Anzeigeleuchten, Lautsprecher, Kopfhörerbuchsen oder Ähnliches, zusammen mit unterstützender Elektronik (z. B. Digital-Analog- oder Analog-Digital-Wandler, Signalprozessoren oder Ähnliches). Ein Benutzer kann Eingabeeinrichtungen der Benutzerschnittstelle 214 einsetzen, um den Funktionsumfang der Hostvorrichtung 202 aufzurufen, und er kann Ausgabe von der Hostvorrichtung 202 über Ausgabeeinrichtungen der Benutzerschnittstelle 214 ansehen und/oder hören.
  • Das Verarbeitungs-Subsystem 210 kann als eine oder mehrere Schaltung(en) implementiert sein, z. B. als ein oder mehrere Einzelkern- oder Mehrkern-Mikroprozessoren oder -Mikrocontroller, für die Beispiele im Stand der Technik bereits bekannt sind. Im Betrieb kann das Verarbeitungs-Subsystem 210 den Betrieb der Hostvorrichtung 202 steuern. Bei verschiedenen Ausführungsformen kann das Verarbeitungs-Subsystem 210 eine Vielzahl von Programmen in Abhängigkeit von Programmcode ausführen, und es kann mehrere gleichzeitig ausführende Programme oder Prozesse aufrechterhalten. Zu einem beliebigen Zeitpunkt können ein Teil des oder der gesamte auszuführende Programmcode 20 im Verarbeitungs-Subsystem 210 vorliegen und/oder in Speichermedien wie z. B. der Speichervorrichtung 212.
  • Durch geeignete Programmierung kann das Verarbeitungs-Subsystem 210 verschiedene Funktionen für die Hostvorrichtung 202 bereitstellen. Beispielsweise kann das Verarbeitungs-Subsystem 210 einen drahtlosen Sender steuern (z. B. als Teil der Netzschnittstelle 216 und/oder der Zubehörgerät-I/O-Schnittstelle 218), um Zubehörgeräte zu erkennen, die sich drahtlos mit der Hostvorrichtung 202 verbinden können (z. B. das Zubehörgerät 204). Als Reaktion auf das Erkennen einer Verbindung des Zubehörgeräts 204 kann das Verarbeitungs-Subsystem 210 verschiedene Sitzungen zum Zweck der Kommunikation mit dem Zubehörgerät 204 (oder mit anderen Zubehörvorrichtungen) initiieren, und diese Kommunikation kann vom Zubehörgerät 204 empfangene Parsing-Meldungen einschließen. Das Verarbeitungs-Subsystem 210 kann auch eine Verbindungsschicht zum Verwalten der Kommunikation zwischen den Sitzungen und einer oder mehreren Zubehörgerät(en) einrichten und aufrechterhalten. Beispiele von Sitzungen und Verbindungsschichten sind im Folgenden beschrieben. Das Verarbeitungs-Subsystem 210 kann auch andere Programme ausführen, um andere Funktionen der Hostvorrichtung 202 zu steuern, einschließlich Anwendungsprogrammen, die in der Speichervorrichtung 212 gespeichert sein können; bei einigen Ausführungsformen können diese Anwendungsprogramme Anweisungen einschließen, die zu Interaktionen mit dem Zubehörgerät 204 führen, und das Verarbeitungs-Subsystem 210 kann diese Interaktionen unter Verwendung eines Protokoll-Stacks ausführen (z. B. entsprechend der Beschreibung weiter unten).
  • Die Netzschnittstelle 216 kann Kommunikationsfunktionen für Sprachankerdaten für die Hostvorrichtung 202 bereitstellen. Bei einigen Ausführungsformen kann die Netzschnittstelle 216 Hochfrequenz-(HF)-Sendekomponenten zum Zugriff auf drahtlose Sprach- oder Datennetze einschließen (z. B. unter Verwendung von Mobilfunktechnologie wie 3G oder EDGE, Wi-Fi (Standards der IEEE-802.11-Familie oder andere mobile Kommunikationstechnologien oder beliebige Kombinationen daraus); Komponenten für drahtlose Kurzstrecken-Netze (z. B. unter Verwendung der Bluetooth-Normen); Komponenten, die proprietäre drahtlose Netztechnologien unterstützen wie z. B. individuelle Mesh-Netze, drahtlose Direktverbindungen oder Ähnliches; GPS-Empfangskomponenten und/oder andere Komponenten. Bei einigen Ausführungsformen kann die Netzschnittstelle 216 zusätzlich zu einer drahtlosen Schnittstelle drahtgebundene Konnektivität (z. B. Ethernet) bereitstellen. Die Netzschnittstelle 216 kann unter Verwendung einer Kombination aus Hardware (z. B. Treiberschaltungen, Antennen, Modulatoren/Demodulatoren, Encodern/Decodern und anderen analogen und/oder digitalen Signalverarbeitung-Schaltungen) und Softwarekomponenten implementiert sein.
  • Die Zubehörgerät-I/O-Schnittstelle 218 kann der Hostvorrichtung 202 die Kommunikation mit verschiedenen Zubehörgeräten ermöglichen. Beispielsweise kann die Zubehörgerät-I/O-Schnittstelle 218 Verbindungen zu einem Computer, einer externen Tastatur, einem Lautsprecher-Dock oder einer Medien-Wiedergabe-Station, einer Digitalkamera, einem Radiotuner, einem Bord-Entertainmentsystem oder einer Kopfeinheit, einem externen Videogerät, einem Speicherkartenleser usw. unterstützen. Bei einigen Ausführungsformen kann die Zubehörgerät-I/O-Schnittstelle 218 drahtlose Kommunikation unterstützen (z. B. über Wi-Fi, Bluetooth oder sonstigen drahtlosen Transport). Die gleiche drahtlose Sender-Hardware wie bei der Netzschnittstelle 216 kann sowohl für Netz- als auch für Zubehörgeräte-Kommunikation verwendet werden; beispielsweise kann entsprechend der Beschreibung weiter unten ein Wi-Fi-Netz oder ein anderes drahtloses Netzwerk als Transport für Zubehörprotokoll-Meldungen verwendet werden. Zusätzlich kann die Zubehörgerät-I/O-Schnittstelle 218 bei einigen Ausführungsformen einen Steckverbinder einschließen, wie z. B. Steckverbinder, die den bei verschiedenen iPod®-, iPhone®- und iPad®-Produkten verwendeten Steckverbindern entsprechen, sowie unterstützende Schaltungen. Somit kann die Zubehörgerät-I/O-Schnittstelle 218 mehrere Kommunikationskanäle unterstützen, und ein beliebiges Zubehörgerät kann einzelne oder alle dieser Kanäle verwenden.
  • Das Zubehörgerät 204 (z. B. als Implementierung des Zubehörgeräts 102 aus 1) kann den Controller 230, die Benutzerschnittstelleneinrichtung 232, das Speichermedium 233, weitere zusatzgerätespezifische Hardware 234 und die Host-I/O-Schnittstelle 236 einschließen. Das Zubehörgerät 204 ist repräsentativ für eine breite Kategorie von Zubehörvorrichtungen, die mit einer Hostvorrichtung zusammenwirken können, und derartige Zubehörvorrichtungen können sich in ihrem Funktionsumfang, der Komplexität und dem Formfaktor stark unterscheiden. Verschiedene Zubehörvorrichtungen können Komponenten einschließen, die in 2 nicht explizit gezeigt sind, einschließlich, aber ohne diesbezügliche Einschränkung, Speichervorrichtungen (Platte, Flash-Speicher usw.) mit festen oder wechselbaren Speichermedien; Bildschirmen, Lautsprechern oder Ports zur Verbindung mit externen Audio/Video-Vorrichtungen; Kamerakomponenten wie Objektive, Bildsensoren und diesbezügliche Steuerelemente (z. B. Blende, Zoom, Belichtungszeit, Frame-Rate usw.); Mikrofonen zur Audoaufzeichnung (entweder allein oder in Verbindung mit Videoaufzeichnung) usw. Zusätzlich können einige Zubehörvorrichtungen eine weitere Schnittstelle (nicht dargestellt) bereitstellen, die sich mit einer anderen Zubehörvorrichtung verbinden und damit kommunizieren kann.
  • Der Controller 230 kann z. B. einen oder mehrere Einzelkern- oder Mehrkern-Prozessor(en) und/oder Mikrocontroller einschließen, die Programmcode ausführen, um verschiedene Funktionen in Zusammenhang mit dem Zubehörgerät 204 durchzuführen. Beispielsweise kann der Controller 230, falls das Zubehörgerät 204 ein durch den Benutzer bedienbares Steuerelement enthält (z. B. die Steuerelemente 116 aus 1), die benutzerseitige Benutzung des Steuerelements interpretieren und dementsprechend Funktionen des Zubehörgeräts 202 aufrufen; in einigen Fällen kann der aufgerufene Funktionsumfang Sendeinformationen zur und/oder Empfangsinformationen von der Hostvorrichtung 202 einschließen. Der Controller 230 kann auch einen Protokoll-Stack zur Unterstützung der Kommunikation mit einer Hostvorrichtung gemäß einem Zubehörprotokoll bereitstellen.
  • Die Benutzerschnittstelle 232 kann vom Benutzer bedienbare Eingabegeräte einschließen, wie z. B. ein Touchpad, einen Touchscreen, ein Scroll-Rad, ein Klick-Rad, eine Wählscheibe, einen Taster, einen Tastenblock, ein Mikrofon oder Ähnliches, sowie Ausgabevorrichtungen wie einen Bildschirm, Anzeigeleuchten, Lautsprecher, Kopfhörerbuchsen oder Ähnliches, zusammen mit unterstützender Elektronik (z. B. Digital-Analog- oder Analog-Digital-Wandler, Signalprozessoren oder Ähnliches). In Abhängigkeit von der Implementierung eines bestimmten Zubehörgeräts 202 kann ein Benutzer Eingabeeinrichtungen der Benutzerschnittstelle 232 bedienen, um Funktionen des Zubehörgeräts 202 aufzurufen.
  • Das Speichermedium 233 kann beliebige Arten von Datenspeichermedien enthalten, einschließlich, aber ohne diesbezügliche Einschränkung, Platten, Flash-Speicher oder beliebige andere Zwischenspeichermedien oder einer Kombination von Medien, und es kann flüchtige Medien und/oder nichtflüchtige Medien einschließen. Das Speichermedium 233 kann verwendet werden zum Speichern von Programmcode zur Ausführung durch den Controller 230, von durch die Hostvorrichtung 202 empfangenen Datenobjekten und von anderen Daten oder Anweisungen, die beim Betrieb des Zubehörgeräts 204 erzeugt und/oder verwendet werden können. Bei einigen Ausführungsformen kann das Speichermedium 233 nur flüchtigen Speicher einschließen, z. B. für Zubehörvorrichtungen, die über den Empfang von Code von einer anderen Einrichtung entweder Punkt-zu-Punkt oder über ein Netzwerk booten können.
  • Zubehörgerätespezifische Hardware 234 kann beliebige andere Komponenten einschließen, die im Zubehörgerät 204 vorliegen können, um dessen Funktionsumfang zu aktivieren. Bei verschiedenen Ausführungsformen kann die zubehörgerätespezifische Hardware 234 beispielsweise eine oder mehrere Speichereinrichtung(en) unter Verwendung von festen oder wechselbaren Speichermedien einschließen, sowie einen GPS-Empfänger; eine Netzschnittstelle; eine Stromversorgung und/oder Strommanagement-Schaltung; Umweltsensoren (z. B. Temperatursensor, Drucksensor, Beschleunigungsmesser, chemischer Sensor usw.) usw. Es versteht sich, dass beliebige Arten von Funktionen der Zubehörvorrichtungen unterstützt werden können, indem zubehörgerätespezifische Hardware 234 bereitgestellt wird.
  • Die Host-I/O-Schnittstelle 236 kann dem Zubehörgerät 204 die Kommunikation mit der Hostvorrichtung 202 ermöglichen. Bei einigen Ausführungsformen kann die Host-I/O-Schnittstelle 236 drahtlose Kommunikation unterstützen (z. B. über Wi-Fi, Bluetooth oder sonstige drahtlose Transport), und sie kann geeignete Sende- und Signalverarbeitungsschaltungen und Software oder Firmware einschließen. Zusätzlich kann die Host-I/O-Schnittstelle 236 bei einigen Ausführungsformen einen Steckverbinder einschließen, der direkt zu einem Steckverbinder passt, der Teil der Host-Einrichtung 202 ist, wie z. B. einen Steckverbinder als Gegenstück zu den bei verschiedenen iPod®-, iPhone®- und iPad®-Produkten verwendeten Steckverbindern.
  • Das Zubehörgerät 204 kann eine beliebige elektronische Vorrichtung sein, die mit der Hostvorrichtung 202 interagiert. Bei einigen Ausführungsformen kann das Zusatzgerät 204 eine Fernsteuerung von Vorgängen der Hostvorrichtung 202 bereitstellen oder eine entfernte Benutzerschnittstelle, die sowohl Eingabe- als auch Ausgabeelemente einschließen kann (z. B. einen Anzeigeschirm zur Anzeige von aktuellen Statusinformationen, die von der Hostvorrichtung 202 erhalten werden) Das Zubehörgerät 204 kann bei verschiedenen Ausführungsformen beliebige Funktionen der Hostvorrichtung 202 steuern, und es kann auch Datenanker-Steuersignale von der Hostvorrichtung 202 empfangen. Bei anderen Ausführungsformen kann die Hostvorrichtung 202 Vorgänge des Zubehörgeräts 204 steuern, wie z. B. den Abruf gespeicherter Daten von einem Speichermedium des Zubehörgeräts 204, das Initiieren eines Bilderfassungsvorgangs durch eine in das Zubehörgerät 204 integrierte Kamera usw. Bei einigen Ausführungsformen kann das Zubehörgerät 204 gleichzeitig Kommunikationskanäle mit der Hostvorrichtung 202 und einer oder mehreren Vorrichtung(en) haben, die das gleiche Protokoll oder andere Protokolle als die gewünschten nutzen.
  • Es versteht sich, dass die hierin beschriebenen Systemkonfigurationen und Komponenten der Veranschaulichung dienen und dass Abänderungen und Modifikationen möglich sind. Die Hostvorrichtung und/oder das Zubehörgerät können weitere, hier nicht spezifisch beschriebene Funktionsmöglichkeiten haben (z. B. Mobiltelefon, Global Positioning System (GPS), Breitband-Datenkommunikation, Internet-Konnektivität usw.).
  • Während die Hostvorrichtung und das Zubehörgerät hierin mit Bezug auf bestimmte Blöcke beschrieben sind, versteht es sich weiter, dass diese Blöcke im Interesse der Beschreibung definiert sind und dass sie keine bestimmte physische Anordnung von Komponententeilen implizieren sollen. Weiter brauchen die Blöcke nicht physisch getrennten Komponenten zu entsprechen, und die gleichen physischen Komponenten können verwendet werden, um Aspekte mehrerer Blöcke zu implementieren. Blöcke können konfiguriert sein, um verschiedene Operationen auszuführen, z. B. durch Programmieren eines Prozessors oder Bereitstellen geeigneter Steuerschaltungen, und verschiedene Blöcke können in Abhängigkeit davon, wie die Erstkonfiguration erhalten wird, umkonfigurierbar sein oder nicht. Ausführungsformen dieser Erfindung können mit einer Vielzahl von Vorrichtungen erstellt werden, einschließlich elektronischer Vorrichtungen, die unter Verwendung beliebiger Kombinationen von Schaltungen und Software implementiert sind.
  • Die Zubehörgerät-I/O-Schnittstelle 218 der Hostvorrichtung 202 und die Host-I/O-Schnittstelle 236 des Zubehörgeräts 204 ermöglichen der Hostvorrichtung 202 die Verbindung mit dem Zubehörgerät 204 und die anschließende Trennung vom Zubehörgerät 204. Entsprechend dem hier verwendeten Sprachgebrauch sind eine Hostvorrichtung und ein Zubehörgerät „verbunden”, wenn ein spezifisch für die Zubehörprotokoll-Kommunikation bestimmter Kommunikationskanal zwischen deren jeweiligen Schnittstellen eingerichtet wird, und „getrennt”, wenn der Kanal eingestellt wird. Eine derartige Verbindung kann über eine direkte physische Verbindung erzielt werden, z. B. mit zueinander passenden Steckverbindern; über eine indirekte physische Verbindung, z. B. mittels eines Kabels; und/oder über eine drahtlose Verbindung z. B. über Wi-Fi oder Bluetooth. Bei einigen Ausführungsformen kann der Kommunikationskanal für die Zubehörprotokoll-Kommunikation im Piggyback-(„Huckepack”)-Verfahren auf einem anderen Transport aufsetzen (z. B. einem drahtgebundenen oder drahtlosen Stromtransport), oder er kann Tunneling von Zubehörprotokoll-Kommunikationen innerhalb eines anderen Protokolls einschließen (z. B. eines HTTP- oder HTTPS-Protokolls).
  • Bei einigen Ausführungsformen können eine Hostvorrichtung und ein Zubehörgerät kommunizieren, während sie verbunden sind, indem Meldungen und Daten gemäß einem „Zubehörprotokoll” ausgetauscht werden, das ein von einem Hersteller von Hostvorrichtungen entwickeltes proprietäres oder offenes Protokoll sein kann (z. B. das iPod-Zubehörprotokoll („iAP”) entwickelt von Apple Inc.). Die Meldungen und Daten können beispielsweise unter Verwendung eines durch die entsprechenden I/O-Schnittstellen bereitgestelltes drahtloses Transportmedium kommuniziert werden. Das Zubehörprotokoll kann weitgehend oder vollständig transportagnostisch sein; d. h., dass die gleiche Meldung und die gleichen Datenformate unabhängig vom Transportmedium (zum Beispiel drahtgebunden oder drahtlos) oder vom Protokoll der Transportebene, das den Kanal bereitstellt, über den Zubehörprotokoll-Meldungen und Daten ausgetauscht werden, verwendet werden kann. In einigen Fällen kann das Zubehörprotokoll eine Folge von Vorgängen zum Aufbau eines Kanals angeben, und einige oder alle dieser Vorgänge können für ein bestimmtes Transportmedium oder Transportebenen-Protokoll spezifisch sein. Beispiele von Vorgangsfolgen zum Aufbau eines drahtlosen Kommunikationskanals für die Zubehörprotokoll-Kommunikation sind im Folgenden beschrieben.
  • Das Zubehörprotokoll kann ein „Universum” aus Meldungen definieren, die zwischen der Hostvorrichtung 202 und damit verbundenen Zubehörvorrichtungen wie dem Zubehörgerät 204 ausgetauscht werden können. Das Meldungsformat kann zum Beispiel ein Startbit oder eine Bitsequenz einschließen, um anzugeben, dass ein Meldungscode folgt, gefolgt von einem eigentlichen Meldungscode, den der Empfänger interpretieren und verarbeiten kann. Mindestens einige der Meldungscodes können einen oder mehrere dazugehörige Parameter haben, die vom Protokoll definiert sind, und eine Meldung kann Werte für beliebige derartige Parameter zusätzlich zum Meldungscode einschließen. In einigen Fällen kann das Protokoll weiter ein Verhalten für einen Empfänger angeben, falls ein bestimmter mit einem Meldungscode assoziierter Parameter nicht empfangen wird oder falls ein unerwarteter Parameter mit einem Meldungscode empfangen wird. Die Zahl der Parameter kann für unterschiedliche Meldungen unterschiedlich sein, und in einigen Fällen kann ein Parameter eine variable Länge haben. Bei einigen Ausführungsformen können die Meldungscodes so definiert sein, dass ein bestimmter Meldungscode nur in einer Richtung gültig ist. Andere Meldungsstrukturen können ebenfalls verwendet werden.
  • Das Zubehörprotokoll kann auch ein Format für das Paketieren von Meldungen bei einer Verbindungsschicht definieren. Beispielsweise kann das Zubehörprotokoll angeben, dass eine Meldung unter Verwendung von einem oder mehreren Paketen versandt wird, wobei jedes davon einen Header und einen Hauptteil hat. Der Header stellt grundlegende Informationen bereit (zum Beispiel einen Start-Indikator; die Länge des Pakets; die Sequenznummer des Pakets; die Identifizierung einer Sitzung, der das Paket zugeordnet ist, wie im Folgenden beschrieben), während der Hauptteil die gesamten Meldungsdaten oder einen Teil davon bereitstellt. Das Paket kann auch Fehlererkennung oder Fehlererkennungscodes, die auf diesem Gebiet bereits bekannt sind, einschließen. Die Verbindungsschicht kann versendete und/oder empfangene Pakete verfolgen und Vorgänge zum Überprüfen der Paketzustellung implementieren. Beispielsweise kann die Verbindungsschicht für empfangene Pakete Quittierungen versenden, eine Fehlerprüfung durchführen und die erneute Übertragung anfordern, falls ein nicht korrigierbarer Fehler erkannt wurde. Zu übertragenen Paketen kann die Verbindungsschicht Quittierungen empfangen, und sie kann Pakete erneut versenden, die nicht quittiert wurden und/oder für die die empfangende Einrichtung eine erneute Übertragung anfordert. Diese und andere Vorgänge der Verbindungsschicht können in Bezug auf den Paketinhalt agnostisch sein.
  • Bei einigen Ausführungsformen kann das durch das Zubehörprotokoll definierte Meldungsuniversum logisch in eine „allgemeine” Meldungsgruppe und eine „wahlfreie” Meldungsgruppe gruppiert sein. Bei jedem Zubehörgerät und jeder Hostvorrichtung, das/die das Zubehörprotokoll nutzt, kann vorausgesetzt werden, dass sie mindestens die allgemeine Meldungsgruppe unterstützen. Diese Meldungsgruppe kann Meldungen einschließen, die es der Hostvorrichtung und dem Zubehörgerät ermöglichen, sich gegenseitig selbst zu identifizieren und zu bestätigen und Informationen zu ihren jeweiligen Möglichkeiten bereitzustellen, gegebenenfalls einschließlich der Meldungen in der jeweils unterstützten wahlfreien Gruppe. Beispielsweise kann die allgemeine Meldungsgruppe eine „Erkennungsmeldung” einschließen, die das Zubehörgerät zur Hostvorrichtung senden kann, um die Zubehörprotokoll-Kommunikation zu initiieren, sowie eine Meldung zur „Identifizierungsanforderung” (oder Erkennungsmeldung), die der Host als Reaktion auf die Erkennungsmeldung zum Zubehörgerät senden kann, um anzufordern, dass das Zubehörgerät sich identifiziert, und eine Identifizierungsmeldung (oder Meldungssequenz), die das Zubehörgerät zum Host senden kann, um Identifizierungsinformationen bereitzustellen. Die Identifizierung kann beispielsweise das Bereitstellen von grundlegenden Informationen zur Zubehörvorrichtung einschließen, wie den Hersteller, den Modellnamen, die Seriennummer, die Firmware-Version, die Geräteklassen-Information; sie kann spezifische Meldungen in der wahlfreien Meldungsgruppe aufführen, wonach das Gerät senden und empfangen kann; und sie kann Informationen zu Eingabe/Ausgabe-Funktionen, Verschlüsselungsfunktionen usw. bereitstellen. Die allgemeine Meldungsgruppe kann auch Bestätigungsmeldungen einschließen, welche die Hostvorrichtung verwenden kann, um die angegebene Identifizierung und den Funktionsumfang des Zubehörgeräts prüfen kann (oder umgekehrt), und wonach das Zubehörgerät (oder die Hostvorrichtung) daran gehindert werden kann, bestimmte (oder alle) wahlfreien Meldungen aufzurufen, falls die Bestätigung nicht erfolgreich verläuft.
  • Die wahlfreie Meldungsgruppe kann Meldungen mit Bezug auf verschiedene Funktionalitäten einschließen, die von einer bestimmten Zubehörvorrichtung unterstützt werden können oder nicht. Beispielsweise kann die wahlfreie Meldungsgruppe einfache Fernsteuerungsmeldungen einschließen, die es einer Zubehörvorrichtung ermöglichen, eine aufzurufende Funktion der Hostvorrichtung zu identifizieren sowie Meldungen der entfernten Benutzerschnittstelle, die verwendet werden können, um Informationen mit Bezug auf die Kopie der gesamten oder teilweisen Benutzerschnittstelle einer Hostvorrichtung an einem Zubehörgerät zu erhalten (wobei eine erweiterte Fernsteuerung unterstützt wird), und Meldungen, die es einem Benutzer ermöglichen, über den Betrieb einer Hostvorrichtung einen Radio-Timer in einem Zubehörgerät zu steuern und/oder über den Betrieb eines Zubehörgeräts einen Radiotuner in einer Hostvorrichtung zu steuern, und Meldungen, die Übertragungen von Datenobjekten zwischen der Hostvorrichtung und dem Zubehörgerät ermöglichen usw. Beliebige Kombinationen von wahlfreien Meldungen können in einem Zubehörprotokoll definiert werden, und es wird nicht vorausgesetzt, dass ein bestimmtes Zubehörgerät oder eine Hostvorrichtung alle (oder auch nur einzelne) wahlfreien Meldungen unterstützt.
  • 3 ist ein Blockdiagramm mit der Darstellung weiterer Details in einer Hostvorrichtung 202 (oder einer Hostvorrichtung 101) gemäß einer Ausführungsform dieser Erfindung. Die verschiedenen gezeigten Prozesse können im Verarbeitungs-Subsystem 210 aus 2 ausgeführten Programmen entsprechen, und sie können einen Protokoll-Stack 300 bereitstellen (z. B. über die Implementierung des Protokoll-Stacks im Einsatz 120 aus 1). Ein ähnlicher Protokoll-Stack kann im Zubehörgerät 204 implementiert sein (z. B. über die Implementierung des Protokoll-Stacks im Einsatz 130 aus 1). Bei einigen Ausführungsformen können Mehrprozessor-Chips oder Mehrprozessor-Kerne in einem einzelnen Chip verwendet werden, um die verschiedenen Prozesse zu implementieren. Einige oder alle der Prozessoren können programmierbare Mehrzweckprozessoren sein, die Software- und/oder Firmware-Programme ausführen, oder einige oder alle können Zustandsmaschinen mit digitalen Signalprozessoren und eingebautem Funktionsumfang oder eine beliebige Kombination daraus sein. Der Protokoll-Stack 300 kann für die Zubehörprotokoll-Kommunikation verwendet werden.
  • Der physische Transport 302 kann Antennen, Signalstifte, Treiber, Digital-Analog-Digital-Wandler, Encoder, HF-Schaltung und andere Komponenten einschließen, die zum Senden und Empfangen von Signalen auf einem physischen Transport wie einem Stift, einem Draht oder einem Lichtwellenleiter; einem drahtlosen Transport (z. B. einer HF-Trägerwelle) oder Ähnlichem betrieben werden können. Die einzelnen Details richten sich nach dem Transport, und konventionelle oder andere Transportverfahren können verwendet werden. Bei einigen Ausführungsformen implementiert der physische Transport 302 einen Wi-Fi-Transport und kann eingehende und ausgehende Wi-Fi-Kommunikationen zu und von mehreren unterschiedlichen Ports an der Hostvorrichtung leiten (einschließlich des in 3) gezeigten Ports 306; innerhalb der gleichen Hostvorrichtung können unterschiedliche Ports unterschiedliche ihnen zugeordnete Protokoll-Stacks haben. Somit kann der physische Transport 302 beispielsweise beliebige eingehende Kommunikationen von einem Zubehörgerät, mit dem eine Zubehörprotokoll-Verbindung zu Port 306 hergestellt worden ist, leiten, und er kann Kommunikationen von anderen Vorrichtungen (z. B. von einem drahtlosen Netzzugangspunkt wie z. B. einem Router) zu anderen Ports der Hostvorrichtung (in 3 nicht dargestellt) 3). Beispiele für den Aufbau von Verbindungen zum Port 306 sind im Folgenden beschrieben.
  • Der Protokoll-Daemon 304 kann die Zubehörprotokoll-Kommunikationen über die Verwaltung verschiedener physischer oder virtueller Ports steuern. Bei einigen Ausführungsformen kann der Protokoll-Daemon 304 einen Port 306 definieren, der jeder aufgebauten Verbindung zu einem Zubehörgerät entspricht. Obwohl nur ein Port 306 gezeigt ist, ermöglichen einige Ausführungsformen mehrere gleichzeitige Verbindungen mit Zubehörvorrichtungen, und mehrere Ports 306 können mit dem gleichen Zubehörgerät oder mit unterschiedlichen Zubehörgeräten verbunden sein. Jeder Port 306 kann mit dem physischen Transport 302 interagieren (der für unterschiedliche Ports 306 der gleiche Transport oder unterschiedliche Transporte sein kann), um Signale zu einem am betreffenden Port 306 angeschlossenen Zubehörgerät zu senden oder sie davon zu empfangen. In einigen Fällen kann ein virtueller Port 306 als Softwareobjekt implementiert sein (d. h. als Teil der Geräte-Firmware); in anderen Fällen kann der Port 306 mit geeigneter Kommunikationshardware verbunden oder assoziiert sein. Beispielsweise kann der Port 306 im Fall von drahtloser Kommunikation als Softwareobjekt implementiert sein, zu dem der physische Transport 302 selektiv eingehende drahtlose Signale übertragen kann, die an den Port 306 adressiert sind, und vom dem der physische Transport 302 ausgehende Signale empfangen kann, drahtlose an andere Vorrichtungen übertragen werden sollen.
  • Der Protokoll-Daemon 304 kann am Port 306 (oder an anderen aktiven Ports) empfangene eingehende Zubehörprotokoll-Meldungen extrahieren und sie zum Protokollmanager 308 übertragen. Der Protokoll-Daemon 304 kann auch vom Protokollmanager 308 ausgehende Zubehörprotokoll-Meldungen empfangen und die Meldungen am Port 306 (oder an einem anderen aktiven Port) zur Übertragung zu diesen Port 306 bereitstellen.
  • Insbesondere kann der Protokoll-Daemon 304 eine Verbindungsschicht 310 einschließen, die als Softwareobjekt (d. h. als Teil der Geräte-Firmware) zur Ausführung auf geeigneter Hardware implementiert sein kann. Bei einigen Ausführungsformen fungiert die Verbindungsschicht 310 zum Erzeugen, Senden, Empfangen und Lesen von Paketen, die dem Zubehörprotokoll entsprechen (z. B. der vorstehenden Beschreibung). Für ausgehende Kommunikation kann die Verbindungsschicht 310 eine Meldung vom Protokollmanager 308 empfangen, die Meldung in ein oder mehrere Paket(e) einschließen und die Pakete über den Port 306 zum physischen Transport 302 senden. In einigen Fällen, z. B., wenn der physische Transport 302 Wi-Fi-Kommunikation implementiert, kann der physische Transport 302 ein Verbindungsschicht-Paket (oder einen Teil davon) als Hauptteil eines Datenpakets umschließen, das Wi-Fi oder einem anderen drahtlosen Protokoll entspricht.
  • Für eingehende Kommunikation kann die Verbindungsschicht 310 ein Paket über den Port 306 empfangen, die Meldung extrahieren und die Meldung zur Verarbeitung zum Protokollmanager 308 senden. Wenn mehrere Ports 306 verbunden sind, kann die Verbindungsschicht 310 das Verschachteln von Kommunikation über unterschiedliche verbundene Ports 306 verwalten, insbesondere, wenn mehrere Ports einen gemeinsamen physischen Transport 302 teilen (z. B. einen drahtlosen Transport, der eine gemeinsame Antenne aller Ports verwendet).
  • Der Protokoll-Daemon 304 kann zusätzliche Funktionalität bereitstellen. Beispielsweise kann der Protokoll-Daemon 304 eine automatische Verbindungsliste 307 pflegen, die Einträge für Zubehörvorrichtungen enthält, mit denen unter verschiedenen Bedingungen, von denen im Folgenden Beispiele beschrieben werden, Zubehörprotokoll-Kommunikation initiiert werden soll. Als weiteres Beispiel kann der Protokoll-Daemon 304 ein Verschlüsselungsmodul 309 einschließen, das Verschlüsselung und Entschlüsselung von Zubehörprotokoll-Meldungen an der Verbindungsschicht unterstützt.
  • Der Protokollmanager 308 kann Zubehörprotokoll-Meldungen vom Protokoll-Daemon 304 empfangen und den Prozess der Interpretation der Meldungen beginnen. Der Protokollmanager 308 kann alle Meldungen unabhängig vom Port im gleichen Format empfangen; somit können die oberen Ebenen des in 3 gezeigten Protokoll-Stacks vom Transportmechanismus isoliert werden. Der Protokollmanager 308 kann Meldungen zu einer Support-Schicht 330 übertragen, die als Mittler zwischen dem Protokollmanager 308 (und optional anderen Gerätefunktionen niederer Ebene) und der Anwendung 332 fungiert (oder in einigen Fällen direkt auf die Anwendung 332).
  • Der Protokollmanager 308 kann eine Sitzungsschicht 312 einschließen, die als Softwareobjekt (d. h. als Teil der Geräte-Firmware) zur Ausführung auf geeigneter Hardware implementiert sein kann. Die Sitzungsschicht 312 kann zum Erzeugen und Lesen von Meldungen fungieren, die dem Zubehörprotokoll entsprechen (z. B. dem weiter oben beschriebenen Protokoll). Für ausgehende Kommunikation kann die Sitzungsschicht 312 eine Meldung, z. B. basierend auf Funktionsaufrufen von der Support-Schicht 330 oder direkt von der Anwendung 332, erzeugen und die Meldung zum Versand für die Verbindungsschicht 310 bereitstellen. Für eingehende Kommunikation kann die Verbindungsschicht 310 eine aus einem Paket extrahierte Meldung zur Verarbeitung an der Sitzungsschicht 312 bereitstellen. Die Sitzungsschicht 312 kann die Meldung interpretieren und entsprechende Funktionsaufrufe zur Support-Schicht 330 oder direkt zur Anwendung 332 senden.
  • Bei einigen Ausführungsformen kann die Sitzungsschicht 312 mehrere Sitzungen unterschiedlicher Typen erzeugen und definieren, wobei jede Sitzung für den Umgang mit unterschiedlichen Meldungstypen und Formen des Datenaustauschs eingerichtet ist. Beispiele sind in 3 als Sitzungen 314, 316, 318 gezeigt. Jeder Sitzung kann eine eindeutige Sitzungs-ID (nicht dargestellt) zugeordnet werden, sodass zwei gleichzeitig vorhandene Sitzungen in der Sitzungsschicht 312 nicht die gleiche Sitzungs-ID haben können. Bei einigen Ausführungsformen werden Sitzungs-IDs von der Hostvorrichtung beim Erzeugen von Sitzungen zugewiesen und die Hostvorrichtung kann die zugewiesene Sitzungs-ID zum Zubehörgerät kommunizieren (z. B. über eine Meldung in einer bereits existierenden Sitzung). Unterschiedliche Sitzungstypen können definiert werden, um unterschiedliche Untergruppen von Meldungen im Zubehörprotokoll zu verarbeiten, und bei einigen Ausführungsformen können sich die Untergruppen überlappen.
  • Eine Kontrollsitzung 314 kann konfiguriert werden, um alle Meldungen in Zusammenhang mit der allgemeinen Meldungsgruppe des Zubehörprotokolls abzuarbeiten, wie z. B. Identifizierung und Bestätigung eines angeschlossenen Zubehörgeräts; die Kontrollsitzung 314 kann auch bestimmen, welche anderen Sitzungstypen für die Kommunikation mit dem Zubehörgerät zugelassen sind. Diese Bestimmung kann auf der Identifizierung und Bestätigung von Zubehörvorrichtungen, den Funktionen der Hostvorrichtung usw. basieren. Bei einigen Ausführungsformen hat die Kontrollsitzung 314 eine feste ID mit einem durch das Zubehörprotokoll angegebenen Wert; dadurch können die Hostvorrichtung und das Zubehörgerät Kontrollsitzungen mit übereinstimmenden Sitzungs-IDs einrichten, ohne den ID-Wert, der verwendet wird, ausdrücklich zu kommunizieren.
  • Eine Meldungssitzung 316 kann eingerichtet werden, um zumindest einige der Meldungen der wahlfreien Meldungsgruppe des Zubehörprotokolls zu behandeln. Beispielsweise können viele Meldungen relativ kleine Parametermengen und/oder andere Daten einschließen, und die Meldungssitzung 316 kann zum Erzeugen und Lesen derartiger Meldungen verwendet werden.
  • Eine Daten-Transfer-Sitzung 318 kann in Abhängigkeit von einer Anforderung der Datenübertragung zwischen der Hostvorrichtung und einem Zubehörgerät eingerichtet werden. Unterschiedliche Typen von Daten-Transfer-Sitzungen können verwendet werden, einschließlich beispielsweise Puffer-Transfer-Sitzungen für diskrete Datenobjekte (wie z. B. eine Datei), deren Größe vor dem Beginn der Übertragung bekannt ist, und Streaming-Daten-Sitzungen für Datenübertragungen mit offenem Ende, wobei die Größe vorher nicht bekannt ist (z. B. Streaming-Medien oder applikationsspezifische Meldungen, die zu und von Anwendungen 332 weitergeleitet werden).
  • Es versteht sich, dass die hierin beschriebenen besonderen Sitzungstypen der Veranschaulichung dienen und dass zusätzlich zu den in 3 gezeigten Typen andere Sitzungstypen definiert werden 3. Bei einigen Ausführungsformen können mehrere Sitzungen mit dem gleichen Zubehörgerät gleichzeitig ablaufen, wobei der Zugriff auf den Port 306 über die Verbindungsschicht 310 geteilt wird.
  • Bei einigen Ausführungsformen mit mehreren Ports 306 kann die Sitzungsschicht 312 für jeden angeschlossenen Port eine unterschiedliche Sitzungsgruppe definieren. Jede Sitzung kann eine global eindeutige Sitzungs-ID haben (z. B. können die einem ersten Port zugeordnete Kontrollsitzung und die einem zweiten Port zugeordnete Kontrollsitzung unterschiedliche IDs haben). Bei einigen Ausführungsformen enthält jedes Paket eine Sitzungs-ID, und die Verbindungsschicht 310 kann extrahierte Meldungen basierend auf der Sitzungs-ID zu einer bestimmten Sitzung leiten; entsprechend kann die Verbindungsschicht 310 unterschiedliche abgehende Meldungen basierend auf der Sitzungs-ID der Meldungsquelle zu unterschiedlichen Ports leiten. Die Verbindungsschicht 310 kann eine Abbildung von Sitzungs-IDs auf Ports pflegen, und die Sitzungsschicht 312 kann arbeiten, ohne zu wissen, welche Ports derzeit für eine bestimmte Sitzung definiert sind oder verwendet werden. Es versteht sich, dass mehrere Sitzungs-IDs auf den gleichen Port abgebildet werden können. Wenn mehrere Sitzungs-IDs auf den gleichen Port abgebildet werden, kann die Verbindungsschicht 310 die Verschachtelung von Kommunikationen zu und von unterschiedlichen Sitzungen transparent für die Sitzungsschicht 312 verwalten.
  • Bei eingehender Kommunikation kann eine der Sitzungen 314318 im Protokollmanager 308 Zubehörprotokoll-Meldungen vom Protokoll-Daemon 304 empfangen und den Prozess der Interpretation der Meldungen beginnen. Der Protokollmanager 308 kann alle Meldungen unabhängig vom Port im gleichen Format empfangen; somit können die oberen Ebenen des in 3 gezeigten Protokoll-Stacks vom Transportmechanismus isoliert werden. Der Protokollmanager 308 kann Meldungen zu einer Support-Schicht 330 übertragen, die als Mittler zwischen dem Protokollmanager 308 (und optional anderen Gerätefunktionen niederer Ebene) und der Anwendung 332 fungiert (oder in einigen Fällen direkt auf die Anwendung 332).
  • Die Anwendung 332 kann ein oder mehrere Anwendungsprogramm(e) einschließen, die verschiedene Funktionen der Hostvorrichtung 202 implementieren. Beispiele schließen eine Schnittstelle zum Navigieren in einer Datenbank mit Media-Assets und zum Abspielen von Daten-Assets verschiedener Typen ein (z. B. Audio, Video, Standbilder wie z. B. Fotos). Weitere Beispiele schließen World-Wide-Web-Browser ein sowie E-Mail-Programme, Informationsverwaltungs-(PIM)-Anwendungen (z. B. zum Verwalten von Kalender, Tasks, Kontakten usw.), geografische Navigationsprogramme (z. B. unter Verwendung von GPS-Funktionalität, sofern vorhanden) und Ähnliches. In Abhängigkeit von der Implementierung kann eine Anwendung 332 Teil eines Betriebssystems der Hostvorrichtung 202 sein, oder ein separates, vorab in die Hostvorrichtung 202 geladenes Programm, oder ein von einem Benutzer in die Hostvorrichtung 202 geladenes Programm sein.
  • Einige oder alle der Sitzungen in der Sitzungsschicht 312 können auf Anforderung initiiert oder beendet werden. Beispielsweise kann die Kontrollsitzung 314 initiiert werden, wenn eine neue Verbindung erkannt und der Port 306 initiiert wird. Die Kontrollsitzung 314 kann zum Abarbeiten von Identifizierungs- und Bestätigungsmeldungen verwendet werden, die vom Zubehörgerät empfangen werden, und um zu bestimmen, ob eine Meldungssitzung 316 eingerichtet werden soll oder nicht. Bei einigen Ausführungsformen kann die Kontrollsitzung 314 aktiv bleiben, bis eine Trennung oder Beendigung des Ports 306 eintritt. Die Meldungssitzung 316 kann in Abhängigkeit von der Bestimmung durch die Kontrollsitzung 314, ob die Meldungssitzung 316 erzeugt werden soll, eingerichtet werden, z. B. bei erfolgreicher Identifizierung oder Bestätigung eines Zubehörgeräts. Nach dem Anlegen kann die Meldungssitzung 316 aktiv bleiben, bis eine Trennung oder Beendigung des Ports 306 eintritt oder bis die Kontrollsitzung 314 bestimmt, dass die Meldungssitzung 316 beendet werden soll (z. B., weil eine neue Bestätigungsmeldung vom Zubehörgerät am Port 306 empfangen wird).
  • Andere Sitzungen können in Abhängigkeit von spezifischen Ereignissen später initiiert (oder angelegt) werden. Beispielsweise kann die Meldungssitzung 316 eine Meldung vom Zubehörgerät empfangen oder von einer Anwendung, die die Übertragung eines Datenobjekts anfordert. Als Reaktion darauf kann die Meldungssitzung 316 eine Daten-Transfer-Sitzung 318 zum Übertragen des Datenobjekts initiieren. Bei einigen Ausführungsformen kann die Meldungssitzung 316 am Initiieren einer Daten-Transfer-Sitzung 318 gehindert werden, wenn die Kontrollsitzung 314 bestimmt, dass das angeschlossene Zubehörgerät nicht für die Durchführung der angeforderten Datenübertragung autorisiert ist. Eine einmal eingerichtete Daten-Transfer-Sitzung 318 kann die Übertragung des Datenobjekts beginnen und beendet werden, wenn die Übertragung vollständig ist. Falls anschließend eine weitere Übertragung angefordert wird, kann eine andere Daten-Transfer-Sitzung eingerichtet werden.
  • Es versteht sich, dass der hierin beschriebene Protokoll-Stack der Veranschaulichung dient und dass Abänderungen und Modifikationen möglich sind. Die Hostvorrichtung 202 kann Anwendungstypen unterstützen, und Anwendungen können gesteuert durch einen Benutzer oder einen anderen Prozess gestartet oder beendet werden. Es wird davon ausgegangen, dass Prozesse niederer Ebene (einschließlich der Support-Schicht 330, des Protokollmanagers 308 und des Protokoll-Daemons 304) in Software und/oder Firmware implementiert und konfiguriert sein können, um beim Einschalten des Geräts automatisch gestartet zu werden und nur bei Abschalten der Stromzufuhr oder beim Erkennen verschiedener abnormer Zustände beendet zu werden. Bei einigen Ausführungsformen sind der Protokollmanager 308 und der Protokoll-Daemon 304 stets in Betrieb, aber die Sitzungsschicht 312, die Verbindungsschicht 310 und der Port 306 werden erst initiiert, wenn ein kompatibles Zubehörgerät erkannt wird und sie werden beendet, wenn keine Zubehörvorrichtungen angeschlossen sind. Die Prozesse können in den inaktiven Zustand übergehen, um den Verbrauch von Ressourcen zu minimieren, wenn sie nicht verwendet werden. Weiter sind nicht alle hierin dargestellten Ebenen und Prozesse erforderlich; beispielsweise können Anwendungen bei einigen Ausführungsformen direkt mit dem Protokollmanager oder dem Protokoll-Daemon kommunizieren. Bei anderen Ausführungsformen können die in 3 separat dargestellten Prozesse kombiniert sein; und ein einzelner Block in 3 kann mehreren Prozessen entsprechen, die auf dem Gerät ausgeführt werden.
  • Es versteht sich auch, dass das Zubehörgerät 204 einen ähnlichen Protokoll-Stack implementieren kann. Die Kommunikation erfordert, dass sowohl die Hostvorrichtung 202 als auch das Zubehörgerät 204 zweckmäßig konfigurierte Hardware- und/oder Softwarekomponenten haben, um Meldungen zu versenden und zu empfangen, die gegenseitig verständlich sind (z. B. unter Einhaltung des Zubehörprotokolls sowohl auf der Verbindungsschicht als auch auf der Sitzungsschicht), wobei aber die Implementierung nach Bedarf abgeändert werden kann.
  • Bei der Ausführungsform in 1, können die Hostvorrichtung 100 und das Zubehörgerät 102 Meldungen und Daten austauschen, die das Zubehörprotokoll unter Verwendung eines drahtlosen Kommunikationsprotokolls wie Wi-Fi als Transport einhalten. So können Meldungen und Daten durch einen drahtlosen Kanal zwischen dem Host-Port 128 (z. B. dem Port 306 in 3) und dem Zubehör-Port 138 strömen.
  • Bei einigen Ausführungsformen kann eine Hostvorrichtung (oder ein Zubehörgerät) mehrere Ports für unterschiedliche Kommunikationstypen unter Verwendung eines einzelnen drahtlosen Transports bereitstellen. Bei derartigen Ausführungsformen kann der Sender einer Kommunikation (je nach Ausgangslage entweder der Host oder das Zubehörgerät) einen bestimmten Port an der Empfangseinrichtung angeben müssen, an den die Kommunikation übertragen werden soll. Bei der Zubehörprotokoll-Kommunikation unter Verwendung des Stacks 300 aus 3 müsste das Zubehörgerät eine Port-ID für den Port 306 bereitstellen; dementsprechend muss das Zubehörgerät die Port-ID für den Port 306 vor dem Senden von Zubehörprotokoll-Meldungen kennen.
  • Eine Option ist die statische Angabe der Port-Identifizierung. Beispielsweise kann der Hersteller der Hostvorrichtung angeben, dass eine bestimmte Portnummer Zubehörprotokoll-Kommunikationen über einen drahtlosen Transport zugewiesen ist, und Entwickler können ihre Zubehörvorrichtungen für die Verwendung der zugewiesenen Portnummer programmieren. Eine derartige statische Identifizierung kann jedoch die Fähigkeit der Hostvorrichtung zum Bereitstellen mehrerer gleichzeitiger Kommunikationssitzungen einschränken. Dementsprechend kann eine Hostvorrichtung bei einigen Ausführungsformen Port-IDs dynamisch zuweisen. Das heißt, dass einem Port eine ID aus einem Pool verfügbarer IDs zugewiesen wird (z. B. numerische IDs von 0 bis 255), wenn der Port angelegt oder geöffnet wird. Wenn der Port beendet oder geschlossen wird, kann seine ID an den Pool zurückgegeben werden.
  • Wenn die Hostvorrichtung dynamische Port-IDs verwendet, kann das Zubehörgerät über die Port-ID informiert werden, mit der es sich zum Zweck der Zubehörprotokoll-Kommunikation verbinden soll. Bei einigen Ausführungsformen wird vor Beginn der Zubehörprotokoll-Kommunikation zwischen Hostvorrichtung 100 und Zubehörgerät 102 der Wi-Fi-Kanal aufgebaut und so konfiguriert, dass das Zubehörgerät 102 Port-ID-Informationen für die Hostvorrichtung empfangen kann. Das Zubehörgerät 102 kann anschließend die Zubehörprotokoll-Kommunikation mit dem Host 100 initiieren, z. B. über das Senden einer Erkennungsmeldung zum identifizierten Port. Spezifische Beispiele von Prozessen zum Aufbau einer Verbindung zum Port 306 werden jetzt beschrieben.
  • 4 ist ein Blockdiagramm eines Prozesses 400 zum Verbinden eines Zubehörgeräts mit einem Netzwerk gemäß einer Ausführungsform dieser Erfindung. Host-seitige Aspekte des Prozesses 400 können implementiert sein, z. B. im Transportmodul 302 und/oder im Protokoll-Daemon 304 aus 3, und zubehörgeräteseitige Aspekte des Prozesses 400 können im Protokoll-Stack des Zubehörgeräts implementiert sein.
  • Zu Beginn des Prozesses 400 (Block 402) wird angenommen, dass die Hostvorrichtung 100 bereits mit einem drahtlosen Netz (z. B. Wi-Fi) verbunden ist, das einen Zugangspunkt hat (z. B. einen Router), und dass der Zugangspunkt den Zugriff auf das Netzwerk einschränken kann, z. B. indem nur solchen Vorrichtungen der Zugriff gewährt wird, die korrekte Zugangsinformationen vorlegen (z. B. ein Passwort). Weiter wird angenommen, dass das Zubehörgerät 102 noch nicht mit den Zugangsinformationen für das Netzwerk konfiguriert ist. Im Prozess 400 kann das Zubehörgerät 102 einen Netzdienst verwenden (z. B. den von Apple, Inc. aus Cupertino, US-Bundesstaat Kalifornien bereitgestellten Bonjour®-Dienst oder andere Netzwerkdienste mit Null-Konfiguration), um die Zugangsinformationen zum Netzwerk von der Host-Einrichtung 100 zu erhalten; gleichzeitig kann die Hostvorrichtung 100 das Zubehörgerät 102 zu einer Liste bekannter Zubehörgeräte hinzufügen (wie z. B. zur Auto-Connect-Liste 307 aus 3).
  • Bei Block 404 kann das Zubehörgerät 102 in einen Sendemodus eintreten und ein Beacon-Signal aussenden, das den Spezifikationen des Netzwerkdienstes entspricht. Das Beacon-Signal kann eine ID des Zubehörgeräts einschließen (z. B. eine MAC-Adresse oder eine andere eindeutige ID) sowie ein Informationselement, das angibt, dass das Zubehörgerät Zubehörprotokoll-Kommunikation mit Hostvorrichtungen eines bestimmten Typs unterstützt. Der Host-Typ kann weitläufig angegeben werden, z. B. bei einem Host, der beliebige Versionen eines spezifischen Zubehörprotokolls unterstützt, oder enger eingegrenzt, z. B. bei Hostvorrichtungen einer bestimmten Kategorie (Tablet, Handy usw.), oder mit spezifischem Funktionsumfang (GPS, Konnektivität mit Mobilfunk-Datennetzen, Support einer bestimmten Zubehörprotokoll-Version oder -Funktionalität usw.). Bei Block 406 kann die Hostvorrichtung 100 das Beacon-Signal erkennen.
  • Basierend auf dem Informationselement kann die Hostvorrichtung 100 bei Block 408 bestimmen, ob das Beacon-Signal beantwortet werden soll. Beispielsweise kann die Hostvorrichtung 100 bestimmen, ob das Zubehörgerät 102 ein Zubehörgerät ist, mit dem sie interagieren kann. Bei einigen Ausführungsformen kann die Hostvorrichtung 100 bei Block 408 auch den Benutzer darüber informieren, dass das Zubehörgerät 102 versucht, dem drahtlosen Netzwerk beizutreten, wobei sie den Benutzer auffordert, zu bestätigen, dass der Beitritt des Zubehörgeräts 102 autorisiert werden soll, wobei die Zugangsinformationen zum Netzwerk nur zum Zubehörgerät gesendet werden, wenn der Benutzer dies bestätigt.
  • Falls die Hostvorrichtung 100 bestimmt, dass auf das Beacon-Signal geantwortet werden soll, kann die Hostvorrichtung 100 bei Block 410 Zugangsinformationen zum Netzwerk für das Zubehörgerät 102 bereitstellen, und das Zubehörgerät 102 kann die Zugangsinformationen zum Netzwerk bei Block 412 empfangen. Das Senden der Zugangsinformationen zum Netzwerk kann gemäß vom Netzwerkdienst (z. B. Bonjour) angegebenen Prozessen verwaltet werden, und es kann den Austausch von mehreren Kommunikationen zwischen dem Host 100 und dem Zubehörgerät 102 einbeziehen. Bei Block 414 kann das Zubehörgerät 102 die Zugangsinformationen zum Netzwerk verwenden, um dem drahtlosen Netzwerk beizutreten.
  • Bei Block 416 kann die Hostvorrichtung 100 eine ID eines Zubehörgeräts zur Auto-Connect-Liste 307 hinzufügen, die die Hostvorrichtung 100 zur Kontrolle des Zugriffs auf ihren Zubehörprotokoll-Stack 300 pflegt. Bei einigen Ausführungsformen kann die Auto-Connect-Liste 307 durch den Protokoll-Daemon 304 oder durch andere Betriebssystem-Komponenten der Hostvorrichtung 100 gepflegt werden. Die Auto-Connect-Liste 307 kann Einträge für eine beliebige Anzahl von Zubehörvorrichtungen einschließen. Jeder Eintrag kann eine eindeutige Zubehörgeräte-ID einschließen (z. B. die MAC-Adresse des Zubehörgeräts oder den Namen und die Seriennummer des Zubehörgeräts oder Ähnliches). Während die Auto-Connect-Liste wahlfrei ist, kann das Pflegen einer derartigen Liste den Aufbau von Zubehörprotokoll-Kommunikationssitzungen ohne Benutzereingriff erleichtern, z. B. entsprechend der Beschreibung weiter unten.
  • Beim Abschluss des Prozesses 400 sind die Hostvorrichtung 100 und das Zubehörgerät 102 mit dem gleichen drahtlosen Netzwerk verbunden. Bevor jedoch die Zubehörprotokoll-Kommunikationen über den drahtlosen Transport erfolgen kann, müssen die beiden Vorrichtungen sich gegenseitig im drahtlosen Netzwerk finden und spezifische Ziel-Ports für die Zubehörprotokoll-Kommunikation identifizieren, wobei sie den Kanal für die Zubehörprotokoll-Kommunikation definieren.
  • 5 ist ein Ablaufdiagramm eines Prozesses 500 zum Erstellen eines Kanals für die Zubehörprotokoll-Kommunikation gemäß einer Ausführungsform dieser Erfindung. Host-seitige Aspekte des Prozesses 500 können implementiert sein, z. B. im Transportmodul 302 und/oder im Protokoll-Daemon 304 aus 3, und zubehörgeräteseitige Aspekte des Prozesses 500 können im Protokoll-Stack des Zubehörgeräts implementiert sein, der dem Protokoll-Stack 300 aus 3.
  • Der Prozess 500 kann zu einem beliebigen Zeitpunkt beginnen (Block 502), wenn das Zubehörgerät 102 nach dem Beitritt zu einem drahtlosen Netzwerk und unter der Annahme, dass ein Host lokalisiert werden kann, bestimmt, dass ein Zubehörprotokoll-Kommunikationskanal aufgebaut werden soll. In dieser Phase wird angenommen, dass das Zubehörgerät 102 nicht weiß, welche Hostvorrichtungen gegebenenfalls für die Verbindung verfügbar sind. Bei einigen Ausführungsformen kann dies automatisch erfolgen, wenn das Zubehörgerät einem drahtlosen Netzwerk beitritt (z. B. bei Abschluss des Prozesses 400); bei anderen Ausführungsformen kann eine Benutzereingabe einbezogen sein, wie z. B. die Betätigung einer Schaltfläche „Verbinden” am Zubehörgerät 102. Bei Block 504 kann das Zubehörgerät 102 einen Datensatz mit Dienstinformationen auf dem drahtlosen Netzwerk übertragen und so angeben, dass es das Zubehörprotokoll unterstützt. Dieser Datensatz kann von einer beliebigen Hostvorrichtung empfangen werden, die im drahtlosen Netzwerk vorhanden ist, wie z. B. der Hostvorrichtung 100, sowie von einem Netzzugangspunkt, der das drahtlose Verzeichnis verwaltet und eine Informationsspeicherung zu Geräten im drahtlosen Netzwerk pflegen kann.
  • Bei Block 506 kann die Hostvorrichtung 100 den Datensatz der Dienstinformationen vom Zubehörgerät 102 erkennen und bestätigen, dass das Zubehörgerät in der Auto-Connect-Liste steht (d. h., dass es zuvor bei Block 416 des Prozesses 400 hinzugefügt worden ist). Beispielsweise kann die Hostvorrichtung 100 die MAC-Adresse (oder eine andere ID für Zubehörvorrichtungen), die dem Datensatz mit Dienstinformationen zugewiesen ist, mit dem Datensatz mit Dienstinformationen mit MAC-Adressen (oder mit anderen IDs für Zubehörvorrichtungen) in seiner Auto-Connect-Liste vergleichen und bestimmen, ob eine Entsprechung gefunden wurde. Bei einigen Ausführungsformen kann die Hostvorrichtung 100 Übertragungen von Zubehörgeräten, die nicht in der Auto-Connect-Liste stehen, ignorieren. Derartige Zubehörgeräte können manuell verbunden werden, wie weiter unten beschrieben ist.
  • Unter der Annahme, dass das Zubehörgerät 102 in der Auto-Connect-Liste steht, kann die Hostvorrichtung 100 bei Block 508 einen Zubehörprotokoll-Port (z. B. den Port 306) für die Kommunikation mit dem Zubehörgerät 102 initialisieren. Das Initialisieren von Port 306 kann das Einrichten eines virtuellen Ports 306 einschließen, sowie die dynamische Zuweisung einer Port-ID zum Port 306 und/oder das Einrichten eines Anschlusses, um die Konnektivität des Transports 302 am Port 306 bereitzustellen. Bei Block 510 kann die Hostvorrichtung 100 eine Aufforderungsmeldung zum Zubehörgerät 102 senden, die angibt, dass die Hostvorrichtung 100 das Kommunikationsprotokoll für Zubehörvorrichtungen unterstützt und für die Verbindung mit dem Zubehörgerät 102 verfügbar ist. Die Aufforderungsmeldung kann die dem Port 306 zugewiesene Port-ID einschließen.
  • Bei Block 512 kann das Zubehörgerät 102 die Aufforderung annehmen, und bei Block 514 kann das Zubehörgerät 102 bestimmen, ob die Aufforderung befolgt und die Zubehörprotokoll-Kommunikation mit dem Host 100 initiiert wird. Verschiedene Entscheidungsregeln sind anwendbar. Beispielsweise kann das Zubehörgerät 102 als Reaktion auf eine Übertragung Aufforderungen von mehreren Hosts erhalten, wobei es daraus eine Aufforderung zur Annahme auswählt. Als weiteres Beispiel kann das Zubehörgerät 102 bereits mit einer Hostvorrichtung in Kommunikation sein, wenn eine Aufforderung von einer anderen Hostvorrichtung empfangen wird, und es kann entscheiden, ob die neue Aufforderung angenommen oder die Kommunikation mit der ersten Hostvorrichtung fortgesetzt wird.
  • Die einzelnen Entscheidungsregeln richten sich nach Auswahlkriterien und können die Erwartungen des Benutzers und die Art einer betreffenden Zubehörvorrichtung berücksichtigen. Falls das Zubehörgerät beispielsweise ein Lautsprecher-Dock ist, das von einem Host empfangene Audiodaten abspielt, kann es wünschenswert sein, dass das Zubehörgerät die zuletzt eingegangene Aufforderung annimmt. Dies kann ein Szenario unterstützen, bei dem unterschiedliche Benutzer ihre Hostvorrichtungen verwenden, um Musik über das Lautsprecher-Dock abzuspielen. Falls das Zubehörgerät dagegen ein durch eine Hostvorrichtung steuerbarer Massagesessel ist, kann es wünschenswert sein, dass das Zubehörgerät Aufforderungen ablehnt, falls es bereits mit einem Host verbunden ist, um zu verhindern, dass andere Benutzer die Massage eines ersten Benutzers unterbrechen. Falls zwei oder mehr Hosts Aufforderungen ausgeben, während das Zubehörgerät nicht mit einem Host verbunden ist, kann das Zubehörgerät eine Prioritätsregel zur Auswahl eines Hosts anwenden (z. B. älteste Aufforderung hat Vorrang, neueste Aufforderung hat Vorrang, zuletzt angeschlossener Host hat Vorrang). In einigen Fällen kann ein Zubehörgerät, das eine ausreichende Benutzerschnittstellen-Funktionalität aufweist, den Benutzer auffordern, selbst den Host auszuwählen, dessen Aufforderung akzeptiert werden soll.
  • Falls das Zubehörgerät 102 bestimmt, dass die Aufforderung nicht akzeptiert wird, kann es entweder eine Antwort versenden, mit der der Host entsprechend informiert wird, oder es kann die Aufforderung einfach ignorieren. Bei Block 516 kann die Hostvorrichtung 100 auf ein Wiederholungsereignis warten, dass ein beliebiges Ereignis sein kann, das zur Ausgabe einer neuen Aufforderung führt. Beispielsweise kann ein Benutzer einen manuellen Verbindungsversuch initiieren, wie weiter unten beschrieben ist. Bei einigen Ausführungsformen können bestimmte Ereignisse dazu führen, dass der Host 100 erneut eine automatische Verbindung versucht; Beispiele sind weiter unten beschrieben. Falls innerhalb eines Timeout-Zeitraums kein Wiederholungsereignis eintritt, kann die Hostvorrichtung 100 bei einigen Ausführungsformen den Port, der bei Block 508 initialisiert worden war, schließen, und der Prozess 500 kann enden.
  • Falls das Zubehörgerät 102 bei Block 514 bestimmt, dass die Aufforderung akzeptiert werden soll, kann das Zubehörgerät 102 anschließend bei Block 518 eine Verbindungsschicht und eine oder mehrere Sitzungen (z. B. ähnlich der 3) für die Kommunikation mit dem Host 100 initialisieren. Bei Block 520 kann das Zubehörgerät 102 die Zubehörprotokoll-Kommunikation unter Verwendung der in der Aufforderung angegebenen Host-Port-ID initialisieren. Bei einer vorstehend beschriebenen Ausführungsform kann ein Zubehörgerät beispielsweise die Zubehörprotokoll-Kommunikation initialisieren, indem eine „Erkennen”-Meldung zum Host gesandt wird, und Block 518 kann das Senden dieser Meldung zum angegebenen Host-Port einschließen.
  • Bei einigen Ausführungsformen kann das Zubehörgerät 102 die dynamische Port-Zuweisung implementieren. Wenn dies der Fall ist, kann das Zubehörgerät 102 vor der Übertragung des Datensatzes seiner Dienstinformationen einen Port für die Zubehörprotokoll-Kommunikation initialisieren, und die Hostvorrichtung 100 kann die Aufforderung zu dem betreffenden Port leiten (Block 510). Alternativ dazu kann das Zubehörgerät 102 als Reaktion auf die Bestimmung (Block 514), dass eine Aufforderung akzeptiert wird, einen Port für die Zubehörprotokoll-Kommunikation initialisieren, und es kann die Initialisierungsmeldung (Block 520) auf eine Weise versenden, die den Zubehörprotokoll-Port als Absender identifiziert. In beiden Fällen empfängt die Hostvorrichtung 100 die Port-ID des Zubehörgeräts, und sie kann darauf folgende Zubehörprotokoll-Kommunikationen vom Host-Port 306 zum angegebenen Zubehörgeräte-Port leiten.
  • Bei Block 522 kann die Hostvorrichtung 100 ihre eigene Verbindungsschicht und Sitzungen initialisieren, um unter Verwendung des Zubehörprotokolls mit dem Zubehörgerät 102 zu kommunizieren. In dieser Phase wird ein Zubehörprotokoll-Kommunikationskanal aufgebaut, und die Kommunikation kann unter Verwendung der verschiedenen vom Zubehörprotokoll definierten Meldungen erfolgen, wobei das drahtlose Netzwerk als Transportmedium verwendet wird. Beispielsweise können Host und Zubehörgerät mit der Identifizierung und Bestätigung fortfahren und anschließend die Interaktion über den Austausch zusätzlicher Meldungen beginnen.
  • Wie oben erwähnt, kann bei einigen Ausführungsformen der Aufbau eines Zubehörprotokoll-Kommunikationskanals durch einen Benutzer der Hostvorrichtung 100 manuell initiiert werden. 6 ist ein Ablaufdiagramm eines Prozesses 600 zum Erstellen eines Kanals für die Zubehörprotokoll-Kommunikation gemäß einer Ausführungsform dieser Erfindung. Der Prozess 600 kann z. B. im Protokoll-Stack 300 der Hostvorrichtung 100 implementiert sein. Der Prozess 600 kann zu einem beliebigen Zeitpunkt beginnen (Block 602), wenn die Hostvorrichtung 100 mit einem drahtlosen Netzwerk verbunden ist.
  • Bei Block 604 kann die Hostvorrichtung 100 eine Anforderung eines Benutzers zur Verbindung mit einem drahtlosen Netzwerk empfangen. Beispielsweise kann die Hostvorrichtung 100 eine Benutzerschnittstelle einschließen, die ein Menü „Einstellungen” bereitstellt, und im Einstellungsmenü kann eine vom Benutzer wählbare Option zum Verbinden mit einem drahtlosen Zubehörgerät vorliegen. Bei Block 606 kann die Hostvorrichtung 100 Zubehörvorrichtungen erkennen, die im drahtlosen Netzwerk vorliegen, zu dem sie derzeit gehört, und die die Zubehörprotokoll-Kommunikation unterstützen. Beispielsweise kann die Hostvorrichtung 100 nach Übertragungen von Datensätzen zu Dienstinformationen durch Zubehörvorrichtungen im Netzwerk suchen (z. B. ähnlich der Übertragung bei Block 504 des Prozesses 500), oder Hostvorrichtung 100 kann einen Netzzugangspunkt abfragen, der ein Verzeichnis von Dienstinformationen für Vorrichtungen im Netzwerk pflegt.
  • Bei Block 608 kann die Hostvorrichtung 100 dem Benutzer eine Liste erkannter Zubehörvorrichtungen vorlegen. Bei diesem Beispiel kann ein Zubehörgerät unabhängig davon, ob es in der Auto-Connect-Liste der Hostvorrichtung 100 steht, in der Liste eingeschlossen sein. Bei Block 610 kann die Hostvorrichtung 100 eine durch den Benutzer erfolgte Auswahl eines spezifischen Zubehörgeräts (z. B. des Zubehörgeräts 102) als Zubehörgerät, mit dem eine Verbindung erfolgen soll, empfangen. Bei Block 612 kann die Hostvorrichtung 100 einen Eintrag für das Zubehörgerät 102 in seiner Auto-Connect-Liste hinzufügen, falls dieses dort nicht bereits aufgeführt ist, sodass eine anschließende Neuverbindung ohne Eingreifen des Benutzers erfolgen kann (z. B. unter Verwendung des Prozesses 500). Bei einigen Ausführungsformen kann Block 612 die Aufforderung des Benutzers zum Bestätigen einschließen, dass das Zubehörgerät 102 zur Auto-Connect-Liste hinzugefügt werden soll.
  • Bei Block 614 kann die Hostvorrichtung 100 einen Port ähnlich wie beim Port 508 des Prozesses 500 initialisieren, und bei Block 616 kann die Hostvorrichtung 100 eine Aufforderungsmeldung ähnlich wie bei Block 510 des Prozesses 500 zum Zubehörgerät 102 senden. Ab dieser Phase kann der Aufbau der Verbindung wie in Prozess 500 fortfahren, wobei das Zubehörgerät bestimmt, ob die Aufforderung beantwortet und der Zubehörprotokoll-Kommunikationskanal nur dann aufgebaut wird, wenn das Zubehörgerät die Aufforderung akzeptiert. Bei einigen Ausführungsformen kann die Hostvorrichtung 100 das Hinzufügen eines Eintrags für das Zubehörgerät 102 in der Auto-Connect-Liste zurückstellen, bis die Aufforderung akzeptiert und eine Verbindung aufgebaut ist.
  • Es versteht sich, dass die Konfigurations- und Verbindungsprozesse in 46 der Veranschaulichung dienen und dass Abänderungen und Modifikationen möglich sind. Sequenziell beschriebene Schritte können parallel ausgeführt werden, die Reihenfolge der Schritte kann geändert werden, und die Schritte können abgeändert, kombiniert, hinzugefügt oder ausgelassen werden. Beliebige Prozesse können unabhängig von anderen Prozessen implementiert werden. Beispielsweise können die Kanalaufbau-Prozesse in 5 und/oder 6 zwischen einem bestimmten Host und Zubehörgerät unabhängig davon ausgeführt werden, ob das Zubehörgerät zuvor Zugangsinformationen zum Netzwerk von der betreffenden Hostvorrichtung oder einer anderen Quelle erhalten hatte. Nachdem ein Zubehörgerät Zugangsinformationen für ein bestimmtes Netzwerk erhalten und gespeichert hat, kann das Zubehörgerät abschalten und dem Netzwerk bei Bedarf unter Verwendung der gespeicherten Zugangsinformationen erneut beitreten, solange diese gültig sind. Somit gilt, dass der Prozess 400 unabhängig von Prozess 500 oder 600 ausgeführt werden kann.
  • Die automatische Verbindung entsprechend der Beschreibung mit Bezug auf Prozess 500 kann verwendet werden, um es einer Hostvorrichtung zu ermöglichen, sich immer dann automatisch erneut mit einem Zubehörgerät zu verbinden, wenn die beiden im gleichen Netzwerk präsent sind. Dies kann für Benutzer praktisch sein, da diese Zubehörvorrichtungen einsetzen können, ohne jedes Mal manuell eine Verbindung aufzubauen. Wenn beispielsweise ein Handy eines Benutzers (ein Beispiel einer Hostvorrichtung) seinem Wi-Fi-Heimnetzwerk beitritt, kann sich das Handy automatisch mit einem drahtlosen Lautsprechersystem, einem TV, einem Massagesessel oder einer anderen Zubehörvorrichtung verbinden, die im Heimnetzwerk „live” (vorhanden) ist, sodass der Benutzer die Möglichkeit hat, Medieninhalte abzuspielen oder andere Vorgänge auszuführen, ohne zuvor eine Verbindung zu haben. Während die automatische Verbindung ein nützliches Merkmal sein kann, ist die Verwendung einer Auto-Connect-Liste und einer automatischen Neuverbindung mit Zubehörvorrichtungen wahlfrei. Bei einigen Ausführungsformen kann ein Benutzer die Möglichkeit haben, die automatische Verbindungsfunktion für eine bestimmte Hostvorrichtung zu aktivieren oder zu deaktivieren, und zwar entweder global oder auf der Basis einzelner Zubehörgeräte, z. B. unter Verwendung eines diesbezüglich konfigurierten Einrichtungsmenüs zur Vorgabe des gewünschten Verhaltens.
  • Die automatische Verbindung kann als Reaktion auf verschiedene Ereignisse auftreten. Ein vorstehend beschriebenes Beispiel ist, wenn ein Zubehörgerät, das einem Netzwerk beitritt, vom Host als Eintrag in der Auto-Connect-Liste des Hosts erkannt wird. Ein weiteres Beispiel kann vorliegen, wenn eine Hostvorrichtung hochgefahren oder erneut gestartet wird; dabei kann die Hostvorrichtung als Teil der Boot-Sequenz automatisch einem bevorzugten drahtlosen Netzwerk beitreten (unter der Annahme, dass ein derartiges Netzwerk verfügbar ist) und nach Zubehörvorrichtungen im Netzwerk suchen, die in ihrer Auto-Connect-Liste stehen. Als weiteres Beispiel kann eine Hostvorrichtung nach Zubehörvorrichtungen suchen, mit denen eine automatische Verbindung erfolgen kann, wenn die Hostvorrichtung einem drahtlosen Netzwerk beitritt (z. B., wenn ein Benutzer, der ein Wi-Fi-Heimnetzwerk hat, die Hostvorrichtung im Heimnetzwerk einführt) oder wenn der drahtlose Sender nach vorherigem Abschalten eingeschaltet wird.
  • Es ist anzumerken, dass bei den Prozessen 500 und 600 das Zubehörgerät 102 wartet, um eine Aufforderung von der Hostvorrichtung 100 zu erhalten, statt aktiv nach einer Hostvorrichtung (oder nach einem Zubehörgerät-Kommunikationsport an einer Hostvorrichtung) zu suchen. Dies ermöglicht es der Hostvorrichtung 100, die Kontrolle darüber zu behalten, ob eine Verbindung aufgebaut wird, auch wenn es das Zubehörgerät 102 ist, das die Zubehörprotokoll-Kommunikation initiiert. Dementsprechend erfolgt eine Zubehörprotokoll-Kommunikation nur, wenn beide Vorrichtungen der Verbindung zustimmen: Der Host „stimmt zu”, indem er unter Angabe des zu verwendenden Ports eine Aufforderung an ein spezifisches Zubehörgerät sendet, und das Zubehörgerät „stimmt zu”, indem es als Reaktion auf die Aufforderung eine Zubehörprotokoll-Kommunikation mit dem Port initiiert.
  • Bei einigen Ausführungsformen kann jede Aufforderungsmeldung markiert sein, um anzugeben, ob sie basierend auf einer automatischen Verbindungsregel (z. B. Prozess 500) oder auf einer ausdrücklichen Benutzeranforderung (z. B. Prozess 600) erzeugt wurde. Falls eine auf einer ausdrücklichen Benutzeranforderung basierende Aufforderung vom Zubehörgerät abgelehnt wird, kann die Hostvorrichtung den Benutzer warnen. Falls eine auf einer automatischen Verbindung basierende Aufforderung abgelehnt wird, kann die Hostvorrichtung entscheiden, den Benutzer nicht zu warnen. Wenn daher der Aufbau einer vom Benutzer spezifisch angeforderten Verbindung scheitert, wird der Benutzer informiert, während das Scheitern einer automatischen Verbindung für den Benutzer transparent sein kann. Falls der Benutzer wünscht, dass eine Hostvorrichtung mit einem Zubehörgerät interagiert, das nicht über den automatischen Verbindungsprozess (z. B. Prozess 500) angeschlossen worden ist, kann der Benutzer eine manuelle Verbindung (z. B. Prozess 600) initiieren.
  • Bei den oben beschriebenen Ausführungsformen kann die automatische Verbindung selektiv implementiert werden. Dies kann die Wahrscheinlichkeit verringern, dass eine Hostvorrichtung eine Verbindung herstellt, die ein Benutzer nicht wünscht, und es kann eine Situation vermeiden, in der die Hostvorrichtung fortgesetzt den Benutzer auffordert, eine Verbindung mit verschiedenen Zubehörvorrichtungen aufzubauen, die in einem Netzwerk mit der Hostvorrichtung vorliegen können (und die den Benutzer ablenken könnten). Falls der Prozess 400 beispielsweise einschließt, dass die Hostvorrichtung die Bestätigung des Benutzers einholt, dass die Zubehörvorrichtung zum Netzwerk hinzugefügt werden soll, kann diese Bestätigung als Angabe dienen, dass der Benutzer die Verbindung der Hostvorrichtung mit dem Zubehörgerät beabsichtigt, wobei es unnötig ist, dass die Hostvorrichtung im Prozess 500 erneut eine Aufforderung an den Benutzer sendet. Falls der Benutzer nicht einer bestimmten Hostvorrichtung bestätigt, dass eine Zubehörvorrichtung zum Netzwerk hinzugefügt werden soll, kann die Hostvorrichtung annehmen, dass der Benutzer nicht an der Verbindung der Hostvorrichtung mit dem Zubehörgerät interessiert ist. Auf ähnliche Weise und entsprechend der vorstehenden Beschreibung mit Bezug auf Prozess 600 kann die Hostvorrichtung, wenn ein Benutzer eine Hostvorrichtung manuell anweist, sich mit einem bestimmten Zubehörgerät zu verbinden, das betreffende Zubehörgerät zur Auto-Connect-Liste hinzufügen, sodass künftige Verbindungen mit diesem Zubehörgerät ohne manuelle Anweisung durch den Benutzer erfolgen können. Dieser Typ eines automatischen Verbindungsverhaltens kann die Arbeit des Benutzers erleichtern. Beispielsweise wird der Benutzer nicht mit Verbindungsaufforderungen für verschiedene Zubehörvorrichtungen überhäuft, da derartige Aufforderungen unter Bedingungen erfolgen, die erwartungsgemäß relativ selten auftreten (z. B. nur bei der Erstkonfiguration einer neuen Zubehörvorrichtung). Das für Benutzer zugängliche Menü der aktuell im Netzwerk angemeldeten Zubehörvorrichtungen ermöglicht es dem Benutzer, zu entscheiden, wann Verbindungen zu Zubehörvorrichtungen initiiert werden sollen, die nicht automatisch angeschlossen werden. Gleichzeitig muss der Benutzer die Hostvorrichtung nicht wiederholt anweisen, eine Verbindung mit dem gleichen Zubehörgerät herzustellen. Wie weiter oben erwähnt, können einige Ausführungsformen weiter Anpassungsmenüs bereitstellen, die es dem Benutzer ermöglichen, ein gewünschtes automatisches Verbindungsverhalten detailliert anzugeben, falls der Benutzer dies beabsichtigt.
  • Nachdem ein Zubehörprotokoll-Kommunikationskanal aufgebaut ist, kann die Kommunikation unbegrenzt fortgesetzt werden, bis der Kanal geschlossen wird. Beispielsweise kann der Kanal geschlossen werden, falls entweder der Host 100 oder das Zubehörgerät 102 aus einem beliebigen Grund das drahtlosen Netzwerk verlässt. Als weiteres Beispiel kann ein Benutzer den Host 100 oder das Zubehörgerät 102 anweisen, den Kanal zu schließen (z. B. über eine Benutzerschnittstelle, die ein Steuerelement „Trennen” bereitstellt). Wenn der Kanal geschlossen ist, kann ein Aufräumvorgang durchgeführt werden, um Ressourcen freizugeben und/oder unerwünschte Verbindungen fernzuhalten. Der Aufräumvorgang kann das Beenden oder Schließen des Ports 306 und/oder seines dazugehörigen Anschlusses einschließen. Falls die Verbindungsschicht ein verbindungsbasiertes Protokoll wie TCP implementiert, ist bei einigen Ausführungsformen ist der Verbindungsverlust an der Verbindungsschicht leicht zu erkennen, und der geeignete Aufräumvorgang kann erfolgen. Die Verbindungsschicht kann jedoch ein verbindungsloses Protokoll wie UDP oder Ähnliches verwenden, und der Verbindungsverlust kann dann nicht so leicht erkennbar sein. Beispielsweise kann das Zubehörgerät die Verbindung mit einer Hostvorrichtung trennen, während es im gleichen drahtlosen Netzwerk verbleibt (z. B., weil das Zubehörgerät eine Verbindungsaufforderung von einer anderen Hostvorrichtung akzeptiert).
  • Bei einigen Ausführungsformen kann ein Host oder eine Hostvorrichtung, der/die absichtlich den Kanal schließt, vor dem Schließen des Kanals eine Meldung „Verbindung beenden” des Zubehörprotokolls zur anderen Einrichtung senden. Beispielsweise könnte der Host 100 eine Meldung „Verbindung beenden” senden, falls er in einen Ruhezustand eintritt oder falls der Benutzer ein Steuerelement „Trennen” betätigt hat; das Zubehörgerät 102 könnte eine Meldung „Verbindung beenden” senden, falls es abgeschaltet wird oder entscheidet, eine Verbindung von einer anderen Hostvorrichtung zu akzeptieren (wobei nicht beide Verbindungen aufrechterhalten bleiben können). Der Empfang einer Meldung „Verbindung beenden” kann angeben, dass der Kanal geschlossen wird, und es der empfangenden Einrichtung ermöglichen, Aufräumvorgänge durchzuführen. Es versteht sich, dass es in Abhängigkeit von spezifischen Umständen stets möglich ist, dass ein Kanal ohne Versand einer Meldung „Verbindung beenden” geschlossen wird, oder dass eine versandte Meldung „Verbindung beenden” nicht empfangen wird. Somit muss ein Host oder eine Zubehörvorrichtung nicht annehmen, dass ein Kanal verbunden bleibt, nur weil keine Meldung „Verbindung beenden” empfangen wurde.
  • 7 ist ein Ablaufdiagramm eines Prozesses 700 zum Testen einer Verbindung gemäß einer Ausführungsform dieser Erfindung. Der Prozess 700 kann z. B. im Protokoll-Stack 300 der Hostvorrichtung 100 oder Ähnlichem implementiert sein. Der Prozess 700 kann beginnen (Block 701), während die Hostvorrichtung 100 einen mit dem Zubehörgerät 102 verbundenen Zubehörprotokoll-Kommunikationskanal hat. Bei Block 702 kann die Hostvorrichtung 100 ein mögliches Schließen oder einen Verlust des Kanals erkennen. Beispielsweise kann die Hostvorrichtung 100 einen Netzwerkdienst (z. B. den Bonjour-Dienst) überwachen, und ein Konnektivitätsverlust mit diesem Dienst kann auch einen Konnektivitätsverlust mit anderen Vorrichtungen angeben. Wenn ein möglicher Verlust des Kanals auftritt, kann die Hostvorrichtung 100 die Kommunikation mit der Zubehörvorrichtung bei Block 704 einstellen; bei diesem Beispiel werden die Ports und zugeordnete Anschlüsse für den Fall, dass die Verbindung wiederaufgenommen werden kann, nicht beendet.
  • Bei Block 706 kann die Hostvorrichtung 100 die Wiederherstellung der Konnektivität erkennen. Bei Block 708 kann die Hostvorrichtung 100 eine Meldung „Verbindung validieren” über den Port (z. B. Port 306), mit dem das Zubehörgerät 102 verbunden war, zum Zubehörgerät 102 senden. Die Meldung „Verbindung Validieren” kann im Zubehörprotokoll definiert sein und wie alle anderen Zubehörprotokoll-Meldungen versandt werden. Das Zubehörprotokoll kann fordern, dass ein Zubehörgerät, das eine Meldung „Verbindung validieren” empfängt, innerhalb eines spezifischen Zeitraums (z. B. 5 Sekunden) über den Versand einer Quittierungsmeldung antwortet. Bei einigen Ausführungsformen kann die Quittierungsmeldung eine Zubehörgeräte-ID, ein digitales Zertifikat, digital signierte Daten oder andere Informationen einschließen, die verwendet werden können, um zu bestätigen, dass das Zubehörgerät das gleiche Zubehörgerät ist, das zuvor angeschlossen war.
  • Bei Block 710 kann die Hostvorrichtung 100 bestimmen, ob eine gültige Antwort vom Zubehörgerät 102 empfangen worden ist. Trifft dies zu, kann die Hostvorrichtung 100 bei Block 712 die Sitzung mit dem Zubehörgerät 102 wiederaufnehmen. Wird eine ungültige Antwort empfangen (oder geht innerhalb des Timeout-Zeitraums keine Antwort ein), kann die Hostvorrichtung 100 bei Block 714 den virtuellen Port und alle dazugehörigen Anschlüsse schließen. Falls das Zubehörgerät 102 im Netzwerk vorhanden ist, kann die Hostvorrichtung 100 bei Block 716 eine Neuverbindung versuchen, z. B. durch Einrichten eines neuen Ports und Senden einer neuen Aufforderung zur Verbindung an das Zubehörgerät 102. Bei einigen Ausführungsformen wird die Neuverbindung bei Block 716 nur dann automatisch versucht, falls das Zubehörgerät 102 in der von der Hostvorrichtung 100 gepflegten Auto-Connect-Liste steht.
  • Es versteht sich, dass der Prozess 700 der Veranschaulichung dient und dass Abänderungen und Modifikationen möglich sind. Sequenziell beschriebene Schritte können parallel ausgeführt werden, die Reihenfolge der Schritte kann geändert werden, und die Schritte können abgeändert, kombiniert, hinzugefügt oder ausgelassen werden. Beispielsweise kann eine Reihe von Ereignissen auslösen, dass die Hostvorrichtung 100 eine Meldung „Verbindung validieren” versendet, einschließlich beliebiger Ereignisse, die den Status des Kanals unbestimmt lassen; bei einigen Ausführungsformen kann das Zubehörgerät 102 auch eine Meldung „Verbindung validieren” zur Hostvorrichtung 100 erzeugen, falls es vermutet, dass der Kanal getrennt worden sein könnte.
  • In einigen Fällen kann der Konnektivitätsverlust automatisch das Schließen eines Ports auslösen, ohne zuvor zu versuchen, die Verbindung zu validieren. Falls das Zubehörgerät beispielsweise die Antwort auf vom Host versandte Anwendungsprotokoll-Meldungen einstellt (oder umgekehrt), kann der Host (oder das Zubehörgerät) die Verbindung beenden und ihren Port schließen. Bei einigen Ausführungsformen kann die Verbindungsschicht an einem Ende Quittierungen von empfangenen Meldungen versenden, und der ausbleibende Empfang von Quittierungen nach einer Anzahl von versandten Meldungen kann angeben, dass die andere Einrichtung die Kommunikation über den Kanal eingestellt hat.
  • Als weiteres Beispiel kann der drahtlose Sender der Hostvorrichtung wegen verschiedener Ereignisse abgeschaltet werden, wie z. B., wenn die Einrichtung in einen Ruhezustand oder ausgeschalteten Zustand oder Flugmodus (HF-Empfänger ausgeschaltet) oder Ähnliches eintritt; in einigen Fällen kann der Sender auch abgeschaltet oder auf andere Weise deaktiviert werden, um die Verwendung anderer HF-Kommunikationsprotokolle zu ermöglichen (z. B. eines Mobilfunk-Netzwerks). Wenn ein Abschalten des Senders auftritt, können alle virtuellen Ports und dazugehörigen Anschlüsse beendet werden. Wenn der drahtlose Sender erneut eingeschaltet wird, kann die Hostvorrichtung automatisch neue virtuelle Ports einrichten und versuchen, die Verbindung mit allen Zubehörvorrichtungen neu aufzubauen, mit denen zum Zeitpunkt des Abschaltens aktive Kanäle bestanden hatten. Bei einigen Ausführungsformen versucht die Hostvorrichtung nur dann automatisch, Verbindungen neu aufzubauen, wenn die Zubehörvorrichtung in der Auto-Connect-Liste des Hosts steht; bei anderen Ausführungsformen kann eine Hostvorrichtung Informationen darüber speichern, welche Verbindungen mit Zubehörvorrichtungen zum Zeitpunkt des Abschaltens des Senders bestanden hatten, und sie kann versuchen, diese Verbindungen unabhängig davon, ob die Zubehörvorrichtung in der Auto-Connect-Liste des Hosts steht, wiederherzustellen.
  • Als noch weiteres Beispiel kann das Zubehörprotokoll eine Rahmenstruktur für die Zustellung von willkürlichen Kommunikationen zwischen einer Anwendung (z. B. der Anwendung 332 aus 3), die auf der Hostvorrichtung 100 ausgeführt wird, und einer angeschlossenen Zubehörvorrichtung bereitstellen. Derartige Kommunikationen können z. B. unter Verwendung der Daten-Transfer-Sitzung 318 aus 3, die eine inhaltsagnostische Datenübertragung unter Verwendung des Protokollmanagers 308 und des Protokoll-Daemons 304 bereitstellt, zugestellt werden. Der Inhalt der Kommunikation kann einem anwendungsspezifischen Protokoll entsprechen, das von der Anwendung 332 und vom Zubehörgerät 102 (oder von einigen ihrer Komponenten) interpretiert werden kann. Beispielsweise könnte ein anwendungsspezifisches Protokoll zusammen mit einer geeigneten Anwendung 332 verwendet werden, um eine Benutzerschnittstelle an der Hostvorrichtung 100 zum Steuern einer Zubehörvorrichtung für besondere Zwecke bereitzustellen, wie z. B. für einen Massagesessel.
  • Wenn die Hostvorrichtung 100 eine Anwendung 332 startet, die ein anwendungsspezifisches Protokoll verwendet, kann die Hostvorrichtung 100 bei einigen Ausführungsformen automatisch bestimmen, ob Zubehörvorrichtungen, die das gleiche anwendungsspezifische Protokoll unterstützen, im Netzwerk vorhanden sind und versuchen, sich mit derartigen Zubehörvorrichtungen zu verbinden. Beispielsweise können die vom Zubehörgerät 102 bereitgestellten Identifizierungsinformationen unter Verwendung des Zubehörprotokolls Informationen einschließen, die anwendungsspezifische Protokolle oder besondere Anwendungen identifizieren, die das Zubehörgerät unterstützt oder bevorzugt. Die Hostvorrichtung 100 kann diese Informationen speichern, z. B. im Eintrag der Auto-Connect-Liste für das Zubehörgerät 102. Wenn eine Anwendung gestartet wird, die ein anwendungsspezifisches Protokoll unterstützt, kann die Hostvorrichtung 100 die Auto-Connect-Liste verwenden, um ein bekanntes Zubehörgerät zu identifizieren, das die betreffende Anwendung oder das anwendungsspezifische Protokoll bevorzugt oder unterstützt. Falls ein derartiges Zubehörgerät im drahtlosen Netzwerk vorhanden ist, kann die Hostvorrichtung 100 versuchen, sich mit dem Zubehörgerät zu verbinden (z. B. durch Senden einer Aufforderungsmeldung entsprechend der Beschreibung weiter oben).
  • Drahtlose Netzwerke wie Wi-Fi-Netze können verschiedene Sicherheitsmaßnahmen implementieren (z. B. Datenverschlüsselung und Anforderung von Zugangsinformationen für das Netzwerk), und diese können hilfreich sein, um die drahtlos gesendeten Zubehörprotokoll-Kommunikationen gegen Abfangen, Manipulation und andere Gefahren zu sichern. Bei einigen Ausführungsformen kann eine zusätzliche Sicherheitsschicht im Zubehörprotokoll implementiert sein. Beispielsweise kann die Verbindungsschicht die Verschlüsselung des Inhalts von versandten Paketen unterstützen (sowie die entsprechende Entschlüsselung des Inhalts der empfangenen Pakete), z. B. unter Verwendung des Verschlüsselungsmoduls 309 aus 3. Die Verschlüsselung kann auf Verbindungsbasis implementiert sein oder nicht, und sie kann davon abhängen, ob sowohl das Zubehörgerät als auch der Host Verschlüsselung auf der Verbindungsschicht unterstützen.
  • 8 ist ein Ablaufdiagramm eines Prozesses 800 zum Bestimmen, ob Verbindungsschicht-Verschlüsselung eingesetzt werden soll, gemäß einer Ausführungsform dieser Erfindung. Der Prozess 800 kann beginnen (Block 802), nachdem der Host 100 und das Zubehörgerät 102 einen Zubehörprotokoll-Kommunikationskanal aufgebaut haben (z. B. unter Verwendung der vorstehend beschriebenen Prozesse 500 oder 600). Als Teil seiner Identifizierungsinformationen kann das Zubehörgerät 102 bei Block 804 Konfigurationsinformationen der Verbindungsschicht versenden, einschließlich einer Angabe, ob es über eine Verbindungsschicht-Verschlüsselungsfunktion verfügt. Bei Block 806 kann die Hostvorrichtung 100 diese Informationen empfangen. Bei Block 808 kann die Hostvorrichtung 100 ihre Verbindungsschicht-Konfigurationsinformationen versenden, die eine Angabe einschließen können, ob sie über eine Verbindungsschicht-Verschlüsselungsfunktion verfügt. Die von einer der oder von beiden Vorrichtungen versandten Konfigurationsinformationen können auch andere Eigenschaften der Verbindungsschicht angeben, wie z. B. die Größe eines Puffers, der Meldungen empfängt (die vom Absender zur Vermeidung von Überlauf verwendet werden können), und die Höchstzahl von Meldungen, die vor dem Versenden einer Quittierung empfangen werden usw.
  • Bei Block 810 kann die Hostvorrichtung 100 bestimmen, ob die Verschlüsselung auf der Verbindungsschicht aktiviert wird. Bei einigen Ausführungsformen implementiert die Hostvorrichtung 100 grundsätzlich die Aktivierung der Verbindungsschicht-Verschlüsselung für alle Verbindungen, bei denen sowohl die Hostvorrichtung 100 als auch das Zubehörgerät 102 die Verbindungsschicht-Verschlüsselung unterstützen. Bei anderen Ausführungsformen können zusätzliche Kriterien in die Entscheidung einbezogen werden. Alle für die Bewertung des Risikos in Zusammenhang mit unverschlüsselter Kommunikation relevanten Kriterien können verwendet werden, und die Entscheidung kann die Gewichtung von Risiken gegen die Kosten der Verarbeitungsressourcen bei Verwendung von Verschlüsselung einbeziehen. Beispiele relevanter Kriterien schließen Informationen zu den besonderen Meldungen ein, deren Verwendung das Zubehörgerät 102 beabsichtigt (und die bei der Zubehörgerät-Identifizierung entsprechend der vorstehenden Beschreibung bereitgestellt werden können), oder Informationen zum Typ des angeschlossenen Zubehörgeräts 102.
  • Sofern die Hostvorrichtung 100 nicht bestimmt, dass die Verbindungsschicht-Verschlüsselung aktiviert werden soll, kann das Zubehörgerät 102 (wie auch die Hostvorrichtung 100) bei Block 812 standardmäßig im unverschlüsselten Modus arbeiten. Falls die Hostvorrichtung 100 bei Block 810 bestimmt, dass die Verbindungsschicht-Verschlüsselung nicht aktiviert werden soll, kann das Zubehörgerät 102 (wie auch die Hostvorrichtung 100) weiterhin im unverschlüsselten Modus kommunizieren. (In diesem Zusammenhang bedeutet „unverschlüsselter Modus”, dass die Verbindungsschicht-Verschlüsselung nicht verwendet wird; die Verschlüsselung kann in anderen Schichten eingesetzt werden, wie z. B. durch das drahtlose Netzwerk, das als Transport dient.)
  • Wenn die Hostvorrichtung 100 bestimmt, dass die Verbindungsschicht-Verschlüsselung aktiviert werden soll, kann die Hostvorrichtung 100 bei Block 814 eine Meldung „Verschlüsselung starten” zum Zubehörgerät 102 senden, die dem Zubehörprotokoll entspricht, und das Zubehörgerät 102 kann die Meldung bei Block 816 empfangen. Anschließend können bei den Blöcken 818, 820 beide Geräte in den Betrieb im verschlüsselten Modus umschalten, wobei bei einigen Ausführungsformen der Betrieb im verschlüsselten Modus den Informationsaustausch einschließen kann, der es jedem Gerät ermöglicht, einen geheimen Schlüssel einzurichten. Der geheime Schlüssel kann verwendet werden, um einen Sitzungsschlüssel zu erzeugen, und der Sitzungsschlüssel kann zum Verschlüsseln darauffolgender Kommunikationen eingesetzt werden. Bei Ausführungsformen, bei denen das Zubehörprotokoll die Authentifizierung von Zubehörvorrichtungen unter Verwendung eines digitalen Zertifikats und eines öffentlichen/privaten Schlüsselpaars bereitstellt, kann dieses Schlüsselpaar verwendet werden, um einige der oder alle Informationen zu verschlüsseln, die zum Einrichten des geheimen Schlüssels ausgetauscht werden. Konventionelle oder andere Verschlüsselungsalgorithmen können eingesetzt werden, um einen Sitzungsschlüssel zu erzeugen und ihn zum Verschlüsseln von Meldungen zu verwenden; symmetrische oder asymmetrische Algorithmen können nach Bedarf eingesetzt werden. Derartige Algorithmen können z. B. im Verschlüsselungsmodul 309 aus 3 implementiert und durch die Verbindungsschicht 310 aufgerufen werden.
  • Es versteht sich, dass der hierin beschriebene Prozess 800 der Veranschaulichung dient und dass Abänderungen und Modifikationen möglich sind. Sequenziell beschriebene Schritte können parallel ausgeführt werden, die Reihenfolge der Schritte kann geändert werden, und die Schritte können abgeändert, kombiniert, hinzugefügt oder ausgelassen werden. Die Hostvorrichtung 100 kann entscheiden, jederzeit die Verschlüsselung zu initiieren, und zwar nicht nur, wenn die Verbindungsschicht konfiguriert wird. Nachdem die Verschlüsselung für eine bestimmte Verbindung aktiviert worden ist, bleibt sie bei einigen Ausführungsformen für die Dauer dieser Verbindung aktiviert; bei anderen Ausführungsformen kann die Verschlüsselung innerhalb einer einzelnen Verbindung gestartet und gestoppt (und erneut gestartet) werden. Verschlüsselung in der Verbindungsschicht kann auf alle Zubehörprotokoll-Meldungen oder selektiv auf bestimmte Meldungen angewandt werden (z. B. auf Meldungen, die für spezifische Sitzungen, aber nicht für andere Sitzungen vorgesehen sind), solange beide Vorrichtungen wissen, welche Meldungen verschlüsselt werden sollen und welche nicht.
  • Falls das Zubehörgerät 102 Verbindungsschicht-Verschlüsselung nicht unterstützt, kann die Hostvorrichtung 100 bei einigen Ausführungsformen die Funktionalität einschränken, auf die dem Zubehörgerät 102 Zugriff gewährt wird. Beispielsweise kann einem Zubehörgerät, das die Verbindungsschicht-Verschlüsselung nicht unterstützt, das Senden von Fernsteuerbefehlen gestattet werden, um die Medienwiedergabe von Mediendateien, die auf der Hostvorrichtung 100 gespeichert sind oder auf die diese Einrichtung auf sonstige Weise zugreift, zu starten und zu stoppen, aber nicht digitale Medieninhalte oder andere Informationen zu den Mediendateien zu empfangen (d. h. beschreibende Metadaten wie Titel, Künstleridentifizierungen, dazugehörige Grafik oder Ähnliches).
  • Weiter ist der Prozess 800 nicht abhängig von besonderen Kommunikationskanälen, und er kann nach Bedarf mit drahtlosen und/oder drahtgebundenen Kommunikationskanälen verwendet werden.
  • Entsprechend der vorstehenden Beschreibung können eine Zubehörvorrichtung und eine Hostvorrichtung unter Verwendung eines Zubehörprotokolls kommunizieren, das über ein drahtloses Kommunikationsnetzwerk wie z. B. ein Wi-Fi-Netz transportiert wird. Das Netzwerk kann als Transport oder Kanal zwischen einem virtuellen Port der Hostvorrichtung und einem entsprechenden Port der Zubehörvorrichtung fungieren. Der Kanal wird basierend auf einer Vereinbarung beider Geräte aufgebaut: Beispielsweise kann die Hostvorrichtung eine Port-ID für das Zubehörgerät bereitstellen, und das Zubehörgerät kann mit einer Meldung antworten, die die Zubehörprotokoll-Kommunikation mit dem betreffenden Port initiiert. Eine Hostvorrichtung kann selektiv automatisch Verbindungen zu Zubehörvorrichtungen herstellen, und sie kann sich automatisch erneut mit Zubehörvorrichtungen verbinden. Zusätzlich können Meldungen in der Verbindungsschicht selektiv verschlüsselt werden, um verbesserte Sicherheit bereitzustellen, insbesondere, wenn Meldungen drahtlos übertragen werden.
  • Während die Erfindung mit Bezug auf spezifische Ausführungsformen beschrieben wurde, erkennen Fachleute auf diesem Gebiet, dass zahlreiche Abänderungen möglich sind.
  • In einigen Fällen kann eine Hostvorrichtung mehrere gleichzeitige drahtlose Verbindungen mit Zubehörvorrichtungen haben, z. B. unter Einrichtung mehrerer virtueller Ports. Unterschiedliche virtuelle Ports können sich mit unterschiedlichen Zubehörvorrichtungen oder mit unterschiedlichen Ports der gleichen Zubehörvorrichtung verbinden. Bei einigen Ausführungsformen kann ein Host bestimmen, ob eine Verbindung mit einer Zubehörvorrichtung zumindest teilweise basierend darauf erfolgen soll, welche Zubehörvorrichtungen gegebenenfalls bereits angeschlossen sind. Beispielsweise kann es für einen Host nicht wünschenswert sein, gleichzeitig mit zwei unterschiedlichen Zubehörvorrichtungen verbunden zu sein, die Medien-Streams empfangen, falls der Host nur jeweils einen ausgegebenen Medien-Stream unterstützen kann, oder es kann wegen des Risikos des Empfangs kollidierender Anweisungen nicht wünschenswert sein, dass ein Host gleichzeitig mit zwei unterschiedlichen Fernsteuer-Zubehörgeräten verbunden ist.
  • Weiter kann wegen Ressourcenbeschränkungen die Anzahl virtueller Ports, die gleichzeitig an einer Hostvorrichtung vorhanden sind, begrenzt sein. Falls ein Host bereits die Höchstzahl virtueller Ports verwendet, kann er Übertragungen von anderen Zubehörvorrichtungen ignorieren, die nach Hosts für Verbindungen suchen, oder der Host kann eine Zubehörvorrichtung wählen, die getrennt wird, um eine neue Verbindung zu ermöglichen.
  • Obwohl in der vorstehenden Beschreibung angenommen wird, dass sich ein Zubehörgerät mit jeweils einer Hostvorrichtung verbindet, ist es auch möglich, dass eine Zubehörvorrichtung mehrere gleichzeitig betriebene Ports hat sowie mehrere gleichzeitige Verbindungen zum gleichen Host und/oder zu unterschiedlichen Hosts. Ein Zubehörgerät, das gleichzeitig mit mehreren Hosts interagieren kann, kann Steuerlogik einschließen, die Kommunikationen von mehreren Ports und/oder Hosts verwalten kann. Ein Zubehörgerät mit Mehrport-Fähigkeit kann bestimmen, ob eine Aufforderung von einem Host basierend teilweise darauf, welcher Host gegebenenfalls bereits angeschlossen ist, akzeptiert werden soll.
  • Ausführungsformen dieser Erfindung können unter Verwendung beliebiger Kombinationen aus dedizierten Komponenten und/oder programmierbaren Prozessoren und/oder anderen programmierbaren Vorrichtungen erstellt werden. Die verschiedenen hierin beschriebenen Prozesse können auf dem gleichen Prozessor oder auf unterschiedlichen Prozessoren in beliebigen Kombinationen implementiert werden. Wenn Komponenten so beschrieben sind, dass sie zum Ausführen bestimmter Vorgänge konfiguriert sind, können diese Konfigurationen beispielsweise über die Entwicklung elektronischer Schaltungen zur Ausführung des Vorgangs umgesetzt werden, oder über die Programmierung elektronischer Schaltungen zur Ausführung des Vorgangs (wie z. B. in Mikroprozessoren) oder über beliebige Kombinationen daraus. Während die hierin beschriebenen Ausführungsformen auf spezifische Hardware- und Softwarekomponenten Bezug nehmen, werden Fachleute auf diesem Gebiet ferner erkennen, dass auch unterschiedliche Kombinationen aus Hardware- und/oder Softwarekomponenten verwendet werden können und dass besondere Vorgänge, die als in Hardware implementiert beschrieben sind, auch in Software implementiert werden können und umgekehrt.
  • Computerprogramme, die verschiedene Merkmale dieser Erfindung enthalten, können codiert und auf verschiedenen computerlesbaren Speichermedien gespeichert sein; geeignete Speichermedien schließen Magnetplatten- oder -bänder ein sowie optische Speichermedien wie Compact Disk (CD) oder DVD (Digital Versatile Disk), Flash-Speicher und andere nichtflüchtige Medien. (Es versteht sich, dass „Speichern” von Daten sich von der Verbreitung von Daten unter Verwendung von Zwischenmedien wie Trägerwellen unterscheidet.) Computerlesbare, mit dem Programmcode codierte Medien können mit einer kompatiblen elektronischen Einrichtung paketiert werden, oder der Programmcode kann separat von elektronischen Vorrichtungen bereitgestellt werden (z. B. über einen Internet-Download oder als separat paketiertes computerlesbares Speichermedium).
  • Obwohl die Erfindung mit Bezug auf spezifische Ausführungsformen beschrieben wurde, versteht es sich somit, dass die Erfindung alle Abänderungen und Äquivalente innerhalb des Schutzumfangs der folgenden Patentansprüche abdecken soll.

Claims (20)

  1. Verfahren zum Aufbau eines drahtlosen Kommunikationskanals zwischen einer Hostvorrichtung und einem Zubehörgerät, wobei das Verfahren Folgendes umfasst: Beitreten zu einem drahtlosen Netzwerk durch die Hostvorrichtung; Erkennen eines Übertragungsdatensatzes von dem Zubehörgerät über das drahtlose Netzwerk durch die Hostvorrichtung, wobei der Übertragungsdatensatz eine Zubehörgeräte-ID sowie eine Angabe einschließt, dass das Zubehörgerät ein Zubehörprotokoll unterstützt; Erkennen durch die Hostvorrichtung, ob ein Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll; und falls ein Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll: Senden von der Hostvorrichtung über das drahtlose Netzwerk einer Aufforderungsmeldung zum Zubehörgerät, wobei die Aufforderung eine Adresse der Hostvorrichtung einschließt sowie eine dynamisch zugewiesene Port-ID für einen virtuellen Port der Hostvorrichtung zur Verwendung für die Zubehörprotokoll-Kommunikation; Empfangen einer Erkennungsmeldung vom Zubehörgerät am virtuellen Port, wobei die Erkennungsmeldung dem Zubehörprotokoll entspricht und angibt, dass das Zubehörgerät beabsichtigt, unter Verwendung des Zubehörprotokolls mit der Hostvorrichtung zu kommunizieren; und Initialisieren eines Protokoll-Stacks für die Zubehörprotokoll-Kommunikation mit dem Zubehörgerät durch die Hostvorrichtung in Abhängigkeit von der Erkennungsmeldung.
  2. Verfahren nach Anspruch 1, ferner Folgendes umfassend, falls ein Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll: Einrichten des virtuellen Ports durch die Hostvorrichtung; und Zuweisen der Port-ID an den virtuellen Port durch die Hostvorrichtung.
  3. Verfahren nach Anspruch 1, wobei das Bestimmen, ob der Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll, das Bestimmen einschließt, ob das Zubehörgerät in der von der Hostvorrichtung gepflegten Auto-Connect-Liste steht.
  4. Verfahren nach Anspruch 3, das ferner vor dem Erkennen der Übertragungsmeldung Folgendes umfasst: Erkennen einer Beacon-Übertragung von der Zubehörvorrichtung durch die Hostvorrichtung, wobei die Beacon-Übertragung Zugangsinformationen für ein Netzwerk anfordert, wobei die Beacon-Übertragung ferner eine Zubehörgeräte-ID und eine Angabe einschließt, dass das Zubehörgerät das Zubehörprotokoll unterstützt; und als Reaktion auf die Beacon-Übertragung: Kommunizieren der Netzzugangsinformationen für das drahtlose Netzwerk durch die Hostvorrichtung zum Zubehörgerät; und Hinzufügen der Zubehörgeräte-ID durch die Hostvorrichtung zur Auto-Connect-Liste.
  5. Verfahren nach Anspruch 1, wobei das Bestimmen, ob der Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll, das Empfangen einer Benutzereingabe durch die Hostvorrichtung einschließt, die angibt, dass die Hostvorrichtung die Verbindung mit dem Zubehörgerät herstellen soll.
  6. Verfahren nach Anspruch 5, das ferner Folgendes umfasst: Vorlegen durch die Hostvorrichtung einer für den Benutzer lesbaren Liste von Zubehörgeräten, die im drahtlosen Netzwerk vorhanden sind, wobei das Empfangen der Benutzereingabe das Empfangen einer Auswahl des Benutzers aus der für den Benutzer lesbaren Liste einschließt.
  7. Verfahren nach Anspruch 5, das ferner Folgendes umfasst: Hinzufügen einer Zubehörgeräte-ID durch die Hostvorrichtung zur von der Hostvorrichtung gepflegten Auto-Connect-Liste als Reaktion auf die Benutzereingabe.
  8. Verfahren nach Anspruch 1, wobei der Protokoll-Stack für die Zubehörprotokoll-Kommunikation eine Verbindungsschicht einschließt, wobei das Verfahren nach dem Initialisieren des Protokoll-Stacks ferner Folgendes umfasst: Empfangen einer dem Zubehörprotokoll entsprechenden Identifizierungsmeldung vom Zubehörgerät am virtuellen Port, wobei die Identifizierungsmeldung angibt, ob das Zubehörgerät die Verschlüsselung von Zubehörprotokoll-Meldungen in der Verbindungsschicht des Protokoll-Stacks unterstützt; Bestimmen durch die Hostvorrichtung, ob ein verschlüsselter Modus eingesetzt werden soll, wobei die Bestimmung auf der Identifizierungsmeldung basiert; und als Reaktion auf die Bestimmung, dass die Hostvorrichtung im verschlüsselten Modus betrieben werden soll: Senden einer Verschlüsselungsstart-Meldung zum Zubehörgerät durch die Hostvorrichtung, wobei die Verschlüsselungsstart-Meldung dem Zubehörprotokoll entspricht; und Verschlüsseln von einer oder mehreren ausgehenden Zubehörprotokoll-Meldungen, die nach dem Senden der Verschlüsselungsstart-Meldung durch die Hostvorrichtung zum Zubehörgerät gesendet werden, wobei die Verschlüsselung in der Verbindungsschicht des Protokoll-Stacks durchgeführt wird.
  9. Verfahren nach Anspruch 8, das ferner Folgendes umfasst: Ignorieren durch die Hostvorrichtung einer eingehenden und am unverschlüsselten Port empfangenen Zubehörprotokoll-Meldung durch die Hostvorrichtung im Anschluss an das Senden der Verschlüsselungsstart-Meldung.
  10. Verfahren nach Anspruch 8, das ferner als Reaktion auf die Bestimmung, dass die Hostvorrichtung nicht im verschlüsselten Modus betrieben werden soll, Folgendes umfasst: Bestimmen einer Untermenge eines Universums von Zubehörprotokoll-Meldungen durch die Hostvorrichtung, die in unverschlüsselter Form akzeptabel sind; und Ignorieren durch die Hostvorrichtung einer empfangenen Zubehörprotokoll-Meldung, die nicht in der Untermenge enthalten ist.
  11. Verfahren zum Aufbau eines drahtlosen Kommunikationskanals zwischen einer Hostvorrichtung und einem Zubehörgerät, wobei das Verfahren Folgendes umfasst: Beitreten zu einem drahtlosen Netzwerk durch das Zubehörgerät; Senden einer Übertragungsmeldung durch das Zubehörgerät über das drahtlose Netzwerk, wobei die Übertragungsmeldung eine Zubehörgeräte-ID sowie eine Angabe einschließt, dass das Zubehörgerät ein Zubehörprotokoll unterstützt; Empfangen durch das Zubehörgerät einer Aufforderungsmeldung von einer Hostvorrichtung im drahtlosen Netzwerk, wobei die Aufforderungsmeldung eine Adresse der Hostvorrichtung einschließt sowie eine Port-ID für einen virtuellen Port der Hostvorrichtung zur Verwendung für die Zubehörprotokoll-Kommunikation; Bestimmen durch das Zubehörgerät, ob die Aufforderungsmeldung akzeptiert werden soll; und als Reaktion auf die Bestimmung, dass die Aufforderungsmeldung akzeptiert werden soll: Senden einer Erkennungsmeldung vom Zubehörgerät zum virtuellen Port der Hostvorrichtung, wobei die Erkennungsmeldung dem Zubehörprotokoll entspricht und angibt, dass das Zubehörgerät beabsichtigt, unter Verwendung des Zubehörprotokolls mit der Hostvorrichtung zu kommunizieren; und Initialisieren eines Protokoll-Stacks für die Zubehörprotokoll-Kommunikation mit der Hostvorrichtung durch das Zubehörgerät.
  12. Verfahren nach Anspruch 11 wobei das Bestimmen, ob die Aufforderungsmeldung akzeptiert werden soll, die Bestimmung durch das Zubehörgerät einschließt, ob das Zubehörgerät bereits unter Verwendung des Zubehörprotokolls mit einer anderen Hostvorrichtung in Kommunikation ist, wobei die Aufforderung nicht akzeptiert wird, falls das Zubehörgerät bereits mit einer anderen Hostvorrichtung in Kommunikation ist.
  13. Verfahren nach Anspruch 11 wobei das Bestimmen, ob die Aufforderungsmeldung akzeptiert werden soll, die Bestimmung durch das Zubehörgerät einschließt, ob das Zubehörgerät bereits unter Verwendung des Zubehörprotokolls mit einer anderen Hostvorrichtung in Kommunikation ist, wobei das Verfahren, falls das Zubehörgerät bereits mit einer anderen Hostvorrichtung in Kommunikation ist, ferner Folgendes umfasst: Abbrechen der Kommunikation mit der anderen Hostvorrichtung; und Bestimmen, dass die Aufforderungsmeldung akzeptiert werden soll.
  14. Verfahren nach Anspruch 11, das ferner Folgendes umfasst: als Reaktion auf die Bestimmung, dass die Aufforderungsmeldung nicht akzeptiert werden soll, Senden einer Ablehnungsmeldung durch das Zubehörgerät zur Hostvorrichtung.
  15. Verfahren nach Anspruch 11, das ferner Folgendes umfasst: Senden einer Identifizierungsmeldung vom Zubehörgerät zum Port der Hostvorrichtung, wobei die Identifizierungsmeldung dem Zubehörprotokoll entspricht und wobei die Identifizierungsmeldung angibt, ob das Zubehörgerät die Verschlüsselung von Zubehörprotokoll-Meldungen in der Verbindungsschicht eines Protokoll-Stacks unterstützt, der vom Zubehörgerät für die Zubehörprotokoll-Kommunikation verwendet wird; Empfangen einer dem Zubehörprotokoll entsprechenden Verschlüsselungsstart-Meldung durch die Hostvorrichtung; und Verschlüsseln von einer oder mehreren ausgehenden Zubehörprotokoll-Meldungen durch das Zubehörgerät, die nach dem Empfang der Verschlüsselungsstart-Meldung zum Port der Hostvorrichtung gesendet werden, wobei die Verschlüsselung in der Verbindungsschicht des Protokoll-Stacks durchgeführt wird.
  16. Hostvorrichtung, Folgendes umfassend: eine drahtlose Kommunikationsschnittstelle; eine Benutzerschnittstelle; und einen mit der drahtlosen Kommunikationsschnittstelle und der Benutzerschnittstelle gekoppelten Prozessor, wobei der Prozessor für Folgendes konfiguriert ist: Beitreten der Hostvorrichtung zu einem drahtlosen Netzwerk über die drahtlose Kommunikationsschnittstelle; Erkennen eines Übertragungsdatensatzes von der Zubehörvorrichtung über das drahtlose Netzwerk, wobei der Übertragungsdatensatz eine Zubehörgeräte-ID sowie eine Angabe einschließt, dass die Zubehörvorrichtung ein Zubehörprotokoll unterstützt; Bestimmen, zumindest teilweise basierend auf dem Übertragungsdatensatz, dass ein Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll; Senden einer Aufforderungsmeldung zum Zubehörgerät über das drahtlose Netzwerk, wobei die Aufforderung eine Adresse der Hostvorrichtung einschließt sowie eine dynamisch zugewiesene Port-ID für einen virtuellen Port der Hostvorrichtung zur Verwendung für die Zubehörprotokoll-Kommunikation; Empfangen einer Erkennungsmeldung vom Zubehörgerät am virtuellen Port, wobei die Erkennungsmeldung dem Zubehörprotokoll entspricht und angibt, dass das Zubehörgerät beabsichtigt, unter Verwendung des Zubehörprotokolls mit der Hostvorrichtung zu kommunizieren; und Initialisieren eines Protokoll-Stacks für die Zubehörprotokoll-Kommunikation mit dem Zubehörgerät in Abhängigkeit von der Erkennungsmeldung.
  17. Hostvorrichtung nach Anspruch 16, wobei der Prozessor ferner konfiguriert ist, um den virtuellen Port einzurichten und die Port-ID zu erzeugen als Reaktion auf die Bestimmung, dass der Zubehörprotokoll-Kommunikationskanal aufgebaut werden soll.
  18. Hostvorrichtung nach Anspruch 16, wobei der Prozessor ferner so konfiguriert ist, dass die Bestimmung, ob der Zubehörprotokoll-Kommunikationskanal mit dem Zubehörgerät aufgebaut werden soll, das Empfangen einer Benutzereingabe über die Benutzerschnittstelle einschließt, die angibt, dass die Hostvorrichtung die Verbindung mit dem Zubehörgerät herstellen soll.
  19. Zubehörvorrichtung, Folgendes umfassend: eine drahtlose Kommunikationsschnittstelle; und einen mit der drahtlosen Kommunikationsschnittstelle gekoppelten Controller, wobei der Controller für Folgendes konfiguriert ist: Beitreten der Zubehörvorrichtung zu einem drahtlosen Netzwerk über die drahtlose Kommunikationsschnittstelle; Senden einer Übertragungsmeldung über das drahtlose Netzwerk, wobei die Übertragungsmeldung eine Zubehörgeräte-ID sowie eine Angabe einschließt, dass die Zubehörvorrichtung ein Zubehörprotokoll unterstützt; Empfangen einer Aufforderungsmeldung von einer Hostvorrichtung im drahtlosen Netzwerk, wobei die Aufforderungsmeldung eine Adresse der Hostvorrichtung einschließt sowie eine Port-ID für einen virtuellen Port der Hostvorrichtung zur Verwendung für die Zubehörprotokoll-Kommunikation; Senden einer Erkennungsmeldung zum virtuellen Port der Hostvorrichtung, wobei die Erkennungsmeldung dem Zubehörprotokoll entspricht und angibt, dass die Zubehörvorrichtung beabsichtigt, unter Verwendung des Zubehörprotokolls mit der Hostvorrichtung zu kommunizieren; und Initialisieren eines Protokoll-Stacks für die Zubehörprotokoll-Kommunikation mit der Hostvorrichtung.
  20. Zubehörgerät nach Anspruch 19, wobei der Controller ferner konfiguriert ist, um zu bestimmen, ob die Aufforderungsmeldung von der Hostvorrichtung akzeptiert werden soll, wobei die Bestimmung zumindest teilweise darauf basiert, ob das Zubehörgerät bereits unter Verwendung des Zubehörprotokolls mit einer anderen Hostvorrichtung in Kommunikation ist.
DE112014002697.2T 2013-06-07 2014-06-05 Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport Active DE112014002697B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361832650P 2013-06-07 2013-06-07
US61/832,650 2013-06-07
US14/296,302 2014-06-04
US14/296,302 US9730268B2 (en) 2013-06-07 2014-06-04 Communication between host and accessory devices using accessory protocols via wireless transport
PCT/US2014/041101 WO2014197700A2 (en) 2013-06-07 2014-06-05 Communication between host and accessory devices using accessory protocols via wireless transport

Publications (2)

Publication Number Publication Date
DE112014002697T5 true DE112014002697T5 (de) 2016-03-03
DE112014002697B4 DE112014002697B4 (de) 2020-06-18

Family

ID=52006472

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112014002697.2T Active DE112014002697B4 (de) 2013-06-07 2014-06-05 Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport

Country Status (6)

Country Link
US (1) US9730268B2 (de)
KR (1) KR20160007576A (de)
CN (1) CN105393564B (de)
DE (1) DE112014002697B4 (de)
TW (1) TWI561990B (de)
WO (1) WO2014197700A2 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674331B2 (en) * 2012-06-08 2017-06-06 Apple Inc. Transmitting data from an automated assistant to an accessory
US9769301B2 (en) 2014-09-02 2017-09-19 Apple Inc. Accessory device application bundling
US9420087B2 (en) 2014-09-02 2016-08-16 Apple Inc. Notifications with custom user interface
US10592187B2 (en) 2014-09-02 2020-03-17 Apple Inc. Accessory device operation with user mobile device over network connection
KR101568335B1 (ko) * 2014-11-26 2015-11-12 현대자동차주식회사 차량에서의 블루투스 페어링 제공 방법 및 장치
US10630647B2 (en) 2015-02-05 2020-04-21 Apple Inc. Secure wireless communication between controllers and accessories
US20160338120A1 (en) * 2015-05-14 2016-11-17 Smart Technologies, Ulc System And Method Of Communicating Between Interactive Systems
US10075516B2 (en) * 2015-08-06 2018-09-11 Intel IP Corporation Responding to a ranging request from a peer device in a wireless network
US10065657B2 (en) * 2015-08-17 2018-09-04 Honda Motor Co., Ltd. System and method for applying vehicle settings to a vehicle
US10411829B2 (en) * 2015-08-17 2019-09-10 Facebook, Inc. Apparatus for free-space optical communications at high data rates
EP3445002B1 (de) 2016-01-08 2019-07-24 Apple Inc. Sichere drahtlose kommunikation zwischen steuergeräten und zubehörgeräten
TWI588676B (zh) * 2016-03-07 2017-06-21 Walton Advanced Eng Inc 裝置配對方法
US10819418B2 (en) 2016-04-29 2020-10-27 Honeywell International Inc. Systems and methods for secure communications over broadband datalinks
US20170337900A1 (en) * 2016-05-17 2017-11-23 Google Inc. Wireless user interface projection for vehicles
KR101808513B1 (ko) * 2017-06-22 2018-01-18 임철수 한대의본체로 다수가 사용하는 컴퓨터장치 및 그 운영방법
JP6639754B2 (ja) * 2017-08-28 2020-02-05 三菱電機株式会社 通信装置、動作手順管理方法及び動作手順管理プログラム
US10486646B2 (en) * 2017-09-29 2019-11-26 Apple Inc. Mobile device for communicating and ranging with access control system for automatic functionality
KR102469568B1 (ko) * 2018-01-23 2022-11-22 삼성전자주식회사 전자 장치의 방송 수신 방법 및 장치
KR102414927B1 (ko) * 2018-03-21 2022-06-30 삼성전자 주식회사 무선랜 서비스를 사용하는 기기의 인증 방법 및 장치
US10715511B2 (en) 2018-05-03 2020-07-14 Honeywell International Inc. Systems and methods for a secure subscription based vehicle data service
US10819689B2 (en) 2018-05-03 2020-10-27 Honeywell International Inc. Systems and methods for encrypted vehicle data service exchanges
TWI723268B (zh) * 2018-06-07 2021-04-01 佳世達科技股份有限公司 可共享周邊裝置之電子系統
CN109116998B (zh) * 2018-06-11 2022-09-02 苏州佳世达电通有限公司 可共享周边装置的电子系统
US11516674B2 (en) * 2019-01-02 2022-11-29 Samsung Electronics Co., Ltd. Framework of secure ranging without PHY payload
US11805419B2 (en) * 2019-04-22 2023-10-31 Google Llc Automatically paired devices
KR102260779B1 (ko) * 2019-07-18 2021-06-07 주식회사 아이센스 연속 혈당 측정 시스템의 근거리 통신 연결 방법
US11595798B2 (en) * 2019-11-01 2023-02-28 Hach Company Dynamic wireless information transmission
US11467848B2 (en) * 2020-05-07 2022-10-11 Capital One Services, Llc Portable operating system and portable user data
WO2022098349A1 (en) * 2020-11-04 2022-05-12 Hewlett-Packard Development Company, L.P. Communication protocol tests

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734820A (en) * 1996-03-11 1998-03-31 Sterling Commerce, Inc. Security apparatus and method for a data communications system
JP3045985B2 (ja) * 1997-08-07 2000-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ
GB2350971A (en) 1999-06-07 2000-12-13 Nokia Mobile Phones Ltd Security Architecture
GB2411494B (en) 2004-02-27 2006-04-12 Toshiba Res Europ Ltd Protocol stack with modification facility
US7823214B2 (en) 2005-01-07 2010-10-26 Apple Inc. Accessory authentication for electronic devices
US7616594B2 (en) * 2005-04-22 2009-11-10 Microsoft Corporation Wireless device discovery and configuration
KR100770914B1 (ko) * 2006-09-11 2007-10-26 삼성전자주식회사 비접촉식 근거리통신의 피어투피어 통신 방법
US8472874B2 (en) 2007-03-14 2013-06-25 Apple Inc. Method and system for pairing of wireless devices using physical presence
US8078787B2 (en) * 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate device
KR101405919B1 (ko) 2007-07-20 2014-06-12 삼성전자주식회사 폴더 공유 서비스 설정을 위한 호스트 장치, 디바이스 및폴더 공유 서비스 설정방법
US8681691B2 (en) 2007-07-25 2014-03-25 Microsoft Corporation Base station initiated proximity service discovery and connection establishment
EP2185992B1 (de) * 2007-09-04 2013-07-17 Apple Inc. Intelligente dockstation zur verkettung von zusatzgeräten
JP2011516930A (ja) 2007-09-05 2011-05-26 オセ−テクノロジーズ ビーブイ 自動設定ネットワーク・コンピュータ周辺機器
US8473325B2 (en) 2007-10-12 2013-06-25 Pie Digital, Inc. System and method for automatic configuration and management of home network devices using a hierarchical index model
US8006023B1 (en) 2008-05-15 2011-08-23 Marvell International Ltd. Driver based wireless USB
US20110116426A1 (en) 2008-07-17 2011-05-19 Alexey Polonsky Cableless usb connectivity over ieee 802.11 networks
US8700789B2 (en) 2009-03-16 2014-04-15 Apple Inc. Accessory and mobile computing device communication using an application communication protocol
US8452903B2 (en) 2009-03-16 2013-05-28 Apple Inc. Mobile computing device capabilities for accessories
US8760265B2 (en) * 2009-05-08 2014-06-24 Apple Inc. Remote control signal learning and processing by a host device and accessory
US20110022916A1 (en) 2009-07-24 2011-01-27 Prasanna Desai Method and system for saving power for packet re-transmission in an encrypted bluetooth low power link layer connection
US9338276B2 (en) 2010-01-26 2016-05-10 Apple Inc. Gating accessory connection
US8464061B2 (en) * 2010-08-30 2013-06-11 Apple Inc. Secure wireless link between two devices using probes
CN102130768B (zh) * 2010-12-20 2012-11-07 西安西电捷通无线网络通信股份有限公司 一种具有链路层加解密能力的终端设备及其数据处理方法
US8775533B2 (en) 2011-05-20 2014-07-08 Microsoft Corporation Auto connect in peer-to-peer network
US20120309289A1 (en) 2011-06-06 2012-12-06 Apple Inc. Techniques for facilitating interoperation between an accessory and multiple devices
US8813198B2 (en) * 2011-07-05 2014-08-19 Apple Inc. Configuration of accessories for wireless network access

Also Published As

Publication number Publication date
WO2014197700A4 (en) 2015-04-02
WO2014197700A2 (en) 2014-12-11
CN105393564A (zh) 2016-03-09
TW201502787A (zh) 2015-01-16
US20140365694A1 (en) 2014-12-11
US9730268B2 (en) 2017-08-08
WO2014197700A3 (en) 2015-01-29
CN105393564B (zh) 2019-03-19
TWI561990B (en) 2016-12-11
KR20160007576A (ko) 2016-01-20
DE112014002697B4 (de) 2020-06-18

Similar Documents

Publication Publication Date Title
DE112014002697B4 (de) Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport
DE102013104691B4 (de) Verfahren zum Übertragen von Daten zwischen einer ersten Vorrichtung und einer zweiten Vorrichtung
DE202013012744U1 (de) Drahtlose Kommunikationsvorrichtung, Informationsverarbeitungsvorrichtung
US8639810B2 (en) Access rights used for resource discovery in peer-to-peer networks
DE102011075066A1 (de) Verfahren und Systeme zum Herstellen einer Schnittstelle mit einem Fahrzeugdatenverarbeitungssystem über mehrere Datentransportkanäle
DE202012013707U1 (de) Elektronisches Werkzeug für Meetings
US10034057B2 (en) Message processing method, device, gateway, STB and IPTV
DE102015120902A1 (de) Fernerlaubnissteuerung und -überwachung von Fahrzeuganwendungen
CA2773129A1 (en) Method and memory card for wireless digital content management
US9083849B2 (en) Transmission terminal, transmission system, and non-transitory computer readable storage medium
EP1557758A1 (de) DIENSTSOFTWAREANSCHAFFUNGSVERFAHREN, SYSTEM UND ELEKTRONISCHES KOMMUNIKATIONSGERûT DAF R
DE112012005028B4 (de) Kommunikationsvorrichtung und Verfahren zum Steuern von dieser
DE202016107182U1 (de) Drahtlose Benutzerschnittstellenprojektion für Fahrzeuge
EP2908477A1 (de) Fernzugriffsverfahren und -vorrichtung
DE112012003655T5 (de) Vorrichtung und Verfahren für die Interoperabilität persönlicher elektrischer Geräte
CN106452873B (zh) 软件定义网络中的控制方法,控制设备和处理器
WO2016101545A1 (zh) 设备管理方法、装置及系统
DE10312630A1 (de) Vorrichtung für und Verfahren von einem nahtlosen, drahtlosen Multimedia-Download-Weg zu vernetzten Partneranwendungen
DE102013014646B4 (de) Verwaltung von SIM-Angaben
US20220286731A1 (en) Multimedia apparatus and cast method
DE112012005034T5 (de) Kommunikationsvorrichtung und Verfahren zur Steuerung der Vorrichtung
DE102020113964A1 (de) Elektronische peripheriegeräte mit synchronisiertenenergiemodi
DE102015110806A1 (de) Verfahren zum automatischen Schließen einer Anwendung bei Transportverbindungsabkopplung
EP2846540B1 (de) Vorrichtung, system und verfahren für datenverwaltung sowie trägervorrichtungen
CN102457769A (zh) 一种电视机装置及其实现文件资源共享的方法

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04W0008000000

Ipc: H04W0048160000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final