Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Bluetooth протокол

From Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Оригинал: Bluetooth Protocol
Den123
Последнее редактирование: hamishwillee (09 Dec 2011)

Contents

Основные концепции: Piconet

Физические связи создаются по принципу "один ко многим". Одно устройство может выступать в качестве старшего (master) и контролировать до семи младших (slaves) устройств в зоне своего действия. Вместе они образуют небольшую сеть, которую называют Piconet.

В качестве устройства в роли старшего (master) выступает аппарат, который первый осуществил соединение. Master задает часы, последовательность скачков частоты и код доступа для связи. Все устройства, входящие в одну Piconet, используют одну последовательность скачков частоты и синхронизируются с часами старшего устройства.

Чтобы не случилось, аппаратная роль устройства для взаимодействия (старший или младший) остается невидимой для пользователя. Кроме того, один и тот же аппарат может состоять сразу в нескольких сетях Piconet, при этом, в одной сети он может выступать в качестве старшего (master), а в другой сети являться младшим (slave). Благодаря тому, что частота радиосвязи последовательно изменяется, 10 независимых сетей Piconet (или до 80 аппаратов) могут одновременно эффективно передавать данные. При превышении максимального числа аппаратов сеть становится перенасыщенной.

Piconet.png

Диаграмма передачи центра сети Piconet базируется на принципе временного дуплексного разноса (Time Division Duplex - TDD).В первый момент времени пакет данных посылает старшее устройство (master) на частоте f(k), младшее устройство (slave), для которого предназначен этот пакет (и только это устройство), имеет право ответить в определенном временном интервале (в следующий момент времени) после получения, причем ответ должен осуществляться на частотном канале f(k+1).

При получении пакета от старшего устройства, младшие могут синхронизировать свои часы в соответствии с данными для синхронизации (synchronization word), которые находятся на вершине полученного пакета.

Различные типы физических каналов

Возможны два типа соединения:

  • SCO (Synchronous Connection Orientated) - соединение для синхронной передачи данных (например, голоса).
  • ACL (Asynchronous Connection Less) - соединение для асинхронной передачи данных, используется когда не требуется синхронная связь.

SCO каналы используются для передачи голоса - для этого производится симметричное резервирование слотов и устанавливается фиксированное двухточечное соединение между master'ом и slave'ом. Одна сеть Piconet может поддерживать до 3 SCO-соединений, при этом slave может контролировать два исходящих соединения от разных master'ов. Можно использовать голосовые пакеты или смешанные (голос/данные).

ACL используется для организации асинхронного взаимодействия между master'ом и slave'ом (один канал на каждую пару устройств). Могут передаваться только пакеты с данными. Slave может осуществлять передачу только после получения пакета с данными от master'а (использовать следующий слот). Поэтому, master может производить опрос (посылать slave'ам пакеты с данными специального вида ) если не имеет собственных данных для передачи.

Physical channel.png

Управляющие режимы с низким энергопотреблением

Одна из характерных особенностей Bluetooth - это управляющие режимы с низким энергопотреблением. Далее буду описаны различные режимы, представленные в Bluetooth, и как они могут использоваться на примере программы чтения штрих-кодов от компании Baracoda.

Режим Active

В этом режиме модуль Bluetooth активен на канале передачи данных. Старшее устройство (master) регулярно посылает пакеты младшим устройствам (slaves), чтобы предоставить им возможность передать данные master'у, и синхронизироваться с ним. Потребление модуля Bluetooth (во время передачи) составляет около 40мA - 50mм (зависит от результата передачи).

Режим Sniff

Это режим низкого потребления, в котором модуль Bluetooth остается в синхронизированном состоянии в рамках Piconet. Модуль выполняет кратковременное прослушивание Piconet через регулярные интервалы времение (Tsniff). Это позволяет ему пересинхронизироваться в сети и дает возможность посылать или принимать пакеты в краткие моменты активности (Twin). Потребление будет тем ниже, чем дольше интервал Tsniff (сравним с длительность активности). Если длительность интервала Tsniff в районе одной секунды, а продолжительность активности (Twin) в районе нескольких миллисекунд, то потребление составит 1-5% от максимального потребления при передаче (в среднем от 1мA до 5мA).

Baracoda reader обслуживает соединение между двумя последовательными сканированиями. Обычно, по причине потребления, сканер переводит себя в режим Sniff; интервал Tsniff регулярно обновляется между сканером и терминалом, при этом интервал постоянно увеличивается, если не производится сканирование. Преимущество длительного интервала Tsniff - это низкое потребление, недостаток - задержка при посылке штрих-кода. Алгоритм расчета Tsniff, разработанный фирмой Baracoda - это компромисс, который позволяет уменьшить потребление, при этом задержка при осуществлении передачи так же остается небольшой. Алгоритм подстраивает себя под конкретного пользователя на основе статистики сканирования. Режим Sniff поддерживает связь между устройствами и позволяет отказаться от действий, требующих высокого энергопотребления - постоянного опроса (polling)/создания соединения.

Режим Hold

Модуль остается синхронизированным. В этом режиме потребление еще ниже, чем в режиме Sniff. Активным остается только счетчик чипа Bluetooth. По окончанию периода Hold, модуль возвращается в режим Active.

Режим Park

В этом режиме модуль перестает быть активным участником сети Piconet. Тем не менее, модуль остается синхронизированным с мастером и может прослушивать канал для broadcast'ов (Beacon Channel).


Система безопасности Bluetooth

Протокол Bluetooth предусматривает аутентификацию и шифрование связи одновременно. Контроль безопасности осуществляется на низшем уровне протокола. Первый уровень безопасности основан на том, что каждый модуль Bluetooth имеет уникальный MAC - адрес (48 бит). Таким образом, когда сканер Baracoda подключится к терминалу, для которого он предназначен, передача штрих-кода будет выполняется только на это устройство.

Для достижения реальной безопасности системы Bluetooth необходимо использовать два ключа (ключ аутентификации и ключ шифрования), а также регулярно генерируемое случайное число.

1ый этап : Аутентификация. Сканер посылает терминалу величину challenge с помощью которой он желает выполнить соединение и далее посылать расшифрованные штрих-коды. Терминал отвечает на полученный challenge, возвращает ключ связи, доступный между сканером и терминалом.

2ой этап : Шифрование. После того, как аутентификация была успешно проведена между двумя устройствами, связь может быть зашифрована.


Стек профилей протокола Bluetooth

Protocol stack.png

Профили позволяют использовать Bluetooth в конкретных, точно определенных целях и гарантируют корректное взаимодействие между различными устройствами, поддерживающими одинаковые профили.

Некоторые примеры профилей:

  • Headset Profile - беспроводные наушники
  • Serial Port Profile - замена последовательного порта
  • Dial-up Networking Profile (DUN)
  • LAN Access Profile - доступ к локальной сети с помощью точки доступа

Для чтения штрих-кодов, в целях стандартизации, был использован целый ряд профилей, таких как: Serial Port Profile, DUN, HID (Human Interface Device).

Внешние ссылки

Bluetooth protocol

This page was last modified on 9 December 2011, at 02:05.
224 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×