Android Bluetooth Serielle RFCOMM niedrige Baudrate / langsame Übertragung

Ich arbeite an einem AndroidBluetooth Projekt zum Senden und Empfangen von Daten von einer benutzerdefinierten Hardware. Ich habe Bluetooth Chat Sample im SDK als Basis verwendet.

Ich erkannte, dass es keine Möglichkeit gibt, die Baudrate auf dem Client (Android-Handy) zu ändern, und die Baudrate hängt von der Hardware ab. Ich habe versucht, verschiedene Baudraten auf Hardware zu setzen und keiner hat unsere Erwartungen erfüllt;

Am schnellsten erreiche ich 91 Kbps (wenn die Baudrate auf 2,7 Mbps ~ 910 Kbps eingestellt ist). Unter Verwendung der minimalen Baudrate (115 Kbps) erhalte ich 43 Kbps. Ich habe versucht, verschiedene Telefone zu verwenden, und es ist das gleiche. Ich muss 170 KB Daten pro Sekunde auf Hardware übertragen.


Spezifikationen
Protokoll : Synchronisierte oder generierte Daten werden mit Paketen von maximal 520 Byte an die Hardware gesendet. Die Hardware sendet den Verifizierungsbefehl, nachdem jedes Paket empfangen und genehmigt wurde und das Telefon das nächste Datenpaket sendet.
Client : Android 2.3.3, Samsung Galaxie w i8150, Bluetooth v3.0, RFCOMM
Hardware : Benutzerdefiniert, Bluetooth v2.1 BlueGiga WT11i


Ich bin total verwirrt .. Kann es möglicherweise ein Problem sein, das von einem Android- oder Bluetooth-Gerät am Telefon verursacht wird? Ich frage mich, was die maximale Baudrate ist? Gibt es eine Möglichkeit, die Übertragung zu beschleunigen (z. B. Erhöhen der maximalen Paketgröße oder Senden aller Pakete ohne Warten auf Hardware-Verifizierungsbefehle).


Bearbeiten
Nach dem Ändern der Paketgröße auf 4160 Bytes hat sich der Durchsatz auf 254 Kbps erhöht. Ich versuche herauszufinden, die optimale Paketgröße 1,5Mbps zu erreichen. Ich freue mich über Vorschläge

Erstens sollte die Änderung der Baudrate des Bluetooth RFCOMM / Serial Port-Protokolls keinen Unterschied machen, da es sich nicht um eine echte serielle Schnittstelle, sondern nur um eine Emulation handelt . (Spezifische Hersteller könnten so etwas besonderes damit aber Bluetooth im Allgemeinen oder Android verwendet den Parameter nicht, um über die Luftbitraten zu steuern)

Die Faktoren, die die Datenrate über SPP beeinflussen , sind die Größe der Pakete , die praktische maximale Datenrate, die Sie über Bluetooth erhalten können und wie schnell der Empfänger liest und wie häufig der Sender sendet. Für die Paketgröße können Sie sich interne Dokumentationen ansehen oder verschiedene Größen ausprobieren, um eine optimale Anzahl für Ihre Anwendung zu erreichen. Ich würde auch empfehlen, mehrere Pakete (oder alle) zu senden, bis der Datenstrom kontinuierlich Daten senden kann, ähnlich kontinuierlich gelesen.

Das Hauptproblem für Sie scheint das praktische Throughut zu sein, das Sie über Bluetooth erreichen können. Wenn Sie die Nicht- EDR- Versionen verwenden, wie Sie in Ihrer Frage erwähnt haben, beträgt die theoretische Geschwindigkeit auf dem sehr niedrigen Niveau 720 Kbps , und das Hinzufügen von Protokoll und Anwendung über Kopf sowie RFCOMM- Protokoll-Overhead könnte maximal 450-500 Kbps erreichen .

Wenn Sie Zugang zu beiden Geräten haben, die + EDR Ie Bluetooth Version 2.0 oder mehr + EDR sind, dann können Sie erwarten, dass die Anwendungsrate in der Größenordnung von 1,2 bis 1,5 Mbps liegt (theoretisch über der Luftbitrate 2,0 oder 3,0 Mbps)