Taula de continguts:

Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag: 7 passos (amb imatges)
Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag: 7 passos (amb imatges)

Vídeo: Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag: 7 passos (amb imatges)

Vídeo: Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag: 7 passos (amb imatges)
Vídeo: CS50 2013 - Week 8 2024, Juliol
Anonim
Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag
Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag

A continuació, faré una anàlisi del sistema operatiu Windows (SO) des del punt de vista de la comunicació amb dispositius Bluetooth de baixa energia, en el nostre cas amb diferents tipus de SensorTags: Thunderboard React, Thunderboard Sense (tots dos produïts per Silicon Labs) Company), CC2650STK i CC2541DK (tots dos desenvolupats per Texas Instruments Company).

Pas 1: Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag

Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag
Anàlisi del sistema Bluetooth de Windows: un enfocament SensorTag

A continuació, faré una anàlisi del sistema operatiu Windows (SO) des del punt de vista de la comunicació amb dispositius Bluetooth de baixa energia, en el nostre cas amb diferents tipus de SensorTags: Thunderboard React, Thunderboard Sense (tots dos produïts per Silicon Labs Company), CC2650STK i CC2541DK (tots dos desenvolupats per Texas Instruments Company).

A continuació, analitzaré Windows 7, Windows 8.1 i les següents versions de Windows 10:

