Déployez 200 balises Bluetooth dans un espace commercial de 5 000 m², et la première chose que l’étude de site révélera n’est pas un problème de couverture—c’est un problème de collision. Chaque balise émet sur les trois mêmes canaux publicitaires (37, 38, 39) dans la bande ISM 2,4 GHz, et une fois que la densité de balises dépasse un seuil qui dépend de l’intervalle, de la taille du payload et du bruit RF ambiant, la perte de paquets augmente brusquement. Les récepteurs commencent à manquer les publicités non pas parce que le signal est trop faible, mais parce que deux transmissions ou plus se chevauchent dans le temps sur le même canal.

Cet article décompose les mathématiques de la collision publicitaire BLE, dérive les limites de densité pratiques pour les scénarios de déploiement courants, et présente des stratégies de coexistence qu’un ingénieur RF peut appliquer sans recourir à des extensions de protocole propriétaires. Tous les calculs supposent la publicité non connectable BLE 4.x/5.x (le mode dominant dans les déploiements de balises) et un récepteur avec une sensibilité typique de -90 dBm.

1. Fondamentaux du canal publicitaire BLE

La publicité BLE utilise trois canaux dédiés aux bords de la bande 2,4 GHz pour éviter les canaux WiFi les plus occupés :

Canal AdvFréquence (MHz)Chevauchement WiFiNiveau de bruit typique
372402WiFi Ch 1 (2412) — 10 MHzModéré
382426Entre WiFi Ch 1 et Ch 6Le plus bas
392480WiFi Ch 14 (2484) — 4 MHzLe plus élevé (si Ch 14 actif)

Chaque événement publicitaire transmet le même paquet séquentiellement sur les trois canaux. Le temps d’émission par canal dépend du PHY et de la longueur du payload :

T_on_air = (1.6 + 0.8 + 0.8 + 0.8 + 0.8 + ceil(payload_bits / 8)) × 1 µs

Pour le payload iBeacon (30 octets PDU total), le temps d’émission par canal à 1 Mbps PHY est d’environ 376 µs. Un événement publicitaire complet sur trois canaux se termine en environ 1,13 ms, incluant l’espacement obligatoire de 150 µs entre canaux.

2. Modèle de probabilité de collision

La publicité BLE est fondamentalement un système de type ALOHA slotted, mais sans slots de temps explicites—les collisions se produisent lorsque deux émetteurs ou plus se chevauchent sur le même canal dans la fenêtre de détection du récepteur. La probabilité de collision pour N balises avec un intervalle publicitaire T_adv sur un seul canal peut être modélisée comme :

P_collision = 1 − (1 − T_on_air / T_adv)^(N−1)

Cela suppose que les balises ne sont pas synchronisées (vrai en pratique, car BLE impose une gigue advDelay pseudo-aléatoire de 0–10 ms). Pour le système à trois canaux, la probabilité de collision effective par canal diminue d’environ un facteur 3, puisque le récepteur n’a besoin que d’un des trois canaux pour décoder le paquet :

P_loss_total = P_collision_ch37 × P_collision_ch38 × P_collision_ch39

En pratique, le canal 39 a souvent une perte plus élevée en raison de la proximité du canal WiFi 14 dans les régions où il est légal (Japon), de sorte que les trois canaux ne sont pas parfaitement équivalents. Le tableau ci-dessous montre les taux de perte de paquets calculés pour la publicité au format iBeacon à différentes densités de balises :

N (Balises)T_adv = 100msT_adv = 200msT_adv = 500msT_adv = 1000ms
100,03%0,02%0,01%0,004%
500,17%0,08%0,03%0,02%
1000,34%0,17%0,07%0,03%
2000,68%0,34%0,14%0,07%
5001,70%0,85%0,34%0,17%
10003,39%1,70%0,68%0,34%

Ces chiffres paraissent trompeusement bas. Le problème est que le modèle théorique ne suppose que le chevauchement temporel. Dans les déploiements réels, deux facteurs supplémentaires augmentent considérablement la perte de paquets effective : le cycle de service de balayage du récepteur et l’effet de capture RF.

3. Cycle de service de balayage et perte effective

La plupart des scanners BLE (téléphones, passerelles, ancres RTLS) n’écoutent pas en continu. Un téléphone typique balaye pendant 4 secondes, puis fait une pause pendant un intervalle défini par le système (souvent 30–60 secondes sur iOS). La perte de paquets effective est :

