Configuration de la radio

Ce module inclut l'abstraction de plate-forme pour la configuration radio.

Résumé

distantes

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
Obtenez la vitesse du bus en bits/seconde entre l'hôte et la puce radio.
otPlatRadioGetCaps(otInstance *aInstance)
Obtenez les fonctionnalités radio.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
Obtenez le seuil d'ED du CCA du radio en dBm, mesuré au niveau du connecteur d'antenne conformément à la norme IEEE 802.15.4 à 2015, section 10.1.4.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
Récupère le gain LNA Rx du module FEM externe en dB.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
Récupère l'IEEE EUI-64 attribué en usine pour cette interface.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
Obtenez l'heure actuelle en microsecondes référencée à une horloge radio locale monotone continue (largeur de 64 bits).
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
Permet d'obtenir l'état du mode promiscuité.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
Permet d'obtenir la valeur de sensibilité de réception radio.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
Obtenir la puissance de transmission de la radio en dBm.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
Récupère la chaîne de version radio.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
Définissez le seuil d'EDC du signal radio en dBm, mesuré au niveau du connecteur d'antenne conformément à la norme IEEE 802.15.4 à 2015, section 10.1.4.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
Définissez l'adresse étendue pour le filtrage des adresses.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
Définit le gain LNA Rx du module FEM externe en dB.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Définit la valeur actuelle du compteur de trames MAC.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Définit la valeur actuelle du compteur de trames MAC uniquement si la nouvelle valeur donnée est supérieure à la valeur actuelle.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
Mettre à jour les clés MAC et l'index de clé
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
Définissez l'ID du PAN pour le filtrage des adresses.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
Activer ou désactiver le mode promiscuité
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
Définit l'état rx-on-when-idle sur la plate-forme radio.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
Définissez l'adresse courte pour le filtrage des adresses.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
Définit la puissance de transmission de la radio en dBm.

distantes

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Obtenez la vitesse du bus en bits/seconde entre l'hôte et la puce radio.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Vitesse du bus en bits/seconde entre l'hôte et la puce radio. Renvoie 0 lorsque la couche MAC et supérieure et la couche radio se trouvent sur la même puce.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Obtenez les fonctionnalités radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Vecteur de bits de capacité radio (voir les définitions OT_RADIO_CAP_*).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

Obtenez le seuil d'ED du CCA du radio en dBm, mesuré au niveau du connecteur d'antenne conformément à la norme IEEE 802.15.4 à 2015, section 10.1.4.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aThreshold
Seuil de la valeur d'activation minimale (CCA) en dBm.
Valeurs de retour
OT_ERROR_NONE
Le seuil de CAC a bien été récupéré.
OT_ERROR_INVALID_ARGS
aThreshold était NULL.
OT_ERROR_NOT_IMPLEMENTED
La configuration du seuil de CCA ED via dBm n'est pas implémentée.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Récupère le gain LNA Rx du module FEM externe en dB.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aGain
Le gain LNA Rx du FEM externe en dBm.
Valeurs de retour
OT_ERROR_NONE
Récupération du LNA du FEM externe réussie.
OT_ERROR_INVALID_ARGS
aGain était NULL.
OT_ERROR_NOT_IMPLEMENTED
Le paramètre LNA du FEM externe n'est pas implémenté.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Récupère l'IEEE EUI-64 attribué en usine pour cette interface.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aIeeeEui64
Pointeur vers l'IEEE EUI-64 attribué en usine.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Obtenez l'heure actuelle en microsecondes référencée à une horloge radio locale monotone continue (largeur de 64 bits).

L'horloge radio NE SERA PAS encapsulée pendant le temps d'activité de l'appareil. Par conséquent, les implémentations SHALL identifient et compensent les dépassements de compteur interne. L'horloge n'a pas d'epoch définie et n'introduira PAS d'ajustements continus ou discontinus (par exemple, des secondes intercalaires). Les implémentations compensent les temps de mise en veille de l'appareil.

Les implémentations PEUVENT choisir de discipliner l'horloge radio et de compenser les temps de sommeil par n'importe quel moyen (par exemple, en combinant une valeur RTC haute précision/faible puissance avec un compteur haute résolution), à condition que l'horloge combinée exposée fournisse des ticks de résolution monotones continus dans les limites de précision annoncées par otPlatRadioGetCslAccuracy.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
Renvoie
Heure actuelle en microsecondes. UINT64_MAX lorsque la plate-forme n'est pas compatible ou que l'heure radio n'est pas prête

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

Permet d'obtenir l'état du mode promiscuité.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Valeurs de retour
TRUE
Le mode promiscuité est activé.
FALSE
Le mode promiscuité est désactivé.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Permet d'obtenir la valeur de sensibilité de réception radio.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Valeur de la sensibilité à la réception des signaux radio, en dBm.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Obtenir la puissance de transmission de la radio en dBm.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[out] aPower
Puissance de transmission en dBm.
Valeurs de retour
OT_ERROR_NONE
La puissance de transmission a bien été récupérée.
OT_ERROR_INVALID_ARGS
aPower était NULL.
OT_ERROR_NOT_IMPLEMENTED
La configuration de la puissance de transmission via dBm n'est pas implémentée.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Récupère la chaîne de version radio.

