Funkkonfiguration

Dieses Modul enthält die Plattformabstraktion für die Funkkonfiguration.

Zusammenfassung

Funktionen

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
Rufen Sie die Busgeschwindigkeit in Bit/Sekunde zwischen Host und Funkchip ab.
otPlatRadioGetCaps(otInstance *aInstance)
Hol dir die Radiofunktion.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
Hiermit wird der CCA-ED-Schwellenwert des Funkgeräts in dBm gemessen am Antennenanschluss gemäß IEEE 802.15.4–2015, Abschnitt 10.1.4. abgerufen.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
Ruft den Rx-LNA-Verstärkung des externen FEM in dBm ab.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
Ruft den werkseitig zugewiesenen IEEE EUI-64 für diese Schnittstelle ab.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
Hiermit wird die aktuelle Zeit in Mikrosekunden gemessen, die auf einen fortlaufenden monotonen lokalen Radiowecker (64-Bit-Breite) verweist.
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
Rufen Sie den Status des promiskuitiven Modus ab.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
Ruft den Wert der Funkempfindlichkeit für Empfang von Funkdaten ab.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
Ermitteln Sie die Sendeleistung des Funkgeräts in dBm.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
Rufen Sie den Radioversionsstring ab.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
Legen Sie den CCA-ED-Schwellenwert des Funkgeräts in dBm fest, gemessen am Antennenanschluss gemäß IEEE 802.15.4–2015, Abschnitt 10.1.4.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
Legen Sie die erweiterte Adresse für die Adressfilterung fest.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
Legt den Rx-LNA-Verstärkung des externen FEM in dBm fest.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Legt den aktuellen Wert des MAC-Frame-Zählers fest.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Legt den aktuellen MAC-Frame-Zählerwert nur fest, wenn der neue Wert größer als der aktuelle Wert ist.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
MAC-Schlüssel und Schlüsselindex aktualisieren.
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
Legen Sie die PAN-ID für die Adressfilterung fest.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
Promiskuitiven Modus aktivieren oder deaktivieren
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
Legt den Status „rx-on-when-idle“ auf die Radioplattform fest.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
Legen Sie die Kurzadresse für die Adressfilterung fest.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
Legen Sie die Sendeleistung des Funkgeräts in dBm fest.

Funktionen

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Rufen Sie die Busgeschwindigkeit in Bit/Sekunde zwischen Host und Funkchip ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die Busgeschwindigkeit in Bit/Sekunde zwischen dem Host und dem Funkchip. Gibt 0 zurück, wenn sich die MAC- und die übergeordnete Ebene und die Funkebene auf demselben Chip befinden.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Hol dir die Radiofunktion.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Der Bitvektor der Funkfähigkeit (siehe Definitionen von OT_RADIO_CAP_*).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

Hiermit wird der CCA-ED-Schwellenwert des Funkgeräts in dBm gemessen am Antennenanschluss gemäß IEEE 802.15.4–2015, Abschnitt 10.1.4. abgerufen.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aThreshold
Der CCA ED-Schwellenwert in dBm.
Rückgabewerte
OT_ERROR_NONE
CCA ED-Grenzwert wurde abgerufen.
OT_ERROR_INVALID_ARGS
aThreshold war NULL.
OT_ERROR_NOT_IMPLEMENTED
Die Konfiguration des CCA-ED-Grenzwerts über dBm ist nicht implementiert.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Ruft den Rx-LNA-Verstärkung des externen FEM in dBm ab.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aGain
Der Rx-LNA-Verstärkung des externen FEM in dBm.
Rückgabewerte
OT_ERROR_NONE
LNA-Gewinn des externen FEM wurde abgerufen.
OT_ERROR_INVALID_ARGS
aGain war NULL.
OT_ERROR_NOT_IMPLEMENTED
Die LNA-Einstellung der externen FEM ist nicht implementiert.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Ruft den werkseitig zugewiesenen IEEE EUI-64 für diese Schnittstelle ab.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aIeeeEui64
Ein Zeiger auf den werkseitig zugewiesenen IEEE EUI-64.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Hiermit wird die aktuelle Zeit in Mikrosekunden gemessen, die auf einen fortlaufenden monotonen lokalen Radiowecker (64-Bit-Breite) verweist.

