Wi-Fi RTT (IEEE 802.11mc, IEEE 802.11az)

זמן הלוך ושוב ברשת Wi-Fi (RTT) ב-Android 9, התכונה מאפשרת למכשירים תומכים למדוד מרחק למכשירים תומכים אחרים: בין אם אלה נקודות גישה (נקודות AP) או אפליקציות להשוואה דרך Wi-Fi (אם אתם משתמשים ב-Wi-Fi Aware) נתמך במכשיר). תכונה זו, המבוססת על IEEE 802.11mc ופרוטוקול IEEE 802.11az (זמין מ-Android 15), מאפשר לאפליקציות להשתמש במודעות ובקביעת מיקום יותר מדויקת.

דוגמאות ומקור

כדי להשתמש בתכונה הזו, צריך להטמיע את ממשק HAL של הספק. ב-Android מגרסה 14 ואילך, ממשק HAL של הספק מוגדר באמצעות AIDL. ב-Android מגרסה 13 ומטה: ממשק HAL של הספק מוגדר באמצעות HIDL. ב-Android 8.0, HIDL החליפה את המבנה הקודם של שכבת האבסטרציה של החומרה (HAL) ששימש מייעלים את ההטמעות על ידי ציון הסוגים והשיטה של קריאות הנתונים וממשקים וחבילות.

פועלים לפי ממשק ה-Wi-Fi כדי להשתמש בתכונת ה-RTT ב-Wi-Fi. בהתאם לממשק יוטמע, אלה:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 ואילך.

אפשר לעיין ב-Wi-Fi HAL הקודם כדי לראות איך הוא קשור ממשקי AIDL ו-HIDL: hardware/libhardware_Legacy/+/main/include/hardware_Legacy/rtt.h.

הטמעה

כדי להטמיע RTT ב-Wi-Fi, צריך לספק גם framework וגם HAL/קושחה :

  • מסגרת:

    • קוד AOSP
    • הפעלת RTT ב-Wi-Fi: נדרש מאפיין דגל
  • תמיכה ב-HAL ב-Wi-Fi (IEEE 802.11mc או IEEE 802.11az) תמיכה בקושחה)

כדי להטמיע את התכונה הזו, צריך להטמיע את ממשק ה-Wi-Fi AIDL או HIDL, ומפעילים את התכונה הניסיונית:

  • ב-device.mk שנמצא בתוך device/<oem>/<device>, משנים את משתנה סביבה PRODUCT_COPY_FILES כדי לכלול תמיכה ב-Wi-Fi תכונת RTT:

    PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
    

אחרת, כל מה שנדרש לתכונה הזו כלול ב-AOSP.

רנדומיזציה של MAC

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

אימות

קיימות בדיקות של הכלי לבדיקת תאימות ל-Android (CTS) של Android לתכונה הזו. CTS מזהה כשהתכונה מופעלת וכולל באופן אוטומטי את הבדיקות המשויכות. אפשר לבדוק את התכונה הזאת גם באמצעות חבילת בדיקה של ספקים (VTS).

בדיקות יחידה (unit testing)

הבדיקות של חבילת Wi-Fi RTT מבוצעות באמצעות:

בדיקות שירות:

atest com.android.server.wifi.rtt

בדיקות מנהל:

atest android.net.wifi.rtt

CTS

קיימות בדיקות של הכלי לבדיקת תאימות ל-Android (CTS) של Android לתכונה הזו. CTS מזהה כשהתכונה מופעלת וכולל באופן אוטומטי את הבדיקות המשויכות. נקודת גישה שתומכת ב-Wi-Fi RTT (IEEE 802.11mc) חייבת להיות בטווח של במכשיר שנמצא בבדיקה.

ניתן להפעיל את בדיקות ה-CTS באמצעות:

atest WifiRttTest

כיול

כדי שפעילות RTT ב-Wi-Fi תניב ביצועים טובים, הטווחים שמוחזרים ב-802.11mc או 802.11az הפרוטוקולים צריכים להיות מדויקים בהתאם למדדי הביצועים המרכזיים (KPI) שמתוארים בקטע הזה.

לפרוטוקול 11mc, ברוחב הפס שצוינו (80 מגה-הרץ, 40 מגה-הרץ, 20 MHz) וגודל רצף של 8, ה-KPI עבור אומדן הטווח צפוי משיגים את הדיוק הבא באחוזון ה-90 של השגיאה.

  • 80 MHz: 2 מטרים
  • 40 MHz: 4 מטרים
  • 20 MHz: 8 מטרים

לפרוטוקול 11az, תצורת MIMO של האנטנה והאימון הארוך חזרה בשדה (LTF) משפיעה על הדיוק. עם טלפון נייד טיפוסי (באמצעות 2 אנטנות) ונקודת גישה (4 אנטנות), למערכת יש MIMO 2x4 הגדרה אישית. להגדרה כזו באמצעות גורם חזרה של שני LTF וברוחבי הפס שצוינו (160MHz, 80MHz, 40MHz, 20 MHz), ה-KPI עבור טווח האומדן צפוי להשיג את הערך הבא באחוזון ה-90 של שגיאות.

  • 160 MHz: 0.5 מטר
  • 80 MHz: מטר אחד
  • 40 MHz: 2 מטרים
  • 20 MHz: 4 מטרים

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

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

  1. מעבדה פתוחה גדולה, או מסדרון שאין בו הרבה מתכת אובייקטים שעשויים לגרום להופעות רבות באופן חריג של ריבוי נתיבים.
  2. לפחות מסלול או נתיב באורך 25 מטר.
  3. סמנים במרווחים של 0.5 מטר מקצה אחד של המסלול לקצה השני.
  4. מקום לאבטח נקודת גישה שתומכת ב-RTT בקצה אחד של המסלול מותקנת בגובה 20 ס"מ מעל הרצפה, ותושבת ניתנת להזזה לטלפון Android (או מכשיר נייד אחר עם Android שנמצא בבדיקה) שניתן להזיז לאורך מסלול, ובהתאמה לסמנים של 0.5 מ', גם בגובה 20 ס"מ מעל הרצפה.

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

מהתוצאות בשלב 5 ניתן לשרטט תרשים אמת קרקע (ציר ה-X) מול הטווח המשוער (ציר ה-y) ואומדן של קו הרגרסיה המתאים ביותר. אידיאלית כיול המכשיר יוביל לקו הדרגתי 1.0, עם היסט של 0.0 מ' מופעל על ציר ה-Y. סטיות מהערכים האלה מקובלות אם הם נמצאים במסגרת KPI של רוחב הפס המתאים. אם התוצאות מחוץ ל-KPI, יש לכייל מחדש את התכונה במכשיר כדי להביא את התוצאות במסגרת ה-KPI למפרט.