Il s'agit d'une fonction facultative de la plate-forme de pilotes de radio. S'il n'est pas fourni par le pilote radio de la plateforme, OpenThread utilise à la place la version OpenThread (

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
Renvoie
Pointeur vers la version radio OpenThread.
Voir aussi:
otGetVersionString()).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Définissez le seuil d'EDC du signal radio en dBm, mesuré au niveau du connecteur d'antenne conformément à la norme IEEE 802.15.4 à 2015, section 10.1.4.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aThreshold
Seuil de la valeur d'activation minimale (CCA) en dBm.
Valeurs de retour
OT_ERROR_NONE
Réglez la puissance de transmission avec succès.
OT_ERROR_INVALID_ARGS
Le seuil donné est en dehors de la plage.
OT_ERROR_NOT_IMPLEMENTED
La configuration du seuil de CCA ED via dBm n'est pas implémentée.

otPlatRadioSetExtendedAddress

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

Définissez l'adresse étendue pour le filtrage des adresses.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aExtAddress
Pointeur vers l'adresse étendue IEEE 802.15.4, stockée dans l'ordre des octets Little-endian.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Définit le gain LNA Rx du module FEM externe en dB.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aGain
Le gain LNA Rx du FEM externe en dBm.
Valeurs de retour
OT_ERROR_NONE
Le gain LNA du FEM externe a bien été défini.
OT_ERROR_NOT_IMPLEMENTED
Le paramètre de gain LNA du FEM externe n'est pas implémenté.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Définit la valeur actuelle du compteur de trames MAC.

Utilisé lorsque le signal radio fournit la capacité OT_RADIO_CAPS_TRANSMIT_SEC.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMacFrameCounter
Valeur du compteur de trame MAC.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Définit la valeur actuelle du compteur de trames MAC uniquement si la nouvelle valeur donnée est supérieure à la valeur actuelle.

Utilisé lorsque le signal radio fournit la capacité OT_RADIO_CAPS_TRANSMIT_SEC.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aMacFrameCounter
Valeur du compteur de trame MAC.

otPlatRadioSetMacKey

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

Mettre à jour les clés MAC et l'index de clé

Utilisé lorsque le signal radio fournit la capacité OT_RADIO_CAPS_TRANSMIT_SEC.

Détails
Paramètres
[in] aInstance
Un pointeur vers une instance OpenThread.
[in] aKeyIdMode
Mode d'ID de clé.
[in] aKeyId
Index de clé MAC actuel.
[in] aPrevKey
Pointeur vers la clé MAC précédente.
[in] aCurrKey
Pointeur vers la clé MAC actuelle.
[in] aNextKey
Pointeur vers la clé MAC suivante.
[in] aKeyType
Type de clé utilisé.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Définissez l'ID du PAN pour le filtrage des adresses.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aPanId
ID du PAN IEEE 802.15.4.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

Activer ou désactiver le mode promiscuité

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aEnable
TRUE pour activer ou FALSE pour désactiver le mode promiscuité.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Définit l'état rx-on-when-idle sur la plate-forme radio.

Dans certains cas, le signal radio peut passer en état de veille si l'appareil est en mode "rx-off-when-inle" (rx-arrêt quand l'état est inactif), mais il est difficile et coûteux pour le SubMac d'identifier ces situations et de demander au signal de passer en mode veille:

  • Finalisation d'une tâche de réception de trame standard, à condition que:
    • La trame est reçue sans erreur et passe le filtrage et ce n’est pas un faux ACK.
    • L'ACK n'est pas demandé ou la transmission de l'ACK n'est pas possible en raison de conditions internes.
  • Finalisation d'une transmission de trame ou d'une transmission de trame ACK, lorsque l'indicateur ACK n'est pas demandé dans la trame transmise.
  • Finalisation de l'opération de réception d'un ACK demandé pour les raisons suivantes:
    • Expiration du délai d'attente de l'accusé de réception (ACK).
    • Réception d'une trame ACK non valide ou non valide.
    • Réception de l'ACK approprié, sauf si la trame transmise est une commande de requête de données et que le bit en attente de trame sur l'indicateur reçu est défini sur "true". Dans ce cas, l'implémentation de la plate-forme radio DOIT garder le récepteur activé jusqu'à un délai d'expiration déterminé, qui déclenche le début d'une période d'inactivité.OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT peut être utilisé comme référence.
  • Finalisation d'une tâche d'acquisition de nouveaux clients (CCA) autonome.
  • Finalisation d'une opération CCA avec un résultat chargé au cours de la procédure CSMA/CA.
  • Finalisation d'une tâche de détection d'énergie.
  • Finalisation d'une fenêtre de réception radio programmée avec otPlatRadioReceiveAt.

Si une plate-forme accepte OT_RADIO_CAPS_RX_ON_WHEN_IDLE, elle doit également être compatible avec OT_RADIO_CAPS_CSMA_BACKOFF et gérer les périodes d'inactivité après l'engagement de l'utilisateur, comme décrit ci-dessus.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aEnable
TRUE pour maintenir la radio à l'état de réception, FALSE pour mettre en veille l'état pendant les périodes d'inactivité.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Définissez l'adresse courte pour le filtrage des adresses.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aShortAddress
Adresse courte IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Définit la puissance de transmission de la radio en dBm.

Détails
Paramètres
[in] aInstance
Structure de l'instance OpenThread.
[in] aPower
Puissance de transmission en dBm.
Valeurs de retour
OT_ERROR_NONE
Réglez la puissance de transmission avec succès.
OT_ERROR_NOT_IMPLEMENTED
La configuration de la puissance de transmission via dBm n'est pas implémentée.

Ressources

Les sujets de référence de l'API OpenThread proviennent du code source, disponible sur GitHub. Pour en savoir plus ou pour contribuer à notre documentation, consultez la section Ressources.