· Actualització d'aniversari (publicada el 2 d'agost de 2016; finalització del suport: provisionalment març de 2018), · Actualització dels creadors (publicada el 5 d'abril de 2017; finalització del suport: provisionalment al setembre de 2018) i

· Actualització de Fall Creators (publicada el 17 d’octubre de 2017; finalització del suport: provisionalment al març de 2019).

L'anàlisi es farà des dels punts de vista següents:

1. La capacitat del sistema operatiu (SO) de pair amb un SensorTag;

2. La possibilitat d'obtenir dades d'accés genèric (és un servei obligatori);

3. La possibilitat d'obtenir informació del dispositiu (aquest servei exposa informació del fabricant i / o proveïdor relacionada amb un SensorTag específic);

4. La capacitat d’obtenir les dades del SensorTag, mitjançant l’enfocament de lectura i

5. La possibilitat d’obtenir les dades de SensorTag mitjançant l’enfocament de notificació.

Totes les proves es van fer mitjançant la versió 9.7.8.0 de l'aplicació blessTags. L’aplicació blessTags es va crear tenint com a suport l’SDK de Windows - Bluetoothapis. Es van utilitzar funcions com BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices o BluetoothGATTSetCharacteristicValue.

Aquesta aplicació, l'aplicació blessTags (BLE SensorTags), es pot descarregar des de les aplicacions de Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Per obtenir més informació, demostració, aplicacions pràctiques, exemples, etc., visiteu el següent bloc:

Pas 2: Windows 10 - Actualització d'aniversari - Versió 1607

Image
Image

Aquesta versió del sistema operatiu Windows 10 és la millor, des del punt de vista dels dispositius Bluetooth de baix consum. Es pot emparellar sense cap problema amb tots els SensorTags (independentment de la versió del programari que s’executi), amb la qual l’aplicació blessTags sap treballar (CC2650STK, Thunderboard React, Thunderboard Sense i CC2541DK) i tota la informació dels serveis de Bluetooth Get Generic Accés i obtenció de la informació del dispositiu s’adquireix sense cap problema.

Analitzant la velocitat d’adquisició de dades (per a dispositius CC2650STK i CC2541DK) mitjançant un mecanisme de notificació i lectura de transferència de dades, podem observar el següent:

1. mitjançant el mecanisme de notificació, podem obtenir dades de tots els sensors (vuit) de 150 [ms] a 150 [ms] sense problemes;

2. en canvi, quan establim el temps d'adquisició a 150 [ms] i fem servir el mecanisme de lectura de dades: en la situació més feliç, obtenim 713 [ms] i, en el pitjor dels casos, obtenim 840 [ms].

Si analitzem Thunderboard React i Thunderboard Sense, obtindrem els resultats equivalents: funcionen sense cap problema a l’entorn d’actualització de l’aniversari de Windows 10.

De fet, totes les pel·lícules de presentació de les funcions principals de l’aplicació blessTags i de les diferents funcions específiques (com ara els gadgets) s’han realitzat amb el suport de l’actualització de l’aniversari de Windows 10.

Pas 3: Windows 10: actualització de creadors: versió 1703

Windows 7
Windows 7

La versió Creators Update de Windows 10 és el pitjor sistema operatiu (SO) des del punt de vista dels dispositius Bluetooth de baix consum.

Gairebé res no funciona. Microsoft va reconèixer que l'actualització dels creadors va trencar Bluetooth Low Energy (referència 1 i referència 2). L’empresa de Microsoft va prometre una revisió el més aviat possible. Però des de llavors han llançat una versió actualitzada de Windows (Fall Creators Update) i no ha passat res: fins ara, dins de la versió Windows 10 Creators Update, el Bluetooth Low Energy encara no funciona.

Hi ha un gran nombre de publicacions en fòrums en què diverses persones es queixen de diferents tipus de dispositius Bluetooth que deixen de funcionar després d'actualitzar a Creators Update (vegeu aquí, vegeu aquí, vegeu aquí, vegeu aquí, etc.).

Els resultats, els mostraré de seguida, es van obtenir després de moltes proves: (1) en un PC d’escriptori que tenia un dongle USB CSR4.0 Bluetooth (CSR8510 A10) i (2) en un portàtil Dell Inspiron P66F amb dispositiu Bluetooth LE integrat. Sé que hi ha moltes solucions a Internet per solucionar diversos tipus de problemes de Bluetooth. He provat gairebé tot, però res funcionava (actualitzeu el controlador Bluetooth, executeu l'eina de resolució de problemes de Windows, desactiveu i activeu els serveis relacionats amb Bluetooth, etc.)

Així doncs, presentem els resultats:

1. CC2650STK:

a. A la versió de firmware 1.40, l’emparellament del dispositiu SensorTag amb Windows és impossible (he repetit el procés diverses vegades, almenys 8-10 vegades, he activat i apagat el Bluetooth i he tornat a provar; els resultats van ser els mateixos: era impossible afegiu aquest dispositiu).

b. A la versió 1.20 del firmware, el PC va descobrir el SensorTag i vaig poder aparellar el SensorTag amb el PC.

A més, he pogut obtenir dades d'accés genèric. Però, al servei Obtenir informació de dispositius, de 9 característiques només 6 van respondre i només d’elles es va poder obtenir informació.

En el seu lloc, no puc configurar el dispositiu i no puc recuperar dades dels sensors ni mitjançant el mecanisme de lectura ni mitjançant les notificacions.

2. Thunderboard React:

El sistema operatiu té un comportament estrany quan s’inicia el procés d’aparellament. A la llista de dispositius descoberts, apareix i desapareix el SensorTag (amb un període d'1 … 1,5 s). Finalment, quan un ratolí fa clic amb èxit al SensorTag, el procés d’aparellament s’aconsegueix i els LED del Thunderboard React (el blau i el verd) tenen un període en què parpellegen consecutivament en un mode atípic.

La lectura de les característiques del servei d'accés genèric (0x1800) es pot fer sense cap problema, però la lectura des del servei d'informació de dispositius (0x180A) falla en les quatre característiques existents.

Configurant els sensors (incrustats a SensorTag), el mode d’adquisició de dades (a Thunderboard React només teniu la possibilitat següent: (1) obtenir dades mitjançant la notificació de 3 sensors i (2) llegir dades dels altres quatre sensors) és impossible. Per tant, la impossibilitat d’obtenir les dades reals dels sensors resulta directament d’aquí.

3. Thunderboard Sense:

El mateix procés palpitant, observat per Thunderboard React, també es va trobar per a Thunderboard Sense, quan volem aconseguir el procés d’aparellament. Però aquí les coses són encara pitjors: després de l’aparellament, el programa blessTag no pot detectar el SensorTag. Per tant, no hi ha cap dispositiu actiu: cap entitat des d’on l’aplicació blessTags adquireixi les dades.

4. CC2541DK:

El comportament és idèntic al de CC2650STK (versió de firmware 1.40). A cada intent de connexió, rebreu el següent missatge d'error: "Torneu a connectar el dispositiu".

Per tant, en conclusió, dins d’aquesta versió de Windows 10 (Creators Update), és impossible comunicar-se amb cap dels quatre tipus de SensorTags assenyalats anteriorment. En conseqüència, menciono (una vegada més) que aquí he utilitzat la mateixa versió de programari que també he fet servir en totes les proves realitzades a Windows 10 Anniversary Update.

Pas 4: Windows 10: actualització de Fall Creators: versió 1709

Image
Image

Aquesta versió de Windows 10 (1709 - OS Build 16299.19) és un gran pas endavant, en comparació amb Windows 10 Creators Update (eren a BLE gairebé res no funciona), però encara té un llarg camí per arribar al nivell de Windows 10 Anniversary Update (1607) sistema operatiu

Però vegem per què he fet aquesta afirmació:

1. CC2650STK (versió de firmware 1.40) i CC2541DK:

Tractaré aquests dos dispositius aquí simultàniament perquè el seu comportament relacionat amb el sistema operatiu Windows 10 (1709) és similar.

L’operació d’aparellament i la lectura, des dels serveis d’accés genèric i d’informació de dispositius, funcionen perfectament sense cap tipus de problema.

Els problemes només es produeixen quan volem llegir informació dels sensors. El mecanisme de transferència de dades mitjançant notificacions no funciona en absolut.

L’única manera d’obtenir dades dels sensors incrustats al SensorTag és mitjançant el mecanisme de lectura directa del dispositiu. Aquest enfocament té dos problemes: (1) una velocitat de transferència de dades inferior (com hem mostrat més amunt) i (2) si tots els sensors accepten un dels dos mètodes de transferència de dades (mitjançant lectura i notificació), es poden activar els botons del SensorTag. interrogat només mitjançant el mecanisme de notificació. Gràcies a aquesta "característica" del sistema operatiu Windows 10 (1709), l'aplicació blessTags implementa, a partir de la versió 9.7.8.0, el mètode de lectura per a l'adquisició de dades també.

Apareix un problema amb el CC2650STK SensorTag que té la versió de firmware 1.20. Si el procés d’aparellament i lectura de dades del servei d’Accés genèric funciona molt bé, el procés de lectura dels serveis d’informació de dispositius no és possible. A més, la lectura dels sensors (d’aquest SensorTag amb aquesta versió de firmware) no funciona mitjançant cap dels dos mecanismes possibles (lectura o notificació).

2. Thunderboard React:

En el mateix mode que a Windows 10 Creators Update, el SensorTag apareix i desapareix quan volem afegir un dispositiu Bluetooth nou. El mateix comportament es pot ressaltar al centre d’acció del botó d’acció ràpida de Bluetooth si es mostren repetidament “No està connectat” i “Thunderboard React” (vegeu a la pel·lícula següent aquest procés a partir de l’índex de temps 5.14 s). Immediatament podem concloure que Thunderboard React és culpable, principalment a causa d'una implementació errònia del mecanisme publicitari per part dels enginyers de Silicon Labs. Però, cercant a Internet, notarem que altres usuaris van informar del mateix problema a altres tipus de dispositius BLE, després d'instal·lar Fall Creators Actualització: per exemple, visualitzeu aquesta pel·lícula a YouTube.

Després d’aparellar SensorTag, l’aplicació blessTags no pot trobar el dispositiu Thunderboard React. Per tant, en aquest moment res no funciona: l'accés genèric i els serveis d'informació del dispositiu o l'adquisició de dades dels sensors incrustats al Thunderboard React SensorTag.

3. Thunderboard Sense:

El mode de comportament és similar al del Thunderboard React. Es mostra aquest dispositiu Bluetooth i desapareix repetidament. Quan el procés de sincronització ha tingut èxit, és possible agafar dades del servei d'accés genèric. Però a partir d’aquest moment ja no funciona res.

Com a conclusió, a Windows 10 Fall Creators Update (1709, versió 16229.19) només funcionen les etiquetes SensorT produïdes per TI (CC2650STK i CC2541DK). A més, només funcionen en mode de lectura. Però atenció! Només el microprogramari CC2650STK versió 1.40 funcionarà en aquest mode. Malauradament, quan compreu un CC2650STK, teniu moltes possibilitats de prendre un dispositiu amb la versió 1.20 del firmware. Per tant, per poder comunicar-vos amb un tipus d’aquest tipus de SensorTag una actualització, cal almenys la versió 1.40 del firmware.

Associat a aquest pas, presento una pel·lícula que demostra totes aquestes afirmacions fetes anteriorment per a Windows 10 Fall Creators Update.

Des de la primera versió de Windows 10 Fall Creators Update (versió 16229.19), el 17 d’octubre de 2017, no hi ha hagut cap millora ni correcció d’errors relacionats amb Bluetooth LE fins a KB4054517 (publicat el 12 de desembre de 2017). A KB4054517 (OS Build 16299.125) hi ha un canvi clau a Bluetooth LE (vegeu aquí): "Soluciona el problema amb dispositius Bluetooth personalitzats que no admeten enllaços". Com que aquest missatge és molt críptic, he decidit reprendre totes les meves anàlisis fetes fins ara i veure si hi ha millores en comparació amb la primera versió de Windows 10 Fall Creators Update (versió 16229.19). … i una petita sorpresa, ara mateix puc obtenir: (1) dades de Thunderboard Sense (dels sensors incrustats al SensorTag però només mitjançant el mecanisme de lectura) i (2) tota la informació dels serveis d'accés genèric i d'informació de dispositius. No hi ha altres millores.

Pas 5: Windows 8

Com a primer sistema operatiu Microsoft amb suport BLE, la implementació és satisfactòria, però està per ser excel·lent. Els únics dispositius que funcionen amb aquest sistema operatiu són CC2650STK i CC2541DK.

Establint el temps d'adquisició a 150 [ms], per al CC2650STK, podem obtenir les dades (de tots els sensors incrustats), complint la freqüència de mostreig de 150 [ms], a través del mecanisme de notificació sense problemes. Malauradament, mitjançant el mecanisme de lectura CCC2650STK, podem obtenir dades (de tots els sensors) amb un període de 2 segons.

La situació empitjora quan parlem de CC2541DK. Mitjançant el mecanisme de notificació, les dades s’obtenen amb un període de 0,4 … 0,6 segons. Mentre fem servir el mecanisme de lectura, podem recuperar les dades amb un període fluctuant de 2,8 … 3 segons. Les condicions són les mateixes: període d'adquisició 150 [ms] de tots els sensors incrustats al CC2541DK SensorTag.

Pas 6: Windows 7

La companyia Microsoft ha afegit suport per a la pila Bluetooth Low Energy (BLE) començant pel sistema operatiu Windows 8. Han proporcionat una API que permet a les aplicacions accedir a dispositius BLE.

Però Microsoft no ha portat les API BLE a Windows 7. La pila integrada de Windows 7 només admet la versió Bluetooth 2.1 / 3.0, no hi ha compatibilitat amb BLE (4.0, 4.1 o 4.2). Per tant, des del punt de vista d’un desenvolupador, és impossible comunicar-se amb Windows 7 amb un dispositiu BLE que utilitza la pila de Windows 7.

L'empresa TI té un programa anomenat BLE Device Monitor que és capaç de: (1) executar-se a Windows 7 i (2) comunicar-se amb un SensorTag. Però heu d’utilitzar per a ells un dongle USB especial (per exemple, CC2540 Bluetooth Low Energy USB). Si el codi font del dongle USB és gratuït, el codi font del monitor de dispositiu BLE no està disponible, només és per a ús intern de l’empresa TI.

Pas 7: Conclusions

Conclusions
Conclusions

L’actualització de l’aniversari de Windows 10 (versió 1607) és la millor versió de Windows que ha fet mai Microsoft des del punt de vista dels dispositius Bluetooth de baixa energia (BLE): SensorTags en el nostre cas. Obbviament, això també es deu a la considerable quantitat de millores que es van produir a nivell Bluetooth LE en les següents versions del sistema operatiu (vegeu per obtenir més informació: https://support.microsoft.com/en-us/help/4000825): 14393,51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 i 14393.1083.

L’aplicació blessTags (BLE SensorTags) es pot descarregar des de les aplicacions de Windows Store: https://www.microsoft.com/store/apps/9p054xsjjr1n. Per obtenir més informació, demostracions, aplicacions pràctiques, exemples, etc., visiteu el següent bloc:

Sintetitzant tots els resultats anteriors obtindrem la taula associada a aquest pas.

Recomanat: