[BT & BLE] Piconet时钟调整

1. 范围: BT

2. 协议 :

关于Piconet时钟调整,有两套机制:Coarse CLK Adjustment和CLK Dragging

Coarse CLK Adjustment

首先Master通过LMP_CLK_ADJ包广播给所有的Slave设备,这个LMP包中包含两个参数:CLK_adj_slots和clk_adj_us;clk_adj_slots就是什么修改CLK的Instant点,clk_adj_us就是新CLK与旧CLK之间的间隙,有增负之分。
然后Slave需要LMP_CLK_ADJ_ACK对Master的LMP包进行确认。如果master没有接收到ACK包,需要一直poll包给Slave设备,知道获取ACK信息。如果Slave没有Ack,master至启动Coarse clk adjustment的恢复模式。
Master和slave都会在自己时钟基准偏移加上(clk_adj_slots * 625 + clk_adj_us),如果发生在多包发送slot时,会延续到下一个mast_2_slave的时隙上进行调整。如果role_switch影响了时钟调整,那么时钟调整就会丢弃。时钟调整效果就是所有设备都使用新的时钟域。
举例说明:
1:当clk_adj_instant=12,clk_adj_slot=6, clk_adj_us=400us。那么时间需要往前移动。6625+400=4150us。详见下图:
在这里插入图片描述
2:如果把clk_adj_slots=0,clk_adj_us=-400us。那么时间往后移动:0
625+(-400)=-400us,详见下图:
在这里插入图片描述

CLK Dragging

Master周期性调整时钟基准直到完成目标时间调整,每次调整时间应该小于3us,在任何125ms的周期内,总的调整应该小于等于5us.

LMP空口交互协议

LMP PDU格式介绍
在这里插入图片描述
与其他协议类型。时钟调整可以由master发起,同样也可以由slave发起。
Master发起调整时钟,当然所连接slave都要支持该特性。空口交互如下图:
在这里插入图片描述
Slave发起调整时钟,空口交互如下图:
在这里插入图片描述
如果Master拒绝Slave请求,需回复LMP_NOT_ACCEPTED_EXT,如下图:
在这里插入图片描述

总结

该特性是Core4.1增加的新特性,用于提高共存时,蓝牙和其他无线传输的吞吐。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值