Google is committed to advancing racial equity for Black communities. See how.
이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

잼 감지

OpenThread 노드에서 신호 방해 감지를위한 구성 가능한 메커니즘을 제공하려면 Jam Detection 기능을 활성화합니다.

이 기능은 특정 채널에서 신호 방해를 감지하는 기능이 필요한 장치 인증에 유용합니다. 각 인증 유형의 요구 사항을 충족하도록 구성 할 수 있습니다.

작동 원리

Jam Detection은 지정된 시간 동안 노드의 RSSI (수신 신호 강도 표시기)를 모니터링하여 채널이 걸 렸는지 여부를 확인합니다.

용지 걸림 감지가 활성화 된 경우 :

  1. Jam Detection State가 false 로 설정됩니다.
  2. 노드는 1 초 간격으로 RSSI를 여러 번 샘플링합니다.
  3. 전체 1 초 간격에 대한 RSSI 가 모든 샘플에 대해 구성된 RSSI 임계 값 이상으로 유지되는 경우 해당 1 초 간격은 걸린 것으로 간주됩니다.
  4. 걸린 1 초 간격의 총 수가 어느 시점에서든 이전에 구성된 감지 창 초 내에 구성된 바쁜 기간 초의 총 수 보다 크거나 같으면 해당 시점의 Jam Detection State가 true 로 설정됩니다.
  5. 걸린 1 초 간격의 총 수가 어느 시점에서든 이전에 구성된 감지 창 ( 초) 내에 구성된 바쁜 기간 ( 초)의 총 수 보다 적 으면 해당 시점의 잼 감지 상태가 false 로 설정됩니다.

역사 비트 맵

OpenThread APIwpantund 속성 에서 이전 63 초의 비트 맵을 검색에 사용할 수 있습니다. 이 비트 맵은 RSSI가 이전 63 초 각각에서 구성된 RSSI 임계 값을 초과했는지 여부를 나타냅니다.

예를 들어 다음 비트 맵을 검색 할 수 있습니다.

0xC248068C416E7FF0

바이너리로 변환하면 이전 63 초 동안 RSSI가 구성된 RSSI 임계 값을 초과 한 모든 인스턴스가 생성됩니다.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Detection Window가 16 초로 설정되고 Busy Period가 8 초로 설정된 경우, Jam Detection State는 51 초에 true 이됩니다. 이는 이전에 RSSI 임계 값이 최소 8 초 이상을 초과 한 첫 번째 인스턴스이기 때문입니다. 16 초. 이 예에서 Jam Detection State는 다음 13 초 동안 true 로 유지됩니다.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

-45dBm이 구성된 RSSI 임계 값 인 경우이 비트 맵은 다음 그래프로 표시 될 수 있습니다.

OT Jam 감지

활성화하는 방법

이 기능은 기본적으로 비활성화되어 있습니다.

정의

Jam Detection을 활성화하려면 OpenThread빌드 하기 전에 /src/core/config/openthread-core-default-config.h 파일에서 OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE1 로 정의합니다.

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

스위치로

또는 OpenThread를 빌드 할 때 JAM_DETECTION=1 빌드 스위치를 사용하십시오.

make -f examples/Makefile-<platform> JAM_DETECTION=1

매개 변수

잼 감지 매개 변수 만 OpenThread API, 스피넬 프로토콜, 또는 통해 구성 할 수 있습니다 wpanctlwpantund 네트워크 코 프로세서 (NCP) 관리를위한 명령 행 도구입니다. 후속 구성없이 기능이 활성화 된 경우 기본값이 적용됩니다.

다음 매개 변수를 사용하여이 기능을 사용자 정의하십시오.

매개 변수
RSSI 임계 값
기본값
0dBm
기술
채널 걸림을 고려할 임계 값 RSSI 레벨을 dBm 단위로 지정합니다.
감지 창
기본값
63 초
기술
신호 방해를 확인할 기간 (초)을 지정합니다. 범위 : 1-63.
바쁜 기간
기본값
63 초
기술
잼 감지를 트리거하기 위해 RSSI가 RSSI 임계 값보다 높아야하는 감지 창 내 집계 시간 (초)을 지정합니다. 감지 창보다 작아야합니다. 범위 : 1-63.

API

OpenThread

Jam Detection API 를 사용하여 OpenThread 애플리케이션에서 직접 Jam Detection 기능을 관리합니다. OpenThread API는 다음 기능을 제공합니다.

  • 기능 시작 및 중지
  • 용지 걸림 감지 상태보기
  • 모든 매개 변수 관리
  • 현재 Jam Detection 히스토리 비트 맵 검색
  • 용지 걸림 감지시 콜백 기능 등록

스피넬

Spinel 프로토콜을 사용하면 호스트 장치가 NCP와 직접 통신 할 수 있습니다. 이 프로토콜은 다음 기능을 제공하는 /src/lib/spinel/spinel.h Jam Detection 속성을 노출합니다.

  • 기능 시작 및 중지
  • 용지 걸림 감지 상태보기
  • 모든 매개 변수 관리
  • 현재 Jam Detection 히스토리 비트 맵 검색

CLI

OpenThread

이 기능과 관련된 OpenThread CLI 명령은 없습니다.

wpantund

wpanctl CLI를 사용하여 OpenThread NCP 구성에 대한 Jam Detection 기능을 관리합니다. wpantund 는 NCP 재설정시 모든 Jam Detection 구성을 유지합니다.

wpanctl 은 다음과 같은 wpantund 속성에 대한 액세스를 제공합니다.

속성
JamDetection:Status
체재
부울
기술
읽기 전용입니다. 걸림 감지 상태. 신호 걸림이 현재 감지되었는지 여부를 나타냅니다.
JamDetection:Enable
체재
부울
기술
용지 걸림 감지 기능을 활성화 또는 비활성화합니다.
JamDetection:RssiThreshold
체재
dBm
기술
차단 된 채널을 고려할 임계 값 RSSI 레벨을 dBm 단위로 지정합니다.
JamDetection:Window
체재
기술
신호 방해를 확인할 기간 (초)을 지정합니다. 범위 : 1-63.
JamDetection:BusyPeriod
체재
기술
JamDetection:Window 내에서 RSSI가 JamDetection:RssiThreshold 보다 JamDetection:RssiThreshold Jam Detection을 트리거하는 집계 시간 (초)을 지정합니다. JamDetection:Window 보다 JamDetection:Window . 범위 : 1-63.
JamDetection:Debug:HistoryBitmap
체재
64 비트 값
기술
모니터링 및 디버깅 목적으로 Jam Detection 상태 기록에 대한 정보를 제공합니다.

예를 들어 NCP에 대한 Jam Detection State를 가져 오려면 :

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

NCP에서 Jam Detection RSSI 임계 값을 -45dBm으로 설정하려면 :

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

wpantund 속성에 대한 자세한 내용은 wpantund GitHub 저장소를 참조하십시오.