<ph type="x-smartling-placeholder"></ph> Consulter le code source sur GitHub
Pour fournir un mécanisme configurable afin de détecter les brouillages du signal sur toutes les Nœud OpenThread, activez la fonctionnalité de détection de bourrage.
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 les exigences de chaque type de certification.
Fonctionnement
La détection des bouchons surveille le RSSI (indicateur d'intensité du signal reçu) d'un nœud pendant des fenêtres de temps spécifiées pour déterminer si le canal a été soit bloquée.
Lorsque la détection de bouchons est activée:
- L'état de détection d'un bouchon est défini sur
false
. - Le nœud échantillonne le RSSI plusieurs fois sur chaque intervalle d'une seconde.
- Si l'RSSI pendant cet intervalle entier d'une seconde reste au-dessus de la configuré un seuil RSSI pour chaque échantillon (une seconde l'intervalle est considéré comme bloqué.
- Si le nombre cumulé d'intervalles d'une seconde en cas de blocage est supérieur ou égal au nombre cumulé de secondes de la période de pointe configurée dans la fenêtre de détection configurée précédente à un moment donné, l'état de détection de blocage à ce moment est défini sur
true
. - Si le nombre cumulé d'intervalles d'une seconde en cas de blocage est inférieur au nombre cumulé de secondes de la période de pointe configurée dans les secondes de la fenêtre de détection configurée précédente à un moment donné, l'état de détection de blocage à ce moment est défini sur
false
.
Bitmap de l'historique
Dans l'API OpenThread et les propriétés wpantund
, un bitmap des 63 secondes précédentes est disponible à la récupération. Ce bitmap
indique si le RSSI a dépassé le seuil RSSI configuré à chacune des
les 63 secondes précédentes.
Par exemple, vous pouvez récupérer le bitmap suivant:
0xC248068C416E7FF0
La conversion au format binaire produit chaque instance où le RSSI a dépassé le 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 de disponibilité est définie sur 8
secondes, l'état de détection d'un bouchon passe à true
au bout de 51 secondes, car il s'agit
première instance où le seuil RSSI a été dépassé pendant au moins huit secondes entières
au cours des 16 secondes précédentes. Dans cet exemple, l'état de détection des bouchons
true
pendant les 13 prochaines 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 -45 dBm :
Comment l'activer
Cette fonctionnalité est désactivée par défaut.
En définissant
Pour activer la détection des interférences, définissez OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
sur 1
dans le fichier openthread/src/core/config/openthread-core-default-config.h
avant de compiler 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
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Paramètres
Les paramètres de détection de bouchon ne peuvent être configurés que via l'API OpenThread, la
Le protocole Spinel, ou wpanctl
, l'outil de ligne de commande wpantund
pour le réseau
Gestion du co-processeur (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 chargée |
|
API
OpenThread
Utilisez l'API de détection des interférences pour gérer la fonctionnalité de détection des interférences directement dans votre application OpenThread. La L'API OpenThread offre les fonctionnalités suivantes:
- Démarrer et arrêter la fonctionnalité
- Afficher l'état de détection d'un bourrage
- Gérer tous les paramètres
- Récupérer le bitmap actuel de l'historique de détection de Jams
- Enregistrer une fonction de rappel en cas de blocage
Spinelle
Le protocole Spinel permet à un appareil hôte de communiquer directement avec un NCP.
Ce protocole expose des propriétés de détection des interférences dans openthread/src/lib/spinel/spinel.h
qui fournissent les fonctionnalités suivantes :
- Démarrer et arrêter la fonctionnalité
- Afficher l'état de détection d'un bourrage
- Gérer tous les paramètres
- Récupérer le bitmap actuel de l'historique de détection de 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 interférences pour une configuration NCP OpenThread. wpantund
conserve toute la configuration de la détection de brouillage lors du réinitialisation du 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 de bouchon pour un NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Pour définir le seuil RSSI de détection de bouchon 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 la page wpantund
GitHub
un dépôt de clés.