Die Funkuhr darf während der Betriebszeit des Geräts NICHT eingefroren werden. Implementierungen MÜSSEN daher interne Zählerüberläufe erkennen und ausgleichen. Die Uhr hat keine festgelegte Epoche und DARF KEINE kontinuierlichen oder nicht fortlaufenden Anpassungen (z.B. Schaltsekunden) einführt. Implementierungen SOLLTEN die Schlafzeiten des Geräts ausgleichen.

Implementierungen KÖNNEN die Funkuhr disziplinieren und die Schlafzeiten auf beliebige Weise kompensieren (z.B. durch Kombination eines RTC mit hoher Genauigkeit/niedriger Leistung mit einem hochauflösenden Zähler), solange die kombinierte Uhr kontinuierlich monotone Mikrosekundenauflösungen aufweist, die die von otPlatRadioGetCslAccuracy angegebenen Genauigkeitsgrenzen einhalten.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Aktuelle Zeit in Mikrosekunden UINT64_MAX, wenn die Plattform dies nicht unterstützt oder die Radiozeit nicht bereit ist.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

Rufen Sie den Status des promiskuitiven Modus ab.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabewerte
TRUE
Der promiskuitive Modus ist aktiviert.
FALSE
Der promiskuitive Modus ist deaktiviert.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Ruft den Wert der Funkempfindlichkeit für Empfang von Funkdaten ab.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Der Wert der Empfindlichkeit für Funkempfang in dBm.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Ermitteln Sie die Sendeleistung des Funkgeräts in dBm.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[out] aPower
Die Sendeleistung in dBm.
Rückgabewerte
OT_ERROR_NONE
Sendeleistung wurde abgerufen.
OT_ERROR_INVALID_ARGS
aPower war NULL.
OT_ERROR_NOT_IMPLEMENTED
Die Konfiguration der Sendeleistung über dBm ist nicht implementiert.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Rufen Sie den Radioversionsstring ab.

Dies ist eine optionale Funktion der Radiotreiber-Plattform. Wenn dies nicht vom Plattform-Radiotreiber bereitgestellt wird, verwendet OpenThread stattdessen die OpenThread-Version (

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
Rückgabe
Ein Zeiger auf die OpenThread-Radioversion.
Siehe auch:
otGetVersionString()).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Legen Sie den CCA-ED-Schwellenwert des Funkgeräts in dBm fest, gemessen am Antennenanschluss gemäß IEEE 802.15.4–2015, Abschnitt 10.1.4.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aThreshold
Der CCA ED-Schwellenwert in dBm.
Rückgabewerte
OT_ERROR_NONE
Sendeleistung wurde festgelegt.
OT_ERROR_INVALID_ARGS
Der angegebene Grenzwert liegt außerhalb des zulässigen Bereichs.
OT_ERROR_NOT_IMPLEMENTED
Die Konfiguration des CCA-ED-Grenzwerts über dBm ist nicht implementiert.

otPlatRadioSetExtendedAddress

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

Legen Sie die erweiterte Adresse für die Adressfilterung fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aExtAddress
Ein Zeiger auf die erweiterte IEEE 802.15.4-Adresse, die in Little-Endian-Bytereihenfolge gespeichert ist.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Legt den Rx-LNA-Verstärkung des externen FEM in dBm fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aGain
Der Rx-LNA-Verstärkung des externen FEM in dBm.
Rückgabewerte
OT_ERROR_NONE
LNA-Verstärkung des externen FEM wurde erfolgreich festgelegt.
OT_ERROR_NOT_IMPLEMENTED
Die LNA-Verstärkungseinstellung des externen FEM ist nicht implementiert.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Legt den aktuellen Wert des MAC-Frame-Zählers fest.

Wird verwendet, wenn die Funkschnittstelle OT_RADIO_CAPS_TRANSMIT_SEC-Funktionen bietet.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMacFrameCounter
Der Wert des MAC-Frame-Zählers.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Legt den aktuellen MAC-Frame-Zählerwert nur fest, wenn der neue Wert größer als der aktuelle Wert ist.

