Détection des Jams

Afficher la source sur GitHub

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

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

Fonctionnement

La détection de Jam surveille le RSSI (indicateur de l'intensité du signal reçu) d'un nœud pendant les périodes de temps spécifiées afin de déterminer si le canal a été bloqué.

Lorsque la détection des Jams est activée:

  1. L'état de détection des Jams est défini sur false.
  2. Le nœud échantillonne le RSSI plusieurs fois par intervalle d'une seconde.
  3. Si le RSSI sur cet intervalle entier d'une seconde dépasse le seuil RSSI configuré pour chaque échantillon, cet intervalle est considéré comme bloqué.
  4. Si le nombre total d'intervalles bloqués d'une seconde est supérieur ou égal au nombre global de Périodes de disponibilité configurées. au cours de la fenêtre de détection précédente, à n'importe quel moment, l'état de détection des Jams à ce moment précis est défini sur true.
  5. Si le nombre total d'intervalles bloqués pendant une seconde estest inférieur à le nombre total dePériode occupée secondes au cours des événements précédents configurésFenêtre de détection secondes, l'état de détection des Jams qui y est défini est défini surfalse (Installation de Python groupée).

Bitmap d'historique

Dans l'API OpenThread et les propriétés wpantund, un bitmap des 63 secondes précédentes est disponible pour la récupération. Ce bitmap indique si le 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 en binaire produit toutes les instances du RSSI au-dessus du seuil RSSI configuré au cours des 63 secondes précédentes:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Si la fenêtre 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 des Jams devient true à 51 secondes, car il s'agit de la première instance où le seuil RSSI est atteint. Vous avez dépassé au moins huit secondes entières au cours des 16 secondes précédentes. Dans cet exemple, l'état de détection des Jams 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 le seuil RSSI configuré est -45 dBm:

Détection de Jams OT

Comment l'activer

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

Par définition

Pour activer la détection des Jams, définissez OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE en tant que 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 création d'OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Paramètres

Les paramètres de détection des Jams 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 (en RSS) au-dessus duquel le canal est bloqué.
Fenêtre de détection
Valeur par défaut
63 secondes
Description
Spécifie la fenêtre en secondes pendant laquelle vérifier le brouillage du signal. Plage: 1-63.
Période de disponibilité
Valeur par défaut
63 secondes
Description
Indique le nombre de secondes agrégées dans la période de détection pendant laquelle le RSSI doit dépasser le seuil RSSI pour déclencher la détection des Jams. Doit être inférieure à la période de détection. Plage: 1-63.

API

OpenThread

Utilisez l'API Jam Detection pour gérer la fonctionnalité Jam Detection directement dans votre application OpenThread. L'API OpenThread offre les fonctionnalités suivantes:

  • Démarrer et arrêter la fonctionnalité
  • Afficher l'état de la détection des Jams
  • Gérer tous les paramètres
  • Récupérer le bitmap actuel de l'historique de détection des Jams
  • Enregistrer une fonction de rappel pour la 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 des Jams 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 des Jams
  • Gérer tous les paramètres
  • Récupérer le bitmap actuel de l'historique de détection des Jams

CLI

OpenThread

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

Wpantund

Utilisez la CLI wpanctl pour gérer la fonctionnalité de détection des Jams pour une configuration NCP OpenThread. wpantund conserve toutes les configurations de détection de Jams après la réinitialisation du NCP.

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

Properties
JamDetection:Status
Format
boolean
Description
Lecture seule. État de la détection des Jams Indique si un signal est détecté.
JamDetection:Enable
Format
boolean
Description
Activer ou désactiver la fonctionnalité de détection des Jams
JamDetection:RssiThreshold
Format
dBm
Description
Indique le niveau RSSI du seuil en millisecondes au-dessus duquel le canal est considéré comme bloqué.
JamDetection:Window
Format
seconde
Description
Spécifie la fenêtre en secondes pendant laquelle vérifier le brouillage du signal. Plage: 1-63.
JamDetection:BusyPeriod
Format
seconde
Description
Indique le nombre de secondes agrégées dans JamDetection:Window au cours desquelles l'ID RSS doit être supérieur à JamDetection:RssiThreshold pour déclencher la détection des Jams. Doit être inférieur à JamDetection:Window. Plage: 1-63.
JamDetection:Debug:HistoryBitmap
Format
Valeur 64 bits
Description
Fournit des informations sur l'historique de l'état de la détection des Jams à des fins de surveillance et de débogage.

Par exemple, pour obtenir l'état de détection des Jams pour un NCP, procédez comme suit:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

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

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.