DE102019119284A1 - Drahtlose Kommunikation mit Peripheriegeräten - Google Patents

Drahtlose Kommunikation mit Peripheriegeräten Download PDF

Info

Publication number
DE102019119284A1
DE102019119284A1 DE102019119284.6A DE102019119284A DE102019119284A1 DE 102019119284 A1 DE102019119284 A1 DE 102019119284A1 DE 102019119284 A DE102019119284 A DE 102019119284A DE 102019119284 A1 DE102019119284 A1 DE 102019119284A1
Authority
DE
Germany
Prior art keywords
sensor data
clock signal
time
peripheral
host device
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.)
Pending
Application number
DE102019119284.6A
Other languages
English (en)
Inventor
Philippe Chazot
Frédéric Fortin
Fabrice Sauterel
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.)
Logitech Europe SA
Original Assignee
Logitech Europe SA
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 Logitech Europe SA filed Critical Logitech Europe SA
Publication of DE102019119284A1 publication Critical patent/DE102019119284A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C17/00Arrangements for transmitting signals characterised by the use of a wireless electrical link
    • G08C17/02Arrangements for transmitting signals characterised by the use of a wireless electrical link using a radio link
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Systems (AREA)
  • Selective Calling Equipment (AREA)

Abstract

Es werden Beispiele für Techniken der drahtlosen Kommunikation vorgestellt. Bei einigen Beispielen umfasst ein System einen drahtlosen Transceiver und einen Hardwareprozessor, der ausgebildet ist zum: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von einer Hostvorrichtung, wobei das System und die Hostvorrichtung über eine drahtgebundene Verbindung verbunden sind; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunktgerätetaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunktgerätetaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung; Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers; Empfangen der Sensordaten von dem Peripheriegerät; und zur Verfügung stellen der Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer.

