Aller au contenu

BLE & communications de courte portée

Bluetooth Low Energy 5.x, NFC et RFID couvrent la plage 0–100 m avec des consommations de quelques µA à quelques mA — le trio de référence pour les objets portables, l'inventaire et le provisioning.


BLE 5.x — couche physique et performances

Bluetooth Low Energy (BLE) a été introduit dans la spécification Bluetooth 4.0 (2010) et évolue régulièrement. BLE 5.x (2016+) triple le débit et quadruple la portée par rapport à BLE 4.2 grâce à de nouvelles options PHY.

PHY disponibles

PHY Débit utile Portée typique Sensibilité Usage
LE 1M 1 Mbit/s 40–100 m −95 dBm Standard, compatible 4.x
LE 2M 2 Mbit/s 20–60 m −93 dBm Transferts rapides, HID
LE Coded S=2 500 kbit/s 200–400 m −103 dBm Longue portée
LE Coded S=8 125 kbit/s 400–1000 m −106 dBm Longue portée max

La PHY Coded utilise un code FEC (Forward Error Correction) qui améliore la sensibilité au prix du débit. Utile pour les beacons industriels ou les capteurs en extérieur.

Advertising — legacy vs extended

Mode BLE version Canaux Payload max Scan response
Legacy advertising 4.x + 5.x 3 (37,38,39) 31 octets +31 octets
Extended advertising 5.0+ 3 + secondaires 255 octets Oui
Periodic advertising 5.0+ Secondaires 255 octets Sync possible

L'advertising extended permet de diffuser des payloads de 255 octets sur des canaux secondaires (0–36), réduisant les collisions sur les 3 canaux primaires.


Stack BLE — architecture en couches

graph TB
    A[Application\nLogique métier, données] --> B
    B[GATT\nGeneric Attribute Profile\nProfils, services, caractéristiques] --> C
    C[ATT\nAttribute Protocol\nLecture/écriture d'attributs] --> D
    D[L2CAP\nLogical Link Control\nMultiplexage, segmentation] --> E
    E[HCI\nHost Controller Interface\nSéparation host/controller] --> F
    F[Link Layer\nConnexion, canaux, crypto] --> G
    G[PHY\n1M / 2M / Coded\nModulation GFSK]

    style A fill:#2d6a4f,color:#fff
    style B fill:#1b4332,color:#fff
    style C fill:#1b4332,color:#fff
    style D fill:#40916c,color:#fff
    style E fill:#52b788,color:#fff
    style F fill:#74c69d,color:#fff
    style G fill:#95d5b2,color:#fff

Profils GATT — services et caractéristiques

GATT (Generic Attribute Profile) structure les données BLE en une hiérarchie Profil → Service → Caractéristique → Descripteur.

Hiérarchie

Profil : Heart Rate Monitor
  Service : Heart Rate (UUID 0x180D)
    Caractéristique : Heart Rate Measurement (UUID 0x2A37)
      Propriétés : Notify
      Descripteur : Client Characteristic Configuration (CCCD, UUID 0x2902)
    Caractéristique : Body Sensor Location (UUID 0x2A38)
      Propriétés : Read
  Service : Battery Service (UUID 0x180F)
    Caractéristique : Battery Level (UUID 0x2A19)
      Propriétés : Read, Notify

Propriétés des caractéristiques

Propriété Description
Read Lecture ponctuelle par le client
Write Écriture avec accusé de réception
Write Without Response Écriture sans ACK (débit max)
Notify Notification server → client sans ACK
Indicate Notification server → client avec ACK
Broadcast Inclus dans l'advertising

UUIDs

Les services/caractéristiques standard utilisent des UUID 16 bits (ex : 0x180D). Les services propriétaires utilisent des UUID 128 bits (ex : 6E400001-B5A3-F393-E0A9-E50E24DCCA9E).


BLE Mesh — réseau maillé publish/subscribe

BLE Mesh (spécification Bluetooth SIG 2017) transforme des nodes BLE en réseau mesh à grande portée via du flooding et des relais.

Rôles des nœuds

graph LR
    P[Provisioner\nSmartphone/gateway] -- provisioning --> N1
    subgraph Réseau mesh
        N1[Node relais\nRouter] -- relay --> N2[Node relais]
        N1 -- relay --> N3[Node relais]
        N2 -- relay --> N4[Low Power Node\nCapteur batterie]
        N3 -- relay --> N5[Friend Node\nStock messages]
        N5 -. messages en attente .-> N6[Low Power Node\nEndpoint]
    end
    N1 -- messages --> AP[Application\nDomotique]
Rôle Description Conso
Relay Relaie les messages reçus Moyenne
Proxy Passerelle BLE classic/GATT → mesh Moyenne
Friend Stocke les messages pour LPN Haute
Low Power Node (LPN) Dort, se réveille interroger le Friend Ultra-basse
Provisioner Ajoute des nodes au réseau N/A

Modèle publish/subscribe

Chaque node peut publier sur une adresse de groupe et s'abonner à des adresses. Les messages traversent le réseau par flooding avec un TTL décrémenté à chaque saut (TTL max = 127).

Provisioning

Le provisioning associe un node au réseau via un échange sécurisé (ECDH + AES-CCM) qui distribue la NetKey (clé réseau) et l'AppKey (clé application). Effectué une seule fois par le Provisioner (application mobile ou gateway).


NFC — Near Field Communication

NFC opère à 13,56 MHz sur des distances de 0 à ~10 cm. Basé sur ISO 14443 (cartes à puce) et ISO 18092, il supporte trois modes opératoires :

Modes NFC

Mode Description Exemple
Reader/Writer Lit/écrit des tags NFC passifs Lecture d'étiquette produit
Card Émulation Simule une carte NFC (HCE ou SE) Paiement sans contact, badge
Peer-to-Peer Échange bidirectionnel NFC ↔ NFC Android Beam (déprécié)

NDEF — NFC Data Exchange Format

NDEF est le format de message standardisé pour les tags NFC. Un message NDEF contient un ou plusieurs records :

Record type   : URI (TNF=0x01, Type="U")
Payload       : https://device.example.com/config/ABC123

Record type   : Text (TNF=0x01, Type="T")
Payload       : "SN:2024-ABC-0042"

Cas d'usage IoT

  • Provisioning : tapoter un smartphone sur un device IoT pour le configurer (Wi-Fi credentials via NDEF + App)
  • Authentification : badge NFC pour déverrouiller un équipement industriel
  • Identification : lecture de numéro de série ou URL de configuration
  • Maintenance : NFC tag sur machine → lien direct vers fiche technique et historique

RFID — identification sans contact à distance

RFID (Radio Frequency IDentification) couvre une gamme de fréquences plus large que NFC, avec des portées allant de quelques centimètres à plusieurs mètres.

Bandes de fréquence

Bande Fréquence Portée Débit Tags
LF 125–134 kHz 0–30 cm ~1 kbit/s Passifs, accès bâtiment
HF 13,56 MHz 0–1 m 106–848 kbit/s ISO 14443/15693, NFC
UHF 860–960 MHz 1–12 m ~640 kbit/s EPC Gen2, logistique
Micro-onde 2,4–5,8 GHz 1–10 m Élevé Péage, parking

Tags passifs vs actifs

Type Alimentation Portée Coût Usage
Passif Champ RF du lecteur 0–12 m (UHF) 0,05–0,50 € Logistique, palettes
Semi-passif Batterie (MCU), RF (comm) 1–50 m 2–10 € Traçabilité chaîne froide
Actif Batterie (MCU + RF) 10–100 m 10–50 € Suivi assets en temps réel

EPC Gen2 (ISO 18000-63)

Standard dominant en logistique UHF : Electronic Product Code sur 96 à 496 bits. Permet la lecture simultanée de centaines de tags (anti-collision par slots aléatoires). Utilisé dans les entrepôts, la grande distribution (Walmart, Amazon) et la traçabilité pharmaceutique.


Tableau comparatif — BLE vs NFC vs RFID

Critère BLE 5.x NFC RFID UHF
Portée 10–1000 m 0–10 cm 1–12 m
Débit 125 kbit/s – 2 Mbit/s 106–848 kbit/s 40–640 kbit/s
Énergie tag Batterie (~µA sleep) Passif (0 batterie) Passif (0 batterie)
Énergie lecteur ~15 mA actif ~50 mA ~500 mA–1 W
Coût tag 1–5 € (module) 0,10–1 € 0,05–0,50 €
Bidirectionnel Oui Oui (P2P) Limité (EPC Gen2)
Connexion Oui (GATT) Non Non
Localisation AoA/AoD (BLE 5.1) Non Non
Interférence 2,4 GHz (Wi-Fi, BT) Faible Eau, métal
Cas d'usage Wearables, actionneurs Provisioning, paiement Logistique, inventaire

Ce qu'il faut retenir

  • BLE 5.x offre trois PHY au choix : 2M pour le débit, Coded S=8 pour la portée (jusqu'à ~1 km). La PHY s'adapte dynamiquement selon les conditions radio.
  • GATT structure les échanges en Services/Caractéristiques avec des propriétés (Read/Notify/Indicate) qui déterminent le modèle d'interaction.
  • BLE Mesh permet des réseaux maillés à centaines de nœuds avec des Low Power Nodes qui dorment et s'appuient sur des Friend Nodes.
  • NFC excelle pour le provisioning et l'authentification de proximité grâce aux tags passifs sans batterie.
  • RFID UHF EPC Gen2 reste indétrônable pour la logistique à grande échelle (lecture de centaines de tags simultanément à plusieurs mètres).

Chapitre suivant : LoRa & LPWAN — communiquer sur des kilomètres avec une pile de batterie pendant des années.