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. poj--3984--迷宫问题(bfs+路径记录)

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Submit Status D ...

  2. Linux就该这么学 20181004(第六章磁盘管理)

    参考链接https://www.linuxprobe.com/ /boot 开机锁需要文件-内核.开机菜单以及所需配置文件 /dev 以文件形式存放的任何设备与接口 /etc 配置文件 /home 用 ...

  3. etxjs

    序言 编辑 功能丰富,无人能出其右. 无论是界面之美,还是功能之强,ext的表格控件都高居榜首. 单选行,多选行,高亮显示选中的行,拖拽改变列宽度,按列排序,这些基本功能ExtJS轻量级实现. 自动生 ...

  4. 中文版 R-FCN: Object Detection via Region-based Fully Convolutional Networks

    R-FCN: Object Detection via Region-based Fully Convolutional Networks 摘要 我们提出了基于区域的全卷积网络,以实现准确和高效的目标 ...

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

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

  6. Linux下查看mysql错误日志

    1.进入 mysql 安装目录 进入 data 目录(该目录存储的是数据库的数据) cd  /usr/local/mysql ll 进入 mysql 目录 ,发现 文件后缀 .err,即是mysql ...

  7. 存储Hyper-V虚拟机的硬盘空间不足时的处理

    存储Hyper-V虚拟机的硬盘空间严重不足时的处理   ==先导出虚拟机到空间足够的硬盘,再在空间足够的分区上导入虚拟机 方法如下: 导出虚拟机: 导出之前,我们先删除不需要的快照. 在Hyper-V ...

  8. NOIp模拟赛二十八

    (这是NOIp模拟赛?应该是NOI模拟赛不小心加了个p) 嗯,假装这是正经的NOIp模拟赛,从今天开始也写写题解吧(这几天被虐的惨惨) 今日情况:8+50+0=58 A题输出样例,B题正解写挂,C题不 ...

  9. linux 系统相关命令

    说明:此篇以 Debian ( ubuntu16.04 ) 命令为例 1. tab键默认是不能自动补全命令 apt install bash-completion // 安装完成之后重启系统 2. 虚 ...

  10. 面试题——ArrayList和LinkedList的区别

    List概括 先回顾一下List在Collection的框架图: 从图中可以看出: List是一个接口,他继承Collection接口,代表有序的队列. AbstractList是一个抽象类, ,它继 ...