蓝牙 5.1新特性解读

1月29日,蓝牙技术联盟(SIG)公布蓝牙5.1标准,为低功耗蓝牙新增位置查找功能,可以实现实时高精度定位。该特性是本次发布的主要内容。桃芯科技将同您一起详细理解一下本次关于高精度定位的更新。

一,我们先看一下传统的蓝牙定位。

我们知道蓝牙目前也有定位的应用,采用的方法是根据蓝牙信号强度RSSI来判断设备的远近,其精度能够到达米级;而且需要至少三个设备一同参与。利用设备到几个AP之间的距离来确定大概位置,如图,该图只显示两个AP,可以想象其实能定出两个点。这对于平面内,对精度不是很敏感的应用是足够的。但是对于有精确定位需求的场景,蓝牙显得就不够了。

二,再来看一看新标准的定义。

新标准提供了两种精确计算蓝牙信号波达方向的方法:波达角(AoA)和发射角(AoD)。AoA里,发送端发送一个固定频率扩展信号(Constant Tone Extension :CTE),接收端接收CTE时按照一定的顺序切换不同的接收天线。AoD里,发送端发送CTE时按照一定的顺序切换不同的发送天线,而接收端只是用一个天线。

1)从流程上看,协议定义了一个CTE请求流程(5.1.12),该流程是设备处于连接态下,主从设备之间对于定位操作的流程。无论主从,都可以发起一个LL_CTE_REQ PDU,要求对方发送CTE,请求的信息包含下图所示内容。

现在有两种方法可以用来测量距离。如果请求包里面AoA类型CTE,那么发送方不需要天线切换,接收方采用天线切换的方法获取接收角;反之如果包含AoD类型CTE,则发送方进行天线切换,而接收方不需要切换天线即可获取发送角。

CTE数据是附加在正常包后面的包含一系列的切换时隙和采样时隙的数据串,可以定义为1us或2us,同时定义从至少16us到最多160us,详细的描述可以参考标准咯。下图是根据AoA和AoD的不同,说明了CTE结构。

2)另外,基于蓝牙5.0的辅助同步广播包(AUX_SYNC_IND),以及他的扩展广播包(AUX_CHAIN_IND),server也可以主动发送CTE,接收者根据需要选择发起定位操作或者忽略。在广播包的Extended Header里面我们可以找到CTEinfo。同样的,根据CTEinfo的内容,我们可以跟连接态一样确定AOA/AoD,以及CTE的长度等等信息。

三,下面以AoA为例,简述信号发送方向的原理和计算方法。

以上是对AoA原理的简单说明,实际中为了提高波达角的估计精度,可以配备多个天线,阵列的排列方式有一字形、环形、球形等多种形式,相应地波达角的计算方法也更复杂。

四,基于该原理,可以规划不同的应用模式。

假设一个通用的情景:AP1和AP2拥有双天线,设备D只有单天线。那么D的定位其实可以通过和AP1以及AP2的夹角计算出来。同样的,这样的定位虽然精确,但依然是个平面的定位,如果需要三维的定位,还得一个AP3来辅助。如下图所示,还是画的平面示意图,也省了AP3。

简单说一下,下图其实剩下的就是数学问题了。根据AoA计算,我们知道了设备和AP之间的夹角 \theta 1以及 \theta 2,结合AP之间的距离DDD,这样就可以得到Device的精确位置信息了。

好了,我们感觉基本说清楚了。当然了如果想做开发,您还得再仔细看看协议。同时根据我们本次的讲解内容,给您留两个思考题。

  1. 根据需求,这种情况下设备D如果也需要主动定位,是否可以实现?
  2. 如果AP1是个多天线,或者说什么样的天线,是否可以只用AP1就实现对所有设备的定位?