잼 감지

<ph type="x-smartling-placeholder"></ph> GitHub에서 소스 보기

모든 장치에서 신호 방해를 감지하기 위해 구성 가능한 메커니즘을 제공하기 위해 OpenThread 노드에서 잼 감지 기능을 사용 설정합니다.

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

작동 방식

Jam 감지는 노드의 RSSI (수신 신호 강도 표시기)를 모니터링합니다. 특정 기간 동안 채널을 일시중지했는지 여부를 걸림

혼잡 감지가 사용 설정된 경우:

  1. 잼 감지 상태가 false로 설정되어 있습니다.
  2. 노드는 1초 간격마다 RSSI를 여러 번 샘플링합니다.
  3. 1초 간격의 RSSI가 모든 샘플에 대해 RSSI 기준점을 구성해야 합니다. 간섭이 발생한 것으로 간주됩니다.
  4. 방해되는 1초 간격의 총 횟수가 또는 구성된 바쁨 기간의 집계된 수와 같음 구성된 감지 기간초 내 초 언제든지 해당 시점의 Jam 감지 상태가 true님에게 전송합니다.
  5. 걸림 1초 간격의 총 횟수가 다음 기간 동안 구성된 바쁨 기간(초)의 총 시간 임의의 시점에서 이전에 구성된 감지 기간 초 이 시점의 잼 감지 상태는 false로 설정됩니다.

기록 비트맵

OpenThread APIwpantund 속성에서 이전 63초의 비트맵을 검색할 수 있습니다. 이 비트맵 각 항목에서 RSSI가 구성된 RSSI 기준점을 초과했는지 이전 63초

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

0xC248068C416E7FF0

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

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

감지 기간이 16초로 설정되고 사용 기간이 8초로 설정된 경우, 이전 16초 동안 RSSI 임계값이 8초 넘게 초과된 첫 번째 인스턴스이므로 51초에 혼잡 감지 상태가 true이 됩니다. 이 예에서 Jam 감지 상태는 앞으로 13초 동안 true

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

만약 -45dBm이 RSSI 기준점을 설정할 수 있습니다.

OT Jam 감지

사용 설정 방법

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

정의 기준

Jam 감지를 사용 설정하려면 다음을 정의합니다. 다음에서 1(으)로 OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE openthread/src/core/config/openthread-core-default-config.h 파일에 대한 OpenThread 빌드 전에 확인할 수 있습니다.

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

옵션별

또는 앱을 빌드할 때 -DOT_JAM_DETECTION=ON 빌드 옵션을 사용합니다. OpenThread:

./script/build -DOT_JAM_DETECTION=ON

매개변수

간섭 감지 매개변수는 OpenThread API, 스피넬 프로토콜 또는 네트워크 코프로세서(NCP) 관리를 위한 wpantund 명령줄 도구인 wpanctl를 통해서만 구성할 수 있습니다. 특성이 다음에 해당하는 경우 기본값이 적용됩니다. 사용 설정할 수 있습니다.

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

매개변수
RSSI 기준점
기본값
0dBm
설명
채널 전파 방해가 발생한 것으로 간주할 기준점 RSSI 수준을 dBm 단위로 지정합니다.
감지 기간
기본값
63초
설명
신호 방해를 확인할 시간 간격(초)을 지정합니다. 범위는 1~63입니다.
바쁨
기본값
63초
설명
Jam 감지를 트리거하기 위해 RSSI가 RSSI 기준점을 넘어야 하는 감지 기간 내의 집계 시간(초)을 지정합니다. 감지 기간보다 작아야 합니다. 범위는 1~63입니다.

API

OpenThread

Jam Detection API를 사용하여 다음을 수행할 수 있습니다. OpenThread 애플리케이션에서 직접 잼 감지 기능을 관리할 수 있습니다. 이 OpenThread API는 다음과 같은 기능을 제공합니다.

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

스피넬

Spinel 프로토콜을 사용하면 호스트 기기가 NCP와 직접 통신할 수 있습니다. 이 프로토콜은 openthread/src/lib/spinel/spinel.h 다음과 같은 기능을 제공합니다.

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

CLI

OpenThread

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

wpantund

wpanctl CLI를 사용하여 OpenThread NCP의 Jam 감지 기능 관리 구성할 수 있습니다 wpantund는 NCP 시 모든 잼 감지 구성을 유지합니다. 재설정합니다.

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

속성
JamDetection:Status
방식
부울
설명
읽기 전용입니다. 걸림 감지 상태 현재 신호 간섭이 감지되었는지 여부를 나타냅니다.
JamDetection:Enable
방식
부울
설명
잼 감지 기능을 사용 설정 또는 사용 중지합니다.
JamDetection:RssiThreshold
방식
dBm
설명
채널이 차단된 것으로 간주되는 기준 RSSI 수준(dBm)을 지정합니다.
JamDetection:Window
방식
설명
신호 방해를 확인할 시간 간격(초)을 지정합니다. 범위는 1~63입니다.
JamDetection:BusyPeriod
방식
설명
Jam 감지를 트리거하기 위해 RSSI가 JamDetection:RssiThreshold보다 높아야 하는 JamDetection:Window 내의 집계 시간(초)을 지정합니다. JamDetection:Window보다 작아야 합니다. 범위는 1~63입니다.
JamDetection:Debug:HistoryBitmap
방식
64비트 값
설명
모니터링 및 디버깅 목적으로 잼 감지 상태 기록에 관한 정보를 제공합니다.

예를 들어 NCP의 잼 감지 상태를 확인하려면 다음 안내를 따르세요.

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

NCP에서 간섭 감지 RSSI 임곗값을 -45dBm으로 설정하려면 다음 단계를 따르세요.

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

wpantund 속성에 관한 자세한 내용은 wpantund GitHub 저장소를 참고하세요.