Radyo Yapılandırması

Bu modül, radyo yapılandırması için platform soyutlamasını içerir.

Özet

İşlevler

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
Veri yolu hızını ana makine ile radyo çipi arasındaki bit/saniye cinsinden alın.
otPlatRadioGetCaps(otInstance *aInstance)
Radyo özelliklerini edinin.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
IEEE 802.15.4 - 2015 bölüm 10.1.4 uyarınca anten konnektöründe ölçülen dBm cinsinden radyonun CCA ED eşiğini öğrenin.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
Harici FEM'nin Rx LNA kazancını dBm cinsinden alır.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
Bu arayüz için fabrika tarafından atanan IEEE EUI-64'ü alır.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
Sürekli monotonik yerel radyo saatine (64 bit genişlik) başvurulan zamanı mikrosaniye cinsinden alın.
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
rastgele modun durumunu al.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
Radyo alma hassasiyet değerini alın.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
Radyonun iletim gücünü dBm cinsinden alın.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
Radyo sürümü dizesini alın.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
Radyonun CCA ED eşiğini, IEEE 802.15.4 - 2015 bölüm 10.1.4 uyarınca anten konnektöründe ölçülen dBm cinsinden ayarlayın.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
Adres filtreleme için Genişletilmiş Adres'i ayarlayın.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
Harici FEM'nin Rx LNA kazancını dBm olarak ayarlar.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Geçerli MAC çerçeve sayacı değerini ayarlar.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Geçerli MAC çerçeve sayacı değerini yalnızca verilen yeni değer geçerli değerden büyükse ayarlar.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
MAC anahtarlarını ve anahtar dizinini güncelleyin.
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
Adres filtreleme için PAN kimliğini ayarlayın.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
rastgele modu etkinleştirin veya devre dışı bırakın.
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
Boştayken rx-on-takma durumunu radyo platformuna ayarlar.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
Adres filtreleme için Kısa Adres'i ayarlayın.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
Radyonun iletim gücünü dBm olarak ayarlayın.

İşlevler

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Veri yolu hızını ana makine ile radyo çipi arasındaki bit/saniye cinsinden alın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örneğinin işaretçisi.
İadeler
Ana makine ile radyo çipi arasındaki bit/saniye cinsinden veri yolu hızı. MAC ve üst katman ile Radyo katmanı aynı çipte olduğunda, 0 değerini döndürür.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Radyo özelliklerini edinin.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
İadeler
Radyo özelliği bit vektörü (OT_RADIO_CAP_* tanımlarına bakın).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

IEEE 802.15.4 - 2015 bölüm 10.1.4 uyarınca anten konnektöründe ölçülen dBm cinsinden radyonun CCA ED eşiğini öğrenin.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[out] aThreshold
dBm cinsinden CCA ED eşiği.
Döndürülen Değerler
OT_ERROR_NONE
CCA ED eşiği başarıyla alındı.
OT_ERROR_INVALID_ARGS
aThreshold BOŞ.
OT_ERROR_NOT_IMPLEMENTED
dBm üzerinden CCA ED eşik yapılandırması uygulanmadı.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Harici FEM'nin Rx LNA kazancını dBm cinsinden alır.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[out] aGain
Harici FEM'nin Rx LNA kazancının dBm cinsinden değeri.
Döndürülen Değerler
OT_ERROR_NONE
Harici FEM'nin LNA kazancı başarıyla alındı.
OT_ERROR_INVALID_ARGS
aGain BOŞ.
OT_ERROR_NOT_IMPLEMENTED
Harici FEM'nin LNA ayarı uygulanmadı.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Bu arayüz için fabrika tarafından atanan IEEE EUI-64'ü alır.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[out] aIeeeEui64
Fabrika tarafından atanan IEEE EUI-64'e işaret eden işaretçi.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Sürekli monotonik yerel radyo saatine (64 bit genişlik) başvurulan zamanı mikrosaniye cinsinden alın.

Cihazın çalışma süresi boyunca radyo saati SALINMAZ. Bu nedenle uygulamalar, dahili sayaç taşmalarını tespit edip telafi eder. Saatte tanımlanmış bir dönem yoktur ve sürekli veya devamlı herhangi bir ayarlama (ör. artık saniye) İÇERMEZ. UYGULAMALAR, cihazın uyku sürelerini telafi eder.

Açığa çıkan birleşik saat, otPlatRadioGetCslAccuracy tarafından bildirilen doğruluk sınırları dahilinde sürekli monotonik mikrosaniye çözünürlük tıkırtıları sağladığı sürece, uygulamalar radyo saatini disiplin etmeyi ve herhangi bir şekilde (ör. yüksek hassasiyet/düşük güçlü RTC'yi yüksek çözünürlüklü bir sayaçla birleştirerek) uyku süresini dengelemeyi seçebilir.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örneğinin işaretçisi.
İadeler
Mikrosaniye cinsinden geçerli zaman. Platform desteklemediği veya radyo saati hazır olmadığında UINT64_MAX.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

rastgele modun durumunu al.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
Döndürülen Değerler
TRUE
Promiscuous modu etkin.
FALSE
Sıralı modu devre dışı bırakıldı.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Radyo alma hassasiyet değerini alın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
İadeler
Radyo, hassasiyet değerini dBm cinsinden alır.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Radyonun iletim gücünü dBm cinsinden alın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[out] aPower
dBm cinsinden iletim gücü.
Döndürülen Değerler
OT_ERROR_NONE
İletim gücü başarıyla alındı.
OT_ERROR_INVALID_ARGS
aPower BOŞ.
OT_ERROR_NOT_IMPLEMENTED
dBm üzerinden iletme güç yapılandırması uygulanmadı.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Radyo sürümü dizesini alın.

Bu, isteğe bağlı bir radyo sürücüsü platform işlevidir. Platform radyo sürücüsü tarafından sağlanmazsa OpenThread, bunun yerine OpenThread sürümünü kullanır (

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
İadeler
OpenThread radyo sürümüne işaretçi.
Şu makaleyi de inceleyebilirsiniz:
otGetVersionString()).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Radyonun CCA ED eşiğini, IEEE 802.15.4 - 2015 bölüm 10.1.4 uyarınca anten konnektöründe ölçülen dBm cinsinden ayarlayın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aThreshold
dBm cinsinden CCA ED eşiği.
Döndürülen Değerler
OT_ERROR_NONE
İletim gücü başarıyla ayarlandı.
OT_ERROR_INVALID_ARGS
Belirtilen eşik, izin verilen aralığın dışında.
OT_ERROR_NOT_IMPLEMENTED
dBm üzerinden CCA ED eşik yapılandırması uygulanmadı.

otPlatRadioSetExtendedAddress

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

Adres filtreleme için Genişletilmiş Adres'i ayarlayın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aExtAddress
Küçük uçlu bayt sırasına göre depolanan IEEE 802.15.4 Genişletilmiş Adres için işaretçi.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Harici FEM'nin Rx LNA kazancını dBm olarak ayarlar.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aGain
Harici FEM'nin Rx LNA kazancının dBm cinsinden değeri.
Döndürülen Değerler
OT_ERROR_NONE
Harici FEM'nin LNA kazancı başarıyla ayarlandı.
OT_ERROR_NOT_IMPLEMENTED
Harici FEM'nin LNA kazancı ayarı uygulanmadı.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Geçerli MAC çerçeve sayacı değerini ayarlar.

Radyo, OT_RADIO_CAPS_TRANSMIT_SEC özelliği sağladığında kullanılır.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aMacFrameCounter
MAC çerçeve sayacı değeri.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Geçerli MAC çerçeve sayacı değerini yalnızca verilen yeni değer geçerli değerden büyükse ayarlar.

Radyo, OT_RADIO_CAPS_TRANSMIT_SEC özelliği sağladığında kullanılır.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aMacFrameCounter
MAC çerçeve sayacı değeri.

otPlatRadioSetMacKey

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

MAC anahtarlarını ve anahtar dizinini güncelleyin.

Radyo, OT_RADIO_CAPS_TRANSMIT_SEC özelliği sağladığında kullanılır.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örneğinin işaretçisi.
[in] aKeyIdMode
Anahtar kimliği modu.
[in] aKeyId
Geçerli MAC anahtarı dizini.
[in] aPrevKey
Önceki MAC anahtarının işaretçisi.
[in] aCurrKey
Geçerli MAC anahtarının işaretçisi.
[in] aNextKey
Sonraki MAC anahtarının işaretçisi.
[in] aKeyType
Kullanılan Anahtar Türü.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Adres filtreleme için PAN kimliğini ayarlayın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aPanId
IEEE 802.15.4 PAN Kimliği.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

rastgele modu etkinleştirin veya devre dışı bırakın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aEnable
Rastgele modu etkinleştirmek için DOĞRU, devre dışı bırakmak için YANLIŞ.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Boştayken rx-on-takma durumunu radyo platformuna ayarlar.

Cihaz boştayken iptal modundaysa radyonun uyku durumuna girebileceği birkaç durum vardır, ancak SubMac'in bu durumları tespit edip radyoya uyku moduna girme talimatı vermesi zor ve maliyetli olur:

  • Aşağıdaki koşullar sağlandığında normal bir kare alma görevinin tamamlanması:
    • Çerçeve hatasız alınır, filtrelemeden geçer ve sahte bir ACK değildir.
    • ACK istenmez veya dahili koşullar nedeniyle ACK'nin iletilmesi mümkün değildir.
  • İletilen çerçevede ACK istenmediğinde, çerçeve iletiminin veya ACK çerçevesinin iletimini tamamlama.
  • Aşağıdaki nedenlerle istenilen ACK'nin alım işlemi tamamlanır:
    • ACK zaman aşımı süresi doldu.
    • Geçersiz bir ACK alınır veya ACK karesi alınmaz.
    • İletilen çerçeve bir Veri İsteği Komutu olmadığı ve alınan ACK'deki çerçeve bekleme biti doğru değerine ayarlanmadıkça uygun ACK'nın alınması. Bu durumda, radyo platformu uygulaması, boşta kalma süresini başlatan belirli bir zaman aşımına kadar alıcıyı açık tutmalıdır.OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT, bunun için referans olarak kullanılabilir.
  • Bağımsız bir CCA görevinin tamamlanması.
  • CSMA/CA prosedürü sırasında meşgul sonuç içeren bir CCA işleminin tamamlanması.
  • Enerji Algılama görevinin tamamlanması.
  • otPlatRadioReceiveAt ile programlanan radyo sinyal alma aralığı tamamlanıyor.

Bir platform OT_RADIO_CAPS_RX_ON_WHEN_IDLE'i destekliyorsa OT_RADIO_CAPS_CSMA_BACKOFF öğesini de desteklemeli ve CCA'dan sonraki boşta kalma sürelerini yukarıda açıklandığı gibi işlemelidir.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aEnable
DOĞRU, radyoyu Alma durumunda tutmak için YANLIŞ; boşta kalma sürelerinde Uyku durumuna geçmek için YANLIŞ.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Adres filtreleme için Kısa Adres'i ayarlayın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aShortAddress
IEEE 802.15.4 Kısa Adres.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Radyonun iletim gücünü dBm olarak ayarlayın.

Ayrıntılar
Parametreler
[in] aInstance
OpenThread örnek yapısı.
[in] aPower
dBm cinsinden iletim gücü.
Döndürülen Değerler
OT_ERROR_NONE
İletim gücü başarıyla ayarlandı.
OT_ERROR_NOT_IMPLEMENTED
dBm üzerinden iletme güç yapılandırması uygulanmadı.

Kaynaklar

OpenThread API Referans konuları, GitHub'da bulunan kaynak koddan gelir. Daha fazla bilgi edinmek veya dokümanlarımıza katkıda bulunmak için Kaynaklar bölümüne bakın.