การกำหนดค่าวิทยุ

โมดูลนี้ประกอบด้วยแพลตฟอร์ม Abstraction สำหรับการกำหนดค่าวิทยุ

สรุป

ฟังก์ชัน

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
รับข้อมูลความเร็วของบัสเป็นบิต/วินาทีระหว่างโฮสต์และชิปวิทยุ
otPlatRadioGetCaps(otInstance *aInstance)
ใช้ความสามารถของวิทยุ
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
รับเกณฑ์ CCA ED ของวิทยุในหน่วย dBm ที่วัดที่ขั้วต่อเสาอากาศตาม IEEE 802.15.4 - 2015 ในส่วน 10.1.4
otPlatRadioGetFemLnaGain(otInstance *aInstance, int8_t *aGain)
รับ Rx LNA ของ FEM ภายนอกใน dBm
otPlatRadioGetIeeeEui64(otInstance *aInstance, uint8_t *aIeeeEui64)
void
รับ IEEE EUI-64 ที่กำหนดให้จากโรงงานสำหรับอินเทอร์เฟซนี้
otPlatRadioGetNow(otInstance *aInstance)
uint64_t
ดูเวลาปัจจุบันในหน่วยไมโครวินาทีที่อ้างอิงถึงนาฬิกาวิทยุท้องถิ่นแบบโมโนโทนิคแบบต่อเนื่อง (ความกว้าง 64 บิต)
otPlatRadioGetPromiscuous(otInstance *aInstance)
bool
รับสถานะของโหมด Promiscuous
otPlatRadioGetReceiveSensitivity(otInstance *aInstance)
int8_t
ให้ค่าความไวการรับสัญญาณวิทยุ
otPlatRadioGetTransmitPower(otInstance *aInstance, int8_t *aPower)
รับกำลังส่งของวิทยุในหน่วย dBm
otPlatRadioGetVersionString(otInstance *aInstance)
const char *
รับสตริงเวอร์ชันวิทยุ
otPlatRadioSetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t aThreshold)
ตั้งค่าเกณฑ์ CCA ED ของวิทยุเป็นหน่วย dBm ที่วัดที่ขั้วต่อเสาอากาศตาม IEEE 802.15.4 - 2015 ในหัวข้อ 10.1.4
otPlatRadioSetExtendedAddress(otInstance *aInstance, const otExtAddress *aExtAddress)
void
ตั้งค่าที่อยู่แบบขยายสําหรับการกรองที่อยู่
otPlatRadioSetFemLnaGain(otInstance *aInstance, int8_t aGain)
ตั้งค่า Rx LNA ของ FEM ภายนอกใน dBm
otPlatRadioSetMacFrameCounter(otInstance *aInstance, uint32_t aMacFrameCounter)
void
ตั้งค่าตัวนับเฟรมของ MAC ในปัจจุบัน
otPlatRadioSetMacFrameCounterIfLarger(otInstance *aInstance, uint32_t aMacFrameCounter)
void
ตั้งค่าตัวนับเฟรม MAC ปัจจุบันเฉพาะในกรณีที่ค่าใหม่ที่กำหนดมากกว่าค่าปัจจุบัน
otPlatRadioSetMacKey(otInstance *aInstance, uint8_t aKeyIdMode, uint8_t aKeyId, const otMacKeyMaterial *aPrevKey, const otMacKeyMaterial *aCurrKey, const otMacKeyMaterial *aNextKey, otRadioKeyType aKeyType)
void
อัปเดตคีย์ MAC และดัชนีคีย์
otPlatRadioSetPanId(otInstance *aInstance, otPanId aPanId)
void
ตั้งค่ารหัส PAN สำหรับการกรองที่อยู่
otPlatRadioSetPromiscuous(otInstance *aInstance, bool aEnable)
void
เปิดหรือปิดโหมด Promiscuous
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
ตั้งสถานะ rx-on- when-idle กับแพลตฟอร์มวิทยุ
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
ตั้งค่า Short Address สำหรับการกรองที่อยู่
otPlatRadioSetTransmitPower(otInstance *aInstance, int8_t aPower)
ตั้งค่ากำลังส่งของวิทยุในหน่วย dBm

ฟังก์ชัน

otPlatRadioGetBusSpeed

uint32_t otPlatRadioGetBusSpeed(
  otInstance *aInstance
)

รับข้อมูลความเร็วของบัสเป็นบิต/วินาทีระหว่างโฮสต์และชิปวิทยุ

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
ความเร็วของบัสในหน่วยบิต/วินาทีระหว่างโฮสต์และชิปวิทยุ แสดงค่า 0 เมื่อเลเยอร์ MAC และเลเยอร์ที่สูงกว่าและเลเยอร์วิทยุอยู่ในชิปเดียวกัน

otPlatRadioGetCaps

otRadioCaps otPlatRadioGetCaps(
  otInstance *aInstance
)

ใช้ความสามารถของวิทยุ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
การส่งคืน
เวกเตอร์ของความสามารถในการใช้งานวิทยุ (ดูคําจํากัดความของ OT_RADIO_CAP_*)

otPlatRadioGetCcaEnergyDetectThreshold

otError otPlatRadioGetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t *aThreshold
)

รับเกณฑ์ CCA ED ของวิทยุในหน่วย dBm ที่วัดที่ขั้วต่อเสาอากาศตาม IEEE 802.15.4 - 2015 ในส่วน 10.1.4

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aThreshold
เกณฑ์ CCA ED ใน dBm
แสดงผลค่า
OT_ERROR_NONE
เรียกข้อมูลเกณฑ์ CCA ED เรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
aThreshold มีค่าเป็น NULL
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้งานการกำหนดค่าเกณฑ์ CCA ED ผ่าน dBm

otPlatRadioGetFemLnaGain

otError otPlatRadioGetFemLnaGain(
  otInstance *aInstance,
  int8_t *aGain
)

รับ Rx LNA ของ FEM ภายนอกใน dBm

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aGain
Rx LNA ของ FEM ภายนอกใน dBm
แสดงผลค่า
OT_ERROR_NONE
ดึงข้อมูล LNA ภายนอกของ FEM สำเร็จแล้ว
OT_ERROR_INVALID_ARGS
aGain มีค่าเป็น NULL
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้การตั้งค่า LNA ของ FEM ภายนอก

otPlatRadioGetIeeeEui64

void otPlatRadioGetIeeeEui64(
  otInstance *aInstance,
  uint8_t *aIeeeEui64
)

รับ IEEE EUI-64 ที่กำหนดให้จากโรงงานสำหรับอินเทอร์เฟซนี้

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aIeeeEui64
ตัวชี้ไปยัง IEEE EUI-64 ที่กำหนดให้จากโรงงาน

otPlatRadioGetNow

uint64_t otPlatRadioGetNow(
  otInstance *aInstance
)

ดูเวลาปัจจุบันในหน่วยไมโครวินาทีที่อ้างอิงถึงนาฬิกาวิทยุท้องถิ่นแบบโมโนโทนิคแบบต่อเนื่อง (ความกว้าง 64 บิต)

นาฬิกาวิทยุจะไม่ตัดเสร็จในช่วงระยะเวลาทำงานของอุปกรณ์ การนำไปใช้งานจะมีการระบุและชดเชยสำหรับรายการที่เกินมาภายใน นาฬิกาไม่มี Epoch ที่กำหนดไว้ และจะไม่มีการปรับเปลี่ยนอย่างต่อเนื่องหรือไม่ต่อเนื่อง (เช่น วินาทีอธิกสุรทิน) การใช้งานจะชดเชยเวลาสลีปของอุปกรณ์

การใช้งานอาจเลือกปรับวินัยของนาฬิกาวิทยุและชดเชยเวลานอนด้วยวิธีการต่างๆ (เช่น ด้วยการรวม RTC ที่มีความแม่นยำสูง/กำลังต่ำเข้ากับตัวนับความละเอียดสูง) ตราบใดที่นาฬิการวมที่สัมผัสมีสัญญาณความละเอียดระดับไมโครวินาทีแบบโมโนนิกอย่างต่อเนื่องภายในขีดจำกัดความแม่นยำตามประกาศของ otPlatRadioGetCslAccuracy

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
การส่งคืน
เวลาปัจจุบันในหน่วยไมโครวินาที UINT64_MAX เมื่อแพลตฟอร์มไม่รองรับหรือเวลาวิทยุไม่พร้อมใช้งาน

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

รับสถานะของโหมด Promiscuous

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
แสดงผลค่า
TRUE
เปิดใช้โหมด Promiscuous อยู่
FALSE
ปิดใช้โหมด Promiscuous อยู่

otPlatRadioGetReceiveSensitivity

int8_t otPlatRadioGetReceiveSensitivity(
  otInstance *aInstance
)

ให้ค่าความไวการรับสัญญาณวิทยุ

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
การส่งคืน
วิทยุจะได้รับค่าความไวในหน่วย dBm

otPlatRadioGetTransmitPower

otError otPlatRadioGetTransmitPower(
  otInstance *aInstance,
  int8_t *aPower
)

รับกำลังส่งของวิทยุในหน่วย dBm

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[out] aPower
กำลังส่งในหน่วย dBm
แสดงผลค่า
OT_ERROR_NONE
ดึงข้อมูลกำลังส่งสำเร็จ
OT_ERROR_INVALID_ARGS
aPower มีค่าเป็น NULL
OT_ERROR_NOT_IMPLEMENTED
ไม่ได้ใช้การกำหนดค่าการส่งพลังงานผ่าน dBm

otPlatRadioGetVersionString

const char * otPlatRadioGetVersionString(
  otInstance *aInstance
)

รับสตริงเวอร์ชันวิทยุ

นี่เป็นฟังก์ชันทางเลือกสำหรับแพลตฟอร์มไดรเวอร์วิทยุ หากไม่ได้ให้บริการโดยไดรเวอร์วิทยุของแพลตฟอร์ม OpenThread จะใช้เวอร์ชัน OpenThread แทน (

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
การส่งคืน
ตัวชี้ไปยังเวอร์ชันวิทยุ OpenThread
โปรดดู
otGetVersionString())

otPlatRadioSetCcaEnergyDetectThreshold

otError otPlatRadioSetCcaEnergyDetectThreshold(
  otInstance *aInstance,
  int8_t aThreshold
)

ตั้งค่าเกณฑ์ CCA ED ของวิทยุเป็นหน่วย dBm ที่วัดที่ขั้วต่อเสาอากาศตาม IEEE 802.15.4 - 2015 ในหัวข้อ 10.1.4

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aThreshold
เกณฑ์ CCA ED ใน dBm
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าการส่งพลังงานเรียบร้อยแล้ว
OT_ERROR_INVALID_ARGS
เกณฑ์ที่กำหนดอยู่นอกช่วง
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้งานการกำหนดค่าเกณฑ์ CCA ED ผ่าน dBm

otPlatRadioSetExtendedAddress

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

ตั้งค่าที่อยู่แบบขยายสําหรับการกรองที่อยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aExtAddress
ตัวชี้ไปยัง IEEE 802.15.4 Extended Address ซึ่งจัดเก็บตามลำดับไบต์ส่วนน้อย

otPlatRadioSetFemLnaGain

otError otPlatRadioSetFemLnaGain(
  otInstance *aInstance,
  int8_t aGain
)

ตั้งค่า Rx LNA ของ FEM ภายนอกใน dBm

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aGain
Rx LNA ของ FEM ภายนอกใน dBm
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่า LNA ของ FEM ภายนอกเรียบร้อยแล้ว
OT_ERROR_NOT_IMPLEMENTED
ไม่มีการใช้การตั้งค่า LNA ของ FEM ภายนอก

otPlatRadioSetMacFrameCounter

void otPlatRadioSetMacFrameCounter(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

ตั้งค่าตัวนับเฟรมของ MAC ในปัจจุบัน

ใช้เมื่อวิทยุมีฟังก์ชัน OT_RADIO_CAPS_TRANSMIT_SEC

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMacFrameCounter
ค่าตัวนับเฟรมของ MAC

otPlatRadioSetMacFrameCounterIfLarger

void otPlatRadioSetMacFrameCounterIfLarger(
  otInstance *aInstance,
  uint32_t aMacFrameCounter
)

ตั้งค่าตัวนับเฟรม MAC ปัจจุบันเฉพาะในกรณีที่ค่าใหม่ที่กำหนดมากกว่าค่าปัจจุบัน

ใช้เมื่อวิทยุมีฟังก์ชัน OT_RADIO_CAPS_TRANSMIT_SEC

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aMacFrameCounter
ค่าตัวนับเฟรมของ MAC

otPlatRadioSetMacKey

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

อัปเดตคีย์ MAC และดัชนีคีย์

ใช้เมื่อวิทยุมีความสามารถในการ OT_RADIO_CAPS_TRANSMIT_SEC

รายละเอียด
พารามิเตอร์
[in] aInstance
ตัวชี้ไปยังอินสแตนซ์ OpenThread
[in] aKeyIdMode
โหมดรหัสคีย์
[in] aKeyId
ดัชนีคีย์ MAC ปัจจุบัน
[in] aPrevKey
ตัวชี้ไปยังคีย์ MAC ก่อนหน้า
[in] aCurrKey
ตัวชี้ไปยังคีย์ MAC ปัจจุบัน
[in] aNextKey
ตัวชี้ไปยังคีย์ MAC ถัดไป
[in] aKeyType
ประเภทคีย์ที่ใช้

otPlatRadioSetPanId

void otPlatRadioSetPanId(
  otInstance *aInstance,
  otPanId aPanId
)

ตั้งค่ารหัส PAN สำหรับการกรองที่อยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aPanId
รหัส PAN ของ IEEE 802.15.4

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

เปิดหรือปิดโหมด Promiscuous

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aEnable
TRUE เพื่อเปิดใช้งานหรือ FALSE เพื่อปิดการใช้งานโหมด Promiscuous

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

ตั้งสถานะ rx-on- when-idle กับแพลตฟอร์มวิทยุ

มีบางสถานการณ์ที่วิทยุสามารถเข้าสู่สถานะสลีปได้หากอุปกรณ์อยู่ในสถานะ rx-off-เมื่อ-ไม่มีการใช้งาน แต่ SubMac จะระบุสถานการณ์เหล่านี้ได้ยากและมีค่าใช้จ่ายสูงและสั่งให้วิทยุเข้าสู่โหมดสลีป

  • สรุปงานการรับเฟรมตามปกติโดยมีเงื่อนไขดังนี้
    • ได้รับเฟรมโดยไม่มีข้อผิดพลาดและผ่านการกรอง และไม่ใช่ ACK ที่ไม่ถูกต้อง
    • ไม่ได้ขอ ACK หรือไม่สามารถส่ง ACK ได้เนื่องด้วยเงื่อนไขภายใน
  • ทำให้การส่งเฟรมหรือการส่งเฟรม ACK เสร็จสมบูรณ์ เมื่อไม่มีการขอ ACK ในเฟรมที่ส่ง
  • การสรุปการดำเนินการรับของ ACK ที่ขอเนื่องจาก:
    • การหมดเวลาของ ACK
    • การรับ ACK ที่ไม่ถูกต้องหรือไม่ใช่เฟรม ACK
    • การรับ ACK ที่ถูกต้อง เว้นแต่เฟรมที่ส่งเป็นคำสั่ง Data Request และตั้งบิตที่รอดำเนินการบน ACK ที่ได้รับเป็น True ในกรณีนี้ การใช้งานแพลตฟอร์มวิทยุควรเปิดเครื่องรับไว้จนกว่าจะหมดเวลาตามที่กําหนดไว้ ซึ่งจะทําให้เกิดช่วงการไม่มีความเคลื่อนไหว คุณสามารถใช้ OPENTHREAD_CONFIG_MAC_DATA_POLL_TIMEOUT เป็นข้อมูลอ้างอิงสําหรับเรื่องนี้ได้
  • สรุปผลงาน CCA แบบแยกเดี่ยว
  • สรุปการดำเนินการ CCA ซึ่งมีผลลัพธ์ที่ไม่ว่างในระหว่างกระบวนการ CSMA/CA
  • สรุปงานการตรวจจับพลังงาน
  • สรุปกรอบเวลาการรับวิทยุที่กำหนดเวลากับ otPlatRadioReceiveAt

หากแพลตฟอร์มรองรับ OT_RADIO_CAPS_RX_ON_WHEN_IDLE แพลตฟอร์มนั้นต้องรองรับ OT_RADIO_CAPS_CSMA_BACKOFF และจัดการระยะเวลาที่ไม่ได้ใช้งานหลังจาก CCA ตามที่อธิบายไว้ข้างต้นด้วย

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aEnable
TRUE เพื่อเก็บวิทยุไว้ในสถานะรับ ให้ FALSE เป็นสถานะสลีปในช่วงเวลาที่ไม่มีการใช้งาน

otPlatRadioSetShortAddress

void otPlatRadioSetShortAddress(
  otInstance *aInstance,
  otShortAddress aShortAddress
)

ตั้งค่า Short Address สำหรับการกรองที่อยู่

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aShortAddress
ที่อยู่แบบสั้น IEEE 802.15.4

otPlatRadioSetTransmitPower

otError otPlatRadioSetTransmitPower(
  otInstance *aInstance,
  int8_t aPower
)

ตั้งค่ากำลังส่งของวิทยุในหน่วย dBm

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aPower
กำลังส่งในหน่วย dBm
แสดงผลค่า
OT_ERROR_NONE
ตั้งค่าการส่งพลังงานเรียบร้อยแล้ว
OT_ERROR_NOT_IMPLEMENTED
ไม่ได้ใช้การกำหนดค่าการส่งพลังงานผ่าน dBm

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล