Tabla de contenido:

Análisis del sistema Bluetooth de Windows: un enfoque SensorTag: 7 pasos (con imágenes)
Análisis del sistema Bluetooth de Windows: un enfoque SensorTag: 7 pasos (con imágenes)

Video: Análisis del sistema Bluetooth de Windows: un enfoque SensorTag: 7 pasos (con imágenes)

Video: Análisis del sistema Bluetooth de Windows: un enfoque SensorTag: 7 pasos (con imágenes)
Video: Auditoría y hacking a dispositivos Bluetooth Low-Energy (BLE) - Pablo González #CyberCamp19 2024, Mes de julio
Anonim
Análisis del sistema Bluetooth de Windows: un enfoque SensorTag
Análisis del sistema Bluetooth de Windows: un enfoque SensorTag

A continuación, haré un análisis del sistema operativo (SO) Windows desde el punto de vista de la comunicación con dispositivos Bluetooth Low Energy - en nuestro caso con diferentes tipos de SensorTags: Thunderboard React, Thunderboard Sense (ambos producidos por Silicon Labs Company), CC2650STK y CC2541DK (ambos desarrollados por Texas Instruments Company).

Paso 1: Análisis del sistema Bluetooth de Windows: un enfoque SensorTag

Análisis del sistema Bluetooth de Windows: un enfoque SensorTag
Análisis del sistema Bluetooth de Windows: un enfoque SensorTag

A continuación, haré un análisis del sistema operativo (SO) Windows desde el punto de vista de la comunicación con dispositivos Bluetooth Low Energy - en nuestro caso con diferentes tipos de SensorTags: Thunderboard React, Thunderboard Sense (ambos producidos por Silicon Labs Company), CC2650STK y CC2541DK (ambos desarrollados por Texas Instruments Company).

A continuación, analizaré Windows 7, Windows 8.1 y las siguientes versiones de Windows 10:

· Actualización de aniversario (publicada el 2 de agosto de 2016; fin del soporte: tentativamente en marzo de 2018), · Creators Update (publicado el 5 de abril de 2017; fin del soporte: provisionalmente en septiembre de 2018) y

· Actualización de Fall Creators (publicada el 17 de octubre de 2017; fin del soporte: tentativamente en marzo de 2019).

El análisis se realizará desde los siguientes puntos de vista:

1. La capacidad del sistema operativo (SO) de emparejarse con un SensorTag;

2. La capacidad de obtener datos de acceso genérico (este es un servicio obligatorio);

3. La capacidad de obtener información del dispositivo (este servicio expone información del fabricante y / o proveedor relacionada con un SensorTag específico);

4. La capacidad de obtener los datos de SensorTag, utilizando el enfoque de lectura y

5. La capacidad de obtener los datos de SensorTag mediante el método de notificación.

Todas las pruebas se realizaron utilizando la versión 9.7.8.0 de la aplicación blessTags. La aplicación blessTags fue construida teniendo como soporte el SDK de Windows - Bluetoothapis. Se utilizaron funciones como BluetoothGATTGetCharacteristicValue, BluetoothGATTGetDescriptorValue, BluetoothGATTGetServices o BluetoothGATTSetCharacteristicValue.

Esta aplicación, la aplicación blessTags (BLE SensorTags), se puede descargar de las aplicaciones de la Tienda Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. Para obtener más información, demostraciones, aplicaciones prácticas, ejemplos, etc., visite el siguiente blog:

Paso 2: Windows 10 - Actualización de aniversario - Versión 1607

Image
Image

Esta versión del sistema operativo Windows 10 es la mejor, desde el punto de vista de los dispositivos Bluetooth Low Energy. Puede emparejarse sin ningún problema con todos los SensorTags (independientemente de la versión de software que se ejecute en ellos), con los que la aplicación blessTags sabe trabajar (CC2650STK, Thunderboard React, Thunderboard Sense y CC2541DK), y toda la información de los Servicios de Bluetooth Get Generic Acceder y obtener información del dispositivo se adquiere sin ningún problema.

Analizando la velocidad de adquisición de datos (para dispositivos CC2650STK y CC2541DK) mediante el mecanismo de notificación y lectura de transferencia de datos, podemos observar lo siguiente:

1. a través del mecanismo de notificación, podemos obtener datos de todos los sensores (ocho) desde 150 [ms] a 150 [ms] sin ningún problema;

2. en cambio, cuando establecemos el tiempo de adquisición en 150 [ms] y usamos el mecanismo de lectura de datos - en la situación más feliz, obtenemos 713 [ms] y en el peor de los casos, obtenemos 840 [ms].

Si analizamos Thunderboard React y Thunderboard Sense, obtendremos los resultados equivalentes: funcionan sin ningún problema en el entorno de Windows 10 Anniversary Update.

De hecho, todas las películas de presentación de las funciones principales de la aplicación blessTags y de las diferentes características específicas (como Gadgets) se han realizado con el soporte de la Actualización de Aniversario de Windows 10.

Paso 3: Windows 10 - Actualización de creadores - Versión 1703

Windows 7
Windows 7

La versión Creators Update de Windows 10 es el peor sistema operativo (SO) desde el punto de vista de los dispositivos Bluetooth Low Energy.

Casi nada funciona. Microsoft reconoció que Creators Update rompió Bluetooth Low Energy (referencia 1 y referencia 2). La compañía Microsoft prometió una revisión lo antes posible. Pero desde entonces han lanzado una versión actualizada de Windows (Fall Creators Update) y no ha sucedido nada; hasta ahora, dentro de la versión de Windows 10 Creators Update, el Bluetooth Low Energy todavía no funciona.

Hay una gran cantidad de publicaciones en foros en las que diferentes personas se quejan sobre diferentes tipos de dispositivos Bluetooth que dejan de funcionar después de actualizar a Creators Update (ver aquí, ver aquí, ver aquí, ver aquí, etc.).

Los resultados, que voy a mostrar de inmediato, se obtuvieron después de muchas pruebas: (1) en una PC de escritorio que tenía una llave USB CSR4.0 Bluetooth (CSR8510 A10) y (2) en una computadora portátil Dell Inspiron P66F con una dispositivo Bluetooth LE integrado. Sé que hay muchas soluciones en Internet para solucionar varios tipos de problemas de Bluetooth. Probé casi todo, pero nada funcionaba (actualice el controlador de Bluetooth, ejecute el solucionador de problemas de Windows, deshabilite y habilite los servicios relacionados con Bluetooth, etc.)

Entonces, presentemos los resultados:

1. CC2650STK:

una. En la versión de firmware 1.40, el emparejamiento del dispositivo SensorTag con Windows es imposible (repetí el proceso varias veces, al menos 8-10 veces, encendí y apagué el Bluetooth y lo intenté nuevamente; los resultados fueron los mismos: era imposible agregar este dispositivo).

B. En la versión de firmware 1.20, la PC descubrió el SensorTag y pude emparejar el SensorTag con la PC.

Además, pude obtener datos de acceso genérico. Pero, en el servicio Get Device Information, de 9 características solo respondieron 6 y solo de ellas fue posible obtener información.

En cambio, no puedo configurar el dispositivo y no puedo recuperar datos de los sensores ni a través del mecanismo de lectura ni a través de las notificaciones.

2. Thunderboard React:

El sistema operativo tiene un comportamiento extraño cuando se inicia el proceso de emparejamiento. En la lista de dispositivos descubiertos, el SensorTag aparece y desaparece (con un período de 1… 1,5 s). Finalmente, cuando un clic del mouse tiene éxito en el SensorTag, el proceso de emparejamiento se completa y los LED del Thunderboard React (el azul y el verde) tienen un período en el que parpadean consecutivamente en un modo atípico.

La lectura de las características del Servicio de Acceso Genérico (0x1800) se puede realizar sin ningún problema, pero la lectura del Servicio de Información del Dispositivo (0x180A) falla en las cuatro características existentes.

Configuración de los sensores (integrados en SensorTag), el modo de adquisición de datos (en Thunderboard React solo tiene la siguiente posibilidad: (1) obtener datos a través de la notificación de 3 sensores y (2) leer datos de los otros cuatro sensores) es imposible. Por lo tanto, la imposibilidad de obtener los datos reales de los sensores resulta directamente de aquí.

3. Sentido de Thunderboard:

Se descubrió que el mismo proceso de pulsación, observado para Thunderboard React, también existe para Thunderboard Sense, cuando queremos lograr el proceso de emparejamiento. Pero aquí, las cosas son aún peores: después del emparejamiento, el programa blessTag no puede detectar el SensorTag. Por lo tanto, no hay ningún dispositivo activo, ninguna entidad desde la que la aplicación blessTags obtenga los datos.

