Configuração de rádio
Este módulo inclui a abstração da plataforma para configuração de rádio.
Resumo
remotas |
|
---|---|
otPlatRadioGetBusSpeed(otInstance *aInstance)
|
uint32_t
Descubra a velocidade do barramento em bits/segundo entre o host e o chip de rádio.
|
otPlatRadioGetCaps(otInstance *aInstance)
|
Conheça os recursos de rádio.
|
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
|
Descubra o limite de CCA ED do rádio em dBm medido no conector de antena de acordo com a seção 10.1.4 IEEE 802.15.4 - 2015.
|
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
|
Recebe o ganho de Rx LNA da FEM externo em dBm.
|
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
|
void
Recebe o IEEE EUI-64 atribuído de fábrica para esta interface.
|
otPlatRadioGetNow(otInstance *aInstance)
|
uint64_t
Mostra a hora atual em microssegundos referenciada em um relógio de rádio local monotônico contínuo (64 bits de largura).
|
otPlatRadioGetPromiscuous(otInstance *aInstance)
|
bool
Confira o status do modo promíscuo.
|
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
|
int8_t
Recebe o valor de sensibilidade de recebimento do rádio.
|
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
|
Recebe a potência de transmissão do rádio em dBm.
|
otPlatRadioGetVersionString(otInstance *aInstance)
|
const char *
Acessa a string da versão de rádio.
|
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
|
Defina o limite de CCA ED do rádio em dBm medido no conector da antena de acordo com a seção 10.1.4 IEEE 802.15.4 - 2015.
|
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
|
void
Define o endereço estendido para a filtragem de endereço.
|
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
|
Define o ganho de Rx LNA da FEM externa em dBm.
|
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Define o valor atual do contador de frames MAC.
|
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
|
void
Define o valor atual do contador de frames MAC somente se o novo valor fornecido for maior que o valor atual.
|
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
|
void
Atualizar as chaves MAC e o índice de chaves.
|
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
|
void
Defina o ID do PAN para a filtragem de endereços.
|
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
|
void
Ativar ou desativar o modo promíscuo.
|
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
|
void
Define o estado rx-on-when-idle para a plataforma de rádio.
|
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
|
void
Defina o endereço curto para a filtragem de endereço.
|
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
|
Define a potência de transmissão do rádio em dBm.
|
remotas
otPlatRadioGetBusSpeed
uint32_t otPlatRadioGetBusSpeed( otInstance *aInstance )
Descubra a velocidade do barramento em bits/segundo entre o host e o chip de rádio.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
A velocidade do barramento em bits/segundo entre o host e o chip de rádio. Retorne 0 quando a camada MAC e acima e a camada de rádio estiverem no mesmo chip.
|
otPlatRadioGetCaps
otRadioCaps otPlatRadioGetCaps( otInstance *aInstance )
Conheça os recursos de rádio.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O vetor de bits da capacidade de rádio (consulte as definições de
OT_RADIO_CAP_* ). |
otPlatRadioGetCcaEnergyDetectThreshold
otError otPlatRadioGetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t *aThreshold )
Descubra o limite de CCA ED do rádio em dBm medido no conector de antena de acordo com a seção 10.1.4 IEEE 802.15.4 - 2015.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otPlatRadioGetFemLnaGain
otError otPlatRadioGetFemLnaGain( otInstance *aInstance, int8_t *aGain )
Recebe o ganho de Rx LNA da FEM externo em dBm.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otPlatRadioGetIeeeEui64
void otPlatRadioGetIeeeEui64( otInstance *aInstance, uint8_t *aIeeeEui64 )
Recebe o IEEE EUI-64 atribuído de fábrica para esta interface.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioGetNow
uint64_t otPlatRadioGetNow( otInstance *aInstance )
Mostra a hora atual em microssegundos referenciada em um relógio de rádio local monotônico contínuo (64 bits de largura).
O relógio de rádio NÃO DEVE encapsular durante o tempo de atividade do dispositivo. Portanto, as implementações DEVEM identificar e compensar os estouros do contador interno. O relógio não tem um período definido e NÃO deve introduzir ajustes contínuos ou descontínuos (por exemplo, segundos bissextos). As implementações compensarão os tempos de suspensão do dispositivo.
As implementações podem optar por disciplinar o relógio de rádio e compensar os tempos de sono de qualquer forma (por exemplo, combinando um RTC de alta precisão/baixa potência com um contador de alta resolução), desde que o relógio combinado exposto forneça escalas contínuas de resolução de microssegundos dentro dos limites de precisão anunciados por otPlatRadioGetCslAccuracy.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
A hora atual em microssegundos. UINT64_MAX quando a plataforma não for compatível ou o horário de rádio não estiver pronto.
|
otPlatRadioGetPromiscuous
bool otPlatRadioGetPromiscuous( otInstance *aInstance )
Confira o status do modo promíscuo.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otPlatRadioGetReceiveSensitivity
int8_t otPlatRadioGetReceiveSensitivity( otInstance *aInstance )
Recebe o valor de sensibilidade de recebimento do rádio.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
O valor da sensibilidade de recebimento do rádio em dBm.
|
otPlatRadioGetTransmitPower
otError otPlatRadioGetTransmitPower( otInstance *aInstance, int8_t *aPower )
Recebe a potência de transmissão do rádio em dBm.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otPlatRadioGetVersionString
const char * otPlatRadioGetVersionString( otInstance *aInstance )
Acessa a string da versão de rádio.
Essa é uma função opcional da plataforma do driver de rádio. Se não for fornecido pelo driver do rádio da plataforma, o OpenThread usará a versão do OpenThread (
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
Um ponteiro para a versão de rádio do OpenThread.
|
otGetVersionString()).
otPlatRadioSetCcaEnergyDetectThreshold
otError otPlatRadioSetCcaEnergyDetectThreshold( otInstance *aInstance, int8_t aThreshold )
Defina o limite de CCA ED do rádio em dBm medido no conector da antena de acordo com a seção 10.1.4 IEEE 802.15.4 - 2015.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
otPlatRadioSetExtendedAddress
void otPlatRadioSetExtendedAddress( otInstance *aInstance, const otExtAddress *aExtAddress )
Define o endereço estendido para a filtragem de endereço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetFemLnaGain
otError otPlatRadioSetFemLnaGain( otInstance *aInstance, int8_t aGain )
Define o ganho de Rx LNA da FEM externa em dBm.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
otPlatRadioSetMacFrameCounter
void otPlatRadioSetMacFrameCounter( otInstance *aInstance, uint32_t aMacFrameCounter )
Define o valor atual do contador de frames MAC.
É usado quando o rádio fornece o recurso OT_RADIO_CAPS_TRANSMIT_SEC
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetMacFrameCounterIfLarger
void otPlatRadioSetMacFrameCounterIfLarger( otInstance *aInstance, uint32_t aMacFrameCounter )
Define o valor atual do contador de frames MAC somente se o novo valor fornecido for maior que o valor atual.
É usado quando o rádio fornece o recurso OT_RADIO_CAPS_TRANSMIT_SEC
.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetMacKey
void otPlatRadioSetMacKey( otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType )
Atualizar as chaves MAC e o índice de chaves.
É usado quando o rádio fornece o recurso OT_RADIO_CAPS_TRANSMIT_SEC.
Detalhes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetPanId
void otPlatRadioSetPanId( otInstance *aInstance, otPanId aPanId )
Defina o ID do PAN para a filtragem de endereços.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetPromiscuous
void otPlatRadioSetPromiscuous( otInstance *aInstance, bool aEnable )
Ativar ou desativar o modo promíscuo.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetRxOnWhenIdle
void otPlatRadioSetRxOnWhenIdle( otInstance *aInstance, bool aEnable )
Define o estado rx-on-when-idle para a plataforma de rádio.
Há algumas situações em que o rádio pode entrar no estado de suspensão se o dispositivo estiver no estado rx-off-when-idle, mas é difícil e caro para o SubMac identificar essas situações e instruir o rádio a entrar em suspensão:
- Finalizar uma tarefa regular de recepção de frame, desde que:
- O frame é recebido sem erros, passando pela filtragem, e não é uma ACK falsa.
- A ACK não é solicitada ou a transmissão da ACK não é possível devido a condições internas.
- Finalização de uma transmissão ou transmissão de frame de um frame ACK, quando ACK não é solicitada no frame transmitido.
- Finalização da operação de recepção de uma ACK solicitada devido a:
- Expiração do tempo limite de ACK.
- Recepção de uma ACK inválida ou não de um frame ACK.
- Recepção da ACK adequada, a menos que o frame transmitido seja um comando de solicitação de dados e o bit de frame pendente na ACK recebida esteja definido como true. Nesse caso, a implementação da plataforma de rádio DEVE manter o receptor ativado até um tempo limite determinado que acione o início do período de inatividade.
OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT
pode ser usado como referência para isso.
- Finalizar uma tarefa de CCA independente.
- Finalizar uma operação de CCA com resultado ocupado durante o procedimento CSMA/CA.
- Finalizar uma tarefa de detecção de energia.
- Finalização de uma janela de recepção de rádio programada com
otPlatRadioReceiveAt
.
Se uma plataforma oferecer suporte a OT_RADIO_CAPS_RX_ON_WHEN_IDLE
, ela também vai precisar oferecer suporte a OT_RADIO_CAPS_CSMA_BACKOFF
e processar períodos de inatividade após a CCA, conforme descrito acima.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetShortAddress
void otPlatRadioSetShortAddress( otInstance *aInstance, otShortAddress aShortAddress )
Defina o endereço curto para a filtragem de endereço.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
otPlatRadioSetTransmitPower
otError otPlatRadioSetTransmitPower( otInstance *aInstance, int8_t aPower )
Define a potência de transmissão do rádio em dBm.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Valores de retorno |
|
Recursos
Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.