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:
- Sıkışma Algılama Durumu
false
olarak ayarlanır. - Düğüm, her bir saniyelik aralıkta RSSI'yi birden çok kez örnekler.
- 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.
- 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. - 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:

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 |
|
||||
Algılama aralığı |
|
||||
Yoğun dönem |
|
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.