Description

  • HINTERGRUND
  • Peripheriegeräte können als Schnittstelle zwischen Mensch und Computer eingesetzt werden. Einige gängige Peripheriegeräte umfassen Tastaturen, Computermäuse, Bildscanner, Lautsprecher, Mikrofone, Webkameras und Anderes. Diese Peripheriegeräte können mit einem Computerprozessor über eine drahtgebundene Verbindung, wie z. B. einen Universal Serial Bus (USB), DisplayPort, usw. verbunden werden. Um eine Kommunikation des Computerprozessors mit den Peripheriegeräten zu ermöglichen, kann zwischen einem Peripheriegerät und den Schnittstellenanschlüssen der seriellen Hochgeschwindigkeitsverbindung eine drahtgebundene Verbindung vorgesehen sein.
  • Die Einführung der Funktechnologie ermöglicht einen Ersatz der drahtgebundene Verbindung durch zuverlässige Funkkanäle mit großer Bandbreite. Beispielsweise kann ein USB-Dongle bereitgestellt werden, über den ein drahtloses Peripheriegerät (z. B. eine drahtlose Computermaus) mit einem Computerprozessor drahtlos kommunizieren kann. Der USB-Dongle kann eine Funkschnittstelle zur Kommunikation mit dem drahtlosen Peripheriegerät aufweisen. Der USB-Dongle kann ferner mit einer USB-Schnittstelle des Computers verbunden werden und mit dem Computerprozessor über eine USB-Hostvorrichtung und einen USB-Bus kommunizieren. Das drahtlose Peripheriegerät kann dann mit dem Computerprozessor über den USB-Dongle kommunizieren.
  • Mit Hilfe einer drahtlosen Verbindung zwischen den Peripheriegeräten und den Computern kann die Brauchbarkeit der Peripheriegeräte weiter verbessert werden. Beispielsweise kann eine drahtgebundene Verbindung die Bewegung einer Computermaus behindern. Durch den Wegfall der drahtgebundenen Verbindung lässt sich eine drahtlose Computermaus ungehinderter bewegen und erfordert weniger Aufwand bei der Bedienung. Außerdem kann die Geschwindigkeit, mit der der Computer die Anzeige anpasst (z. B. Position des Mauszeigers, Reaktion auf die Auswahl des Benutzers mit der Maus usw.) zunehmen, was für Softwareanwendungen, die eine unmittelbare Interaktionen zwischen dem Benutzer (z. B. Spiele, Gerätesteuerung usw.) und dem System erfordern, entscheidend sein kann. All dies kann sowohl die Produktivität des Benutzers als auch die Benutzerfreundlichkeit verbessern.
  • KURZBESCHREIBUNG
  • Bei einigen Beispielen umfasst ein System einen drahtlosen Transceiver, eine Speichervorrichtung zur Speicherung eines Satz von Anweisungen und einen Hardwareprozessor. Der Hardwareprozessor ist zum Ausführen des Satzes von Anweisungen ausgebildet, um durchzuführen: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von einer Hostvorrichtung, wobei das System und die Hostvorrichtung über eine drahtgebundene Verbindung verbunden sind; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunktgerätetaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunktgerätetaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung; Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers; Empfangen der angeforderten Sensordaten von dem Peripheriegerät; und zur Verfügung stellen der angeforderten Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer.
  • Gemäß einiger Aspekte ist der Hardwareprozessor zur Durchführung von Folgendem ausgebildet: Bestimmen eines zweites Zeitpunktes, zu dem das System von der Hostvorrichtung eine Leseanforderung für die Sensordaten empfangen soll, auf Basis des Hostvorrichtungstaktsignals, wobei der erste Zeitpunkt zum Beziehen der Sensordaten so von dem Peripheriegerät bestimmt wird, dass die Sensordaten von dem System vor dem zweiten Zeitpunkt bezogen werden.
  • Gemäß einiger Aspekte wird der erste Hinweis auf das Hostvorrichtungstaktsignal zu einem dritten Zeitpunkt empfangen. Der erste Zeitpunkt zum Übertragen der Sensordatenanforderung wird auf Basis des dritten Zeitpunktes und einer vorgegebenen Verzögerung zwischen dem Zeitpunkt, zu dem das System mit dem Beziehen der Sensordaten beginnt, und dem Zeitpunkt, zu dem die Sensordaten an dem System zur Übertragung über die drahtgebundene Verbindung verfügbar werden, bestimmt.
  • Gemäß einiger Aspekte umfasst ein Übertragen der Sensordatenanforderung an das Peripheriegerät ein Übertragen einer Abfrageanforderung durch das System an das Peripheriegerät unter Verwendung des drahtlosen Transceivers. Der Hardwareprozessor ist ferner zur Durchführung von Folgendem ausgebildet: Empfangen einer die Sensordaten enthaltenden Abfrageantwort von dem Peripheriegerät unter Verwendung des drahtlosen Transceivers; und Verarbeiten der Abfrageantwort, um die Sensordaten zu extrahieren.
  • Gemäß einiger Aspekte kann das Peripheriegerät durch ein Übertragen der Abfrageanforderung an das Peripheriegerät zum ersten Zeitpunkt in die Lage versetzt werden einen dritten Zeitpunkt für den Bezug der nächsten Sensordaten und/oder einen vierten Zeitpunkt zum Abwarten einer als Nächstes folgenden Abfrageanforderung für eine Übertragung der nächsten Sensordaten von dem Peripheriegerät zu bestimmen.
  • Gemäß einiger Aspekte umfasst die Abfrageanforderung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals, um den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder den vierten Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät zu bestimmen.
  • Gemäß einiger Aspekte ist der Hardwareprozessor ferner zur Durchführung von Folgendem ausgebildet: Bestimmen einer Änderung der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal und wenn bestimmt wird, dass die Änderung der Phasenbeziehung einen Schwellwert überschreitet: Erzeugen einer Anweisung, die Informationen über die Änderung der Phasenbeziehung enthält, und Übertragen der Anweisung an das Peripheriegerät unter Verwendung des drahtlosen Transceivers, damit das Peripheriegerät den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder den vierten Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät aktualisieren kann.
  • Gemäß einiger Aspekte umfasst die Anweisung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals und gibt an, wann der dritte Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder der vierte Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät zu aktualisieren ist.
  • Gemäß einiger Aspekte ist der Hardwareprozessor ferner zur Durchführung von Folgendem ausgebildet: Empfangen einer Anforderung von dem Peripheriegerät zum Einrichten eines Funkkanals unter Verwendung des drahtlosen Transceivers; und Senden einer Bestätigung an das Peripheriegerät unter Verwendung des drahtlosen Transceivers zu einem zweiten Zeitpunkt, der auf Basis eines dritten Zeitpunkts bestimmt wird, zu dem der erste Hinweis auf das Hostvorrichtungstaktsignal erhalten wird.
  • Gemäß einiger Aspekte ist der Hardwareprozessor ferner zur Durchführung von Folgendem ausgebildet: Bestimmen eines zweiten Zeitpunktes für den Beginn eines Bezugs von zweiten Sensordaten von einem zweiten Peripheriegerät, wobei der zweite Zeitpunkt ebenfalls auf Basis der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal bestimmt wird; und Beginnen mit dem Beziehen der zweiten Sensordaten von dem zweiten Peripheriegerät zu dem bestimmten zweiten Zeitpunkt.
  • Gemäß einiger Aspekte umfasst der erste Hinweis auf das Hostvorrichtungstaktsignal ein Interruptsignal. Gemäß einiger Aspekte umfasst die drahtgebundene Verbindung einen Universal Serial Bus (USB) oder mehrere Universal Serial Busse.
  • Bei einigen Beispielen umfasst ein System einen drahtlosen Transceiver, einen Sensor, eine Speichervorrichtung zum Speichern eines Satzes von Anweisungen und einen Hardwareprozessor, der zum Ausführen des Satzes von Anweisungen ausgebildet ist, um durchzuführen: Empfangen einer Sensordatenanforderung von einem mit einem Computer verbundenen Endpunktgerät zu einem ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers; Bestimmen eines zweiten Zeitpunktes zum Empfangen einer als Nächstes folgenden Sensordatenanforderung auf Basis des ersten Zeitpunktes; Bestimmen einer mit dem Bezug von Sensordaten von einem Sensor in Zusammenhang stehenden Verzögerung; Bestimmen eines dritten Zeitpunktes für den Beginn eines Bezugs von Sensordaten auf Basis der Verzögerung und des zweiten Zeitpunktes; Beziehen der Sensordaten von dem Sensor zum dritten Zeitpunkt; und Übertragen der Sensordaten an das Endpunktgerät unter Verwendung des drahtlosen Transceivers als Eingabedaten für den Computer.
  • Gemäß einiger Aspekte ist das Endpunktgerät über eine drahtgebundene Verbindung mit einer Hostvorrichtung verbunden. Der erste Zeitpunkt wird auf Basis einer Phasenbeziehung zwischen einem der Hostvorrichtung bereitgestellten Hostvorrichtungstaktsignal und einem dem Endpunktgerät bereitgestellten Endpunktgerätetaktsignal bestimmt.
  • Gemäß einiger Aspekte ist der Hardwareprozessor ferner zur Durchführung von Folgendem ausgebildet: Empfangen einer Informationen über eine Änderung der Phasenbeziehung enthaltenden Anweisung von dem Endpunktgerät; und Bestimmen des dritten Zeitpunktes für den Beginn eines Bezugs von Sensordaten von dem Sensor auf Basis der Anweisung.
  • Gemäß einiger Aspekte umfasst die Anweisung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals. Der dritte Zeitpunkt zum Beginn eines Bezugs der Sensordaten wird auf Basis der Genauigkeitsinformationen bestimmt.
  • Gemäß einiger Aspekte wird der erste Zeitpunkt basierend darauf bestimmt, wann das Endpunktgerät von einer Hostvorrichtung eine Leseanforderung für die Sensordaten empfangen soll.
  • Bei einigen Beispielen umfasst ein System einen Dongle, der über eine drahtgebundene Verbindung mit einer Hostvorrichtung eines Computers verbunden ist, sowie ein Peripheriegerät. Der Dongle ist ausgebildet zum: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von der Hostvorrichtung; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunkttaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunkttaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung; und Übertragen der Sensordatenanforderung zum ersten Zeitpunkt drahtlos an das Peripheriegerät. Das Peripheriegerät ist ausgebildet zum: Beziehen von Sensordaten zu einem zweiten Zeitpunkt, der auf Basis einer mit dem Bezug der Sensordaten in Zusammenhang stehenden Verzögerung und auf Basis dessen bestimmt wird, wann die Sensordatenanforderung des Dongles ankommen soll; Empfangen der Sensordatenanforderung drahtlos von dem Dongle; und Senden der angeforderten Sensordaten drahtlos in Reaktion auf die Sensordatenanforderung. Der Dongle ist ferner ausgebildet zum drahtlosen Empfangen der angeforderten Sensordaten von dem Peripheriegerät und zum zur Verfügung stellen der angeforderten Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer.
  • Bei einigen Beispielen ist der Dongle ausgebildet, an das Peripheriegerät eine Abfrageanforderung zu senden, von dem Peripheriegerät eine die Sensordaten enthaltende Abfrageantwort zu empfangen und die Abfrageantwort zum Extrahieren der Sensordaten zu verarbeiten.
  • Bei einigen Beispielen ist der Dongle ferner zur Durchführung von Folgendem ausgebildet: Bestimmen einer Änderung der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal; wenn bestimmt wird, dass die Änderung der Phasenbeziehung einen Schwellwert überschreitet: Erzeugen einer Anweisung, die Informationen über die Änderung der Phasenbeziehung enthält; und Übertragen der Anweisung an das Peripheriegerät, damit das Peripheriegerät den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten und/oder den vierten Zeitpunkt zum Abwarten einer als Nächstes folgenden Abfrageanforderung von dem Peripheriegerät aktualisieren kann.
  • Bei einigen Beispielen umfasst ein Verfahren: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von einer Hostvorrichtung mithilfe eines Endpunktgeräts, wobei das Endpunktgerät und die Hostvorrichtung über eine drahtgebundene Verbindung verbunden sind; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunkttaktsignal mithilfe des Endpunktgeräts und auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunktgerätetaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers mithilfe des Endpunktgeräts und zumindest auf Basis der Phasenbeziehung; Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt über einen Funkkanal mithilfe des Endpunktgeräts; Empfangen der angeforderten Sensordaten von dem Peripheriegerät mithilfe des Endpunktgeräts; und zur Verfügung stellen der angeforderten Sensordaten für die Hostvorrichtung mithilfe des Endpunktgeräts über die drahtgebundene Verbindung als Eingabedaten für den Computer.
  • Bei einigen Beispielen umfasst ein Verfahren zum Steuern von mehreren Peripheriegeräten eines Computers: Einrichten eines ersten Funkkanals zu einem ersten Peripheriegerät unter Verwendung eines ersten Transceivers eines ersten Endpunktgeräts, wobei das erste Endpunktgerät mit einer Hostvorrichtung über eine erste Verbindung verbunden ist; Einrichten eines zweiten Funkkanals zu einem zweiten Peripheriegerät unter Verwendung eines zweiten Transceivers eines zweiten Endpunktgeräts, wobei das zweite Endpunktgerät über eine zweite Verbindung mit der Hostvorrichtung verbunden ist; Empfangen von ersten Sensordaten über den ersten Funkkanal mithilfe des ersten Endpunktgerätes unter Verwendung des ersten Transceivers; Empfangen von zweiten Sensordaten über den zweiten Funkkanal mithilfe des zweiten Endpunktgerätes unter Verwendung des zweiten Transceivers; zur Verfügung stellen der ersten Sensordaten und der zweiten Sensordaten für die Hostvorrichtung über die erste Verbindung mithilfe des ersten Endpunktgerätes; und zur Verfügung stellen der ersten Sensordaten und der zweiten Sensordaten für die Hostvorrichtung über die zweite Verbindung mithilfe des zweiten Endpunktgerätes.
  • Gemäß einiger Aspekte handelt es sich bei dem ersten Endpunktgerät und dem zweiten Endpunktgerät um das gleiche Endpunktgerät. Die erste Verbindung und die zweite Verbindung stellen die gleiche Verbindung dar.
  • Gemäß einiger Aspekte wird der erste Transceiver so gesteuert, dass der erste Funkkanal unter Verwendung eines ersten Funkprotokolls eingerichtet wird. Der zweite Transceiver wird so gesteuert, dass der zweite Funkkanal unter Verwendung eines zweiten Funkprotokolls eingerichtet wird.
  • Gemäß einiger Aspekte handelt es sich bei dem ersten Funkprotokoll und dem zweiten Funkprotokoll um das gleiche Funkprotokoll.
  • Gemäß einiger Aspekte werden die ersten Sensordaten und die zweiten Sensordaten von dem Endpunktgerät innerhalb eines Übertragungszeitraums empfangen. Der erste Funkkanal und der zweite Funkkanal sind so ausgebildet, dass die ersten Sensordaten zu jedem Zeitpunkt des Übertragungszeitraums mit einer anderen Funkträgerfrequenz als die zweiten Sensordaten empfangen werden.
  • Gemäß einiger Aspekte werden die ersten Sensordaten drahtlos unter Verwendung eines ersten Trägers empfangen, wobei eine Funkfrequenz des ersten Trägers innerhalb des Übertragungszeitraums auf Basis eines ersten Funkfrequenzsprungverfahrens geändert wird. Die zweiten Sensordaten werden drahtlos unter Verwendung eines zweiten Trägers empfangen, wobei eine Funkfrequenz des zweiten Trägers innerhalb des Übertragungszeitraums auf Basis eines zweiten Funkfrequenzsprungverfahrens geändert wird.
  • Gemäß einiger Aspekte werden die ersten Sensordaten drahtlos unter Verwendung eines ersten Trägers innerhalb des Übertragungszeitraums mit einer festen ersten Frequenz übertragen. Die zweiten Sensordaten werden innerhalb des Übertragungszeitraums drahtlos unter Verwendung eines zweiten Trägers mit einer festen zweiten Frequenz übertragen.
  • Gemäß einiger Aspekte werden die ersten Sensordaten und die zweiten Sensordaten von dem Endpunktgerät innerhalb verschiedener Übertragungszeiträume empfangen. Die ersten Sensordaten und die zweiten Sensordaten können mit einer identischen Trägerfrequenz drahtlos empfangen werden.
  • Gemäß einiger Aspekte umfasst das Verfahren ferner: Übertragen von Informationen über den ersten Funkkanal mithilfe des ersten Endpunktgerätes an das zweite Endpunktgerät; und Bestimmen des zweiten Funkkanals an dem zweiten Endpunktgerät und auf Basis der Informationen über den ersten Funkkanal.
  • Gemäß einiger Aspekte geben die Informationen über den ersten Funkkanal eine erste an dem ersten Transceiver zu implementierende Frequenzsprungsequenz an. Der zweite Funkkanal wird auf Basis einer zweiten Frequenzsprungsequenz eingerichtet, die auf Basis der Informationen bestimmt wird.
  • Gemäß einiger Aspekte werden die Informationen beim Starten des ersten Endpunktgerätes von dem ersten Endpunktgerät an das zweite Endpunktgerät übertragen.
  • Gemäß einiger Aspekte werden die Informationen von dem ersten Endpunktgerät an das zweite Endpunktgerät übertragen, nachdem das erste Endpunktgerät die ersten Sensordaten über den ersten Funkkanal empfangen hat.
  • Figurenliste
  • Die detaillierte Beschreibung erfolgt unter Bezugnahme auf die beigefügten Figuren.
    • 1 zeigt eine typische Implementierung eines Systems unter Verwendung der offenbarten Techniken.
    • 2 zeigt ein System zum Steuern eines Peripheriegerätes gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 3 zeigt ein System zum Betreiben einer Hostcomputervorrichtung gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 4 zeigt ein System zur Kommunikation zwischen einer Hostcomputervorrichtung und einem Peripheriegerät gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 5 zeigt das Erzeugen von lokalen internen Taktsignalen für das Kommunikationssystem von 4, gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 6A bis 6C zeigen Beispiele für eine drahtlose und eine drahtgebundene Datenübertragung.
    • 7A bis 7B zeigen eine synchronisierte drahtlose und drahtgebundene Datenübertragung unter Verwendung des Kommunikationssystems von 4, gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 8 zeigt ein Zeitmultiplexverfahren, das für eine drahtlose und drahtgebundene Datenübertragung gemäß bestimmter Beispiele der vorliegenden Offenbarung eingesetzt wird.
    • 9 zeigt ein System zur Kommunikation zwischen einer Hostcomputervorrichtung und mehreren Peripheriegeräten gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 10 zeigt die Abläufe am Kommunikationssystem von 9 gemäß bestimmter Beispiele der vorliegenden Offenbarung.
    • 11 und 12 zeigen Flussdiagramme der Abläufe an einem Computersystem gemäß bestimmter Beispiele der vorliegenden Offenbarung.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Aspekte der vorliegenden Offenbarung beziehen sich gemäß bestimmter Beispiele auf Peripheriegeräte im Allgemeinen und auf eine drahtlose Peripheriegerätesteuerung im Besonderen.
  • In der folgenden Beschreibung werden verschiedene Beispiele für eine Funkperipheriegerätesteuerung beschrieben. Um ein tiefgreifendes Verständnis der Ausführungsformen zu ermöglichen stützen sich die Ausführungen auf eine Darlegung konkreter Konfigurationen und Details. Für einen Fachmann ist jedoch offensichtlich, dass bestimmte Ausführungsformen auch ohne jedes der offenbarten Details ausgeführt oder umgesetzt werden können. Außerdem können zur klareren Darstellung der hier beschriebenen neuen Merkmale allgemein bekannte Merkmale weggelassen oder vereinfacht werden.
  • Trotz der durch die Funktechnologie ermöglichten Verbesserungen bestehen Engpässe, die zu Verzögerungen bei der Übertragung von Daten von den Peripheriegeräten an den Computer führen und die Benutzerfreundlichkeit beeinträchtigen können. Beispielsweise fehlt die Synchronisation zwischen der drahtlosen Datenübertragung über die drahtlose Verbindung und der Datenübertragung über die drahtgebundene Verbindung. Infolgedessen kann die Verzögerung einer Datenübertragung zwischen dem drahtlosen Peripheriegerät und dem Computerprozessor größer werden. Es besteht daher ein Bedarf an neuen Entwicklungen, die die Synchronisation zwischen einer drahtlosen Datenübertragung und einer Datenübertragung über eine drahtgebundene Verbindung verbessern, um die Verzögerung der Datenübertragung zwischen einem drahtlosen Peripheriegerät und einem Computerprozessor zu verringern, wodurch die Handhabung des Peripheriegeräts durch den Benutzer leichter gemacht und die Benutzerfreundlichkeit verbessert werden kann.
  • Konzeptioneller Überblick über bestimmte Ausführungsformen
  • Beispiele der vorliegenden Offenbarung beziehen sich auf eine Funkperipheriegerätesteuerung. Die Funkperipheriegerätesteuerung kann eine Schnittstelle zwischen der Hostvorrichtung und einem oder mehreren drahtlosen Peripheriegeräten bereitstellen. Die Funkperipheriegerätesteuerung kann mit der Hostvorrichtung über eine drahtgebundene Verbindung und mit dem einen oder den mehreren drahtlosen Peripheriegeräten über einen oder mehrere Funkkanäle verbunden sein. Die Funkperipheriegerätesteuerung kann Sensordaten (z. B. Erfassen der X/Y-Bewegung einer Computermaus, Erfassen einer Tastenbetätigung an einer Tastatur, Erfassen von Audiosignalen an einem Mikrofon usw.) von einem oder mehreren drahtlosen Peripheriegeräten über den einen oder die mehreren Funkkanäle empfangen und die empfangenen Sensordaten über die drahtgebundene Verbindung an die Hostvorrichtung übertragen. Die Funkperipheriegerätesteuerung kann die drahtlosen Datenübertragungen von einem oder mehreren der drahtlosen Peripheriegeräte mit der Übertragung von Sensordaten an eine Hostvorrichtung synchronisieren.
  • Mit einer den offenbarten Techniken entsprechenden Funkperipheriegerätesteuerung kann die Synchronisation zwischen der drahtlosen Datenübertragung und der Datenübertragung über die drahtgebundene Verbindung verbessert werden. Die verbesserte Synchronisation kann die Verzögerung der Datenübertragung zwischen dem drahtlosen Peripheriegerät und dem Computerprozessor reduzieren. Beispielsweise kann mit den offenbarten Techniken die Latenzzeit zwischen einer Tastenbewegung oder -betätigung an einem Peripheriegerät durch einen Benutzer und der Ausführung einer zugehörigen Aktion an einem Computer (der die Aktionsinformationen des Benutzers drahtlos von dem Peripheriegerät empfängt) verringert werden. Dies ist für die Verbesserung der Benutzerfreundlichkeit bei Anwendungen, die schnelle Interaktionen zwischen dem Benutzer (z. B. Spiele, Gerätesteuerung, usw.) und dem System erfordern, wie beispielsweise Spiele, Flugsimulatoren, usw. von besonderer Bedeutung.
  • Konkret kann die Funkperipheriegerätesteuerung Hinweise auf ein kontinuierlich zwischen zwei Pegeln wechselndes Hostvorrichtungstaktsignal empfangen, das das Timing steuert, zu dem die Hostvorrichtung Daten von der Funkperipheriegerätesteuerung anfordert. Die Hinweise können in Form von Interrupts erfolgen, wobei jeder Interrupt einer Flanke (z. B. einer Anstiegsflanke) des Hostvorrichtungstaktsignals entspricht. Bei einigen Beispielen kann der Interrupt beispielsweise einen Start-of-Frame (SOF)-Interrupt umfassen. Die Funkperipheriegerätesteuerung kann auf Basis des Timings des Hinweises auf einen aktuellen Hostvorrichtungstaktsignalzyklus bestimmen, wann die nächste Datenanforderung der Hostvorrichtung voraussichtlich eintreffen wird. Um sicherzustellen, dass die Sensordaten verfügbar sind, wenn die als Nächstes folgende Datenanforderung der Hostvorrichtung eingeht, kann die Funkperipheriegerätesteuerung auch das Beziehen von Sensordaten von dem drahtlosen Peripheriegerät mit dem Taktsignal der Hostvorrichtung synchronisieren, indem sie beispielsweise den Bezug zu einem Zeitpunkt einleitet, der auf Basis des Timings des Empfangs des Hinweises auf das Hostvorrichtungstaktsignal bestimmt wird. Bei einigen Beispielen kann die Funkperipheriegerätesteuerung den Bezug von Sensordaten einleiten, indem sie an die drahtlosen Peripheriegeräte eine Anforderung (z. B. eine Abfrageanforderung) sendet oder zu dem bestimmten Zeitpunkt einfach nur auf die Sensordaten wartet.
  • Es gibt verschiedene Möglichkeiten, wie die Funkperipheriegerätesteuerung den Zeitpunkt für die Einleitung des Sensordatenbezugs bestimmen kann. Bei einem Beispiel kann die Funkperipheriegerätesteuerung den Bezug von Sensordaten einleiten, nachdem ab dem Zeitpunkt des Empfangs des jüngsten Hinweises auf ein Hostvorrichtungstaktsignal eine bestimmte Zeitdauer verstrichen ist. Die vorgegebene Dauer kann auf Basis einer Verarbeitungsverzögerung an der Funkperipheriegerätesteuerung und auf Basis des Zeitpunktes, zu dem die nächste Datenanforderung der Hostvorrichtung zu erwarten ist, bestimmt werden. Bei der Verarbeitungsverzögerung kann es sich um eine Verzögerung an der Funkperipheriegerätesteuerung zum Beziehen und Verarbeiten der Sensordaten handeln, sodass die Sensordaten an der Funkperipheriegerätesteuerung verfügbar sind, bevor die nächste Datenanforderung der Hostvorrichtung ankommt.
  • Bei einem weiteren Beispiel kann die Funkperipheriegerätesteuerung ein Zeitmultiplexverfahren (TDMA) verwenden, um den Bezug von Sensordaten von mehreren drahtlosen Peripheriegeräten zu verschiedenen Zeitpunkten innerhalb eines Hostvorrichtungstaktsignalzyklus einzuleiten. Das TDMA-Verfahren kann verwendet werden, um Signalstörungen und Kollisionen zwischen den drahtlosen Peripheriegeräten zu minimieren. Jede der verschiedenen Bezugszeiten kann in Bezug auf den Zeitpunkt des Empfangs des Hinweises auf das Hostvorrichtungstaktsignal bestimmt werden. Die Verzögerung zwischen jeder Sensordatenbezugszeit und dem Zeitpunkt des Empfangs des Hinweises auf das Hostvorrichtungstaktsignal kann beispielsweise auch auf Basis einer Verzögerung bestimmt werden, die an einem drahtlosen Peripheriegerät beim Beziehen und Verarbeiten der Sensordaten und beim drahtlosen Übertragen der Sensordaten an die Funkperipheriegerätesteuerung auftritt. Die Zeit für einen Bezug mit dem Hostvorrichtungstaktsignal von dem letzten drahtlosen Peripheriegerät kann jedoch immer noch auf Basis der Verarbeitungsverzögerung an der Funkperipheriegerätesteuerung bestimmt werden, sodass an der Funkperipheriegerätesteuerung alle von den mehreren drahtlosen Peripheriegeräten innerhalb des Hostvorrichtungstaktsignalzyklus bezogenen Sensordaten verfügbar sind, bevor die nächstfolgende Datenanforderung der Hostvorrichtung eintrifft.
  • Bei einigen Beispielen kann die Funkperipheriegerätesteuerung auch Informationen über das Timing der Hostvorrichtungstaktsignale an das drahtlose Peripheriegerät übertragen, damit das drahtlose Peripheriegerät bestimmen kann, wann die Funkperipheriegerätesteuerung den Bezug des nächsten Sensordatensatzes einleiten wird. Das drahtlose Peripheriegerät kann auf Basis der Informationen bestimmen, wann es die Sensordaten von seinem lokalen Sensor erfassen soll, um die aktuellsten Sensordaten bereitzustellen, wenn die Funkperipheriegerätesteuerung den Bezug des nächsten Sensordatensatzes einleitet.
  • Es gibt verschiedene Möglichkeiten, wie die Funkperipheriegerätesteuerung Informationen über das Timing der Hostvorrichtungstaktsignale an das drahtlose Peripheriegerät überträgt. Beispielsweise kann die Funkperipheriegerätesteuerung, wenn die Funkperipheriegerätesteuerung von dem drahtlosen Peripheriegerät eine Anforderung empfängt, die Bestätigung mit dem Hinweis auf das Hostvorrichtungstaktsignal synchronisieren. Die Funkperipheriegerätesteuerung kann die Bestätigung beispielsweise an das drahtlose Peripheriegerät senden, nachdem ab dem Zeitpunkt des Empfangs des Hinweises auf das Hostvorrichtungstaktsignal ein vorgegebener Zeitraum verstrichen ist. Der Empfang der Bestätigung an dem drahtlosen Peripheriegerät kann an dem drahtlosen Peripheriegerät die Phase des Systemtaktsignals festlegen, wodurch das drahtlose Peripheriegerät seinen Betrieb mit dem Hostvorrichtungstaktsignal synchronisieren kann. Bei TDMA kann die Funkperipheriegerätesteuerung die Verbindungsanforderung eines jeden drahtlosen Peripheriegerätes zu unterschiedlichen Zeiten bestätigen, wobei jede Bestätigungszeit in Bezug auf den Zeitpunkt festgelegt wird, zu dem der Hinweis auf das Hostvorrichtungstaktsignal empfangen (somit mit dem Hostvorrichtungstaktsignal synchronisiert) wird, um eine Synchronisierung der Vorgänge an jedem der drahtlosen Peripheriegeräte mit der dem Hostvorrichtungstaktsignal zu ermöglichen.
  • Bei einigen Beispielen kann die Funkperipheriegerätesteuerung auch ein Driften eines aktuellen Hostvorrichtungstaktsignalzyklus erkennen und die Höhe der Drift messen. Die Drift des Hostvorrichtungstaktsignals kann zu einer Änderung der erwarteten Ankunftszeit der nächsten Hostdatenanforderung führen. Solange die Funkperipheriegerätesteuerung ihre Bezugszeit für den nächsten Sensordatensatz wie vorstehend beschrieben auf Basis des jüngsten Hinweises auf das Hostvorrichtungstaktsignal anpassen kann, kann die Funkperipheriegerätesteuerung an das drahtlose Peripheriegerät eine die Höhe der Drift enthaltende Anweisung übertragen, damit das drahtlose Peripheriegerät einen Schätzwert für den Zeitpunkt zum Übergeben der Sensordaten an die Funkperipheriegerätesteuerung aktualisieren kann. Das drahtlose Peripheriegerät kann das Timing seiner Abläufe, einschließlich des Timings zum Erfassen der Sensordaten von seinem lokalen Sensor, auf Basis des aktualisierten Schätzwerts anpassen. Bei einigen Beispielen kann die Funkperipheriegerätesteuerung auch andere Informationen übertragen, wie beispielsweise eine Jitter-Messung des Hostvorrichtungstaktsignals, damit das drahtlose Peripheriegerät den Schätzwert für den Zeitpunkt zum Übergeben der Sensordaten an die Funkperipheriegerätesteuerung weiter präzisieren kann.
  • Es gibt verschiedene Möglichkeiten, wie die Funkperipheriegerätesteuerung eine Drift eines aktuellen Hostvorrichtungstaktsignalzyklus erfassen und die Höhe der Drift messen kann. Beispielsweise kann die Funkperipheriegerätesteuerung ein internes Referenztaktsignal empfangen oder erzeugen, das die gleiche Nennzyklusperiode wie das Hostvorrichtungstaktsignal aufweist (z. B. auf Basis einer durchschnittlichen Zyklusperiode des Hostvorrichtungstaktsignals, auf Basis einer vorgesehenen Zyklusperiode des Hostvorrichtungstaktsignals ohne Drift, usw.). Die Funkperipheriegerätesteuerung kann eine Phasenverzögerung zwischen Hostvorrichtungstaktsignal und dem internen Referenztaktsignal bestimmen (z. B. durch Messen einer Verzögerung zwischen einem jeweiligen Hostvorrichtungstaktsignal und einer zugehörigen Taktsignalflanke des internen Referenztaktsignals). Die Funkperipheriegerätesteuerung kann die früheren Phasenverzögerungen aufzeichnen und eine Höhe der Drift bestimmen, indem sie eine aktuelle Phasenverzögerung (gemessen in einem aktuellen Hostvorrichtungstaktsignalzyklus) mit den vorherigen Phasenverzögerungen vergleicht. Bei einigen Beispielen kann die Funkperipheriegerätesteuerung die Höhe der Drift, um eine zufällige Drift aufgrund von Jitter zu berücksichtigen, mit einem Schwellwert vergleichen und, wenn die Höhe der Drift den Schwellwert überschreitet, Korrekturmaßnahmen ergreifen (z. B. Anpassung des Timings für den Bezug der nächsten Sensordaten, Übertragung einer Anweisung an das drahtlose Peripheriegerät zur Anpassung des Ablauftimings usw.).
  • Durch Synchronisieren der drahtlosen Datenübertragung (zwischen der Funkperipheriegerätesteuerung und dem drahtlosen Peripheriegerät) mit dem Hostvorrichtungstaktsignal kann die Verzögerung der Datenübertragung zwischen dem drahtlosen Peripheriegerät und dem Computerprozessor reduziert werden. Beispielsweise kann das drahtlose Peripheriegerät die Sensordaten pünktlich vor einen Bezug durch die Funkperipheriegerätesteuerung erfassen, wohingegen die Funkperipheriegerätesteuerung die Sensordaten von dem drahtlosen Peripheriegerät pünktlich vor dem Eintreffen der nächsten Datenanforderung von der Hostvorrichtung beziehen kann. Mit einer solchen Anordnung kann die Gesamtverzögerungszeit für eine Datenübertragung von dem drahtlosen Peripheriegerät zur Hostvorrichtung (und zum Computerprozessor) minimiert werden, sodass der Computerprozessor auf eine Eingabe des Benutzers (die über das Peripheriegerät erfasst wird) schneller reagieren kann, wodurch sowohl die Benutzerfreundlichkeit als auch die Systemleistung verbessert werden können.
  • Bei einigen Beispielen kann die Funkperipheriegerätesteuerung zur besseren Kommunikation mit mehreren drahtlosen Peripheriegeräten mehrere drahtlose Transceiver (und Antennen) aufweisen. Jeder der mehreren drahtlosen Transceiver kann einer Kommunikation mit einem bestimmten drahtlosen Peripheriegerät (oder einer bestimmten Gruppe von drahtlosen Peripheriegeräten) zugeordnet werden. Bei einem anschaulichen Beispiel kann eine zwei drahtlose Transceiver aufweisende Funkperipheriegerätesteuerung einem der drahtlosen Transceiver die Kommunikation mit einer Computermaus übertragen, wohingegen dem anderen der drahtlosen Transceiver die Kommunikation mit einer Tastatur und mit einem Mikrofon übertragen werden kann. Die Funkperipheriegerätesteuerung kann von beiden drahtlosen Transceivern Sensordaten beziehen und die Sensordaten über die Verbindung an die Hostvorrichtung übertragen.
  • Die Funkperipheriegerätesteuerung kann den Bezug von Sensordaten auch unter den drahtlosen Transceivern koordinieren, um Signalkollisionen und Störungen zu minimieren. Bei einigen Beispielen können den drahtlosen Transceivern für die Durchführung einer drahtlosen Datenübertragung mit den jeweiligen drahtlosen Peripheriegeräten zu unterschiedlichen Zeiten unterschiedliche Frequenzkanäle zugeordnet werden (z. B. durch Bereitstellen verschiedener Sequenzen von Frequenzsprungmustern). Bei einigen Beispielen können die drahtlosen Transceiver einem TDMA-Verfahren gemäß betrieben werden, bei dem die drahtlosen Transceiver jeweils abwechselnd Sensordaten von den jeweiligen drahtlosen Peripheriegerät(en) beziehen. Bei einem Beispiel für ein TDMA-Verfahren kann jedem drahtlosen Transceiver ein Zeitfenster für den Bezug von Sensordaten von den jeweiligen drahtlosen Peripheriegeräten zugewiesen werden, wobei in einem der zugewiesenen Zeitfenster für den Bezug von Sensordaten nur einer der drahtloser Transceiver eingeschaltet sein kann, während die anderen der drahtlosen Transceiver während dieses zugewiesenen Zeitfensters ausgeschaltet sein müssen. Ebenso kann das Timing für den Bezug von Sensordaten an jedem drahtlosen Transceiver mit dem Hostvorrichtungstaktsignal synchronisiert werden. Bei solchen Anordnungen kann der Computerprozessor gültige Sensordaten von mehreren Peripheriegeräten auf effiziente Weise erhalten, wodurch sowohl die Benutzerfreundlichkeit als auch die Systemleistung weiter verbessern können.
  • Typische Systemumgebung für bestimmte Ausführungsformen
  • 1 zeigt eine typische Implementierung eines Systems 100, bei dem die offenbarten Techniken genutzt werden können. Das System 100 kann einen Computer 110, eine Anzeige 120 und mehrere Peripheriegeräte aufweisen, die beispielsweise das Peripheriegerät 130 (z. B. „Computermaus 130“), das Peripheriegerät 140 (z. B. „Tastatur 140“) und das Peripheriegerät 150 (z. B. „Mikrofon 150“) umfassen. Bei dem System 100 können, wie einem Durchschnittsfachmann ersichtlich ist, die Computermaus 130, die Tastatur 140 und das Mikrofon 150 zur Steuerung von Aspekten des Computers 110 und der Anzeige 120 ausgebildet sein. Der Computer 110 kann als „Hostcomputer“ oder als „Hostcomputervorrichtung“ bezeichnet werden. Jedes der Peripheriegeräte 130-150 kann einen oder mehrere Sensoren zum Erfassen einer Eingabe von einem Benutzer (oder Eingangssignale, wie beispielsweise Audiosignale) und zum Erzeugen entsprechender Sensordaten (z. B. Sensordaten, die eine Bewegungsstrecke der Computermaus 130 darstellen, Sensordaten, die eine Betätigung einer Taste der Tastatur 140 anzeigen, Audiodaten, die von dem Mikrofon 150 erfasst werden, usw.) aufweisen. Die Peripheriegeräte 130-150 können dem Computer 110 die Sensordaten für die Steuerung von einem oder mehreren Vorgängen des Computers 110 zur Verfügung stellen. Beispielsweise kann der Computer 110 eine Auswahl einer Audiodatei durch den Benutzer in einer an der Anzeige 120 angezeigten graphischen Benutzeroberfläche auf Basis einer von der Computermaus 130 erfassten Bewegung erkennen und die ausgewählte Audiodatei wiedergeben.
  • Der Computer 110 kann ein maschinenlesbares Medium (nicht dargestellt) umfassen, das zum Speichern eines Computercodes, wie z. B. einer Tastaturtreibersoftware, und dergleichen ausgebildet ist, wobei der Computercode von einem Prozessor (z. B. Prozessor(en) 302) des Computers 110 ausgeführt werden kann, um die Steuerung des Computers 110 durch die Peripheriegeräte 130, 140 und/oder 150 zu beeinflussen. Die verschiedenen hier beschriebenen Beispiele beziehen sich im Allgemeinen auf Peripheriegerät 130 als Computermaus, Peripheriegerät 140 als Tastatur und Peripheriegerät 150 als Mikrofon, wobei es sich bei den Peripheriegeräten 130-150 selbstverständlich um jede beliebige Eingabe-/Ausgabevorrichtung (I/O), Benutzerschnittstellenvorrichtung, Steuerungsvorrichtung, Eingabeeinheit oder dergleichen handeln kann. Bei den Peripheriegeräten 130-150 kann es sich beispielsweise auch um eine Fernsteuerungsvorrichtung, eine tragbare Vorrichtung (z. B. Smartwatch, Armband, Brille), ein Smartphone oder dergleichen handeln.
  • Bei der Hostcomputervorrichtung handelt es sich üblicherweise um ein Desktop- oder Laptop-Computergerät. Die Hostcomputervorrichtung kann jedoch selbstverständlich eine beliebige geeignete Computervorrichtung sein, die ferner einen Tablet-Computer, ein Smartphone, eine virtuelle Schnittstelle oder Erweiterte-Realität-Schnittstelle (z. B. mit 2D- oder 3D-Displays), eine holographische Schnittstelle oder dergleichen umfasst. Einem Durchschnittsfachmann erschließen sich viele Variationen, Abwandlungen und alternative Ausführungsformen hiervon.
  • 2 zeigt ein System zum Steuern eines Peripheriegeräts (z. B. eines oder mehrerer Peripheriegeräte 130-150) gemäß bestimmter Ausführungsformen. Das System 200 weist Prozessor(en) 210, eine Speicheranordnung 220, ein Energiemanagementsystem 230, ein Kommunikationssystem 240 und ein Eingabeerfassungsmodul 250 auf. Jeder der Systemblöcke 220-250 kann mit dem/den Prozessor(en) 210 elektrisch verbunden sein (z. B. über ein Bussystem). Das System 200 kann zudem weitere Systeme aufweisen, die in dieser Schrift im Hinblick auf eine klare Darstellung der hier beschriebenen neuen Merkmale nicht dargestellt oder erläutert werden. Die Systemblöcke 220-250 können in Form separater Module implementiert sein, alternativ kann in einem einzigen Modul auch mehr als ein Systemblock implementiert sein.
  • Bei einigen Ausführungsformen weist/weisen der/die Prozessor(en) 210 einen oder mehrere Mikroprozessoren (µCs) auf und kann/können zum Steuern des Betriebs des Systems 200 ausgebildet sein. Alternativ können der/die Prozessor(en) 210 wie einem Durchschnittsfachmann ersichtlich einen oder mehrere Mikrocontroller (MCUs), digitale Signalprozessoren (DSPs) oder dergleichen mit unterstützender Hardware und/oder Firmware (z. B. Speicher, programmierbare I/Os usw.) aufweisen. Der/die Prozessor(en) 210 können einige oder alle Aspekte eines Betriebs der Peripheriegeräte 130-150 steuern (z. B. Systemblock 220-250). Alternativ oder zusätzlich können einige der Systemblöcke 220-250 einen zusätzlichen spezialisierten Prozessor aufweisen, der mit dem Prozessor 210 zusammenarbeiten kann. Einem Durchschnittsfachmann erschließen sich viele Variationen, Modifikationen und alternative Ausführungsformen hiervon.
  • Die Speicheranordnung 220 kann zum Speichern von Informationen ausgebildet sein, die eine oder mehrere Konfigurationen für einen Betrieb der Peripheriegeräte 130-150 betreffen. Wie nachstehend näher erläutert können eine oder mehrere der Konfigurationen für einen Betrieb der Peripheriegeräte 130-150 ein Einstellen von Funktionsmerkmalen der Peripheriegeräte 130-150 umfassen, die eine Computermaus-Scrollgeschwindigkeit, eine Empfindlichkeit des Computermaus-Bewegungssensors, eine Tastenkombinationszuordnung bei Tastaturen, eine Mikrofonempfindlichkeit und dergleichen umfassen, ohne darauf beschränkt zu sein. Die Speicheranordnung 220 kann wie im Folgenden näher erläutert auch andere Konfigurationsinformationen speichern, die für eine Kommunikation mit den Peripheriegeräten 130-150 verwendet werden.
  • Außerdem kann die Speicheranordnung 220 ein oder mehrere Softwareprogramme zur Ausführung durch Prozessoren (z. B. dem/den Prozessor(en) 210) speichern. Es wird darauf hingewiesen, dass sich „Software“ auf Anweisungsabfolgen beziehen kann, die das System 200 bei einer Ausführung an Verarbeitungseinheiten (z. B. Prozessoren, Verarbeitungsgeräten usw.) veranlassen, bestimmte Funktionen von Softwareprogrammen auszuführen. Die Anweisungen können als Firmware gespeichert werden, die sich in einem Festwertspeicher (ROM) befindet, und/oder als in einem Medienspeicher gespeicherte Anwendungen, die zur Verarbeitung durch Verarbeitungsgeräte in einen Speicher eingelesen werden können. Software kann als einzelnes Programm oder als Bündel einzelner Programme implementiert sein und sie kann in einem nichtflüchtigen Speicher gespeichert sein und während einer Programmausführung ganz oder teilweise in einen flüchtigen Arbeitsspeicher kopiert werden.
  • Das Energiemanagementsystem 230 kann zur Handhabung der Energieverteilung, des Aufladens, der Energieeffizienz und dergleichen für die Peripheriegeräte 130-150 ausgebildet sein. Bei einigen Ausführungsformen kann das Energiemanagementsystem 230 eine Batterie (nicht dargestellt), ein USB-basiertes Ladesystem für die Batterie (nicht dargestellt) und Energiemanagementvorrichtungen (z. B. Low-Dropout-Regler - nicht dargestellt) aufweisen. Bei bestimmten Ausführungsformen können die durch das Energiemanagementsystem 230 verfügbaren Funktionen in den/die Prozessor(en) 210 integriert sein. Bei der Energiequelle kann es sich um eine austauschbare Batterie, eine wiederaufladbare Energiespeichervorrichtung (z. B. einen Superkondensator, einen Lithium-Polymer-Akkumulator, NiMH, NiCd) oder ein kabelgebundenes Netzteil handeln. Das Ladesystem kann ein zusätzliches Kabel sein (speziell zum Aufladen) oder einen USB-Anschluss zum Aufladen der Batterie verwenden.
  • Das Kommunikationssystem 240 kann beispielsweise zwischen den Prozessoren 210 und einem oder mehreren der Peripheriegeräte 130-150 zum Ermöglichen einer drahtlosen oder drahtgebundenen Kommunikation ausgebildet sein. Das Kommunikationssystem 240 kann für Hochfrequenz (RF), Bluetooth®, BLE, WiFi, Infrarot (IR), ZigBee®, Logitech Unifying® oder eine andere geeignete Kommunikationstechnologie zur Kommunikation mit anderen Computergeräten und/oder Peripheriegeräten ausgebildet sein. Das Kommunikationssystem 240 kann auch eine fest verdrahtete Verbindung mit den Prozessoren 210 zur Verfügung stellen. Bei der fest verdrahteten Verbindung kann es sich um eine serielle Verbindung wie z. B. Universal Serial Bus (USB), FireWire®, DisplayPort®, usw. handeln.
  • Als Beispiel für ein Kommunikationssystem 240 kann ein Dongle angegeben werden, der zwischen den Prozessoren 210 und einem oder mehreren Peripheriegeräten 130-150 eine Kombination aus drahtloser und drahtgebundener Kommunikation ermöglichen kann. Beispielsweise kann der Dongle einen leitungsgebundenen Schnittstellenanschluss (z. B. einen USB-Stecker) umfassen, der in einen festverdrahteten Schnittstellenanschluss (z. B. einen USB-Anschluss) gesteckt werden kann. Der festverdrahtete Schnittstellenanschluss ist wiederum mit den Prozessoren 210 über eine festverdrahtete Verbindung (z. B. USB-Busse) verbunden. Darüber hinaus kann der Dongle auch eine drahtlose Schnittstelle (z. B. eine Bluetooth®-Funkschnittstelle) umfassen, um eine drahtlose Datenübertragung mit den Peripheriegeräten 130-150 ermöglichen. Der Dongle kann über die drahtlose Schnittstelle Sensordaten von Peripheriegeräten 130-150 empfangen und die Sensordaten über die festverdrahtete Verbindung an die Prozessoren 210 übertragen. Wie im Folgenden näher erläutert wird, gibt die vorliegende Offenbarung Techniken zur Synchronisation der drahtlosen Datenübertragung (über die drahtlose Schnittstelle) mit der drahtgebundenen Datenübertragung (über die festverdrahtete Verbindung) an, wodurch die Verzögerung der Datenübertragung zwischen Peripheriegeräten 130-150 und Prozessoren 210 reduziert werden kann.
  • Das Eingabeerfassungsmodul 250 kann die Erfassung einer Interaktion eines Benutzers mit sich an den Peripheriegeräten 130-150 befindenden Eingabeelementen steuern. Das Eingabeerfassungsmodul 250 kann Benutzereingaben beispielsweise auf Basis von Sensordaten der Computermaus 130 erfassen. Bei einigen Ausführungsformen kann das Eingabeerfassungsmodul 250 mit der Speicheranordnung 220 zusammenarbeiten, um Eingabedaten für die Prozessoren 210 auf Basis der von dem Kommunikationssystem 240 empfangenen Sensordaten zu erzeugen. Das Eingabeerfassungsmodul 250 kann beispielsweise eine von einem Mauszeiger an der Anzeige 120 zurückgelegte Strecke auf Basis von in der Speicheranordnung 220 gespeicherten Scrollgeschwindigkeitsinformationen sowie von Sensordaten von der Computermaus 130 berechnen und die Streckeninformationen an die Prozessoren 210 (oder einen Renderer) zum Wiedergeben der Mausbewegung an der Anzeige 120 übergeben.
  • Obwohl bestimmte Systeme nicht eigens erläutert werden, sind sie wie für einen Durchschnittsfachmann ersichtlich als Teil des Systems 200 anzusehen. Das System 200 kann beispielsweise ein Bussystem zum Übertragen von Energie und/oder Daten von und zu dessen verschiedenen Systemen aufweisen.
  • Es wird darauf hingewiesen, dass das System 200 zur Erläuterung dient, wobei Variationen und Modifikationen möglich sind. Das System 200 kann hier nicht ausdrücklich beschriebene andere Funktionen aufweisen. Außerdem wird darauf hingewiesen, dass auch wenn das System 200 unter Bezugnahme auf bestimmte Blöcke beschrieben wird, diese Blöcke der einfacheren Darstellung wegen definiert und nicht dazu bestimmt sind, eine bestimmte physikalische Anordnung von Bestandteilen zu unterstellen. Außerdem müssen die Blöcke keinen speziellen gegenständlichen Komponenten entsprechen. Die Blöcke können zur Ausführung diverser Funktionen ausgebildet sein, z. B. durch Programmieren eines Prozessors oder Bereitstellen einer geeigneten Steuerschaltung, wobei diverse Blöcke abhängig davon, wie sie ursprünglich ausgebildet waren, rekonfiguriert werden können oder nicht.
  • Ausführungsformen der vorliegenden Erfindung können in einer Vielzahl von Systemen realisiert werden, wobei unter Verwendung einer beliebigen Kombination aus Schaltungstechnik und Software implementierte elektronische Vorrichtungen eingeschlossen sind. Außerdem können Aspekte und/oder Teile des Systems 200 je nach Konstruktionserfordernis mit anderen Teilsystemen kombiniert oder mit deren Hilfe betrieben werden. Beispielsweise können das Eingabeerfassungsmodul 250 und/oder die Speicheranordnung 220 innerhalb des/der Prozessor(en) 210 ausgeführt werden, anstatt als separate Einheit zu fungieren. Außerdem können die in dieser Schrift beschriebenen erfindungsgemäßen Konzepte bei verschiedenen Peripheriegeräten angewandt werden und sind nicht auf Computermäuse, Tastaturen oder Mikrofone beschränkt. Das System 200 lässt sich bei jeder der in den Ausführungsformen explizit, über einen Verweis oder implizit beschriebenen Peripheriegeräten anwenden (z. B. wenn für einen Durchschnittsfachmann bei einem bestimmten Peripheriegerät ersichtlich anwendbar). Die vorgenannten Ausführungsformen sind nicht als einschränkend zu verstehen, wobei sich einem Durchschnittsfachmann in Kenntnis dieser Offenbarung unzählige Anwendungen und Möglichkeiten erschließen.
  • 3 zeigt ein System 300 zum Betreiben einer Hostcomputervorrichtung (z.B. Hostcomputervorrichtung 110) gemäß bestimmter Ausführungsformen. Das System 300 kann verwendet werden, um die hier unter Bezugnahme auf 1, 2 diskutierten Hostcomputervorrichtungen und die unzähligen Beispiele zu implementieren, die hier beschriebenen werden oder im Rahmen dieser Offenbarung liegen, aber nicht unbedingt explizit beschrieben sind. Das System 300 kann einen oder mehrere Prozessoren 302 umfassen, die über ein Bussubsystem 304 mit einer Reihe von Peripheriegeräten (z. B. Peripheriegeräten) kommunizieren können. Diese Peripheriegeräte können das Speicherungssubsystem 306 (bestehend aus dem Speichersubsystem 308 und dem Dateispeichersubsystem 310), die Benutzerschnittstellenperipheriegeräte 314, die Benutzerschnittstellenausgabegeräte 316 und das Netzwerkschnittstellensubsystem 312 umfassen. Bei den Benutzerperipheriegeräten 314 kann es sich um jeden der hier beschriebenen Peripheriegerätetypen handeln (z. B. Tastatur, Computermaus, Fernbedienung, usw.). Bei den Benutzerausgabegeräten 316 kann es sich um eine beliebige Anzeige handeln, wobei wie für einen Durchschnittsfachmann ersichtlich Computermonitore, Anzeigen auf tragbaren Geräten (z.B. Smartphones, Spielsysteme) oder dergleichen eingeschlossen sind. Alternativ oder zusätzlich kann eine Anzeige auch Virtuelle-Realität (VR)-Anzeigen, Erweiterte-Realität-Anzeigen, holographische Anzeigen und dergleichen umfassen, wie es für einen Durchschnittsfachmann offensichtlich ist.
  • Bei einigen Beispielen kann das interne Bussubsystem 304 einen Mechanismus bereitstellen, über den die verschiedenen Komponenten und Subsysteme des Computersystems 300 wie vorgesehen miteinander kommunizieren können. Obwohl das interne Bussubsystem 304 schematisch als einzelner Bus dargestellt ist, können alternative Ausführungsformen des Bussubsystems mehrere Busse verwenden. Ein Beispiel für das interne Bussubsystem 304 sind USB-Busse. Ferner kann das Netzwerkschnittstellensubsystem 312 als Schnittstelle zur Datenübertragung zwischen dem Computersystem 300 und anderen Computersystemen oder Netzwerken dienen. Ausführungsformen des Netzwerkschnittstellensubsystems 312 können drahtgebundene Schnittstellen (z.B. Ethernet, CAN, RS232, RS485, usw.) oder drahtlose Schnittstellen (z. B. Bluetooth®, BLE, ZigBee®, Z-Wire®, WiFi, Mobilfunkprotokolle, usw.) umfassen. Bei einigen Beispielen kann das Subsystem 312 der Netzwerkschnittstelle Teil eines Dongles sein, und der Dongle kann mit dem internen Bussubsystem 304 (z. B. USB-Bussen) verbunden werden, um mit den Prozessoren 302 wie oben beschrieben zu kommunizieren.
  • In einigen Fällen können die Benutzerschnittstellenperipheriegeräte 314 eine Tastatur (Tastatur 140), einen Präsentator, ein Zeigegerät (z. B. Maus, Trackball, Touchpad usw.), einen in eine Anzeige integrierten Touchscreen, Audioperipheriegeräte (z. B. Spracherkennungssysteme, Mikrofone usw.), Mensch-Maschine-Schnittstellen (Human-Machine-Interfaces; HMI) und andere Arten von Peripheriegeräten umfassen. Im Allgemeinen ist die Verwendung des Begriffs „Peripheriegerät“ dazu gedacht, alle möglichen Arten von Vorrichtungen und Mechanismen zur Eingabe von Informationen in das Computersystem 300 einzubeziehen. Zusätzlich können die Benutzerschnittstellenausgabegeräte 316 ein Anzeigesubsystem, einen Drucker oder nicht-visuelle Anzeigen wie Audioausgabevorrichtungen usw. umfassen. Bei dem Anzeigesubsystem kann es sich um jede bekannte Art von Anzeigegerät handeln. Im Allgemeinen ist die Verwendung des Begriffs „Ausgabegerät“ dazu gedacht, alle möglichen Arten von Vorrichtungen und Mechanismen zur Ausgabe von Informationen aus dem Computersystem 300 zu erfassen.
  • Das Speicherungssubsystem 306 kann das Speichersubsystem 308 und das Dateispeichersubsystem 310 umfassen. Das Speichersubsystem 308 und das Dateispeichersubsystem 310 stellen nichtflüchtige, computerlesbare Speichermedien dar, die Programmcode und/oder Daten speichern können, die die Funktionalität von Ausführungsformen der vorliegenden Offenbarung bieten. Bei einigen Ausführungsformen kann das Speichersubsystem 308 eine Anzahl von Speichern umfassen, darunter den Haupt-Direktzugriffsspeicher (RAM) 318 zum Speichern von Anweisungen und Daten während einer Programmausführung und den Festwertspeicher (ROM), in dem nichtveränderbare Anweisungen gespeichert sein können. Das Dateispeichersubsystem 310 kann einen dauerhaften (d.h. nichtflüchtigen) Speicher für Programm- und Datendateien bereitstellen und kann eine magnetisches Festplatte oder Solid-State-Laufwerk, ein optisches Laufwerk zusammen mit zugehörigen Wechseldatenträgern (z. B. CD-ROM, DVD, Blu-Ray usw.), ein Laufwerk oder eine Karte auf Basis eines Flash-Wechselspeichers und/oder andere in der Technik bekannte Arten von Speichermedien umfassen.
  • Es wird darauf hingewiesen, dass das Computersystem 300 zur Erläuterung dient und nicht dazu bestimmt ist, die Ausführungsformen der vorliegenden Offenbarung einzuschränken. Viele andere Konfigurationen mit mehr oder weniger Komponenten als das System 300 sind möglich. Die verschiedenen Ausführungsformen können ferner in einer Vielzahl von Betriebsumgebungen implementiert werden, die in einigen Fällen einen oder mehrere Benutzercomputer, Computergeräte oder Verarbeitungsgeräte umfassen können, mit denen mehrere Anwendungen ausgeführt werden können. Benutzer- oder Client-Geräte können eine beliebige Anzahl von Universal-Personalcomputern umfassen, wie z. B. Desktopcomputer oder Laptopcomputer mit einem Standard- oder Nicht-Standard-Betriebssystem, sowie mobile, drahtlose und tragbare Geräte mit mobiler Software, die eine Reihe von Netzwerk- und Messaging-Protokollen unterstützen können. Ein solches System kann auch eine Reihe von Workstations mit einer Vielzahl von handelsüblichen Betriebssystemen und anderen bekannten Anwendungen für Zwecke wie Entwicklung und Datenbankmanagement umfassen. Diese Vorrichtungen können auch andere elektronische Vorrichtungen umfassen, wie beispielsweise Dummy-Terminals, Thin-Clients, Spielsysteme und andere Vorrichtungen, die über ein Netzwerk kommunizieren können.
  • Die meisten Ausführungsformen verwenden mindestens ein Netzwerk, das den Fachleuten für die Unterstützung der Kommunikation unter Verwendung einer Vielzahl von handelsüblichen Protokollen, wie TCP/IP, UDP, OSI, FTP, UPnP, NFS, CIFS und dergleichen, vertraut ist. Das Netzwerk kann beispielsweise ein lokales Netzwerk, ein Weitverkehrsnetzwerk, ein virtuelles privates Netzwerk, das Internet, ein Intranet, ein Extranet, ein öffentliches Telefonnetz, ein Infrarot-Netzwerk, ein drahtloses Netzwerk und eine beliebige Kombination dieser sein.
  • Bei Ausführungsformen, die einen Netzwerkserver verwenden, kann der Netzwerkserver eine Vielzahl von Server- oder Mid-Tier-Anwendungen ausführen, einschließlich HTTP-Server, FTP-Server, CGI-Server, Datenserver, Java-Server und Business-Anwendungsserver. Der/die Server können auch in der Lage sein, Programme oder Skripte in Reaktion auf Anfragen von Benutzergeräten auszuführen, beispielsweise durch Ausführen einer oder mehrerer Anwendungen, die als ein oder mehrere Skripte oder Programme implementiert sein können, die in einer beliebigen Programmiersprache geschrieben sind, einschließlich, aber nicht beschränkt auf Java®, C, C# oder C++ oder eine Skriptsprache, wie Perl, Python oder TCL, sowie Kombinationen davon. Die Server können auch Datenbankserver umfassen, einschließlich, aber nicht beschränkt auf die von Oracle®, Microsoft®, Sybase® und IBM® kommerziell erhältlichen Server.
  • Solche Vorrichtungen können wie oben beschrieben auch einen computerlesbaren Speichermedienleser, eine Kommunikationsvorrichtung (z. B. ein Modem, eine Netzwerkkarte (drahtlos oder drahtgebunden), eine Infrarot-Kommunikationsvorrichtung usw.) und einen Arbeitsspeicher umfassen. Der computerlesbare Speichermedienleser kann mit einem nicht-flüchtigen, computerlesbaren Speichermedium verbunden oder zu dessen Aufnahme ausgebildet sein, bei dem es sich um externe Speichermedien, lokale Speichermedien, fest eingebaute Speichermedien und/oder Wechselspeichermedien sowie Speichermedien zum vorübergehenden und/oder permanenteren Aufnehmen, Speichern, Übertragen und Abrufen von computerlesbaren Informationen handeln kann. Das System und verschiedene Vorrichtungen umfassen typischerweise auch eine Reihe von Softwareanwendungen, Modulen, Diensten oder anderen Elementen, die sich in mindestens einer Arbeitsspeichervorrichtung befinden, einschließlich eines Betriebssystems und Anwendungsprogrammen, wie beispielsweise einer Client-Anwendung oder einem Browser. Es ist zu beachten, dass alternative Ausführungsformen zahlreiche Änderungen gegenüber den oben beschriebenen Ausführungsformen aufweisen können. So kann beispielsweise auch kundenspezifische Hardware verwendet und/oder bestimmte Elemente in Hardware, Software (einschließlich portabler Software, wie z. B. Applets) oder Beidem implementiert werden. Darüber hinaus können Verbindungen zu anderen Computervorrichtungen, wie z. B. Netzwerkein- und -ausgabegeräten, verwendet werden.
  • Beispiele für ein Kommunikationssystem
  • 4 zeigt ein Beispiel für ein Kommunikationssystem 400, bei dem die offenbarten Techniken angewandt werden können. Das Kommunikationssystem 400 kann eine Datenübertragung zwischen einem Hardwareprozessor 402 (z. B. Prozessor 210 von 2, Prozessor 302 von 3, etc.) und einem Peripheriegerät 404 (z. B. Peripheriegeräte 130-150) ermöglichen. Das Kommunikationssystem 400 kann eine drahtlose Schnittstelle 406 und eine drahtgebundene Verbindung 408 auf Seiten des Hardwareprozessors 402 (z. B. als Teil des Computers 110 und/oder der Systeme 200 und 300) und eine drahtlose Schnittstelle 410 auf Seiten des Peripheriegeräts 404 aufweisen. Die drahtgebundene Verbindung 408 umfasst ferner eine Hostvorrichtung 412, ein Endpunktgerät 414 und einen Bus 415, der die Hostvorrichtung 412 mit dem Endpunktgerät 414 verbindet. Über die drahtlosen Schnittstellen 406 und 410 und die drahtgebundene Verbindung 408 können Daten zwischen dem Hardwareprozessor 402 und dem Peripheriegerät 404 übertragen werden.
  • Wie in 4 dargestellt ist, können die drahtlose Schnittstelle 406 und das Endpunktgerät 414 Teil eines Dongles 450 sein, während der Hardwareprozessor 402 und die Hostvorrichtung 412 Teil eines Computersystems 460 sein können. Der Dongle 450 kann ferner einen Steuerprozessor 416 umfassen, um die Operationen der drahtlosen Schnittstelle 406 und des Endpunktgerätes 414 zu steuern, einschließlich beispielsweise der Operationen zur Datenübertragung zwischen dem Hardwareprozessor 402 und den Peripheriegeräten 404. Auch wenn 4 zeigt, dass der Steuerprozessor 416 eine einzelne Einheit ist, kann der Steuerprozessor 416 selbstverständlich auch mehrere Einheiten umfassen, wobei einige der Einheiten Teil der drahtlosen Schnittstelle 410 sein können. Darüber hinaus kann das Peripheriegerät 404 auch einen Sensor 430 zum Erfassen der Eingaben eines Benutzers und zum Erzeugen von Sensordaten sowie einen Steuerprozessor 432 zum Verarbeiten der Sensordaten und zum Steuern der drahtlosen Schnittstelle 410 für die Übertragung der Sensordaten an den Dongle 450 umfassen, der die Sensordaten anschließend über die drahtgebundene Verbindung 408 an den Hardwareprozessor 402 übertragen kann. Ein zwischen dem Dongle 450 und dem Peripheriegerät 404 gebildetes drahtloses Netzwerk kann als Piconet bezeichnet werden. Zwischen den drahtlosen Schnittstellen 406 und 410 kann beim Übertragen von Datenpaketen zwischen den Schnittstellen ein Verbindungsereignis eintreten. Aus einem Verbindungsereignis kann der Steuerprozessor 416 Sensordaten von dem Peripheriegerät 404 beziehen und die Sensordaten an das Endpunktgerät 414 weiterleiten. Das Endpunktgerät 414 kann die Sensordaten über den Bus 415 an die Hostvorrichtung 412 übertragen.
  • Die drahtlose Schnittstelle 406 kann einen oder mehrere drahtlose Transceiver 413 aufweisen, wogegen die drahtlose Schnittstelle 410 ferner einen drahtlosen Transceiver 424 aufweisen kann. Die drahtlosen Transceiver 413 und 424 können jeweils von dem Steuerprozessor 416 bzw. 432 gesteuert werden, um zur Durchführung einer drahtlose Datenübertragung Funksignale zu senden und zu empfangen. Die drahtlosen Transceiver 413 und 424 können beispielsweise Antennen, Leistungsverstärker, rauscharme Verstärker, Mischer, Analog-Digital-Wandler (ADC) usw. umfassen und sie können eine Datenübertragung auf Basis vorgegebener Protokolle durchführen, wie beispielsweise Bluetooth®, BLE usw. Bei den Protokollen Bluetooth® und BLE kann die Funkträgerfrequenz für das Senden/Empfangen von Daten beispielsweise auf Basis einer vorgegebenen Frequenzsprungsequenz geändert werden, und verschiedene Komponenten (z. B. Mischer) der drahtlosen Transceiver 413 und 424 können Zur Durchführung des Datentransfers bei einem Verbindungsereignis auf Basis der vorgegebenen Frequenzsprungsequenz betrieben werden.
  • Bei einigen Beispielen kann der Dongle 450 bei einem zwischen dem Dongle 450 und dem Peripheriegerät 404 gebildeten drahtlosen Piconet als Mastervorrichtung fungieren, wohingegen das Peripheriegerät 404 als Slavevorrichtung fungieren kann. Der Steuerprozessor 416 kann den Bezug von Sensordaten über die drahtlose Schnittstelle 406 einleiten, indem er in vorgegebenen Zeitabständen eine Anforderung (z. B. eine Abfrageanforderung) an die drahtlose Schnittstelle 410 sendet, und die Peripheriefunkkommunikationsvorrichtung kann auf die Abfrageanforderung warten und in Reaktion auf die Abfrageanforderung Sensordaten bereitstellen. Bei einigen Beispielen kann der Steuerprozessor 416 auch festlegen, wann die Peripheriegeräte 404 Sensordaten übertragen sollen, und Zeitplaninformationen an die Peripheriegeräte 404 übertragen. Basierend auf den Zeitplaninformationen können die Peripheriegeräte 404 Sensordaten zu den geplanten Zeiten übertragen, während die drahtlose Schnittstelle 406 den Bezug von Sensordaten einleiten kann, indem sie zu den geplanten Zeiten auf die Sensordaten von den Peripheriegeräten 404 wartet. In beiden Fällen kann der Anwendungsprozessor 422 (der Peripheriegeräte 404) bestimmen, wann das nächste Verbindungsereignis eintreten soll (z. B. auf Basis früherer Sensordatenübertragungen an die drahtlose Schnittstelle 406, von der drahtlosen Schnittstelle 406 empfangenen früheren Abfrageanforderungen, usw.), und kann vom Sensor 430 vor dem nächsten Verbindungsereignis Sensordaten beziehen.
  • Das Kommunikationssystem 400 weist auch die drahtgebundene Verbindung 408 auf, die mit der drahtlosen Schnittstelle 406 verbunden ist. Sensordaten, die über die drahtlose Schnittstelle 406 empfangen werden, können über die drahtgebundene Verbindung 408 an den Hardwareprozessor 402 übertragen werden. Die Hostvorrichtung 412 kann über den Bus 415 eine Leseanforderung für Daten senden. Nach dem Empfangen der Leseanforderung kann die Hostvorrichtung 412 die Sensordaten über den Bus 415 an die Hostvorrichtung 412 senden. Bei einigen Beispielen kann der Bus 415 ein USB-Bus sein, und der Dongle 450 kann als USB-Dongle mit einem Hardwareanschluss (z. B. einem USB-Stecker) ausgebildet sein, der zum Herstellen einer Verbindung in einen Hardwareanschluss (z. B. einen USB-Anschluss) des Computersystems 460 gesteckt werden kann. Der Hardwareanschluss kann mit dem USB-Bus 415 des Computersystems 460 fest verdrahtet sein.
  • Auch wenn 4 das Endpunktgerät 414 als von dem Computersystem 460 getrennt veranschaulicht, kann das Endpunktgerät 414 selbstverständlich auch ein internes Modul des Computersystems 460 sein, sodass das Endpunktgerät 414 nicht über einen Hardwareanschluss (z. B. einen USB-Anschluss) mit der Hostvorrichtung 412 verbunden ist. Beispielsweise können die Hostvorrichtung 412 und das Endpunktgerät 414 über einen I2C-Bus (Inter-Integrated Circuit) einer Hauptplatine verbunden werden. Ebenso können auch die drahtlose Schnittstelle 406 und der Steuerprozessor 416 Teil des Computersystems 460 sein.
  • Die Hostvorrichtungen 412, der Dongle 450 und das Peripheriegerät 404 können jeweils ein synchrones System bilden. Jedes dieser Systeme kann ein lokales internes Taktsignal und einen Satz digitaler sequentieller Schaltungen aufweisen, die als endlicher Automat (FSM; Finite State Machine) ausgebildet sind, der von dem lokalen internen Taktsignal getaktet wird, das die Zustandsübergänge und -ausgänge des FSM einstellen und das Timing der Vorgänge bei dem jeweiligen System steuern kann. Das lokale interne Taktsignal kann ein kontinuierlich zwischen zwei Pegeln wechselndes Signal mit einer Nennfrequenz (abgesehen von Drift, Jitter, usw.) sein, das ausgebildet ist, das Timing der Vorgänge bei verschiedenen digitalen sequentiellen Schaltungen zu steuern. Beispielsweise kann das Peripheriegerät 404 ein lokalen internes Taktsignal zum Steuern des Timings aufweisen, mit dem vom Sensor 430 Sensordaten erfasst werden, auf eine Abfrageanforderung von der drahtlosen Schnittstelle 406 gewartet wird, die bezogenen Daten in Reaktion auf die Abfrageanforderung an die Schnittstelle 406 übertragen werden sollen, usw. Auch der Dongle 450 kann ein lokales internes Taktsignal zum Steuern des Timings aufweisen, mit dem eine Abfrageanforderung für Sensordaten an die Peripheriegeräte 404 gesendet werden soll, die Sensordaten verarbeitet und gespeichert werden sollen, usw. Auch die Hostvorrichtung 412 kann ein lokales internes Taktsignal zum Steuern des Timings aufweisen, mit dem eine Datenleseanforderung an das Endpunktgerät 414 des Dongles 450 gesandt wird.
  • Die Hostvorrichtung 412, der Dongle 450 und das Peripheriegerät 404 können jeweils ein lokales internes Taktsignal einer Taktsignalquelle empfangen oder erzeugen. 5 veranschaulicht Beispiele für die Erzeugung von lokalen internen Taktsignalen für die Hostvorrichtung 412, den Dongle 450 und das Peripheriegerät 404. In dem Beispiel von 5 kann die Hostvorrichtung 412 innerhalb des Computersystems 460 einen Satz von nominell periodischen Interruptsignalen 502 empfangen (z. B. Start-of-Frame (SOF)-Interrupts bei USB). Die Interruptsignale 502 können z. B. vom Hardwareprozessor 402 bereitgestellt und als Hostvorrichtungstaktsignal 504 ausgebildet sein. Ein SOF-Interrupt kann die Hostvorrichtung 412 zum Senden einer Leseanforderung an das Endpunktgerät 414 über den Bus 415 veranlassen. Außerdem kann der Dongle 450 einen lokalen Oszillator 506 aufweisen, der ein Oszillatorsignal 507 mit einer relativ hohen Frequenz ausgeben kann. Das Oszillatorsignal 507 kann von einem Frequenzteiler 508 verarbeitet werden, der die Frequenzteilung des Oszillatorsignals 507 durchführen kann, um ein Dongletaktsignal 510 mit einer Frequenz zu erzeugen, die niedriger als die Frequenz des Oszillatorsignals 507 ist. Das Donglereferenztaktsignal 510 kann verwendet werden, um das Timing der Vorgänge an der drahtlosen Schnittstelle 406, dem Endpunktgerät 414 und dem Steuerprozessor 416 einzustellen. Ferner kann auch das Peripheriegerät 404 einen lokalen Oszillator 516 umfassen, der ebenfalls ein Oszillatorsignal 517 mit einer relativ hohen Frequenz ausgeben kann. Das Oszillatorsignal 517 kann vom Steuerprozessor 432 verarbeitet werden, um einen Satz von nominell periodischen Interruptsignalen 522 (z. B. Funkmelde-Interruptsignale (radio notification interrupt signals) 522) zu erzeugen, die als Peripheriegerätetaktsignal 524 ausgebildet sein und zum Einstellen des Timings für die Vorgänge an der drahtlosen Schnittstelle 410 und dem Sensor 430 verwendet werden können. Beispielsweise kann die drahtlose Schnittstelle 410 von dem Steuerprozessor 432 so gesteuert werden, dass sie in einen Empfängermodus (z. B. einen RX-Modus) gelangt, um in Reaktion auf ein Funkmelde-Interruptsignal auf eine Abfrageanforderung der drahtlosen Schnittstelle 406 zu warten.
  • Notwendigkeit der Synchronisation einer drahtlosen Datenübertragung mit einer drahtgebundenen Datenübertragung
  • Typischerweise sind die Taktsignalperioden des Peripheriegerätetaktsignals 524, des Donglereferenztaktsignals 510 und des Hostvorrichtungstaktsignals 504 identisch ausgebildet, wobei in jedem Taktsignalzyklus ein Datenübertragungsvorgang stattfinden kann. 6A veranschaulicht ein Beispiel für das Timing von Datenübertragungen zwischen dem Peripheriegerät 404 und der Hostvorrichtung 412 über das Endpunktgerät 414. In dem Beispiel von 6A stellen die horizontalen Achsen die Zeitachse dar. Das Peripheriegerätetaktsignal 520, das Dongletaktsignal 510 und das Hostvorrichtungstaktsignal 504 weisen jeweils dieselbe Periode T auf. Bei dem Peripheriegerät 404 kann ein erster Zyklus des Peripheriegerätetaktsignals 520 durch die Taktsignalflanken 602a und 602b definiert werden, die zu den Zeiten T1 bzw. T1+T ankommen, wobei ein zweiter Zyklus des Peripheriegerätetaktsignals 520 durch die Taktsignalflanken 602b und 602c definiert werden kann. Die Taktsignalflanke 602c kommt zur Zeit T1+2T an. Jede der Taktsignalflanken 602a, 602b und 602c kann einem Funkmelde-Interruptsignal entsprechen. Außerdem kann bei dem Endpunktgerät 414 ein erster Zyklus des Dongletaktsignals 510 durch die Taktsignalflanken 604a und 604b definiert werden, die zum Zeitpunkt T2 bzw. T2+T ankommen. Ein zweiter Zyklus des Dongletaktsignals 510 beginnt zum Zeitpunkt T2+T. Ferner kann bei der Hostvorrichtung 412 ein erster Zyklus des Hostvorrichtungstaktsignals 504 durch die Taktsignalflanken 606a und 606b definiert werden. Ein zweiter Zyklus des Hostvorrichtungstaktsignals 504 beginnt zum Zeitpunkt T3+T. Die Taktsignalflanken 606a und 606b können SOF-Interrupts entsprechen.
  • Bei dem Peripheriegerät 404 erhält der Steuerprozessor 432 von dem Sensor 430 nach einer vom Zeitpunkt T1 ausgehenden festen Verzögerung d1 (und innerhalb des ersten Zyklus des Peripheriegerätetaktsignals 520) einen ersten Satz von Sensordaten (Sensordaten 610) und verarbeitet die Sensordaten 610 (z. B. Generieren von Datenpaketen, usw.) in Vorbereitung auf die drahtlose Übertragung vor dem Eintreffen der Taktsignalflanke 602b. Außerdem kann der Steuerprozessor 416 des Dongles 450 die drahtlose Schnittstelle 406 nach einer vom Zeitpunkt T2 ausgehenden festen Verzögerung d2 (und innerhalb des ersten Zyklus des Taktsignals 510) ansteuern, um den Bezug von Sensordaten von dem Peripheriegerät 404 einzuleiten, indem er beispielsweise eine Abfrageanforderung 612 sendet. Das Peripheriegerät 404 kann die Abfrageanforderung empfangen und Sensordaten 610 an das Endpunktgerät 414 übertragen. Daraufhin empfängt der Steuerprozessor 416 des Dongles 450 die Daten 610 und stellt die Daten 610 dem Endpunktgerät 414 zur Verfügung, das die Sensordaten 610 verarbeiten und in einem lokalen Speicher speichern kann, bevor die Taktsignalflanke 606b ankommt. Zum Zeitpunkt T3+T (zweiter Zyklus des Hostvorrichtungstaktsignals 504) kann die Hostvorrichtung 412 in Reaktion auf das Empfangen eines SOF-Interrupts (dargestellt durch die Taktsignalflanke 602b) eine Leseanforderung an das Endpunktgerät 414 (des Dongles 450) senden. Das Endpunktgerät 414 kann die Leseanforderung empfangen und der Hostvorrichtung 412 die Sensordaten 610 in Reaktion auf die Leseanforderung zur Verfügung stellen. Währenddessen kann der Steuerprozessor 432 des Peripheriegeräts 404 von dem Sensor 430 einen zweiten Satz von Sensordaten (Sensordaten 614) innerhalb des zweiten Zyklus des Peripheriegerätetaktsignals 520 erhalten. Die Sensordaten 614 können bei einem nachfolgenden Zyklus des Peripheriegerätetaktsignals 520 an den Dongle 450 übertragen werden.
  • In dem Beispiel von 6A kann die Hostvorrichtung 412 die von dem Peripheriegerät 404 erhaltenen Sensordaten innerhalb von etwa einer Zyklusperiode des Hostvorrichtungstaktsignals 504 beziehen, was einer minimalen Verzögerung entsprechen kann. Die Verringerung der Verzögerung kann beispielsweise darauf zurückgeführt werden, dass das Endpunktgerät 414 den Bezug von Sensordaten von dem Peripheriegerät 404 einleitet, nachdem das Peripheriegerät 404 Sensordaten des letzten Zyklus erhalten hat, und das Endpunktgerät 414 die Leseanforderung von der Hostvorrichtung 412 empfängt, nachdem das Endpunktgerät 414 die Sensordaten des letzten Zyklus von dem Peripheriegerät 404 empfangen hat. Eine Verringerung der Verzögerung bei der Datenübertragung zwischen dem Peripheriegerät 404 und der Hostvorrichtung 412 ist höchst wünschenswert, damit das Computersystem 460 auf eine Eingabe eines Benutzers schneller reagieren kann. Ohne ein Synchronisationsschema zur Synchronisation der Vorgänge an dem Peripheriegerät 404, am Dongle 450 und an der Hostvorrichtung 412 kann sich die Beziehung zwischen den Zeitpunkten ändern, zu denen das Endpunktgerät 414 die Erfassung von Sensordaten einleitet, das Peripheriegerät 404 Sensordaten erhält, und die Hostvorrichtung 412 Leseanforderungen sendet. Die zeitliche Beziehung kann sich aufgrund von Unsicherheiten im Timing der Taktsignale ändern, wie z. B. Taktsignaljitter, Taktsignaldrift usw. Infolgedessen kann die Verzögerung beim Datentransfer zwischen dem Peripheriegerät 404 und der Hostvorrichtung 412 größer werden, oder die Hostvorrichtung 412 kann eine oder mehrere Instanzen von Sensordaten überspringen/verpassen. All dies kann die Fähigkeit des Computersystems 460 zur Verfolgung der Eingaben des Benutzers herabsetzen und die Benutzerfreundlichkeit beeinträchtigen.
  • 6B und 6C veranschaulichen Beispiele für Unsicherheiten im Timing der Taktsignale, die die Systemreaktionszeit erhöhen oder zum Überspringen von Sensordaten führen können. 6B veranschaulicht ein Beispiel dafür, wie die Hostvorrichtung 412 eine oder mehrere Instanzen von Sensordaten überspringt. Im Beispiel von 6B kann ein SOF-Interrupt (dargestellt durch die Taktsignalflanke 606b) bei T3+T' ankommen, das vor T3+T liegt. Das frühe Eintreffen des SOF-Interrupts bewirkt, dass die Hostvorrichtung 412 eine Sensordaten-Leseanforderung zu einem Zeitpunkt sendet, zu dem der Dongle 450 die Leseanforderung nicht verarbeiten kann. Zum Beispiel kann das Endpunktgerät 414 zum Zeitpunkt T3+T' gerade Daten 610 vom Steuerprozessor 416 empfangen, sodass es nicht auf die Leseanforderung reagieren kann. Die Hostvorrichtung 412 kann dadurch die Sensordaten 610 überspringen. Wenn nachfolgende SOF-Interrupts (und Leseanforderungen der Hostvorrichtung) weiterhin zu Zeiten ankommen, zu denen das Endpunktgerät 414 nicht in der Lage ist, Leseanforderungen der Hostvorrichtung 412 zu verarbeiten, kann die Hostvorrichtung 412 auch weitere Sensordaten (z. B. Sensordaten 614) überspringen, die von dem Peripheriegerät 404 später erhalten werden.
  • 6C veranschaulicht ein Beispiel für eine Verlängerung der Systemreaktionszeit. Im Beispiel von 6C kann ein SOF-Interrupt (dargestellt durch die Taktsignalflanke 606b) bei T3+T" ankommen, also nach T3+T. Das Endpunktgerät 414 empfängt zum Zeitpunkt T3+T (und in einem zweiten Zyklus des Dongletaktsignals 510) keine Leseanforderung und kann eine weitere Abfrageanforderung 622 an das Peripheriegerät 404 senden und Sensordaten 614 erhalten. Das Endpunktgerät 414 kann auch Sensordaten 614 zu den im lokalen Speicher gespeicherten Sensordaten hinzufügen. Wenn das Endpunktgerät 414 zum Zeitpunkt T3+T" eine Leseanforderung empfängt, kann sie sowohl die Sensordaten 610 als auch die Sensordaten 614 an die Hostvorrichtung 412 übertragen.
  • Bei den beiden Beispielen von 6B und 6C kann der Hardwareprozessor 402 auf die von den Sensordaten 610 erfassten Eingaben des Benutzers verspätet oder gar nicht reagieren, was beides unerwünscht ist. Bei dem Beispiel von 6B überspringt/versäumt die Hostvorrichtung 412 beispielsweise die Sensordaten 610 und kann dem Hardwareprozessor 402 keine Sensordaten 610 zur Verfügung stellen, sodass der Hardwareprozessor die von den Sensordaten 610 erfassten Benutzereingaben verpasst. In dem Beispiel von 6C ist, obwohl der Hardwareprozessor 402 Sensordaten 610 (und Sensordaten 614) erhält, die Verzögerung zwischen dem Zeitpunkt, an dem die Sensordaten 610 von dem Peripheriegerät 404 erhalten werden, und dem Zeitpunkt, an dem die Sensordaten 610 vom Hardwareprozessor 402 erhalten werden, im Vergleich zu 6A größer. Infolgedessen kann die Reaktion des Hardwareprozessors 402 auf die Eingaben des Benutzers zu spät erfolgen. Beides beeinträchtigt die Schnelligkeit mit der das Computersystem auf die Eingaben des Benutzers reagiert.
  • Synchronisation einer drahtlosen Datenübertragung mit einer drahtgebundenen Datenübertragung
  • 7A veranschaulicht ein Beispiel für eine Synchronisation zwischen dem Dongles 450 und der Hostvorrichtung 412. In dem Beispiel von 7A kann das Endpunktgerät 414 den Bezug von Sensordaten von dem Peripheriegerät 404 sowohl mit dem Dongletaktsignal 510 als auch mit dem Hostvorrichtungstaktsignal 504 (oder SOF-Interrupts 502) synchronisieren, sodass Sensordaten bezogen und zur Verfügung gestellt werden können, um eine nachfolgende Leseanforderung von der Hostvorrichtung 412 in einem nachfolgenden Zyklus des Hostvorrichtungstaktsignals 504 zu bedienen.
  • Konkret kann der Steuerprozessor 416 Informationen über das Hostvorrichtungstaktsignal 504 erhalten, beispielsweise auf Basis von SOF-Interruptsignalen 502, Datenpaketen (z. B. SOF-Paketen) usw., die das Endpunktgerät 414 von der Hostvorrichtung 412 empfängt. Der Steuerprozessor 416 erhält von dem Endpunktgerät 414 einen Hinweis, dass ein SOF-Interruptsignal oder ein SOF-Paket empfangen wird, und kann auf Basis des Hinweises das Timing der Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 ableiten. Unter der Annahme, dass der Steuerprozessor 416 bestimmt, dass die Taktsignalflanke 706a zum Zeitpunkt T3 innerhalb eines ersten Zyklus des Dongletaktsignals 510 ankommt (das durch die Taktsignalflanken 704a und 704b zu den Zeitpunkten T2 und T2+T definiert ist), kann der Steuerprozessor 416 die Übertragung bestimmter Signale an das Peripheriegerät 404 relativ zur Zeit T3 synchronisieren. Beispielsweise kann der Steuerprozessor 416 das Endpunktgerät 414 ansteuern, um eine (in 7A nicht dargestellte) Verbindungsanforderungsbestätigung an das Peripheriegerät 404 zu senden, um eine drahtlose Verbindung mit dem Peripheriegerät herzustellen. Als weiteres Beispiel kann der Steuerprozessor 416 den Bezug von Sensordaten einleiten, indem er beispielsweise eine Abfrageanforderung an das Peripheriegerät 404 sendet. Sowohl die Übertragung der Verbindungsanforderungsbestätigung als auch der Abfrageanforderung kann nach einer von der Taktsignalflanke 706a ausgehenden vorgegebenen Verzögerung 710 erfolgen, sodass die Übertragung der Verbindungsanforderungsbestätigung und der Abfrageanforderung mit der Taktsignalflanke 706a (und mit dem Hostvorrichtungstaktsignal 504) synchronisiert wird.
  • Bei einigen Beispielen kann die Verzögerung 710 beispielsweise auf Basis der Dauer einer Verarbeitungszeit 720 bestimmt werden, die das Senden einer Abfrageanforderung 712 an das Peripheriegerät 404, das Empfangen von Sensordaten 714 von dem Peripheriegerät 404 und das Verarbeiten und Speichern von Sensordaten 714 an dem Endpunktgerät 414 umfasst. Die Verzögerung 710 kann auch basierend darauf bestimmt werden, wann die nächste Taktsignalflanke 704b des Dongletaktsignals 510 erwartet wird. Im Beispiel von 7A kann der Steuerprozessor 416 einen Zeitraum 740 bestimmen, die zwischen der Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 und der Taktsignalflanke 704b des Dongletaktsignals 510 verstrichen ist, und eine Verzögerung 710 auf Basis der folgenden Gleichung erhalten:
    Verzögerung 710 = Zeitraum 740 Verarbeitungszeit 720
    Figure DE102019119284A1_0001
  • Bei solchen Anordnungen kann der Steuerprozessor 416 den Zeitpunkt der Übertragung einer Abfrageanforderung anpassen, um eine Änderung des Timings des Hostvorrichtungstaktsignals 504 zu berücksichtigen, wodurch der drahtgebundene Datentransfer zwischen dem Endpunktgerät 414 und der Hostvorrichtung 412 mit dem Hostvorrichtungstaktsignal 504 synchronisiert werden kann. Beispielsweise kann das Endpunktgerät 414 eine Abfrageanforderung zu einem vorbestimmten Zeitpunkt senden, wobei der Zeitpunkt so bestimmt ist, dass Sensordaten erfasst und verarbeitet werden können, bevor die nächste Leseanforderung von der Hostvorrichtung 412 empfangen wird, wenn die Taktsignalflanke 706b des Hostvorrichtungstaktsignals 504 zum Zeitpunkt T3+T ankommt. Ferner kann durch das Bestimmen der Verzögerung 710 auch in Bezug auf das Dongletaktsignal 510 (auf Basis der Bestimmung des Zeitraums 740) die Übertragung der Abfrageanforderung auch mit dem Dongletaktsignal 510 synchronisiert werden, das das Timing für andere Vorgänge des Dongles 450 (z. B. drahtlose Schnittstelle 406) festlegt, wodurch korrekte Abläufe am Dongle 450 unterstützt werden können.
  • Darüber hinaus kann der Steuerprozessor 416 auch das Peripheriegerät 404 steuern, um eine Erfassung von Sensordaten vom Sensor 430 mit dem Hostvorrichtungstaktsignal 504 zu synchronisieren. Durch solche Anordnungen kann das Peripheriegerät 404 die neuesten Sensordaten bereitstellen, wenn das Endpunktgerät 414 den Bezug von Sensordaten einleitet, dessen Timing ebenfalls wie vorstehend beschrieben mit dem Hostvorrichtungstaktsignal 504 synchronisiert ist. Im Beispiel von 7A kann der Steuerprozessor 416 das Peripheriegerät 404 so steuern, dass der Prozess 760 zum Erhalten und Verarbeiten von Sensordaten von dem Sensor 430 im Zeitraum 750 vor dem zum Zeitpunkt T1, der der Taktsignalflanke 702a des Peripheriegerätetaktsignals 524 entsprechen kann, erwarteten Empfang der Abfrageanforderung 712 gestartet wird. Da die Übertragung der Abfrageanforderung 712 mit dem Hostvorrichtungstaktsignal 504 synchronisiert ist (z. B. um einen Zeitraum 710 ausgehend von der Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 verzögert ist), kann das Timing des Prozesses 760 an dem Peripheriegerät 404 dadurch auch mit dem Hostvorrichtungstaktsignal 504 synchronisiert werden. Bei einigen Beispielen kann der Zeitraum 750 beispielsweise auf Basis der Gesamtzeit bestimmt werden, die das Peripheriegerät 404 benötigt, um Sensordaten von dem Sensor 730 zu beziehen und die Sensordaten für die Übertragung vorzubereiten (z. B. Verarbeitungsverzögerung, Zeit zum Erzeugen von Paketen für die drahtlose Übertragung, usw.).
  • Es gibt verschiedene Möglichkeiten, wie der Steuerprozessor 416 das Peripheriegerät 404 steuern kann, um die Erfassung der Sensordaten von dem Sensor 430 mit der Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 zu synchronisieren. Bei einigen Beispielen kann der Steuerprozessor 432 des Peripheriegeräts 404 die Erzeugung von Funkmelde-Interruptsignalen 522 (die zur Erzeugung des Peripheriegerätetaktsignals 524 verwendet werden können) auf Basis einer vorgegebenen Konfiguration mit dem Empfang verschiedener Signale von dem Endpunktgerät 414 synchronisieren. Beispielsweise kann der Steuerprozessor 432 das Timing für die Erzeugung von Funkmelde-Interrupts auf Basis der Zeiten festlegen, zu denen die Bestätigung der Verbindungsanforderung und die Abfrageanforderungen vom Dongle 450 empfangen werden. Der Steuerprozessor 432 kann beim Empfangen der Bestätigungsnachricht und der Abfrageanforderungen die Erzeugung von Funkmelde-Interrupts auslösen. Der Steuerprozessor 432 kann auf Basis des Timings, mit dem die vorherigen Abfrageanforderungen empfangen wurden, auch vorhersagen, wann der Dongle 450 wahrscheinlich die nächste Abfrageanforderung sendet. Das Peripheriegerät 404 kann den nächsten Funkmelde-Interrupt erzeugen und zur vorhergesagten Zeit auf die nächste Abfrageanforderung warten. Darüber hinaus kann der Steuerprozessor 432 innerhalb eines Zyklus des Peripheriegerätetaktsignals 504 (wie z. B. durch die Zeiten T1-T und T1 definiert) den Prozess 760 zum Erhalten und Verarbeiten von Sensordaten von dem Sensor 430 während des Zeitraums 750 vor dem Zeitpunkt, zu dem der nächste Funkmelde-Interrupt erzeugt wird (z. B. zum Zeitpunkt T1), starten.
  • Ferner kann der Steuerprozessor 416 (des Dongles 450) Timinginformationen, die einen Timinganpassungswert (z. B. eine Änderung der Verzögerungszeit 710) angeben, der auf die Übertragung einer nächstfolgenden Abfrageanforderung anzuwenden ist, auch als eigenständige Nachricht über einen Funkkanal an das Peripheriegerät 404 übertragen. Durch die eigenständige Nachricht kann der Steuerprozessor 432 des Peripheriegeräts 404 das Timing, mit dem die Sensordaten erhalten werden (z.B. durch Einstellen des Zeitraums 750), und das Timing, mit dem auf eine nächste Abfrageanforderung gewartet wird (z. B. durch Einstellen, wann der nächste Funkmelde-Interrupt erzeugt werden soll), vor dem Empfangen der nächsten Abfrageanforderung einstellen, wodurch das Peripheriegerät 404 schneller auf die Änderungen des Timings des Hostvorrichtungstaktsignals 504 reagieren kann. Wie aus 7A ersichtlich ist, kann der Steuerprozessor 416 (des Dongles 450) beispielsweise bestimmen, ob das Timing der Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 von einem erwarteten Timing abweicht. Der Steuerprozessor 416 kann auch einen Timinganpassungswert bestimmen, der auf das Senden einer nächsten Abfrageanforderung anzuwenden ist, um die Änderungen im Timing zu berücksichtigen, und den Timinganpassungswert direkt nach der Zeit T3 übertragen. Der Steuerprozessor 432 des Peripheriegeräts 404 kann den Timinganpassungswert über die eigenständige Nachricht in einem ersten Zyklus des Peripheriegerätetaktsignals 520 (definiert durch die Zeiten T1-T und T1) empfangen und auf Basis des Timinganpassungswerts die Zeit (T1) bestimmen, zu der die nächste Abfrageanforderung eintrifft. Der Steuerprozessor 432 kann auch die Startzeit des Prozesses 760 (um von dem Sensor 430 Sensordaten zu erhalten und zu verarbeiten), durch Subtrahieren des Zeitraums 750 von der Zeit T1 bestimmen. Zum Zeitpunkt T1 kann der Steuerprozessor 432 die drahtlose Schnittstelle 410 so steuern, dass er in den RX-Modus gelangt, um auf die Abfrageanforderung 712 zu warten, und die Daten 714 an den Dongle 450 überträgt.
  • Es gibt verschiedene Möglichkeiten, wie der Steuerprozessor 416 Änderungen im Timing des Hostvorrichtungstaktsignals 504 erkennen und messen kann. Beispielsweise kann der Steuerprozessor 416 das Timing aufzeichnen, mit dem die vorherigen Taktsignalflanken des Hostvorrichtungstaktsignals 504 (oder der SOF-Interrupts 502) empfangen wurden. Die Aufzeichnung kann beispielsweise in der Speicheranordnung 220 von 2 gespeichert werden. Der Steuerprozessor 416 kann auf Basis der Aufzeichnung eine nominale oder durchschnittliche Periode des Hostvorrichtungstaktsignals 504 bestimmen und auf Basis der Periode und dem Zeitpunkt, zu dem die letzte Taktsignalflanke empfangen wurde, vorhersagen, wann eine zukünftige Taktsignalflanke des Hostvorrichtungstaktsignals 504 (oder ein zukünftiger SOF-Interrupt) ankommen soll. Änderungen im Timing können erkannt werden, wenn die Taktsignalflanke zu einem anderen Zeitpunkt als dem vorhergesagten Ankunftszeitpunkt ankommt, und der Steuerprozessor 416 kann den Timinganpassungswert beispielsweise auf Basis einer Differenz zwischen der tatsächlichen Ankunftszeit und der vorhergesagten Ankunftszeit der Taktsignalflanke bestimmen.
  • Als weiteres Beispiel kann der Steuerprozessor 416 auch eine Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal 504 und einem Referenztaktsignal überwachen. Das Referenztaktsignal kann beispielsweise das Dongletaktsignal 510 oder ein spezielles Referenztaktsignal umfassen, das vom lokalen Oszillator 506 erzeugt und nicht von anderen Komponenten des Dongle 450 verwendet wird. Ein spezielles Referenztaktsignal kann bereitgestellt werden, um die Wahrscheinlichkeit zu verringern, dass das Referenztaktsignal durch Jitter verfälscht wird, der die Genauigkeit der Phasenbeziehungsmessung beeinträchtigen kann. Bei einigen Beispielen kann der Steuerprozessor 416 eine Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal 504 und dem Referenztaktsignal aufzeichnen und Änderungen im Timing des Hostvorrichtungstaktsignals 504 auf Basis von Änderungen der Phasenbeziehung erkennen. Der Steuerprozessor 416 kann einen Timinganpassungswert beispielsweise auf Basis einer Differenz zwischen der letzten Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal 504 und dem Referenztaktsignal und einer vorherigen Phasenbeziehung zwischen den beiden Taktsignalen bestimmen. Der Timinganpassungswert kann dann in einem Resynchronisationsprozess verwendet werden, um das Timing der Abläufe am Dongle 450 und am Peripheriegerät 404 in Reaktion auf die Änderung im Timing des Hostvorrichtungstaktsignals 504 zu ändern.
  • Bei einigen Beispielen kann der Steuerprozessor 416 in der eigenständigen Nachricht an das Peripheriegerät 404 auch angeben, wann das Peripheriegerät 404 den Timinganpassungswert anwenden soll. Wie aus 7B ersichtlich kommt beispielsweise die Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 an, nachdem das Peripheriegerät 404 den Prozess 760 gestartet hat, um Sensordaten von dem Sensor 430 zu erhalten und zu verarbeiten. Das Timing des Prozesses 760 (der bereits begonnen hat) kann nicht über die Taktsignalflanke 706a eingestellt werden. In diesem Fall kann der Steuerprozessor 416 die Timingeinstellung sowohl am Dongle 450 als auch an dem Peripheriegerät 404 auf den nächsten Zyklus verschieben. Beispielsweise kann der Steuerprozessor 416 auf Basis des Timings der Taktsignalflanke 706a, die im ersten Zyklus des Dongletaktsignals 510 (zwischen den Zeiten T2 und T2+T) empfangen wird, bestimmen, ob eine Taktsignaldrift auftritt. Die Drift des Taktsignals kann zu einer Änderung der Periode des Hostvorrichtungstaktsignals 504 führen. Der Steuerprozessor 416 kann einen Timinganpassungswert Ta bestimmen, der die Taktsignaldrift berücksichtigt, und die geschätzte Ankunftszeit der nächsten Taktsignalflanke 706b des Hostvorrichtungstaktsignals 504, z.B. T3+T+Ta, aktualisieren. Der Steuerprozessor 416 kann den Zeitpunkt zum Senden einer nächsten Abfrageanforderung 722 im zweiten Zyklus des Dongletaktsignals 510 (ab Zeitpunkt T2+T) auf Basis der geschätzten Ankunftszeit der nächsten Taktsignalflanke 706b (z. B. durch Addieren des Zeitraums 710) einstellen.
  • Bei einigen Beispielen kann der Steuerprozessor 416 eine zusätzliche Verarbeitung durchführen, bevor er seine Abläufe (und die Abläufe am Peripheriegerät 404) mit dem Hostvorrichtungstaktsignal 504 neu synchronisiert. Die zusätzliche Verarbeitung kann so ausgebildet sein, dass die Anzahl der Instanzen der Resynchronisationsprozesse reduziert werden, wodurch die Stabilität der Abläufe am Dongle 450 und am Peripheriegerät 404 verbessert werden kann. Bei einigen Beispielen kann der Steuerprozessor 416 bestimmen, ob die Änderung im Timing des Hostvorrichtungstaktsignals 504 einen Schwellwert überschreitet, und den Resynchronisierungsprozess vornehmen (z.B. Ändern des Timings zum Übertragen einer Abfrageanforderung und Übertragen des Timinganpassungswertes an das Peripheriegerät 404), wenn die Änderung im Timing den Schwellwert überschreitet. Bei einigen Beispielen kann der Steuerprozessor 416 auch eine Mittelung einer Reihe von vorherigen Instanzen von Änderungen im Timing des Hostvorrichtungstaktsignals 504 vornehmen (z. B. auf Basis einer Reihe von vorherigen Taktsignalflanken des Hostvorrichtungstaktsignals 504), und eine Resynchronisierung vornehmen, wenn die durchschnittliche Änderung (und nicht nur eine Instanz) des Timings einen Schwellwert überschreitet. Solche Anordnungen ermöglichen es dem System, dass es nur auf eine relativ große und langfristige Änderung des Timings des Hostvorrichtungstaktsignals 504 reagiert (z. B. verursacht durch Taktsignaldrift), während es andere kleinere und kurzfristige Änderung des Timings des Hostvorrichtungstaktsignals 504 ignoriert (z. B. verursacht durch Taktsignaljitter), um Störungen der Abläufe am Dongle 450 und Peripheriegerät 404 zu verringern.
  • Außerdem kann der Steuerprozessor 416 das Peripheriegerät 404 in der eigenständigen Nachricht auffordern, das Timing eines neuen Prozesses 770 zum Erhalten von Sensordaten 780 im zweiten Zyklus des Peripheriegerätetaktsignals 520 auf Basis des Timinganpassungswertes zu aktualisieren. Nach dem Empfangen der eigenständigen Nachricht kann der Steuerprozessor 432 des Peripheriegeräts 404 auf Basis des Timinganpassungswerts die Schätzung aktualisieren, wann die Abfrageanforderung 722 (Zeit T1+T) empfangen werden soll, und das Timing des Prozesses 760 aktualisieren, sodass dieser innerhalb eines Zeitraums 750 vor dem Zeitpunkt T1+T gestartet wird, zu dem die Abfrageanforderung 722 empfangen wird. Zum Zeitpunkt T1+T kann der Steuerprozessor 432 einen Funkmelde-Interrupt erzeugen, der der Taktsignalflanke 702b des dritten Zyklus des Peripheriegerätetaktsignals 520 entspricht. Der Steuerprozessor 432 kann die drahtlose Schnittstelle 410 so steuern, dass sie in den RX-Modus gelangt, um die Abfrageanforderung 722 von dem Dongle 450 zu empfangen, und dann die Daten 780 in Reaktion auf die Abfrageanforderung 722 an den Dongle 450 überträgt.
  • Bei einigen Beispielen kann der Steuerprozessor 416 neben einem Timinganpassungswert und dem Zeitpunkt, zu dem der Timinganpassungswert angewendet werden soll, weitere Informationen in die Nachricht aufnehmen. Beispielsweise kann die Nachricht einen Opcode umfassen, der dem Prozessor 432 anzeigt, dass die Nachricht für das Peripheriegerät 404 (und nicht für andere Peripheriegeräte) bestimmt ist und Informationen zur Timingeinstellung enthält. Die Nachricht kann auch eine Messung der zufälligen Unsicherheiten (z. B. Jitter) des Hostvorrichtungstaktsignals 504 umfassen (z. B. in Einheiten von parts per million (ppm)). Die Messinformationen können beispielsweise von der Hostvorrichtung 412 (und/oder dem Hardwareprozessor 402) bezogen werden. Bei einigen Beispielen kann der Steuerprozessor 416 zum Erhalt der Messunsicherheiten auch statistische Analysen an einer Aufzeichnung von Taktsignalperioden des Hostvorrichtungstaktsignals 504 vornehmen.
  • Synchronisation mehrerer Peripheriegeräte
  • Bei einigen Beispielen kann der Dongle 450 ausgebildet sein, Sensordaten von mehreren Peripheriegeräten zu empfangen und die Sensordaten für den Hardwareprozessor 402 des Computersystems 460 bereitzustellen. Aus dem Beispiel von 1 ist auch ersichtlich, dass der Dongle 450 von mehreren Peripheriegeräten Sensordaten empfangen kann, darunter beispielsweise von der Computermaus 130, der Tastatur 140 und dem Mikrofon 150, damit dem Benutzer die Möglichkeit zur Interaktion mit dem Hostcomputergerät 110 unter Einsatz unterschiedlicher Methoden zur Verfügung steht.
  • Bei einigen Beispielen kann der Dongle 450 ausgebildet sein, mit der Computermaus 130, der Tastatur 140 und dem Mikrofon 150 jeweils unter Verwendung eines Zeitmultiplex (TDMA)-Verfahrens zu kommunizieren, wobei der Dongle 450 eine drahtlose Verbindung unter Verwendung der drahtlosen Schnittstelle 406 (und des drahtlosen Transceivers 413) mit jedem Peripheriegerät gleichzeitig herstellt, den Bezug von Sensordaten an jedem Peripheriegerät aber zu unterschiedlichen Zeiten einleitet. Die Einleitung des Bezugs von Sensordaten von jedem Peripheriegerät kann auch mit dem Hostvorrichtungstaktsignal 504 und dem Dongletaktsignal 510 synchronisiert werden. 8 veranschaulicht ein Beispiel für ein TDMA-Verfahren. In 8 kann der Dongle 450 den Bezug von Sensordaten von dem Peripheriegerät 802 innerhalb eines ersten Zyklus des Dongletaktsignals 510 (definiert durch T2 und T2+T) einleiten, indem er eine Abfrageanforderung 808 über eine drahtlose Verbindung sendet. Die Übertragung der Abfrageanforderung 808 kann nach Ablauf einer von der Taktsignalflanke 706a (zum Zeitpunkt T3) des Hostvorrichtungstaktsignals 504 ausgehenden Verzögerung 810 erfolgen. Der Dongle 450 kann innerhalb des ersten Zyklus des Dongletaktsignals 510 auch den Bezug von Sensordaten von dem Peripheriegerät 804 einleiten, indem er die Abfrageanforderung 818 über eine weitere drahtlose Verbindung sendet. Die Übertragung der Abfrageanforderung 818 kann nach Ablauf einer 820 von der Taktsignalflanke 706a ausgehenden Verzögerung erfolgen. Beide Peripheriegeräte 802 und 804 können auch ihre Abläufe (z. B. Erzeugen von Funkmelde-Interrupts, Sammeln von Sensordaten, Eintreten in den RX-Modus zum Warten auf Abfrageanforderungen, Senden von Sensordaten usw.) mit den vom Dongle 450 empfangenen Abfrageanforderungen (und mit dem Hostvorrichtungstaktsignal 504) synchronisieren und Sensordaten (z. B. Sensordaten 828 von dem Peripheriegerät 802, Sensordaten 838 von dem Peripheriegerät 804) in Reaktion auf die jeweiligen Abfrageanforderungen 808 und 818 zu unterschiedlichen Zeiten zurück zum Dongle 450 übertragen. Der Dongle 450 kann die Daten 828 und 838 empfangen und die Daten verarbeiten, bevor der zweite Zyklus des Dongletaktsignals 510 zum Zeitpunkt T2+T ankommt. Die Hostvorrichtung 412 kann zum Zeitpunkt T3+T eine Leseanforderung senden, und der Dongle 450 kann die von den Peripheriegeräten 802 und 804 erfassten Daten 828 und 838 über den Bus 415 an die Hostvorrichtung übertragen.
  • Wie vorstehend erläutert wurde, können die Verzögerungen 810 und 820 verwendet werden, um die Einleitung eines Sensordatenbezugs (z. B. durch Senden einer Abfrageanforderung) von jedem Peripheriegerät zu planen, damit die Peripheriegeräte jeweils abwechselnd Sensordaten an den Dongle 450 übertragen können. Im Beispiel von 8 kann der Dongle 450, um das Senden von Abfrageanforderungen mit dem Dongletaktsignal 510 (zusätzlich zu dem Hostvorrichtungstaktsignal 504) zu synchronisieren, sowohl die Verzögerung 810 als auch die Verzögerung 820 auf Basis der Verarbeitungszeit 830 (für das Senden der Abfrageanforderung 808 und das Empfangen von Daten 828), der Verarbeitungszeit 840 (für das Senden der Abfrageanforderung 818 und das Empfangen von Daten 838), der Verarbeitungsverzögerung 850 (für das Verarbeiten der Daten 828 und 838) und dem Timing der Taktsignalflanke 704b des Dongletaktsignals 510 (der den zweiten Zyklus des Dongletaktsigals 510 einleitet) bestimmen. Unter der Annahme, dass beispielsweise die Taktsignalflanke 706a des Hostvorrichtungstaktsignals 504 und die Taktsignalflanke 704b des Dongletaktsignals 510 durch einen Zeitraum 860 getrennt sind, können die Verzögerungen 810 und 820 auf Basis der folgenden Gleichungen bestimmt werden: Verzögerung  810 = Zeitraum  860 Verarbeitungszeit  830 Verarbeitungszeit 810 Verarbeitungszeit 850
    Figure DE102019119284A1_0002
    Verzögerung  800 = Zeitraum  860 Verarbeitungszeit  840 Verarbeitungszeit 850
    Figure DE102019119284A1_0003
  • Um Signalstörungen und Kollisionen zwischen den Peripheriegeräten 802 und 804 zu reduzieren, kann eines der Peripheriegeräte ausgebildet sein, die Übertragung von Funksignalen zu stoppen, wenn das andere Peripheriegerät mit dem Dongle 450 kommuniziert. Das Peripheriegerät 804 kann beispielsweise so ausgebildet sein, dass es Funkstille einhält und keine Funksignale sendet, wenn das Peripheriegerät 802 Daten 828 an den Dongle 450 sendet. Bei einigen Beispielen kann die drahtlose Schnittstelle jedes Peripheriegeräts nur innerhalb einer bestimmten Zeitspanne nach dem Empfangen des Funkmelde-Interruptsignals eingeschaltet sein (um in den RX-Modus zu gelangen, um auf eine Abfrageanforderung zu warten und Sensordaten als Reaktion auf die Abfrageanforderung zu senden), und muss außerhalb dieser Zeitspanne ausgeschaltet sein, um Störungen oder Kollisionen mit anderen Peripheriegeräten zu vermeiden, die sich mitten in einer Übertragung von Sensordaten an den Dongle 450 befinden.
  • Ferner kann das in 8 beschriebene TDMA-Verfahren und Abfrageschema verwendet werden, um eine Priorisierung von Peripheriegeräten zu ermöglichen. Die Priorisierung kann von Nutzen sein, um von Peripheriegeräten übertragene Eingabedaten zu verarbeiten, die verschiedenen Anwendungen zugeordnet sind, die unterschiedliche Verzögerungsanforderungen haben können. Beispielsweise kann es sich bei dem Peripheriegerät 802 um eine Computermaus handeln, die zur Steuerung einer Spielanwendung verwendet wird, die erfordern kann, dass das Computersystem in Echtzeit auf die von dem Peripheriegerät 802 bereitgestellten Eingabedaten reagiert und keine höhere Latenzzeit für die Datenübertragung zur Hostvorrichtung 412 tolerieren kann. Andererseits kann es sich bei dem Peripheriegerät 804 um einen Lautsprecher für eine Audio-Streaming-Anwendung handeln. Der Lautsprecher kann über einen Puffer zum Speichern der abzuspielenden Audiodaten verfügen und eine höhere Latenzzeit für die Datenübertragung vom Host zum Lautsprecher tolerieren (sofern der Puffer nicht geleert wird). Bei diesem Beispiel kann die Übertragung von Eingabedaten von der Computermaus zur Hostvorrichtung 412 gegenüber der Übertragung von Ausgabedaten von der Hostvorrichtung 412 priorisiert werden, um die Latenzzeit für die Datenübertragung von dem Peripheriegerät 802 zur Hostvorrichtung 412 zu minimieren.
  • Um die Priorisierung durchzuführen, kann innerhalb des Zeitraums 860 zuerst die Abfrageanforderung für das Peripheriegerät 802 übertragen (und mit der Taktsignalflanke 706a der Hostvorrichtung 412 synchronisiert) werden, gefolgt von der Abfrageanforderung für das Peripheriegerät 804. Solche Anordnungen können die Verzögerung zwischen dem Bezug von Sensordaten (z. B. Daten 828) an dem Peripheriegerät 802 und der Übertragung der Sensordaten an den Dongle 450 reduzieren. Andererseits kann die Abfrage des Peripheriegeräts 804 durchgeführt werden, nachdem der Dongle 450 die Eingabedaten (z. B. Daten 828) von dem Peripheriegerät 802 empfangen hat. Die Abfrage kann auch mit der Taktsignalflanke 706a der Hostvorrichtung 412 synchronisiert werden, wobei jedoch die Verarbeitungszeit 830 zum Abfragen und Empfangen von Daten von dem Peripheriegerät 802 zur Verzögerung zwischen dem Zeitpunkt, zu dem das Peripheriegerät 804 Sensordaten erfasst, und dem Zeitpunkt, zu dem die Sensordaten an den Dongle 450 übertragen werden, beitragen kann.
  • Ein Dongle mit mehreren Transceivern
  • Auch wenn das TDMA-Verfahren und das Abfrageschema von 8 ermöglichen, dass der Dongle 450 von mehreren Peripheriegeräten Sensordaten empfängt, kann das Abfrageschema trotz der Verbesserung der Verzögerung bei der Datenübertragung mit den oben beschriebenen Techniken zur synchronisierten Abfrage auf verschiedene Weise eine Herausforderung für den drahtlosen Datentransfer zwischen den Peripheriegeräten und dem Dongle darstellen.
  • Zunächst kann die Anzahl der mit dem Dongle 450 verbundenen Peripheriegeräte beschränkt sein. Beispielsweise ist bei einem Dongle 450, wie wiederum aus 8 ersichtlich ist, der Zeitraum 860 zwischen zwei Taktsignalflanken der Hostvorrichtung 412 (Taktsignalflanken 706a und 706b) zum Abfragen und Empfangen von Daten von jedem Peripheriegerät endlich. Das Abrufen und Empfangen von Daten erfordert für jedes Peripheriegerät eine endliche Verarbeitungszeit (z. B. Verarbeitungszeit 830 für das Peripheriegerät 802, Verarbeitungszeit 840 für das Peripheriegerät 804 usw.) und der endliche Zeitraum 860 kann eine Obergrenze dafür festlegen, wie viele Peripheriegeräte innerhalb des Zeitraums 860 nacheinander abgefragt und Daten an den Dongle 450 übertragen werden können. Beispielsweise darf die Summe der Verarbeitungszeiten (z. B. Verarbeitungszeiten 830, 840, 850, usw.) an jedem Peripheriegerät den Zeitraum 860 nicht überschreiten, sodass der Dongle 450 die Eingabedaten von jedem der abgefragten Peripheriegeräten empfangen und verarbeiten kann, bevor die nächste Taktsignalflanke (z. B. Taktsignalflanke 704b) des Dongletaktsignals eintrifft. Die Begrenzung der Anzahl der Peripheriegeräte, die drahtlos mit dem Dongle 450 verbunden sind, kann erhebliche Auswirkungen auf die Benutzerfreundlichkeit haben. Als Beispiel kann der Dongle 450 an einem System mit einer sehr begrenzten Anzahl von USB-Anschlüssen verwendet werden, sodass das System nur mit einem einzigen Dongle 450 verbunden werden kann, der wiederum nur mit einer begrenzten Anzahl von Peripheriegeräten drahtlos verbunden werden kann. Wenn die Anzahl der Peripheriegeräte, die drahtlos mit dem Dongle 450 verbunden werden können, gering ist, können die Möglichkeiten zur Interaktion des Benutzers mit dem System stark eingeschränkt sein, wodurch nicht nur der Nutzbarkeit des Systems verringert, sondern auch die Benutzerfreundlichkeit beeinträchtigt wird.
  • Darüber hinaus kann ein Abfrageschema zu einer Verzögerung bei der Datenübertragung jedes Peripheriegerätes führen. Da die Peripheriegeräte beispielsweise jeweils abwechselnd auf das Abfragesignal zum Übertragen von Daten an den Dongle 450 warten müssen, trägt die Zeit zum Warten auf das Abfragesignal zur Verzögerung bei der Datenübertragung bei. Die Verzögerung ist für einige Anwendungen akzeptabel, für andere Anwendungen jedoch nicht. Beispielsweise kann die Verzögerung für das Streamen von Audio- und Videodaten akzeptabel sein, solange das System genügend Datenmengen zwischenspeichern kann, die von der Anzeige und/oder dem Audioplayer verarbeitet werden, während es auf neue drahtlose Audio-/Videodaten wartet. Die Verzögerung kann jedoch für eine Eingabevorrichtung (z. B. eine Maus, einen Joystick usw.), die mit Anwendungen verwendet wird, die eine äußerst intensive Interaktion zwischen dem Benutzer und dem System erfordern (z. B. Spiele, Instrumentierungssteuerung usw.), inakzeptabel sein, da die Eingabevorrichtung zur Unterstützung der äußerst intensiven Interaktion zwischen dem Benutzer und dem System neue Benutzereingabedaten senden muss, sobald die Eingabedaten erzeugt wurden.
  • Ferner kann die Verwendung mehrerer Peripheriegeräte, die bei der drahtlosen Kommunikation mithilfe eines einzigen Transceivers des Dongles 450 nacheinander zum Einsatz kommen (z. B. bei einem Abfrageschema), auch dazu führen, dass die Datenübertragung an einem Peripheriegerät die Datenübertragung anderer Peripheriegeräte beeinträchtigt. Wenn beispielsweise die Bandbreite des Transceivers überschritten wird und die Datenübertragung eines Gerätes gegenüber anderen nicht priorisierten Geräten priorisiert wird (z. B. durch Bereitstellen eines größeren Abfragefensters), kann die Verzögerung bei der Datenübertragung der nicht priorisierten Geräte durch die priorisierten Geräte beeinflusst (und vergrößert) werden. Wenn beispielsweise eine Gaming-Maus und Vorrichtungen für Audio- und/oder Video-Streaming mit dem einzigen am Dongle 450 vorhandenen Transceiver kommunizieren, kann sich die Verzögerung der Datenübertragung bei den Audio- und/oder Video-Streaming-Vorrichtungen infolge einer Priorisierung der Übertragung der Benutzereingabedaten durch die Gaming-Maus erhöhen.
  • Bei einigen Beispielen kann ein Dongle zur Lösung der oben genannten Probleme eines Abfrageschema ein hybrides TDMA- und Frequenzmultiplex (FDMA)-Verfahren verwenden, um Eingabedaten von mehreren Peripheriegeräten zu verarbeiten. Beispielsweise kann ein Dongle so ausgebildet dass, dass er mehrere drahtlose Transceiver aufweist, wobei jeder der drahtlosen Transceiver ausgebildet ist, über einen anderen Frequenzkanal mit einem oder mehreren Peripheriegeräten zu kommunizieren. Die drahtlosen Transceiver können auch verschiedenen Peripheriegeräten (oder verschiedene Gruppen von Peripheriegeräten mit unterschiedlichen Verzögerungstoleranzen) zugeordnet sei. Beispielsweise kann ein erster drahtloser Transceiver einer Datenübertragung von einer Benutzereingabevorrichtung (z. B. einer Gaming-Maus, einer Instrumentierungssteuerungsvorrichtung usw.) zugeordnet werden, während ein zweiter drahtloser Transceiver einer Datenübertragung von Video- und/oder Audiodaten-Streaming-Vorrichtungen zugeordnet werden kann.
  • Durch die mehreren drahtlosen Transceiver kann der Dongle, Eingabedaten von mehreren Peripheriegeräten parallel (über FMDA) und/oder sequentiell (über TDMA) abfragen und empfangen. Die Parallelität erhöht die Anzahl der Peripheriegeräte, die Eingabedaten innerhalb jedes Taktzyklus der Hostvorrichtung übertragen dürfen, während sie die Wartezeit und die Verzögerung der Datenübertragung an jedem Peripheriegerät reduziert. Darüber hinaus kann dadurch, dass verschiedenen Peripheriegeräten (oder verschiedenen Gruppen von Peripheriegeräten) bestimmte drahtlose Transceiver zugeordnet sind, die Wahrscheinlichkeit reduziert werden, dass priorisierte Geräte die Datenübertragung von nicht priorisierten Geräten beeinträchtigen.
  • 9 veranschaulicht ein Beispiel für ein Kommunikationssystem 900, das ein hybrides TDMA- und FDMA-System verwendet. Wie in 9 dargestellt ist, kann das Kommunikationssystem 900 eine Datenübertragung zwischen dem Hardwareprozessor 402 von 4 und den Peripheriegeräten 904a, 904b und 904c (z. B. den Peripheriegeräten 130-150) ermöglichen. Das Kommunikationssystem 900 kann eine drahtlose Schnittstelle 906 und auf Seiten des Hardwareprozessors 402 (z. B. als Teil des Computers 110 und/oder der Systeme 200 und 300) eine drahtgebundene Verbindung 408 (von 4) umfassen. Die drahtlose Schnittstelle 906 kann mehrere drahtlose Transceiver umfassen, wie beispielsweise die Transceiver 914 und 915. Jedes der Peripheriegeräte 904a-c weist auch eine drahtlose Schnittstelle auf (in 9 nicht dargestellt), um mit der drahtlosen Schnittstelle 906 über die Transceiver 914 und 915 zu kommunizieren. Jeder Transceiver kann beispielsweise eine Antenne, Leistungsverstärker, rauscharme Verstärker, Mischer, Analog-Digital-Wandler (ADC) usw. umfassen.
  • Über die drahtlose Schnittstelle 906 und die drahtgebundene Verbindung 408 können Daten zwischen dem Hardwareprozessor 402 und den Peripheriegeräten 904a-c übertragen werden. Die drahtlose Schnittstelle 906 und das Endpunktgerät 414 können Teil eines Dongles 950 sein. Der Dongle 450 kann ferner einen Steuerprozessor 916 umfassen, um die Vorgänge an der drahtlosen Schnittstelle 906 und dem Endpunktgerät 414 zu steuern, einschließlich beispielsweise der Vorgänge zur Datenübertragung zwischen dem Hardwareprozessor 402 und den Peripheriegeräten 904a-c. Der Dongle 450 kann mit den Peripheriegeräten 904a-c ein oder mehrere Piconets bilden und bei mehreren Verbindungsereignissen Sensordaten von jedem der Peripheriegeräte empfangen. Der Steuerprozessor 916 kann die Transceiver 914 und 915 der drahtlosen Schnittstelle 906 steuern, um eine drahtlose Datenübertragung mit den Peripheriegeräten 904a-c durchzuführen, die auf demselben drahtlosen Protokoll oder verschiedenen drahtlosen Protokollen basieren, wie z.B. Bluetooth®, BLE usw. Der Steuerprozessor 916 kann auch die drahtlose Datenübertragung mit dem Hostvorrichtungstaktsignal 504 auf Basis der oben beschriebenen Techniken synchronisieren. Auch wenn 9 zeigt, dass der Steuerprozessor 916 eine einzelne Einheit ist, versteht es sich, dass der Steuerprozessor 916 mehrere Einheiten aufweisen kann, wobei einige der Einheiten Teil des Transceivers 914 und des Transceivers 915 sein können.
  • Bei einigen Beispielen kann der Steuerprozessor 916 die Transceiver 914 und 915 steuern, um eine drahtlose Datenübertragung mit zumindest einigen der Peripheriegeräte 904a-c parallel durchzuführen. 10 veranschaulicht ein Beispiel für die drahtlose Datenübertragung zwischen dem Dongle 950 und den Peripheriegeräten 904a-c. Wie in 10 dargestellt ist, kann der Steuerprozessor 916 (des Dongles 950) zwischen den Zeitpunkten T1 und T2 eine drahtlose Datenübertragung mit dem Peripheriegerät 904a unter Verwendung des drahtlosen Transceivers 914 durchführen. Der Steuerprozessor 916 kann zwischen den Zeitpunkten T1 und T2 auch eine drahtlose Datenübertragung mit dem Peripheriegerät 904b unter Verwendung des drahtlosen Transceivers 915 und zwischen den Zeitpunkten T2 und T3 mit dem Peripheriegerät 904c unter Verwendung des drahtlosen Transceivers 915 durchführen.
  • Ferner kann der Steuerprozessor 916 die Transceiver 914 und 915 zur Verringerung der Wahrscheinlichkeit einer Signalkollision und -störung so konfigurieren, dass sie in einem FDMA-Schema betrieben werden, bei dem verschiedene Funkträgerfrequenzen verwendet werden, um zwischen den Zeitpunkten T1 und T2 eine parallele drahtlose Datenübertragung vorzunehmen. Bei einigen Beispielen kann der Steuerprozessor 916 die Transceiver 914 und 915 so konfigurieren, dass sie zum Durchführen einer drahtlosen Datenübertragung verschiedene Frequenzsprungsequenzen verwenden, sodass an den Transceivern 914 und 915 zu jedem Zeitpunkt verschiedene Funkträgerfrequenzen für die Vornahme einer Datenübertragung verwendet werden. Die drahtlosen Datenübertragungsvorgänge können beispielsweise an dem Dongle 950 das Senden einer Abfrageanforderung und das dadurch veranlasste Empfangen von Sensordaten, an den Peripheriegeräten 904a-c das Eintreten in den RX-Modus zum Warten auf eine Abfrageanforderung und das Senden von Sensordaten in Reaktion auf die Abfrageanforderung usw. umfassen. Bei einigen Beispielen kann auch ein TDMA-Verfahren verwendet werden, sodass die Transceiver 914 und 915 verwendet werden können, um mit verschiedenen Peripheriegeräten zu verschiedenen Zeiten über dieselbe Funkträgerfrequenz zu kommunizieren.
  • Bei einigen Beispielen können die Transceiver 914 und 915 durch separate (und in einem einzigen Dongle aufgenommene) Steuerschaltungen gesteuert werden und/oder Teil von zwei verschiedenen Dongles sein und mit zwei verschiedenen Endpunktgeräten verbunden sein. Wie vorstehend beschrieben wurde, können beispielsweise einige der Komponenten/Einheiten des Steuerprozessors 916 in die Transceiver 914 und 915 aufgenommen werden. Die beiden Endpunktgeräte können mit einer einzigen Hostvorrichtung oder separaten Hostvorrichtungen verbunden werden. Die beiden Steuerschaltungen können zum Initiieren der gleichen Frequenzsprungsequenzen (z. B. unter Verwendung des gleichen Startwertes zur Erzeugung eines Satzes von Frequenzwerten) an den beiden Transceivern ausgebildet sein, was zu Signalkollisionen und -störungen an den beiden Transceivern führen kann. Um Signalkollisionen und -störungen effizient zu reduzieren, können die beiden Steuerschaltungen miteinander synchronisiert werden, um die Frequenzsprungsequenzen für den jeweiligen Transceiver vor oder während der drahtlosen Datenübertragung mit den Peripheriegeräten über einen Informationsaustauschprozess zu bestimmen. Beispielsweise kann die Steuerschaltung für den Transceiver 914 während der Inbetriebnahme eine Frequenzsprungsequenz an die Steuerschaltung für den Transceiver 915 übertragen, die an dem Transceiver 914 implementiert werden soll. Die Steuerschaltung für den Transceiver 915 kann ferner die Frequenzsprungsequenz für den Transceiver 915 an die Steuerschaltung für den Transceiver 914 übertragen. Bei einigen Beispielen kann der Informationsaustausch drahtlos über die Transceiver erfolgen. Bei einigen Beispielen kann der Informationsaustausch über eine zwischen den beiden Transceivern bestehende drahtgebundene Verbindung erfolgen. Eine/eines der Steuerschaltungen/Endpunktgeräte (z.B. für den Transceiver 914) kann ihre/seine Frequenzsprungsequenz auf Basis der empfangenen Informationen anpassen, um beispielsweise eine Frequenzsprungsequenz zu verwenden, die sich zu keinem Zeitpunkt mit der Frequenzsprungsequenz des anderen Transceivers überschneidet, damit Frequenzüberschneidungen reduziert und umweltbedingte Störungen vermieden werden.
  • Bei einigen Beispielen kann eine/eines der Steuerschaltungen/Endpunktgeräte während der drahtlosen Datenübertragung ferner eine Überwachung in Bezug auf Störungen durchführen und bei einem Erkennen erheblicher Störungen Frequenzsprungsequenzinformationen mit der/dem anderen Steuerschaltung/Endpunktgerät austauschen, damit die/das andere Steuerschaltung/Endpunktgerät ihre/seine Frequenzsprungsequenz zum Verringern der Störungen aktualisieren kann. Bei einigen Beispielen können sowohl die Steuerschaltung als auch das Endpunktgerät ihre jeweiligen Frequenzsprungsequenzen auf Basis der ausgetauschten Informationen anpassen, um den Synchronisationsprozess zu beschleunigen, wodurch die jeweiligen Frequenzsprungsequenzen an beiden Transceivern festgelegt werden können, um die drahtlose Datenübertragung so schnell wie möglich zu starten (oder erneut zu starten). Die schnelle und von anderen Geräten/Anwendungen unabhängige Anpassung der Frequenzsprungsequenzen an den Transceivern kann für Anwendungen kritisch sein, die eine äußerst intensive Interaktion zwischen dem Benutzer und dem Computer erfordern (z. B. Spielesteuerung, Instrumentierungssteuerung usw.) und bei denen die Toleranz gegenüber einem Ausbleiben einer Reaktion am Computers (z. B. aufgrund von Signalstörungen) gering sein kann. Wenn beispielsweise für Anwendungen mit geringerer Priorität (z. B. Streaming von Audio-/Videodaten) ein erster Transceiver verwendet wird und für den Empfang von Eingabedaten für Hochgeschwindigkeitsspiele ein zweiter Transceiver verwendet wird, ist es ungünstig, wenn die drahtlose Datenübertragung des zweiten Transceivers durch den ersten Transceiver aufgrund einer Kollision unterbrochen wird. Durch den Informationsaustauschprozess kann der zweite Transceiver seine Frequenzsprungsequenz auf Basis der von dem ersten Transceiver verwendeten Frequenzsprungsequenz schnell anpassen, sodass die Unterbrechung der drahtlosen Datenübertragung am zweiten Transceiver für die höherrangige Spieleanwendung minimiert werden kann.
  • Das hybride TDMA- und FDMA-Verfahren von 10 kann auch die oben beschriebenen Techniken umfassen, um die Latenzzeiten bei der Datenübertragung zu reduzieren und eine Priorisierung zwischen den Peripheriegeräten zu ermöglichen. Beispielsweise kann das Senden von Abfrageanforderungen und das Empfangen von Daten von den Peripheriegeräten sowie das Senden von Daten durch die Peripheriegeräte mit dem Hostvorrichtungstaktsignal 504 synchronisiert werden. Darüber hinaus können Peripheriegeräte mit höherer Priorität innerhalb eines Zyklus des Hostvorrichtungstaktsignals zuerst abgefragt werden, und anschließend die Peripheriegeräte mit niedrigerer Priorität. In 10 können die Peripheriegeräte 904a und 904b beispielsweise eine höhere Priorität haben als das Peripheriegerät 904c und die Peripheriegeräte 904a und 904b können vor dem Peripheriegerät 904c abgefragt werden.
  • Im Vergleich zu dem TDMA-Verfahren von 8, bei dem die Peripheriegeräte über den einzigen drahtlosen Transceiver des Dongle nacheinander mit dem Dongle kommunizieren müssen, kann die parallele drahtlose Datenübertragung, die durch mehrere Transceivern 914 und 915 ermöglicht wird, die Wartezeit reduzieren, die an jedem Peripheriegerät anfällt, bevor das Peripheriegerät Sensordaten sendet, wodurch die Verzögerung bei der Übertragung von Sensordaten an den Hardwareprozessor 402 weiter reduziert werden kann. Mit solchen Anordnungen kann die Eignung eines Computersystems zur Verfolgung der Eingaben des Benutzers verbessert werden, was zu einer besseren Benutzerfreundlichkeit führen kann.
  • Verfahren
  • 11 zeigt ein vereinfachtes Flussdiagramm für ein Verfahren 1100 zur Durchführung einer drahtlosen Datenübertragung, gemäß einiger Beispiele. Das Verfahren 1100 kann mithilfe einer Verarbeitungslogik ausgeführt werden, die Hardware (Schaltungen, spezielle Logik usw.), Software, die auf einer geeigneten Hardware (z. B. einem universellen Computersystem oder einem spezialisierten Gerät) läuft, Firmware (eingebettete Software) oder eine beliebige Kombination davon umfassen kann. Bei einigen Beispielen kann das Verfahren 1100 beispielsweise von einem Endpunktgerät (z. B. Endpunktgerät 414) und einem Peripheriegerät (z. B. Peripheriegerät 404) der 4 ausgeführt werden. Endpunktgeräte können mit einer Hostvorrichtung über eine Hardwareverbindung, die beispielsweise einen USB-Bus umfasst, verbunden werden. Das Verfahren 1100 kann mit den oben z. B. in Bezug auf 7A, 7B und 8 - 10 beschriebenen Techniken implementiert werden.
  • Bei Schritt 1110 kann das Verfahren 1100 ein Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von der Hostvorrichtung an einem Endpunktgerät umfassen. Der erste Hinweis kann beispielsweise ein Start-of-Frame (SOF)-Signal umfassen, das mit einer ansteigenden Flanke des Hostvorrichtungstaktsignals synchronisiert werden kann. Der erste Hinweis kann auch auf dem Empfang eines SOF-Datenpakets basieren.
  • Bei Schritt 1120 kann das Verfahren 1100 ein Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunkttaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunkttaktsignal umfassen. Der zweite Hinweis kann eine erste Anstiegsflanke des Endpunkttaktsignals nach der dem ersten Hinweis entsprechenden Anstiegsflanke des Hostvorrichtungstaktsignals sein. Die Phasenbeziehung kann beispielsweise dem Zeitraum 740 von 7A und Gleichung 11 entsprechen.
  • Bei Schritt 1130 kann das Verfahren 1100 ein Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung, wie beispielsweise einer Abfrageanforderung, an ein Peripheriegerät zumindest auf Basis der Phasenbeziehung umfassen. Durch die Bestimmung des ersten Zeitpunkts kann die Übertragung der Sensordatenanforderung so angepasst werden, dass der Änderung des Timings für das Hostvorrichtungstaktsignal Rechnung getragen wird, wodurch der Datentransfer zwischen dem Endpunktgerät und der Hostvorrichtung mit dem Hostvorrichtungstaktsignal synchronisiert werden kann. Der erste Zeitpunkt (z. B. Verzögerung 710 von 7A) kann beispielsweise auf Basis einer Gesamtverarbeitungszeit der Sensordatenanforderung an dem Peripheriegerät (z. B. Verarbeitungszeit 720 von 7A) und der Gleichung 12 bestimmt werden.
  • Bei Schritt 1140 kann das Verfahren 1100 ein Beziehen von Sensordaten an dem Peripheriegerät zu einem zweiten Zeitpunkt umfassen, der auf Basis einer Verzögerung, die mit dem Bezug der Sensordaten zusammenhängt, und des Zeitpunktes bestimmt wird, zu dem die Sensordatenanforderung von dem Endpunktgerät ankommen soll. Die Verzögerung kann beispielsweise den Zeitraum 750 von 7A umfassen. Bei einigen Beispielen kann der Zeitraum 750 auch auf Basis des erwarteten Timings für die Ankunft der Sensordatenanforderung (z. B. Abfrageanforderung) von dem Endpunktgerät bestimmt werden, sodass die Sensordatenerfassung vor dem Eintreffen der Abfrageanforderung abgeschlossen werden kann, um den Betrieb des Peripheriegeräts mit dem Endpunktgerät (und mit der Hostvorrichtung) zu synchronisieren. Das erwartete Timing für die Ankunft der Sensordatenanforderung kann beispielsweise anhand des Empfangs von Bestätigungssignalen von dem Endpunktgerät während des Einrichtens der drahtlosen Verbindung zwischen dem Endpunktgerät und dem Peripheriegerät bestimmt werden, wenn von dem Endpunktgerät zuvor Sensordatenanforderungen empfangen wurden, usw. Der Zeitraum 750 kann auch auf Basis eines Timinganpassungswerts angepasst werden, der von dem Endpunktgerät als Teil einer eigenständigen Nachricht empfangen wird. Der Timinganpassungswert kann beispielsweise eine Änderung der Zeit zur Übertragung der Sensordatenabfrage (z. B. Verzögerung 710 von 7A) an dem Endpunktgerät übermitteln, die beispielsweise durch die Drift des Hostvorrichtungstaktsignals im Rahmen der Synchronisation zwischen dem Peripheriegerät, dem Endpunktgerät und der Hostvorrichtung bedingt ist.
  • Bei Schritt 1150 kann das Verfahren 1100 ein drahtloses Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt durch das Endpunktgerät umfassen. Die drahtlose Übertragung kann beispielsweise auf dem BLE-Protokoll basieren, bei dem ein drahtloser Transceiver mit dem Endpunktgerät verbunden ist.
  • Bei Schritt 1160 kann das Verfahren 1100 ein Empfangen der Sensordatenanforderung an dem Peripheriegerät umfassen. Das Peripheriegerät kann in einen RX-Modus wechseln, um zu Beginn einer durch ein Funkmelde-Interruptsignal angezeigten Taktsignalperiode des Peripheriegeräts auf die Sensordatenanforderung (z. B. eine Abfrageanforderung) zu warten und die Sensordatenanforderung bei Schritt 1160 zu empfangen.
  • Bei Schritt 1170 kann das Verfahren 1100 ein drahtloses Übertragen der angeforderten Sensordaten an das Endpunktgerät durch das Peripheriegerät umfassen. Die drahtlose Übertragung kann beispielsweise auf dem BLE-Protokoll basieren, das einen drahtlosen Transceiver verwendet, der in dem Endpunktgerät enthalten ist.
  • Bei Schritt 1180 kann das Verfahren 1100 das Empfangen der angeforderten Sensordaten am Endpunktgerät in Reaktion auf die in Schritt 1150 übertragene Sensordatenanforderung umfassen. Das Endpunktgerät kann die Sensordaten der Hostvorrichtung zur Verfügung stellen, indem es die Sensordaten beispielsweise in einem Register speichert, auf das die Hostvorrichtung bei Schritt 1190 vor Beginn des nächsten Hostvorrichtungstaktsignalzyklus zugreifen kann.
  • 12 zeigt ein vereinfachtes Flussdiagramm für das Verfahren 1200 zur Durchführung einer drahtlosen Datenübertragung zwischen einem Computer und mehreren Peripheriegeräten, gemäß einiger Beispiele. Das Verfahren 1200 kann mit Hilfe einer Verarbeitungslogik ausgeführt werden, die Hardware (Schaltungen, spezielle Logik usw.), Software, die auf geeigneter Hardware (z. B. einem universellen Computersystem oder einem spezialisierten Gerät) läuft, Firmware (eingebettete Software) oder eine beliebige Kombination davon umfassen kann. Bei einigen Beispielen kann das Verfahren 1200 beispielsweise von einem einzigen Endpunktgerät eines einzigen Dongles durchgeführt werden (z. B. Endpunktgerät 414 des Dongles 950 aus 9), und das einzige Endpunktgerät ist über eine einzige Verbindung (z. B. einen USB-Bus) mit einer Hostvorrichtung des Computers verbunden. Bei einigen Beispielen kann das Verfahren 1200 auch von mehreren Endpunktgeräten eines einzigen Dongles oder von mehreren Dongles durchgeführt werden, wobei jedes der mehreren Endpunktgeräte über eine Verbindung mit einer Hostvorrichtung verbunden ist. Das Verfahren 1200 kann beispielsweise mit den vorstehend unter Bezugnahme auf 7A, 7B und 8 - 10 beschriebenen Techniken implementiert werden.
  • Bei Schritt 1210 kann das Verfahren 1200 das Herstellen eines ersten Funkkanals mit einem ersten Peripheriegerät unter Verwendung eines ersten Transceivers eines ersten Endpunktgerätes umfassen, wobei das erste Endpunktgerät über eine erste Verbindung mit einer Hostvorrichtung verbunden ist. Der erste Funkkanal kann ein BLE-Funkkanal sein.
  • Bei Schritt 1220 kann das Verfahren 1200 das Herstellen eines zweiten Funkkanals mit einem zweiten Peripheriegerät unter Verwendung eines zweiten Transceivers eines zweiten Endpunktgerätes umfassen, wobei das zweite Endpunktgerät über eine zweite Verbindung mit der Hostvorrichtung verbunden ist. Der zweite Funkkanal kann ebenfalls ein BLE-Funkkanal sein.
  • Bei einigen Beispielen können die beiden Funkkanäle mit demselben Satz von Trägerfrequenzen eingerichtet werden, und die beiden Transceiver können so gesteuert werden, dass sie Daten über die Funkkanäle einem Zeitmultiplex (TDMA)-Verfahren entsprechend unter Verwendung einer Trägerfrequenz senden und empfangen, wobei die ersten Sensordaten und die zweiten Sensordaten von dem Endpunktgerät innerhalb verschiedener Übertragungsperioden empfangen werden. Bei einigen Beispielen können die beiden Funkkanäle unter Verwendung unterschiedlicher Trägerfrequenzsätze eingerichtet werden. Die beiden Transceiver können so gesteuert werden, dass die Daten über die Funkkanäle einem Frequenzmultiplex (FDMA)-Verfahren entsprechend gesendet und empfangen werden. Bei einigen Beispielen können die beiden Transceiver auch so gesteuert werden, dass sie Daten über die Funkkanäle einem hybriden TDMA- und FDMA-Verfahren gemäß senden und empfangen. Beispielsweise können die beiden Transceiver auch so gesteuert werden, dass sie Daten über die Funkkanäle mit unterschiedlichen Frequenzsprungsequenzen senden und empfangen, sodass die beiden Transceiver zum Senden und Empfangen von Daten beispielsweise zu jedem Zeitpunkt Träger unterschiedlicher Frequenzen verwenden, die beiden Transceiver können zum Senden und Empfangen von Daten jedoch auch Träger derselben Frequenz verwenden, wenn auch zu unterschiedlichen Zeiten.
  • Bei einigen Beispielen können die beiden drahtlosen Transceiver durch ein einziges Endpunktgerät und/oder eine einzige Steuerschaltung so gesteuert werden, dass das erste Endpunktgerät und das zweite Endpunktgerät identisch sind, und die erste Verbindung und die zweite Verbindung identisch sind, wobei das einzige Endpunktgerät den Aufbau der Funkkanäle an den beiden drahtlosen Transceivern koordinieren kann, um Überschneidungen und Störungen zwischen den beiden Funkkanälen zu minimieren. Bei einigen Beispielen können die beiden drahtlosen Transceiver von zwei separaten Endpunktgeräten gesteuert werden, und die beiden Endpunktgeräte können Informationen zu den jeweiligen Funkkanälen austauschen, sodass mindestens eines der Endpunktgeräte seinen jeweiligen Funkkanal anpassen kann, um Überschneidungen und Störungen zu minimieren. Beispielsweise kann das erste Endpunktgerät an das zweite Endpunktgerät Informationen über eine erste Frequenzsprungsequenz übertragen, die am ersten drahtlosen Transceiver für den ersten Funkkanal implementiert werden soll. Das zweite Endpunktgerät kann die zweite Frequenzsprungsequenz für den zweiten Funkkanal auf Basis der ersten Frequenzsprungsequenz bestimmen, um Überlappungen und Störungen zwischen den beiden Funkkanälen zu reduzieren oder zu eliminieren, sodass zu jedem Zeitpunkt innerhalb der Übertragungsperiode die ersten Sensordaten unter Verwendung einer anderen drahtlosen Trägerfrequenz als die zweiten Sensordaten empfangen werden. Der Informationsaustausch kann während der Inbetriebnahme und/oder während der drahtlosen Datenübertragung erfolgen.
  • Gemäß einiger Aspekte wird der erste Transceiver betrieben, um den ersten Funkkanal unter Verwendung eines ersten drahtlosen Protokolls einzurichten. Der zweite Transceiver wird betrieben, um den zweiten Funkkanal unter Verwendung eines zweiten drahtlosen Protokolls einzurichten. Das erste und zweite drahtlose Protokoll können das gleiche Protokoll oder verschiedene Protokolle sein, einschließlich z.B. BLE.
  • Bei Schritt 1230 kann das Verfahren 1200 ein Empfangen erster Daten über den ersten Funkkanal durch das erste Endpunktgerät unter Verwendung des ersten Transceivers umfassen. Die ersten Daten können beispielsweise Sensordaten umfassen, die eine Bewegung einer Maus in x- und y-Richtung angeben.
  • Bei Schritt 1240 kann das Verfahren 1200 ein Empfangen von zweiten Daten über den zweiten Funkkanal durch das zweite Endpunktgerät unter Verwendung des zweiten Transceivers umfassen. Die zweiten Daten können z. B. Audio-/Video-Stream-Daten umfassen.
  • Bei Schritt 1250 kann das Verfahren 1200 umfassen, dass das erste Endpunktgerät die ersten Daten über die erste Verbindung der Hostvorrichtung zur Verfügung stellt. Beispielsweise kann das erste Endpunktgerät die ersten Daten in einem Register speichern, auf das die Hostvorrichtung Zugriff hat, die die ersten Daten anschließend aus dem Register bezieht.
  • Bei Schritt 1260 kann das Verfahren 1200 umfassen, dass das zweite Endpunktgerät die zweiten Daten über die zweite Verbindung der Hostvorrichtung zur Verfügung stellt. Beispielsweise kann das zweite Endpunktgerät die zweiten Daten in einem Register speichern, auf das die Hostvorrichtung Zugriff hat, die die zweiten Daten anschließend aus dem Register bezieht.
  • Zusammenfassend lässt sich sagen, dass die vorliegende Erfindung Techniken für eine drahtlose Kommunikation angibt. Ein System umfasst einen drahtlosen Transceiver und einen Hardwareprozessor, die zum Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von einer Hostvorrichtung ausgebildet sind. Das System und die Hostvorrichtung können über eine drahtgebundene Verbindung verbunden sein, wobei andere Verbindungsarten möglich sind. Sie können ferner zum Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunktgerätetaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunktgerätetaktsignal ausgebildet sein. Sie können ferner ein Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung ausgebildet sein. Sie können ferner zum Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers ausgebildet sein. Außerdem können sie zum Empfangen der Sensordaten von dem Peripheriegerät und zum Bereitstellen der Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer ausgebildet sein.
  • Andere Variationen liegen im Erfindungsgedanken der vorliegenden Offenbarung. Auch wenn die offenbarten Techniken verschiedenen Modifikationen und alternativen Ausgestaltungen zugänglich sind, sind in den Figuren bestimmte Ausführungsformen der dargestellten Techniken veranschaulicht und diese sind vorstehend ausführlich beschrieben. Es wird jedoch darauf hingewiesen, dass nicht beabsichtigt ist, die Offenbarung auf die offenbarte(n) Form(en) zu beschränken, sondern im Gegenteil, dass beabsichtigt ist, alle Änderungen, alternativen Konstruktionen und Äquivalente abzudecken, die unter den Erfindungsgedanken und den Umfang der Offenbarung fallen, wie sie in den beigefügten Ansprüchen definiert sind. Es können beispielsweise alle Ausführungsformen, alternativen Ausführungsformen usw. und deren Konzepte auf alle anderen beschriebenen und/oder im Erfindungsgedanken und Umfang der Offenbarung liegenden Ausführungsformen angewendet werden.
  • Die Verwendung der Begriffe „ein“ und „eine“ und „der“, „die“ und „das“ und ähnliche Verweise im Zusammenhang mit der Beschreibung der offenbarten Ausführungsformen (insbesondere im Zusammenhang mit den folgenden Ansprüchen) ist so auszulegen, dass sie sowohl den Singular als auch den Plural abdecken, sofern hier nichts anderes angegeben ist oder sich aus dem Kontext eindeutig etwas anderes ergibt. Die Begriffe „umfassend“, „aufweisend“, „einschließend“ und „enthaltend“ sind als nicht abschließende Begriffe zu verstehen (d. h. sie bedeuten „enthaltend, aber nicht darauf beschränkt “), sofern nichts anderes angegeben ist. Der Begriff „verbunden“ ist als ganz oder teilweise enthalten in, angebracht an oder verbunden mit zu verstehen, auch wenn sich etwas dazwischen befindet. Der Ausdruck „auf Basis von“ sollte als nicht abgeschlossen und in keiner Weise einschränkend verstanden werden und ist dazu bestimmt, als „zumindest teilweise auf Basis von“ interpretiert oder andernfalls gelesen zu werden, wo dies angemessen ist. Die Anführung von Wertebereichen soll hier lediglich als Kurzform für die individuelle Bezugnahme auf jeden einzelnen in den Bereich fallenden Wert dienen, sofern hier nichts anderes angegeben ist, und jeder einzelne Wert gilt als so in die Beschreibung aufgenommen, als wäre er hier einzeln aufgeführt. Alle hier beschriebenen Verfahren können in jeder geeigneten Reihenfolge ausgeführt werden, sofern hier nichts anderes angegeben ist oder sich aus dem Kontext eindeutig etwas anderes ergibt. Die Verwendung aller hier enthaltenen Beispiele oder exemplarischen Formulierungen (z. B. „beispielsweise wie“) zielt lediglich darauf ab, die Ausführungsformen der Offenbarung besser zu erläutern und stellt keine Einschränkung für den Umfang der Offenbarung dar, sofern nichts anderes beansprucht wird. Keine der Aussagen in der Beschreibung sind so auszulegen, dass sie ein nicht beanspruchtes Element als wesentlich für die Ausführung der Offenbarung angeben.