P_loss_effective = 1 − (1 − P_collision) × D_scan

Où D_scan est le cycle de service de balayage. Pour un téléphone avec une fenêtre de balayage de 4 secondes toutes les 40 secondes (D_scan = 0,1), même un taux de collision de 0 % produit une perte de paquets effective de 90 % rien que par l’intervalle de balayage. C’est pourquoi les déploiements RTLS utilisent des passerelles dédiées avec balayage continu.

Pour une passerelle à balayage continu (D_scan = 1,0), le mécanisme de perte dominant redevient la collision. La perte mesurée à 500 balises avec un intervalle de 200 ms est typiquement de 2–4 %, supérieure à la valeur théorique de 0,85 %. L’écart provient de l’effet de capture : lorsque deux transmissions se chevauchent, le signal le plus fort peut encore être décodé si son RSSI dépasse le plus faible de 6 dB ou plus. Cependant, dans les déploiements denses où les balises sont à des distances similaires, cette marge existe rarement.

4. Sélection de l’intervalle publicitaire

L’intervalle publicitaire est le paramètre le plus impactant pour la gestion des collisions. BLE 4.x permet des intervalles de 20 ms à 10,24 secondes par incréments de 0,625 ms. La publicité étendue BLE 5.x prend en charge la même plage mais ajoute la capacité d’utiliser des canaux secondaires, ce qui multiplie efficacement la bande passante disponible.

La sélection doit être dictée par l’exigence de latence de l’application, non par le désir d’un taux de mise à jour maximal. Compromis clés :

IntervalleDurée batterie (CR2032, 2 ans)Max balises (1 % perte)Cas d’usage typique
100 ms~4 mois~300RTLS haute vitesse, marketing de proximité (temps réel)
200 ms~8 mois~600Navigation commerciale, navigation intérieure
500 ms~16 mois~1 500Suivi d’actifs, détection d’occupation
1000 ms~28 mois~3 000Surveillance environnementale, étiquettes d’actifs statiques
2000 ms~30+ mois~6 000Capteurs de stationnement, surveillance à cycle lent

Note : « Max balises » est la densité théorique à laquelle la probabilité de collision sur canal unique atteint 1 %, en supposant un balayage continu et un payload iBeacon. La capacité réelle est typiquement de 60–70 % de cette valeur en raison des effets de capture RF et de l’interférence WiFi co-canal.

5. Gigue et randomisation

La spécification BLE impose un advDelay pseudo-aléatoire de 0 à 10 ms ajouté à chaque intervalle publicitaire. Cela empêche les balises avec des intervalles identiques de synchroniser définitivement leurs transmissions. Sans gigue, deux balises configurées à 1000 ms qui s’alignent sur leur première publicité entreraient en collision sur chaque publicité suivante—rendant les deux effectivement invisibles au récepteur.

La gigue de 10 ms est adéquate pour les intervalles de 500 ms et plus, mais devient problématique aux intervalles courts. À 100 ms d’intervalle, la gigue représente 10 % de la période, ce qui fournit une décorrélation raisonnable. Cependant, certains fabricants de balises implémentent un intervalle fixe sans randomisation appropriée (surtout dans les clones bon marché utilisant CSR1010 ou nRF51). Ces balises doivent être évitées dans les déploiements denses.

Un test pratique : déployez 20 balises du même fabricant dans un rayon de 2 m, configurées au même intervalle de 200 ms, et surveillez pendant 10 minutes avec un sniffer Nordic nRF52. Si une balise montre une perte de paquets supérieure à 2 %, le fabricant a probablement une randomisation insuffisante. Les balises de marque reconnue (Minew, Kontakt.io, Estimote) réussissent ce test de manière fiable ; les balises génériques de marque blanche souvent non.

6. Coexistence avec le WiFi

La bande 2,4 GHz est partagée entre BLE et WiFi, et leur interaction est asymétrique. La publicité BLE transmet à 1 Mbps avec une bande passante de 2 MHz ; le WiFi transmet à 6–54+ Mbps avec une bande passante de 20+ MHz. Un seul paquet WiFi peut anéantir plusieurs événements publicitaires BLE.

Le facteur de coexistence clé est le chevauchement spectral entre les canaux publicitaires BLE et les canaux WiFi actifs :

Canal WiFiFréq. centrale (MHz)Bande passanteCanal Adv BLE affectéAugmentation perte BLE
1241220 MHz (2401–2423)37 (2402), partiel 38 (2426)+3–5 %
6243720 MHz (2426–2448)38 (2426)+2–3 %
11246220 MHz (2451–2473)Aucun directement+0–1 %
14248420 MHz (2473–2495)39 (2480)+5–8 %

Recommandation : dans les déploiements à forte densité de balises, configurez les points d’accès WiFi pour utiliser les canaux 1, 6 et 11 (plan standard à trois canaux) mais évitez entièrement le canal 14. Si la densité de balises est très élevée (>500 unités), envisagez d’attribuer le WiFi aux canaux 1 et 11 uniquement, laissant le canal 6 (qui chevauche le canal BLE 38) comme un espace favorable aux balises. Cela sacrifie le débit WiFi mais peut améliorer la fiabilité BLE de 15–20 %.

7. Gestion de densité basée sur la puissance

Toutes les balises d’un déploiement n’ont pas besoin de la même puissance d’émission. Une erreur courante est de configurer toutes les balises à +4 dBm ou plus « pour une meilleure portée ». Dans un déploiement dense, cela augmente en réalité le rayon de collision—la zone dans laquelle deux balises peuvent interférer entre elles.

Le rayon de collision entre deux balises est défini comme la distance à laquelle leurs signaux arrivent au récepteur à moins de 6 dB l’un de l’autre. Pour deux balises à la même puissance d’émission, c’est simplement la distance à laquelle les deux ont un RSSI comparable :

R_collision ≈ 2 × 10^((P_tx − P_rx_threshold) / (10 × n))

Où n est l’exposant de perte de trajet (2,0 en espace libre, 2,5–3,5 en intérieur). Pour P_tx = 0 dBm, P_rx_threshold = −90 dBm, n = 2,7 :

P_tx (dBm)R_collision (m, intérieur)Surface (m²)Densité max effective
+4~48~7 2001 par 14 m² (à 1 % perte)
0~35~3 8001 par 7,6 m²
−4~26~2 1001 par 4,2 m²
−8~18~1 0001 par 2,0 m²
−12~13~5301 par 1,1 m²
−20~7~1541 par 0,3 m²

Dans un environnement commercial où les balises sont espacées de 4 m sur des dalles de plafond, configurer la puissance d’émission à −4 dBm réduit le rayon de collision à 26 m—suffisant pour une réception fiable par une passerelle proche tout en limitant les interférences avec les balises à deux rangées de distance. Le tableau montre que réduire la puissance de +4 à −4 dBm double effectivement la capacité spatiale.

8. Techniques d’échelonnement des intervalles

Bien que la spécification BLE impose une gigue de 0–10 ms, elle n’empêche pas l’échelonnement intentionnel des intervalles—configurer différentes balises avec des intervalles légèrement différents. Cette technique décorèlent leurs schémas de transmission dans le temps.

L’approche la plus efficace consiste à attribuer des intervalles à partir d’un ensemble de valeurs liées aux nombres premiers. Par exemple, dans un déploiement de 100 balises, au lieu de toutes les configurer à 200 ms, répartissez-les sur cinq valeurs :

GroupeIntervalle (ms)Nombre de balisesJustification
A19020Intervalle de base −5 %
B19720Décalage dérivé de nombre premier
C20020Nominal
D21120Nombre premier
E22320Nombre premier

Le PPCM (Plus Petit Commun Multiple) de ces intervalles détermine le temps avant la répétition des schémas : PPCM(190, 197, 200, 211, 223) est astronomiquement grand (de l’ordre de 10^12 ms), assurant effectivement que deux balises de groupes différents ne se synchronisent jamais. La réduction de perte de paquets mesurée avec cette technique est de 30–45 % comparée à un intervalle uniforme de 200 ms sur les 100 balises.

Réserve : cette technique nécessite une configuration par balise, ce qui ajoute du temps de provisionnement. Pour les déploiements à grande échelle, une interface de gestion qui prend en charge l’attribution d’intervalles par lots avec distribution automatique est essentielle.

9. Publicité étendue BLE 5.x

BLE 5.0 a introduit la publicité étendue, qui sépare la PDU publicitaire en une publicité primaire (sur les canaux 37/38/39) et une publicité secondaire (sur l’un des 37 canaux de données restants). Cela répartit effectivement le trafic des balises sur 40 canaux au lieu de 3.

L’amélioration théorique de la capacité de collision est d’environ 40/3 = 13,3×, mais les gains pratiques sont plus modestes car :

  • Les canaux primaires transportent toujours le pointeur AUX_SYNC_IND, donc la collision sur les canaux primaires cause toujours la perte du pointeur
  • Tous les récepteurs ne prennent pas en charge la publicité étendue BLE 5.x (iOS a ajouté le support dans iOS 17, de nombreux appareils Android ne scannent encore que le mode legacy)
  • Le canal secondaire est indiqué dans la PDU primaire, le récepteur doit donc d’abord décoder la primaire

Pour les déploiements greenfield où tous les récepteurs sont compatibles BLE 5.x, la publicité étendue peut augmenter la capacité de densité de 5–8×. Pour les environnements mixtes, elle doit être utilisée avec la publicité legacy (mode double), ce qui annule partiellement l’avantage de capacité.

10. Optimisation des passerelles et scanners

La gestion des collisions ne concerne pas seulement les émetteurs. Les paramètres de balayage du récepteur affectent significativement la réception effective des paquets. Paramètres clés pour les passerelles BLE :

ParamètrePar défaut (téléphone)Recommandé (passerelle)Impact
Fenêtre de balayage4 096 msContinu (sans intervalle)Élimine la perte par intervalle de balayage
Intervalle de balayage4 096 msContinuIdentique à la fenêtre pour 100 % de cycle
Balayage actifOuiNon (pour balises)Réduit le temps RX consommé par SCAN_RSP
Filtre des doublonsDépend du SEFenêtre 30 secondesPrévient le flooding des logs sans perdre de données
Décodage multi-canalN/A3 récepteurs parallèlesCapture les paquets chevauchés sur différents canaux

Une passerelle avec trois récepteurs BLE indépendants (un accordé sur chaque canal publicitaire) peut théoriquement atteindre 3× le débit d’un scanner à récepteur unique, puisqu’elle peut décoder des paquets chevauchés sur des canaux différents. Nordic nRF52840 et nRF5340 prennent en charge la réception multi-canal simultanée via la capacité de commutation rapide de canal du périphérique RADIO, bien que la réception véritablement parallèle nécessite deux instances RADIO (disponible uniquement sur nRF5340).

11. Directives de densité de déploiement réelles

Basé sur des mesures de terrain dans des déploiements commerciaux, musées, entrepôts et hôpitaux, les directives suivantes supposent des passerelles à balayage continu, format iBeacon, puissance d’émission −4 dBm, et un taux de réception de paquets cible ≥95 % :

ScénarioIntervalle recommandéMax balises par passerelleEspacement passerelleNotes
Commerce (push proximité)200 ms40015 mÉchelonner les intervalles entre zones
Musée (guide audio)300 ms35012 mDensité plus faible par salle ; l’atténuation des murs aide
Entrepôt (RTLS)500 ms80020 mPlafond haut réduit le rayon de collision
Hôpital (suivi d’actifs)500 ms60015 mÉquipements médicaux ajoutent du bruit RF ; ajouter 20 % de marge
Parking (occupation)2000 ms2 000+30 mFaible latence non requise ; très haute densité possible
Stade (navigation de foule)100 ms15010 mL’absorption corporelle réduit la portée ; prévoir 40 % de perte de chevauchement

12. Mesure de collision sur le terrain

Vérifier les taux de collision nécessite une configuration de mesure contrôlée. L’approche recommandée utilise un dongle nRF52840 dédié exécutant un firmware sniffer personnalisé qui enregistre chaque publicité reçue avec horodatage, canal, RSSI et adresse MAC.

La métrique clé est le Taux de Réception par Balise (PBRR) : pour chaque balise, comptez le nombre de publicités reçues sur une fenêtre de mesure et comparez-le au nombre attendu (durée_fenêtre / intervalle). Un PBRR inférieur à 95 % indique des problèmes de collision ou de couverture RF.

Pour distinguer la perte par collision de la perte par couverture, placez le sniffer à moins de 2 m de la balise avec ligne de vue dégagée. À cette distance, le RSSI devrait être >−60 dBm, bien au-dessus de la sensibilité. Toute perte de paquets à cette portée est une collision, pas une couverture. Un protocole de mesure typique :

  1. Déployer toutes les balises aux positions et paramètres finaux
  2. Placer le sniffer à l’emplacement de la passerelle, fonctionner 10 minutes
  3. Exporter les journaux RSSI et horodatage par balise
  4. Calculer le PBRR pour chaque balise
  5. Pour les balises avec PBRR < 95 %, déplacer le sniffer à 2 m de proximité et re-mesurer
  6. Si le PBRR s’améliore à >98 % à portée proche, la perte est liée à la couverture (ajouter une passerelle)
  7. Si le PBRR reste <95 % à portée proche, la perte est liée à la collision (réduire la densité ou échelonner les intervalles)

13. Pièges de conception courants

  • Configurer toutes les balises à 100 ms : « Plus fréquent c’est mieux » est l’erreur la plus courante. À 100 ms avec 500 balises, la perte par collision dépasse 5 %, et la durée de vie de la batterie tombe sous 4 mois. Utilisez le plus long intervalle que votre budget de latence permet.
  • Ignorer la planification des canaux WiFi : Déployer des balises sans coordonner avec l’équipe informatique sur les canaux WiFi. Un seul point d’accès WiFi sur le canal 14 au Japon peut causer 8 % de perte supplémentaire sur le canal BLE 39.
  • Utiliser +4 dBm partout : La puissance maximale maximise la portée mais aussi le rayon de collision. Utilisez le zonage de puissance : −12 dBm pour les zones denses, 0 dBm pour les zones ouvertes, +4 dBm uniquement pour les balises passerelle en zones clairsemées.
  • Pas d’échelonnement d’intervalles dans les déploiements homogènes : 200 balises identiques au même intervalle dépendent entièrement de la gigue de 10 ms. L’échelonnement des intervalles entre groupes réduit les collisions de 30–45 %.
  • Passerelles à récepteur unique : Une passerelle avec un récepteur BLE ne peut décoder qu’un canal à la fois. Dans les déploiements denses, cela crée un goulot d’étranglement de 3× comparé aux passerelles multi-canal.

14. Liste de vérification de conception

  • ☐ Calculer le nombre de balises requis et la densité par zone
  • ☐ Sélectionner l’intervalle publicitaire basé sur le budget de latence (plus long c’est mieux)
  • ☐ Attribuer des groupes d’intervalles (nombres premiers échelonnés) pour les déploiements >50 balises par passerelle
  • ☐ Configurer la puissance d’émission selon la densité de zone (−4 à −12 dBM pour dense, 0 à +4 pour clairsemé)
  • ☐ Coordonner les canaux WiFi avec l’informatique (éviter Ch 14, préférer Ch 1/11 à Ch 6)
  • ☐ Spécifier des passerelles BLE multi-canal pour les déploiements denses
  • ☐ Configurer les passerelles pour un balayage continu avec filtrage des doublons de 30 secondes
  • ☐ Planifier une mesure de terrain avec sniffer pour vérifier PBRR ≥95 % par balise
  • ☐ Documenter l’attribution d’intervalle, puissance et canal pour chaque balise pour le dépannage futur
  • ☐ Pour les environnements de récepteurs uniquement BLE 5.x, activer la publicité étendue pour une marge de densité 5–8×

Conclusion

La collision publicitaire est le plafond invisible sur la densité de déploiement des balises. Le modèle ALOHA théorique prédit de faibles taux de perte que les mesures réelles dépassent systématiquement de 2–4× en raison de l’interférence WiFi, des effets de capture et des limitations du cycle de service de balayage. Le chemin pratique vers les déploiements à haute densité n’est pas plus de puissance ou des intervalles plus rapides—c’est une sélection disciplinée des intervalles, le zonage de puissance, l’échelonnement des intervalles et les passerelles multi-canal. En traitant le spectre 2,4 GHz comme une ressource partagée avec un budget de collision quantifiable, les ingénieurs peuvent déployer 500+ balises par passerelle avec 95 %+ de réception de paquets, même dans des environnements saturés WiFi. Pour les déploiements dépassant 1 000 balises par zone de couverture, la publicité étendue BLE 5.x fournit la diversité de canal supplémentaire nécessaire pour maintenir la fiabilité sans sacrifier le taux de mise à jour.

Comprendre ces dynamiques de collision est essentiel que vous déployiez une poignée de balises de proximité ou que vous conceviez un système RTLS à grande échelle avec des balises Bluetooth sur tout un campus.