Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архипкин В.Я. Bluetooth. Технические требования. Практическая реализация. Приложения.doc
Скачиваний:
654
Добавлен:
02.05.2014
Размер:
7.92 Mб
Скачать

2.2.3. Протокол управления связью

Протокол управления связью (Link Manager Protocol — LMP) описывает процеду­ры, использующиеся для установления, защиты и управления линией связи между устройствами Bluetooth. Пакеты LMP не содержат данных пользователя. Раздел LMP включает семь подразделов:

  1. Общий обзор

  2. Формат LMP сообщений

  3. Процедуры и протокольные единицы обмена

  4. Установка соединения

  5. Описание PDU

  6. Режимы тестирования

  7. Обработка ошибок

Общий обзор

LMP сообщения используются для установления, защиты и управления линией связи. Они передаются в полезной информации вместо L2CAP и различаются с по­мощью зарезервированного значения в поле L_CH заголовка полезной информа­ции. LMP сообщения отфильтровываются и не распространяются на высшие уров­ни.

LMP сообщения имеют приоритет над данными пользователя. Это значит, что если LM посылает сообщение, Ь2САР-трафик не будет задерживать это сообще­ние, хотя оно может задерживаться многочисленными повторными передачами baseband-пакетов.

LC не отвечает ни за время, необходимое для доставки сообщения на удаленное устройство, ни за задержки между доставкой сообщения на удаленное устройство и получением отправителем соответствующего уведомления.

Основным содержанием этого раздела является описание установления сеанса связи между парой LM, а не непосредственно LM (рис. 2.22).

Физический уровень i

Рис. 2.22. Роль LMP в процессе установки соединения

Формат LMP сообщений

Протокольные единицы обмена (Protocol Data Units — PDU) LM всегда посыла­ются как однослотовые пакеты, а заголовок полезной информации занимает 1 байт. Два наименее значимых бита в заголовке полезной информации определяют логи­ческий канал. Для протокольных единиц обмена LM этим битам присвоено опреде­ленное значение.

Поле Поток в заголовке полезной информации (см. раздел Baseband, Пакеты) всегда состоит из одного бита и игнорируется на принимающей стороне. Каждой

PDU назначен 7-битный код операции, который используется для того, чтобы од­нозначно определить различные типы PDU. Код операции и однобитный иденти­фикатор транзакции расположены в первом байте тела полезной информации (рис. 2.23). Идентификатор транзакции расположен в наименее значимом бите (LSB). Он равен 0, если PDU принадлежит транзакции, инициированной подчи­ненным устройством. Если PDU содержит один или более параметров, они распо­ложены в полезной информации, начиная со второго байта тела полезной инфор­мации. Количество используемых байтов зависит от длины параметров. Если SCO линия связи представлена с использованием пакетов HV1 и длина содержимого менее 9 байт, PDU могут передаваться в пакетах DV. В противном случае должны использоваться пакеты DM1. Все параметры имеют формат с прямым порядком байт, т.е. первым передается наименее значимый байт.

Источник/пункт назначения PDU определены адресом AM_ADDR в заголовке пакета.

Рис. 2.23. Тело полезной нагрузки при передаче LM PDU

Каждая PDU может быть либо обязательной, либо дополнительной. Админист­ратор связи должен распознавать все дополнительные PDU, которые он принима­ет, и если требуется, посылать соответствующий ответ. Если принятая дополни­тельная PDU не требует ответа, ответ не посылается.

Процедуры и протокольные единицы обмена

Этот раздел является ключевым для специалистов, реализующих нижние уровни протокола Bluetooth. В нем подробно объясняется механизм работы устройства в пикосети. В таблице 2.17 описаны все процедуры.

Таблица 2.17

Процедура

Функция

Общие ответные сообщения

Используются для того, чтобы сообщить инициатору запроса или команды, была ли команда принята — и возможно, выполнена

Аутентификация

Процедура аутентификации, основанная на схеме вызов-ответ, необходима для подтверждения присутствия потенциальных членов пикосети

Сопряжение

Используется, когда два устройства не имеют общего ключа связи или ключа инициализации. Эта процедура создает ключ, основанный на персональном опознавательном номере (Personal Identification Number — PIN) и случайном числе (RAND)

Изменение

ключа связи

Если два устройства соединены, и ключ связи получен из комбинации ключей, линия связи может быть изменена в целях повышения ее защищенности

Изменение текущего ключа связи

Текущий ключ связи может быть полупостоянным ключом связи или временным ключом связи. Замена на временный ключ связи необходима, если пикосеть должна поддерживать зашифрованную радиопередачу, которая в этом случае позволила бы иметь общий ключ связи для всех членов пикосети

Кодирование

Начинает процесс кодирования. Кодирование может использоваться, если была выполнена хотя бы одна аутентификация

Запрос смещения часов

Если подчиненное устройство получает FHS пакет, то всегда вычисляется разница между его собственными часами и часами мастера. Этот запрос заставляет подчиненное устройство включить эту разницу в полезную информацию FHS пакета, таким образом, мастер знает на каком частотном канале подчиненное устройство «просыпается» в режиме Ожидание вызова после того, как оно покинуло пикосеть

Информация о смещении слота

Ответ на Запрос смещения часов