Wird verwendet, wenn die Funkschnittstelle OT_RADIO_CAPS_TRANSMIT_SEC-Funktionen bietet.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMacFrameCounter
Der Wert des MAC-Frame-Zählers.

otPlatRadioSetMacKey

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

MAC-Schlüssel und Schlüsselindex aktualisieren.

Wird verwendet, wenn Funk OT_RADIO_CAPS_TRANSMIT_SEC bietet.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aKeyIdMode
Schlüssel-ID-Modus.
[in] aKeyId
Aktueller MAC-Schlüsselindex.
[in] aPrevKey
Ein Zeiger auf den vorherigen MAC-Schlüssel.
[in] aCurrKey
Ein Zeiger auf den aktuellen MAC-Schlüssel.
[in] aNextKey
Ein Zeiger auf den nächsten MAC-Schlüssel.
[in] aKeyType
Verwendeter Schlüsseltyp.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Legen Sie die PAN-ID für die Adressfilterung fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aPanId
Die IEEE 802.15.4-PAN-ID.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

Promiskuitiven Modus aktivieren oder deaktivieren

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnable
TRUE zum Aktivieren oder FALSE zum Deaktivieren des promiskuitiven Modus.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Legt den Status „rx-on-when-idle“ auf die Radioplattform fest.

Es gibt einige Situationen, in denen das Funkgerät in den Ruhemodus wechseln kann, wenn sich das Gerät im Status „rx-off-when-idle“ befindet. Für den SubMac ist es jedoch schwierig und kostspielig, diese Situationen zu erkennen und das Radio anzuweisen, in den Ruhemodus zu wechseln:

  • Abschluss einer regulären Frame-Empfangsaufgabe unter folgenden Voraussetzungen:
    • Der Frame wird ohne Fehler empfangen und durchläuft die Filterung. Es handelt sich nicht um ein fehlerhaftes ACK.
    • ACK wird nicht angefordert oder kann aufgrund interner Bedingungen nicht übertragen werden.
  • Abschluss einer Frameübertragung oder -übertragung eines ACK-Frames, wenn im übertragenen Frame keine ACK angefordert wird.
  • Abschluss des Empfangsvorgangs einer angeforderten ACK aufgrund von:
    • Ablauf des ACK-Timeouts.
    • Empfang eines ungültigen ACK oder kein ACK-Frame.
    • Empfang der richtigen ACK, es sei denn, der übertragene Frame war ein Anfragebefehl und das Bit für ausstehende Frames bei der empfangenen ACK ist auf "true" gesetzt. In diesem Fall SOLLTE die Funkplattformimplementierung den Empfänger eingeschaltet lassen, bis eine bestimmte Zeitüberschreitung eintritt, die eine Inaktivitätszeit auslöst.OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT kann als Referenz dafür verwendet werden.
  • Abschluss einer eigenständigen CCA-Aufgabe
  • Abschluss eines CCA-Vorgangs mit einem ausgelasteten Ergebnis während des CSMA/CA-Verfahrens.
  • Abschluss einer Energieerkennungsaufgabe.
  • Abschluss eines Funkempfangsfensters, geplant mit otPlatRadioReceiveAt.

Wenn eine Plattform OT_RADIO_CAPS_RX_ON_WHEN_IDLE unterstützt, muss sie auch OT_RADIO_CAPS_CSMA_BACKOFF unterstützen und Inaktivitätszeiten nach CCA wie oben beschrieben verarbeiten.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aEnable
TRUE, um die Funkverbindung im Empfangsmodus zu halten, FALSE, um bei Inaktivität in den Ruhemodus zu wechseln.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Legen Sie die Kurzadresse für die Adressfilterung fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aShortAddress
Die Kurzadresse gemäß IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Legen Sie die Sendeleistung des Funkgeräts in dBm fest.

Details
Parameter
[in] aInstance
Die OpenThread-Instanzstruktur.
[in] aPower
Die Sendeleistung in dBm.
Rückgabewerte
OT_ERROR_NONE
Sendeleistung wurde festgelegt.
OT_ERROR_NOT_IMPLEMENTED
Die Konfiguration der Sendeleistung über dBm ist nicht implementiert.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.