Open chenyingchun0312 opened 2 years ago
The CIG_Sync_Delay parameter is the maximum time, in microseconds(微秒), for transmission of PDUs of all CISes in a CIG in a CIG event
这个值是由Client端的Controller计算,通过HCI Event (HCI_LE_CIS_Established) 通知Host,并且通过LMP命令(LL_CIS_IND)通知Server端。Client端的HOST会根据这个值计算CIG Sync Point的位置,在这个位置读取SDU使得传输延时(Transport Latency)最小。
HCI_LE_CIS_Established
LL_CIS_IND
HCI_LE_CIS_Established 该HCI事件,标志着有一个CIS建立成功,该HCI事件由Master和Slave端的Controller产生的
一个CIG event由多个CIS event组成,CIG event的开始是从earliest CIS event开始,从latest CIS event结束
CIG event
CIS event
earliest CIS event
latest CIS event
master的链路层(LL)需要提供一些参数给到Slave的链路层,这些参数的作用是:应用层,数据流的同步
CIG_Sync_Delay从CIG reference point 开始,到CIG syncronization point结束
CIG_Sync_Delay
CIG reference point
CIG syncronization point
注意:CIG_Sync_Delay不可以小于最大可能设置的一个CIS event的时间。
每一个CIG Event需要有一个CIG参考点CIG reference point 和CIG同步点 CIG syncronization point,每一个CIG event的开始点不能早于CIG参考点,结束点不能晚于CIG同步点
CIG Event
CIS_Sync_Dealy 从CIG event的起始点开始,到CIG syncronization point结束
CIS_Sync_Dealy
一个CIS event的最大值为
(NSE -1) * Sub_Interval + MPTm + T_IFS + MPTs
在每一个CIS event中的Subevent的最大数量
一个BIG event中BIS event的排序有两种方式,一种是Sequential(顺序的),和Interleaved(交织的)顺序和交织,指的是BIS的顺序,比如按照BIS1->BIS1->BIS2->BIS2这种就叫做顺序的,BIS1->BIS2->BIS1->BIS2叫做交织的。
Sequential
Interleaved
1. BIS1 事件1 子事件1 2. BIS1 事件1 子事件2 3. BIS2 事件1 子事件1 4. BIS2 事件1 子事件2 5. BIS1 事件2 子事件1 6. BIS1 事件2 子事件2 7. BIS2 事件2 子事件1 8. BIS2 事件2 子事件2
1. BIS1 事件1 子事件1 3. BIS2 事件1 子事件1 2. BIS1 事件1 子事件2 4. BIS2 事件1 子事件2 5. BIS1 事件2 子事件1 7. BIS2 事件2 子事件1 6. BIS1 事件2 子事件2 8. BIS2 事件2 子事件2
Boardcast Sink端的链路层不会上报计算BIG_Sync_Delay相关的参数值,但是会上报一个Transport_Latency的值,以及一些相关参数,并且通过这个Transport_Latency得值及相关参数(下面第一行),推算出BIG_Sync_Delay值
BIG_Sync_Delay
Transport_Latency = BIG_Sync_Delay + PTO × (NSE ÷ BN – IRC) × ISO_Interval +// 实际上报的参数 ((ISO_Interval ÷ SDU interval)-1) × SDU interval // 实际上LL上报的值中不包含这一行
一个BIG event 有多个BIS event组成,链路层仅在每一个BIS event内进行数据传输
BIG event
BIS event
相关参数的SPEC介绍,请查看《Core_v5.2.pdf》的第2968页
The BIG_Sync_Delay parameter is the maximum time, in microseconds, for transmission of PDUs of all BISes in a BIG event
BISes 表示多个BIS event,这里 BIG_Sync_Delay 表示在一个BIG event中,传输完所有的BIS event所需要的时间,单位是毫秒
BIG_Sync_Delay的值由Broadcast Source端的链路管理层计算,通过HCI Event HCI_LE_Create_BIG_Complete通知Host, 通过周期广播包AUX_SYNC_IND通知Broadcast Sink端。该广播包并不是直接包含了BIG_Sync_Delay这个参数,而是它的计算参数
HCI_LE_Create_BIG_Complete
AUX_SYNC_IND
BIG_Sync_Delay = (Num_BIS – 1) × BIS_Spacing + (NSE – 1) × Sub_Interval + MPT.
这些参数的详细含义参考
在一个BIG Event中的BIS的总个数,比如下面这样的,就是一把BIG event中有4个BIS event
是一个BIG event 中相邻两个BIS event(BIS1和BIS2)开始时间的差值,也是最后一个BIS event 开始到 Control subevent开始之间的时间。
注意一下“相邻”两个字的含义,所谓相邻,是指BIS1和BIS2之间。每一个BIS都可能存在多个Sub event,即BIS1.1, BIS1.2等等。
表示同一个BIS,同一个Event,不同Subevent之间的差值
两个邻近(adjacent)的BIG的锚点(开始的点)之间的差值
BIG中的每一个BIS event中,所携带的数据单元的最大长度,范围是0~251
一个BIG中所所携带的数据单元的最大长度,范围是1-4095
SDU的英文全称:Service Data Unit,是一个包含同步数据流(音频流,ISO)的数据包(packet)
NSE
IRC * BN
BN
Unsupported Feature or Parameter
Pixel7、三星S23
LE AUDIO
LE AUDIO介绍
基本术语
CIG基本介绍
CIG参数介绍
CIG_Sync_Delay
The CIG_Sync_Delay parameter is the maximum time, in microseconds(微秒), for transmission of PDUs of all CISes in a CIG in a CIG event
这个值是由Client端的Controller计算,通过HCI Event (
HCI_LE_CIS_Established
) 通知Host,并且通过LMP命令(LL_CIS_IND
)通知Server端。Client端的HOST会根据这个值计算CIG Sync Point的位置,在这个位置读取SDU使得传输延时(Transport Latency)最小。HCI_LE_CIS_Established
该HCI事件,标志着有一个CIS建立成功,该HCI事件由Master和Slave端的Controller产生的一个
CIG event
由多个CIS event
组成,CIG event
的开始是从earliest CIS event
开始,从latest CIS event
结束master的链路层(LL)需要提供一些参数给到Slave的链路层,这些参数的作用是:应用层,数据流的同步
CIG_Sync_Delay
从CIG reference point
开始,到CIG syncronization point
结束CIG reference point
CIG Sync Point
每一个
CIG Event
需要有一个CIG参考点CIG reference point
和CIG同步点CIG syncronization point
,每一个CIG event
的开始点不能早于CIG参考点,结束点不能晚于CIG同步点CIS_Sync_Delay
CIS_Sync_Dealy
从CIG event
的起始点开始,到CIG syncronization point
结束一个
CIS event
的最大值为NSE
在每一个CIS event中的Subevent的最大数量
BIG基本介绍
一个BIG event中BIS event的排序有两种方式,一种是
Sequential
(顺序的),和Interleaved
(交织的)顺序和交织,指的是BIS的顺序,比如按照BIS1->BIS1->BIS2->BIS2这种就叫做顺序的,BIS1->BIS2->BIS1->BIS2叫做交织的。Boardcast Sink端的链路层不会上报计算
BIG_Sync_Delay
相关的参数值,但是会上报一个Transport_Latency的值,以及一些相关参数,并且通过这个Transport_Latency得值及相关参数(下面第一行),推算出BIG_Sync_Delay
值一个
BIG event
有多个BIS event
组成,链路层仅在每一个BIS event
内进行数据传输BIG参数介绍
相关参数的SPEC介绍,请查看《Core_v5.2.pdf》的第2968页
BIG_Sync_Delay
The
BIG_Sync_Delay
parameter is the maximum time, in microseconds, for transmission of PDUs of all BISes in a BIG eventBISes 表示多个BIS event,这里
BIG_Sync_Delay
表示在一个BIG event中,传输完所有的BIS event所需要的时间,单位是毫秒BIG_Sync_Delay
的值由Broadcast Source端的链路管理层计算,通过HCI EventHCI_LE_Create_BIG_Complete
通知Host, 通过周期广播包AUX_SYNC_IND
通知Broadcast Sink端。该广播包并不是直接包含了BIG_Sync_Delay
这个参数,而是它的计算参数这些参数的详细含义参考
MPT
Num_BIS
在一个BIG Event中的BIS的总个数,比如下面这样的,就是一把BIG event中有4个BIS event
BIS_Spacing
是一个BIG event 中相邻两个BIS event(BIS1和BIS2)开始时间的差值,也是最后一个BIS event 开始到 Control subevent开始之间的时间。
Sub_Interval
表示同一个BIS,同一个Event,不同Subevent之间的差值
ISO_Interval
两个邻近(adjacent)的BIG的锚点(开始的点)之间的差值
Max_PDU
BIG中的每一个BIS event中,所携带的数据单元的最大长度,范围是0~251
Max_SDU
一个BIG中所所携带的数据单元的最大长度,范围是1-4095
SDU的英文全称:Service Data Unit,是一个包含同步数据流(音频流,ISO)的数据包(packet)
NSE
NSE
是Number of SubEvents的简写,表示在每一个BIS event中的subevents的个数,NSE
的值需要大于或者等于IRC * BN
NSE
的值不是BN
的整数倍,或者NSE
小于IRC * BN
,那么Controller必须返回Unsupported Feature or Parameter
的错误码