Запрос информации 0 точности синхронизации

Возвращенные параметры точности синхронизации — это долговременный дрейф, измеренный в ррш и длительные колебания, измеренные в миллисекундах. Они используются в режимах Пауза (Hold), Внимание (Sniff) и Парковка (Park). Эти параметры фиксированы для определенного устройства и не должны изменяться при очередных запросах

Версия LMP

Запрос версии протокола LMP

Поддерживаемые особенности

В результате этого запроса возвращаются типы пакетов контроллера связи и свойства, поддерживаемые модулем Bluetooth

Переключение роли мастер/ подчиненное устройство

Т.к. вызывающие устройства всегда становятся мастерами пикосети, иногда необходимо переключение ролей мастер/подчиненное устройство

Запрос имени

Запрос удобного для пользователя имени, связанного с устройством Bluetooth. Это имя должно состоять максимум из 248 байт, закодированных в соответствии со стандартом UTF-8

Отсоединение

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

Пауза (Hold)

Линия связи между двумя устройствами Bluetooth может быть помещена в режим Hold на определенное время. В течение этого времени, от мастера не будет передано ни одного ACL пакета

Внимание (Sniff)

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

Парковка (Park)

Если у подчиненного устройства нет надобности участвовать в пикосети, но оно все еще должно быть FH-синхронизировано, оно может быть переведено в режим Park. В этом режиме устройство «оставляет» свое место в пикосети, но все еще ресинхронизируется на канал, «пробуждаясь» в моменты появления радиомаяка, отделенные специальным интервалом

Регулирование

мощности

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

Выбор между пакетами DM и DH в зависимости от качества канала

Устройство конфигурировано для постоянного использования DM пакетов (защищенных FEC с коэффициентом 2/3), постоянного использования DH пакетов (не защищенных), или для автоматической регулировки типа своих пакетов согласно качеству канала. Эта команда устанавливает DH

Качество обслуживания (Quality of Service - QoS)

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

SCO линии связи

Устанавливает SCO линии связи, которые резервируют регулярные временные интервалы для обмена данными между модулями. Отрезок времени между этими интервалами называется SCO интервалом

Контроль многослотовых пакетов

Количество слотов, которые использует подчиненное устройство в своем возвратном пакете, может быть ограничено. В этой процедуре мастер позволяет подчиненному устройству использовать максимальное количество слотов

Схема вызова

Устанавливает одну из опциональных схем вызова, которая будет использована в следующий раз при вызове модуля. Вызываемое устройство может принять или отклонить эту схему

Управление линией связи

Эта процедура используется для установки значения времени ожидания (timeout), которое необходимо для контроля существования линии связи

Установка соединения

Когда вызывающее устройство создает соединение, включая уровни выше LM, оно посылает LM запрос на соединение с хостом. Когда другая сторона принимает это сообщение, хост информируется о входящем соединении. Удаленное устройство может принимать или отклонять запрос на соединение. Если LMP-запрос на со­единение с хостом принят, запускаются LMP-процедуры защиты (сопряжение, ау­тентификация и кодирование). Если устройство не собирается инициировать дру­гие процедуры защиты в процессе соединения, высылается сообщение о том, что установка закончена. Схема установления соединения представлена на рис. 2.24. После того как устройства обменяются этими сообщениями по логическому кана­лу, отличному от LMP, может быть передан первый пакет.

Описание PDU

В этом разделе технических требований представлена подробная таблица прото­кольных единиц обмена протокола управления связью. Для каждой PDU опреде­лены следующие характеристики:

  • Длина (в байтах)

  • Код операции

  • Тип пакета

  • Возможное направление передачи

  • Содержание

  • Местоположение в полезной информации

Рис.2. 24. Схема установления соединения

Режимы тестирования

Протокол LMP имеет несколько протокольных единиц обмена для поддержания различных режимов тестирования Bluetooth, которые используются для сертифи­кации и испытания на соответствие Bluetooth-стандартам Радио и Baseband.

Для активизации режима тестирования (РТ) на тестируемое устройство (Device Under Test — DUT) посылаются РТ-сообщения. Тестируемое устройство всегда является подчиненным. Администратор связи устройства должен быть способен получать эти сообщения в любое время. Если активизация режима тестирования

возможна, DUT возвращает сообщение об этом и вводит режим тестирования (рис. 2.25). Когда DUT-устройство ввело режим тестирования, ему посылается LMP команда для того, чтобы начать тестирование.

Обработка ошибок

Если LM принимает PDU с нераспознаваемым кодом операции, то он отклоняет ее. Нераспознанный код операции отправляется назад в ответной PDU. Если LM принимает PDU с недопустимыми параметрами, оно отклоняет его с кодом причи­ны «недопустимые параметры LMP».

Если превышено максимальное время ожидания или обнаружена потеря связи, то сторона, которая ожидает ответа, заключает, что процедура закончилась неудачно.

Так как LMP PDU не интерпретируются в реальном времени, то в случае, если оба LM приступают к выполнению одной и той же процедуры, могут случаться коллизии, и обе процедуры не будут выполнены. В такой ситуации мастер откло­няет процедуру, начатую подчиненным устройством, с кодом причины «Ошибка LMP. Коллизия при передаче». После этого выполняется процедура, начатая мас­тером.