Jam Algılama

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

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:

  1. Jam Algılama Durumu false olarak ayarlandı.
  2. Düğüm, her bir saniyelik aralıklarla RSSI'den birden çok kez örnek alır.
  3. Bu bir saniyelik aralığın tamamı üzerindeki RSSI, her örnek için RSSI Eşiği'ni yapılandırdığınızdan, kabul edilir.
  4. 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.
  5. 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:

OT Jam Algılama

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
Varsayılan değer
0 dBm
Açıklama
Kanalın kilitlenmiş olarak kabul edileceği, üzerindeki RSSI seviyesini dBm olarak belirtir.
Algılama Penceresi
Varsayılan değer
63 saniye
Açıklama
Sinyal bozulmasını kontrol etmek için saniye cinsinden pencereyi belirtir. Aralık: 1-63.
Meşgul Dönem
Varsayılan değer
63 saniye
Açıklama
Parazit algılamasını tetiklemek için RSSI'nin RSSI Eşiğinin üzerinde olması gereken Algılama Aralığı'ndaki toplam saniye sayısını belirtir. Algılama Aralığı'ndan küçük olmalıdır. Aralık: 1-63.

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
Biçim
boolean
Açıklama
Salt okunur. Jam Algılama Durumu. Şu anda sinyal bozulması algılanıp algılanmadığını gösterir.
JamDetection:Enable
Biçim
boolean
Açıklama
Parazit Algılama özelliğini etkinleştirin veya devre dışı bırakın.
JamDetection:RssiThreshold
Biçim
dBm
Açıklama
Kanalın engellenmiş olarak kabul edileceği eşik RSSI düzeyini dBm cinsinden 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
Jam algılamanın tetiklenmesi için RSSI'nın JamDetection:RssiThreshold değerinden büyük olması gereken JamDetection:Window içinde toplanan saniye sayısını belirtir. JamDetection:Window değerinden küçük olmalıdır. Aralık: 1-63.
JamDetection:Debug:HistoryBitmap
Biçim
64 bit değer
Açıklama
İzleme ve hata ayıklama amacıyla Jam Algılama Durumu geçmişi hakkında bilgi sağlar.

Ö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.