4. CC2541DK:

El comportamiento es idéntico al comportamiento de CC2650STK (versión de firmware 1.40). En cada intento de conexión, recibirá el siguiente mensaje de error: "Intente conectar su dispositivo nuevamente".

Entonces, en conclusión, dentro de esta versión de Windows 10 (Creators Update), es imposible comunicarse con cualquiera de los cuatro tipos de SensorTags señalados anteriormente. En consecuencia, menciono (una vez más) que aquí he usado la misma versión de software que también usé en todas las pruebas realizadas en Windows 10 Anniversary Update.

Paso 4: Windows 10 - Actualización Fall Creators - Versión 1709

Image
Image

Esta versión de Windows 10 (1709 - OS Build 16299.19) es un gran paso adelante, en comparación con Windows 10 Creators Update (estaban en BLE casi nada funciona), pero todavía tiene un largo camino para llegar al nivel de Windows 10 Anniversary Update (1607) sistema operativo

Pero veamos por qué hice esta declaración:

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

Trataré estos dos dispositivos aquí simultáneamente porque su comportamiento relacionado con el sistema operativo Windows 10 (1709) es similar.

La operación de emparejamiento y la lectura, desde los servicios de Acceso Genérico e Información del Dispositivo, están funcionando perfectamente sin ningún tipo de problema.

Los problemas solo ocurren cuando queremos leer información de los sensores. El mecanismo de transferencia de datos a través de notificaciones no funciona en absoluto.

La única forma de obtener datos de los sensores, integrados en el SensorTag, es mediante el mecanismo de lectura directa del dispositivo. Este enfoque tiene dos problemas: (1) menor velocidad de transferencia de datos (como hemos mostrado arriba) y (2) si todos los sensores aceptan uno de los dos métodos de transferencia de datos (a través de lectura y notificación), los botones del SensorTag pueden ser interrogado sólo a través del mecanismo de notificación. Gracias a esta "característica" del sistema operativo Windows 10 (1709), la aplicación blessTags implementa, a partir de la versión 9.7.8.0, también el método de lectura para la adquisición de datos.

Aparece un problema con el CC2650STK SensorTag que tiene la versión de firmware 1.20. Si el proceso de emparejamiento y lectura de datos del servicio de acceso genérico funciona muy bien, el proceso de lectura de los servicios de información del dispositivo no es posible. Además, la lectura de los sensores (de este SensorTag con esta versión de firmware) no funciona a través de ninguno de los dos posibles mecanismos (lectura o notificación).

2. Thunderboard React:

En el mismo modo que en Windows 10 Creators Update, el SensorTag aparece y desaparece cuando queremos agregar un nuevo dispositivo Bluetooth. El mismo comportamiento se puede resaltar en el centro de acción en el botón de acción rápida de Bluetooth donde "No conectado" y "Thunderboard React" se muestran repetidamente (vea en la siguiente película este proceso a partir del índice de tiempo 5.14 s). Inmediatamente podemos concluir que Thunderboard React es culpable, principalmente debido a una implementación defectuosa del mecanismo de publicidad por parte de los ingenieros de Silicon Labs. Pero, al buscar en Internet, notaremos que otros usuarios informaron el mismo problema a otros tipos de dispositivos BLE, después de instalar Fall Creators Actualizar: por ejemplo, ver esta película en YouTube.

Después de emparejar el SensorTag, la aplicación blessTags no puede encontrar el dispositivo Thunderboard React. Entonces, en este punto, nada funciona: el acceso genérico y los servicios de información del dispositivo o la adquisición de datos de los sensores integrados en Thunderboard React SensorTag.

3. Sentido de Thunderboard:

El modo de comportarse es similar al del Thunderboard React. Este dispositivo Bluetooth se muestra y desaparece repetidamente. Cuando el proceso de emparejamiento se realizó correctamente, es posible tomar datos del Servicio de acceso genérico. Pero a partir de este punto, ya nada funciona.

Como conclusión, hasta ahora en Windows 10 Fall Creators Update (1709, compilación 16229.19) solo funcionan los SensorTags producidos por TI (CC2650STK y CC2541DK). Es más, solo funcionan en modo lectura. ¡Pero atención! Solo la versión 1.40 del firmware CC2650STK funcionará en este modo. Desafortunadamente, cuando compra un CC2650STK, tiene muchas posibilidades de adquirir un dispositivo con la revisión de firmware 1.20. Por lo tanto, para poder comunicarse con un tipo de SensorTag de este tipo, es necesario actualizar al menos la versión de firmware 1.40.

