Kysymys:
BLE-skannausväli ja ikkuna
Muis
2013-09-12 13:43:17 UTC
view on stackexchange narkive permalink

Bluetooth Low Energy -toiminnolla määrität skannausikkunan (kuinka kauan skannaus suoritetaan) ja aikavälin (kuinka kauan odottaa skannausten välillä).

Onko 10 ms: n skannauksessa 100 ms: n välillä eroa tai skannaatko 1 sekunnin välein 10 sekunnin välein? Näyttää siltä, ​​että mahdollisuuden, että kaksi laitetta löytää toistensa (onko radionsa päällä samanaikaisesti), pitäisi olla yhtä suuria?

Onko olemassa yksinkertainen kaava oikean ikkunan / aikavälin laskemiseksi yhteyden muodostamisen enimmäisaikojen perusteella?

Koska mainoskanavia on vain 3, kokemukseni mukaan BLE-laitteeni ovat muodostaneet yhteyden nopeasti. Pienen tehon takia edes sekuntien skannaus ei aiheuta suurta ongelmaa.
Kolme vastused:
user4028
2018-03-01 21:43:21 UTC
view on stackexchange narkive permalink

Tässä on toinen näkökohta, joka puuttuu muista vastauksista. Core BLE -määrityksen mukaan n vain yksi mainoskanava tarkastellaan jokaisen scanInterval: n aikana ja sitä kierretään seuraavaan 3 kanavaan jokaisella aikavälillä. Joten jos kyseisellä kanavalla on radiotaajuushäiriöitä, et ehkä näe laitetta, vaikka skannausikkuna olisi yhtä suuri kuin scanInterval jatkuvan skannauksen suorittamiseksi.

BLE-oheislaite, joka tekee mainontaa, pyörii normaalisti kaikkien kolmen mainoskanavan läpi peräkkäin erittäin nopeasti jokaisen mainosjakson ajan. Joten parhaalla keskitetyllä laitteen skannausalgoritmilla olisi lyhyemmät ikkunat ja intervallit kunkin mainoskanavan peräkkäisen tarkistamisen kannalta. Apple käyttää ilmeisesti 30 ms: n skannausikkunaa 40 ms: n skannausintervallilla iOS: ssä etualalla olevien sovellusten kanssa. Tämä tarkoittaa, että jokainen mainoskanava tarkistetaan 40 ms: n välein. BLE-ydinmäärityksen mukaan:

Jokainen mainostapahtuma koostuu yhdestä tai useammasta lähetetystä mainonnan PDU: sta käytetty mainoskanavaindeksejä. Mainostapahtuma suljetaan tämän jälkeen yksi mainostettu PDU on lähetetty kullekin käytetylle mainoskanavalle indeksit (katso kohta 4.4.2.1) tai mainostaja voi sulkea mainostapahtuman aikaisemmin muiden toimintojen mukauttamiseksi.

Toinen erittäin tärkeä näkökohta on htaako oheislaite asettamaan mainosväli, joka on suhteellisen ensisijainen verrattuna keskuslaitteen scanIntervaliin. Siksi Apple määrittelee tietyt mainosvälit. Jos valitsisit 100 ms: n skannausvälin ScanWindow-ikkunalla, joka oli pienempi, esimerkiksi 80 ms ja jonka mainosväli oli 1000 ms (1 sekunti), voit epäonnistua ja mainostaa aina 20 ms: n aikana, kun keskuslaite ei skannannut jokaisen skannausvälin aikana. Todellisuudessa BLE-ydinspesifikaatio lisää mainosväliin satunnaisen 0-10 ms: n, mikä auttaa estämään täydellisen umpikujan, mutta se on todella tehty enemmän, jotta vältetään useiden lähes samaan aikaan mainostavien laitteiden häiritseminen toisiinsa ikuisesti.

Kaikille ohjaamattomille mainostapahtumille tai yhdistettävälle suunnatulle mainonnalle tapahtumia, joita käytetään matalan käyttöjakson tilassa, kahden aloituksen välinen aika peräkkäin mainostapahtumat (T_advEvent) lasketaan seuraavasti jokaiselle mainostapahtuma:

  T_advEvent = advInterval + advDelay
 

AdvInterval-arvon on oltava 0,625 ms: n kokonaislukukerroin välillä 20 ms 10,24 s. Jos mainostapahtumatyyppi on joko skannattava ohjaamaton tapahtuma -tyyppinen tai yhdistämätön ohjaamaton tapahtumatyyppi, advInterval ei ole alle 100 ms. Jos mainostapahtumatyyppi on yhdistämätön ohjaamaton tapahtumityyppi tai yhdistettävä ohjattavan tapahtuman tyyppi, jota käytetään matalan käyttöjakson tilassa, advInterval voi olla 20 ms tai suurempi. The advDelay on näennäissatunnaisarvo, jonka alue on 0–10 ms linkkikerroksella jokaiselle mainostapahtumalle.

Ajattele, että sinulla on kaksi taajuutta lähellä toisiaan ja miten saat niiden välisen tahdin taajuuden. Juuri näin voi tapahtua scanIntervalin ja mainosvälin välillä. Apple teki kunnollista työtä asetuksillaan, joten standardien noudattaminen ei toimisi vain iOS: n lisäksi myös Androidille. Applen etualalla oleva 30 ms: n etsintätila Ikkuna 40 ms: n skannausintervallilla tarkoittaa, että 1022,5 ms: n perusmainontavälillä laite näkyy 1 sekunnissa noin 3 / 4s ajanosasta ja aina 2 sekunnin kuluessa, olettaen, ettei mainospakettia peitä RF-häiriöitä . Taustatilassa, jossa on 30 ms: n scanWindow ja 300 ms: n scanInterval, mediaani-aika muuttuu 5 sekunniksi ja tavallisesta maksimista tulee 19 sekuntia, vaikka satunnaisten siirtymien erittäin huonolla onnella se voi olla hieman pidempi.

https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf

Applen suosittelemat oheislaitteiden mainosvälit ovat 152,5, 211,25, 318,75, 417,5, 546,25, 760, 852,5, 1022,5, 1285 ms.

Apple-laitteissa (iOS) mainitset etualan skannauksen 30ms / 40ms ja taustaskannauksen 30ms / 300ms.Voitteko kertoa, missä tämä on määritelty?Vai oletko johtanut tämän jotenkin suositeltujen mainosvälien luettelosta? Onko sinulla tietoa muista kuin Apple-laitteista?
Katso osoitteesta https://lists.apple.com/archives/bluetooth-dev/2014/Sep/msg00001.html, mistä sain iOS-keskuslaitteen scanInterval- ja scanWindow-numerot etualalle ja taustalle.Lisätietoja tekniikasta niiden saamiseksi on täällä: https://lists.apple.com/archives/bluetooth-dev/2015/Feb/msg00000.html Mitä tulee Androidiin, etsin lähteitäni ja muokkaan täällä pian ...
Android: katso https://stackoverflow.com/questions/48686074/android-ble-scan-mode-setting-interval, jossa matalan viiveen tulisi olla jatkuvassa skannauksessa, joten etsi nopeasti.Huomaa myös, kuinka Android on muuttanut asetuksia korvatakseen ne koko 100: sta vanhempiin asetuksiin verrattuna täällä: https://stackoverflow.com/questions/40720638/how-to-set-ble-scan-interval-and-windows-ei-vain-valitse-tila-androidissa
EarthLord
2014-04-09 18:36:02 UTC
view on stackexchange narkive permalink

Bluetooth 4.0 -ydinspesifikaation mukaan "mainostapahtumien" aikajakso on alla olevan kuvan mukainen erityyppisille mainospaketeille:

ADV_IND: Yleisten liitettävien ja skannattavien mainospakettien aikajakso on 20 ms - 10,24 s 0,625 ms: n askelin.

ADV_DIRECT_IND: Suunnattujen mainospakettien aikajakso on pienempi tai yhtä suuri kuin 3,75 ms. Tällaiset mainostapahtumat voivat tapahtua peräkkäin vain 1,28 sekunnille. Tämä on nopea yhteyden luominen (jos laite kuuntelee).

ADV_NONCONN_IND: Ei-yhdistettävien ja ei-skannattavien mainospakettien aikajakso on 100 ms - 10,24 s 0,625 ms: n askelin. .

ADV_SCAN_IND: Skannattavien mainospakettien aikajakso on 100 ms - 10,24 sekuntia 0,625 ms: n välein.

Joten, ellet tiedä, millaista laitetta etsit hyvä lähestymistapa olisi jatkuvasti skannata noin 11 (enintään) sekuntia nähdäksesi onko mainoslaitteita ympärillä. Kuinka usein tämä tehdään, riippuu käytettävissä olevan akun tai virran määrästä.

Toivottavasti tämä auttaa.

paulgavrikov
2016-01-28 23:39:16 UTC
view on stackexchange narkive permalink

Pidän @ EarthLordin vastausta harhaanjohtavana ja haluan jakaa vastaukseni:

Luulen, että ymmärrät väärin, mikä väli ja ikkuna on kyseisessä tilanteessa. Ikkuna määrittää ajan, jonka aikana laite kuuntelee mainoksia ja pyytää skannaustietueita. Aikaväli määrittää ajanjakson peräkkäisiin ikkunoihin.

Bluetooth Core Spec 4.0: ssa sanotaan

ScanWindow- ja scanInterval-parametrien on oltava pienempiä tai yhtä suuria kuin 10,24 s . scanWindow-arvon on oltava pienempi tai yhtä suuri kuin scanInterval . Jos isäntä on asettanut scanWindow- ja scanInterval-parametrit samaan arvoon, linkkikerroksen tulisi skannata jatkuvasti .

Tämä tarkoittaa, että asetetaan sekä 5 kehystä että skannaat jatkuvasti. Jos kuitenkin teet aktiivisen tarkistuksen (mikä tarkoittaa, että pyydät skannausvastausta), sinun ei pidä tehdä sitä. Kaikki akkukäyttöiset oheislaitteet imetään hyvin nopeasti.

Määritä sen sijaan sovelluksellesi sopiva aikaväli ja aseta sitä pienempi skannausikkuna.

En kuitenkaan usko tälle on jokin oletusarvo.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...