Bluetooth

Bluetooth

В 1994 году начались работы по изучению возможности использования мобильных, сетевых коммуникаций. Компании IBM, Nokia, Intel и Toshiba создали консорциум для разработки стандарта беспроводной связи между ЭВМ посредством устройств с ограниченным радиусом действия. Проект получил название BlueTooth в честь короля Норвегии и Дании Гарольда Голубой Зуб (Harald Blaatand, 940-981 годы). Проект являлся конкурентом стандарта IEEE 802.11 (оба стандарта используют один и тот же частотный диапазон, одни и те же 79 каналов).

Главной его целью являлось удаление любых кабелей из телефонии, а если получится и из локальных сетей. Очевидно, что в нынешнем виде BlueTooth не может вытеснить 802.11 хотя бы из-за ограничений на максимальный размер сети. Но эта технология быстро развивается и трудно предсказать, какое место она займет в самые ближайшие годы. В 1999 году был выдан 1500-страничный документа v1.0. После этого группа стандартизации IEEE взяла этот документ за основу стандарта 802.15 (физический уровень и уровень передачи данных). В 2002 году IEEE утвердил стандарт 802.15.1. Пока стандарт 802.15 и Bluetooth не идентичны, но ожидается их объединение в самом ближайшем будущем. Технология Bluetooth использует нелицензируемый (практически везде кроме России) частотный диапазон 2,4?2,4835ГГц. При этом используются широкие защитные полосы: нижняя граница частотного диапазона составляет 2ГГц, а верхняя – 3,5ГГц. Точность заданий частоты (положение центра спектра) задается с точностью ± 75 кГц. Дрейф частоты в этот интервал не входит. Кодирование сигнала осуществляется по двухуровневой схеме GFSK (Gaussian Frequency Shift Keying). Логическому 0 и 1 соответствуют две разные частоты. В оговоренной частотной полосе выделяется 79 радиоканалов по 1 МГц каждый. В некоторых странах используется меньшее число каналов (например, во Франции – 23). Каждый из каналов структурируется с помощью выделения временных слотов (доменов) длительностью 625 мкс (разделение по времени). По мощности передатчики делятся на три класса: 100мВт (для связи до 100м; 20дБм); 2 мВт (до 10м; 4дБм) и 1 мВт (~10см; 0дБм). Коэффициент модуляции при этом лежит в диапазоне (0,28-0,35). Чувствительность приемника должна быть не хуже 70дБм. BER (Bit Error Rate) для приемника должна находиться на уровне <0,1%. Желательно, чтобы приемник имел индикатор мощности входного сигнала (требование является опционным). Для первого класса предусмотрено регулирование мощности. Регулировка осуществляется на основе анализа числа ошибок. Протокол использует коммутацию каналов и пакетов. Передача данных выполняется с использованием алгоритма доступа Time-Division Duplex Multiple Access. Каждый пакет передается с использованием иного частотного канала по отношению к предыдущему. Производится 1600 переключений частоты в секунду. Последовательность переключения частот определяется BD_ADDR мастера. Скачкообразное переключение частоты отводит на переходные процессы 250-260 мксек. Длительность тика часов мастера равна 312,5 мксек, что определяет частоту часов – 3,2 кГц. Допускается временная неопределенность при приеме, равная ±20мксек. Смотри также http://www.palowireless.com/infotooth/tutorial/radio.asp.

