Конфигурация радио

Этот модуль включает абстракцию платформы для настройки радиосвязи.

Краткое содержание

Функции

otPlatRadioGetBusSpeed ( otInstance *aInstance)
uint32_t
Получите скорость шины в бит/секунду между хостом и радиочипом.
otPlatRadioGetCaps ( otInstance *aInstance)
Получите возможности радиосвязи.
otPlatRadioGetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t *aThreshold)
Получите пороговое значение CCA ED радиостанции в дБм, измеренное на антенном разъеме в соответствии со стандартом IEEE 802.15.4 — 2015, раздел 10.1.4.
otPlatRadioGetFemLnaGain ( otInstance *aInstance, int8_t *aGain)
Получает усиление Rx LNA внешнего FEM в дБм.
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)
Получите мощность передачи радио в дБм.
otPlatRadioGetVersionString ( otInstance *aInstance)
const char *
Получите строку версии радио.
otPlatRadioSetCcaEnergyDetectThreshold ( otInstance *aInstance, int8_t aThreshold)
Установите порог CCA ED радиостанции в дБм, измеренный на разъеме антенны в соответствии со стандартом IEEE 802.15.4 — 2015, раздел 10.1.4.
otPlatRadioSetExtendedAddress ( otInstance *aInstance, const otExtAddress *aExtAddress)
void
Установите расширенный адрес для фильтрации адресов.
otPlatRadioSetFemLnaGain ( otInstance *aInstance, int8_t aGain)
Устанавливает усиление Rx LNA внешнего FEM в дБм.
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 для фильтрации адресов.
otPlatRadioSetPromiscuous ( otInstance *aInstance, bool aEnable)
void
Включите или отключите беспорядочный режим.
otPlatRadioSetRxOnWhenIdle ( otInstance *aInstance, bool aEnable)
void
Устанавливает состояние приема в режиме ожидания для радиоплатформы.
otPlatRadioSetShortAddress ( otInstance *aInstance, otShortAddress aShortAddress)
void
Установите короткий адрес для фильтрации адресов.
otPlatRadioSetTransmitPower ( otInstance *aInstance, int8_t aPower)
Установите мощность передачи радиостанции в дБм.

Функции

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Получите скорость шины в бит/секунду между хостом и радиочипом.

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Скорость шины в битах/секунду между хостом и радиочипом. Возвращает 0, если уровень MAC и выше, а также уровень радио находятся на одном чипе.

отПлатРадиоGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Получите возможности радиосвязи.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Битовый вектор радиовозможностей (см. определения OT_RADIO_CAP_* ).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

Получите пороговое значение CCA ED радиостанции в дБм, измеренное на антенном разъеме в соответствии со стандартом IEEE 802.15.4 — 2015, раздел 10.1.4.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aThreshold
Порог CCA ED в дБм.
Возвращаемые значения
OT_ERROR_NONE
Порог CCA ED успешно получен.
OT_ERROR_INVALID_ARGS
aThreshold был NULL.
OT_ERROR_NOT_IMPLEMENTED
Настройка порога CCA ED через дБм не реализована.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Получает усиление Rx LNA внешнего FEM в дБм.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aGain
Коэффициент усиления Rx LNA внешнего FEM в дБм.
Возвращаемые значения
OT_ERROR_NONE
Успешно получено усиление LNA внешнего FEM.
OT_ERROR_INVALID_ARGS
aGain было NULL.
OT_ERROR_NOT_IMPLEMENTED
Настройка LNA внешнего FEM не реализована.

otPlatRadioGetIeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Получает назначенный на заводе стандарт IEEE EUI-64 для этого интерфейса.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aIeeeEui64
Указатель на назначенный на заводе стандарт IEEE EUI-64.

отПлатРадиоGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Получите текущее время в микросекундах, привязанное к непрерывным монотонным местным радиочасам (ширина 64 бита).

Радиочасы НЕ ДОЛЖНЫ включаться во время работы устройства. Поэтому реализации ДОЛЖНЫ выявлять и компенсировать внутренние переполнения счетчика. Часы не имеют определенной эпохи и НЕ ДОЛЖНЫ вносить какие-либо непрерывные или прерывистые корректировки (например, дополнительные секунды). Реализации ДОЛЖНЫ компенсировать любое время сна устройства.

Реализации МОГУТ выбрать дисциплину радиочасов и компенсировать время ожидания любыми способами (например, путем сочетания высокоточного/малопотребляющего RTC со счетчиком с высоким разрешением) при условии, что открытые комбинированные часы обеспечивают непрерывные монотонные такты с микросекундным разрешением в пределах точности. Об этом сообщил otPlatRadioGetCslAccuracy .

Подробности
Параметры
[in] aInstance
Указатель на экземпляр OpenThread.
Возврат
Текущее время в микросекундах. UINT64_MAX, когда платформа не поддерживает или время радио не готово.

otPlatRadioGetНеразборчивая связь

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

Получите статус беспорядочного режима.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возвращаемые значения
TRUE
Беспорядочный режим включен.
FALSE
Беспорядочный режим отключен.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Получите значение чувствительности приема радиостанции.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Значение чувствительности радиоприемника в дБм.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Получите мощность передачи радио в дБм.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[out] aPower
Мощность передачи в дБм.
Возвращаемые значения
OT_ERROR_NONE
Мощность передачи успешно получена.
OT_ERROR_INVALID_ARGS
aPower было NULL.
OT_ERROR_NOT_IMPLEMENTED
Конфигурация мощности передачи через дБм не реализована.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Получите строку версии радио.

Это дополнительная функция платформы водителя радиоприемника. Если это не предусмотрено драйвером радио платформы, OpenThread вместо этого использует версию OpenThread (

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
Возврат
Указатель на версию радио OpenThread.
Смотрите также:
otGetVersionString() ).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Установите порог CCA ED радиостанции в дБм, измеренный на разъеме антенны в соответствии со стандартом IEEE 802.15.4 — 2015, раздел 10.1.4.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aThreshold
Порог CCA ED в дБм.
Возвращаемые значения
OT_ERROR_NONE
Успешно установите мощность передачи.
OT_ERROR_INVALID_ARGS
Указанный порог выходит за пределы допустимого диапазона.
OT_ERROR_NOT_IMPLEMENTED
Настройка порога CCA ED через дБм не реализована.

отПлатрадиосетекстендадрес

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

Установите расширенный адрес для фильтрации адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aExtAddress
Указатель на расширенный адрес IEEE 802.15.4, хранящийся в порядке байтов с прямым порядком байтов.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Устанавливает усиление Rx LNA внешнего FEM в дБм.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aGain
Коэффициент усиления Rx LNA внешнего FEM в дБм.
Возвращаемые значения
OT_ERROR_NONE
Успешно установите коэффициент усиления LNA внешнего FEM.
OT_ERROR_NOT_IMPLEMENTED
Настройка усиления LNA внешнего FEM не реализована.

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.

отПлатРадиоСетMacKey

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
Используемый тип ключа.

отПлатрадиосетпанид

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Установите идентификатор PAN для фильтрации адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aPanId
Идентификатор PAN IEEE 802.15.4.

otPlatRadioSetНеразборчивая связь

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

Включите или отключите беспорядочный режим.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnable
TRUE для включения или FALSE для отключения беспорядочного режима.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Устанавливает состояние приема в режиме ожидания для радиоплатформы.

Есть несколько ситуаций, когда радиостанция может перейти в спящий режим, если устройство находится в состоянии «прием выключен в режиме ожидания», но для SubMac сложно и затратно идентифицировать эти ситуации и дать команду радиостанции перейти в спящий режим:

  • Доработка задачи по приему штатных кадров при условии, что:
    • Кадр получен без ошибок, проходит фильтрацию и не является ложным подтверждением.
    • ACK не запрашивается или передача ACK невозможна из-за внутренних условий.
  • Завершение передачи кадра или передача кадра ACK, когда ACK не запрашивается в передаваемом кадре.
  • Завершение операции приема запрошенного ACK вследствие:
    • Истечение тайм-аута ACK.
    • Прием недействительного подтверждения или отсутствия кадра подтверждения.
    • Прием правильного ACK, если только переданный кадр не был командой запроса данных и бит ожидания кадра в полученном ACK установлен в значение true. В этом случае реализация радиоплатформы ДОЛЖНА поддерживать приемник включенным до определенного времени ожидания, которое запускает начало периода простоя. OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT можно использовать в качестве эталона.
  • Завершение отдельной задачи CCA.
  • Завершение операции CCA с результатом «занято» во время процедуры CSMA/CA.
  • Завершение задачи по обнаружению энергии.
  • Завершение окна радиоприема, запланированного с помощью otPlatRadioReceiveAt .

Если платформа поддерживает OT_RADIO_CAPS_RX_ON_WHEN_IDLE , она также должна поддерживать OT_RADIO_CAPS_CSMA_BACKOFF и обрабатывать периоды простоя после CCA, как описано выше.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aEnable
TRUE, чтобы радиостанция оставалась в состоянии приема, FALSE, чтобы переводить ее в спящий режим в периоды простоя.

отПлатРадиоСетШортАдресс

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Установите короткий адрес для фильтрации адресов.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aShortAddress
Короткий адрес IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Установите мощность передачи радиостанции в дБм.

Подробности
Параметры
[in] aInstance
Структура экземпляра OpenThread.
[in] aPower
Мощность передачи в дБм.
Возвращаемые значения
OT_ERROR_NONE
Успешно установите мощность передачи.
OT_ERROR_NOT_IMPLEMENTED
Конфигурация мощности передачи через дБм не реализована.

Ресурсы

Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .