BLE 设备可以通过传输测向功能的数据包(常说的CTE包),让对端设备获得自己的方向。 使用来自多个发射器的方向信息和提供它们位置的profile-level信息,BLE 设备进而可以计算出自己的位置。

 注意:仅Uncoded PHY 支持此特性。

1. ANGLE OF ARRIVAL (AOA)

BLE 设备可以通过使用单个天线发送带有测向功能的数据包,让对端设备获取方向信息。

由射频开关和天线阵列组成的对端设备在接收部分数据包的同时切换天线并捕获 IQ 样本。 IQ 样本可用于计算使用天线阵列的不同元素接收的无线电信号的相位差,进而可用于估计到达角 (AoA)。

图 1.1 Angle of Arrival method

假设一个接收端的天线阵列由两个天线组成,间隔距离为 d。 发射端设备使用单个天线来发射信号。 如图1.2所示,可以从输入信号波阵面绘制一条垂线,该线延伸到最远天线 (antenna2) 与最近天线(天线 1)的交点。 该直角三角形的相邻边表示相对于两个天线之间该波阵面的入射角的路径差。 到达两个天线的信号的相位差 ψ 为

ψ = (2πd cos(θ))/λ

其中 λ 是信号的波长,θ 是到达角,所以

θ = arccos((ψλ)/(2πd))

注意:距离 d 是接收设备用来计算到达角的profile-level信息

图 1.2 Measuring the angle of arrival

2. ANGLE OF DEPARTURE (AOD)

由 RF 开关和天线阵列组成的设备可以通过传输启用测向功能的数据包、在传输过程中切换天线来检测其偏离角 (AoD)。

对等设备使用单个天线接收这些数据包,并在这些数据包的一部分期间捕获 IQ 样本。 方向的确定基于 LE 无线电信号在天线阵列的发射元件和接收单天线之间的不同传播延迟。 传播延迟可通过 IQ 测量来检测。 任何具有支持 AoD 功能的单天线接收 LE 无线电都可以捕获 IQ 样本,并借助指定发射机天线布局的配置文件信息,计算传入无线电信号的入射角。

图 2.1 Angle of departure method

考虑一个具有天线阵列的发射器设备,该天线阵列由两个天线,相隔距离 d。 接收器设备使用单个天线来接收信号。 来自天线 1 的信号和来自天线 2 的信号到达接收机的相位差 ψ 为

ψ = (2πd cos(θ))/λ

其中 λ 是信号的波长,θ 是出发角,所以

θ = arccos((ψλ)/(2πd))

注意:距离 d 是发送设备与接收设备交换的profile-level信息,以便接收设备计算出发角。

图 2.2 Measuring the angle of departure

参考文献:Core Specification 5.3 – Bluetooth® Technology Website

