Herhangi bir OpenThread düğümünde sinyal sıkışma algılama 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ılamanın gerekli olduğu cihaz sertifikaları için yararlıdır. Her bir sertifika türünün gereksinimlerini karşılayacak şekilde yapılandırılabilir.
Nasıl çalışır?
Jam Algılama, kanalın sıkışıp titremediğini belirlemek için belirli bir zaman aralığında bir düğümün RSSI'sini (alınan sinyal gücü göstergesi) izler.
Jam Algılama etkinleştirildiğinde:
- Jam Algılama Durumu
false
olarak ayarlandı. - Düğüm, RSSI'yi her bir saniyelik aralıkta birden çok kez kullanır.
- Bir saniyelik aralığın üzerindeki RSSI, her örnek için yapılandırılmış RSSI Eşiği'nin üzerinde kalırsa bu bir saniye aralığı sıkışmış olarak kabul edilir.
- Herhangi bir zamanda, önceden yapılandırılmış Algılama Zaman Aralığı'nda yer alan yapılandırılmış Meşgul Dönemi'nin toplam sayısı, toplamından daha uzun olan bir adet sıkışmış durum toplamından yüksekse veya daha az ise o andaki Jam Algılama Durumu
true
olarak ayarlanır. - Herhangi bir zamanda, önceden yapılandırılmış Algılama Penceresi'nde bulunan yapılandırılmış Meşgul Süresi'nin toplam sayısı, bir saniyelik aralıklarla oluşturulan sıkıştırılmış içeriğin toplamdan azsa o anda Jam Algılama Durumu
false
olarak ayarlanır.
Geçmiş Bit Eşlemi
Önceki 63 saniyenin bit eşlemi, OpenThread API ve wpantund
mülklerinde alınabilir. Bu bit eşlem, RSSI'nin yapılandırılmış RSSI Eşiği'ni önceki 63 saniyenin her birinde geçip geçmediğini belirtir.
Örneğin, aşağıdaki bit eşlemeyi alabilirsiniz:
0xC248068C416E7FF0
İkili biçime dönüştürme, RSSI'nin yapılandırılmış RSSI Eşiği'nin üzerinde önceki 63 saniye boyunca gittiği her örneği oluşturur:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Algılama Aralığı 16 saniyeye ve Yoğun Kullanım Süresi 8 saniyeye ayarlanırsa Jam Algılama Durumu 51 saniyede true
olur. Bu, RSSI Eşiği'nin önceki 16 saniye içinde en az 8 tam saniyenin aşıldığı ilk örnektir. Bu örnekte, Jam Algılama Durumu sonraki 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 gösterilebilir:
Etkinleştirme
Bu özellik varsayılan olarak devre dışıdır.
Tanımlayıcı
Jam Algılama'yı etkinleştirmek için OpenThread'ı oluşturmadan önce openthread/src/core/config/openthread-core-default-config.h
dosyasında OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
özelliğini 1
olarak tanımlayın:
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
Seçeneğe göre
OpenThread oluştururken -DOT_JAM_DETECTION=ON
derleme seçeneğini de kullanabilirsiniz:
./script/build -DOT_JAM_DETECTION=ON
Parametreler
Jam Algılama parametreleri yalnızca OpenThread API, Spinel protokolü veya Ağ İşleyen (NCP) yönetimi için wpantund
komut satırı aracı olan wpanctl
aracılığıyla yapılandırılabilir. Özellik sonraki 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 Aralığı |
|
||||
Meşgul Dönemi |
|
API
OpenThread
Jam Algılama özelliğini doğrudan OpenThread uygulamanızda yönetmek için JamDetect 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üle
- Tüm parametreleri yönet
- Mevcut Jam algılama geçmişi bit eşlemini alma
- Jam tespit edildiğinde geri çağırma işlevi kaydetme
Dönen
Spinel protokolü, ana makine cihazının bir NCP ile doğrudan iletişim kurmasını sağlar.
Bu protokol, openthread/src/lib/spinel/spinel.h
ürününde aşağıdaki işlevleri sağlayan Jam Algılama özelliklerini gösterir:
- Özelliği başlatma ve durdurma
- Jam Algılama Durumunu görüntüle
- 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ının 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ırmalarını korur.
wpanctl
aşağıdaki wpantund
mülklerine erişim sağlar:
Özellikler | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Örneğin, NCP için Jam Algılama Durumu bilgilerini almak üzere:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
NCP'de Jam Algılama RSSI Eşiği'ni -45 dBm olarak ayarlamak için:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
wpantund
mülkleri hakkında daha fazla bilgi için wpantund
GitHub deposuna bakın.