2004-06-22 06:54:22

by Albert Huang

[permalink] [raw]
Subject: [Bluez-devel] inquiry scan mode and page scan mode questions

Hello,

I am trying to understand the bluetooth spec. Any and all help on
these questions is greatly appreciated. My reference is the 1.1 spec
available at http://www.bluetooth.org/spec

My immediate goal is to understand why 10.24 s is the recommended
duration for an inquiry, and to see if it's possible to decrease the
average time to discover a bluetooth device. All devices are usb
bluetooth hosted on linux machines running bluez.

Is it possible, using bluez, to control how much time a device spends
in inquiry scan mode and page scan mode? I never want to establish an
acl or sco connection to the device, just detect it and scan its name.
If I can configure the device to spend most of its time in inquiry
scan mode, will this decrease the average inquiry response time? What
portion of its time does an idle bluetooth device typically spend in
inquiry scan mode?

In section 10.7.2 - Inquiry Scan, the spec says "the receiver scans
for the inquiry access code long enough to completely scan for 16
frequencies". Does this mean that it listens on one frequency at
least long enough for an inquiring device to hop frequencies 16 times?

Assuming an error-free environment, if a device A enters inquiry scan
mode and stays there, why might an inquiring device B not detect A
within a few seconds? I'm having trouble understanding this part of
the specification (10.7.3 Inquiry):

"Like in the page substate, two 10 ms trains A and B are defined,
splitting the 32 frequencies of the inquiry hopping sequence into two
16-hop parts. A single train must be repeated for at least
Ninquiry=256 times before a new train is used. In order to collect all
responses in an error-free environment, at least three train switches
must have taken place."

I am going to paraphrase this as I understand it. Please correct me
where I am wrong. The 32 frequencies are split into two
non-overlapping sequences A and B of 16 channels each. Initial
inquiries are transmitted only on the 16 channels of sequence A.
After sequence A has been iterated through at least 256 times (2.56
seconds), the inquiry switches to sequence B and iterates through
those channels for the same amount of time. Both sequences are
repeated once each for a total of 2.56*4 = 10.24 s.

Why must three train switches take place? Why split the inquiry
channels into two sets and not just hop pseudorandomly through all 32
channels?


I apologize for so many general bluetooth questions that aren't
specific to bluez, but I haven't been able to find anyone able to
answer them at all. None of the bluetooth material I've been reading
goes into enough depth to explain these questions either, as they are
mostly concerned with application-level bluetooth programming.

Thanks in advance,
Albert


-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit http://www.blackhat.com
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel