Détection de Jams

Afficher la source sur GitHub

Pour fournir un mécanisme configurable de détection du brouillage de signaux sur n'importe quel nœud OpenThread, activez la fonctionnalité de détection du brouillage.

Cette fonctionnalité est utile pour les certifications d'appareils qui nécessitent la capacité de détecter le brouillage de signal sur un canal spécifique. Elle peut être configurée pour répondre aux exigences de chaque type de certification.

Fonctionnement

La détection de brouillage surveille le RSSI (indicateur d'intensité du signal reçu) d'un nœud pendant des périodes spécifiques pour déterminer si le canal a été brouillé.

Lorsque la détection de brouillage est activée :

  1. L'état de détection du brouillage est défini sur false.
  2. Le nœud échantillonne le RSSI plusieurs fois à chaque intervalle d'une seconde.
  3. Si le RSSI reste au-dessus du seuil RSSI configuré pour chaque échantillon pendant toute la durée de l'intervalle d'une seconde, cet intervalle est considéré comme brouillé.
  4. Si le nombre total d'intervalles d'une seconde bloqués est supérieur ou égal au nombre total de secondes de période d'indisponibilité configurées au cours des secondes de période de détection configurées précédentes à un moment donné, l'état de détection du brouillage à ce moment donné est défini sur true.
  5. Si le nombre total d'intervalles d'une seconde bloqués est inférieur au nombre total de secondes de période d'indisponibilité configurées au cours des secondes de période de détection configurées précédentes à un moment donné, l'état de détection du brouillage à ce moment donné est défini sur false.

Bitmap de l'historique

Dans l'API OpenThread, un bitmap des 63 secondes précédentes peut être récupéré. Ce bitmap indique si le RSSI a dépassé le seuil RSSI configuré au cours de chacune des 63 secondes précédentes.

Par exemple, vous pouvez récupérer le bitmap suivant :

0xC248068C416E7FF0

La conversion en binaire produit chaque instance où le RSSI a dépassé le seuil de RSSI configuré au cours des 63 secondes précédentes :

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Si la période de détection est définie sur 16 secondes et la période d'occupation sur 8 secondes, l'état de détection du brouillage devient true à 51 secondes, car il s'agit de la première instance où le seuil RSSI a été dépassé pendant au moins 8 secondes entières au cours des 16 secondes précédentes. Dans cet exemple, l'état de détection de l'embouteillage reste true pendant les 13 secondes suivantes.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Ce bitmap peut être représenté par le graphique suivant, si -45 dBm était le seuil RSSI configuré :

Détection des brouillages OT

Comment l'activer

Cette fonctionnalité est désactivée par défaut.

Par définition

Pour activer la détection de brouillage, définissez OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE sur 1 dans le fichier openthread/src/core/config/openthread-core-default-config.h avant de créer OpenThread :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Par option

Vous pouvez également utiliser l'option de compilation -DOT_JAM_DETECTION=ON lorsque vous compilez OpenThread :

./script/build -DOT_JAM_DETECTION=ON

Paramètres

Les paramètres de détection des brouillages ne peuvent être configurés que via l'API OpenThread ou le protocole Spinel. Les valeurs par défaut sont appliquées si la fonctionnalité est activée sans configuration ultérieure.

Personnalisez cette fonctionnalité à l'aide des paramètres suivants :

Paramètres
Seuil RSSI
Valeur par défaut
0 dBm
Description
Spécifie le seuil de niveau RSSI en dBm au-dessus duquel le canal est considéré comme brouillé.
Fenêtre de détection
Valeur par défaut
63 secondes
Description
Indique la fenêtre en secondes dans laquelle vérifier le brouillage du signal. Plage : 1 à 63.
Période d'activité
Valeur par défaut
63 secondes
Description
Indique le nombre de secondes cumulées pendant la période de détection au cours desquelles le RSSI doit être supérieur au seuil RSSI pour déclencher la détection de brouillage. La valeur doit être inférieure à la fenêtre de détection. Plage : 1 à 63.

API

OpenThread

Utilisez l'API Jam Detection pour gérer la fonctionnalité de détection des embouteillages directement dans votre application OpenThread. L'API OpenThread fournit les fonctionnalités suivantes :

  • Démarrer et arrêter la fonctionnalité
  • Afficher l'état de la détection de brouillage
  • Gérer tous les paramètres
  • Récupérer le bitmap de l'historique de détection des embouteillages actuel
  • Enregistrer une fonction de rappel pour lorsqu'un brouillage est détecté

Spinelle

Le protocole Spinel permet à un appareil hôte de communiquer directement avec un NCP. Ce protocole expose les propriétés de détection des embouteillages dans openthread/src/lib/spinel/spinel.h, qui fournissent les fonctionnalités suivantes :

  • Démarrer et arrêter la fonctionnalité
  • Afficher l'état de la détection de brouillage
  • Gérer tous les paramètres
  • Récupérer le bitmap de l'historique de détection des embouteillages actuel

CLI

OpenThread

Il n'existe aucune commande CLI OpenThread liée à cette fonctionnalité.