Google is committed to advancing racial equity for Black communities. See how.

Sıkışma Algılama

Kaynağı GitHub'da görüntüleyin

Herhangi bir OpenThread düğümünde sinyal sıkışması algılaması için yapılandırılabilir bir mekanizma sağlamak için Sıkışma Algılama özelliğini etkinleştirin.

Bu özellik, belirli bir kanalda sinyal sıkışmasını algılama yeteneği gerektiren cihaz sertifikaları için kullanışlıdır. Her bir sertifika türünün gereksinimlerini karşılayacak şekilde yapılandırılabilir.

Nasıl çalışır

Sıkışma Tespiti, kanalın sıkışıp sıkışmadığını belirlemek için belirli zaman aralıklarında bir düğümün RSSI'sini (alınan sinyal gücü göstergesi) izler.

Sıkışma Algılama etkinleştirildiğinde:

  1. Reçel Algılama Devlet ayarlandığında false .
  2. Düğüm, RSSI'yi her bir saniyelik aralıkta birden çok kez örnekler.
  3. Konfigüre Yukarıdaki bütün bir ikinci aralık kalıntıları üzerinde RSSI Eğer RSSI Eşik her bir örnek için, tek bir ikinci aralık sıkışmış kabul edilir.
  4. Sıkışan bir saniye aralıklarla bir toplam sayısı yapılandırılmış toplam sayısına eşit ya da daha fazla ise, yoğun bir dönem önceki yapılandırılmış olan saniye Algılama Pencere zaman içinde herhangi bir noktada saniye, zaman içinde bu noktada Sıkışma algılama konumuna ayarlanır true .
  5. Sıkışmış bir saniye aralıklarla bir toplam sayısı az yapılandırılmış toplam sayısından daha olursa Meşgul Dönem Önceki yapılandırılmış olan saniye Algılama Penceresi zaman içinde herhangi bir noktada saniye zaman içinde bu noktada Jam Algılama Devlet ayarlandığında false .

Geçmiş Bitmap

Gelen OpenThread API ve wpantund özellikleri , önceki 63 saniyelik bir bit eşlem alma için kullanılabilir. Bu bit eşlem, RSSI'nin önceki 63 saniyenin her birinde yapılandırılmış RSSI Eşiğini geçip geçmediğini gösterir.

Örneğin, aşağıdaki bit eşlemi alabilirsiniz:

0xC248068C416E7FF0

İkili dosyaya dönüştürme, RSSI'nin önceki 63 saniye boyunca yapılandırılmış RSSI Eşiğinin üzerine çıktığı her örneği üretir:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Tespit Pencere 16 saniyeye ayarlanır ve yoğun bir dönem 8 saniye olarak ayarlanmışsa, Sıkışma Algılama Devlet olur true bu RSSI Eşik önceki en az 8, tüm saniye aşıldı ilk örneği olarak, 51 saniye 16 saniye. Bu örnekte, Reçel Algılama Devlet kalır true önümüzdeki 13 saniye boyunca.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

-45 dBm yapılandırılmış RSSI Eşiği ise, bu bit eşlem aşağıdaki grafikle temsil edilebilir:

OT Sıkışma Tespiti

nasıl etkinleştirilir

Bu özellik varsayılan olarak devredışı bırakılmıştır.

tanımlayarak

Sıkışma belirlenmesini sağlamak için, tanımlama OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE olarak 1 içinde openthread/src/core/config/openthread-core-default-config.h önce, dosya OpenThread yapı :

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Seçeneğe göre

Alternatif olarak, kullanmak -DOT_JAM_DETECTION=ON inşa seçenek OpenThread bina :

./script/build -DOT_JAM_DETECTION=ON

parametreler

Reçel Algılama parametreleri yalnızca OpenThread API, Spinel protokolü veya aracılığıyla yapılandırılabilir wpanctl , wpantund Ağ Eş İşlemci (NCP) yönetimi için komut satırı aracı. Ö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
Varsayılan değer
0 dBm
Açıklama
Kanalın sıkıştığını dikkate almak için dBm cinsinden eşik RSSI seviyesini belirtir.
Algılama Penceresi
Varsayılan değer
63 saniye
Açıklama
Sinyal sıkışmasının kontrol edileceği pencereyi saniye cinsinden belirtir. Aralık: 1-63.
Meşgul dönem
Varsayılan değer
63 saniye
Açıklama
Sıkışma Tespitini tetiklemek için RSSI'nin RSSI Eşiğinin üzerinde olması gereken Algılama Penceresi içinde toplam saniye sayısını belirtir. Algılama Penceresinden daha küçük olmalıdır. Aralık: 1-63.

API

Açık Konu

Kullanım Jam Algılama API sizin OpenThread uygulamasında doğrudan Jam Algılama özelliğini yönetmek için. OpenThread API aşağıdaki işlevleri sağlar:

  • Özelliği başlat ve durdur
  • Sıkışma Algılama Durumunu Görüntüle
  • Tüm parametreleri yönet
  • Geçerli Sıkışma Algılama geçmişi bit eşlemini alın
  • Sıkışma algılandığında bir geri arama işlevi kaydedin

Spinel

Spinel protokolü, bir ana cihazın doğrudan bir NCP ile iletişim kurmasını sağlar. Bu protokol de Jam Algılama özellikleri sunar openthread/src/lib/spinel/spinel.h aşağıdaki işlevselliği sağlamak:

  • Özelliği başlat ve durdur
  • Sıkışma Algılama Durumunu Görüntüle
  • Tüm parametreleri yönet
  • Geçerli Sıkışma Algılama geçmişi bit eşlemini alın

CLI

Açık Konu

Bu özellikle ilgili OpenThread CLI komutu yoktur.

wpantund

Kullanım wpanctl bir OpenThread NCP yapılandırması için Jam Algılama özelliğini yönetmek için CLI. wpantund NCP sıfırlanması üzerine tüm Jam Algılama yapılandırmasını korur.

wpanctl aşağıdaki erişim sağlar wpantund özellikleri:

Özellikler
JamDetection:Status
Biçim
boole
Açıklama
Sadece oku. Sıkışma Algılama Durumu. Şu anda bir sinyal sıkışmasının algılanıp algılanmadığını gösterir.
JamDetection:Enable
Biçim
boole
Açıklama
Sıkışma Algılama özelliğini etkinleştirin veya devre dışı bırakın.
JamDetection:RssiThreshold
Biçim
dBm
Açıklama
Engellenen kanalın dikkate alınacağı dBm cinsinden eşik RSSI düzeyini belirtir.
JamDetection:Window
Biçim
saniye
Açıklama
Sinyal sıkışmasının kontrol edileceği pencereyi saniye cinsinden belirtir. Aralık: 1-63.
JamDetection:BusyPeriod
Biçim
saniye
Açıklama
Belirtir içinde toplam saniye sayısı JamDetection:Window RSSI üstünde olmalıdır ki JamDetection:RssiThreshold tetiğe Jam Algılama. Daha küçük olmalıdır JamDetection:Window . Aralık: 1-63.
JamDetection:Debug:HistoryBitmap
Biçim
64 bit değer
Açıklama
İzleme ve hata ayıklama amacıyla Sıkışma Algılama Durumu geçmişi hakkında bilgi sağlar.

Örneğin, bir NCP için Sıkışma Algılama Durumunu almak için:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Bir NCP'de Sıkışma Algılama RSSI Eşiğini -45 dBm'ye ayarlamak için:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Hakkında daha fazla bilgi için wpantund özellikleri için bakınız wpantund GitHub depo .