Bluetooth communication speed

Imate neki problem koji treba riješiti? Ponudite određeni iznos novca i postavite svoj problem. Ko prvi riješi - osvaja nagradu.

Moderators: pedja089, stojke369, [eDo], trax, LAF

User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Bluetooth communication speed

Post by InTheStillOfTheNight »

Pozdrav ekipa, evo da postavim i tu jednu temu pa tko voli nek izvoli.
Ono najbitnije krenimo od nagrade :) 500kn početna cifra za sređivanje predstavljenog proglema u kasnijem tekstu...

Radi se o bluetooth modulu koji ne znam ni kako se točno zove, ali imam neke sheme i datasheet tog-a. Na modulu ništa ne piše, a o tome ima teksta i u temi PIC/Bluetooth. Prilažem dokumentaciju koju imam i po kojoj sam napravio komunikaciju između AVR-a i PC-a putem bluetooth.

Idemo dakle na problem:
Napravio sam test program koji samo vraća podatke koje primi sa PC-a. Loop C-a izgleda ovako:

Code: Select all

while(1){
    while(UartTestHit()){
        UartPutChar(UartGetChar());
    }
}
Komunikaciju sam slikao osciloskopom sa 2 testna paketa 4 bytes i 16 bytes.
Pakete šaljem iz fr*e Basica, ali nije bitno iz čega se šalju, nego kako i kada se vraćaju nazad. Probao sam slati iz hyper terminala i problem je i dalje tu tako da za ovaj test nije bitno tko na PC-u pristupa COM portu bluetooth-a.

Test 1:
Svakih 100 mS sa PC-a šaljem paket 0xAA, 0xAA, 0xAA, 0xAA, dakle 4 byte-a 0xAA i to poslikano osciloskopom izgleda ovako:
Image

Uploaded with ImageShack.us
Ovo je slikano na Rxd i Txd linijama AVR-a, a gornji kanal je ono što šaljem prema PC-u dok je donji ono što primam sa PC-a.

Baud je 38400, što se može vidjeti i po ova 4 byte-a jer su poslana za 1mS -> (1/38400)*10 bits * 4 bytes
Kada svakih 100 mS šaljem paket on se očito vraća odmah, pa evo još jedna slika na kojoj se vidi svakih koliko šaljem test paket.
Image
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Evo napokon i kod problema. Sada sam digao brzinu paketa na MAX, a to znači da šaljem sa PC-a 4 BYTE-a čekam da mi se vrate nazad i odmah šaljem nova 4 Byte-a.
To na osciloskopu izgleda ovako:
Image

Jedini problem je što netko u protokolu krade vrijeme. U slici gore postavlja se logično pitanje: Tko je ukrao 26.2 mS?
Ponekad bluetooth ukrade i puno više što meni baš i ne odgovara.
U gornjoj slici svaki paket je 4 bytes 0xAA i vidi se da bluetooth ne krade uvijek isto vrijeme pošto je desno na osciloskopu krao samo 5mS.

Dalji problem je taj jer bluetooth ne krade uvijek vrijeme, pa ponekad prođu i 2 paketa zaredom što bi izgledao ovako:
Image

Ili recimo ova slika u kojoj se jasno vidi da su desno na osciloskopu prošla 2 paketa po 4 byte-a.
Image
I evo jedna slika sa Tdiv 50mS na kojoj se jasno vidi kada bluetooth ili već netko krade vrijeme.
Image
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Evo jedna slika kada sam testirao bluetooth sa paketom 16 Bytes.
Dakle pošaljem 16 bytes sa PC-a, čekam da mi se vrate nazad i odmah šaljem sljedećih 16 bytes.
Image

Dakle 16 Bytes na 38400 treba malo više od 4mS da prođe, a jasno je vidljivo iz slike koliki mora biti jedan paket. Po tome bluetooth modul nekada brzo šalje pakete i sve prolazi super sve dok opet ne napravi taj dummy delay. Gornja slika je slikana sa Tdiv 20mS, pa ako pogledate zadnju besprekidnu razmjenu ona traje oko 24 mS što znači da je prošlo 6 paketa po 16 byte-a i nije bilo nikakvog delaya.

Evo još jedna slika u kojoj gotovo da i nema delay i paketi jedno vrijeme prolaze dobro. Naravno dok ne stanu. :)
Image

