otRadioFrame

#include <radio.h>

แสดงเฟรมวิทยุ IEEE 802.15.4

สรุป

แอตทริบิวต์สาธารณะ

mAckFrameCounter
uint32_t
ตัวนับ ACK เฟรมความปลอดภัย (ใช้ได้เมื่อตั้งค่า mAckedWithSecEnhAck)
mAckKeyId
uint8_t
ดัชนีคีย์ความปลอดภัย ACK (ใช้ได้เมื่อตั้งค่า mAckedWithSecEnhAck)
mAckedWithFramePending
bool
ซึ่งเป็นการระบุว่าเฟรมนี้ได้รับการยอมรับโดยมีการตั้งค่าเฟรมที่รอดำเนินการหรือไม่
mAckedWithSecEnhAck
bool
เพื่อระบุว่าเฟรมนี้ได้รับการยอมรับโดยใช้ ACK การปรับปรุงที่ปลอดภัยหรือไม่
mAesKey
วัสดุคีย์ที่ใช้ในการรักษาความปลอดภัยเฟรมของ 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 สำหรับแพ็กเก็ตนี้ มิเช่นนั้นให้ตั้งค่าเป็น "เท็จ"

mIeInfo

otRadioIeInfo * otRadioFrame::mIeInfo

ตัวชี้ไปยังข้อมูลที่เกี่ยวข้องกับส่วนหัว IE

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 ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล