Jam Algılama

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

Herhangi bir OpenThread düğümünde sinyal sıkışma algılaması 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 tıkanıklığını tespit etme becerisi gerektiren cihaz sertifikaları için yararlıdır. Her sertifika türünün gereksinimlerini karşılayacak şekilde yapılandırılabilir.

İşleyiş şekli

Parazit algılama, kanalın parazite uğrayıp uğramadığını belirlemek için belirli zaman aralıkları boyunca bir düğümün RSSI'sini (alınan sinyal gücü göstergesi) izler.

Parazit algılama etkinleştirildiğinde:

  1. Jam Algılama Durumu false olarak ayarlandı.
  2. Düğüm, her bir saniyelik aralıkta RSSI'yi birden çok kez örnekler.
  3. Bir saniyelik aralığın tamamı boyunca RSSI, her örnek için yapılandırılmış RSSI Eşiğinin üzerinde kalırsa bu bir saniyelik aralığın parazitli olduğu kabul edilir.
  4. Bir saniyelik tıkanıklık aralığının toplam sayısı, herhangi bir zamanda önceki yapılandırılmış Algılama Aralığı saniyeleri içindeki yapılandırılmış Meşgul Dönem saniyelerinin toplam sayısından fazla veya eşitse o zamanki tıkanıklık algılama durumu true olarak ayarlanır.
  5. Bir saniyelik tıkanıklık aralıkları toplam sayısı, herhangi bir zamandaki önceki yapılandırılmış Algılama Aralığı saniyeleri içindeki yapılandırılmış Meşgul Dönemi saniyeleri toplam sayısından az ise o zamanki Tıkanıklık 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şleme, RSSI'nin önceki 63 saniyenin her birinde yapılandırılmış RSSI eşiğini aşıp aşmadığını gösterir.

Örneğin, aşağıdaki bitmap'i 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 saniye ve Meşgul Dönemi 8 saniye olarak ayarlanırsa RSSI Eşiğinin önceki 16 saniyede en az 8 tam saniyenin aşıldığı ilk örnek olan Jam Algılama Durumu 51. saniyede true olur. Bu örnekte, Jam Algılama Durumu önümüzdeki 13 saniye boyunca true olarak kalacaktı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şleme aşağıdaki grafikle gösterilebilir:

OT Jam Detection

Etkinleştirme

Bu özellik varsayılan olarak devre dışıdır.

Tanımlamaya 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 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 Aralığı
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
Jam algılamanın tetiklenmesi için RSSI'nın, RSSI Eşiği'nin ü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

Girişim algılama özelliğini doğrudan OpenThread uygulamanızda yönetmek için Girişim Algılama API'sini 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 tespit edildiğinde kullanılacak geri çağırma işlevi kaydedin

Spinel

Spinel protokolü, ana cihazın doğrudan bir NCP ile iletişim kurmasını sağlar. Bu protokol, openthread/src/lib/spinel/spinel.h içinde aşağıdaki işlevleri sağlayan Jam Detection mülklerini gösterir:

  • Ö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 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 sıfırlandığında tüm Jam Detection yapılandırmasını korur.

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. Sinyal sıkışması algılanıp algılanmadığını gösterir.
JamDetection:Enable
Biçim
boolean
Açıklama
Jam algılama özelliğini etkinleştirin veya devre dışı bırakın.
JamDetection:RssiThreshold
Biçim
dBm
Açıklama
Kanalın engellendiğini kabul etmek için RSSI eşiğinin dBm cinsinden değerini belirtir.
JamDetection:Window
Biçim
saniye
Açıklama
Sinyal bozulmasını kontrol etmek için saniye cinsinden pencereyi belirtir. Aralık: 1-63.
JamDetection:BusyPeriod
Biçim
saniye
Açıklama
Parazit algılamayı tetiklemek için RSSI'nin JamDetection:RssiThreshold'un üzerinde olması gereken JamDetection:Window içindeki toplam 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

Bir NCP'de Parazit Algılama RSSI Eşiğini -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.