הגדרת רדיו

המודול הזה כולל את הפשטת הפלטפורמה לצורך הגדרת רדיו.

סיכום

פונקציות

otPlatRadioGetBusSpeed(otInstance *aInstance)
uint32_t
מדידת מהירות האוטובוס לפי מספר הביטים לשנייה בין המארח לצ'יפ הרדיו.
otPlatRadioGetCaps(otInstance *aInstance)
קבל את יכולות הרדיו.
otPlatRadioGetCcaEnergyDetectThreshold(otInstance *aInstance, int8_t *aThreshold)
קביעת סף CCA ED של הרדיו ב-dBm, הנמדדת במחבר האנטנה בהתאם לסעיף 10.1.4 של IEEE 802.15.4 - 2015.
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
קבלת הסטטוס של מצב פרוץ.
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 שנמדד במחבר אנטנה לפי סעיף 10.1.4 של IEEE 802.15.4-2015.
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
הפעלה או השבתה של מצב פרוץ.
otPlatRadioSetRxOnWhenIdle(otInstance *aInstance, bool aEnable)
void
מגדיר את מצב 'חוסר פעילות' לפלטפורמת הרדיו.
otPlatRadioSetShortAddress(otInstance *aInstance, otShortAddress aShortAddress)
void
מגדירים את הכתובת המקוצרת לסינון כתובות.
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, הנמדדת במחבר האנטנה בהתאם לסעיף 10.1.4 של IEEE 802.15.4 - 2015.

פרטים
פרמטרים
[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 סיביות).

שעון הרדיו לא יגלש במהלך זמן הפעולה התקינה של המכשיר. לכן, הטמעות יזהו חריגות פנימיות של מונה ויש לפצות עליהן. לשעון אין פרק זמן מוגדר והוא לא יציג התאמות רציפות או לא רציפות (כמו שניות מדלגות). הטמעות יגרמו לפיצוי על זמני השינה של המכשיר.

יכול להיות שההטמעות יבחרו לכוונן את שעון הרדיו ולפצות על זמני השינה בכל אמצעי כלשהו (למשל, על ידי שילוב RTC עם דיוק גבוה/צריכת חשמל נמוכה עם מונה ברזולוציה גבוהה), כל עוד השעון המשולב החשוף מספק סימונים רציפים ברזולוציה של מיקרו שניות, במסגרת מגבלות הדיוק שנקבעו על ידי otPlatRadioGetCslAccuracy.

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
החזרות
השעה הנוכחית במיליוניות השנייה. UINT64_MAX כשהפלטפורמה לא תומכת או שזמן הרדיו לא מוכן.

otPlatRadioGetPromiscuous

bool otPlatRadioGetPromiscuous(
  otInstance *aInstance
)

קבלת הסטטוס של מצב פרוץ.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
ערכים מוחזרים
TRUE
מצב פרוץ מופעל.
FALSE
מצב פרוץ מושבת.

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 שנמדד במחבר אנטנה לפי סעיף 10.1.4 של IEEE 802.15.4-2015.

פרטים
פרמטרים
[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 המאוחסנת בסדר בייטים קטנים.

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
מזהה IEEE 802.15.4 PAN.

otPlatRadioSetPromiscuous

void otPlatRadioSetPromiscuous(
  otInstance *aInstance,
  bool aEnable
)

הפעלה או השבתה של מצב פרוץ.

פרטים
פרמטרים
[in] aInstance
מבנה המכונה של OpenThread.
[in] aEnable
TRUE להפעלה או FALSE כדי להשבית מצב פרוץ.

otPlatRadioSetRxOnWhenIdle

void otPlatRadioSetRxOnWhenIdle(
  otInstance *aInstance,
  bool aEnable
)

מגדיר את מצב 'חוסר פעילות' לפלטפורמת הרדיו.

יש מספר מצבים שבהם הרדיו יכול לעבור למצב שינה אם המכשיר נמצא במצב 'חוסר פעילות', אבל קשה ויקר ל-SubMac לזהות מצבים אלה ולהורות לרדיו לעבור למצב שינה:

  • השלמת משימה רגילה של קבלת מסגרות, בתנאי ש:
    • הפריים מתקבל ללא שגיאות ועובר את הסינון וזה לא ACK מלאכותי.
    • אין בקשה ל-ACK או שאין אפשרות להעביר ACK עקב תנאים פנימיים.
  • השלמת שידור של מסגרת או תמסורת של מסגרת ACK, כאשר אין בקשה ל-ACK במסגרת המשודרת.
  • השלמת פעולת הקבלה של ACK מבוקש עקב:
    • תפוגת הזמן הקצוב ל-ACK.
    • קבלה של ACK לא חוקי או לא מסגרת ACK.
    • הקבלה של ה-ACK הנכון, אלא אם המסגרת ששודרה הייתה פקודת בקשת נתונים והביט בהמתנה ב-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
)

מגדירים את הכתובת המקוצרת לסינון כתובות.

פרטים
פרמטרים
[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 לא מיושם.

מקורות מידע

המקור של נושאי העזר של OpenThread API הוא קוד המקור, שזמין ב-GitHub. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.