برای ارائه مکانیزم قابل تنظیم برای تشخیص پارازیت سیگنال در هر گره OpenThread، ویژگی Jam Detection را فعال کنید.
این ویژگی برای گواهینامه های دستگاهی که به توانایی تشخیص پارازیت سیگنال در یک کانال خاص نیاز دارند، مفید است. می توان آن را برای برآورده کردن الزامات هر نوع گواهی پیکربندی کرد.
چگونه کار می کند
تشخیص جم، RSSI (نشانگر قدرت سیگنال دریافتی) یک گره را در طول بازههای زمانی مشخص بررسی میکند تا مشخص کند آیا کانال مسدود شده است یا خیر.
هنگامی که تشخیص جم فعال است:
- وضعیت تشخیص جم روی
false
تنظیم شده است. - گره از RSSI چندین بار در هر بازه یک ثانیه نمونه برداری می کند.
- اگر RSSI در کل بازه یک ثانیه ای بالاتر از آستانه RSSI پیکربندی شده برای هر نمونه باقی بماند، آن بازه یک ثانیه گیر کرده در نظر گرفته می شود.
- اگر تعداد مجموع فواصل یک ثانیه ای پارازیت شده بیشتر یا مساوی با تعداد کل ثانیه های دوره اشغال پیکربندی شده در ثانیه های پنجره تشخیص پیکربندی شده قبلی در هر نقطه از زمان باشد، وضعیت تشخیص جم در آن نقطه از زمان روی
true
تنظیم می شود. - اگر تعداد کل بازههای یک ثانیهای گیر کرده کمتر از تعداد کل ثانیههای دوره اشغال پیکربندیشده در ثانیههای پنجره تشخیص پیکربندی شده قبلی در هر نقطه از زمان باشد، وضعیت تشخیص جم در آن نقطه از زمان روی
false
تنظیم میشود.
تاریخچه بیت مپ
در OpenThread API و خواص wpantund
، یک بیت مپ از 63 ثانیه قبل برای بازیابی در دسترس است. این بیت مپ نشان می دهد که آیا RSSI از آستانه RSSI پیکربندی شده در هر یک از 63 ثانیه قبل عبور کرده است یا خیر.
برای مثال، ممکن است بیت مپ زیر را بازیابی کنید:
0xC248068C416E7FF0
تبدیل به باینری هر نمونه ای را تولید می کند که RSSI در طول 63 ثانیه قبل از آستانه RSSI پیکربندی شده بالاتر رفت:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
اگر پنجره تشخیص روی 16 ثانیه و دوره اشغال روی 8 ثانیه تنظیم شود، حالت تشخیص جام در 51 ثانیه true
می شود، زیرا این اولین موردی است که آستانه RSSI در گذشته حداقل 8 ثانیه تمام شده است. 16 ثانیه در این مثال، وضعیت تشخیص Jam برای 13 ثانیه آینده true
باقی می ماند.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
این بیت مپ ممکن است با نمودار زیر نشان داده شود، اگر -45 dBm آستانه RSSI پیکربندی شده باشد:
نحوه فعال کردن
این ویژگی به طور پیش فرض غیرفعال است.
با تعریف
برای فعال کردن Jam Detection، قبل از ساخت OpenThread ، OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
را در فایل openthread/src/core/config/openthread-core-default-config.h
به عنوان 1
تعریف کنید:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
توسط گزینه
همچنین، هنگام ساخت OpenThread از گزینه ساخت -DOT_JAM_DETECTION=ON
استفاده کنید:
./script/build -DOT_JAM_DETECTION=ON
پارامترها
پارامترهای Jam Detection را فقط می توان از طریق OpenThread API، پروتکل Spinel یا wpanctl
، ابزار خط فرمان wpantund
برای مدیریت شبکه Co-Processor (NCP) پیکربندی کرد. اگر ویژگی بدون پیکربندی بعدی فعال شود، مقادیر پیشفرض اعمال میشوند.
این ویژگی را با استفاده از پارامترهای زیر سفارشی کنید:
پارامترها | |||||
---|---|---|---|---|---|
آستانه RSSI |
| ||||
پنجره تشخیص |
| ||||
دوره پرمشغله |
|
API
OpenThread
از Jam Detection API برای مدیریت ویژگی Jam Detection به طور مستقیم در برنامه OpenThread خود استفاده کنید. OpenThread API عملکرد زیر را ارائه می دهد:
- ویژگی را شروع و متوقف کنید
- وضعیت تشخیص جام را مشاهده کنید
- تمام پارامترها را مدیریت کنید
- بیت مپ تاریخچه Jam Detection فعلی را بازیابی کنید
- برای زمانی که پارگی شناسایی می شود، یک عملکرد برگشت به تماس را ثبت کنید
اسپینل
پروتکل اسپینل یک دستگاه میزبان را قادر می سازد تا مستقیماً با یک NCP ارتباط برقرار کند. این پروتکل ویژگیهای Jam Detection را در openthread/src/lib/spinel/spinel.h
نشان میدهد که عملکرد زیر را ارائه میکند:
- ویژگی را شروع و متوقف کنید
- وضعیت تشخیص جام را مشاهده کنید
- تمام پارامترها را مدیریت کنید
- بیت مپ تاریخچه Jam Detection فعلی را بازیابی کنید
CLI
OpenThread
هیچ دستور OpenThread CLI مربوط به این ویژگی وجود ندارد.
wpantund
از wpanctl
CLI برای مدیریت ویژگی Jam Detection برای پیکربندی OpenThread NCP استفاده کنید. wpantund
تمام پیکربندیهای Jam Detection را پس از تنظیم مجدد 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 روی -45 دسی بل در یک NCP:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
برای اطلاعات بیشتر در مورد ویژگیهای wpantund
، به مخزن wpantund
GitHub مراجعه کنید.