目录
一、LE Audio CIS建立连接使用的命令以及数据包格式
一、LE Audio CIS建立连接使用的命令以及数据包格式
1. LE Audio CIS建立连接使用的命令如下
命令 |
---|
LL_CIS_REQ |
LL_CIS_RSP |
LL_CIS_IND |
2. LL_CIS_REQ数据包格式
LL_CIS_REQ PDU | ||||||||||
LSB | MSB | |||||||||
Header(16 bits or 24 bits) | Payload | MIC (32 bits) | ||||||||
LLID (2bits) | NESN (1bit) | SN (1bit) | MD (1bit) | CP (1bit) | RFU (2bits) | Length (8 bits) | CTEInfo (8 bits) (no use) | opcode (0x1F) | CtrData |
-
Header格式如下
注:CTEInfo和MIC是可选的部分,LL_CIS_REQ没有CTEInfo。
-
Payload格式
opcode:0x1F
CtrData格式如下图:
每个位域详细描述:
位域 | 描述 |
CIG_ID | Connected Isochronous Group index |
CIS_ID | Connected Isochronous Stream index,在一个CIG中最多支持31个CIS |
PHY_C_To_P | 从中央设备(Central)到外围设备(Peripheral)方向应使用的PHY |
PHY_P_To_C | 从外围设备(Peripheral)到中央设备(Central)方向应使用的PHY |
Max_SDU_C_To_P | 中央设备的Host发送SDU的最大长度,以字节为单位 |
Framed | 0:指示使用Unframed Data PDUs 1:指示使用Framed Data PDUs |
Max_SDU_P_To_C | 外围设备的Host发送SDU的最大长度,以字节为单位 |
SDU_Interval_C_To_P | 中央设备的Host发送连续两个SDU的时间间隔,以毫秒为单位 |
SDU_Interval_P_To_C | 外围设备的Host发送连续两个SDU的时间间隔,以毫秒为单位 |
Max_PDU_C_To_P | 中央设备发送的最大有效载荷大小,以字节为单位。取值范围0~251字节 |
Max_PDU_P_To_C | 外围设备发送的最大有效载荷大小,以字节为单位。取值范围0~251字节 |
NSE | 每个CIS事件中的最大子事件数。该值应介于1和31之间。 |
Sub_Interval | 在同一CIS事件中,该CIS的一个子事件开始到下一个子事件开始之间的时间,单位为微秒。如果NSE字段设置为1,则该值设置为0,否则至少为400µs,且小于ISO_Interval。 |
BN_C_To_P | 从中央设备到外围设备使用的BN参数值,该值应介于0到15之间。BN: Burst Number |
BN_P_To_C | 从外围设备到中央设备使用的BN参数值,该值应介于0到15之间。BN: Burst Number |
FT_C_To_P | 从中央设备到外围设备所使用的FT参数值,该值应介于1到255之间。FT:Flush Timeout |
FT_P_To_C | 从外围设备到中央设备所使用的FT参数值,该值应介于1到255之间。FT:Flush Timeout |
ISO_Interval | 两个连续的CIS锚点之间的时间,以单位为1.25ms为单位。该值应在4和3200之间(即5ms至4s)。 |
CIS_Offset_Min | 建议的最小时间,以微秒为单位,在连接事件计数器等于connEventCount的连接事件的ACL锚点与第一个CIS锚点之间。该值应至少为500µs。 |
CIS_Offset_Max | 连接事件的ACL锚点与连接事件计数器等于connEventCount和第一个CIS锚点之间的建议最大时间,以微秒为单位。该值应大于或等于CIS_Offset_Min,小于(connInterval - (NSE - 1) × Sub_Interval + MPT_C + T_IFS + MPT_P + T_MSS)),其中MPT_C和MPT_P在第4.5.13.1节中定义。对于CIG中的第一个CIS,其应小于(connInterval -(CIG_Sync_Delay + T_MSS))。 |
connEventCount | 满足需求的连接事件计数器的值,currEvent - 2^14 < connEventCount < currEvent + 2^14 (module 65536), 其中currEvent是包含传输或重新传输该字段的PDU的连接事件的计数器值。connEventCount应设置为大于第一次传输LL_CIS_REQ PDU的currEvent的值 |
3. LL_CIS_RSP数据包格式
LL_CIS_RSP PDU | ||||||||||
LSB | MSB | |||||||||
Header(16 bits or 24 bits) | Payload | MIC (32 bits) | ||||||||
LLID (2bits) | NESN (1bit) | SN (1bit) | MD (1bit) | CP (1bit) | RFU (2bits) | Length (8 bits) | CTEInfo (8 bits) (no use) | opcode (0x20) | CtrData |
Header格式与LL_CIS_REQ相同不再赘述,CtrData中参数与LL_CIS_REQ参数有相同的部分不再赘述,CtrData格式如下图所示:
4. LL_CIS_IND数据包格式
LL_CIS_IND PDU | ||||||||||
LSB | MSB | |||||||||
Header(16 bits or 24 bits) | Payload | MIC (32 bits) | ||||||||
LLID (2bits) | NESN (1bit) | SN (1bit) | MD (1bit) | CP (1bit) | RFU (2bits) | Length (8 bits) | CTEInfo (8 bits) (no use) | opcode (0x21) | CtrData |
Header格式与LL_CIS_REQ相同不再赘述,CtrData格式如下图所示:
每个位域详细描述:
位域 | 描述 |
AA | Access Address, 由Link Layer生成的CIS访问地址 |
CIS_Offset | 从connEventCount的ACL 锚点开始到第一个 CIS 锚点的时间。(以微秒为单位) |
CIG_Sync_Delay | CIG同步延时 |
CIS_Sync_Delay | CIS同步延时 |
connEventCount | 在ACL的第connEventCount时间后开始发送CIS数据 |
二、LE Audio CIS连接流程
1. LE Audio CIS连接时序图
2. LE Audio CIS连接流程举例
已建立了LE ACL连接,ConnInterval = 60ms,准备在CIG_ID=1的CIG中创建两个CIS,分别为CIS_ID=0和CIS_ID=1。
-
CIS连接建立命令交互时序
LL_CIS_REQ命令参数一览表
参数名 | CIS0的参数值 | CIS1的参数值 |
LLID | Control Packet | |
NSEN | 1 | |
SN | 1 | |
MD | 0 | |
CP | 0 | |
Payload Data Length | 40 | |
Opcode | LL_CIS_REQ(0x1F) | |
CIG_ID | 1 | |
CIS_ID | 1 | 2 |
Master to Slave PHY | LE 2M | |
Slave to Master PHY | LE 2M | |
Master to Slave Max SDU Size | 120 | |
Framed | Unframed(0) | |
Slave to Master Max SDU Size | 0 | |
Master to Slave Max SDU Interval | 10ms | |
Slave to Master Max SDU Interval | 10ms | |
Master to Slave Max PDU Size | 120 | |
Slave to Master Max PDU Size | 0 | |
Number of SubEvents | 3 | |
Sub Interval | 894us | |
Master to Slave Burst Number | 1 | |
Slave to Master Burst Number | 0 | |
Master to Slave Flush Timeout | 1 | |
Slave to Master Flush Timeout | 1 | |
ISO Interval | 10ms | |
CIS Offset Min | 3.125ms | 4.245ms |
CIS Offset Max | 3.125ms | 4.245ms |
Connection Event Counter | 307 | 460 |
LL_CIS_RSP命令参数一览表
参数 | CIS0参数值 | CIS1参数值 |
LLID | Control Packet | |
NSEN | 1 | |
SN | 0 | |
MD | 0 | |
CP | 0 | |
Payload Data Length | 13 | |
Opcode | LL_CIS_RSP(0x20) | |
CIS Offset Min | 3.125ms | 4.245ms |
CIS Offset Max | 3.125ms | 4.245ms |
Connection Event Counter | 307 | 460 |
LL_CIS_IND命令参数一览表
参数 | CIS0参数值 | CIS1参数值 |
LLID | Control Packet | |
NSEN | 1 | |
SN | 1 | |
MD | 0 | |
CP | 0 | |
Payload Data Length | 20 | |
Opcode | LL_CIS_IND(0x21) | |
Access Address | 0x12345678 | 0x87654321 |
CIS Offset | 3.125ms | 4.245ms |
CIG Sync Delay | 5.364ms | 5.364ms |
CIS Sync Delay | 5.364ms | 2.682ms |
Connection Event Counter | 307 | 460 |
-
CIS连接成功后第一次发送CIS数据包时序
总结:
综上所述为CIS连接和通信过程,以及通信过程中使用到的各个参数。