Isochronous Broadcasting state

Summery:

  • 如果链路层能够调度调度HOST请求传输的 BIG,那么Link Layer会在HOST指示时进入同步广播状态。
  • 传输第一包BIG PDU后,LL会通知Host。
  • 在此状态下,Host might先被disable然后enable BIG相关的周期广播。
  • 每个处于ISO Broadcasting state的链路层状态机实例都会广播BIG,这些BIG由1个乃至多个BIS组成,每个BIS携带一个独立的同步数据流。
  • Broadcast Isochronous Stream (BIS)
    • BIS使得设备能够传播同步数据,这些同步数据可以是framed,也可以是unframed。
    • BIS支持变长大小的包长的数据,每个同步event中包含一个或者多个packet,这样BIS支持多种传播速率
    • 因为数据传输是单向的,没有收到回执之类的机制,所以BIS这种传输不reliable,为提高可靠度,BIS支持多重重传。
  • Broadcast Isochronous Group (BIG)
    • BIG要不然就只由一个BIS组成,要不然就由2及以上的有相同的ISO_interval的BIS组成(这些BIS在应用层上有时间关系)。
    • 一个BIG之中最多有31个BIS。BIG中也包含一个control subevent
  • BIG 参数
    • Num_BIS:BIG中BIS的数目。BIG中的每一个BIS都被分配了一个从1到Num_BIS的BIS_Number
    • ISO_Interval 是两个相邻 BIG anchor 之间的时间,最小时间单位为 1.25 ms。spec在 4 到 3200 (即 5 ms 到 4 s)。
    • BIS_Spacing 是 BIG中相邻的BIS的相应的subevent的开始时间的间隔,也是最后一个 BIS 的第一个subevent的开始时间与control event(如果存在)之间的时间。
    • Sub_Interval 表示BIG中的同一个BIS的两个连续的subevent的初始时间的间隔
    • Max_PDU 是 BIG 中每个 BIS 数据 PDU 中可以携带的最大数据octets(如果有MIC则包括MIC)。值在0-251之间。
    • Max_SDU 是此 BIG 上 SDU 的最大大小。该值应介于 1 和 4095 个octets之间。
    • MPT 应等于在用于 BIS 的 PHY 上传输包含具有 Max_PDU 八位字节有效载荷的 BIS Data PDU 的数据包所花费的时间;在 LE 编码的 PHY 上,应假定 S=8 编码。
    • BN、PTO、IRC控制在每个BIG事件中传输哪些数据。BN的值应在1到7之间。PTO的值应在0到15之间。IRC的值应在1到15之间。
    • NSE 是每个 BIG 事件中每个 BIS 的subevent的数量。该值应在 1 到 31 之间,并且应是 BN 的整数倍。
    • Framed表示 BIG 携带framed数据 还是 unframed数据。
    • Encrypted 表示 BIG 是否被加密。 
  • BIG的parameter在BIG的持续时间中不会改变
  • BIG event 
    • 一个 BIG 事件由一个或多个 BIS PDU 组成。链路层应仅在 BIG event中传输 BIS PDU。作为 BIG 事件的一部分,链路层应仅传输 BIS PDU

    • 每个 BIG 事件被分为 Num_BIS 单独的 BIS 事件和一个控制子事件(如果存在)。每个 BIS 事件分为 NSE 子事件。每个 BIS 事件从称为 BIS 锚点的时刻开始,并在其最后一个子事件之后结束。

    • 每个 BIG event在称为 BIG anchor的时刻开始,并在control subevent 之后结束(如果有),否则在最后一个组成 BIS event结束时结束。BIG  anchor应有规律地间隔开,每个anchor间隔ISO_Interval。BIG 中的BIS n 的BIS anchor 在BIG anchor之后应为(n – 1) × BIS_Spacing,因此也有规律地间隔开 ISO_Interval。每个 BIS 的sub_event间隔应为 Sub_Interval。Isochronous Broadcaster 应在下一个 BIG 事件的 BIG anchor之前至少 T_IFS 关闭每个 BIG 事件。图 4.30 显示了带有子事件的 BISevent。
  • 通过适当设置 Sub_Interval 和 BIS_Spacing 参数的值,BIG 中的 BIS 应按顺序排列或交错排列。
  • 如果它们是连续sequential的,则 BIS_Spacing 应大于或等于 NSE × Sub_Interval,因此一个 BIS 事件的所有子事件一起发生。

  • 如果它们是交错interleaved的,则 Sub_Interval 应大于或等于 Num_BIS × BIS_Spacing,因此所有 BIS 的第一个子事件相邻,然后是所有 BIS 的第二个子事件,依此类推。

  • BIG_Sync_Delay和BIG_Control_Offset:

    • BIG event(不包括任何Control Subevent)的数据部分的最大可能长度表示为 BIG_Sync_Delay。

    • BIG_Sync_Delay 的值应等于从anchor到 BIG_Synchronization 点的时间,这是包含在最后一个子事件中传输的 Max_PDU 八位字节有效载荷的数据包结束时的时刻。

    •  BIG_Sync_Delay = (Num_BIS – 1) ×BIS_Spacing + (NSE – 1) × Sub_Interval + MPT

  • 对于不同的IRC,BN,PTO,NSE有不同的数据传输顺序

  • GC = NSE ÷ BN. g [0, GC)

    • If g < IRC,当前的group会包含与当前BIS event的data数据 。

    • If g ≥ IRC, 当前的group会包含与当前包anchor间隔PTO × (g - IRC + 1)包所包含的BIS event的数据

  • Channel indices
    每个包含 BIS PDU 的数据包应在信道选择算法#2指定的信道(channel)索引上传输。

    子事件编号 se_n 应设置为 1 到 NSE 的值,以便对于给定 BIS 上的子事件(一个BIG 中的所有 BIS 应使用相同的值),并为控制子事件设置为 1。 BIG 应包含在 BIGInfo 中。

    当信道映射改变时,它应在 BIG 控制逻辑链路中使用 BIG 信道映射更新程序传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值