Problem ovog bluetooth modula je taj što ne mogu imati brz response na PC-u, a preko bluetooth-a bi trebao napraviti komunikacijski protokol koji ima brz response. Sve što treba napraviti je natjerati bluetooth modul da ima brz response na paketu 4 Byte-a i da nema nikakav delay kada se optereti sa ovim testom. E sad da vam i pomognem: Ja bi prvo tražio novi HEX za bluetooth modul, kontaktirao firme koje ga proizvode, kopao po netu... Bla bla bla, no trenutno nemam vremena zajebavati se s time zbog drugih poslova... A možda se već netko zahebavao s tim pa ima express odgovor.
Dokumentaciju ću dići kasnije pošto ne mogu napraviti upload pdf-a.
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Evo link sa slikom bluetooth modula i nekom shemom.
http://www.arduino.cc/cgi-bin/yabb2/YaB ... 1292942247

i evo ime datasheeta koji još imam i može se pronaći na google
Bluetooth Module_BC4_Blue V2.0.pdf

U priloženim datotekama extenziju rar potrebno je prebaciti u pdf.
Priložena je moja shema i AT komande za bluetooth modul.
Attachments
AT Commands for Bluetooth Module.rar
(147.48 KiB) Downloaded 504 times
my_hardware.rar
(17.78 KiB) Downloaded 336 times
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Bluetooth communication speed

Post by pedja089 »

Nagrada mi ne treba...
Po komandama reko bi da i ja imam isti modul. To kasnjenje ces jako tesko resiti.
Ne vidim u cemu je problem sa tim. Postavi interapte na hardverski port, istu stvar na programu u pc i resio si sve muke...
Sta god da koristis osim seriskog kabla javljaceti se neko kasnjenje, pa cak i kod usb<>uart konvertera.
Meni sve odlicno radi i sa tim kasnjenjem. Ja sam u VB-u stavio da povratnu informaciju ceka pola sekunde, i to je to...
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Bluetooth communication speed

Post by gurko »

Msm da je ovo pitanje već bilo postavljano ...
Računaj kako sve radi:
1. BT kontroler (na pločici) primi paket
2. Dekodira ga
3. Proslijedi ga hostu (uC na pločici)
4. Ovaj ga dekodira
5. Proslijedi tvom uC-u
6. Tvoj uC prepozna da ima podatke za čitanje
7. Pročita ih
8. Vrati iste podatke hostu na BT modulu
9. ovaj to opet upakuje
10. proslijedi ga BT kontroleru
11. ovaj ga još upakuje u neke niže protokole
12. pošalje nazad

Ovo definitivno nemože ići trenutno! Ništa nije trenutno!

Jedino šta možeš probati jeste postaviti modul u slave-loop mode (u ovim AT komandama koje si postavi na 3. stranici) i vidjeti kakvo onda kašnjenje dobijaš! Di li je ono tada zadovoljavajuće malo!
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Problem je u tome što PC vrti source na platformi. E sad uzmeš kašnjenje 30mS i zavrtiš komande na PC-u. Po tome ti svaka komanda traje 30mS... Ako imaš 10 ili 20 komandi koje se vrte onda ti za 20 komandi * 30mS treba 300mS, a to je previše.

Isti modul imam i na USB-u i na UART-u i problema s njima nema...

Ako recimo želiš napraviti robota koji prati crnu crtu, ali da se vrti na PC-u preko bluetooth-a onda moraš stalno čitati stanje sa platforme a taj PING na PC-u je od 30 do 80mS za jednu komandu što mi nikako nije zadovoljavajuće...

Inače ako pogledate sve slike sa osciloskopa jasno se vidi da kašnjenje nije uvijek, nego ponekad, a to mi baš i nema logike...

Mislim da sam probao SLAVE LOOP i da mi odmah vraća podatak na PC bez kašnjenja... Budem to sutra još probao, a ako vraća odmah, onda nagrada ima smisla jer možda postoji firmware za BT modul koji ne radi takvo sranje...

Inače radi se o GUI-u za neko slikovno programiranje, i ako je program na PC-u nešto kompliciraniji onda je odziv sa Bluetooth-a ubitačno spor.
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Gurko kašnjenje USB-a nije kašnjenje :)
Meni je sve unutar 1 - 5 mS/paket još prihvatljivo... no 30-70mS je totalni kaos...
InTheStillOfTheNight
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Bluetooth communication speed

Post by pedja089 »

