otRadioFrame
#include <radio.h>
แสดงเฟรมวิทยุ IEEE 802.15.4
สรุป
แอตทริบิวต์สาธารณะ |
|
---|---|
mAckFrameCounter
|
uint32_t
ตัวนับ ACK เฟรมความปลอดภัย (ใช้ได้เมื่อตั้งค่า
mAckedWithSecEnhAck ) |
mAckKeyId
|
uint8_t
ดัชนีคีย์ความปลอดภัย ACK (ใช้ได้เมื่อตั้งค่า
mAckedWithSecEnhAck ) |
mAckedWithFramePending
|
bool
ซึ่งเป็นการระบุว่าเฟรมนี้ได้รับการยอมรับโดยมีการตั้งค่าเฟรมที่รอดำเนินการหรือไม่
|
mAckedWithSecEnhAck
|
bool
เพื่อระบุว่าเฟรมนี้ได้รับการยอมรับโดยใช้ ACK การปรับปรุงที่ปลอดภัยหรือไม่
|
mAesKey
|
const otMacKeyMaterial *
วัสดุคีย์ที่ใช้ในการรักษาความปลอดภัยเฟรมของ AES-CCM
|
mChannel
|
uint8_t
ช่องที่ใช้ในการส่ง/รับเฟรม
|
mCslPresent
|
bool
ตั้งค่าเป็น "จริง" หากมีส่วนหัว CSL IE อยู่
|
mCsmaCaEnabled
|
bool
ตั้งค่าเป็น "จริง" เพื่อเปิดใช้ CSMA-CA สำหรับแพ็กเก็ตนี้ มิเช่นนั้นให้ตั้งค่าเป็น "เท็จ"
|
mIeInfo
|
ตัวชี้ไปยังข้อมูลที่เกี่ยวข้องกับส่วนหัว IE
|
mInfo
|
union otRadioFrame::@24
การรวมการส่งและรับข้อมูลสำหรับเฟรมวิทยุ
|
mIsARetx
|
bool
ระบุว่าเฟรมนี้เป็นการส่งซ้ำหรือไม่
|
mIsHeaderUpdated
|
bool
ระบุว่าตัวนับเฟรมและ CSL IE ได้รับการอัปเดตอย่างถูกต้องในส่วนหัวหรือไม่
|
mIsSecurityProcessed
|
bool
"จริง" หาก SubMac ควรข้ามการประมวลผล AES ของเฟรมนี้
|
mLength
|
uint16_t
ความยาวของ PSDU
|
mLqi
|
uint8_t
ตัวบ่งชี้คุณภาพลิงก์สำหรับเฟรมที่ได้รับ
|
mMaxCsmaBackoffs
|
uint8_t
จำนวนความพยายามแบ็คออฟสูงสุดก่อนที่จะประกาศความล้มเหลวของ CCA
|
mMaxFrameRetries
|
uint8_t
จำนวนการส่งซ้ำสูงสุดที่อนุญาตหลังจากการส่งล้มเหลว
|
mPsdu
|
uint8_t *
PSDU
|
mRadioType
|
uint8_t
ประเภทลิงก์วิทยุ - ที่ไดรเวอร์วิทยุควรละเว้น
|
mRssi
|
int8_t
สัญญาณบอกสถานะความแรงของสัญญาณที่ได้รับใน dBm สำหรับเฟรมที่ได้รับ
|
mRxChannelAfterTxDone
|
uint8_t
แชนเนล RX หลังจากเฟรม TX ทำงานแล้ว (หลังจากพยายามเฟรมซ้ำทั้งหมดแล้ว เช่น ได้รับแอค หมดเวลา หรือยกเลิก)
|
mRxInfo
|
struct otRadioFrame::@24::@26
โครงสร้างที่แสดงกรอบวิทยุรับข้อมูล
|
mTimestamp
|
uint64_t
เวลาของนาฬิกาวิทยุท้องถิ่นในหน่วยไมโครวินาทีเมื่อช่วงสุดท้ายของ SFD อยู่ที่เสาอากาศของท้องถิ่น
|
mTxDelay
|
uint32_t
เวลาล่าช้าเป็นไมโครวินาทีสำหรับการส่งนี้ที่อ้างอิงไปยัง
mTxDelayBaseTime |
mTxDelayBaseTime
|
uint32_t
เวลาฐานเป็นไมโครวินาทีสำหรับการส่งที่กำหนดเวลาไว้ซึ่งสัมพันธ์กับนาฬิกาวิทยุท้องถิ่น โปรดดู
otPlatRadioGetNow และ mTxDelay |
mTxInfo
|
struct otRadioFrame::@24::@25
โครงสร้างแสดงข้อมูลการส่งเฟรมวิทยุ
|
แอตทริบิวต์สาธารณะ
mAckFrameCounter
uint32_t otRadioFrame::mAckFrameCounter
ตัวนับ ACK เฟรมความปลอดภัย (ใช้ได้เมื่อตั้งค่า mAckedWithSecEnhAck
)
mAckKeyId
uint8_t otRadioFrame::mAckKeyId
ดัชนีคีย์ความปลอดภัย ACK (ใช้ได้เมื่อตั้งค่า mAckedWithSecEnhAck
)
mAckedWithFramePending
bool otRadioFrame::mAckedWithFramePending
ซึ่งเป็นการระบุว่าเฟรมนี้ได้รับการยอมรับโดยมีการตั้งค่าเฟรมที่รอดำเนินการหรือไม่
mAckedWithSecEnhAck
bool otRadioFrame::mAckedWithSecEnhAck
เพื่อระบุว่าเฟรมนี้ได้รับการยอมรับโดยใช้ ACK การปรับปรุงที่ปลอดภัยหรือไม่
mAesKey
const otMacKeyMaterial * otRadioFrame::mAesKey
วัสดุคีย์ที่ใช้ในการรักษาความปลอดภัยเฟรมของ AES-CCM
mChannel
uint8_t otRadioFrame::mChannel
ช่องที่ใช้ในการส่ง/รับเฟรม
mCslPresent
bool otRadioFrame::mCslPresent
ตั้งค่าเป็น "จริง" หากมีส่วนหัว CSL IE อยู่
mCsmaCaEnabled
bool otRadioFrame::mCsmaCaEnabled
ตั้งค่าเป็น "จริง" เพื่อเปิดใช้ CSMA-CA สำหรับแพ็กเก็ตนี้ มิเช่นนั้นให้ตั้งค่าเป็น "เท็จ"
mInfo
union otRadioFrame::@24 otRadioFrame::mInfo
การรวมการส่งและรับข้อมูลสำหรับเฟรมวิทยุ
mIsARetx
bool otRadioFrame::mIsARetx
ระบุว่าเฟรมนี้เป็นการส่งซ้ำหรือไม่
mIsHeaderUpdated
bool otRadioFrame::mIsHeaderUpdated
ระบุว่าตัวนับเฟรมและ CSL IE ได้รับการอัปเดตอย่างถูกต้องในส่วนหัวหรือไม่
หากเลเยอร์ของแพลตฟอร์มไม่มีความสามารถ OT_RADIO_CAPS_TRANSMIT_SEC
ก็จะไม่สนใจ Flag นี้ได้
หากแพลตฟอร์มมีขีดความสามารถ OT_RADIO_CAPS_TRANSMIT_SEC
แสดงว่าแพลตฟอร์มรองรับการประมวลผลความปลอดภัยของ tx และการกำหนดตัวนับเฟรม ในกรณีนี้ อาจเกิดการทำงานต่อไปนี้
เมื่อตั้งค่า mIsHeaderUpdated
แสดงว่า OpenThread Core ได้ตั้งค่าตัวนับเฟรมและ CSL IEs (หากเปิดใช้การรักษาความปลอดภัย) ในเฟรมที่เตรียมไว้แล้ว ตรวจสอบว่าตัวนับตรงกับค่าตัวนับจากจำนวนครั้งที่พยายามเรียกใช้ในเฟรมเดียวกัน แพลตฟอร์มไม่ควรกำหนดหรือเปลี่ยนตัวนับเฟรม (แต่อาจต้องดำเนินการด้านความปลอดภัยตามการตั้งค่าสถานะ mIsSecurityProcessed
)
หากไม่ได้ตั้งค่า mIsHeaderUpdated
จะไม่มีการตั้งค่าตัวนับเฟรมและคีย์ CSL IE อยู่ในเฟรมตามแกน OpenThread Core และแพลตฟอร์มวิทยุมีหน้าที่กำหนดสิ่งนี้ แพลตฟอร์มต้องอัปเดตส่วนหัวของเฟรม (กำหนดค่าตัวนับและค่า IE ของ CSL) ก่อนที่จะส่งเฟรมผ่านอากาศ (OTA) อย่างไรก็ตาม หากการส่งถูกยกเลิกและเฟรมไม่ส่งผ่านอากาศ (เช่น ข้อผิดพลาดในการเข้าถึงช่อง) แพลตฟอร์มอาจเลือกที่จะไม่อัปเดตส่วนหัว หากแพลตฟอร์มอัปเดตส่วนหัว แพลตฟอร์มก็ต้องตั้งค่า Flag นี้ก่อนที่จะส่งเฟรมกลับจากโค้ดเรียกกลับ otPlatRadioTxDone()
ด้วย
mIsSecurityProcessed
bool otRadioFrame::mIsSecurityProcessed
"จริง" หาก SubMac ควรข้ามการประมวลผล AES ของเฟรมนี้
mLength
uint16_t otRadioFrame::mLength
ความยาวของ PSDU
mLqi
uint8_t otRadioFrame::mLqi
ตัวบ่งชี้คุณภาพลิงก์สำหรับเฟรมที่ได้รับ
mMaxCsmaBackoffs
uint8_t otRadioFrame::mMaxCsmaBackoffs
จำนวนความพยายามแบ็คออฟสูงสุดก่อนที่จะประกาศความล้มเหลวของ CCA
mMaxFrameRetries
uint8_t otRadioFrame::mMaxFrameRetries
จำนวนการส่งซ้ำสูงสุดที่อนุญาตหลังจากการส่งล้มเหลว
mPsdu
uint8_t * otRadioFrame::mPsdu
PSDU
mRadioType
uint8_t otRadioFrame::mRadioType
ประเภทลิงก์วิทยุ - ที่ไดรเวอร์วิทยุควรละเว้น
mRssi
int8_t otRadioFrame::mRssi
สัญญาณบอกสถานะความแรงของสัญญาณที่ได้รับใน dBm สำหรับเฟรมที่ได้รับ
mRxChannelAfterTxDone
uint8_t otRadioFrame::mRxChannelAfterTxDone
แชนเนล RX หลังจากเฟรม TX ทำงานแล้ว (หลังจากพยายามเฟรมซ้ำทั้งหมดแล้ว เช่น ได้รับแอค หมดเวลา หรือยกเลิก)
แพลตฟอร์มวิทยุสามารถเลือกที่จะเพิกเฉยต่อข้อมูลนี้ทั้งหมด สแต็ก OT จะต้องเรียกใช้ otPlatRadioReceive()
ด้วยช่อง RX ที่ต้องการหลังจากเฟรม TX ทำงานและส่งสัญญาณในการเรียกกลับ otPlatRadioTxDone()
แพลตฟอร์มวิทยุที่ไม่ได้ใส่ OT_RADIO_CAPS_TRANSMIT_RETRIES
จะต้องละเว้นค่านี้เสมอ
โดยมีไว้สำหรับสถานการณ์ที่อาจมีการโต้ตอบระหว่างสแต็ก OT และวิทยุล่าช้า ตัวอย่างเช่น การใช้ในสถาปัตยกรรม RCP/โฮสต์เพื่อให้ RCP เปลี่ยนเป็นช่อง PAN ได้เร็วขึ้น โดยเฉพาะอย่างยิ่งจะช่วยในเรื่อง CSL tx ให้กับเด็กที่ง่วงนอน ซึ่งเด็กอาจใช้ช่อง CSL ที่ต่างจากช่อง PAN หลังจากเฟรม tx เราต้องการให้วิทยุ/RCP กลับไปที่ช่อง PAN อย่างรวดเร็ว เพื่อให้มั่นใจว่าผู้ปกครองจะไม่พลาด tx จากเด็กในภายหลัง เช่น เด็กที่ตอบกลับเฟรมก่อนหน้าจาก CSL ที่ส่งจากผู้ปกครองโดยใช้ช่อง PAN ในขณะที่วิทยุยังคงใช้ช่อง CSL
การเปลี่ยนไปใช้ช่องทาง RX ต้องเกิดขึ้นหลังจากเฟรม TX ทำงานเสร็จสิ้น เช่น หลังการลองใหม่ทั้งหมด และเมื่อได้รับคำขอ Ack (เมื่อตั้งค่าสถานะ "Ack Request" ในเฟรม TX) หรือหมดเวลา Aack โปรดทราบว่าการรับทราบสถานะควรอยู่ในช่องเดียวกับที่ใช้ส่งเฟรม
mRxInfo
struct otRadioFrame::@24::@26 otRadioFrame::mRxInfo
โครงสร้างที่แสดงกรอบวิทยุรับข้อมูล
mTimestamp
uint64_t otRadioFrame::mTimestamp
เวลาของนาฬิกาวิทยุท้องถิ่นในหน่วยไมโครวินาทีเมื่อช่วงสุดท้ายของ SFD อยู่ที่เสาอากาศของท้องถิ่น
mTxDelay
uint32_t otRadioFrame::mTxDelay
เวลาล่าช้าเป็นไมโครวินาทีสำหรับการส่งนี้ที่อ้างอิงไปยัง mTxDelayBaseTime
หมายเหตุ: mTxDelayBaseTime
+ mTxDelay
จะชี้ไปยังจุดเวลาที่จุดสิ้นสุด SFD จะปรากฏที่เสาอากาศท้องถิ่นเมื่อเทียบกับนาฬิกาวิทยุท้องถิ่น
mTxDelayBaseTime
uint32_t otRadioFrame::mTxDelayBaseTime
เวลาฐานเป็นไมโครวินาทีสำหรับการส่งที่กำหนดเวลาไว้ซึ่งสัมพันธ์กับนาฬิกาวิทยุท้องถิ่น โปรดดู otPlatRadioGetNow
และ mTxDelay
mTxInfo
struct otRadioFrame::@24::@25 otRadioFrame::mTxInfo
โครงสร้างแสดงข้อมูลการส่งเฟรมวิทยุ
แหล่งข้อมูล
หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล