Configuración de la radio
En este módulo, se incluye la abstracción de la plataforma para la configuración de radio.
Resumen
remotas |
|
---|---|
otPlatRadioGetBusSpeed(otInstance *aInstance)
|
uint32_t
Obtiene la velocidad del bus en bits/segundo entre el host y el chip de radio.
|
otPlatRadioGetCaps(otInstance *aInstance)
|
Obtén las funciones de radio.
|
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
|
Obtiene el umbral de ED de CCA de la radio en dBm medido en el conector de antena según las secciones 10.1.4 de IEEE 802.15.4 a 2015.
|
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
|
Obtiene la ganancia de Rx LNA del FEM externo en dBm.
|
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
|
void
Obtiene el EUI-64 de IEEE asignado de fábrica para esta interfaz.
|
otPlatRadioGetNow(otInstance *aInstance)
|
uint64_t
Obtiene la hora actual en microsegundos a la que se hace referencia en un reloj de radio local monótono continuo (ancho de 64 bits).
|
otPlatRadioGetPromiscuous(otInstance *aInstance)
|
bool
Obtén el estado del modo promiscuo.
|
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
|
int8_t
Obtén el valor de sensibilidad de recepción de la radio.
|
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
|
Obtén la potencia de transmisión de la radio en dBm.
|
otPlatRadioGetVersionString(otInstance *aInstance)
|
const char *
Obtén la cadena de versión de la radio.
|
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
|
Establece el umbral de ED de CCA de la radio en dBm, medido en el conector de antena, de acuerdo con las secciones 10.1.4 de IEEE 802.15.4 a 2015.
|
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
|
void
Establece la dirección extendida para filtrar la dirección.
|
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
|
Establece la ganancia de Rx LNA del FEM externo en dBm.
|
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Establece el valor actual del contador de tramas de MAC.
|
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Establece el valor del contador de tramas de MAC actual solo si el nuevo valor dado es mayor que el valor actual.
|
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
|
void
Actualiza las claves de MAC y el índice de claves.
|
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
|
void
Establece el ID del número PAN para filtrar las direcciones.
|
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
|
void
Habilita o inhabilita el modo promiscuo.
|
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
|
void
Configura el estado rx-on-when-idle en la plataforma de radio.
|
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
|
void
Establece la dirección corta para filtrar las direcciones.
|
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
|
Establece la potencia de transmisión de la radio en dBm.
|
remotas
otPlatRadioGetBusSpeed
uint32_t otPlatRadioGetBusSpeed( otInstance *aInstance )
Obtiene la velocidad del bus en bits/segundo entre el host y el chip de radio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
La velocidad del bus en bits/segundo entre el host y el chip de radio. Muestra 0 cuando la capa de MAC y superior y la capa de radio residen en el mismo chip.
|
otPlatRadioGetCaps
otRadioCaps otPlatRadioGetCaps( otInstance *aInstance )
Obtén las funciones de radio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El vector de bits de capacidad de radio (consulta las definiciones de
OT_RADIO_CAP_* ). |
otPlatRadioGetCcaEnergyDetectThreshold
otError otPlatRadioGetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t *aThreshold )
Obtiene el umbral de ED de CCA de la radio en dBm medido en el conector de antena según las secciones 10.1.4 de IEEE 802.15.4 a 2015.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otPlatRadioGetFemLnaGain
otError otPlatRadioGetFemLnaGain( otInstance *aInstance, int8_t *aGain )
Obtiene la ganancia de Rx LNA del FEM externo en dBm.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otPlatRadioGetIeeeEui64
void otPlatRadioGetIeeeEui64( otInstance *aInstance, uint8_t *aIeeeEui64 )
Obtiene el EUI-64 de IEEE asignado de fábrica para esta interfaz.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioGetNow
uint64_t otPlatRadioGetNow( otInstance *aInstance )
Obtiene la hora actual en microsegundos a la que se hace referencia en un reloj de radio local monótono continuo (ancho de 64 bits).
El reloj de la radio NO se ajustará durante el tiempo de actividad del dispositivo. Por lo tanto, las implementaciones deben identificar y compensar el desbordamiento del contador interno. El reloj no tiene una época definida y NO introducirá ajustes continuos o discontinuos (p.ej., segundos bisiestos). Las implementaciones deben compensar los tiempos de suspensión del dispositivo.
Las implementaciones PUEDEN disciplinar el reloj de la radio y compensar los tiempos de suspensión por cualquier medio (p.ej., combinando una RTC de alta precisión/baja potencia con un contador de alta resolución), siempre que el reloj combinado expuesto proporcione marcas de resolución monotónicas continuas de microsegundos dentro de los límites de precisión anunciados por otPlatRadioGetCslAccuracy.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
La hora actual en microsegundos. UINT64_MAX cuando la plataforma no es compatible o el tiempo de radio no está listo
|
otPlatRadioGetPromiscuous
bool otPlatRadioGetPromiscuous( otInstance *aInstance )
Obtén el estado del modo promiscuo.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otPlatRadioGetReceiveSensitivity
int8_t otPlatRadioGetReceiveSensitivity( otInstance *aInstance )
Obtén el valor de sensibilidad de recepción de la radio.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
El valor de sensibilidad de recepción de la radio en dBm.
|
otPlatRadioGetTransmitPower
otError otPlatRadioGetTransmitPower( otInstance *aInstance, int8_t *aPower )
Obtén la potencia de transmisión de la radio en dBm.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otPlatRadioGetVersionString
const char * otPlatRadioGetVersionString( otInstance *aInstance )
Obtén la cadena de versión de la radio.
Esta es una función opcional de la plataforma del controlador de radio. Si no lo proporciona el controlador de radio de la plataforma, OpenThread usa la versión de OpenThread en su lugar (
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Un puntero a la versión de radio de OpenThread.
|
otGetVersionString()).
otPlatRadioSetCcaEnergyDetectThreshold
otError otPlatRadioSetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t aThreshold )
Establece el umbral de ED de CCA de la radio en dBm, medido en el conector de antena, de acuerdo con las secciones 10.1.4 de IEEE 802.15.4 a 2015.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
otPlatRadioSetExtendedAddress
void otPlatRadioSetExtendedAddress( otInstance *aInstance, const otExtAddress *aExtAddress )
Establece la dirección extendida para filtrar la dirección.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetFemLnaGain
otError otPlatRadioSetFemLnaGain( otInstance *aInstance, int8_t aGain )
Establece la ganancia de Rx LNA del FEM externo en dBm.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
otPlatRadioSetMacFrameCounter
void otPlatRadioSetMacFrameCounter( otInstance *aInstance, uint32_t aMacFrameCounter )
Establece el valor actual del contador de tramas de MAC.
Se usa cuando la radio proporciona la capacidad OT_RADIO_CAPS_TRANSMIT_SEC
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetMacFrameCounterIfLarger
void otPlatRadioSetMacFrameCounterIfLarger( otInstance *aInstance, uint32_t aMacFrameCounter )
Establece el valor del contador de tramas de MAC actual solo si el nuevo valor dado es mayor que el valor actual.
Se usa cuando la radio proporciona la capacidad OT_RADIO_CAPS_TRANSMIT_SEC
.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetMacKey
void otPlatRadioSetMacKey( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType )
Actualiza las claves de MAC y el índice de claves.
Se usa cuando la radio proporciona la función OT_RADIO_CAPS_TRANSMIT_SEC.
Detalles | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetPanId
void otPlatRadioSetPanId( otInstance *aInstance, otPanId aPanId )
Establece el ID del número PAN para filtrar las direcciones.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetPromiscuous
void otPlatRadioSetPromiscuous( otInstance *aInstance, bool aEnable )
Habilita o inhabilita el modo promiscuo.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetRxOnWhenIdle
void otPlatRadioSetRxOnWhenIdle( otInstance *aInstance, bool aEnable )
Configura el estado rx-on-when-idle en la plataforma de radio.
En algunas situaciones, la radio puede entrar en estado de suspensión si el dispositivo se encuentra en estado rx-off-when-idle, pero es difícil y costoso para el SubMac identificar estas situaciones e indicarle a la radio que entre en suspensión:
- Finalizar una tarea normal de recepción de tramas:
- La trama se recibe sin errores y pasa el filtro; no es un ACK falso.
- No se solicita la ACK o no se puede transmitir la ACK debido a las condiciones internas.
- Finalización de la transmisión o transmisión de una trama de una trama ACK, cuando no se solicita ACK en la trama transmitida
- Finalización de la operación de recepción de un ACK solicitado debido a lo siguiente:
- Vencimiento del tiempo de espera de ACK.
- Recepción de un ACK no válido o no de una trama ACK.
- La recepción de la ACK adecuada, a menos que la trama transmitida fuera un comando de solicitud de datos y el bit pendiente de la trama en la ACK recibido se configure como verdadero. En este caso, la implementación de la plataforma de radio DEBE mantener el receptor activado hasta que se agote el tiempo de espera determinado que active el inicio de un período de inactividad.
OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT
se puede tomar como referencia para esto.
- Finalización de una tarea de CCA independiente.
- Finalización de una operación de CCA con resultado ocupado durante el procedimiento de CSMA/CA.
- Finalización de una tarea de Detección de energía
- Finalización de un período de recepción de radio programado con
otPlatRadioReceiveAt
Si una plataforma admite OT_RADIO_CAPS_RX_ON_WHEN_IDLE
, también debe admitir OT_RADIO_CAPS_CSMA_BACKOFF
y controlar los períodos de inactividad después de CCA, como se describió anteriormente.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetShortAddress
void otPlatRadioSetShortAddress( otInstance *aInstance, otShortAddress aShortAddress )
Establece la dirección corta para filtrar las direcciones.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
otPlatRadioSetTransmitPower
otError otPlatRadioSetTransmitPower( otInstance *aInstance, int8_t aPower )
Establece la potencia de transmisión de la radio en dBm.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Valores que se muestran |
|
Recursos
Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.