라디오 구성

이 모듈에는 무선 구성을 위한 플랫폼 추상화가 포함되어 있습니다.

요약

함수

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
호스트와 라디오 칩 간의 버스 속도(비트/초)를 가져옵니다.
otPlatRadioGetCaps(otInstance *aInstance)
라디오 기능을 활용하세요.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
IEEE 802.15.4~2015 섹션 10.1.4에 따라 안테나 커넥터에서 측정한 라디오의 CCA ED 임곗값을 dBm 단위로 가져옵니다.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
외부 FEM의 Rx LNA 게인을 dBm 단위로 가져옵니다.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
이 인터페이스에 대해 초기화된 IEEE EUI-64를 가져옵니다.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
연속적인 단조 로컬 무선 시계 (64비트 너비)에 참조된 현재 시간을 마이크로초 단위로 가져옵니다.
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
무차별 모드의 상태를 가져옵니다.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
라디오 수신 민감도 값을 가져옵니다.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
라디오의 전송 전력을 dBm 단위로 가져옵니다.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
라디오 버전 문자열을 가져옵니다.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
IEEE 802.15.4~2015 섹션 10.1.4에 따라 안테나 커넥터에서 측정된 라디오의 CCA ED 임곗값을 dBm 단위로 설정합니다.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
주소 필터링에 확장 주소를 설정합니다.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
외부 FEM의 Rx LNA 게인을 dBm 단위로 설정합니다.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
현재 MAC 프레임 카운터 값을 설정합니다.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
지정된 값이 현재 값보다 큰 경우에만 현재 MAC 프레임 카운터 값을 설정합니다.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
MAC 키와 키 색인을 업데이트합니다.
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
주소 필터링을 위한 PAN ID를 설정합니다.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
무차별 모드를 사용 설정 또는 중지합니다.
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
rx-on-when-idle 상태를 라디오 플랫폼으로 설정합니다.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
주소 필터링의 짧은 주소를 설정합니다.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
무선 전송 전력을 dBm 단위로 설정합니다.

함수

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

호스트와 라디오 칩 간의 버스 속도(비트/초)를 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
반환
호스트와 무선 칩 사이의 버스 속도(비트/초)입니다. MAC 이상 레이어와 무선 레이어가 같은 칩에 있으면 0을 반환합니다.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

라디오 기능을 활용하세요.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환
라디오 기능 비트 벡터입니다 (OT_RADIO_CAP_* 정의 참고).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

IEEE 802.15.4~2015 섹션 10.1.4에 따라 안테나 커넥터에서 측정한 라디오의 CCA ED 임곗값을 dBm 단위로 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[out] aThreshold
CCA ED 기준점(dBm)입니다.
반환 값
OT_ERROR_NONE
CCA ED 기준점을 가져왔습니다.
OT_ERROR_INVALID_ARGS
aThreshold이(가) NULL입니다.
OT_ERROR_NOT_IMPLEMENTED
dBm을 통한 CCA ED 기준점 구성이 구현되지 않았습니다.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

외부 FEM의 Rx LNA 게인을 dBm 단위로 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[out] aGain
외부 FEM의 Rx LNA 게인(dBm 단위)입니다.
반환 값
OT_ERROR_NONE
외부 FEM의 LNA 게인을 가져왔습니다.
OT_ERROR_INVALID_ARGS
aGain이(가) NULL입니다.
OT_ERROR_NOT_IMPLEMENTED
외부 FEM의 LNA 설정이 구현되지 않았습니다.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

이 인터페이스에 대해 초기화된 IEEE EUI-64를 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[out] aIeeeEui64
출고 시 할당된 IEEE EUI-64를 가리키는 포인터입니다.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

연속적인 단조 로컬 무선 시계 (64비트 너비)에 참조된 현재 시간을 마이크로초 단위로 가져옵니다.

기기의 가동 시간 동안에 무선 시계가 줄바꿈되면 안 됩니다. 따라서 구현은 내부 카운터 오버플로를 식별하고 보상해야 합니다. 클록에는 정의된 에포크가 없으며 연속적이거나 불연속적인 조정 (예: 윤초)을 도입해서는 안 됩니다. 구현은 기기의 절전 시간을 보완해야 합니다(MUST).

노출된 결합된 시계가 otPlatRadioGetCslAccuracy에서 발표한 정확도 제한 내에서 연속적인 단조 마이크로초 해상도 틱을 제공하는 한 구현은 무선 시계를 규율하고 어떤 방법으로든(예: 고정밀/저전력 RTC를 고해상도 카운터와 결합) 절전 시간을 보완하도록 선택할 수 있습니다(MAY).

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
반환
마이크로초 단위의 현재 시간입니다. 플랫폼이 지원하지 않거나 라디오 시간이 준비되지 않은 경우 UINT64_MAX입니다.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

무차별 모드의 상태를 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환 값
TRUE
무차별 모드가 사용 설정되었습니다.
FALSE
무차별 모드가 사용 중지되었습니다.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

라디오 수신 민감도 값을 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환
라디오는 감도 값을 dBm 단위로 수신합니다.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

라디오의 전송 전력을 dBm 단위로 가져옵니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[out] aPower
전송 전력(dBm)입니다.
반환 값
OT_ERROR_NONE
전송 전력을 가져왔습니다.
OT_ERROR_INVALID_ARGS
aPower이(가) NULL입니다.
OT_ERROR_NOT_IMPLEMENTED
dBm을 통한 전송 전력 구성이 구현되지 않았습니다.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

라디오 버전 문자열을 가져옵니다.

이는 선택적 라디오 드라이버 플랫폼 함수입니다. 플랫폼 라디오 드라이버에서 제공하지 않는 경우 OpenThread는 대신 OpenThread 버전 (

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
반환
OpenThread 라디오 버전을 가리키는 포인터입니다.
참고 항목:
otGetVersionString()).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

IEEE 802.15.4~2015 섹션 10.1.4에 따라 안테나 커넥터에서 측정된 라디오의 CCA ED 임곗값을 dBm 단위로 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aThreshold
CCA ED 기준점(dBm)입니다.
반환 값
OT_ERROR_NONE
전송 전력을 설정했습니다.
OT_ERROR_INVALID_ARGS
지정된 임계값이 범위를 벗어났습니다.
OT_ERROR_NOT_IMPLEMENTED
dBm을 통한 CCA ED 기준점 구성이 구현되지 않았습니다.

otPlatRadioSetExtendedAddress

void otPlatRadioSetExtendedAddress(
  otInstance *aInstance,
  const otExtAddress *aExtAddress
)

주소 필터링에 확장 주소를 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aExtAddress
Little Endian 바이트 순서로 저장된 IEEE 802.15.4 확장 주소에 대한 포인터입니다.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

외부 FEM의 Rx LNA 게인을 dBm 단위로 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aGain
외부 FEM의 Rx LNA 게인(dBm 단위)입니다.
반환 값
OT_ERROR_NONE
외부 FEM의 LNA 게인을 설정했습니다.
OT_ERROR_NOT_IMPLEMENTED
외부 FEM의 LNA 게인 설정이 구현되지 않았습니다.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

현재 MAC 프레임 카운터 값을 설정합니다.

라디오가 OT_RADIO_CAPS_TRANSMIT_SEC 기능을 제공할 때 사용됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aMacFrameCounter
MAC 프레임 카운터 값입니다.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

지정된 값이 현재 값보다 큰 경우에만 현재 MAC 프레임 카운터 값을 설정합니다.

라디오가 OT_RADIO_CAPS_TRANSMIT_SEC 기능을 제공할 때 사용됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aMacFrameCounter
MAC 프레임 카운터 값입니다.

otPlatRadioSetMacKey

void otPlatRadioSetMacKey(
  otInstance *aInstance,
  uint8_t aKeyIdMode,
  uint8_t aKeyId,
  const otMacKeyMaterial *aPrevKey,
  const otMacKeyMaterial *aCurrKey,
  const otMacKeyMaterial *aNextKey,
  otRadioKeyType aKeyType
)

MAC 키와 키 색인을 업데이트합니다.

라디오가 OT_RADIO_CAPS_TRANSMIT_SEC 기능을 제공할 때 사용됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스를 가리키는 포인터입니다.
[in] aKeyIdMode
키 ID 모드입니다.
[in] aKeyId
현재 MAC 키 색인입니다.
[in] aPrevKey
이전 MAC 키에 대한 포인터입니다.
[in] aCurrKey
현재 MAC 키를 가리키는 포인터입니다.
[in] aNextKey
다음 MAC 키에 대한 포인터입니다.
[in] aKeyType
사용된 키 유형입니다.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

주소 필터링을 위한 PAN ID를 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aPanId
IEEE 802.15.4 PAN ID입니다.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

무차별 모드를 사용 설정 또는 중지합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aEnable
TRUE는 무차별 모드를 사용 설정하고 FALSE는 무차별 모드를 사용 중지합니다.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

rx-on-when-idle 상태를 라디오 플랫폼으로 설정합니다.

기기가 rx-off-when-idle 상태인 경우 라디오가 절전 모드로 전환될 수 있지만 SubMac이 이러한 상황을 식별하고 무선에 절전 모드로 전환하도록 지시하는 것은 어렵고 비용이 많이 듭니다.

  • 일반 프레임 수신 작업 완료. 조건:
    • 프레임이 오류 없이 수신되고 필터링을 통과했으며 가짜 ACK가 아닙니다.
    • ACK가 요청되지 않았거나 내부 조건으로 인해 ACK의 전송이 불가능합니다.
  • 전송된 프레임에서 ACK가 요청되지 않은 경우 프레임 전송 또는 ACK 프레임 전송을 마무리합니다.
  • 다음과 같은 이유로 요청된 ACK의 수신 작업 마무리
    • ACK 시간 초과
    • 잘못된 ACK 또는 ACK 프레임 수신
    • 올바른 ACK 수신(전송된 프레임이 데이터 요청 명령어이고 수신된 ACK의 프레임 대기 비트가 true로 설정되지 않은 경우) 이 경우 무선 플랫폼 구현은 유휴 기간 시작을 트리거하는 결정된 시간 제한이 있을 때까지 수신기를 켜진 상태로 유지해야 합니다(SHOULD). OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT을 이에 대한 참조로 사용할 수 있습니다.
  • 독립형 CCA 작업 완료
  • CSMA/CA 절차 중에 사용 중인 결과가 있는 CCA 작업 완료
  • 에너지 감지 작업 마무리
  • otPlatRadioReceiveAt로 예약된 무선 수신 기간 완료

플랫폼은 OT_RADIO_CAPS_RX_ON_WHEN_IDLE를 지원하는 경우 위에서 설명한 대로 CCA 이후의 유휴 기간도 처리하고 OT_RADIO_CAPS_CSMA_BACKOFF도 지원해야 합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aEnable
무선을 수신 상태로 유지하려면 TRUE, 유휴 기간 동안 절전 모드로 전환하려면 FALSE입니다.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

주소 필터링의 짧은 주소를 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aShortAddress
IEEE 802.15.4 약식 주소

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

무선 전송 전력을 dBm 단위로 설정합니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스 구조
[in] aPower
전송 전력(dBm)입니다.
반환 값
OT_ERROR_NONE
전송 전력을 설정했습니다.
OT_ERROR_NOT_IMPLEMENTED
dBm을 통한 전송 전력 구성이 구현되지 않았습니다.

자료

OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.