Tema 6

Comunicaciones inalámbricas en sistemas embebidos

Contenidos

  • Introducción.

  • Conceptos básicos.

  • Modelo de referencia.

  • Comunicación inalámbrica por infrarrojos.

  • Comunicación inalámbrica por radiofrecuencia.

Introducción

Introducción

  • Comunicación inalámbrica:

    • El emisor/receptor no se encuentran unidos por un cable.

    • Generalmente utiliza una modulación de ondas electrómagnéticas.

    • Problemas de seguridad (safety/security) → (interferencias/confidencialidad).

Introducción

  • Medios físicos de transmisión:

    • Guiados (cableados).

      • Mejor protección ante perturbaciones externas.

      • Menor atenuación.

      • Poca flexibilidad.

        → Cable cobre y fibra óptica.

    • No guiados (inalámbricos):

      • Poca protección ante perturbaciones externas.

      • Mayor atenuación.

      • Flexibilidad total.

        → Aire y vacío (ondas de radio → normativa).

Conceptos básicos

Conceptos básicos

  • Nodo:

    • Punto de conexión que implementa la capa física.

  • Protocolo:

    • Esquema sistemático empleado para transferir datos usando formas de onda y otros (mensajes, direcciones, etc).

  • Half-duplex:

    • Comunicación bidireccional secuenciada (una dirección cada vez).

  • Full-duplex:

    • Comunicación bidireccional simultánea (dos direcciones simultáneas).

Conceptos básicos

  • Gestión de colisiones:

    • Dos o más nodos intentan acceder al medio de transmisión simultáneamente.

  • Detección de errores:

    • Capacidad de detectar errores en los datos recibidos.

  • Corrección de errores:

    • Capacidad de corregir errores en los datos recibidos.

  • Velocidad de transmisión:

    • Tasa de datos de salida del transmisor (bits/s, bauds/s).

  • Topología de red:

    • Forma en que está diseñada la red (bus, anillo, estrella).

Conceptos básicos

  • Codificación:

    • Traducción de valores de origen en códigos destino para facilitar su transmisión en un medio físico.

basic encoding

Conceptos básicos

  • Modulación:

    • Proceso de variar una característica de una onda portadora de acuerdo con una señal que transporta información.

basic modulation

Modelo de referencia

Modelo de referencia

osi model

Modelo de referencia

osi layers

Modelo de referencia

osi tcp

Comunicación inalámbrica por infrarrojos

IrDA

IrDA

  • IrDA (Infrared Data Association)

  • Impulsado por asociación fabricantes.

  • Comunicación serie half-duplex.

  • Distancia soportada de 1 m (típica) y 10 m (con dos leds emisores).

  • Velocidad de transmisión de:

    • 115,2 Kbits/s (IrDA 1.0).

    • 4 Mbits/s (IrDA 1.1).

  • Popular a finales de la década de los 90.

  • Desplazado en la actualizada por comunicaciones inalámbricas por radiofrecuencia como Bluetooth.

IrDA

Transceptor IrDA

irda transceiver

IrDA

Adaptador IrDA

irda dongle

IrDA

Módulo IrDA

irda board

IrDA

Codificación de datos

irda encoding

IrDA

Formato de trama

irda frame

IrDA

Capas del protocolo

irda layers

IrDA

  • Capas del protocolo:

    • SIR/FIR: Serial/Fast Infrarred.

    • IrLAP: IrDA Link Access Protocol.

    • IrLMP: IrDA Link Management Protocol.

    • TinyTP: Tiny Transport Protocol.

    • IrCOMM: Serial and Parallel port emulation.

    • IrOBEX: IrDA Object Exchange.

Comunicación inalámbrica por radiofrecuencia

Comunicación inalámbrica por radiofrecuencia

wireless technologies

Comunicación inalámbrica por radiofrecuencia

wireless cost

Banda ISM

Banda ISM

  • ISM (Industrial, Scientific and Medical).

  • No necesita licencia (dentro de unos límites de potencia).

  • Puede utilizar protocolos propietarios.

  • Bandas de trabajo (Europa):

    • 433 MHz

    • 868 MHz

    • 2,4 GHz

ism world

Banda ISM

ism spectrum

Banda ISM

Límites de potencia

ism limits

ZigBee

ZigBee

  • Desarrollado por consorcio de empresas → ZigBee Alliance.

  • Estándar de comunicación inalámbrico bidireccional.

  • Aplicación en:

    • Automatización de edificios → domótica.

    • Automatización industrial → redes de sensores.

    • Sensores médicos.

  • Estándar IEEE 802.15.4 → MAC/PHY.

ZigBee

Capas (modelo OSI)

zigbee protocol layers

ZigBee

Capas (modelo OSI)

zigbee protocol stack

ZigBee

  • Define tres tipos de dispositivos:

    • Coordinator (coordinador).

    • Router.

    • End Device (dispositivo final).

ZigBee

  • Define tres tipos de dispositivos:

zigbee device types

ZigBee

  • Coordinator (coordinador):

    • Selecciona un canal, un identificador e inicia una PAN (Personal Area Network).

    • Permite a routers y a dispositivos finales unirse a la PAN.

    • No puede dormir (conectado a la red eléctrica).

    • Rutado de paquetes.

    • Almacena paquetes de dispositivos finales para permitirles dormir.

ZigBee

  • Router:

    • Debe unirse a una PAN antes de transmitir, recibir o rutar paquetes.

    • Permite a routers y a dispositivos finales unirse a la PAN.

    • No puede dormir (conectado a la red eléctrica).

    • Rutado de paquetes.

    • Almacena paquetes de dispositivos finales para permitirles dormir.

ZigBee

  • End Device (dispositivo final):

    • Debe unirse a una PAN antes de transmitir o recibir paquetes.

    • No permite a routers ni a dispositivos finales unirse a la PAN.

    • Siempre debe transmitir y recibir paquetes a través de su padre (un coordinador o un router).

    • Puede dormir (para ahorrar batería).

    • No puede rutar paquetes.

zigbee end device

ZigBee

Topologías de red

zigbee network topology

ZigBee

  • Selección de canal:

    • El estándar IEEE 802.15.4 define 16 canales en la banda de 2,4 GHz.

    • El coordinador debe seleccionar un buen canal y un PAN ID único:

      • Realiza escaneo de canales para descubrir actividad RF.

        Energy scan

      • Realiza escaneo de canales para descubrir PAN cercanas.

        PAN scan

ZigBee

  • Selección de canal:

zigbee channel selection

ZigBee

  • Selección del PAN ID:

    • Cada PAN utiliza un identificador único.

    • Los dispositivos pueden estar preconfigurados para unirse a un PAN ID determinado o pueden descubrir y conectarse a PAN cercanas.

    • Originalmente el PAN ID era de 16 bits:

      • Utilizado en el campo de dirección de la capa MAC.

      • Posibilidad de conflictos entre redes cercanas.

    • Extended PAN ID de 64 bits:

      • Resolución de conflictos con PAN ID de 16 bits.

ZigBee

  • Direccionamiento de dispositivos:

    • Cada dispositivo tiene una dirección única de 64 bits asignada durante su fabricación.

    • Cada dispositivo recibe una dirección de 16 bits cuando se une a una red → network address.

      • El coordinador siempre tiene la dirección 0x0000.

      • El resto de dispositivo recibe una dirección aleatoria.

    • En las transmisiones se utiliza la dirección de 16 bits para el origen y el destino.

ZigBee

  • APS (Application Support Sub-layer):

    • Capa de aplicación.

    • Orientada a objetos.

    • Añade soporte para los siguientes objetos:

      • Profile.

      • Cluster.

      • Endpoint.

ZigBee

  • APSProfile:

    • Descripción de dispositivos incluyendo su funcionalidad requerida.

    • Perfiles públicos → ZigBee Alliance.

    • Perfiles privados → Fabricante.

    • Ejempos:

      • Home Automation.

      • Smart Energy.

      • Commercial Building Automation.

    • Cada perfil tiene asociado una identificador de 16 bits (Profile ID).

      • El Profile ID 0x0000 está reservado al ZigBee Device Profile (ZDP) y debe estar implementado en todos los dispositivos.

ZigBee

  • APSCluster:

    • Tipo de mensaje de aplicación dentro de un perfil.

    • Definen funciones únicas, servicios o acciones.

    • Ejemplos:

      Home Automation:

      • On/Off.

      • Level Control.

      • Color control.

    • Cada cluster tiene asociado una identificador de 16 bits (Cluster ID).

ZigBee

  • APSEndpoint:

    • Cada endpoint equivale a una aplicación distinta (funcionalmente equivale a un puerto TCP/IP).

    • Un dispositivo puede soportar uno o más endpoints.

    • Cada endpoint se asocia a un determinado perfil.

    • Ejemplos:

      • Un dispositivo puede implementar un endpoint del perfil Smart Energy y segundo endpoint con un perfil privado.

    • Cada endpoint se identifica con un byte (rango válido de 1 a 240).

      • El endpoint 0 está asociado al ZigBee Device Profile (ZDP) y se denomina ZigBee Device Objects (ZDO) endpoint.