低功耗蓝牙(BLE)-- 寻向(DIRECTION FINDING)(AOA/AOD)篇相关推荐

  1. java 协议栈_深入浅出讲解低功耗蓝牙(BLE)协议栈

    详解BLE连接建立过程 https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式-兼BLE Link layer协议解析 https://www. ...

  2. 蓝牙:深入浅出低功耗蓝牙(BLE)协议栈

    深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解BLE"连接"?如果BLE协议只有ATT层没有GATT层会发生什么? 协议栈框架 一般而言,我们把某个协议的实 ...

  3. 深入浅出低功耗蓝牙(BLE)协议栈,使用Ubertooth one扫描嗅探低功耗蓝牙

    BLE协议栈为什么要分层?怎么理解BLE"连接"?如果BLE协议只有ATT层没有GATT层会发生什么? 深入浅出低功耗蓝牙BLE协议栈 1. 协议栈框架 2. 如何通过无线发送一个 ...

  4. 低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端

    低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)的支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和 ...

  5. 低功耗蓝牙BLE之连接事件、连接参数和更新方法(程序解读)

    关注公众号"迈微电子研发社",选择"星标★" 低功耗蓝牙BLE之连接参数de更新方法 0. 蓝牙的状态以及基本连接过程 0.1 蓝牙的状态: 0.3 蓝牙的连接 ...

  6. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅④如何在Android开发低功耗蓝牙ble控制 TB-02 模块,代码工程全部开源!(附带Demo)

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小白也痴迷,如 ...

  7. 【Funpack】低功耗蓝牙 BLE 协议架构

    想要开发蓝牙应用,了解蓝牙协议架构是必不可少的.本文以低功耗蓝牙 BLE 为例,简要介绍 BLE 蓝牙协议架构,帮助开发者快速了解蓝牙协议概况. BLE 协议分层 BLE 协议栈主要由如下几部分组成: ...

  8. 经典蓝牙与低功耗蓝牙BLE开发基础知识:服务、特征、属性、UUID

    经典蓝牙和低功耗蓝牙BLE的区别 蓝牙大致被认为是1.0 2.0 3.0 4.0版本,不过现在已经不再用版本号区分蓝牙了,蓝牙1.0~3.0都是经典蓝牙,在塞班系统就已经开始使用了.而蓝牙4.0开始就 ...

  9. 【IoT】加密与安全:CC254x 低功耗蓝牙 BLE 之 AES-128 加密算法

    蓝牙数据是可以通过空中抓包而被抓取到的,因此需要将通信数据进行加密,即使别人截获了加密后的数据,也无法利用该数据. AES 加密原理 CC254x 支持对称加密 AES: 加密过程: 需要加密的数据 ...

  10. Android低功耗蓝牙(BLE)开发(二)

    在上一篇文章Android低功耗蓝牙(BLE)开发(一)中我们了解了BLE的相关概念,这里我们来实际用代码演示安卓进行BLE连接和通讯的功能.本文代码基于Android5.0以上(API 21) 1. ...

最新文章

  1. 42HS48EIS步进闭环电机最大转速
  2. public-private-protected-默认缺省 的区别
  3. EOS 共识机制 (2)DPOS再议
  4. context:annotation-config 跟 context:component-scan诠释及区别
  5. npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...
  6. 项目管理最佳实践方法_项目管理最佳实践,企业如何进行有效的项目管理
  7. 循环删除List集合的错误
  8. ie浏览器在线使用_微软加速反IE战略,超过1000个网站将拒绝渲染
  9. java调用ole ie_SWT中通过Automatioin的方式访问IE(升级版)
  10. 地球物理模型-薄互层-桔灯勘探
  11. C语言冒泡排序代码示例
  12. 应用层下的人脸识别(三):人脸比对
  13. 优质的凉亭 亭子 亭台ps后期素材素材推荐,不容错过
  14. arduino as5048工作原理_普通精度应用的另一种选择——磁性旋转编码器
  15. WebSocket通讯C#实例
  16. android 面部识别解锁,面部识别解锁软件
  17. Ubuntu16-18任务栏、启动器、收藏夹建立快捷图标的方法
  18. html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解
  19. STM32的频率和占空比计算
  20. 老树新芽,在ES6下使用Express

热门文章

  1. heisenberg mysql_GitHub - honeyyz/heisenberg: powerful distributed mysql middleware
  2. 分享下去年底写的分库分表中间件heisenberg
  3. perplexity 衡量指标_困惑度(perplexity)的基本概念及多种模型下的计算(N-gram, 主题模型, 神经网络)...
  4. 发现一个很有趣的事情
  5. 使用html+css实现一个静态页面【传统文化茶带音乐6页】HTML学生个人网站作业设计
  6. Java程序生成一副扑克牌
  7. [经验] 【emWin实战教程V2.0】第8章 emWin5.32模拟器的使用方法
  8. 傲梦python笔试题_关于python的巩固练习
  9. C语言实现单列表删除singly link list deletion(附完整源码)
  10. 作业1-调查市场软件