Ядро системы Bluetooth
Иерархия ядра Bluetooth содержит ряд уровней. Самый низкий – физический уровень. Далее – логический уровень (или Baseband). Наиболее высокий уровень – уровень L2CAP (Протокол управления логическим подключением и адаптацией – Logical Link Control and Adaptation Protocol).
Ядро системы Bluetooth
Физический и логический уровни ядра Bluetooth принято группировать в подсистему, называемую контроллером Bluetooth. Таким образом, контроллер Bluetooth содержит следующие ресурсы: на физическом уровне – приемопередатчик радиочастоты (RF) и на логическом – контроллер соединений (Link Controller), управляющий ресурсами Baseband (Baseband Resource Controller), управляющий соединениями (Link manager), управляющий устройством (Device Manager).
Хост Bluetooth включает наиболее высокий уровень – уровень L2CAP и ряд сервисов. В этом качестве может выступать компьютер, вычислительное устройство, периферийное устройство, мобильный телефон, точка доступа к локальной сети или к сети PSTN (коммутируемая телефонная сеть общего пользования) и т.д. Хост Bluetooth, подключенный к контроллеру Bluetooth, может взаимодействовать с другими хостами Bluetooth, которые также подключены к своим контроллерам Bluetooth. Контроллер Bluetooth и хост Bluetooth взаимодействуют между собой посредством интерфейса HCI (Host Controller Interface).
Интерфейс хост-контроллер Bluetooth
Интерфейс хост-контроллер HCI (Host Controller Interface) Bluetooth обеспечивает командный интерфейс между логическим уровнем (Baseband) и уровнем L2CAP. Этот интерфейс обеспечивает унифицированный метод доступа к ресурсам логического уровня (Baseband).
Протоколы ядра системы Bluetooth
Устройства Bluetooth взаимодействуют между собой по протоколам обмена в соответствии со спецификацией Bluetooth. Протоколы ядра системы Bluetooth – протокол физического уровня (RF), протокол контроллера соединений (LC), протокол управления соединениями (LMP) и адаптированный протокол управления логическими связями (L2CAP). Кроме того, существует протокол обнаружения обслуживания (SDP), необходимый для всех приложений Bluetooth.
Логический уровень (Baseband) ядра системы
Уровень ядра системы Bluetooth, который осуществляет доступ к среде и процедурам физического уровня. Он обеспечивает обмен потоками данных и звуковой информацией в режиме реального времени между устройствами Bluetooth, входящими в пикосеть. Этот уровень предоставляет два различных способа физического подключения — синхронный, ориентированный на соединение (SCO) и асинхронный без установления соединения (ACL).
Синхронное подключение, ориентированное на соединение
Синхронные подключения (связи) с установлением соединения используются для пере-дачи изохронного трафика (например, оцифрованного звука). Это связи типа «точка—точка». Их предварительно устанавливает ведущее устройство с выбранными ведомыми устройствами, и для каждой связи определяется период (в слотах), через который для нее резервируются слоты. Связи получаются симметричные двусторонние. Повторные передачи пакетов в случае ошибок приема не используются.
Асинхронное подключение без установления соединения
Асинхронные подключения (связи) без установления соединения реализуют коммутацию пакетов по схеме «точка—множество точек» между ведущим устройством и одним или несколькими (всеми) ведомыми устройствами пикосети.
Ведущее устройство может связываться с любым из ведомых устройств пикосети в слотах, не занятых под SCO, послав ему пакет и потребовав ответ. Ведомое устройство имеет право на передачу, только получив обращенный к нему запрос ведущего устройства (декодировав при этом свой адрес). Для большинства типов пакетов предусматривается повторная передача в случае обнаружения ошибки приема. Ведущее устройство может посылать и безадресные широковещательные пакеты для всех ведомых устройств своей пикосети.
Bluetooth и стандарты 802, osi, tcp/ip
Структура протоколов 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
Состояние Standby по умолчанию является режимом с пониженным энергопотреблением, при этом работает только внутренний задающий генератор. В состоянии соединения главный узел (master) и клиент (slave) могут обмениваться пакетами, используя код доступа к каналу.
В протоколе baseband предусмотрено три типа схем коррекции ошибок: 1/3 FEC, 2/3 FEC и ARQ.
- В 1/3 FEC каждый бит повторяется три раза.
- В 2/3 FEC используется полиномиальный генератор для получения 15-битовых кодов для исходных 10 бит.
- В схеме ARQ пакеты DM, DH и поле данных пакета DV передаются повторно до тех пор, пока не будет получено подтверждение или не произойдет таймаут. При таймауте возможно продолжение со следующего пакета.
Взаимодействие сетевых субуровней в протоколе Bluetooth
Протоколом baseband рекомендуется использование буферов типа FIFO. Если данные не могут быть приняты, контроллер приема (Link Controller) вставляет в заголовок отклика индикатор stop. Когда передачик получает индикатор stop, он блокирует очереди в FIFO. Получатель может возобновить процесс передачи, послав отправителю индикаторgo. Взаимодействие протоколов в рамках Bluetooth показано на рис.1 Рис. 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, чтобы проверить, синхронизовал ли клиент свои часы и настроился ли на коммутацию частот. Клиент при этом может откликнуться любым пакетом.