Kaynağı GitHub'da görüntüleyin
Herhangi bir OpenThread düğümünde sinyal sıkışması tespiti için yapılandırılabilir bir mekanizma sağlamak amacıyla Jam Algılama özelliğini etkinleştirin.
Bu özellik, belirli bir kanalda sinyal sıkışmasını algılamayı gerektiren cihaz sertifikaları için faydalıdır. Her bir sertifika türünün gereksinimlerini karşılayacak şekilde yapılandırılabilir.
İşleyiş şekli
Jam Algılama, kanalın çalınıp çalınmadığını belirlemek için belirtilen zaman aralığında bir düğümün RSSI'sını (alınan sinyal gücü göstergesi) izler.
Jam Algılama etkinleştirildiğinde:
- Jam Algılama Durumu
false
olarak ayarlandı. - Düğüm, RSSI'yı her bir saniye aralığında birden çok kez örnekler.
- Bu bir saniyelik aralıktaki RSSI, her örnek için yapılandırılmış RSSI Eşiği'nin üzerinde kalırsa bir saniyelik aralık sıkışmış olarak kabul edilir.
- Sıkıştırılmış bir saniyelik aralıkların toplam sayısıen az:
eşittir yapılandırılan toplam sayıYoğun Dönem saniye cinsinden yapılandırılmışAlgılama Penceresi herhangi bir noktada saniye olarak, o zamandaki Jam Algılama Durumu
true
, - Sıkıştırılmış bir saniyelik aralıkların toplam sayısıküçüktür yapılandırılmış toplam sayısıYoğun Dönem önceki yapılandırılmış saniye içindekiAlgılama Penceresi herhangi bir noktada saniye olarak, o zamandaki Jam Algılama Durumu
false
,
Geçmiş Bit Eşlemi
OpenThread API ve wpantund
özelliklerinde, önceki 63 saniyenin bir bit eşlemi veri alma için kullanılabilir. Bu bit eşlem, RSSI'nın 63 saniyeden önce oluşturulan yapılandırılmış RSSI Eşiği'ni geçip geçmediğini gösterir.
Örneğin, aşağıdaki bit eşlemi alabilirsiniz:
0xC248068C416E7FF0
İkili biçime dönüştürme, RSSI'nın yapılandırılmış olan RSSI Eşiğinin üzerindeki 63 saniye boyunca geçtiği her örneği oluşturur:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Algılama Penceresi 16 saniyeye ve Yoğun Dönem 8 saniyeye ayarlanırsa, Jam Algılama Durumu, RSSI Eşiğinin ilk örneği olduğu için 51 saniyede true
olur. önceki 16 saniyede en az 8 tam saniyeyi aştı. Bu örnekte, Jam Algılama Durumu önümüzdeki 13 saniye boyunca true
olarak kalır.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Yapılandırılmış RSSI Eşiği -45 dBm ise bu bit eşlem aşağıdaki grafikle temsil edilebilir:

Nasıl etkinleştirilir?
Bu özellik varsayılan olarak devre dışıdır.
Tanıma göre
Jam Algılama özelliğini etkinleştirmek için OpenThread'i oluşturmadan önce openthread/src/core/config/openthread-core-default-config.h
dosyasında OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
öğesini 1
olarak tanımlayın:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Seçeneğe göre
Alternatif olarak, OpenThread oluştururken -DOT_JAM_DETECTION=ON
derleme seçeneğini kullanabilirsiniz:
./script/build -DOT_JAM_DETECTION=ON
Parametreler
Jam Algılama parametreleri yalnızca OpenThread API,Spinel protokolü veya Ağ Ortak İşlemci (NCP) yönetimi için wpantund
komut satırı aracı wpanctl
aracılığıyla yapılandırılabilir. Özellik, daha sonraki bir yapılandırma olmadan etkinleştirilirse varsayılan değerler uygulanır.
Aşağıdaki parametreleri kullanarak bu özelliği özelleştirin:
Parametreler | |||||
---|---|---|---|---|---|
RSSI Eşiği |
|
||||
Algılama Penceresi |
|
||||
Meşgul Dönemi |
|
API
OpenThread
Jam Algılama özelliğini doğrudan OpenThread uygulamanızda yönetmek için Jam Detection API'yi kullanın. OpenThread API aşağıdaki işlevleri sağlar:
- Özelliği başlatma ve durdurma
- Jam Algılama Durumunu görüntüleme
- Tüm parametreleri yönet
- Mevcut Jam Algılama geçmişi bit eşlemini alma
- Jam algılandığında geri çağırma işlevini kaydetme
Spinilin
Spinel protokolü, ana makine cihazının NCP ile doğrudan iletişim kurmasını sağlar.
Bu protokol, openthread/src/lib/spinel/spinel.h
içinde aşağıdaki işlevleri sağlayan Jam Algılama özelliklerini sunar:
- Özelliği başlatma ve durdurma
- Jam Algılama Durumunu görüntüleme
- Tüm parametreleri yönet
- Mevcut Jam Algılama geçmişi bit eşlemini alma
KSA
OpenThread
Bu özellikle ilgili OpenThread CLI komutu yok.
Wpantund
OpenThread NCP yapılandırması için Jam Algılama özelliğini yönetmek için wpanctl
KSA'yı kullanın. wpantund
, NCP sıfırlandıktan sonra tüm Jam Algılama yapılandırmasını korur.
wpanctl
, aşağıdaki wpantund
özelliklerine erişim sağlar:
Özellikler | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Örneğin, bir NCP için Jam Algılama Durumunu almak için:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Jam Algılama RSSI Eşiği'ni NCP'de -45 dBm olarak ayarlamak için:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
wpantund
özellikleri hakkında daha fazla bilgi için wpantund
GitHub deposu'na bakın.