BLE CS Event & Subevent定义:
BLE CS Event事件定义为:CS 事件被定义为从同一个 LE piconet 物理通道连接事件锚点具有相同偏移Offset的所有 CS Subevent子事件组,如图 1所示,具体参考Vol 1, Part A 3.3.2.5.2 Characteristics。
图 1 与连接Anchor Point具有相同Offset的CS Event时序图
BLE CS Subevent定义为:由一组相关BLE CS Steps汇总而成的Steps组合,Subevent与Event的关系,如下图所示,具体参考:Vol 1, Part A 3.3.2.5.2 Characteristics。
图 2 多个CS子事件组合成为一个CS事件
与BLE CS Event & Subevent相关的参数及设置
BLE CS过程中,与CS Event & Subevent相关的参数有如下几个:
- T_SUBEVENT_LEN:CS Subevent的最大时间跨度,以625us作为步进单位,对应LL_CS_IND中的Subevent_Len;
- T_EVENT_OFFSET:LE连接时间锚点与CS Event起始时间之间的时间间隔,单位为us,对应LL_CS_IND中的Offset;
- T_EVENT_INTERVAL:以LE连接事件间隔作为单位,描述两个CS Event之间的间隔,对应LL_CS_IND中的Event_Interval;
- T_SUBEVENT_INTERVAL:相同CS Event内,两个连续Subevent之间的时间间隔,单位为625us, 对应LL_CS_IND中的Subevent_Interval;
- N_SUBEVENTS_PER_EVENT:在单个CS Event内,CS Subevent的数量, 对应LL_CS_IND中的Subevent_Per_Event;
上述BLE CS中关于Event和Subevent的参数,CS双方需要经过LL_CS_REQ和LL_CS_RSP进行协商后,最终由LL_CS_IND中给出最终协商后执行的结果。
图 3 LL_CS_IND中给出BLE CS双方协商后的Event和Subevent结果
图 1给出了T_EVENT_INTERVAL=1情况下的CS Event运行情况,可以发现,每个连接事件内部,存在一个CS Event。而T_EVENT_OFFSET是每个Event离连接事件Anchor Point之间的时间偏差。而T_EVENT_INTERVAL设置大于1时,代表一次CS Event可能会占用多个连接事件基本单位。
在一个CS Event中,又存在多个Subevent,如图 2所示。CS Event中的第一个Subevent需要满足与Anchor Point存在T_EVENT_OFFSET的时间偏差,而后续subevent的起始时间需要保持T_SUBEVENT_INTERVAL的时间间隔。T_SUBEVENT_INTERVAL的最小设定需要大于等于T_SUBEVENT_LEN+T_MES。T_MES是两个subevent末尾和起始之间的间隔,规范设定为150us,具体可以参考Vol 6, Part B 4.1.4 Minimum Channel Sounding subevent space。同样,CS Subevent可以跨越LE的连接间隔。
图 4 规范中明确的BLE CS Subevent最小间隔
上述参数确定之后,就可以确定一个BLE CS过程中存在多少个CS Event,也能确定一个CS Event中存在多少个Subevent,同时也设定了每个Event离连接Anchor Point的具体offset时间。这样,BLE CS双方就可以实现Subevent级别是时间同步。另外需要注意的是,协议中规范了每个BLE CS过程中,最多只能包含N_MAX_SUBEVENTS_PER_PROCEDURE个CS Subevent,该值在目前协议中为32。换句话说,一个CS Procedure中有多个Event,一个Event中又有多个Subevent,但是在同一个Procedure中,最多包含的Subevent数量为32个。