经典蓝牙Sniff Mode

Introduction

Sniff mode为两个已连接的经典蓝牙设备提供了有效的降低功耗的方法。我们知道,当没有数据需要传输的时候,两个已连接的蓝牙设备之间也需要每两个slots完成一次POLL packet - NULL packet exchange,以维持ACL连接。Sniff mode通过增加POLL packet - NULL packet exchange的间隔时间(即Sniff Interval)来减少两个设备之间的通信次数,让两个设备可以在间隔时间内进入低功耗状态。
在这里插入图片描述

Sniff mode的具体实现方法是:
两个设备利用LMP Sniff Request PDU协商一个T-sniff参数作为POLL packet - NULL packet exchange的间隔时间,然后进入Sniff mode。

  • 间隔时间到了,Master发出POLL packet。这个时刻称为Anchor Point。
  • Slave在Anchor Point之前从低功耗状态唤醒,准备接收POLL packet。
  • Slave收到POLL packet后,在紧接着的slave-to-master slot发送NULL packet。
  • 如果没有数据需要传输,Slave可以再次进入低功耗状态。
  • 等T-sniff之后,两个设备再次重复上述过程。
    在这里插入图片描述

在实际应用场景种以上方法不能满足可靠性和及时性的需求。为此LMP Sniff Request PDU还会协商以下两个参数:

  • N-sniff attempt —— 由于无线干扰,Master在Anchor Point发出的这一个POLL packet可能不会被Slave收到。为了提高可靠性,Slave可以从Anchor Point开始,监听连续的N-sniff attempt个master-to-slave slots;Master从Anchor Point开始、在每个master-to-slave slot内发送POLL packet,直到Slave回复了NULL packet或者发送POLL packet的次数等于N-sniff attempt才停止发送POLL packet。由于N-sniff attempt包含了在Anchor Point那一次POLL packet发送,所以N-sniff attempt最小值就是1。由于POLL packet只能在master-to-slave slot发送,所以N-sniff attempt最大值为(T-sniff / 2)。
    在这里插入图片描述
  • N-sniff timeout —— 如果Slave在一次POLL packet - NULL packet exchange之后立刻就进入低功耗状态,那么Slave就会错过Master紧接着发送的ACL data,Slave将只能在下一个Anchor Point的时刻才有机会接收Master发送的ACL data了。这就导致了Slave不能及时响应。Slave可以在收到Master发送的ACL packet之后,再持续监听N-sniff timeout个master-to-slave slots,以保证两个设备在进入低功耗状态之前完成任何需要的数据传输。
    在这里插入图片描述
    LMP Sniff Request PDU还有一个参数D-sniff,该参数作为Anchor Point offset,用于Master与多个处于Sniff Mode的Slaves连接的场景。在一个master-to-slave slot内,Master只能向一个特定Slave发送POLL packet。如果还有第二个Slave,Master就必须在另外一个master-to-slave slot内向第二个Slave发送POLL packet。D-sniff就定义了第二个master-to-slave slot的offset。
    在这里插入图片描述

Application

不同的应用对于低功耗和响应时间的要求是不同的。应用可以用HCI_Sniff_Mode command来修改Sniff mode的参数。
在这里插入图片描述
该HCI command并没有直接指定Sniff Interval,即T-sniff,而是设定了Sniff Interval的范围Sniff_Min_Interval ~ Sniff_Max_Interval。Link Manager与对端的Link Manager负责协商出来一个位于该范围内的T-sniff。需要注意Sniff_Max_Interval必须小于Link Supervision Timeout参数。

随着Sniff Interval的增大,功耗并非线性降低。Sniff Interval越大,Slave与Master之间的Clock Drift就越大。Slave在Anchor Point前后需要保持的Rx接收窗口就越大,这就减少了Slave的休眠时间。因此Sniff Interval增大到一定程度之后,再继续增大,功耗降低就很不明显了。一些Bluetooth Profile对Sniff Mode的参数做出了规定并给出了在Latency与Power consumption之间折中的示例,比如HID Profile中的规定:
在这里插入图片描述

Sniff Sub-rating

Sniff Sub-rating (SSR)提供了一种进一步降低功耗的方法。当Link Manager使能了Sniff Sub-rating功能后,蓝牙设备可以在Sniff Mode和Sniff Sub-rating Mode之间转换。SSR允许蓝牙设备使用减少的Sniff Anchor point的数量,进一步降低两个蓝牙设备之间的通信频次。更多详情可以参见Bluetooth SIG官方文档。
在这里插入图片描述

