Jam Algılama

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

Herhangi bir OpenThread düğümünde sinyal karıştırma algılama için yapılandırılabilir bir mekanizma sağlamak üzere Karıştırma Algılama özelliğini etkinleştirin.

Bu özellik, belirli bir kanalda sinyal karıştırmayı algılama özelliğinin gerekli olduğu 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 Detection, kanalın engellenip engellenmediğini belirlemek için belirtilen zaman aralıklarında bir düğümün RSSI'sini (alınan sinyal gücü göstergesi) izler.

Parazit Algılama etkinleştirildiğinde:

  1. Sıkışma Algılama Durumu false olarak ayarlanır.
  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ık sıkışmış olarak kabul edilir.
  4. Herhangi bir zamanda, önceki yapılandırılmış algılama penceresi saniyeleri içindeki yapılandırılmış Yoğun Dönem saniyelerinin toplam sayısı, bir saniyelik sıkışma aralıklarının toplam sayısından fazla veya eşitse o andaki sıkışma algılama durumu true olarak ayarlanır.
  5. Bir saniyelik aralıkların toplam sıkışma sayısı, herhangi bir zamanda önceki yapılandırılmış algılama penceresi saniyeleri içindeki yapılandırılmış meşgul dönem saniyelerinin toplam sayısından azsa o andaki sıkışma algılama durumu false olarak ayarlanır.

Geçmiş Bit Eşlemi

OpenThread API'de, önceki 63 saniyenin bit eşlemi alınabilir. Bu bit eşlem, 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 bit eşlemi alabilirsiniz:

0xC248068C416E7FF0

İkiliye dönüştürme, son 63 saniye içinde RSSI'nin yapılandırılmış RSSI eşiğinin üzerine çıktığı her örneği üretir:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Algılama penceresi 16 saniye, meşguliyet dönemi ise 8 saniye olarak ayarlanırsa 51. saniyede Jam Detection State (Sinyal Karıştırma Algılama Durumu) true olur. Bunun nedeni, önceki 16 saniye içinde RSSI eşiğinin en az 8 saniye boyunca aşıldığı ilk örnek olmasıdır. Bu örnekte, Sıkışma 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

-45 dBm yapılandırılmış RSSI eşiği ise bu bit eşlem aşağıdaki grafikle gösterilebilir:

OT Jam Detection

Nasıl etkinleştirilir?

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

By define

Sinyal karıştırma tespitini 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 değerini 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'i oluştururken -DOT_JAM_DETECTION=ON oluşturma seçeneğini kullanın:

./script/build -DOT_JAM_DETECTION=ON

Parametreler

Sıkışma algılama parametreleri yalnızca OpenThread API'si veya Spinel protokolü 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
Varsayılan değer
0 dBm
Açıklama
Kanalın sıkışmış olarak kabul edileceği eşik RSSI düzeyini dBm cinsinden belirtir.
Algılama aralığı
Varsayılan değer
63 saniye
Açıklama
Sinyal karıştırmanın kontrol edileceği süreyi saniye cinsinden belirtir. Aralık: 1-63.
Yoğun dönem
Varsayılan değer
63 saniye
Açıklama
RSSİ'nin, Jam algılamayı tetiklemek için RSSI eşiğinin üzerinde olması gereken algılama penceresindeki 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 Detection özelliğini doğrudan OpenThread uygulamanızda yönetin. OpenThread API, aşağıdaki işlevleri sağlar:

  • Özelliği başlatma ve durdurma
  • Sıkışma algılama durumunu görüntüleme
  • Tüm parametreleri yönetme
  • Mevcut Jam Detection geçmişi bit eşlemini alma
  • Bir tıkanıklık algılandığında geri çağırma işlevini kaydetme

Spinel

Spinel protokolü, bir ana makine cihazının NCP ile doğrudan iletişim kurmasını sağlar. Bu protokol, aşağıdaki işlevleri sağlayan openthread/src/lib/spinel/spinel.h'deki Jam Detection özelliklerini kullanıma sunar:

  • Özelliği başlatma ve durdurma
  • Sıkışma algılama durumunu görüntüleme
  • Tüm parametreleri yönetme
  • Mevcut Jam Detection geçmişi bit eşlemini alma

KSA

OpenThread

Bu özellikle ilgili OpenThread CLI komutu yoktur.