Примеры сетевых топологий


Bluetooth - часть 11


br>

Взаимодействующие приборы в Bluetooth могут выполнять роль локального устройства (LocDev) или удаленного устройства (RemDev). LocDev - прибор, который может инициировать процедуру выявления доступной услуги. Такой прибор должен содержать по крайней мере клиентскую часть архитектуры SDP. RemDev может быть любым прибором, который участвует в процессе выявления доступных услуг, посылая отклик на запрос LocDev. RemDev должен содержать по крайней мере серверную часть архитектуры SDP. RemDev имеет базу данных сервисных записей.

Прежде чем два устройства Bluetooth начнут взаимодействовать, каждый из них должен:


  1. Быть включенным и инициализированным. При инициализации может потребоваться PIN для формирования ключа соединения (link key).
  2. Должно быть сформированио Bluetooth соединение, которое может потребовать BD_ADDR других устройств.

Выявление услуг (Service Discovery) поддерживает следующие прикладные примитивы для взаимодействия с другими устройствами:


  • serviceSearch();
  • serviceBrowse();
  • enumerateRemDev();
  • terminatePrimitive();

Менеджер канала служит для аутентификации, установления и конфигурации соединения, а также шифрования. Данные управления укладываются в однослотовые кадры. Для транспортировки протокольных данных используются пакеты DM1 (в случае SCO - пакеты РМ1). Заголовки этих пакетов содержат всегда 1 байт. Менеджер канала (LM) обнаруживает другие LM и взаимодействует с ними через посредство протокола LMP. Чтобы выполнить роль провайдера LM использует ниже расположенный контроллер канала (LC). LMP-протокол регламентирует структуру управляющих данных (PDU). Приложение должно поддерживать часть типов PDU, остальные являются опционными.


Таблица 2. Обязательные типы PDU протокола LMP

ФункцияТип PDUОписание
Изменение ключа каналаLMP_comb_keyКлюч канала получается из комбинационных ключей. Содержимое LMP_comb_key защищается с помощью операции XOR с привлечением текущего ключа канала.
Изменение текущего ключа каналаLMP_temp_rand, LMP_temp_key, LMP_use_semi_permanent_keyТекущий ключ канала может быть полупостоянным или временным ключем канала. Ключ может быть изменен временно, но изменение действует только на время сессии. Изменение временного ключа канала нужно, если пикосеть поддерживает шифрованные бродкасты
Запрос сдвига часовLMP_clkoffset_req, LMP_clkoffset_resКогда клиент получает FHS-пакет, вычисляется разность между показанием его часов и часов мастера, записанным в поле данных пакета. Мастер может запросить значение сдвига часов в любое время.
Версия LMPLMP_version_req, LMP_version_resУровень LMP поддерживает запросы версии LMP. Запрашиваемое устройство должно прислать отклик с тремя параметрами: VersNr (номер версии протокола), CompId (служит для отслеживания проблем на нижних протокольных уровнях) и Sub-VersNr (рекомендуется, чтобы фирма имела уникальное значение Sub-VersNr для каждого RF/BB/LM).
Поддерживаемые возможностиLMP_feature_req, LMP_feature_resКонтроллер радио и канала может поддерживать только субнабор типов пакетов и возможностей. Устройство может не посылать никаких пакетов кроме ID, FHS, NULL, POLL, ВM1 или DH1, прежде чем озаботится возможностями других устройств. После выполнения запроса возможностей может быть передана область перекрытия возможностей взаимодействующих устройств.
Запрос имениLMP_name_req, LMP_name_resLMP поддерживает запрос имени другого устройства. Имя состоит максимум из 248 байтов (UTF-8)
Запрос разрываLMP_detachСоединение может быть разорвано в любое время по запросу мастера или клиента. В сообщение включаются данные, поясняющие причину разрыва.
Качество обслуживанияLMP_quality_of_service, LMP_quality_of_service_reqLM предоставляет возможности качества обслуживания. Интервал, который определяет максимальное время между последовательными передачами между мастером и заданным клиентом, используется для обеспечения определенной полосы пропускания и RTT.
Управление мультислотовыми пакетамиLMP_max_slot, LMP_max_slot_reqЧисло слотов, используемых устройством может быть ограничено. Устройство позволяет удаленному устройству использовать максимальное число слотов, послав ему значение LMP_max_slot
Управление каналомLMP_supervision_timeoutКаждый канал имеет таймер, который используется для управления каналом. Этот таймер служит для детектирования потери связи при уходе устройства из зоны досигаемости, отказа источника питания или другой поломки. Процедура определяет значение таймаута
Установление соединенияLMP_host_connection_req, LMP_setup_completeЕсли устройство желает установить соединение, включающее уровни выше LM, оно посылает LMP_host_connection_req. Когда партнер получает такое сообщение, он может принять или отвергнуть предлагаемое соединение, послав LMP_accepted или LMP_not_accepted
Режим проверкиLMP_test_activate, LMP_test_controlLMP имеет PDU для поддержки различных методов тестирования, которые используются на уровне radio и baseband
Обработка ошибокLMP_not_acceptedЕсли LM получает PDU с нераспознанным кодом, он реагирует посылкой сообщения LMP_not_accepted
<


Начало  Назад  Вперед



Книжный магазин