Reference

  1. 4.2.1.5 Sniff Mode, Part A Architecure, Vol 1 Architecture, Mixing and Conventions, Core Spec V5.3
  2. 8.7 SNIFF MODE, Part B Baseband Spec, Vol 2 BR/EDR Controller, Core Spec V5.3
  3. 4.5.3 Sniff mode, Part C Link Manager Protocol Spec, Vol 2 BR/EDR Controller, Core Spec V5.3
  4. 6.1 SNIFF MODE, Part F Message Sequence Charts, Vol 2 BR/EDR Controller, Core Spec V5.3
  5. 7.2.2 Sniff Mode command, Part E Host Controller Interface Functional Spec, Vol 4 Host Controller Interface, Core Spec V5.3
  6. 7.2.14 Sniff Subrating command, Part E Host Controller Interface Functional Spec, Vol 4 Host Controller Interface, Core Spec V5.3
  7. 7.7.37 Sniff Subrating event, Part E Host Controller Interface Functional Spec, Vol 4 Host Controller Interface, Core Spec V5.3
  8. 4.2 Quality of Service, Human Interface Devce(HID) Profile
  9. 4.3 Power Management, Human Interface Devce(HID) Profile
  10. 5.1.8 Support of Low Power Link Modes, Human Interface Devce(HID) Profile
  11. Appendix G Bluetooth HID Power Management Examples, Human Interface Devce(HID) Profile
  12. Appendix J Sniff Subrating Example,Human Interface Device(HID) Profile
  13. White Paper: Bluetooth Master/Slave Communications and Sniff/Sniff Sub-rating Modes
### 回答1: Sniff mode(敏感模式)是蓝牙技术中的一种功耗管理模式。在蓝牙设备中,当设备不需要时时刻刻保持与其他设备的连接时,可以将设备设置为sniff mode以减少功耗。 在sniff mode下,蓝牙设备将进入一种低功耗状态,仍然可以维持与其他设备的连接,但是数据传输速率会降低,从而减少能耗。当然,在sniff mode下,设备对于数据的响应时间也会有所延长。 sniff mode是在蓝牙设备之间进行协商和切换的。当设备处于活跃状态时,设备将保持连接并传输数据。然而,当设备进入闲置状态时,设备可以请求进入sniff mode以减少电池消耗。 通过使用sniff mode蓝牙设备可以在不影响连接的情况下延长设备的电池寿命。这对于那些长时间使用蓝牙连接的设备,如耳机、键盘、鼠标等非常有用。sniff mode具有一定的灵活性,设备可以自行根据需要选择进入sniff mode的时间间隔和持续时间。 总结来说,sniff mode蓝牙设备中的一种低功耗模式,通过降低数据传输速率来减少设备的能耗。这种模式对于需要长时间保持蓝牙连接的设备非常有用,可以延长设备的电池寿命。 ### 回答2: Sniff Mode(嗅探模式)是蓝牙技术中的一种低功耗模式蓝牙技术主要用于无线设备之间的通信,如智能手机、耳机、键盘等。在传统的蓝牙工作模式下,设备需要保持连续的通信连接,这会消耗较高的能量。 而Sniff Mode则是一种节能的操作模式,它在设备之间建立了一个离散的连接,设备可以定期地进入休眠状态,以减少能量的消耗。在Sniff Mode下,设备不需要保持连续的通信,而是定期唤醒以检查是否有需要传输的数据。 通过进入Sniff Mode,设备可以在不影响通信性能的前提下降低功耗。具体来说,设备在Sniff Mode下减少了无线射频传输的时间,从而节省了能量。这对于那些需要长时间运行的蓝牙设备尤为重要,例如蓝牙耳机、蓝牙键盘等。 Sniff Mode不仅可以延长蓝牙设备的续航时间,还可以减少对设备的充电需求,提升用户的使用体验。同时,它也有助于降低蓝牙设备的发热量,减轻了对设备的散热压力。 总之,Sniff Mode是一种低功耗的蓝牙工作模式,通过减少通信时间和设备功耗,延长了设备的电池续航时间,提高了蓝牙设备的使用效率和性能。 ### 回答3: Sniff mode是一种蓝牙设备的功耗控制模式,它可以使设备在空闲或者低活动状态下以较低的功耗工作。 在蓝牙通信过程中,设备通常需要保持运行以便能够接收和发送数据。然而,并非所有时刻都需要设备保持全职工作,有些时候设备可以进入低功耗模式,以节省电能。 Sniff mode就是一种低功耗模式,它允许设备在不频繁通信的情况下进入一种能够降低功耗的睡眠状态。当设备进入Sniff mode时,它会定期唤醒以检查是否有新的通信需求,如果没有,则继续保持在低功耗状态,以延长电池寿命。 通过使设备在低活动状态下降低功耗,Sniff mode可以在蓝牙通信中提供更长的续航时间。这对于一些低功耗设备如蓝牙耳机、智能手表等非常有用,因为它们通常需要长时间的待机和低功耗工作。 然而,值得注意的是,进入Sniff mode可能会延长设备的响应时间,因为设备需要在唤醒后再次建立通信连接。因此,在设备的功耗节省和实时响应之间需要进行权衡。 总而言之,Sniff mode是一种能够在低活动状态下降低蓝牙设备功耗的模式,旨在提供更长的续航时间。这对于低功耗设备的性能和电池寿命至关重要,但需要仔细权衡响应时间和功耗节省之间的平衡。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值