Toliki mali ping ne mozes dobiti na BT...
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Nigdje nisam našao tekst kako je to nemoguće, pa zato i stoji nagrada ako se kome da zahebavati s tim...
InTheStillOfTheNight
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Bluetooth communication speed

Post by gurko »

InTheStillOfTheNight wrote:Gurko kašnjenje USB-a nije kašnjenje :)
Meni je sve unutar 1 - 5 mS/paket još prihvatljivo... no 30-70mS je totalni kaos...
Ovdje te nisam skontao ... ja nisam nigdje spomenuo USB??? :? :roll:

Malo bolje sam pogledao ove slike sa osciloskopa i nisam siguran da možeš sa sigurnošću reći da ti BT modul krade vrijeme! Ti mjeriš vrijeme između poslanih i primljenih paketa na Tx i Rx AVR-a, ko ti kaže da PC ne krade vrijeme!
Još pogotovu kada si rekao "ako je program na PC-u nešto kompliciraniji onda je odziv sa Bluetooth-a ubitačno spor." ... ?? Kakve veze ima BT modul sa programom koji ti vrtiš na PCu?
Isto tako AVR (ako radi samo ovo što si naveo, a izgleda da radi) i BT nisu toliko komplikovani sistemi da mogu unijeti toliko različito kašnjenje u cijelu komunikaciju!
Ja bih probao PC zamijeniti sa npr drugom AVR/BT modul kombinacijom ili možda mobilnim telefonom (mada i on može unijeti kašnjenje) i vidjeo kako će se sve to ponašati!
Ili smanjio opterećenje PC-a, ili probao sa drugim PC-om da vidim opet kako će se stvar ponašati!
Po meni je tu PC glavni osumnjičeni! ... :ohno:
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: Bluetooth communication speed

Post by _heX »

Kazes da ti paket nekad stize na vrijeme, a nekad kasni. To sto je paket poslan, govorim iz RF perspektive, ne znaci da je on i stigao na odrediste. Nakon poslanog paketa RF RTX se prebuje iz tx u rx mod i ocekuje acq (potvdu da je paket stigao na destinaciju) izvjesno vrijeme. Ukoliko ga primi vraca se u tx mod i salje sljedeci paket. Ukoliko ne, mozda vrsi retransmisiju izgubljenog paketa, mozda vrsi neku ponovnu uspostavu komunikacije, tko ce ga znat. RF "radi" na frekvenciji od 2.4GHz-a i vjerojatno salje/prima brzinim do 1Mbit/s. Na prvi pogled se cini da pri toj brzini retransmisija traje kratko, no svakim prebacivanjem iz tx u rx treba cekati izvjesno vrijeme (settling time).

U radio komunikaciji uvijek ces (prije ili kasnije) imati gubitke. To je tak, pomiri se s tim.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Bluetooth communication speed

Post by pedja089 »

Po mojoj proceni mislim da je to sa radiom najmanji problem. To mi mnogo vise lici na pouzdane drajvere windowsa. Izmedju ostalog od radia do seriskog porta se nalazi ogroman broj protokola. Uzmi samo emulacija porta, pa usb komunikacija, pa kontrola BT-a, pa sam put koji podatci predju kroz ceo sistem, od tvog programa, kroz jedne drajvere, pa kroz druge, pa kroz usb, pa u kontroler BT, pa onda na sve to dolazi radio...
Koliku god nagradu ponudio to se na jednostavan nacin ne moze resiti. Verovatno bi puno brze bilo ako bi ti direktno iz programa pristupao kontroleru BT-a, i onda mu tako slao komande i podatke, a to zahteva mnogo... Cak i previse. Po meni je to zamlacivanje. Ili napravis sistem koji lepo radi sa kasnjenjem, ili batalis to i ides na drugu vrstu komunikacije.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

Zaboga ljudi, pa razgovaramo o protokolu komunikacije... Pa mene nitko ne može uvjeriti u to da bluetooth mora imati _delay_ms(30). To su apsurdne stvari u komunikaciji. Svaki moj source vrti se ispod 1mS pa makar imao i 100k programa. Ako je MCU dovoljno brz i imam hardware podršku normalno da ću sporiji dio baciti na interrupt i opet imati brz program.

Mi govorimo o 30 mS čekanja u komunikaciji, a to je za svakog programera nepojmljivo dugo vremena. Ono što nema smisla se može vidjeti i iz slika... Pa predpostavimo da ne postoji nitko na frekvenciji bluetooth-a (i to sam probao) i uređaji su udaljeni 50cm, a tu u pravom smislu znači da ne postoji retransmit paketa, onda se postavlja logično pitanje zašto je bluetooth u stanju procesuirati 5 paketa zaredom bez ikakvog delaya i najedamput napraviti glupih 30mS.

Jer slike govore o tome kako 5 REQUEST i 5 RESPONSE paketa prođu, a PC ne šalje novi REQUEST bez starog RESPONSE, onda očito kroz sve protokole prolazi bez problema. Znam ja sve što treba da se preko RF-a pošalje nešto i to je sad detaljiziranje tko kad što priča kako priča bla bla bla.

No koji je onda razlog da se bluetooth može konfigurirati na recimo 115200 bps, a prava komunikacija mu ne dozvoljava ni 1200 bps...

30ms???? Sama izjava 30 govori o tome da nešto ne štima i da mora moći raditi. A tko je sad tu napravio grešku ne znam...
InTheStillOfTheNight
trut
Posts: 3
Joined: 10-01-2012, 22:36

Re: Bluetooth communication speed

Post by trut »

... vecer

-Ne ide to tako ... izgleda
-On ima neke "probleme" oko sinhronizacije samog demodulatora , tako da to vrijeme
morate uzeti u obzir ... nakon što se RX-modul sinhronizira sa stream-om iz TX-a , onda tek ide
ova brzina prenosa (definirana na pocetku u set-upu)

-Radio sam nesto sa RFM modulima (Alpha) i oni su skroz "priglupi" , tako da na pocetku
morate slati nekoliko puta hex-AA (10101010) tako da prvi "korisni" byte ne ode "uludo" :)

-Vjerujem da tako nesto i koristi BT , samo na malo visoj razini , tako da , kada se sinhronizira
mozda javi TX-u "sada te razumijem .... pocni slati :) "

Mozda bi se problem mogao rijesiti sa "otvorenom komunikacijom" ... 4 modula :) , a gdje
bi stalno slali niz podataka (neki karakter iznad 127) , a kada dođe "normalni" ASCII , onda
se reagira po drugom paru BT-modula , koji isto salju beskonacni niz , ali na drugom kanalu
(to sa kanalima ce valjda on sam ... :) ) i u drugom smjeru .

-Ovo sto sam Vam napisao je samo pretpostavka ... ali mislim da bi to objasnilo
nepravilnosti "vremenskog uzorka"

pozz
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Bluetooth communication speed

Post by pedja089 »

Ja mislim da je do drajvera i do windowsa... Tj sasvim sam siguran. Jer gledao sam kako se ponasa on sa hardverom. Pign jeste manji, ali je isto nepravilan...
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: Bluetooth communication speed

Post by _heX »

Evo je iz datasheet-a mog "serial bt modula", obrati paznju na notu na dnu stranice.
Attachments
bt.zip
(117.13 KiB) Downloaded 390 times
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Bluetooth communication speed

Post by InTheStillOfTheNight »

@hex želiš reći:
Podigni uart koliko ide i predpostavi da će se za toliko smanjiti delay?
InTheStillOfTheNight
User avatar
gurko
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 241
Joined: 18-03-2011, 19:28
Location: Srednja BiH

Re: Bluetooth communication speed

Post by gurko »

_heX wrote:Evo je iz datasheet-a mog "serial bt modula", obrati paznju na notu na dnu stranice.
Ne vjerujem da se događa buffer overflow jer se radi o relativno malom rastojanju tako da resend je vrlo malo vjerovatan ukoliko PC na vrijeme pokupi paket iz buffera BT-a na PC-u.

I dalje mi je PC najsumnjiviji ovdje. Na neki način PC stranu treba provjeriti!
_heX
Napredujem
Napredujem
Posts: 136
Joined: 29-10-2009, 20:09
Location: Republika Zagorje

Re: Bluetooth communication speed

Post by _heX »

@gurko
Ne, ne, ne, to nije dio note.

@InTheStillOfTheNight
"The faster the UART speed the smaller the byte gap delay". Ne znam, mozda je ovo specificno za ovaj modul.
Kak bilo da bilo, ovo sam mislio istaknuti:
"The way Bluetooth is designed and operates random byte gaps of 5 msec to 20 mesec are common."

Kombinacija @gurko s dva para BT modula/AVR je odlicna za izbacivanje istih kao uzroka problema (ako).
Post Reply