Konfigurasi Radio

Modul ini mencakup abstraksi platform untuk konfigurasi radio.

Ringkasan

Fungsi

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
Mendapatkan kecepatan bus dalam bit/detik antara host dan chip radio.
otPlatRadioGetCaps(otInstance *aInstance)
Mendapatkan kemampuan radio.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
Dapatkan ambang batas CCA ED radio dalam dBm yang diukur pada konektor antena sesuai bagian 10.1.4 IEEE 802.15.4 - 2015.
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
Mendapatkan penguatan LNA Rx FEM eksternal dalam dBm.
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
Mendapatkan IEEE EUI-64 yang ditetapkan pabrik untuk antarmuka ini.
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
Dapatkan waktu saat ini dalam mikrodetik yang direferensikan ke jam radio lokal monotonik berkelanjutan (lebar 64 bit).
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
Mendapatkan status mode {i>promiscuous<i}.
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
Mendapatkan nilai sensitivitas penerimaan radio.
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
Mendapatkan daya pancar radio dalam dBm.
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
Mendapatkan string versi radio.
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
Atur ambang batas CCA ED radio dalam dBm yang diukur pada konektor antena sesuai dengan pasal 10.1.4 IEEE 802.15.4 - 2015.
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
Tetapkan Alamat Tambahan untuk pemfilteran alamat.
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
Menetapkan perolehan LNA Rx FEM eksternal dalam dBm.
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Menetapkan nilai penghitung frame MAC saat ini.
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
Menetapkan nilai penghitung frame MAC saat ini hanya jika nilai yang diberikan baru lebih besar dari nilai saat ini.
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
Perbarui kunci MAC dan indeks kunci.
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
Setel ID PAN untuk pemfilteran alamat.
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
Mengaktifkan atau menonaktifkan mode {i>promiscuous<i}.
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
Menetapkan status rx-on-when-idle ke platform radio.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
Setel Alamat Singkat untuk pemfilteran alamat.
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
Menyetel daya pancar radio dalam dBm.

Fungsi

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

Mendapatkan kecepatan bus dalam bit/detik antara host dan chip radio.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Hasil
Kecepatan bus dalam bit/detik antara host dan chip radio. Mengembalikan 0 ketika MAC dan lapisan di atas dan lapisan Radio berada pada chip yang sama.

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

Mendapatkan kemampuan radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Vektor bit kemampuan radio (lihat definisi OT_RADIO_CAP_*).

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

Dapatkan ambang batas CCA ED radio dalam dBm yang diukur pada konektor antena sesuai bagian 10.1.4 IEEE 802.15.4 - 2015.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aThreshold
Nilai minimum ED CCA dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil nilai minimum ED CCA.
OT_ERROR_INVALID_ARGS
aThreshold adalah NULL.
OT_ERROR_NOT_IMPLEMENTED
Konfigurasi ambang batas CCA ED melalui dBm tidak diterapkan.

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

Mendapatkan penguatan LNA Rx FEM eksternal dalam dBm.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aGain
Perolehan LNA Rx FEM eksternal dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil keuntungan LNA FEM eksternal.
OT_ERROR_INVALID_ARGS
aGain adalah NULL.
OT_ERROR_NOT_IMPLEMENTED
Setelan LNA FEM eksternal tidak diterapkan.

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

Mendapatkan IEEE EUI-64 yang ditetapkan pabrik untuk antarmuka ini.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aIeeeEui64
Pointer ke IEEE EUI-64 yang ditetapkan pabrik.

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

Dapatkan waktu saat ini dalam mikrodetik yang direferensikan ke jam radio lokal monotonik berkelanjutan (lebar 64 bit).

Jam radio TIDAK BOLEH dibungkus selama waktu beroperasi perangkat. Oleh karena itu, implementasi AKAN mengidentifikasi dan mengompensasi overflow penghitung internal. Jam tidak memiliki epoch yang ditentukan dan TIDAK AKAN menerapkan penyesuaian yang berkelanjutan atau terputus-putus (mis. detik kabisat). Implementasi akan mengompensasi waktu tidur perangkat.

Penerapan MUNGKIN memilih untuk mendisiplin jam radio dan mengompensasi waktu tidur dengan cara apa pun (misalnya dengan menggabungkan RTC presisi tinggi/berdaya rendah dengan penghitung resolusi tinggi) selama jam gabungan yang terekspos memberikan tick resolusi mikrodetik monoton berkelanjutan dalam batas akurasi yang diumumkan oleh otPlatRadioGetCslAccuracy.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
Hasil
Waktu saat ini dalam mikrodetik. UINT64_MAX jika platform tidak mendukung atau waktu radio belum siap.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

Mendapatkan status mode {i>promiscuous<i}.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Nilai Pengembalian
TRUE
Mode {i>promiscuous<i} diaktifkan.
FALSE
Mode {i>promiscuous<i} dinonaktifkan.

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

Mendapatkan nilai sensitivitas penerimaan radio.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Radio menerima nilai sensitivitas dalam dBm.

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

Mendapatkan daya pancar radio dalam dBm.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[out] aPower
Daya pancar dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil mengambil daya pancar.
OT_ERROR_INVALID_ARGS
aPower adalah NULL.
OT_ERROR_NOT_IMPLEMENTED
Transmisi konfigurasi daya melalui dBm tidak diterapkan.

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

Mendapatkan string versi radio.

Ini adalah fungsi platform driver radio opsional. Jika tidak disediakan oleh driver radio platform, OpenThread akan menggunakan versi OpenThread (

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
Hasil
Pointer ke versi radio OpenThread.
Lihat juga:
otGetVersionString()).

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

Atur ambang batas CCA ED radio dalam dBm yang diukur pada konektor antena sesuai dengan pasal 10.1.4 IEEE 802.15.4 - 2015.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aThreshold
Nilai minimum ED CCA dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menyetel daya pancar.
OT_ERROR_INVALID_ARGS
Nilai minimum yang diberikan di luar rentang.
OT_ERROR_NOT_IMPLEMENTED
Konfigurasi ambang batas CCA ED melalui dBm tidak diterapkan.

otPlatRadioSetExtendedAddress

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

Tetapkan Alamat Tambahan untuk pemfilteran alamat.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aExtAddress
Sebuah pointer ke IEEE 802.15.4 Extended Address yang disimpan dalam urutan byte bit-endian.

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

Menetapkan perolehan LNA Rx FEM eksternal dalam dBm.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aGain
Perolehan LNA Rx FEM eksternal dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menetapkan penguatan LNA FEM eksternal.
OT_ERROR_NOT_IMPLEMENTED
Setelan penguatan LNA FEM eksternal tidak diterapkan.

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Menetapkan nilai penghitung frame MAC saat ini.

Digunakan saat radio menyediakan kemampuan OT_RADIO_CAPS_TRANSMIT_SEC.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMacFrameCounter
Nilai penghitung {i>frame<i} MAC.

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

Menetapkan nilai penghitung frame MAC saat ini hanya jika nilai yang diberikan baru lebih besar dari nilai saat ini.

Digunakan saat radio menyediakan kemampuan OT_RADIO_CAPS_TRANSMIT_SEC.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aMacFrameCounter
Nilai penghitung {i>frame<i} MAC.

otPlatRadioSetMacKey

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

Perbarui kunci MAC dan indeks kunci.

Digunakan ketika radio menyediakan kemampuan OT_Radio_CAPS_TRANSMIT_SEC.

Detail
Parameter
[in] aInstance
Pointer ke instance OpenThread.
[in] aKeyIdMode
Mode ID tombol.
[in] aKeyId
Indeks kunci MAC saat ini.
[in] aPrevKey
Penunjuk ke tombol MAC sebelumnya.
[in] aCurrKey
Penunjuk ke kunci MAC saat ini.
[in] aNextKey
Penunjuk ke kunci MAC berikutnya.
[in] aKeyType
Jenis Kunci yang digunakan.

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

Setel ID PAN untuk pemfilteran alamat.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aPanId
ID PAN IEEE 802.15.4.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

Mengaktifkan atau menonaktifkan mode {i>promiscuous<i}.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aEnable
TRUE untuk mengaktifkan atau FALSE untuk menonaktifkan mode {i>promiscuous<i}.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

Menetapkan status rx-on-when-idle ke platform radio.

Ada beberapa situasi yang membuat radio dapat memasuki status tidur jika perangkat dalam keadaan rx-off-when-idle, tetapi sulit dan mahal bagi SubMac untuk mengidentifikasi situasi ini dan memerintahkan radio untuk masuk ke mode tidur:

  • Finalisasi tugas penerimaan bingkai reguler, dengan ketentuan bahwa:
    • Frame diterima tanpa error dan lolos penyaringan. Selain itu, frame tersebut bukan ACK palsu.
    • ACK tidak diminta atau transmisi ACK tidak mungkin dilakukan karena kondisi internal.
  • Finalisasi transmisi atau transmisi frame ACK, ketika ACK tidak diminta dalam frame yang ditransmisikan.
  • Penyelesaian operasi penerimaan ACK yang diminta karena:
    • Akhir masa berlaku waktu tunggu ACK.
    • Penerimaan ACK yang tidak valid atau bukan frame ACK.
    • Penerimaan ACK yang tepat, kecuali jika frame yang ditransmisikan adalah Perintah Permintaan Data dan frame yang tertunda pada ACK yang diterima disetel ke true. Dalam hal ini, implementasi platform radio HARUS mengaktifkan penerima hingga waktu tunggu yang ditentukan yang memicu dimulainya periode tidak ada aktivitas.OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT dapat dijadikan referensi untuk hal ini.
  • Penyelesaian tugas CCA yang berdiri sendiri.
  • Penyelesaian operasi CCA dengan hasil sibuk selama prosedur CSMA/CA.
  • Finalisasi tugas Deteksi Energi.
  • Penyelesaian jendela penerimaan radio dijadwalkan dengan otPlatRadioReceiveAt.

Jika platform mendukung OT_RADIO_CAPS_RX_ON_WHEN_IDLE, platform juga harus mendukung OT_RADIO_CAPS_CSMA_BACKOFF dan menangani periode tidak ada aktivitas setelah CCA seperti yang dijelaskan di atas.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aEnable
TRUE untuk menyimpan radio dalam status Terima, FALSE untuk memasukkan status Tidur selama periode tidak ada aktivitas.

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

Setel Alamat Singkat untuk pemfilteran alamat.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aShortAddress
Alamat Singkat IEEE 802.15.4.

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

Menyetel daya pancar radio dalam dBm.

Detail
Parameter
[in] aInstance
Struktur instance OpenThread.
[in] aPower
Daya pancar dalam dBm.
Nilai Pengembalian
OT_ERROR_NONE
Berhasil menyetel daya pancar.
OT_ERROR_NOT_IMPLEMENTED
Transmisi konfigurasi daya melalui dBm tidak diterapkan.

Referensi

Topik Referensi OpenThread API berasal dari kode sumber yang tersedia di GitHub. Untuk informasi selengkapnya, atau untuk berkontribusi pada dokumentasi kami, lihat Referensi.