Forum: Mikrocontroller und Digitale Elektronik Wie sparsam ist Bluetooth 4.0LE?


von Mike (Gast)


Lesenswert?

Ich möchte mittels Bluetooth von einem batteriebetriebenen Gerät einen
kontinuierlichen Datenstrom an eine noch zu erstellende App auf einem
Android-Mobiltelefon senden. Die Datenrate wird etwa 100Bytes/s
betragen. Zusammenfassen zu kleinen Paketen <50 Bytes wäre auch möglich.
Der Energieverbrauch des Senders sollte möglichst gering sein
(<10mA@3.3V im Durchschnitt). Reichweite maximal 2m würde genügen.

Für diese Aufgabe müsste sich das RFCOMM-Protokoll eignen, zumal es
direkt von Android unterstützt wird. Im Web gibt es eine Fülle von
preisgünstigen Bluetooth-Modulen, z.B: HC-06 und HC-08. Leider gibt es
dazu keine vernünftige Dokumentation, weder auf Englisch noch auf
Deutsch.  Insbesondere fehlen Angaben zum verwendeten Protokoll und zum
Energieverbrauch.

Anhand der abgebildeten Chips handelt es sich beim HC-06 offenbar um ein
Modem nach Bluetooth V2.0 , beim HC-08 um V4.0-Standard.

Wer kennt sich aus oder hat die Module schon einmal benutzt:

1. Gibt es genauere Daten zur Stromaufnahme, aufgeteilt in
Senden/Empfangen/Idle?
2. Bringt der V4.0 Low Energy-Standard etwas bei der konkreten Aufgabe?
3. Nutzt 4.0LE auch das RFCOMM-Protokoll, so dass eine problemlose
Kommunikation mit Android-Hausmitteln möglich ist?

Besten Dank

PS: Sorry für das doppelte Posting, aber ich habe wohl das falsche Forum 
gewählt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Mike,
ich kenne diese Module nicht. Es gibt aber mittlerweile jede Menge 
Mikrocontroller, die BLE Peripherie an Bord haben. Wenn Du also eh einen 
Mikrocontroller verwendest, könntest Du dich evtl. da umgucken 
(insbesondere, wenn Du eh Strom sparen möchtest).

Ich schreibe gerade an eine Android App, die Bluetooth nutzt. In der 
Version 6 von Android sieht das soweit auch ganz vernünftig aus. Über 
GATT kannst Du aber portabel maximal 20 Bytes am Stück übertragen.

2.) BLE ist halt komplett auf geringen Energiebedarf hin ausgelegt und 
wenn Du Deine Kommunikationsparameter auf die benötigte Datenrate und 
Latenz anpasst. Mit einem nfr51422 sind <10mA@3.3V auf jeden Fall 
möglich.

mfg Torsten

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

RFCOMM gehört ersteinmal zum Bluetooth Classic Stack, steht also für LE 
nicht zur Verfügung.
Da haste erstmal nur GATT.
Also SPP nutzen fällt schonmal flach.

@Thorsten:
Auf dem HC-08 ist nen TI CC2540, also genau das was du sagtest, nen SoC 
mit BT LE drauf ;)

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Martin W. schrieb:
> RFCOMM gehört ersteinmal zum Bluetooth Classic Stack, steht also für LE
> nicht zur Verfügung.
> Da haste erstmal nur GATT.

GATT ist auf der Client-Seite (OS/X; Android) eigentlich ganz bequeme. 
Für erste Tests gibt es eine recht coole Libray für JavaScript: 
https://github.com/sandeepmistry/noble

> Auf dem HC-08 ist nen TI CC2540

Von TI gibt es auch noch größere, z.B. den cc2650, dass ist ein Cortex 
M3, der einen eigenen Cortex M0 hat, der die BLE Hardware bedient.

von Tobias R. (Firma: lobaro.com) (toroh)


Lesenswert?

BT Classic und 4.0 (BTLE) sind an sich unterschiedliche Dinge mit wenig 
Gemeinsamkeiten.

BTLE und "Datenstrom" passt zudem nicht super zusammen, da BTLE über die 
GATT Register nur ca. 20 Byte pro "Paket" (je nach 
Stack/Implementierung) erlaubt.

Ich würde BTLE empfehlen, wenn du kleine Datenmengen selten übertragen 
musst, dann profitierst du von der Fähigkeit der BTLE Hardware extrem 
schnell aufzuwachen und wieder sendebereit zu sein.

Viele Grüße
Tobi

von Dirk K. (knobikocher)


Lesenswert?

Mahlzeit!

Folgende Erfahrungen kann ich von dem BLE-Modul cB-OLS425i-04 (mit dem 
CC2540) von ConnectBlue weitergeben:

Wie der Vorposter richtig genannt hat, sind 20Byte je Paket möglich. Ein 
Paket kann alle 7ms versandt werden. Das reizen wir nicht aus. Wir sind 
bei ca. 200Byte/S. Dabei verbraucht das Modul insgesamt rund 
33mW(@3,3V=10mA) MEHR, als im nicht verbundenen Zustand (mit Advertising 
alle 1000ms). Im letzteren Zustand sind es durchschnittlich 50µA@3,3V = 
0,165mW.


Zusammengefasst also ungefähr
200Byte/s -> 10,05mA Durchschnitt @3,3V

Also kommen deine durchschnittlich erhofften 10mA@3,3V@100Byte/s in 
Reichweite.

Gruß
Dirk Knoblich

von Rainer F. (ferdiflachmann)


Lesenswert?

Hi

Um es noch etwas genauer aufzuteilen:

Wir nutzen ein CC2564B von TI. Das HCI Modul braucht bei einen Connect 
Interval von 500ms und 8dBm Leistung (entspricht 40 Byte/s) ~200µA. Dazu 
kommt der Strom des verwendeten Controllers (beim ConnectBlue Modul vom 
Vorredner ist der schon mit drin).

Wir nutzen ein Interval von 10ms und senden alle 20ms (1000 Byte/s). 
Dabmit sind es dann schon 7,5mA alleine für das Modul.

Wenn man also viele Daten senden will, sind BLE Module nicht besser als 
Classic BT mit SPP.

Gruß

Rainer

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Rainer F. schrieb:

> Wenn man also viele Daten senden will, sind BLE Module nicht besser als
> Classic BT mit SPP.

Interessant wäre zu Wissen, welche Genauigkeit die Quarze der 
eingesetzten
Module haben. Laut BLE Spec hängt die Zeit (und damit die Energie für 
das Empfänger-Radio), die ein device auf seinen Master lauschen muss von 
der Genauigkeit des Timers ab.

von Jim M. (turboj)


Lesenswert?

Dirk K. schrieb:
> Zusammengefasst also ungefähr
> 200Byte/s -> 10,05mA Durchschnitt @3,3V

Ich habe mit einem NRF51422 Modul ungefähr die Hälfte gemessen, bei 
wesentlich höherem Datendurchsatz. Und sogar da ist noch Luft nach unten 
weil ich wegen UART den "schnellen" Oszillator anlassen musste.

Außerdem ist es komplett in C programmierbar, so dass man in einfachen 
Fällen keinen weiteren Prozessor braucht.

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.