ZigBee

zigbee zdo commands

ZigBee

Módulo XBee ZigBee de DIGI

zigbee xbee

ZigBee

Adaptadores de XBee para Arduino

zigbee xbee arduino1 zigbee xbee arduino2

ZigBee

  • Versiones del firmware para el módulo XBee ZigBee:

    • 20xx - Coordinator - AT/Transparent Operation

    • 21xx - Coordinator - API Operation

    • 22xx - Router - AT/Transparent Operation

    • 23xx - Router - API Operation

    • 28xx - End Device - AT/Transparent Operation

    • 29xx - End Device - API Operation

ZigBee

Comparación entre el firmware AT/Transparent y el API del módulo XBee

zigbee xbee features

ZigBee

  • Interfaz de comunicación con el módulo XBee:

    • UART (por defecto 9600-8-N-1).

    • CTS y RTS opcionales.

zigbee xbee uart connection

ZigBee

  • Interfaz de comunicación con el módulo XBee:

    • TX/RX buffers.

zigbee xbee uart buffers

ZigBee

  • Modos de operación del módulo XBee:

    • Idle mode.

    • Transmit mode.

    • Receive mode.

    • Command mode.

    • Sleep mode.

ZigBee

  • Modo comando del módulo XBee:

    • Entrar al modo comando:

      • No enviar nada durante 1 segundo (command guard time).

      • Enviar “+” en 1 segundo (command sequence character).

      • No enviar nada durante 1 segundo.

        → Se recibe respuesta “OK\r”.

    • Enviar los comandos AT deseados:

      zigbee xbee command mode
    • Salir del modo comando:

      • Enviar comando “ATCN” o esperar command mode timeout.

ZigBee

  • Ejemplo de Comandos AT de configuración del módulo XBee:

zigbee xbee command configuration

ZigBee

  • Comandos AT del módulo XBee utilizados en un coordinador para crear un red:

zigbee xbee command coordinator

ZigBee

  • Ejemplo de creación de la red en un coordinador:

    • Configurar el PAN ID deseado o 0 para generar PAN ID aleatorio [ID].

    • Configurar la máscara de canales a escanear [SC].

    • Guardar los cambios con [WR].

    • Aplicar los cambios con [AC] o [CN].

    • Monitorizar el estado con [AI].

ZigBee

  • Comandos AT del módulo XBee utilizados en un dispositivo final para unirse a una red:

zigbee xbee command end device

ZigBee

  • Proceso de unión a una red de un dispositivo final:

    • Descubrir las redes cercanas.

      PAN scan

    • Unirse a la red deseada.

      Association request

ZigBee

  • Ejemplo de unión a una red de un dispositivo final:

    • Configurar el PAN ID deseado o 0 para unirse a cualquier PAN [ID].

    • Configurar la máscara de canales a escanear [SC].

    • Aplicar los cambios con [AC] o [CN].

    • Monitorizar el estado con [AI]

    • Si el dispositivo se une a la red comprobar:

      • El canal con [CH].

      • El PAN ID de 64 bits con [OP].

      • El PAN ID de 16 bits con [OI].

      • El perfil con [ZS].

Bluetooth

Bluetooth

  • Impulsado por Ericsson y posteriormente por Nokia.

  • Actualmente mantenido por el Bluetooth SIG (Special Interest Group).

  • Estándar IEEE 802.15.1

  • Banda ISM de 2,4 GHz.

  • Distancia máxima de 10 m @ 1 mW o de 100 m @ 100 mW.

  • Velocidad de transmisión 721 kbps (asimétrico) o 432 kbps (simétrico).

bluetooth logo

Bluetooth

  • FHSS (Frequency Hopping Spread Spectrum):

    • 79 canales en banda de 2,402 a 2,480 GHz.

    • 1600 hops/s.

bluetooth fhss

Bluetooth

Interferencia de frecuencias

bluetooth interference

Bluetooth

AFH (Adaptative Frequency Hopping)

bluetooth afh

Bluetooth

  • Comunicación punto-punto y punto-multipunto:

    • Punto-punto

      1 maestro + 1 esclavo.

    • Punto-multipunto

      1 maestro + (n ≤ 7) esclavos.

Bluetooth

  • Piconet:

    • Red formada por 1 maestro + n esclavos.

bluetooth piconet

Bluetooth

  • Scatternet:

    • Unión de varias piconets.

    • Algunos nodos tiene funcionalidad dual maestro/esclavo.

bluetooth scatternet

Bluetooth

Capas del protocolo

bluetooth protocol stack

Bluetooth

  • Capas del protocolo:

    • LMP: Link Manager Protocol.

    • HCI: Host Controller Interface.

    • L2CAP: Logical Link Control and Adaptation Protocol.

    • RFCOMM: Radio Frequency Communications Protocol.

    • SDP: Service Discovery Application Profile.

Bluetooth

Capas del protocolo (modelo OSI)

bluetooth osi

Bluetooth

  • Perfiles:

    • Definición de posibles aplicaciones y comportamientos específicos para dispositivos.

  • Ejemplos de perfiles:

    • FTP (File Transfer Protocol)

      Transferencia de ficheros. Da acceso remoto a los sistemas de ficheros, permitiendo listados de directorios y cambios a éstos, obtención, envío y borrado de ficheros.

    • HFP (Hands-Free Profile)

      Manos libres. Usado comúnmente para permitir la comunicación con teléfonos móviles dentro de un coche.

Bluetooth

  • Ejemplos de perfiles:

    • SPP (Serial Port Profile)

      Puerto serie. Simula una línea serie y provee una interfaz de reemplazo de comunicaciones basadas en RS-232, con las señales de control típicas.

    • A2DP (Advanced Audio Distribution Profile)

      Distribución de audio avanzada. Define cómo se puede transmitir un stream estéreo en dos canales a una radio o unos auriculares.

    • VDP (Video Distribution Profile)

      Distribución de vídeo. Habilita el transporte de un stream de vídeo. Puede usarse para distribuir un vídeo grabado desde cualquier fuente a un reproductor o televisor.

Bluetooth LE

Bluetooth LE

  • Bluetooth LE (Low Energy) o BLE.

  • Variación del estándar Bluetooth para bajo coste y bajo consumo.

  • Décima parte del consumo de Bluetooth.

  • Compite directamente con ZigBee.

  • Perfiles específicos:

    • Health care profiles.

    • Sports and fitness profiles.

    • Proximity sensing.

    • Alerts and time profiles.

Bluetooth LE

ble comparison

Bluetooth LE

Capas del protocolo

ble protocol stack

Bluetooth LE

  • Capas del protocolo:

    • ATT: Attribute Protocol.

      Servidor o cliente.

    • GATT: Generic Attribute Profile.

      Servicios, características y perfiles.

    • GAP: Generic Access Profile.

      Descubrimiento, seguridad y conectividad.

Bluetooth LE

Servicios, características y perfiles.

ble gatt

Bluetooth LE

ble model

Bluetooth LE

Topología de red (Connection-Oriented)

ble central peripheral

Bluetooth LE

Topología de red (Broadcasting)

ble broadcaster observer

Bluetooth LE

Bajo consumo → Beacon interval

ble beacon interval

WiFi

WiFi

  • WLAN (Wireless Local Area Network).

  • También de nominada WiFi (Wireless Fidelity).

  • Impulsado por consorcio de empresas.

  • Estándar IEEE 802.11

  • Banda de frecuencia de 2,4 GHz y 5,7 GHz.

  • Velocidad máxima de transmisión:

    • 802.11 → 1 Mbits/s @ 2,4 GHz

    • 802.11b → 11 Mbits/s @ 2,4 GHz

    • 802.11g → 54 Mbits/s @ 2,4 GHz

    • 802.11n → 300 Mbits/s @ 2,4 GHz

    • 802.11a → 54 Mbits/s @ 5,7 GHz

    • 802.11ac → 1 Gbits/s @ 5,7 GHz

WiFi

wifi generations

WiFi

  • Banda de frecuencia dividida en canales de 5 MHz.

  • La señal WiFi ocupa:

    • 22 MHz (802.11b)

    • 20 MHz (802.11g)

  • Problema con solape de canales:

wifi channels

WiFi

wifi scan

WiFi

Mejora en banda de 5,7 GHz

wifi channels 5ghz

WiFi

wifi channels all

WiFi

wifi modulation

WiFi

  • Modulación:

    • 802.11b → DSSS (Direct Sequence Spread Sequence)

    • 802.11g → OFDM (Orthogonal frequency-division multiplexing)

wifi modulation details

WiFi

  • Modo infraestructura:

    • Comunicación cliente-servidor.

    • El servidor es el punto de acceso (AP).

    • Toda los datos pasan a través del punto de acceso.

wifi ap

WiFi

  • Modo ad-hoc:

    • Comunicación cliente-cliente (punto a punto).

    • Cada nodo actúa como cliente y como punto de acceso.

wifi adhoc

WiFi

Capas del protocolo (modelo OSI)

wifi osi

WiFi

  • Curiosidades → Guifi:

    • Red de telecomunidaciones abierta, libre y neutral.

    • Comenzó en 2004 para resolver las dificultades de acceso a la red en áreas rurales.

    • Se vertebra a partir de un acuerdo de interconexión en el que cada participante al conectar extiende la red y obtiene conectividad.

    • Nodos en la UPV:

      • ETSINF (operativo).

      • ETSIT (en construcción desde 2011).

WiFi

ESP32

ESP32

  • Microprocesador:

    • ESP32 Xtensa dual-core 32-bit LX6 240MHz

    • 448 KB ROM.

    • 520 KB SRAM.

    • 16 KB SRAM en el RTC.

  • Periféricos:

    • 4 MB de memoria FLASH SPI.

    • UART, SPI, SDIO, I2C, I2S, TWAI.

    • GPIOs, PWM, contador de pulsos.

    • ADC, DAC, sensor táctil capacitivo.

ESP32

  • WiFi:

    • 802.11b/g/n

    • Tasa de bits de hasta 150 Mbps en 802.11n.

  • Bluetooth:

    • Bluetooth 4.2 (estándard).

    • Bluetooth LE.

    • AFH.

ESP32

Tarjeta ESP32-DevKitV1

esp32 devkitv1

ESP32

Módulo ESP32-WROOM-32

esp32 wroom 32

ESP32

Diagrama de bloques del ESP32-­WROOM-­32

esp32 wroom diagram

ESP32

Diagrama de bloques del ESP32

esp32 diagram

ESP32

Pinout del ESP32

esp32 pinout

ESP32

ESP32

Conexión del ESP32 como periférico de Arduino

esp32 arduino

ESP32

Carga del firmware de comandos AT en el ESP32 a través del COM4

C:
cd "%LOCALAPPDATA%\Arduino15\packages\esp32\tools\esptool_py\3.0.0"

esptool.exe --chip esp32 --port COM4 --baud 921600 write_flash -z 0 C:\EMBEB\factory_WROOM-32.bin

esptool.py v3.0-dev
Serial port COM4
Connecting.....
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b8:f0:09:cd:36:d8
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 4194304 bytes to 916930...
Wrote 4194304 bytes (916930 compressed) at 0x00000000 in 18.6 seconds (effective 1800.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

ESP32

Programa de puente serie para Arduino:

void setup() {
  Serial.begin(115200);
  Serial1.begin(115200);
}

void loop() {
  /* UART0 -> UART1 bridge */
  if (Serial.available()) {
    Serial1.write(Serial.read());
  }
  /* UART1 -> UART0 bridge */
  if (Serial1.available()) {
    Serial.write(Serial1.read());
  }
}

ESP32

Funcionamiento del ESP32 como periférico de Arduino

esp32 at

ESP32

ESP32

Programa de prueba para ESP32:

void setup() {
  Serial.begin(115200);
  Serial.println("ESP32");

  Serial1.begin(115200, SERIAL_8N1, 4, 5);    // RX1 pin 4, TX1 pin 5
  Serial2.begin(115200, SERIAL_8N1, 16, 17);  // RX2 pin 16, TX2 pin 17
}

void loop() {
  Serial1.println("ESP32 serial 1");
  Serial2.println("ESP32 serial 2");
  delay(1000);
}

Programa de prueba para Arduino:

void setup() {
  Serial.begin(115200);
  Serial.println("Arduino");

  Serial1.begin(115200);  // RX1 pin 19, TX1 pin 18
}

void loop() {
  if (Serial1.available()) {
    Serial.write(Serial1.read());
  }
}

ESP32

ESP32

GPRS

GPRS

  • GPRS (General Packet Radio Service).

  • Extensión del sistema GSM para transmisión de datos utilizando la misma red celular.

  • Estándar ETSI y posteriormente 3GPP.

  • Soportado en dispositivos 2G y posteriores.

  • Velocidad máxima de transmisión de 114 kbit/s.

  • Conexión a través de APN (Access Point Name).

GPRS

Generaciones (evolución)

gprs generations

GPRS

Generaciones (comparativa)

gprs standards

GPRS

Concepto M2M (Machine-to-Machine)

gprs m2m

GPRS

Concepto M2M (Machine-to-Machine) complementado por GPS

gprs m2m gps

GPRS

Tarjeta GPRS/GPS

gprs sim808 module1

GPRS

Tarjeta GPRS/GPS

gprs sim808 module2

GPRS

  • Módulo SIM808:

    • Módulo GSM/GPRS.

    • Quad-band 850/900/1800/1900MHz.

    • GPS integrado.

gprs sim808

GPRS

Diagrama de bloques del módulo SIM808

gprs sim808 diagram

GPRS

  • Funcionamiento como periférico: