Ranging: Out-of-band specification version 3

ב-Android 16 הושק מודול מדידת טווח. במפרט הזה של הפרוטוקול והמטען הייעודי (payload) מוגדר רצף ההודעות והמטען הייעודי של תקשורת מחוץ לתחום (OOB) שמשמשת להחלפת הגדרות של מדידת מרחק, ולהתחלה ולהפסקה של מדידת מרחק, בין המכשיר היוזם לבין המכשיר המשיב שמבצעים מדידת מרחק. ב-Android 17 מוצגת גרסה 3 של המפרט הזה.

בדף הזה מוסבר איך ספקי מכשירים שאינם מכשירי Android יכולים להטמיע את המפרט הזה כדי שהמכשירים שלהם יהיו תואמים למכשירי Android.

הטמעה של המפרט הזה ב-Packet Description Language (PDL) (שפת תיאור מנות) של Google זמינה ב-GitHub. מתוך ההטמעה הזו, קומפיילר ה-PDL יכול ליצור קוד סריאליזציה ודה-סריאליזציה עבור ההודעות שמוגדרות במפרט הזה. המפרט הזה תומך במגוון שפות יעד, כולל C++‎, ‏ Rust ו-Java.

מה חדש בגרסה 3

בגרסה 3 של מפרט OOB בוצעו השינויים הבאים:

  • התראה על תנועה: הודעה שמשמשת את המכשיר של המפרסם כדי להודיע למכשיר ששלח את הבקשה על שינוי בתנועה.
  • הגדרת טווח: כוללת שדה Motion support חדש כדי שהיוזם יודיע למשיב על כל שינוי בתנועת הציוד ההיקפי מהמשיב.
  • נוספה תמיכה בטכנולוגיית PD חדשה של Wi-Fi ביכולת מדידת מרחק ובהגדרת מדידת מרחק.
  • הוצאה משימוש של השדות Supported Bandwidth ו-Supported number of Receive chains ב-Wi-Fi NAN RTT Ranging Capability.

סדר בתים (Endianness)

אלא אם צוין אחרת, כל השדות המספריים מרובי הבייטים בהודעות הם בסדר little-endian.

הודעות ורצף הודעות

בקטע הזה מתוארות ההודעות ורצף חילופי ההודעות.

בטבלה הבאה מוצגות כל ההודעות שמופיעות בחילופי הנתונים מחוץ לתחום:

הודעה מזהה ההודעה
Ranging Capability Request 0x0
Ranging Capability Response 0x1
Ranging Configuration 0x2
Ranging Configuration Response (אופציונלי) 0x3
Stop Ranging 0x6
Stop Ranging Response (אופציונלי) 0x7
Motion Notification 0x8

החלפת ההודעות מתחילה כשמכשיר היוזם שולח Ranging Capability Request למכשיר המשיב. המכשיר של המשיב שולח את התשובה Ranging Capability Response, כמו שמוצג באיור 1:

תהליך של ערוץ תקשורת

איור 1. החלפת הודעות OOB באמצעות ערוץ תקשורת שמבוסס על חיבור.

מכשיר המשיב מתחיל למדוד את המרחק מיד אחרי שהוא מקבל את ההודעה Ranging Configuration. המכשיר המשיב מפסיק את טווח השידור אחרי שהוא מקבל או מזהה את ההודעה Stop Ranging.

המכשיר המשיב מאכלס את היכולות רק של טכנולוגיות המדידה שנדרשו בהודעה Ranging Capability Request.

המכשיר שיוזם את הבקשה מצפה לקבל רק תגובה אחת לכל הודעת בקשה שהוא שולח. המכשיר שמגיב לא צריך להניח הנחות כאלה כדי שיוכל להגיב לכל בקשה בכל סדר. הבדיקה הזו מוודאת שמכשיר המשיב יכול להגיב לכמה הודעות Ranging Capability Request רצופות, או לכל הודעה אחרת לא רצופה, ממכשיר היוזם.

מעבר לטכנולוגיה אחרת

בגרסת ה-OOB, המכשירים יכולים לעבור באופן דינמי בין טכנולוגיות שונות של מדידת מרחק במהלך סשן. כדי לעשות זאת, היוזם יכול:

  • שליחת כמה הודעות Ranging Configuration כדי להתחיל להשתמש בטכנולוגיות חדשות.
  • שליחת כמה הודעות Stop Ranging כדי להפסיק את הפעילות של טכנולוגיות פעילות.

סדר ההודעות האלה משתנה בהתאם לתוכנית המעבר שנתמכת על ידי המשיב:

  • ניתוק לפני חיבור: יוזם השיחה יכול לעבור לטכנולוגיה חדשה רק אם הוא מפסיק את השיחה הראשונה עם הודעת Stop Ranging לפני שהוא מתחיל את השיחה השנייה עם הודעת Ranging Configuration.
  • הפעלה לפני השבתה: הגורם היוזם יכול להפעיל טכנולוגיה חדשה באמצעות הודעה Ranging Configuration לפני שהוא מפסיק את השימוש בטכנולוגיות קיימות באמצעות הודעה Stop Ranging.

השרת שמגיב חייב להטמיע תמיכה באחת מסכימות המעבר האלה בהתאם לערך של השדה supported technology transitioning ב-Ranging Capability Response שלו.

מזהים של טכנולוגיות לחישוב מרחק

בטבלה הבאה מפורטים המזהים של טכנולוגיות הטווח:

טכנולוגיה למדידת מרחק מזהה
UWB 0x0
CS 0x1
Wi-Fi NAN RTT 0x2
RSSI 0x3
Wi-Fi PD 0x4
RFU ‫0x5 - 0xFF

המזהים האלה משמשים בטבלאות שבדף הזה, שבהן נדרש מזהה טכנולוגיית טווח. בשדות שמכילים שדה סיביות של טכנולוגיית טווח, סיבית שתואמת לאינדקס של מזהה הטכנולוגיה מוגדרת כשהטכנולוגיה הזו נכללת בשדה הסיביות.

לדוגמה, ל-RSSI יש ערך מזהה 3, אבל אם ה-RSSI נכלל בשדה הביטים של טכנולוגיית מדידת הטווח, צריך להפעיל את הביט במיקום של המזהה (3) (הביט הראשון נמצא במיקום 0), ולכן ערך שדה הביטים שיתקבל הוא 0x8. אם גם UWB וגם RSSI כלולים, הערך של שדה הביטים הוא 0x0A (הביטים 0 ו-3 מופעלים).

פורמט ההודעה

כל הודעה מורכבת מכותרת וממטען ייעודי (payload).

פורמט ההודעה

איור 3. פורמט ההודעה.

גודל: 2 בייט

תיאור: הכותרת משותפת לכל ההודעות, והיא החלק הראשון שמופיע בהודעה. הכותרת מכילה גרסה ומזהה של סוג ההודעה. השדה version מציין את הגרסה של המפרט הזה שהתוכן של ההודעה תואם לה. מידע נוסף על השימוש בניהול גרסאות בין מכשירים עם גרסאות שונות זמין במאמר בנושא ניהול גרסאות. הכותרת נשארת תואמת לאחור בין גרסאות שונות, מה שאומר שתמיד אפשר לנתח אותה כדי לקבוע את הגרסה ואת המזהה של ההודעה.

בטבלה הבאה מפורטות הכותרות:

Octet סוג נתונים תיאור ערך
0 uint8 גרסה
  • 0x1 – V1
  • 0x2 – גרסה 2
  • 0x3 – V3
1 uint8 מזהה ההודעה
  • 0x0 – הודעת Ranging Capability Request
  • 0x1 – הודעה Ranging Capability Response
  • 0x2 – הודעה Ranging Configuration
  • 0x3 – הודעת Ranging Configuration Response (אופציונלי)
  • 0x6 – הודעה Stop Ranging
  • 0x7 – הודעת Stop Ranging Response (אופציונלי)
  • 0x8 – הודעה Motion Notification
  • 0x4-0x5, 0x9 - 0xFF RFU

מטען ייעודי (payload)

גודל: משתנה (תלוי בסוג ההודעה)

תיאור: מטען היישום הוא החלק האחרון של ההודעה, אחרי הכותרת. המטען תלוי בסוג ההודעה. הפורמט של המטען הייעודי (Payload) של כל סוג הודעה מוגדר בקטעים הבאים.

מטען ייעודי (payload) של הודעת בקשה ליכולת מדידת מרחק

גודל (לא כולל גודל הכותרת): 2 בייטים

תיאור: נשלח על ידי המכשיר שיוזם את השיחה כדי להתחיל את חילופי ההודעות.

בטבלה הבאה מפורט ה-payload של ההודעה Ranging Capability Request:

Octet סוג נתונים תיאור ערך
0 uint8*2 שדה סיביות של טכנולוגיות טווח מבוקשות
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – זיהוי קרבה (PD) באמצעות Wi-Fi
  • RFU

מטען ייעודי (payload) של הודעת תגובה על יכולת מדידת מרחק

גודל (לא כולל גודל הכותרת): משתנה (חלק משותף של 2 בייטים בתוספת הגודל של כל בייט של טכנולוגיית הטווח הכלולה)

תיאור: נשלח על ידי המשיב כתשובה להודעה Ranging Capability Request. מטען הייעודי (payload) של ההודעה הזו מורכב מהחלק המשותף ומחלקים ספציפיים לטכנולוגיה (BLE CS,‏ Wi-Fi NAN RTT,‏ BLE RSSI), כמו שמוצג בטבלאות הבאות. צריך להוסיף כל חלק שספציפי לטכנולוגיה למדידת מרחק רק אם המכשיר המשיב תומך בטכנולוגיה הזו והיא נדרשת בהודעה Ranging Capability Request.

בטבלה הבאה מפורט תוכן המטען (payload) של ההודעה הנפוצה Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8*2 שדה סיביות של טכנולוגיות נתמכות למדידת מרחק. מציין את קבוצת היכולות של טכנולוגיות טווח שמופיעות בשאר המטען הייעודי (Payload).
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – Wi-Fi PD
  • RFU
2 מערך בייטים בייטים של יכולת טכנולוגיית הטווח. בלוקים חוזרים של מבנים שמוגדרים לפי הטכנולוגיה.
משתנה uint8 מציין תמיכה במעבר לטכנולוגיה חדשה.
  • 0x00 – נתמך ניתוק לפני חיבור.
  • 0x01 – נתמך מעבר ללא השבתה. התקן התגובה יכול להשתמש בכמה טכנולוגיות בו-זמנית כדי לקבוע את המרחק.
משתנה uint16 מציין את סוג המכשיר של המשיב.
  • 0x00 – לא ידוע
  • 0x01 – טלפון
  • 0x02 – טאבלט
  • 0x03 – תג
  • 0x04 – גאדג'ט לביש
  • 0x05 – מכשיר שניתן להרכבה על האוזן
  • RFU

בטבלה הבאה מפורט סיכום של מטען הנתונים של הודעת ה-UWB Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x0 - UWB
1 uint8 גודל גודל היכולות של UWB בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים.
2 uint8*2 כתובת UWB כתובת UWB של המכשיר באורך 2 בייט.
4 uint8*4 שדה סיביות (bitfield) של ערוצים נתמכים שדה סיביות של ערוצים נתמכים. אם הביט מוגדר כ-0, המשמעות היא שאין תמיכה, ואם הוא מוגדר כ-1, המשמעות היא שיש תמיכה. ביט 0 מתאים לערוץ 0.
LSB == channel 0
MSB == channel 31
8 uint8*4 שדה סיביות של אינדקס פתיחה נתמך שדה ביטים של אינדקסים של פתיחים נתמכים. אם הביט מוגדר ל-0, המשמעות היא שאין תמיכה, ואם הוא מוגדר ל-1, המשמעות היא שיש תמיכה. ביט 0 תואם לאינדקס 1 של הפתיח.
LSB == preamble index 1
MSB == preamble index 32
12 uint8*4 שדה סיביות של מזהי תצורה נתמכים שדה סיביות של מזהי תצורה נתמכים של UWB. ביט שמוגדר ל-0 מציין שאין תמיכה, וביט שמוגדר ל-1 מציין שיש תמיכה.
LSB == config Id 0
MSB == config Id 31
16 uint8*2 מרווח הזמן המינימלי הנתמך למדידת מרחק מציין את מרווח המדידה המהיר ביותר שנתמך, באלפיות השנייה. הערכים המותרים (באלפיות השנייה):
  • 96
  • 120
  • 240
  • 600
18 uint8 משך הזמן המינימלי הנתמך של משבצת זמן מציין את משך הזמן הקצר ביותר של משבצת שנתמך באלפיות השנייה. לדוגמה, אם המכשיר מחזיר 1 ms, ההנחה היא שהוא תומך גם במשכי משבצת של 2 ms ומעלה. הערכים המותרים (באלפיות השנייה):
  • 1
  • 2
19 uint8 שדה סיביות של תפקיד מכשיר UWB נתמך שדה סיביות של תפקידי ה-UWB הנתמכים. לדוגמה, אם שניהם תומכים בערך השדה הסופי הוא 0x3.
  • 0x1 – תפקיד היוזם נתמך
  • 0x2 – יש תמיכה בתפקיד של משיב

בטבלה הבאה מפורט תוכן ההודעה של BLE CS Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x1 – BLE CS
1 uint8 גודל גודל היכולות של BLE CS בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים.
2 uint8 שדה סיביות (bitfield) של סוג האבטחה הנתמך שדה סיביות של סוגי האבטחה הנתמכים ב-BLE CS.
  • 0x01CS_SECURITY_LEVEL_UNKNOWN
  • 0x02CS_SECURITY_LEVEL_ONE
  • 0x04CS_SECURITY_LEVEL_TWO
  • 0x08CS_SECURITY_LEVEL_THREE
  • 0x10 עד CS_SECURITY_LEVEL_FOUR
