Afficher le code source sur GitHub
Afin de fournir un mécanisme configurable pour la détection du brouillage du signal 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. Il peut être configuré pour répondre aux exigences de chaque type de certification.
Comment ça marche ?
Jam Detection surveille le RSSI (indicateur de puissance du signal reçu) d'un nœud pendant les périodes spécifiées pour déterminer si le canal a été bloqué.
Lorsque la détection de Jam est activée:
- L'état de détection du Jam est défini sur
false
. - Le nœud échantillonne le RSSI plusieurs fois sur chaque intervalle d'une seconde.
- Si l'intervalle RSSI sur l'intégralité d'une seconde reste au-dessus du seuil RSSI configuré pour chaque échantillon, cet intervalle d'une seconde est considéré comme bloqué.
- Si le nombre cumulé d'embouteillages d'une seconde est supérieur ou égal à le nombre total de secondes de la période de détection configuré au cours de la fenêtre de détection configurée à un moment donné, l'état de détection du Jam est alors défini sur
true
. - Si le nombre total d'intervalles d'une seconde bloqués est inférieur au nombre de secondes de la période de détection configuré au cours de la fenêtre de détection configurée à un moment donné, l'état de détection du Jam à ce moment précis est défini sur
false
.
Bitmap d'historique
Dans l'API OpenThread et les propriétés wpantund
, un bitmap des 63 dernières secondes est disponible pour la récupération. Ce bitmap indique si l'identifiant 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 génère chaque instance 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 la période d'affluence sur 8 secondes, l'état de détection du Jam passe à true
à 51 secondes, car c'est la première fois que le seuil RSSI a été dépassé d'au moins 8 secondes au cours des 16 dernières secondes. Dans cet exemple, l'état de la détection de 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 -45 dBm correspond au seuil RSSI configuré:
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
comme 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 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 de réseau (NCP). 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 |
|
||||
Fenêtre de détection |
|
||||
Période de disponibilité |
|
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 d'historique actuel de la détection de Jam
- Enregistrer une fonction de rappel lorsqu'un Jam 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 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 d'historique actuel de la détection de Jam
CLI
OpenThread
Aucune commande CLI OpenThread n'est liée à cette fonctionnalité.
Wpantund
Utilisez la CLI wpanctl
pour gérer la fonctionnalité de détection de Jam pour une configuration NCP OpenThread. wpantund
conserve toute la configuration de la détection de Jam lors de la réinitialisation de NCP.
wpanctl
permet d'accéder aux propriétés wpantund
suivantes:
Propriétés | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Par exemple, pour obtenir l'état de détection du Jam pour un NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Pour définir le seuil RSSI de la 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
.