잼 감지

GitHub에서 소스 보기

모든 OpenThread 노드에서 신호 방해 감지를 위한 구성 가능한 메커니즘을 제공하려면 방해 감지 기능을 사용 설정하세요.

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

작동 방식

재밍 감지는 지정된 시간 동안 노드의 RSSI (수신 신호 강도 표시기)를 모니터링하여 채널이 재밍되었는지 확인합니다.

Jam Detection이 사용 설정된 경우:

  1. Jam Detection State가 false로 설정됩니다.
  2. 노드는 1초 간격마다 RSSI를 여러 번 샘플링합니다.
  3. 전체 1초 간격의 RSSI가 모든 샘플에 대해 구성된 RSSI 기준점보다 높게 유지되면 해당 1초 간격은 혼잡한 것으로 간주됩니다.
  4. 막힌 1초 간격의 집계 수가 특정 시점에서 이전 구성된 감지 기간 초 내에 구성된 혼잡 기간 초의 집계 수보다 크거나 같은 경우 해당 시점의 방해 감지 상태가 true로 설정됩니다.
  5. 막힌 1초 간격의 집계 수가 특정 시점에서 이전 구성된 감지 기간 초 내에 구성된 혼잡 기간 초의 집계 수보다 적으면 해당 시점의 혼잡 감지 상태가 false로 설정됩니다.

기록 비트맵

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

예를 들어 다음과 같은 비트맵을 가져올 수 있습니다.

0xC248068C416E7FF0

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

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

감지 기간이 16초로 설정되고 사용 중 기간이 8초로 설정된 경우, 이전 16초 동안 RSSI 임계값이 최소 8초 동안 초과된 첫 번째 인스턴스이므로 51초에 방해 감지 상태가 true가 됩니다. 이 예시에서 Jam Detection State는 다음 13초 동안 true로 유지됩니다.

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

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

OT Jam Detection(OT 걸림 감지)

사용 설정 방법

이 기능은 기본적으로 사용 중지되어 있습니다.

정의별

Jam Detection을 사용 설정하려면 OpenThread를 빌드하기 전에 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를 빌드할 때 -DOT_JAM_DETECTION=ON 빌드 옵션을 사용합니다.

./script/build -DOT_JAM_DETECTION=ON

매개변수

재밍 감지 매개변수는 OpenThread API 또는 Spinel 프로토콜을 통해서만 구성할 수 있습니다. 후속 구성 없이 기능을 사용 설정하면 기본값이 적용됩니다.

다음 매개변수를 사용하여 이 기능을 맞춤설정합니다.

매개변수
RSSI 기준
기본값
0 dBm
설명
채널이 차단된 것으로 간주되는 기준점 이상의 RSSI 수준을 dBm 단위로 지정합니다.
감지 기간
기본값
63초
설명
신호 방해를 확인할 기간(초)을 지정합니다. 범위: 1~63
성수기
기본값
63초
설명
RSSI가 RSSI 기준점을 초과하여 재밍 감지를 트리거해야 하는 감지 창 내의 집계된 시간(초)을 지정합니다. 감지 창보다 작아야 합니다. 범위: 1~63

API

OpenThread

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

  • 기능 시작 및 중지
  • 용지 걸림 감지 상태 보기
  • 모든 매개변수 관리
  • 현재 용지 걸림 감지 기록 비트맵을 가져옵니다.
  • 용지 걸림이 감지될 때의 콜백 함수 등록

스피넬

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

  • 기능 시작 및 중지
  • 용지 걸림 감지 상태 보기
  • 모든 매개변수 관리
  • 현재 용지 걸림 감지 기록 비트맵을 가져옵니다.

CLI

OpenThread

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