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:
- Jam Algılama Durumu
false
olarak ayarlandı. - 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ığın parazitli olduğu kabul edilir.
- 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. - 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:
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 |
|
||||
Algılama Aralığı |
|
||||
Meşgul Dönem |
|
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 |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Ö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.