Détection de Jams

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Voir la source sur GitHub

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

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

Fonctionnement

Jam Detect surveille le RSSI (indicateur de puissance du signal reçu) d'un nœud pendant des périodes spécifiques pour déterminer si le canal a été bloqué.

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

  1. L'état de détection du Jam est défini sur false.
  2. Le nœud échantillonne le flux RSSI plusieurs fois sur chaque intervalle d'une seconde.
  3. Si l'indice RSSI sur l'intégralité de l'intervalle d'une seconde reste supérieur au seuil RSSI configuré pour chaque échantillon, cet intervalle d'une seconde est considéré comme bloqué.
  4. Si le nombre total de secondes bloquées est supérieur ou égal à le nombre total de secondes actives de la période de détection précédente, à un moment donné, l'état de détection du Jam à ce moment-là est défini sur true.
  5. Si le nombre total de secondes d'une seconde bloquée est moins que le nombre total de secondes de période de détection configurées au cours de la précédente fenêtre de détection configurée à tout moment, l'état de détection du Jam est alors de false.

Bitmap de l'historique

Dans l'API OpenThread et dans les propriétés wpantund, un bitmap des 63 secondes précédentes peut être récupéré. Cette image bitmap indique si la RSSI a dépassé le seuil RSSI configuré à chacune des 63 secondes précédentes.

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

0xC248068C416E7FF0

La conversion au format binaire génère chaque instance que le RSSI a dépassé au seuil 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 que la période d'activité est définie sur 8 secondes, l'état de détection du Jam devient true à 51 secondes, car il s'agit de la première instance au cours de laquelle les seuils RSSI ont été dépassés pendant au moins 8 secondes pendant les 16 secondes précédentes. Dans cet exemple, l'état de détection du Jam reste true pendant 13 secondes.

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 le seuil RSSI configuré est de -45 dBm:

OT Jam Detect

Comment l'activer

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

Par définition

Pour activer la détection de Jam, 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 lors de la compilation d'OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Paramètres

Les paramètres de détection de Jam ne peuvent être configurés que via l'API OpenThread, le protocole Spinnaker ou wpanctl, l'outil de ligne de commande wpantund pour la gestion du co-processeur réseau. 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
Indique le seuil RSSI du seuil au-dessus duquel doit être pris en compte le canal bloqué.
Fenêtre de détection
Valeur par défaut
63 secondes
Description
Spécifie la fenêtre, en secondes, permettant de vérifier le brouillage du signal. Plage: 1 à 63.
Période de sommeil
Valeur par défaut
63 secondes
Description
Indique le nombre de secondes cumulées dans la fenêtre de détection pendant lesquelles le RSSI doit être supérieur au seuil RSSI pour déclencher la détection de Jam. 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 de Jam 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 Jams
  • Gérer tous les paramètres
  • Récupérer le bitmap de l'historique de la détection de Jam en cours
  • Enregistrer une fonction de rappel en cas de détection d'un Jam

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 de Jam dans openthread/src/lib/spinel/spinel.h, qui offrent les fonctionnalités suivantes:

  • Démarrer et arrêter la fonctionnalité
  • Afficher l'état de la détection de Jams
  • Gérer tous les paramètres
  • Récupérer le bitmap de l'historique de la détection de Jam en cours

CLI

OpenThread

Aucune commande CLI OpenThread n'est associée à cette fonctionnalité.

Wanttand

Utilisez la CLI wpanctl pour gérer la fonctionnalité de détection de Jam pour une configuration NCP OpenThread. wpantund conserve toutes les configurations de détection de Jam lors de la réinitialisation du NCP.

wpanctl permet d'accéder aux propriétés wpantund suivantes:

Properties
JamDetection:Status
Format
booléen
Description
Lecture seule. État de détection du Jam. Indique si un Jam est actuellement détecté.
JamDetection:Enable
Format
booléen
Description
Activer ou désactiver la fonctionnalité Jam Detection
JamDetection:RssiThreshold
Format
dBm
Description
Indique le seuil RSSI du seuil au-dessus duquel les canaux sont bloqués.
JamDetection:Window
Format
secondes
Description
Spécifie la fenêtre, en secondes, permettant de vérifier le brouillage du signal. Plage: 1 à 63.
JamDetection:BusyPeriod
Format
secondes
Description
Indique le nombre global de secondes dans JamDetection:Window pour lesquelles l'identifiant RSSI doit être supérieur à JamDetection:RssiThreshold afin de déclencher la détection de Jam. Doit être inférieure à JamDetection:Window. Plage: 1 à 63.
JamDetection:Debug:HistoryBitmap
Format
Valeur 64 bits
Description
Fournit des informations sur l'historique d'état de la détection de Jam à des fins de surveillance et de débogage.

Par exemple, pour obtenir l'état de détection de Jam pour un NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Pour définir le seuil RSSI de détection de Jam sur -45 dBm:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Pour en savoir plus sur les propriétés wpantund, consultez le dépôt GitHub wpantund.