86
www.lairdtech.com
Laird Technologies
BTM510/511
Bluetooth
®
Multimedia Module
Figure 3.33: Page and Inquiry Scan Intervals and Windows
8. Sniff Mode
Bluetooth connections are master/slave in nature. A master sends packets and a slave has to
acknowledge that packet in the next timeslot. Timeslots in Bluetooth are 625 microseconds wide.
This implies that a master will always know when packets will be sent and received, which further
means it is able to optimise power usage by switching on power hungry circuitry only when needed.
A slave on the other hand does NOT have prior knowledge of when a packet will be received and has
to assume that a packet will be received from a master on every receive slot. This means that it has to
leave its receiving circuitry on for most of the receive slot duration. The result of this is high power
consumption on slave side. In general, a slave draws about five times the current of a master. This
problem was identified very early in the evolution of Bluetooth (especially since headsets spend all
their time as a slave in a Bluetooth connection) and was solved by having a mode called Sniff;
with appropriate lower layer negotiating protocol.
Sniff mode during connection is basically an agreement between the slave and its master that data
packets will only be exchanged for N timeslots every M slots. The slave can then assume that it will
never be contacted during M-N slots, and so can switch its power hungry circuitry off. The specification
goes further by also specifying a third parameter called ‘timeout’ (T) which specifies ‘extra’ timeslots
that the slave will agree to listen for after receiving a valid data packet. Put another way, if a data
packet is received by the slave, then it knows that it MUST carry on listening for at least T more slots.
If within that T slot time period another data packet is received, then the timer is restarted. This
mechanism ensures low power consumption when there is no data transfer – at the expense of latency.
When there is a lot of data to be transferred, it acts as if sniff mode were not enabled.
It is stated above that during sniff mode, a slave listens for N slots every M slots. The Bluetooth
specification states that a master can have up to seven slaves attached to it with all slaves having
requested varying sniff parameters. It may therefore be impossible to guarantee that each slave
gets the M parameter it requested. In light of this, the protocol for enabling sniff mode specifies
that a requesting peer specify the M parameter as a minimum and maximum value. This will allow
the master to interleave the sniff modes for all slaves attached.
For this reason, the sniff parameters are specified in the BTM module via four S registers. S Register
561 is used to specify ‘N’, S Register 562 is used to specify ‘T’ and S Registers 563/564 are used to
specify minimum ‘M’ and maximum ‘M’ respectively. Although the specification defines these
parameters in terms of timeslots, the S register values have to be specified in units of milliseconds
and the firmware does the necessary translation to timeslots.
Figure 3.34: Sniff Mode Example
AT COMMAND SET
REFERENCE