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 |
|
||
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 |
|
||
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 |
|
||||||
Rückgabewerte |
|
otPlatRadioGetFemLnaGain
otError otPlatRadioGetFemLnaGain( otInstance *aInstance, int8_t *aGain )
Ruft den Rx-LNA-Verstärkung des externen FEM in dBm ab.
Details | |||||||
---|---|---|---|---|---|---|---|
Parameter |
|
||||||
Rückgabewerte |
|
otPlatRadioGetIeeeEui64
void otPlatRadioGetIeeeEui64( otInstance *aInstance, uint8_t *aIeeeEui64 )
Ruft den werkseitig zugewiesenen IEEE EUI-64 für diese Schnittstelle ab.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
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 |
|
||
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 |
|
||||
Rückgabewerte |
|
otPlatRadioGetReceiveSensitivity
int8_t otPlatRadioGetReceiveSensitivity( otInstance *aInstance )
Ruft den Wert der Funkempfindlichkeit für Empfang von Funkdaten ab.
Details | |||
---|---|---|---|
Parameter |
|
||
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 |
|
||||||
Rückgabewerte |
|
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 |
|
||
Rückgabe |
Ein Zeiger auf die OpenThread-Radioversion.
|
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 |
|
||||||
Rückgabewerte |
|
otPlatRadioSetExtendedAddress
void otPlatRadioSetExtendedAddress( otInstance *aInstance, const otExtAddress *aExtAddress )
Legen Sie die erweiterte Adresse für die Adressfilterung fest.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otPlatRadioSetFemLnaGain
otError otPlatRadioSetFemLnaGain( otInstance *aInstance, int8_t aGain )
Legt den Rx-LNA-Verstärkung des externen FEM in dBm fest.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
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 |
|
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 |
|
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 |
|
otPlatRadioSetPanId
void otPlatRadioSetPanId( otInstance *aInstance, otPanId aPanId )
Legen Sie die PAN-ID für die Adressfilterung fest.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otPlatRadioSetPromiscuous
void otPlatRadioSetPromiscuous( otInstance *aInstance, bool aEnable )
Promiskuitiven Modus aktivieren oder deaktivieren
Details | |||||
---|---|---|---|---|---|
Parameter |
|
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 |
|
otPlatRadioSetShortAddress
void otPlatRadioSetShortAddress( otInstance *aInstance, otShortAddress aShortAddress )
Legen Sie die Kurzadresse für die Adressfilterung fest.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
otPlatRadioSetTransmitPower
otError otPlatRadioSetTransmitPower( otInstance *aInstance, int8_t aPower )
Legen Sie die Sendeleistung des Funkgeräts in dBm fest.
Details | |||||
---|---|---|---|---|---|
Parameter |
|
||||
Rückgabewerte |
|
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.