Forum: Mikrocontroller und Digitale Elektronik Bluetooth so langsam?


von Thomas S (Gast)


Lesenswert?

Ich setzt ein Bluetooth Modul Classe1 von der Firma Connectblue für eine
Datenkopplung ein. Die Ansteuerung erfolgt mit 115200 Baud über die
serielle Schnittstelle und dem Serial Port Profil von Bluetooth auf
einen gleichen Empfänger. Die Daten (ca 50 Byte hin 10 Byte Bestätigung
zurück) werden zyklisch von einem uC gesendet. Meine Erfahrung damit: es
dauert ca 60 -100ms bis die Daten dann von meiner Anwendung verarbeitet
werden selbst bei einer guten Funkverbindung. Nach meiner Meinung und
Meinung des Herstellers müsste das schneller gehen. Dann habe ich
Module von einem anderen HErsteller verwendet und da sind  noch
schlechtere Ergebnis von 160ms. Eine direkte KAbelverbindung erzeugt ca
15ms Delay. Es gibt wohl grosse Unterschiede im Softwarestack.


Hat jemand Erfahrung ob man andere PRofile verwenden kann als das SPP,
da ich zum Sendezeitpunkt die Länge defr Daten weiss, sie aber nicht
konstant sind könnte man auch einen Blockmodus verwenden.

von Montero (Gast)


Lesenswert?

Für das Verhalten deiner Bluetoothmodule könnte der Sleepmode ein Grund
sein. Bei auslieferung ist meistens standardmässig der Sleepmode
aktiviert. Sendest du nicht kontinuielrich Daten braucht das BT modul
einige Zeit um aufzuwachen. Bei den Modulen von ConnectBlue und
BlueGiga lässt sich dieser Mode mit einem Befehl abschalten.

von Beppi (Gast)


Lesenswert?

Hi


Die Geschwindigkeit der Bluetooth-Funkstrecke hängt von zwei Faktoren
ab .
1. Welche Paketart der Bluetooth Stack zum Datenaustausch verwendet
(DH, DM etc.)

2. Vom Buffer-Handling der Firmware der Module


Ich hatte in einer Anwendung auch Timing Probleme, bin dann aber auf
die Module von www.amber-wireless.de gestoßen. Diese nehmen (wenn es
nötig ist) DH5 Pakete (also max Datenrate). somit ist schonmal
sichergestellt, dass die Luftschnittstelle schnell genug arbeitet (auf
alle Fälle >115k).
Um die Latenzzeiten so gering wie möglich zu machen, kann man da nen
Kommandomodus verwenden, der dann die Latenzzeit des Moduls auf ein
minimum reduziert, da die Länge des Paketes bekannt ist und der
Stack/Firmware somit in der Lage schnell zu reagieren. (Aussage
Hersteller <2ms). Somit berechnet sich die Gesamtdauer:
2*RS232-Übertragungszeit + Latenzzeit Firmware/Stack +
BT-Übertragungszeit

Also in deinem Fall über den Daumen gepeilt ca. 15ms für die reine
Datenübertragung in eine Richtung (50Byte).

So gesehen ist Bluetooth dann nicht mehr langsam.

CU
Beppi

von Thomas S (Gast)


Lesenswert?

@Beppi Sobald Amber Wireless Class 1 Module anbietet, werde ich nur noch
dort kaufen und erst recht wenn Sie das Doppelfunksystem anbieten.(Das
ist ein Insider Joke an Beppi, der weiss was ich meine)
Zumindest zeigt mir die Aussage, dass es deutlich schneller gehen
müsste.


@Montero die Datenübertragung ist zyklisch und wir sind auf "Allways
connect = on" Sleep Modus ist deaktiviert.

Auffallend ist, dass bei praktisch allen Lieferanten und Herstellern
(Amber Wireless + Lintech ausgenommen) von BT Modulen die
Anwenderschnittstelle recht stiefmütterlich behandelt wird. Es scheint
den meisten zu reichen eine serielle Schnittstelle anzubieten ohne hier
eine optimierte Datenübergabe anzubieten. Erwähnenswert ist noch, dass
Connectblue das schnellste Modul ist, die anderen getesteten Hersteller
erwähne ich lieber nicht, das wäre sonst Rufschädigung.

von Thomas S. (Gast)


Lesenswert?

Wir testen gerade die Geschwindigkeit und die Latenzzeit der gängigsten
Bluetooth Klasse 1 Module über ein eigens dafür geschriebens Windows
Programm.

100 Bytes über serielle COM Schnittstelle 1 mit 115200Baud senden und
dann die Zeit messen bis das letzte Zeichen an COM Schnittstelle 2
eingetroffen ist. Eine 1:1 Übertragung über Kabel braucht 10ms:
normierter Vergleichswert (inklusive Durchlaufzeit im PC)

Die Bluetooth Module werden nun in diese Messstrecke statt dem KAbel
verwendet und als RS232 Kabelersatz betrieben. Die schnellste
Übertragung erfolgt in 25ms -44ms von Hersteller 1 und das langsamste
vonn 44ms bis 100ms für Hersteller 3.

Nach meiner Rechnung bedeutet dies dass BT effektiv mit nur 19200 Bit/s
überträgt. Alle Hersteller geben 700kbit Nettodatenrate an!

Kann irgend jemand diese Messungen mit eigenen Erfahrungen bestätigen?

von Marcus (Gast)


Lesenswert?

Ein Problem, das bei der Übertragung von RS232 über USB oder auch
Bluetooth immer wieder auftritt ist folgendes:

Sowohl USB als auch Bluetooth arbeiten Paketorinientiert. Das ist
bei der Übertragung großer Datenmengen egal, führt aber zu
erheblichen Latenzzeiten bei der Übertragung kleiner Pakete oder
gar einzelner Zeichen.

Gruß, Marcus

von Montero (Gast)


Lesenswert?

Wir haben ebenfalls mit den Modulen von Connectblue die besten
ergebnisse erzielt. Allerdings wurden wir (wir mussten Daten mit
420kbit/s übertrage) gezwungen selbst auf dem Host Controller Interface
aufzusetzen. Allerdings muss das Modul dann neu Lizenziert werden, die
kosten liegen nach meinen angaben (Nov 05) bei 20'000.-- SFr.
Module mit DH5 und SPP liessen sich nicht auftreiben. Selbst BT 2.0+EDR
erreichen gerade mal 300kBit/s Brutto. (getestet mit Modulen von
blueGiga)

von Thomas S. (Gast)


Angehängte Dateien:

Lesenswert?

@Marcus
Die Latenzzeiten durch das Windows Testprogramm + USB haben wir
rausgerechnet

@Montero
Sehr interessanter Ansatz. Wir sind gerade in Gesprächen mit einigen BT
Hersteller um eine schnellere Übretragung, natürlich mit höheren Kosten,
zu erhalten.

Als Anlage Testergbnisse, natürlich anonym, der gemessen BT Module

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.