Claims (20)

  1. System, das aufweist: einen drahtlosen Transceiver; eine Speichervorrichtung zum Speichern eines Satz von Anweisungen; und einen Hardwareprozessor, der zum Ausführen des Satzes von Anweisungen ausgebildet ist, um durchzuführen: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von einer Hostvorrichtung, wobei das System und die Hostvorrichtung über eine drahtgebundene Verbindung verbunden sind; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunktgerätetaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunktgerätetaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung; Übertragen der Sensordatenanforderung an das Peripheriegerät zum ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers; Empfangen der angeforderten Sensordaten von dem Peripheriegerät; und zur Verfügung stellen der angeforderten Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer.
  2. System nach Anspruch 1, wobei der Hardwareprozessor ferner ausgebildet ist zum: Bestimmen eines zweites Zeitpunktes, zu dem das System eine Leseanforderung für die Sensordaten von der Hostvorrichtung empfangen soll, auf Basis des Hostvorrichtungstaktsignals, wobei der erste Zeitpunkt zum Beziehen der Sensordaten von dem Peripheriegerät so bestimmt wird, dass die Sensordaten von dem System vor dem zweiten Zeitpunkt bezogen werden.
  3. System nach Anspruch 1 oder 2, wobei der erste Hinweis auf das Hostvorrichtungstaktsignal zu einem dritten Zeitpunkt empfangen wird; und wobei der erste Zeitpunkt zum Übertragen der Sensordatenanforderung auf Basis des dritten Zeitpunktes und einer vorgegebenen Verzögerung zwischen dem Zeitpunkt, zu dem das System mit dem Beziehen der Sensordaten beginnt, und dem Zeitpunkt, zu dem die Sensordaten an dem System zur Übertragung über die drahtgebundene Verbindung verfügbar werden, bestimmt wird.
  4. System nach einem der Ansprüche 1 bis 3, wobei das Übertragen der Sensordatenanforderung an das Peripheriegerät das Übertragen einer Abfrageanforderung durch das System an das Peripheriegerät unter Verwendung des drahtlosen Transceivers umfasst; wobei der Hardwareprozessor ferner ausgebildet ist zum: Empfangen einer die Sensordaten enthaltenden Abfrageantwort von dem Peripheriegerät unter Verwendung des drahtlosen Transceivers; und Verarbeiten der Abfrageantwort zum Extrahieren der Sensordaten.
  5. System nach Anspruch 4, wobei das Peripheriegerät durch Übertragen der Abfrageanforderung an das Peripheriegerät zum ersten Zeitpunkt zumindest einen der folgenden Zeitpunkte bestimmen kann: einen dritten Zeitpunkt zum Beziehen der nächsten Sensordaten und einen vierten Zeitpunkt zum Abwarten einer nächstfolgenden Abfrageanforderung für eine Übertragung der nächsten Sensordaten von dem Peripheriegerät.
  6. System nach Anspruch 5, wobei die Abfrageanforderung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals umfasst, um den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder den vierten Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät zu bestimmen.
  7. System nach Anspruch 5 oder 6, wobei der Hardwareprozessor ferner ausgebildet ist zum: Bestimmen einer Änderung der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal; und, wenn bestimmt wird, dass die Änderung der Phasenbeziehung einen Schwellwert überschreitet, zum: Erzeugen einer Anweisung, die Informationen über die Änderung der Phasenbeziehung enthält; und Übertragen der Anweisung an das Peripheriegerät unter Verwendung des drahtlosen Transceivers, damit das Peripheriegerät den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder den vierten Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät aktualisieren kann.
  8. System nach Anspruch 7, wobei die Anweisung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals umfasst und angibt, wann der dritte Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder der vierte Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät zu aktualisieren ist.
  9. System nach einem der Ansprüche 1 bis 8, wobei der Hardwareprozessor ferner ausgebildet ist zum: Empfangen einer Anforderung von dem Peripheriegerät zum Aufbau eines Funkkanals unter Verwendung des drahtlosen Transceivers; und Senden einer Bestätigung an das Peripheriegerät unter Verwendung des drahtlosen Transceivers zu einem zweiten Zeitpunkt, der auf Basis eines dritten Zeitpunkts bestimmt wird, zu dem der erste Hinweis auf das Hostvorrichtungstaktsignal erhalten wird.
  10. System nach einem der Ansprüche 1 bis 9, wobei: das Peripheriegerät ein erstes Peripheriegerät ist; die Sensordaten erste Sensordaten sind; der Hardwareprozessor ferner ausgebildet ist zum: Bestimmen eines zweiten Zeitpunktes für den Beginn eines Bezugs von zweiten Sensordaten von einem zweiten Peripheriegerät, wobei der zweite Zeitpunkt ebenfalls auf Basis der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal bestimmt wird; und Beginnen mit dem Beziehen der zweiten Sensordaten von dem zweiten Peripheriegerät zu dem bestimmten zweiten Zeitpunkt.
  11. System nach einem der Ansprüche 1 bis 10, wobei der erste Hinweis auf das Hostvorrichtungstaktsignal ein Interruptsignal umfasst.
  12. System nach einem der Ansprüche 1 bis 11, wobei die drahtgebundene Verbindung einen oder mehrere Universal Serial Busse (USB) umfasst.
  13. System, insbesondere in Kombination mit einem System nach einem der Ansprüche 1 bis 12, wobei das System umfasst: einen drahtlosen Transceiver; einen Sensor; eine Speichervorrichtung zum Speichern eines Satzes von Anweisungen; und einen Hardwareprozessor, der zum Ausführen des Satzes von Anweisungen ausgebildet ist, um durchzuführen: Empfangen einer Sensordatenanforderung von einem mit einem Computer verbundenen Endpunktgerät zu einem ersten Zeitpunkt unter Verwendung des drahtlosen Transceivers; Bestimmen eines zweiten Zeitpunktes zum Empfangen einer nächstfolgenden Sensordatenanforderung auf Basis des ersten Zeitpunktes; Bestimmen einer mit dem Beziehen von Sensordaten von einem Sensor in Zusammenhang stehenden Verzögerung; Bestimmen eines dritten Zeitpunktes für den Beginn eines Bezugs der Sensordaten von dem Sensor auf Basis der Verzögerung und des zweiten Zeitpunktes; Beziehen der Sensordaten von dem Sensor zum dritten Zeitpunkt; und Übertragen der Sensordaten an das Endpunktgerät unter Verwendung des drahtlosen Transceivers als Eingabedaten für den Computer.
  14. System nach Anspruch 13, wobei das Endpunktgerät über eine drahtgebundene Verbindung mit einer Hostvorrichtung verbunden ist; und wobei der erste Zeitpunkt auf Basis einer Phasenbeziehung zwischen einem der Hostvorrichtung bereitgestellten Hostvorrichtungstaktsignal und einem dem Endpunktgerät bereitgestellten Endpunktgerätetaktsignal bestimmt wird.
  15. System nach Anspruch 14, wobei der Hardwareprozessor ferner ausgebildet ist zum: Empfangen einer Informationen über eine Änderung der Phasenbeziehung enthaltende Anweisung von dem Endpunktgerät; und Bestimmen des dritten Zeitpunktes für den Beginn eines Bezugs von Sensordaten von dem Sensor auf Basis der Anweisung.
  16. System nach Anspruch 15, wobei die Anweisung ferner Informationen zur Genauigkeit des Hostvorrichtungstaktsignals umfasst; und wobei der dritte Zeitpunkt zum Beginn eines Bezugs der Sensordaten auf Basis der Genauigkeitsinformationen bestimmt wird.
  17. System nach einem der Ansprüche 13 bis 16, wobei der erste Zeitpunkt basierend darauf bestimmt wird, wann das Endpunktgerät von einer Hostvorrichtung eine Leseanforderung für die Sensordaten empfangen soll.
  18. System, insbesondere in Kombination mit einem System nach einem der Ansprüche 1 bis 17, wobei das System aufweist: einen Dongle, der mit einer Hostvorrichtung eines Computers über eine drahtgebundene Verbindung verbunden ist; und ein Peripheriegerät; wobei der Dongle ausgebildet ist zum: Empfangen eines ersten Hinweises auf ein Hostvorrichtungstaktsignal von der Hostvorrichtung; Bestimmen einer Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und einem Endpunkttaktsignal auf Basis des ersten Hinweises und eines zweiten Hinweises auf das Endpunkttaktsignal; Bestimmen eines ersten Zeitpunktes zum Übertragen einer Sensordatenanforderung an ein Peripheriegerät eines Computers zumindest auf Basis der Phasenbeziehung; und Übertragen der Sensordatenanforderung zum ersten Zeitpunkt drahtlos an das Peripheriegerät; wobei das Peripheriegerät ausgebildet ist zum: Beziehen von Sensordaten zu einem zweiten Zeitpunkt, der auf Basis einer mit dem Bezug der Sensordaten in Zusammenhang stehenden Verzögerung und auf Basis dessen bestimmt wird, wann die Sensordatenanforderung des Dongles ankommen soll; Empfangen der Sensordatenanforderung drahtlos von dem Dongle; und Senden der angeforderten Sensordaten drahtlos in Reaktion auf die Sensordatenanforderung; und wobei der Dongle ferner ausgebildet ist zum: drahtlosen Empfangen der angeforderten Sensordaten von dem Peripheriegerät; und zur Verfügung stellen der angeforderten Sensordaten für die Hostvorrichtung über die drahtgebundene Verbindung als Eingabedaten für den Computer.
  19. System nach Anspruch 18, wobei das Übertragen der Sensordatenanforderung an das Peripheriegerät das Übertragen einer Abfrageanforderung umfasst; wobei der Dongle ferner ausgebildet ist zum: Empfangen einer die Sensordaten enthaltenden Abfrageantwort von dem Peripheriegerät; und Verarbeiten der Abfrageantwort zum Extrahieren der Sensordaten.
  20. System nach Anspruch 18 oder 19, wobei der Dongle ferner ausgebildet ist zum: Bestimmen einer Änderung der Phasenbeziehung zwischen dem Hostvorrichtungstaktsignal und dem Endpunktgerätetaktsignal; und wenn bestimmt, dass die Änderung der Phasenbeziehung einen Schwellwert überschreitet, zum: Erzeugen einer Anweisung, die Informationen über die Änderung der Phase enthält; und Übertragen der Anweisung an das Peripheriegerät, damit das Peripheriegerät den dritten Zeitpunkt zum Beziehen der nächsten Sensordaten von und/oder den vierten Zeitpunkt zum Abwarten einer nächsten Abfrageanforderung an dem Peripheriegerät aktualisieren kann.
DE102019119284.6A 2018-07-16 2019-07-16 Drahtlose Kommunikation mit Peripheriegeräten Pending DE102019119284A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/036,734 2018-07-16
US16/036,734 US10713185B2 (en) 2018-07-16 2018-07-16 Wireless communication with peripheral device

Publications (1)

Publication Number Publication Date
DE102019119284A1 true DE102019119284A1 (de) 2020-01-16

Family

ID=69138354

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019119284.6A Pending DE102019119284A1 (de) 2018-07-16 2019-07-16 Drahtlose Kommunikation mit Peripheriegeräten

Country Status (3)

Country Link
US (1) US10713185B2 (de)
CN (1) CN110727623B (de)
DE (1) DE102019119284A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11019585B1 (en) 2018-07-24 2021-05-25 Sprint Communications Company L.P. Network generated precision time
WO2021093586A1 (zh) * 2019-11-11 2021-05-20 北京嘀嘀无限科技发展有限公司 一种数据同步系统和方法
CN113760106B (zh) 2020-06-01 2024-02-13 华硕电脑股份有限公司 无线输入装置
WO2023039197A1 (en) * 2021-09-10 2023-03-16 Milwaukee Electric Tool Corporation Systems and methods for multi-channel power tool communication
WO2023096568A1 (en) * 2021-11-26 2023-06-01 Razer (Asia-Pacific) Pte. Ltd. System and method for facilitating data communication
US20230385824A1 (en) * 2022-05-30 2023-11-30 SafeMoon US, LLC Energy-to-Token Redistribution Systems and Methods for Wireless Network Access and Localized Blockchain Distributed Computing
CN115686630A (zh) * 2022-10-28 2023-02-03 龙芯中科(南京)技术有限公司 被控组件的控制方法、系统、电子设备及可读介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339395A (en) * 1992-09-17 1994-08-16 Delco Electronics Corporation Interface circuit for interfacing a peripheral device with a microprocessor operating in either a synchronous or an asynchronous mode
US6516362B1 (en) * 1999-08-23 2003-02-04 Advanced Micro Devices, Inc. Synchronizing data between differing clock domains
US7631076B2 (en) * 2004-03-16 2009-12-08 International Business Machines Corporation Apparatus, system, and method for adaptive polling of monitored systems
EP2790110A1 (de) * 2009-05-20 2014-10-15 Chronologic Pty Limited Präzisionssynchronisationsarchitektur für Superspeed-USB-Vorrichtungen
US8516290B1 (en) * 2010-02-02 2013-08-20 Smsc Holdings S.A.R.L. Clocking scheme for bridge system
US20120197729A1 (en) * 2011-01-30 2012-08-02 Unicous Marketing, Inc. Shelf-based promotion targeting
CN104391817B (zh) * 2014-12-03 2017-07-28 上海兆芯集成电路有限公司 与外围设备同步的电子系统
US9660656B2 (en) * 2015-04-15 2017-05-23 Sandisk Technologies Llc Delay compensation
US10140242B2 (en) * 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
US20170351472A1 (en) * 2016-06-03 2017-12-07 Logitech Europe S.A. Automatic data transfer in a multi-host flow-enabled system
US10430225B1 (en) * 2017-09-29 2019-10-01 Amazon Technologies, Inc. Traffic management on an interconnect

Also Published As

Publication number Publication date
CN110727623A (zh) 2020-01-24
CN110727623B (zh) 2024-02-02
US20200019517A1 (en) 2020-01-16
US10713185B2 (en) 2020-07-14

Similar Documents

Publication Publication Date Title
DE102019119284A1 (de) Drahtlose Kommunikation mit Peripheriegeräten
US9979998B1 (en) System for time synchronization of audio devices
DE112014004426T5 (de) Gerätesynchronisation über Bluetooth
US8539108B2 (en) Distributed robust clock synchronization
DE102015204865B4 (de) Synchronisierte Niedrigenergie-Erkennungstechnik
DE102005029440A1 (de) System und Verfahren zum Synchronisieren von Operationen einer Mehrzahl von Vorrichtungen über Meldungen über ein Kommunikationsnetzwerk
JP2016523409A (ja) 分散リアルタイムシステムにおける周期的なタスク上で適時にデータを受け渡す方法および装置
CN108401454B (zh) 事务调度方法、处理器、分布式系统和无人机
DE102018121389B4 (de) Bussystem
DE112019007808T5 (de) Kamera-synchronisation und bild-markieren für eine gesichtsauthentifizierung
DE112017004922T5 (de) Techniken für Zeitstempel mit geringem Stromverbrauch und hoher Genauigkeit
CN107003691B (zh) 用于基于全局时钟对计数器进行同步采样的技术
DE102017209132A1 (de) Sensordaten-Verarbeitungseinrichtung
US10230498B2 (en) Data acknowledgment to multiple devices
DE112016005989T5 (de) Zuverlässiges, ausserhalb der reihenfolge liegendes end-to-end-protokoll mit robustem fensterstatusüberlaufmanagement und einem mehrknotensystem durch verwenden desselben
DE112014006691B4 (de) Funkkommunikationssystem und Kommunikationsverfahren
CN108964825A (zh) 校时方法、校时装置和校时服务器
CN114449129B (zh) 多传感器时间同步方法和装置、电子设备和存储介质
US11853116B2 (en) Clock error-bound tracker
CN113765611B (zh) 时间戳确定方法及相关设备
DE102020118068A1 (de) Synchronisation eines netzwerkgeräts für die drahtlose kommunikation, insbesondere eines netzwerk-endgeräts, in einem drahtlosnetzwerk
DE112021005765T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
JP2015141679A (ja) データ収集システム
DE102023206312A1 (de) Begleitende metadaten für eine präzisions-zeit-protokoll (ptp) hardware-uhr
CN106714035B (zh) 音量调节方法、装置及终端

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication