-
Hintergrund
-
Die vorliegende Erfindung betrifft Techniken zum Zusammenführen von Daten zur Übertragung in einem Bluetooth-System, und insbesondere Techniken zum Durchführen einer derartigen Zusammenführung auf Schichten unterhalb der L2CAP-Schicht.
-
Das Bluetooth-Funksystem ist ein Satz von Standards, der den Betrieb von Funkvorrichtungen festlegt, so dass die Kommunikation zwischen Vorrichtungen auf eine standardisierte Weise aufgebaut werden kann.
-
Als Teil der Bluetooth-Standards ist der Bluetooth-Stapel definiert, der ein Satz von Schichten ist, durch den Daten gereicht werden, wobei jede Schicht spezielle Funktionen durchführt, um sicherzustellen, dass eine Kommunikationsverbindung funktioniert. Die Schichten des Stapels können in einer einzelnen Vorrichtung implementiert werden, können aber auch zwischen Vorrichtungen aufgeteilt werden.
-
Es ist eine übliche Anforderung, eine einzige Bluetooth-Funkverbindung zwischen verschiedenen Datenquellen oder -senken gemeinsam zu benutzen. Die L2CAP-Schicht des Bluetooth-Stapels stellt das Multiplexen von Daten auf eine einzige Funkverbindung bereit. Falls der Bluetooth-Stapel jedoch über mehr als eine Vorrichtung verteilt ist, kann die L2CAP-Schicht des Bluetooth-Stapels in einer Vorrichtung implementiert sein, die nicht auf geeignete Weise Daten von anderen Vorrichtungen zum Multiplexen annehmen kann.
-
Die Aufgabe der Erfindung besteht deshalb darin ein Multiplexen auf einer Bluetooth-Verbindung zu erlauben, ohne dass ein Zugriff auf die L2CAP-Schicht des Bluetooth-Stapels benötigt wird.
-
Die
US 2010/0167652 A1 offenbart eine Kommunikationsvorrichtung und ein entsprechendes Kommunikationsverfahren. Die Kommunikationsvorrichtung umfasst einen Kommunikationschip, einen Hostprozessor, einen Audioprozessor und einen Schalter. Der Hostprozessor umfasst ein Kommunikationsprotokollmodul und ein Kopfhörerprofilmodul. Der Audioprozessor umfasst ein Audioprofilmodul. Das Kommunikationsprotokollmodul unterstützt ein Kommunikationsprotokoll, das ein Kopfhörerprofil, ein Audioprofil und weitere Profile umfasst. Das Kommunikationsprotokollmodul baut eine erste Verbindung mit einem drahtlosen Kopfhörer auf. Das Kopfhörerprofilmodul unterstützt das Kopfhörerprofil. Das Audioprofilmodul unterstützt das Audioprofil. Der Schalter verbindet wahlweise und elektrisch den Kommunikationschip mit dem Hostprozessor oder dem Audioprozessor. Wenn der Audioprozessor eine Musikabspielprozedur ausführt, unterbricht das Kommunikationsprotokollmodul die erste Verbindung. Nach Aufbau einer zweiten Verbindung mit dem drahtlosen Kopfhörer, gibt das Audioprofilmodul ein Musikpaket an den Kommunikationschip aus.
-
Misic, J. et al. beschreiben in ”TCP Traffic In Bluetooth 1.2: Performance And Dimensioning of Flow Control” in IEEE Wireless Communications and Networking Conference, Bd. 3, pp. 1798–1804, März 2005 eine Bluetooth Datenübertragungs-Vorrichtung, wobei eine Flusssteuerung in der L2CAP-Schicht mittels eines Token-Bucket-Verfahrens realisiert wird.
-
Die
US 2003/0163619 A1 beschreibt eine Vorrichtung und ein Verfahren zur Puffersteuerung, die Systemstabilität und -effizienz gewährleisten. Die Puffersteuerung umfasst eine Steuervorrichtung, die ausgelegt ist, einem Puffer Daten zuzuweisen, die durch jede einer Vielzahl von Verbindungen übertragen werden, sowie eine Einstellvorrichtung, die ausgelegt ist, einen oberen Grenzwert für die Anzahl der Puffer einzustellen, die jeder Verbindung zugewiesen werden. Die Steuervorrichtung weist einen Puffer in einem Bereich zu, der nicht größer ist als der obere Grenzwert, der von der Einstellvorrichtung eingestellt wurde. Die Einstellvorrichtung stellt den oberen Grenzwert ein auf der Grundlage der Gesamtzahl zuweisbarer Puffer und eines von entweder (1) der Anzahl an Verbindungen, durch die Daten übertragen werden, oder (2) die Anzahl an Verbindungen, durch die Daten übertragen werden, die Daten aufweisen, die bereit sind, übertragen zu werden.
-
Die
US 2004/0198223 A1 offenbart eine Flusssteuerung in einem drahtlosen Bluetooth-Kommunikationssystem. Die Flusssteuerung wird in einem drahtlosen Bluetooth-Kommunikationssystem erreicht durch Bereitstellen eines Pufferspeichers, der von einer Anwendungsschicht und einer L2CAP-Schicht geteilt wird. Der Pufferspeicher wird aus der L2CAP-Schicht verwaltet, um eine robuste und stabile Flusssteuerung bereitzustellen, insbesondere in einer Mehrkanalumgebung.
-
Die
US 2004/0042440 A1 offenbart eine erste drahtlose Vorrichtung, die physisch von einer zweiten drahtlosen Vorrichtung getrennt ist. Der erste Sendeempfänger kann zu und von dem zweiten Sendeempfänger mehrere Dateneinheiten drahtlos senden bzw. empfangen. Beispiele für Dateneinheiten umfassen Datenpakete, die Steuerinformationen, Daten oder andere Medien (z. B. Video, Audio), Sicherheitsdaten oder Datenintegritätsbits über eine drahtlose Kurzstrecken-Kommunikationsverbindung übermitteln können.
-
Die
US 2009/0232041 A1 offenbart ein Verfahren und ein System zum Bekanntmachen eines Bluetooth-Multicast Dienstes. Die Anwendungen und höheren Protokollschichten können geeignete Logik und/oder Code umfassen, die wahlweise benutzt werden können, um verschiedenen Anwendungen, einschließlich alten und neuen Anwendungen zu ermöglichen, Daten unter Verwendung der Bluetooth-Drahtlostechnologie auszutauschen. Die Anwendungen und höheren Protokollschichten und können Bluetooth-spezifische Protokolle wie zum Beispiel RFCOMM und SDP und andere Protokolle umfassen. Das Bluetooth L2CAP-Protokoll kann geeignete Logik und/oder Code umfassen, die Multiplexing, Paketsegmentierung und -wiederzusammenbau und die Übertragung von QoS-Informationen auf Protokollen höherer Ebenen zu unterstützen.
-
Die
US 2008/0287063 A1 offenbart einen Controller-integrierten Audio Codec. Sie offenbart ferner eine Bluetooth-Datenübertragung mit einer Integration des L2CAP-Packaging von einem Audio- sowie einem Steuerungsstream im Bluetooth-Controller.
-
Die
US 2007/0049196 A1 offenbart eine Bluetooth Audio-/Video-Übertragung mit Multiplexing und QoS in der L2CAP-Schicht, wobei aber keine Flusssteuerung verwendet wird.
-
Kurzfassung
-
Diese Kurzfassung wird bereitgestellt, um eine Auswahl von Konzepten in einer vereinfachten Form einzuführen, die weiter in der detaillierten Beschreibung unten beschrieben werden. Diese Kurzfassung soll keine Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Gegenstands identifizieren, noch soll sie als ein Hilfsmittel benutzt werden, um den Schutzbereich des beanspruchten Gegenstands zu bestimmen.
-
Es wird eine Vorrichtung bereitgestellt, die ein erstes Verarbeitungssystem umfasst zum Bereitstellen der Funktionalität der oberen Schichten eines Bluetooth-Stapels einschließlich einer ersten L2CAP-Schicht, einen Bluetooth-Controller zum Bereitstellen der Funktionalität der unteren Schichten des Bluetooth-Stapels, wobei das erste Verarbeitungssystem und der Bluetooth-Controller durch eine Host-Controller-Schnittstelle (HCl) verbunden sind, ein zweites Verarbeitungssystem, das eine Implementierung einer zweiten L2CAP-Schicht zur Datenübertragung zum Bluetooth-Controller zur Übertragung über eine vom ersten Verarbeitungssystem und der ersten L2CAP-Schicht aufgebauten Bluetooth-Verbindung umfasst, und wobei das erste Verarbeitungssystem ausgelegt ist, Flusssteuerungstoken zwischen der ersten und der zweiten L2CAP-Schicht zu verteilen, wobei beide Schichten Daten zu einer entfernten Vorrichtung unter Verwendung der Bluetooth-Verbindung übertragen können.
-
Es wird auch ein Verfahren bereitgestellt zum Multiplexen von Daten in einem Bluetooth-Sender, wobei der Sender ein erstes Verarbeitungssystem umfasst, das die Funktionalität der oberen Schichten eines Bluetooth-Stapels einschließlich einer ersten L2CAP-Schicht bereitstellt, einen Bluetooth-Controller zum Bereitstellen der Funktionalität der unteren Schichten des Bluetooth-Stapels sowie ein zweites Verarbeitungssystem, das eine Implementierung einer zweiten L2CAP-Schicht umfasst, wobei das Verfahren die Schritte umfasst, dass das erste Verarbeitungssystem vom Bluetooth-Controller eine Angabe verfügbarer Kapazität empfängt; und das erste Verarbeitungssystem die Angabe verfügbarer Kapazität vom Bluetooth-Controller benutzt, um eine verfügbare Kapazität der ersten und der zweiten L2CAP-Schicht anzugeben.
-
Die bevorzugten Merkmale können gegebenenfalls kombiniert werden, wie es für einen Fachmann offensichtlich wäre, und können mit beliebigen Aspekten der Erfindung kombiniert werden.
-
Kurze Beschreibung der Zeichnungen
-
Ausführungsformen der Erfindung werden beispielhaft unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen:
-
1 ein Schaubild des Bluetooth-Stapels zeigt;
-
2 ein Schaubild eines Bluetooths-Stapels zeigt, der zwischen den zwei Vorrichtungen auf der HCl-Schicht aufgeteilt ist;
-
3 eine Schemazeichnung einer Vorrichtung zeigt, die einen Bluetooth-Stapel zwischen zwei Vorrichtungen aufweist;
-
4 eine Schemazeichnung einer Bluetooth-Vorrichtung zum Multiplexen von Daten zeigt; und
-
5 ein Flussdiagramm eines Verfahrens zum Multiplexen von Daten in einem Bluetooth-Stapel zeigt.
-
Gemeinsame Bezugszeichen werden in den Figuren benutzt, um ähnliche Merkmale zu bezeichnen.
-
Detaillierte Beschreibung
-
Ausführungsformen der vorliegenden Erfindung werden unten nur beispielhaft beschrieben. Diese Beispiele stellen die besten Möglichkeiten dar, die Erfindung in die Praxis umzusetzen, die dem Anmelder gegenwärtig bekannt sind, obwohl sie nicht die einzigen Möglichkeiten sind, auf die dies erreicht werden könnte. Die Beschreibung legt die Funktionen des Beispiels und die Abfolge von Schritten zum Konstruieren und Betreiben des Beispiels dar. Jedoch können dieselben oder äquivalente Funktionen und Abfolgen durch verschiedene Beispiele erzielt werden.
-
1 zeigt ein Schaubild eines Bluetooth-Stapels. 2 zeigt ein Schaubild einer Bluetooth-Stapelimplementierung, in der die L2CAP- und höhere Schichten sich auf einem Host-Prozessor befinden und die unteren Schichten sich auf einem separaten Prozessor befinden, zum Beispiel einem Mikrochip, der Bluetooth-Dienste bereitstellt (der Bluetooth-Controller). Die zwei Schichten sind durch die Host-Controller-Schnittstelle (HCl) verbunden.
-
3 zeigt eine Schemazeichnung einer Vorrichtung, auf der die Stapelimplementierung von 2 benutzt werden kann. Eine Vorrichtung 300 umfasst einen Hostprozessor 301, einen Bluetooth-Controller 302 und einen DSP (digitaler Signalprozessor) 303. Der Hostprozessor 301 ist ein Allzweckprozessor zum Bereitstellen der Vorrichtung, zum Beispiel ein Mobiltelefon mit seiner Funktionalität. Der Allzweck-Hostprozessor 301 kann bei speziellen Aufgaben ineffizient sein, zum Beispiel beim Dekodieren komprimierter Audiodaten zur Wiedergabe über eine Bluetooth-Verbindung. Jedoch kann der DSP 303 ausgelegt sein, um derartige Aufgaben effizienter durchzuführen, wodurch der Energieverbrauch verringert wird. Um die dekodierte Audioinformationen (oder andere vom DSP erzeugte Daten) über die Bluetooth-Verbindung zu senden, benötigt der DSP 303 Zugriff auf den Bluetooth-Stapel bei einer geeigneten Schicht, um die Audiodaten in den Bluetooth-Datenfluss zu multiplexen. Die L2CAP-Schicht ist der logische Punkt in einem Bluetooth-System, um dieses Multiplexen durchzuführen, da diese Schicht für das Bilden von Datenverbindungen mit entfernten Vorrichtungen verantwortlich ist. Jedoch liegt diese Schicht auf dem Hostprozessor und daher muss der DSP mit dem Host verbunden sein und der Host muss aktiv sein, um die Daten zu akzeptieren und zu verarbeiten.
-
Während der DSP 303 für eine Audio-Wiedergabe benutzt wird, ist es möglich, dass der Hostprozessor sehr wenig, oder keine, andere Verarbeitung durchführt und so teilweise oder vollständig zum Schlafen geschickt werden könnte, um Leistung zu sparen. Jedoch muss der Host wach bleiben, um die L2CAP-Funktionalität zum Multiplexen bereitzustellen. Wie oben erläutert, gibt es deshalb Bedarf nach einer Technik, um ein Multiplexen unterhalb der L2CAP-Schicht zu ermöglichen. Dies ist im Allgemeinen nicht einfach zu implementieren, da Datenverbindungen im Bluetooth-Standard 1:1 unterhalb der L2CAP-Schicht sind, wodurch sich das Multiplexen in diese Datenverbindungen schwierig gestaltet, während Flusssteuerung und Verbindungsintegrität erhalten werden.
-
Eine Modifizierung der Host-L2CAP-Implementierung ist oft schwierig, da die Schicht sehr streng überwacht werden kann, um die Einführung von Fehlern zu vermeiden. Sie kann von einer dritten Partei gespeist werden, oder ein Verständnis des Betriebs kann verloren gegangen sein. Es ist daher wünschenswert, dass eine verbesserte Multiplex-Fähigkeit bereitgestellt wird ohne das Erfordernis, die L2CAP-Schicht zu modifizieren.
-
Im Gegensatz zur L2CAP-Schicht ist die Host-Controller-Schnittstelle (HCl) ein veränderbarer Teil der Stapel-Implementierung. Oft wird die HCl in einem modularen Format bereitgestellt, so dass ein Modul, das die Funktionalität für die spezielle von der Vorrichtung benutzte Verbindung bereitstellt, eingefügt werden kann. Dies erlaubt, dass eine herkömmliche Implementierung eines großen Teils des Bluetooth-Stapels auf einer Auswahl von Vorrichtungen benutzt werden kann, wobei unterschiedliche Protokolle und Transportformen in der HCl benutzt werden.
-
4 zeigt eine Schemazeichnung einer Vorrichtung 400, in der ein Multiplexing-System gemäß der gegenwärtigen Offenbarung implementiert werden kann. Der Hostprozessor 401 umfasst die Schichten des Bluetooth-Stapels 403 von L2CAP aufwärts und eine Verarbeitungsanwendung 402 zum Bereitstellen von Daten dem Bluetooth-Stapel zum Senden über eine Bluetooth-Verbindung. Die Verarbeitungsanwendung 402 kann ihre ausgegebenen Daten dem Bluetooth-Stapel übergeben zum Verarbeiten und Übertragen auf standardmäßige Art und Weise.
-
Der Hostprozessor ist mit dem Bluetooth-Controller 404 über eine HCl 405 verbunden. Die Hostseite der HCl umfasst eine HCl-Schattenschicht 407 und einen Treiber 408 zum Betreiben der physischen Verbindung mit dem Bluetooth-Controller 404. Der Bluetooth-Controller 404 stellt auch die unteren Ebenen des Bluetooth-Stapels bereit. Ein DSP 406 wird bereitgestellt zum Durchführen einer kundenspezifischen Verarbeitung. Der DSP 406 kann als Teil derselben Packung oder Prozessors wie der Bluetooth-Controller 404 bereitgestellt werden oder kann separat sein. Die Verwendung des Begriffs DSP soll diese Vorrichtung nicht auf einen speziellen Typ von Prozessor beschränken. (Eine) beliebige Vorrichtung(en), die zum Bereitstellen des Controllers und/oder von DSP-Funktionalität geeignet sind, kann/können benutzt werden, um diese Komponenten zu implementieren. Der DSP 406 ist mit dem Bluetooth-Controller 404 verbunden 410, um eine Übertragung von Daten zwischen dem DSP 406 und dem Controller 404 zur Übertragung über die Bluetooth-Verbindung zu ermöglichen. Ein Kommunikationskanal 411 wird zwischen der Verarbeitungsanwendung 402 und dem DSP bereitgestellt, um eine Steuerung des DSP durch den Host zu ermöglichen. Zum Beispiel kann die Verarbeitungsanwendung 402 eine Benutzerschnittstelle und Steuerfunktionen einer Audio-Wiedergabe-Anwendung bereitstellen, und der DSP 406 kann die tatsächliche Decodierfunktionalität dieser Anwendung bereitstellen. Die Verarbeitungsanwendung steuert den DSP 406, um eine Wiedergabe der Dateien bereitzustellen, wie vom Benutzer in der Benutzerschnittstelle ausgewählt. Ein weiterer Kommunikationskanal 409 ist zwischen der Schattenschicht 407 und dem DSP 406 bereitgestellt, um die Implementierung eines Flusssteuerungssystems wie unten beschrieben zu ermöglichen.
-
Die Schattenschicht ist bereitgestellt, um einen Flusssteuerungsmechanismus zu implementieren, der ermöglicht, dass Token vom Bluetooth-Controller von der L2CAP-Schicht des Hosts und einer vergleichbaren Schicht in dem DSP gemeinsam benutzt werden. Dieses gemeinsame Benutzen ermöglicht die Benutzung einer gemeinsamen Bluetooth-Verbindung zwischen zwei Elementen der lokalen Vorrichtung, wodurch ein Multiplexen ohne Modifikation der L2CAP-Schicht des Hosts ermöglicht wird. Die Schattenschicht arbeitet durch Entsenden/Delegieren von Token auf vordefinierte Weise zum/auf den DSP, um eine Datenübertragung vom DSP zu ermöglichen. Eine Steuerung des Aufbaus und Aufrechterhaltung der Bluetooth-Verbindung bleibt beim Bluetooth-Stapel des Hosts und somit gibt es keine Modifikation der Standard Bluetooth-Implementierung im Host, anders als die HCl.
-
5 zeigt ein Flussdiagramm eines Verfahrens zum Betreiben einer in 4 gezeigten Vorrichtung. Bei Block 500 öffnet der Host eine Kommunikationsverbindung mit einer entfernten Vorrichtung und der Bluetooth-Controller informiert die L2CAP-Schicht des Hosts über die Anzahl an Token, die für diese Verbindung verfügbar sind. Diese Token können vom Bluetooth-Controller gesendet werden, zum Beispiel in der Form einer Antwort auf einen vom Host ausgegebenen 'Lese Puffergröße'-Befehl. Die Antwort ist unter Umständen nicht explizit in der Form einer Anzahl von Token, kann aber eine Größenangabe sein. Die Größe kann einfach in die Anzahl an Token oder Pakete, denen sie entspricht, umgewandelt werden. Aus Gründen der Zweckmäßigkeit wird diese Beschreibung durch Bezugnahme auf das Weiterreichen von Token zwischen Entitäten gemacht, aber wie man erkennt, kann jegliches bekannte Verfahren zur Flusssteuerung benutzt werden, um die hier beschriebenen Prinzipien zu implementieren.
-
In einem Beispiel können 10 Token von dem Bluetooth-Controller gesendet werden, aber die Anzahl an Token wird gemäß Standardverfahren für das Bluetooth-System bestimmt. Bei Block 501 fängt die Schattenschicht die Token ab, bevor die Host-L2CAP-Schicht sich ihrer bewusst wird. Bei Block 502 reicht die Schattenschicht einen Anteil der Token an die L2CAP-Schicht des Hosts weiter und bei Block 503 werden die übrigen Token an den DSP weitergereicht zur Verwendung zur Übertragung von Daten vom DSP über die Bluetooth-Verbindung. Eine L2CAP-Schicht kann in der DSP implementiert sein für eine zweckmäßige Implementierung der Funktionen, die für die Übertragung von Daten über die Verbindung benötigt werden.
-
Zum Beispiel kann die Schattenschicht 10 Token vom Bluetooth-Controller empfangen. Zwei dieser Token können zur L2CAP-Schicht des Hosts gesendet werden und die übrigen 8 Token können zum DSP gesendet werden. Das Verhältnis von Token zwischen dem Host und DSP ist entsprechend den relativen Prioritäten und Quantität an Daten zur Übertragung für die zwei Elemente definiert. Die Gesamtzahl an Token im Umlauf übersteigt nicht die Anzahl, die vom Bluetooth-Controller ausgegeben wird, und deshalb gibt es keinen Bedarf nach einer zusätzlichen Flusssteuerung, um ein Überfließen der Puffer im Bluetooth-Controller zu verhindern.
-
Bei Block 504 weist die Verarbeitungsanwendung den DSP an, mit dem Decodieren einer Datei zu beginnen und die decodierten Daten über die Bluetooth-Verbindung zu übertragen. Der DSP beginnt mit der Decodierung und überträgt Datenpakete an den Bluetooth-Controller zur Übertragung unter Verwendung der Token, die er zur Verfügung hat.
-
Bei Block 505 überprüft der Bluetooth-Controller, dass die Pakete übertragen werden können. Falls der Bluetooth-Controller eine Abfolge von Paketen vom Host überträgt, kann dann gemäß dem Bluetooth-Standard diese Abfolge nicht unterbrochen werden, bis sie beendet ist. Sobald die Abfolge vollständig ist, akzeptiert der Bluetooth-Controller die Pakete und überträgt sie bei Block 505 zur entfernten Vorrichtung. Die entfernte Vorrichtung ist sich nicht bewusst, dass die Pakete aus einer anderen Quelle stammen, da sie als Teil des Verbindungsaufbaus durch den Host übertragen werden.
-
Bei Block 507 empfängt der Bluetooth-Controller eine Angabe, dass Pakete an der entfernten Vorrichtung korrekt empfangen wurden. Der Bluetooth-Controller bestimmt, ob diese Pakete vom Host oder dem DSP waren und überträgt ein Anzahl-vollständiger-Pakete-(NoCP)-Signal an das relevante Element.
-
Der DSP kann mit der Übertragung von Daten unter Verwendung der an ihn entsandten Token weitermachen, bis die Aufgabe abgeschlossen ist oder andere Instruktionen von der Verarbeitungsanwendung empfangen werden. Falls der Host wünscht, eine Übertragung zu machen, hat er Zugriff auf die Token, die an ihn durch die Schattenschicht weitergereicht werden und kann Daten unter ihrer Verwendung übertragen, vorausgesetzt, dass die Überprüfungen durch den Bluetooth-Controller nicht eine Abfolge von Paketen aus dem DSP unterbrechen. Der Host kann auch dem DSP signalisieren, eine Übertragung von Daten anzuhalten, um dem Host zu erlauben, seine Daten zu übertragen.
-
Das obige Verfahren erlaubt die Übertragung von Daten von dem DSP über eine Bluetooth-Verbindung ohne eine Eingabe vom Host. Sobald die Token an den DSP entsendet sind, kann er autonom arbeiten, Daten an den Bluetooth-Controller zur Übertragung schicken. Um den Energieverbrauch zu reduzieren, kann der Host während des Übertragungsprozesses schlafen oder teilweise schlafen. Der Host kann intermittierend aufwachen, um eine Steuerung oder andere Funktionen durchzuführen.
-
Das in 4 gezeigte Verfahren ist für den Host transparent und somit ist keine Modifikation der oberen Schichten des Bluetooth-Stapels notwendig. Jedoch kann die permanente Entsendung von Token zur einer suboptimalen Übertragung von Daten führen durch Beschränken der verfügbaren Token auf ein Element und dadurch die Datenübertragungsraten reduzieren. Zum Beispiel können beim Aufbau die meisten Token an den DPS entsendet werden in der Erwartung, dass der DSP einen größeren Bedarf an Datenübertragung hat. Falls jedoch der Host tatsächlich wünscht, mehr Daten als der DSP zu senden, wird diese Übertragung durch die beschränkten dem Host verfügbaren Token begrenzt, während die überschüssigen Token des DSP nicht vollständig benutzt werden. Der Kommunikationskanal 409 kann benutzt werden, um die Verteilung von Token während des Betriebs des Systems zu verändern.
-
In einem alternativen Verfahren zum Entsenden von Token kann die Schattenschicht alle Token, die vom Bluetooth-Controller ausgegeben werden, an den Host ausgeben. Die Schattenschicht entsendet auch eine vordefinierte Anzahl an Token an den DSP, so dass die Gesamtzahl der Token im Umlauf die Anzahl der vom Bluetooth-Controller ausgegebenen übersteigt. Um einen Überlauf von Puffern im Bluetooth-Controller zu verhindern, implementiert die Schattenschicht ein weiteres Level der Flusssteuerung. Um dies zu implementieren, überwacht die Schattenschicht die Verwendung von Token durch sowohl den DSP als auch den Host. Falls die Schattenschicht sich bewusst ist, dass die maximale Anzahl an Token in Verwendung ist und der Hast eine weitere Übertragung will, werden diese Pakete in der Schattenschicht gehalten, bis ein Token verfügbar ist, um die Übertragung zu ermöglichen. Eine Verhandlung wird zwischen der Schattenschicht und dem DSP benötigt, um zu verhindern, dass der DSP diese Token gleichzeitig benutzt und die Puffer überlädt.
-
Zum Beispiel kann der Bluetooth-Controller 10 Token ausgeben und 2 Token können an den DSP entsendet werden. Falls der Host versucht 10 Pakete zu übertragen, hält die Schattenschicht 2 dieser Pakete, so dass, selbst wenn der DSP 2 Token in Verwendung hat, es noch nur eine Gesamtzahl von 10 Token zur Verwendung im Bluetooth-Controller gibt. Sobald die Schattenschicht komplette Paketangaben empfängt, werden die Pakete zur Übertragung freigegeben.
-
Wenn diese Technik implementiert wird, kann die Verbindung dem Host langsam erscheinen, wenn die Pakete in der Schattenschicht gehalten werden. Obwohl die hinzugefügte Verzögerung bei ihrem Maximum gleich der Übertragungszeit für die Anzahl an Token ist, die an den DSP entsendet werden, muss man vorsichtig sein, um sicherzustellen, dass der Host nicht annimmt, dass die Verbindung wegen Zeitüberschreitungsproblemen gescheitert ist.
-
In einer weiteren Alternative entsendet die Schattenschicht keine Token an den DSP, aber wenn der Host Daten auf einer Verbindung überträgt, werden die NOCP-Signale abgefangen. Diese Signale werden benutzt, um dem DSP anzuzeigen, wie viele Pakete er übertragen kann, da bekannt ist, dass die Token, auf die sich dass NOCP bezieht, nicht vom Host wieder benutzt werden, bis der Host das NOCP-Signal empfängt. Die NOCP-Signale stellen dadurch eine Tokenquelle für den DSP bereit, die er benutzt, um Daten zu übertragen.
-
Ein Nachteil dieses Ansatzes ist, dass das NOCP-Signal, das von der Schattenschicht abgefangen wird, sich auf reale Daten bezieht, die vom Host übertragen werden. Der Host hat somit keine genaue Aufzeichnung, welche Pakete von der entfernten Vorrichtung empfangen worden sind. Bei Abwesenheit eines Empfangs eines NCOP für ein Paket kann der Host annehmen, dass die Verbindung gescheitert ist und dass keine weiteren Daten über diese Verbindung übertragen werden können. Ebenso hat der Host keine korrekte Aufzeichnung über den Zustand der Bluetooth-Vorrichtung. Außerdem hängt der DSP vom Host ab, der Daten überträgt, um ihm zu erlauben, Daten zu übertragen. Falls der Host eine Verbindung öffnet, aber keine Daten über sie überträgt, werden keine NOCP-Signale empfangen und so ist der DSP nicht in der Lage, Daten zu übertragen.
-
Wie der Fachmann erkennt, können die Verfahren, die oben in Bezug auf die Decodierung einer Audiodatei beschrieben sind, auf eine andere Funktionalität angewandt werden, die die Übertragung von Daten über eine Bluetooth-Verbindung benötigt. Die Funktion kann nicht eine sein, die ein Verarbeiten von Daten durch den DSP benötigt, sondern könnte zum Beispiel die Übertragung einer großen Datenmenge aus einer Speichervorrichtung zu einer entfernten Vorrichtung sein. Der DSP kann benutzt werden, um auf die Daten in der Speichervorrichtung zuzugreifen und sie über die Bluetooth-Verbindung zu übertragen. Während dieses Prozesses kann der Host in einen Schlaf-Modus gehen.
-
Die Schattenschicht kann auch an anderen Orten im System implementiert werden, wie es am effizientesten ist. Zum Beispiel kann sie an der Bluetooth-Controller-Seite der HCl implementiert sein oder unterhalb des HCl-Treibers implementiert sein. Je nach Ort muss die Schattenschicht äußere Header entfernen, um auf die Daten zuzugreifen, die sie benötigt, um Token zu verteilen, und anschließend diese Vorsätze und Nachsätze (engl. headers and footers) wieder anzuwenden, um eine kontinuierliche Übertragung der Pakete zu erlauben.
-
Die Verwendung des Worts Muliplexing soll nicht darauf hindeuten, dass es notwendigerweise mehrere Datenströme durch das Bluetooth-System gibt. Stattdessen wird es als geeignetes Wort benutzt, um die Einfügung eines einzelnen Datenstrom oder das Multiplexen von Daten einzuschließen.
-
Geeignete Verfahren müssen bereitgestellt werden, um den Prozess zu beenden, wenn der DSP aufhört, Daten zur Übertragung herzustellen, zum Beispiel am Ende einer Audiospur. Kommunikation zwischen der DSP und dem Hast, ähnlich zu der, die während des Aufbaus des Systems benutzt wird, kann benutzt werden, um die Erzeugung von Paketen zu stoppen, wenn der DSP alle seine Daten übertragen hat. In den späteren Verfahren, in denen eine große Anzahl an Token an den Controller entsendet wird, kann der DSP dem Host angeben, dass er alle Token benutzt hat, für die es einen Bedarf gibt und gibt die nicht benötigten Token an den Host zurück.
-
Die Beschreibung hier wurde in Bezug auf eine Implementierung des Verfahrens in einem Bluetooth-System gemacht. Jedoch wird vom Fachmann erkannt, dass die Erfindung auch auf andere Kommunikationssysteme anwendbar ist, die eine Stapelstruktur ähnlich der der Bluetooth-Struktur benutzen. Der Bluetooth-Stapel ist eng mit dem OSI-Stapel verwandt, wie es viele Standard-Stapelstrukturen sind, und deshalb es ist wahrscheinlich, dass die Erfindung leicht auf diese anderen System übertragen werden könnte.
-
Hiermit offenbart der Anmelder isoliert jedes hier beschriebene einzelne Merkmal, und jegliche Kombination von zwei oder mehreren solchen Merkmalen in dem Umfang, dass derartige Merkmale oder Kombinationen in der Lage sind auf der Grundlage der vorliegenden Spezifikation als Ganzes im Lichte des allgemeinen Fachwissens eines Fachmanns durchgeführt zu werden, unabhängig davon, ob derartige Merkmale oder Merkmalskombinationen die hier offenbarten Aufgaben/Probleme lösen und ohne Beschränkung des Schutzbereichs der Ansprüche. Der Anmelder gibt an, dass Aspekte der vorliegenden Erfindung aus derartigen einzelnen Merkmalen oder Merkmalskombinationen bestehen können. Im Hinblick auf die vorstehende Beschreibung ist es für einen Fachmann offensichtlich, dass verschiedene Modifikationen innerhalb des Schutzbereichs der Erfindung gemacht werden können.
-
Beliebige hier angegebene Bereiche oder Vorrichtungswerte können erweitert oder geändert werden, ohne die gewünschte Wirkung zu verlieren, wie es für den Fachmann offensichtlich ist.
-
Man versteht, dass die oben beschriebenen Vorteile und positiven Eigenschaften sich auf eine Ausführungsform beziehen können oder sich auf mehrere Ausführungsformen beziehen können. Die Ausführungsformen sind nicht auf jene beschränkt, die ein beliebiges oder alle der genannten Probleme lösen oder jene, die einen beliebigen oder alle genannten Vorteile und positiven Eigenschaften aufweisen.
-
Eine Bezugnahme auf 'einen' (engl. 'a') Gegenstand bezieht sich auf einen oder mehrere dieser Gegenstände. Der Begriff 'umfassen' wird hier benutzt, um die identifizierten Verfahrenblöcke oder Elemente einzuschließen, aber derartige Blöcke oder Elemente umfassen nicht eine ausschließliche List und ein Verfahren oder eine Vorrichtung kann zusätzliche Blöcke oder Elemente enthalten.
-
Die Schritte der hier beschriebenen Verfahren können in einer geeigneten Reihenfolge oder gegebenenfalls gleichzeitig ausgeführt werden. Zusätzlich können einzelne Blöcke auf beliebigen der Verfahren gelöscht werden, ohne vom Wesen und Schutzbereich des hier beschriebenen Gegenstands abzuweichen. Aspekte von oben beschriebenen Beispielen können mit Aspekten von anderen beschriebenen Beispielen kombiniert werden, um weitere Beispiele zu bilden, ohne die gewünschte Wirkung zu verlieren.
-
Man versteht, dass die obige Beschreibung einer bevorzugten Ausführungsform nur beispielhaft angegeben wird und dass verschiedene Modifikationen von Fachleuten gemacht werden können. Obwohl verschiedene Ausführungsformen oben mit einem gewissen Grad an Genauigkeit oder unter Bezugnahme auf eine oder mehrere einzelne Ausführungsformen beschrieben wurden, können Fachleute zahlreiche Änderungen an den offenbarten Ausführungsformen vornehmen, ohne vom Wesen oder Schutzbereich dieser Erfindung abzuweichen.