目录
BLE CS 过程定义:
BLE CS 过程的组成部分
开始一个BLE CS 过程
与BLE CS过程相关的参数设置
BLE CS 过程定义:
BLE 的CS特性包含一组LL层和空口协议的组合过程,该过程可以使得两个BLE 设备以紧密互锁的方式,在多个信道上交互RF信息(相位信息),这种交互过程被定义为BLE CS过程(Procedure)[Vol 1, Part A 9.1 Channel Sounding procedure]。
BLE CS 过程的组成部分
一个CS过程包含CS 事件(Event),子事件(Subevent)和步骤(Step)。
一个CS过程可以包含一个或者多个CS事件。而一个CS事件又可以包含一个或者多个子事件。在CS事件中又划分出子事件的主要目的一方面是为了避免在一个固定设备上占用较长的嵌入式物理资源,例如在子事件间隙BLE设备可以处理其他响应信息;另外一方面使得CS过程与需要硬件RF资源的其他技术可以共享共存。
一个CS子事件包含大于等于两个CS步骤。每个CS子事件的第一个CS步骤是为了该子事件后续步骤提供校准信息(主要是即时的频偏误差)。而每个CS步骤必须以T_FCS时间作为起始,该T_FCS时间主要用于两个BLE设备在规定的时间内完成跳频并稳定载波输出。
一个BLE CS过程中各个组成部分的层次机构如图1所示。
图 1 BLE CS过程中Procedure/Event/Subevent/Step层次结构图
开始一个BLE CS 过程
当BLE设备进入连接态,分别变为中心设备(Central role)和周边设备(Peripheral role)。而这两种设备都可以配置成CS过程中的Initiator设备或者reflector设备。BLE CS过程中Initiator还是reflector角色的设定,通过LE CS Create Config完成,具体参考Vol 4, Part E, 7.8.137 LE CS Create Config command。
此时中心或者周边设备都可以发起一个BLE CS 过程,仅需要任意设备在连接态发送LL_CS_REQ类型PDU。当然,前提条件是双方已经为BLE CS过程完成了相应的一些必要配置或者交互,例如已经完成CS Capability Exchange,CS Configuration,FAE table等,具体可以参考Vol 6, Part B 5.1.26 Channel Sounding Start procedure。
当BLE进入连接态后的Central设备,只要收到LL_CS_REQ或者LL_CS_RSP数据包,那么当该Central设备回复LL_CS_IND数据包后就直接进入BLE CS过程。并且当前BLE CS过程的第一个子事件的时间锚点(anchor point),就是包含LL_CS_IND数据包的连接事件。
与BLE CS过程相关的参数设置
BLE CS设备建立连接后,通过CS技术获得设备间的距离。标准中允许设备间运行多次CS过程,这样可以通过平均的方式获得跟高的定位进度,或者动态更新设备间的间距。
Bluetooth规范中,与BLE CS过程相关的用户可配置参数,主要是T_PROCEDURE_INTERVAL和N_PROCEDURE_COUNT,其中:
- T_PROCEDURE_INTERVAL:以包含LL_CS_IND数据包的连接事件作为锚点,规范BLE CS过程的间隔;需要注意的是BLE CS过程的间隔不是以绝对时间作为间隔,而是以连接间隔作为计数单位规范每个BLE CS 过程内拥有的连接间隔数量;
- N_PROCEDURE_COUNT:说明此次发起的BLE CS具体包含几次CS过程;
- Max_Procedure_Len: 说明了每个BLE CS过程的最大时间,也就是每次BLE CS过程的最大时间间隔;需要注意的是,该时间间隔不是每次BLE CS过程的实际运行时间长度。具体每次CS过程的具体运行时间长度,会在BLE CS过程中具体明确。
下图给出了T_PROCEDURE_INTERVAL=4和N_PROCEDURE_COUNT=4的时序图,每次BLE CS过程的时间长度,都需要小于设定的Max_Procedure_Len参数。
图 2 多次BLE CS过程示意
与BLE CS过程相关的三个参数,本地设备通过LE CS Set Procedure Parameters完成设置,然后通过LL_CS_REQ数据包对BLE CS双方设备完成约定。
本地设备通过LE CS Set Procedure Parameters设置具体BLE CS过程的参数如下图所示,其中包含Max_Procedure_Len,Min_Procedure_Interval,Max_Procedure_Interval和Max_Procedure_Count这四个参数。需要注意的是,BLE CS过程参数设置需要指定Config_ID,换句话说,BLE CS设备可以设定不同CS具体参数,并以Config_ID作为区分。实际BLE CS使用的具体哪个Config_ID的配置,可以在BLE CS使能时,具体明确Config_ID号即可。另外,上述参数仅代表当前用户希望实现BLE CS过程能够分配到的BLE CS过程间隔范围和BLE CS过程个数,实际当前Config_ID能够分配到的具体参数,由当前设备根据资源情况分配后确定。
图 3 LE CS Set Procedure Parameters中CS过程相关参数配置
当前BLE CS设备分配完成具体BLE CS过程相关参数后,通过LL_CS_REQ数据包完成BLE CS设备间的约定,如下图所示。
图 4 与BLE CS过程相关的参数约定
- Max_Procedure_Len:约定当前Config_ID下BLE CS过程最长占用时间,单位为625us,可以设置的时间范围为0.625ms~40.959375s;
- Procedure_Interval:约定当前Config_ID下BLE CS过程的间隔,以当前BLE CS双方连接态的连接间隔作为单位,可以设置的范围为0~65535。该参数对应图2中的T_PROCEDURE_INTERVAL。如果当前Config_ID下BLE CS过程仅运行一次,那么Procedure_Interval参数可以设置为0;
- Procedure_Count:约定当前Config_ID下BLE CS过程连续运行次数,可以设置的范围为0~65535。该参数对应图2中的N_PROCEDURE_COUNT。需要注意的是,如果该参数设置为0,那么当前Config_ID下的BLE CS过程将一直重复,直至BLE CS双方命令终止。