Bluetooth-Modul für RFCOMM-Kanal

Ich muss ein Bluetooth 2.1 + EDR-Modul finden, das es einem uC ermöglicht, direkt über einen RFCOMM-Kanal zu kommunizieren, sobald dieser eingerichtet wurde.

Das Problem ist, dass ich nur Module finden kann, die den vollständigen Stack bis zum Serial Port Profile (SPP) implementieren, das von dem Gerät, das mit dem Modul gekoppelt wird, nicht unterstützt wird.

Kennt jemand Module, die das können, wie sie heißen, oder was/wo zu suchen ist?

Bearbeiten: Ich weiß, dass es möglich ist, nur den "rohen" Bluetooth-Controller zu verwenden und dann den uC den vollständigen Stack implementieren zu lassen und über die HCI zu kommunizieren. Suche aber nach einer einfacheren Lösung. Wenn diese Art von Modul nicht existiert, frage ich mich, ob es Bluetooth-Stack-Implementierungen gibt, die auf der ARM Cortex-M3-Familie gut funktionieren würden.

Zur Verdeutlichung weiß ich, dass mein Kommentar nicht annähernd so hilfreich ist, wie er sein könnte, aber ich hatte keine Zeit, mich wirklich mit btstack zu befassen, also belasse ich es einfach dort als möglichen Weg, um nach unten zu gehen.

Antworten (1)

Ich habe die Bluegiga-Bluetooth-Module mit iwrap-ASCII-Schnittstelle getestet und sie ermöglichen es Ihnen, "rohe" Rfcomm-Verbindungen zu öffnen.

Das einfachste ist das WT12, das über die erforderlichen rfcomm-Funktionen verfügt. WT11i ist eine Version mit längerer Reichweite und WT41 ist eine Version mit superlanger Reichweite. WT32 verfügt über erweiterte Audiofunktionen wie A2DP.

Sie müssen ein Konto in ihrem Techforum erstellen, um Zugriff auf das neueste iwrap-Benutzerhandbuch zu erhalten> ( https://techforum.bluegiga.com/protectedstore/29110/8424/127/bluegiga_1698/193d9e1a2cdeccd840dd613f9f3262e5/iWRAP5_User_Guide.pdf )

Der Vorgang unterscheidet sich geringfügig, je nachdem, ob Sie einen rfcomm-Kanal vom Modul zum externen Gerät öffnen oder ob das externe Gerät die Verbindung zu Ihnen öffnet.

Wie Sie wahrscheinlich wissen, besteht der normale Weg, um herauszufinden, welcher RFCOMM-Kanal verwendet werden sollte, beim Öffnen einer neuen Verbindung darin, die SDP-Einträge für einen Dienst und den RFCOMM-Kanal dafür einzuchecken.

Mit iwrap können Sie jedoch den SDP-Erkennungsschritt überspringen, wenn Sie den anzurufenden RFCOMM-Kanal kennen. Um einen RFCOMM-Kanal zu einem anderen Gerät zu öffnen, müssen Sie den Befehl „CALL 00:07:80:80:52:27 1 RFCOMM“ geben. Weitere Details finden Sie in der Dokumentation des CALL-Befehls.

Sie können auch weiterhin manuelle SDP-Abfragen durchführen, um den rfcomm-Kanal eines beliebigen Dienstes oder sogar den l2cap-Kanal für Dienste zu ermitteln, die rfcomm nicht verwenden.

Die Kommunikation über rfcomm kann im "transparenten" Modus erfolgen, in diesem Fall wird jeder Brief, den Sie über UART senden, über Bluetooth übertragen. Alternativ können Sie ein einfaches binäres Paketformat namens Mux Frame verwenden. In beiden Fällen können Sie gpio-Pins so konfigurieren, dass sie umschalten, wenn Sie eine Verbindung haben und wenn Sie keine haben, und sogar Autocall verwenden, um die rfcomm-Verbindung automatisch zu öffnen, wenn Sie das Modul hochfahren.

Wenn Sie das externe Gerät benötigen, um das Modul anzurufen, kann das andere Gerät die rfcomm-Kanäle auch direkt anrufen. Es gibt bereits einen eingehenden rfcomm-Kanal für das SPP-Profil, der die Nummer 1 hat. Und keine Angst vor dem SPP-Teil im eingehenden Anruf, das SPP für das Modul bedeutet nur, dass der richtige sdp-Eintrag registriert ist, aber jeder Ein externes Gerät, das einen rfcomm-Kanal direkt aufrufen kann (wie ein anderes iwrap-Modul), kann rfcomm direkt aufrufen, ohne die sdp-Einträge zu lesen.

Bearbeiten: Oh, und wenn Sie nach einem Breakout-Board suchen, hier ist eines: http://www.inmojo.com/store/jeff-rowberg/item/wt12-bluetooth-breakout-board/ (obwohl Sie das wirklich nicht sollten wie in diesem Design eine Platine oder Metall vor der Antenne platzieren, wird die Reichweite gemäß den Bluegiga RF-Layout-Richtlinien beeinträchtigt, funktioniert aber nicht, funktioniert also zum Testen).