כדי לספק מנגנון ניתן להגדרה לזיהוי של שיבוש אותות צומת OpenThread, הפעלת התכונה 'זיהוי Jam'.
התכונה הזו שימושית לאישורי מכשירים שדורשים יכולת לזהות חסימה של אותות בערוץ ספציפי. אפשר להגדיר אותו כך שיתאים לדרישות של כל סוג הסמכה.
איך זה עובד
השירות 'זיהוי Jam' עוקב אחר ה-RSSI (אינדיקטור עוצמת האות שמתקבל) של צומת במהלך חלונות הזמן המוגדרים מראש, כדי לקבוע אם הערוץ אין שיבושים.
כשמפעילים את התכונה 'זיהוי של Jam':
- המצב של זיהוי ה-Jam מוגדר ל
false
. - הצומת נדגם את ה-RSSI כמה פעמים בכל מרווח זמן של שנייה אחת.
- אם ערך ה-RSSI במהלך כל מרווח הזמן של השנייה הזו נשאר מעל סף ה-RSSI שהוגדר לכל דגימה, מרווח הזמן של השנייה הזו נחשב כמטושטש.
- אם המספר המצטבר של פרקי זמן של שנייה אחת שנתקע הוא גדול מ- או
שווה למספר המצטבר של תקופת העסוקה שהוגדרו
שניות במהלך חלון הזיהוי שהוגדר הקודם
בכל רגע נתון, מצב הזיהוי של מסמך Jam מוגדר באותו זמן
עד
true
. - אם המספר המצטבר של פרקי זמן של שנייה אחת שנתקעו הוא קטן מהערך
המספר המצטבר של שניות שהוגדרו בתקופת העומס
חלון הזיהוי שהוגדר קודם לכן בכל נקודה
בשלב הזה, המצב של זיהוי ה-Jam יוגדר ל-
false
.
מפת סיביות של היסטוריה
ב-OpenThread API ובמאפייני wpantund
, אפשר לאחזר קובץ bitmap של 63 השניות הקודמות. המיפוי הבינארי הזה מציין אם ערך ה-RSSI חצה את ערך הסף של ה-RSSI שהוגדר בכל אחת מ-63 השניות הקודמות.
לדוגמה, אפשר לאחזר את מפת הסיביות הבאה:
0xC248068C416E7FF0
ההמרה לבינארי יוצרת כל מופע שבו ערך ה-RSSI עלה על ערך הסף של ה-RSSI שהוגדר במהלך 63 השניות הקודמות:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
אם חלון הזיהוי מוגדר ל-16 שניות ותקופה הפעילות מוגדר ל-8 שניות, סטטוס זיהוי החסימה הופך ל-true
אחרי 51 שניות, כי זהו המקרה הראשון שבו ערך הסף של RSSI חרג לפחות ב-8 שניות מלאות ב-16 השניות הקודמות. בדוגמה הזו, סטטוס זיהוי החסימה נשאר true
במשך 13 השניות הבאות.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
אם הסף של RSSI שהוגדר הוא -45dBm, ייתכן שהביטמ' הזה יוצג בתרשים הבא:
איך מפעילים
התכונה הזו מושבתת כברירת מחדל.
לפי הגדרה
כדי להפעיל זיהוי Jam, יש להגדיר
OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
בתור 1
openthread/src/core/config/openthread-core-default-config.h
לפני בניית OpenThread:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
לפי אפשרות
לחלופין, אפשר להשתמש באפשרות ה-build -DOT_JAM_DETECTION=ON
במהלך בניית
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
פרמטרים
אפשר להגדיר פרמטרים לזיהוי Jam רק דרך OpenThread API,
פרוטוקול Spinel, או wpanctl
, כלי שורת הפקודה wpantund
עבור רשת
ניהול מעבד מידע משותף (NCP). ערכי ברירת המחדל חלים אם התכונה מופעלת בלי הגדרה נוספת.
אפשר להתאים אישית את התכונה הזו באמצעות הפרמטרים הבאים:
פרמטרים | |||||
---|---|---|---|---|---|
סף RSSI |
|
||||
חלון זיהוי |
|
||||
תקופת עומס |
|
API
OpenThread
להשתמש ב-Jam Detection API כדי לנהל את התכונה 'זיהוי Jam' ישירות באפליקציה OpenThread. ב-OpenThread API אפשר להשתמש בפונקציות הבאות:
- הפעלה ועצירה של התכונה
- הצגת המצב של זיהוי Jam
- ניהול כל הפרמטרים
- אחזור מפת סיביות של ההיסטוריה של זיהוי Jam
- רישום פונקציית קריאה חוזרת למקרים שבהם מזוהה חסימה
עמוד שדרה
פרוטוקול Spinel מאפשר למכשיר מארח לתקשר ישירות עם NCP.
הפרוטוקול הזה חושף את המאפיינים של זיהוי Jam ב-
openthread/src/lib/spinel/spinel.h
שמספקים את הפונקציונליות הבאה:
- הפעלה ועצירה של התכונה
- הצגת המצב של זיהוי Jam
- ניהול כל הפרמטרים
- אחזור של הבייטמאפ הנוכחי של היסטוריית זיהוי הרעשים
CLI
OpenThread
אין פקודות OpenThread CLI שקשורות לתכונה הזו.
wpantund
איך משתמשים ב-CLI של wpanctl
כדי לנהל את התכונה 'זיהוי Jam' ב-OpenThread NCP
הגדרה אישית. wpantund
שומרת את כל ההגדרות של זיהוי החסימות אחרי איפוס ה-NCP.
האפליקציה wpanctl
מספקת גישה לנכסים הבאים של wpantund
:
מאפיינים | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
לדוגמה, כדי לקבל את מצב הזיהוי של מסמך Jam עבור NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
כדי להגדיר את סף ה-RSSI לזיהוי Jam ל- -45 dBm ב-NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
מידע נוסף על מאפייני wpantund
זמין במאגר GitHub של wpantund
.