Структура протоколов Bluetooth не следует моделям OSI, TCP/IP и даже 802 (ведутся работы по адаптации Bluetooth к модели IEEE 802). Физический уровень протокола соответствует базовым принципам моделей OSI и 802. Разработчики потратили много усилий, чтобы сделать протокол как можно дешевле для реализации. В среднем временная привязка мастерных пакетов не должна дрейфовать больше чем на 20 10-6 относительно идеальной временной привязки слота в 625мксек. Временной разброс при этом не должен превышать 1 мксек. В спецификации определено 5 уровней: физический, базовый (baseband; смотри http://www.palowireless.com/infotooth/tutorial/baseband.asp), управления каналом LMP (Link Management Protocol; смотри http://www.palowireless.com/infotooth/tutorial/lmp.asp) и L2CAP (Logical Link Control and Adaptation Protocol; смотри http://www.palowireless.com/infotooth/tutorial/l2cap.asp), сетевой и уровень приложений.

На уровне baseband протокола определено 13 типов пакетов. Пакеты ID, NULL, POLL, FHS , DM1 ориентированы на каналы SCO и ACL. Пакеты DH1, AUX1, DM3, DH3, DM5 и DH5 предназначены только для каналов ACL. Кодирование данных в пакетах DM1, DM2 и DM3 осуществляется с привлечением битов четности по алгоритму FEC 2/3 (5 бит управления на 10 бит данных). Форматы пакетов HV1, HV2, HV3 и DV определены только для каналов SCO. Максимальный размер поля данных (341 байт) имеют пакеты DH5. Уровень протокола baseband специфицирует пять логических каналов: LC (Control Channel) и LM (Link Manager) используются на канальном уровне, а UA (User Asynchronous), UI (User Isosynchronous) и US (User Synchronous) служат для асинхронной, изосинхронной и синхронной транспортировки пользовательских данных. Контроллер BlueTooth может работать автономно (Standby) или в режиме соединения. Предусмотрено семь субсостояний, которые используются для добавления клиента или подключения к пикосети: page, page scan, inquiry, inquiry scan, master response, slave response и inquiry response.

Состояние Standby по умолчанию является режимом с пониженным энергопотреблением, при этом работает только внутренний задающий генератор. В состоянии соединения главный узел (master) и клиент (slave) могут обмениваться пакетами, используя код доступа к каналу.

В протоколе baseband предусмотрено три типа схем коррекции ошибок: 1/3 FEC, 2/3 FEC и ARQ.

  • В 1/3 FEC каждый бит повторяется три раза.
  • В 2/3 FEC используется полиномиальный генератор для получения 15-битовых кодов для исходных 10 бит.
  • В схеме ARQ пакеты DM, DH и поле данных пакета DV передаются повторно до тех пор, пока не будет получено подтверждение или не произойдет таймаут. При таймауте возможно продолжение со следующего пакета.

Протоколом baseband рекомендуется использование буферов типа FIFO. Если данные не могут быть приняты, контроллер приема (Link Controller) вставляет в заголовок отклика индикатор stop. Когда передачик получает индикатор stop, он блокирует очереди в FIFO. Получатель может возобновить процесс передачи, послав отправителю индикатор go. Взаимодействие протоколов в рамках Bluetooth показано на рис.1

blue_to1.gif

Рис. 1. Взаимодействие сетевых субуровней в протоколе Bluetooth

Соединение между устройствами присходит следующим образом: если ничего не известно об удаленном устройстве, используются прцедуры inquiry и page. Если некоторая информация о партнере имеется, то достаточно процедуры page.

Этап 1
Процедура inquiry позволяет устройству определить, какие приборы доступны, выяснить адреса и осуществить синхронизацию.
1.1 Посылаются пакеты inquiry и получаются отклики.
1.2 Будем считать, что блок (адресат), получивший пакет inquiry, находится в состоянии inquiry scan (тогда он способен принимать такие пакеты)
1.3 Получатель переходит в состояние inquiry response и посылает отправителю пакет-отклик.

После того как процедура inquiry завершена, соединение может быть установлено с помощью процедуры paging.

Этап 2
Процедура paging реализует соединение. Для осуществления этой процедуры необходим адрес. Устройство, выполняющее процедуру paging, атоматически становится хозяином этого соединения.
2.1 Посылается пакет paging
2.2 Адресат получет этот пакет (находится в состоянии page Scan)
2.3 Получатель посылает отправителю пакет-отклик (находится в состоянии Slave Response)
2.4 Инициатор посылает адресату пакет FHS (находится в состоянии Master Response)
2.5 Получатель посылает отправителю второй пакет-отклик (находится в состоянии Slave Response)
2.6 Получатель и отправитель устанавливают параметры канала заданные инициатором (находятся в состоянии Master Response & Slave Response)

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

Устройство Bluetooth при установлении соединения может работать в четырех режимах: Active, Hold, Sniff и Park

Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru