WLAN RTT (IEEE 802.11mc)

Android 9 中的 WLAN 往返时间 (RTT) 功能允许设备测量与其他支持设备的距离:无论它们是接入点 (AP) 还是 WLAN 感知对等设备(如果设备支持 WLAN 感知)。此功能基于 IEEE 802.11mc 协议,使应用能够使用准确性更高的定位功能和增强的感知功能。

示例和来源

要使用此功能,请采用在 Android 开源项目 (AOSP) 中提供的 WLAN 硬件接口设计语言 (HIDL)。在 Android 8.0 中,HIDL 取代了之前使用的硬件抽象层 (HAL) 结构,以便通过指定收集到接口和软件包的类型和方法调用来简化实现流程。

借助 WLAN HIDL 使用 WLAN RTT 功能:hardware/interfaces/wifi/1.0 或更高版本。

您可以参考旧版 WLAN HAL 来了解它与新 HIDL 接口之间的关系:hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h

实现

要实现 WLAN RTT,您必须提供框架和 HAL/固件支持:

  • 框架:

    • AOSP 代码
    • 启用 WLAN RTT:需要功能标记
  • WLAN RTT (IEEE 802.11mc) HAL 支持(意味着固件支持)

要实现此功能,请采用 WLAN HIDL,另外还要启用功能标记:

  • 在位于 device/<oem>/<device> 的 device.mk 中,修改 PRODUCT_COPY_FILES 环境变量,以便支持 WLAN 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 地址

为加强隐私保护,在 WLAN RTT 事务期间使用的 MAC 地址必须是随机分配的地址,即不得与 WLAN 接口的原生 MAC 地址一致。不过,有一种例外情况:如果某个设备与 AP 相关联,则此设备可能会使用与其相关联的 MAC 地址来处理与此 AP 或其他 AP 之间的任何 RTT 事务。

验证

这项功能有适用的 Android 兼容性测试套件 (CTS) 测试。CTS 会检测何时启用了这项功能,并会自动包含相关测试。您也可以使用供应商测试套件 (VTS) 和 acts/sl4a(用于执行扩展程序集成测试的测试套件)来测试此功能。

单元测试

使用以下测试执行 WLAN RTT 软件包测试:

服务测试:

% ./frameworks/opt/net/wifi/tests/wifitests/runtests.sh -e package
com.android.server.wifi.rtt
 

Manager 测试:

% ./frameworks/base/wifi/tests/runtests.sh -e package android.net.wifi.rtt
 

集成 (ACTS) 测试

acts/sl4a 测试套件(在 /tools/test/connectivity/acts/tests/google/wifi/rtt/README.md 中有相应说明)提供了功能测试、性能测试和压力测试。

CTS

这项功能有适用的 Android 兼容性测试套件 (CTS) 测试。CTS 会检测何时启用了这项功能,并会自动包含相关测试。支持 WLAN RTT (IEEE 802.11mc) 的接入点必须位于被测设备的覆盖范围内。

您可以使用以下命令触发 CTS 测试:

% atest WifiRttTest
 

校准

为了确保 WLAN RTT 能够正常运行,802.11mc 协议中返回的距离的精确度应在关键绩效指标 (KPI) 范围内(理想情况下)。对于所列带宽出现的 90% 的 CDF 错误,针对距离估算值建议的 KPI 具有以下容差:

  • 80MHz:2 米
  • 40MHz:4 米
  • 20MHz:8 米

为确保正确实现功能,您必须进行校准测试。

您可以通过以下方式来实现这项测试:通过不断增加距离,比较地面真实距离和 RTT 估算距离。如果真实距离和 RTT 估算距离基本一致,则您应该针对已知已进行 RTT 校准的设备验证解决方案。距离校准应在下列条件下进行测试:

  1. 大型开放实验室或没有大量金属物体(金属物体可能会导致多路径异常高发)的走廊。
  2. 视线 (LOS) 路线/路径至少要延长 25 米。
  3. 从路线一端到另一端以每次增加 0.5 米的方式标记。
  4. 选择一个位于路线一端的位置来安装支持 RTT 的接入点(位于地面以上 20 厘米处);一个可移动支架(也位于地面上方 20 厘米处),用于沿路线移动 Android 手机(或接受测试的其他 Android 移动设备),可移动支架应与每隔 0.5 米出现的标记对齐。注意:这项重复性任务可由小型机器人来完成,也可以由人工操作员来完成。
  5. 每个标记处应记录 50 个距离结果,同时应记录相应标记距离接入点的距离。应在每个标记位置处计算统计信息(例如距离均值和方差)。

您可以根据第 5 步中的结果绘制一个图表,其中 X 轴为地面真实距离,Y 轴为估算距离,以及一条估算出的最合适的回归路线。理想的设备校准会产生一条梯度为 1.0 的线,且 Y 轴的偏差为 0.0 米。如果这些值的偏差落在相应带宽的 KPI 范围内,则这些偏差是可接受的。如果结果超过 KPI 范围,则应该重新校准设备功能,以使结果符合 KPI 规范。

WLAN RTT (IEEE 802.11mc)的更多相关文章

  1. IEEE 802.11 标准列表

    IEEE 802.11 标准列表 IEEE 802.11,1997年,原始标准(2Mbit/s,播在2.4GHz). IEEE 802.11a,1999年,物理层补充(54Mbit/s,播在5GHz) ...

  2. 计算机网络六:无线局域网、IEEE 802.11、WIFI和蓝牙

    无线局域网.IEEE 802.11.WIFI和蓝牙 ㈠无线局域网 1.定义       无线局域网络(Wireless Local Area Networks),简称WLAN.它是相当便利的数据传输系 ...

  3. IEEE 802.15介绍

    1. 无线通信 无线通信主要是利用无线电(Radio)射频(RF)技术的通信方式,无线网络是采用无线通信技术实现的网络无线网络可为两种: 近距离无线网络和远距离无线网络 近距离无线网络主要可分为如下两 ...

  4. IEEE 802.11p (WAVE,Wireless Access in the Vehicular Environment)

    IEEE 802.11p(又称WAVE,Wireless Access in the Vehicular Environment)是一个由IEEE 802.11标准扩充的通讯协定.这个通讯协定主要用在 ...

  5. 蓝牙(Bluetooth) IEEE 802.15.1 协议学习

    catalogue . 蓝牙概念 . 配对和连接 . 机密安全性 . 蓝牙协议分类 . 蓝牙协议栈 1. 蓝牙概念 蓝牙(Bluetooth)是一种无线技术标准,可实现固定设备.移动设备和楼宇个人域网 ...

  6. IEEE 802.3 Ethernet

    Introduction Ethernet 是过去30年以来最为成功的局域网(local area networking)技术. 1. First widely used LAN technology ...

  7. IEEE 802.15.4协议学习之物理层

    在详细讲述IEEE 802.15.4协议之前,谈谈自己这两个星期看协议过程中的一点心得,或者是收获吧. 看协议文档,一定要看有书签的,边看边在旁边做些备注,以便于后期整理.对于协议层次相关的,最好在纸 ...

  8. IEEE 802.15.4协议学习之MAC层

        MAC负责建立于网络的同步,支持关联和取消关联.MAC层的安全以及控制物理信道访问机制.信道访问机制主要有以下几种:       1. 有序的物理无线信道访问机制     2. 协调器启动和维 ...

  9. Linux实现的IEEE 802.q VLAN

    本文转载自: http://blog.chinaunix.net/uid-20786208-id-4291059.html Technorati 标签: Linux VLAN   ---------- ...

随机推荐

  1. bzoj4568: [Scoi2016]幸运数字(LCA+线性基)

    4568: [Scoi2016]幸运数字 题目:传送门 题解: 好题!!! 之前就看过,当时说是要用线性基...就没学 填坑填坑: %%%线性基 && 神犇 主要还是对于线性基的运用和 ...

  2. Composer使用实践

    Composer 是 PHP5.3以上 的一个依赖管理工具.它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们. 地址在这里 库地址 这里相当于php应用商店,存放着很多库. 这些库,基本上 ...

  3. nyoj--18--The Triangle(dp水题)

    The Triangle 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure ...

  4. [JZOJ NOIP2018模拟10.20 A组]

    由于T3数据出锅,还不清楚自己的分数...估分150,前100已经拿到了,T3的50没拍过(写的就是暴力怎么拍),感觉很不稳 考试的时候就是特别的困,大概是因为早上在房间里腐败...腐败完了才睡觉 T ...

  5. sql server 去掉某字段左边的0

    比如:将以下Code字段 Code 000 001 002 ... 009 010 依次去掉左边的0,000替换为0,001替换为1,010替换为10,以此类推 Code 0 1 2 ... 9 10 ...

  6. Android程序能够构建和运行,但是报以下报错,为什么?

    安卓程序写完之后能够构建和运行,但是会报以下的错误.不知道原因为何?求大神解答. 网上说的是混淆编译的原因,不过程序没有开启混淆编译. Error:warning: Ignoring InnerCla ...

  7. latex问题总结

    1.使 IEEE 的 Latex 杂志(journal)模板(templet)图片标题(caption)居中 由于IEEETran-journal中的默认caption左对齐.加上\usepackag ...

  8. 路飞学城Python-Day14(practise)

    本章总结 练习题 1.logging模块有几个日志级别? 5个,按级别从高到低分别是 CRITICAL(灾难)>ERROR(错误)>WARNING(警示)>INFO(信息)>D ...

  9. 垃圾回收器(GC)

    值类型占用的空间在方法执行结束后会被马上释放, 引用类型占用的空间在方法结束后不会被马上释放,具体什么时间释放由垃圾回收器(GC)来决定. GC(Garbage Collection):JAVA/.N ...

  10. Artisan 命令

    php artisan key:generate 生成 App Key php artisan make:controller 生成控制器 php artisan make:model 生成模型 ph ...