3 uint8*6 כתובת המכשיר הכתובת של המכשיר שמשמש ל-BLE CS, בסדר Big Endian.

בטבלה הבאה מפורט ה-payload של ההודעה Wi-Fi NAN RTT Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x2 – Wi-Fi NAN RTT
1 uint8 גודל גודל היכולות של Wi-Fi NAN RTT בבייטים (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים.
2 uint8 שדה סיביות של תכונות נתמכות שדה ביטים של תכונות נתמכות.
  • 0x01 – תומך ב-11mc
  • 0x02 – תמיכה ב-11az
3 uint8 תמיכה בטווח תקופתי
  • 0x0 – אין תמיכה בטווח מחזורי
  • 0x1 – נתמכת מדידה תקופתית של טווח
4 uint8 רוחב פס נתמך הוצא משימוש: המידע הזה עוזר להסיק את רמת הדיוק האפשרית של טווח המרחקים באמצעות Wi-Fi NAN, ויכול לעזור לאפליקציות לקבוע אם להשתמש ב-UWB, ב-BLE CS, ב-BLE RSSI או ב-Wi-Fi NAN כדי למדוד את טווח המרחקים.
  • 0x00 – 20 MHz
  • 0x01 – 40 MHz
  • 0x02 – 80 MHz
  • 0x03 –‏ 160 MHz
  • 0x04 – 80+80 MHz
  • 0x05 – 320 MHz
  • RFU
5 uint8 מספר שרשראות הקבלה הנתמכות יצא משימוש: המידע הזה עוזר להסיק את רמת הדיוק האפשרית של טווח המרחק באמצעות Wi-Fi NAN, ויכול לעזור לאפליקציות לקבוע אם להשתמש ב-UWB, ב-BLE CS, ב-BLE RSSI או ב-Wi-Fi NAN כדי למדוד את טווח המרחק.
  • 0x00 – לא מוגדר
  • 0x01 – שרשרת אחת של RX
  • 0x02 – 2 שרשראות RX
  • 0x03 – 3 שרשראות RX
  • 0x04 – 4 שרשראות RX

בטבלה הבאה מפורט תוכן ההודעה של BLE RSSI Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x3 – BLE RSSI
1 uint8 גודל גודל היכולות של BLE RSSI בבייטים (כולל השדות Technology ID ו-Size)
2 uint8*6 כתובת המכשיר הכתובת של המכשיר שמשמש ל-BLE RSSI; בסדר Big Endian

בטבלה הבאה מפורט מטען הנתונים של הודעת ה-Wi-Fi PD Ranging Capability Response:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x4 – Wi-Fi PD
1 uint8 גודל הגודל בבייטים של יכולות ה-PD של Wi-Fi (כולל השדות מזהה הטכנולוגיה וגודל)
2 uint8 תכונות נתמכות מפת סיביות (Bitmap)
  • b0 – תומך ב-11mc
  • b1 – תמיכה ב-11az
3 uint8 מצב PASN מפת סיביות (Bitmap)
  • b0 – מצב PASN לא מאומת
  • b1 – מצב מאומת של PASN
4 uint8*6 כתובת המכשיר הכתובת של המכשיר שמשמש ל-Wi-Fi PD, בסדר Big Endian.
10 uint8*2 מרווח מינימלי של מדידת מרחק בתקן 802.11mc מרווח המינימום הנתמך בפורמט big-endian עבור 11mc
12 uint8*2 מרווח מינימלי של מדידת מרחק בתקן 802.11az מרווח המינימום הנתמך בפורמט big-endian עבור 11az
14 uint8 הסוג המקסימלי של הודעת הפתיחה
  • 0 - PREAMBLE_LEGACY
  • 1PREAMBLE_HT
  • 2 - PREAMBLE_VHT
  • 3PREAMBLE_HE
  • 4PREAMBLE_EHT

ההנחה היא שכל סוגי ההקדמות הנמוכים יותר נתמכים.
15 uint8 רוחב הערוץ המקסימלי
  • 0 - CHANNEL_WIDTH_20MHZ
  • 1CHANNEL_WIDTH_40MHZ
  • 2 - CHANNEL_WIDTH_80MHZ
  • 3CHANNEL_WIDTH_160MHZ
  • 4CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5CHANNEL_WIDTH_320MHZ

ההנחה היא שכל רוחבי הערוצים הנמוכים יותר נתמכים.
16 uint8*2 תדירות הערוץ הנתמכת
  • b0 – ערוץ 1
  • b1 – ערוץ 11
  • b2 – ערוץ 36
  • b3 – ערוץ 40
  • b4 – ערוץ 44
  • b5 – ערוץ 48
  • b6 – ערוץ 153
  • b7 – ערוץ 157
  • b8 – ערוץ 161
  • b9 - ערוץ 165
  • b10-b15 – RFU

מטען ייעודי (payload) של הודעת הגדרת טווח

גודל (לא כולל גודל הכותרת): משתנה (חלק משותף של 4 בייטים בתוספת הגודל של כל בייט של טכנולוגיית הטווח הכלולה).

תיאור: ההודעה הזו נשלחת על ידי הגורם היוזם והיא מכילה את ההגדרות שכל טכנולוגיית מדידת מרחק יכולה להתחיל למדוד איתן את המרחק. מכשיר המשיב צריך לנסות להתחיל למדוד את המרחק באמצעות כל טכנולוגיה לציון מרחק שמצוינת בהודעה הזו, ברגע שהוא מקבל אותה. ה-payload של ההודעה הזו מורכב מהחלק המשותף ומחלקים ספציפיים לטכנולוגיות טווח (UWB,‏ BLE CS,‏ Wi-Fi NAN RTT,‏ BLE RSSI), כמו שמוצג בטבלאות הבאות.

בטבלה הבאה מפורט תוכן המטען (payload) של ההודעה הנפוצה Ranging Configuration:

Octet סוג נתונים תיאור ערך
0 uint8*2 שדה סיביות להגדרת טכנולוגיות לחישוב מרחקים שדה סיביות של טכנולוגיות לחישוב מרחקים שההודעה הזו מכילה נתוני הגדרה לגביהן, ושצריך להגדיר עבורן פרמטרים של הגדרה.
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – Wi-Fi PD
  • RFU
2 uint8*2 שדה סיביות RFU. הערך צריך להיות זהה לערך בשדה Ranging technologies configuration set bitfield.
4 מערך בייטים בייטים של הגדרות טכנולוגיות לחישוב טווח בלוקים חוזרים של מבנים שמוגדרים לפי טכנולוגיה
משתנה uint8 תמיכה בצילום בתנועה הוגשה בקשהMotion Notification
  • 0x0 – מציין שלא נדרשים נתוני תנועה ממכשיר היוזם.
  • 0x1 – מציין שמכשיר היוזם צריך את נתוני התנועה ממכשיר העמית.

בטבלה הבאה מפורט ה-payload של ההודעה ב-UWB Ranging Configuration:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x0 - UWB
1 uint8 גודל גודל ההגדרה של UWB (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים
2 uint8*2 כתובת UWB כתובת UWB של המכשיר באורך 2 בייט
4 uint8*4 מזהה הפעילות מזהה הפעילות שנוצר. מזהה הסשן הוא מזהה ייחודי של סשן מדידת הטווח בין הטלפון לבין הציוד ההיקפי.
8 uint8 מזהה ההגדרות שנבחר מספר מזהה ההגדרה שנבחר, כמספר שלם. מזהה ההגדרה מציין את פרמטרי התזמון ואת סוג האבטחה שצריך להשתמש בהם בסשן של מדידת טווח UWB.
9 uint8 הערוץ שנבחר הערוץ שנבחר להפעלת מדידת טווח באמצעות UWB
10 uint8 אינדקס ההקדמה שנבחר אינדקס הפתיחה שנבחר לסשן של מדידת מרחק באמצעות UWB
11 uint8*2 מרווח התיוג שנבחר תדירות מרווח הטווח שנבחר באלפיות השנייה. הערכים המותרים (באלפיות השנייה):
  • 96
  • 120
  • 240
  • 600
13 uint8 משך הזמן של המשבצת שנבחרה משך משבצת הזמן שנבחרה באלפיות השנייה. הערכים המותרים (באלפיות השנייה):
  • 1
  • 2
14 uint8 אורך המפתח להצפנת פעילות אורך מפתח הסשן בבייטים
15 מערך בייטים מפתח להצפנת פעילות מפתח להצפנת פעילות. אם נעשה שימוש ב-S-STS, שני הבייטים הראשונים הם מזהה הספק וששת הבייטים הבאים הם STS IV סטטי. אם נעשה שימוש ב-P-STS, זהו מפתח סשן של 16 בייט או 32 בייט. סוג האבטחה שנעשה בו שימוש נקבע לפי מזהה ההגדרה.
משתנה uint8*2 קוד מדינה קוד מדינה לפי תקן ISO 3166-1 alpha-2, שמיוצג על ידי שני תווים ב-ASCII
משתנה uint8 התפקיד שנבחר למכשיר
  • 0x01 – מאתחל
  • 0x02 – משיב
משתנה uint8 מצב המכשיר שנבחר
  • 0x01 – בקר
  • 0x02 – Controlee

בטבלה הבאה מפורט תוכן ההודעה של BLE CS Ranging Configuration:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x1 – BLE CS
1 uint8 גודל הגודל של הגדרת ה-BLE CS (כולל השדות Technology ID ו-Size) בבייטים
2 uint8 סוג האבטחה שנבחר סוג האבטחה שנבחר. ערכים מותרים:
  • 0x0CS_SECURITY_LEVEL_UNKNOWN
  • 0x1CS_SECURITY_LEVEL_ONE
  • 0x2CS_SECURITY_LEVEL_TWO
  • 0x3CS_SECURITY_LEVEL_THREE
  • 0x4CS_SECURITY_LEVEL_FOUR
3 uint8*6 כתובת המכשיר הכתובת של המכשיר שמשמש ל-BLE CS, בסדר Big Endian

בטבלה הבאה מפורט ה-payload של הודעת ה-RTT של Wi-Fi NAN:‏ Ranging Configuration

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x2 – Wi-Fi NAN RTT
1 uint8 גודל הגודל של הגדרת ה-RTT של Wi-Fi NAN (כולל השדות Technology ID ו-Size) בבייטים
2 uint8 אורך שם השירות האורך של השדה Service name בבייטים. פרטים נוספים מופיעים במפרט Wi-Fi Aware גרסה 4.0, קטע 1.3.3, טבלה 1. הגדרות.
3 מערך בייטים שם השירות שם השירות. פרטים נוספים מופיעים במפרט Wi-Fi Aware גרסה 4.0, קטע 1.3.3, טבלה 1. הגדרות.
משתנה uint8 תפקיד המכשיר
  • 0x0 – משיב (מפרסם שירות NAN)
  • 0x1 – מאתחל (מנוי לשירות NAN)
משתנה uint8 שימוש בטווח מחירים תקופתי
  • 0x0 – השבתה של מדידת טווח תקופתית
  • 0x1 – מדידת מרחק תקופתית מופעלת

בטבלה הבאה מפורט תוכן ההודעה של BLE RSSI Ranging Configuration:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x3 – BLE RSSI
1 uint8 גודל הגודל של הגדרת BLE RSSI (כולל השדות Technology ID ו-Size) בבייטים
2 uint8*6 כתובת המכשיר הכתובת של המכשיר שמשמש ל-BLE RSSI; בסדר Big Endian

בטבלה הבאה מפורט מטען הנתונים של הודעת ה-Wi-Fi PD Ranging Configuration:

Octet סוג נתונים תיאור ערך
0 uint8 מזהה טכנולוגיית טווח 0x4 – Wi-Fi PD
1 uint8 גודל הגודל של הגדרת ה-PD של ה-Wi-Fi (כולל השדות מזהה הטכנולוגיה וגודל) בבייטים
2 uint8 תכונה
  • 0x01 – 11mc
  • 0x02 – 11az
3 uint8*6 כתובת MAC כתובת ה-MAC של המאתחל
9 uint8*2 מרווח מדידת מרחק מרווח מדידת הטווח באלפיות השנייה
11 uint8 ההקדמה שנבחרה
  • 0 - PREAMBLE_LEGACY
  • 1PREAMBLE_HT
  • 2 - PREAMBLE_VHT
  • 3PREAMBLE_HE
  • 4PREAMBLE_EHT
12 uint8 רוחב הערוץ שנבחר
  • 0 - CHANNEL_WIDTH_20MHZ
  • 1CHANNEL_WIDTH_40MHZ
  • 2 - CHANNEL_WIDTH_80MHZ
  • 3CHANNEL_WIDTH_160MHZ
  • 4CHANNEL_WIDTH_80MHZ_PLUS_MHZ
  • 5CHANNEL_WIDTH_320MHZ
13 uint8 הערוץ שנבחר
  • 0 – ערוץ 1
  • 1 – ערוץ 11
  • 2 – ערוץ 36
  • 3 – ערוץ 40
  • 4 – ערוץ 44
  • 5 – ערוץ 48
  • 6 – ערוץ 153
  • 7 – ערוץ 157
  • 8 – ערוץ 161
  • 9 – ערוץ 165
14 uint8 מצב PASN נבחר
  • 0x01 – מצב PASN לא מאומת
  • 0x02 – מצב PASN מאומת
הערה: השדה הזה הוא סוף החבילה במצב PASN לא מאומת.
15 מערך בייטים מפתח מזהה המכשיר מערך קבוע של 16 בייט
הערה: השדה הזה תקף רק למצב PASN מאומת, ואסור להגדיר אותו למצב PASN לא מאומת
31 uint8 אורך הסיסמה אורך הסיסמה.
הערה: השדה הזה תקף רק למצב PASN מאומת, ואין להגדיר אותו למצב PASN לא מאומת.
משתנה מערך בייטים סיסמה הסיסמה כמערך בייטים.
הערה: השדה הזה תקף רק למצב PASN מאומת, ואין להגדיר אותו למצב PASN לא מאומת.

מטען ייעודי (payload) של הודעת תגובה להגדרת טווח

גודל (לא כולל גודל הכותרת): 2 בייטים

תיאור: ההודעה הזו נשלחת על ידי המשיב בתגובה להודעה [Ranging Configuration]. ההודעה הזו היא אופציונלית, והיא נדרשת רק אם הערוץ שבו משתמשים מחייב תגובה מפורשת לכל בקשה.

בטבלה הבאה מפורט סיכום של מטען הנתונים של ההודעה Ranging Configuration Response:

Octet סוג נתונים תיאור ערך
0 uint8*2 שדה סיביות להגדרת טכנולוגיות לטווח שדה ביטים של טכנולוגיות לחישוב מרחקים שהוגדרו בהצלחה. שדה הביטים מגדיר את הביט של טכנולוגיית הטווח ל-1 אם הטכנולוגיה נדרשה והוגדרה בהצלחה, ול-0 אחרת.
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – Wi-Fi PD
  • RFU

הפסקת טווח המטען הייעודי (payload) של ההודעה

גודל (לא כולל גודל הכותרת): 2 בייטים

תיאור: ההודעה הזו נשלחת על ידי המכשיר היוזם כשהגיע הזמן להפסיק את מדידת הטווח באמצעות טכנולוגיית מדידת הטווח שצוינה.

בטבלה הבאה מפורט ה-payload של ההודעה Stop Ranging:

Octet סוג נתונים תיאור ערך
0 uint8*2 טכנולוגיות של טווחים לעצירת שדה סיביות שדה סיביות של טכנולוגיות לחישוב מרחק שצריך להפסיק את חישוב המרחק. אם הביט מוגדר כ-1, טכנולוגיית מדידת הטווח צריכה להפסיק את מדידת הטווח. אם הביט מוגדר כ-0, טכנולוגיית מדידת הטווח לא מדדה את הטווח מלכתחילה, או שהיא צריכה להמשיך למדוד את הטווח אם היא כבר מדדה אותו. בטכנולוגיות מסוימות למדידת מרחק (כמו CS), הפעולה הזו לא משפיעה כי מדידת המרחק מופעלת ומופסקת רק בצד של היוזם.
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – Wi-Fi PD
  • RFU

מטען ייעודי (payload) של הודעת תגובה לטווח

גודל (לא כולל גודל הכותרת): 2 בייטים

תיאור: ההודעה הזו נשלחת על ידי המשיב בתגובה להודעה [Stop Ranging]. ההודעה הזו היא אופציונלית, והיא נדרשת רק כשערוץ התקשורת שבו נעשה שימוש מחייב תגובה מפורשת לכל בקשה.

בטבלה הבאה מפורט ה-payload של ההודעה Stop Ranging Response:

Octet סוג נתונים תיאור ערך
0 uint8*2 טכנולוגיות לחישוב מרחקים הופסקו בהצלחה, שדה סיביות שדה סיביות של טכנולוגיות לחישוב מרחק שהפסיקו לחשב מרחק בהצלחה. השדה הבינארי מגדיר את הביט של טכנולוגיית מדידת הטווח ל-1 אם הטכנולוגיה התבקשה להפסיק ואם היא הפסיקה בהצלחה, אחרת הוא מוגדר ל-0.
  • 0x01 – UWB
  • 0x02 – בדיקת תקינות של ערוץ BLE
  • 0x04 – Wi-Fi NAN RTT
  • 0x08 - BLE RSSI
  • 0x10 – Wi-Fi PD
  • RFU

מטען ייעודי (payload) של הודעה על תנועה

גודל (לא כולל גודל הכותרת): בייט אחד

תיאור: המכשיר המשיב שולח את ההודעה הזו כדי לעדכן את המכשיר ששלח את הבקשה על שינויים בסטטוס התנועה שלו.

Octet סוג נתונים תיאור ערך
0 uint8 תנועה
  • 0x0 – לא זוהה
  • 0x1 – תנועה קלה
  • 0x2 – תנועה מתונה
  • 0x3 – תנועה גדולה
  • RFU
צריך להגדיר את סף התנועה כדי לזהות שינוי בכיוון של ‎±X° לאורך שני צירים כלשהם של האביזר.
  • לא זוהה: < 5°
  • תנועה קלה: 5° עד 7°
  • תנועה מתונה: 7° - 10°
  • תנועה גדולה: יותר מ-10°

ניהול גרסאות

הגרסה של המפרט מופיעה בכותרת של כל הודעה. בקטע הזה מוגדר איך מתבצעת התקשורת כשאחד המכשירים (המכשיר שיוזם את השיחה או המכשיר שמקבל את השיחה) הוא בגרסה ישנה יותר מהמכשיר השני. ‫Ranging Capability Request היא ההודעה הראשונה שנשלחת מהמכשיר של יוזם השיחה.

היוזם תומך בגרסה חדשה יותר, המשיב תומך בגרסה ישנה יותר של המפרט

המכשיר שיוזם את ההעברה שולח את ההודעה Ranging Capability Request עם הגרסה החדשה יותר. המכשיר של המשיב תומך רק בגרסה הישנה יותר, ולכן הוא מגיב באמצעותה. לאחר מכן, הגרסה הישנה יותר של המשיב משמשת לשאר חילופי ההודעות. המשמעות היא שההודעה Ranging Capability Request צריכה להיות תואמת לגרסאות קודמות.

הצד שיוזם את הבקשה תומך בגרסה ישנה יותר, הצד שמשיב לבקשה תומך בגרסה חדשה יותר של המפרט

המכשיר המשיב רואה שהמכשיר היוזם לא יכול להשתמש בגרסה החדשה יותר, ולכן הוא שולח הודעות רק באמצעות הגרסה הישנה יותר שהמכשיר היוזם ביקש בהתחלה.

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

פרגמנטציה

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

Ranging-technology-specifics

בקטע הזה מפורטים פרטים ספציפיים לטכנולוגיית טווח.

פרטים ספציפיים על Ultra Wideband ‏ (UWB)

בקטע הזה מפורטים פרטים ספציפיים לגבי Ultra Wideband (UWB).

מזהי הגדרות

נתוני ההגדרה של OOB שמוחלפים ב-UWB לא מכילים קבוצה מלאה של פרמטרים זמינים להגדרה שנדרשים ל-UWB כדי להתחיל סשן של מדידת מרחק ב-UWB. הסיבה לכך היא שפרמטרים מסוימים נבחרים באופן מרומז על ידי מזהה ההגדרה שנבחר.

כל מזהה הגדרה הוא קבוצה של פרמטרים מוגדרים מראש של UWB, שמפורטים ב-UwbRangingParams. המכשיר המשיב שולח רשימה של כל מזהי ההגדרות שהוא תומך בהם כחלק מהודעת התגובה של היכולת, והמכשיר היוזם בוחר אחד ממזהי ההגדרות הנתמכים שבהם הוא ישתמש. כך אפשר להחליף קבוצה קטנה יותר של פרמטרים של config במהלך OOB. היא גם מגבילה את מספר השילובים האפשריים של פרמטרים שאפשר להשתמש בהם למדידת מרחק באמצעות UWB, וכך אפשר לבדוק רק שילובים מותרים של פרמטרים.

שליחת בקשה ליכולות אחרי כל סשן UWB

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

פרטים ספציפיים על בדיקת ערוץ (CS) ב-BLE

בקטע הזה מפורטים פרטים ספציפיים לגבי בדיקת תקינות הערוץ.

הצפנת קישור נדרשת בין מכשירים

כדי להשתמש בטכנולוגיית מדידת הטווח באמצעות בדיקת הערוץ, צריך ליצור קשר קיים בין המכשיר היוזם למכשיר המגיב. במפרט הזה לא מוסבר איך ליצור שיוך בין מכשירים. כשמשתמשים ב-Ranging APIs, צריך ליצור את הקשר הזה בין המכשירים.

נדרשת פעולה מצד המשיב ב-CS

ב-UWB, שני המכשירים צריכים להפעיל את ה-API של UWB start ranging ו-stop ranging באופן מפורש. לעומת זאת, ב-CS, רק המכשיר היוזם נדרש להפעיל את טווח ה-CS על ידי קריאה למערך ה-BT. שאר ההפעלה בצד המשיב מתבצעת בתוך הפס באמצעות BT. כלומר, כשמתקבלת הודעת Ranging Configuration או הודעת Stop Ranging עבור CS, בצד המשיב לא צריך לעשות כלום אם BT מופעל. המכשיר המגיב יכול להשתמש בהודעות האלה כטריגר לעדכון ממשק המשתמש, או למשל להבהב את נוריות ה-LED של המכשיר.