Freigeben über


Bluetooth HFP-Umgehung des Audiostreamings

In diesem Artikel werden der Betrieb und die Theorie des Bluetooth Hands-free-Profils (HFP) im Zusammenhang mit Bypass-Audiostreaming erläutert.

Im Umgehungsmodus fließt der Bluetooth-Audiosteuerungspfad über eine andere Hardwareverbindung als die Hostcontrollerschnittstelle (HCI), z. B. I2S, an den Bluetooth-Controller. Diese andere Hardwareverbindung ist häufig I2S, kann jedoch eine beliebige Schnittstelle sein, die vom Bluetooth-Hostcontroller bestimmt wird. Diese Verbindung wird als "Bypass" oder "Sideband"-Verbindung bezeichnet.

Während Audio-E/A über die Bypassverbindung erfolgt, wird der über Funk synchronisierte Verbindungsdatenstrom nach wie vor über die HCI verwaltet. Windows 8 bietet einen Bluetooth Hands-Free Profile (HFP)-Treiber, um die Verwaltung der SCO-Verbindung und anderer Aspekte des Hands-Free-Profils zu vereinfachen. Ein benutzerdefinierter Audiotreiber steuert jedoch Audiodaten-E/A zwischen Windows und der Umgehungsverbindung.

Der HFP-Treiber und der benutzerdefinierte Steuertreiber für Audio-E/A-Daten verfügen über separate Rollen, die eine effiziente Kommunikation zwischen ihnen erfordern. Diese Kommunikation wird von einer Reihe von IOCTLs behandelt, die vom benutzerdefinierten Audiotreiber an den Windows HFP-Treiber übergeben werden.

In der Regel ist die Umgehungsverbindung immer vorhanden. Der Plug and Play -Dienst (PnP) listet die Hardware auf, die diese Verbindung enthält, und lädt den erforderlichen Audiotreiber. Das Audiosystem kann entweder HFP-Headsets gekoppelt haben oder nicht, und die Bypass-Verbindung ist nur dann nützlich, wenn mindestens ein HFP-Headset gekoppelt ist.

Für jedes gekoppelte HFP-Gerät registriert und aktiviert der Windows-HFP-Treiber eine Geräteschnittstelle in der GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS-Schnittstellenklasse. Die folgenden Bedingungen gelten für HFP-Geräte:

  • Wenn Windows den HFP-Treiber aktiviert (in der Regel beim Start), registriert und aktiviert der HFP-Treiber eine Schnittstelle für jedes gekoppelte HFP-Gerät.
  • Wenn ein HFP-Gerät zum ersten Mal mit einem bereits laufenden Windows gekoppelt wird, registriert der HFP-Treiber eine Schnittstelle für das Gerät und aktiviert sie.
  • Wenn n-gekoppelte HFP-Geräte vorhanden sind, registriert der Windows-HFP-Treiber n Instanzen der Geräteschnittstelle.
  • Wenn ein gekoppeltes HFP-Gerät entfernt wird, deaktiviert der Windows-HFP-Treiber die Geräteschnittstelle.
  • Wenn Windows den HFP-Treiber beendet (normalerweise während des Herunterfahrens oder Neustarts), deaktiviert der HFP-Treiber die Schnittstelle für jedes gekoppelte HFP-Gerät.
  • Der Audiotreiber muss mehrere An- und Abgänge von Schnittstellen jederzeit verarbeiten, nicht nur während des Starts oder Herunterfahrens.

Verwalten von I2S- und SCO-Ressourcen

In diesem Abschnitt werden die Annahmen erläutert, die im Zusammenhang mit der Unterstützung von Audiostreaming mit Bluetooth-Bypass im Entwurf gemacht wurden.

Derzeit geht Windows davon aus, dass nur ein Bluetooth-Hostcontroller vorhanden ist. Darüber hinaus geht die Hands-Free Profile (HFP)-synchrone verbindungsorientierte (SCO)-Umgehungsunterstützung davon aus, dass nur eine Umgehungsverbindung vorhanden ist, und jeder Kanal, der über die HFP-Gerätetreiberschnittstelle geöffnet wird, ist dieser einzelnen Verbindung zugeordnet.

Audiotreiber sollten diesen Kanal und die Bypassverbindung für einen einzelnen Verbraucher auf First-Come-First-Serve-Basis verwalten. Die einfachste Möglichkeit, dies zu erreichen, besteht darin, dass der Treiber nur einen einzigen Filter zulässt, um seine Pins in den ACQUIRE-Zustand zu überstellen.

Siehe auch

Die folgenden Themen enthalten weitere Informationen zum Lebenszyklus der Verbindung und zu einigen Designfeatures eines HFP-Geräts und seines Audiotreibers: