Cihazların herhangi bir cihazda sinyal sıkışmalarını algılamak için yapılandırılabilir bir mekanizma sağlamak OpenThread düğümü, Jam Algılama özelliğini etkinleştirin.
Bu özellik, belirli bir kanalda sinyal bozulmasını algılama özelliği gerektiren cihaz sertifikaları için yararlıdır. Her sertifika türünün şartlarını karşılayacak şekilde yapılandırılabilir.
İşleyiş şekli
Jam Algılama, bir düğümün RSSI'sini (alınan sinyal gücü göstergesi) izler belirli zaman dilimleri içinde, kanalın tamamen başarılı bir şekilde sıkıştı.
Jam Algılama etkinleştirildiğinde:
- Jam Algılama Durumu
false
olarak ayarlandı. - Düğüm, her bir saniyelik aralıklarla RSSI'den birden çok kez örnek alır.
- Bu bir saniyelik aralığın tamamı üzerindeki RSSI, her örnek için RSSI Eşiği'ni yapılandırdığınızdan, kabul edilir.
- Sıkışmış bir saniyelik aralıkların toplam sayısı şundan fazlaysa:
yapılandırılmış Meşgul Dönemi'nin toplam sayısına eşittir
önceki yapılandırılmış Algılama Aralığı saniyesi içinde saniye sayısı
herhangi bir zamanda, o anki Jam Algılama Durumu ayarlanır.
true
adlı yere. - Sıkışmış bir saniyelik aralıkların toplam sayısı şundan azsa
içinde yapılandırılmış Meşgul Dönemi saniyelerinin toplam sayısı
herhangi bir noktada önceki yapılandırılmış Algılama Penceresi saniyesi
o anki Jam Algılama Durumu
false
olarak ayarlanır.
Geçmiş Bit Eşlemi
OpenThread API ve wpantund
mülklerinde, önceki 63 saniyenin bir bitmap'i alınabilir. Bu bit eşlem
RSSI'nin, her bir feed'de yapılandırılmış RSSI Eşiği'ni geçip geçmediğini
%63 daha yüksek.
Örneğin, aşağıdaki bit eşlemi alabilirsiniz:
0xC248068C416E7FF0
İkili sisteme dönüştürme işlemi, RSSI'nin önceki 63 saniye boyunca yapılandırılmış RSSI Eşiğinin üzerine çıktığı her durumu oluşturur:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Algılama Aralığı 16 saniyeye, Meşgul Dönemi ise 8 saniyeye ayarlanmışsa RSSI Eşiğinin önceki 16 saniye içinde en az 8 saniye boyunca aşıldığı ilk durum olduğu için Jam Algılama Durumu 51. saniyede true
olur. Bu örnekte, Jam Algılama Durumu
Önümüzdeki 13 saniye boyunca true
.
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şleme aşağıdaki grafikle gösterilebilir:
Nasıl etkinleştirilir?
Bu özellik varsayılan olarak devre dışıdır.
Tanımlayarak
Jam Algılama'yı etkinleştirmek için şunları tanımlayın:
1
rolüyle OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
openthread/src/core/config/openthread-core-default-config.h
dosyasını kullanın: OpenThread'i oluşturmadan:
#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 kullanın:
./script/build -DOT_JAM_DETECTION=ON
Parametreler
Parazit algılama parametreleri yalnızca OpenThread API, Spinel protokolü veya ağ yardımcı işlemcisi (NCP) yönetimi için wpanctl
komut satırı aracı olan wpantund
aracılığıyla yapılandırılabilir. Özellik, daha sonra yapılandırılmadan 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önem |
|
API
OpenThread
Jam Detection API'yi kullanarak Jam Algılama özelliğini doğrudan OpenThread uygulamanızda yönetebilirsiniz. İlgili içeriği oluşturmak için kullanılan OpenThread API aşağıdaki işlevleri sağlar:
- Özelliği başlatma ve durdurma
- Parazit Algılama Durumu'nu görüntüleme
- Tüm parametreleri yönet
- Mevcut girişim algılama geçmişi bit haritasını alma
- Jam tespit edildiğinde kullanılacak geri çağırma işlevi kaydedin
Döner
Spinel protokolü, ana cihazın doğrudan bir NCP ile iletişim kurmasını sağlar.
Bu protokol, Jam algılama özelliklerini şurada gösterir:
openthread/src/lib/spinel/spinel.h
özellikleri vardır:
- Özelliği başlatma ve durdurma
- Parazit Algılama Durumu'nu 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 yoktur.
wpantund
OpenThread NCP yapılandırması için girişim algılama özelliğini yönetmek üzere wpanctl
CLI'yi kullanın. wpantund
, NCP durumunda tüm Jam Algılama yapılandırmasını korur
sıfırlandı.
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, bir NCP için Jam Detection State'i (Gürültü Algılama Durumu) almak istiyorsanız:
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.