Asociado con este paso, presento una película que prueba todas estas declaraciones hechas anteriormente para Windows 10 Fall Creators Update.

Desde el primer lanzamiento de Windows 10 Fall Creators Update (compilación 16229.19), el 17 de octubre de 2017, no ha habido mejoras ni correcciones de errores relacionados con Bluetooth LE hasta KB4054517 (lanzado el 12 de diciembre de 2017). En KB4054517 (compilación del SO 16299.125) hay un cambio clave en Bluetooth LE (consulte aquí): "Soluciona el problema con los dispositivos Bluetooth personalizados que no admiten la vinculación". Dado que este mensaje es muy críptico, he decidido reanudar todos los análisis realizados hasta ahora y ver si hay alguna mejora en comparación con la primera versión de Windows 10 Fall Creators Update (compilación 16229.19). … y una pequeña sorpresa, ahora mismo puedo obtener: (1) datos de Thunderboard Sense (de los sensores integrados en el SensorTag pero solo a través del mecanismo de lectura) y (2) toda la información de los servicios de acceso genérico e información del dispositivo. No hay otras mejoras.

Paso 5: Windows 8

Como primer sistema operativo de Microsoft con soporte BLE, la implementación es satisfactoria, pero está lejos de ser excelente. Los únicos dispositivos que funcionan con este sistema operativo son CC2650STK y CC2541DK.

Estableciendo el tiempo de adquisición en 150 [ms], para el CC2650STK, podemos obtener los datos (de todos los sensores embebidos), cumpliendo con la frecuencia de muestreo de 150 [ms], a través del mecanismo de notificación sin ningún problema. Desafortunadamente, utilizando el mecanismo de lectura CCC2650STK, podemos obtener datos (de todos los sensores) en un período de 2 segundos.

La situación empeora cuando hablamos de CC2541DK. A través del mecanismo de notificación, los datos se obtienen con un período de 0,4… 0,6 segundos. Mientras usamos el mecanismo de lectura, podemos recuperar los datos con un período de fluctuación de 2.8… 3 segundos. Las condiciones son las mismas: período de adquisición 150 [ms] de todos los sensores integrados en el CC2541DK SensorTag.

Paso 6: Windows 7

La compañía Microsoft ha agregado soporte para la pila Bluetooth Low Energy (BLE) comenzando con el sistema operativo Windows 8. Han proporcionado una API que permite a las aplicaciones acceder a dispositivos BLE.

Pero Microsoft no ha portado las API de BLE a Windows 7. La pila incorporada de Windows 7 solo admite la versión 2.1 / 3.0 de Bluetooth, no hay soporte para BLE (4.0, 4.1 o 4.2). Entonces, desde el punto de vista de un desarrollador, es imposible comunicarse, en Windows 7, con un dispositivo BLE usando la pila de Windows 7.

La compañía de TI tiene un programa llamado BLE Device Monitor que puede: (1) ejecutarse en Windows 7 y (2) comunicarse con un SensorTag. Pero debe utilizar para estos un dispositivo USB especial (por ejemplo, CC2540 Bluetooth Low Energy USB). Si el código fuente del dongle USB es gratuito, el código fuente del BLE Device Monitor no está disponible; es solo para uso interno de la empresa de TI.

Paso 7: Conclusiones

Conclusiones
Conclusiones

La actualización de aniversario de Windows 10 (versión 1607) es la mejor versión de Windows jamás realizada por Microsoft desde el punto de vista de los dispositivos Bluetooth de baja energía (BLE): SensorTags en nuestro caso. Obviamente, esto también se debe a la considerable cantidad de mejoras que se llevaron a cabo en el nivel de Bluetooth LE en las siguientes versiones de SO (consulte para obtener más información: https://support.microsoft.com/en-us/help/4000825): 14393.51, 14393.105, 14393.189, 14393.222, 14393.321, 14393.351, 14393.726 y 14393.1083.

La aplicación blessTags (BLE SensorTags) se puede descargar de las aplicaciones de la Tienda Windows: https://www.microsoft.com/store/apps/9p054xsjjr1n. Para obtener más información, demostraciones, aplicaciones prácticas, ejemplos, etc., visite el siguiente blog:

Sintetizando todos los resultados anteriores obtendremos la tabla asociada con este paso.

Recomendado: