Configurazione radio

Questo modulo include l'astrazione della piattaforma per la configurazione radio.

Riepilogo

Funzioni

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
Ottieni la velocità del bus in bit/secondo tra l'host e il chip della radio.
otPlatRadioGetCaps(otInstance *aInstance)
Ottieni le funzionalità radio.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
Ottenere la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
Restituisce il guadagno Rx LNA del FEM esterno in dBm.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
Consente di acquisire lo standard IEEE EUI-64 assegnato in fabbrica per questa interfaccia.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
Ottieni l'ora corrente in microsecondi a cui viene fatto riferimento a un orologio radio locale monotonico continuo (larghezza di 64 bit).
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
Scopri lo stato della modalità promiscuo.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
Ottieni il valore di sensibilità alla ricezione radio.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
Controlla la potenza di trasmissione della radio in dBm.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
Ottieni la stringa della versione radio.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
Impostare la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
Imposta l'indirizzo esteso per il filtro degli indirizzi.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
Imposta il guadagno Rx LNA del FEM esterno in dBm.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Imposta il valore del contatore di frame MAC corrente.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Imposta il valore del contatore di frame MAC corrente solo se il nuovo valore specificato è maggiore di quello corrente.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
Aggiorna le chiavi MAC e l'indice delle chiavi.
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
Imposta l'ID PAN per il filtro degli indirizzi.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
Attiva o disattiva la modalità promiscuo.
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
Imposta lo stato rx-on-when-idle sulla piattaforma radio.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
Imposta l'indirizzo breve per il filtro degli indirizzi.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
Imposta la potenza di trasmissione della radio in dBm.

Funzioni

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Ottieni la velocità del bus in bit/secondo tra l'host e il chip della radio.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
La velocità del bus in bit/secondo tra l'host e il chip radio. Restituisce 0 quando il livello MAC e superiore e il livello radio si trovano nello stesso chip.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Ottieni le funzionalità radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Il vettore di bit della funzionalità radio (vedi le definizioni di OT_RADIO_CAP_*).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

Ottenere la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aThreshold
La soglia ED CCA in dBm.
Valori restituiti
OT_ERROR_NONE
Soglia ED CCA recuperata correttamente.
OT_ERROR_INVALID_ARGS
aThreshold era NULL.
OT_ERROR_NOT_IMPLEMENTED
La configurazione della soglia CCA ED tramite dBm non è implementata.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Restituisce il guadagno Rx LNA del FEM esterno in dBm.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aGain
Guadagno LNA Rx del FEM esterno in dBm.
Valori restituiti
OT_ERROR_NONE
Guadagno LNA del FEM esterno recuperato.
OT_ERROR_INVALID_ARGS
aGain era NULL.
OT_ERROR_NOT_IMPLEMENTED
L'impostazione LNA del FEM esterno non è implementata.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Consente di acquisire lo standard IEEE EUI-64 assegnato in fabbrica per questa interfaccia.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aIeeeEui64
Un puntatore allo standard IEEE EUI-64 assegnato in fabbrica.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Ottieni l'ora corrente in microsecondi a cui viene fatto riferimento a un orologio radio locale monotonico continuo (larghezza di 64 bit).

L'orologio radio NON va a capo durante il tempo di attività del dispositivo. Le implementazioni DEVONO quindi identificare e compensare gli overflow del contatore interno. L'orologio non ha un'epoca definita e NON DEVE introdurre regolazioni continue o discontinue (ad esempio, secondi intercalari). Le implementazioni DEVONO compensare eventuali tempi di sospensione del dispositivo.

Le implementazioni POTREBBERO scegliere di disciplinare l'orologio radio e compensare i tempi di sonno con qualsiasi mezzo (ad esempio combinando un RTC ad alta precisione/bassa potenza con un contatore ad alta risoluzione), purché l'orologio combinato esposto fornisca valori continui di risoluzione monotonici in microsecondi entro i limiti di precisione annunciati da otPlatRadioGetCslAccuracy.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
Restituisce
L'ora corrente in microsecondi. UINT64_MAX quando la piattaforma non la supporta o l'ora della radio non è pronta.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

Scopri lo stato della modalità promiscuo.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Valori restituiti
TRUE
La modalità promiscuo è attivata.
FALSE
La modalità promiscuo è disattivata.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Ottieni il valore di sensibilità alla ricezione radio.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Il valore di sensibilità della ricezione radio in dBm.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Controlla la potenza di trasmissione della radio in dBm.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[out] aPower
La potenza di trasmissione in dBm.
Valori restituiti
OT_ERROR_NONE
Potenza di trasmissione recuperata correttamente.
OT_ERROR_INVALID_ARGS
aPower era NULL.
OT_ERROR_NOT_IMPLEMENTED
La configurazione dell'alimentazione di trasmissione tramite dBm non è implementata.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Ottieni la stringa della versione radio.

Si tratta di una funzione facoltativa della piattaforma del driver della radio. Se non viene fornito dal driver della radio della piattaforma, OpenThread utilizza la versione OpenThread (

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
Restituisce
Un puntatore alla versione radio OpenThread.
Vedi anche:
otGetVersionString().

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Impostare la soglia CCA ED della radio in dBm misurata al connettore dell'antenna secondo lo standard IEEE 802.15.4 - 2015 sezione 10.1.4.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aThreshold
La soglia ED CCA in dBm.
Valori restituiti
OT_ERROR_NONE
Potenza di trasmissione impostata correttamente.
OT_ERROR_INVALID_ARGS
La soglia specificata non rientra nell'intervallo consentito.
OT_ERROR_NOT_IMPLEMENTED
La configurazione della soglia CCA ED tramite dBm non è implementata.

otPlatRadioSetExtendedAddress

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

Imposta l'indirizzo esteso per il filtro degli indirizzi.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aExtAddress
Un puntatore all'indirizzo esteso IEEE 802.15.4 archiviato nell'ordine di byte small-endian.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Imposta il guadagno Rx LNA del FEM esterno in dBm.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aGain
Guadagno LNA Rx del FEM esterno in dBm.
Valori restituiti
OT_ERROR_NONE
Guadagno LNA del FEM esterno impostato correttamente.
OT_ERROR_NOT_IMPLEMENTED
L'impostazione del guadagno LNA del FEM esterno non è implementata.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Imposta il valore del contatore di frame MAC corrente.

Viene utilizzato quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMacFrameCounter
Il valore del contatore di frame MAC.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Imposta il valore del contatore di frame MAC corrente solo se il nuovo valore specificato è maggiore di quello corrente.

Viene utilizzato quando la radio fornisce la funzionalità OT_RADIO_CAPS_TRANSMIT_SEC.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aMacFrameCounter
Il valore del contatore di frame MAC.

otPlatRadioSetMacKey

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

Aggiorna le chiavi MAC e l'indice delle chiavi.

Viene utilizzato quando la radio fornisce la funzionalità OT_Radi_CAPS_TRANSMIT_SEC.

Dettagli
Parametri
[in] aInstance
Un puntatore a un'istanza OpenThread.
[in] aKeyIdMode
La modalità ID chiave.
[in] aKeyId
Indice della chiave MAC corrente.
[in] aPrevKey
Un puntatore alla chiave MAC precedente.
[in] aCurrKey
Un puntatore alla chiave MAC corrente.
[in] aNextKey
Un puntatore alla chiave MAC successiva.
[in] aKeyType
Tipo di chiave utilizzato.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Imposta l'ID PAN per il filtro degli indirizzi.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aPanId
L'ID PAN IEEE 802.15.4.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

Attiva o disattiva la modalità promiscuo.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnable
TRUE per abilitare o FALSE per disabilitare la modalità promiscuo.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Imposta lo stato rx-on-when-idle sulla piattaforma radio.

Esistono alcune situazioni in cui la radio può entrare in stato di sospensione se il dispositivo è in stato rx spento quando inattivo, ma è difficile e costoso per il SubMac identificare queste situazioni e indicare alla radio di attivare la modalità di sospensione:

  • Finalizzazione di una normale attività di ricezione frame, a condizione che:
    • Il frame viene ricevuto senza errori e supera il filtro e non è un ACK fittizio.
    • ACK non è richiesto o la trasmissione di ACK non è possibile a causa di condizioni interne.
  • Finalizzazione di una trasmissione di un frame o di una trasmissione di un frame ACK, quando non viene richiesto ACK nel frame trasmesso.
  • Finalizzazione dell'operazione di ricezione di un ACK richiesto a causa di:
    • Scadenza del timeout ACK.
    • Ricezione di un frame ACK non valido o non valido.
    • La ricezione dell'ACK corretto, a meno che il frame trasmesso non fosse un comando di richiesta di dati e il bit in attesa del frame sull'ACK ricevuto sia impostato su true. In questo caso, l'implementazione della piattaforma radio DEVE mantenere il ricevitore acceso fino a un determinato timeout che attiva l'inizio di un periodo di inattività.OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT può essere utilizzato come riferimento.
  • Finalizzazione di un'attività CCA autonoma.
  • Finalizzazione di un'operazione CCA con risultato di attività non disponibile durante la procedura CSMA/CA.
  • Finalizzazione di un'attività di rilevamento dell'energia.
  • Finalizzazione di una finestra di ricezione radio programmata con otPlatRadioReceiveAt.

Se una piattaforma supporta OT_RADIO_CAPS_RX_ON_WHEN_IDLE, deve supportare anche OT_RADIO_CAPS_CSMA_BACKOFF e gestire i periodi di inattività dopo l'autorizzazione CCA come descritto in precedenza.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aEnable
TRUE per mantenere la radio in stato di ricezione, FALSE per passare allo stato di sospensione durante i periodi di inattività.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Imposta l'indirizzo breve per il filtro degli indirizzi.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aShortAddress
L'indirizzo breve IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Imposta la potenza di trasmissione della radio in dBm.

Dettagli
Parametri
[in] aInstance
La struttura dell'istanza OpenThread.
[in] aPower
La potenza di trasmissione in dBm.
Valori restituiti
OT_ERROR_NONE
Potenza di trasmissione impostata correttamente.
OT_ERROR_NOT_IMPLEMENTED
La configurazione dell'alimentazione di trasmissione tramite dBm non è implementata.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.